")[0];return t&&(Ht(n,"className",t.className),Ht(n,"id",t.id),Ht(n,"innerHTML",t.html),Ht(n,"textContent",t.text)),n}),V.feature.register("info",function(e,s){var t,n,u;return e.oFeatures.bInfo?(t=e.oLanguage,n=e.sTableId,u=H("
",{class:e.oClasses.info.container}),s=H.extend({callback:t.fnInfoCallback,empty:t.sInfoEmpty,postfix:t.sInfoPostFix,search:t.sInfoFiltered,text:t.sInfo},s),e.aoDrawCallback.push(function(e){var t=s,n=u,r=e._iDisplayStart+1,a=e.fnDisplayEnd(),o=e.fnRecordsTotal(),i=e.fnRecordsDisplay(),l=i?t.text:t.empty;i!==o&&(l+=" "+t.search),l+=t.postfix,l=ot(e,l),t.callback&&(l=t.callback.call(e.oInstance,e,r,a,o,i,l)),n.html(l),G(e,null,"info",[e,n[0],l])}),e._infoEl||(u.attr({"aria-live":"polite",id:n+"_info",role:"status"}),H(e.nTable).attr("aria-describedby",n+"_info"),e._infoEl=u),u):null},"i");var Wt=0;function Xt(e){var t=[];return e.numbers&&t.push("numbers"),e.previousNext&&(t.unshift("previous"),t.push("next")),e.firstLast&&(t.unshift("first"),t.push("last")),t}function Vt(e,t,n,r){var a=e.oLanguage.oPaginate,o={display:"",active:!1,disabled:!1};switch(t){case"ellipsis":o.display="…";break;case"first":o.display=a.sFirst,0===n&&(o.disabled=!0);break;case"previous":o.display=a.sPrevious,0===n&&(o.disabled=!0);break;case"next":o.display=a.sNext,0!==r&&n!==r-1||(o.disabled=!0);break;case"last":o.display=a.sLast,0!==r&&n!==r-1||(o.disabled=!0);break;default:"number"==typeof t&&(o.display=e.fnFormatNumber(t+1),n===t)&&(o.active=!0)}return o}function Bt(e,t,n,r){var a=[],o=Math.floor(n/2),i=r?2:1,l=r?1:0;return t<=n?a=h(0,t):1===n?a=[e]:3===n?e<=1?a=[0,1,"ellipsis"]:t-2<=e?(a=h(t-2,t)).unshift("ellipsis"):a=["ellipsis",e,"ellipsis"]:e<=o?((a=h(0,n-i)).push("ellipsis"),r&&a.push(t-1)):t-1-o<=e?((a=h(t-(n-i),t)).unshift("ellipsis"),r&&a.unshift(0)):((a=h(e-o+i,e+o-l)).push("ellipsis"),a.unshift("ellipsis"),r&&(a.push(t-1),a.unshift(0))),a}V.feature.register("search",function(n,r){var e,t,a,o,i,l,s,u,c,d;return n.oFeatures.bFilter?(e=n.oClasses.search,t=n.sTableId,c=n.oLanguage,a=n.oPreviousSearch,o='
',-1===(r=H.extend({placeholder:c.sSearchPlaceholder,processing:!1,text:c.sSearch},r)).text.indexOf("_INPUT_")&&(r.text+="_INPUT_"),r.text=ot(n,r.text),c=r.text.match(/_INPUT_$/),s=r.text.match(/^_INPUT_/),i=r.text.replace(/_INPUT_/,""),l="
"+r.text+" ",s?l="_INPUT_
"+i+" ":c&&(l="
"+i+" _INPUT_"),(s=H("
").addClass(e.container).append(l.replace(/_INPUT_/,o))).find("label").attr("for","dt-search-"+Wt),s.find("input").attr("id","dt-search-"+Wt),Wt++,u=function(e){var t=this.value;a.return&&"Enter"!==e.key||t!=a.search&&Be(n,r.processing,function(){a.search=t,Re(n,a),n._iDisplayStart=0,x(n)})},c=null!==n.searchDelay?n.searchDelay:0,d=H("input",s).val(a.search).attr("placeholder",r.placeholder).on("keyup.DT search.DT input.DT paste.DT cut.DT",c?V.util.debounce(u,c):u).on("mouseup.DT",function(e){setTimeout(function(){u.call(d[0],e)},10)}).on("keypress.DT",function(e){if(13==e.keyCode)return!1}).attr("aria-controls",t),H(n.nTable).on("search.dt.DT",function(e,t){n===t&&d[0]!==S.activeElement&&d.val("function"!=typeof a.search?a.search:"")}),s):null},"f"),V.feature.register("paging",function(e,t){if(!e.oFeatures.bPaginate)return null;t=H.extend({buttons:V.ext.pager.numbers_length,type:e.sPaginationType,boundaryNumbers:!0,firstLast:!0,previousNext:!0,numbers:!0},t);function n(){!function e(t,n,r){if(!t._bInitComplete)return;var a=r.type?V.ext.pager[r.type]:Xt,o=t.oLanguage.oAria.paginate||{},i=t._iDisplayStart,l=t._iDisplayLength,s=t.fnRecordsDisplay(),u=-1===l,c=u?0:Math.ceil(i/l),d=u?1:Math.ceil(s/l),f=[],h=[],i=a(r).map(function(e){return"numbers"===e?Bt(c,d,r.buttons,r.boundaryNumbers):e});f=f.concat.apply(f,i);for(var p=0;p
=2*l-10&&e(t,n,H.extend({},r,{buttons:r.buttons-2}))}(e,r.children(),t)}var r=H("
").addClass(e.oClasses.paging.container+(t.type?" paging_"+t.type:"")).append(H("").attr("aria-label","pagination").addClass(e.oClasses.paging.nav));return e.aoDrawCallback.push(n),H(e.nTable).on("column-sizing.dt.DT",n),r},"p");var qt=0;return V.feature.register("pageLength",function(r,e){var t=r.oFeatures;if(!t.bPaginate||!t.bLengthChange)return null;e=H.extend({menu:r.aLengthMenu,text:r.oLanguage.sLengthMenu},e);var t=r.oClasses.length,n=r.sTableId,a=e.menu,o=[],i=[];if(Array.isArray(a[0]))o=a[0],i=a[1];else for(p=0;p"+e.text+"",s=(s?e="_MENU_"+u+" ":l&&(e=""+u+" _MENU_"),"tmp-"+ +new Date),c=H("
").addClass(t.container).append(e.replace("_MENU_",' ')),d=[],f=(Array.prototype.slice.call(c.find("label")[0].childNodes).forEach(function(e){e.nodeType===Node.TEXT_NODE&&d.push({el:e,text:e.textContent})}),function(t){d.forEach(function(e){e.el.textContent=ot(r,e.text,t)})}),h=H(" ",{"aria-controls":n,class:t.select}),p=0;p
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: GE (Georgian; ქართული)
+ */
+$.extend( $.validator.messages, {
+ required: "ეს ველი სავალდებულოა.",
+ remote: "გთხოვთ შეასწოროთ.",
+ email: "გთხოვთ შეიყვანოთ სწორი ფორმატით.",
+ url: "გთხოვთ შეიყვანოთ სწორი ფორმატით.",
+ date: "გთხოვთ შეიყვანოთ სწორი თარიღი.",
+ dateISO: "გთხოვთ შეიყვანოთ სწორი ფორმატით (ISO).",
+ number: "გთხოვთ შეიყვანოთ რიცხვი.",
+ digits: "დაშვებულია მხოლოდ ციფრები.",
+ creditcard: "გთხოვთ შეიყვანოთ სწორი ფორმატის ბარათის კოდი.",
+ equalTo: "გთხოვთ შეიყვანოთ იგივე მნიშვნელობა.",
+ maxlength: $.validator.format( "გთხოვთ შეიყვანოთ არა უმეტეს {0} სიმბოლოსი." ),
+ minlength: $.validator.format( "შეიყვანეთ მინიმუმ {0} სიმბოლო." ),
+ rangelength: $.validator.format( "გთხოვთ შეიყვანოთ {0} -დან {1} -მდე რაოდენობის სიმბოლოები." ),
+ range: $.validator.format( "შეიყვანეთ {0} -სა {1} -ს შორის." ),
+ max: $.validator.format( "გთხოვთ შეიყვანოთ მნიშვნელობა ნაკლები ან ტოლი {0} -ს." ),
+ min: $.validator.format( "გთხოვთ შეიყვანოთ მნიშვნელობა მეტი ან ტოლი {0} -ს." )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ge.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ge.min.js
new file mode 100644
index 000000000..2fa368ac1
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ge.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"ეს ველი სავალდებულოა.",remote:"გთხოვთ შეასწოროთ.",email:"გთხოვთ შეიყვანოთ სწორი ფორმატით.",url:"გთხოვთ შეიყვანოთ სწორი ფორმატით.",date:"გთხოვთ შეიყვანოთ სწორი თარიღი.",dateISO:"გთხოვთ შეიყვანოთ სწორი ფორმატით (ISO).",number:"გთხოვთ შეიყვანოთ რიცხვი.",digits:"დაშვებულია მხოლოდ ციფრები.",creditcard:"გთხოვთ შეიყვანოთ სწორი ფორმატის ბარათის კოდი.",equalTo:"გთხოვთ შეიყვანოთ იგივე მნიშვნელობა.",maxlength:a.validator.format("გთხოვთ შეიყვანოთ არა უმეტეს {0} სიმბოლოსი."),minlength:a.validator.format("შეიყვანეთ მინიმუმ {0} სიმბოლო."),rangelength:a.validator.format("გთხოვთ შეიყვანოთ {0} -დან {1} -მდე რაოდენობის სიმბოლოები."),range:a.validator.format("შეიყვანეთ {0} -სა {1} -ს შორის."),max:a.validator.format("გთხოვთ შეიყვანოთ მნიშვნელობა ნაკლები ან ტოლი {0} -ს."),min:a.validator.format("გთხოვთ შეიყვანოთ მნიშვნელობა მეტი ან ტოლი {0} -ს.")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_gl.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_gl.js
new file mode 100644
index 000000000..050361713
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_gl.js
@@ -0,0 +1,40 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: GL (Galician; Galego)
+ */
+( function( $ ) {
+ $.extend( $.validator.messages, {
+ required: "Este campo é obrigatorio.",
+ remote: "Por favor, cubre este campo.",
+ email: "Por favor, escribe unha dirección de correo válida.",
+ url: "Por favor, escribe unha URL válida.",
+ date: "Por favor, escribe unha data válida.",
+ dateISO: "Por favor, escribe unha data (ISO) válida.",
+ number: "Por favor, escribe un número válido.",
+ digits: "Por favor, escribe só díxitos.",
+ creditcard: "Por favor, escribe un número de tarxeta válido.",
+ equalTo: "Por favor, escribe o mesmo valor de novo.",
+ extension: "Por favor, escribe un valor cunha extensión aceptada.",
+ maxlength: $.validator.format( "Por favor, non escribas máis de {0} caracteres." ),
+ minlength: $.validator.format( "Por favor, non escribas menos de {0} caracteres." ),
+ rangelength: $.validator.format( "Por favor, escribe un valor entre {0} e {1} caracteres." ),
+ range: $.validator.format( "Por favor, escribe un valor entre {0} e {1}." ),
+ max: $.validator.format( "Por favor, escribe un valor menor ou igual a {0}." ),
+ min: $.validator.format( "Por favor, escribe un valor maior ou igual a {0}." ),
+ nifES: "Por favor, escribe un NIF válido.",
+ nieES: "Por favor, escribe un NIE válido.",
+ cifES: "Por favor, escribe un CIF válido."
+ } );
+}( jQuery ) );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_gl.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_gl.min.js
new file mode 100644
index 000000000..b3705c172
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_gl.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return function(a){a.extend(a.validator.messages,{required:"Este campo é obrigatorio.",remote:"Por favor, cubre este campo.",email:"Por favor, escribe unha dirección de correo válida.",url:"Por favor, escribe unha URL válida.",date:"Por favor, escribe unha data válida.",dateISO:"Por favor, escribe unha data (ISO) válida.",number:"Por favor, escribe un número válido.",digits:"Por favor, escribe só díxitos.",creditcard:"Por favor, escribe un número de tarxeta válido.",equalTo:"Por favor, escribe o mesmo valor de novo.",extension:"Por favor, escribe un valor cunha extensión aceptada.",maxlength:a.validator.format("Por favor, non escribas máis de {0} caracteres."),minlength:a.validator.format("Por favor, non escribas menos de {0} caracteres."),rangelength:a.validator.format("Por favor, escribe un valor entre {0} e {1} caracteres."),range:a.validator.format("Por favor, escribe un valor entre {0} e {1}."),max:a.validator.format("Por favor, escribe un valor menor ou igual a {0}."),min:a.validator.format("Por favor, escribe un valor maior ou igual a {0}."),nifES:"Por favor, escribe un NIF válido.",nieES:"Por favor, escribe un NIE válido.",cifES:"Por favor, escribe un CIF válido."})}(jQuery),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_he.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_he.js
new file mode 100644
index 000000000..cb84b56a2
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_he.js
@@ -0,0 +1,35 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: HE (Hebrew; עברית)
+ */
+$.extend( $.validator.messages, {
+ required: "השדה הזה הינו שדה חובה",
+ remote: "נא לתקן שדה זה",
+ email: "נא למלא כתובת דוא\"ל חוקית",
+ url: "נא למלא כתובת אינטרנט חוקית",
+ date: "נא למלא תאריך חוקי",
+ dateISO: "נא למלא תאריך חוקי (ISO)",
+ number: "נא למלא מספר",
+ digits: "נא למלא רק מספרים",
+ creditcard: "נא למלא מספר כרטיס אשראי חוקי",
+ equalTo: "נא למלא את אותו ערך שוב",
+ extension: "נא למלא ערך עם סיומת חוקית",
+ maxlength: $.validator.format( ".נא לא למלא יותר מ- {0} תווים" ),
+ minlength: $.validator.format( "נא למלא לפחות {0} תווים" ),
+ rangelength: $.validator.format( "נא למלא ערך בין {0} ל- {1} תווים" ),
+ range: $.validator.format( "נא למלא ערך בין {0} ל- {1}" ),
+ max: $.validator.format( "נא למלא ערך קטן או שווה ל- {0}" ),
+ min: $.validator.format( "נא למלא ערך גדול או שווה ל- {0}" )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_he.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_he.min.js
new file mode 100644
index 000000000..908b601f0
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_he.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"השדה הזה הינו שדה חובה",remote:"נא לתקן שדה זה",email:'נא למלא כתובת דוא"ל חוקית',url:"נא למלא כתובת אינטרנט חוקית",date:"נא למלא תאריך חוקי",dateISO:"נא למלא תאריך חוקי (ISO)",number:"נא למלא מספר",digits:"נא למלא רק מספרים",creditcard:"נא למלא מספר כרטיס אשראי חוקי",equalTo:"נא למלא את אותו ערך שוב",extension:"נא למלא ערך עם סיומת חוקית",maxlength:a.validator.format(".נא לא למלא יותר מ- {0} תווים"),minlength:a.validator.format("נא למלא לפחות {0} תווים"),rangelength:a.validator.format("נא למלא ערך בין {0} ל- {1} תווים"),range:a.validator.format("נא למלא ערך בין {0} ל- {1}"),max:a.validator.format("נא למלא ערך קטן או שווה ל- {0}"),min:a.validator.format("נא למלא ערך גדול או שווה ל- {0}")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_hi.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_hi.js
new file mode 100644
index 000000000..7f00c9371
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_hi.js
@@ -0,0 +1,54 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: Hindi; हिंदी
+ */
+$.extend( $.validator.messages, {
+ required: "आवश्यक फ़ील्ड।",
+ remote:"इस फ़ील्ड को जांचें।",
+ email: "एक वैध ई - मेल पते की प्रविष्टि करें।",
+ url: "कृपया एक वैध वेब पता दर्ज करें।",
+ date: "कृपया कोई मान्य दिनांक दर्ज करें।",
+ dateISO: "कृपया एक मान्य दिनांक (ISO) दर्ज करें।",
+ number: "कृपया सही अंक दर्ज करें।",
+ digits: "केवल संख्याएं दर्ज करें।",
+ creditcard: "कृपया एक वैध क्रेडिट कार्ड नंबर डालें।",
+ equalTo: "मेल नहीं खाता।",
+ extension: "कृपया एक मान्य एक्सटेंशन वाला मान दर्ज करें।",
+ maxlength: $.validator.format( "अधिक दर्ज न करें {0} वर्णों में से" ),
+ minlength: $.validator.format( "कृपया कम से कम {0} वर्ण दर्ज करें।" ),
+ rangelength: $.validator.format( "कृपया {0} और {1} वर्णों के बीच एक मान दर्ज करें।" ),
+ range: $.validator.format( "कृपया {0} और {1} के बीच एक मान दर्ज करें।" ),
+ max: $.validator.format( "कृपया {0} से कम या उसके बराबर मान दर्ज करें।" ),
+ min: $.validator.format( "कृपया {0} से अधिक या उसके बराबर मान दर्ज करें।" ),
+ nieES: "कृपया एक मान्य NIE दर्ज करें।",
+ cifES: "कृपया एक मान्य CIF दर्ज करें.",
+ currency: "कृपया एक मान्य मुद्रा दर्ज करें।.",
+ step: $.validator.format( "{0} का गुणज होना चाहिए।" ),
+ abaRoutingNumber:"कृपया एक मान्य रूटिंग नंबर दर्ज करें।",
+ accept:"कृपया एक मान्य माइमटाइप वाला मान दर्ज करें।",
+ alphanumeric:"कृपया, केवल अक्षर, संख्याएं और अंडरस्कोर।",
+ bankaccountNL:"कृपया एक वैध बैंक खाता संख्या निर्दिष्ट करें।",
+ bankorgiroaccountNL:"कृपया एक वैध बैंक या जीरो खाता संख्या निर्दिष्ट करें।",
+ bic:"कृपया कोई मान्य BIC कोड निर्दिष्ट करें।",
+ ziprange:"आपका ज़िप कोड 902xx-xxxx से 905xx-xxxx की सीमा में होना चाहिए।",
+ zipcodeUS:"निर्दिष्ट यूएस ज़िप कोड अमान्य है।",
+ vinUS:"निर्दिष्ट वाहन पहचान संख्या (VIN) अमान्य है।",
+ time12h:"कृपया 12 घंटे पूर्वाह्न/अपराह्न प्रारूप में मान्य समय दर्ज करें।",
+ time:"कृपया 00:00 और 23:59 के बीच एक वैध समय दर्ज करें।",
+ strippedminlength:"कृपया कम से कम {0} वर्ण दर्ज करें।",
+ stateUS:"कृपया एक वैध प्रदेश निर्दिष्ट करें।",
+ skip_or_fill_minimum:"कृपया या तो इन फ़ील्ड को छोड़ दें या उनमें से कम से कम {0} भरें।",
+ require_from_group:"कृपया इनमें से कम से कम {0} को भरें।"
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_hi.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_hi.min.js
new file mode 100644
index 000000000..39ebe89fd
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_hi.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"आवश्यक फ़ील्ड।",remote:"इस फ़ील्ड को जांचें।",email:"एक वैध ई - मेल पते की प्रविष्टि करें।",url:"कृपया एक वैध वेब पता दर्ज करें।",date:"कृपया कोई मान्य दिनांक दर्ज करें।",dateISO:"कृपया एक मान्य दिनांक (ISO) दर्ज करें।",number:"कृपया सही अंक दर्ज करें।",digits:"केवल संख्याएं दर्ज करें।",creditcard:"कृपया एक वैध क्रेडिट कार्ड नंबर डालें।",equalTo:"मेल नहीं खाता।",extension:"कृपया एक मान्य एक्सटेंशन वाला मान दर्ज करें।",maxlength:a.validator.format("अधिक दर्ज न करें {0} वर्णों में से"),minlength:a.validator.format("कृपया कम से कम {0} वर्ण दर्ज करें।"),rangelength:a.validator.format("कृपया {0} और {1} वर्णों के बीच एक मान दर्ज करें।"),range:a.validator.format("कृपया {0} और {1} के बीच एक मान दर्ज करें।"),max:a.validator.format("कृपया {0} से कम या उसके बराबर मान दर्ज करें।"),min:a.validator.format("कृपया {0} से अधिक या उसके बराबर मान दर्ज करें।"),nieES:"कृपया एक मान्य NIE दर्ज करें।",cifES:"कृपया एक मान्य CIF दर्ज करें.",currency:"कृपया एक मान्य मुद्रा दर्ज करें।.",step:a.validator.format("{0} का गुणज होना चाहिए।"),abaRoutingNumber:"कृपया एक मान्य रूटिंग नंबर दर्ज करें।",accept:"कृपया एक मान्य माइमटाइप वाला मान दर्ज करें।",alphanumeric:"कृपया, केवल अक्षर, संख्याएं और अंडरस्कोर।",bankaccountNL:"कृपया एक वैध बैंक खाता संख्या निर्दिष्ट करें।",bankorgiroaccountNL:"कृपया एक वैध बैंक या जीरो खाता संख्या निर्दिष्ट करें।",bic:"कृपया कोई मान्य BIC कोड निर्दिष्ट करें।",ziprange:"आपका ज़िप कोड 902xx-xxxx से 905xx-xxxx की सीमा में होना चाहिए।",zipcodeUS:"निर्दिष्ट यूएस ज़िप कोड अमान्य है।",vinUS:"निर्दिष्ट वाहन पहचान संख्या (VIN) अमान्य है।",time12h:"कृपया 12 घंटे पूर्वाह्न/अपराह्न प्रारूप में मान्य समय दर्ज करें।",time:"कृपया 00:00 और 23:59 के बीच एक वैध समय दर्ज करें।",strippedminlength:"कृपया कम से कम {0} वर्ण दर्ज करें।",stateUS:"कृपया एक वैध प्रदेश निर्दिष्ट करें।",skip_or_fill_minimum:"कृपया या तो इन फ़ील्ड को छोड़ दें या उनमें से कम से कम {0} भरें।",require_from_group:"कृपया इनमें से कम से कम {0} को भरें।"}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_hr.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_hr.js
new file mode 100644
index 000000000..092506dbe
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_hr.js
@@ -0,0 +1,35 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: HR (Croatia; hrvatski jezik)
+ */
+$.extend( $.validator.messages, {
+ required: "Ovo polje je obavezno.",
+ remote: "Ovo polje treba popraviti.",
+ email: "Unesite ispravnu e-mail adresu.",
+ url: "Unesite ispravan URL.",
+ date: "Unesite ispravan datum.",
+ dateISO: "Unesite ispravan datum (ISO).",
+ number: "Unesite ispravan broj.",
+ digits: "Unesite samo brojeve.",
+ creditcard: "Unesite ispravan broj kreditne kartice.",
+ equalTo: "Unesite ponovo istu vrijednost.",
+ extension: "Unesite vrijednost sa ispravnom ekstenzijom.",
+ maxlength: $.validator.format( "Maksimalni broj znakova je {0} ." ),
+ minlength: $.validator.format( "Minimalni broj znakova je {0} ." ),
+ rangelength: $.validator.format( "Unesite vrijednost između {0} i {1} znakova." ),
+ range: $.validator.format( "Unesite vrijednost između {0} i {1}." ),
+ max: $.validator.format( "Unesite vrijednost manju ili jednaku {0}." ),
+ min: $.validator.format( "Unesite vrijednost veću ili jednaku {0}." )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_hr.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_hr.min.js
new file mode 100644
index 000000000..4bd2c161c
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_hr.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Ovo polje je obavezno.",remote:"Ovo polje treba popraviti.",email:"Unesite ispravnu e-mail adresu.",url:"Unesite ispravan URL.",date:"Unesite ispravan datum.",dateISO:"Unesite ispravan datum (ISO).",number:"Unesite ispravan broj.",digits:"Unesite samo brojeve.",creditcard:"Unesite ispravan broj kreditne kartice.",equalTo:"Unesite ponovo istu vrijednost.",extension:"Unesite vrijednost sa ispravnom ekstenzijom.",maxlength:a.validator.format("Maksimalni broj znakova je {0} ."),minlength:a.validator.format("Minimalni broj znakova je {0} ."),rangelength:a.validator.format("Unesite vrijednost između {0} i {1} znakova."),range:a.validator.format("Unesite vrijednost između {0} i {1}."),max:a.validator.format("Unesite vrijednost manju ili jednaku {0}."),min:a.validator.format("Unesite vrijednost veću ili jednaku {0}.")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_hu.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_hu.js
new file mode 100644
index 000000000..616ae251c
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_hu.js
@@ -0,0 +1,35 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: HU (Hungarian; Magyar)
+ */
+$.extend( $.validator.messages, {
+ required: "Kötelező megadni.",
+ maxlength: $.validator.format( "Legfeljebb {0} karakter hosszú legyen." ),
+ minlength: $.validator.format( "Legalább {0} karakter hosszú legyen." ),
+ rangelength: $.validator.format( "Legalább {0} és legfeljebb {1} karakter hosszú legyen." ),
+ email: "Érvényes e-mail címnek kell lennie.",
+ url: "Érvényes URL-nek kell lennie.",
+ date: "Dátumnak kell lennie.",
+ number: "Számnak kell lennie.",
+ digits: "Csak számjegyek lehetnek.",
+ equalTo: "Meg kell egyeznie a két értéknek.",
+ range: $.validator.format( "{0} és {1} közé kell esnie." ),
+ max: $.validator.format( "Nem lehet nagyobb, mint {0}." ),
+ min: $.validator.format( "Nem lehet kisebb, mint {0}." ),
+ creditcard: "Érvényes hitelkártyaszámnak kell lennie.",
+ remote: "Kérem javítsa ki ezt a mezőt.",
+ dateISO: "Kérem írjon be egy érvényes dátumot (ISO).",
+ step: $.validator.format( "A {0} egyik többszörösét adja meg." )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_hu.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_hu.min.js
new file mode 100644
index 000000000..92ecdf569
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_hu.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Kötelező megadni.",maxlength:a.validator.format("Legfeljebb {0} karakter hosszú legyen."),minlength:a.validator.format("Legalább {0} karakter hosszú legyen."),rangelength:a.validator.format("Legalább {0} és legfeljebb {1} karakter hosszú legyen."),email:"Érvényes e-mail címnek kell lennie.",url:"Érvényes URL-nek kell lennie.",date:"Dátumnak kell lennie.",number:"Számnak kell lennie.",digits:"Csak számjegyek lehetnek.",equalTo:"Meg kell egyeznie a két értéknek.",range:a.validator.format("{0} és {1} közé kell esnie."),max:a.validator.format("Nem lehet nagyobb, mint {0}."),min:a.validator.format("Nem lehet kisebb, mint {0}."),creditcard:"Érvényes hitelkártyaszámnak kell lennie.",remote:"Kérem javítsa ki ezt a mezőt.",dateISO:"Kérem írjon be egy érvényes dátumot (ISO).",step:a.validator.format("A {0} egyik többszörösét adja meg.")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_hy_AM.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_hy_AM.js
new file mode 100644
index 000000000..c6aec5c33
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_hy_AM.js
@@ -0,0 +1,35 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: HY_AM (Armenian; հայերեն լեզու)
+ */
+$.extend( $.validator.messages, {
+ required: "Պարտադիր լրացման դաշտ",
+ remote: "Ներմուծեք ճիշտ արժեքը",
+ email: "Ներմուծեք վավեր էլեկտրոնային փոստի հասցե",
+ url: "Ներմուծեք վավեր URL",
+ date: "Ներմուծեք վավեր ամսաթիվ",
+ dateISO: "Ներմուծեք ISO ֆորմատով վավեր ամսաթիվ։",
+ number: "Ներմուծեք թիվ",
+ digits: "Ներմուծեք միայն թվեր",
+ creditcard: "Ներմուծեք ճիշտ բանկային քարտի համար",
+ equalTo: "Ներմուծեք միևնուն արժեքը ևս մեկ անգամ",
+ extension: "Ընտրեք ճիշտ ընդլանումով ֆայլ",
+ maxlength: $.validator.format( "Ներմուծեք ոչ ավել քան {0} նիշ" ),
+ minlength: $.validator.format( "Ներմուծեք ոչ պակաս քան {0} նիշ" ),
+ rangelength: $.validator.format( "Ներմուծեք {0}֊ից {1} երկարությամբ արժեք" ),
+ range: $.validator.format( "Ներմուծեք թիվ {0}֊ից {1} միջակայքում" ),
+ max: $.validator.format( "Ներմուծեք թիվ, որը փոքր կամ հավասար է {0}֊ին" ),
+ min: $.validator.format( "Ներմուծեք թիվ, որը մեծ կամ հավասար է {0}֊ին" )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_hy_AM.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_hy_AM.min.js
new file mode 100644
index 000000000..211d7da1a
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_hy_AM.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Պարտադիր լրացման դաշտ",remote:"Ներմուծեք ճիշտ արժեքը",email:"Ներմուծեք վավեր էլեկտրոնային փոստի հասցե",url:"Ներմուծեք վավեր URL",date:"Ներմուծեք վավեր ամսաթիվ",dateISO:"Ներմուծեք ISO ֆորմատով վավեր ամսաթիվ։",number:"Ներմուծեք թիվ",digits:"Ներմուծեք միայն թվեր",creditcard:"Ներմուծեք ճիշտ բանկային քարտի համար",equalTo:"Ներմուծեք միևնուն արժեքը ևս մեկ անգամ",extension:"Ընտրեք ճիշտ ընդլանումով ֆայլ",maxlength:a.validator.format("Ներմուծեք ոչ ավել քան {0} նիշ"),minlength:a.validator.format("Ներմուծեք ոչ պակաս քան {0} նիշ"),rangelength:a.validator.format("Ներմուծեք {0}֊ից {1} երկարությամբ արժեք"),range:a.validator.format("Ներմուծեք թիվ {0}֊ից {1} միջակայքում"),max:a.validator.format("Ներմուծեք թիվ, որը փոքր կամ հավասար է {0}֊ին"),min:a.validator.format("Ներմուծեք թիվ, որը մեծ կամ հավասար է {0}֊ին")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_id.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_id.js
new file mode 100644
index 000000000..052a98816
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_id.js
@@ -0,0 +1,34 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: ID (Indonesia; Indonesian)
+ */
+$.extend( $.validator.messages, {
+ required: "Kolom ini diperlukan.",
+ remote: "Harap benarkan kolom ini.",
+ email: "Silakan masukkan format email yang benar.",
+ url: "Silakan masukkan format URL yang benar.",
+ date: "Silakan masukkan format tanggal yang benar.",
+ dateISO: "Silakan masukkan format tanggal(ISO) yang benar.",
+ number: "Silakan masukkan angka yang benar.",
+ digits: "Harap masukan angka saja.",
+ creditcard: "Harap masukkan format kartu kredit yang benar.",
+ equalTo: "Harap masukkan nilai yg sama dengan sebelumnya.",
+ maxlength: $.validator.format( "Input dibatasi hanya {0} karakter." ),
+ minlength: $.validator.format( "Input tidak kurang dari {0} karakter." ),
+ rangelength: $.validator.format( "Panjang karakter yg diizinkan antara {0} dan {1} karakter." ),
+ range: $.validator.format( "Harap masukkan nilai antara {0} dan {1}." ),
+ max: $.validator.format( "Harap masukkan nilai lebih kecil atau sama dengan {0}." ),
+ min: $.validator.format( "Harap masukkan nilai lebih besar atau sama dengan {0}." )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_id.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_id.min.js
new file mode 100644
index 000000000..0e0b11c99
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_id.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Kolom ini diperlukan.",remote:"Harap benarkan kolom ini.",email:"Silakan masukkan format email yang benar.",url:"Silakan masukkan format URL yang benar.",date:"Silakan masukkan format tanggal yang benar.",dateISO:"Silakan masukkan format tanggal(ISO) yang benar.",number:"Silakan masukkan angka yang benar.",digits:"Harap masukan angka saja.",creditcard:"Harap masukkan format kartu kredit yang benar.",equalTo:"Harap masukkan nilai yg sama dengan sebelumnya.",maxlength:a.validator.format("Input dibatasi hanya {0} karakter."),minlength:a.validator.format("Input tidak kurang dari {0} karakter."),rangelength:a.validator.format("Panjang karakter yg diizinkan antara {0} dan {1} karakter."),range:a.validator.format("Harap masukkan nilai antara {0} dan {1}."),max:a.validator.format("Harap masukkan nilai lebih kecil atau sama dengan {0}."),min:a.validator.format("Harap masukkan nilai lebih besar atau sama dengan {0}.")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_is.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_is.js
new file mode 100644
index 000000000..e3f75d014
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_is.js
@@ -0,0 +1,33 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: IS (Icelandic; íslenska)
+ */
+$.extend( $.validator.messages, {
+ required: "Þessi reitur er nauðsynlegur.",
+ remote: "Lagaðu þennan reit.",
+ maxlength: $.validator.format( "Sláðu inn mest {0} stafi." ),
+ minlength: $.validator.format( "Sláðu inn minnst {0} stafi." ),
+ rangelength: $.validator.format( "Sláðu inn minnst {0} og mest {1} stafi." ),
+ email: "Sláðu inn gilt netfang.",
+ url: "Sláðu inn gilda vefslóð.",
+ date: "Sláðu inn gilda dagsetningu.",
+ number: "Sláðu inn tölu.",
+ digits: "Sláðu inn tölustafi eingöngu.",
+ equalTo: "Sláðu sama gildi inn aftur.",
+ range: $.validator.format( "Sláðu inn gildi milli {0} og {1}." ),
+ max: $.validator.format( "Sláðu inn gildi sem er minna en eða jafnt og {0}." ),
+ min: $.validator.format( "Sláðu inn gildi sem er stærra en eða jafnt og {0}." ),
+ creditcard: "Sláðu inn gilt greiðslukortanúmer."
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_is.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_is.min.js
new file mode 100644
index 000000000..eec376f98
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_is.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Þessi reitur er nauðsynlegur.",remote:"Lagaðu þennan reit.",maxlength:a.validator.format("Sláðu inn mest {0} stafi."),minlength:a.validator.format("Sláðu inn minnst {0} stafi."),rangelength:a.validator.format("Sláðu inn minnst {0} og mest {1} stafi."),email:"Sláðu inn gilt netfang.",url:"Sláðu inn gilda vefslóð.",date:"Sláðu inn gilda dagsetningu.",number:"Sláðu inn tölu.",digits:"Sláðu inn tölustafi eingöngu.",equalTo:"Sláðu sama gildi inn aftur.",range:a.validator.format("Sláðu inn gildi milli {0} og {1}."),max:a.validator.format("Sláðu inn gildi sem er minna en eða jafnt og {0}."),min:a.validator.format("Sláðu inn gildi sem er stærra en eða jafnt og {0}."),creditcard:"Sláðu inn gilt greiðslukortanúmer."}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_it.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_it.js
new file mode 100644
index 000000000..1d2953f5d
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_it.js
@@ -0,0 +1,39 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: IT (Italian; Italiano)
+ */
+$.extend( $.validator.messages, {
+ required: "Campo obbligatorio.",
+ remote: "Controlla questo campo.",
+ email: "Inserisci un indirizzo email valido.",
+ url: "Inserisci un indirizzo web valido.",
+ date: "Inserisci una data valida.",
+ dateISO: "Inserisci una data valida (ISO).",
+ number: "Inserisci un numero valido.",
+ digits: "Inserisci solo numeri.",
+ creditcard: "Inserisci un numero di carta di credito valido.",
+ equalTo: "Il valore non corrisponde.",
+ extension: "Inserisci un valore con un'estensione valida.",
+ maxlength: $.validator.format( "Non inserire più di {0} caratteri." ),
+ minlength: $.validator.format( "Inserisci almeno {0} caratteri." ),
+ rangelength: $.validator.format( "Inserisci un valore compreso tra {0} e {1} caratteri." ),
+ range: $.validator.format( "Inserisci un valore compreso tra {0} e {1}." ),
+ max: $.validator.format( "Inserisci un valore minore o uguale a {0}." ),
+ min: $.validator.format( "Inserisci un valore maggiore o uguale a {0}." ),
+ nifES: "Inserisci un NIF valido.",
+ nieES: "Inserisci un NIE valido.",
+ cifES: "Inserisci un CIF valido.",
+ currency: "Inserisci una valuta valida."
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_it.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_it.min.js
new file mode 100644
index 000000000..5bb017ba5
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_it.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Campo obbligatorio.",remote:"Controlla questo campo.",email:"Inserisci un indirizzo email valido.",url:"Inserisci un indirizzo web valido.",date:"Inserisci una data valida.",dateISO:"Inserisci una data valida (ISO).",number:"Inserisci un numero valido.",digits:"Inserisci solo numeri.",creditcard:"Inserisci un numero di carta di credito valido.",equalTo:"Il valore non corrisponde.",extension:"Inserisci un valore con un'estensione valida.",maxlength:a.validator.format("Non inserire più di {0} caratteri."),minlength:a.validator.format("Inserisci almeno {0} caratteri."),rangelength:a.validator.format("Inserisci un valore compreso tra {0} e {1} caratteri."),range:a.validator.format("Inserisci un valore compreso tra {0} e {1}."),max:a.validator.format("Inserisci un valore minore o uguale a {0}."),min:a.validator.format("Inserisci un valore maggiore o uguale a {0}."),nifES:"Inserisci un NIF valido.",nieES:"Inserisci un NIE valido.",cifES:"Inserisci un CIF valido.",currency:"Inserisci una valuta valida."}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ja.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ja.js
new file mode 100644
index 000000000..f72c53dc4
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ja.js
@@ -0,0 +1,36 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: JA (Japanese; 日本語)
+ */
+$.extend( $.validator.messages, {
+ required: "このフィールドは必須です。",
+ remote: "このフィールドを修正してください。",
+ email: "有効なEメールアドレスを入力してください。",
+ url: "有効なURLを入力してください。",
+ date: "有効な日付を入力してください。",
+ dateISO: "有効な日付(ISO)を入力してください。",
+ number: "有効な数字を入力してください。",
+ digits: "数字のみを入力してください。",
+ creditcard: "有効なクレジットカード番号を入力してください。",
+ equalTo: "同じ値をもう一度入力してください。",
+ extension: "有効な拡張子を含む値を入力してください。",
+ maxlength: $.validator.format( "{0} 文字以内で入力してください。" ),
+ minlength: $.validator.format( "{0} 文字以上で入力してください。" ),
+ rangelength: $.validator.format( "{0} 文字から {1} 文字までの値を入力してください。" ),
+ range: $.validator.format( "{0} から {1} までの値を入力してください。" ),
+ step: $.validator.format( "{0} の倍数を入力してください。" ),
+ max: $.validator.format( "{0} 以下の値を入力してください。" ),
+ min: $.validator.format( "{0} 以上の値を入力してください。" )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ja.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ja.min.js
new file mode 100644
index 000000000..d65b85b93
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ja.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"このフィールドは必須です。",remote:"このフィールドを修正してください。",email:"有効なEメールアドレスを入力してください。",url:"有効なURLを入力してください。",date:"有効な日付を入力してください。",dateISO:"有効な日付(ISO)を入力してください。",number:"有効な数字を入力してください。",digits:"数字のみを入力してください。",creditcard:"有効なクレジットカード番号を入力してください。",equalTo:"同じ値をもう一度入力してください。",extension:"有効な拡張子を含む値を入力してください。",maxlength:a.validator.format("{0} 文字以内で入力してください。"),minlength:a.validator.format("{0} 文字以上で入力してください。"),rangelength:a.validator.format("{0} 文字から {1} 文字までの値を入力してください。"),range:a.validator.format("{0} から {1} までの値を入力してください。"),step:a.validator.format("{0} の倍数を入力してください。"),max:a.validator.format("{0} 以下の値を入力してください。"),min:a.validator.format("{0} 以上の値を入力してください。")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ka.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ka.js
new file mode 100644
index 000000000..a4d79ff97
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ka.js
@@ -0,0 +1,35 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: KA (Georgian; ქართული)
+ */
+$.extend( $.validator.messages, {
+ required: "ამ ველის შევსება აუცილებელია.",
+ remote: "გთხოვთ მიუთითოთ სწორი მნიშვნელობა.",
+ email: "გთხოვთ მიუთითოთ ელ-ფოსტის კორექტული მისამართი.",
+ url: "გთხოვთ მიუთითოთ კორექტული URL.",
+ date: "გთხოვთ მიუთითოთ კორექტული თარიღი.",
+ dateISO: "გთხოვთ მიუთითოთ კორექტული თარიღი ISO ფორმატში.",
+ number: "გთხოვთ მიუთითოთ ციფრი.",
+ digits: "გთხოვთ მიუთითოთ მხოლოდ ციფრები.",
+ creditcard: "გთხოვთ მიუთითოთ საკრედიტო ბარათის კორექტული ნომერი.",
+ equalTo: "გთხოვთ მიუთითოთ ასეთივე მნიშვნელობა კიდევ ერთხელ.",
+ extension: "გთხოვთ აირჩიოთ ფაილი კორექტული გაფართოებით.",
+ maxlength: $.validator.format( "დასაშვებია არაუმეტეს {0} სიმბოლო." ),
+ minlength: $.validator.format( "აუცილებელია შეიყვანოთ მინიმუმ {0} სიმბოლო." ),
+ rangelength: $.validator.format( "ტექსტში სიმბოლოების რაოდენობა უნდა იყოს {0}-დან {1}-მდე." ),
+ range: $.validator.format( "გთხოვთ შეიყვანოთ ციფრი {0}-დან {1}-მდე." ),
+ max: $.validator.format( "გთხოვთ შეიყვანოთ ციფრი რომელიც ნაკლებია ან უდრის {0}-ს." ),
+ min: $.validator.format( "გთხოვთ შეიყვანოთ ციფრი რომელიც მეტია ან უდრის {0}-ს." )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ka.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ka.min.js
new file mode 100644
index 000000000..e4dd2036f
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ka.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"ამ ველის შევსება აუცილებელია.",remote:"გთხოვთ მიუთითოთ სწორი მნიშვნელობა.",email:"გთხოვთ მიუთითოთ ელ-ფოსტის კორექტული მისამართი.",url:"გთხოვთ მიუთითოთ კორექტული URL.",date:"გთხოვთ მიუთითოთ კორექტული თარიღი.",dateISO:"გთხოვთ მიუთითოთ კორექტული თარიღი ISO ფორმატში.",number:"გთხოვთ მიუთითოთ ციფრი.",digits:"გთხოვთ მიუთითოთ მხოლოდ ციფრები.",creditcard:"გთხოვთ მიუთითოთ საკრედიტო ბარათის კორექტული ნომერი.",equalTo:"გთხოვთ მიუთითოთ ასეთივე მნიშვნელობა კიდევ ერთხელ.",extension:"გთხოვთ აირჩიოთ ფაილი კორექტული გაფართოებით.",maxlength:a.validator.format("დასაშვებია არაუმეტეს {0} სიმბოლო."),minlength:a.validator.format("აუცილებელია შეიყვანოთ მინიმუმ {0} სიმბოლო."),rangelength:a.validator.format("ტექსტში სიმბოლოების რაოდენობა უნდა იყოს {0}-დან {1}-მდე."),range:a.validator.format("გთხოვთ შეიყვანოთ ციფრი {0}-დან {1}-მდე."),max:a.validator.format("გთხოვთ შეიყვანოთ ციფრი რომელიც ნაკლებია ან უდრის {0}-ს."),min:a.validator.format("გთხოვთ შეიყვანოთ ციფრი რომელიც მეტია ან უდრის {0}-ს.")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_kk.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_kk.js
new file mode 100644
index 000000000..79e3ea828
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_kk.js
@@ -0,0 +1,35 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: KK (Kazakh; қазақ тілі)
+ */
+$.extend( $.validator.messages, {
+ required: "Бұл өрісті міндетті түрде толтырыңыз.",
+ remote: "Дұрыс мағына енгізуіңізді сұраймыз.",
+ email: "Нақты электронды поштаңызды енгізуіңізді сұраймыз.",
+ url: "Нақты URL-ды енгізуіңізді сұраймыз.",
+ date: "Нақты URL-ды енгізуіңізді сұраймыз.",
+ dateISO: "Нақты ISO форматымен сәйкес датасын енгізуіңізді сұраймыз.",
+ number: "Күнді енгізуіңізді сұраймыз.",
+ digits: "Тек қана сандарды енгізуіңізді сұраймыз.",
+ creditcard: "Несие картасының нөмірін дұрыс енгізуіңізді сұраймыз.",
+ equalTo: "Осы мәнді қайта енгізуіңізді сұраймыз.",
+ extension: "Файлдың кеңейтуін дұрыс таңдаңыз.",
+ maxlength: $.validator.format( "Ұзындығы {0} символдан көр болмасын." ),
+ minlength: $.validator.format( "Ұзындығы {0} символдан аз болмасын." ),
+ rangelength: $.validator.format( "Ұзындығы {0}-{1} дейін мән енгізуіңізді сұраймыз." ),
+ range: $.validator.format( "Пожалуйста, введите число от {0} до {1}. - {0} - {1} санын енгізуіңізді сұраймыз." ),
+ max: $.validator.format( "{0} аз немесе тең санын енгізуіңіді сұраймыз." ),
+ min: $.validator.format( "{0} көп немесе тең санын енгізуіңізді сұраймыз." )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_kk.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_kk.min.js
new file mode 100644
index 000000000..2c3cb33b6
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_kk.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Бұл өрісті міндетті түрде толтырыңыз.",remote:"Дұрыс мағына енгізуіңізді сұраймыз.",email:"Нақты электронды поштаңызды енгізуіңізді сұраймыз.",url:"Нақты URL-ды енгізуіңізді сұраймыз.",date:"Нақты URL-ды енгізуіңізді сұраймыз.",dateISO:"Нақты ISO форматымен сәйкес датасын енгізуіңізді сұраймыз.",number:"Күнді енгізуіңізді сұраймыз.",digits:"Тек қана сандарды енгізуіңізді сұраймыз.",creditcard:"Несие картасының нөмірін дұрыс енгізуіңізді сұраймыз.",equalTo:"Осы мәнді қайта енгізуіңізді сұраймыз.",extension:"Файлдың кеңейтуін дұрыс таңдаңыз.",maxlength:a.validator.format("Ұзындығы {0} символдан көр болмасын."),minlength:a.validator.format("Ұзындығы {0} символдан аз болмасын."),rangelength:a.validator.format("Ұзындығы {0}-{1} дейін мән енгізуіңізді сұраймыз."),range:a.validator.format("Пожалуйста, введите число от {0} до {1}. - {0} - {1} санын енгізуіңізді сұраймыз."),max:a.validator.format("{0} аз немесе тең санын енгізуіңіді сұраймыз."),min:a.validator.format("{0} көп немесе тең санын енгізуіңізді сұраймыз.")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ko.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ko.js
new file mode 100644
index 000000000..f94612cb7
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ko.js
@@ -0,0 +1,35 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: KO (Korean; 한국어)
+ */
+$.extend( $.validator.messages, {
+ required: "필수 항목입니다.",
+ remote: "항목을 수정하세요.",
+ email: "유효하지 않은 E-Mail주소입니다.",
+ url: "유효하지 않은 URL입니다.",
+ date: "올바른 날짜를 입력하세요.",
+ dateISO: "올바른 날짜(ISO)를 입력하세요.",
+ number: "유효한 숫자가 아닙니다.",
+ digits: "숫자만 입력 가능합니다.",
+ creditcard: "신용카드 번호가 바르지 않습니다.",
+ equalTo: "같은 값을 다시 입력하세요.",
+ extension: "올바른 확장자가 아닙니다.",
+ maxlength: $.validator.format( "{0}자를 넘을 수 없습니다. " ),
+ minlength: $.validator.format( "{0}자 이상 입력하세요." ),
+ rangelength: $.validator.format( "문자 길이가 {0} 에서 {1} 사이의 값을 입력하세요." ),
+ range: $.validator.format( "{0} 에서 {1} 사이의 값을 입력하세요." ),
+ max: $.validator.format( "{0} 이하의 값을 입력하세요." ),
+ min: $.validator.format( "{0} 이상의 값을 입력하세요." )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ko.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ko.min.js
new file mode 100644
index 000000000..4483ac938
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ko.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"필수 항목입니다.",remote:"항목을 수정하세요.",email:"유효하지 않은 E-Mail주소입니다.",url:"유효하지 않은 URL입니다.",date:"올바른 날짜를 입력하세요.",dateISO:"올바른 날짜(ISO)를 입력하세요.",number:"유효한 숫자가 아닙니다.",digits:"숫자만 입력 가능합니다.",creditcard:"신용카드 번호가 바르지 않습니다.",equalTo:"같은 값을 다시 입력하세요.",extension:"올바른 확장자가 아닙니다.",maxlength:a.validator.format("{0}자를 넘을 수 없습니다. "),minlength:a.validator.format("{0}자 이상 입력하세요."),rangelength:a.validator.format("문자 길이가 {0} 에서 {1} 사이의 값을 입력하세요."),range:a.validator.format("{0} 에서 {1} 사이의 값을 입력하세요."),max:a.validator.format("{0} 이하의 값을 입력하세요."),min:a.validator.format("{0} 이상의 값을 입력하세요.")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_lt.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_lt.js
new file mode 100644
index 000000000..4dea0b110
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_lt.js
@@ -0,0 +1,35 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: LT (Lithuanian; lietuvių kalba)
+ */
+$.extend( $.validator.messages, {
+ required: "Šis laukas yra privalomas.",
+ remote: "Prašau pataisyti šį lauką.",
+ email: "Prašau įvesti teisingą elektroninio pašto adresą.",
+ url: "Prašau įvesti teisingą URL.",
+ date: "Prašau įvesti teisingą datą.",
+ dateISO: "Prašau įvesti teisingą datą (ISO).",
+ number: "Prašau įvesti teisingą skaičių.",
+ digits: "Prašau naudoti tik skaitmenis.",
+ creditcard: "Prašau įvesti teisingą kreditinės kortelės numerį.",
+ equalTo: "Prašau įvestį tą pačią reikšmę dar kartą.",
+ extension: "Prašau įvesti reikšmę su teisingu plėtiniu.",
+ maxlength: $.validator.format( "Prašau įvesti ne daugiau kaip {0} simbolių." ),
+ minlength: $.validator.format( "Prašau įvesti bent {0} simbolius." ),
+ rangelength: $.validator.format( "Prašau įvesti reikšmes, kurių ilgis nuo {0} iki {1} simbolių." ),
+ range: $.validator.format( "Prašau įvesti reikšmę intervale nuo {0} iki {1}." ),
+ max: $.validator.format( "Prašau įvesti reikšmę mažesnę arba lygią {0}." ),
+ min: $.validator.format( "Prašau įvesti reikšmę didesnę arba lygią {0}." )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_lt.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_lt.min.js
new file mode 100644
index 000000000..50217ef1f
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_lt.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Šis laukas yra privalomas.",remote:"Prašau pataisyti šį lauką.",email:"Prašau įvesti teisingą elektroninio pašto adresą.",url:"Prašau įvesti teisingą URL.",date:"Prašau įvesti teisingą datą.",dateISO:"Prašau įvesti teisingą datą (ISO).",number:"Prašau įvesti teisingą skaičių.",digits:"Prašau naudoti tik skaitmenis.",creditcard:"Prašau įvesti teisingą kreditinės kortelės numerį.",equalTo:"Prašau įvestį tą pačią reikšmę dar kartą.",extension:"Prašau įvesti reikšmę su teisingu plėtiniu.",maxlength:a.validator.format("Prašau įvesti ne daugiau kaip {0} simbolių."),minlength:a.validator.format("Prašau įvesti bent {0} simbolius."),rangelength:a.validator.format("Prašau įvesti reikšmes, kurių ilgis nuo {0} iki {1} simbolių."),range:a.validator.format("Prašau įvesti reikšmę intervale nuo {0} iki {1}."),max:a.validator.format("Prašau įvesti reikšmę mažesnę arba lygią {0}."),min:a.validator.format("Prašau įvesti reikšmę didesnę arba lygią {0}.")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_lv.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_lv.js
new file mode 100644
index 000000000..692e3cbcb
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_lv.js
@@ -0,0 +1,35 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: LV (Latvian; latviešu valoda)
+ */
+$.extend( $.validator.messages, {
+ required: "Šis lauks ir obligāts.",
+ remote: "Lūdzu, pārbaudiet šo lauku.",
+ email: "Lūdzu, ievadiet derīgu e-pasta adresi.",
+ url: "Lūdzu, ievadiet derīgu URL adresi.",
+ date: "Lūdzu, ievadiet derīgu datumu.",
+ dateISO: "Lūdzu, ievadiet derīgu datumu (ISO).",
+ number: "Lūdzu, ievadiet derīgu numuru.",
+ digits: "Lūdzu, ievadiet tikai ciparus.",
+ creditcard: "Lūdzu, ievadiet derīgu kredītkartes numuru.",
+ equalTo: "Lūdzu, ievadiet to pašu vēlreiz.",
+ extension: "Lūdzu, ievadiet vērtību ar derīgu paplašinājumu.",
+ maxlength: $.validator.format( "Lūdzu, ievadiet ne vairāk kā {0} rakstzīmes." ),
+ minlength: $.validator.format( "Lūdzu, ievadiet vismaz {0} rakstzīmes." ),
+ rangelength: $.validator.format( "Lūdzu ievadiet {0} līdz {1} rakstzīmes." ),
+ range: $.validator.format( "Lūdzu, ievadiet skaitli no {0} līdz {1}." ),
+ max: $.validator.format( "Lūdzu, ievadiet skaitli, kurš ir mazāks vai vienāds ar {0}." ),
+ min: $.validator.format( "Lūdzu, ievadiet skaitli, kurš ir lielāks vai vienāds ar {0}." )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_lv.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_lv.min.js
new file mode 100644
index 000000000..804d3695e
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_lv.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Šis lauks ir obligāts.",remote:"Lūdzu, pārbaudiet šo lauku.",email:"Lūdzu, ievadiet derīgu e-pasta adresi.",url:"Lūdzu, ievadiet derīgu URL adresi.",date:"Lūdzu, ievadiet derīgu datumu.",dateISO:"Lūdzu, ievadiet derīgu datumu (ISO).",number:"Lūdzu, ievadiet derīgu numuru.",digits:"Lūdzu, ievadiet tikai ciparus.",creditcard:"Lūdzu, ievadiet derīgu kredītkartes numuru.",equalTo:"Lūdzu, ievadiet to pašu vēlreiz.",extension:"Lūdzu, ievadiet vērtību ar derīgu paplašinājumu.",maxlength:a.validator.format("Lūdzu, ievadiet ne vairāk kā {0} rakstzīmes."),minlength:a.validator.format("Lūdzu, ievadiet vismaz {0} rakstzīmes."),rangelength:a.validator.format("Lūdzu ievadiet {0} līdz {1} rakstzīmes."),range:a.validator.format("Lūdzu, ievadiet skaitli no {0} līdz {1}."),max:a.validator.format("Lūdzu, ievadiet skaitli, kurš ir mazāks vai vienāds ar {0}."),min:a.validator.format("Lūdzu, ievadiet skaitli, kurš ir lielāks vai vienāds ar {0}.")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_mk.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_mk.js
new file mode 100644
index 000000000..3013c0399
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_mk.js
@@ -0,0 +1,35 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: MK (Macedonian; македонски јазик)
+ */
+$.extend( $.validator.messages, {
+ required: "Полето е задолжително.",
+ remote: "Поправете го ова поле.",
+ email: "Внесете правилна e-mail адреса.",
+ url: "Внесете правилен URL.",
+ date: "Внесете правилен датум.",
+ dateISO: "Внесете правилен датум (ISO).",
+ number: "Внесете правилен број.",
+ digits: "Внесете само бројки.",
+ creditcard: "Внесете правилен број на кредитната картичка.",
+ equalTo: "Внесете ја истата вредност повторно.",
+ extension: "Внесете вредност со соодветна екстензија.",
+ maxlength: $.validator.format( "Внесете максимално {0} знаци." ),
+ minlength: $.validator.format( "Внесете барем {0} знаци." ),
+ rangelength: $.validator.format( "Внесете вредност со должина помеѓу {0} и {1} знаци." ),
+ range: $.validator.format( "Внесете вредност помеѓу {0} и {1}." ),
+ max: $.validator.format( "Внесете вредност помала или еднаква на {0}." ),
+ min: $.validator.format( "Внесете вредност поголема или еднаква на {0}." )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_mk.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_mk.min.js
new file mode 100644
index 000000000..31d2771eb
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_mk.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Полето е задолжително.",remote:"Поправете го ова поле.",email:"Внесете правилна e-mail адреса.",url:"Внесете правилен URL.",date:"Внесете правилен датум.",dateISO:"Внесете правилен датум (ISO).",number:"Внесете правилен број.",digits:"Внесете само бројки.",creditcard:"Внесете правилен број на кредитната картичка.",equalTo:"Внесете ја истата вредност повторно.",extension:"Внесете вредност со соодветна екстензија.",maxlength:a.validator.format("Внесете максимално {0} знаци."),minlength:a.validator.format("Внесете барем {0} знаци."),rangelength:a.validator.format("Внесете вредност со должина помеѓу {0} и {1} знаци."),range:a.validator.format("Внесете вредност помеѓу {0} и {1}."),max:a.validator.format("Внесете вредност помала или еднаква на {0}."),min:a.validator.format("Внесете вредност поголема или еднаква на {0}.")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_my.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_my.js
new file mode 100644
index 000000000..9b8313b6f
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_my.js
@@ -0,0 +1,35 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: MY (Malay; Melayu)
+ */
+$.extend( $.validator.messages, {
+ required: "Medan ini diperlukan.",
+ remote: "Sila betulkan medan ini.",
+ email: "Sila masukkan alamat emel yang betul.",
+ url: "Sila masukkan URL yang betul.",
+ date: "Sila masukkan tarikh yang betul.",
+ dateISO: "Sila masukkan tarikh(ISO) yang betul.",
+ number: "Sila masukkan nombor yang betul.",
+ digits: "Sila masukkan nilai digit sahaja.",
+ creditcard: "Sila masukkan nombor kredit kad yang betul.",
+ equalTo: "Sila masukkan nilai yang sama semula.",
+ extension: "Sila masukkan nilai yang telah diterima.",
+ maxlength: $.validator.format( "Sila masukkan tidak lebih dari {0} aksara." ),
+ minlength: $.validator.format( "Sila masukkan sekurang-kurangnya {0} aksara." ),
+ rangelength: $.validator.format( "Sila masukkan antara {0} dan {1} panjang aksara." ),
+ range: $.validator.format( "Sila masukkan nilai antara {0} dan {1} aksara." ),
+ max: $.validator.format( "Sila masukkan nilai yang kurang atau sama dengan {0}." ),
+ min: $.validator.format( "Sila masukkan nilai yang lebih atau sama dengan {0}." )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_my.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_my.min.js
new file mode 100644
index 000000000..a3ee3d1e2
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_my.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Medan ini diperlukan.",remote:"Sila betulkan medan ini.",email:"Sila masukkan alamat emel yang betul.",url:"Sila masukkan URL yang betul.",date:"Sila masukkan tarikh yang betul.",dateISO:"Sila masukkan tarikh(ISO) yang betul.",number:"Sila masukkan nombor yang betul.",digits:"Sila masukkan nilai digit sahaja.",creditcard:"Sila masukkan nombor kredit kad yang betul.",equalTo:"Sila masukkan nilai yang sama semula.",extension:"Sila masukkan nilai yang telah diterima.",maxlength:a.validator.format("Sila masukkan tidak lebih dari {0} aksara."),minlength:a.validator.format("Sila masukkan sekurang-kurangnya {0} aksara."),rangelength:a.validator.format("Sila masukkan antara {0} dan {1} panjang aksara."),range:a.validator.format("Sila masukkan nilai antara {0} dan {1} aksara."),max:a.validator.format("Sila masukkan nilai yang kurang atau sama dengan {0}."),min:a.validator.format("Sila masukkan nilai yang lebih atau sama dengan {0}.")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_nl.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_nl.js
new file mode 100644
index 000000000..c688ea249
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_nl.js
@@ -0,0 +1,46 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: NL (Dutch; Nederlands, Vlaams)
+ */
+$.extend( $.validator.messages, {
+ required: "Dit is een verplicht veld.",
+ remote: "Controleer dit veld.",
+ email: "Vul hier een geldig e-mailadres in.",
+ url: "Vul hier een geldige URL in.",
+ date: "Vul hier een geldige datum in.",
+ dateISO: "Vul hier een geldige datum in (ISO-formaat).",
+ number: "Vul hier een geldig getal in.",
+ digits: "Vul hier alleen getallen in.",
+ creditcard: "Vul hier een geldig creditcardnummer in.",
+ equalTo: "Vul hier dezelfde waarde in.",
+ extension: "Vul hier een waarde in met een geldige extensie.",
+ maxlength: $.validator.format( "Vul hier maximaal {0} tekens in." ),
+ minlength: $.validator.format( "Vul hier minimaal {0} tekens in." ),
+ rangelength: $.validator.format( "Vul hier een waarde in van minimaal {0} en maximaal {1} tekens." ),
+ range: $.validator.format( "Vul hier een waarde in van minimaal {0} en maximaal {1}." ),
+ max: $.validator.format( "Vul hier een waarde in kleiner dan of gelijk aan {0}." ),
+ min: $.validator.format( "Vul hier een waarde in groter dan of gelijk aan {0}." ),
+ step: $.validator.format( "Vul hier een veelvoud van {0} in." ),
+
+ // For validations in additional-methods.js
+ iban: "Vul hier een geldig IBAN in.",
+ dateNL: "Vul hier een geldige datum in.",
+ phoneNL: "Vul hier een geldig Nederlands telefoonnummer in.",
+ mobileNL: "Vul hier een geldig Nederlands mobiel telefoonnummer in.",
+ postalcodeNL: "Vul hier een geldige postcode in.",
+ bankaccountNL: "Vul hier een geldig bankrekeningnummer in.",
+ giroaccountNL: "Vul hier een geldig gironummer in.",
+ bankorgiroaccountNL: "Vul hier een geldig bank- of gironummer in."
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_nl.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_nl.min.js
new file mode 100644
index 000000000..03dc8fa67
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_nl.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Dit is een verplicht veld.",remote:"Controleer dit veld.",email:"Vul hier een geldig e-mailadres in.",url:"Vul hier een geldige URL in.",date:"Vul hier een geldige datum in.",dateISO:"Vul hier een geldige datum in (ISO-formaat).",number:"Vul hier een geldig getal in.",digits:"Vul hier alleen getallen in.",creditcard:"Vul hier een geldig creditcardnummer in.",equalTo:"Vul hier dezelfde waarde in.",extension:"Vul hier een waarde in met een geldige extensie.",maxlength:a.validator.format("Vul hier maximaal {0} tekens in."),minlength:a.validator.format("Vul hier minimaal {0} tekens in."),rangelength:a.validator.format("Vul hier een waarde in van minimaal {0} en maximaal {1} tekens."),range:a.validator.format("Vul hier een waarde in van minimaal {0} en maximaal {1}."),max:a.validator.format("Vul hier een waarde in kleiner dan of gelijk aan {0}."),min:a.validator.format("Vul hier een waarde in groter dan of gelijk aan {0}."),step:a.validator.format("Vul hier een veelvoud van {0} in."),iban:"Vul hier een geldig IBAN in.",dateNL:"Vul hier een geldige datum in.",phoneNL:"Vul hier een geldig Nederlands telefoonnummer in.",mobileNL:"Vul hier een geldig Nederlands mobiel telefoonnummer in.",postalcodeNL:"Vul hier een geldige postcode in.",bankaccountNL:"Vul hier een geldig bankrekeningnummer in.",giroaccountNL:"Vul hier een geldig gironummer in.",bankorgiroaccountNL:"Vul hier een geldig bank- of gironummer in."}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_no.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_no.js
new file mode 100644
index 000000000..d6d7be089
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_no.js
@@ -0,0 +1,35 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: NO (Norwegian; Norsk)
+ */
+$.extend( $.validator.messages, {
+ required: "Angi en verdi.",
+ remote: "Ugyldig verdi.",
+ email: "Angi en gyldig epostadresse.",
+ url: "Angi en gyldig URL.",
+ date: "Angi en gyldig dato.",
+ dateISO: "Angi en gyldig dato (&ARING;&ARING;&ARING;&ARING;-MM-DD).",
+ number: "Angi et gyldig tall.",
+ digits: "Skriv kun tall.",
+ equalTo: "Skriv samme verdi igjen.",
+ maxlength: $.validator.format( "Maksimalt {0} tegn." ),
+ minlength: $.validator.format( "Minimum {0} tegn." ),
+ rangelength: $.validator.format( "Angi minimum {0} og maksimum {1} tegn." ),
+ range: $.validator.format( "Angi en verdi mellom {0} og {1}." ),
+ max: $.validator.format( "Angi en verdi som er mindre eller lik {0}." ),
+ min: $.validator.format( "Angi en verdi som er større eller lik {0}." ),
+ step: $.validator.format( "Angi en verdi ganger {0}." ),
+ creditcard: "Angi et gyldig kredittkortnummer."
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_no.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_no.min.js
new file mode 100644
index 000000000..3183a0759
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_no.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Angi en verdi.",remote:"Ugyldig verdi.",email:"Angi en gyldig epostadresse.",url:"Angi en gyldig URL.",date:"Angi en gyldig dato.",dateISO:"Angi en gyldig dato (&ARING;&ARING;&ARING;&ARING;-MM-DD).",number:"Angi et gyldig tall.",digits:"Skriv kun tall.",equalTo:"Skriv samme verdi igjen.",maxlength:a.validator.format("Maksimalt {0} tegn."),minlength:a.validator.format("Minimum {0} tegn."),rangelength:a.validator.format("Angi minimum {0} og maksimum {1} tegn."),range:a.validator.format("Angi en verdi mellom {0} og {1}."),max:a.validator.format("Angi en verdi som er mindre eller lik {0}."),min:a.validator.format("Angi en verdi som er større eller lik {0}."),step:a.validator.format("Angi en verdi ganger {0}."),creditcard:"Angi et gyldig kredittkortnummer."}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_pl.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_pl.js
new file mode 100644
index 000000000..15647970a
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_pl.js
@@ -0,0 +1,38 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: PL (Polish; język polski, polszczyzna)
+ */
+$.extend( $.validator.messages, {
+ required: "To pole jest wymagane.",
+ remote: "Proszę o wypełnienie tego pola.",
+ email: "Proszę o podanie prawidłowego adresu email.",
+ url: "Proszę o podanie prawidłowego URL.",
+ date: "Proszę o podanie prawidłowej daty.",
+ dateISO: "Proszę o podanie prawidłowej daty (ISO).",
+ number: "Proszę o podanie prawidłowej liczby.",
+ digits: "Proszę o podanie samych cyfr.",
+ creditcard: "Proszę o podanie prawidłowej karty kredytowej.",
+ equalTo: "Proszę o podanie tej samej wartości ponownie.",
+ extension: "Proszę o podanie wartości z prawidłowym rozszerzeniem.",
+ nipPL: "Proszę o podanie prawidłowego numeru NIP.",
+ phonePL: "Proszę o podanie prawidłowego numeru telefonu.",
+ maxlength: $.validator.format( "Proszę o podanie nie więcej niż {0} znaków." ),
+ minlength: $.validator.format( "Proszę o podanie przynajmniej {0} znaków." ),
+ rangelength: $.validator.format( "Proszę o podanie wartości o długości od {0} do {1} znaków." ),
+ range: $.validator.format( "Proszę o podanie wartości z przedziału od {0} do {1}." ),
+ max: $.validator.format( "Proszę o podanie wartości mniejszej bądź równej {0}." ),
+ min: $.validator.format( "Proszę o podanie wartości większej bądź równej {0}." ),
+ pattern: $.validator.format( "Pole zawiera niedozwolone znaki." )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_pl.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_pl.min.js
new file mode 100644
index 000000000..4d0317cbc
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_pl.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"To pole jest wymagane.",remote:"Proszę o wypełnienie tego pola.",email:"Proszę o podanie prawidłowego adresu email.",url:"Proszę o podanie prawidłowego URL.",date:"Proszę o podanie prawidłowej daty.",dateISO:"Proszę o podanie prawidłowej daty (ISO).",number:"Proszę o podanie prawidłowej liczby.",digits:"Proszę o podanie samych cyfr.",creditcard:"Proszę o podanie prawidłowej karty kredytowej.",equalTo:"Proszę o podanie tej samej wartości ponownie.",extension:"Proszę o podanie wartości z prawidłowym rozszerzeniem.",nipPL:"Proszę o podanie prawidłowego numeru NIP.",phonePL:"Proszę o podanie prawidłowego numeru telefonu.",maxlength:a.validator.format("Proszę o podanie nie więcej niż {0} znaków."),minlength:a.validator.format("Proszę o podanie przynajmniej {0} znaków."),rangelength:a.validator.format("Proszę o podanie wartości o długości od {0} do {1} znaków."),range:a.validator.format("Proszę o podanie wartości z przedziału od {0} do {1}."),max:a.validator.format("Proszę o podanie wartości mniejszej bądź równej {0}."),min:a.validator.format("Proszę o podanie wartości większej bądź równej {0}."),pattern:a.validator.format("Pole zawiera niedozwolone znaki.")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_pt_BR.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_pt_BR.js
new file mode 100644
index 000000000..1cab7168e
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_pt_BR.js
@@ -0,0 +1,91 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: PT (Portuguese; português)
+ * Region: BR (Brazil)
+ */
+$.extend( $.validator.messages, {
+
+ // Core
+ required: "Este campo é obrigatório.",
+ remote: "Por favor, corrija este campo.",
+ email: "Por favor, forneça um endereço de email válido.",
+ url: "Por favor, forneça uma URL válida.",
+ date: "Por favor, forneça uma data válida.",
+ dateISO: "Por favor, forneça uma data válida (ISO).",
+ number: "Por favor, forneça um número válido.",
+ digits: "Por favor, forneça somente dígitos.",
+ creditcard: "Por favor, forneça um cartão de crédito válido.",
+ equalTo: "Por favor, forneça o mesmo valor novamente.",
+ maxlength: $.validator.format( "Por favor, forneça não mais que {0} caracteres." ),
+ minlength: $.validator.format( "Por favor, forneça ao menos {0} caracteres." ),
+ rangelength: $.validator.format( "Por favor, forneça um valor entre {0} e {1} caracteres de comprimento." ),
+ range: $.validator.format( "Por favor, forneça um valor entre {0} e {1}." ),
+ max: $.validator.format( "Por favor, forneça um valor menor ou igual a {0}." ),
+ min: $.validator.format( "Por favor, forneça um valor maior ou igual a {0}." ),
+ step: $.validator.format( "Por favor, forneça um valor múltiplo de {0}." ),
+
+ // Metodos Adicionais
+ maxWords: $.validator.format( "Por favor, forneça com {0} palavras ou menos." ),
+ minWords: $.validator.format( "Por favor, forneça pelo menos {0} palavras." ),
+ rangeWords: $.validator.format( "Por favor, forneça entre {0} e {1} palavras." ),
+ accept: "Por favor, forneça um tipo válido.",
+ alphanumeric: "Por favor, forneça somente com letras, números e sublinhados.",
+ bankaccountNL: "Por favor, forneça com um número de conta bancária válida.",
+ bankorgiroaccountNL: "Por favor, forneça um banco válido ou número de conta.",
+ bic: "Por favor, forneça um código BIC válido.",
+ cifES: "Por favor, forneça um código CIF válido.",
+ creditcardtypes: "Por favor, forneça um número de cartão de crédito válido.",
+ currency: "Por favor, forneça uma moeda válida.",
+ dateFA: "Por favor, forneça uma data correta.",
+ dateITA: "Por favor, forneça uma data correta.",
+ dateNL: "Por favor, forneça uma data correta.",
+ extension: "Por favor, forneça um valor com uma extensão válida.",
+ giroaccountNL: "Por favor, forneça um número de conta corrente válido.",
+ iban: "Por favor, forneça um código IBAN válido.",
+ integer: "Por favor, forneça um número não decimal.",
+ ipv4: "Por favor, forneça um IPv4 válido.",
+ ipv6: "Por favor, forneça um IPv6 válido.",
+ lettersonly: "Por favor, forneça apenas com letras.",
+ letterswithbasicpunc: "Por favor, forneça apenas letras ou pontuações.",
+ mobileNL: "Por favor, forneceça um número válido de telefone.",
+ mobileUK: "Por favor, forneceça um número válido de telefone.",
+ nieES: "Por favor, forneça um NIE válido.",
+ nifES: "Por favor, forneça um NIF válido.",
+ nowhitespace: "Por favor, não utilize espaços em branco.",
+ pattern: "O formato fornecido é inválido.",
+ phoneNL: "Por favor, forneça um número de telefone válido.",
+ phoneUK: "Por favor, forneça um número de telefone válido.",
+ phoneUS: "Por favor, forneça um número de telefone válido.",
+ phonesUK: "Por favor, forneça um número de telefone válido.",
+ postalCodeCA: "Por favor, forneça um número de código postal válido.",
+ postalcodeIT: "Por favor, forneça um número de código postal válido.",
+ postalcodeNL: "Por favor, forneça um número de código postal válido.",
+ postcodeUK: "Por favor, forneça um número de código postal válido.",
+ postalcodeBR: "Por favor, forneça um CEP válido.",
+ require_from_group: $.validator.format( "Por favor, forneça pelo menos {0} destes campos." ),
+ skip_or_fill_minimum: $.validator.format( "Por favor, optar entre ignorar esses campos ou preencher pelo menos {0} deles." ),
+ stateUS: "Por favor, forneça um estado válido.",
+ strippedminlength: $.validator.format( "Por favor, forneça pelo menos {0} caracteres." ),
+ time: "Por favor, forneça um horário válido, no intervado de 00:00 a 23:59.",
+ time12h: "Por favor, forneça um horário válido, no intervado de 01:00 a 12:59 am/pm.",
+ url2: "Por favor, forneça uma URL válida.",
+ vinUS: "O número de identificação de veículo informado (VIN) é inválido.",
+ zipcodeUS: "Por favor, forneça um código postal americano válido.",
+ ziprange: "O código postal deve estar entre 902xx-xxxx e 905xx-xxxx.",
+ cpfBR: "Por favor, forneça um CPF válido.",
+ nisBR: "Por favor, forneça um NIS/PIS válido.",
+ cnhBR: "Por favor, forneça um CNH válido.",
+ cnpjBR: "Por favor, forneça um CNPJ válido."
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_pt_BR.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_pt_BR.min.js
new file mode 100644
index 000000000..f3280fa35
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_pt_BR.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Este campo é obrigatório.",remote:"Por favor, corrija este campo.",email:"Por favor, forneça um endereço de email válido.",url:"Por favor, forneça uma URL válida.",date:"Por favor, forneça uma data válida.",dateISO:"Por favor, forneça uma data válida (ISO).",number:"Por favor, forneça um número válido.",digits:"Por favor, forneça somente dígitos.",creditcard:"Por favor, forneça um cartão de crédito válido.",equalTo:"Por favor, forneça o mesmo valor novamente.",maxlength:a.validator.format("Por favor, forneça não mais que {0} caracteres."),minlength:a.validator.format("Por favor, forneça ao menos {0} caracteres."),rangelength:a.validator.format("Por favor, forneça um valor entre {0} e {1} caracteres de comprimento."),range:a.validator.format("Por favor, forneça um valor entre {0} e {1}."),max:a.validator.format("Por favor, forneça um valor menor ou igual a {0}."),min:a.validator.format("Por favor, forneça um valor maior ou igual a {0}."),step:a.validator.format("Por favor, forneça um valor múltiplo de {0}."),maxWords:a.validator.format("Por favor, forneça com {0} palavras ou menos."),minWords:a.validator.format("Por favor, forneça pelo menos {0} palavras."),rangeWords:a.validator.format("Por favor, forneça entre {0} e {1} palavras."),accept:"Por favor, forneça um tipo válido.",alphanumeric:"Por favor, forneça somente com letras, números e sublinhados.",bankaccountNL:"Por favor, forneça com um número de conta bancária válida.",bankorgiroaccountNL:"Por favor, forneça um banco válido ou número de conta.",bic:"Por favor, forneça um código BIC válido.",cifES:"Por favor, forneça um código CIF válido.",creditcardtypes:"Por favor, forneça um número de cartão de crédito válido.",currency:"Por favor, forneça uma moeda válida.",dateFA:"Por favor, forneça uma data correta.",dateITA:"Por favor, forneça uma data correta.",dateNL:"Por favor, forneça uma data correta.",extension:"Por favor, forneça um valor com uma extensão válida.",giroaccountNL:"Por favor, forneça um número de conta corrente válido.",iban:"Por favor, forneça um código IBAN válido.",integer:"Por favor, forneça um número não decimal.",ipv4:"Por favor, forneça um IPv4 válido.",ipv6:"Por favor, forneça um IPv6 válido.",lettersonly:"Por favor, forneça apenas com letras.",letterswithbasicpunc:"Por favor, forneça apenas letras ou pontuações.",mobileNL:"Por favor, forneceça um número válido de telefone.",mobileUK:"Por favor, forneceça um número válido de telefone.",nieES:"Por favor, forneça um NIE válido.",nifES:"Por favor, forneça um NIF válido.",nowhitespace:"Por favor, não utilize espaços em branco.",pattern:"O formato fornecido é inválido.",phoneNL:"Por favor, forneça um número de telefone válido.",phoneUK:"Por favor, forneça um número de telefone válido.",phoneUS:"Por favor, forneça um número de telefone válido.",phonesUK:"Por favor, forneça um número de telefone válido.",postalCodeCA:"Por favor, forneça um número de código postal válido.",postalcodeIT:"Por favor, forneça um número de código postal válido.",postalcodeNL:"Por favor, forneça um número de código postal válido.",postcodeUK:"Por favor, forneça um número de código postal válido.",postalcodeBR:"Por favor, forneça um CEP válido.",require_from_group:a.validator.format("Por favor, forneça pelo menos {0} destes campos."),skip_or_fill_minimum:a.validator.format("Por favor, optar entre ignorar esses campos ou preencher pelo menos {0} deles."),stateUS:"Por favor, forneça um estado válido.",strippedminlength:a.validator.format("Por favor, forneça pelo menos {0} caracteres."),time:"Por favor, forneça um horário válido, no intervado de 00:00 a 23:59.",time12h:"Por favor, forneça um horário válido, no intervado de 01:00 a 12:59 am/pm.",url2:"Por favor, forneça uma URL válida.",vinUS:"O número de identificação de veículo informado (VIN) é inválido.",zipcodeUS:"Por favor, forneça um código postal americano válido.",ziprange:"O código postal deve estar entre 902xx-xxxx e 905xx-xxxx.",cpfBR:"Por favor, forneça um CPF válido.",nisBR:"Por favor, forneça um NIS/PIS válido.",cnhBR:"Por favor, forneça um CNH válido.",cnpjBR:"Por favor, forneça um CNPJ válido."}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_pt_PT.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_pt_PT.js
new file mode 100644
index 000000000..d3b3ae579
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_pt_PT.js
@@ -0,0 +1,39 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: PT (Portuguese; português)
+ * Region: PT (Portugal)
+ */
+$.extend( $.validator.messages, {
+ required: "Campo de preenchimento obrigatório.",
+ remote: "Por favor, corrija este campo.",
+ email: "Por favor, introduza um endereço eletrónico válido.",
+ url: "Por favor, introduza um URL válido.",
+ date: "Por favor, introduza uma data válida.",
+ dateISO: "Por favor, introduza uma data válida (ISO).",
+ number: "Por favor, introduza um número válido.",
+ digits: "Por favor, introduza apenas dígitos.",
+ creditcard: "Por favor, introduza um número de cartão de crédito válido.",
+ equalTo: "Por favor, introduza de novo o mesmo valor.",
+ extension: "Por favor, introduza um ficheiro com uma extensão válida.",
+ maxlength: $.validator.format( "Por favor, não introduza mais do que {0} caracteres." ),
+ minlength: $.validator.format( "Por favor, introduza pelo menos {0} caracteres." ),
+ rangelength: $.validator.format( "Por favor, introduza entre {0} e {1} caracteres." ),
+ range: $.validator.format( "Por favor, introduza um valor entre {0} e {1}." ),
+ max: $.validator.format( "Por favor, introduza um valor menor ou igual a {0}." ),
+ min: $.validator.format( "Por favor, introduza um valor maior ou igual a {0}." ),
+ nifES: "Por favor, introduza um NIF válido.",
+ nieES: "Por favor, introduza um NIE válido.",
+ cifES: "Por favor, introduza um CIF válido."
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_pt_PT.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_pt_PT.min.js
new file mode 100644
index 000000000..479c7895e
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_pt_PT.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Campo de preenchimento obrigatório.",remote:"Por favor, corrija este campo.",email:"Por favor, introduza um endereço eletrónico válido.",url:"Por favor, introduza um URL válido.",date:"Por favor, introduza uma data válida.",dateISO:"Por favor, introduza uma data válida (ISO).",number:"Por favor, introduza um número válido.",digits:"Por favor, introduza apenas dígitos.",creditcard:"Por favor, introduza um número de cartão de crédito válido.",equalTo:"Por favor, introduza de novo o mesmo valor.",extension:"Por favor, introduza um ficheiro com uma extensão válida.",maxlength:a.validator.format("Por favor, não introduza mais do que {0} caracteres."),minlength:a.validator.format("Por favor, introduza pelo menos {0} caracteres."),rangelength:a.validator.format("Por favor, introduza entre {0} e {1} caracteres."),range:a.validator.format("Por favor, introduza um valor entre {0} e {1}."),max:a.validator.format("Por favor, introduza um valor menor ou igual a {0}."),min:a.validator.format("Por favor, introduza um valor maior ou igual a {0}."),nifES:"Por favor, introduza um NIF válido.",nieES:"Por favor, introduza um NIE válido.",cifES:"Por favor, introduza um CIF válido."}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ro.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ro.js
new file mode 100644
index 000000000..ad4f9cdcb
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ro.js
@@ -0,0 +1,35 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: RO (Romanian, limba română)
+ */
+$.extend( $.validator.messages, {
+ required: "Acest câmp este obligatoriu.",
+ remote: "Te rugăm să completezi acest câmp.",
+ email: "Te rugăm să introduci o adresă de email validă.",
+ url: "Te rugăm sa introduci o adresă URL validă.",
+ date: "Te rugăm să introduci o dată corectă.",
+ dateISO: "Te rugăm să introduci o dată (ISO) corectă.",
+ number: "Te rugăm să introduci un număr întreg valid.",
+ digits: "Te rugăm să introduci doar cifre.",
+ creditcard: "Te rugăm să introduci un numar de carte de credit valid.",
+ equalTo: "Te rugăm să reintroduci valoarea.",
+ extension: "Te rugăm să introduci o valoare cu o extensie validă.",
+ maxlength: $.validator.format( "Te rugăm să nu introduci mai mult de {0} caractere." ),
+ minlength: $.validator.format( "Te rugăm să introduci cel puțin {0} caractere." ),
+ rangelength: $.validator.format( "Te rugăm să introduci o valoare între {0} și {1} caractere." ),
+ range: $.validator.format( "Te rugăm să introduci o valoare între {0} și {1}." ),
+ max: $.validator.format( "Te rugăm să introduci o valoare egal sau mai mică decât {0}." ),
+ min: $.validator.format( "Te rugăm să introduci o valoare egal sau mai mare decât {0}." )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ro.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ro.min.js
new file mode 100644
index 000000000..e697f747f
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ro.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Acest câmp este obligatoriu.",remote:"Te rugăm să completezi acest câmp.",email:"Te rugăm să introduci o adresă de email validă.",url:"Te rugăm sa introduci o adresă URL validă.",date:"Te rugăm să introduci o dată corectă.",dateISO:"Te rugăm să introduci o dată (ISO) corectă.",number:"Te rugăm să introduci un număr întreg valid.",digits:"Te rugăm să introduci doar cifre.",creditcard:"Te rugăm să introduci un numar de carte de credit valid.",equalTo:"Te rugăm să reintroduci valoarea.",extension:"Te rugăm să introduci o valoare cu o extensie validă.",maxlength:a.validator.format("Te rugăm să nu introduci mai mult de {0} caractere."),minlength:a.validator.format("Te rugăm să introduci cel puțin {0} caractere."),rangelength:a.validator.format("Te rugăm să introduci o valoare între {0} și {1} caractere."),range:a.validator.format("Te rugăm să introduci o valoare între {0} și {1}."),max:a.validator.format("Te rugăm să introduci o valoare egal sau mai mică decât {0}."),min:a.validator.format("Te rugăm să introduci o valoare egal sau mai mare decât {0}.")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ru.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ru.js
new file mode 100644
index 000000000..9f600510d
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ru.js
@@ -0,0 +1,35 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: RU (Russian; русский язык)
+ */
+$.extend( $.validator.messages, {
+ required: "Это поле необходимо заполнить.",
+ remote: "Пожалуйста, введите правильное значение.",
+ email: "Пожалуйста, введите корректный адрес электронной почты.",
+ url: "Пожалуйста, введите корректный URL.",
+ date: "Пожалуйста, введите корректную дату.",
+ dateISO: "Пожалуйста, введите корректную дату в формате ISO.",
+ number: "Пожалуйста, введите число.",
+ digits: "Пожалуйста, вводите только цифры.",
+ creditcard: "Пожалуйста, введите правильный номер кредитной карты.",
+ equalTo: "Пожалуйста, введите такое же значение ещё раз.",
+ extension: "Пожалуйста, выберите файл с правильным расширением.",
+ maxlength: $.validator.format( "Пожалуйста, введите не больше {0} символов." ),
+ minlength: $.validator.format( "Пожалуйста, введите не меньше {0} символов." ),
+ rangelength: $.validator.format( "Пожалуйста, введите значение длиной от {0} до {1} символов." ),
+ range: $.validator.format( "Пожалуйста, введите число от {0} до {1}." ),
+ max: $.validator.format( "Пожалуйста, введите число, меньшее или равное {0}." ),
+ min: $.validator.format( "Пожалуйста, введите число, большее или равное {0}." )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ru.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ru.min.js
new file mode 100644
index 000000000..2efab3eb9
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ru.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Это поле необходимо заполнить.",remote:"Пожалуйста, введите правильное значение.",email:"Пожалуйста, введите корректный адрес электронной почты.",url:"Пожалуйста, введите корректный URL.",date:"Пожалуйста, введите корректную дату.",dateISO:"Пожалуйста, введите корректную дату в формате ISO.",number:"Пожалуйста, введите число.",digits:"Пожалуйста, вводите только цифры.",creditcard:"Пожалуйста, введите правильный номер кредитной карты.",equalTo:"Пожалуйста, введите такое же значение ещё раз.",extension:"Пожалуйста, выберите файл с правильным расширением.",maxlength:a.validator.format("Пожалуйста, введите не больше {0} символов."),minlength:a.validator.format("Пожалуйста, введите не меньше {0} символов."),rangelength:a.validator.format("Пожалуйста, введите значение длиной от {0} до {1} символов."),range:a.validator.format("Пожалуйста, введите число от {0} до {1}."),max:a.validator.format("Пожалуйста, введите число, меньшее или равное {0}."),min:a.validator.format("Пожалуйста, введите число, большее или равное {0}.")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sd.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sd.js
new file mode 100644
index 000000000..25741679f
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sd.js
@@ -0,0 +1,35 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: SD (Sindhi; سنڌي)
+ */
+$.extend( $.validator.messages, {
+ required: "هنن جاين جي ضرورت آهي",
+ remote: "هنن جاين جي ضرورت آهي",
+ email: "لکيل اي ميل غلط آهي",
+ url: "لکيل ايڊريس غلط آهي",
+ date: "لکيل تاريخ غلط آهي",
+ dateISO: "جي معيار جي مطابق نه آهي (ISO) لکيل تاريخ",
+ number: "لکيل انگ صحيح ناهي",
+ digits: "رڳو انگ داخل ڪري سگهجي ٿو",
+ creditcard: "لکيل ڪارڊ نمبر صحيح نه آهي",
+ equalTo: "داخل ٿيل ڀيٽ صحيح نه آهي",
+ extension: "لکيل غلط آهي",
+ maxlength: $.validator.format( "وڌ کان وڌ {0} جي داخلا ڪري سگهجي ٿي" ),
+ minlength: $.validator.format( "گهٽ ۾ گهٽ {0} جي داخلا ڪرڻ ضروري آهي" ),
+ rangelength: $.validator.format( "داخلا جو {0} ۽ {1}جي وچ ۾ هجڻ ضروري آهي" ),
+ range: $.validator.format( "داخلا جو {0} ۽ {1}جي وچ ۾ هجڻ ضروري آهي" ),
+ max: $.validator.format( "وڌ کان وڌ {0} جي داخلا ڪري سگهجي ٿي" ),
+ min: $.validator.format( "گهٽ ۾ گهٽ {0} جي داخلا ڪرڻ ضروري آهي" )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sd.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sd.min.js
new file mode 100644
index 000000000..02ea5937f
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sd.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"هنن جاين جي ضرورت آهي",remote:"هنن جاين جي ضرورت آهي",email:"لکيل اي ميل غلط آهي",url:"لکيل ايڊريس غلط آهي",date:"لکيل تاريخ غلط آهي",dateISO:"جي معيار جي مطابق نه آهي (ISO) لکيل تاريخ",number:"لکيل انگ صحيح ناهي",digits:"رڳو انگ داخل ڪري سگهجي ٿو",creditcard:"لکيل ڪارڊ نمبر صحيح نه آهي",equalTo:"داخل ٿيل ڀيٽ صحيح نه آهي",extension:"لکيل غلط آهي",maxlength:a.validator.format("وڌ کان وڌ {0} جي داخلا ڪري سگهجي ٿي"),minlength:a.validator.format("گهٽ ۾ گهٽ {0} جي داخلا ڪرڻ ضروري آهي"),rangelength:a.validator.format("داخلا جو {0} ۽ {1}جي وچ ۾ هجڻ ضروري آهي"),range:a.validator.format("داخلا جو {0} ۽ {1}جي وچ ۾ هجڻ ضروري آهي"),max:a.validator.format("وڌ کان وڌ {0} جي داخلا ڪري سگهجي ٿي"),min:a.validator.format("گهٽ ۾ گهٽ {0} جي داخلا ڪرڻ ضروري آهي")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_si.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_si.js
new file mode 100644
index 000000000..8d45b74ad
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_si.js
@@ -0,0 +1,35 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: SI (Slovenian)
+ */
+$.extend( $.validator.messages, {
+ required: "To polje je obvezno.",
+ remote: "Vpis v tem polju ni v pravi obliki.",
+ email: "Prosimo, vnesite pravi email naslov.",
+ url: "Prosimo, vnesite pravi URL.",
+ date: "Prosimo, vnesite pravi datum.",
+ dateISO: "Prosimo, vnesite pravi datum (ISO).",
+ number: "Prosimo, vnesite pravo številko.",
+ digits: "Prosimo, vnesite samo številke.",
+ creditcard: "Prosimo, vnesite pravo številko kreditne kartice.",
+ equalTo: "Prosimo, ponovno vnesite enako vsebino.",
+ extension: "Prosimo, vnesite vsebino z pravo končnico.",
+ maxlength: $.validator.format( "Prosimo, da ne vnašate več kot {0} znakov." ),
+ minlength: $.validator.format( "Prosimo, vnesite vsaj {0} znakov." ),
+ rangelength: $.validator.format( "Prosimo, vnesite od {0} do {1} znakov." ),
+ range: $.validator.format( "Prosimo, vnesite vrednost med {0} in {1}." ),
+ max: $.validator.format( "Prosimo, vnesite vrednost manjšo ali enako {0}." ),
+ min: $.validator.format( "Prosimo, vnesite vrednost večjo ali enako {0}." )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_si.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_si.min.js
new file mode 100644
index 000000000..8c7db2e73
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_si.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"To polje je obvezno.",remote:"Vpis v tem polju ni v pravi obliki.",email:"Prosimo, vnesite pravi email naslov.",url:"Prosimo, vnesite pravi URL.",date:"Prosimo, vnesite pravi datum.",dateISO:"Prosimo, vnesite pravi datum (ISO).",number:"Prosimo, vnesite pravo številko.",digits:"Prosimo, vnesite samo številke.",creditcard:"Prosimo, vnesite pravo številko kreditne kartice.",equalTo:"Prosimo, ponovno vnesite enako vsebino.",extension:"Prosimo, vnesite vsebino z pravo končnico.",maxlength:a.validator.format("Prosimo, da ne vnašate več kot {0} znakov."),minlength:a.validator.format("Prosimo, vnesite vsaj {0} znakov."),rangelength:a.validator.format("Prosimo, vnesite od {0} do {1} znakov."),range:a.validator.format("Prosimo, vnesite vrednost med {0} in {1}."),max:a.validator.format("Prosimo, vnesite vrednost manjšo ali enako {0}."),min:a.validator.format("Prosimo, vnesite vrednost večjo ali enako {0}.")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sk.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sk.js
new file mode 100644
index 000000000..0f9becf59
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sk.js
@@ -0,0 +1,33 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: SK (Slovak; slovenčina, slovenský jazyk)
+ */
+$.extend( $.validator.messages, {
+ required: "Povinné zadať.",
+ maxlength: $.validator.format( "Maximálne {0} znakov." ),
+ minlength: $.validator.format( "Minimálne {0} znakov." ),
+ rangelength: $.validator.format( "Minimálne {0} a maximálne {1} znakov." ),
+ email: "E-mailová adresa musí byť platná.",
+ url: "URL musí byť platná.",
+ date: "Musí byť dátum.",
+ number: "Musí byť číslo.",
+ digits: "Môže obsahovať iba číslice.",
+ equalTo: "Dve hodnoty sa musia rovnať.",
+ range: $.validator.format( "Musí byť medzi {0} a {1}." ),
+ max: $.validator.format( "Nemôže byť viac ako {0}." ),
+ min: $.validator.format( "Nemôže byť menej ako {0}." ),
+ creditcard: "Číslo platobnej karty musí byť platné.",
+ step: $.validator.format( "Musí byť násobkom čísla {0}." )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sk.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sk.min.js
new file mode 100644
index 000000000..abd0f13e0
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sk.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Povinné zadať.",maxlength:a.validator.format("Maximálne {0} znakov."),minlength:a.validator.format("Minimálne {0} znakov."),rangelength:a.validator.format("Minimálne {0} a maximálne {1} znakov."),email:"E-mailová adresa musí byť platná.",url:"URL musí byť platná.",date:"Musí byť dátum.",number:"Musí byť číslo.",digits:"Môže obsahovať iba číslice.",equalTo:"Dve hodnoty sa musia rovnať.",range:a.validator.format("Musí byť medzi {0} a {1}."),max:a.validator.format("Nemôže byť viac ako {0}."),min:a.validator.format("Nemôže byť menej ako {0}."),creditcard:"Číslo platobnej karty musí byť platné.",step:a.validator.format("Musí byť násobkom čísla {0}.")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sl.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sl.js
new file mode 100644
index 000000000..9902b4482
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sl.js
@@ -0,0 +1,35 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Language: SL (Slovenian; slovenski jezik)
+ */
+$.extend( $.validator.messages, {
+ required: "To polje je obvezno.",
+ remote: "Prosimo popravite to polje.",
+ email: "Prosimo vnesite veljaven email naslov.",
+ url: "Prosimo vnesite veljaven URL naslov.",
+ date: "Prosimo vnesite veljaven datum.",
+ dateISO: "Prosimo vnesite veljaven ISO datum.",
+ number: "Prosimo vnesite veljavno število.",
+ digits: "Prosimo vnesite samo števila.",
+ creditcard: "Prosimo vnesite veljavno številko kreditne kartice.",
+ equalTo: "Prosimo ponovno vnesite vrednost.",
+ extension: "Prosimo vnesite vrednost z veljavno končnico.",
+ maxlength: $.validator.format( "Prosimo vnesite največ {0} znakov." ),
+ minlength: $.validator.format( "Prosimo vnesite najmanj {0} znakov." ),
+ rangelength: $.validator.format( "Prosimo vnesite najmanj {0} in največ {1} znakov." ),
+ range: $.validator.format( "Prosimo vnesite vrednost med {0} in {1}." ),
+ max: $.validator.format( "Prosimo vnesite vrednost manjše ali enako {0}." ),
+ min: $.validator.format( "Prosimo vnesite vrednost večje ali enako {0}." )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sl.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sl.min.js
new file mode 100644
index 000000000..20e3ffa13
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sl.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"To polje je obvezno.",remote:"Prosimo popravite to polje.",email:"Prosimo vnesite veljaven email naslov.",url:"Prosimo vnesite veljaven URL naslov.",date:"Prosimo vnesite veljaven datum.",dateISO:"Prosimo vnesite veljaven ISO datum.",number:"Prosimo vnesite veljavno število.",digits:"Prosimo vnesite samo števila.",creditcard:"Prosimo vnesite veljavno številko kreditne kartice.",equalTo:"Prosimo ponovno vnesite vrednost.",extension:"Prosimo vnesite vrednost z veljavno končnico.",maxlength:a.validator.format("Prosimo vnesite največ {0} znakov."),minlength:a.validator.format("Prosimo vnesite najmanj {0} znakov."),rangelength:a.validator.format("Prosimo vnesite najmanj {0} in največ {1} znakov."),range:a.validator.format("Prosimo vnesite vrednost med {0} in {1}."),max:a.validator.format("Prosimo vnesite vrednost manjše ali enako {0}."),min:a.validator.format("Prosimo vnesite vrednost večje ali enako {0}.")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sr.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sr.js
new file mode 100644
index 000000000..f6c5143c0
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sr.js
@@ -0,0 +1,36 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: SR (Serbian; српски језик)
+ */
+$.extend( $.validator.messages, {
+ required: "Поље је обавезно.",
+ remote: "Средите ово поље.",
+ email: "Унесите исправну и-мејл адресу.",
+ url: "Унесите исправан URL.",
+ date: "Унесите исправан датум.",
+ dateISO: "Унесите исправан датум (ISO).",
+ number: "Унесите исправан број.",
+ digits: "Унесите само цифе.",
+ creditcard: "Унесите исправан број кредитне картице.",
+ equalTo: "Унесите исту вредност поново.",
+ extension: "Унесите вредност са одговарајућом екстензијом.",
+ maxlength: $.validator.format( "Унесите мање од {0} карактера." ),
+ minlength: $.validator.format( "Унесите барем {0} карактера." ),
+ rangelength: $.validator.format( "Унесите вредност дугачку између {0} и {1} карактера." ),
+ range: $.validator.format( "Унесите вредност између {0} и {1}." ),
+ max: $.validator.format( "Унесите вредност мању или једнаку {0}." ),
+ min: $.validator.format( "Унесите вредност већу или једнаку {0}." ),
+ step: $.validator.format( "Унесите вредност која је умножак броја {0}." )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sr.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sr.min.js
new file mode 100644
index 000000000..3ef61013e
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sr.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Поље је обавезно.",remote:"Средите ово поље.",email:"Унесите исправну и-мејл адресу.",url:"Унесите исправан URL.",date:"Унесите исправан датум.",dateISO:"Унесите исправан датум (ISO).",number:"Унесите исправан број.",digits:"Унесите само цифе.",creditcard:"Унесите исправан број кредитне картице.",equalTo:"Унесите исту вредност поново.",extension:"Унесите вредност са одговарајућом екстензијом.",maxlength:a.validator.format("Унесите мање од {0} карактера."),minlength:a.validator.format("Унесите барем {0} карактера."),rangelength:a.validator.format("Унесите вредност дугачку између {0} и {1} карактера."),range:a.validator.format("Унесите вредност између {0} и {1}."),max:a.validator.format("Унесите вредност мању или једнаку {0}."),min:a.validator.format("Унесите вредност већу или једнаку {0}."),step:a.validator.format("Унесите вредност која је умножак броја {0}.")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sr_lat.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sr_lat.js
new file mode 100644
index 000000000..c58f17825
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sr_lat.js
@@ -0,0 +1,36 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: SR (Serbian - Latin alphabet; srpski jezik - latinica)
+ */
+$.extend( $.validator.messages, {
+ required: "Polje je obavezno.",
+ remote: "Sredite ovo polje.",
+ email: "Unesite ispravnu e-mail adresu.",
+ url: "Unesite ispravan URL.",
+ date: "Unesite ispravan datum.",
+ dateISO: "Unesite ispravan datum (ISO).",
+ number: "Unesite ispravan broj.",
+ digits: "Unesite samo cifre.",
+ creditcard: "Unesite ispravan broj kreditne kartice.",
+ equalTo: "Unesite istu vrednost ponovo.",
+ extension: "Unesite vrednost sa odgovarajućom ekstenzijom.",
+ maxlength: $.validator.format( "Unesite manje od {0} karaktera." ),
+ minlength: $.validator.format( "Unesite barem {0} karaktera." ),
+ rangelength: $.validator.format( "Unesite vrednost dugačku između {0} i {1} karaktera." ),
+ range: $.validator.format( "Unesite vrednost između {0} i {1}." ),
+ max: $.validator.format( "Unesite vrednost manju ili jednaku {0}." ),
+ min: $.validator.format( "Unesite vrednost veću ili jednaku {0}." ),
+ step: $.validator.format( "Unesite vrednost koja je umnožak broja {0}." )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sr_lat.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sr_lat.min.js
new file mode 100644
index 000000000..d513f3138
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sr_lat.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Polje je obavezno.",remote:"Sredite ovo polje.",email:"Unesite ispravnu e-mail adresu.",url:"Unesite ispravan URL.",date:"Unesite ispravan datum.",dateISO:"Unesite ispravan datum (ISO).",number:"Unesite ispravan broj.",digits:"Unesite samo cifre.",creditcard:"Unesite ispravan broj kreditne kartice.",equalTo:"Unesite istu vrednost ponovo.",extension:"Unesite vrednost sa odgovarajućom ekstenzijom.",maxlength:a.validator.format("Unesite manje od {0} karaktera."),minlength:a.validator.format("Unesite barem {0} karaktera."),rangelength:a.validator.format("Unesite vrednost dugačku između {0} i {1} karaktera."),range:a.validator.format("Unesite vrednost između {0} i {1}."),max:a.validator.format("Unesite vrednost manju ili jednaku {0}."),min:a.validator.format("Unesite vrednost veću ili jednaku {0}."),step:a.validator.format("Unesite vrednost koja je umnožak broja {0}.")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sv.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sv.js
new file mode 100644
index 000000000..c19e8ca02
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sv.js
@@ -0,0 +1,35 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: SV (Swedish; Svenska)
+ */
+$.extend( $.validator.messages, {
+ required: "Detta fält är obligatoriskt.",
+ remote: "Var snäll och åtgärda detta fält.",
+ maxlength: $.validator.format( "Du får ange högst {0} tecken." ),
+ minlength: $.validator.format( "Du måste ange minst {0} tecken." ),
+ rangelength: $.validator.format( "Ange minst {0} och max {1} tecken." ),
+ email: "Ange en korrekt e-postadress.",
+ url: "Ange en korrekt URL.",
+ date: "Ange ett korrekt datum.",
+ dateISO: "Ange ett korrekt datum (ÅÅÅÅ-MM-DD).",
+ number: "Ange ett korrekt nummer.",
+ digits: "Ange endast siffror.",
+ equalTo: "Ange samma värde igen.",
+ range: $.validator.format( "Ange ett värde mellan {0} och {1}." ),
+ max: $.validator.format( "Ange ett värde som är mindre eller lika med {0}." ),
+ min: $.validator.format( "Ange ett värde som är större eller lika med {0}." ),
+ creditcard: "Ange ett korrekt kreditkortsnummer.",
+ pattern: "Ogiltigt format."
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sv.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sv.min.js
new file mode 100644
index 000000000..15716de08
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_sv.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Detta fält är obligatoriskt.",remote:"Var snäll och åtgärda detta fält.",maxlength:a.validator.format("Du får ange högst {0} tecken."),minlength:a.validator.format("Du måste ange minst {0} tecken."),rangelength:a.validator.format("Ange minst {0} och max {1} tecken."),email:"Ange en korrekt e-postadress.",url:"Ange en korrekt URL.",date:"Ange ett korrekt datum.",dateISO:"Ange ett korrekt datum (ÅÅÅÅ-MM-DD).",number:"Ange ett korrekt nummer.",digits:"Ange endast siffror.",equalTo:"Ange samma värde igen.",range:a.validator.format("Ange ett värde mellan {0} och {1}."),max:a.validator.format("Ange ett värde som är mindre eller lika med {0}."),min:a.validator.format("Ange ett värde som är större eller lika med {0}."),creditcard:"Ange ett korrekt kreditkortsnummer.",pattern:"Ogiltigt format."}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_th.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_th.js
new file mode 100644
index 000000000..0ca954d3a
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_th.js
@@ -0,0 +1,35 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: TH (Thai; ไทย)
+ */
+$.extend( $.validator.messages, {
+ required: "โปรดระบุ",
+ remote: "โปรดแก้ไขให้ถูกต้อง",
+ email: "โปรดระบุที่อยู่อีเมล์ที่ถูกต้อง",
+ url: "โปรดระบุ URL ที่ถูกต้อง",
+ date: "โปรดระบุวันที่ ที่ถูกต้อง",
+ dateISO: "โปรดระบุวันที่ ที่ถูกต้อง (ระบบ ISO).",
+ number: "โปรดระบุทศนิยมที่ถูกต้อง",
+ digits: "โปรดระบุจำนวนเต็มที่ถูกต้อง",
+ creditcard: "โปรดระบุรหัสบัตรเครดิตที่ถูกต้อง",
+ equalTo: "โปรดระบุค่าเดิมอีกครั้ง",
+ extension: "โปรดระบุค่าที่มีส่วนขยายที่ถูกต้อง",
+ maxlength: $.validator.format( "โปรดอย่าระบุค่าที่ยาวกว่า {0} อักขระ" ),
+ minlength: $.validator.format( "โปรดอย่าระบุค่าที่สั้นกว่า {0} อักขระ" ),
+ rangelength: $.validator.format( "โปรดอย่าระบุค่าความยาวระหว่าง {0} ถึง {1} อักขระ" ),
+ range: $.validator.format( "โปรดระบุค่าระหว่าง {0} และ {1}" ),
+ max: $.validator.format( "โปรดระบุค่าน้อยกว่าหรือเท่ากับ {0}" ),
+ min: $.validator.format( "โปรดระบุค่ามากกว่าหรือเท่ากับ {0}" )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_th.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_th.min.js
new file mode 100644
index 000000000..82f70ea17
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_th.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"โปรดระบุ",remote:"โปรดแก้ไขให้ถูกต้อง",email:"โปรดระบุที่อยู่อีเมล์ที่ถูกต้อง",url:"โปรดระบุ URL ที่ถูกต้อง",date:"โปรดระบุวันที่ ที่ถูกต้อง",dateISO:"โปรดระบุวันที่ ที่ถูกต้อง (ระบบ ISO).",number:"โปรดระบุทศนิยมที่ถูกต้อง",digits:"โปรดระบุจำนวนเต็มที่ถูกต้อง",creditcard:"โปรดระบุรหัสบัตรเครดิตที่ถูกต้อง",equalTo:"โปรดระบุค่าเดิมอีกครั้ง",extension:"โปรดระบุค่าที่มีส่วนขยายที่ถูกต้อง",maxlength:a.validator.format("โปรดอย่าระบุค่าที่ยาวกว่า {0} อักขระ"),minlength:a.validator.format("โปรดอย่าระบุค่าที่สั้นกว่า {0} อักขระ"),rangelength:a.validator.format("โปรดอย่าระบุค่าความยาวระหว่าง {0} ถึง {1} อักขระ"),range:a.validator.format("โปรดระบุค่าระหว่าง {0} และ {1}"),max:a.validator.format("โปรดระบุค่าน้อยกว่าหรือเท่ากับ {0}"),min:a.validator.format("โปรดระบุค่ามากกว่าหรือเท่ากับ {0}")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_tj.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_tj.js
new file mode 100644
index 000000000..45c7dfd52
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_tj.js
@@ -0,0 +1,35 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: TJ (Tajikistan; Забони тоҷикӣ)
+ */
+$.extend( $.validator.messages, {
+ required: "Ворид кардани ин филд маҷбури аст.",
+ remote: "Илтимос, маълумоти саҳеҳ ворид кунед.",
+ email: "Илтимос, почтаи электронии саҳеҳ ворид кунед.",
+ url: "Илтимос, URL адреси саҳеҳ ворид кунед.",
+ date: "Илтимос, таърихи саҳеҳ ворид кунед.",
+ dateISO: "Илтимос, таърихи саҳеҳи (ISO)ӣ ворид кунед.",
+ number: "Илтимос, рақамҳои саҳеҳ ворид кунед.",
+ digits: "Илтимос, танҳо рақам ворид кунед.",
+ creditcard: "Илтимос, кредит карди саҳеҳ ворид кунед.",
+ equalTo: "Илтимос, миқдори баробар ворид кунед.",
+ extension: "Илтимос, қофияи файлро дуруст интихоб кунед.",
+ maxlength: $.validator.format( "Илтимос, бештар аз {0} рамз ворид накунед." ),
+ minlength: $.validator.format( "Илтимос, камтар аз {0} рамз ворид накунед." ),
+ rangelength: $.validator.format( "Илтимос, камтар аз {0} ва зиёда аз {1} рамз ворид кунед." ),
+ range: $.validator.format( "Илтимос, аз {0} то {1} рақам зиёд ворид кунед." ),
+ max: $.validator.format( "Илтимос, бештар аз {0} рақам ворид накунед." ),
+ min: $.validator.format( "Илтимос, камтар аз {0} рақам ворид накунед." )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_tj.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_tj.min.js
new file mode 100644
index 000000000..eb92e2bce
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_tj.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Ворид кардани ин филд маҷбури аст.",remote:"Илтимос, маълумоти саҳеҳ ворид кунед.",email:"Илтимос, почтаи электронии саҳеҳ ворид кунед.",url:"Илтимос, URL адреси саҳеҳ ворид кунед.",date:"Илтимос, таърихи саҳеҳ ворид кунед.",dateISO:"Илтимос, таърихи саҳеҳи (ISO)ӣ ворид кунед.",number:"Илтимос, рақамҳои саҳеҳ ворид кунед.",digits:"Илтимос, танҳо рақам ворид кунед.",creditcard:"Илтимос, кредит карди саҳеҳ ворид кунед.",equalTo:"Илтимос, миқдори баробар ворид кунед.",extension:"Илтимос, қофияи файлро дуруст интихоб кунед.",maxlength:a.validator.format("Илтимос, бештар аз {0} рамз ворид накунед."),minlength:a.validator.format("Илтимос, камтар аз {0} рамз ворид накунед."),rangelength:a.validator.format("Илтимос, камтар аз {0} ва зиёда аз {1} рамз ворид кунед."),range:a.validator.format("Илтимос, аз {0} то {1} рақам зиёд ворид кунед."),max:a.validator.format("Илтимос, бештар аз {0} рақам ворид накунед."),min:a.validator.format("Илтимос, камтар аз {0} рақам ворид накунед.")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_tr.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_tr.js
new file mode 100644
index 000000000..6c32948ee
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_tr.js
@@ -0,0 +1,37 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: TR (Turkish; Türkçe)
+ */
+$.extend( $.validator.messages, {
+ required: "Bu alanın doldurulması zorunludur.",
+ remote: "Lütfen bu alanı düzeltin.",
+ email: "Lütfen geçerli bir e-posta adresi giriniz.",
+ url: "Lütfen geçerli bir web adresi (URL) giriniz.",
+ date: "Lütfen geçerli bir tarih giriniz.",
+ dateISO: "Lütfen geçerli bir tarih giriniz(ISO formatında).",
+ number: "Lütfen geçerli bir sayı giriniz.",
+ digits: "Lütfen sadece sayısal karakterler giriniz.",
+ creditcard: "Lütfen geçerli bir kredi kartı giriniz.",
+ equalTo: "Lütfen aynı değeri tekrar giriniz.",
+ extension: "Lütfen geçerli uzantıya sahip bir değer giriniz.",
+ phone: "Lütfen geçerli bir telefon numarası giriniz.",
+ maxlength: $.validator.format( "Lütfen en fazla {0} karakter uzunluğunda bir değer giriniz." ),
+ minlength: $.validator.format( "Lütfen en az {0} karakter uzunluğunda bir değer giriniz." ),
+ rangelength: $.validator.format( "Lütfen en az {0} ve en fazla {1} uzunluğunda bir değer giriniz." ),
+ range: $.validator.format( "Lütfen {0} ile {1} arasında bir değer giriniz." ),
+ max: $.validator.format( "Lütfen {0} değerine eşit ya da daha küçük bir değer giriniz." ),
+ min: $.validator.format( "Lütfen {0} değerine eşit ya da daha büyük bir değer giriniz." ),
+ require_from_group: $.validator.format( "Lütfen bu alanların en az {0} tanesini doldurunuz." )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_tr.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_tr.min.js
new file mode 100644
index 000000000..48bdeb48e
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_tr.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Bu alanın doldurulması zorunludur.",remote:"Lütfen bu alanı düzeltin.",email:"Lütfen geçerli bir e-posta adresi giriniz.",url:"Lütfen geçerli bir web adresi (URL) giriniz.",date:"Lütfen geçerli bir tarih giriniz.",dateISO:"Lütfen geçerli bir tarih giriniz(ISO formatında).",number:"Lütfen geçerli bir sayı giriniz.",digits:"Lütfen sadece sayısal karakterler giriniz.",creditcard:"Lütfen geçerli bir kredi kartı giriniz.",equalTo:"Lütfen aynı değeri tekrar giriniz.",extension:"Lütfen geçerli uzantıya sahip bir değer giriniz.",phone:"Lütfen geçerli bir telefon numarası giriniz.",maxlength:a.validator.format("Lütfen en fazla {0} karakter uzunluğunda bir değer giriniz."),minlength:a.validator.format("Lütfen en az {0} karakter uzunluğunda bir değer giriniz."),rangelength:a.validator.format("Lütfen en az {0} ve en fazla {1} uzunluğunda bir değer giriniz."),range:a.validator.format("Lütfen {0} ile {1} arasında bir değer giriniz."),max:a.validator.format("Lütfen {0} değerine eşit ya da daha küçük bir değer giriniz."),min:a.validator.format("Lütfen {0} değerine eşit ya da daha büyük bir değer giriniz."),require_from_group:a.validator.format("Lütfen bu alanların en az {0} tanesini doldurunuz.")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_uk.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_uk.js
new file mode 100644
index 000000000..9531a9571
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_uk.js
@@ -0,0 +1,35 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: UK (Ukrainian; українська мова)
+ */
+$.extend( $.validator.messages, {
+ required: "Це поле необхідно заповнити.",
+ remote: "Будь ласка, введіть правильне значення.",
+ email: "Будь ласка, введіть коректну адресу електронної пошти.",
+ url: "Будь ласка, введіть коректний URL.",
+ date: "Будь ласка, введіть коректну дату.",
+ dateISO: "Будь ласка, введіть коректну дату у форматі ISO.",
+ number: "Будь ласка, введіть число.",
+ digits: "Вводите потрібно лише цифри.",
+ creditcard: "Будь ласка, введіть правильний номер кредитної карти.",
+ equalTo: "Будь ласка, введіть таке ж значення ще раз.",
+ extension: "Будь ласка, виберіть файл з правильним розширенням.",
+ maxlength: $.validator.format( "Будь ласка, введіть не більше {0} символів." ),
+ minlength: $.validator.format( "Будь ласка, введіть не менше {0} символів." ),
+ rangelength: $.validator.format( "Будь ласка, введіть значення довжиною від {0} до {1} символів." ),
+ range: $.validator.format( "Будь ласка, введіть число від {0} до {1}." ),
+ max: $.validator.format( "Будь ласка, введіть число, менше або рівно {0}." ),
+ min: $.validator.format( "Будь ласка, введіть число, більше або рівно {0}." )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_uk.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_uk.min.js
new file mode 100644
index 000000000..98c50ff26
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_uk.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Це поле необхідно заповнити.",remote:"Будь ласка, введіть правильне значення.",email:"Будь ласка, введіть коректну адресу електронної пошти.",url:"Будь ласка, введіть коректний URL.",date:"Будь ласка, введіть коректну дату.",dateISO:"Будь ласка, введіть коректну дату у форматі ISO.",number:"Будь ласка, введіть число.",digits:"Вводите потрібно лише цифри.",creditcard:"Будь ласка, введіть правильний номер кредитної карти.",equalTo:"Будь ласка, введіть таке ж значення ще раз.",extension:"Будь ласка, виберіть файл з правильним розширенням.",maxlength:a.validator.format("Будь ласка, введіть не більше {0} символів."),minlength:a.validator.format("Будь ласка, введіть не менше {0} символів."),rangelength:a.validator.format("Будь ласка, введіть значення довжиною від {0} до {1} символів."),range:a.validator.format("Будь ласка, введіть число від {0} до {1}."),max:a.validator.format("Будь ласка, введіть число, менше або рівно {0}."),min:a.validator.format("Будь ласка, введіть число, більше або рівно {0}.")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ur.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ur.js
new file mode 100644
index 000000000..1327da075
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ur.js
@@ -0,0 +1,35 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: UR (Urdu; اردو)
+ */
+$.extend( $.validator.messages, {
+ required: "ان معلومات کا اندراج ضروری ہے",
+ remote: "ان معلومات کا اندراج ضروری ہے",
+ email: "درج کی ہوئی ای میل درست نہیں ہے",
+ url: "درج کیا گیا پتہ درست نہیں ہے",
+ date: "درج کی گئی تاریخ درست نہیں ہے",
+ dateISO: "معیار کے مطابق نہیں ہے (ISO) درج کی گئی تاریخ",
+ number: "درج کیےگئے ہندسے درست نہیں ہیں",
+ digits: "صرف ہندسے اندراج کئے جاسکتے ہیں",
+ creditcard: "درج کیا گیا کارڈ نمبر درست نہیں ہے",
+ equalTo: "اندراج کا موازنہ درست نہیں ہے",
+ extension: "اندراج درست نہیں ہے",
+ maxlength: $.validator.format( "زیادہ سے زیادہ {0} کا اندراج کر سکتے ہیں" ),
+ minlength: $.validator.format( "کم سے کم {0} کا اندراج کرنا ضروری ہے" ),
+ rangelength: $.validator.format( "اندراج کا {0} اور {1}کے درمیان ہونا ضروری ہے" ),
+ range: $.validator.format( "اندراج کا {0} اور {1} کے درمیان ہونا ضروری ہے" ),
+ max: $.validator.format( "زیادہ سے زیادہ {0} کا اندراج کر سکتے ہیں" ),
+ min: $.validator.format( "کم سے کم {0} کا اندراج کرنا ضروری ہے" )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ur.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ur.min.js
new file mode 100644
index 000000000..2788e8054
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_ur.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"ان معلومات کا اندراج ضروری ہے",remote:"ان معلومات کا اندراج ضروری ہے",email:"درج کی ہوئی ای میل درست نہیں ہے",url:"درج کیا گیا پتہ درست نہیں ہے",date:"درج کی گئی تاریخ درست نہیں ہے",dateISO:"معیار کے مطابق نہیں ہے (ISO) درج کی گئی تاریخ",number:"درج کیےگئے ہندسے درست نہیں ہیں",digits:"صرف ہندسے اندراج کئے جاسکتے ہیں",creditcard:"درج کیا گیا کارڈ نمبر درست نہیں ہے",equalTo:"اندراج کا موازنہ درست نہیں ہے",extension:"اندراج درست نہیں ہے",maxlength:a.validator.format("زیادہ سے زیادہ {0} کا اندراج کر سکتے ہیں"),minlength:a.validator.format("کم سے کم {0} کا اندراج کرنا ضروری ہے"),rangelength:a.validator.format("اندراج کا {0} اور {1}کے درمیان ہونا ضروری ہے"),range:a.validator.format("اندراج کا {0} اور {1} کے درمیان ہونا ضروری ہے"),max:a.validator.format("زیادہ سے زیادہ {0} کا اندراج کر سکتے ہیں"),min:a.validator.format("کم سے کم {0} کا اندراج کرنا ضروری ہے")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_vi.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_vi.js
new file mode 100644
index 000000000..ae415453d
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_vi.js
@@ -0,0 +1,35 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: VI (Vietnamese; Tiếng Việt)
+ */
+$.extend( $.validator.messages, {
+ required: "Hãy nhập.",
+ remote: "Hãy sửa cho đúng.",
+ email: "Hãy nhập email.",
+ url: "Hãy nhập URL.",
+ date: "Hãy nhập ngày.",
+ dateISO: "Hãy nhập ngày (ISO).",
+ number: "Hãy nhập số.",
+ digits: "Hãy nhập chữ số.",
+ creditcard: "Hãy nhập số thẻ tín dụng.",
+ equalTo: "Hãy nhập thêm lần nữa.",
+ extension: "Phần mở rộng không đúng.",
+ maxlength: $.validator.format( "Hãy nhập từ {0} kí tự trở xuống." ),
+ minlength: $.validator.format( "Hãy nhập từ {0} kí tự trở lên." ),
+ rangelength: $.validator.format( "Hãy nhập từ {0} đến {1} kí tự." ),
+ range: $.validator.format( "Hãy nhập từ {0} đến {1}." ),
+ max: $.validator.format( "Hãy nhập từ {0} trở xuống." ),
+ min: $.validator.format( "Hãy nhập từ {0} trở lên." )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_vi.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_vi.min.js
new file mode 100644
index 000000000..a27a77709
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_vi.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Hãy nhập.",remote:"Hãy sửa cho đúng.",email:"Hãy nhập email.",url:"Hãy nhập URL.",date:"Hãy nhập ngày.",dateISO:"Hãy nhập ngày (ISO).",number:"Hãy nhập số.",digits:"Hãy nhập chữ số.",creditcard:"Hãy nhập số thẻ tín dụng.",equalTo:"Hãy nhập thêm lần nữa.",extension:"Phần mở rộng không đúng.",maxlength:a.validator.format("Hãy nhập từ {0} kí tự trở xuống."),minlength:a.validator.format("Hãy nhập từ {0} kí tự trở lên."),rangelength:a.validator.format("Hãy nhập từ {0} đến {1} kí tự."),range:a.validator.format("Hãy nhập từ {0} đến {1}."),max:a.validator.format("Hãy nhập từ {0} trở xuống."),min:a.validator.format("Hãy nhập từ {0} trở lên.")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_zh.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_zh.js
new file mode 100644
index 000000000..afc74ab06
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_zh.js
@@ -0,0 +1,36 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: ZH (Chinese, 中文 (Zhōngwén), 汉语, 漢語)
+ */
+$.extend( $.validator.messages, {
+ required: "这是必填字段",
+ remote: "请修正此字段",
+ email: "请输入有效的电子邮件地址",
+ url: "请输入有效的网址",
+ date: "请输入有效的日期",
+ dateISO: "请输入有效的日期 (YYYY-MM-DD)",
+ number: "请输入有效的数字",
+ digits: "只能输入数字",
+ creditcard: "请输入有效的信用卡号码",
+ equalTo: "你的输入不相同",
+ extension: "请输入有效的后缀",
+ maxlength: $.validator.format( "最多可以输入 {0} 个字符" ),
+ minlength: $.validator.format( "最少要输入 {0} 个字符" ),
+ rangelength: $.validator.format( "请输入长度在 {0} 到 {1} 之间的字符串" ),
+ range: $.validator.format( "请输入范围在 {0} 到 {1} 之间的数值" ),
+ step: $.validator.format( "请输入 {0} 的整数倍值" ),
+ max: $.validator.format( "请输入不大于 {0} 的数值" ),
+ min: $.validator.format( "请输入不小于 {0} 的数值" )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_zh.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_zh.min.js
new file mode 100644
index 000000000..183677827
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_zh.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"这是必填字段",remote:"请修正此字段",email:"请输入有效的电子邮件地址",url:"请输入有效的网址",date:"请输入有效的日期",dateISO:"请输入有效的日期 (YYYY-MM-DD)",number:"请输入有效的数字",digits:"只能输入数字",creditcard:"请输入有效的信用卡号码",equalTo:"你的输入不相同",extension:"请输入有效的后缀",maxlength:a.validator.format("最多可以输入 {0} 个字符"),minlength:a.validator.format("最少要输入 {0} 个字符"),rangelength:a.validator.format("请输入长度在 {0} 到 {1} 之间的字符串"),range:a.validator.format("请输入范围在 {0} 到 {1} 之间的数值"),step:a.validator.format("请输入 {0} 的整数倍值"),max:a.validator.format("请输入不大于 {0} 的数值"),min:a.validator.format("请输入不小于 {0} 的数值")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_zh_TW.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_zh_TW.js
new file mode 100644
index 000000000..991201471
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_zh_TW.js
@@ -0,0 +1,37 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: ZH (Chinese; 中文 (Zhōngwén), 汉语, 漢語)
+ * Region: TW (Taiwan)
+ */
+$.extend( $.validator.messages, {
+ required: "必須填寫",
+ remote: "請修正此欄位",
+ email: "請輸入有效的電子郵件",
+ url: "請輸入有效的網址",
+ date: "請輸入有效的日期",
+ dateISO: "請輸入有效的日期 (YYYY-MM-DD)",
+ number: "請輸入正確的數值",
+ digits: "只可輸入數字",
+ creditcard: "請輸入有效的信用卡號碼",
+ equalTo: "請重複輸入一次",
+ extension: "請輸入有效的後綴",
+ maxlength: $.validator.format( "最多 {0} 個字" ),
+ minlength: $.validator.format( "最少 {0} 個字" ),
+ rangelength: $.validator.format( "請輸入長度為 {0} 至 {1} 之間的字串" ),
+ range: $.validator.format( "請輸入 {0} 至 {1} 之間的數值" ),
+ step: $.validator.format( "請輸入 {0} 的整數倍值" ),
+ max: $.validator.format( "請輸入不大於 {0} 的數值" ),
+ min: $.validator.format( "請輸入不小於 {0} 的數值" )
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_zh_TW.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_zh_TW.min.js
new file mode 100644
index 000000000..2a44d5bc2
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/messages_zh_TW.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"必須填寫",remote:"請修正此欄位",email:"請輸入有效的電子郵件",url:"請輸入有效的網址",date:"請輸入有效的日期",dateISO:"請輸入有效的日期 (YYYY-MM-DD)",number:"請輸入正確的數值",digits:"只可輸入數字",creditcard:"請輸入有效的信用卡號碼",equalTo:"請重複輸入一次",extension:"請輸入有效的後綴",maxlength:a.validator.format("最多 {0} 個字"),minlength:a.validator.format("最少 {0} 個字"),rangelength:a.validator.format("請輸入長度為 {0} 至 {1} 之間的字串"),range:a.validator.format("請輸入 {0} 至 {1} 之間的數值"),step:a.validator.format("請輸入 {0} 的整數倍值"),max:a.validator.format("請輸入不大於 {0} 的數值"),min:a.validator.format("請輸入不小於 {0} 的數值")}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_de.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_de.js
new file mode 100644
index 000000000..da10e4698
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_de.js
@@ -0,0 +1,24 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Localized default methods for the jQuery validation plugin.
+ * Locale: DE
+ */
+$.extend( $.validator.methods, {
+ date: function( value, element ) {
+ return this.optional( element ) || /^\d\d?\.\d\d?\.\d\d\d?\d?$/.test( value );
+ },
+ number: function( value, element ) {
+ return this.optional( element ) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test( value );
+ }
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_de.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_de.min.js
new file mode 100644
index 000000000..be39febc7
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_de.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.methods,{date:function(a,b){return this.optional(b)||/^\d\d?\.\d\d?\.\d\d\d?\d?$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(a)}}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_es_CL.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_es_CL.js
new file mode 100644
index 000000000..fc8971e95
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_es_CL.js
@@ -0,0 +1,24 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Localized default methods for the jQuery validation plugin.
+ * Locale: ES_CL
+ */
+$.extend( $.validator.methods, {
+ date: function( value, element ) {
+ return this.optional( element ) || /^\d\d?\-\d\d?\-\d\d\d?\d?$/.test( value );
+ },
+ number: function( value, element ) {
+ return this.optional( element ) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test( value );
+ }
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_es_CL.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_es_CL.min.js
new file mode 100644
index 000000000..55d068d7d
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_es_CL.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.methods,{date:function(a,b){return this.optional(b)||/^\d\d?\-\d\d?\-\d\d\d?\d?$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(a)}}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_fi.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_fi.js
new file mode 100644
index 000000000..bb7e95eac
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_fi.js
@@ -0,0 +1,24 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Localized default methods for the jQuery validation plugin.
+ * Locale: FI
+ */
+$.extend( $.validator.methods, {
+ date: function( value, element ) {
+ return this.optional( element ) || /^\d{1,2}\.\d{1,2}\.\d{4}$/.test( value );
+ },
+ number: function( value, element ) {
+ return this.optional( element ) || /^-?(?:\d+)(?:,\d+)?$/.test( value );
+ }
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_fi.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_fi.min.js
new file mode 100644
index 000000000..bf1ab54c6
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_fi.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.methods,{date:function(a,b){return this.optional(b)||/^\d{1,2}\.\d{1,2}\.\d{4}$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+)(?:,\d+)?$/.test(a)}}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_it.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_it.js
new file mode 100644
index 000000000..b0ad79e50
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_it.js
@@ -0,0 +1,24 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Localized default methods for the jQuery validation plugin.
+ * Locale: IT
+ */
+$.extend( $.validator.methods, {
+ date: function( value, element ) {
+ return this.optional( element ) || /^\d\d?\-\d\d?\-\d\d\d?\d?$/.test( value );
+ },
+ number: function( value, element ) {
+ return this.optional( element ) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test( value );
+ }
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_it.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_it.min.js
new file mode 100644
index 000000000..55d068d7d
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_it.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.methods,{date:function(a,b){return this.optional(b)||/^\d\d?\-\d\d?\-\d\d\d?\d?$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(a)}}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_nl.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_nl.js
new file mode 100644
index 000000000..e83f337ff
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_nl.js
@@ -0,0 +1,24 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Localized default methods for the jQuery validation plugin.
+ * Locale: NL
+ */
+$.extend( $.validator.methods, {
+ date: function( value, element ) {
+ return this.optional( element ) || /^\d\d?[\.\/\-]\d\d?[\.\/\-]\d\d\d?\d?$/.test( value );
+ },
+ number: function( value, element ) {
+ return this.optional( element ) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test( value );
+ }
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_nl.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_nl.min.js
new file mode 100644
index 000000000..dae41ca4e
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_nl.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.methods,{date:function(a,b){return this.optional(b)||/^\d\d?[\.\/\-]\d\d?[\.\/\-]\d\d\d?\d?$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(a)}}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_pt.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_pt.js
new file mode 100644
index 000000000..a74b65fd4
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_pt.js
@@ -0,0 +1,21 @@
+(function( factory ) {
+ if ( typeof define === "function" && define.amd ) {
+ define( ["jquery", "../jquery.validate"], factory );
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory( require( "jquery" ) );
+ } else {
+ factory( jQuery );
+ }
+}(function( $ ) {
+
+/*
+ * Localized default methods for the jQuery validation plugin.
+ * Locale: PT_BR
+ */
+$.extend( $.validator.methods, {
+ date: function( value, element ) {
+ return this.optional( element ) || /^\d\d?\/\d\d?\/\d\d\d?\d?$/.test( value );
+ }
+} );
+return $;
+}));
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_pt.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_pt.min.js
new file mode 100644
index 000000000..0335a54b5
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/jquery-validation/localization/methods_pt.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.21.0 - 7/17/2024
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2024 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.methods,{date:function(a,b){return this.optional(b)||/^\d\d?\/\d\d?\/\d\d\d?\d?$/.test(a)}}),a});
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/af.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/af.js
new file mode 100644
index 000000000..e77b15b23
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/af.js
@@ -0,0 +1,82 @@
+//! moment.js locale configuration
+//! locale : Afrikaans [af]
+//! author : Werner Mollentze : https://github.com/wernerm
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var af = moment.defineLocale('af', {
+ months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(
+ '_'
+ ),
+ monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),
+ weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(
+ '_'
+ ),
+ weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),
+ weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),
+ meridiemParse: /vm|nm/i,
+ isPM: function (input) {
+ return /^nm$/i.test(input);
+ },
+ meridiem: function (hours, minutes, isLower) {
+ if (hours < 12) {
+ return isLower ? 'vm' : 'VM';
+ } else {
+ return isLower ? 'nm' : 'NM';
+ }
+ },
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[Vandag om] LT',
+ nextDay: '[Môre om] LT',
+ nextWeek: 'dddd [om] LT',
+ lastDay: '[Gister om] LT',
+ lastWeek: '[Laas] dddd [om] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'oor %s',
+ past: '%s gelede',
+ s: "'n paar sekondes",
+ ss: '%d sekondes',
+ m: "'n minuut",
+ mm: '%d minute',
+ h: "'n uur",
+ hh: '%d ure',
+ d: "'n dag",
+ dd: '%d dae',
+ M: "'n maand",
+ MM: '%d maande',
+ y: "'n jaar",
+ yy: '%d jaar',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
+ ordinal: function (number) {
+ return (
+ number +
+ (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
+ ); // Thanks to Joris Röling : https://github.com/jjupiter
+ },
+ week: {
+ dow: 1, // Maandag is die eerste dag van die week.
+ doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
+ },
+ });
+
+ return af;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ar-dz.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ar-dz.js
new file mode 100644
index 000000000..8f9e14916
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ar-dz.js
@@ -0,0 +1,167 @@
+//! moment.js locale configuration
+//! locale : Arabic (Algeria) [ar-dz]
+//! author : Amine Roukh: https://github.com/Amine27
+//! author : Abdel Said: https://github.com/abdelsaid
+//! author : Ahmed Elkhatib
+//! author : forabi https://github.com/forabi
+//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var pluralForm = function (n) {
+ return n === 0
+ ? 0
+ : n === 1
+ ? 1
+ : n === 2
+ ? 2
+ : n % 100 >= 3 && n % 100 <= 10
+ ? 3
+ : n % 100 >= 11
+ ? 4
+ : 5;
+ },
+ plurals = {
+ s: [
+ 'أقل من ثانية',
+ 'ثانية واحدة',
+ ['ثانيتان', 'ثانيتين'],
+ '%d ثوان',
+ '%d ثانية',
+ '%d ثانية',
+ ],
+ m: [
+ 'أقل من دقيقة',
+ 'دقيقة واحدة',
+ ['دقيقتان', 'دقيقتين'],
+ '%d دقائق',
+ '%d دقيقة',
+ '%d دقيقة',
+ ],
+ h: [
+ 'أقل من ساعة',
+ 'ساعة واحدة',
+ ['ساعتان', 'ساعتين'],
+ '%d ساعات',
+ '%d ساعة',
+ '%d ساعة',
+ ],
+ d: [
+ 'أقل من يوم',
+ 'يوم واحد',
+ ['يومان', 'يومين'],
+ '%d أيام',
+ '%d يومًا',
+ '%d يوم',
+ ],
+ M: [
+ 'أقل من شهر',
+ 'شهر واحد',
+ ['شهران', 'شهرين'],
+ '%d أشهر',
+ '%d شهرا',
+ '%d شهر',
+ ],
+ y: [
+ 'أقل من عام',
+ 'عام واحد',
+ ['عامان', 'عامين'],
+ '%d أعوام',
+ '%d عامًا',
+ '%d عام',
+ ],
+ },
+ pluralize = function (u) {
+ return function (number, withoutSuffix, string, isFuture) {
+ var f = pluralForm(number),
+ str = plurals[u][pluralForm(number)];
+ if (f === 2) {
+ str = str[withoutSuffix ? 0 : 1];
+ }
+ return str.replace(/%d/i, number);
+ };
+ },
+ months = [
+ 'جانفي',
+ 'فيفري',
+ 'مارس',
+ 'أفريل',
+ 'ماي',
+ 'جوان',
+ 'جويلية',
+ 'أوت',
+ 'سبتمبر',
+ 'أكتوبر',
+ 'نوفمبر',
+ 'ديسمبر',
+ ];
+
+ var arDz = moment.defineLocale('ar-dz', {
+ months: months,
+ monthsShort: months,
+ weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+ weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
+ weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'D/\u200FM/\u200FYYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm',
+ },
+ meridiemParse: /ص|م/,
+ isPM: function (input) {
+ return 'م' === input;
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'ص';
+ } else {
+ return 'م';
+ }
+ },
+ calendar: {
+ sameDay: '[اليوم عند الساعة] LT',
+ nextDay: '[غدًا عند الساعة] LT',
+ nextWeek: 'dddd [عند الساعة] LT',
+ lastDay: '[أمس عند الساعة] LT',
+ lastWeek: 'dddd [عند الساعة] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'بعد %s',
+ past: 'منذ %s',
+ s: pluralize('s'),
+ ss: pluralize('s'),
+ m: pluralize('m'),
+ mm: pluralize('m'),
+ h: pluralize('h'),
+ hh: pluralize('h'),
+ d: pluralize('d'),
+ dd: pluralize('d'),
+ M: pluralize('M'),
+ MM: pluralize('M'),
+ y: pluralize('y'),
+ yy: pluralize('y'),
+ },
+ postformat: function (string) {
+ return string.replace(/,/g, '،');
+ },
+ week: {
+ dow: 0, // Sunday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return arDz;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ar-kw.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ar-kw.js
new file mode 100644
index 000000000..c6ecef89f
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ar-kw.js
@@ -0,0 +1,66 @@
+//! moment.js locale configuration
+//! locale : Arabic (Kuwait) [ar-kw]
+//! author : Nusret Parlak: https://github.com/nusretparlak
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var arKw = moment.defineLocale('ar-kw', {
+ months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
+ '_'
+ ),
+ monthsShort:
+ 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
+ '_'
+ ),
+ weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+ weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
+ weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[اليوم على الساعة] LT',
+ nextDay: '[غدا على الساعة] LT',
+ nextWeek: 'dddd [على الساعة] LT',
+ lastDay: '[أمس على الساعة] LT',
+ lastWeek: 'dddd [على الساعة] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'في %s',
+ past: 'منذ %s',
+ s: 'ثوان',
+ ss: '%d ثانية',
+ m: 'دقيقة',
+ mm: '%d دقائق',
+ h: 'ساعة',
+ hh: '%d ساعات',
+ d: 'يوم',
+ dd: '%d أيام',
+ M: 'شهر',
+ MM: '%d أشهر',
+ y: 'سنة',
+ yy: '%d سنوات',
+ },
+ week: {
+ dow: 0, // Sunday is the first day of the week.
+ doy: 12, // The week that contains Jan 12th is the first week of the year.
+ },
+ });
+
+ return arKw;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ar-ly.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ar-ly.js
new file mode 100644
index 000000000..0ec9ec8dd
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ar-ly.js
@@ -0,0 +1,182 @@
+//! moment.js locale configuration
+//! locale : Arabic (Libya) [ar-ly]
+//! author : Ali Hmer: https://github.com/kikoanis
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var symbolMap = {
+ 1: '1',
+ 2: '2',
+ 3: '3',
+ 4: '4',
+ 5: '5',
+ 6: '6',
+ 7: '7',
+ 8: '8',
+ 9: '9',
+ 0: '0',
+ },
+ pluralForm = function (n) {
+ return n === 0
+ ? 0
+ : n === 1
+ ? 1
+ : n === 2
+ ? 2
+ : n % 100 >= 3 && n % 100 <= 10
+ ? 3
+ : n % 100 >= 11
+ ? 4
+ : 5;
+ },
+ plurals = {
+ s: [
+ 'أقل من ثانية',
+ 'ثانية واحدة',
+ ['ثانيتان', 'ثانيتين'],
+ '%d ثوان',
+ '%d ثانية',
+ '%d ثانية',
+ ],
+ m: [
+ 'أقل من دقيقة',
+ 'دقيقة واحدة',
+ ['دقيقتان', 'دقيقتين'],
+ '%d دقائق',
+ '%d دقيقة',
+ '%d دقيقة',
+ ],
+ h: [
+ 'أقل من ساعة',
+ 'ساعة واحدة',
+ ['ساعتان', 'ساعتين'],
+ '%d ساعات',
+ '%d ساعة',
+ '%d ساعة',
+ ],
+ d: [
+ 'أقل من يوم',
+ 'يوم واحد',
+ ['يومان', 'يومين'],
+ '%d أيام',
+ '%d يومًا',
+ '%d يوم',
+ ],
+ M: [
+ 'أقل من شهر',
+ 'شهر واحد',
+ ['شهران', 'شهرين'],
+ '%d أشهر',
+ '%d شهرا',
+ '%d شهر',
+ ],
+ y: [
+ 'أقل من عام',
+ 'عام واحد',
+ ['عامان', 'عامين'],
+ '%d أعوام',
+ '%d عامًا',
+ '%d عام',
+ ],
+ },
+ pluralize = function (u) {
+ return function (number, withoutSuffix, string, isFuture) {
+ var f = pluralForm(number),
+ str = plurals[u][pluralForm(number)];
+ if (f === 2) {
+ str = str[withoutSuffix ? 0 : 1];
+ }
+ return str.replace(/%d/i, number);
+ };
+ },
+ months = [
+ 'يناير',
+ 'فبراير',
+ 'مارس',
+ 'أبريل',
+ 'مايو',
+ 'يونيو',
+ 'يوليو',
+ 'أغسطس',
+ 'سبتمبر',
+ 'أكتوبر',
+ 'نوفمبر',
+ 'ديسمبر',
+ ];
+
+ var arLy = moment.defineLocale('ar-ly', {
+ months: months,
+ monthsShort: months,
+ weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+ weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
+ weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'D/\u200FM/\u200FYYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm',
+ },
+ meridiemParse: /ص|م/,
+ isPM: function (input) {
+ return 'م' === input;
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'ص';
+ } else {
+ return 'م';
+ }
+ },
+ calendar: {
+ sameDay: '[اليوم عند الساعة] LT',
+ nextDay: '[غدًا عند الساعة] LT',
+ nextWeek: 'dddd [عند الساعة] LT',
+ lastDay: '[أمس عند الساعة] LT',
+ lastWeek: 'dddd [عند الساعة] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'بعد %s',
+ past: 'منذ %s',
+ s: pluralize('s'),
+ ss: pluralize('s'),
+ m: pluralize('m'),
+ mm: pluralize('m'),
+ h: pluralize('h'),
+ hh: pluralize('h'),
+ d: pluralize('d'),
+ dd: pluralize('d'),
+ M: pluralize('M'),
+ MM: pluralize('M'),
+ y: pluralize('y'),
+ yy: pluralize('y'),
+ },
+ preparse: function (string) {
+ return string.replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string
+ .replace(/\d/g, function (match) {
+ return symbolMap[match];
+ })
+ .replace(/,/g, '،');
+ },
+ week: {
+ dow: 6, // Saturday is the first day of the week.
+ doy: 12, // The week that contains Jan 12th is the first week of the year.
+ },
+ });
+
+ return arLy;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ar-ma.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ar-ma.js
new file mode 100644
index 000000000..11f061a19
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ar-ma.js
@@ -0,0 +1,67 @@
+//! moment.js locale configuration
+//! locale : Arabic (Morocco) [ar-ma]
+//! author : ElFadili Yassine : https://github.com/ElFadiliY
+//! author : Abdel Said : https://github.com/abdelsaid
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var arMa = moment.defineLocale('ar-ma', {
+ months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
+ '_'
+ ),
+ monthsShort:
+ 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
+ '_'
+ ),
+ weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+ weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
+ weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[اليوم على الساعة] LT',
+ nextDay: '[غدا على الساعة] LT',
+ nextWeek: 'dddd [على الساعة] LT',
+ lastDay: '[أمس على الساعة] LT',
+ lastWeek: 'dddd [على الساعة] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'في %s',
+ past: 'منذ %s',
+ s: 'ثوان',
+ ss: '%d ثانية',
+ m: 'دقيقة',
+ mm: '%d دقائق',
+ h: 'ساعة',
+ hh: '%d ساعات',
+ d: 'يوم',
+ dd: '%d أيام',
+ M: 'شهر',
+ MM: '%d أشهر',
+ y: 'سنة',
+ yy: '%d سنوات',
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return arMa;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ar-ps.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ar-ps.js
new file mode 100644
index 000000000..4533bfa60
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ar-ps.js
@@ -0,0 +1,123 @@
+//! moment.js locale configuration
+//! locale : Arabic (Palestine) [ar-ps]
+//! author : Majd Al-Shihabi : https://github.com/majdal
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var symbolMap = {
+ 1: '١',
+ 2: '٢',
+ 3: '٣',
+ 4: '٤',
+ 5: '٥',
+ 6: '٦',
+ 7: '٧',
+ 8: '٨',
+ 9: '٩',
+ 0: '٠',
+ },
+ numberMap = {
+ '١': '1',
+ '٢': '2',
+ '٣': '3',
+ '٤': '4',
+ '٥': '5',
+ '٦': '6',
+ '٧': '7',
+ '٨': '8',
+ '٩': '9',
+ '٠': '0',
+ };
+
+ var arPs = moment.defineLocale('ar-ps', {
+ months: 'كانون الثاني_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل'.split(
+ '_'
+ ),
+ monthsShort:
+ 'ك٢_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١'.split('_'),
+ weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+ weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
+ weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm',
+ },
+ meridiemParse: /ص|م/,
+ isPM: function (input) {
+ return 'م' === input;
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'ص';
+ } else {
+ return 'م';
+ }
+ },
+ calendar: {
+ sameDay: '[اليوم على الساعة] LT',
+ nextDay: '[غدا على الساعة] LT',
+ nextWeek: 'dddd [على الساعة] LT',
+ lastDay: '[أمس على الساعة] LT',
+ lastWeek: 'dddd [على الساعة] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'في %s',
+ past: 'منذ %s',
+ s: 'ثوان',
+ ss: '%d ثانية',
+ m: 'دقيقة',
+ mm: '%d دقائق',
+ h: 'ساعة',
+ hh: '%d ساعات',
+ d: 'يوم',
+ dd: '%d أيام',
+ M: 'شهر',
+ MM: '%d أشهر',
+ y: 'سنة',
+ yy: '%d سنوات',
+ },
+ preparse: function (string) {
+ return string
+ .replace(/[٣٤٥٦٧٨٩٠]/g, function (match) {
+ return numberMap[match];
+ })
+ .split('') // reversed since negative lookbehind not supported everywhere
+ .reverse()
+ .join('')
+ .replace(/[١٢](?![\u062a\u0643])/g, function (match) {
+ return numberMap[match];
+ })
+ .split('')
+ .reverse()
+ .join('')
+ .replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string
+ .replace(/\d/g, function (match) {
+ return symbolMap[match];
+ })
+ .replace(/,/g, '،');
+ },
+ week: {
+ dow: 0, // Sunday is the first day of the week.
+ doy: 6, // The week that contains Jan 6th is the first week of the year.
+ },
+ });
+
+ return arPs;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ar-sa.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ar-sa.js
new file mode 100644
index 000000000..e329df08b
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ar-sa.js
@@ -0,0 +1,116 @@
+//! moment.js locale configuration
+//! locale : Arabic (Saudi Arabia) [ar-sa]
+//! author : Suhail Alkowaileet : https://github.com/xsoh
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var symbolMap = {
+ 1: '١',
+ 2: '٢',
+ 3: '٣',
+ 4: '٤',
+ 5: '٥',
+ 6: '٦',
+ 7: '٧',
+ 8: '٨',
+ 9: '٩',
+ 0: '٠',
+ },
+ numberMap = {
+ '١': '1',
+ '٢': '2',
+ '٣': '3',
+ '٤': '4',
+ '٥': '5',
+ '٦': '6',
+ '٧': '7',
+ '٨': '8',
+ '٩': '9',
+ '٠': '0',
+ };
+
+ var arSa = moment.defineLocale('ar-sa', {
+ months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
+ '_'
+ ),
+ monthsShort:
+ 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
+ '_'
+ ),
+ weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+ weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
+ weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm',
+ },
+ meridiemParse: /ص|م/,
+ isPM: function (input) {
+ return 'م' === input;
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'ص';
+ } else {
+ return 'م';
+ }
+ },
+ calendar: {
+ sameDay: '[اليوم على الساعة] LT',
+ nextDay: '[غدا على الساعة] LT',
+ nextWeek: 'dddd [على الساعة] LT',
+ lastDay: '[أمس على الساعة] LT',
+ lastWeek: 'dddd [على الساعة] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'في %s',
+ past: 'منذ %s',
+ s: 'ثوان',
+ ss: '%d ثانية',
+ m: 'دقيقة',
+ mm: '%d دقائق',
+ h: 'ساعة',
+ hh: '%d ساعات',
+ d: 'يوم',
+ dd: '%d أيام',
+ M: 'شهر',
+ MM: '%d أشهر',
+ y: 'سنة',
+ yy: '%d سنوات',
+ },
+ preparse: function (string) {
+ return string
+ .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
+ return numberMap[match];
+ })
+ .replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string
+ .replace(/\d/g, function (match) {
+ return symbolMap[match];
+ })
+ .replace(/,/g, '،');
+ },
+ week: {
+ dow: 0, // Sunday is the first day of the week.
+ doy: 6, // The week that contains Jan 6th is the first week of the year.
+ },
+ });
+
+ return arSa;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ar-tn.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ar-tn.js
new file mode 100644
index 000000000..a390ed229
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ar-tn.js
@@ -0,0 +1,66 @@
+//! moment.js locale configuration
+//! locale : Arabic (Tunisia) [ar-tn]
+//! author : Nader Toukabri : https://github.com/naderio
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var arTn = moment.defineLocale('ar-tn', {
+ months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
+ '_'
+ ),
+ monthsShort:
+ 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
+ '_'
+ ),
+ weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+ weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
+ weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[اليوم على الساعة] LT',
+ nextDay: '[غدا على الساعة] LT',
+ nextWeek: 'dddd [على الساعة] LT',
+ lastDay: '[أمس على الساعة] LT',
+ lastWeek: 'dddd [على الساعة] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'في %s',
+ past: 'منذ %s',
+ s: 'ثوان',
+ ss: '%d ثانية',
+ m: 'دقيقة',
+ mm: '%d دقائق',
+ h: 'ساعة',
+ hh: '%d ساعات',
+ d: 'يوم',
+ dd: '%d أيام',
+ M: 'شهر',
+ MM: '%d أشهر',
+ y: 'سنة',
+ yy: '%d سنوات',
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return arTn;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ar.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ar.js
new file mode 100644
index 000000000..5bfb05748
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ar.js
@@ -0,0 +1,200 @@
+//! moment.js locale configuration
+//! locale : Arabic [ar]
+//! author : Abdel Said: https://github.com/abdelsaid
+//! author : Ahmed Elkhatib
+//! author : forabi https://github.com/forabi
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var symbolMap = {
+ 1: '١',
+ 2: '٢',
+ 3: '٣',
+ 4: '٤',
+ 5: '٥',
+ 6: '٦',
+ 7: '٧',
+ 8: '٨',
+ 9: '٩',
+ 0: '٠',
+ },
+ numberMap = {
+ '١': '1',
+ '٢': '2',
+ '٣': '3',
+ '٤': '4',
+ '٥': '5',
+ '٦': '6',
+ '٧': '7',
+ '٨': '8',
+ '٩': '9',
+ '٠': '0',
+ },
+ pluralForm = function (n) {
+ return n === 0
+ ? 0
+ : n === 1
+ ? 1
+ : n === 2
+ ? 2
+ : n % 100 >= 3 && n % 100 <= 10
+ ? 3
+ : n % 100 >= 11
+ ? 4
+ : 5;
+ },
+ plurals = {
+ s: [
+ 'أقل من ثانية',
+ 'ثانية واحدة',
+ ['ثانيتان', 'ثانيتين'],
+ '%d ثوان',
+ '%d ثانية',
+ '%d ثانية',
+ ],
+ m: [
+ 'أقل من دقيقة',
+ 'دقيقة واحدة',
+ ['دقيقتان', 'دقيقتين'],
+ '%d دقائق',
+ '%d دقيقة',
+ '%d دقيقة',
+ ],
+ h: [
+ 'أقل من ساعة',
+ 'ساعة واحدة',
+ ['ساعتان', 'ساعتين'],
+ '%d ساعات',
+ '%d ساعة',
+ '%d ساعة',
+ ],
+ d: [
+ 'أقل من يوم',
+ 'يوم واحد',
+ ['يومان', 'يومين'],
+ '%d أيام',
+ '%d يومًا',
+ '%d يوم',
+ ],
+ M: [
+ 'أقل من شهر',
+ 'شهر واحد',
+ ['شهران', 'شهرين'],
+ '%d أشهر',
+ '%d شهرا',
+ '%d شهر',
+ ],
+ y: [
+ 'أقل من عام',
+ 'عام واحد',
+ ['عامان', 'عامين'],
+ '%d أعوام',
+ '%d عامًا',
+ '%d عام',
+ ],
+ },
+ pluralize = function (u) {
+ return function (number, withoutSuffix, string, isFuture) {
+ var f = pluralForm(number),
+ str = plurals[u][pluralForm(number)];
+ if (f === 2) {
+ str = str[withoutSuffix ? 0 : 1];
+ }
+ return str.replace(/%d/i, number);
+ };
+ },
+ months = [
+ 'يناير',
+ 'فبراير',
+ 'مارس',
+ 'أبريل',
+ 'مايو',
+ 'يونيو',
+ 'يوليو',
+ 'أغسطس',
+ 'سبتمبر',
+ 'أكتوبر',
+ 'نوفمبر',
+ 'ديسمبر',
+ ];
+
+ var ar = moment.defineLocale('ar', {
+ months: months,
+ monthsShort: months,
+ weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
+ weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
+ weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'D/\u200FM/\u200FYYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm',
+ },
+ meridiemParse: /ص|م/,
+ isPM: function (input) {
+ return 'م' === input;
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'ص';
+ } else {
+ return 'م';
+ }
+ },
+ calendar: {
+ sameDay: '[اليوم عند الساعة] LT',
+ nextDay: '[غدًا عند الساعة] LT',
+ nextWeek: 'dddd [عند الساعة] LT',
+ lastDay: '[أمس عند الساعة] LT',
+ lastWeek: 'dddd [عند الساعة] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'بعد %s',
+ past: 'منذ %s',
+ s: pluralize('s'),
+ ss: pluralize('s'),
+ m: pluralize('m'),
+ mm: pluralize('m'),
+ h: pluralize('h'),
+ hh: pluralize('h'),
+ d: pluralize('d'),
+ dd: pluralize('d'),
+ M: pluralize('M'),
+ MM: pluralize('M'),
+ y: pluralize('y'),
+ yy: pluralize('y'),
+ },
+ preparse: function (string) {
+ return string
+ .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
+ return numberMap[match];
+ })
+ .replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string
+ .replace(/\d/g, function (match) {
+ return symbolMap[match];
+ })
+ .replace(/,/g, '،');
+ },
+ week: {
+ dow: 6, // Saturday is the first day of the week.
+ doy: 12, // The week that contains Jan 12th is the first week of the year.
+ },
+ });
+
+ return ar;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/az.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/az.js
new file mode 100644
index 000000000..472bee160
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/az.js
@@ -0,0 +1,113 @@
+//! moment.js locale configuration
+//! locale : Azerbaijani [az]
+//! author : topchiyev : https://github.com/topchiyev
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var suffixes = {
+ 1: '-inci',
+ 5: '-inci',
+ 8: '-inci',
+ 70: '-inci',
+ 80: '-inci',
+ 2: '-nci',
+ 7: '-nci',
+ 20: '-nci',
+ 50: '-nci',
+ 3: '-üncü',
+ 4: '-üncü',
+ 100: '-üncü',
+ 6: '-ncı',
+ 9: '-uncu',
+ 10: '-uncu',
+ 30: '-uncu',
+ 60: '-ıncı',
+ 90: '-ıncı',
+ };
+
+ var az = moment.defineLocale('az', {
+ months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(
+ '_'
+ ),
+ monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),
+ weekdays:
+ 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(
+ '_'
+ ),
+ weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),
+ weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[bugün saat] LT',
+ nextDay: '[sabah saat] LT',
+ nextWeek: '[gələn həftə] dddd [saat] LT',
+ lastDay: '[dünən] LT',
+ lastWeek: '[keçən həftə] dddd [saat] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s sonra',
+ past: '%s əvvəl',
+ s: 'bir neçə saniyə',
+ ss: '%d saniyə',
+ m: 'bir dəqiqə',
+ mm: '%d dəqiqə',
+ h: 'bir saat',
+ hh: '%d saat',
+ d: 'bir gün',
+ dd: '%d gün',
+ M: 'bir ay',
+ MM: '%d ay',
+ y: 'bir il',
+ yy: '%d il',
+ },
+ meridiemParse: /gecə|səhər|gündüz|axşam/,
+ isPM: function (input) {
+ return /^(gündüz|axşam)$/.test(input);
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'gecə';
+ } else if (hour < 12) {
+ return 'səhər';
+ } else if (hour < 17) {
+ return 'gündüz';
+ } else {
+ return 'axşam';
+ }
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,
+ ordinal: function (number) {
+ if (number === 0) {
+ // special case for zero
+ return number + '-ıncı';
+ }
+ var a = number % 10,
+ b = (number % 100) - a,
+ c = number >= 100 ? 100 : null;
+ return number + (suffixes[a] || suffixes[b] || suffixes[c]);
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
+ },
+ });
+
+ return az;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/be.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/be.js
new file mode 100644
index 000000000..fd7e772bb
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/be.js
@@ -0,0 +1,153 @@
+//! moment.js locale configuration
+//! locale : Belarusian [be]
+//! author : Dmitry Demidov : https://github.com/demidov91
+//! author: Praleska: http://praleska.pro/
+//! Author : Menelion Elensúle : https://github.com/Oire
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ function plural(word, num) {
+ var forms = word.split('_');
+ return num % 10 === 1 && num % 100 !== 11
+ ? forms[0]
+ : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)
+ ? forms[1]
+ : forms[2];
+ }
+ function relativeTimeWithPlural(number, withoutSuffix, key) {
+ var format = {
+ ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
+ mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
+ hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
+ dd: 'дзень_дні_дзён',
+ MM: 'месяц_месяцы_месяцаў',
+ yy: 'год_гады_гадоў',
+ };
+ if (key === 'm') {
+ return withoutSuffix ? 'хвіліна' : 'хвіліну';
+ } else if (key === 'h') {
+ return withoutSuffix ? 'гадзіна' : 'гадзіну';
+ } else {
+ return number + ' ' + plural(format[key], +number);
+ }
+ }
+
+ var be = moment.defineLocale('be', {
+ months: {
+ format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(
+ '_'
+ ),
+ standalone:
+ 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(
+ '_'
+ ),
+ },
+ monthsShort:
+ 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),
+ weekdays: {
+ format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(
+ '_'
+ ),
+ standalone:
+ 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(
+ '_'
+ ),
+ isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/,
+ },
+ weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
+ weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D MMMM YYYY г.',
+ LLL: 'D MMMM YYYY г., HH:mm',
+ LLLL: 'dddd, D MMMM YYYY г., HH:mm',
+ },
+ calendar: {
+ sameDay: '[Сёння ў] LT',
+ nextDay: '[Заўтра ў] LT',
+ lastDay: '[Учора ў] LT',
+ nextWeek: function () {
+ return '[У] dddd [ў] LT';
+ },
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ case 5:
+ case 6:
+ return '[У мінулую] dddd [ў] LT';
+ case 1:
+ case 2:
+ case 4:
+ return '[У мінулы] dddd [ў] LT';
+ }
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'праз %s',
+ past: '%s таму',
+ s: 'некалькі секунд',
+ m: relativeTimeWithPlural,
+ mm: relativeTimeWithPlural,
+ h: relativeTimeWithPlural,
+ hh: relativeTimeWithPlural,
+ d: 'дзень',
+ dd: relativeTimeWithPlural,
+ M: 'месяц',
+ MM: relativeTimeWithPlural,
+ y: 'год',
+ yy: relativeTimeWithPlural,
+ },
+ meridiemParse: /ночы|раніцы|дня|вечара/,
+ isPM: function (input) {
+ return /^(дня|вечара)$/.test(input);
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'ночы';
+ } else if (hour < 12) {
+ return 'раніцы';
+ } else if (hour < 17) {
+ return 'дня';
+ } else {
+ return 'вечара';
+ }
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'M':
+ case 'd':
+ case 'DDD':
+ case 'w':
+ case 'W':
+ return (number % 10 === 2 || number % 10 === 3) &&
+ number % 100 !== 12 &&
+ number % 100 !== 13
+ ? number + '-і'
+ : number + '-ы';
+ case 'D':
+ return number + '-га';
+ default:
+ return number;
+ }
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
+ },
+ });
+
+ return be;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/bg.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/bg.js
new file mode 100644
index 000000000..5a1bda825
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/bg.js
@@ -0,0 +1,98 @@
+//! moment.js locale configuration
+//! locale : Bulgarian [bg]
+//! author : Krasen Borisov : https://github.com/kraz
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var bg = moment.defineLocale('bg', {
+ months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(
+ '_'
+ ),
+ monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),
+ weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(
+ '_'
+ ),
+ weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),
+ weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS: 'H:mm:ss',
+ L: 'D.MM.YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY H:mm',
+ LLLL: 'dddd, D MMMM YYYY H:mm',
+ },
+ calendar: {
+ sameDay: '[Днес в] LT',
+ nextDay: '[Утре в] LT',
+ nextWeek: 'dddd [в] LT',
+ lastDay: '[Вчера в] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ case 6:
+ return '[Миналата] dddd [в] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[Миналия] dddd [в] LT';
+ }
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'след %s',
+ past: 'преди %s',
+ s: 'няколко секунди',
+ ss: '%d секунди',
+ m: 'минута',
+ mm: '%d минути',
+ h: 'час',
+ hh: '%d часа',
+ d: 'ден',
+ dd: '%d дена',
+ w: 'седмица',
+ ww: '%d седмици',
+ M: 'месец',
+ MM: '%d месеца',
+ y: 'година',
+ yy: '%d години',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
+ ordinal: function (number) {
+ var lastDigit = number % 10,
+ last2Digits = number % 100;
+ if (number === 0) {
+ return number + '-ев';
+ } else if (last2Digits === 0) {
+ return number + '-ен';
+ } else if (last2Digits > 10 && last2Digits < 20) {
+ return number + '-ти';
+ } else if (lastDigit === 1) {
+ return number + '-ви';
+ } else if (lastDigit === 2) {
+ return number + '-ри';
+ } else if (lastDigit === 7 || lastDigit === 8) {
+ return number + '-ми';
+ } else {
+ return number + '-ти';
+ }
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
+ },
+ });
+
+ return bg;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/bm.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/bm.js
new file mode 100644
index 000000000..302410cb0
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/bm.js
@@ -0,0 +1,62 @@
+//! moment.js locale configuration
+//! locale : Bambara [bm]
+//! author : Estelle Comment : https://github.com/estellecomment
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var bm = moment.defineLocale('bm', {
+ months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(
+ '_'
+ ),
+ monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),
+ weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),
+ weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),
+ weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'MMMM [tile] D [san] YYYY',
+ LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
+ LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
+ },
+ calendar: {
+ sameDay: '[Bi lɛrɛ] LT',
+ nextDay: '[Sini lɛrɛ] LT',
+ nextWeek: 'dddd [don lɛrɛ] LT',
+ lastDay: '[Kunu lɛrɛ] LT',
+ lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s kɔnɔ',
+ past: 'a bɛ %s bɔ',
+ s: 'sanga dama dama',
+ ss: 'sekondi %d',
+ m: 'miniti kelen',
+ mm: 'miniti %d',
+ h: 'lɛrɛ kelen',
+ hh: 'lɛrɛ %d',
+ d: 'tile kelen',
+ dd: 'tile %d',
+ M: 'kalo kelen',
+ MM: 'kalo %d',
+ y: 'san kelen',
+ yy: 'san %d',
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return bm;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/bn-bd.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/bn-bd.js
new file mode 100644
index 000000000..1154aa4ef
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/bn-bd.js
@@ -0,0 +1,140 @@
+//! moment.js locale configuration
+//! locale : Bengali (Bangladesh) [bn-bd]
+//! author : Asraf Hossain Patoary : https://github.com/ashwoolford
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var symbolMap = {
+ 1: '১',
+ 2: '২',
+ 3: '৩',
+ 4: '৪',
+ 5: '৫',
+ 6: '৬',
+ 7: '৭',
+ 8: '৮',
+ 9: '৯',
+ 0: '০',
+ },
+ numberMap = {
+ '১': '1',
+ '২': '2',
+ '৩': '3',
+ '৪': '4',
+ '৫': '5',
+ '৬': '6',
+ '৭': '7',
+ '৮': '8',
+ '৯': '9',
+ '০': '0',
+ };
+
+ var bnBd = moment.defineLocale('bn-bd', {
+ months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(
+ '_'
+ ),
+ monthsShort:
+ 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(
+ '_'
+ ),
+ weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(
+ '_'
+ ),
+ weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
+ weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),
+ longDateFormat: {
+ LT: 'A h:mm সময়',
+ LTS: 'A h:mm:ss সময়',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY, A h:mm সময়',
+ LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',
+ },
+ calendar: {
+ sameDay: '[আজ] LT',
+ nextDay: '[আগামীকাল] LT',
+ nextWeek: 'dddd, LT',
+ lastDay: '[গতকাল] LT',
+ lastWeek: '[গত] dddd, LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s পরে',
+ past: '%s আগে',
+ s: 'কয়েক সেকেন্ড',
+ ss: '%d সেকেন্ড',
+ m: 'এক মিনিট',
+ mm: '%d মিনিট',
+ h: 'এক ঘন্টা',
+ hh: '%d ঘন্টা',
+ d: 'এক দিন',
+ dd: '%d দিন',
+ M: 'এক মাস',
+ MM: '%d মাস',
+ y: 'এক বছর',
+ yy: '%d বছর',
+ },
+ preparse: function (string) {
+ return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+
+ meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'রাত') {
+ return hour < 4 ? hour : hour + 12;
+ } else if (meridiem === 'ভোর') {
+ return hour;
+ } else if (meridiem === 'সকাল') {
+ return hour;
+ } else if (meridiem === 'দুপুর') {
+ return hour >= 3 ? hour : hour + 12;
+ } else if (meridiem === 'বিকাল') {
+ return hour + 12;
+ } else if (meridiem === 'সন্ধ্যা') {
+ return hour + 12;
+ }
+ },
+
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'রাত';
+ } else if (hour < 6) {
+ return 'ভোর';
+ } else if (hour < 12) {
+ return 'সকাল';
+ } else if (hour < 15) {
+ return 'দুপুর';
+ } else if (hour < 18) {
+ return 'বিকাল';
+ } else if (hour < 20) {
+ return 'সন্ধ্যা';
+ } else {
+ return 'রাত';
+ }
+ },
+ week: {
+ dow: 0, // Sunday is the first day of the week.
+ doy: 6, // The week that contains Jan 6th is the first week of the year.
+ },
+ });
+
+ return bnBd;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/bn.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/bn.js
new file mode 100644
index 000000000..e5e3e5f51
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/bn.js
@@ -0,0 +1,130 @@
+//! moment.js locale configuration
+//! locale : Bengali [bn]
+//! author : Kaushik Gandhi : https://github.com/kaushikgandhi
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var symbolMap = {
+ 1: '১',
+ 2: '২',
+ 3: '৩',
+ 4: '৪',
+ 5: '৫',
+ 6: '৬',
+ 7: '৭',
+ 8: '৮',
+ 9: '৯',
+ 0: '০',
+ },
+ numberMap = {
+ '১': '1',
+ '২': '2',
+ '৩': '3',
+ '৪': '4',
+ '৫': '5',
+ '৬': '6',
+ '৭': '7',
+ '৮': '8',
+ '৯': '9',
+ '০': '0',
+ };
+
+ var bn = moment.defineLocale('bn', {
+ months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(
+ '_'
+ ),
+ monthsShort:
+ 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(
+ '_'
+ ),
+ weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(
+ '_'
+ ),
+ weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
+ weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),
+ longDateFormat: {
+ LT: 'A h:mm সময়',
+ LTS: 'A h:mm:ss সময়',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY, A h:mm সময়',
+ LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',
+ },
+ calendar: {
+ sameDay: '[আজ] LT',
+ nextDay: '[আগামীকাল] LT',
+ nextWeek: 'dddd, LT',
+ lastDay: '[গতকাল] LT',
+ lastWeek: '[গত] dddd, LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s পরে',
+ past: '%s আগে',
+ s: 'কয়েক সেকেন্ড',
+ ss: '%d সেকেন্ড',
+ m: 'এক মিনিট',
+ mm: '%d মিনিট',
+ h: 'এক ঘন্টা',
+ hh: '%d ঘন্টা',
+ d: 'এক দিন',
+ dd: '%d দিন',
+ M: 'এক মাস',
+ MM: '%d মাস',
+ y: 'এক বছর',
+ yy: '%d বছর',
+ },
+ preparse: function (string) {
+ return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (
+ (meridiem === 'রাত' && hour >= 4) ||
+ (meridiem === 'দুপুর' && hour < 5) ||
+ meridiem === 'বিকাল'
+ ) {
+ return hour + 12;
+ } else {
+ return hour;
+ }
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'রাত';
+ } else if (hour < 10) {
+ return 'সকাল';
+ } else if (hour < 17) {
+ return 'দুপুর';
+ } else if (hour < 20) {
+ return 'বিকাল';
+ } else {
+ return 'রাত';
+ }
+ },
+ week: {
+ dow: 0, // Sunday is the first day of the week.
+ doy: 6, // The week that contains Jan 6th is the first week of the year.
+ },
+ });
+
+ return bn;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/bo.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/bo.js
new file mode 100644
index 000000000..c4a7c5210
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/bo.js
@@ -0,0 +1,135 @@
+//! moment.js locale configuration
+//! locale : Tibetan [bo]
+//! author : Thupten N. Chakrishar : https://github.com/vajradog
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var symbolMap = {
+ 1: '༡',
+ 2: '༢',
+ 3: '༣',
+ 4: '༤',
+ 5: '༥',
+ 6: '༦',
+ 7: '༧',
+ 8: '༨',
+ 9: '༩',
+ 0: '༠',
+ },
+ numberMap = {
+ '༡': '1',
+ '༢': '2',
+ '༣': '3',
+ '༤': '4',
+ '༥': '5',
+ '༦': '6',
+ '༧': '7',
+ '༨': '8',
+ '༩': '9',
+ '༠': '0',
+ };
+
+ var bo = moment.defineLocale('bo', {
+ months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(
+ '_'
+ ),
+ monthsShort:
+ 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(
+ '_'
+ ),
+ monthsShortRegex: /^(ཟླ་\d{1,2})/,
+ monthsParseExact: true,
+ weekdays:
+ 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(
+ '_'
+ ),
+ weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(
+ '_'
+ ),
+ weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),
+ longDateFormat: {
+ LT: 'A h:mm',
+ LTS: 'A h:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY, A h:mm',
+ LLLL: 'dddd, D MMMM YYYY, A h:mm',
+ },
+ calendar: {
+ sameDay: '[དི་རིང] LT',
+ nextDay: '[སང་ཉིན] LT',
+ nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',
+ lastDay: '[ཁ་སང] LT',
+ lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s ལ་',
+ past: '%s སྔན་ལ',
+ s: 'ལམ་སང',
+ ss: '%d སྐར་ཆ།',
+ m: 'སྐར་མ་གཅིག',
+ mm: '%d སྐར་མ',
+ h: 'ཆུ་ཚོད་གཅིག',
+ hh: '%d ཆུ་ཚོད',
+ d: 'ཉིན་གཅིག',
+ dd: '%d ཉིན་',
+ M: 'ཟླ་བ་གཅིག',
+ MM: '%d ཟླ་བ',
+ y: 'ལོ་གཅིག',
+ yy: '%d ལོ',
+ },
+ preparse: function (string) {
+ return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (
+ (meridiem === 'མཚན་མོ' && hour >= 4) ||
+ (meridiem === 'ཉིན་གུང' && hour < 5) ||
+ meridiem === 'དགོང་དག'
+ ) {
+ return hour + 12;
+ } else {
+ return hour;
+ }
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'མཚན་མོ';
+ } else if (hour < 10) {
+ return 'ཞོགས་ཀས';
+ } else if (hour < 17) {
+ return 'ཉིན་གུང';
+ } else if (hour < 20) {
+ return 'དགོང་དག';
+ } else {
+ return 'མཚན་མོ';
+ }
+ },
+ week: {
+ dow: 0, // Sunday is the first day of the week.
+ doy: 6, // The week that contains Jan 6th is the first week of the year.
+ },
+ });
+
+ return bo;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/br.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/br.js
new file mode 100644
index 000000000..bd047fe43
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/br.js
@@ -0,0 +1,179 @@
+//! moment.js locale configuration
+//! locale : Breton [br]
+//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ function relativeTimeWithMutation(number, withoutSuffix, key) {
+ var format = {
+ mm: 'munutenn',
+ MM: 'miz',
+ dd: 'devezh',
+ };
+ return number + ' ' + mutation(format[key], number);
+ }
+ function specialMutationForYears(number) {
+ switch (lastNumber(number)) {
+ case 1:
+ case 3:
+ case 4:
+ case 5:
+ case 9:
+ return number + ' bloaz';
+ default:
+ return number + ' vloaz';
+ }
+ }
+ function lastNumber(number) {
+ if (number > 9) {
+ return lastNumber(number % 10);
+ }
+ return number;
+ }
+ function mutation(text, number) {
+ if (number === 2) {
+ return softMutation(text);
+ }
+ return text;
+ }
+ function softMutation(text) {
+ var mutationTable = {
+ m: 'v',
+ b: 'v',
+ d: 'z',
+ };
+ if (mutationTable[text.charAt(0)] === undefined) {
+ return text;
+ }
+ return mutationTable[text.charAt(0)] + text.substring(1);
+ }
+
+ var monthsParse = [
+ /^gen/i,
+ /^c[ʼ\']hwe/i,
+ /^meu/i,
+ /^ebr/i,
+ /^mae/i,
+ /^(mez|eve)/i,
+ /^gou/i,
+ /^eos/i,
+ /^gwe/i,
+ /^her/i,
+ /^du/i,
+ /^ker/i,
+ ],
+ monthsRegex =
+ /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,
+ monthsStrictRegex =
+ /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,
+ monthsShortStrictRegex =
+ /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,
+ fullWeekdaysParse = [
+ /^sul/i,
+ /^lun/i,
+ /^meurzh/i,
+ /^merc[ʼ\']her/i,
+ /^yaou/i,
+ /^gwener/i,
+ /^sadorn/i,
+ ],
+ shortWeekdaysParse = [
+ /^Sul/i,
+ /^Lun/i,
+ /^Meu/i,
+ /^Mer/i,
+ /^Yao/i,
+ /^Gwe/i,
+ /^Sad/i,
+ ],
+ minWeekdaysParse = [
+ /^Su/i,
+ /^Lu/i,
+ /^Me([^r]|$)/i,
+ /^Mer/i,
+ /^Ya/i,
+ /^Gw/i,
+ /^Sa/i,
+ ];
+
+ var br = moment.defineLocale('br', {
+ months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(
+ '_'
+ ),
+ monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),
+ weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),
+ weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
+ weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
+ weekdaysParse: minWeekdaysParse,
+ fullWeekdaysParse: fullWeekdaysParse,
+ shortWeekdaysParse: shortWeekdaysParse,
+ minWeekdaysParse: minWeekdaysParse,
+
+ monthsRegex: monthsRegex,
+ monthsShortRegex: monthsRegex,
+ monthsStrictRegex: monthsStrictRegex,
+ monthsShortStrictRegex: monthsShortStrictRegex,
+ monthsParse: monthsParse,
+ longMonthsParse: monthsParse,
+ shortMonthsParse: monthsParse,
+
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D [a viz] MMMM YYYY',
+ LLL: 'D [a viz] MMMM YYYY HH:mm',
+ LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[Hiziv da] LT',
+ nextDay: '[Warcʼhoazh da] LT',
+ nextWeek: 'dddd [da] LT',
+ lastDay: '[Decʼh da] LT',
+ lastWeek: 'dddd [paset da] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'a-benn %s',
+ past: '%s ʼzo',
+ s: 'un nebeud segondennoù',
+ ss: '%d eilenn',
+ m: 'ur vunutenn',
+ mm: relativeTimeWithMutation,
+ h: 'un eur',
+ hh: '%d eur',
+ d: 'un devezh',
+ dd: relativeTimeWithMutation,
+ M: 'ur miz',
+ MM: relativeTimeWithMutation,
+ y: 'ur bloaz',
+ yy: specialMutationForYears,
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/,
+ ordinal: function (number) {
+ var output = number === 1 ? 'añ' : 'vet';
+ return number + output;
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn
+ isPM: function (token) {
+ return token === 'g.m.';
+ },
+ meridiem: function (hour, minute, isLower) {
+ return hour < 12 ? 'a.m.' : 'g.m.';
+ },
+ });
+
+ return br;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/bs.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/bs.js
new file mode 100644
index 000000000..55a4d80c9
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/bs.js
@@ -0,0 +1,171 @@
+//! moment.js locale configuration
+//! locale : Bosnian [bs]
+//! author : Nedim Cholich : https://github.com/frontyard
+//! author : Rasid Redzic : https://github.com/rasidre
+//! based on (hr) translation by Bojan Marković
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
+ switch (key) {
+ case 'm':
+ return withoutSuffix
+ ? 'jedna minuta'
+ : isFuture
+ ? 'jednu minutu'
+ : 'jedne minute';
+ }
+ }
+
+ function translate(number, withoutSuffix, key) {
+ var result = number + ' ';
+ switch (key) {
+ case 'ss':
+ if (number === 1) {
+ result += 'sekunda';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'sekunde';
+ } else {
+ result += 'sekundi';
+ }
+ return result;
+ case 'mm':
+ if (number === 1) {
+ result += 'minuta';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'minute';
+ } else {
+ result += 'minuta';
+ }
+ return result;
+ case 'h':
+ return withoutSuffix ? 'jedan sat' : 'jedan sat';
+ case 'hh':
+ if (number === 1) {
+ result += 'sat';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'sata';
+ } else {
+ result += 'sati';
+ }
+ return result;
+ case 'dd':
+ if (number === 1) {
+ result += 'dan';
+ } else {
+ result += 'dana';
+ }
+ return result;
+ case 'MM':
+ if (number === 1) {
+ result += 'mjesec';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'mjeseca';
+ } else {
+ result += 'mjeseci';
+ }
+ return result;
+ case 'yy':
+ if (number === 1) {
+ result += 'godina';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'godine';
+ } else {
+ result += 'godina';
+ }
+ return result;
+ }
+ }
+
+ var bs = moment.defineLocale('bs', {
+ months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(
+ '_'
+ ),
+ monthsShort:
+ 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(
+ '_'
+ ),
+ monthsParseExact: true,
+ weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
+ '_'
+ ),
+ weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
+ weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS: 'H:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY H:mm',
+ LLLL: 'dddd, D. MMMM YYYY H:mm',
+ },
+ calendar: {
+ sameDay: '[danas u] LT',
+ nextDay: '[sutra u] LT',
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[u] [nedjelju] [u] LT';
+ case 3:
+ return '[u] [srijedu] [u] LT';
+ case 6:
+ return '[u] [subotu] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[u] dddd [u] LT';
+ }
+ },
+ lastDay: '[jučer u] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ return '[prošlu] dddd [u] LT';
+ case 6:
+ return '[prošle] [subote] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[prošli] dddd [u] LT';
+ }
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'za %s',
+ past: 'prije %s',
+ s: 'par sekundi',
+ ss: translate,
+ m: processRelativeTime,
+ mm: translate,
+ h: translate,
+ hh: translate,
+ d: 'dan',
+ dd: translate,
+ M: 'mjesec',
+ MM: translate,
+ y: 'godinu',
+ yy: translate,
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
+ },
+ });
+
+ return bs;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ca.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ca.js
new file mode 100644
index 000000000..50f264caf
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ca.js
@@ -0,0 +1,111 @@
+//! moment.js locale configuration
+//! locale : Catalan [ca]
+//! author : Juan G. Hurtado : https://github.com/juanghurtado
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var ca = moment.defineLocale('ca', {
+ months: {
+ standalone:
+ 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(
+ '_'
+ ),
+ format: "de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split(
+ '_'
+ ),
+ isFormat: /D[oD]?(\s)+MMMM/,
+ },
+ monthsShort:
+ 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(
+ '_'
+ ),
+ monthsParseExact: true,
+ weekdays:
+ 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(
+ '_'
+ ),
+ weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),
+ weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS: 'H:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM [de] YYYY',
+ ll: 'D MMM YYYY',
+ LLL: 'D MMMM [de] YYYY [a les] H:mm',
+ lll: 'D MMM YYYY, H:mm',
+ LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',
+ llll: 'ddd D MMM YYYY, H:mm',
+ },
+ calendar: {
+ sameDay: function () {
+ return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
+ },
+ nextDay: function () {
+ return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
+ },
+ nextWeek: function () {
+ return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
+ },
+ lastDay: function () {
+ return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
+ },
+ lastWeek: function () {
+ return (
+ '[el] dddd [passat a ' +
+ (this.hours() !== 1 ? 'les' : 'la') +
+ '] LT'
+ );
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: "d'aquí %s",
+ past: 'fa %s',
+ s: 'uns segons',
+ ss: '%d segons',
+ m: 'un minut',
+ mm: '%d minuts',
+ h: 'una hora',
+ hh: '%d hores',
+ d: 'un dia',
+ dd: '%d dies',
+ M: 'un mes',
+ MM: '%d mesos',
+ y: 'un any',
+ yy: '%d anys',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/,
+ ordinal: function (number, period) {
+ var output =
+ number === 1
+ ? 'r'
+ : number === 2
+ ? 'n'
+ : number === 3
+ ? 'r'
+ : number === 4
+ ? 't'
+ : 'è';
+ if (period === 'w' || period === 'W') {
+ output = 'a';
+ }
+ return number + output;
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return ca;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/cs.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/cs.js
new file mode 100644
index 000000000..7cd88321c
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/cs.js
@@ -0,0 +1,192 @@
+//! moment.js locale configuration
+//! locale : Czech [cs]
+//! author : petrbela : https://github.com/petrbela
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var months = {
+ standalone:
+ 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(
+ '_'
+ ),
+ format: 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(
+ '_'
+ ),
+ isFormat: /DD?[o.]?(\[[^\[\]]*\]|\s)+MMMM/,
+ },
+ monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),
+ monthsParse = [
+ /^led/i,
+ /^úno/i,
+ /^bře/i,
+ /^dub/i,
+ /^kvě/i,
+ /^(čvn|červen$|června)/i,
+ /^(čvc|červenec|července)/i,
+ /^srp/i,
+ /^zář/i,
+ /^říj/i,
+ /^lis/i,
+ /^pro/i,
+ ],
+ // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.
+ // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.
+ monthsRegex =
+ /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;
+
+ function plural(n) {
+ return n > 1 && n < 5 && ~~(n / 10) !== 1;
+ }
+ function translate(number, withoutSuffix, key, isFuture) {
+ var result = number + ' ';
+ switch (key) {
+ case 's': // a few seconds / in a few seconds / a few seconds ago
+ return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';
+ case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'sekundy' : 'sekund');
+ } else {
+ return result + 'sekundami';
+ }
+ case 'm': // a minute / in a minute / a minute ago
+ return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';
+ case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'minuty' : 'minut');
+ } else {
+ return result + 'minutami';
+ }
+ case 'h': // an hour / in an hour / an hour ago
+ return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';
+ case 'hh': // 9 hours / in 9 hours / 9 hours ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'hodiny' : 'hodin');
+ } else {
+ return result + 'hodinami';
+ }
+ case 'd': // a day / in a day / a day ago
+ return withoutSuffix || isFuture ? 'den' : 'dnem';
+ case 'dd': // 9 days / in 9 days / 9 days ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'dny' : 'dní');
+ } else {
+ return result + 'dny';
+ }
+ case 'M': // a month / in a month / a month ago
+ return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';
+ case 'MM': // 9 months / in 9 months / 9 months ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'měsíce' : 'měsíců');
+ } else {
+ return result + 'měsíci';
+ }
+ case 'y': // a year / in a year / a year ago
+ return withoutSuffix || isFuture ? 'rok' : 'rokem';
+ case 'yy': // 9 years / in 9 years / 9 years ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'roky' : 'let');
+ } else {
+ return result + 'lety';
+ }
+ }
+ }
+
+ var cs = moment.defineLocale('cs', {
+ months: months,
+ monthsShort: monthsShort,
+ monthsRegex: monthsRegex,
+ monthsShortRegex: monthsRegex,
+ // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.
+ // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.
+ monthsStrictRegex:
+ /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,
+ monthsShortStrictRegex:
+ /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,
+ monthsParse: monthsParse,
+ longMonthsParse: monthsParse,
+ shortMonthsParse: monthsParse,
+ weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),
+ weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),
+ weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS: 'H:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY H:mm',
+ LLLL: 'dddd D. MMMM YYYY H:mm',
+ l: 'D. M. YYYY',
+ },
+ calendar: {
+ sameDay: '[dnes v] LT',
+ nextDay: '[zítra v] LT',
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[v neděli v] LT';
+ case 1:
+ case 2:
+ return '[v] dddd [v] LT';
+ case 3:
+ return '[ve středu v] LT';
+ case 4:
+ return '[ve čtvrtek v] LT';
+ case 5:
+ return '[v pátek v] LT';
+ case 6:
+ return '[v sobotu v] LT';
+ }
+ },
+ lastDay: '[včera v] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[minulou neděli v] LT';
+ case 1:
+ case 2:
+ return '[minulé] dddd [v] LT';
+ case 3:
+ return '[minulou středu v] LT';
+ case 4:
+ case 5:
+ return '[minulý] dddd [v] LT';
+ case 6:
+ return '[minulou sobotu v] LT';
+ }
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'za %s',
+ past: 'před %s',
+ s: translate,
+ ss: translate,
+ m: translate,
+ mm: translate,
+ h: translate,
+ hh: translate,
+ d: translate,
+ dd: translate,
+ M: translate,
+ MM: translate,
+ y: translate,
+ yy: translate,
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return cs;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/cv.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/cv.js
new file mode 100644
index 000000000..6749d4828
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/cv.js
@@ -0,0 +1,74 @@
+//! moment.js locale configuration
+//! locale : Chuvash [cv]
+//! author : Anatoly Mironov : https://github.com/mirontoli
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var cv = moment.defineLocale('cv', {
+ months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(
+ '_'
+ ),
+ monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),
+ weekdays:
+ 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(
+ '_'
+ ),
+ weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),
+ weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD-MM-YYYY',
+ LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',
+ LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
+ LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
+ },
+ calendar: {
+ sameDay: '[Паян] LT [сехетре]',
+ nextDay: '[Ыран] LT [сехетре]',
+ lastDay: '[Ӗнер] LT [сехетре]',
+ nextWeek: '[Ҫитес] dddd LT [сехетре]',
+ lastWeek: '[Иртнӗ] dddd LT [сехетре]',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: function (output) {
+ var affix = /сехет$/i.exec(output)
+ ? 'рен'
+ : /ҫул$/i.exec(output)
+ ? 'тан'
+ : 'ран';
+ return output + affix;
+ },
+ past: '%s каялла',
+ s: 'пӗр-ик ҫеккунт',
+ ss: '%d ҫеккунт',
+ m: 'пӗр минут',
+ mm: '%d минут',
+ h: 'пӗр сехет',
+ hh: '%d сехет',
+ d: 'пӗр кун',
+ dd: '%d кун',
+ M: 'пӗр уйӑх',
+ MM: '%d уйӑх',
+ y: 'пӗр ҫул',
+ yy: '%d ҫул',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}-мӗш/,
+ ordinal: '%d-мӗш',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
+ },
+ });
+
+ return cv;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/cy.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/cy.js
new file mode 100644
index 000000000..3b987f277
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/cy.js
@@ -0,0 +1,109 @@
+//! moment.js locale configuration
+//! locale : Welsh [cy]
+//! author : Robert Allen : https://github.com/robgallen
+//! author : https://github.com/ryangreaves
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var cy = moment.defineLocale('cy', {
+ months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(
+ '_'
+ ),
+ monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(
+ '_'
+ ),
+ weekdays:
+ 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(
+ '_'
+ ),
+ weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
+ weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
+ weekdaysParseExact: true,
+ // time formats are the same as en-gb
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[Heddiw am] LT',
+ nextDay: '[Yfory am] LT',
+ nextWeek: 'dddd [am] LT',
+ lastDay: '[Ddoe am] LT',
+ lastWeek: 'dddd [diwethaf am] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'mewn %s',
+ past: '%s yn ôl',
+ s: 'ychydig eiliadau',
+ ss: '%d eiliad',
+ m: 'munud',
+ mm: '%d munud',
+ h: 'awr',
+ hh: '%d awr',
+ d: 'diwrnod',
+ dd: '%d diwrnod',
+ M: 'mis',
+ MM: '%d mis',
+ y: 'blwyddyn',
+ yy: '%d flynedd',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
+ // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
+ ordinal: function (number) {
+ var b = number,
+ output = '',
+ lookup = [
+ '',
+ 'af',
+ 'il',
+ 'ydd',
+ 'ydd',
+ 'ed',
+ 'ed',
+ 'ed',
+ 'fed',
+ 'fed',
+ 'fed', // 1af to 10fed
+ 'eg',
+ 'fed',
+ 'eg',
+ 'eg',
+ 'fed',
+ 'eg',
+ 'eg',
+ 'fed',
+ 'eg',
+ 'fed', // 11eg to 20fed
+ ];
+ if (b > 20) {
+ if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {
+ output = 'fed'; // not 30ain, 70ain or 90ain
+ } else {
+ output = 'ain';
+ }
+ } else if (b > 0) {
+ output = lookup[b];
+ }
+ return number + output;
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return cy;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/da.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/da.js
new file mode 100644
index 000000000..2ed05839c
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/da.js
@@ -0,0 +1,64 @@
+//! moment.js locale configuration
+//! locale : Danish [da]
+//! author : Ulrik Nielsen : https://github.com/mrbase
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var da = moment.defineLocale('da', {
+ months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(
+ '_'
+ ),
+ monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
+ weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
+ weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),
+ weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY HH:mm',
+ LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',
+ },
+ calendar: {
+ sameDay: '[i dag kl.] LT',
+ nextDay: '[i morgen kl.] LT',
+ nextWeek: 'på dddd [kl.] LT',
+ lastDay: '[i går kl.] LT',
+ lastWeek: '[i] dddd[s kl.] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'om %s',
+ past: '%s siden',
+ s: 'få sekunder',
+ ss: '%d sekunder',
+ m: 'et minut',
+ mm: '%d minutter',
+ h: 'en time',
+ hh: '%d timer',
+ d: 'en dag',
+ dd: '%d dage',
+ M: 'en måned',
+ MM: '%d måneder',
+ y: 'et år',
+ yy: '%d år',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return da;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/de-at.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/de-at.js
new file mode 100644
index 000000000..7c3130284
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/de-at.js
@@ -0,0 +1,90 @@
+//! moment.js locale configuration
+//! locale : German (Austria) [de-at]
+//! author : lluchs : https://github.com/lluchs
+//! author: Menelion Elensúle: https://github.com/Oire
+//! author : Martin Groller : https://github.com/MadMG
+//! author : Mikolaj Dadela : https://github.com/mik01aj
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ m: ['eine Minute', 'einer Minute'],
+ h: ['eine Stunde', 'einer Stunde'],
+ d: ['ein Tag', 'einem Tag'],
+ dd: [number + ' Tage', number + ' Tagen'],
+ w: ['eine Woche', 'einer Woche'],
+ M: ['ein Monat', 'einem Monat'],
+ MM: [number + ' Monate', number + ' Monaten'],
+ y: ['ein Jahr', 'einem Jahr'],
+ yy: [number + ' Jahre', number + ' Jahren'],
+ };
+ return withoutSuffix ? format[key][0] : format[key][1];
+ }
+
+ var deAt = moment.defineLocale('de-at', {
+ months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
+ '_'
+ ),
+ monthsShort:
+ 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
+ monthsParseExact: true,
+ weekdays:
+ 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
+ '_'
+ ),
+ weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
+ weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY HH:mm',
+ LLLL: 'dddd, D. MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[heute um] LT [Uhr]',
+ sameElse: 'L',
+ nextDay: '[morgen um] LT [Uhr]',
+ nextWeek: 'dddd [um] LT [Uhr]',
+ lastDay: '[gestern um] LT [Uhr]',
+ lastWeek: '[letzten] dddd [um] LT [Uhr]',
+ },
+ relativeTime: {
+ future: 'in %s',
+ past: 'vor %s',
+ s: 'ein paar Sekunden',
+ ss: '%d Sekunden',
+ m: processRelativeTime,
+ mm: '%d Minuten',
+ h: processRelativeTime,
+ hh: '%d Stunden',
+ d: processRelativeTime,
+ dd: processRelativeTime,
+ w: processRelativeTime,
+ ww: '%d Wochen',
+ M: processRelativeTime,
+ MM: processRelativeTime,
+ y: processRelativeTime,
+ yy: processRelativeTime,
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return deAt;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/de-ch.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/de-ch.js
new file mode 100644
index 000000000..08710d385
Binary files /dev/null and b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/de-ch.js differ
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/de.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/de.js
new file mode 100644
index 000000000..cc061ebf4
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/de.js
@@ -0,0 +1,89 @@
+//! moment.js locale configuration
+//! locale : German [de]
+//! author : lluchs : https://github.com/lluchs
+//! author: Menelion Elensúle: https://github.com/Oire
+//! author : Mikolaj Dadela : https://github.com/mik01aj
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ m: ['eine Minute', 'einer Minute'],
+ h: ['eine Stunde', 'einer Stunde'],
+ d: ['ein Tag', 'einem Tag'],
+ dd: [number + ' Tage', number + ' Tagen'],
+ w: ['eine Woche', 'einer Woche'],
+ M: ['ein Monat', 'einem Monat'],
+ MM: [number + ' Monate', number + ' Monaten'],
+ y: ['ein Jahr', 'einem Jahr'],
+ yy: [number + ' Jahre', number + ' Jahren'],
+ };
+ return withoutSuffix ? format[key][0] : format[key][1];
+ }
+
+ var de = moment.defineLocale('de', {
+ months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
+ '_'
+ ),
+ monthsShort:
+ 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
+ monthsParseExact: true,
+ weekdays:
+ 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
+ '_'
+ ),
+ weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
+ weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY HH:mm',
+ LLLL: 'dddd, D. MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[heute um] LT [Uhr]',
+ sameElse: 'L',
+ nextDay: '[morgen um] LT [Uhr]',
+ nextWeek: 'dddd [um] LT [Uhr]',
+ lastDay: '[gestern um] LT [Uhr]',
+ lastWeek: '[letzten] dddd [um] LT [Uhr]',
+ },
+ relativeTime: {
+ future: 'in %s',
+ past: 'vor %s',
+ s: 'ein paar Sekunden',
+ ss: '%d Sekunden',
+ m: processRelativeTime,
+ mm: '%d Minuten',
+ h: processRelativeTime,
+ hh: '%d Stunden',
+ d: processRelativeTime,
+ dd: processRelativeTime,
+ w: processRelativeTime,
+ ww: '%d Wochen',
+ M: processRelativeTime,
+ MM: processRelativeTime,
+ y: processRelativeTime,
+ yy: processRelativeTime,
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return de;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/dv.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/dv.js
new file mode 100644
index 000000000..e6cc8f649
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/dv.js
@@ -0,0 +1,101 @@
+//! moment.js locale configuration
+//! locale : Maldivian [dv]
+//! author : Jawish Hameed : https://github.com/jawish
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var months = [
+ 'ޖެނުއަރީ',
+ 'ފެބްރުއަރީ',
+ 'މާރިޗު',
+ 'އޭޕްރީލު',
+ 'މޭ',
+ 'ޖޫން',
+ 'ޖުލައި',
+ 'އޯގަސްޓު',
+ 'ސެޕްޓެމްބަރު',
+ 'އޮކްޓޯބަރު',
+ 'ނޮވެމްބަރު',
+ 'ޑިސެމްބަރު',
+ ],
+ weekdays = [
+ 'އާދިއްތަ',
+ 'ހޯމަ',
+ 'އަންގާރަ',
+ 'ބުދަ',
+ 'ބުރާސްފަތި',
+ 'ހުކުރު',
+ 'ހޮނިހިރު',
+ ];
+
+ var dv = moment.defineLocale('dv', {
+ months: months,
+ monthsShort: months,
+ weekdays: weekdays,
+ weekdaysShort: weekdays,
+ weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'D/M/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm',
+ },
+ meridiemParse: /މކ|މފ/,
+ isPM: function (input) {
+ return 'މފ' === input;
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'މކ';
+ } else {
+ return 'މފ';
+ }
+ },
+ calendar: {
+ sameDay: '[މިއަދު] LT',
+ nextDay: '[މާދަމާ] LT',
+ nextWeek: 'dddd LT',
+ lastDay: '[އިއްޔެ] LT',
+ lastWeek: '[ފާއިތުވި] dddd LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'ތެރޭގައި %s',
+ past: 'ކުރިން %s',
+ s: 'ސިކުންތުކޮޅެއް',
+ ss: 'd% ސިކުންތު',
+ m: 'މިނިޓެއް',
+ mm: 'މިނިޓު %d',
+ h: 'ގަޑިއިރެއް',
+ hh: 'ގަޑިއިރު %d',
+ d: 'ދުވަހެއް',
+ dd: 'ދުވަސް %d',
+ M: 'މަހެއް',
+ MM: 'މަސް %d',
+ y: 'އަހަރެއް',
+ yy: 'އަހަރު %d',
+ },
+ preparse: function (string) {
+ return string.replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string.replace(/,/g, '،');
+ },
+ week: {
+ dow: 7, // Sunday is the first day of the week.
+ doy: 12, // The week that contains Jan 12th is the first week of the year.
+ },
+ });
+
+ return dv;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/el.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/el.js
new file mode 100644
index 000000000..a14785979
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/el.js
@@ -0,0 +1,117 @@
+//! moment.js locale configuration
+//! locale : Greek [el]
+//! author : Aggelos Karalias : https://github.com/mehiel
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ function isFunction(input) {
+ return (
+ (typeof Function !== 'undefined' && input instanceof Function) ||
+ Object.prototype.toString.call(input) === '[object Function]'
+ );
+ }
+
+ var el = moment.defineLocale('el', {
+ monthsNominativeEl:
+ 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(
+ '_'
+ ),
+ monthsGenitiveEl:
+ 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(
+ '_'
+ ),
+ months: function (momentToFormat, format) {
+ if (!momentToFormat) {
+ return this._monthsNominativeEl;
+ } else if (
+ typeof format === 'string' &&
+ /D/.test(format.substring(0, format.indexOf('MMMM')))
+ ) {
+ // if there is a day number before 'MMMM'
+ return this._monthsGenitiveEl[momentToFormat.month()];
+ } else {
+ return this._monthsNominativeEl[momentToFormat.month()];
+ }
+ },
+ monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),
+ weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(
+ '_'
+ ),
+ weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),
+ weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),
+ meridiem: function (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? 'μμ' : 'ΜΜ';
+ } else {
+ return isLower ? 'πμ' : 'ΠΜ';
+ }
+ },
+ isPM: function (input) {
+ return (input + '').toLowerCase()[0] === 'μ';
+ },
+ meridiemParse: /[ΠΜ]\.?Μ?\.?/i,
+ longDateFormat: {
+ LT: 'h:mm A',
+ LTS: 'h:mm:ss A',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY h:mm A',
+ LLLL: 'dddd, D MMMM YYYY h:mm A',
+ },
+ calendarEl: {
+ sameDay: '[Σήμερα {}] LT',
+ nextDay: '[Αύριο {}] LT',
+ nextWeek: 'dddd [{}] LT',
+ lastDay: '[Χθες {}] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 6:
+ return '[το προηγούμενο] dddd [{}] LT';
+ default:
+ return '[την προηγούμενη] dddd [{}] LT';
+ }
+ },
+ sameElse: 'L',
+ },
+ calendar: function (key, mom) {
+ var output = this._calendarEl[key],
+ hours = mom && mom.hours();
+ if (isFunction(output)) {
+ output = output.apply(mom);
+ }
+ return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');
+ },
+ relativeTime: {
+ future: 'σε %s',
+ past: '%s πριν',
+ s: 'λίγα δευτερόλεπτα',
+ ss: '%d δευτερόλεπτα',
+ m: 'ένα λεπτό',
+ mm: '%d λεπτά',
+ h: 'μία ώρα',
+ hh: '%d ώρες',
+ d: 'μία μέρα',
+ dd: '%d μέρες',
+ M: 'ένας μήνας',
+ MM: '%d μήνες',
+ y: 'ένας χρόνος',
+ yy: '%d χρόνια',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}η/,
+ ordinal: '%dη',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4st is the first week of the year.
+ },
+ });
+
+ return el;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/en-au.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/en-au.js
new file mode 100644
index 000000000..19f51f152
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/en-au.js
@@ -0,0 +1,12 @@
+:"2025-07-05 11:31:41 [DBG] [Microsoft.AspNetCore.Server.Kestrel.Connections] [1] [135] - Connection id \"0HNDQQATBSFQF\" completed keep alive response.\n","stream":"stderr","time":"2025-07-05T03:31:41.530579165Z"}
+{"log":"2025-07-05 11:31:41 [INF] [Microsoft.AspNetCore.Hosting.Diagnostics] [1] [135] - Request finished HTTP/1.1 GET http://localhost/healthz - 500 0 null 3.1038ms\n","stream":"stderr","time":"2025-07-05T03:31:41.530631619Z"}
+{"log":"2025-07-05 11:31:41 [DBG] [Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets] [1] [95] - Connection id \"0HNDQQATBSFQF\" received FIN.\n","stream":"stderr","time":"2025-07-05T03:31:41.530770288Z"}
+{"log":"2025-07-05 11:31:41 [DBG] [Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets] [1] [95] - Connection id \"0HNDQQATBSFQF\" sending FIN because: \"The Socket transport's send loop completed gracefully.\"\n","stream":"stderr","time":"2025-07-05T03:31:41.5309084Z"}
+{"log":"2025-07-05 11:31:41 [DBG] [Microsoft.AspNetCore.Server.Kestrel.Connections] [1] [95] - Connection id \"0HNDQQATBSFQF\" disconnecting.\n","stream":"stderr","time":"2025-07-05T03:31:41.530921423Z"}
+{"log":"2025-07-05 11:31:41 [DBG] [Microsoft.AspNetCore.Server.Kestrel.Connections] [1] [135] - Connection id \"0HNDQQATBSFQF\" stopped.\n","stream":"stderr","time":"2025-07-05T03:31:41.531023048Z"}
+{"log":"2025-07-05 11:31:51 [DBG] [Microsoft.AspNetCore.Server.Kestrel.Connections] [1] [100] - Connection id \"0HNDQQATBSFQG\" accepted.\n","stream":"stderr","time":"2025-07-05T03:31:51.593587844Z"}
+{"log":"2025-07-05 11:31:51 [DBG] [Microsoft.AspNetCore.Server.Kestrel.Connections] [1] [135] - Connection id \"0HNDQQATBSFQG\" started.\n","stream":"stderr","time":"2025-07-05T03:31:51.593608909Z"}
+{"log":"2025-07-05 11:31:51 [INF] [Microsoft.AspNetCore.Hosting.Diagnostics] [1] [135] - Request starting HTTP/1.1 HEAD http://localhost/healthz - null null\n","stream":"stderr","time":"2025-07-05T03:31:51.593735211Z"}
+{"log":"2025-07-05 11:31:51 [DBG] [Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware] [1] [135] - AbpCultureMapRequestCultureProvider returned the following unsupported cultures '[]'.\n","stream":"stderr","time":"2025-07-05T03:31:51.594228126Z"}
+{"log":"2025-07-05 11:31:51 [DBG] [Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware] [1] [135] - AbpCultureMapRequestCultureProvider returned the following unsupported UI Cultures '[]'.\n","stream":"stderr","time":"2025-07-05T03:31:51.594231565Z"}
+{"log":"2025-07-05 11:31:51 [DBG] [Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware] [1] [135] - The request path /healthz does not match a supported file type\n","stream":"st
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/en-ca.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/en-ca.js
new file mode 100644
index 000000000..29a33906a
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/en-ca.js
@@ -0,0 +1,75 @@
+//! moment.js locale configuration
+//! locale : English (Canada) [en-ca]
+//! author : Jonathan Abourbih : https://github.com/jonbca
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var enCa = moment.defineLocale('en-ca', {
+ months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
+ '_'
+ ),
+ monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
+ '_'
+ ),
+ weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat: {
+ LT: 'h:mm A',
+ LTS: 'h:mm:ss A',
+ L: 'YYYY-MM-DD',
+ LL: 'MMMM D, YYYY',
+ LLL: 'MMMM D, YYYY h:mm A',
+ LLLL: 'dddd, MMMM D, YYYY h:mm A',
+ },
+ calendar: {
+ sameDay: '[Today at] LT',
+ nextDay: '[Tomorrow at] LT',
+ nextWeek: 'dddd [at] LT',
+ lastDay: '[Yesterday at] LT',
+ lastWeek: '[Last] dddd [at] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'in %s',
+ past: '%s ago',
+ s: 'a few seconds',
+ ss: '%d seconds',
+ m: 'a minute',
+ mm: '%d minutes',
+ h: 'an hour',
+ hh: '%d hours',
+ d: 'a day',
+ dd: '%d days',
+ M: 'a month',
+ MM: '%d months',
+ y: 'a year',
+ yy: '%d years',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
+ ordinal: function (number) {
+ var b = number % 10,
+ output =
+ ~~((number % 100) / 10) === 1
+ ? 'th'
+ : b === 1
+ ? 'st'
+ : b === 2
+ ? 'nd'
+ : b === 3
+ ? 'rd'
+ : 'th';
+ return number + output;
+ },
+ });
+
+ return enCa;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/en-gb.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/en-gb.js
new file mode 100644
index 000000000..a159749de
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/en-gb.js
@@ -0,0 +1,79 @@
+//! moment.js locale configuration
+//! locale : English (United Kingdom) [en-gb]
+//! author : Chris Gedrim : https://github.com/chrisgedrim
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var enGb = moment.defineLocale('en-gb', {
+ months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
+ '_'
+ ),
+ monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
+ '_'
+ ),
+ weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[Today at] LT',
+ nextDay: '[Tomorrow at] LT',
+ nextWeek: 'dddd [at] LT',
+ lastDay: '[Yesterday at] LT',
+ lastWeek: '[Last] dddd [at] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'in %s',
+ past: '%s ago',
+ s: 'a few seconds',
+ ss: '%d seconds',
+ m: 'a minute',
+ mm: '%d minutes',
+ h: 'an hour',
+ hh: '%d hours',
+ d: 'a day',
+ dd: '%d days',
+ M: 'a month',
+ MM: '%d months',
+ y: 'a year',
+ yy: '%d years',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
+ ordinal: function (number) {
+ var b = number % 10,
+ output =
+ ~~((number % 100) / 10) === 1
+ ? 'th'
+ : b === 1
+ ? 'st'
+ : b === 2
+ ? 'nd'
+ : b === 3
+ ? 'rd'
+ : 'th';
+ return number + output;
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return enGb;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/en-ie.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/en-ie.js
new file mode 100644
index 000000000..bbde28145
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/en-ie.js
@@ -0,0 +1,79 @@
+//! moment.js locale configuration
+//! locale : English (Ireland) [en-ie]
+//! author : Chris Cartlidge : https://github.com/chriscartlidge
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var enIe = moment.defineLocale('en-ie', {
+ months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
+ '_'
+ ),
+ monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
+ '_'
+ ),
+ weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[Today at] LT',
+ nextDay: '[Tomorrow at] LT',
+ nextWeek: 'dddd [at] LT',
+ lastDay: '[Yesterday at] LT',
+ lastWeek: '[Last] dddd [at] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'in %s',
+ past: '%s ago',
+ s: 'a few seconds',
+ ss: '%d seconds',
+ m: 'a minute',
+ mm: '%d minutes',
+ h: 'an hour',
+ hh: '%d hours',
+ d: 'a day',
+ dd: '%d days',
+ M: 'a month',
+ MM: '%d months',
+ y: 'a year',
+ yy: '%d years',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
+ ordinal: function (number) {
+ var b = number % 10,
+ output =
+ ~~((number % 100) / 10) === 1
+ ? 'th'
+ : b === 1
+ ? 'st'
+ : b === 2
+ ? 'nd'
+ : b === 3
+ ? 'rd'
+ : 'th';
+ return number + output;
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return enIe;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/en-il.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/en-il.js
new file mode 100644
index 000000000..c9c567a98
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/en-il.js
@@ -0,0 +1,75 @@
+//! moment.js locale configuration
+//! locale : English (Israel) [en-il]
+//! author : Chris Gedrim : https://github.com/chrisgedrim
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var enIl = moment.defineLocale('en-il', {
+ months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
+ '_'
+ ),
+ monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
+ '_'
+ ),
+ weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[Today at] LT',
+ nextDay: '[Tomorrow at] LT',
+ nextWeek: 'dddd [at] LT',
+ lastDay: '[Yesterday at] LT',
+ lastWeek: '[Last] dddd [at] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'in %s',
+ past: '%s ago',
+ s: 'a few seconds',
+ ss: '%d seconds',
+ m: 'a minute',
+ mm: '%d minutes',
+ h: 'an hour',
+ hh: '%d hours',
+ d: 'a day',
+ dd: '%d days',
+ M: 'a month',
+ MM: '%d months',
+ y: 'a year',
+ yy: '%d years',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
+ ordinal: function (number) {
+ var b = number % 10,
+ output =
+ ~~((number % 100) / 10) === 1
+ ? 'th'
+ : b === 1
+ ? 'st'
+ : b === 2
+ ? 'nd'
+ : b === 3
+ ? 'rd'
+ : 'th';
+ return number + output;
+ },
+ });
+
+ return enIl;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/en-in.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/en-in.js
new file mode 100644
index 000000000..c10fb4bb9
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/en-in.js
@@ -0,0 +1,79 @@
+//! moment.js locale configuration
+//! locale : English (India) [en-in]
+//! author : Jatin Agrawal : https://github.com/jatinag22
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var enIn = moment.defineLocale('en-in', {
+ months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
+ '_'
+ ),
+ monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
+ '_'
+ ),
+ weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat: {
+ LT: 'h:mm A',
+ LTS: 'h:mm:ss A',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY h:mm A',
+ LLLL: 'dddd, D MMMM YYYY h:mm A',
+ },
+ calendar: {
+ sameDay: '[Today at] LT',
+ nextDay: '[Tomorrow at] LT',
+ nextWeek: 'dddd [at] LT',
+ lastDay: '[Yesterday at] LT',
+ lastWeek: '[Last] dddd [at] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'in %s',
+ past: '%s ago',
+ s: 'a few seconds',
+ ss: '%d seconds',
+ m: 'a minute',
+ mm: '%d minutes',
+ h: 'an hour',
+ hh: '%d hours',
+ d: 'a day',
+ dd: '%d days',
+ M: 'a month',
+ MM: '%d months',
+ y: 'a year',
+ yy: '%d years',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
+ ordinal: function (number) {
+ var b = number % 10,
+ output =
+ ~~((number % 100) / 10) === 1
+ ? 'th'
+ : b === 1
+ ? 'st'
+ : b === 2
+ ? 'nd'
+ : b === 3
+ ? 'rd'
+ : 'th';
+ return number + output;
+ },
+ week: {
+ dow: 0, // Sunday is the first day of the week.
+ doy: 6, // The week that contains Jan 1st is the first week of the year.
+ },
+ });
+
+ return enIn;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/en-nz.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/en-nz.js
new file mode 100644
index 000000000..3a9d88fc6
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/en-nz.js
@@ -0,0 +1,79 @@
+//! moment.js locale configuration
+//! locale : English (New Zealand) [en-nz]
+//! author : Luke McGregor : https://github.com/lukemcgregor
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var enNz = moment.defineLocale('en-nz', {
+ months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
+ '_'
+ ),
+ monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
+ '_'
+ ),
+ weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat: {
+ LT: 'h:mm A',
+ LTS: 'h:mm:ss A',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY h:mm A',
+ LLLL: 'dddd, D MMMM YYYY h:mm A',
+ },
+ calendar: {
+ sameDay: '[Today at] LT',
+ nextDay: '[Tomorrow at] LT',
+ nextWeek: 'dddd [at] LT',
+ lastDay: '[Yesterday at] LT',
+ lastWeek: '[Last] dddd [at] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'in %s',
+ past: '%s ago',
+ s: 'a few seconds',
+ ss: '%d seconds',
+ m: 'a minute',
+ mm: '%d minutes',
+ h: 'an hour',
+ hh: '%d hours',
+ d: 'a day',
+ dd: '%d days',
+ M: 'a month',
+ MM: '%d months',
+ y: 'a year',
+ yy: '%d years',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
+ ordinal: function (number) {
+ var b = number % 10,
+ output =
+ ~~((number % 100) / 10) === 1
+ ? 'th'
+ : b === 1
+ ? 'st'
+ : b === 2
+ ? 'nd'
+ : b === 3
+ ? 'rd'
+ : 'th';
+ return number + output;
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return enNz;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/en-sg.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/en-sg.js
new file mode 100644
index 000000000..f7805ad49
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/en-sg.js
@@ -0,0 +1,79 @@
+//! moment.js locale configuration
+//! locale : English (Singapore) [en-sg]
+//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var enSg = moment.defineLocale('en-sg', {
+ months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
+ '_'
+ ),
+ monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
+ weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
+ '_'
+ ),
+ weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
+ weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[Today at] LT',
+ nextDay: '[Tomorrow at] LT',
+ nextWeek: 'dddd [at] LT',
+ lastDay: '[Yesterday at] LT',
+ lastWeek: '[Last] dddd [at] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'in %s',
+ past: '%s ago',
+ s: 'a few seconds',
+ ss: '%d seconds',
+ m: 'a minute',
+ mm: '%d minutes',
+ h: 'an hour',
+ hh: '%d hours',
+ d: 'a day',
+ dd: '%d days',
+ M: 'a month',
+ MM: '%d months',
+ y: 'a year',
+ yy: '%d years',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
+ ordinal: function (number) {
+ var b = number % 10,
+ output =
+ ~~((number % 100) / 10) === 1
+ ? 'th'
+ : b === 1
+ ? 'st'
+ : b === 2
+ ? 'nd'
+ : b === 3
+ ? 'rd'
+ : 'th';
+ return number + output;
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return enSg;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/eo.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/eo.js
new file mode 100644
index 000000000..799dad0cd
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/eo.js
@@ -0,0 +1,79 @@
+//! moment.js locale configuration
+//! locale : Esperanto [eo]
+//! author : Colin Dean : https://github.com/colindean
+//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia
+//! comment : miestasmia corrected the translation by colindean
+//! comment : Vivakvo corrected the translation by colindean and miestasmia
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var eo = moment.defineLocale('eo', {
+ months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(
+ '_'
+ ),
+ monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),
+ weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),
+ weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),
+ weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'YYYY-MM-DD',
+ LL: '[la] D[-an de] MMMM, YYYY',
+ LLL: '[la] D[-an de] MMMM, YYYY HH:mm',
+ LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',
+ llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',
+ },
+ meridiemParse: /[ap]\.t\.m/i,
+ isPM: function (input) {
+ return input.charAt(0).toLowerCase() === 'p';
+ },
+ meridiem: function (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? 'p.t.m.' : 'P.T.M.';
+ } else {
+ return isLower ? 'a.t.m.' : 'A.T.M.';
+ }
+ },
+ calendar: {
+ sameDay: '[Hodiaŭ je] LT',
+ nextDay: '[Morgaŭ je] LT',
+ nextWeek: 'dddd[n je] LT',
+ lastDay: '[Hieraŭ je] LT',
+ lastWeek: '[pasintan] dddd[n je] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'post %s',
+ past: 'antaŭ %s',
+ s: 'kelkaj sekundoj',
+ ss: '%d sekundoj',
+ m: 'unu minuto',
+ mm: '%d minutoj',
+ h: 'unu horo',
+ hh: '%d horoj',
+ d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo
+ dd: '%d tagoj',
+ M: 'unu monato',
+ MM: '%d monatoj',
+ y: 'unu jaro',
+ yy: '%d jaroj',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}a/,
+ ordinal: '%da',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
+ },
+ });
+
+ return eo;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/es-do.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/es-do.js
new file mode 100644
index 000000000..8a557c331
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/es-do.js
@@ -0,0 +1,119 @@
+//! moment.js locale configuration
+//! locale : Spanish (Dominican Republic) [es-do]
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var monthsShortDot =
+ 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
+ '_'
+ ),
+ monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
+ monthsParse = [
+ /^ene/i,
+ /^feb/i,
+ /^mar/i,
+ /^abr/i,
+ /^may/i,
+ /^jun/i,
+ /^jul/i,
+ /^ago/i,
+ /^sep/i,
+ /^oct/i,
+ /^nov/i,
+ /^dic/i,
+ ],
+ monthsRegex =
+ /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
+
+ var esDo = moment.defineLocale('es-do', {
+ months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
+ '_'
+ ),
+ monthsShort: function (m, format) {
+ if (!m) {
+ return monthsShortDot;
+ } else if (/-MMM-/.test(format)) {
+ return monthsShort[m.month()];
+ } else {
+ return monthsShortDot[m.month()];
+ }
+ },
+ monthsRegex: monthsRegex,
+ monthsShortRegex: monthsRegex,
+ monthsStrictRegex:
+ /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
+ monthsShortStrictRegex:
+ /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
+ monthsParse: monthsParse,
+ longMonthsParse: monthsParse,
+ shortMonthsParse: monthsParse,
+ weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
+ weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
+ weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'h:mm A',
+ LTS: 'h:mm:ss A',
+ L: 'DD/MM/YYYY',
+ LL: 'D [de] MMMM [de] YYYY',
+ LLL: 'D [de] MMMM [de] YYYY h:mm A',
+ LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',
+ },
+ calendar: {
+ sameDay: function () {
+ return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
+ },
+ nextDay: function () {
+ return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
+ },
+ nextWeek: function () {
+ return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
+ },
+ lastDay: function () {
+ return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
+ },
+ lastWeek: function () {
+ return (
+ '[el] dddd [pasado a la' +
+ (this.hours() !== 1 ? 's' : '') +
+ '] LT'
+ );
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'en %s',
+ past: 'hace %s',
+ s: 'unos segundos',
+ ss: '%d segundos',
+ m: 'un minuto',
+ mm: '%d minutos',
+ h: 'una hora',
+ hh: '%d horas',
+ d: 'un día',
+ dd: '%d días',
+ w: 'una semana',
+ ww: '%d semanas',
+ M: 'un mes',
+ MM: '%d meses',
+ y: 'un año',
+ yy: '%d años',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}º/,
+ ordinal: '%dº',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return esDo;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/es-mx.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/es-mx.js
new file mode 100644
index 000000000..a233e402e
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/es-mx.js
@@ -0,0 +1,121 @@
+//! moment.js locale configuration
+//! locale : Spanish (Mexico) [es-mx]
+//! author : JC Franco : https://github.com/jcfranco
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var monthsShortDot =
+ 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
+ '_'
+ ),
+ monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
+ monthsParse = [
+ /^ene/i,
+ /^feb/i,
+ /^mar/i,
+ /^abr/i,
+ /^may/i,
+ /^jun/i,
+ /^jul/i,
+ /^ago/i,
+ /^sep/i,
+ /^oct/i,
+ /^nov/i,
+ /^dic/i,
+ ],
+ monthsRegex =
+ /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
+
+ var esMx = moment.defineLocale('es-mx', {
+ months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
+ '_'
+ ),
+ monthsShort: function (m, format) {
+ if (!m) {
+ return monthsShortDot;
+ } else if (/-MMM-/.test(format)) {
+ return monthsShort[m.month()];
+ } else {
+ return monthsShortDot[m.month()];
+ }
+ },
+ monthsRegex: monthsRegex,
+ monthsShortRegex: monthsRegex,
+ monthsStrictRegex:
+ /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
+ monthsShortStrictRegex:
+ /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
+ monthsParse: monthsParse,
+ longMonthsParse: monthsParse,
+ shortMonthsParse: monthsParse,
+ weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
+ weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
+ weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS: 'H:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D [de] MMMM [de] YYYY',
+ LLL: 'D [de] MMMM [de] YYYY H:mm',
+ LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
+ },
+ calendar: {
+ sameDay: function () {
+ return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
+ },
+ nextDay: function () {
+ return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
+ },
+ nextWeek: function () {
+ return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
+ },
+ lastDay: function () {
+ return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
+ },
+ lastWeek: function () {
+ return (
+ '[el] dddd [pasado a la' +
+ (this.hours() !== 1 ? 's' : '') +
+ '] LT'
+ );
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'en %s',
+ past: 'hace %s',
+ s: 'unos segundos',
+ ss: '%d segundos',
+ m: 'un minuto',
+ mm: '%d minutos',
+ h: 'una hora',
+ hh: '%d horas',
+ d: 'un día',
+ dd: '%d días',
+ w: 'una semana',
+ ww: '%d semanas',
+ M: 'un mes',
+ MM: '%d meses',
+ y: 'un año',
+ yy: '%d años',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}º/,
+ ordinal: '%dº',
+ week: {
+ dow: 0, // Sunday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ invalidDate: 'Fecha inválida',
+ });
+
+ return esMx;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/es-us.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/es-us.js
new file mode 100644
index 000000000..2c52254cd
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/es-us.js
@@ -0,0 +1,121 @@
+//! moment.js locale configuration
+//! locale : Spanish (United States) [es-us]
+//! author : bustta : https://github.com/bustta
+//! author : chrisrodz : https://github.com/chrisrodz
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var monthsShortDot =
+ 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
+ '_'
+ ),
+ monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
+ monthsParse = [
+ /^ene/i,
+ /^feb/i,
+ /^mar/i,
+ /^abr/i,
+ /^may/i,
+ /^jun/i,
+ /^jul/i,
+ /^ago/i,
+ /^sep/i,
+ /^oct/i,
+ /^nov/i,
+ /^dic/i,
+ ],
+ monthsRegex =
+ /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
+
+ var esUs = moment.defineLocale('es-us', {
+ months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
+ '_'
+ ),
+ monthsShort: function (m, format) {
+ if (!m) {
+ return monthsShortDot;
+ } else if (/-MMM-/.test(format)) {
+ return monthsShort[m.month()];
+ } else {
+ return monthsShortDot[m.month()];
+ }
+ },
+ monthsRegex: monthsRegex,
+ monthsShortRegex: monthsRegex,
+ monthsStrictRegex:
+ /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
+ monthsShortStrictRegex:
+ /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
+ monthsParse: monthsParse,
+ longMonthsParse: monthsParse,
+ shortMonthsParse: monthsParse,
+ weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
+ weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
+ weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'h:mm A',
+ LTS: 'h:mm:ss A',
+ L: 'MM/DD/YYYY',
+ LL: 'D [de] MMMM [de] YYYY',
+ LLL: 'D [de] MMMM [de] YYYY h:mm A',
+ LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',
+ },
+ calendar: {
+ sameDay: function () {
+ return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
+ },
+ nextDay: function () {
+ return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
+ },
+ nextWeek: function () {
+ return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
+ },
+ lastDay: function () {
+ return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
+ },
+ lastWeek: function () {
+ return (
+ '[el] dddd [pasado a la' +
+ (this.hours() !== 1 ? 's' : '') +
+ '] LT'
+ );
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'en %s',
+ past: 'hace %s',
+ s: 'unos segundos',
+ ss: '%d segundos',
+ m: 'un minuto',
+ mm: '%d minutos',
+ h: 'una hora',
+ hh: '%d horas',
+ d: 'un día',
+ dd: '%d días',
+ w: 'una semana',
+ ww: '%d semanas',
+ M: 'un mes',
+ MM: '%d meses',
+ y: 'un año',
+ yy: '%d años',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}º/,
+ ordinal: '%dº',
+ week: {
+ dow: 0, // Sunday is the first day of the week.
+ doy: 6, // The week that contains Jan 6th is the first week of the year.
+ },
+ });
+
+ return esUs;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/es.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/es.js
new file mode 100644
index 000000000..7fc46286a
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/es.js
@@ -0,0 +1,121 @@
+//! moment.js locale configuration
+//! locale : Spanish [es]
+//! author : Julio Napurí : https://github.com/julionc
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var monthsShortDot =
+ 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
+ '_'
+ ),
+ monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
+ monthsParse = [
+ /^ene/i,
+ /^feb/i,
+ /^mar/i,
+ /^abr/i,
+ /^may/i,
+ /^jun/i,
+ /^jul/i,
+ /^ago/i,
+ /^sep/i,
+ /^oct/i,
+ /^nov/i,
+ /^dic/i,
+ ],
+ monthsRegex =
+ /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
+
+ var es = moment.defineLocale('es', {
+ months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
+ '_'
+ ),
+ monthsShort: function (m, format) {
+ if (!m) {
+ return monthsShortDot;
+ } else if (/-MMM-/.test(format)) {
+ return monthsShort[m.month()];
+ } else {
+ return monthsShortDot[m.month()];
+ }
+ },
+ monthsRegex: monthsRegex,
+ monthsShortRegex: monthsRegex,
+ monthsStrictRegex:
+ /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
+ monthsShortStrictRegex:
+ /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
+ monthsParse: monthsParse,
+ longMonthsParse: monthsParse,
+ shortMonthsParse: monthsParse,
+ weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
+ weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
+ weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS: 'H:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D [de] MMMM [de] YYYY',
+ LLL: 'D [de] MMMM [de] YYYY H:mm',
+ LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
+ },
+ calendar: {
+ sameDay: function () {
+ return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
+ },
+ nextDay: function () {
+ return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
+ },
+ nextWeek: function () {
+ return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
+ },
+ lastDay: function () {
+ return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
+ },
+ lastWeek: function () {
+ return (
+ '[el] dddd [pasado a la' +
+ (this.hours() !== 1 ? 's' : '') +
+ '] LT'
+ );
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'en %s',
+ past: 'hace %s',
+ s: 'unos segundos',
+ ss: '%d segundos',
+ m: 'un minuto',
+ mm: '%d minutos',
+ h: 'una hora',
+ hh: '%d horas',
+ d: 'un día',
+ dd: '%d días',
+ w: 'una semana',
+ ww: '%d semanas',
+ M: 'un mes',
+ MM: '%d meses',
+ y: 'un año',
+ yy: '%d años',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}º/,
+ ordinal: '%dº',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ invalidDate: 'Fecha inválida',
+ });
+
+ return es;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/et.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/et.js
new file mode 100644
index 000000000..7c8760d8b
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/et.js
@@ -0,0 +1,89 @@
+//! moment.js locale configuration
+//! locale : Estonian [et]
+//! author : Henry Kehlmann : https://github.com/madhenry
+//! improvements : Illimar Tambek : https://github.com/ragulka
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],
+ ss: [number + 'sekundi', number + 'sekundit'],
+ m: ['ühe minuti', 'üks minut'],
+ mm: [number + ' minuti', number + ' minutit'],
+ h: ['ühe tunni', 'tund aega', 'üks tund'],
+ hh: [number + ' tunni', number + ' tundi'],
+ d: ['ühe päeva', 'üks päev'],
+ M: ['kuu aja', 'kuu aega', 'üks kuu'],
+ MM: [number + ' kuu', number + ' kuud'],
+ y: ['ühe aasta', 'aasta', 'üks aasta'],
+ yy: [number + ' aasta', number + ' aastat'],
+ };
+ if (withoutSuffix) {
+ return format[key][2] ? format[key][2] : format[key][1];
+ }
+ return isFuture ? format[key][0] : format[key][1];
+ }
+
+ var et = moment.defineLocale('et', {
+ months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(
+ '_'
+ ),
+ monthsShort:
+ 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),
+ weekdays:
+ 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(
+ '_'
+ ),
+ weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),
+ weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS: 'H:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY H:mm',
+ LLLL: 'dddd, D. MMMM YYYY H:mm',
+ },
+ calendar: {
+ sameDay: '[Täna,] LT',
+ nextDay: '[Homme,] LT',
+ nextWeek: '[Järgmine] dddd LT',
+ lastDay: '[Eile,] LT',
+ lastWeek: '[Eelmine] dddd LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s pärast',
+ past: '%s tagasi',
+ s: processRelativeTime,
+ ss: processRelativeTime,
+ m: processRelativeTime,
+ mm: processRelativeTime,
+ h: processRelativeTime,
+ hh: processRelativeTime,
+ d: processRelativeTime,
+ dd: '%d päeva',
+ M: processRelativeTime,
+ MM: processRelativeTime,
+ y: processRelativeTime,
+ yy: processRelativeTime,
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return et;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/eu.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/eu.js
new file mode 100644
index 000000000..ca2e54763
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/eu.js
@@ -0,0 +1,76 @@
+//! moment.js locale configuration
+//! locale : Basque [eu]
+//! author : Eneko Illarramendi : https://github.com/eillarra
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var eu = moment.defineLocale('eu', {
+ months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(
+ '_'
+ ),
+ monthsShort:
+ 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(
+ '_'
+ ),
+ monthsParseExact: true,
+ weekdays:
+ 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(
+ '_'
+ ),
+ weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),
+ weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'YYYY-MM-DD',
+ LL: 'YYYY[ko] MMMM[ren] D[a]',
+ LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',
+ LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',
+ l: 'YYYY-M-D',
+ ll: 'YYYY[ko] MMM D[a]',
+ lll: 'YYYY[ko] MMM D[a] HH:mm',
+ llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',
+ },
+ calendar: {
+ sameDay: '[gaur] LT[etan]',
+ nextDay: '[bihar] LT[etan]',
+ nextWeek: 'dddd LT[etan]',
+ lastDay: '[atzo] LT[etan]',
+ lastWeek: '[aurreko] dddd LT[etan]',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s barru',
+ past: 'duela %s',
+ s: 'segundo batzuk',
+ ss: '%d segundo',
+ m: 'minutu bat',
+ mm: '%d minutu',
+ h: 'ordu bat',
+ hh: '%d ordu',
+ d: 'egun bat',
+ dd: '%d egun',
+ M: 'hilabete bat',
+ MM: '%d hilabete',
+ y: 'urte bat',
+ yy: '%d urte',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
+ },
+ });
+
+ return eu;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/fa.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/fa.js
new file mode 100644
index 000000000..845757b8d
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/fa.js
@@ -0,0 +1,124 @@
+//! moment.js locale configuration
+//! locale : Persian [fa]
+//! author : Ebrahim Byagowi : https://github.com/ebraminio
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var symbolMap = {
+ 1: '۱',
+ 2: '۲',
+ 3: '۳',
+ 4: '۴',
+ 5: '۵',
+ 6: '۶',
+ 7: '۷',
+ 8: '۸',
+ 9: '۹',
+ 0: '۰',
+ },
+ numberMap = {
+ '۱': '1',
+ '۲': '2',
+ '۳': '3',
+ '۴': '4',
+ '۵': '5',
+ '۶': '6',
+ '۷': '7',
+ '۸': '8',
+ '۹': '9',
+ '۰': '0',
+ };
+
+ var fa = moment.defineLocale('fa', {
+ months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(
+ '_'
+ ),
+ monthsShort:
+ 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(
+ '_'
+ ),
+ weekdays:
+ 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split(
+ '_'
+ ),
+ weekdaysShort:
+ 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split(
+ '_'
+ ),
+ weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
+ },
+ meridiemParse: /قبل از ظهر|بعد از ظهر/,
+ isPM: function (input) {
+ return /بعد از ظهر/.test(input);
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'قبل از ظهر';
+ } else {
+ return 'بعد از ظهر';
+ }
+ },
+ calendar: {
+ sameDay: '[امروز ساعت] LT',
+ nextDay: '[فردا ساعت] LT',
+ nextWeek: 'dddd [ساعت] LT',
+ lastDay: '[دیروز ساعت] LT',
+ lastWeek: 'dddd [پیش] [ساعت] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'در %s',
+ past: '%s پیش',
+ s: 'چند ثانیه',
+ ss: '%d ثانیه',
+ m: 'یک دقیقه',
+ mm: '%d دقیقه',
+ h: 'یک ساعت',
+ hh: '%d ساعت',
+ d: 'یک روز',
+ dd: '%d روز',
+ M: 'یک ماه',
+ MM: '%d ماه',
+ y: 'یک سال',
+ yy: '%d سال',
+ },
+ preparse: function (string) {
+ return string
+ .replace(/[۰-۹]/g, function (match) {
+ return numberMap[match];
+ })
+ .replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string
+ .replace(/\d/g, function (match) {
+ return symbolMap[match];
+ })
+ .replace(/,/g, '،');
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}م/,
+ ordinal: '%dم',
+ week: {
+ dow: 6, // Saturday is the first day of the week.
+ doy: 12, // The week that contains Jan 12th is the first week of the year.
+ },
+ });
+
+ return fa;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/fi.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/fi.js
new file mode 100644
index 000000000..07e57cf6e
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/fi.js
@@ -0,0 +1,135 @@
+//! moment.js locale configuration
+//! locale : Finnish [fi]
+//! author : Tarmo Aidantausta : https://github.com/bleadof
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var numbersPast =
+ 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(
+ ' '
+ ),
+ numbersFuture = [
+ 'nolla',
+ 'yhden',
+ 'kahden',
+ 'kolmen',
+ 'neljän',
+ 'viiden',
+ 'kuuden',
+ numbersPast[7],
+ numbersPast[8],
+ numbersPast[9],
+ ];
+ function translate(number, withoutSuffix, key, isFuture) {
+ var result = '';
+ switch (key) {
+ case 's':
+ return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';
+ case 'ss':
+ result = isFuture ? 'sekunnin' : 'sekuntia';
+ break;
+ case 'm':
+ return isFuture ? 'minuutin' : 'minuutti';
+ case 'mm':
+ result = isFuture ? 'minuutin' : 'minuuttia';
+ break;
+ case 'h':
+ return isFuture ? 'tunnin' : 'tunti';
+ case 'hh':
+ result = isFuture ? 'tunnin' : 'tuntia';
+ break;
+ case 'd':
+ return isFuture ? 'päivän' : 'päivä';
+ case 'dd':
+ result = isFuture ? 'päivän' : 'päivää';
+ break;
+ case 'M':
+ return isFuture ? 'kuukauden' : 'kuukausi';
+ case 'MM':
+ result = isFuture ? 'kuukauden' : 'kuukautta';
+ break;
+ case 'y':
+ return isFuture ? 'vuoden' : 'vuosi';
+ case 'yy':
+ result = isFuture ? 'vuoden' : 'vuotta';
+ break;
+ }
+ result = verbalNumber(number, isFuture) + ' ' + result;
+ return result;
+ }
+ function verbalNumber(number, isFuture) {
+ return number < 10
+ ? isFuture
+ ? numbersFuture[number]
+ : numbersPast[number]
+ : number;
+ }
+
+ var fi = moment.defineLocale('fi', {
+ months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(
+ '_'
+ ),
+ monthsShort:
+ 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(
+ '_'
+ ),
+ weekdays:
+ 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(
+ '_'
+ ),
+ weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),
+ weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),
+ longDateFormat: {
+ LT: 'HH.mm',
+ LTS: 'HH.mm.ss',
+ L: 'DD.MM.YYYY',
+ LL: 'Do MMMM[ta] YYYY',
+ LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',
+ LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',
+ l: 'D.M.YYYY',
+ ll: 'Do MMM YYYY',
+ lll: 'Do MMM YYYY, [klo] HH.mm',
+ llll: 'ddd, Do MMM YYYY, [klo] HH.mm',
+ },
+ calendar: {
+ sameDay: '[tänään] [klo] LT',
+ nextDay: '[huomenna] [klo] LT',
+ nextWeek: 'dddd [klo] LT',
+ lastDay: '[eilen] [klo] LT',
+ lastWeek: '[viime] dddd[na] [klo] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s päästä',
+ past: '%s sitten',
+ s: translate,
+ ss: translate,
+ m: translate,
+ mm: translate,
+ h: translate,
+ hh: translate,
+ d: translate,
+ dd: translate,
+ M: translate,
+ MM: translate,
+ y: translate,
+ yy: translate,
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return fi;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/fil.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/fil.js
new file mode 100644
index 000000000..13103e8d3
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/fil.js
@@ -0,0 +1,69 @@
+//! moment.js locale configuration
+//! locale : Filipino [fil]
+//! author : Dan Hagman : https://github.com/hagmandan
+//! author : Matthew Co : https://github.com/matthewdeeco
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var fil = moment.defineLocale('fil', {
+ months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(
+ '_'
+ ),
+ monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
+ weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(
+ '_'
+ ),
+ weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
+ weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'MM/D/YYYY',
+ LL: 'MMMM D, YYYY',
+ LLL: 'MMMM D, YYYY HH:mm',
+ LLLL: 'dddd, MMMM DD, YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: 'LT [ngayong araw]',
+ nextDay: '[Bukas ng] LT',
+ nextWeek: 'LT [sa susunod na] dddd',
+ lastDay: 'LT [kahapon]',
+ lastWeek: 'LT [noong nakaraang] dddd',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'sa loob ng %s',
+ past: '%s ang nakalipas',
+ s: 'ilang segundo',
+ ss: '%d segundo',
+ m: 'isang minuto',
+ mm: '%d minuto',
+ h: 'isang oras',
+ hh: '%d oras',
+ d: 'isang araw',
+ dd: '%d araw',
+ M: 'isang buwan',
+ MM: '%d buwan',
+ y: 'isang taon',
+ yy: '%d taon',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}/,
+ ordinal: function (number) {
+ return number;
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return fil;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/fo.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/fo.js
new file mode 100644
index 000000000..217fcfbb3
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/fo.js
@@ -0,0 +1,68 @@
+//! moment.js locale configuration
+//! locale : Faroese [fo]
+//! author : Ragnar Johannesen : https://github.com/ragnar123
+//! author : Kristian Sakarisson : https://github.com/sakarisson
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var fo = moment.defineLocale('fo', {
+ months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(
+ '_'
+ ),
+ monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
+ weekdays:
+ 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(
+ '_'
+ ),
+ weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),
+ weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D. MMMM, YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[Í dag kl.] LT',
+ nextDay: '[Í morgin kl.] LT',
+ nextWeek: 'dddd [kl.] LT',
+ lastDay: '[Í gjár kl.] LT',
+ lastWeek: '[síðstu] dddd [kl] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'um %s',
+ past: '%s síðani',
+ s: 'fá sekund',
+ ss: '%d sekundir',
+ m: 'ein minuttur',
+ mm: '%d minuttir',
+ h: 'ein tími',
+ hh: '%d tímar',
+ d: 'ein dagur',
+ dd: '%d dagar',
+ M: 'ein mánaður',
+ MM: '%d mánaðir',
+ y: 'eitt ár',
+ yy: '%d ár',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return fo;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/fr-ca.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/fr-ca.js
new file mode 100644
index 000000000..7d48fd7b7
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/fr-ca.js
@@ -0,0 +1,81 @@
+//! moment.js locale configuration
+//! locale : French (Canada) [fr-ca]
+//! author : Jonathan Abourbih : https://github.com/jonbca
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var frCa = moment.defineLocale('fr-ca', {
+ months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
+ '_'
+ ),
+ monthsShort:
+ 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
+ '_'
+ ),
+ monthsParseExact: true,
+ weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
+ weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
+ weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'YYYY-MM-DD',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[Aujourd’hui à] LT',
+ nextDay: '[Demain à] LT',
+ nextWeek: 'dddd [à] LT',
+ lastDay: '[Hier à] LT',
+ lastWeek: 'dddd [dernier à] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'dans %s',
+ past: 'il y a %s',
+ s: 'quelques secondes',
+ ss: '%d secondes',
+ m: 'une minute',
+ mm: '%d minutes',
+ h: 'une heure',
+ hh: '%d heures',
+ d: 'un jour',
+ dd: '%d jours',
+ M: 'un mois',
+ MM: '%d mois',
+ y: 'un an',
+ yy: '%d ans',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ // Words with masculine grammatical gender: mois, trimestre, jour
+ default:
+ case 'M':
+ case 'Q':
+ case 'D':
+ case 'DDD':
+ case 'd':
+ return number + (number === 1 ? 'er' : 'e');
+
+ // Words with feminine grammatical gender: semaine
+ case 'w':
+ case 'W':
+ return number + (number === 1 ? 're' : 'e');
+ }
+ },
+ });
+
+ return frCa;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/fr-ch.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/fr-ch.js
new file mode 100644
index 000000000..c28d81cfb
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/fr-ch.js
@@ -0,0 +1,85 @@
+//! moment.js locale configuration
+//! locale : French (Switzerland) [fr-ch]
+//! author : Gaspard Bucher : https://github.com/gaspard
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var frCh = moment.defineLocale('fr-ch', {
+ months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
+ '_'
+ ),
+ monthsShort:
+ 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
+ '_'
+ ),
+ monthsParseExact: true,
+ weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
+ weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
+ weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[Aujourd’hui à] LT',
+ nextDay: '[Demain à] LT',
+ nextWeek: 'dddd [à] LT',
+ lastDay: '[Hier à] LT',
+ lastWeek: 'dddd [dernier à] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'dans %s',
+ past: 'il y a %s',
+ s: 'quelques secondes',
+ ss: '%d secondes',
+ m: 'une minute',
+ mm: '%d minutes',
+ h: 'une heure',
+ hh: '%d heures',
+ d: 'un jour',
+ dd: '%d jours',
+ M: 'un mois',
+ MM: '%d mois',
+ y: 'un an',
+ yy: '%d ans',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ // Words with masculine grammatical gender: mois, trimestre, jour
+ default:
+ case 'M':
+ case 'Q':
+ case 'D':
+ case 'DDD':
+ case 'd':
+ return number + (number === 1 ? 'er' : 'e');
+
+ // Words with feminine grammatical gender: semaine
+ case 'w':
+ case 'W':
+ return number + (number === 1 ? 're' : 'e');
+ }
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return frCh;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/fr.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/fr.js
new file mode 100644
index 000000000..4e5536b49
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/fr.js
@@ -0,0 +1,119 @@
+//! moment.js locale configuration
+//! locale : French [fr]
+//! author : John Fischer : https://github.com/jfroffice
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var monthsStrictRegex =
+ /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,
+ monthsShortStrictRegex =
+ /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i,
+ monthsRegex =
+ /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,
+ monthsParse = [
+ /^janv/i,
+ /^févr/i,
+ /^mars/i,
+ /^avr/i,
+ /^mai/i,
+ /^juin/i,
+ /^juil/i,
+ /^août/i,
+ /^sept/i,
+ /^oct/i,
+ /^nov/i,
+ /^déc/i,
+ ];
+
+ var fr = moment.defineLocale('fr', {
+ months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
+ '_'
+ ),
+ monthsShort:
+ 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
+ '_'
+ ),
+ monthsRegex: monthsRegex,
+ monthsShortRegex: monthsRegex,
+ monthsStrictRegex: monthsStrictRegex,
+ monthsShortStrictRegex: monthsShortStrictRegex,
+ monthsParse: monthsParse,
+ longMonthsParse: monthsParse,
+ shortMonthsParse: monthsParse,
+ weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
+ weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
+ weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[Aujourd’hui à] LT',
+ nextDay: '[Demain à] LT',
+ nextWeek: 'dddd [à] LT',
+ lastDay: '[Hier à] LT',
+ lastWeek: 'dddd [dernier à] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'dans %s',
+ past: 'il y a %s',
+ s: 'quelques secondes',
+ ss: '%d secondes',
+ m: 'une minute',
+ mm: '%d minutes',
+ h: 'une heure',
+ hh: '%d heures',
+ d: 'un jour',
+ dd: '%d jours',
+ w: 'une semaine',
+ ww: '%d semaines',
+ M: 'un mois',
+ MM: '%d mois',
+ y: 'un an',
+ yy: '%d ans',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(er|)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ // TODO: Return 'e' when day of month > 1. Move this case inside
+ // block for masculine words below.
+ // See https://github.com/moment/moment/issues/3375
+ case 'D':
+ return number + (number === 1 ? 'er' : '');
+
+ // Words with masculine grammatical gender: mois, trimestre, jour
+ default:
+ case 'M':
+ case 'Q':
+ case 'DDD':
+ case 'd':
+ return number + (number === 1 ? 'er' : 'e');
+
+ // Words with feminine grammatical gender: semaine
+ case 'w':
+ case 'W':
+ return number + (number === 1 ? 're' : 'e');
+ }
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return fr;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/fy.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/fy.js
new file mode 100644
index 000000000..46cac083d
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/fy.js
@@ -0,0 +1,86 @@
+//! moment.js locale configuration
+//! locale : Frisian [fy]
+//! author : Robin van der Vliet : https://github.com/robin0van0der0v
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var monthsShortWithDots =
+ 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),
+ monthsShortWithoutDots =
+ 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');
+
+ var fy = moment.defineLocale('fy', {
+ months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(
+ '_'
+ ),
+ monthsShort: function (m, format) {
+ if (!m) {
+ return monthsShortWithDots;
+ } else if (/-MMM-/.test(format)) {
+ return monthsShortWithoutDots[m.month()];
+ } else {
+ return monthsShortWithDots[m.month()];
+ }
+ },
+ monthsParseExact: true,
+ weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(
+ '_'
+ ),
+ weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),
+ weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD-MM-YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[hjoed om] LT',
+ nextDay: '[moarn om] LT',
+ nextWeek: 'dddd [om] LT',
+ lastDay: '[juster om] LT',
+ lastWeek: '[ôfrûne] dddd [om] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'oer %s',
+ past: '%s lyn',
+ s: 'in pear sekonden',
+ ss: '%d sekonden',
+ m: 'ien minút',
+ mm: '%d minuten',
+ h: 'ien oere',
+ hh: '%d oeren',
+ d: 'ien dei',
+ dd: '%d dagen',
+ M: 'ien moanne',
+ MM: '%d moannen',
+ y: 'ien jier',
+ yy: '%d jierren',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
+ ordinal: function (number) {
+ return (
+ number +
+ (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
+ );
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return fy;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ga.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ga.js
new file mode 100644
index 000000000..96f988c80
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ga.js
@@ -0,0 +1,106 @@
+//! moment.js locale configuration
+//! locale : Irish or Irish Gaelic [ga]
+//! author : André Silva : https://github.com/askpt
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var months = [
+ 'Eanáir',
+ 'Feabhra',
+ 'Márta',
+ 'Aibreán',
+ 'Bealtaine',
+ 'Meitheamh',
+ 'Iúil',
+ 'Lúnasa',
+ 'Meán Fómhair',
+ 'Deireadh Fómhair',
+ 'Samhain',
+ 'Nollaig',
+ ],
+ monthsShort = [
+ 'Ean',
+ 'Feabh',
+ 'Márt',
+ 'Aib',
+ 'Beal',
+ 'Meith',
+ 'Iúil',
+ 'Lún',
+ 'M.F.',
+ 'D.F.',
+ 'Samh',
+ 'Noll',
+ ],
+ weekdays = [
+ 'Dé Domhnaigh',
+ 'Dé Luain',
+ 'Dé Máirt',
+ 'Dé Céadaoin',
+ 'Déardaoin',
+ 'Dé hAoine',
+ 'Dé Sathairn',
+ ],
+ weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],
+ weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];
+
+ var ga = moment.defineLocale('ga', {
+ months: months,
+ monthsShort: monthsShort,
+ monthsParseExact: true,
+ weekdays: weekdays,
+ weekdaysShort: weekdaysShort,
+ weekdaysMin: weekdaysMin,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[Inniu ag] LT',
+ nextDay: '[Amárach ag] LT',
+ nextWeek: 'dddd [ag] LT',
+ lastDay: '[Inné ag] LT',
+ lastWeek: 'dddd [seo caite] [ag] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'i %s',
+ past: '%s ó shin',
+ s: 'cúpla soicind',
+ ss: '%d soicind',
+ m: 'nóiméad',
+ mm: '%d nóiméad',
+ h: 'uair an chloig',
+ hh: '%d uair an chloig',
+ d: 'lá',
+ dd: '%d lá',
+ M: 'mí',
+ MM: '%d míonna',
+ y: 'bliain',
+ yy: '%d bliain',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/,
+ ordinal: function (number) {
+ var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';
+ return number + output;
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return ga;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/gd.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/gd.js
new file mode 100644
index 000000000..b053838e6
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/gd.js
@@ -0,0 +1,106 @@
+//! moment.js locale configuration
+//! locale : Scottish Gaelic [gd]
+//! author : Jon Ashdown : https://github.com/jonashdown
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var months = [
+ 'Am Faoilleach',
+ 'An Gearran',
+ 'Am Màrt',
+ 'An Giblean',
+ 'An Cèitean',
+ 'An t-Ògmhios',
+ 'An t-Iuchar',
+ 'An Lùnastal',
+ 'An t-Sultain',
+ 'An Dàmhair',
+ 'An t-Samhain',
+ 'An Dùbhlachd',
+ ],
+ monthsShort = [
+ 'Faoi',
+ 'Gear',
+ 'Màrt',
+ 'Gibl',
+ 'Cèit',
+ 'Ògmh',
+ 'Iuch',
+ 'Lùn',
+ 'Sult',
+ 'Dàmh',
+ 'Samh',
+ 'Dùbh',
+ ],
+ weekdays = [
+ 'Didòmhnaich',
+ 'Diluain',
+ 'Dimàirt',
+ 'Diciadain',
+ 'Diardaoin',
+ 'Dihaoine',
+ 'Disathairne',
+ ],
+ weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],
+ weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];
+
+ var gd = moment.defineLocale('gd', {
+ months: months,
+ monthsShort: monthsShort,
+ monthsParseExact: true,
+ weekdays: weekdays,
+ weekdaysShort: weekdaysShort,
+ weekdaysMin: weekdaysMin,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[An-diugh aig] LT',
+ nextDay: '[A-màireach aig] LT',
+ nextWeek: 'dddd [aig] LT',
+ lastDay: '[An-dè aig] LT',
+ lastWeek: 'dddd [seo chaidh] [aig] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'ann an %s',
+ past: 'bho chionn %s',
+ s: 'beagan diogan',
+ ss: '%d diogan',
+ m: 'mionaid',
+ mm: '%d mionaidean',
+ h: 'uair',
+ hh: '%d uairean',
+ d: 'latha',
+ dd: '%d latha',
+ M: 'mìos',
+ MM: '%d mìosan',
+ y: 'bliadhna',
+ yy: '%d bliadhna',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/,
+ ordinal: function (number) {
+ var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';
+ return number + output;
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return gd;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/gl.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/gl.js
new file mode 100644
index 000000000..16dcb5ab0
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/gl.js
@@ -0,0 +1,86 @@
+//! moment.js locale configuration
+//! locale : Galician [gl]
+//! author : Juan G. Hurtado : https://github.com/juanghurtado
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var gl = moment.defineLocale('gl', {
+ months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(
+ '_'
+ ),
+ monthsShort:
+ 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(
+ '_'
+ ),
+ monthsParseExact: true,
+ weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),
+ weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),
+ weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS: 'H:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D [de] MMMM [de] YYYY',
+ LLL: 'D [de] MMMM [de] YYYY H:mm',
+ LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
+ },
+ calendar: {
+ sameDay: function () {
+ return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';
+ },
+ nextDay: function () {
+ return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';
+ },
+ nextWeek: function () {
+ return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';
+ },
+ lastDay: function () {
+ return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';
+ },
+ lastWeek: function () {
+ return (
+ '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'
+ );
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: function (str) {
+ if (str.indexOf('un') === 0) {
+ return 'n' + str;
+ }
+ return 'en ' + str;
+ },
+ past: 'hai %s',
+ s: 'uns segundos',
+ ss: '%d segundos',
+ m: 'un minuto',
+ mm: '%d minutos',
+ h: 'unha hora',
+ hh: '%d horas',
+ d: 'un día',
+ dd: '%d días',
+ M: 'un mes',
+ MM: '%d meses',
+ y: 'un ano',
+ yy: '%d anos',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}º/,
+ ordinal: '%dº',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return gl;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/gom-deva.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/gom-deva.js
new file mode 100644
index 000000000..ae93d0d16
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/gom-deva.js
@@ -0,0 +1,137 @@
+//! moment.js locale configuration
+//! locale : Konkani Devanagari script [gom-deva]
+//! author : The Discoverer : https://github.com/WikiDiscoverer
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],
+ ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],
+ m: ['एका मिणटान', 'एक मिनूट'],
+ mm: [number + ' मिणटांनी', number + ' मिणटां'],
+ h: ['एका वरान', 'एक वर'],
+ hh: [number + ' वरांनी', number + ' वरां'],
+ d: ['एका दिसान', 'एक दीस'],
+ dd: [number + ' दिसांनी', number + ' दीस'],
+ M: ['एका म्हयन्यान', 'एक म्हयनो'],
+ MM: [number + ' म्हयन्यानी', number + ' म्हयने'],
+ y: ['एका वर्सान', 'एक वर्स'],
+ yy: [number + ' वर्सांनी', number + ' वर्सां'],
+ };
+ return isFuture ? format[key][0] : format[key][1];
+ }
+
+ var gomDeva = moment.defineLocale('gom-deva', {
+ months: {
+ standalone:
+ 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(
+ '_'
+ ),
+ format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(
+ '_'
+ ),
+ isFormat: /MMMM(\s)+D[oD]?/,
+ },
+ monthsShort:
+ 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(
+ '_'
+ ),
+ monthsParseExact: true,
+ weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),
+ weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),
+ weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'A h:mm [वाजतां]',
+ LTS: 'A h:mm:ss [वाजतां]',
+ L: 'DD-MM-YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY A h:mm [वाजतां]',
+ LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',
+ llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',
+ },
+ calendar: {
+ sameDay: '[आयज] LT',
+ nextDay: '[फाल्यां] LT',
+ nextWeek: '[फुडलो] dddd[,] LT',
+ lastDay: '[काल] LT',
+ lastWeek: '[फाटलो] dddd[,] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s',
+ past: '%s आदीं',
+ s: processRelativeTime,
+ ss: processRelativeTime,
+ m: processRelativeTime,
+ mm: processRelativeTime,
+ h: processRelativeTime,
+ hh: processRelativeTime,
+ d: processRelativeTime,
+ dd: processRelativeTime,
+ M: processRelativeTime,
+ MM: processRelativeTime,
+ y: processRelativeTime,
+ yy: processRelativeTime,
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(वेर)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ // the ordinal 'वेर' only applies to day of the month
+ case 'D':
+ return number + 'वेर';
+ default:
+ case 'M':
+ case 'Q':
+ case 'DDD':
+ case 'd':
+ case 'w':
+ case 'W':
+ return number;
+ }
+ },
+ week: {
+ dow: 0, // Sunday is the first day of the week
+ doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)
+ },
+ meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'राती') {
+ return hour < 4 ? hour : hour + 12;
+ } else if (meridiem === 'सकाळीं') {
+ return hour;
+ } else if (meridiem === 'दनपारां') {
+ return hour > 12 ? hour : hour + 12;
+ } else if (meridiem === 'सांजे') {
+ return hour + 12;
+ }
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'राती';
+ } else if (hour < 12) {
+ return 'सकाळीं';
+ } else if (hour < 16) {
+ return 'दनपारां';
+ } else if (hour < 20) {
+ return 'सांजे';
+ } else {
+ return 'राती';
+ }
+ },
+ });
+
+ return gomDeva;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/gom-latn.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/gom-latn.js
new file mode 100644
index 000000000..93cbe159b
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/gom-latn.js
@@ -0,0 +1,135 @@
+//! moment.js locale configuration
+//! locale : Konkani Latin script [gom-latn]
+//! author : The Discoverer : https://github.com/WikiDiscoverer
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ s: ['thoddea sekondamni', 'thodde sekond'],
+ ss: [number + ' sekondamni', number + ' sekond'],
+ m: ['eka mintan', 'ek minut'],
+ mm: [number + ' mintamni', number + ' mintam'],
+ h: ['eka voran', 'ek vor'],
+ hh: [number + ' voramni', number + ' voram'],
+ d: ['eka disan', 'ek dis'],
+ dd: [number + ' disamni', number + ' dis'],
+ M: ['eka mhoinean', 'ek mhoino'],
+ MM: [number + ' mhoineamni', number + ' mhoine'],
+ y: ['eka vorsan', 'ek voros'],
+ yy: [number + ' vorsamni', number + ' vorsam'],
+ };
+ return isFuture ? format[key][0] : format[key][1];
+ }
+
+ var gomLatn = moment.defineLocale('gom-latn', {
+ months: {
+ standalone:
+ 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(
+ '_'
+ ),
+ format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(
+ '_'
+ ),
+ isFormat: /MMMM(\s)+D[oD]?/,
+ },
+ monthsShort:
+ 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),
+ monthsParseExact: true,
+ weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'),
+ weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),
+ weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'A h:mm [vazta]',
+ LTS: 'A h:mm:ss [vazta]',
+ L: 'DD-MM-YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY A h:mm [vazta]',
+ LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',
+ llll: 'ddd, D MMM YYYY, A h:mm [vazta]',
+ },
+ calendar: {
+ sameDay: '[Aiz] LT',
+ nextDay: '[Faleam] LT',
+ nextWeek: '[Fuddlo] dddd[,] LT',
+ lastDay: '[Kal] LT',
+ lastWeek: '[Fattlo] dddd[,] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s',
+ past: '%s adim',
+ s: processRelativeTime,
+ ss: processRelativeTime,
+ m: processRelativeTime,
+ mm: processRelativeTime,
+ h: processRelativeTime,
+ hh: processRelativeTime,
+ d: processRelativeTime,
+ dd: processRelativeTime,
+ M: processRelativeTime,
+ MM: processRelativeTime,
+ y: processRelativeTime,
+ yy: processRelativeTime,
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(er)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ // the ordinal 'er' only applies to day of the month
+ case 'D':
+ return number + 'er';
+ default:
+ case 'M':
+ case 'Q':
+ case 'DDD':
+ case 'd':
+ case 'w':
+ case 'W':
+ return number;
+ }
+ },
+ week: {
+ dow: 0, // Sunday is the first day of the week
+ doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)
+ },
+ meridiemParse: /rati|sokallim|donparam|sanje/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'rati') {
+ return hour < 4 ? hour : hour + 12;
+ } else if (meridiem === 'sokallim') {
+ return hour;
+ } else if (meridiem === 'donparam') {
+ return hour > 12 ? hour : hour + 12;
+ } else if (meridiem === 'sanje') {
+ return hour + 12;
+ }
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'rati';
+ } else if (hour < 12) {
+ return 'sokallim';
+ } else if (hour < 16) {
+ return 'donparam';
+ } else if (hour < 20) {
+ return 'sanje';
+ } else {
+ return 'rati';
+ }
+ },
+ });
+
+ return gomLatn;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/gu.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/gu.js
new file mode 100644
index 000000000..6583f7763
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/gu.js
@@ -0,0 +1,133 @@
+//! moment.js locale configuration
+//! locale : Gujarati [gu]
+//! author : Kaushik Thanki : https://github.com/Kaushik1987
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var symbolMap = {
+ 1: '૧',
+ 2: '૨',
+ 3: '૩',
+ 4: '૪',
+ 5: '૫',
+ 6: '૬',
+ 7: '૭',
+ 8: '૮',
+ 9: '૯',
+ 0: '૦',
+ },
+ numberMap = {
+ '૧': '1',
+ '૨': '2',
+ '૩': '3',
+ '૪': '4',
+ '૫': '5',
+ '૬': '6',
+ '૭': '7',
+ '૮': '8',
+ '૯': '9',
+ '૦': '0',
+ };
+
+ var gu = moment.defineLocale('gu', {
+ months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(
+ '_'
+ ),
+ monthsShort:
+ 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(
+ '_'
+ ),
+ monthsParseExact: true,
+ weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(
+ '_'
+ ),
+ weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),
+ weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),
+ longDateFormat: {
+ LT: 'A h:mm વાગ્યે',
+ LTS: 'A h:mm:ss વાગ્યે',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY, A h:mm વાગ્યે',
+ LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',
+ },
+ calendar: {
+ sameDay: '[આજ] LT',
+ nextDay: '[કાલે] LT',
+ nextWeek: 'dddd, LT',
+ lastDay: '[ગઇકાલે] LT',
+ lastWeek: '[પાછલા] dddd, LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s મા',
+ past: '%s પહેલા',
+ s: 'અમુક પળો',
+ ss: '%d સેકંડ',
+ m: 'એક મિનિટ',
+ mm: '%d મિનિટ',
+ h: 'એક કલાક',
+ hh: '%d કલાક',
+ d: 'એક દિવસ',
+ dd: '%d દિવસ',
+ M: 'એક મહિનો',
+ MM: '%d મહિનો',
+ y: 'એક વર્ષ',
+ yy: '%d વર્ષ',
+ },
+ preparse: function (string) {
+ return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ // Gujarati notation for meridiems are quite fuzzy in practice. While there exists
+ // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.
+ meridiemParse: /રાત|બપોર|સવાર|સાંજ/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'રાત') {
+ return hour < 4 ? hour : hour + 12;
+ } else if (meridiem === 'સવાર') {
+ return hour;
+ } else if (meridiem === 'બપોર') {
+ return hour >= 10 ? hour : hour + 12;
+ } else if (meridiem === 'સાંજ') {
+ return hour + 12;
+ }
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'રાત';
+ } else if (hour < 10) {
+ return 'સવાર';
+ } else if (hour < 17) {
+ return 'બપોર';
+ } else if (hour < 20) {
+ return 'સાંજ';
+ } else {
+ return 'રાત';
+ }
+ },
+ week: {
+ dow: 0, // Sunday is the first day of the week.
+ doy: 6, // The week that contains Jan 6th is the first week of the year.
+ },
+ });
+
+ return gu;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/he.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/he.js
new file mode 100644
index 000000000..e19a0f984
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/he.js
@@ -0,0 +1,105 @@
+//! moment.js locale configuration
+//! locale : Hebrew [he]
+//! author : Tomer Cohen : https://github.com/tomer
+//! author : Moshe Simantov : https://github.com/DevelopmentIL
+//! author : Tal Ater : https://github.com/TalAter
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var he = moment.defineLocale('he', {
+ months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(
+ '_'
+ ),
+ monthsShort:
+ 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),
+ weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),
+ weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),
+ weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D [ב]MMMM YYYY',
+ LLL: 'D [ב]MMMM YYYY HH:mm',
+ LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',
+ l: 'D/M/YYYY',
+ ll: 'D MMM YYYY',
+ lll: 'D MMM YYYY HH:mm',
+ llll: 'ddd, D MMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[היום ב־]LT',
+ nextDay: '[מחר ב־]LT',
+ nextWeek: 'dddd [בשעה] LT',
+ lastDay: '[אתמול ב־]LT',
+ lastWeek: '[ביום] dddd [האחרון בשעה] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'בעוד %s',
+ past: 'לפני %s',
+ s: 'מספר שניות',
+ ss: '%d שניות',
+ m: 'דקה',
+ mm: '%d דקות',
+ h: 'שעה',
+ hh: function (number) {
+ if (number === 2) {
+ return 'שעתיים';
+ }
+ return number + ' שעות';
+ },
+ d: 'יום',
+ dd: function (number) {
+ if (number === 2) {
+ return 'יומיים';
+ }
+ return number + ' ימים';
+ },
+ M: 'חודש',
+ MM: function (number) {
+ if (number === 2) {
+ return 'חודשיים';
+ }
+ return number + ' חודשים';
+ },
+ y: 'שנה',
+ yy: function (number) {
+ if (number === 2) {
+ return 'שנתיים';
+ } else if (number % 10 === 0 && number !== 10) {
+ return number + ' שנה';
+ }
+ return number + ' שנים';
+ },
+ },
+ meridiemParse:
+ /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,
+ isPM: function (input) {
+ return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input);
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 5) {
+ return 'לפנות בוקר';
+ } else if (hour < 10) {
+ return 'בבוקר';
+ } else if (hour < 12) {
+ return isLower ? 'לפנה"צ' : 'לפני הצהריים';
+ } else if (hour < 18) {
+ return isLower ? 'אחה"צ' : 'אחרי הצהריים';
+ } else {
+ return 'בערב';
+ }
+ },
+ });
+
+ return he;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/hi.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/hi.js
new file mode 100644
index 000000000..56515bdc1
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/hi.js
@@ -0,0 +1,179 @@
+//! moment.js locale configuration
+//! locale : Hindi [hi]
+//! author : Mayank Singhal : https://github.com/mayanksinghal
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var symbolMap = {
+ 1: '१',
+ 2: '२',
+ 3: '३',
+ 4: '४',
+ 5: '५',
+ 6: '६',
+ 7: '७',
+ 8: '८',
+ 9: '९',
+ 0: '०',
+ },
+ numberMap = {
+ '१': '1',
+ '२': '2',
+ '३': '3',
+ '४': '4',
+ '५': '5',
+ '६': '6',
+ '७': '7',
+ '८': '8',
+ '९': '9',
+ '०': '0',
+ },
+ monthsParse = [
+ /^जन/i,
+ /^फ़र|फर/i,
+ /^मार्च/i,
+ /^अप्रै/i,
+ /^मई/i,
+ /^जून/i,
+ /^जुल/i,
+ /^अग/i,
+ /^सितं|सित/i,
+ /^अक्टू/i,
+ /^नव|नवं/i,
+ /^दिसं|दिस/i,
+ ],
+ shortMonthsParse = [
+ /^जन/i,
+ /^फ़र/i,
+ /^मार्च/i,
+ /^अप्रै/i,
+ /^मई/i,
+ /^जून/i,
+ /^जुल/i,
+ /^अग/i,
+ /^सित/i,
+ /^अक्टू/i,
+ /^नव/i,
+ /^दिस/i,
+ ];
+
+ var hi = moment.defineLocale('hi', {
+ months: {
+ format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(
+ '_'
+ ),
+ standalone:
+ 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(
+ '_'
+ ),
+ },
+ monthsShort:
+ 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),
+ weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
+ weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),
+ weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),
+ longDateFormat: {
+ LT: 'A h:mm बजे',
+ LTS: 'A h:mm:ss बजे',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY, A h:mm बजे',
+ LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',
+ },
+
+ monthsParse: monthsParse,
+ longMonthsParse: monthsParse,
+ shortMonthsParse: shortMonthsParse,
+
+ monthsRegex:
+ /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,
+
+ monthsShortRegex:
+ /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,
+
+ monthsStrictRegex:
+ /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,
+
+ monthsShortStrictRegex:
+ /^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i,
+
+ calendar: {
+ sameDay: '[आज] LT',
+ nextDay: '[कल] LT',
+ nextWeek: 'dddd, LT',
+ lastDay: '[कल] LT',
+ lastWeek: '[पिछले] dddd, LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s में',
+ past: '%s पहले',
+ s: 'कुछ ही क्षण',
+ ss: '%d सेकंड',
+ m: 'एक मिनट',
+ mm: '%d मिनट',
+ h: 'एक घंटा',
+ hh: '%d घंटे',
+ d: 'एक दिन',
+ dd: '%d दिन',
+ M: 'एक महीने',
+ MM: '%d महीने',
+ y: 'एक वर्ष',
+ yy: '%d वर्ष',
+ },
+ preparse: function (string) {
+ return string.replace(/[१२३४५६७८९०]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ // Hindi notation for meridiems are quite fuzzy in practice. While there exists
+ // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
+ meridiemParse: /रात|सुबह|दोपहर|शाम/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'रात') {
+ return hour < 4 ? hour : hour + 12;
+ } else if (meridiem === 'सुबह') {
+ return hour;
+ } else if (meridiem === 'दोपहर') {
+ return hour >= 10 ? hour : hour + 12;
+ } else if (meridiem === 'शाम') {
+ return hour + 12;
+ }
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'रात';
+ } else if (hour < 10) {
+ return 'सुबह';
+ } else if (hour < 17) {
+ return 'दोपहर';
+ } else if (hour < 20) {
+ return 'शाम';
+ } else {
+ return 'रात';
+ }
+ },
+ week: {
+ dow: 0, // Sunday is the first day of the week.
+ doy: 6, // The week that contains Jan 6th is the first week of the year.
+ },
+ });
+
+ return hi;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/hr.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/hr.js
new file mode 100644
index 000000000..f41cce061
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/hr.js
@@ -0,0 +1,167 @@
+//! moment.js locale configuration
+//! locale : Croatian [hr]
+//! author : Bojan Marković : https://github.com/bmarkovic
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ function translate(number, withoutSuffix, key) {
+ var result = number + ' ';
+ switch (key) {
+ case 'ss':
+ if (number === 1) {
+ result += 'sekunda';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'sekunde';
+ } else {
+ result += 'sekundi';
+ }
+ return result;
+ case 'm':
+ return withoutSuffix ? 'jedna minuta' : 'jedne minute';
+ case 'mm':
+ if (number === 1) {
+ result += 'minuta';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'minute';
+ } else {
+ result += 'minuta';
+ }
+ return result;
+ case 'h':
+ return withoutSuffix ? 'jedan sat' : 'jednog sata';
+ case 'hh':
+ if (number === 1) {
+ result += 'sat';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'sata';
+ } else {
+ result += 'sati';
+ }
+ return result;
+ case 'dd':
+ if (number === 1) {
+ result += 'dan';
+ } else {
+ result += 'dana';
+ }
+ return result;
+ case 'MM':
+ if (number === 1) {
+ result += 'mjesec';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'mjeseca';
+ } else {
+ result += 'mjeseci';
+ }
+ return result;
+ case 'yy':
+ if (number === 1) {
+ result += 'godina';
+ } else if (number === 2 || number === 3 || number === 4) {
+ result += 'godine';
+ } else {
+ result += 'godina';
+ }
+ return result;
+ }
+ }
+
+ var hr = moment.defineLocale('hr', {
+ months: {
+ format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(
+ '_'
+ ),
+ standalone:
+ 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(
+ '_'
+ ),
+ },
+ monthsShort:
+ 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(
+ '_'
+ ),
+ monthsParseExact: true,
+ weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
+ '_'
+ ),
+ weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
+ weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS: 'H:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'Do MMMM YYYY',
+ LLL: 'Do MMMM YYYY H:mm',
+ LLLL: 'dddd, Do MMMM YYYY H:mm',
+ },
+ calendar: {
+ sameDay: '[danas u] LT',
+ nextDay: '[sutra u] LT',
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[u] [nedjelju] [u] LT';
+ case 3:
+ return '[u] [srijedu] [u] LT';
+ case 6:
+ return '[u] [subotu] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[u] dddd [u] LT';
+ }
+ },
+ lastDay: '[jučer u] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[prošlu] [nedjelju] [u] LT';
+ case 3:
+ return '[prošlu] [srijedu] [u] LT';
+ case 6:
+ return '[prošle] [subote] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[prošli] dddd [u] LT';
+ }
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'za %s',
+ past: 'prije %s',
+ s: 'par sekundi',
+ ss: translate,
+ m: translate,
+ mm: translate,
+ h: translate,
+ hh: translate,
+ d: 'dan',
+ dd: translate,
+ M: 'mjesec',
+ MM: translate,
+ y: 'godinu',
+ yy: translate,
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
+ },
+ });
+
+ return hr;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/hu.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/hu.js
new file mode 100644
index 000000000..162959d84
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/hu.js
@@ -0,0 +1,129 @@
+//! moment.js locale configuration
+//! locale : Hungarian [hu]
+//! author : Adam Brunner : https://github.com/adambrunner
+//! author : Peter Viszt : https://github.com/passatgt
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var weekEndings =
+ 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');
+ function translate(number, withoutSuffix, key, isFuture) {
+ var num = number;
+ switch (key) {
+ case 's':
+ return isFuture || withoutSuffix
+ ? 'néhány másodperc'
+ : 'néhány másodperce';
+ case 'ss':
+ return num + (isFuture || withoutSuffix)
+ ? ' másodperc'
+ : ' másodperce';
+ case 'm':
+ return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');
+ case 'mm':
+ return num + (isFuture || withoutSuffix ? ' perc' : ' perce');
+ case 'h':
+ return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');
+ case 'hh':
+ return num + (isFuture || withoutSuffix ? ' óra' : ' órája');
+ case 'd':
+ return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');
+ case 'dd':
+ return num + (isFuture || withoutSuffix ? ' nap' : ' napja');
+ case 'M':
+ return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
+ case 'MM':
+ return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
+ case 'y':
+ return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');
+ case 'yy':
+ return num + (isFuture || withoutSuffix ? ' év' : ' éve');
+ }
+ return '';
+ }
+ function week(isFuture) {
+ return (
+ (isFuture ? '' : '[múlt] ') +
+ '[' +
+ weekEndings[this.day()] +
+ '] LT[-kor]'
+ );
+ }
+
+ var hu = moment.defineLocale('hu', {
+ months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(
+ '_'
+ ),
+ monthsShort:
+ 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(
+ '_'
+ ),
+ monthsParseExact: true,
+ weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),
+ weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),
+ weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS: 'H:mm:ss',
+ L: 'YYYY.MM.DD.',
+ LL: 'YYYY. MMMM D.',
+ LLL: 'YYYY. MMMM D. H:mm',
+ LLLL: 'YYYY. MMMM D., dddd H:mm',
+ },
+ meridiemParse: /de|du/i,
+ isPM: function (input) {
+ return input.charAt(1).toLowerCase() === 'u';
+ },
+ meridiem: function (hours, minutes, isLower) {
+ if (hours < 12) {
+ return isLower === true ? 'de' : 'DE';
+ } else {
+ return isLower === true ? 'du' : 'DU';
+ }
+ },
+ calendar: {
+ sameDay: '[ma] LT[-kor]',
+ nextDay: '[holnap] LT[-kor]',
+ nextWeek: function () {
+ return week.call(this, true);
+ },
+ lastDay: '[tegnap] LT[-kor]',
+ lastWeek: function () {
+ return week.call(this, false);
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s múlva',
+ past: '%s',
+ s: translate,
+ ss: translate,
+ m: translate,
+ mm: translate,
+ h: translate,
+ hh: translate,
+ d: translate,
+ dd: translate,
+ M: translate,
+ MM: translate,
+ y: translate,
+ yy: translate,
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return hu;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/hy-am.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/hy-am.js
new file mode 100644
index 000000000..9c65b1e92
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/hy-am.js
@@ -0,0 +1,105 @@
+//! moment.js locale configuration
+//! locale : Armenian [hy-am]
+//! author : Armendarabyan : https://github.com/armendarabyan
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var hyAm = moment.defineLocale('hy-am', {
+ months: {
+ format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(
+ '_'
+ ),
+ standalone:
+ 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(
+ '_'
+ ),
+ },
+ monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),
+ weekdays:
+ 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(
+ '_'
+ ),
+ weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
+ weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D MMMM YYYY թ.',
+ LLL: 'D MMMM YYYY թ., HH:mm',
+ LLLL: 'dddd, D MMMM YYYY թ., HH:mm',
+ },
+ calendar: {
+ sameDay: '[այսօր] LT',
+ nextDay: '[վաղը] LT',
+ lastDay: '[երեկ] LT',
+ nextWeek: function () {
+ return 'dddd [օրը ժամը] LT';
+ },
+ lastWeek: function () {
+ return '[անցած] dddd [օրը ժամը] LT';
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s հետո',
+ past: '%s առաջ',
+ s: 'մի քանի վայրկյան',
+ ss: '%d վայրկյան',
+ m: 'րոպե',
+ mm: '%d րոպե',
+ h: 'ժամ',
+ hh: '%d ժամ',
+ d: 'օր',
+ dd: '%d օր',
+ M: 'ամիս',
+ MM: '%d ամիս',
+ y: 'տարի',
+ yy: '%d տարի',
+ },
+ meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,
+ isPM: function (input) {
+ return /^(ցերեկվա|երեկոյան)$/.test(input);
+ },
+ meridiem: function (hour) {
+ if (hour < 4) {
+ return 'գիշերվա';
+ } else if (hour < 12) {
+ return 'առավոտվա';
+ } else if (hour < 17) {
+ return 'ցերեկվա';
+ } else {
+ return 'երեկոյան';
+ }
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'DDD':
+ case 'w':
+ case 'W':
+ case 'DDDo':
+ if (number === 1) {
+ return number + '-ին';
+ }
+ return number + '-րդ';
+ default:
+ return number;
+ }
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
+ },
+ });
+
+ return hyAm;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/id.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/id.js
new file mode 100644
index 000000000..9f8ff0a05
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/id.js
@@ -0,0 +1,87 @@
+//! moment.js locale configuration
+//! locale : Indonesian [id]
+//! author : Mohammad Satrio Utomo : https://github.com/tyok
+//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var id = moment.defineLocale('id', {
+ months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(
+ '_'
+ ),
+ monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),
+ weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
+ weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
+ weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
+ longDateFormat: {
+ LT: 'HH.mm',
+ LTS: 'HH.mm.ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY [pukul] HH.mm',
+ LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
+ },
+ meridiemParse: /pagi|siang|sore|malam/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'pagi') {
+ return hour;
+ } else if (meridiem === 'siang') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === 'sore' || meridiem === 'malam') {
+ return hour + 12;
+ }
+ },
+ meridiem: function (hours, minutes, isLower) {
+ if (hours < 11) {
+ return 'pagi';
+ } else if (hours < 15) {
+ return 'siang';
+ } else if (hours < 19) {
+ return 'sore';
+ } else {
+ return 'malam';
+ }
+ },
+ calendar: {
+ sameDay: '[Hari ini pukul] LT',
+ nextDay: '[Besok pukul] LT',
+ nextWeek: 'dddd [pukul] LT',
+ lastDay: '[Kemarin pukul] LT',
+ lastWeek: 'dddd [lalu pukul] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'dalam %s',
+ past: '%s yang lalu',
+ s: 'beberapa detik',
+ ss: '%d detik',
+ m: 'semenit',
+ mm: '%d menit',
+ h: 'sejam',
+ hh: '%d jam',
+ d: 'sehari',
+ dd: '%d hari',
+ M: 'sebulan',
+ MM: '%d bulan',
+ y: 'setahun',
+ yy: '%d tahun',
+ },
+ week: {
+ dow: 0, // Sunday is the first day of the week.
+ doy: 6, // The week that contains Jan 6th is the first week of the year.
+ },
+ });
+
+ return id;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/is.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/is.js
new file mode 100644
index 000000000..02520062d
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/is.js
@@ -0,0 +1,151 @@
+//! moment.js locale configuration
+//! locale : Icelandic [is]
+//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ function plural(n) {
+ if (n % 100 === 11) {
+ return true;
+ } else if (n % 10 === 1) {
+ return false;
+ }
+ return true;
+ }
+ function translate(number, withoutSuffix, key, isFuture) {
+ var result = number + ' ';
+ switch (key) {
+ case 's':
+ return withoutSuffix || isFuture
+ ? 'nokkrar sekúndur'
+ : 'nokkrum sekúndum';
+ case 'ss':
+ if (plural(number)) {
+ return (
+ result +
+ (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')
+ );
+ }
+ return result + 'sekúnda';
+ case 'm':
+ return withoutSuffix ? 'mínúta' : 'mínútu';
+ case 'mm':
+ if (plural(number)) {
+ return (
+ result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')
+ );
+ } else if (withoutSuffix) {
+ return result + 'mínúta';
+ }
+ return result + 'mínútu';
+ case 'hh':
+ if (plural(number)) {
+ return (
+ result +
+ (withoutSuffix || isFuture
+ ? 'klukkustundir'
+ : 'klukkustundum')
+ );
+ }
+ return result + 'klukkustund';
+ case 'd':
+ if (withoutSuffix) {
+ return 'dagur';
+ }
+ return isFuture ? 'dag' : 'degi';
+ case 'dd':
+ if (plural(number)) {
+ if (withoutSuffix) {
+ return result + 'dagar';
+ }
+ return result + (isFuture ? 'daga' : 'dögum');
+ } else if (withoutSuffix) {
+ return result + 'dagur';
+ }
+ return result + (isFuture ? 'dag' : 'degi');
+ case 'M':
+ if (withoutSuffix) {
+ return 'mánuður';
+ }
+ return isFuture ? 'mánuð' : 'mánuði';
+ case 'MM':
+ if (plural(number)) {
+ if (withoutSuffix) {
+ return result + 'mánuðir';
+ }
+ return result + (isFuture ? 'mánuði' : 'mánuðum');
+ } else if (withoutSuffix) {
+ return result + 'mánuður';
+ }
+ return result + (isFuture ? 'mánuð' : 'mánuði');
+ case 'y':
+ return withoutSuffix || isFuture ? 'ár' : 'ári';
+ case 'yy':
+ if (plural(number)) {
+ return result + (withoutSuffix || isFuture ? 'ár' : 'árum');
+ }
+ return result + (withoutSuffix || isFuture ? 'ár' : 'ári');
+ }
+ }
+
+ var is = moment.defineLocale('is', {
+ months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(
+ '_'
+ ),
+ monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),
+ weekdays:
+ 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(
+ '_'
+ ),
+ weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),
+ weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS: 'H:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY [kl.] H:mm',
+ LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',
+ },
+ calendar: {
+ sameDay: '[í dag kl.] LT',
+ nextDay: '[á morgun kl.] LT',
+ nextWeek: 'dddd [kl.] LT',
+ lastDay: '[í gær kl.] LT',
+ lastWeek: '[síðasta] dddd [kl.] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'eftir %s',
+ past: 'fyrir %s síðan',
+ s: translate,
+ ss: translate,
+ m: translate,
+ mm: translate,
+ h: 'klukkustund',
+ hh: translate,
+ d: translate,
+ dd: translate,
+ M: translate,
+ MM: translate,
+ y: translate,
+ yy: translate,
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return is;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/it-ch.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/it-ch.js
new file mode 100644
index 000000000..8042827dd
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/it-ch.js
@@ -0,0 +1,75 @@
+//! moment.js locale configuration
+//! locale : Italian (Switzerland) [it-ch]
+//! author : xfh : https://github.com/xfh
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var itCh = moment.defineLocale('it-ch', {
+ months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(
+ '_'
+ ),
+ monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
+ weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(
+ '_'
+ ),
+ weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
+ weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[Oggi alle] LT',
+ nextDay: '[Domani alle] LT',
+ nextWeek: 'dddd [alle] LT',
+ lastDay: '[Ieri alle] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[la scorsa] dddd [alle] LT';
+ default:
+ return '[lo scorso] dddd [alle] LT';
+ }
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: function (s) {
+ return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;
+ },
+ past: '%s fa',
+ s: 'alcuni secondi',
+ ss: '%d secondi',
+ m: 'un minuto',
+ mm: '%d minuti',
+ h: "un'ora",
+ hh: '%d ore',
+ d: 'un giorno',
+ dd: '%d giorni',
+ M: 'un mese',
+ MM: '%d mesi',
+ y: 'un anno',
+ yy: '%d anni',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}º/,
+ ordinal: '%dº',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return itCh;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/it.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/it.js
new file mode 100644
index 000000000..910e00542
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/it.js
@@ -0,0 +1,117 @@
+//! moment.js locale configuration
+//! locale : Italian [it]
+//! author : Lorenzo : https://github.com/aliem
+//! author: Mattia Larentis: https://github.com/nostalgiaz
+//! author: Marco : https://github.com/Manfre98
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var it = moment.defineLocale('it', {
+ months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(
+ '_'
+ ),
+ monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
+ weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(
+ '_'
+ ),
+ weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
+ weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: function () {
+ return (
+ '[Oggi a' +
+ (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
+ ']LT'
+ );
+ },
+ nextDay: function () {
+ return (
+ '[Domani a' +
+ (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
+ ']LT'
+ );
+ },
+ nextWeek: function () {
+ return (
+ 'dddd [a' +
+ (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
+ ']LT'
+ );
+ },
+ lastDay: function () {
+ return (
+ '[Ieri a' +
+ (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
+ ']LT'
+ );
+ },
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return (
+ '[La scorsa] dddd [a' +
+ (this.hours() > 1
+ ? 'lle '
+ : this.hours() === 0
+ ? ' '
+ : "ll'") +
+ ']LT'
+ );
+ default:
+ return (
+ '[Lo scorso] dddd [a' +
+ (this.hours() > 1
+ ? 'lle '
+ : this.hours() === 0
+ ? ' '
+ : "ll'") +
+ ']LT'
+ );
+ }
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'tra %s',
+ past: '%s fa',
+ s: 'alcuni secondi',
+ ss: '%d secondi',
+ m: 'un minuto',
+ mm: '%d minuti',
+ h: "un'ora",
+ hh: '%d ore',
+ d: 'un giorno',
+ dd: '%d giorni',
+ w: 'una settimana',
+ ww: '%d settimane',
+ M: 'un mese',
+ MM: '%d mesi',
+ y: 'un anno',
+ yy: '%d anni',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}º/,
+ ordinal: '%dº',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return it;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ja.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ja.js
new file mode 100644
index 000000000..88d845483
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ja.js
@@ -0,0 +1,159 @@
+//! moment.js locale configuration
+//! locale : Japanese [ja]
+//! author : LI Long : https://github.com/baryon
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var ja = moment.defineLocale('ja', {
+ eras: [
+ {
+ since: '2019-05-01',
+ offset: 1,
+ name: '令和',
+ narrow: '㋿',
+ abbr: 'R',
+ },
+ {
+ since: '1989-01-08',
+ until: '2019-04-30',
+ offset: 1,
+ name: '平成',
+ narrow: '㍻',
+ abbr: 'H',
+ },
+ {
+ since: '1926-12-25',
+ until: '1989-01-07',
+ offset: 1,
+ name: '昭和',
+ narrow: '㍼',
+ abbr: 'S',
+ },
+ {
+ since: '1912-07-30',
+ until: '1926-12-24',
+ offset: 1,
+ name: '大正',
+ narrow: '㍽',
+ abbr: 'T',
+ },
+ {
+ since: '1873-01-01',
+ until: '1912-07-29',
+ offset: 6,
+ name: '明治',
+ narrow: '㍾',
+ abbr: 'M',
+ },
+ {
+ since: '0001-01-01',
+ until: '1873-12-31',
+ offset: 1,
+ name: '西暦',
+ narrow: 'AD',
+ abbr: 'AD',
+ },
+ {
+ since: '0000-12-31',
+ until: -Infinity,
+ offset: 1,
+ name: '紀元前',
+ narrow: 'BC',
+ abbr: 'BC',
+ },
+ ],
+ eraYearOrdinalRegex: /(元|\d+)年/,
+ eraYearOrdinalParse: function (input, match) {
+ return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);
+ },
+ months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
+ monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
+ '_'
+ ),
+ weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),
+ weekdaysShort: '日_月_火_水_木_金_土'.split('_'),
+ weekdaysMin: '日_月_火_水_木_金_土'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'YYYY/MM/DD',
+ LL: 'YYYY年M月D日',
+ LLL: 'YYYY年M月D日 HH:mm',
+ LLLL: 'YYYY年M月D日 dddd HH:mm',
+ l: 'YYYY/MM/DD',
+ ll: 'YYYY年M月D日',
+ lll: 'YYYY年M月D日 HH:mm',
+ llll: 'YYYY年M月D日(ddd) HH:mm',
+ },
+ meridiemParse: /午前|午後/i,
+ isPM: function (input) {
+ return input === '午後';
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 12) {
+ return '午前';
+ } else {
+ return '午後';
+ }
+ },
+ calendar: {
+ sameDay: '[今日] LT',
+ nextDay: '[明日] LT',
+ nextWeek: function (now) {
+ if (now.week() !== this.week()) {
+ return '[来週]dddd LT';
+ } else {
+ return 'dddd LT';
+ }
+ },
+ lastDay: '[昨日] LT',
+ lastWeek: function (now) {
+ if (this.week() !== now.week()) {
+ return '[先週]dddd LT';
+ } else {
+ return 'dddd LT';
+ }
+ },
+ sameElse: 'L',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}日/,
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'y':
+ return number === 1 ? '元年' : number + '年';
+ case 'd':
+ case 'D':
+ case 'DDD':
+ return number + '日';
+ default:
+ return number;
+ }
+ },
+ relativeTime: {
+ future: '%s後',
+ past: '%s前',
+ s: '数秒',
+ ss: '%d秒',
+ m: '1分',
+ mm: '%d分',
+ h: '1時間',
+ hh: '%d時間',
+ d: '1日',
+ dd: '%d日',
+ M: '1ヶ月',
+ MM: '%dヶ月',
+ y: '1年',
+ yy: '%d年',
+ },
+ });
+
+ return ja;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/jv.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/jv.js
new file mode 100644
index 000000000..ab6655fe9
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/jv.js
@@ -0,0 +1,87 @@
+//! moment.js locale configuration
+//! locale : Javanese [jv]
+//! author : Rony Lantip : https://github.com/lantip
+//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var jv = moment.defineLocale('jv', {
+ months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(
+ '_'
+ ),
+ monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),
+ weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),
+ weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),
+ weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),
+ longDateFormat: {
+ LT: 'HH.mm',
+ LTS: 'HH.mm.ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY [pukul] HH.mm',
+ LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
+ },
+ meridiemParse: /enjing|siyang|sonten|ndalu/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'enjing') {
+ return hour;
+ } else if (meridiem === 'siyang') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === 'sonten' || meridiem === 'ndalu') {
+ return hour + 12;
+ }
+ },
+ meridiem: function (hours, minutes, isLower) {
+ if (hours < 11) {
+ return 'enjing';
+ } else if (hours < 15) {
+ return 'siyang';
+ } else if (hours < 19) {
+ return 'sonten';
+ } else {
+ return 'ndalu';
+ }
+ },
+ calendar: {
+ sameDay: '[Dinten puniko pukul] LT',
+ nextDay: '[Mbenjang pukul] LT',
+ nextWeek: 'dddd [pukul] LT',
+ lastDay: '[Kala wingi pukul] LT',
+ lastWeek: 'dddd [kepengker pukul] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'wonten ing %s',
+ past: '%s ingkang kepengker',
+ s: 'sawetawis detik',
+ ss: '%d detik',
+ m: 'setunggal menit',
+ mm: '%d menit',
+ h: 'setunggal jam',
+ hh: '%d jam',
+ d: 'sedinten',
+ dd: '%d dinten',
+ M: 'sewulan',
+ MM: '%d wulan',
+ y: 'setaun',
+ yy: '%d taun',
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
+ },
+ });
+
+ return jv;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ka.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ka.js
new file mode 100644
index 000000000..635766940
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ka.js
@@ -0,0 +1,103 @@
+//! moment.js locale configuration
+//! locale : Georgian [ka]
+//! author : Irakli Janiashvili : https://github.com/IrakliJani
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var ka = moment.defineLocale('ka', {
+ months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(
+ '_'
+ ),
+ monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),
+ weekdays: {
+ standalone:
+ 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(
+ '_'
+ ),
+ format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(
+ '_'
+ ),
+ isFormat: /(წინა|შემდეგ)/,
+ },
+ weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),
+ weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[დღეს] LT[-ზე]',
+ nextDay: '[ხვალ] LT[-ზე]',
+ lastDay: '[გუშინ] LT[-ზე]',
+ nextWeek: '[შემდეგ] dddd LT[-ზე]',
+ lastWeek: '[წინა] dddd LT-ზე',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: function (s) {
+ return s.replace(
+ /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,
+ function ($0, $1, $2) {
+ return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';
+ }
+ );
+ },
+ past: function (s) {
+ if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {
+ return s.replace(/(ი|ე)$/, 'ის წინ');
+ }
+ if (/წელი/.test(s)) {
+ return s.replace(/წელი$/, 'წლის წინ');
+ }
+ return s;
+ },
+ s: 'რამდენიმე წამი',
+ ss: '%d წამი',
+ m: 'წუთი',
+ mm: '%d წუთი',
+ h: 'საათი',
+ hh: '%d საათი',
+ d: 'დღე',
+ dd: '%d დღე',
+ M: 'თვე',
+ MM: '%d თვე',
+ y: 'წელი',
+ yy: '%d წელი',
+ },
+ dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,
+ ordinal: function (number) {
+ if (number === 0) {
+ return number;
+ }
+ if (number === 1) {
+ return number + '-ლი';
+ }
+ if (
+ number < 20 ||
+ (number <= 100 && number % 20 === 0) ||
+ number % 100 === 0
+ ) {
+ return 'მე-' + number;
+ }
+ return number + '-ე';
+ },
+ week: {
+ dow: 1,
+ doy: 7,
+ },
+ });
+
+ return ka;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/kk.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/kk.js
new file mode 100644
index 000000000..38f2e8c1c
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/kk.js
@@ -0,0 +1,93 @@
+//! moment.js locale configuration
+//! locale : Kazakh [kk]
+//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var suffixes = {
+ 0: '-ші',
+ 1: '-ші',
+ 2: '-ші',
+ 3: '-ші',
+ 4: '-ші',
+ 5: '-ші',
+ 6: '-шы',
+ 7: '-ші',
+ 8: '-ші',
+ 9: '-шы',
+ 10: '-шы',
+ 20: '-шы',
+ 30: '-шы',
+ 40: '-шы',
+ 50: '-ші',
+ 60: '-шы',
+ 70: '-ші',
+ 80: '-ші',
+ 90: '-шы',
+ 100: '-ші',
+ };
+
+ var kk = moment.defineLocale('kk', {
+ months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(
+ '_'
+ ),
+ monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),
+ weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(
+ '_'
+ ),
+ weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),
+ weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[Бүгін сағат] LT',
+ nextDay: '[Ертең сағат] LT',
+ nextWeek: 'dddd [сағат] LT',
+ lastDay: '[Кеше сағат] LT',
+ lastWeek: '[Өткен аптаның] dddd [сағат] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s ішінде',
+ past: '%s бұрын',
+ s: 'бірнеше секунд',
+ ss: '%d секунд',
+ m: 'бір минут',
+ mm: '%d минут',
+ h: 'бір сағат',
+ hh: '%d сағат',
+ d: 'бір күн',
+ dd: '%d күн',
+ M: 'бір ай',
+ MM: '%d ай',
+ y: 'бір жыл',
+ yy: '%d жыл',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/,
+ ordinal: function (number) {
+ var a = number % 10,
+ b = number >= 100 ? 100 : null;
+ return number + (suffixes[number] || suffixes[a] || suffixes[b]);
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
+ },
+ });
+
+ return kk;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/km.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/km.js
new file mode 100644
index 000000000..5306436e5
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/km.js
@@ -0,0 +1,114 @@
+//! moment.js locale configuration
+//! locale : Cambodian [km]
+//! author : Kruy Vanna : https://github.com/kruyvanna
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var symbolMap = {
+ 1: '១',
+ 2: '២',
+ 3: '៣',
+ 4: '៤',
+ 5: '៥',
+ 6: '៦',
+ 7: '៧',
+ 8: '៨',
+ 9: '៩',
+ 0: '០',
+ },
+ numberMap = {
+ '១': '1',
+ '២': '2',
+ '៣': '3',
+ '៤': '4',
+ '៥': '5',
+ '៦': '6',
+ '៧': '7',
+ '៨': '8',
+ '៩': '9',
+ '០': '0',
+ };
+
+ var km = moment.defineLocale('km', {
+ months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
+ '_'
+ ),
+ monthsShort:
+ 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
+ '_'
+ ),
+ weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
+ weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
+ weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
+ },
+ meridiemParse: /ព្រឹក|ល្ងាច/,
+ isPM: function (input) {
+ return input === 'ល្ងាច';
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'ព្រឹក';
+ } else {
+ return 'ល្ងាច';
+ }
+ },
+ calendar: {
+ sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',
+ nextDay: '[ស្អែក ម៉ោង] LT',
+ nextWeek: 'dddd [ម៉ោង] LT',
+ lastDay: '[ម្សិលមិញ ម៉ោង] LT',
+ lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%sទៀត',
+ past: '%sមុន',
+ s: 'ប៉ុន្មានវិនាទី',
+ ss: '%d វិនាទី',
+ m: 'មួយនាទី',
+ mm: '%d នាទី',
+ h: 'មួយម៉ោង',
+ hh: '%d ម៉ោង',
+ d: 'មួយថ្ងៃ',
+ dd: '%d ថ្ងៃ',
+ M: 'មួយខែ',
+ MM: '%d ខែ',
+ y: 'មួយឆ្នាំ',
+ yy: '%d ឆ្នាំ',
+ },
+ dayOfMonthOrdinalParse: /ទី\d{1,2}/,
+ ordinal: 'ទី%d',
+ preparse: function (string) {
+ return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return km;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/kn.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/kn.js
new file mode 100644
index 000000000..5fe70b0ba
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/kn.js
@@ -0,0 +1,135 @@
+//! moment.js locale configuration
+//! locale : Kannada [kn]
+//! author : Rajeev Naik : https://github.com/rajeevnaikte
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var symbolMap = {
+ 1: '೧',
+ 2: '೨',
+ 3: '೩',
+ 4: '೪',
+ 5: '೫',
+ 6: '೬',
+ 7: '೭',
+ 8: '೮',
+ 9: '೯',
+ 0: '೦',
+ },
+ numberMap = {
+ '೧': '1',
+ '೨': '2',
+ '೩': '3',
+ '೪': '4',
+ '೫': '5',
+ '೬': '6',
+ '೭': '7',
+ '೮': '8',
+ '೯': '9',
+ '೦': '0',
+ };
+
+ var kn = moment.defineLocale('kn', {
+ months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(
+ '_'
+ ),
+ monthsShort:
+ 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(
+ '_'
+ ),
+ monthsParseExact: true,
+ weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(
+ '_'
+ ),
+ weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),
+ weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),
+ longDateFormat: {
+ LT: 'A h:mm',
+ LTS: 'A h:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY, A h:mm',
+ LLLL: 'dddd, D MMMM YYYY, A h:mm',
+ },
+ calendar: {
+ sameDay: '[ಇಂದು] LT',
+ nextDay: '[ನಾಳೆ] LT',
+ nextWeek: 'dddd, LT',
+ lastDay: '[ನಿನ್ನೆ] LT',
+ lastWeek: '[ಕೊನೆಯ] dddd, LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s ನಂತರ',
+ past: '%s ಹಿಂದೆ',
+ s: 'ಕೆಲವು ಕ್ಷಣಗಳು',
+ ss: '%d ಸೆಕೆಂಡುಗಳು',
+ m: 'ಒಂದು ನಿಮಿಷ',
+ mm: '%d ನಿಮಿಷ',
+ h: 'ಒಂದು ಗಂಟೆ',
+ hh: '%d ಗಂಟೆ',
+ d: 'ಒಂದು ದಿನ',
+ dd: '%d ದಿನ',
+ M: 'ಒಂದು ತಿಂಗಳು',
+ MM: '%d ತಿಂಗಳು',
+ y: 'ಒಂದು ವರ್ಷ',
+ yy: '%d ವರ್ಷ',
+ },
+ preparse: function (string) {
+ return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'ರಾತ್ರಿ') {
+ return hour < 4 ? hour : hour + 12;
+ } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {
+ return hour;
+ } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {
+ return hour >= 10 ? hour : hour + 12;
+ } else if (meridiem === 'ಸಂಜೆ') {
+ return hour + 12;
+ }
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'ರಾತ್ರಿ';
+ } else if (hour < 10) {
+ return 'ಬೆಳಿಗ್ಗೆ';
+ } else if (hour < 17) {
+ return 'ಮಧ್ಯಾಹ್ನ';
+ } else if (hour < 20) {
+ return 'ಸಂಜೆ';
+ } else {
+ return 'ರಾತ್ರಿ';
+ }
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/,
+ ordinal: function (number) {
+ return number + 'ನೇ';
+ },
+ week: {
+ dow: 0, // Sunday is the first day of the week.
+ doy: 6, // The week that contains Jan 6th is the first week of the year.
+ },
+ });
+
+ return kn;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ko.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ko.js
new file mode 100644
index 000000000..c81c13ea6
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ko.js
@@ -0,0 +1,86 @@
+//! moment.js locale configuration
+//! locale : Korean [ko]
+//! author : Kyungwook, Park : https://github.com/kyungw00k
+//! author : Jeeeyul Lee
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var ko = moment.defineLocale('ko', {
+ months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
+ monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(
+ '_'
+ ),
+ weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),
+ weekdaysShort: '일_월_화_수_목_금_토'.split('_'),
+ weekdaysMin: '일_월_화_수_목_금_토'.split('_'),
+ longDateFormat: {
+ LT: 'A h:mm',
+ LTS: 'A h:mm:ss',
+ L: 'YYYY.MM.DD.',
+ LL: 'YYYY년 MMMM D일',
+ LLL: 'YYYY년 MMMM D일 A h:mm',
+ LLLL: 'YYYY년 MMMM D일 dddd A h:mm',
+ l: 'YYYY.MM.DD.',
+ ll: 'YYYY년 MMMM D일',
+ lll: 'YYYY년 MMMM D일 A h:mm',
+ llll: 'YYYY년 MMMM D일 dddd A h:mm',
+ },
+ calendar: {
+ sameDay: '오늘 LT',
+ nextDay: '내일 LT',
+ nextWeek: 'dddd LT',
+ lastDay: '어제 LT',
+ lastWeek: '지난주 dddd LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s 후',
+ past: '%s 전',
+ s: '몇 초',
+ ss: '%d초',
+ m: '1분',
+ mm: '%d분',
+ h: '한 시간',
+ hh: '%d시간',
+ d: '하루',
+ dd: '%d일',
+ M: '한 달',
+ MM: '%d달',
+ y: '일 년',
+ yy: '%d년',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(일|월|주)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'd':
+ case 'D':
+ case 'DDD':
+ return number + '일';
+ case 'M':
+ return number + '월';
+ case 'w':
+ case 'W':
+ return number + '주';
+ default:
+ return number;
+ }
+ },
+ meridiemParse: /오전|오후/,
+ isPM: function (token) {
+ return token === '오후';
+ },
+ meridiem: function (hour, minute, isUpper) {
+ return hour < 12 ? '오전' : '오후';
+ },
+ });
+
+ return ko;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ku-kmr.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ku-kmr.js
new file mode 100644
index 000000000..8ba23ed56
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ku-kmr.js
@@ -0,0 +1,125 @@
+//! moment.js locale configuration
+//! locale : Northern Kurdish [ku-kmr]
+//! authors : Mazlum Özdogan : https://github.com/mergehez
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ function processRelativeTime(num, withoutSuffix, key, isFuture) {
+ var format = {
+ s: ['çend sanîye', 'çend sanîyeyan'],
+ ss: [num + ' sanîye', num + ' sanîyeyan'],
+ m: ['deqîqeyek', 'deqîqeyekê'],
+ mm: [num + ' deqîqe', num + ' deqîqeyan'],
+ h: ['saetek', 'saetekê'],
+ hh: [num + ' saet', num + ' saetan'],
+ d: ['rojek', 'rojekê'],
+ dd: [num + ' roj', num + ' rojan'],
+ w: ['hefteyek', 'hefteyekê'],
+ ww: [num + ' hefte', num + ' hefteyan'],
+ M: ['mehek', 'mehekê'],
+ MM: [num + ' meh', num + ' mehan'],
+ y: ['salek', 'salekê'],
+ yy: [num + ' sal', num + ' salan'],
+ };
+ return withoutSuffix ? format[key][0] : format[key][1];
+ }
+ // function obliqueNumSuffix(num) {
+ // if(num.includes(':'))
+ // num = parseInt(num.split(':')[0]);
+ // else
+ // num = parseInt(num);
+ // return num == 0 || num % 10 == 1 ? 'ê'
+ // : (num > 10 && num % 10 == 0 ? 'î' : 'an');
+ // }
+ function ezafeNumSuffix(num) {
+ num = '' + num;
+ var l = num.substring(num.length - 1),
+ ll = num.length > 1 ? num.substring(num.length - 2) : '';
+ if (
+ !(ll == 12 || ll == 13) &&
+ (l == '2' || l == '3' || ll == '50' || l == '70' || l == '80')
+ )
+ return 'yê';
+ return 'ê';
+ }
+
+ var kuKmr = moment.defineLocale('ku-kmr', {
+ // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation)
+ // this should be: 'Kanûna Paşîn_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Çirîya Pêşîn_Çirîya Paşîn_Kanûna Pêşîn'
+ // But the names below are more well known and handy
+ months: 'Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar'.split(
+ '_'
+ ),
+ monthsShort: 'Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber'.split('_'),
+ monthsParseExact: true,
+ weekdays: 'Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî'.split('_'),
+ weekdaysShort: 'Yek_Du_Sê_Çar_Pên_În_Şem'.split('_'),
+ weekdaysMin: 'Ye_Du_Sê_Ça_Pê_În_Şe'.split('_'),
+ meridiem: function (hours, minutes, isLower) {
+ if (hours < 12) {
+ return isLower ? 'bn' : 'BN';
+ } else {
+ return isLower ? 'pn' : 'PN';
+ }
+ },
+ meridiemParse: /bn|BN|pn|PN/,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'Do MMMM[a] YYYY[an]',
+ LLL: 'Do MMMM[a] YYYY[an] HH:mm',
+ LLLL: 'dddd, Do MMMM[a] YYYY[an] HH:mm',
+ ll: 'Do MMM[.] YYYY[an]',
+ lll: 'Do MMM[.] YYYY[an] HH:mm',
+ llll: 'ddd[.], Do MMM[.] YYYY[an] HH:mm',
+ },
+ calendar: {
+ sameDay: '[Îro di saet] LT [de]',
+ nextDay: '[Sibê di saet] LT [de]',
+ nextWeek: 'dddd [di saet] LT [de]',
+ lastDay: '[Duh di saet] LT [de]',
+ lastWeek: 'dddd[a borî di saet] LT [de]',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'di %s de',
+ past: 'berî %s',
+ s: processRelativeTime,
+ ss: processRelativeTime,
+ m: processRelativeTime,
+ mm: processRelativeTime,
+ h: processRelativeTime,
+ hh: processRelativeTime,
+ d: processRelativeTime,
+ dd: processRelativeTime,
+ w: processRelativeTime,
+ ww: processRelativeTime,
+ M: processRelativeTime,
+ MM: processRelativeTime,
+ y: processRelativeTime,
+ yy: processRelativeTime,
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(?:yê|ê|\.)/,
+ ordinal: function (num, period) {
+ var p = period.toLowerCase();
+ if (p.includes('w') || p.includes('m')) return num + '.';
+
+ return num + ezafeNumSuffix(num);
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return kuKmr;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ku.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ku.js
new file mode 100644
index 000000000..71c56a114
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ku.js
@@ -0,0 +1,129 @@
+//! moment.js locale configuration
+//! locale : Kurdish [ku]
+//! author : Shahram Mebashar : https://github.com/ShahramMebashar
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var symbolMap = {
+ 1: '١',
+ 2: '٢',
+ 3: '٣',
+ 4: '٤',
+ 5: '٥',
+ 6: '٦',
+ 7: '٧',
+ 8: '٨',
+ 9: '٩',
+ 0: '٠',
+ },
+ numberMap = {
+ '١': '1',
+ '٢': '2',
+ '٣': '3',
+ '٤': '4',
+ '٥': '5',
+ '٦': '6',
+ '٧': '7',
+ '٨': '8',
+ '٩': '9',
+ '٠': '0',
+ },
+ months = [
+ 'کانونی دووەم',
+ 'شوبات',
+ 'ئازار',
+ 'نیسان',
+ 'ئایار',
+ 'حوزەیران',
+ 'تەمموز',
+ 'ئاب',
+ 'ئەیلوول',
+ 'تشرینی یەكەم',
+ 'تشرینی دووەم',
+ 'كانونی یەکەم',
+ ];
+
+ var ku = moment.defineLocale('ku', {
+ months: months,
+ monthsShort: months,
+ weekdays:
+ 'یهكشهممه_دووشهممه_سێشهممه_چوارشهممه_پێنجشهممه_ههینی_شهممه'.split(
+ '_'
+ ),
+ weekdaysShort:
+ 'یهكشهم_دووشهم_سێشهم_چوارشهم_پێنجشهم_ههینی_شهممه'.split('_'),
+ weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
+ },
+ meridiemParse: /ئێواره|بهیانی/,
+ isPM: function (input) {
+ return /ئێواره/.test(input);
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'بهیانی';
+ } else {
+ return 'ئێواره';
+ }
+ },
+ calendar: {
+ sameDay: '[ئهمرۆ كاتژمێر] LT',
+ nextDay: '[بهیانی كاتژمێر] LT',
+ nextWeek: 'dddd [كاتژمێر] LT',
+ lastDay: '[دوێنێ كاتژمێر] LT',
+ lastWeek: 'dddd [كاتژمێر] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'له %s',
+ past: '%s',
+ s: 'چهند چركهیهك',
+ ss: 'چركه %d',
+ m: 'یهك خولهك',
+ mm: '%d خولهك',
+ h: 'یهك كاتژمێر',
+ hh: '%d كاتژمێر',
+ d: 'یهك ڕۆژ',
+ dd: '%d ڕۆژ',
+ M: 'یهك مانگ',
+ MM: '%d مانگ',
+ y: 'یهك ساڵ',
+ yy: '%d ساڵ',
+ },
+ preparse: function (string) {
+ return string
+ .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
+ return numberMap[match];
+ })
+ .replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string
+ .replace(/\d/g, function (match) {
+ return symbolMap[match];
+ })
+ .replace(/,/g, '،');
+ },
+ week: {
+ dow: 6, // Saturday is the first day of the week.
+ doy: 12, // The week that contains Jan 12th is the first week of the year.
+ },
+ });
+
+ return ku;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ky.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ky.js
new file mode 100644
index 000000000..6dce60615
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ky.js
@@ -0,0 +1,95 @@
+//! moment.js locale configuration
+//! locale : Kyrgyz [ky]
+//! author : Chyngyz Arystan uulu : https://github.com/chyngyz
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var suffixes = {
+ 0: '-чү',
+ 1: '-чи',
+ 2: '-чи',
+ 3: '-чү',
+ 4: '-чү',
+ 5: '-чи',
+ 6: '-чы',
+ 7: '-чи',
+ 8: '-чи',
+ 9: '-чу',
+ 10: '-чу',
+ 20: '-чы',
+ 30: '-чу',
+ 40: '-чы',
+ 50: '-чү',
+ 60: '-чы',
+ 70: '-чи',
+ 80: '-чи',
+ 90: '-чу',
+ 100: '-чү',
+ };
+
+ var ky = moment.defineLocale('ky', {
+ months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(
+ '_'
+ ),
+ monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(
+ '_'
+ ),
+ weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(
+ '_'
+ ),
+ weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),
+ weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[Бүгүн саат] LT',
+ nextDay: '[Эртең саат] LT',
+ nextWeek: 'dddd [саат] LT',
+ lastDay: '[Кечээ саат] LT',
+ lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s ичинде',
+ past: '%s мурун',
+ s: 'бирнече секунд',
+ ss: '%d секунд',
+ m: 'бир мүнөт',
+ mm: '%d мүнөт',
+ h: 'бир саат',
+ hh: '%d саат',
+ d: 'бир күн',
+ dd: '%d күн',
+ M: 'бир ай',
+ MM: '%d ай',
+ y: 'бир жыл',
+ yy: '%d жыл',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/,
+ ordinal: function (number) {
+ var a = number % 10,
+ b = number >= 100 ? 100 : null;
+ return number + (suffixes[number] || suffixes[a] || suffixes[b]);
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
+ },
+ });
+
+ return ky;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/lb.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/lb.js
new file mode 100644
index 000000000..ffcb7584f
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/lb.js
@@ -0,0 +1,148 @@
+//! moment.js locale configuration
+//! locale : Luxembourgish [lb]
+//! author : mweimerskirch : https://github.com/mweimerskirch
+//! author : David Raison : https://github.com/kwisatz
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ m: ['eng Minutt', 'enger Minutt'],
+ h: ['eng Stonn', 'enger Stonn'],
+ d: ['een Dag', 'engem Dag'],
+ M: ['ee Mount', 'engem Mount'],
+ y: ['ee Joer', 'engem Joer'],
+ };
+ return withoutSuffix ? format[key][0] : format[key][1];
+ }
+ function processFutureTime(string) {
+ var number = string.substr(0, string.indexOf(' '));
+ if (eifelerRegelAppliesToNumber(number)) {
+ return 'a ' + string;
+ }
+ return 'an ' + string;
+ }
+ function processPastTime(string) {
+ var number = string.substr(0, string.indexOf(' '));
+ if (eifelerRegelAppliesToNumber(number)) {
+ return 'viru ' + string;
+ }
+ return 'virun ' + string;
+ }
+ /**
+ * Returns true if the word before the given number loses the '-n' ending.
+ * e.g. 'an 10 Deeg' but 'a 5 Deeg'
+ *
+ * @param number {integer}
+ * @returns {boolean}
+ */
+ function eifelerRegelAppliesToNumber(number) {
+ number = parseInt(number, 10);
+ if (isNaN(number)) {
+ return false;
+ }
+ if (number < 0) {
+ // Negative Number --> always true
+ return true;
+ } else if (number < 10) {
+ // Only 1 digit
+ if (4 <= number && number <= 7) {
+ return true;
+ }
+ return false;
+ } else if (number < 100) {
+ // 2 digits
+ var lastDigit = number % 10,
+ firstDigit = number / 10;
+ if (lastDigit === 0) {
+ return eifelerRegelAppliesToNumber(firstDigit);
+ }
+ return eifelerRegelAppliesToNumber(lastDigit);
+ } else if (number < 10000) {
+ // 3 or 4 digits --> recursively check first digit
+ while (number >= 10) {
+ number = number / 10;
+ }
+ return eifelerRegelAppliesToNumber(number);
+ } else {
+ // Anything larger than 4 digits: recursively check first n-3 digits
+ number = number / 1000;
+ return eifelerRegelAppliesToNumber(number);
+ }
+ }
+
+ var lb = moment.defineLocale('lb', {
+ months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(
+ '_'
+ ),
+ monthsShort:
+ 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(
+ '_'
+ ),
+ monthsParseExact: true,
+ weekdays:
+ 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(
+ '_'
+ ),
+ weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),
+ weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'H:mm [Auer]',
+ LTS: 'H:mm:ss [Auer]',
+ L: 'DD.MM.YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY H:mm [Auer]',
+ LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',
+ },
+ calendar: {
+ sameDay: '[Haut um] LT',
+ sameElse: 'L',
+ nextDay: '[Muer um] LT',
+ nextWeek: 'dddd [um] LT',
+ lastDay: '[Gëschter um] LT',
+ lastWeek: function () {
+ // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule
+ switch (this.day()) {
+ case 2:
+ case 4:
+ return '[Leschten] dddd [um] LT';
+ default:
+ return '[Leschte] dddd [um] LT';
+ }
+ },
+ },
+ relativeTime: {
+ future: processFutureTime,
+ past: processPastTime,
+ s: 'e puer Sekonnen',
+ ss: '%d Sekonnen',
+ m: processRelativeTime,
+ mm: '%d Minutten',
+ h: processRelativeTime,
+ hh: '%d Stonnen',
+ d: processRelativeTime,
+ dd: '%d Deeg',
+ M: processRelativeTime,
+ MM: '%d Méint',
+ y: processRelativeTime,
+ yy: '%d Joer',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return lb;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/lo.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/lo.js
new file mode 100644
index 000000000..18fc666d5
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/lo.js
@@ -0,0 +1,77 @@
+//! moment.js locale configuration
+//! locale : Lao [lo]
+//! author : Ryan Hart : https://github.com/ryanhart2
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var lo = moment.defineLocale('lo', {
+ months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(
+ '_'
+ ),
+ monthsShort:
+ 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(
+ '_'
+ ),
+ weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
+ weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
+ weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'ວັນdddd D MMMM YYYY HH:mm',
+ },
+ meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,
+ isPM: function (input) {
+ return input === 'ຕອນແລງ';
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'ຕອນເຊົ້າ';
+ } else {
+ return 'ຕອນແລງ';
+ }
+ },
+ calendar: {
+ sameDay: '[ມື້ນີ້ເວລາ] LT',
+ nextDay: '[ມື້ອື່ນເວລາ] LT',
+ nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',
+ lastDay: '[ມື້ວານນີ້ເວລາ] LT',
+ lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'ອີກ %s',
+ past: '%sຜ່ານມາ',
+ s: 'ບໍ່ເທົ່າໃດວິນາທີ',
+ ss: '%d ວິນາທີ',
+ m: '1 ນາທີ',
+ mm: '%d ນາທີ',
+ h: '1 ຊົ່ວໂມງ',
+ hh: '%d ຊົ່ວໂມງ',
+ d: '1 ມື້',
+ dd: '%d ມື້',
+ M: '1 ເດືອນ',
+ MM: '%d ເດືອນ',
+ y: '1 ປີ',
+ yy: '%d ປີ',
+ },
+ dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/,
+ ordinal: function (number) {
+ return 'ທີ່' + number;
+ },
+ });
+
+ return lo;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/lt.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/lt.js
new file mode 100644
index 000000000..4140cf861
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/lt.js
@@ -0,0 +1,136 @@
+//! moment.js locale configuration
+//! locale : Lithuanian [lt]
+//! author : Mindaugas Mozūras : https://github.com/mmozuras
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var units = {
+ ss: 'sekundė_sekundžių_sekundes',
+ m: 'minutė_minutės_minutę',
+ mm: 'minutės_minučių_minutes',
+ h: 'valanda_valandos_valandą',
+ hh: 'valandos_valandų_valandas',
+ d: 'diena_dienos_dieną',
+ dd: 'dienos_dienų_dienas',
+ M: 'mėnuo_mėnesio_mėnesį',
+ MM: 'mėnesiai_mėnesių_mėnesius',
+ y: 'metai_metų_metus',
+ yy: 'metai_metų_metus',
+ };
+ function translateSeconds(number, withoutSuffix, key, isFuture) {
+ if (withoutSuffix) {
+ return 'kelios sekundės';
+ } else {
+ return isFuture ? 'kelių sekundžių' : 'kelias sekundes';
+ }
+ }
+ function translateSingular(number, withoutSuffix, key, isFuture) {
+ return withoutSuffix
+ ? forms(key)[0]
+ : isFuture
+ ? forms(key)[1]
+ : forms(key)[2];
+ }
+ function special(number) {
+ return number % 10 === 0 || (number > 10 && number < 20);
+ }
+ function forms(key) {
+ return units[key].split('_');
+ }
+ function translate(number, withoutSuffix, key, isFuture) {
+ var result = number + ' ';
+ if (number === 1) {
+ return (
+ result + translateSingular(number, withoutSuffix, key[0], isFuture)
+ );
+ } else if (withoutSuffix) {
+ return result + (special(number) ? forms(key)[1] : forms(key)[0]);
+ } else {
+ if (isFuture) {
+ return result + forms(key)[1];
+ } else {
+ return result + (special(number) ? forms(key)[1] : forms(key)[2]);
+ }
+ }
+ }
+ var lt = moment.defineLocale('lt', {
+ months: {
+ format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(
+ '_'
+ ),
+ standalone:
+ 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(
+ '_'
+ ),
+ isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/,
+ },
+ monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),
+ weekdays: {
+ format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(
+ '_'
+ ),
+ standalone:
+ 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(
+ '_'
+ ),
+ isFormat: /dddd HH:mm/,
+ },
+ weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),
+ weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'YYYY-MM-DD',
+ LL: 'YYYY [m.] MMMM D [d.]',
+ LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
+ LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',
+ l: 'YYYY-MM-DD',
+ ll: 'YYYY [m.] MMMM D [d.]',
+ lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
+ llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',
+ },
+ calendar: {
+ sameDay: '[Šiandien] LT',
+ nextDay: '[Rytoj] LT',
+ nextWeek: 'dddd LT',
+ lastDay: '[Vakar] LT',
+ lastWeek: '[Praėjusį] dddd LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'po %s',
+ past: 'prieš %s',
+ s: translateSeconds,
+ ss: translate,
+ m: translateSingular,
+ mm: translate,
+ h: translateSingular,
+ hh: translate,
+ d: translateSingular,
+ dd: translate,
+ M: translateSingular,
+ MM: translate,
+ y: translateSingular,
+ yy: translate,
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}-oji/,
+ ordinal: function (number) {
+ return number + '-oji';
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return lt;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/lv.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/lv.js
new file mode 100644
index 000000000..109fdfe3c
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/lv.js
@@ -0,0 +1,105 @@
+//! moment.js locale configuration
+//! locale : Latvian [lv]
+//! author : Kristaps Karlsons : https://github.com/skakri
+//! author : Jānis Elmeris : https://github.com/JanisE
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var units = {
+ ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),
+ m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),
+ mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),
+ h: 'stundas_stundām_stunda_stundas'.split('_'),
+ hh: 'stundas_stundām_stunda_stundas'.split('_'),
+ d: 'dienas_dienām_diena_dienas'.split('_'),
+ dd: 'dienas_dienām_diena_dienas'.split('_'),
+ M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
+ MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
+ y: 'gada_gadiem_gads_gadi'.split('_'),
+ yy: 'gada_gadiem_gads_gadi'.split('_'),
+ };
+ /**
+ * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.
+ */
+ function format(forms, number, withoutSuffix) {
+ if (withoutSuffix) {
+ // E.g. "21 minūte", "3 minūtes".
+ return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];
+ } else {
+ // E.g. "21 minūtes" as in "pēc 21 minūtes".
+ // E.g. "3 minūtēm" as in "pēc 3 minūtēm".
+ return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];
+ }
+ }
+ function relativeTimeWithPlural(number, withoutSuffix, key) {
+ return number + ' ' + format(units[key], number, withoutSuffix);
+ }
+ function relativeTimeWithSingular(number, withoutSuffix, key) {
+ return format(units[key], number, withoutSuffix);
+ }
+ function relativeSeconds(number, withoutSuffix) {
+ return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';
+ }
+
+ var lv = moment.defineLocale('lv', {
+ months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(
+ '_'
+ ),
+ monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),
+ weekdays:
+ 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(
+ '_'
+ ),
+ weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),
+ weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD.MM.YYYY.',
+ LL: 'YYYY. [gada] D. MMMM',
+ LLL: 'YYYY. [gada] D. MMMM, HH:mm',
+ LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',
+ },
+ calendar: {
+ sameDay: '[Šodien pulksten] LT',
+ nextDay: '[Rīt pulksten] LT',
+ nextWeek: 'dddd [pulksten] LT',
+ lastDay: '[Vakar pulksten] LT',
+ lastWeek: '[Pagājušā] dddd [pulksten] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'pēc %s',
+ past: 'pirms %s',
+ s: relativeSeconds,
+ ss: relativeTimeWithPlural,
+ m: relativeTimeWithSingular,
+ mm: relativeTimeWithPlural,
+ h: relativeTimeWithSingular,
+ hh: relativeTimeWithPlural,
+ d: relativeTimeWithSingular,
+ dd: relativeTimeWithPlural,
+ M: relativeTimeWithSingular,
+ MM: relativeTimeWithPlural,
+ y: relativeTimeWithSingular,
+ yy: relativeTimeWithPlural,
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return lv;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/me.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/me.js
new file mode 100644
index 000000000..9b2583d5b
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/me.js
@@ -0,0 +1,128 @@
+//! moment.js locale configuration
+//! locale : Montenegrin [me]
+//! author : Miodrag Nikač : https://github.com/miodragnikac
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var translator = {
+ words: {
+ //Different grammatical cases
+ ss: ['sekund', 'sekunda', 'sekundi'],
+ m: ['jedan minut', 'jednog minuta'],
+ mm: ['minut', 'minuta', 'minuta'],
+ h: ['jedan sat', 'jednog sata'],
+ hh: ['sat', 'sata', 'sati'],
+ dd: ['dan', 'dana', 'dana'],
+ MM: ['mjesec', 'mjeseca', 'mjeseci'],
+ yy: ['godina', 'godine', 'godina'],
+ },
+ correctGrammaticalCase: function (number, wordKey) {
+ return number === 1
+ ? wordKey[0]
+ : number >= 2 && number <= 4
+ ? wordKey[1]
+ : wordKey[2];
+ },
+ translate: function (number, withoutSuffix, key) {
+ var wordKey = translator.words[key];
+ if (key.length === 1) {
+ return withoutSuffix ? wordKey[0] : wordKey[1];
+ } else {
+ return (
+ number +
+ ' ' +
+ translator.correctGrammaticalCase(number, wordKey)
+ );
+ }
+ },
+ };
+
+ var me = moment.defineLocale('me', {
+ months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(
+ '_'
+ ),
+ monthsShort:
+ 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
+ monthsParseExact: true,
+ weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
+ '_'
+ ),
+ weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
+ weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS: 'H:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY H:mm',
+ LLLL: 'dddd, D. MMMM YYYY H:mm',
+ },
+ calendar: {
+ sameDay: '[danas u] LT',
+ nextDay: '[sjutra u] LT',
+
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[u] [nedjelju] [u] LT';
+ case 3:
+ return '[u] [srijedu] [u] LT';
+ case 6:
+ return '[u] [subotu] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[u] dddd [u] LT';
+ }
+ },
+ lastDay: '[juče u] LT',
+ lastWeek: function () {
+ var lastWeekDays = [
+ '[prošle] [nedjelje] [u] LT',
+ '[prošlog] [ponedjeljka] [u] LT',
+ '[prošlog] [utorka] [u] LT',
+ '[prošle] [srijede] [u] LT',
+ '[prošlog] [četvrtka] [u] LT',
+ '[prošlog] [petka] [u] LT',
+ '[prošle] [subote] [u] LT',
+ ];
+ return lastWeekDays[this.day()];
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'za %s',
+ past: 'prije %s',
+ s: 'nekoliko sekundi',
+ ss: translator.translate,
+ m: translator.translate,
+ mm: translator.translate,
+ h: translator.translate,
+ hh: translator.translate,
+ d: 'dan',
+ dd: translator.translate,
+ M: 'mjesec',
+ MM: translator.translate,
+ y: 'godinu',
+ yy: translator.translate,
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
+ },
+ });
+
+ return me;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/mi.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/mi.js
new file mode 100644
index 000000000..f95f9cb67
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/mi.js
@@ -0,0 +1,71 @@
+//! moment.js locale configuration
+//! locale : Maori [mi]
+//! author : John Corrigan : https://github.com/johnideal
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var mi = moment.defineLocale('mi', {
+ months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(
+ '_'
+ ),
+ monthsShort:
+ 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(
+ '_'
+ ),
+ monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
+ monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
+ monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
+ monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,
+ weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),
+ weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
+ weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY [i] HH:mm',
+ LLLL: 'dddd, D MMMM YYYY [i] HH:mm',
+ },
+ calendar: {
+ sameDay: '[i teie mahana, i] LT',
+ nextDay: '[apopo i] LT',
+ nextWeek: 'dddd [i] LT',
+ lastDay: '[inanahi i] LT',
+ lastWeek: 'dddd [whakamutunga i] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'i roto i %s',
+ past: '%s i mua',
+ s: 'te hēkona ruarua',
+ ss: '%d hēkona',
+ m: 'he meneti',
+ mm: '%d meneti',
+ h: 'te haora',
+ hh: '%d haora',
+ d: 'he ra',
+ dd: '%d ra',
+ M: 'he marama',
+ MM: '%d marama',
+ y: 'he tau',
+ yy: '%d tau',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}º/,
+ ordinal: '%dº',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return mi;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/mk.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/mk.js
new file mode 100644
index 000000000..c66500dcc
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/mk.js
@@ -0,0 +1,97 @@
+//! moment.js locale configuration
+//! locale : Macedonian [mk]
+//! author : Borislav Mickov : https://github.com/B0k0
+//! author : Sashko Todorov : https://github.com/bkyceh
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var mk = moment.defineLocale('mk', {
+ months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(
+ '_'
+ ),
+ monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),
+ weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(
+ '_'
+ ),
+ weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),
+ weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS: 'H:mm:ss',
+ L: 'D.MM.YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY H:mm',
+ LLLL: 'dddd, D MMMM YYYY H:mm',
+ },
+ calendar: {
+ sameDay: '[Денес во] LT',
+ nextDay: '[Утре во] LT',
+ nextWeek: '[Во] dddd [во] LT',
+ lastDay: '[Вчера во] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ case 6:
+ return '[Изминатата] dddd [во] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[Изминатиот] dddd [во] LT';
+ }
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'за %s',
+ past: 'пред %s',
+ s: 'неколку секунди',
+ ss: '%d секунди',
+ m: 'една минута',
+ mm: '%d минути',
+ h: 'еден час',
+ hh: '%d часа',
+ d: 'еден ден',
+ dd: '%d дена',
+ M: 'еден месец',
+ MM: '%d месеци',
+ y: 'една година',
+ yy: '%d години',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
+ ordinal: function (number) {
+ var lastDigit = number % 10,
+ last2Digits = number % 100;
+ if (number === 0) {
+ return number + '-ев';
+ } else if (last2Digits === 0) {
+ return number + '-ен';
+ } else if (last2Digits > 10 && last2Digits < 20) {
+ return number + '-ти';
+ } else if (lastDigit === 1) {
+ return number + '-ви';
+ } else if (lastDigit === 2) {
+ return number + '-ри';
+ } else if (lastDigit === 7 || lastDigit === 8) {
+ return number + '-ми';
+ } else {
+ return number + '-ти';
+ }
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
+ },
+ });
+
+ return mk;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ml.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ml.js
new file mode 100644
index 000000000..6a7298ceb
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ml.js
@@ -0,0 +1,93 @@
+//! moment.js locale configuration
+//! locale : Malayalam [ml]
+//! author : Floyd Pink : https://github.com/floydpink
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var ml = moment.defineLocale('ml', {
+ months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(
+ '_'
+ ),
+ monthsShort:
+ 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(
+ '_'
+ ),
+ monthsParseExact: true,
+ weekdays:
+ 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(
+ '_'
+ ),
+ weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),
+ weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),
+ longDateFormat: {
+ LT: 'A h:mm -നു',
+ LTS: 'A h:mm:ss -നു',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY, A h:mm -നു',
+ LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',
+ },
+ calendar: {
+ sameDay: '[ഇന്ന്] LT',
+ nextDay: '[നാളെ] LT',
+ nextWeek: 'dddd, LT',
+ lastDay: '[ഇന്നലെ] LT',
+ lastWeek: '[കഴിഞ്ഞ] dddd, LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s കഴിഞ്ഞ്',
+ past: '%s മുൻപ്',
+ s: 'അൽപ നിമിഷങ്ങൾ',
+ ss: '%d സെക്കൻഡ്',
+ m: 'ഒരു മിനിറ്റ്',
+ mm: '%d മിനിറ്റ്',
+ h: 'ഒരു മണിക്കൂർ',
+ hh: '%d മണിക്കൂർ',
+ d: 'ഒരു ദിവസം',
+ dd: '%d ദിവസം',
+ M: 'ഒരു മാസം',
+ MM: '%d മാസം',
+ y: 'ഒരു വർഷം',
+ yy: '%d വർഷം',
+ },
+ meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (
+ (meridiem === 'രാത്രി' && hour >= 4) ||
+ meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||
+ meridiem === 'വൈകുന്നേരം'
+ ) {
+ return hour + 12;
+ } else {
+ return hour;
+ }
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'രാത്രി';
+ } else if (hour < 12) {
+ return 'രാവിലെ';
+ } else if (hour < 17) {
+ return 'ഉച്ച കഴിഞ്ഞ്';
+ } else if (hour < 20) {
+ return 'വൈകുന്നേരം';
+ } else {
+ return 'രാത്രി';
+ }
+ },
+ });
+
+ return ml;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/mn.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/mn.js
new file mode 100644
index 000000000..a37b792b4
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/mn.js
@@ -0,0 +1,111 @@
+//! moment.js locale configuration
+//! locale : Mongolian [mn]
+//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ function translate(number, withoutSuffix, key, isFuture) {
+ switch (key) {
+ case 's':
+ return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';
+ case 'ss':
+ return number + (withoutSuffix ? ' секунд' : ' секундын');
+ case 'm':
+ case 'mm':
+ return number + (withoutSuffix ? ' минут' : ' минутын');
+ case 'h':
+ case 'hh':
+ return number + (withoutSuffix ? ' цаг' : ' цагийн');
+ case 'd':
+ case 'dd':
+ return number + (withoutSuffix ? ' өдөр' : ' өдрийн');
+ case 'M':
+ case 'MM':
+ return number + (withoutSuffix ? ' сар' : ' сарын');
+ case 'y':
+ case 'yy':
+ return number + (withoutSuffix ? ' жил' : ' жилийн');
+ default:
+ return number;
+ }
+ }
+
+ var mn = moment.defineLocale('mn', {
+ months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(
+ '_'
+ ),
+ monthsShort:
+ '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(
+ '_'
+ ),
+ monthsParseExact: true,
+ weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),
+ weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),
+ weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'YYYY-MM-DD',
+ LL: 'YYYY оны MMMMын D',
+ LLL: 'YYYY оны MMMMын D HH:mm',
+ LLLL: 'dddd, YYYY оны MMMMын D HH:mm',
+ },
+ meridiemParse: /ҮӨ|ҮХ/i,
+ isPM: function (input) {
+ return input === 'ҮХ';
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'ҮӨ';
+ } else {
+ return 'ҮХ';
+ }
+ },
+ calendar: {
+ sameDay: '[Өнөөдөр] LT',
+ nextDay: '[Маргааш] LT',
+ nextWeek: '[Ирэх] dddd LT',
+ lastDay: '[Өчигдөр] LT',
+ lastWeek: '[Өнгөрсөн] dddd LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s дараа',
+ past: '%s өмнө',
+ s: translate,
+ ss: translate,
+ m: translate,
+ mm: translate,
+ h: translate,
+ hh: translate,
+ d: translate,
+ dd: translate,
+ M: translate,
+ MM: translate,
+ y: translate,
+ yy: translate,
+ },
+ dayOfMonthOrdinalParse: /\d{1,2} өдөр/,
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'd':
+ case 'D':
+ case 'DDD':
+ return number + ' өдөр';
+ default:
+ return number;
+ }
+ },
+ });
+
+ return mn;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/mr.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/mr.js
new file mode 100644
index 000000000..73d576233
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/mr.js
@@ -0,0 +1,214 @@
+//! moment.js locale configuration
+//! locale : Marathi [mr]
+//! author : Harshad Kale : https://github.com/kalehv
+//! author : Vivek Athalye : https://github.com/vnathalye
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var symbolMap = {
+ 1: '१',
+ 2: '२',
+ 3: '३',
+ 4: '४',
+ 5: '५',
+ 6: '६',
+ 7: '७',
+ 8: '८',
+ 9: '९',
+ 0: '०',
+ },
+ numberMap = {
+ '१': '1',
+ '२': '2',
+ '३': '3',
+ '४': '4',
+ '५': '5',
+ '६': '6',
+ '७': '7',
+ '८': '8',
+ '९': '9',
+ '०': '0',
+ };
+
+ function relativeTimeMr(number, withoutSuffix, string, isFuture) {
+ var output = '';
+ if (withoutSuffix) {
+ switch (string) {
+ case 's':
+ output = 'काही सेकंद';
+ break;
+ case 'ss':
+ output = '%d सेकंद';
+ break;
+ case 'm':
+ output = 'एक मिनिट';
+ break;
+ case 'mm':
+ output = '%d मिनिटे';
+ break;
+ case 'h':
+ output = 'एक तास';
+ break;
+ case 'hh':
+ output = '%d तास';
+ break;
+ case 'd':
+ output = 'एक दिवस';
+ break;
+ case 'dd':
+ output = '%d दिवस';
+ break;
+ case 'M':
+ output = 'एक महिना';
+ break;
+ case 'MM':
+ output = '%d महिने';
+ break;
+ case 'y':
+ output = 'एक वर्ष';
+ break;
+ case 'yy':
+ output = '%d वर्षे';
+ break;
+ }
+ } else {
+ switch (string) {
+ case 's':
+ output = 'काही सेकंदां';
+ break;
+ case 'ss':
+ output = '%d सेकंदां';
+ break;
+ case 'm':
+ output = 'एका मिनिटा';
+ break;
+ case 'mm':
+ output = '%d मिनिटां';
+ break;
+ case 'h':
+ output = 'एका तासा';
+ break;
+ case 'hh':
+ output = '%d तासां';
+ break;
+ case 'd':
+ output = 'एका दिवसा';
+ break;
+ case 'dd':
+ output = '%d दिवसां';
+ break;
+ case 'M':
+ output = 'एका महिन्या';
+ break;
+ case 'MM':
+ output = '%d महिन्यां';
+ break;
+ case 'y':
+ output = 'एका वर्षा';
+ break;
+ case 'yy':
+ output = '%d वर्षां';
+ break;
+ }
+ }
+ return output.replace(/%d/i, number);
+ }
+
+ var mr = moment.defineLocale('mr', {
+ months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(
+ '_'
+ ),
+ monthsShort:
+ 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(
+ '_'
+ ),
+ monthsParseExact: true,
+ weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
+ weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),
+ weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),
+ longDateFormat: {
+ LT: 'A h:mm वाजता',
+ LTS: 'A h:mm:ss वाजता',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY, A h:mm वाजता',
+ LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',
+ },
+ calendar: {
+ sameDay: '[आज] LT',
+ nextDay: '[उद्या] LT',
+ nextWeek: 'dddd, LT',
+ lastDay: '[काल] LT',
+ lastWeek: '[मागील] dddd, LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%sमध्ये',
+ past: '%sपूर्वी',
+ s: relativeTimeMr,
+ ss: relativeTimeMr,
+ m: relativeTimeMr,
+ mm: relativeTimeMr,
+ h: relativeTimeMr,
+ hh: relativeTimeMr,
+ d: relativeTimeMr,
+ dd: relativeTimeMr,
+ M: relativeTimeMr,
+ MM: relativeTimeMr,
+ y: relativeTimeMr,
+ yy: relativeTimeMr,
+ },
+ preparse: function (string) {
+ return string.replace(/[१२३४५६७८९०]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {
+ return hour;
+ } else if (
+ meridiem === 'दुपारी' ||
+ meridiem === 'सायंकाळी' ||
+ meridiem === 'रात्री'
+ ) {
+ return hour >= 12 ? hour : hour + 12;
+ }
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour >= 0 && hour < 6) {
+ return 'पहाटे';
+ } else if (hour < 12) {
+ return 'सकाळी';
+ } else if (hour < 17) {
+ return 'दुपारी';
+ } else if (hour < 20) {
+ return 'सायंकाळी';
+ } else {
+ return 'रात्री';
+ }
+ },
+ week: {
+ dow: 0, // Sunday is the first day of the week.
+ doy: 6, // The week that contains Jan 6th is the first week of the year.
+ },
+ });
+
+ return mr;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ms-my.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ms-my.js
new file mode 100644
index 000000000..8d66c2b03
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ms-my.js
@@ -0,0 +1,87 @@
+//! moment.js locale configuration
+//! locale : Malay [ms-my]
+//! note : DEPRECATED, the correct one is [ms]
+//! author : Weldan Jamili : https://github.com/weldan
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var msMy = moment.defineLocale('ms-my', {
+ months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(
+ '_'
+ ),
+ monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
+ weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
+ weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
+ weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
+ longDateFormat: {
+ LT: 'HH.mm',
+ LTS: 'HH.mm.ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY [pukul] HH.mm',
+ LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
+ },
+ meridiemParse: /pagi|tengahari|petang|malam/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'pagi') {
+ return hour;
+ } else if (meridiem === 'tengahari') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === 'petang' || meridiem === 'malam') {
+ return hour + 12;
+ }
+ },
+ meridiem: function (hours, minutes, isLower) {
+ if (hours < 11) {
+ return 'pagi';
+ } else if (hours < 15) {
+ return 'tengahari';
+ } else if (hours < 19) {
+ return 'petang';
+ } else {
+ return 'malam';
+ }
+ },
+ calendar: {
+ sameDay: '[Hari ini pukul] LT',
+ nextDay: '[Esok pukul] LT',
+ nextWeek: 'dddd [pukul] LT',
+ lastDay: '[Kelmarin pukul] LT',
+ lastWeek: 'dddd [lepas pukul] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'dalam %s',
+ past: '%s yang lepas',
+ s: 'beberapa saat',
+ ss: '%d saat',
+ m: 'seminit',
+ mm: '%d minit',
+ h: 'sejam',
+ hh: '%d jam',
+ d: 'sehari',
+ dd: '%d hari',
+ M: 'sebulan',
+ MM: '%d bulan',
+ y: 'setahun',
+ yy: '%d tahun',
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
+ },
+ });
+
+ return msMy;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ms.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ms.js
new file mode 100644
index 000000000..37782fb40
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ms.js
@@ -0,0 +1,86 @@
+//! moment.js locale configuration
+//! locale : Malay [ms]
+//! author : Weldan Jamili : https://github.com/weldan
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var ms = moment.defineLocale('ms', {
+ months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(
+ '_'
+ ),
+ monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
+ weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
+ weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
+ weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
+ longDateFormat: {
+ LT: 'HH.mm',
+ LTS: 'HH.mm.ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY [pukul] HH.mm',
+ LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
+ },
+ meridiemParse: /pagi|tengahari|petang|malam/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'pagi') {
+ return hour;
+ } else if (meridiem === 'tengahari') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === 'petang' || meridiem === 'malam') {
+ return hour + 12;
+ }
+ },
+ meridiem: function (hours, minutes, isLower) {
+ if (hours < 11) {
+ return 'pagi';
+ } else if (hours < 15) {
+ return 'tengahari';
+ } else if (hours < 19) {
+ return 'petang';
+ } else {
+ return 'malam';
+ }
+ },
+ calendar: {
+ sameDay: '[Hari ini pukul] LT',
+ nextDay: '[Esok pukul] LT',
+ nextWeek: 'dddd [pukul] LT',
+ lastDay: '[Kelmarin pukul] LT',
+ lastWeek: 'dddd [lepas pukul] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'dalam %s',
+ past: '%s yang lepas',
+ s: 'beberapa saat',
+ ss: '%d saat',
+ m: 'seminit',
+ mm: '%d minit',
+ h: 'sejam',
+ hh: '%d jam',
+ d: 'sehari',
+ dd: '%d hari',
+ M: 'sebulan',
+ MM: '%d bulan',
+ y: 'setahun',
+ yy: '%d tahun',
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
+ },
+ });
+
+ return ms;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/mt.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/mt.js
new file mode 100644
index 000000000..94b2559a2
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/mt.js
@@ -0,0 +1,67 @@
+//! moment.js locale configuration
+//! locale : Maltese (Malta) [mt]
+//! author : Alessandro Maruccia : https://github.com/alesma
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var mt = moment.defineLocale('mt', {
+ months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(
+ '_'
+ ),
+ monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),
+ weekdays:
+ 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(
+ '_'
+ ),
+ weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),
+ weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[Illum fil-]LT',
+ nextDay: '[Għada fil-]LT',
+ nextWeek: 'dddd [fil-]LT',
+ lastDay: '[Il-bieraħ fil-]LT',
+ lastWeek: 'dddd [li għadda] [fil-]LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'f’ %s',
+ past: '%s ilu',
+ s: 'ftit sekondi',
+ ss: '%d sekondi',
+ m: 'minuta',
+ mm: '%d minuti',
+ h: 'siegħa',
+ hh: '%d siegħat',
+ d: 'ġurnata',
+ dd: '%d ġranet',
+ M: 'xahar',
+ MM: '%d xhur',
+ y: 'sena',
+ yy: '%d sni',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}º/,
+ ordinal: '%dº',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return mt;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/my.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/my.js
new file mode 100644
index 000000000..c1ef2dff5
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/my.js
@@ -0,0 +1,102 @@
+//! moment.js locale configuration
+//! locale : Burmese [my]
+//! author : Squar team, mysquar.com
+//! author : David Rossellat : https://github.com/gholadr
+//! author : Tin Aung Lin : https://github.com/thanyawzinmin
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var symbolMap = {
+ 1: '၁',
+ 2: '၂',
+ 3: '၃',
+ 4: '၄',
+ 5: '၅',
+ 6: '၆',
+ 7: '၇',
+ 8: '၈',
+ 9: '၉',
+ 0: '၀',
+ },
+ numberMap = {
+ '၁': '1',
+ '၂': '2',
+ '၃': '3',
+ '၄': '4',
+ '၅': '5',
+ '၆': '6',
+ '၇': '7',
+ '၈': '8',
+ '၉': '9',
+ '၀': '0',
+ };
+
+ var my = moment.defineLocale('my', {
+ months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(
+ '_'
+ ),
+ monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),
+ weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(
+ '_'
+ ),
+ weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
+ weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
+
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[ယနေ.] LT [မှာ]',
+ nextDay: '[မနက်ဖြန်] LT [မှာ]',
+ nextWeek: 'dddd LT [မှာ]',
+ lastDay: '[မနေ.က] LT [မှာ]',
+ lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'လာမည့် %s မှာ',
+ past: 'လွန်ခဲ့သော %s က',
+ s: 'စက္ကန်.အနည်းငယ်',
+ ss: '%d စက္ကန့်',
+ m: 'တစ်မိနစ်',
+ mm: '%d မိနစ်',
+ h: 'တစ်နာရီ',
+ hh: '%d နာရီ',
+ d: 'တစ်ရက်',
+ dd: '%d ရက်',
+ M: 'တစ်လ',
+ MM: '%d လ',
+ y: 'တစ်နှစ်',
+ yy: '%d နှစ်',
+ },
+ preparse: function (string) {
+ return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return my;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/nb.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/nb.js
new file mode 100644
index 000000000..1f271aae2
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/nb.js
@@ -0,0 +1,71 @@
+//! moment.js locale configuration
+//! locale : Norwegian Bokmål [nb]
+//! authors : Espen Hovlandsdal : https://github.com/rexxars
+//! Sigurd Gartmann : https://github.com/sigurdga
+//! Stephen Ramthun : https://github.com/stephenramthun
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var nb = moment.defineLocale('nb', {
+ months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(
+ '_'
+ ),
+ monthsShort:
+ 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),
+ monthsParseExact: true,
+ weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
+ weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),
+ weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY [kl.] HH:mm',
+ LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',
+ },
+ calendar: {
+ sameDay: '[i dag kl.] LT',
+ nextDay: '[i morgen kl.] LT',
+ nextWeek: 'dddd [kl.] LT',
+ lastDay: '[i går kl.] LT',
+ lastWeek: '[forrige] dddd [kl.] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'om %s',
+ past: '%s siden',
+ s: 'noen sekunder',
+ ss: '%d sekunder',
+ m: 'ett minutt',
+ mm: '%d minutter',
+ h: 'én time',
+ hh: '%d timer',
+ d: 'én dag',
+ dd: '%d dager',
+ w: 'én uke',
+ ww: '%d uker',
+ M: 'én måned',
+ MM: '%d måneder',
+ y: 'ett år',
+ yy: '%d år',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return nb;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ne.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ne.js
new file mode 100644
index 000000000..d455e004b
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ne.js
@@ -0,0 +1,132 @@
+//! moment.js locale configuration
+//! locale : Nepalese [ne]
+//! author : suvash : https://github.com/suvash
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var symbolMap = {
+ 1: '१',
+ 2: '२',
+ 3: '३',
+ 4: '४',
+ 5: '५',
+ 6: '६',
+ 7: '७',
+ 8: '८',
+ 9: '९',
+ 0: '०',
+ },
+ numberMap = {
+ '१': '1',
+ '२': '2',
+ '३': '3',
+ '४': '4',
+ '५': '5',
+ '६': '6',
+ '७': '7',
+ '८': '8',
+ '९': '9',
+ '०': '0',
+ };
+
+ var ne = moment.defineLocale('ne', {
+ months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(
+ '_'
+ ),
+ monthsShort:
+ 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(
+ '_'
+ ),
+ monthsParseExact: true,
+ weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(
+ '_'
+ ),
+ weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),
+ weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'Aको h:mm बजे',
+ LTS: 'Aको h:mm:ss बजे',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY, Aको h:mm बजे',
+ LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',
+ },
+ preparse: function (string) {
+ return string.replace(/[१२३४५६७८९०]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ meridiemParse: /राति|बिहान|दिउँसो|साँझ/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'राति') {
+ return hour < 4 ? hour : hour + 12;
+ } else if (meridiem === 'बिहान') {
+ return hour;
+ } else if (meridiem === 'दिउँसो') {
+ return hour >= 10 ? hour : hour + 12;
+ } else if (meridiem === 'साँझ') {
+ return hour + 12;
+ }
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 3) {
+ return 'राति';
+ } else if (hour < 12) {
+ return 'बिहान';
+ } else if (hour < 16) {
+ return 'दिउँसो';
+ } else if (hour < 20) {
+ return 'साँझ';
+ } else {
+ return 'राति';
+ }
+ },
+ calendar: {
+ sameDay: '[आज] LT',
+ nextDay: '[भोलि] LT',
+ nextWeek: '[आउँदो] dddd[,] LT',
+ lastDay: '[हिजो] LT',
+ lastWeek: '[गएको] dddd[,] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%sमा',
+ past: '%s अगाडि',
+ s: 'केही क्षण',
+ ss: '%d सेकेण्ड',
+ m: 'एक मिनेट',
+ mm: '%d मिनेट',
+ h: 'एक घण्टा',
+ hh: '%d घण्टा',
+ d: 'एक दिन',
+ dd: '%d दिन',
+ M: 'एक महिना',
+ MM: '%d महिना',
+ y: 'एक बर्ष',
+ yy: '%d बर्ष',
+ },
+ week: {
+ dow: 0, // Sunday is the first day of the week.
+ doy: 6, // The week that contains Jan 6th is the first week of the year.
+ },
+ });
+
+ return ne;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/nl-be.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/nl-be.js
new file mode 100644
index 000000000..a35546f8c
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/nl-be.js
@@ -0,0 +1,113 @@
+//! moment.js locale configuration
+//! locale : Dutch (Belgium) [nl-be]
+//! author : Joris Röling : https://github.com/jorisroling
+//! author : Jacob Middag : https://github.com/middagj
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var monthsShortWithDots =
+ 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
+ monthsShortWithoutDots =
+ 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),
+ monthsParse = [
+ /^jan/i,
+ /^feb/i,
+ /^(maart|mrt\.?)$/i,
+ /^apr/i,
+ /^mei$/i,
+ /^jun[i.]?$/i,
+ /^jul[i.]?$/i,
+ /^aug/i,
+ /^sep/i,
+ /^okt/i,
+ /^nov/i,
+ /^dec/i,
+ ],
+ monthsRegex =
+ /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
+
+ var nlBe = moment.defineLocale('nl-be', {
+ months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(
+ '_'
+ ),
+ monthsShort: function (m, format) {
+ if (!m) {
+ return monthsShortWithDots;
+ } else if (/-MMM-/.test(format)) {
+ return monthsShortWithoutDots[m.month()];
+ } else {
+ return monthsShortWithDots[m.month()];
+ }
+ },
+
+ monthsRegex: monthsRegex,
+ monthsShortRegex: monthsRegex,
+ monthsStrictRegex:
+ /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,
+ monthsShortStrictRegex:
+ /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
+
+ monthsParse: monthsParse,
+ longMonthsParse: monthsParse,
+ shortMonthsParse: monthsParse,
+
+ weekdays:
+ 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
+ weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),
+ weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[vandaag om] LT',
+ nextDay: '[morgen om] LT',
+ nextWeek: 'dddd [om] LT',
+ lastDay: '[gisteren om] LT',
+ lastWeek: '[afgelopen] dddd [om] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'over %s',
+ past: '%s geleden',
+ s: 'een paar seconden',
+ ss: '%d seconden',
+ m: 'één minuut',
+ mm: '%d minuten',
+ h: 'één uur',
+ hh: '%d uur',
+ d: 'één dag',
+ dd: '%d dagen',
+ M: 'één maand',
+ MM: '%d maanden',
+ y: 'één jaar',
+ yy: '%d jaar',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
+ ordinal: function (number) {
+ return (
+ number +
+ (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
+ );
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return nlBe;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/nl.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/nl.js
new file mode 100644
index 000000000..a285c040c
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/nl.js
@@ -0,0 +1,115 @@
+//! moment.js locale configuration
+//! locale : Dutch [nl]
+//! author : Joris Röling : https://github.com/jorisroling
+//! author : Jacob Middag : https://github.com/middagj
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var monthsShortWithDots =
+ 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
+ monthsShortWithoutDots =
+ 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),
+ monthsParse = [
+ /^jan/i,
+ /^feb/i,
+ /^(maart|mrt\.?)$/i,
+ /^apr/i,
+ /^mei$/i,
+ /^jun[i.]?$/i,
+ /^jul[i.]?$/i,
+ /^aug/i,
+ /^sep/i,
+ /^okt/i,
+ /^nov/i,
+ /^dec/i,
+ ],
+ monthsRegex =
+ /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
+
+ var nl = moment.defineLocale('nl', {
+ months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(
+ '_'
+ ),
+ monthsShort: function (m, format) {
+ if (!m) {
+ return monthsShortWithDots;
+ } else if (/-MMM-/.test(format)) {
+ return monthsShortWithoutDots[m.month()];
+ } else {
+ return monthsShortWithDots[m.month()];
+ }
+ },
+
+ monthsRegex: monthsRegex,
+ monthsShortRegex: monthsRegex,
+ monthsStrictRegex:
+ /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,
+ monthsShortStrictRegex:
+ /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
+
+ monthsParse: monthsParse,
+ longMonthsParse: monthsParse,
+ shortMonthsParse: monthsParse,
+
+ weekdays:
+ 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
+ weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),
+ weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD-MM-YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[vandaag om] LT',
+ nextDay: '[morgen om] LT',
+ nextWeek: 'dddd [om] LT',
+ lastDay: '[gisteren om] LT',
+ lastWeek: '[afgelopen] dddd [om] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'over %s',
+ past: '%s geleden',
+ s: 'een paar seconden',
+ ss: '%d seconden',
+ m: 'één minuut',
+ mm: '%d minuten',
+ h: 'één uur',
+ hh: '%d uur',
+ d: 'één dag',
+ dd: '%d dagen',
+ w: 'één week',
+ ww: '%d weken',
+ M: 'één maand',
+ MM: '%d maanden',
+ y: 'één jaar',
+ yy: '%d jaar',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
+ ordinal: function (number) {
+ return (
+ number +
+ (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
+ );
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return nl;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/nn.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/nn.js
new file mode 100644
index 000000000..c65268ea8
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/nn.js
@@ -0,0 +1,70 @@
+//! moment.js locale configuration
+//! locale : Nynorsk [nn]
+//! authors : https://github.com/mechuwind
+//! Stephen Ramthun : https://github.com/stephenramthun
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var nn = moment.defineLocale('nn', {
+ months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(
+ '_'
+ ),
+ monthsShort:
+ 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),
+ monthsParseExact: true,
+ weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),
+ weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),
+ weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY [kl.] H:mm',
+ LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',
+ },
+ calendar: {
+ sameDay: '[I dag klokka] LT',
+ nextDay: '[I morgon klokka] LT',
+ nextWeek: 'dddd [klokka] LT',
+ lastDay: '[I går klokka] LT',
+ lastWeek: '[Føregåande] dddd [klokka] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'om %s',
+ past: '%s sidan',
+ s: 'nokre sekund',
+ ss: '%d sekund',
+ m: 'eit minutt',
+ mm: '%d minutt',
+ h: 'ein time',
+ hh: '%d timar',
+ d: 'ein dag',
+ dd: '%d dagar',
+ w: 'ei veke',
+ ww: '%d veker',
+ M: 'ein månad',
+ MM: '%d månader',
+ y: 'eit år',
+ yy: '%d år',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return nn;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/oc-lnc.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/oc-lnc.js
new file mode 100644
index 000000000..a6a8c911b
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/oc-lnc.js
@@ -0,0 +1,96 @@
+//! moment.js locale configuration
+//! locale : Occitan, lengadocian dialecte [oc-lnc]
+//! author : Quentin PAGÈS : https://github.com/Quenty31
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var ocLnc = moment.defineLocale('oc-lnc', {
+ months: {
+ standalone:
+ 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(
+ '_'
+ ),
+ format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split(
+ '_'
+ ),
+ isFormat: /D[oD]?(\s)+MMMM/,
+ },
+ monthsShort:
+ 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(
+ '_'
+ ),
+ monthsParseExact: true,
+ weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(
+ '_'
+ ),
+ weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),
+ weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS: 'H:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM [de] YYYY',
+ ll: 'D MMM YYYY',
+ LLL: 'D MMMM [de] YYYY [a] H:mm',
+ lll: 'D MMM YYYY, H:mm',
+ LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',
+ llll: 'ddd D MMM YYYY, H:mm',
+ },
+ calendar: {
+ sameDay: '[uèi a] LT',
+ nextDay: '[deman a] LT',
+ nextWeek: 'dddd [a] LT',
+ lastDay: '[ièr a] LT',
+ lastWeek: 'dddd [passat a] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: "d'aquí %s",
+ past: 'fa %s',
+ s: 'unas segondas',
+ ss: '%d segondas',
+ m: 'una minuta',
+ mm: '%d minutas',
+ h: 'una ora',
+ hh: '%d oras',
+ d: 'un jorn',
+ dd: '%d jorns',
+ M: 'un mes',
+ MM: '%d meses',
+ y: 'un an',
+ yy: '%d ans',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/,
+ ordinal: function (number, period) {
+ var output =
+ number === 1
+ ? 'r'
+ : number === 2
+ ? 'n'
+ : number === 3
+ ? 'r'
+ : number === 4
+ ? 't'
+ : 'è';
+ if (period === 'w' || period === 'W') {
+ output = 'a';
+ }
+ return number + output;
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4,
+ },
+ });
+
+ return ocLnc;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/pa-in.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/pa-in.js
new file mode 100644
index 000000000..d57eb7501
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/pa-in.js
@@ -0,0 +1,133 @@
+//! moment.js locale configuration
+//! locale : Punjabi (India) [pa-in]
+//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var symbolMap = {
+ 1: '੧',
+ 2: '੨',
+ 3: '੩',
+ 4: '੪',
+ 5: '੫',
+ 6: '੬',
+ 7: '੭',
+ 8: '੮',
+ 9: '੯',
+ 0: '੦',
+ },
+ numberMap = {
+ '੧': '1',
+ '੨': '2',
+ '੩': '3',
+ '੪': '4',
+ '੫': '5',
+ '੬': '6',
+ '੭': '7',
+ '੮': '8',
+ '੯': '9',
+ '੦': '0',
+ };
+
+ var paIn = moment.defineLocale('pa-in', {
+ // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.
+ months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(
+ '_'
+ ),
+ monthsShort:
+ 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(
+ '_'
+ ),
+ weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(
+ '_'
+ ),
+ weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
+ weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
+ longDateFormat: {
+ LT: 'A h:mm ਵਜੇ',
+ LTS: 'A h:mm:ss ਵਜੇ',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',
+ LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',
+ },
+ calendar: {
+ sameDay: '[ਅਜ] LT',
+ nextDay: '[ਕਲ] LT',
+ nextWeek: '[ਅਗਲਾ] dddd, LT',
+ lastDay: '[ਕਲ] LT',
+ lastWeek: '[ਪਿਛਲੇ] dddd, LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s ਵਿੱਚ',
+ past: '%s ਪਿਛਲੇ',
+ s: 'ਕੁਝ ਸਕਿੰਟ',
+ ss: '%d ਸਕਿੰਟ',
+ m: 'ਇਕ ਮਿੰਟ',
+ mm: '%d ਮਿੰਟ',
+ h: 'ਇੱਕ ਘੰਟਾ',
+ hh: '%d ਘੰਟੇ',
+ d: 'ਇੱਕ ਦਿਨ',
+ dd: '%d ਦਿਨ',
+ M: 'ਇੱਕ ਮਹੀਨਾ',
+ MM: '%d ਮਹੀਨੇ',
+ y: 'ਇੱਕ ਸਾਲ',
+ yy: '%d ਸਾਲ',
+ },
+ preparse: function (string) {
+ return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ // Punjabi notation for meridiems are quite fuzzy in practice. While there exists
+ // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.
+ meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'ਰਾਤ') {
+ return hour < 4 ? hour : hour + 12;
+ } else if (meridiem === 'ਸਵੇਰ') {
+ return hour;
+ } else if (meridiem === 'ਦੁਪਹਿਰ') {
+ return hour >= 10 ? hour : hour + 12;
+ } else if (meridiem === 'ਸ਼ਾਮ') {
+ return hour + 12;
+ }
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'ਰਾਤ';
+ } else if (hour < 10) {
+ return 'ਸਵੇਰ';
+ } else if (hour < 17) {
+ return 'ਦੁਪਹਿਰ';
+ } else if (hour < 20) {
+ return 'ਸ਼ਾਮ';
+ } else {
+ return 'ਰਾਤ';
+ }
+ },
+ week: {
+ dow: 0, // Sunday is the first day of the week.
+ doy: 6, // The week that contains Jan 6th is the first week of the year.
+ },
+ });
+
+ return paIn;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/pl.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/pl.js
new file mode 100644
index 000000000..0750bb3bc
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/pl.js
@@ -0,0 +1,151 @@
+//! moment.js locale configuration
+//! locale : Polish [pl]
+//! author : Rafal Hirsz : https://github.com/evoL
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var monthsNominative =
+ 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(
+ '_'
+ ),
+ monthsSubjective =
+ 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(
+ '_'
+ ),
+ monthsParse = [
+ /^sty/i,
+ /^lut/i,
+ /^mar/i,
+ /^kwi/i,
+ /^maj/i,
+ /^cze/i,
+ /^lip/i,
+ /^sie/i,
+ /^wrz/i,
+ /^paź/i,
+ /^lis/i,
+ /^gru/i,
+ ];
+ function plural(n) {
+ return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;
+ }
+ function translate(number, withoutSuffix, key) {
+ var result = number + ' ';
+ switch (key) {
+ case 'ss':
+ return result + (plural(number) ? 'sekundy' : 'sekund');
+ case 'm':
+ return withoutSuffix ? 'minuta' : 'minutę';
+ case 'mm':
+ return result + (plural(number) ? 'minuty' : 'minut');
+ case 'h':
+ return withoutSuffix ? 'godzina' : 'godzinę';
+ case 'hh':
+ return result + (plural(number) ? 'godziny' : 'godzin');
+ case 'ww':
+ return result + (plural(number) ? 'tygodnie' : 'tygodni');
+ case 'MM':
+ return result + (plural(number) ? 'miesiące' : 'miesięcy');
+ case 'yy':
+ return result + (plural(number) ? 'lata' : 'lat');
+ }
+ }
+
+ var pl = moment.defineLocale('pl', {
+ months: function (momentToFormat, format) {
+ if (!momentToFormat) {
+ return monthsNominative;
+ } else if (/D MMMM/.test(format)) {
+ return monthsSubjective[momentToFormat.month()];
+ } else {
+ return monthsNominative[momentToFormat.month()];
+ }
+ },
+ monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),
+ monthsParse: monthsParse,
+ longMonthsParse: monthsParse,
+ shortMonthsParse: monthsParse,
+ weekdays:
+ 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),
+ weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),
+ weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[Dziś o] LT',
+ nextDay: '[Jutro o] LT',
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[W niedzielę o] LT';
+
+ case 2:
+ return '[We wtorek o] LT';
+
+ case 3:
+ return '[W środę o] LT';
+
+ case 6:
+ return '[W sobotę o] LT';
+
+ default:
+ return '[W] dddd [o] LT';
+ }
+ },
+ lastDay: '[Wczoraj o] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[W zeszłą niedzielę o] LT';
+ case 3:
+ return '[W zeszłą środę o] LT';
+ case 6:
+ return '[W zeszłą sobotę o] LT';
+ default:
+ return '[W zeszły] dddd [o] LT';
+ }
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'za %s',
+ past: '%s temu',
+ s: 'kilka sekund',
+ ss: translate,
+ m: translate,
+ mm: translate,
+ h: translate,
+ hh: translate,
+ d: '1 dzień',
+ dd: '%d dni',
+ w: 'tydzień',
+ ww: translate,
+ M: 'miesiąc',
+ MM: translate,
+ y: 'rok',
+ yy: translate,
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return pl;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/pt-br.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/pt-br.js
new file mode 100644
index 000000000..ee123bda7
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/pt-br.js
@@ -0,0 +1,69 @@
+//! moment.js locale configuration
+//! locale : Portuguese (Brazil) [pt-br]
+//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var ptBr = moment.defineLocale('pt-br', {
+ months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(
+ '_'
+ ),
+ monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
+ weekdays:
+ 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(
+ '_'
+ ),
+ weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),
+ weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D [de] MMMM [de] YYYY',
+ LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',
+ LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',
+ },
+ calendar: {
+ sameDay: '[Hoje às] LT',
+ nextDay: '[Amanhã às] LT',
+ nextWeek: 'dddd [às] LT',
+ lastDay: '[Ontem às] LT',
+ lastWeek: function () {
+ return this.day() === 0 || this.day() === 6
+ ? '[Último] dddd [às] LT' // Saturday + Sunday
+ : '[Última] dddd [às] LT'; // Monday - Friday
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'em %s',
+ past: 'há %s',
+ s: 'poucos segundos',
+ ss: '%d segundos',
+ m: 'um minuto',
+ mm: '%d minutos',
+ h: 'uma hora',
+ hh: '%d horas',
+ d: 'um dia',
+ dd: '%d dias',
+ M: 'um mês',
+ MM: '%d meses',
+ y: 'um ano',
+ yy: '%d anos',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}º/,
+ ordinal: '%dº',
+ invalidDate: 'Data inválida',
+ });
+
+ return ptBr;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/pt.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/pt.js
new file mode 100644
index 000000000..a113ed7b9
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/pt.js
@@ -0,0 +1,74 @@
+//! moment.js locale configuration
+//! locale : Portuguese [pt]
+//! author : Jefferson : https://github.com/jalex79
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var pt = moment.defineLocale('pt', {
+ months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(
+ '_'
+ ),
+ monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
+ weekdays:
+ 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(
+ '_'
+ ),
+ weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
+ weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D [de] MMMM [de] YYYY',
+ LLL: 'D [de] MMMM [de] YYYY HH:mm',
+ LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[Hoje às] LT',
+ nextDay: '[Amanhã às] LT',
+ nextWeek: 'dddd [às] LT',
+ lastDay: '[Ontem às] LT',
+ lastWeek: function () {
+ return this.day() === 0 || this.day() === 6
+ ? '[Último] dddd [às] LT' // Saturday + Sunday
+ : '[Última] dddd [às] LT'; // Monday - Friday
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'em %s',
+ past: 'há %s',
+ s: 'segundos',
+ ss: '%d segundos',
+ m: 'um minuto',
+ mm: '%d minutos',
+ h: 'uma hora',
+ hh: '%d horas',
+ d: 'um dia',
+ dd: '%d dias',
+ w: 'uma semana',
+ ww: '%d semanas',
+ M: 'um mês',
+ MM: '%d meses',
+ y: 'um ano',
+ yy: '%d anos',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}º/,
+ ordinal: '%dº',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return pt;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ro.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ro.js
new file mode 100644
index 000000000..c2a9dd87e
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ro.js
@@ -0,0 +1,87 @@
+//! moment.js locale configuration
+//! locale : Romanian [ro]
+//! author : Vlad Gurdiga : https://github.com/gurdiga
+//! author : Valentin Agachi : https://github.com/avaly
+//! author : Emanuel Cepoi : https://github.com/cepem
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ function relativeTimeWithPlural(number, withoutSuffix, key) {
+ var format = {
+ ss: 'secunde',
+ mm: 'minute',
+ hh: 'ore',
+ dd: 'zile',
+ ww: 'săptămâni',
+ MM: 'luni',
+ yy: 'ani',
+ },
+ separator = ' ';
+ if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {
+ separator = ' de ';
+ }
+ return number + separator + format[key];
+ }
+
+ var ro = moment.defineLocale('ro', {
+ months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(
+ '_'
+ ),
+ monthsShort:
+ 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(
+ '_'
+ ),
+ monthsParseExact: true,
+ weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),
+ weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),
+ weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS: 'H:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY H:mm',
+ LLLL: 'dddd, D MMMM YYYY H:mm',
+ },
+ calendar: {
+ sameDay: '[azi la] LT',
+ nextDay: '[mâine la] LT',
+ nextWeek: 'dddd [la] LT',
+ lastDay: '[ieri la] LT',
+ lastWeek: '[fosta] dddd [la] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'peste %s',
+ past: '%s în urmă',
+ s: 'câteva secunde',
+ ss: relativeTimeWithPlural,
+ m: 'un minut',
+ mm: relativeTimeWithPlural,
+ h: 'o oră',
+ hh: relativeTimeWithPlural,
+ d: 'o zi',
+ dd: relativeTimeWithPlural,
+ w: 'o săptămână',
+ ww: relativeTimeWithPlural,
+ M: 'o lună',
+ MM: relativeTimeWithPlural,
+ y: 'un an',
+ yy: relativeTimeWithPlural,
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
+ },
+ });
+
+ return ro;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ru.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ru.js
new file mode 100644
index 000000000..d313eae8b
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ru.js
@@ -0,0 +1,224 @@
+//! moment.js locale configuration
+//! locale : Russian [ru]
+//! author : Viktorminator : https://github.com/Viktorminator
+//! author : Menelion Elensúle : https://github.com/Oire
+//! author : Коренберг Марк : https://github.com/socketpair
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ function plural(word, num) {
+ var forms = word.split('_');
+ return num % 10 === 1 && num % 100 !== 11
+ ? forms[0]
+ : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)
+ ? forms[1]
+ : forms[2];
+ }
+ function relativeTimeWithPlural(number, withoutSuffix, key) {
+ var format = {
+ ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
+ mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
+ hh: 'час_часа_часов',
+ dd: 'день_дня_дней',
+ ww: 'неделя_недели_недель',
+ MM: 'месяц_месяца_месяцев',
+ yy: 'год_года_лет',
+ };
+ if (key === 'm') {
+ return withoutSuffix ? 'минута' : 'минуту';
+ } else {
+ return number + ' ' + plural(format[key], +number);
+ }
+ }
+ var monthsParse = [
+ /^янв/i,
+ /^фев/i,
+ /^мар/i,
+ /^апр/i,
+ /^ма[йя]/i,
+ /^июн/i,
+ /^июл/i,
+ /^авг/i,
+ /^сен/i,
+ /^окт/i,
+ /^ноя/i,
+ /^дек/i,
+ ];
+
+ // http://new.gramota.ru/spravka/rules/139-prop : § 103
+ // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637
+ // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753
+ var ru = moment.defineLocale('ru', {
+ months: {
+ format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(
+ '_'
+ ),
+ standalone:
+ 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(
+ '_'
+ ),
+ },
+ monthsShort: {
+ // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку?
+ format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(
+ '_'
+ ),
+ standalone:
+ 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(
+ '_'
+ ),
+ },
+ weekdays: {
+ standalone:
+ 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(
+ '_'
+ ),
+ format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(
+ '_'
+ ),
+ isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,
+ },
+ weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
+ weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
+ monthsParse: monthsParse,
+ longMonthsParse: monthsParse,
+ shortMonthsParse: monthsParse,
+
+ // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки
+ monthsRegex:
+ /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
+
+ // копия предыдущего
+ monthsShortRegex:
+ /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
+
+ // полные названия с падежами
+ monthsStrictRegex:
+ /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,
+
+ // Выражение, которое соответствует только сокращённым формам
+ monthsShortStrictRegex:
+ /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS: 'H:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D MMMM YYYY г.',
+ LLL: 'D MMMM YYYY г., H:mm',
+ LLLL: 'dddd, D MMMM YYYY г., H:mm',
+ },
+ calendar: {
+ sameDay: '[Сегодня, в] LT',
+ nextDay: '[Завтра, в] LT',
+ lastDay: '[Вчера, в] LT',
+ nextWeek: function (now) {
+ if (now.week() !== this.week()) {
+ switch (this.day()) {
+ case 0:
+ return '[В следующее] dddd, [в] LT';
+ case 1:
+ case 2:
+ case 4:
+ return '[В следующий] dddd, [в] LT';
+ case 3:
+ case 5:
+ case 6:
+ return '[В следующую] dddd, [в] LT';
+ }
+ } else {
+ if (this.day() === 2) {
+ return '[Во] dddd, [в] LT';
+ } else {
+ return '[В] dddd, [в] LT';
+ }
+ }
+ },
+ lastWeek: function (now) {
+ if (now.week() !== this.week()) {
+ switch (this.day()) {
+ case 0:
+ return '[В прошлое] dddd, [в] LT';
+ case 1:
+ case 2:
+ case 4:
+ return '[В прошлый] dddd, [в] LT';
+ case 3:
+ case 5:
+ case 6:
+ return '[В прошлую] dddd, [в] LT';
+ }
+ } else {
+ if (this.day() === 2) {
+ return '[Во] dddd, [в] LT';
+ } else {
+ return '[В] dddd, [в] LT';
+ }
+ }
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'через %s',
+ past: '%s назад',
+ s: 'несколько секунд',
+ ss: relativeTimeWithPlural,
+ m: relativeTimeWithPlural,
+ mm: relativeTimeWithPlural,
+ h: 'час',
+ hh: relativeTimeWithPlural,
+ d: 'день',
+ dd: relativeTimeWithPlural,
+ w: 'неделя',
+ ww: relativeTimeWithPlural,
+ M: 'месяц',
+ MM: relativeTimeWithPlural,
+ y: 'год',
+ yy: relativeTimeWithPlural,
+ },
+ meridiemParse: /ночи|утра|дня|вечера/i,
+ isPM: function (input) {
+ return /^(дня|вечера)$/.test(input);
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'ночи';
+ } else if (hour < 12) {
+ return 'утра';
+ } else if (hour < 17) {
+ return 'дня';
+ } else {
+ return 'вечера';
+ }
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'M':
+ case 'd':
+ case 'DDD':
+ return number + '-й';
+ case 'D':
+ return number + '-го';
+ case 'w':
+ case 'W':
+ return number + '-я';
+ default:
+ return number;
+ }
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return ru;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/sd.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/sd.js
new file mode 100644
index 000000000..56ff8c7f4
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/sd.js
@@ -0,0 +1,92 @@
+//! moment.js locale configuration
+//! locale : Sindhi [sd]
+//! author : Narain Sagar : https://github.com/narainsagar
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var months = [
+ 'جنوري',
+ 'فيبروري',
+ 'مارچ',
+ 'اپريل',
+ 'مئي',
+ 'جون',
+ 'جولاءِ',
+ 'آگسٽ',
+ 'سيپٽمبر',
+ 'آڪٽوبر',
+ 'نومبر',
+ 'ڊسمبر',
+ ],
+ days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];
+
+ var sd = moment.defineLocale('sd', {
+ months: months,
+ monthsShort: months,
+ weekdays: days,
+ weekdaysShort: days,
+ weekdaysMin: days,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd، D MMMM YYYY HH:mm',
+ },
+ meridiemParse: /صبح|شام/,
+ isPM: function (input) {
+ return 'شام' === input;
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'صبح';
+ }
+ return 'شام';
+ },
+ calendar: {
+ sameDay: '[اڄ] LT',
+ nextDay: '[سڀاڻي] LT',
+ nextWeek: 'dddd [اڳين هفتي تي] LT',
+ lastDay: '[ڪالهه] LT',
+ lastWeek: '[گزريل هفتي] dddd [تي] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s پوء',
+ past: '%s اڳ',
+ s: 'چند سيڪنڊ',
+ ss: '%d سيڪنڊ',
+ m: 'هڪ منٽ',
+ mm: '%d منٽ',
+ h: 'هڪ ڪلاڪ',
+ hh: '%d ڪلاڪ',
+ d: 'هڪ ڏينهن',
+ dd: '%d ڏينهن',
+ M: 'هڪ مهينو',
+ MM: '%d مهينا',
+ y: 'هڪ سال',
+ yy: '%d سال',
+ },
+ preparse: function (string) {
+ return string.replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string.replace(/,/g, '،');
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return sd;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/se.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/se.js
new file mode 100644
index 000000000..289929a48
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/se.js
@@ -0,0 +1,68 @@
+//! moment.js locale configuration
+//! locale : Northern Sami [se]
+//! authors : Bård Rolstad Henriksen : https://github.com/karamell
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var se = moment.defineLocale('se', {
+ months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(
+ '_'
+ ),
+ monthsShort:
+ 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),
+ weekdays:
+ 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(
+ '_'
+ ),
+ weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),
+ weekdaysMin: 's_v_m_g_d_b_L'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'MMMM D. [b.] YYYY',
+ LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',
+ LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',
+ },
+ calendar: {
+ sameDay: '[otne ti] LT',
+ nextDay: '[ihttin ti] LT',
+ nextWeek: 'dddd [ti] LT',
+ lastDay: '[ikte ti] LT',
+ lastWeek: '[ovddit] dddd [ti] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s geažes',
+ past: 'maŋit %s',
+ s: 'moadde sekunddat',
+ ss: '%d sekunddat',
+ m: 'okta minuhta',
+ mm: '%d minuhtat',
+ h: 'okta diimmu',
+ hh: '%d diimmut',
+ d: 'okta beaivi',
+ dd: '%d beaivvit',
+ M: 'okta mánnu',
+ MM: '%d mánut',
+ y: 'okta jahki',
+ yy: '%d jagit',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return se;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/si.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/si.js
new file mode 100644
index 000000000..4421d044f
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/si.js
@@ -0,0 +1,80 @@
+//! moment.js locale configuration
+//! locale : Sinhalese [si]
+//! author : Sampath Sitinamaluwa : https://github.com/sampathsris
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ /*jshint -W100*/
+ var si = moment.defineLocale('si', {
+ months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(
+ '_'
+ ),
+ monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(
+ '_'
+ ),
+ weekdays:
+ 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(
+ '_'
+ ),
+ weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්රහ_සිකු_සෙන'.split('_'),
+ weekdaysMin: 'ඉ_ස_අ_බ_බ්ර_සි_සෙ'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'a h:mm',
+ LTS: 'a h:mm:ss',
+ L: 'YYYY/MM/DD',
+ LL: 'YYYY MMMM D',
+ LLL: 'YYYY MMMM D, a h:mm',
+ LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',
+ },
+ calendar: {
+ sameDay: '[අද] LT[ට]',
+ nextDay: '[හෙට] LT[ට]',
+ nextWeek: 'dddd LT[ට]',
+ lastDay: '[ඊයේ] LT[ට]',
+ lastWeek: '[පසුගිය] dddd LT[ට]',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%sකින්',
+ past: '%sකට පෙර',
+ s: 'තත්පර කිහිපය',
+ ss: 'තත්පර %d',
+ m: 'මිනිත්තුව',
+ mm: 'මිනිත්තු %d',
+ h: 'පැය',
+ hh: 'පැය %d',
+ d: 'දිනය',
+ dd: 'දින %d',
+ M: 'මාසය',
+ MM: 'මාස %d',
+ y: 'වසර',
+ yy: 'වසර %d',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2} වැනි/,
+ ordinal: function (number) {
+ return number + ' වැනි';
+ },
+ meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,
+ isPM: function (input) {
+ return input === 'ප.ව.' || input === 'පස් වරු';
+ },
+ meridiem: function (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? 'ප.ව.' : 'පස් වරු';
+ } else {
+ return isLower ? 'පෙ.ව.' : 'පෙර වරු';
+ }
+ },
+ });
+
+ return si;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/sk.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/sk.js
new file mode 100644
index 000000000..99edae771
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/sk.js
@@ -0,0 +1,156 @@
+//! moment.js locale configuration
+//! locale : Slovak [sk]
+//! author : Martin Minka : https://github.com/k2s
+//! based on work of petrbela : https://github.com/petrbela
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var months =
+ 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(
+ '_'
+ ),
+ monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');
+ function plural(n) {
+ return n > 1 && n < 5;
+ }
+ function translate(number, withoutSuffix, key, isFuture) {
+ var result = number + ' ';
+ switch (key) {
+ case 's': // a few seconds / in a few seconds / a few seconds ago
+ return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';
+ case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'sekundy' : 'sekúnd');
+ } else {
+ return result + 'sekundami';
+ }
+ case 'm': // a minute / in a minute / a minute ago
+ return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';
+ case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'minúty' : 'minút');
+ } else {
+ return result + 'minútami';
+ }
+ case 'h': // an hour / in an hour / an hour ago
+ return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';
+ case 'hh': // 9 hours / in 9 hours / 9 hours ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'hodiny' : 'hodín');
+ } else {
+ return result + 'hodinami';
+ }
+ case 'd': // a day / in a day / a day ago
+ return withoutSuffix || isFuture ? 'deň' : 'dňom';
+ case 'dd': // 9 days / in 9 days / 9 days ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'dni' : 'dní');
+ } else {
+ return result + 'dňami';
+ }
+ case 'M': // a month / in a month / a month ago
+ return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';
+ case 'MM': // 9 months / in 9 months / 9 months ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'mesiace' : 'mesiacov');
+ } else {
+ return result + 'mesiacmi';
+ }
+ case 'y': // a year / in a year / a year ago
+ return withoutSuffix || isFuture ? 'rok' : 'rokom';
+ case 'yy': // 9 years / in 9 years / 9 years ago
+ if (withoutSuffix || isFuture) {
+ return result + (plural(number) ? 'roky' : 'rokov');
+ } else {
+ return result + 'rokmi';
+ }
+ }
+ }
+
+ var sk = moment.defineLocale('sk', {
+ months: months,
+ monthsShort: monthsShort,
+ weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),
+ weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),
+ weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS: 'H:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY H:mm',
+ LLLL: 'dddd D. MMMM YYYY H:mm',
+ },
+ calendar: {
+ sameDay: '[dnes o] LT',
+ nextDay: '[zajtra o] LT',
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[v nedeľu o] LT';
+ case 1:
+ case 2:
+ return '[v] dddd [o] LT';
+ case 3:
+ return '[v stredu o] LT';
+ case 4:
+ return '[vo štvrtok o] LT';
+ case 5:
+ return '[v piatok o] LT';
+ case 6:
+ return '[v sobotu o] LT';
+ }
+ },
+ lastDay: '[včera o] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[minulú nedeľu o] LT';
+ case 1:
+ case 2:
+ return '[minulý] dddd [o] LT';
+ case 3:
+ return '[minulú stredu o] LT';
+ case 4:
+ case 5:
+ return '[minulý] dddd [o] LT';
+ case 6:
+ return '[minulú sobotu o] LT';
+ }
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'za %s',
+ past: 'pred %s',
+ s: translate,
+ ss: translate,
+ m: translate,
+ mm: translate,
+ h: translate,
+ hh: translate,
+ d: translate,
+ dd: translate,
+ M: translate,
+ MM: translate,
+ y: translate,
+ yy: translate,
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return sk;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/sl.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/sl.js
new file mode 100644
index 000000000..38f12109a
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/sl.js
@@ -0,0 +1,182 @@
+//! moment.js locale configuration
+//! locale : Slovenian [sl]
+//! author : Robert Sedovšek : https://github.com/sedovsek
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var result = number + ' ';
+ switch (key) {
+ case 's':
+ return withoutSuffix || isFuture
+ ? 'nekaj sekund'
+ : 'nekaj sekundami';
+ case 'ss':
+ if (number === 1) {
+ result += withoutSuffix ? 'sekundo' : 'sekundi';
+ } else if (number === 2) {
+ result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';
+ } else if (number < 5) {
+ result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';
+ } else {
+ result += 'sekund';
+ }
+ return result;
+ case 'm':
+ return withoutSuffix ? 'ena minuta' : 'eno minuto';
+ case 'mm':
+ if (number === 1) {
+ result += withoutSuffix ? 'minuta' : 'minuto';
+ } else if (number === 2) {
+ result += withoutSuffix || isFuture ? 'minuti' : 'minutama';
+ } else if (number < 5) {
+ result += withoutSuffix || isFuture ? 'minute' : 'minutami';
+ } else {
+ result += withoutSuffix || isFuture ? 'minut' : 'minutami';
+ }
+ return result;
+ case 'h':
+ return withoutSuffix ? 'ena ura' : 'eno uro';
+ case 'hh':
+ if (number === 1) {
+ result += withoutSuffix ? 'ura' : 'uro';
+ } else if (number === 2) {
+ result += withoutSuffix || isFuture ? 'uri' : 'urama';
+ } else if (number < 5) {
+ result += withoutSuffix || isFuture ? 'ure' : 'urami';
+ } else {
+ result += withoutSuffix || isFuture ? 'ur' : 'urami';
+ }
+ return result;
+ case 'd':
+ return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';
+ case 'dd':
+ if (number === 1) {
+ result += withoutSuffix || isFuture ? 'dan' : 'dnem';
+ } else if (number === 2) {
+ result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';
+ } else {
+ result += withoutSuffix || isFuture ? 'dni' : 'dnevi';
+ }
+ return result;
+ case 'M':
+ return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';
+ case 'MM':
+ if (number === 1) {
+ result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';
+ } else if (number === 2) {
+ result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';
+ } else if (number < 5) {
+ result += withoutSuffix || isFuture ? 'mesece' : 'meseci';
+ } else {
+ result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';
+ }
+ return result;
+ case 'y':
+ return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';
+ case 'yy':
+ if (number === 1) {
+ result += withoutSuffix || isFuture ? 'leto' : 'letom';
+ } else if (number === 2) {
+ result += withoutSuffix || isFuture ? 'leti' : 'letoma';
+ } else if (number < 5) {
+ result += withoutSuffix || isFuture ? 'leta' : 'leti';
+ } else {
+ result += withoutSuffix || isFuture ? 'let' : 'leti';
+ }
+ return result;
+ }
+ }
+
+ var sl = moment.defineLocale('sl', {
+ months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(
+ '_'
+ ),
+ monthsShort:
+ 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(
+ '_'
+ ),
+ monthsParseExact: true,
+ weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),
+ weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),
+ weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS: 'H:mm:ss',
+ L: 'DD. MM. YYYY',
+ LL: 'D. MMMM YYYY',
+ LLL: 'D. MMMM YYYY H:mm',
+ LLLL: 'dddd, D. MMMM YYYY H:mm',
+ },
+ calendar: {
+ sameDay: '[danes ob] LT',
+ nextDay: '[jutri ob] LT',
+
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[v] [nedeljo] [ob] LT';
+ case 3:
+ return '[v] [sredo] [ob] LT';
+ case 6:
+ return '[v] [soboto] [ob] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[v] dddd [ob] LT';
+ }
+ },
+ lastDay: '[včeraj ob] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[prejšnjo] [nedeljo] [ob] LT';
+ case 3:
+ return '[prejšnjo] [sredo] [ob] LT';
+ case 6:
+ return '[prejšnjo] [soboto] [ob] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[prejšnji] dddd [ob] LT';
+ }
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'čez %s',
+ past: 'pred %s',
+ s: processRelativeTime,
+ ss: processRelativeTime,
+ m: processRelativeTime,
+ mm: processRelativeTime,
+ h: processRelativeTime,
+ hh: processRelativeTime,
+ d: processRelativeTime,
+ dd: processRelativeTime,
+ M: processRelativeTime,
+ MM: processRelativeTime,
+ y: processRelativeTime,
+ yy: processRelativeTime,
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
+ },
+ });
+
+ return sl;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/sq.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/sq.js
new file mode 100644
index 000000000..154e3d603
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/sq.js
@@ -0,0 +1,76 @@
+//! moment.js locale configuration
+//! locale : Albanian [sq]
+//! author : Flakërim Ismani : https://github.com/flakerimi
+//! author : Menelion Elensúle : https://github.com/Oire
+//! author : Oerd Cukalla : https://github.com/oerd
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var sq = moment.defineLocale('sq', {
+ months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(
+ '_'
+ ),
+ monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),
+ weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(
+ '_'
+ ),
+ weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),
+ weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),
+ weekdaysParseExact: true,
+ meridiemParse: /PD|MD/,
+ isPM: function (input) {
+ return input.charAt(0) === 'M';
+ },
+ meridiem: function (hours, minutes, isLower) {
+ return hours < 12 ? 'PD' : 'MD';
+ },
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[Sot në] LT',
+ nextDay: '[Nesër në] LT',
+ nextWeek: 'dddd [në] LT',
+ lastDay: '[Dje në] LT',
+ lastWeek: 'dddd [e kaluar në] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'në %s',
+ past: '%s më parë',
+ s: 'disa sekonda',
+ ss: '%d sekonda',
+ m: 'një minutë',
+ mm: '%d minuta',
+ h: 'një orë',
+ hh: '%d orë',
+ d: 'një ditë',
+ dd: '%d ditë',
+ M: 'një muaj',
+ MM: '%d muaj',
+ y: 'një vit',
+ yy: '%d vite',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return sq;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/sr-cyrl.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/sr-cyrl.js
new file mode 100644
index 000000000..9da10fa60
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/sr-cyrl.js
@@ -0,0 +1,138 @@
+//! moment.js locale configuration
+//! locale : Serbian Cyrillic [sr-cyrl]
+//! author : Milan Janačković : https://github.com/milan-j
+//! author : Stefan Crnjaković : https://github.com/crnjakovic
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var translator = {
+ words: {
+ //Different grammatical cases
+ ss: ['секунда', 'секунде', 'секунди'],
+ m: ['један минут', 'једног минута'],
+ mm: ['минут', 'минута', 'минута'],
+ h: ['један сат', 'једног сата'],
+ hh: ['сат', 'сата', 'сати'],
+ d: ['један дан', 'једног дана'],
+ dd: ['дан', 'дана', 'дана'],
+ M: ['један месец', 'једног месеца'],
+ MM: ['месец', 'месеца', 'месеци'],
+ y: ['једну годину', 'једне године'],
+ yy: ['годину', 'године', 'година'],
+ },
+ correctGrammaticalCase: function (number, wordKey) {
+ if (
+ number % 10 >= 1 &&
+ number % 10 <= 4 &&
+ (number % 100 < 10 || number % 100 >= 20)
+ ) {
+ return number % 10 === 1 ? wordKey[0] : wordKey[1];
+ }
+ return wordKey[2];
+ },
+ translate: function (number, withoutSuffix, key, isFuture) {
+ var wordKey = translator.words[key],
+ word;
+
+ if (key.length === 1) {
+ // Nominativ
+ if (key === 'y' && withoutSuffix) return 'једна година';
+ return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];
+ }
+
+ word = translator.correctGrammaticalCase(number, wordKey);
+ // Nominativ
+ if (key === 'yy' && withoutSuffix && word === 'годину') {
+ return number + ' година';
+ }
+
+ return number + ' ' + word;
+ },
+ };
+
+ var srCyrl = moment.defineLocale('sr-cyrl', {
+ months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(
+ '_'
+ ),
+ monthsShort:
+ 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),
+ monthsParseExact: true,
+ weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),
+ weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),
+ weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS: 'H:mm:ss',
+ L: 'D. M. YYYY.',
+ LL: 'D. MMMM YYYY.',
+ LLL: 'D. MMMM YYYY. H:mm',
+ LLLL: 'dddd, D. MMMM YYYY. H:mm',
+ },
+ calendar: {
+ sameDay: '[данас у] LT',
+ nextDay: '[сутра у] LT',
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[у] [недељу] [у] LT';
+ case 3:
+ return '[у] [среду] [у] LT';
+ case 6:
+ return '[у] [суботу] [у] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[у] dddd [у] LT';
+ }
+ },
+ lastDay: '[јуче у] LT',
+ lastWeek: function () {
+ var lastWeekDays = [
+ '[прошле] [недеље] [у] LT',
+ '[прошлог] [понедељка] [у] LT',
+ '[прошлог] [уторка] [у] LT',
+ '[прошле] [среде] [у] LT',
+ '[прошлог] [четвртка] [у] LT',
+ '[прошлог] [петка] [у] LT',
+ '[прошле] [суботе] [у] LT',
+ ];
+ return lastWeekDays[this.day()];
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'за %s',
+ past: 'пре %s',
+ s: 'неколико секунди',
+ ss: translator.translate,
+ m: translator.translate,
+ mm: translator.translate,
+ h: translator.translate,
+ hh: translator.translate,
+ d: translator.translate,
+ dd: translator.translate,
+ M: translator.translate,
+ MM: translator.translate,
+ y: translator.translate,
+ yy: translator.translate,
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 1st is the first week of the year.
+ },
+ });
+
+ return srCyrl;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/sr.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/sr.js
new file mode 100644
index 000000000..8f53e7ccf
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/sr.js
@@ -0,0 +1,140 @@
+//! moment.js locale configuration
+//! locale : Serbian [sr]
+//! author : Milan Janačković : https://github.com/milan-j
+//! author : Stefan Crnjaković : https://github.com/crnjakovic
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var translator = {
+ words: {
+ //Different grammatical cases
+ ss: ['sekunda', 'sekunde', 'sekundi'],
+ m: ['jedan minut', 'jednog minuta'],
+ mm: ['minut', 'minuta', 'minuta'],
+ h: ['jedan sat', 'jednog sata'],
+ hh: ['sat', 'sata', 'sati'],
+ d: ['jedan dan', 'jednog dana'],
+ dd: ['dan', 'dana', 'dana'],
+ M: ['jedan mesec', 'jednog meseca'],
+ MM: ['mesec', 'meseca', 'meseci'],
+ y: ['jednu godinu', 'jedne godine'],
+ yy: ['godinu', 'godine', 'godina'],
+ },
+ correctGrammaticalCase: function (number, wordKey) {
+ if (
+ number % 10 >= 1 &&
+ number % 10 <= 4 &&
+ (number % 100 < 10 || number % 100 >= 20)
+ ) {
+ return number % 10 === 1 ? wordKey[0] : wordKey[1];
+ }
+ return wordKey[2];
+ },
+ translate: function (number, withoutSuffix, key, isFuture) {
+ var wordKey = translator.words[key],
+ word;
+
+ if (key.length === 1) {
+ // Nominativ
+ if (key === 'y' && withoutSuffix) return 'jedna godina';
+ return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];
+ }
+
+ word = translator.correctGrammaticalCase(number, wordKey);
+ // Nominativ
+ if (key === 'yy' && withoutSuffix && word === 'godinu') {
+ return number + ' godina';
+ }
+
+ return number + ' ' + word;
+ },
+ };
+
+ var sr = moment.defineLocale('sr', {
+ months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(
+ '_'
+ ),
+ monthsShort:
+ 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
+ monthsParseExact: true,
+ weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(
+ '_'
+ ),
+ weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),
+ weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS: 'H:mm:ss',
+ L: 'D. M. YYYY.',
+ LL: 'D. MMMM YYYY.',
+ LLL: 'D. MMMM YYYY. H:mm',
+ LLLL: 'dddd, D. MMMM YYYY. H:mm',
+ },
+ calendar: {
+ sameDay: '[danas u] LT',
+ nextDay: '[sutra u] LT',
+ nextWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[u] [nedelju] [u] LT';
+ case 3:
+ return '[u] [sredu] [u] LT';
+ case 6:
+ return '[u] [subotu] [u] LT';
+ case 1:
+ case 2:
+ case 4:
+ case 5:
+ return '[u] dddd [u] LT';
+ }
+ },
+ lastDay: '[juče u] LT',
+ lastWeek: function () {
+ var lastWeekDays = [
+ '[prošle] [nedelje] [u] LT',
+ '[prošlog] [ponedeljka] [u] LT',
+ '[prošlog] [utorka] [u] LT',
+ '[prošle] [srede] [u] LT',
+ '[prošlog] [četvrtka] [u] LT',
+ '[prošlog] [petka] [u] LT',
+ '[prošle] [subote] [u] LT',
+ ];
+ return lastWeekDays[this.day()];
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'za %s',
+ past: 'pre %s',
+ s: 'nekoliko sekundi',
+ ss: translator.translate,
+ m: translator.translate,
+ mm: translator.translate,
+ h: translator.translate,
+ hh: translator.translate,
+ d: translator.translate,
+ dd: translator.translate,
+ M: translator.translate,
+ MM: translator.translate,
+ y: translator.translate,
+ yy: translator.translate,
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
+ },
+ });
+
+ return sr;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ss.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ss.js
new file mode 100644
index 000000000..ce8a657c1
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ss.js
@@ -0,0 +1,95 @@
+//! moment.js locale configuration
+//! locale : siSwati [ss]
+//! author : Nicolai Davies : https://github.com/nicolaidavies
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var ss = moment.defineLocale('ss', {
+ months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split(
+ '_'
+ ),
+ monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),
+ weekdays:
+ 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(
+ '_'
+ ),
+ weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),
+ weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'h:mm A',
+ LTS: 'h:mm:ss A',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY h:mm A',
+ LLLL: 'dddd, D MMMM YYYY h:mm A',
+ },
+ calendar: {
+ sameDay: '[Namuhla nga] LT',
+ nextDay: '[Kusasa nga] LT',
+ nextWeek: 'dddd [nga] LT',
+ lastDay: '[Itolo nga] LT',
+ lastWeek: 'dddd [leliphelile] [nga] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'nga %s',
+ past: 'wenteka nga %s',
+ s: 'emizuzwana lomcane',
+ ss: '%d mzuzwana',
+ m: 'umzuzu',
+ mm: '%d emizuzu',
+ h: 'lihora',
+ hh: '%d emahora',
+ d: 'lilanga',
+ dd: '%d emalanga',
+ M: 'inyanga',
+ MM: '%d tinyanga',
+ y: 'umnyaka',
+ yy: '%d iminyaka',
+ },
+ meridiemParse: /ekuseni|emini|entsambama|ebusuku/,
+ meridiem: function (hours, minutes, isLower) {
+ if (hours < 11) {
+ return 'ekuseni';
+ } else if (hours < 15) {
+ return 'emini';
+ } else if (hours < 19) {
+ return 'entsambama';
+ } else {
+ return 'ebusuku';
+ }
+ },
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'ekuseni') {
+ return hour;
+ } else if (meridiem === 'emini') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {
+ if (hour === 0) {
+ return 0;
+ }
+ return hour + 12;
+ }
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}/,
+ ordinal: '%d',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return ss;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/sv.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/sv.js
new file mode 100644
index 000000000..5962e878d
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/sv.js
@@ -0,0 +1,79 @@
+//! moment.js locale configuration
+//! locale : Swedish [sv]
+//! author : Jens Alm : https://github.com/ulmus
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var sv = moment.defineLocale('sv', {
+ months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(
+ '_'
+ ),
+ monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
+ weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),
+ weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),
+ weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'YYYY-MM-DD',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY [kl.] HH:mm',
+ LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',
+ lll: 'D MMM YYYY HH:mm',
+ llll: 'ddd D MMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[Idag] LT',
+ nextDay: '[Imorgon] LT',
+ lastDay: '[Igår] LT',
+ nextWeek: '[På] dddd LT',
+ lastWeek: '[I] dddd[s] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'om %s',
+ past: 'för %s sedan',
+ s: 'några sekunder',
+ ss: '%d sekunder',
+ m: 'en minut',
+ mm: '%d minuter',
+ h: 'en timme',
+ hh: '%d timmar',
+ d: 'en dag',
+ dd: '%d dagar',
+ M: 'en månad',
+ MM: '%d månader',
+ y: 'ett år',
+ yy: '%d år',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/,
+ ordinal: function (number) {
+ var b = number % 10,
+ output =
+ ~~((number % 100) / 10) === 1
+ ? ':e'
+ : b === 1
+ ? ':a'
+ : b === 2
+ ? ':a'
+ : b === 3
+ ? ':e'
+ : ':e';
+ return number + output;
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return sv;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/sw.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/sw.js
new file mode 100644
index 000000000..1a5ac6438
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/sw.js
@@ -0,0 +1,66 @@
+//! moment.js locale configuration
+//! locale : Swahili [sw]
+//! author : Fahad Kassim : https://github.com/fadsel
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var sw = moment.defineLocale('sw', {
+ months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(
+ '_'
+ ),
+ monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),
+ weekdays:
+ 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(
+ '_'
+ ),
+ weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),
+ weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'hh:mm A',
+ LTS: 'HH:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[leo saa] LT',
+ nextDay: '[kesho saa] LT',
+ nextWeek: '[wiki ijayo] dddd [saat] LT',
+ lastDay: '[jana] LT',
+ lastWeek: '[wiki iliyopita] dddd [saat] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s baadaye',
+ past: 'tokea %s',
+ s: 'hivi punde',
+ ss: 'sekunde %d',
+ m: 'dakika moja',
+ mm: 'dakika %d',
+ h: 'saa limoja',
+ hh: 'masaa %d',
+ d: 'siku moja',
+ dd: 'siku %d',
+ M: 'mwezi mmoja',
+ MM: 'miezi %d',
+ y: 'mwaka mmoja',
+ yy: 'miaka %d',
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
+ },
+ });
+
+ return sw;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ta.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ta.js
new file mode 100644
index 000000000..0f288320e
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ta.js
@@ -0,0 +1,142 @@
+//! moment.js locale configuration
+//! locale : Tamil [ta]
+//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var symbolMap = {
+ 1: '௧',
+ 2: '௨',
+ 3: '௩',
+ 4: '௪',
+ 5: '௫',
+ 6: '௬',
+ 7: '௭',
+ 8: '௮',
+ 9: '௯',
+ 0: '௦',
+ },
+ numberMap = {
+ '௧': '1',
+ '௨': '2',
+ '௩': '3',
+ '௪': '4',
+ '௫': '5',
+ '௬': '6',
+ '௭': '7',
+ '௮': '8',
+ '௯': '9',
+ '௦': '0',
+ };
+
+ var ta = moment.defineLocale('ta', {
+ months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(
+ '_'
+ ),
+ monthsShort:
+ 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(
+ '_'
+ ),
+ weekdays:
+ 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(
+ '_'
+ ),
+ weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(
+ '_'
+ ),
+ weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY, HH:mm',
+ LLLL: 'dddd, D MMMM YYYY, HH:mm',
+ },
+ calendar: {
+ sameDay: '[இன்று] LT',
+ nextDay: '[நாளை] LT',
+ nextWeek: 'dddd, LT',
+ lastDay: '[நேற்று] LT',
+ lastWeek: '[கடந்த வாரம்] dddd, LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s இல்',
+ past: '%s முன்',
+ s: 'ஒரு சில விநாடிகள்',
+ ss: '%d விநாடிகள்',
+ m: 'ஒரு நிமிடம்',
+ mm: '%d நிமிடங்கள்',
+ h: 'ஒரு மணி நேரம்',
+ hh: '%d மணி நேரம்',
+ d: 'ஒரு நாள்',
+ dd: '%d நாட்கள்',
+ M: 'ஒரு மாதம்',
+ MM: '%d மாதங்கள்',
+ y: 'ஒரு வருடம்',
+ yy: '%d ஆண்டுகள்',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}வது/,
+ ordinal: function (number) {
+ return number + 'வது';
+ },
+ preparse: function (string) {
+ return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {
+ return numberMap[match];
+ });
+ },
+ postformat: function (string) {
+ return string.replace(/\d/g, function (match) {
+ return symbolMap[match];
+ });
+ },
+ // refer http://ta.wikipedia.org/s/1er1
+ meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 2) {
+ return ' யாமம்';
+ } else if (hour < 6) {
+ return ' வைகறை'; // வைகறை
+ } else if (hour < 10) {
+ return ' காலை'; // காலை
+ } else if (hour < 14) {
+ return ' நண்பகல்'; // நண்பகல்
+ } else if (hour < 18) {
+ return ' எற்பாடு'; // எற்பாடு
+ } else if (hour < 22) {
+ return ' மாலை'; // மாலை
+ } else {
+ return ' யாமம்';
+ }
+ },
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'யாமம்') {
+ return hour < 2 ? hour : hour + 12;
+ } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {
+ return hour;
+ } else if (meridiem === 'நண்பகல்') {
+ return hour >= 10 ? hour : hour + 12;
+ } else {
+ return hour + 12;
+ }
+ },
+ week: {
+ dow: 0, // Sunday is the first day of the week.
+ doy: 6, // The week that contains Jan 6th is the first week of the year.
+ },
+ });
+
+ return ta;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/te.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/te.js
new file mode 100644
index 000000000..85bab7efd
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/te.js
@@ -0,0 +1,99 @@
+//! moment.js locale configuration
+//! locale : Telugu [te]
+//! author : Krishna Chaitanya Thota : https://github.com/kcthota
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var te = moment.defineLocale('te', {
+ months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(
+ '_'
+ ),
+ monthsShort:
+ 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(
+ '_'
+ ),
+ monthsParseExact: true,
+ weekdays:
+ 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(
+ '_'
+ ),
+ weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),
+ weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),
+ longDateFormat: {
+ LT: 'A h:mm',
+ LTS: 'A h:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY, A h:mm',
+ LLLL: 'dddd, D MMMM YYYY, A h:mm',
+ },
+ calendar: {
+ sameDay: '[నేడు] LT',
+ nextDay: '[రేపు] LT',
+ nextWeek: 'dddd, LT',
+ lastDay: '[నిన్న] LT',
+ lastWeek: '[గత] dddd, LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s లో',
+ past: '%s క్రితం',
+ s: 'కొన్ని క్షణాలు',
+ ss: '%d సెకన్లు',
+ m: 'ఒక నిమిషం',
+ mm: '%d నిమిషాలు',
+ h: 'ఒక గంట',
+ hh: '%d గంటలు',
+ d: 'ఒక రోజు',
+ dd: '%d రోజులు',
+ M: 'ఒక నెల',
+ MM: '%d నెలలు',
+ y: 'ఒక సంవత్సరం',
+ yy: '%d సంవత్సరాలు',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}వ/,
+ ordinal: '%dవ',
+ meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'రాత్రి') {
+ return hour < 4 ? hour : hour + 12;
+ } else if (meridiem === 'ఉదయం') {
+ return hour;
+ } else if (meridiem === 'మధ్యాహ్నం') {
+ return hour >= 10 ? hour : hour + 12;
+ } else if (meridiem === 'సాయంత్రం') {
+ return hour + 12;
+ }
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'రాత్రి';
+ } else if (hour < 10) {
+ return 'ఉదయం';
+ } else if (hour < 17) {
+ return 'మధ్యాహ్నం';
+ } else if (hour < 20) {
+ return 'సాయంత్రం';
+ } else {
+ return 'రాత్రి';
+ }
+ },
+ week: {
+ dow: 0, // Sunday is the first day of the week.
+ doy: 6, // The week that contains Jan 6th is the first week of the year.
+ },
+ });
+
+ return te;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tet.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tet.js
new file mode 100644
index 000000000..5c62c6c9c
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tet.js
@@ -0,0 +1,79 @@
+//! moment.js locale configuration
+//! locale : Tetun Dili (East Timor) [tet]
+//! author : Joshua Brooks : https://github.com/joshbrooks
+//! author : Onorio De J. Afonso : https://github.com/marobo
+//! author : Sonia Simoes : https://github.com/soniasimoes
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var tet = moment.defineLocale('tet', {
+ months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(
+ '_'
+ ),
+ monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),
+ weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),
+ weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),
+ weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[Ohin iha] LT',
+ nextDay: '[Aban iha] LT',
+ nextWeek: 'dddd [iha] LT',
+ lastDay: '[Horiseik iha] LT',
+ lastWeek: 'dddd [semana kotuk] [iha] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'iha %s',
+ past: '%s liuba',
+ s: 'segundu balun',
+ ss: 'segundu %d',
+ m: 'minutu ida',
+ mm: 'minutu %d',
+ h: 'oras ida',
+ hh: 'oras %d',
+ d: 'loron ida',
+ dd: 'loron %d',
+ M: 'fulan ida',
+ MM: 'fulan %d',
+ y: 'tinan ida',
+ yy: 'tinan %d',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
+ ordinal: function (number) {
+ var b = number % 10,
+ output =
+ ~~((number % 100) / 10) === 1
+ ? 'th'
+ : b === 1
+ ? 'st'
+ : b === 2
+ ? 'nd'
+ : b === 3
+ ? 'rd'
+ : 'th';
+ return number + output;
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return tet;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tg.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tg.js
new file mode 100644
index 000000000..bde72ad13
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tg.js
@@ -0,0 +1,128 @@
+//! moment.js locale configuration
+//! locale : Tajik [tg]
+//! author : Orif N. Jr. : https://github.com/orif-jr
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var suffixes = {
+ 0: '-ум',
+ 1: '-ум',
+ 2: '-юм',
+ 3: '-юм',
+ 4: '-ум',
+ 5: '-ум',
+ 6: '-ум',
+ 7: '-ум',
+ 8: '-ум',
+ 9: '-ум',
+ 10: '-ум',
+ 12: '-ум',
+ 13: '-ум',
+ 20: '-ум',
+ 30: '-юм',
+ 40: '-ум',
+ 50: '-ум',
+ 60: '-ум',
+ 70: '-ум',
+ 80: '-ум',
+ 90: '-ум',
+ 100: '-ум',
+ };
+
+ var tg = moment.defineLocale('tg', {
+ months: {
+ format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(
+ '_'
+ ),
+ standalone:
+ 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(
+ '_'
+ ),
+ },
+ monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
+ weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(
+ '_'
+ ),
+ weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),
+ weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[Имрӯз соати] LT',
+ nextDay: '[Фардо соати] LT',
+ lastDay: '[Дирӯз соати] LT',
+ nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',
+ lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'баъди %s',
+ past: '%s пеш',
+ s: 'якчанд сония',
+ m: 'як дақиқа',
+ mm: '%d дақиқа',
+ h: 'як соат',
+ hh: '%d соат',
+ d: 'як рӯз',
+ dd: '%d рӯз',
+ M: 'як моҳ',
+ MM: '%d моҳ',
+ y: 'як сол',
+ yy: '%d сол',
+ },
+ meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === 'шаб') {
+ return hour < 4 ? hour : hour + 12;
+ } else if (meridiem === 'субҳ') {
+ return hour;
+ } else if (meridiem === 'рӯз') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === 'бегоҳ') {
+ return hour + 12;
+ }
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'шаб';
+ } else if (hour < 11) {
+ return 'субҳ';
+ } else if (hour < 16) {
+ return 'рӯз';
+ } else if (hour < 19) {
+ return 'бегоҳ';
+ } else {
+ return 'шаб';
+ }
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/,
+ ordinal: function (number) {
+ var a = number % 10,
+ b = number >= 100 ? 100 : null;
+ return number + (suffixes[number] || suffixes[a] || suffixes[b]);
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 1th is the first week of the year.
+ },
+ });
+
+ return tg;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/th.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/th.js
new file mode 100644
index 000000000..f83bad95e
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/th.js
@@ -0,0 +1,76 @@
+//! moment.js locale configuration
+//! locale : Thai [th]
+//! author : Kridsada Thanabulpong : https://github.com/sirn
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var th = moment.defineLocale('th', {
+ months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(
+ '_'
+ ),
+ monthsShort:
+ 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(
+ '_'
+ ),
+ monthsParseExact: true,
+ weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),
+ weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference
+ weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'H:mm',
+ LTS: 'H:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY เวลา H:mm',
+ LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',
+ },
+ meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,
+ isPM: function (input) {
+ return input === 'หลังเที่ยง';
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'ก่อนเที่ยง';
+ } else {
+ return 'หลังเที่ยง';
+ }
+ },
+ calendar: {
+ sameDay: '[วันนี้ เวลา] LT',
+ nextDay: '[พรุ่งนี้ เวลา] LT',
+ nextWeek: 'dddd[หน้า เวลา] LT',
+ lastDay: '[เมื่อวานนี้ เวลา] LT',
+ lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'อีก %s',
+ past: '%sที่แล้ว',
+ s: 'ไม่กี่วินาที',
+ ss: '%d วินาที',
+ m: '1 นาที',
+ mm: '%d นาที',
+ h: '1 ชั่วโมง',
+ hh: '%d ชั่วโมง',
+ d: '1 วัน',
+ dd: '%d วัน',
+ w: '1 สัปดาห์',
+ ww: '%d สัปดาห์',
+ M: '1 เดือน',
+ MM: '%d เดือน',
+ y: '1 ปี',
+ yy: '%d ปี',
+ },
+ });
+
+ return th;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tk.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tk.js
new file mode 100644
index 000000000..24d4ede90
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tk.js
@@ -0,0 +1,102 @@
+//! moment.js locale configuration
+//! locale : Turkmen [tk]
+//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var suffixes = {
+ 1: "'inji",
+ 5: "'inji",
+ 8: "'inji",
+ 70: "'inji",
+ 80: "'inji",
+ 2: "'nji",
+ 7: "'nji",
+ 20: "'nji",
+ 50: "'nji",
+ 3: "'ünji",
+ 4: "'ünji",
+ 100: "'ünji",
+ 6: "'njy",
+ 9: "'unjy",
+ 10: "'unjy",
+ 30: "'unjy",
+ 60: "'ynjy",
+ 90: "'ynjy",
+ };
+
+ var tk = moment.defineLocale('tk', {
+ months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(
+ '_'
+ ),
+ monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),
+ weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(
+ '_'
+ ),
+ weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),
+ weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[bugün sagat] LT',
+ nextDay: '[ertir sagat] LT',
+ nextWeek: '[indiki] dddd [sagat] LT',
+ lastDay: '[düýn] LT',
+ lastWeek: '[geçen] dddd [sagat] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s soň',
+ past: '%s öň',
+ s: 'birnäçe sekunt',
+ m: 'bir minut',
+ mm: '%d minut',
+ h: 'bir sagat',
+ hh: '%d sagat',
+ d: 'bir gün',
+ dd: '%d gün',
+ M: 'bir aý',
+ MM: '%d aý',
+ y: 'bir ýyl',
+ yy: '%d ýyl',
+ },
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'd':
+ case 'D':
+ case 'Do':
+ case 'DD':
+ return number;
+ default:
+ if (number === 0) {
+ // special case for zero
+ return number + "'unjy";
+ }
+ var a = number % 10,
+ b = (number % 100) - a,
+ c = number >= 100 ? 100 : null;
+ return number + (suffixes[a] || suffixes[b] || suffixes[c]);
+ }
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
+ },
+ });
+
+ return tk;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tl-ph.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tl-ph.js
new file mode 100644
index 000000000..871b07841
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tl-ph.js
@@ -0,0 +1,68 @@
+//! moment.js locale configuration
+//! locale : Tagalog (Philippines) [tl-ph]
+//! author : Dan Hagman : https://github.com/hagmandan
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var tlPh = moment.defineLocale('tl-ph', {
+ months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(
+ '_'
+ ),
+ monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
+ weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(
+ '_'
+ ),
+ weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
+ weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'MM/D/YYYY',
+ LL: 'MMMM D, YYYY',
+ LLL: 'MMMM D, YYYY HH:mm',
+ LLLL: 'dddd, MMMM DD, YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: 'LT [ngayong araw]',
+ nextDay: '[Bukas ng] LT',
+ nextWeek: 'LT [sa susunod na] dddd',
+ lastDay: 'LT [kahapon]',
+ lastWeek: 'LT [noong nakaraang] dddd',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'sa loob ng %s',
+ past: '%s ang nakalipas',
+ s: 'ilang segundo',
+ ss: '%d segundo',
+ m: 'isang minuto',
+ mm: '%d minuto',
+ h: 'isang oras',
+ hh: '%d oras',
+ d: 'isang araw',
+ dd: '%d araw',
+ M: 'isang buwan',
+ MM: '%d buwan',
+ y: 'isang taon',
+ yy: '%d taon',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}/,
+ ordinal: function (number) {
+ return number;
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return tlPh;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tlh.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tlh.js
new file mode 100644
index 000000000..ed61731a5
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tlh.js
@@ -0,0 +1,135 @@
+//! moment.js locale configuration
+//! locale : Klingon [tlh]
+//! author : Dominika Kruk : https://github.com/amaranthrose
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');
+
+ function translateFuture(output) {
+ var time = output;
+ time =
+ output.indexOf('jaj') !== -1
+ ? time.slice(0, -3) + 'leS'
+ : output.indexOf('jar') !== -1
+ ? time.slice(0, -3) + 'waQ'
+ : output.indexOf('DIS') !== -1
+ ? time.slice(0, -3) + 'nem'
+ : time + ' pIq';
+ return time;
+ }
+
+ function translatePast(output) {
+ var time = output;
+ time =
+ output.indexOf('jaj') !== -1
+ ? time.slice(0, -3) + 'Hu’'
+ : output.indexOf('jar') !== -1
+ ? time.slice(0, -3) + 'wen'
+ : output.indexOf('DIS') !== -1
+ ? time.slice(0, -3) + 'ben'
+ : time + ' ret';
+ return time;
+ }
+
+ function translate(number, withoutSuffix, string, isFuture) {
+ var numberNoun = numberAsNoun(number);
+ switch (string) {
+ case 'ss':
+ return numberNoun + ' lup';
+ case 'mm':
+ return numberNoun + ' tup';
+ case 'hh':
+ return numberNoun + ' rep';
+ case 'dd':
+ return numberNoun + ' jaj';
+ case 'MM':
+ return numberNoun + ' jar';
+ case 'yy':
+ return numberNoun + ' DIS';
+ }
+ }
+
+ function numberAsNoun(number) {
+ var hundred = Math.floor((number % 1000) / 100),
+ ten = Math.floor((number % 100) / 10),
+ one = number % 10,
+ word = '';
+ if (hundred > 0) {
+ word += numbersNouns[hundred] + 'vatlh';
+ }
+ if (ten > 0) {
+ word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';
+ }
+ if (one > 0) {
+ word += (word !== '' ? ' ' : '') + numbersNouns[one];
+ }
+ return word === '' ? 'pagh' : word;
+ }
+
+ var tlh = moment.defineLocale('tlh', {
+ months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(
+ '_'
+ ),
+ monthsShort:
+ 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(
+ '_'
+ ),
+ monthsParseExact: true,
+ weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(
+ '_'
+ ),
+ weekdaysShort:
+ 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
+ weekdaysMin:
+ 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[DaHjaj] LT',
+ nextDay: '[wa’leS] LT',
+ nextWeek: 'LLL',
+ lastDay: '[wa’Hu’] LT',
+ lastWeek: 'LLL',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: translateFuture,
+ past: translatePast,
+ s: 'puS lup',
+ ss: translate,
+ m: 'wa’ tup',
+ mm: translate,
+ h: 'wa’ rep',
+ hh: translate,
+ d: 'wa’ jaj',
+ dd: translate,
+ M: 'wa’ jar',
+ MM: translate,
+ y: 'wa’ DIS',
+ yy: translate,
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return tlh;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tr.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tr.js
new file mode 100644
index 000000000..663778e99
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tr.js
@@ -0,0 +1,117 @@
+//! moment.js locale configuration
+//! locale : Turkish [tr]
+//! authors : Erhan Gundogan : https://github.com/erhangundogan,
+//! Burak Yiğit Kaya: https://github.com/BYK
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var suffixes = {
+ 1: "'inci",
+ 5: "'inci",
+ 8: "'inci",
+ 70: "'inci",
+ 80: "'inci",
+ 2: "'nci",
+ 7: "'nci",
+ 20: "'nci",
+ 50: "'nci",
+ 3: "'üncü",
+ 4: "'üncü",
+ 100: "'üncü",
+ 6: "'ncı",
+ 9: "'uncu",
+ 10: "'uncu",
+ 30: "'uncu",
+ 60: "'ıncı",
+ 90: "'ıncı",
+ };
+
+ var tr = moment.defineLocale('tr', {
+ months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(
+ '_'
+ ),
+ monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),
+ weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(
+ '_'
+ ),
+ weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),
+ weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),
+ meridiem: function (hours, minutes, isLower) {
+ if (hours < 12) {
+ return isLower ? 'öö' : 'ÖÖ';
+ } else {
+ return isLower ? 'ös' : 'ÖS';
+ }
+ },
+ meridiemParse: /öö|ÖÖ|ös|ÖS/,
+ isPM: function (input) {
+ return input === 'ös' || input === 'ÖS';
+ },
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[bugün saat] LT',
+ nextDay: '[yarın saat] LT',
+ nextWeek: '[gelecek] dddd [saat] LT',
+ lastDay: '[dün] LT',
+ lastWeek: '[geçen] dddd [saat] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s sonra',
+ past: '%s önce',
+ s: 'birkaç saniye',
+ ss: '%d saniye',
+ m: 'bir dakika',
+ mm: '%d dakika',
+ h: 'bir saat',
+ hh: '%d saat',
+ d: 'bir gün',
+ dd: '%d gün',
+ w: 'bir hafta',
+ ww: '%d hafta',
+ M: 'bir ay',
+ MM: '%d ay',
+ y: 'bir yıl',
+ yy: '%d yıl',
+ },
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'd':
+ case 'D':
+ case 'Do':
+ case 'DD':
+ return number;
+ default:
+ if (number === 0) {
+ // special case for zero
+ return number + "'ıncı";
+ }
+ var a = number % 10,
+ b = (number % 100) - a,
+ c = number >= 100 ? 100 : null;
+ return number + (suffixes[a] || suffixes[b] || suffixes[c]);
+ }
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
+ },
+ });
+
+ return tr;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tzl.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tzl.js
new file mode 100644
index 000000000..43ad139eb
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tzl.js
@@ -0,0 +1,100 @@
+//! moment.js locale configuration
+//! locale : Talossan [tzl]
+//! author : Robin van der Vliet : https://github.com/robin0van0der0v
+//! author : Iustì Canun
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.
+ // This is currently too difficult (maybe even impossible) to add.
+ var tzl = moment.defineLocale('tzl', {
+ months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(
+ '_'
+ ),
+ monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),
+ weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),
+ weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),
+ weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),
+ longDateFormat: {
+ LT: 'HH.mm',
+ LTS: 'HH.mm.ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D. MMMM [dallas] YYYY',
+ LLL: 'D. MMMM [dallas] YYYY HH.mm',
+ LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',
+ },
+ meridiemParse: /d\'o|d\'a/i,
+ isPM: function (input) {
+ return "d'o" === input.toLowerCase();
+ },
+ meridiem: function (hours, minutes, isLower) {
+ if (hours > 11) {
+ return isLower ? "d'o" : "D'O";
+ } else {
+ return isLower ? "d'a" : "D'A";
+ }
+ },
+ calendar: {
+ sameDay: '[oxhi à] LT',
+ nextDay: '[demà à] LT',
+ nextWeek: 'dddd [à] LT',
+ lastDay: '[ieiri à] LT',
+ lastWeek: '[sür el] dddd [lasteu à] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'osprei %s',
+ past: 'ja%s',
+ s: processRelativeTime,
+ ss: processRelativeTime,
+ m: processRelativeTime,
+ mm: processRelativeTime,
+ h: processRelativeTime,
+ hh: processRelativeTime,
+ d: processRelativeTime,
+ dd: processRelativeTime,
+ M: processRelativeTime,
+ MM: processRelativeTime,
+ y: processRelativeTime,
+ yy: processRelativeTime,
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}\./,
+ ordinal: '%d.',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ function processRelativeTime(number, withoutSuffix, key, isFuture) {
+ var format = {
+ s: ['viensas secunds', "'iensas secunds"],
+ ss: [number + ' secunds', '' + number + ' secunds'],
+ m: ["'n míut", "'iens míut"],
+ mm: [number + ' míuts', '' + number + ' míuts'],
+ h: ["'n þora", "'iensa þora"],
+ hh: [number + ' þoras', '' + number + ' þoras'],
+ d: ["'n ziua", "'iensa ziua"],
+ dd: [number + ' ziuas', '' + number + ' ziuas'],
+ M: ["'n mes", "'iens mes"],
+ MM: [number + ' mesen', '' + number + ' mesen'],
+ y: ["'n ar", "'iens ar"],
+ yy: [number + ' ars', '' + number + ' ars'],
+ };
+ return isFuture
+ ? format[key][0]
+ : withoutSuffix
+ ? format[key][0]
+ : format[key][1];
+ }
+
+ return tzl;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tzm-latn.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tzm-latn.js
new file mode 100644
index 000000000..34425a7e4
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tzm-latn.js
@@ -0,0 +1,65 @@
+//! moment.js locale configuration
+//! locale : Central Atlas Tamazight Latin [tzm-latn]
+//! author : Abdel Said : https://github.com/abdelsaid
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var tzmLatn = moment.defineLocale('tzm-latn', {
+ months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(
+ '_'
+ ),
+ monthsShort:
+ 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(
+ '_'
+ ),
+ weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
+ weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
+ weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[asdkh g] LT',
+ nextDay: '[aska g] LT',
+ nextWeek: 'dddd [g] LT',
+ lastDay: '[assant g] LT',
+ lastWeek: 'dddd [g] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'dadkh s yan %s',
+ past: 'yan %s',
+ s: 'imik',
+ ss: '%d imik',
+ m: 'minuḍ',
+ mm: '%d minuḍ',
+ h: 'saɛa',
+ hh: '%d tassaɛin',
+ d: 'ass',
+ dd: '%d ossan',
+ M: 'ayowr',
+ MM: '%d iyyirn',
+ y: 'asgas',
+ yy: '%d isgasn',
+ },
+ week: {
+ dow: 6, // Saturday is the first day of the week.
+ doy: 12, // The week that contains Jan 12th is the first week of the year.
+ },
+ });
+
+ return tzmLatn;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tzm.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tzm.js
new file mode 100644
index 000000000..5db61f946
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/tzm.js
@@ -0,0 +1,65 @@
+//! moment.js locale configuration
+//! locale : Central Atlas Tamazight [tzm]
+//! author : Abdel Said : https://github.com/abdelsaid
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var tzm = moment.defineLocale('tzm', {
+ months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(
+ '_'
+ ),
+ monthsShort:
+ 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(
+ '_'
+ ),
+ weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
+ weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
+ weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',
+ nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',
+ nextWeek: 'dddd [ⴴ] LT',
+ lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',
+ lastWeek: 'dddd [ⴴ] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',
+ past: 'ⵢⴰⵏ %s',
+ s: 'ⵉⵎⵉⴽ',
+ ss: '%d ⵉⵎⵉⴽ',
+ m: 'ⵎⵉⵏⵓⴺ',
+ mm: '%d ⵎⵉⵏⵓⴺ',
+ h: 'ⵙⴰⵄⴰ',
+ hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',
+ d: 'ⴰⵙⵙ',
+ dd: '%d oⵙⵙⴰⵏ',
+ M: 'ⴰⵢoⵓⵔ',
+ MM: '%d ⵉⵢⵢⵉⵔⵏ',
+ y: 'ⴰⵙⴳⴰⵙ',
+ yy: '%d ⵉⵙⴳⴰⵙⵏ',
+ },
+ week: {
+ dow: 6, // Saturday is the first day of the week.
+ doy: 12, // The week that contains Jan 12th is the first week of the year.
+ },
+ });
+
+ return tzm;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ug-cn.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ug-cn.js
new file mode 100644
index 000000000..5efffdd45
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ug-cn.js
@@ -0,0 +1,122 @@
+//! moment.js locale configuration
+//! locale : Uyghur (China) [ug-cn]
+//! author: boyaq : https://github.com/boyaq
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var ugCn = moment.defineLocale('ug-cn', {
+ months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
+ '_'
+ ),
+ monthsShort:
+ 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
+ '_'
+ ),
+ weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(
+ '_'
+ ),
+ weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
+ weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'YYYY-MM-DD',
+ LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',
+ LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
+ LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
+ },
+ meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (
+ meridiem === 'يېرىم كېچە' ||
+ meridiem === 'سەھەر' ||
+ meridiem === 'چۈشتىن بۇرۇن'
+ ) {
+ return hour;
+ } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {
+ return hour + 12;
+ } else {
+ return hour >= 11 ? hour : hour + 12;
+ }
+ },
+ meridiem: function (hour, minute, isLower) {
+ var hm = hour * 100 + minute;
+ if (hm < 600) {
+ return 'يېرىم كېچە';
+ } else if (hm < 900) {
+ return 'سەھەر';
+ } else if (hm < 1130) {
+ return 'چۈشتىن بۇرۇن';
+ } else if (hm < 1230) {
+ return 'چۈش';
+ } else if (hm < 1800) {
+ return 'چۈشتىن كېيىن';
+ } else {
+ return 'كەچ';
+ }
+ },
+ calendar: {
+ sameDay: '[بۈگۈن سائەت] LT',
+ nextDay: '[ئەتە سائەت] LT',
+ nextWeek: '[كېلەركى] dddd [سائەت] LT',
+ lastDay: '[تۆنۈگۈن] LT',
+ lastWeek: '[ئالدىنقى] dddd [سائەت] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s كېيىن',
+ past: '%s بۇرۇن',
+ s: 'نەچچە سېكونت',
+ ss: '%d سېكونت',
+ m: 'بىر مىنۇت',
+ mm: '%d مىنۇت',
+ h: 'بىر سائەت',
+ hh: '%d سائەت',
+ d: 'بىر كۈن',
+ dd: '%d كۈن',
+ M: 'بىر ئاي',
+ MM: '%d ئاي',
+ y: 'بىر يىل',
+ yy: '%d يىل',
+ },
+
+ dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'd':
+ case 'D':
+ case 'DDD':
+ return number + '-كۈنى';
+ case 'w':
+ case 'W':
+ return number + '-ھەپتە';
+ default:
+ return number;
+ }
+ },
+ preparse: function (string) {
+ return string.replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string.replace(/,/g, '،');
+ },
+ week: {
+ // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 1st is the first week of the year.
+ },
+ });
+
+ return ugCn;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/uk.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/uk.js
new file mode 100644
index 000000000..f5fd3528d
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/uk.js
@@ -0,0 +1,178 @@
+//! moment.js locale configuration
+//! locale : Ukrainian [uk]
+//! author : zemlanin : https://github.com/zemlanin
+//! Author : Menelion Elensúle : https://github.com/Oire
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ function plural(word, num) {
+ var forms = word.split('_');
+ return num % 10 === 1 && num % 100 !== 11
+ ? forms[0]
+ : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)
+ ? forms[1]
+ : forms[2];
+ }
+ function relativeTimeWithPlural(number, withoutSuffix, key) {
+ var format = {
+ ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',
+ mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',
+ hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',
+ dd: 'день_дні_днів',
+ MM: 'місяць_місяці_місяців',
+ yy: 'рік_роки_років',
+ };
+ if (key === 'm') {
+ return withoutSuffix ? 'хвилина' : 'хвилину';
+ } else if (key === 'h') {
+ return withoutSuffix ? 'година' : 'годину';
+ } else {
+ return number + ' ' + plural(format[key], +number);
+ }
+ }
+ function weekdaysCaseReplace(m, format) {
+ var weekdays = {
+ nominative:
+ 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(
+ '_'
+ ),
+ accusative:
+ 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(
+ '_'
+ ),
+ genitive:
+ 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(
+ '_'
+ ),
+ },
+ nounCase;
+
+ if (m === true) {
+ return weekdays['nominative']
+ .slice(1, 7)
+ .concat(weekdays['nominative'].slice(0, 1));
+ }
+ if (!m) {
+ return weekdays['nominative'];
+ }
+
+ nounCase = /(\[[ВвУу]\]) ?dddd/.test(format)
+ ? 'accusative'
+ : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(format)
+ ? 'genitive'
+ : 'nominative';
+ return weekdays[nounCase][m.day()];
+ }
+ function processHoursFunction(str) {
+ return function () {
+ return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';
+ };
+ }
+
+ var uk = moment.defineLocale('uk', {
+ months: {
+ format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(
+ '_'
+ ),
+ standalone:
+ 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(
+ '_'
+ ),
+ },
+ monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(
+ '_'
+ ),
+ weekdays: weekdaysCaseReplace,
+ weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
+ weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D MMMM YYYY р.',
+ LLL: 'D MMMM YYYY р., HH:mm',
+ LLLL: 'dddd, D MMMM YYYY р., HH:mm',
+ },
+ calendar: {
+ sameDay: processHoursFunction('[Сьогодні '),
+ nextDay: processHoursFunction('[Завтра '),
+ lastDay: processHoursFunction('[Вчора '),
+ nextWeek: processHoursFunction('[У] dddd ['),
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ case 3:
+ case 5:
+ case 6:
+ return processHoursFunction('[Минулої] dddd [').call(this);
+ case 1:
+ case 2:
+ case 4:
+ return processHoursFunction('[Минулого] dddd [').call(this);
+ }
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'за %s',
+ past: '%s тому',
+ s: 'декілька секунд',
+ ss: relativeTimeWithPlural,
+ m: relativeTimeWithPlural,
+ mm: relativeTimeWithPlural,
+ h: 'годину',
+ hh: relativeTimeWithPlural,
+ d: 'день',
+ dd: relativeTimeWithPlural,
+ M: 'місяць',
+ MM: relativeTimeWithPlural,
+ y: 'рік',
+ yy: relativeTimeWithPlural,
+ },
+ // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
+ meridiemParse: /ночі|ранку|дня|вечора/,
+ isPM: function (input) {
+ return /^(дня|вечора)$/.test(input);
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 4) {
+ return 'ночі';
+ } else if (hour < 12) {
+ return 'ранку';
+ } else if (hour < 17) {
+ return 'дня';
+ } else {
+ return 'вечора';
+ }
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'M':
+ case 'd':
+ case 'DDD':
+ case 'w':
+ case 'W':
+ return number + '-й';
+ case 'D':
+ return number + '-го';
+ default:
+ return number;
+ }
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
+ },
+ });
+
+ return uk;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ur.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ur.js
new file mode 100644
index 000000000..9720dcf52
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/ur.js
@@ -0,0 +1,93 @@
+//! moment.js locale configuration
+//! locale : Urdu [ur]
+//! author : Sawood Alam : https://github.com/ibnesayeed
+//! author : Zack : https://github.com/ZackVision
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var months = [
+ 'جنوری',
+ 'فروری',
+ 'مارچ',
+ 'اپریل',
+ 'مئی',
+ 'جون',
+ 'جولائی',
+ 'اگست',
+ 'ستمبر',
+ 'اکتوبر',
+ 'نومبر',
+ 'دسمبر',
+ ],
+ days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];
+
+ var ur = moment.defineLocale('ur', {
+ months: months,
+ monthsShort: months,
+ weekdays: days,
+ weekdaysShort: days,
+ weekdaysMin: days,
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd، D MMMM YYYY HH:mm',
+ },
+ meridiemParse: /صبح|شام/,
+ isPM: function (input) {
+ return 'شام' === input;
+ },
+ meridiem: function (hour, minute, isLower) {
+ if (hour < 12) {
+ return 'صبح';
+ }
+ return 'شام';
+ },
+ calendar: {
+ sameDay: '[آج بوقت] LT',
+ nextDay: '[کل بوقت] LT',
+ nextWeek: 'dddd [بوقت] LT',
+ lastDay: '[گذشتہ روز بوقت] LT',
+ lastWeek: '[گذشتہ] dddd [بوقت] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s بعد',
+ past: '%s قبل',
+ s: 'چند سیکنڈ',
+ ss: '%d سیکنڈ',
+ m: 'ایک منٹ',
+ mm: '%d منٹ',
+ h: 'ایک گھنٹہ',
+ hh: '%d گھنٹے',
+ d: 'ایک دن',
+ dd: '%d دن',
+ M: 'ایک ماہ',
+ MM: '%d ماہ',
+ y: 'ایک سال',
+ yy: '%d سال',
+ },
+ preparse: function (string) {
+ return string.replace(/،/g, ',');
+ },
+ postformat: function (string) {
+ return string.replace(/,/g, '،');
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return ur;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/uz-latn.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/uz-latn.js
new file mode 100644
index 000000000..af08e60f0
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/uz-latn.js
@@ -0,0 +1,65 @@
+//! moment.js locale configuration
+//! locale : Uzbek Latin [uz-latn]
+//! author : Rasulbek Mirzayev : github.com/Rasulbeeek
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var uzLatn = moment.defineLocale('uz-latn', {
+ months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(
+ '_'
+ ),
+ monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),
+ weekdays:
+ 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(
+ '_'
+ ),
+ weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),
+ weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'D MMMM YYYY, dddd HH:mm',
+ },
+ calendar: {
+ sameDay: '[Bugun soat] LT [da]',
+ nextDay: '[Ertaga] LT [da]',
+ nextWeek: 'dddd [kuni soat] LT [da]',
+ lastDay: '[Kecha soat] LT [da]',
+ lastWeek: "[O'tgan] dddd [kuni soat] LT [da]",
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'Yaqin %s ichida',
+ past: 'Bir necha %s oldin',
+ s: 'soniya',
+ ss: '%d soniya',
+ m: 'bir daqiqa',
+ mm: '%d daqiqa',
+ h: 'bir soat',
+ hh: '%d soat',
+ d: 'bir kun',
+ dd: '%d kun',
+ M: 'bir oy',
+ MM: '%d oy',
+ y: 'bir yil',
+ yy: '%d yil',
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 7th is the first week of the year.
+ },
+ });
+
+ return uzLatn;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/uz.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/uz.js
new file mode 100644
index 000000000..a8a87fc89
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/uz.js
@@ -0,0 +1,62 @@
+//! moment.js locale configuration
+//! locale : Uzbek [uz]
+//! author : Sardor Muminov : https://github.com/muminoff
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var uz = moment.defineLocale('uz', {
+ months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(
+ '_'
+ ),
+ monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
+ weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),
+ weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),
+ weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'D MMMM YYYY, dddd HH:mm',
+ },
+ calendar: {
+ sameDay: '[Бугун соат] LT [да]',
+ nextDay: '[Эртага] LT [да]',
+ nextWeek: 'dddd [куни соат] LT [да]',
+ lastDay: '[Кеча соат] LT [да]',
+ lastWeek: '[Утган] dddd [куни соат] LT [да]',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'Якин %s ичида',
+ past: 'Бир неча %s олдин',
+ s: 'фурсат',
+ ss: '%d фурсат',
+ m: 'бир дакика',
+ mm: '%d дакика',
+ h: 'бир соат',
+ hh: '%d соат',
+ d: 'бир кун',
+ dd: '%d кун',
+ M: 'бир ой',
+ MM: '%d ой',
+ y: 'бир йил',
+ yy: '%d йил',
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 7, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return uz;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/vi.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/vi.js
new file mode 100644
index 000000000..fb6b4b40b
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/vi.js
@@ -0,0 +1,91 @@
+//! moment.js locale configuration
+//! locale : Vietnamese [vi]
+//! author : Bang Nguyen : https://github.com/bangnk
+//! author : Chien Kira : https://github.com/chienkira
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var vi = moment.defineLocale('vi', {
+ months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(
+ '_'
+ ),
+ monthsShort:
+ 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(
+ '_'
+ ),
+ monthsParseExact: true,
+ weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(
+ '_'
+ ),
+ weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
+ weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
+ weekdaysParseExact: true,
+ meridiemParse: /sa|ch/i,
+ isPM: function (input) {
+ return /^ch$/i.test(input);
+ },
+ meridiem: function (hours, minutes, isLower) {
+ if (hours < 12) {
+ return isLower ? 'sa' : 'SA';
+ } else {
+ return isLower ? 'ch' : 'CH';
+ }
+ },
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM [năm] YYYY',
+ LLL: 'D MMMM [năm] YYYY HH:mm',
+ LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',
+ l: 'DD/M/YYYY',
+ ll: 'D MMM YYYY',
+ lll: 'D MMM YYYY HH:mm',
+ llll: 'ddd, D MMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[Hôm nay lúc] LT',
+ nextDay: '[Ngày mai lúc] LT',
+ nextWeek: 'dddd [tuần tới lúc] LT',
+ lastDay: '[Hôm qua lúc] LT',
+ lastWeek: 'dddd [tuần trước lúc] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: '%s tới',
+ past: '%s trước',
+ s: 'vài giây',
+ ss: '%d giây',
+ m: 'một phút',
+ mm: '%d phút',
+ h: 'một giờ',
+ hh: '%d giờ',
+ d: 'một ngày',
+ dd: '%d ngày',
+ w: 'một tuần',
+ ww: '%d tuần',
+ M: 'một tháng',
+ MM: '%d tháng',
+ y: 'một năm',
+ yy: '%d năm',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}/,
+ ordinal: function (number) {
+ return number;
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return vi;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/x-pseudo.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/x-pseudo.js
new file mode 100644
index 000000000..a46e1d7d4
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/x-pseudo.js
@@ -0,0 +1,84 @@
+//! moment.js locale configuration
+//! locale : Pseudo [x-pseudo]
+//! author : Andrew Hood : https://github.com/andrewhood125
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var xPseudo = moment.defineLocale('x-pseudo', {
+ months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(
+ '_'
+ ),
+ monthsShort:
+ 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(
+ '_'
+ ),
+ monthsParseExact: true,
+ weekdays:
+ 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(
+ '_'
+ ),
+ weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),
+ weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),
+ weekdaysParseExact: true,
+ longDateFormat: {
+ LT: 'HH:mm',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd, D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[T~ódá~ý át] LT',
+ nextDay: '[T~ómó~rró~w át] LT',
+ nextWeek: 'dddd [át] LT',
+ lastDay: '[Ý~ést~érdá~ý át] LT',
+ lastWeek: '[L~ást] dddd [át] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'í~ñ %s',
+ past: '%s á~gó',
+ s: 'á ~féw ~sécó~ñds',
+ ss: '%d s~écóñ~ds',
+ m: 'á ~míñ~úté',
+ mm: '%d m~íñú~tés',
+ h: 'á~ñ hó~úr',
+ hh: '%d h~óúrs',
+ d: 'á ~dáý',
+ dd: '%d d~áýs',
+ M: 'á ~móñ~th',
+ MM: '%d m~óñt~hs',
+ y: 'á ~ýéár',
+ yy: '%d ý~éárs',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
+ ordinal: function (number) {
+ var b = number % 10,
+ output =
+ ~~((number % 100) / 10) === 1
+ ? 'th'
+ : b === 1
+ ? 'st'
+ : b === 2
+ ? 'nd'
+ : b === 3
+ ? 'rd'
+ : 'th';
+ return number + output;
+ },
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return xPseudo;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/yo.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/yo.js
new file mode 100644
index 000000000..9fe818b58
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/yo.js
@@ -0,0 +1,64 @@
+//! moment.js locale configuration
+//! locale : Yoruba Nigeria [yo]
+//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var yo = moment.defineLocale('yo', {
+ months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(
+ '_'
+ ),
+ monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),
+ weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),
+ weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),
+ weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),
+ longDateFormat: {
+ LT: 'h:mm A',
+ LTS: 'h:mm:ss A',
+ L: 'DD/MM/YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY h:mm A',
+ LLLL: 'dddd, D MMMM YYYY h:mm A',
+ },
+ calendar: {
+ sameDay: '[Ònì ni] LT',
+ nextDay: '[Ọ̀la ni] LT',
+ nextWeek: "dddd [Ọsẹ̀ tón'bọ] [ni] LT",
+ lastDay: '[Àna ni] LT',
+ lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: 'ní %s',
+ past: '%s kọjá',
+ s: 'ìsẹjú aayá die',
+ ss: 'aayá %d',
+ m: 'ìsẹjú kan',
+ mm: 'ìsẹjú %d',
+ h: 'wákati kan',
+ hh: 'wákati %d',
+ d: 'ọjọ́ kan',
+ dd: 'ọjọ́ %d',
+ M: 'osù kan',
+ MM: 'osù %d',
+ y: 'ọdún kan',
+ yy: 'ọdún %d',
+ },
+ dayOfMonthOrdinalParse: /ọjọ́\s\d{1,2}/,
+ ordinal: 'ọjọ́ %d',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return yo;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/zh-cn.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/zh-cn.js
new file mode 100644
index 000000000..c14ca47ca
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/zh-cn.js
@@ -0,0 +1,131 @@
+//! moment.js locale configuration
+//! locale : Chinese (China) [zh-cn]
+//! author : suupic : https://github.com/suupic
+//! author : Zeno Zeng : https://github.com/zenozeng
+//! author : uu109 : https://github.com/uu109
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var zhCn = moment.defineLocale('zh-cn', {
+ months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
+ '_'
+ ),
+ monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
+ '_'
+ ),
+ weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
+ weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),
+ weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'YYYY/MM/DD',
+ LL: 'YYYY年M月D日',
+ LLL: 'YYYY年M月D日Ah点mm分',
+ LLLL: 'YYYY年M月D日ddddAh点mm分',
+ l: 'YYYY/M/D',
+ ll: 'YYYY年M月D日',
+ lll: 'YYYY年M月D日 HH:mm',
+ llll: 'YYYY年M月D日dddd HH:mm',
+ },
+ meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
+ return hour;
+ } else if (meridiem === '下午' || meridiem === '晚上') {
+ return hour + 12;
+ } else {
+ // '中午'
+ return hour >= 11 ? hour : hour + 12;
+ }
+ },
+ meridiem: function (hour, minute, isLower) {
+ var hm = hour * 100 + minute;
+ if (hm < 600) {
+ return '凌晨';
+ } else if (hm < 900) {
+ return '早上';
+ } else if (hm < 1130) {
+ return '上午';
+ } else if (hm < 1230) {
+ return '中午';
+ } else if (hm < 1800) {
+ return '下午';
+ } else {
+ return '晚上';
+ }
+ },
+ calendar: {
+ sameDay: '[今天]LT',
+ nextDay: '[明天]LT',
+ nextWeek: function (now) {
+ if (now.week() !== this.week()) {
+ return '[下]dddLT';
+ } else {
+ return '[本]dddLT';
+ }
+ },
+ lastDay: '[昨天]LT',
+ lastWeek: function (now) {
+ if (this.week() !== now.week()) {
+ return '[上]dddLT';
+ } else {
+ return '[本]dddLT';
+ }
+ },
+ sameElse: 'L',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'd':
+ case 'D':
+ case 'DDD':
+ return number + '日';
+ case 'M':
+ return number + '月';
+ case 'w':
+ case 'W':
+ return number + '周';
+ default:
+ return number;
+ }
+ },
+ relativeTime: {
+ future: '%s后',
+ past: '%s前',
+ s: '几秒',
+ ss: '%d 秒',
+ m: '1 分钟',
+ mm: '%d 分钟',
+ h: '1 小时',
+ hh: '%d 小时',
+ d: '1 天',
+ dd: '%d 天',
+ w: '1 周',
+ ww: '%d 周',
+ M: '1 个月',
+ MM: '%d 个月',
+ y: '1 年',
+ yy: '%d 年',
+ },
+ week: {
+ // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return zhCn;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/zh-hk.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/zh-hk.js
new file mode 100644
index 000000000..de900fd15
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/zh-hk.js
@@ -0,0 +1,112 @@
+//! moment.js locale configuration
+//! locale : Chinese (Hong Kong) [zh-hk]
+//! author : Ben : https://github.com/ben-lin
+//! author : Chris Lam : https://github.com/hehachris
+//! author : Konstantin : https://github.com/skfd
+//! author : Anthony : https://github.com/anthonylau
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var zhHk = moment.defineLocale('zh-hk', {
+ months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
+ '_'
+ ),
+ monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
+ '_'
+ ),
+ weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
+ weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
+ weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'YYYY/MM/DD',
+ LL: 'YYYY年M月D日',
+ LLL: 'YYYY年M月D日 HH:mm',
+ LLLL: 'YYYY年M月D日dddd HH:mm',
+ l: 'YYYY/M/D',
+ ll: 'YYYY年M月D日',
+ lll: 'YYYY年M月D日 HH:mm',
+ llll: 'YYYY年M月D日dddd HH:mm',
+ },
+ meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
+ return hour;
+ } else if (meridiem === '中午') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === '下午' || meridiem === '晚上') {
+ return hour + 12;
+ }
+ },
+ meridiem: function (hour, minute, isLower) {
+ var hm = hour * 100 + minute;
+ if (hm < 600) {
+ return '凌晨';
+ } else if (hm < 900) {
+ return '早上';
+ } else if (hm < 1200) {
+ return '上午';
+ } else if (hm === 1200) {
+ return '中午';
+ } else if (hm < 1800) {
+ return '下午';
+ } else {
+ return '晚上';
+ }
+ },
+ calendar: {
+ sameDay: '[今天]LT',
+ nextDay: '[明天]LT',
+ nextWeek: '[下]ddddLT',
+ lastDay: '[昨天]LT',
+ lastWeek: '[上]ddddLT',
+ sameElse: 'L',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'd':
+ case 'D':
+ case 'DDD':
+ return number + '日';
+ case 'M':
+ return number + '月';
+ case 'w':
+ case 'W':
+ return number + '週';
+ default:
+ return number;
+ }
+ },
+ relativeTime: {
+ future: '%s後',
+ past: '%s前',
+ s: '幾秒',
+ ss: '%d 秒',
+ m: '1 分鐘',
+ mm: '%d 分鐘',
+ h: '1 小時',
+ hh: '%d 小時',
+ d: '1 天',
+ dd: '%d 天',
+ M: '1 個月',
+ MM: '%d 個月',
+ y: '1 年',
+ yy: '%d 年',
+ },
+ });
+
+ return zhHk;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/zh-mo.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/zh-mo.js
new file mode 100644
index 000000000..b32feab01
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/zh-mo.js
@@ -0,0 +1,111 @@
+//! moment.js locale configuration
+//! locale : Chinese (Macau) [zh-mo]
+//! author : Ben : https://github.com/ben-lin
+//! author : Chris Lam : https://github.com/hehachris
+//! author : Tan Yuanhong : https://github.com/le0tan
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var zhMo = moment.defineLocale('zh-mo', {
+ months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
+ '_'
+ ),
+ monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
+ '_'
+ ),
+ weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
+ weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
+ weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD/MM/YYYY',
+ LL: 'YYYY年M月D日',
+ LLL: 'YYYY年M月D日 HH:mm',
+ LLLL: 'YYYY年M月D日dddd HH:mm',
+ l: 'D/M/YYYY',
+ ll: 'YYYY年M月D日',
+ lll: 'YYYY年M月D日 HH:mm',
+ llll: 'YYYY年M月D日dddd HH:mm',
+ },
+ meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
+ return hour;
+ } else if (meridiem === '中午') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === '下午' || meridiem === '晚上') {
+ return hour + 12;
+ }
+ },
+ meridiem: function (hour, minute, isLower) {
+ var hm = hour * 100 + minute;
+ if (hm < 600) {
+ return '凌晨';
+ } else if (hm < 900) {
+ return '早上';
+ } else if (hm < 1130) {
+ return '上午';
+ } else if (hm < 1230) {
+ return '中午';
+ } else if (hm < 1800) {
+ return '下午';
+ } else {
+ return '晚上';
+ }
+ },
+ calendar: {
+ sameDay: '[今天] LT',
+ nextDay: '[明天] LT',
+ nextWeek: '[下]dddd LT',
+ lastDay: '[昨天] LT',
+ lastWeek: '[上]dddd LT',
+ sameElse: 'L',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'd':
+ case 'D':
+ case 'DDD':
+ return number + '日';
+ case 'M':
+ return number + '月';
+ case 'w':
+ case 'W':
+ return number + '週';
+ default:
+ return number;
+ }
+ },
+ relativeTime: {
+ future: '%s內',
+ past: '%s前',
+ s: '幾秒',
+ ss: '%d 秒',
+ m: '1 分鐘',
+ mm: '%d 分鐘',
+ h: '1 小時',
+ hh: '%d 小時',
+ d: '1 天',
+ dd: '%d 天',
+ M: '1 個月',
+ MM: '%d 個月',
+ y: '1 年',
+ yy: '%d 年',
+ },
+ });
+
+ return zhMo;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/zh-tw.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/zh-tw.js
new file mode 100644
index 000000000..4f80ecec9
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/locale/zh-tw.js
@@ -0,0 +1,110 @@
+//! moment.js locale configuration
+//! locale : Chinese (Taiwan) [zh-tw]
+//! author : Ben : https://github.com/ben-lin
+//! author : Chris Lam : https://github.com/hehachris
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var zhTw = moment.defineLocale('zh-tw', {
+ months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
+ '_'
+ ),
+ monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
+ '_'
+ ),
+ weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
+ weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
+ weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'YYYY/MM/DD',
+ LL: 'YYYY年M月D日',
+ LLL: 'YYYY年M月D日 HH:mm',
+ LLLL: 'YYYY年M月D日dddd HH:mm',
+ l: 'YYYY/M/D',
+ ll: 'YYYY年M月D日',
+ lll: 'YYYY年M月D日 HH:mm',
+ llll: 'YYYY年M月D日dddd HH:mm',
+ },
+ meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
+ meridiemHour: function (hour, meridiem) {
+ if (hour === 12) {
+ hour = 0;
+ }
+ if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
+ return hour;
+ } else if (meridiem === '中午') {
+ return hour >= 11 ? hour : hour + 12;
+ } else if (meridiem === '下午' || meridiem === '晚上') {
+ return hour + 12;
+ }
+ },
+ meridiem: function (hour, minute, isLower) {
+ var hm = hour * 100 + minute;
+ if (hm < 600) {
+ return '凌晨';
+ } else if (hm < 900) {
+ return '早上';
+ } else if (hm < 1130) {
+ return '上午';
+ } else if (hm < 1230) {
+ return '中午';
+ } else if (hm < 1800) {
+ return '下午';
+ } else {
+ return '晚上';
+ }
+ },
+ calendar: {
+ sameDay: '[今天] LT',
+ nextDay: '[明天] LT',
+ nextWeek: '[下]dddd LT',
+ lastDay: '[昨天] LT',
+ lastWeek: '[上]dddd LT',
+ sameElse: 'L',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
+ ordinal: function (number, period) {
+ switch (period) {
+ case 'd':
+ case 'D':
+ case 'DDD':
+ return number + '日';
+ case 'M':
+ return number + '月';
+ case 'w':
+ case 'W':
+ return number + '週';
+ default:
+ return number;
+ }
+ },
+ relativeTime: {
+ future: '%s後',
+ past: '%s前',
+ s: '幾秒',
+ ss: '%d 秒',
+ m: '1 分鐘',
+ mm: '%d 分鐘',
+ h: '1 小時',
+ hh: '%d 小時',
+ d: '1 天',
+ dd: '%d 天',
+ M: '1 個月',
+ MM: '%d 個月',
+ y: '1 年',
+ yy: '%d 年',
+ },
+ });
+
+ return zhTw;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/moment.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/moment.min.js
new file mode 100644
index 000000000..8b80f200c
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/moment/moment.min.js
@@ -0,0 +1,2 @@
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.moment=t()}(this,function(){"use strict";var H;function _(){return H.apply(null,arguments)}function y(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function F(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function c(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function L(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;for(var t in e)if(c(e,t))return;return 1}function g(e){return void 0===e}function w(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function V(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function G(e,t){for(var n=[],s=e.length,i=0;i>>0,s=0;sWe(e)?(r=e+1,t-We(e)):(r=e,t);return{year:r,dayOfYear:n}}function Be(e,t,n){var s,i,r=qe(e.year(),t,n),r=Math.floor((e.dayOfYear()-r-1)/7)+1;return r<1?s=r+N(i=e.year()-1,t,n):r>N(e.year(),t,n)?(s=r-N(e.year(),t,n),i=e.year()+1):(i=e.year(),s=r),{week:s,year:i}}function N(e,t,n){var s=qe(e,t,n),t=qe(e+1,t,n);return(We(e)-s+t)/7}s("w",["ww",2],"wo","week"),s("W",["WW",2],"Wo","isoWeek"),h("w",n,u),h("ww",n,t),h("W",n,u),h("WW",n,t),Oe(["w","ww","W","WW"],function(e,t,n,s){t[s.substr(0,1)]=M(e)});function Je(e,t){return e.slice(t,7).concat(e.slice(0,t))}s("d",0,"do","day"),s("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),s("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),s("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),s("e",0,0,"weekday"),s("E",0,0,"isoWeekday"),h("d",n),h("e",n),h("E",n),h("dd",function(e,t){return t.weekdaysMinRegex(e)}),h("ddd",function(e,t){return t.weekdaysShortRegex(e)}),h("dddd",function(e,t){return t.weekdaysRegex(e)}),Oe(["dd","ddd","dddd"],function(e,t,n,s){s=n._locale.weekdaysParse(e,s,n._strict);null!=s?t.d=s:p(n).invalidWeekday=e}),Oe(["d","e","E"],function(e,t,n,s){t[s]=M(e)});var Qe="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Xe="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ke="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),et=i,tt=i,nt=i;function st(){function e(e,t){return t.length-e.length}for(var t,n,s,i=[],r=[],a=[],o=[],u=0;u<7;u++)s=l([2e3,1]).day(u),t=f(this.weekdaysMin(s,"")),n=f(this.weekdaysShort(s,"")),s=f(this.weekdays(s,"")),i.push(t),r.push(n),a.push(s),o.push(t),o.push(n),o.push(s);i.sort(e),r.sort(e),a.sort(e),o.sort(e),this._weekdaysRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+i.join("|")+")","i")}function it(){return this.hours()%12||12}function rt(e,t){s(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function at(e,t){return t._meridiemParse}s("H",["HH",2],0,"hour"),s("h",["hh",2],0,it),s("k",["kk",2],0,function(){return this.hours()||24}),s("hmm",0,0,function(){return""+it.apply(this)+r(this.minutes(),2)}),s("hmmss",0,0,function(){return""+it.apply(this)+r(this.minutes(),2)+r(this.seconds(),2)}),s("Hmm",0,0,function(){return""+this.hours()+r(this.minutes(),2)}),s("Hmmss",0,0,function(){return""+this.hours()+r(this.minutes(),2)+r(this.seconds(),2)}),rt("a",!0),rt("A",!1),h("a",at),h("A",at),h("H",n,d),h("h",n,u),h("k",n,u),h("HH",n,t),h("hh",n,t),h("kk",n,t),h("hmm",me),h("hmmss",_e),h("Hmm",me),h("Hmmss",_e),v(["H","HH"],O),v(["k","kk"],function(e,t,n){e=M(e);t[O]=24===e?0:e}),v(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),v(["h","hh"],function(e,t,n){t[O]=M(e),p(n).bigHour=!0}),v("hmm",function(e,t,n){var s=e.length-2;t[O]=M(e.substr(0,s)),t[b]=M(e.substr(s)),p(n).bigHour=!0}),v("hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[O]=M(e.substr(0,s)),t[b]=M(e.substr(s,2)),t[T]=M(e.substr(i)),p(n).bigHour=!0}),v("Hmm",function(e,t,n){var s=e.length-2;t[O]=M(e.substr(0,s)),t[b]=M(e.substr(s))}),v("Hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[O]=M(e.substr(0,s)),t[b]=M(e.substr(s,2)),t[T]=M(e.substr(i))});i=Re("Hours",!0);var ot,ut={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Fe,monthsShort:Le,week:{dow:0,doy:6},weekdays:Qe,weekdaysMin:Ke,weekdaysShort:Xe,meridiemParse:/[ap]\.?m?\.?/i},W={},lt={};function dt(e){return e&&e.toLowerCase().replace("_","-")}function ht(e){for(var t,n,s,i,r=0;r=t&&function(e,t){for(var n=Math.min(e.length,t.length),s=0;s=t-1)break;t--}r++}return ot}function ct(t){var e,n;if(void 0===W[t]&&"undefined"!=typeof module&&module&&module.exports&&(n=t)&&n.match("^[^/\\\\]*$"))try{e=ot._abbr,require("./locale/"+t),ft(e)}catch(e){W[t]=null}return W[t]}function ft(e,t){return e&&((t=g(t)?P(e):mt(e,t))?ot=t:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),ot._abbr}function mt(e,t){if(null===t)return delete W[e],null;var n,s=ut;if(t.abbr=e,null!=W[e])Q("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=W[e]._config;else if(null!=t.parentLocale)if(null!=W[t.parentLocale])s=W[t.parentLocale]._config;else{if(null==(n=ct(t.parentLocale)))return lt[t.parentLocale]||(lt[t.parentLocale]=[]),lt[t.parentLocale].push({name:e,config:t}),null;s=n._config}return W[e]=new K(X(s,t)),lt[e]&<[e].forEach(function(e){mt(e.name,e.config)}),ft(e),W[e]}function P(e){var t;if(!(e=e&&e._locale&&e._locale._abbr?e._locale._abbr:e))return ot;if(!y(e)){if(t=ct(e))return t;e=[e]}return ht(e)}function _t(e){var t=e._a;return t&&-2===p(e).overflow&&(t=t[Y]<0||11He(t[D],t[Y])?S:t[O]<0||24N(r,u,l)?p(s)._overflowWeeks=!0:null!=d?p(s)._overflowWeekday=!0:(h=$e(r,a,o,u,l),s._a[D]=h.year,s._dayOfYear=h.dayOfYear)),null!=e._dayOfYear&&(i=bt(e._a[D],n[D]),(e._dayOfYear>We(i)||0===e._dayOfYear)&&(p(e)._overflowDayOfYear=!0),d=ze(i,0,e._dayOfYear),e._a[Y]=d.getUTCMonth(),e._a[S]=d.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=c[t]=n[t];for(;t<7;t++)e._a[t]=c[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[O]&&0===e._a[b]&&0===e._a[T]&&0===e._a[Te]&&(e._nextDay=!0,e._a[O]=0),e._d=(e._useUTC?ze:Ze).apply(null,c),r=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[O]=24),e._w&&void 0!==e._w.d&&e._w.d!==r&&(p(e).weekdayMismatch=!0)}}function xt(e){if(e._f===_.ISO_8601)Yt(e);else if(e._f===_.RFC_2822)Ot(e);else{e._a=[],p(e).empty=!0;for(var t,n,s,i,r,a=""+e._i,o=a.length,u=0,l=ae(e._f,e._locale).match(te)||[],d=l.length,h=0;he.valueOf():e.valueOf()"}),u.toJSON=function(){return this.isValid()?this.toISOString():null},u.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},u.unix=function(){return Math.floor(this.valueOf()/1e3)},u.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},u.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},u.eraName=function(){for(var e,t=this.localeData().eras(),n=0,s=t.length;nthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},u.isLocal=function(){return!!this.isValid()&&!this._isUTC},u.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},u.isUtc=At,u.isUTC=At,u.zoneAbbr=function(){return this._isUTC?"UTC":""},u.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},u.dates=e("dates accessor is deprecated. Use date instead.",ge),u.months=e("months accessor is deprecated. Use month instead",Ie),u.years=e("years accessor is deprecated. Use year instead",Pe),u.zone=e("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?(this.utcOffset(e="string"!=typeof e?-e:e,t),this):-this.utcOffset()}),u.isDSTShifted=e("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){var e,t;return g(this._isDSTShifted)&&(q(e={},this),(e=Nt(e))._a?(t=(e._isUTC?l:R)(e._a),this._isDSTShifted=this.isValid()&&0http://www.d-project.com/
+ * @see http://jeromeetienne.github.com/jquery-qrcode/
+ */
+var QRCode;
+
+(function () {
+ //---------------------------------------------------------------------
+ // QRCode for JavaScript
+ //
+ // Copyright (c) 2009 Kazuhiko Arase
+ //
+ // URL: http://www.d-project.com/
+ //
+ // Licensed under the MIT license:
+ // http://www.opensource.org/licenses/mit-license.php
+ //
+ // The word "QR Code" is registered trademark of
+ // DENSO WAVE INCORPORATED
+ // http://www.denso-wave.com/qrcode/faqpatent-e.html
+ //
+ //---------------------------------------------------------------------
+ function QR8bitByte(data) {
+ this.mode = QRMode.MODE_8BIT_BYTE;
+ this.data = data;
+ this.parsedData = [];
+
+ // Added to support UTF-8 Characters
+ for (var i = 0, l = this.data.length; i < l; i++) {
+ var byteArray = [];
+ var code = this.data.charCodeAt(i);
+
+ if (code > 0x10000) {
+ byteArray[0] = 0xF0 | ((code & 0x1C0000) >>> 18);
+ byteArray[1] = 0x80 | ((code & 0x3F000) >>> 12);
+ byteArray[2] = 0x80 | ((code & 0xFC0) >>> 6);
+ byteArray[3] = 0x80 | (code & 0x3F);
+ } else if (code > 0x800) {
+ byteArray[0] = 0xE0 | ((code & 0xF000) >>> 12);
+ byteArray[1] = 0x80 | ((code & 0xFC0) >>> 6);
+ byteArray[2] = 0x80 | (code & 0x3F);
+ } else if (code > 0x80) {
+ byteArray[0] = 0xC0 | ((code & 0x7C0) >>> 6);
+ byteArray[1] = 0x80 | (code & 0x3F);
+ } else {
+ byteArray[0] = code;
+ }
+
+ this.parsedData.push(byteArray);
+ }
+
+ this.parsedData = Array.prototype.concat.apply([], this.parsedData);
+
+ if (this.parsedData.length != this.data.length) {
+ this.parsedData.unshift(191);
+ this.parsedData.unshift(187);
+ this.parsedData.unshift(239);
+ }
+ }
+
+ QR8bitByte.prototype = {
+ getLength: function (buffer) {
+ return this.parsedData.length;
+ },
+ write: function (buffer) {
+ for (var i = 0, l = this.parsedData.length; i < l; i++) {
+ buffer.put(this.parsedData[i], 8);
+ }
+ }
+ };
+
+ function QRCodeModel(typeNumber, errorCorrectLevel) {
+ this.typeNumber = typeNumber;
+ this.errorCorrectLevel = errorCorrectLevel;
+ this.modules = null;
+ this.moduleCount = 0;
+ this.dataCache = null;
+ this.dataList = [];
+ }
+
+ QRCodeModel.prototype={addData:function(data){var newData=new QR8bitByte(data);this.dataList.push(newData);this.dataCache=null;},isDark:function(row,col){if(row<0||this.moduleCount<=row||col<0||this.moduleCount<=col){throw new Error(row+","+col);}
+ return this.modules[row][col];},getModuleCount:function(){return this.moduleCount;},make:function(){this.makeImpl(false,this.getBestMaskPattern());},makeImpl:function(test,maskPattern){this.moduleCount=this.typeNumber*4+17;this.modules=new Array(this.moduleCount);for(var row=0;row=7){this.setupTypeNumber(test);}
+ if(this.dataCache==null){this.dataCache=QRCodeModel.createData(this.typeNumber,this.errorCorrectLevel,this.dataList);}
+ this.mapData(this.dataCache,maskPattern);},setupPositionProbePattern:function(row,col){for(var r=-1;r<=7;r++){if(row+r<=-1||this.moduleCount<=row+r)continue;for(var c=-1;c<=7;c++){if(col+c<=-1||this.moduleCount<=col+c)continue;if((0<=r&&r<=6&&(c==0||c==6))||(0<=c&&c<=6&&(r==0||r==6))||(2<=r&&r<=4&&2<=c&&c<=4)){this.modules[row+r][col+c]=true;}else{this.modules[row+r][col+c]=false;}}}},getBestMaskPattern:function(){var minLostPoint=0;var pattern=0;for(var i=0;i<8;i++){this.makeImpl(true,i);var lostPoint=QRUtil.getLostPoint(this);if(i==0||minLostPoint>lostPoint){minLostPoint=lostPoint;pattern=i;}}
+ return pattern;},createMovieClip:function(target_mc,instance_name,depth){var qr_mc=target_mc.createEmptyMovieClip(instance_name,depth);var cs=1;this.make();for(var row=0;row>i)&1)==1);this.modules[Math.floor(i/3)][i%3+this.moduleCount-8-3]=mod;}
+ for(var i=0;i<18;i++){var mod=(!test&&((bits>>i)&1)==1);this.modules[i%3+this.moduleCount-8-3][Math.floor(i/3)]=mod;}},setupTypeInfo:function(test,maskPattern){var data=(this.errorCorrectLevel<<3)|maskPattern;var bits=QRUtil.getBCHTypeInfo(data);for(var i=0;i<15;i++){var mod=(!test&&((bits>>i)&1)==1);if(i<6){this.modules[i][8]=mod;}else if(i<8){this.modules[i+1][8]=mod;}else{this.modules[this.moduleCount-15+i][8]=mod;}}
+ for(var i=0;i<15;i++){var mod=(!test&&((bits>>i)&1)==1);if(i<8){this.modules[8][this.moduleCount-i-1]=mod;}else if(i<9){this.modules[8][15-i-1+1]=mod;}else{this.modules[8][15-i-1]=mod;}}
+ this.modules[this.moduleCount-8][8]=(!test);},mapData:function(data,maskPattern){var inc=-1;var row=this.moduleCount-1;var bitIndex=7;var byteIndex=0;for(var col=this.moduleCount-1;col>0;col-=2){if(col==6)col--;while(true){for(var c=0;c<2;c++){if(this.modules[row][col-c]==null){var dark=false;if(byteIndex>>bitIndex)&1)==1);}
+ var mask=QRUtil.getMask(maskPattern,row,col-c);if(mask){dark=!dark;}
+ this.modules[row][col-c]=dark;bitIndex--;if(bitIndex==-1){byteIndex++;bitIndex=7;}}}
+ row+=inc;if(row<0||this.moduleCount<=row){row-=inc;inc=-inc;break;}}}}};QRCodeModel.PAD0=0xEC;QRCodeModel.PAD1=0x11;QRCodeModel.createData=function(typeNumber,errorCorrectLevel,dataList){var rsBlocks=QRRSBlock.getRSBlocks(typeNumber,errorCorrectLevel);var buffer=new QRBitBuffer();for(var i=0;itotalDataCount*8){throw new Error("code length overflow. ("
+ +buffer.getLengthInBits()
+ +">"
+ +totalDataCount*8
+ +")");}
+ if(buffer.getLengthInBits()+4<=totalDataCount*8){buffer.put(0,4);}
+ while(buffer.getLengthInBits()%8!=0){buffer.putBit(false);}
+ while(true){if(buffer.getLengthInBits()>=totalDataCount*8){break;}
+ buffer.put(QRCodeModel.PAD0,8);if(buffer.getLengthInBits()>=totalDataCount*8){break;}
+ buffer.put(QRCodeModel.PAD1,8);}
+ return QRCodeModel.createBytes(buffer,rsBlocks);};QRCodeModel.createBytes=function(buffer,rsBlocks){var offset=0;var maxDcCount=0;var maxEcCount=0;var dcdata=new Array(rsBlocks.length);var ecdata=new Array(rsBlocks.length);for(var r=0;r=0)?modPoly.get(modIndex):0;}}
+ var totalCodeCount=0;for(var i=0;i=0){d^=(QRUtil.G15<<(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G15)));}
+ return((data<<10)|d)^QRUtil.G15_MASK;},getBCHTypeNumber:function(data){var d=data<<12;while(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G18)>=0){d^=(QRUtil.G18<<(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G18)));}
+ return(data<<12)|d;},getBCHDigit:function(data){var digit=0;while(data!=0){digit++;data>>>=1;}
+ return digit;},getPatternPosition:function(typeNumber){return QRUtil.PATTERN_POSITION_TABLE[typeNumber-1];},getMask:function(maskPattern,i,j){switch(maskPattern){case QRMaskPattern.PATTERN000:return(i+j)%2==0;case QRMaskPattern.PATTERN001:return i%2==0;case QRMaskPattern.PATTERN010:return j%3==0;case QRMaskPattern.PATTERN011:return(i+j)%3==0;case QRMaskPattern.PATTERN100:return(Math.floor(i/2)+Math.floor(j/3))%2==0;case QRMaskPattern.PATTERN101:return(i*j)%2+(i*j)%3==0;case QRMaskPattern.PATTERN110:return((i*j)%2+(i*j)%3)%2==0;case QRMaskPattern.PATTERN111:return((i*j)%3+(i+j)%2)%2==0;default:throw new Error("bad maskPattern:"+maskPattern);}},getErrorCorrectPolynomial:function(errorCorrectLength){var a=new QRPolynomial([1],0);for(var i=0;i5){lostPoint+=(3+sameCount-5);}}}
+ for(var row=0;row=256){n-=255;}
+ return QRMath.EXP_TABLE[n];},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)};for(var i=0;i<8;i++){QRMath.EXP_TABLE[i]=1<>>(7-index%8))&1)==1;},put:function(num,length){for(var i=0;i>>(length-i-1))&1)==1);}},getLengthInBits:function(){return this.length;},putBit:function(bit){var bufIndex=Math.floor(this.length/8);if(this.buffer.length<=bufIndex){this.buffer.push(0);}
+ if(bit){this.buffer[bufIndex]|=(0x80>>>(this.length%8));}
+ this.length++;}};var QRCodeLimitLength=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]];
+
+ function _isSupportCanvas() {
+ return typeof CanvasRenderingContext2D != "undefined";
+ }
+
+ // android 2.x doesn't support Data-URI spec
+ function _getAndroid() {
+ var android = false;
+ var sAgent = navigator.userAgent;
+
+ if (/android/i.test(sAgent)) { // android
+ android = true;
+ var aMat = sAgent.toString().match(/android ([0-9]\.[0-9])/i);
+
+ if (aMat && aMat[1]) {
+ android = parseFloat(aMat[1]);
+ }
+ }
+
+ return android;
+ }
+
+ var svgDrawer = (function() {
+
+ var Drawing = function (el, htOption) {
+ this._el = el;
+ this._htOption = htOption;
+ };
+
+ Drawing.prototype.draw = function (oQRCode) {
+ var _htOption = this._htOption;
+ var _el = this._el;
+ var nCount = oQRCode.getModuleCount();
+ var nWidth = Math.floor(_htOption.width / nCount);
+ var nHeight = Math.floor(_htOption.height / nCount);
+
+ this.clear();
+
+ function makeSVG(tag, attrs) {
+ var el = document.createElementNS('http://www.w3.org/2000/svg', tag);
+ for (var k in attrs)
+ if (attrs.hasOwnProperty(k)) el.setAttribute(k, attrs[k]);
+ return el;
+ }
+
+ var svg = makeSVG("svg" , {'viewBox': '0 0 ' + String(nCount) + " " + String(nCount), 'width': '100%', 'height': '100%', 'fill': _htOption.colorLight});
+ svg.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:xlink", "http://www.w3.org/1999/xlink");
+ _el.appendChild(svg);
+
+ svg.appendChild(makeSVG("rect", {"fill": _htOption.colorLight, "width": "100%", "height": "100%"}));
+ svg.appendChild(makeSVG("rect", {"fill": _htOption.colorDark, "width": "1", "height": "1", "id": "template"}));
+
+ for (var row = 0; row < nCount; row++) {
+ for (var col = 0; col < nCount; col++) {
+ if (oQRCode.isDark(row, col)) {
+ var child = makeSVG("use", {"x": String(col), "y": String(row)});
+ child.setAttributeNS("http://www.w3.org/1999/xlink", "href", "#template")
+ svg.appendChild(child);
+ }
+ }
+ }
+ };
+ Drawing.prototype.clear = function () {
+ while (this._el.hasChildNodes())
+ this._el.removeChild(this._el.lastChild);
+ };
+ return Drawing;
+ })();
+
+ var useSVG = document.documentElement.tagName.toLowerCase() === "svg";
+
+ // Drawing in DOM by using Table tag
+ var Drawing = useSVG ? svgDrawer : !_isSupportCanvas() ? (function () {
+ var Drawing = function (el, htOption) {
+ this._el = el;
+ this._htOption = htOption;
+ };
+
+ /**
+ * Draw the QRCode
+ *
+ * @param {QRCode} oQRCode
+ */
+ Drawing.prototype.draw = function (oQRCode) {
+ var _htOption = this._htOption;
+ var _el = this._el;
+ var nCount = oQRCode.getModuleCount();
+ var nWidth = Math.floor(_htOption.width / nCount);
+ var nHeight = Math.floor(_htOption.height / nCount);
+ var aHTML = [''];
+
+ for (var row = 0; row < nCount; row++) {
+ aHTML.push('');
+
+ for (var col = 0; col < nCount; col++) {
+ aHTML.push(' ');
+ }
+
+ aHTML.push(' ');
+ }
+
+ aHTML.push('
');
+ _el.innerHTML = aHTML.join('');
+
+ // Fix the margin values as real size.
+ var elTable = _el.childNodes[0];
+ var nLeftMarginTable = (_htOption.width - elTable.offsetWidth) / 2;
+ var nTopMarginTable = (_htOption.height - elTable.offsetHeight) / 2;
+
+ if (nLeftMarginTable > 0 && nTopMarginTable > 0) {
+ elTable.style.margin = nTopMarginTable + "px " + nLeftMarginTable + "px";
+ }
+ };
+
+ /**
+ * Clear the QRCode
+ */
+ Drawing.prototype.clear = function () {
+ this._el.innerHTML = '';
+ };
+
+ return Drawing;
+ })() : (function () { // Drawing in Canvas
+ function _onMakeImage() {
+ this._elImage.src = this._elCanvas.toDataURL("image/png");
+ this._elImage.style.display = "block";
+ this._elCanvas.style.display = "none";
+ }
+
+ // Android 2.1 bug workaround
+ // http://code.google.com/p/android/issues/detail?id=5141
+ if (this._android && this._android <= 2.1) {
+ var factor = 1 / window.devicePixelRatio;
+ var drawImage = CanvasRenderingContext2D.prototype.drawImage;
+ CanvasRenderingContext2D.prototype.drawImage = function (image, sx, sy, sw, sh, dx, dy, dw, dh) {
+ if (("nodeName" in image) && /img/i.test(image.nodeName)) {
+ for (var i = arguments.length - 1; i >= 1; i--) {
+ arguments[i] = arguments[i] * factor;
+ }
+ } else if (typeof dw == "undefined") {
+ arguments[1] *= factor;
+ arguments[2] *= factor;
+ arguments[3] *= factor;
+ arguments[4] *= factor;
+ }
+
+ drawImage.apply(this, arguments);
+ };
+ }
+
+ /**
+ * Check whether the user's browser supports Data URI or not
+ *
+ * @private
+ * @param {Function} fSuccess Occurs if it supports Data URI
+ * @param {Function} fFail Occurs if it doesn't support Data URI
+ */
+ function _safeSetDataURI(fSuccess, fFail) {
+ var self = this;
+ self._fFail = fFail;
+ self._fSuccess = fSuccess;
+
+ // Check it just once
+ if (self._bSupportDataURI === null) {
+ var el = document.createElement("img");
+ var fOnError = function() {
+ self._bSupportDataURI = false;
+
+ if (self._fFail) {
+ self._fFail.call(self);
+ }
+ };
+ var fOnSuccess = function() {
+ self._bSupportDataURI = true;
+
+ if (self._fSuccess) {
+ self._fSuccess.call(self);
+ }
+ };
+
+ el.onabort = fOnError;
+ el.onerror = fOnError;
+ el.onload = fOnSuccess;
+ el.src = "data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="; // the Image contains 1px data.
+ return;
+ } else if (self._bSupportDataURI === true && self._fSuccess) {
+ self._fSuccess.call(self);
+ } else if (self._bSupportDataURI === false && self._fFail) {
+ self._fFail.call(self);
+ }
+ };
+
+ /**
+ * Drawing QRCode by using canvas
+ *
+ * @constructor
+ * @param {HTMLElement} el
+ * @param {Object} htOption QRCode Options
+ */
+ var Drawing = function (el, htOption) {
+ this._bIsPainted = false;
+ this._android = _getAndroid();
+
+ this._htOption = htOption;
+ this._elCanvas = document.createElement("canvas");
+ this._elCanvas.width = htOption.width;
+ this._elCanvas.height = htOption.height;
+ el.appendChild(this._elCanvas);
+ this._el = el;
+ this._oContext = this._elCanvas.getContext("2d");
+ this._bIsPainted = false;
+ this._elImage = document.createElement("img");
+ this._elImage.alt = "Scan me!";
+ this._elImage.style.display = "none";
+ this._el.appendChild(this._elImage);
+ this._bSupportDataURI = null;
+ };
+
+ /**
+ * Draw the QRCode
+ *
+ * @param {QRCode} oQRCode
+ */
+ Drawing.prototype.draw = function (oQRCode) {
+ var _elImage = this._elImage;
+ var _oContext = this._oContext;
+ var _htOption = this._htOption;
+
+ var nCount = oQRCode.getModuleCount();
+ var nWidth = _htOption.width / nCount;
+ var nHeight = _htOption.height / nCount;
+ var nRoundedWidth = Math.round(nWidth);
+ var nRoundedHeight = Math.round(nHeight);
+
+ _elImage.style.display = "none";
+ this.clear();
+
+ for (var row = 0; row < nCount; row++) {
+ for (var col = 0; col < nCount; col++) {
+ var bIsDark = oQRCode.isDark(row, col);
+ var nLeft = col * nWidth;
+ var nTop = row * nHeight;
+ _oContext.strokeStyle = bIsDark ? _htOption.colorDark : _htOption.colorLight;
+ _oContext.lineWidth = 1;
+ _oContext.fillStyle = bIsDark ? _htOption.colorDark : _htOption.colorLight;
+ _oContext.fillRect(nLeft, nTop, nWidth, nHeight);
+
+ // 안티 앨리어싱 방지 처리
+ _oContext.strokeRect(
+ Math.floor(nLeft) + 0.5,
+ Math.floor(nTop) + 0.5,
+ nRoundedWidth,
+ nRoundedHeight
+ );
+
+ _oContext.strokeRect(
+ Math.ceil(nLeft) - 0.5,
+ Math.ceil(nTop) - 0.5,
+ nRoundedWidth,
+ nRoundedHeight
+ );
+ }
+ }
+
+ this._bIsPainted = true;
+ };
+
+ /**
+ * Make the image from Canvas if the browser supports Data URI.
+ */
+ Drawing.prototype.makeImage = function () {
+ if (this._bIsPainted) {
+ _safeSetDataURI.call(this, _onMakeImage);
+ }
+ };
+
+ /**
+ * Return whether the QRCode is painted or not
+ *
+ * @return {Boolean}
+ */
+ Drawing.prototype.isPainted = function () {
+ return this._bIsPainted;
+ };
+
+ /**
+ * Clear the QRCode
+ */
+ Drawing.prototype.clear = function () {
+ this._oContext.clearRect(0, 0, this._elCanvas.width, this._elCanvas.height);
+ this._bIsPainted = false;
+ };
+
+ /**
+ * @private
+ * @param {Number} nNumber
+ */
+ Drawing.prototype.round = function (nNumber) {
+ if (!nNumber) {
+ return nNumber;
+ }
+
+ return Math.floor(nNumber * 1000) / 1000;
+ };
+
+ return Drawing;
+ })();
+
+ /**
+ * Get the type by string length
+ *
+ * @private
+ * @param {String} sText
+ * @param {Number} nCorrectLevel
+ * @return {Number} type
+ */
+ function _getTypeNumber(sText, nCorrectLevel) {
+ var nType = 1;
+ var length = _getUTF8Length(sText);
+
+ for (var i = 0, len = QRCodeLimitLength.length; i <= len; i++) {
+ var nLimit = 0;
+
+ switch (nCorrectLevel) {
+ case QRErrorCorrectLevel.L :
+ nLimit = QRCodeLimitLength[i][0];
+ break;
+ case QRErrorCorrectLevel.M :
+ nLimit = QRCodeLimitLength[i][1];
+ break;
+ case QRErrorCorrectLevel.Q :
+ nLimit = QRCodeLimitLength[i][2];
+ break;
+ case QRErrorCorrectLevel.H :
+ nLimit = QRCodeLimitLength[i][3];
+ break;
+ }
+
+ if (length <= nLimit) {
+ break;
+ } else {
+ nType++;
+ }
+ }
+
+ if (nType > QRCodeLimitLength.length) {
+ throw new Error("Too long data");
+ }
+
+ return nType;
+ }
+
+ function _getUTF8Length(sText) {
+ var replacedText = encodeURI(sText).toString().replace(/\%[0-9a-fA-F]{2}/g, 'a');
+ return replacedText.length + (replacedText.length != sText ? 3 : 0);
+ }
+
+ /**
+ * @class QRCode
+ * @constructor
+ * @example
+ * new QRCode(document.getElementById("test"), "http://jindo.dev.naver.com/collie");
+ *
+ * @example
+ * var oQRCode = new QRCode("test", {
+ * text : "http://naver.com",
+ * width : 128,
+ * height : 128
+ * });
+ *
+ * oQRCode.clear(); // Clear the QRCode.
+ * oQRCode.makeCode("http://map.naver.com"); // Re-create the QRCode.
+ *
+ * @param {HTMLElement|String} el target element or 'id' attribute of element.
+ * @param {Object|String} vOption
+ * @param {String} vOption.text QRCode link data
+ * @param {Number} [vOption.width=256]
+ * @param {Number} [vOption.height=256]
+ * @param {String} [vOption.colorDark="#000000"]
+ * @param {String} [vOption.colorLight="#ffffff"]
+ * @param {QRCode.CorrectLevel} [vOption.correctLevel=QRCode.CorrectLevel.H] [L|M|Q|H]
+ */
+ QRCode = function (el, vOption) {
+ this._htOption = {
+ width : 256,
+ height : 256,
+ typeNumber : 4,
+ colorDark : "#000000",
+ colorLight : "#ffffff",
+ correctLevel : QRErrorCorrectLevel.H
+ };
+
+ if (typeof vOption === 'string') {
+ vOption = {
+ text : vOption
+ };
+ }
+
+ // Overwrites options
+ if (vOption) {
+ for (var i in vOption) {
+ this._htOption[i] = vOption[i];
+ }
+ }
+
+ if (typeof el == "string") {
+ el = document.getElementById(el);
+ }
+
+ if (this._htOption.useSVG) {
+ Drawing = svgDrawer;
+ }
+
+ this._android = _getAndroid();
+ this._el = el;
+ this._oQRCode = null;
+ this._oDrawing = new Drawing(this._el, this._htOption);
+
+ if (this._htOption.text) {
+ this.makeCode(this._htOption.text);
+ }
+ };
+
+ /**
+ * Make the QRCode
+ *
+ * @param {String} sText link data
+ */
+ QRCode.prototype.makeCode = function (sText) {
+ this._oQRCode = new QRCodeModel(_getTypeNumber(sText, this._htOption.correctLevel), this._htOption.correctLevel);
+ this._oQRCode.addData(sText);
+ this._oQRCode.make();
+ this._el.title = sText;
+ this._oDrawing.draw(this._oQRCode);
+ this.makeImage();
+ };
+
+ /**
+ * Make the Image from Canvas element
+ * - It occurs automatically
+ * - Android below 3 doesn't support Data-URI spec.
+ *
+ * @private
+ */
+ QRCode.prototype.makeImage = function () {
+ if (typeof this._oDrawing.makeImage == "function" && (!this._android || this._android >= 3)) {
+ this._oDrawing.makeImage();
+ }
+ };
+
+ /**
+ * Clear the QRCode
+ */
+ QRCode.prototype.clear = function () {
+ this._oDrawing.clear();
+ };
+
+ /**
+ * @name QRCode.CorrectLevel
+ */
+ QRCode.CorrectLevel = QRErrorCorrectLevel;
+})();
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/qrcode/qrcode.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/qrcode/qrcode.min.js
new file mode 100644
index 000000000..993e88f39
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/qrcode/qrcode.min.js
@@ -0,0 +1 @@
+var QRCode;!function(){function a(a){this.mode=c.MODE_8BIT_BYTE,this.data=a,this.parsedData=[];for(var b=[],d=0,e=this.data.length;e>d;d++){var f=this.data.charCodeAt(d);f>65536?(b[0]=240|(1835008&f)>>>18,b[1]=128|(258048&f)>>>12,b[2]=128|(4032&f)>>>6,b[3]=128|63&f):f>2048?(b[0]=224|(61440&f)>>>12,b[1]=128|(4032&f)>>>6,b[2]=128|63&f):f>128?(b[0]=192|(1984&f)>>>6,b[1]=128|63&f):b[0]=f,this.parsedData=this.parsedData.concat(b)}this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}function b(a,b){this.typeNumber=a,this.errorCorrectLevel=b,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}function i(a,b){if(void 0==a.length)throw new Error(a.length+"/"+b);for(var c=0;c=f;f++){var h=0;switch(b){case d.L:h=l[f][0];break;case d.M:h=l[f][1];break;case d.Q:h=l[f][2];break;case d.H:h=l[f][3]}if(h>=e)break;c++}if(c>l.length)throw new Error("Too long data");return c}function s(a){var b=encodeURI(a).toString().replace(/\%[0-9a-fA-F]{2}/g,"a");return b.length+(b.length!=a?3:0)}a.prototype={getLength:function(){return this.parsedData.length},write:function(a){for(var b=0,c=this.parsedData.length;c>b;b++)a.put(this.parsedData[b],8)}},b.prototype={addData:function(b){var c=new a(b);this.dataList.push(c),this.dataCache=null},isDark:function(a,b){if(0>a||this.moduleCount<=a||0>b||this.moduleCount<=b)throw new Error(a+","+b);return this.modules[a][b]},getModuleCount:function(){return this.moduleCount},make:function(){this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(a,c){this.moduleCount=4*this.typeNumber+17,this.modules=new Array(this.moduleCount);for(var d=0;d=7&&this.setupTypeNumber(a),null==this.dataCache&&(this.dataCache=b.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,c)},setupPositionProbePattern:function(a,b){for(var c=-1;7>=c;c++)if(!(-1>=a+c||this.moduleCount<=a+c))for(var d=-1;7>=d;d++)-1>=b+d||this.moduleCount<=b+d||(this.modules[a+c][b+d]=c>=0&&6>=c&&(0==d||6==d)||d>=0&&6>=d&&(0==c||6==c)||c>=2&&4>=c&&d>=2&&4>=d?!0:!1)},getBestMaskPattern:function(){for(var a=0,b=0,c=0;8>c;c++){this.makeImpl(!0,c);var d=f.getLostPoint(this);(0==c||a>d)&&(a=d,b=c)}return b},createMovieClip:function(a,b,c){var d=a.createEmptyMovieClip(b,c),e=1;this.make();for(var f=0;f=g;g++)for(var h=-2;2>=h;h++)this.modules[d+g][e+h]=-2==g||2==g||-2==h||2==h||0==g&&0==h?!0:!1}},setupTypeNumber:function(a){for(var b=f.getBCHTypeNumber(this.typeNumber),c=0;18>c;c++){var d=!a&&1==(1&b>>c);this.modules[Math.floor(c/3)][c%3+this.moduleCount-8-3]=d}for(var c=0;18>c;c++){var d=!a&&1==(1&b>>c);this.modules[c%3+this.moduleCount-8-3][Math.floor(c/3)]=d}},setupTypeInfo:function(a,b){for(var c=this.errorCorrectLevel<<3|b,d=f.getBCHTypeInfo(c),e=0;15>e;e++){var g=!a&&1==(1&d>>e);6>e?this.modules[e][8]=g:8>e?this.modules[e+1][8]=g:this.modules[this.moduleCount-15+e][8]=g}for(var e=0;15>e;e++){var g=!a&&1==(1&d>>e);8>e?this.modules[8][this.moduleCount-e-1]=g:9>e?this.modules[8][15-e-1+1]=g:this.modules[8][15-e-1]=g}this.modules[this.moduleCount-8][8]=!a},mapData:function(a,b){for(var c=-1,d=this.moduleCount-1,e=7,g=0,h=this.moduleCount-1;h>0;h-=2)for(6==h&&h--;;){for(var i=0;2>i;i++)if(null==this.modules[d][h-i]){var j=!1;g>>e));var k=f.getMask(b,d,h-i);k&&(j=!j),this.modules[d][h-i]=j,e--,-1==e&&(g++,e=7)}if(d+=c,0>d||this.moduleCount<=d){d-=c,c=-c;break}}}},b.PAD0=236,b.PAD1=17,b.createData=function(a,c,d){for(var e=j.getRSBlocks(a,c),g=new k,h=0;h8*l)throw new Error("code length overflow. ("+g.getLengthInBits()+">"+8*l+")");for(g.getLengthInBits()+4<=8*l&&g.put(0,4);0!=g.getLengthInBits()%8;)g.putBit(!1);for(;;){if(g.getLengthInBits()>=8*l)break;if(g.put(b.PAD0,8),g.getLengthInBits()>=8*l)break;g.put(b.PAD1,8)}return b.createBytes(g,e)},b.createBytes=function(a,b){for(var c=0,d=0,e=0,g=new Array(b.length),h=new Array(b.length),j=0;j=0?p.get(q):0}}for(var r=0,m=0;mm;m++)for(var j=0;jm;m++)for(var j=0;j=0;)b^=f.G15<=0;)b^=f.G18<>>=1;return b},getPatternPosition:function(a){return f.PATTERN_POSITION_TABLE[a-1]},getMask:function(a,b,c){switch(a){case e.PATTERN000:return 0==(b+c)%2;case e.PATTERN001:return 0==b%2;case e.PATTERN010:return 0==c%3;case e.PATTERN011:return 0==(b+c)%3;case e.PATTERN100:return 0==(Math.floor(b/2)+Math.floor(c/3))%2;case e.PATTERN101:return 0==b*c%2+b*c%3;case e.PATTERN110:return 0==(b*c%2+b*c%3)%2;case e.PATTERN111:return 0==(b*c%3+(b+c)%2)%2;default:throw new Error("bad maskPattern:"+a)}},getErrorCorrectPolynomial:function(a){for(var b=new i([1],0),c=0;a>c;c++)b=b.multiply(new i([1,g.gexp(c)],0));return b},getLengthInBits:function(a,b){if(b>=1&&10>b)switch(a){case c.MODE_NUMBER:return 10;case c.MODE_ALPHA_NUM:return 9;case c.MODE_8BIT_BYTE:return 8;case c.MODE_KANJI:return 8;default:throw new Error("mode:"+a)}else if(27>b)switch(a){case c.MODE_NUMBER:return 12;case c.MODE_ALPHA_NUM:return 11;case c.MODE_8BIT_BYTE:return 16;case c.MODE_KANJI:return 10;default:throw new Error("mode:"+a)}else{if(!(41>b))throw new Error("type:"+b);switch(a){case c.MODE_NUMBER:return 14;case c.MODE_ALPHA_NUM:return 13;case c.MODE_8BIT_BYTE:return 16;case c.MODE_KANJI:return 12;default:throw new Error("mode:"+a)}}},getLostPoint:function(a){for(var b=a.getModuleCount(),c=0,d=0;b>d;d++)for(var e=0;b>e;e++){for(var f=0,g=a.isDark(d,e),h=-1;1>=h;h++)if(!(0>d+h||d+h>=b))for(var i=-1;1>=i;i++)0>e+i||e+i>=b||(0!=h||0!=i)&&g==a.isDark(d+h,e+i)&&f++;f>5&&(c+=3+f-5)}for(var d=0;b-1>d;d++)for(var e=0;b-1>e;e++){var j=0;a.isDark(d,e)&&j++,a.isDark(d+1,e)&&j++,a.isDark(d,e+1)&&j++,a.isDark(d+1,e+1)&&j++,(0==j||4==j)&&(c+=3)}for(var d=0;b>d;d++)for(var e=0;b-6>e;e++)a.isDark(d,e)&&!a.isDark(d,e+1)&&a.isDark(d,e+2)&&a.isDark(d,e+3)&&a.isDark(d,e+4)&&!a.isDark(d,e+5)&&a.isDark(d,e+6)&&(c+=40);for(var e=0;b>e;e++)for(var d=0;b-6>d;d++)a.isDark(d,e)&&!a.isDark(d+1,e)&&a.isDark(d+2,e)&&a.isDark(d+3,e)&&a.isDark(d+4,e)&&!a.isDark(d+5,e)&&a.isDark(d+6,e)&&(c+=40);for(var k=0,e=0;b>e;e++)for(var d=0;b>d;d++)a.isDark(d,e)&&k++;var l=Math.abs(100*k/b/b-50)/5;return c+=10*l}},g={glog:function(a){if(1>a)throw new Error("glog("+a+")");return g.LOG_TABLE[a]},gexp:function(a){for(;0>a;)a+=255;for(;a>=256;)a-=255;return g.EXP_TABLE[a]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},h=0;8>h;h++)g.EXP_TABLE[h]=1<h;h++)g.EXP_TABLE[h]=g.EXP_TABLE[h-4]^g.EXP_TABLE[h-5]^g.EXP_TABLE[h-6]^g.EXP_TABLE[h-8];for(var h=0;255>h;h++)g.LOG_TABLE[g.EXP_TABLE[h]]=h;i.prototype={get:function(a){return this.num[a]},getLength:function(){return this.num.length},multiply:function(a){for(var b=new Array(this.getLength()+a.getLength()-1),c=0;cf;f++)for(var g=c[3*f+0],h=c[3*f+1],i=c[3*f+2],k=0;g>k;k++)e.push(new j(h,i));return e},j.getRsBlockTable=function(a,b){switch(b){case d.L:return j.RS_BLOCK_TABLE[4*(a-1)+0];case d.M:return j.RS_BLOCK_TABLE[4*(a-1)+1];case d.Q:return j.RS_BLOCK_TABLE[4*(a-1)+2];case d.H:return j.RS_BLOCK_TABLE[4*(a-1)+3];default:return void 0}},k.prototype={get:function(a){var b=Math.floor(a/8);return 1==(1&this.buffer[b]>>>7-a%8)},put:function(a,b){for(var c=0;b>c;c++)this.putBit(1==(1&a>>>b-c-1))},getLengthInBits:function(){return this.length},putBit:function(a){var b=Math.floor(this.length/8);this.buffer.length<=b&&this.buffer.push(0),a&&(this.buffer[b]|=128>>>this.length%8),this.length++}};var l=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]],o=function(){var a=function(a,b){this._el=a,this._htOption=b};return a.prototype.draw=function(a){function g(a,b){var c=document.createElementNS("http://www.w3.org/2000/svg",a);for(var d in b)b.hasOwnProperty(d)&&c.setAttribute(d,b[d]);return c}var b=this._htOption,c=this._el,d=a.getModuleCount();Math.floor(b.width/d),Math.floor(b.height/d),this.clear();var h=g("svg",{viewBox:"0 0 "+String(d)+" "+String(d),width:"100%",height:"100%",fill:b.colorLight});h.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),c.appendChild(h),h.appendChild(g("rect",{fill:b.colorDark,width:"1",height:"1",id:"template"}));for(var i=0;d>i;i++)for(var j=0;d>j;j++)if(a.isDark(i,j)){var k=g("use",{x:String(i),y:String(j)});k.setAttributeNS("http://www.w3.org/1999/xlink","href","#template"),h.appendChild(k)}},a.prototype.clear=function(){for(;this._el.hasChildNodes();)this._el.removeChild(this._el.lastChild)},a}(),p="svg"===document.documentElement.tagName.toLowerCase(),q=p?o:m()?function(){function a(){this._elImage.src=this._elCanvas.toDataURL("image/png"),this._elImage.style.display="block",this._elCanvas.style.display="none"}function d(a,b){var c=this;if(c._fFail=b,c._fSuccess=a,null===c._bSupportDataURI){var d=document.createElement("img"),e=function(){c._bSupportDataURI=!1,c._fFail&&_fFail.call(c)},f=function(){c._bSupportDataURI=!0,c._fSuccess&&c._fSuccess.call(c)};return d.onabort=e,d.onerror=e,d.onload=f,d.src="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==",void 0}c._bSupportDataURI===!0&&c._fSuccess?c._fSuccess.call(c):c._bSupportDataURI===!1&&c._fFail&&c._fFail.call(c)}if(this._android&&this._android<=2.1){var b=1/window.devicePixelRatio,c=CanvasRenderingContext2D.prototype.drawImage;CanvasRenderingContext2D.prototype.drawImage=function(a,d,e,f,g,h,i,j){if("nodeName"in a&&/img/i.test(a.nodeName))for(var l=arguments.length-1;l>=1;l--)arguments[l]=arguments[l]*b;else"undefined"==typeof j&&(arguments[1]*=b,arguments[2]*=b,arguments[3]*=b,arguments[4]*=b);c.apply(this,arguments)}}var e=function(a,b){this._bIsPainted=!1,this._android=n(),this._htOption=b,this._elCanvas=document.createElement("canvas"),this._elCanvas.width=b.width,this._elCanvas.height=b.height,a.appendChild(this._elCanvas),this._el=a,this._oContext=this._elCanvas.getContext("2d"),this._bIsPainted=!1,this._elImage=document.createElement("img"),this._elImage.style.display="none",this._el.appendChild(this._elImage),this._bSupportDataURI=null};return e.prototype.draw=function(a){var b=this._elImage,c=this._oContext,d=this._htOption,e=a.getModuleCount(),f=d.width/e,g=d.height/e,h=Math.round(f),i=Math.round(g);b.style.display="none",this.clear();for(var j=0;e>j;j++)for(var k=0;e>k;k++){var l=a.isDark(j,k),m=k*f,n=j*g;c.strokeStyle=l?d.colorDark:d.colorLight,c.lineWidth=1,c.fillStyle=l?d.colorDark:d.colorLight,c.fillRect(m,n,f,g),c.strokeRect(Math.floor(m)+.5,Math.floor(n)+.5,h,i),c.strokeRect(Math.ceil(m)-.5,Math.ceil(n)-.5,h,i)}this._bIsPainted=!0},e.prototype.makeImage=function(){this._bIsPainted&&d.call(this,a)},e.prototype.isPainted=function(){return this._bIsPainted},e.prototype.clear=function(){this._oContext.clearRect(0,0,this._elCanvas.width,this._elCanvas.height),this._bIsPainted=!1},e.prototype.round=function(a){return a?Math.floor(1e3*a)/1e3:a},e}():function(){var a=function(a,b){this._el=a,this._htOption=b};return a.prototype.draw=function(a){for(var b=this._htOption,c=this._el,d=a.getModuleCount(),e=Math.floor(b.width/d),f=Math.floor(b.height/d),g=[''],h=0;d>h;h++){g.push("");for(var i=0;d>i;i++)g.push(' ');g.push(" ")}g.push("
"),c.innerHTML=g.join("");var j=c.childNodes[0],k=(b.width-j.offsetWidth)/2,l=(b.height-j.offsetHeight)/2;k>0&&l>0&&(j.style.margin=l+"px "+k+"px")},a.prototype.clear=function(){this._el.innerHTML=""},a}();QRCode=function(a,b){if(this._htOption={width:256,height:256,typeNumber:4,colorDark:"#000000",colorLight:"#ffffff",correctLevel:d.H},"string"==typeof b&&(b={text:b}),b)for(var c in b)this._htOption[c]=b[c];"string"==typeof a&&(a=document.getElementById(a)),this._android=n(),this._el=a,this._oQRCode=null,this._oDrawing=new q(this._el,this._htOption),this._htOption.text&&this.makeCode(this._htOption.text)},QRCode.prototype.makeCode=function(a){this._oQRCode=new b(r(a,this._htOption.correctLevel),this._htOption.correctLevel),this._oQRCode.addData(a),this._oQRCode.make(),this._el.title=a,this._oDrawing.draw(this._oQRCode),this.makeImage()},QRCode.prototype.makeImage=function(){"function"==typeof this._oDrawing.makeImage&&(!this._android||this._android>=3)&&this._oDrawing.makeImage()},QRCode.prototype.clear=function(){this._oDrawing.clear()},QRCode.CorrectLevel=d}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/lv.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/lv.js
new file mode 100644
index 000000000..806dc5c43
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/lv.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/lv",[],function(){function e(e,n,u,i){return 11===e?n:e%10==1?u:i}return{inputTooLong:function(n){var u=n.input.length-n.maximum,i="Lūdzu ievadiet par "+u;return(i+=" simbol"+e(u,"iem","u","iem"))+" mazāk"},inputTooShort:function(n){var u=n.minimum-n.input.length,i="Lūdzu ievadiet vēl "+u;return i+=" simbol"+e(u,"us","u","us")},loadingMore:function(){return"Datu ielāde…"},maximumSelected:function(n){var u="Jūs varat izvēlēties ne vairāk kā "+n.maximum;return u+=" element"+e(n.maximum,"us","u","us")},noResults:function(){return"Sakritību nav"},searching:function(){return"Meklēšana…"},removeAllItems:function(){return"Noņemt visus vienumus"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/mk.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/mk.js
new file mode 100644
index 000000000..cb7b84a26
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/mk.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/mk",[],function(){return{inputTooLong:function(n){var e=(n.input.length,n.maximum,"Ве молиме внесете "+n.maximum+" помалку карактер");return 1!==n.maximum&&(e+="и"),e},inputTooShort:function(n){var e=(n.minimum,n.input.length,"Ве молиме внесете уште "+n.maximum+" карактер");return 1!==n.maximum&&(e+="и"),e},loadingMore:function(){return"Вчитување резултати…"},maximumSelected:function(n){var e="Можете да изберете само "+n.maximum+" ставк";return 1===n.maximum?e+="а":e+="и",e},noResults:function(){return"Нема пронајдено совпаѓања"},searching:function(){return"Пребарување…"},removeAllItems:function(){return"Отстрани ги сите предмети"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/ms.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/ms.js
new file mode 100644
index 000000000..6bd7eaa3e
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/ms.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ms",[],function(){return{errorLoading:function(){return"Keputusan tidak berjaya dimuatkan."},inputTooLong:function(n){return"Sila hapuskan "+(n.input.length-n.maximum)+" aksara"},inputTooShort:function(n){return"Sila masukkan "+(n.minimum-n.input.length)+" atau lebih aksara"},loadingMore:function(){return"Sedang memuatkan keputusan…"},maximumSelected:function(n){return"Anda hanya boleh memilih "+n.maximum+" pilihan"},noResults:function(){return"Tiada padanan yang ditemui"},searching:function(){return"Mencari…"},removeAllItems:function(){return"Keluarkan semua item"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/nb.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/nb.js
new file mode 100644
index 000000000..25d89c687
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/nb.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/nb",[],function(){return{errorLoading:function(){return"Kunne ikke hente resultater."},inputTooLong:function(e){return"Vennligst fjern "+(e.input.length-e.maximum)+" tegn"},inputTooShort:function(e){return"Vennligst skriv inn "+(e.minimum-e.input.length)+" tegn til"},loadingMore:function(){return"Laster flere resultater…"},maximumSelected:function(e){return"Du kan velge maks "+e.maximum+" elementer"},noResults:function(){return"Ingen treff"},searching:function(){return"Søker…"},removeAllItems:function(){return"Fjern alle elementer"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/ne.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/ne.js
new file mode 100644
index 000000000..1c39f6721
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/ne.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ne",[],function(){return{errorLoading:function(){return"नतिजाहरु देखाउन सकिएन।"},inputTooLong:function(n){var e=n.input.length-n.maximum,u="कृपया "+e+" अक्षर मेटाउनुहोस्।";return 1!=e&&(u+="कृपया "+e+" अक्षरहरु मेटाउनुहोस्।"),u},inputTooShort:function(n){return"कृपया बाँकी रहेका "+(n.minimum-n.input.length)+" वा अरु धेरै अक्षरहरु भर्नुहोस्।"},loadingMore:function(){return"अरु नतिजाहरु भरिँदैछन् …"},maximumSelected:function(n){var e="तँपाई "+n.maximum+" वस्तु मात्र छान्न पाउँनुहुन्छ।";return 1!=n.maximum&&(e="तँपाई "+n.maximum+" वस्तुहरु मात्र छान्न पाउँनुहुन्छ।"),e},noResults:function(){return"कुनै पनि नतिजा भेटिएन।"},searching:function(){return"खोजि हुँदैछ…"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/nl.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/nl.js
new file mode 100644
index 000000000..2b74058d2
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/nl.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/nl",[],function(){return{errorLoading:function(){return"De resultaten konden niet worden geladen."},inputTooLong:function(e){return"Gelieve "+(e.input.length-e.maximum)+" karakters te verwijderen"},inputTooShort:function(e){return"Gelieve "+(e.minimum-e.input.length)+" of meer karakters in te voeren"},loadingMore:function(){return"Meer resultaten laden…"},maximumSelected:function(e){var n=1==e.maximum?"kan":"kunnen",r="Er "+n+" maar "+e.maximum+" item";return 1!=e.maximum&&(r+="s"),r+=" worden geselecteerd"},noResults:function(){return"Geen resultaten gevonden…"},searching:function(){return"Zoeken…"},removeAllItems:function(){return"Verwijder alle items"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/pl.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/pl.js
new file mode 100644
index 000000000..4ca5748c3
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/pl.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/pl",[],function(){var n=["znak","znaki","znaków"],e=["element","elementy","elementów"],r=function(n,e){return 1===n?e[0]:n>1&&n<=4?e[1]:n>=5?e[2]:void 0};return{errorLoading:function(){return"Nie można załadować wyników."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Usuń "+t+" "+r(t,n)},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Podaj przynajmniej "+t+" "+r(t,n)},loadingMore:function(){return"Trwa ładowanie…"},maximumSelected:function(n){return"Możesz zaznaczyć tylko "+n.maximum+" "+r(n.maximum,e)},noResults:function(){return"Brak wyników"},searching:function(){return"Trwa wyszukiwanie…"},removeAllItems:function(){return"Usuń wszystkie przedmioty"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/ps.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/ps.js
new file mode 100644
index 000000000..9b008e4c1
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/ps.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ps",[],function(){return{errorLoading:function(){return"پايلي نه سي ترلاسه کېدای"},inputTooLong:function(n){var e=n.input.length-n.maximum,r="د مهربانۍ لمخي "+e+" توری ړنګ کړئ";return 1!=e&&(r=r.replace("توری","توري")),r},inputTooShort:function(n){return"لږ تر لږه "+(n.minimum-n.input.length)+" يا ډېر توري وليکئ"},loadingMore:function(){return"نوري پايلي ترلاسه کيږي..."},maximumSelected:function(n){var e="تاسو يوازي "+n.maximum+" قلم په نښه کولای سی";return 1!=n.maximum&&(e=e.replace("قلم","قلمونه")),e},noResults:function(){return"پايلي و نه موندل سوې"},searching:function(){return"لټول کيږي..."},removeAllItems:function(){return"ټول توکي لرې کړئ"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/pt-BR.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/pt-BR.js
new file mode 100644
index 000000000..c991e2550
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/pt-BR.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/pt-BR",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Apague "+n+" caracter";return 1!=n&&(r+="es"),r},inputTooShort:function(e){return"Digite "+(e.minimum-e.input.length)+" ou mais caracteres"},loadingMore:function(){return"Carregando mais resultados…"},maximumSelected:function(e){var n="Você só pode selecionar "+e.maximum+" ite";return 1==e.maximum?n+="m":n+="ns",n},noResults:function(){return"Nenhum resultado encontrado"},searching:function(){return"Buscando…"},removeAllItems:function(){return"Remover todos os itens"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/pt.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/pt.js
new file mode 100644
index 000000000..b5da1a6b4
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/pt.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/pt",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var r=e.input.length-e.maximum,n="Por favor apague "+r+" ";return n+=1!=r?"caracteres":"caractere"},inputTooShort:function(e){return"Introduza "+(e.minimum-e.input.length)+" ou mais caracteres"},loadingMore:function(){return"A carregar mais resultados…"},maximumSelected:function(e){var r="Apenas pode seleccionar "+e.maximum+" ";return r+=1!=e.maximum?"itens":"item"},noResults:function(){return"Sem resultados"},searching:function(){return"A procurar…"},removeAllItems:function(){return"Remover todos os itens"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/ro.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/ro.js
new file mode 100644
index 000000000..1ba7b40be
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/ro.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/ro",[],function(){return{errorLoading:function(){return"Rezultatele nu au putut fi incărcate."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vă rugăm să ștergeți"+t+" caracter";return 1!==t&&(n+="e"),n},inputTooShort:function(e){return"Vă rugăm să introduceți "+(e.minimum-e.input.length)+" sau mai multe caractere"},loadingMore:function(){return"Se încarcă mai multe rezultate…"},maximumSelected:function(e){var t="Aveți voie să selectați cel mult "+e.maximum;return t+=" element",1!==e.maximum&&(t+="e"),t},noResults:function(){return"Nu au fost găsite rezultate"},searching:function(){return"Căutare…"},removeAllItems:function(){return"Eliminați toate elementele"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/ru.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/ru.js
new file mode 100644
index 000000000..63a7d66c3
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/ru.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ru",[],function(){function n(n,e,r,u){return n%10<5&&n%10>0&&n%100<5||n%100>20?n%10>1?r:e:u}return{errorLoading:function(){return"Невозможно загрузить результаты"},inputTooLong:function(e){var r=e.input.length-e.maximum,u="Пожалуйста, введите на "+r+" символ";return u+=n(r,"","a","ов"),u+=" меньше"},inputTooShort:function(e){var r=e.minimum-e.input.length,u="Пожалуйста, введите ещё хотя бы "+r+" символ";return u+=n(r,"","a","ов")},loadingMore:function(){return"Загрузка данных…"},maximumSelected:function(e){var r="Вы можете выбрать не более "+e.maximum+" элемент";return r+=n(e.maximum,"","a","ов")},noResults:function(){return"Совпадений не найдено"},searching:function(){return"Поиск…"},removeAllItems:function(){return"Удалить все элементы"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/sk.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/sk.js
new file mode 100644
index 000000000..5049528ad
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/sk.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/sk",[],function(){var e={2:function(e){return e?"dva":"dve"},3:function(){return"tri"},4:function(){return"štyri"}};return{errorLoading:function(){return"Výsledky sa nepodarilo načítať."},inputTooLong:function(n){var t=n.input.length-n.maximum;return 1==t?"Prosím, zadajte o jeden znak menej":t>=2&&t<=4?"Prosím, zadajte o "+e[t](!0)+" znaky menej":"Prosím, zadajte o "+t+" znakov menej"},inputTooShort:function(n){var t=n.minimum-n.input.length;return 1==t?"Prosím, zadajte ešte jeden znak":t<=4?"Prosím, zadajte ešte ďalšie "+e[t](!0)+" znaky":"Prosím, zadajte ešte ďalších "+t+" znakov"},loadingMore:function(){return"Načítanie ďalších výsledkov…"},maximumSelected:function(n){return 1==n.maximum?"Môžete zvoliť len jednu položku":n.maximum>=2&&n.maximum<=4?"Môžete zvoliť najviac "+e[n.maximum](!1)+" položky":"Môžete zvoliť najviac "+n.maximum+" položiek"},noResults:function(){return"Nenašli sa žiadne položky"},searching:function(){return"Vyhľadávanie…"},removeAllItems:function(){return"Odstráňte všetky položky"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/sl.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/sl.js
new file mode 100644
index 000000000..4d0b7d3e3
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/sl.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/sl",[],function(){return{errorLoading:function(){return"Zadetkov iskanja ni bilo mogoče naložiti."},inputTooLong:function(e){var n=e.input.length-e.maximum,t="Prosim zbrišite "+n+" znak";return 2==n?t+="a":1!=n&&(t+="e"),t},inputTooShort:function(e){var n=e.minimum-e.input.length,t="Prosim vpišite še "+n+" znak";return 2==n?t+="a":1!=n&&(t+="e"),t},loadingMore:function(){return"Nalagam več zadetkov…"},maximumSelected:function(e){var n="Označite lahko največ "+e.maximum+" predmet";return 2==e.maximum?n+="a":1!=e.maximum&&(n+="e"),n},noResults:function(){return"Ni zadetkov."},searching:function(){return"Iščem…"},removeAllItems:function(){return"Odstranite vse elemente"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/sq.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/sq.js
new file mode 100644
index 000000000..59162024e
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/sq.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/sq",[],function(){return{errorLoading:function(){return"Rezultatet nuk mund të ngarkoheshin."},inputTooLong:function(e){var n=e.input.length-e.maximum,t="Të lutem fshi "+n+" karakter";return 1!=n&&(t+="e"),t},inputTooShort:function(e){return"Të lutem shkruaj "+(e.minimum-e.input.length)+" ose më shumë karaktere"},loadingMore:function(){return"Duke ngarkuar më shumë rezultate…"},maximumSelected:function(e){var n="Mund të zgjedhësh vetëm "+e.maximum+" element";return 1!=e.maximum&&(n+="e"),n},noResults:function(){return"Nuk u gjet asnjë rezultat"},searching:function(){return"Duke kërkuar…"},removeAllItems:function(){return"Hiq të gjitha sendet"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/sr-Cyrl.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/sr-Cyrl.js
new file mode 100644
index 000000000..ce13ce8f9
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/sr-Cyrl.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/sr-Cyrl",[],function(){function n(n,e,r,u){return n%10==1&&n%100!=11?e:n%10>=2&&n%10<=4&&(n%100<12||n%100>14)?r:u}return{errorLoading:function(){return"Преузимање није успело."},inputTooLong:function(e){var r=e.input.length-e.maximum,u="Обришите "+r+" симбол";return u+=n(r,"","а","а")},inputTooShort:function(e){var r=e.minimum-e.input.length,u="Укуцајте бар још "+r+" симбол";return u+=n(r,"","а","а")},loadingMore:function(){return"Преузимање још резултата…"},maximumSelected:function(e){var r="Можете изабрати само "+e.maximum+" ставк";return r+=n(e.maximum,"у","е","и")},noResults:function(){return"Ништа није пронађено"},searching:function(){return"Претрага…"},removeAllItems:function(){return"Уклоните све ставке"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/sr.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/sr.js
new file mode 100644
index 000000000..dd407a06d
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/sr.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/sr",[],function(){function n(n,e,r,t){return n%10==1&&n%100!=11?e:n%10>=2&&n%10<=4&&(n%100<12||n%100>14)?r:t}return{errorLoading:function(){return"Preuzimanje nije uspelo."},inputTooLong:function(e){var r=e.input.length-e.maximum,t="Obrišite "+r+" simbol";return t+=n(r,"","a","a")},inputTooShort:function(e){var r=e.minimum-e.input.length,t="Ukucajte bar još "+r+" simbol";return t+=n(r,"","a","a")},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(e){var r="Možete izabrati samo "+e.maximum+" stavk";return r+=n(e.maximum,"u","e","i")},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"},removeAllItems:function(){return"Уклоните све ставке"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/sv.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/sv.js
new file mode 100644
index 000000000..1bc8724a7
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/sv.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/sv",[],function(){return{errorLoading:function(){return"Resultat kunde inte laddas."},inputTooLong:function(n){return"Vänligen sudda ut "+(n.input.length-n.maximum)+" tecken"},inputTooShort:function(n){return"Vänligen skriv in "+(n.minimum-n.input.length)+" eller fler tecken"},loadingMore:function(){return"Laddar fler resultat…"},maximumSelected:function(n){return"Du kan max välja "+n.maximum+" element"},noResults:function(){return"Inga träffar"},searching:function(){return"Söker…"},removeAllItems:function(){return"Ta bort alla objekt"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/th.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/th.js
new file mode 100644
index 000000000..63eab7114
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/th.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/th",[],function(){return{errorLoading:function(){return"ไม่สามารถค้นข้อมูลได้"},inputTooLong:function(n){return"โปรดลบออก "+(n.input.length-n.maximum)+" ตัวอักษร"},inputTooShort:function(n){return"โปรดพิมพ์เพิ่มอีก "+(n.minimum-n.input.length)+" ตัวอักษร"},loadingMore:function(){return"กำลังค้นข้อมูลเพิ่ม…"},maximumSelected:function(n){return"คุณสามารถเลือกได้ไม่เกิน "+n.maximum+" รายการ"},noResults:function(){return"ไม่พบข้อมูล"},searching:function(){return"กำลังค้นข้อมูล…"},removeAllItems:function(){return"ลบรายการทั้งหมด"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/tk.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/tk.js
new file mode 100644
index 000000000..30255ff37
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/tk.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/tk",[],function(){return{errorLoading:function(){return"Netije ýüklenmedi."},inputTooLong:function(e){return e.input.length-e.maximum+" harp bozuň."},inputTooShort:function(e){return"Ýene-de iň az "+(e.minimum-e.input.length)+" harp ýazyň."},loadingMore:function(){return"Köpräk netije görkezilýär…"},maximumSelected:function(e){return"Diňe "+e.maximum+" sanysyny saýlaň."},noResults:function(){return"Netije tapylmady."},searching:function(){return"Gözlenýär…"},removeAllItems:function(){return"Remove all items"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/tr.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/tr.js
new file mode 100644
index 000000000..fc4c0bf05
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/tr.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/tr",[],function(){return{errorLoading:function(){return"Sonuç yüklenemedi"},inputTooLong:function(n){return n.input.length-n.maximum+" karakter daha girmelisiniz"},inputTooShort:function(n){return"En az "+(n.minimum-n.input.length)+" karakter daha girmelisiniz"},loadingMore:function(){return"Daha fazla…"},maximumSelected:function(n){return"Sadece "+n.maximum+" seçim yapabilirsiniz"},noResults:function(){return"Sonuç bulunamadı"},searching:function(){return"Aranıyor…"},removeAllItems:function(){return"Tüm öğeleri kaldır"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/uk.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/uk.js
new file mode 100644
index 000000000..63697e388
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/uk.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/uk",[],function(){function n(n,e,u,r){return n%100>10&&n%100<15?r:n%10==1?e:n%10>1&&n%10<5?u:r}return{errorLoading:function(){return"Неможливо завантажити результати"},inputTooLong:function(e){return"Будь ласка, видаліть "+(e.input.length-e.maximum)+" "+n(e.maximum,"літеру","літери","літер")},inputTooShort:function(n){return"Будь ласка, введіть "+(n.minimum-n.input.length)+" або більше літер"},loadingMore:function(){return"Завантаження інших результатів…"},maximumSelected:function(e){return"Ви можете вибрати лише "+e.maximum+" "+n(e.maximum,"пункт","пункти","пунктів")},noResults:function(){return"Нічого не знайдено"},searching:function(){return"Пошук…"},removeAllItems:function(){return"Видалити всі елементи"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/vi.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/vi.js
new file mode 100644
index 000000000..24f3bc2d6
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/vi.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/vi",[],function(){return{inputTooLong:function(n){return"Vui lòng xóa bớt "+(n.input.length-n.maximum)+" ký tự"},inputTooShort:function(n){return"Vui lòng nhập thêm từ "+(n.minimum-n.input.length)+" ký tự trở lên"},loadingMore:function(){return"Đang lấy thêm kết quả…"},maximumSelected:function(n){return"Chỉ có thể chọn được "+n.maximum+" lựa chọn"},noResults:function(){return"Không tìm thấy kết quả"},searching:function(){return"Đang tìm…"},removeAllItems:function(){return"Xóa tất cả các mục"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/zh-CN.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/zh-CN.js
new file mode 100644
index 000000000..2c5649d31
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/zh-CN.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/zh-CN",[],function(){return{errorLoading:function(){return"无法载入结果。"},inputTooLong:function(n){return"请删除"+(n.input.length-n.maximum)+"个字符"},inputTooShort:function(n){return"请再输入至少"+(n.minimum-n.input.length)+"个字符"},loadingMore:function(){return"载入更多结果…"},maximumSelected:function(n){return"最多只能选择"+n.maximum+"个项目"},noResults:function(){return"未找到结果"},searching:function(){return"搜索中…"},removeAllItems:function(){return"删除所有项目"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/zh-TW.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/zh-TW.js
new file mode 100644
index 000000000..570a56693
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/select2/js/i18n/zh-TW.js
@@ -0,0 +1,3 @@
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/zh-TW",[],function(){return{inputTooLong:function(n){return"請刪掉"+(n.input.length-n.maximum)+"個字元"},inputTooShort:function(n){return"請再輸入"+(n.minimum-n.input.length)+"個字元"},loadingMore:function(){return"載入中…"},maximumSelected:function(n){return"你只能選擇最多"+n.maximum+"項"},noResults:function(){return"沒有找到相符的項目"},searching:function(){return"搜尋中…"},removeAllItems:function(){return"刪除所有項目"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/sweetalert2/sweetalert2.esm.all.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/sweetalert2/sweetalert2.esm.all.js
new file mode 100644
index 000000000..9a8700502
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/sweetalert2/sweetalert2.esm.all.js
@@ -0,0 +1,4621 @@
+/*!
+* sweetalert2 v11.21.1
+* Released under the MIT License.
+*/
+function _assertClassBrand(e, t, n) {
+ if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;
+ throw new TypeError("Private element is not present on this object");
+}
+function _checkPrivateRedeclaration(e, t) {
+ if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object");
+}
+function _classPrivateFieldGet2(s, a) {
+ return s.get(_assertClassBrand(s, a));
+}
+function _classPrivateFieldInitSpec(e, t, a) {
+ _checkPrivateRedeclaration(e, t), t.set(e, a);
+}
+function _classPrivateFieldSet2(s, a, r) {
+ return s.set(_assertClassBrand(s, a), r), r;
+}
+
+const RESTORE_FOCUS_TIMEOUT = 100;
+
+/** @type {GlobalState} */
+const globalState = {};
+const focusPreviousActiveElement = () => {
+ if (globalState.previousActiveElement instanceof HTMLElement) {
+ globalState.previousActiveElement.focus();
+ globalState.previousActiveElement = null;
+ } else if (document.body) {
+ document.body.focus();
+ }
+};
+
+/**
+ * Restore previous active (focused) element
+ *
+ * @param {boolean} returnFocus
+ * @returns {Promise}
+ */
+const restoreActiveElement = returnFocus => {
+ return new Promise(resolve => {
+ if (!returnFocus) {
+ return resolve();
+ }
+ const x = window.scrollX;
+ const y = window.scrollY;
+ globalState.restoreFocusTimeout = setTimeout(() => {
+ focusPreviousActiveElement();
+ resolve();
+ }, RESTORE_FOCUS_TIMEOUT); // issues/900
+
+ window.scrollTo(x, y);
+ });
+};
+
+const swalPrefix = 'swal2-';
+
+/**
+ * @typedef {Record} SwalClasses
+ */
+
+/**
+ * @typedef {'success' | 'warning' | 'info' | 'question' | 'error'} SwalIcon
+ * @typedef {Record} SwalIcons
+ */
+
+/** @type {SwalClass[]} */
+const classNames = ['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error', 'draggable', 'dragging'];
+const swalClasses = classNames.reduce((acc, className) => {
+ acc[className] = swalPrefix + className;
+ return acc;
+}, /** @type {SwalClasses} */{});
+
+/** @type {SwalIcon[]} */
+const icons = ['success', 'warning', 'info', 'question', 'error'];
+const iconTypes = icons.reduce((acc, icon) => {
+ acc[icon] = swalPrefix + icon;
+ return acc;
+}, /** @type {SwalIcons} */{});
+
+const consolePrefix = 'SweetAlert2:';
+
+/**
+ * Capitalize the first letter of a string
+ *
+ * @param {string} str
+ * @returns {string}
+ */
+const capitalizeFirstLetter = str => str.charAt(0).toUpperCase() + str.slice(1);
+
+/**
+ * Standardize console warnings
+ *
+ * @param {string | string[]} message
+ */
+const warn = message => {
+ console.warn(`${consolePrefix} ${typeof message === 'object' ? message.join(' ') : message}`);
+};
+
+/**
+ * Standardize console errors
+ *
+ * @param {string} message
+ */
+const error = message => {
+ console.error(`${consolePrefix} ${message}`);
+};
+
+/**
+ * Private global state for `warnOnce`
+ *
+ * @type {string[]}
+ * @private
+ */
+const previousWarnOnceMessages = [];
+
+/**
+ * Show a console warning, but only if it hasn't already been shown
+ *
+ * @param {string} message
+ */
+const warnOnce = message => {
+ if (!previousWarnOnceMessages.includes(message)) {
+ previousWarnOnceMessages.push(message);
+ warn(message);
+ }
+};
+
+/**
+ * Show a one-time console warning about deprecated params/methods
+ *
+ * @param {string} deprecatedParam
+ * @param {string?} useInstead
+ */
+const warnAboutDeprecation = (deprecatedParam, useInstead = null) => {
+ warnOnce(`"${deprecatedParam}" is deprecated and will be removed in the next major release.${useInstead ? ` Use "${useInstead}" instead.` : ''}`);
+};
+
+/**
+ * If `arg` is a function, call it (with no arguments or context) and return the result.
+ * Otherwise, just pass the value through
+ *
+ * @param {Function | any} arg
+ * @returns {any}
+ */
+const callIfFunction = arg => typeof arg === 'function' ? arg() : arg;
+
+/**
+ * @param {any} arg
+ * @returns {boolean}
+ */
+const hasToPromiseFn = arg => arg && typeof arg.toPromise === 'function';
+
+/**
+ * @param {any} arg
+ * @returns {Promise}
+ */
+const asPromise = arg => hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);
+
+/**
+ * @param {any} arg
+ * @returns {boolean}
+ */
+const isPromise = arg => arg && Promise.resolve(arg) === arg;
+
+/**
+ * Gets the popup container which contains the backdrop and the popup itself.
+ *
+ * @returns {HTMLElement | null}
+ */
+const getContainer = () => document.body.querySelector(`.${swalClasses.container}`);
+
+/**
+ * @param {string} selectorString
+ * @returns {HTMLElement | null}
+ */
+const elementBySelector = selectorString => {
+ const container = getContainer();
+ return container ? container.querySelector(selectorString) : null;
+};
+
+/**
+ * @param {string} className
+ * @returns {HTMLElement | null}
+ */
+const elementByClass = className => {
+ return elementBySelector(`.${className}`);
+};
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getPopup = () => elementByClass(swalClasses.popup);
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getIcon = () => elementByClass(swalClasses.icon);
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getIconContent = () => elementByClass(swalClasses['icon-content']);
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getTitle = () => elementByClass(swalClasses.title);
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getHtmlContainer = () => elementByClass(swalClasses['html-container']);
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getImage = () => elementByClass(swalClasses.image);
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getProgressSteps = () => elementByClass(swalClasses['progress-steps']);
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getValidationMessage = () => elementByClass(swalClasses['validation-message']);
+
+/**
+ * @returns {HTMLButtonElement | null}
+ */
+const getConfirmButton = () => (/** @type {HTMLButtonElement} */elementBySelector(`.${swalClasses.actions} .${swalClasses.confirm}`));
+
+/**
+ * @returns {HTMLButtonElement | null}
+ */
+const getCancelButton = () => (/** @type {HTMLButtonElement} */elementBySelector(`.${swalClasses.actions} .${swalClasses.cancel}`));
+
+/**
+ * @returns {HTMLButtonElement | null}
+ */
+const getDenyButton = () => (/** @type {HTMLButtonElement} */elementBySelector(`.${swalClasses.actions} .${swalClasses.deny}`));
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getInputLabel = () => elementByClass(swalClasses['input-label']);
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getLoader = () => elementBySelector(`.${swalClasses.loader}`);
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getActions = () => elementByClass(swalClasses.actions);
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getFooter = () => elementByClass(swalClasses.footer);
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getTimerProgressBar = () => elementByClass(swalClasses['timer-progress-bar']);
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getCloseButton = () => elementByClass(swalClasses.close);
+
+// https://github.com/jkup/focusable/blob/master/index.js
+const focusable = `
+ a[href],
+ area[href],
+ input:not([disabled]),
+ select:not([disabled]),
+ textarea:not([disabled]),
+ button:not([disabled]),
+ iframe,
+ object,
+ embed,
+ [tabindex="0"],
+ [contenteditable],
+ audio[controls],
+ video[controls],
+ summary
+`;
+/**
+ * @returns {HTMLElement[]}
+ */
+const getFocusableElements = () => {
+ const popup = getPopup();
+ if (!popup) {
+ return [];
+ }
+ /** @type {NodeListOf} */
+ const focusableElementsWithTabindex = popup.querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])');
+ const focusableElementsWithTabindexSorted = Array.from(focusableElementsWithTabindex)
+ // sort according to tabindex
+ .sort((a, b) => {
+ const tabindexA = parseInt(a.getAttribute('tabindex') || '0');
+ const tabindexB = parseInt(b.getAttribute('tabindex') || '0');
+ if (tabindexA > tabindexB) {
+ return 1;
+ } else if (tabindexA < tabindexB) {
+ return -1;
+ }
+ return 0;
+ });
+
+ /** @type {NodeListOf} */
+ const otherFocusableElements = popup.querySelectorAll(focusable);
+ const otherFocusableElementsFiltered = Array.from(otherFocusableElements).filter(el => el.getAttribute('tabindex') !== '-1');
+ return [...new Set(focusableElementsWithTabindexSorted.concat(otherFocusableElementsFiltered))].filter(el => isVisible$1(el));
+};
+
+/**
+ * @returns {boolean}
+ */
+const isModal = () => {
+ return hasClass(document.body, swalClasses.shown) && !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']);
+};
+
+/**
+ * @returns {boolean}
+ */
+const isToast = () => {
+ const popup = getPopup();
+ if (!popup) {
+ return false;
+ }
+ return hasClass(popup, swalClasses.toast);
+};
+
+/**
+ * @returns {boolean}
+ */
+const isLoading = () => {
+ const popup = getPopup();
+ if (!popup) {
+ return false;
+ }
+ return popup.hasAttribute('data-loading');
+};
+
+/**
+ * Securely set innerHTML of an element
+ * https://github.com/sweetalert2/sweetalert2/issues/1926
+ *
+ * @param {HTMLElement} elem
+ * @param {string} html
+ */
+const setInnerHtml = (elem, html) => {
+ elem.textContent = '';
+ if (html) {
+ const parser = new DOMParser();
+ const parsed = parser.parseFromString(html, `text/html`);
+ const head = parsed.querySelector('head');
+ if (head) {
+ Array.from(head.childNodes).forEach(child => {
+ elem.appendChild(child);
+ });
+ }
+ const body = parsed.querySelector('body');
+ if (body) {
+ Array.from(body.childNodes).forEach(child => {
+ if (child instanceof HTMLVideoElement || child instanceof HTMLAudioElement) {
+ elem.appendChild(child.cloneNode(true)); // https://github.com/sweetalert2/sweetalert2/issues/2507
+ } else {
+ elem.appendChild(child);
+ }
+ });
+ }
+ }
+};
+
+/**
+ * @param {HTMLElement} elem
+ * @param {string} className
+ * @returns {boolean}
+ */
+const hasClass = (elem, className) => {
+ if (!className) {
+ return false;
+ }
+ const classList = className.split(/\s+/);
+ for (let i = 0; i < classList.length; i++) {
+ if (!elem.classList.contains(classList[i])) {
+ return false;
+ }
+ }
+ return true;
+};
+
+/**
+ * @param {HTMLElement} elem
+ * @param {SweetAlertOptions} params
+ */
+const removeCustomClasses = (elem, params) => {
+ Array.from(elem.classList).forEach(className => {
+ if (!Object.values(swalClasses).includes(className) && !Object.values(iconTypes).includes(className) && !Object.values(params.showClass || {}).includes(className)) {
+ elem.classList.remove(className);
+ }
+ });
+};
+
+/**
+ * @param {HTMLElement} elem
+ * @param {SweetAlertOptions} params
+ * @param {string} className
+ */
+const applyCustomClass = (elem, params, className) => {
+ removeCustomClasses(elem, params);
+ if (!params.customClass) {
+ return;
+ }
+ const customClass = params.customClass[(/** @type {keyof SweetAlertCustomClass} */className)];
+ if (!customClass) {
+ return;
+ }
+ if (typeof customClass !== 'string' && !customClass.forEach) {
+ warn(`Invalid type of customClass.${className}! Expected string or iterable object, got "${typeof customClass}"`);
+ return;
+ }
+ addClass(elem, customClass);
+};
+
+/**
+ * @param {HTMLElement} popup
+ * @param {import('./renderers/renderInput').InputClass | SweetAlertInput} inputClass
+ * @returns {HTMLInputElement | null}
+ */
+const getInput$1 = (popup, inputClass) => {
+ if (!inputClass) {
+ return null;
+ }
+ switch (inputClass) {
+ case 'select':
+ case 'textarea':
+ case 'file':
+ return popup.querySelector(`.${swalClasses.popup} > .${swalClasses[inputClass]}`);
+ case 'checkbox':
+ return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.checkbox} input`);
+ case 'radio':
+ return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.radio} input:checked`) || popup.querySelector(`.${swalClasses.popup} > .${swalClasses.radio} input:first-child`);
+ case 'range':
+ return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.range} input`);
+ default:
+ return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.input}`);
+ }
+};
+
+/**
+ * @param {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} input
+ */
+const focusInput = input => {
+ input.focus();
+
+ // place cursor at end of text in text input
+ if (input.type !== 'file') {
+ // http://stackoverflow.com/a/2345915
+ const val = input.value;
+ input.value = '';
+ input.value = val;
+ }
+};
+
+/**
+ * @param {HTMLElement | HTMLElement[] | null} target
+ * @param {string | string[] | readonly string[] | undefined} classList
+ * @param {boolean} condition
+ */
+const toggleClass = (target, classList, condition) => {
+ if (!target || !classList) {
+ return;
+ }
+ if (typeof classList === 'string') {
+ classList = classList.split(/\s+/).filter(Boolean);
+ }
+ classList.forEach(className => {
+ if (Array.isArray(target)) {
+ target.forEach(elem => {
+ if (condition) {
+ elem.classList.add(className);
+ } else {
+ elem.classList.remove(className);
+ }
+ });
+ } else {
+ if (condition) {
+ target.classList.add(className);
+ } else {
+ target.classList.remove(className);
+ }
+ }
+ });
+};
+
+/**
+ * @param {HTMLElement | HTMLElement[] | null} target
+ * @param {string | string[] | readonly string[] | undefined} classList
+ */
+const addClass = (target, classList) => {
+ toggleClass(target, classList, true);
+};
+
+/**
+ * @param {HTMLElement | HTMLElement[] | null} target
+ * @param {string | string[] | readonly string[] | undefined} classList
+ */
+const removeClass = (target, classList) => {
+ toggleClass(target, classList, false);
+};
+
+/**
+ * Get direct child of an element by class name
+ *
+ * @param {HTMLElement} elem
+ * @param {string} className
+ * @returns {HTMLElement | undefined}
+ */
+const getDirectChildByClass = (elem, className) => {
+ const children = Array.from(elem.children);
+ for (let i = 0; i < children.length; i++) {
+ const child = children[i];
+ if (child instanceof HTMLElement && hasClass(child, className)) {
+ return child;
+ }
+ }
+};
+
+/**
+ * @param {HTMLElement} elem
+ * @param {string} property
+ * @param {*} value
+ */
+const applyNumericalStyle = (elem, property, value) => {
+ if (value === `${parseInt(value)}`) {
+ value = parseInt(value);
+ }
+ if (value || parseInt(value) === 0) {
+ elem.style.setProperty(property, typeof value === 'number' ? `${value}px` : value);
+ } else {
+ elem.style.removeProperty(property);
+ }
+};
+
+/**
+ * @param {HTMLElement | null} elem
+ * @param {string} display
+ */
+const show = (elem, display = 'flex') => {
+ if (!elem) {
+ return;
+ }
+ elem.style.display = display;
+};
+
+/**
+ * @param {HTMLElement | null} elem
+ */
+const hide = elem => {
+ if (!elem) {
+ return;
+ }
+ elem.style.display = 'none';
+};
+
+/**
+ * @param {HTMLElement | null} elem
+ * @param {string} display
+ */
+const showWhenInnerHtmlPresent = (elem, display = 'block') => {
+ if (!elem) {
+ return;
+ }
+ new MutationObserver(() => {
+ toggle(elem, elem.innerHTML, display);
+ }).observe(elem, {
+ childList: true,
+ subtree: true
+ });
+};
+
+/**
+ * @param {HTMLElement} parent
+ * @param {string} selector
+ * @param {string} property
+ * @param {string} value
+ */
+const setStyle = (parent, selector, property, value) => {
+ /** @type {HTMLElement | null} */
+ const el = parent.querySelector(selector);
+ if (el) {
+ el.style.setProperty(property, value);
+ }
+};
+
+/**
+ * @param {HTMLElement} elem
+ * @param {any} condition
+ * @param {string} display
+ */
+const toggle = (elem, condition, display = 'flex') => {
+ if (condition) {
+ show(elem, display);
+ } else {
+ hide(elem);
+ }
+};
+
+/**
+ * borrowed from jquery $(elem).is(':visible') implementation
+ *
+ * @param {HTMLElement | null} elem
+ * @returns {boolean}
+ */
+const isVisible$1 = elem => !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));
+
+/**
+ * @returns {boolean}
+ */
+const allButtonsAreHidden = () => !isVisible$1(getConfirmButton()) && !isVisible$1(getDenyButton()) && !isVisible$1(getCancelButton());
+
+/**
+ * @param {HTMLElement} elem
+ * @returns {boolean}
+ */
+const isScrollable = elem => !!(elem.scrollHeight > elem.clientHeight);
+
+/**
+ * @param {HTMLElement} element
+ * @param {HTMLElement} stopElement
+ * @returns {boolean}
+ */
+const selfOrParentIsScrollable = (element, stopElement) => {
+ let parent = element;
+ while (parent && parent !== stopElement) {
+ if (isScrollable(parent)) {
+ return true;
+ }
+ parent = parent.parentElement;
+ }
+ return false;
+};
+
+/**
+ * borrowed from https://stackoverflow.com/a/46352119
+ *
+ * @param {HTMLElement} elem
+ * @returns {boolean}
+ */
+const hasCssAnimation = elem => {
+ const style = window.getComputedStyle(elem);
+ const animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');
+ const transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');
+ return animDuration > 0 || transDuration > 0;
+};
+
+/**
+ * @param {number} timer
+ * @param {boolean} reset
+ */
+const animateTimerProgressBar = (timer, reset = false) => {
+ const timerProgressBar = getTimerProgressBar();
+ if (!timerProgressBar) {
+ return;
+ }
+ if (isVisible$1(timerProgressBar)) {
+ if (reset) {
+ timerProgressBar.style.transition = 'none';
+ timerProgressBar.style.width = '100%';
+ }
+ setTimeout(() => {
+ timerProgressBar.style.transition = `width ${timer / 1000}s linear`;
+ timerProgressBar.style.width = '0%';
+ }, 10);
+ }
+};
+const stopTimerProgressBar = () => {
+ const timerProgressBar = getTimerProgressBar();
+ if (!timerProgressBar) {
+ return;
+ }
+ const timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);
+ timerProgressBar.style.removeProperty('transition');
+ timerProgressBar.style.width = '100%';
+ const timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);
+ const timerProgressBarPercent = timerProgressBarWidth / timerProgressBarFullWidth * 100;
+ timerProgressBar.style.width = `${timerProgressBarPercent}%`;
+};
+
+/**
+ * Detect Node env
+ *
+ * @returns {boolean}
+ */
+const isNodeEnv = () => typeof window === 'undefined' || typeof document === 'undefined';
+
+const sweetHTML = `
+
+`.replace(/(^|\n)\s*/g, '');
+
+/**
+ * @returns {boolean}
+ */
+const resetOldContainer = () => {
+ const oldContainer = getContainer();
+ if (!oldContainer) {
+ return false;
+ }
+ oldContainer.remove();
+ removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);
+ return true;
+};
+const resetValidationMessage$1 = () => {
+ globalState.currentInstance.resetValidationMessage();
+};
+const addInputChangeListeners = () => {
+ const popup = getPopup();
+ const input = getDirectChildByClass(popup, swalClasses.input);
+ const file = getDirectChildByClass(popup, swalClasses.file);
+ /** @type {HTMLInputElement} */
+ const range = popup.querySelector(`.${swalClasses.range} input`);
+ /** @type {HTMLOutputElement} */
+ const rangeOutput = popup.querySelector(`.${swalClasses.range} output`);
+ const select = getDirectChildByClass(popup, swalClasses.select);
+ /** @type {HTMLInputElement} */
+ const checkbox = popup.querySelector(`.${swalClasses.checkbox} input`);
+ const textarea = getDirectChildByClass(popup, swalClasses.textarea);
+ input.oninput = resetValidationMessage$1;
+ file.onchange = resetValidationMessage$1;
+ select.onchange = resetValidationMessage$1;
+ checkbox.onchange = resetValidationMessage$1;
+ textarea.oninput = resetValidationMessage$1;
+ range.oninput = () => {
+ resetValidationMessage$1();
+ rangeOutput.value = range.value;
+ };
+ range.onchange = () => {
+ resetValidationMessage$1();
+ rangeOutput.value = range.value;
+ };
+};
+
+/**
+ * @param {string | HTMLElement} target
+ * @returns {HTMLElement}
+ */
+const getTarget = target => typeof target === 'string' ? document.querySelector(target) : target;
+
+/**
+ * @param {SweetAlertOptions} params
+ */
+const setupAccessibility = params => {
+ const popup = getPopup();
+ popup.setAttribute('role', params.toast ? 'alert' : 'dialog');
+ popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');
+ if (!params.toast) {
+ popup.setAttribute('aria-modal', 'true');
+ }
+};
+
+/**
+ * @param {HTMLElement} targetElement
+ */
+const setupRTL = targetElement => {
+ if (window.getComputedStyle(targetElement).direction === 'rtl') {
+ addClass(getContainer(), swalClasses.rtl);
+ }
+};
+
+/**
+ * Add modal + backdrop + no-war message for Russians to DOM
+ *
+ * @param {SweetAlertOptions} params
+ */
+const init = params => {
+ // Clean up the old popup container if it exists
+ const oldContainerExisted = resetOldContainer();
+ if (isNodeEnv()) {
+ error('SweetAlert2 requires document to initialize');
+ return;
+ }
+ const container = document.createElement('div');
+ container.className = swalClasses.container;
+ if (oldContainerExisted) {
+ addClass(container, swalClasses['no-transition']);
+ }
+ setInnerHtml(container, sweetHTML);
+ container.dataset['swal2Theme'] = params.theme;
+ const targetElement = getTarget(params.target);
+ targetElement.appendChild(container);
+ if (params.topLayer) {
+ container.setAttribute('popover', '');
+ container.showPopover();
+ }
+ setupAccessibility(params);
+ setupRTL(targetElement);
+ addInputChangeListeners();
+};
+
+/**
+ * @param {HTMLElement | object | string} param
+ * @param {HTMLElement} target
+ */
+const parseHtmlToContainer = (param, target) => {
+ // DOM element
+ if (param instanceof HTMLElement) {
+ target.appendChild(param);
+ }
+
+ // Object
+ else if (typeof param === 'object') {
+ handleObject(param, target);
+ }
+
+ // Plain string
+ else if (param) {
+ setInnerHtml(target, param);
+ }
+};
+
+/**
+ * @param {any} param
+ * @param {HTMLElement} target
+ */
+const handleObject = (param, target) => {
+ // JQuery element(s)
+ if (param.jquery) {
+ handleJqueryElem(target, param);
+ }
+
+ // For other objects use their string representation
+ else {
+ setInnerHtml(target, param.toString());
+ }
+};
+
+/**
+ * @param {HTMLElement} target
+ * @param {any} elem
+ */
+const handleJqueryElem = (target, elem) => {
+ target.textContent = '';
+ if (0 in elem) {
+ for (let i = 0; i in elem; i++) {
+ target.appendChild(elem[i].cloneNode(true));
+ }
+ } else {
+ target.appendChild(elem.cloneNode(true));
+ }
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const renderActions = (instance, params) => {
+ const actions = getActions();
+ const loader = getLoader();
+ if (!actions || !loader) {
+ return;
+ }
+
+ // Actions (buttons) wrapper
+ if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {
+ hide(actions);
+ } else {
+ show(actions);
+ }
+
+ // Custom class
+ applyCustomClass(actions, params, 'actions');
+
+ // Render all the buttons
+ renderButtons(actions, loader, params);
+
+ // Loader
+ setInnerHtml(loader, params.loaderHtml || '');
+ applyCustomClass(loader, params, 'loader');
+};
+
+/**
+ * @param {HTMLElement} actions
+ * @param {HTMLElement} loader
+ * @param {SweetAlertOptions} params
+ */
+function renderButtons(actions, loader, params) {
+ const confirmButton = getConfirmButton();
+ const denyButton = getDenyButton();
+ const cancelButton = getCancelButton();
+ if (!confirmButton || !denyButton || !cancelButton) {
+ return;
+ }
+
+ // Render buttons
+ renderButton(confirmButton, 'confirm', params);
+ renderButton(denyButton, 'deny', params);
+ renderButton(cancelButton, 'cancel', params);
+ handleButtonsStyling(confirmButton, denyButton, cancelButton, params);
+ if (params.reverseButtons) {
+ if (params.toast) {
+ actions.insertBefore(cancelButton, confirmButton);
+ actions.insertBefore(denyButton, confirmButton);
+ } else {
+ actions.insertBefore(cancelButton, loader);
+ actions.insertBefore(denyButton, loader);
+ actions.insertBefore(confirmButton, loader);
+ }
+ }
+}
+
+/**
+ * @param {HTMLElement} confirmButton
+ * @param {HTMLElement} denyButton
+ * @param {HTMLElement} cancelButton
+ * @param {SweetAlertOptions} params
+ */
+function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {
+ if (!params.buttonsStyling) {
+ removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);
+ return;
+ }
+ addClass([confirmButton, denyButton, cancelButton], swalClasses.styled);
+
+ // Apply custom background colors to action buttons
+ if (params.confirmButtonColor) {
+ confirmButton.style.setProperty('--swal2-confirm-button-background-color', params.confirmButtonColor);
+ }
+ if (params.denyButtonColor) {
+ denyButton.style.setProperty('--swal2-deny-button-background-color', params.denyButtonColor);
+ }
+ if (params.cancelButtonColor) {
+ cancelButton.style.setProperty('--swal2-cancel-button-background-color', params.cancelButtonColor);
+ }
+
+ // Apply the outline color to action buttons
+ applyOutlineColor(confirmButton);
+ applyOutlineColor(denyButton);
+ applyOutlineColor(cancelButton);
+}
+
+/**
+ * @param {HTMLElement} button
+ */
+function applyOutlineColor(button) {
+ const buttonStyle = window.getComputedStyle(button);
+ const outlineColor = buttonStyle.backgroundColor.replace(/rgba?\((\d+), (\d+), (\d+).*/, 'rgba($1, $2, $3, 0.5)');
+ button.style.setProperty('--swal2-action-button-outline', buttonStyle.getPropertyValue('--swal2-outline').replace(/ rgba\(.*/, ` ${outlineColor}`));
+}
+
+/**
+ * @param {HTMLElement} button
+ * @param {'confirm' | 'deny' | 'cancel'} buttonType
+ * @param {SweetAlertOptions} params
+ */
+function renderButton(button, buttonType, params) {
+ const buttonName = /** @type {'Confirm' | 'Deny' | 'Cancel'} */capitalizeFirstLetter(buttonType);
+ toggle(button, params[`show${buttonName}Button`], 'inline-block');
+ setInnerHtml(button, params[`${buttonType}ButtonText`] || ''); // Set caption text
+ button.setAttribute('aria-label', params[`${buttonType}ButtonAriaLabel`] || ''); // ARIA label
+
+ // Add buttons custom classes
+ button.className = swalClasses[buttonType];
+ applyCustomClass(button, params, `${buttonType}Button`);
+}
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const renderCloseButton = (instance, params) => {
+ const closeButton = getCloseButton();
+ if (!closeButton) {
+ return;
+ }
+ setInnerHtml(closeButton, params.closeButtonHtml || '');
+
+ // Custom class
+ applyCustomClass(closeButton, params, 'closeButton');
+ toggle(closeButton, params.showCloseButton);
+ closeButton.setAttribute('aria-label', params.closeButtonAriaLabel || '');
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const renderContainer = (instance, params) => {
+ const container = getContainer();
+ if (!container) {
+ return;
+ }
+ handleBackdropParam(container, params.backdrop);
+ handlePositionParam(container, params.position);
+ handleGrowParam(container, params.grow);
+
+ // Custom class
+ applyCustomClass(container, params, 'container');
+};
+
+/**
+ * @param {HTMLElement} container
+ * @param {SweetAlertOptions['backdrop']} backdrop
+ */
+function handleBackdropParam(container, backdrop) {
+ if (typeof backdrop === 'string') {
+ container.style.background = backdrop;
+ } else if (!backdrop) {
+ addClass([document.documentElement, document.body], swalClasses['no-backdrop']);
+ }
+}
+
+/**
+ * @param {HTMLElement} container
+ * @param {SweetAlertOptions['position']} position
+ */
+function handlePositionParam(container, position) {
+ if (!position) {
+ return;
+ }
+ if (position in swalClasses) {
+ addClass(container, swalClasses[position]);
+ } else {
+ warn('The "position" parameter is not valid, defaulting to "center"');
+ addClass(container, swalClasses.center);
+ }
+}
+
+/**
+ * @param {HTMLElement} container
+ * @param {SweetAlertOptions['grow']} grow
+ */
+function handleGrowParam(container, grow) {
+ if (!grow) {
+ return;
+ }
+ addClass(container, swalClasses[`grow-${grow}`]);
+}
+
+/**
+ * This module contains `WeakMap`s for each effectively-"private property" that a `Swal` has.
+ * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')`
+ * This is the approach that Babel will probably take to implement private methods/fields
+ * https://github.com/tc39/proposal-private-methods
+ * https://github.com/babel/babel/pull/7555
+ * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*
+ * then we can use that language feature.
+ */
+
+var privateProps = {
+ innerParams: new WeakMap(),
+ domCache: new WeakMap()
+};
+
+///
+
+
+/** @type {InputClass[]} */
+const inputClasses = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const renderInput = (instance, params) => {
+ const popup = getPopup();
+ if (!popup) {
+ return;
+ }
+ const innerParams = privateProps.innerParams.get(instance);
+ const rerender = !innerParams || params.input !== innerParams.input;
+ inputClasses.forEach(inputClass => {
+ const inputContainer = getDirectChildByClass(popup, swalClasses[inputClass]);
+ if (!inputContainer) {
+ return;
+ }
+
+ // set attributes
+ setAttributes(inputClass, params.inputAttributes);
+
+ // set class
+ inputContainer.className = swalClasses[inputClass];
+ if (rerender) {
+ hide(inputContainer);
+ }
+ });
+ if (params.input) {
+ if (rerender) {
+ showInput(params);
+ }
+ // set custom class
+ setCustomClass(params);
+ }
+};
+
+/**
+ * @param {SweetAlertOptions} params
+ */
+const showInput = params => {
+ if (!params.input) {
+ return;
+ }
+ if (!renderInputType[params.input]) {
+ error(`Unexpected type of input! Expected ${Object.keys(renderInputType).join(' | ')}, got "${params.input}"`);
+ return;
+ }
+ const inputContainer = getInputContainer(params.input);
+ if (!inputContainer) {
+ return;
+ }
+ const input = renderInputType[params.input](inputContainer, params);
+ show(inputContainer);
+
+ // input autofocus
+ if (params.inputAutoFocus) {
+ setTimeout(() => {
+ focusInput(input);
+ });
+ }
+};
+
+/**
+ * @param {HTMLInputElement} input
+ */
+const removeAttributes = input => {
+ for (let i = 0; i < input.attributes.length; i++) {
+ const attrName = input.attributes[i].name;
+ if (!['id', 'type', 'value', 'style'].includes(attrName)) {
+ input.removeAttribute(attrName);
+ }
+ }
+};
+
+/**
+ * @param {InputClass} inputClass
+ * @param {SweetAlertOptions['inputAttributes']} inputAttributes
+ */
+const setAttributes = (inputClass, inputAttributes) => {
+ const popup = getPopup();
+ if (!popup) {
+ return;
+ }
+ const input = getInput$1(popup, inputClass);
+ if (!input) {
+ return;
+ }
+ removeAttributes(input);
+ for (const attr in inputAttributes) {
+ input.setAttribute(attr, inputAttributes[attr]);
+ }
+};
+
+/**
+ * @param {SweetAlertOptions} params
+ */
+const setCustomClass = params => {
+ if (!params.input) {
+ return;
+ }
+ const inputContainer = getInputContainer(params.input);
+ if (inputContainer) {
+ applyCustomClass(inputContainer, params, 'input');
+ }
+};
+
+/**
+ * @param {HTMLInputElement | HTMLTextAreaElement} input
+ * @param {SweetAlertOptions} params
+ */
+const setInputPlaceholder = (input, params) => {
+ if (!input.placeholder && params.inputPlaceholder) {
+ input.placeholder = params.inputPlaceholder;
+ }
+};
+
+/**
+ * @param {Input} input
+ * @param {Input} prependTo
+ * @param {SweetAlertOptions} params
+ */
+const setInputLabel = (input, prependTo, params) => {
+ if (params.inputLabel) {
+ const label = document.createElement('label');
+ const labelClass = swalClasses['input-label'];
+ label.setAttribute('for', input.id);
+ label.className = labelClass;
+ if (typeof params.customClass === 'object') {
+ addClass(label, params.customClass.inputLabel);
+ }
+ label.innerText = params.inputLabel;
+ prependTo.insertAdjacentElement('beforebegin', label);
+ }
+};
+
+/**
+ * @param {SweetAlertInput} inputType
+ * @returns {HTMLElement | undefined}
+ */
+const getInputContainer = inputType => {
+ const popup = getPopup();
+ if (!popup) {
+ return;
+ }
+ return getDirectChildByClass(popup, swalClasses[(/** @type {SwalClass} */inputType)] || swalClasses.input);
+};
+
+/**
+ * @param {HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement} input
+ * @param {SweetAlertOptions['inputValue']} inputValue
+ */
+const checkAndSetInputValue = (input, inputValue) => {
+ if (['string', 'number'].includes(typeof inputValue)) {
+ input.value = `${inputValue}`;
+ } else if (!isPromise(inputValue)) {
+ warn(`Unexpected type of inputValue! Expected "string", "number" or "Promise", got "${typeof inputValue}"`);
+ }
+};
+
+/** @type {Record Input>} */
+const renderInputType = {};
+
+/**
+ * @param {HTMLInputElement} input
+ * @param {SweetAlertOptions} params
+ * @returns {HTMLInputElement}
+ */
+renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = renderInputType.search = renderInputType.date = renderInputType['datetime-local'] = renderInputType.time = renderInputType.week = renderInputType.month = /** @type {(input: Input | HTMLElement, params: SweetAlertOptions) => Input} */
+(input, params) => {
+ checkAndSetInputValue(input, params.inputValue);
+ setInputLabel(input, input, params);
+ setInputPlaceholder(input, params);
+ input.type = params.input;
+ return input;
+};
+
+/**
+ * @param {HTMLInputElement} input
+ * @param {SweetAlertOptions} params
+ * @returns {HTMLInputElement}
+ */
+renderInputType.file = (input, params) => {
+ setInputLabel(input, input, params);
+ setInputPlaceholder(input, params);
+ return input;
+};
+
+/**
+ * @param {HTMLInputElement} range
+ * @param {SweetAlertOptions} params
+ * @returns {HTMLInputElement}
+ */
+renderInputType.range = (range, params) => {
+ const rangeInput = range.querySelector('input');
+ const rangeOutput = range.querySelector('output');
+ checkAndSetInputValue(rangeInput, params.inputValue);
+ rangeInput.type = params.input;
+ checkAndSetInputValue(rangeOutput, params.inputValue);
+ setInputLabel(rangeInput, range, params);
+ return range;
+};
+
+/**
+ * @param {HTMLSelectElement} select
+ * @param {SweetAlertOptions} params
+ * @returns {HTMLSelectElement}
+ */
+renderInputType.select = (select, params) => {
+ select.textContent = '';
+ if (params.inputPlaceholder) {
+ const placeholder = document.createElement('option');
+ setInnerHtml(placeholder, params.inputPlaceholder);
+ placeholder.value = '';
+ placeholder.disabled = true;
+ placeholder.selected = true;
+ select.appendChild(placeholder);
+ }
+ setInputLabel(select, select, params);
+ return select;
+};
+
+/**
+ * @param {HTMLInputElement} radio
+ * @returns {HTMLInputElement}
+ */
+renderInputType.radio = radio => {
+ radio.textContent = '';
+ return radio;
+};
+
+/**
+ * @param {HTMLLabelElement} checkboxContainer
+ * @param {SweetAlertOptions} params
+ * @returns {HTMLInputElement}
+ */
+renderInputType.checkbox = (checkboxContainer, params) => {
+ const checkbox = getInput$1(getPopup(), 'checkbox');
+ checkbox.value = '1';
+ checkbox.checked = Boolean(params.inputValue);
+ const label = checkboxContainer.querySelector('span');
+ setInnerHtml(label, params.inputPlaceholder || params.inputLabel);
+ return checkbox;
+};
+
+/**
+ * @param {HTMLTextAreaElement} textarea
+ * @param {SweetAlertOptions} params
+ * @returns {HTMLTextAreaElement}
+ */
+renderInputType.textarea = (textarea, params) => {
+ checkAndSetInputValue(textarea, params.inputValue);
+ setInputPlaceholder(textarea, params);
+ setInputLabel(textarea, textarea, params);
+
+ /**
+ * @param {HTMLElement} el
+ * @returns {number}
+ */
+ const getMargin = el => parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight);
+
+ // https://github.com/sweetalert2/sweetalert2/issues/2291
+ setTimeout(() => {
+ // https://github.com/sweetalert2/sweetalert2/issues/1699
+ if ('MutationObserver' in window) {
+ const initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);
+ const textareaResizeHandler = () => {
+ // check if texarea is still in document (i.e. popup wasn't closed in the meantime)
+ if (!document.body.contains(textarea)) {
+ return;
+ }
+ const textareaWidth = textarea.offsetWidth + getMargin(textarea);
+ if (textareaWidth > initialPopupWidth) {
+ getPopup().style.width = `${textareaWidth}px`;
+ } else {
+ applyNumericalStyle(getPopup(), 'width', params.width);
+ }
+ };
+ new MutationObserver(textareaResizeHandler).observe(textarea, {
+ attributes: true,
+ attributeFilter: ['style']
+ });
+ }
+ });
+ return textarea;
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const renderContent = (instance, params) => {
+ const htmlContainer = getHtmlContainer();
+ if (!htmlContainer) {
+ return;
+ }
+ showWhenInnerHtmlPresent(htmlContainer);
+ applyCustomClass(htmlContainer, params, 'htmlContainer');
+
+ // Content as HTML
+ if (params.html) {
+ parseHtmlToContainer(params.html, htmlContainer);
+ show(htmlContainer, 'block');
+ }
+
+ // Content as plain text
+ else if (params.text) {
+ htmlContainer.textContent = params.text;
+ show(htmlContainer, 'block');
+ }
+
+ // No content
+ else {
+ hide(htmlContainer);
+ }
+ renderInput(instance, params);
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const renderFooter = (instance, params) => {
+ const footer = getFooter();
+ if (!footer) {
+ return;
+ }
+ showWhenInnerHtmlPresent(footer);
+ toggle(footer, params.footer, 'block');
+ if (params.footer) {
+ parseHtmlToContainer(params.footer, footer);
+ }
+
+ // Custom class
+ applyCustomClass(footer, params, 'footer');
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const renderIcon = (instance, params) => {
+ const innerParams = privateProps.innerParams.get(instance);
+ const icon = getIcon();
+ if (!icon) {
+ return;
+ }
+
+ // if the given icon already rendered, apply the styling without re-rendering the icon
+ if (innerParams && params.icon === innerParams.icon) {
+ // Custom or default content
+ setContent(icon, params);
+ applyStyles(icon, params);
+ return;
+ }
+ if (!params.icon && !params.iconHtml) {
+ hide(icon);
+ return;
+ }
+ if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {
+ error(`Unknown icon! Expected "success", "error", "warning", "info" or "question", got "${params.icon}"`);
+ hide(icon);
+ return;
+ }
+ show(icon);
+
+ // Custom or default content
+ setContent(icon, params);
+ applyStyles(icon, params);
+
+ // Animate icon
+ addClass(icon, params.showClass && params.showClass.icon);
+
+ // Re-adjust the success icon on system theme change
+ const colorSchemeQueryList = window.matchMedia('(prefers-color-scheme: dark)');
+ colorSchemeQueryList.addEventListener('change', adjustSuccessIconBackgroundColor);
+};
+
+/**
+ * @param {HTMLElement} icon
+ * @param {SweetAlertOptions} params
+ */
+const applyStyles = (icon, params) => {
+ for (const [iconType, iconClassName] of Object.entries(iconTypes)) {
+ if (params.icon !== iconType) {
+ removeClass(icon, iconClassName);
+ }
+ }
+ addClass(icon, params.icon && iconTypes[params.icon]);
+
+ // Icon color
+ setColor(icon, params);
+
+ // Success icon background color
+ adjustSuccessIconBackgroundColor();
+
+ // Custom class
+ applyCustomClass(icon, params, 'icon');
+};
+
+// Adjust success icon background color to match the popup background color
+const adjustSuccessIconBackgroundColor = () => {
+ const popup = getPopup();
+ if (!popup) {
+ return;
+ }
+ const popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');
+ /** @type {NodeListOf} */
+ const successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');
+ for (let i = 0; i < successIconParts.length; i++) {
+ successIconParts[i].style.backgroundColor = popupBackgroundColor;
+ }
+};
+const successIconHtml = `
+
+
+
+
+`;
+const errorIconHtml = `
+
+
+
+
+`;
+
+/**
+ * @param {HTMLElement} icon
+ * @param {SweetAlertOptions} params
+ */
+const setContent = (icon, params) => {
+ if (!params.icon && !params.iconHtml) {
+ return;
+ }
+ let oldContent = icon.innerHTML;
+ let newContent = '';
+ if (params.iconHtml) {
+ newContent = iconContent(params.iconHtml);
+ } else if (params.icon === 'success') {
+ newContent = successIconHtml;
+ oldContent = oldContent.replace(/ style=".*?"/g, ''); // undo adjustSuccessIconBackgroundColor()
+ } else if (params.icon === 'error') {
+ newContent = errorIconHtml;
+ } else if (params.icon) {
+ const defaultIconHtml = {
+ question: '?',
+ warning: '!',
+ info: 'i'
+ };
+ newContent = iconContent(defaultIconHtml[params.icon]);
+ }
+ if (oldContent.trim() !== newContent.trim()) {
+ setInnerHtml(icon, newContent);
+ }
+};
+
+/**
+ * @param {HTMLElement} icon
+ * @param {SweetAlertOptions} params
+ */
+const setColor = (icon, params) => {
+ if (!params.iconColor) {
+ return;
+ }
+ icon.style.color = params.iconColor;
+ icon.style.borderColor = params.iconColor;
+ for (const sel of ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']) {
+ setStyle(icon, sel, 'background-color', params.iconColor);
+ }
+ setStyle(icon, '.swal2-success-ring', 'border-color', params.iconColor);
+};
+
+/**
+ * @param {string} content
+ * @returns {string}
+ */
+const iconContent = content => `${content}
`;
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const renderImage = (instance, params) => {
+ const image = getImage();
+ if (!image) {
+ return;
+ }
+ if (!params.imageUrl) {
+ hide(image);
+ return;
+ }
+ show(image, '');
+
+ // Src, alt
+ image.setAttribute('src', params.imageUrl);
+ image.setAttribute('alt', params.imageAlt || '');
+
+ // Width, height
+ applyNumericalStyle(image, 'width', params.imageWidth);
+ applyNumericalStyle(image, 'height', params.imageHeight);
+
+ // Class
+ image.className = swalClasses.image;
+ applyCustomClass(image, params, 'image');
+};
+
+let dragging = false;
+let mousedownX = 0;
+let mousedownY = 0;
+let initialX = 0;
+let initialY = 0;
+
+/**
+ * @param {HTMLElement} popup
+ */
+const addDraggableListeners = popup => {
+ popup.addEventListener('mousedown', down);
+ document.body.addEventListener('mousemove', move);
+ popup.addEventListener('mouseup', up);
+ popup.addEventListener('touchstart', down);
+ document.body.addEventListener('touchmove', move);
+ popup.addEventListener('touchend', up);
+};
+
+/**
+ * @param {HTMLElement} popup
+ */
+const removeDraggableListeners = popup => {
+ popup.removeEventListener('mousedown', down);
+ document.body.removeEventListener('mousemove', move);
+ popup.removeEventListener('mouseup', up);
+ popup.removeEventListener('touchstart', down);
+ document.body.removeEventListener('touchmove', move);
+ popup.removeEventListener('touchend', up);
+};
+
+/**
+ * @param {MouseEvent | TouchEvent} event
+ */
+const down = event => {
+ const popup = getPopup();
+ if (event.target === popup || getIcon().contains(/** @type {HTMLElement} */event.target)) {
+ dragging = true;
+ const clientXY = getClientXY(event);
+ mousedownX = clientXY.clientX;
+ mousedownY = clientXY.clientY;
+ initialX = parseInt(popup.style.insetInlineStart) || 0;
+ initialY = parseInt(popup.style.insetBlockStart) || 0;
+ addClass(popup, 'swal2-dragging');
+ }
+};
+
+/**
+ * @param {MouseEvent | TouchEvent} event
+ */
+const move = event => {
+ const popup = getPopup();
+ if (dragging) {
+ let {
+ clientX,
+ clientY
+ } = getClientXY(event);
+ popup.style.insetInlineStart = `${initialX + (clientX - mousedownX)}px`;
+ popup.style.insetBlockStart = `${initialY + (clientY - mousedownY)}px`;
+ }
+};
+const up = () => {
+ const popup = getPopup();
+ dragging = false;
+ removeClass(popup, 'swal2-dragging');
+};
+
+/**
+ * @param {MouseEvent | TouchEvent} event
+ * @returns {{ clientX: number, clientY: number }}
+ */
+const getClientXY = event => {
+ let clientX = 0,
+ clientY = 0;
+ if (event.type.startsWith('mouse')) {
+ clientX = /** @type {MouseEvent} */event.clientX;
+ clientY = /** @type {MouseEvent} */event.clientY;
+ } else if (event.type.startsWith('touch')) {
+ clientX = /** @type {TouchEvent} */event.touches[0].clientX;
+ clientY = /** @type {TouchEvent} */event.touches[0].clientY;
+ }
+ return {
+ clientX,
+ clientY
+ };
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const renderPopup = (instance, params) => {
+ const container = getContainer();
+ const popup = getPopup();
+ if (!container || !popup) {
+ return;
+ }
+
+ // Width
+ // https://github.com/sweetalert2/sweetalert2/issues/2170
+ if (params.toast) {
+ applyNumericalStyle(container, 'width', params.width);
+ popup.style.width = '100%';
+ const loader = getLoader();
+ if (loader) {
+ popup.insertBefore(loader, getIcon());
+ }
+ } else {
+ applyNumericalStyle(popup, 'width', params.width);
+ }
+
+ // Padding
+ applyNumericalStyle(popup, 'padding', params.padding);
+
+ // Color
+ if (params.color) {
+ popup.style.color = params.color;
+ }
+
+ // Background
+ if (params.background) {
+ popup.style.background = params.background;
+ }
+ hide(getValidationMessage());
+
+ // Classes
+ addClasses$1(popup, params);
+ if (params.draggable && !params.toast) {
+ addClass(popup, swalClasses.draggable);
+ addDraggableListeners(popup);
+ } else {
+ removeClass(popup, swalClasses.draggable);
+ removeDraggableListeners(popup);
+ }
+};
+
+/**
+ * @param {HTMLElement} popup
+ * @param {SweetAlertOptions} params
+ */
+const addClasses$1 = (popup, params) => {
+ const showClass = params.showClass || {};
+ // Default Class + showClass when updating Swal.update({})
+ popup.className = `${swalClasses.popup} ${isVisible$1(popup) ? showClass.popup : ''}`;
+ if (params.toast) {
+ addClass([document.documentElement, document.body], swalClasses['toast-shown']);
+ addClass(popup, swalClasses.toast);
+ } else {
+ addClass(popup, swalClasses.modal);
+ }
+
+ // Custom class
+ applyCustomClass(popup, params, 'popup');
+ // TODO: remove in the next major
+ if (typeof params.customClass === 'string') {
+ addClass(popup, params.customClass);
+ }
+
+ // Icon class (#1842)
+ if (params.icon) {
+ addClass(popup, swalClasses[`icon-${params.icon}`]);
+ }
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const renderProgressSteps = (instance, params) => {
+ const progressStepsContainer = getProgressSteps();
+ if (!progressStepsContainer) {
+ return;
+ }
+ const {
+ progressSteps,
+ currentProgressStep
+ } = params;
+ if (!progressSteps || progressSteps.length === 0 || currentProgressStep === undefined) {
+ hide(progressStepsContainer);
+ return;
+ }
+ show(progressStepsContainer);
+ progressStepsContainer.textContent = '';
+ if (currentProgressStep >= progressSteps.length) {
+ warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');
+ }
+ progressSteps.forEach((step, index) => {
+ const stepEl = createStepElement(step);
+ progressStepsContainer.appendChild(stepEl);
+ if (index === currentProgressStep) {
+ addClass(stepEl, swalClasses['active-progress-step']);
+ }
+ if (index !== progressSteps.length - 1) {
+ const lineEl = createLineElement(params);
+ progressStepsContainer.appendChild(lineEl);
+ }
+ });
+};
+
+/**
+ * @param {string} step
+ * @returns {HTMLLIElement}
+ */
+const createStepElement = step => {
+ const stepEl = document.createElement('li');
+ addClass(stepEl, swalClasses['progress-step']);
+ setInnerHtml(stepEl, step);
+ return stepEl;
+};
+
+/**
+ * @param {SweetAlertOptions} params
+ * @returns {HTMLLIElement}
+ */
+const createLineElement = params => {
+ const lineEl = document.createElement('li');
+ addClass(lineEl, swalClasses['progress-step-line']);
+ if (params.progressStepsDistance) {
+ applyNumericalStyle(lineEl, 'width', params.progressStepsDistance);
+ }
+ return lineEl;
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const renderTitle = (instance, params) => {
+ const title = getTitle();
+ if (!title) {
+ return;
+ }
+ showWhenInnerHtmlPresent(title);
+ toggle(title, params.title || params.titleText, 'block');
+ if (params.title) {
+ parseHtmlToContainer(params.title, title);
+ }
+ if (params.titleText) {
+ title.innerText = params.titleText;
+ }
+
+ // Custom class
+ applyCustomClass(title, params, 'title');
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const render = (instance, params) => {
+ renderPopup(instance, params);
+ renderContainer(instance, params);
+ renderProgressSteps(instance, params);
+ renderIcon(instance, params);
+ renderImage(instance, params);
+ renderTitle(instance, params);
+ renderCloseButton(instance, params);
+ renderContent(instance, params);
+ renderActions(instance, params);
+ renderFooter(instance, params);
+ const popup = getPopup();
+ if (typeof params.didRender === 'function' && popup) {
+ params.didRender(popup);
+ }
+ globalState.eventEmitter.emit('didRender', popup);
+};
+
+/*
+ * Global function to determine if SweetAlert2 popup is shown
+ */
+const isVisible = () => {
+ return isVisible$1(getPopup());
+};
+
+/*
+ * Global function to click 'Confirm' button
+ */
+const clickConfirm = () => {
+ var _dom$getConfirmButton;
+ return (_dom$getConfirmButton = getConfirmButton()) === null || _dom$getConfirmButton === void 0 ? void 0 : _dom$getConfirmButton.click();
+};
+
+/*
+ * Global function to click 'Deny' button
+ */
+const clickDeny = () => {
+ var _dom$getDenyButton;
+ return (_dom$getDenyButton = getDenyButton()) === null || _dom$getDenyButton === void 0 ? void 0 : _dom$getDenyButton.click();
+};
+
+/*
+ * Global function to click 'Cancel' button
+ */
+const clickCancel = () => {
+ var _dom$getCancelButton;
+ return (_dom$getCancelButton = getCancelButton()) === null || _dom$getCancelButton === void 0 ? void 0 : _dom$getCancelButton.click();
+};
+
+/** @typedef {'cancel' | 'backdrop' | 'close' | 'esc' | 'timer'} DismissReason */
+
+/** @type {Record} */
+const DismissReason = Object.freeze({
+ cancel: 'cancel',
+ backdrop: 'backdrop',
+ close: 'close',
+ esc: 'esc',
+ timer: 'timer'
+});
+
+/**
+ * @param {GlobalState} globalState
+ */
+const removeKeydownHandler = globalState => {
+ if (globalState.keydownTarget && globalState.keydownHandlerAdded) {
+ globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {
+ capture: globalState.keydownListenerCapture
+ });
+ globalState.keydownHandlerAdded = false;
+ }
+};
+
+/**
+ * @param {GlobalState} globalState
+ * @param {SweetAlertOptions} innerParams
+ * @param {*} dismissWith
+ */
+const addKeydownHandler = (globalState, innerParams, dismissWith) => {
+ removeKeydownHandler(globalState);
+ if (!innerParams.toast) {
+ globalState.keydownHandler = e => keydownHandler(innerParams, e, dismissWith);
+ globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();
+ globalState.keydownListenerCapture = innerParams.keydownListenerCapture;
+ globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {
+ capture: globalState.keydownListenerCapture
+ });
+ globalState.keydownHandlerAdded = true;
+ }
+};
+
+/**
+ * @param {number} index
+ * @param {number} increment
+ */
+const setFocus = (index, increment) => {
+ var _dom$getPopup;
+ const focusableElements = getFocusableElements();
+ // search for visible elements and select the next possible match
+ if (focusableElements.length) {
+ index = index + increment;
+
+ // shift + tab when .swal2-popup is focused
+ if (index === -2) {
+ index = focusableElements.length - 1;
+ }
+
+ // rollover to first item
+ if (index === focusableElements.length) {
+ index = 0;
+
+ // go to last item
+ } else if (index === -1) {
+ index = focusableElements.length - 1;
+ }
+ focusableElements[index].focus();
+ return;
+ }
+ // no visible focusable elements, focus the popup
+ (_dom$getPopup = getPopup()) === null || _dom$getPopup === void 0 || _dom$getPopup.focus();
+};
+const arrowKeysNextButton = ['ArrowRight', 'ArrowDown'];
+const arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp'];
+
+/**
+ * @param {SweetAlertOptions} innerParams
+ * @param {KeyboardEvent} event
+ * @param {Function} dismissWith
+ */
+const keydownHandler = (innerParams, event, dismissWith) => {
+ if (!innerParams) {
+ return; // This instance has already been destroyed
+ }
+
+ // Ignore keydown during IME composition
+ // https://developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event#ignoring_keydown_during_ime_composition
+ // https://github.com/sweetalert2/sweetalert2/issues/720
+ // https://github.com/sweetalert2/sweetalert2/issues/2406
+ if (event.isComposing || event.keyCode === 229) {
+ return;
+ }
+ if (innerParams.stopKeydownPropagation) {
+ event.stopPropagation();
+ }
+
+ // ENTER
+ if (event.key === 'Enter') {
+ handleEnter(event, innerParams);
+ }
+
+ // TAB
+ else if (event.key === 'Tab') {
+ handleTab(event);
+ }
+
+ // ARROWS - switch focus between buttons
+ else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(event.key)) {
+ handleArrows(event.key);
+ }
+
+ // ESC
+ else if (event.key === 'Escape') {
+ handleEsc(event, innerParams, dismissWith);
+ }
+};
+
+/**
+ * @param {KeyboardEvent} event
+ * @param {SweetAlertOptions} innerParams
+ */
+const handleEnter = (event, innerParams) => {
+ // https://github.com/sweetalert2/sweetalert2/issues/2386
+ if (!callIfFunction(innerParams.allowEnterKey)) {
+ return;
+ }
+ const input = getInput$1(getPopup(), innerParams.input);
+ if (event.target && input && event.target instanceof HTMLElement && event.target.outerHTML === input.outerHTML) {
+ if (['textarea', 'file'].includes(innerParams.input)) {
+ return; // do not submit
+ }
+ clickConfirm();
+ event.preventDefault();
+ }
+};
+
+/**
+ * @param {KeyboardEvent} event
+ */
+const handleTab = event => {
+ const targetElement = event.target;
+ const focusableElements = getFocusableElements();
+ let btnIndex = -1;
+ for (let i = 0; i < focusableElements.length; i++) {
+ if (targetElement === focusableElements[i]) {
+ btnIndex = i;
+ break;
+ }
+ }
+
+ // Cycle to the next button
+ if (!event.shiftKey) {
+ setFocus(btnIndex, 1);
+ }
+
+ // Cycle to the prev button
+ else {
+ setFocus(btnIndex, -1);
+ }
+ event.stopPropagation();
+ event.preventDefault();
+};
+
+/**
+ * @param {string} key
+ */
+const handleArrows = key => {
+ const actions = getActions();
+ const confirmButton = getConfirmButton();
+ const denyButton = getDenyButton();
+ const cancelButton = getCancelButton();
+ if (!actions || !confirmButton || !denyButton || !cancelButton) {
+ return;
+ }
+ /** @type HTMLElement[] */
+ const buttons = [confirmButton, denyButton, cancelButton];
+ if (document.activeElement instanceof HTMLElement && !buttons.includes(document.activeElement)) {
+ return;
+ }
+ const sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling';
+ let buttonToFocus = document.activeElement;
+ if (!buttonToFocus) {
+ return;
+ }
+ for (let i = 0; i < actions.children.length; i++) {
+ buttonToFocus = buttonToFocus[sibling];
+ if (!buttonToFocus) {
+ return;
+ }
+ if (buttonToFocus instanceof HTMLButtonElement && isVisible$1(buttonToFocus)) {
+ break;
+ }
+ }
+ if (buttonToFocus instanceof HTMLButtonElement) {
+ buttonToFocus.focus();
+ }
+};
+
+/**
+ * @param {KeyboardEvent} event
+ * @param {SweetAlertOptions} innerParams
+ * @param {Function} dismissWith
+ */
+const handleEsc = (event, innerParams, dismissWith) => {
+ if (callIfFunction(innerParams.allowEscapeKey)) {
+ event.preventDefault();
+ dismissWith(DismissReason.esc);
+ }
+};
+
+/**
+ * This module contains `WeakMap`s for each effectively-"private property" that a `Swal` has.
+ * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')`
+ * This is the approach that Babel will probably take to implement private methods/fields
+ * https://github.com/tc39/proposal-private-methods
+ * https://github.com/babel/babel/pull/7555
+ * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*
+ * then we can use that language feature.
+ */
+
+var privateMethods = {
+ swalPromiseResolve: new WeakMap(),
+ swalPromiseReject: new WeakMap()
+};
+
+// From https://developer.paciellogroup.com/blog/2018/06/the-current-state-of-modal-dialog-accessibility/
+// Adding aria-hidden="true" to elements outside of the active modal dialog ensures that
+// elements not within the active modal dialog will not be surfaced if a user opens a screen
+// reader’s list of elements (headings, form controls, landmarks, etc.) in the document.
+
+const setAriaHidden = () => {
+ const container = getContainer();
+ const bodyChildren = Array.from(document.body.children);
+ bodyChildren.forEach(el => {
+ if (el.contains(container)) {
+ return;
+ }
+ if (el.hasAttribute('aria-hidden')) {
+ el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden') || '');
+ }
+ el.setAttribute('aria-hidden', 'true');
+ });
+};
+const unsetAriaHidden = () => {
+ const bodyChildren = Array.from(document.body.children);
+ bodyChildren.forEach(el => {
+ if (el.hasAttribute('data-previous-aria-hidden')) {
+ el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden') || '');
+ el.removeAttribute('data-previous-aria-hidden');
+ } else {
+ el.removeAttribute('aria-hidden');
+ }
+ });
+};
+
+// @ts-ignore
+const isSafariOrIOS = typeof window !== 'undefined' && !!window.GestureEvent; // true for Safari desktop + all iOS browsers https://stackoverflow.com/a/70585394
+
+/**
+ * Fix iOS scrolling
+ * http://stackoverflow.com/q/39626302
+ */
+const iOSfix = () => {
+ if (isSafariOrIOS && !hasClass(document.body, swalClasses.iosfix)) {
+ const offset = document.body.scrollTop;
+ document.body.style.top = `${offset * -1}px`;
+ addClass(document.body, swalClasses.iosfix);
+ lockBodyScroll();
+ }
+};
+
+/**
+ * https://github.com/sweetalert2/sweetalert2/issues/1246
+ */
+const lockBodyScroll = () => {
+ const container = getContainer();
+ if (!container) {
+ return;
+ }
+ /** @type {boolean} */
+ let preventTouchMove;
+ /**
+ * @param {TouchEvent} event
+ */
+ container.ontouchstart = event => {
+ preventTouchMove = shouldPreventTouchMove(event);
+ };
+ /**
+ * @param {TouchEvent} event
+ */
+ container.ontouchmove = event => {
+ if (preventTouchMove) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ };
+};
+
+/**
+ * @param {TouchEvent} event
+ * @returns {boolean}
+ */
+const shouldPreventTouchMove = event => {
+ const target = event.target;
+ const container = getContainer();
+ const htmlContainer = getHtmlContainer();
+ if (!container || !htmlContainer) {
+ return false;
+ }
+ if (isStylus(event) || isZoom(event)) {
+ return false;
+ }
+ if (target === container) {
+ return true;
+ }
+ if (!isScrollable(container) && target instanceof HTMLElement && !selfOrParentIsScrollable(target, htmlContainer) &&
+ // #2823
+ target.tagName !== 'INPUT' &&
+ // #1603
+ target.tagName !== 'TEXTAREA' &&
+ // #2266
+ !(isScrollable(htmlContainer) &&
+ // #1944
+ htmlContainer.contains(target))) {
+ return true;
+ }
+ return false;
+};
+
+/**
+ * https://github.com/sweetalert2/sweetalert2/issues/1786
+ *
+ * @param {*} event
+ * @returns {boolean}
+ */
+const isStylus = event => {
+ return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';
+};
+
+/**
+ * https://github.com/sweetalert2/sweetalert2/issues/1891
+ *
+ * @param {TouchEvent} event
+ * @returns {boolean}
+ */
+const isZoom = event => {
+ return event.touches && event.touches.length > 1;
+};
+const undoIOSfix = () => {
+ if (hasClass(document.body, swalClasses.iosfix)) {
+ const offset = parseInt(document.body.style.top, 10);
+ removeClass(document.body, swalClasses.iosfix);
+ document.body.style.top = '';
+ document.body.scrollTop = offset * -1;
+ }
+};
+
+/**
+ * Measure scrollbar width for padding body during modal show/hide
+ * https://github.com/twbs/bootstrap/blob/master/js/src/modal.js
+ *
+ * @returns {number}
+ */
+const measureScrollbar = () => {
+ const scrollDiv = document.createElement('div');
+ scrollDiv.className = swalClasses['scrollbar-measure'];
+ document.body.appendChild(scrollDiv);
+ const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
+ document.body.removeChild(scrollDiv);
+ return scrollbarWidth;
+};
+
+/**
+ * Remember state in cases where opening and handling a modal will fiddle with it.
+ * @type {number | null}
+ */
+let previousBodyPadding = null;
+
+/**
+ * @param {string} initialBodyOverflow
+ */
+const replaceScrollbarWithPadding = initialBodyOverflow => {
+ // for queues, do not do this more than once
+ if (previousBodyPadding !== null) {
+ return;
+ }
+ // if the body has overflow
+ if (document.body.scrollHeight > window.innerHeight || initialBodyOverflow === 'scroll' // https://github.com/sweetalert2/sweetalert2/issues/2663
+ ) {
+ // add padding so the content doesn't shift after removal of scrollbar
+ previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));
+ document.body.style.paddingRight = `${previousBodyPadding + measureScrollbar()}px`;
+ }
+};
+const undoReplaceScrollbarWithPadding = () => {
+ if (previousBodyPadding !== null) {
+ document.body.style.paddingRight = `${previousBodyPadding}px`;
+ previousBodyPadding = null;
+ }
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {HTMLElement} container
+ * @param {boolean} returnFocus
+ * @param {Function} didClose
+ */
+function removePopupAndResetState(instance, container, returnFocus, didClose) {
+ if (isToast()) {
+ triggerDidCloseAndDispose(instance, didClose);
+ } else {
+ restoreActiveElement(returnFocus).then(() => triggerDidCloseAndDispose(instance, didClose));
+ removeKeydownHandler(globalState);
+ }
+
+ // workaround for https://github.com/sweetalert2/sweetalert2/issues/2088
+ // for some reason removing the container in Safari will scroll the document to bottom
+ if (isSafariOrIOS) {
+ container.setAttribute('style', 'display:none !important');
+ container.removeAttribute('class');
+ container.innerHTML = '';
+ } else {
+ container.remove();
+ }
+ if (isModal()) {
+ undoReplaceScrollbarWithPadding();
+ undoIOSfix();
+ unsetAriaHidden();
+ }
+ removeBodyClasses();
+}
+
+/**
+ * Remove SweetAlert2 classes from body
+ */
+function removeBodyClasses() {
+ removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);
+}
+
+/**
+ * Instance method to close sweetAlert
+ *
+ * @param {any} resolveValue
+ */
+function close(resolveValue) {
+ resolveValue = prepareResolveValue(resolveValue);
+ const swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);
+ const didClose = triggerClosePopup(this);
+ if (this.isAwaitingPromise) {
+ // A swal awaiting for a promise (after a click on Confirm or Deny) cannot be dismissed anymore #2335
+ if (!resolveValue.isDismissed) {
+ handleAwaitingPromise(this);
+ swalPromiseResolve(resolveValue);
+ }
+ } else if (didClose) {
+ // Resolve Swal promise
+ swalPromiseResolve(resolveValue);
+ }
+}
+const triggerClosePopup = instance => {
+ const popup = getPopup();
+ if (!popup) {
+ return false;
+ }
+ const innerParams = privateProps.innerParams.get(instance);
+ if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {
+ return false;
+ }
+ removeClass(popup, innerParams.showClass.popup);
+ addClass(popup, innerParams.hideClass.popup);
+ const backdrop = getContainer();
+ removeClass(backdrop, innerParams.showClass.backdrop);
+ addClass(backdrop, innerParams.hideClass.backdrop);
+ handlePopupAnimation(instance, popup, innerParams);
+ return true;
+};
+
+/**
+ * @param {any} error
+ */
+function rejectPromise(error) {
+ const rejectPromise = privateMethods.swalPromiseReject.get(this);
+ handleAwaitingPromise(this);
+ if (rejectPromise) {
+ // Reject Swal promise
+ rejectPromise(error);
+ }
+}
+
+/**
+ * @param {SweetAlert} instance
+ */
+const handleAwaitingPromise = instance => {
+ if (instance.isAwaitingPromise) {
+ delete instance.isAwaitingPromise;
+ // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335
+ if (!privateProps.innerParams.get(instance)) {
+ instance._destroy();
+ }
+ }
+};
+
+/**
+ * @param {any} resolveValue
+ * @returns {SweetAlertResult}
+ */
+const prepareResolveValue = resolveValue => {
+ // When user calls Swal.close()
+ if (typeof resolveValue === 'undefined') {
+ return {
+ isConfirmed: false,
+ isDenied: false,
+ isDismissed: true
+ };
+ }
+ return Object.assign({
+ isConfirmed: false,
+ isDenied: false,
+ isDismissed: false
+ }, resolveValue);
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {HTMLElement} popup
+ * @param {SweetAlertOptions} innerParams
+ */
+const handlePopupAnimation = (instance, popup, innerParams) => {
+ var _globalState$eventEmi;
+ const container = getContainer();
+ // If animation is supported, animate
+ const animationIsSupported = hasCssAnimation(popup);
+ if (typeof innerParams.willClose === 'function') {
+ innerParams.willClose(popup);
+ }
+ (_globalState$eventEmi = globalState.eventEmitter) === null || _globalState$eventEmi === void 0 || _globalState$eventEmi.emit('willClose', popup);
+ if (animationIsSupported) {
+ animatePopup(instance, popup, container, innerParams.returnFocus, innerParams.didClose);
+ } else {
+ // Otherwise, remove immediately
+ removePopupAndResetState(instance, container, innerParams.returnFocus, innerParams.didClose);
+ }
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {HTMLElement} popup
+ * @param {HTMLElement} container
+ * @param {boolean} returnFocus
+ * @param {Function} didClose
+ */
+const animatePopup = (instance, popup, container, returnFocus, didClose) => {
+ globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose);
+ /**
+ * @param {AnimationEvent | TransitionEvent} e
+ */
+ const swalCloseAnimationFinished = function (e) {
+ if (e.target === popup) {
+ var _globalState$swalClos;
+ (_globalState$swalClos = globalState.swalCloseEventFinishedCallback) === null || _globalState$swalClos === void 0 || _globalState$swalClos.call(globalState);
+ delete globalState.swalCloseEventFinishedCallback;
+ popup.removeEventListener('animationend', swalCloseAnimationFinished);
+ popup.removeEventListener('transitionend', swalCloseAnimationFinished);
+ }
+ };
+ popup.addEventListener('animationend', swalCloseAnimationFinished);
+ popup.addEventListener('transitionend', swalCloseAnimationFinished);
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {Function} didClose
+ */
+const triggerDidCloseAndDispose = (instance, didClose) => {
+ setTimeout(() => {
+ var _globalState$eventEmi2;
+ if (typeof didClose === 'function') {
+ didClose.bind(instance.params)();
+ }
+ (_globalState$eventEmi2 = globalState.eventEmitter) === null || _globalState$eventEmi2 === void 0 || _globalState$eventEmi2.emit('didClose');
+ // instance might have been destroyed already
+ if (instance._destroy) {
+ instance._destroy();
+ }
+ });
+};
+
+/**
+ * Shows loader (spinner), this is useful with AJAX requests.
+ * By default the loader be shown instead of the "Confirm" button.
+ *
+ * @param {HTMLButtonElement | null} [buttonToReplace]
+ */
+const showLoading = buttonToReplace => {
+ let popup = getPopup();
+ if (!popup) {
+ new Swal();
+ }
+ popup = getPopup();
+ if (!popup) {
+ return;
+ }
+ const loader = getLoader();
+ if (isToast()) {
+ hide(getIcon());
+ } else {
+ replaceButton(popup, buttonToReplace);
+ }
+ show(loader);
+ popup.setAttribute('data-loading', 'true');
+ popup.setAttribute('aria-busy', 'true');
+ popup.focus();
+};
+
+/**
+ * @param {HTMLElement} popup
+ * @param {HTMLButtonElement | null} [buttonToReplace]
+ */
+const replaceButton = (popup, buttonToReplace) => {
+ const actions = getActions();
+ const loader = getLoader();
+ if (!actions || !loader) {
+ return;
+ }
+ if (!buttonToReplace && isVisible$1(getConfirmButton())) {
+ buttonToReplace = getConfirmButton();
+ }
+ show(actions);
+ if (buttonToReplace) {
+ hide(buttonToReplace);
+ loader.setAttribute('data-button-to-replace', buttonToReplace.className);
+ actions.insertBefore(loader, buttonToReplace);
+ }
+ addClass([popup, actions], swalClasses.loading);
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const handleInputOptionsAndValue = (instance, params) => {
+ if (params.input === 'select' || params.input === 'radio') {
+ handleInputOptions(instance, params);
+ } else if (['text', 'email', 'number', 'tel', 'textarea'].some(i => i === params.input) && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {
+ showLoading(getConfirmButton());
+ handleInputValue(instance, params);
+ }
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} innerParams
+ * @returns {SweetAlertInputValue}
+ */
+const getInputValue = (instance, innerParams) => {
+ const input = instance.getInput();
+ if (!input) {
+ return null;
+ }
+ switch (innerParams.input) {
+ case 'checkbox':
+ return getCheckboxValue(input);
+ case 'radio':
+ return getRadioValue(input);
+ case 'file':
+ return getFileValue(input);
+ default:
+ return innerParams.inputAutoTrim ? input.value.trim() : input.value;
+ }
+};
+
+/**
+ * @param {HTMLInputElement} input
+ * @returns {number}
+ */
+const getCheckboxValue = input => input.checked ? 1 : 0;
+
+/**
+ * @param {HTMLInputElement} input
+ * @returns {string | null}
+ */
+const getRadioValue = input => input.checked ? input.value : null;
+
+/**
+ * @param {HTMLInputElement} input
+ * @returns {FileList | File | null}
+ */
+const getFileValue = input => input.files && input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const handleInputOptions = (instance, params) => {
+ const popup = getPopup();
+ if (!popup) {
+ return;
+ }
+ /**
+ * @param {Record} inputOptions
+ */
+ const processInputOptions = inputOptions => {
+ if (params.input === 'select') {
+ populateSelectOptions(popup, formatInputOptions(inputOptions), params);
+ } else if (params.input === 'radio') {
+ populateRadioOptions(popup, formatInputOptions(inputOptions), params);
+ }
+ };
+ if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {
+ showLoading(getConfirmButton());
+ asPromise(params.inputOptions).then(inputOptions => {
+ instance.hideLoading();
+ processInputOptions(inputOptions);
+ });
+ } else if (typeof params.inputOptions === 'object') {
+ processInputOptions(params.inputOptions);
+ } else {
+ error(`Unexpected type of inputOptions! Expected object, Map or Promise, got ${typeof params.inputOptions}`);
+ }
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const handleInputValue = (instance, params) => {
+ const input = instance.getInput();
+ if (!input) {
+ return;
+ }
+ hide(input);
+ asPromise(params.inputValue).then(inputValue => {
+ input.value = params.input === 'number' ? `${parseFloat(inputValue) || 0}` : `${inputValue}`;
+ show(input);
+ input.focus();
+ instance.hideLoading();
+ }).catch(err => {
+ error(`Error in inputValue promise: ${err}`);
+ input.value = '';
+ show(input);
+ input.focus();
+ instance.hideLoading();
+ });
+};
+
+/**
+ * @param {HTMLElement} popup
+ * @param {InputOptionFlattened[]} inputOptions
+ * @param {SweetAlertOptions} params
+ */
+function populateSelectOptions(popup, inputOptions, params) {
+ const select = getDirectChildByClass(popup, swalClasses.select);
+ if (!select) {
+ return;
+ }
+ /**
+ * @param {HTMLElement} parent
+ * @param {string} optionLabel
+ * @param {string} optionValue
+ */
+ const renderOption = (parent, optionLabel, optionValue) => {
+ const option = document.createElement('option');
+ option.value = optionValue;
+ setInnerHtml(option, optionLabel);
+ option.selected = isSelected(optionValue, params.inputValue);
+ parent.appendChild(option);
+ };
+ inputOptions.forEach(inputOption => {
+ const optionValue = inputOption[0];
+ const optionLabel = inputOption[1];
+ // spec:
+ // https://www.w3.org/TR/html401/interact/forms.html#h-17.6
+ // "...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)..."
+ // check whether this is a
+ if (Array.isArray(optionLabel)) {
+ // if it is an array, then it is an
+ const optgroup = document.createElement('optgroup');
+ optgroup.label = optionValue;
+ optgroup.disabled = false; // not configurable for now
+ select.appendChild(optgroup);
+ optionLabel.forEach(o => renderOption(optgroup, o[1], o[0]));
+ } else {
+ // case of
+ renderOption(select, optionLabel, optionValue);
+ }
+ });
+ select.focus();
+}
+
+/**
+ * @param {HTMLElement} popup
+ * @param {InputOptionFlattened[]} inputOptions
+ * @param {SweetAlertOptions} params
+ */
+function populateRadioOptions(popup, inputOptions, params) {
+ const radio = getDirectChildByClass(popup, swalClasses.radio);
+ if (!radio) {
+ return;
+ }
+ inputOptions.forEach(inputOption => {
+ const radioValue = inputOption[0];
+ const radioLabel = inputOption[1];
+ const radioInput = document.createElement('input');
+ const radioLabelElement = document.createElement('label');
+ radioInput.type = 'radio';
+ radioInput.name = swalClasses.radio;
+ radioInput.value = radioValue;
+ if (isSelected(radioValue, params.inputValue)) {
+ radioInput.checked = true;
+ }
+ const label = document.createElement('span');
+ setInnerHtml(label, radioLabel);
+ label.className = swalClasses.label;
+ radioLabelElement.appendChild(radioInput);
+ radioLabelElement.appendChild(label);
+ radio.appendChild(radioLabelElement);
+ });
+ const radios = radio.querySelectorAll('input');
+ if (radios.length) {
+ radios[0].focus();
+ }
+}
+
+/**
+ * Converts `inputOptions` into an array of `[value, label]`s
+ *
+ * @param {Record} inputOptions
+ * @typedef {string[]} InputOptionFlattened
+ * @returns {InputOptionFlattened[]}
+ */
+const formatInputOptions = inputOptions => {
+ /** @type {InputOptionFlattened[]} */
+ const result = [];
+ if (inputOptions instanceof Map) {
+ inputOptions.forEach((value, key) => {
+ let valueFormatted = value;
+ if (typeof valueFormatted === 'object') {
+ // case of
+ valueFormatted = formatInputOptions(valueFormatted);
+ }
+ result.push([key, valueFormatted]);
+ });
+ } else {
+ Object.keys(inputOptions).forEach(key => {
+ let valueFormatted = inputOptions[key];
+ if (typeof valueFormatted === 'object') {
+ // case of
+ valueFormatted = formatInputOptions(valueFormatted);
+ }
+ result.push([key, valueFormatted]);
+ });
+ }
+ return result;
+};
+
+/**
+ * @param {string} optionValue
+ * @param {SweetAlertInputValue} inputValue
+ * @returns {boolean}
+ */
+const isSelected = (optionValue, inputValue) => {
+ return !!inputValue && inputValue.toString() === optionValue.toString();
+};
+
+/**
+ * @param {SweetAlert} instance
+ */
+const handleConfirmButtonClick = instance => {
+ const innerParams = privateProps.innerParams.get(instance);
+ instance.disableButtons();
+ if (innerParams.input) {
+ handleConfirmOrDenyWithInput(instance, 'confirm');
+ } else {
+ confirm(instance, true);
+ }
+};
+
+/**
+ * @param {SweetAlert} instance
+ */
+const handleDenyButtonClick = instance => {
+ const innerParams = privateProps.innerParams.get(instance);
+ instance.disableButtons();
+ if (innerParams.returnInputValueOnDeny) {
+ handleConfirmOrDenyWithInput(instance, 'deny');
+ } else {
+ deny(instance, false);
+ }
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {Function} dismissWith
+ */
+const handleCancelButtonClick = (instance, dismissWith) => {
+ instance.disableButtons();
+ dismissWith(DismissReason.cancel);
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {'confirm' | 'deny'} type
+ */
+const handleConfirmOrDenyWithInput = (instance, type) => {
+ const innerParams = privateProps.innerParams.get(instance);
+ if (!innerParams.input) {
+ error(`The "input" parameter is needed to be set when using returnInputValueOn${capitalizeFirstLetter(type)}`);
+ return;
+ }
+ const input = instance.getInput();
+ const inputValue = getInputValue(instance, innerParams);
+ if (innerParams.inputValidator) {
+ handleInputValidator(instance, inputValue, type);
+ } else if (input && !input.checkValidity()) {
+ instance.enableButtons();
+ instance.showValidationMessage(innerParams.validationMessage || input.validationMessage);
+ } else if (type === 'deny') {
+ deny(instance, inputValue);
+ } else {
+ confirm(instance, inputValue);
+ }
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertInputValue} inputValue
+ * @param {'confirm' | 'deny'} type
+ */
+const handleInputValidator = (instance, inputValue, type) => {
+ const innerParams = privateProps.innerParams.get(instance);
+ instance.disableInput();
+ const validationPromise = Promise.resolve().then(() => asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage)));
+ validationPromise.then(validationMessage => {
+ instance.enableButtons();
+ instance.enableInput();
+ if (validationMessage) {
+ instance.showValidationMessage(validationMessage);
+ } else if (type === 'deny') {
+ deny(instance, inputValue);
+ } else {
+ confirm(instance, inputValue);
+ }
+ });
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {any} value
+ */
+const deny = (instance, value) => {
+ const innerParams = privateProps.innerParams.get(instance || undefined);
+ if (innerParams.showLoaderOnDeny) {
+ showLoading(getDenyButton());
+ }
+ if (innerParams.preDeny) {
+ instance.isAwaitingPromise = true; // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preDeny's promise is received
+ const preDenyPromise = Promise.resolve().then(() => asPromise(innerParams.preDeny(value, innerParams.validationMessage)));
+ preDenyPromise.then(preDenyValue => {
+ if (preDenyValue === false) {
+ instance.hideLoading();
+ handleAwaitingPromise(instance);
+ } else {
+ instance.close({
+ isDenied: true,
+ value: typeof preDenyValue === 'undefined' ? value : preDenyValue
+ });
+ }
+ }).catch(error => rejectWith(instance || undefined, error));
+ } else {
+ instance.close({
+ isDenied: true,
+ value
+ });
+ }
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {any} value
+ */
+const succeedWith = (instance, value) => {
+ instance.close({
+ isConfirmed: true,
+ value
+ });
+};
+
+/**
+ *
+ * @param {SweetAlert} instance
+ * @param {string} error
+ */
+const rejectWith = (instance, error) => {
+ instance.rejectPromise(error);
+};
+
+/**
+ *
+ * @param {SweetAlert} instance
+ * @param {any} value
+ */
+const confirm = (instance, value) => {
+ const innerParams = privateProps.innerParams.get(instance || undefined);
+ if (innerParams.showLoaderOnConfirm) {
+ showLoading();
+ }
+ if (innerParams.preConfirm) {
+ instance.resetValidationMessage();
+ instance.isAwaitingPromise = true; // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preConfirm's promise is received
+ const preConfirmPromise = Promise.resolve().then(() => asPromise(innerParams.preConfirm(value, innerParams.validationMessage)));
+ preConfirmPromise.then(preConfirmValue => {
+ if (isVisible$1(getValidationMessage()) || preConfirmValue === false) {
+ instance.hideLoading();
+ handleAwaitingPromise(instance);
+ } else {
+ succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);
+ }
+ }).catch(error => rejectWith(instance || undefined, error));
+ } else {
+ succeedWith(instance, value);
+ }
+};
+
+/**
+ * Hides loader and shows back the button which was hidden by .showLoading()
+ */
+function hideLoading() {
+ // do nothing if popup is closed
+ const innerParams = privateProps.innerParams.get(this);
+ if (!innerParams) {
+ return;
+ }
+ const domCache = privateProps.domCache.get(this);
+ hide(domCache.loader);
+ if (isToast()) {
+ if (innerParams.icon) {
+ show(getIcon());
+ }
+ } else {
+ showRelatedButton(domCache);
+ }
+ removeClass([domCache.popup, domCache.actions], swalClasses.loading);
+ domCache.popup.removeAttribute('aria-busy');
+ domCache.popup.removeAttribute('data-loading');
+ domCache.confirmButton.disabled = false;
+ domCache.denyButton.disabled = false;
+ domCache.cancelButton.disabled = false;
+}
+const showRelatedButton = domCache => {
+ const buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace'));
+ if (buttonToReplace.length) {
+ show(buttonToReplace[0], 'inline-block');
+ } else if (allButtonsAreHidden()) {
+ hide(domCache.actions);
+ }
+};
+
+/**
+ * Gets the input DOM node, this method works with input parameter.
+ *
+ * @returns {HTMLInputElement | null}
+ */
+function getInput() {
+ const innerParams = privateProps.innerParams.get(this);
+ const domCache = privateProps.domCache.get(this);
+ if (!domCache) {
+ return null;
+ }
+ return getInput$1(domCache.popup, innerParams.input);
+}
+
+/**
+ * @param {SweetAlert} instance
+ * @param {string[]} buttons
+ * @param {boolean} disabled
+ */
+function setButtonsDisabled(instance, buttons, disabled) {
+ const domCache = privateProps.domCache.get(instance);
+ buttons.forEach(button => {
+ domCache[button].disabled = disabled;
+ });
+}
+
+/**
+ * @param {HTMLInputElement | null} input
+ * @param {boolean} disabled
+ */
+function setInputDisabled(input, disabled) {
+ const popup = getPopup();
+ if (!popup || !input) {
+ return;
+ }
+ if (input.type === 'radio') {
+ /** @type {NodeListOf} */
+ const radios = popup.querySelectorAll(`[name="${swalClasses.radio}"]`);
+ for (let i = 0; i < radios.length; i++) {
+ radios[i].disabled = disabled;
+ }
+ } else {
+ input.disabled = disabled;
+ }
+}
+
+/**
+ * Enable all the buttons
+ * @this {SweetAlert}
+ */
+function enableButtons() {
+ setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);
+}
+
+/**
+ * Disable all the buttons
+ * @this {SweetAlert}
+ */
+function disableButtons() {
+ setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);
+}
+
+/**
+ * Enable the input field
+ * @this {SweetAlert}
+ */
+function enableInput() {
+ setInputDisabled(this.getInput(), false);
+}
+
+/**
+ * Disable the input field
+ * @this {SweetAlert}
+ */
+function disableInput() {
+ setInputDisabled(this.getInput(), true);
+}
+
+/**
+ * Show block with validation message
+ *
+ * @param {string} error
+ * @this {SweetAlert}
+ */
+function showValidationMessage(error) {
+ const domCache = privateProps.domCache.get(this);
+ const params = privateProps.innerParams.get(this);
+ setInnerHtml(domCache.validationMessage, error);
+ domCache.validationMessage.className = swalClasses['validation-message'];
+ if (params.customClass && params.customClass.validationMessage) {
+ addClass(domCache.validationMessage, params.customClass.validationMessage);
+ }
+ show(domCache.validationMessage);
+ const input = this.getInput();
+ if (input) {
+ input.setAttribute('aria-invalid', 'true');
+ input.setAttribute('aria-describedby', swalClasses['validation-message']);
+ focusInput(input);
+ addClass(input, swalClasses.inputerror);
+ }
+}
+
+/**
+ * Hide block with validation message
+ *
+ * @this {SweetAlert}
+ */
+function resetValidationMessage() {
+ const domCache = privateProps.domCache.get(this);
+ if (domCache.validationMessage) {
+ hide(domCache.validationMessage);
+ }
+ const input = this.getInput();
+ if (input) {
+ input.removeAttribute('aria-invalid');
+ input.removeAttribute('aria-describedby');
+ removeClass(input, swalClasses.inputerror);
+ }
+}
+
+const defaultParams = {
+ title: '',
+ titleText: '',
+ text: '',
+ html: '',
+ footer: '',
+ icon: undefined,
+ iconColor: undefined,
+ iconHtml: undefined,
+ template: undefined,
+ toast: false,
+ draggable: false,
+ animation: true,
+ theme: 'light',
+ showClass: {
+ popup: 'swal2-show',
+ backdrop: 'swal2-backdrop-show',
+ icon: 'swal2-icon-show'
+ },
+ hideClass: {
+ popup: 'swal2-hide',
+ backdrop: 'swal2-backdrop-hide',
+ icon: 'swal2-icon-hide'
+ },
+ customClass: {},
+ target: 'body',
+ color: undefined,
+ backdrop: true,
+ heightAuto: true,
+ allowOutsideClick: true,
+ allowEscapeKey: true,
+ allowEnterKey: true,
+ stopKeydownPropagation: true,
+ keydownListenerCapture: false,
+ showConfirmButton: true,
+ showDenyButton: false,
+ showCancelButton: false,
+ preConfirm: undefined,
+ preDeny: undefined,
+ confirmButtonText: 'OK',
+ confirmButtonAriaLabel: '',
+ confirmButtonColor: undefined,
+ denyButtonText: 'No',
+ denyButtonAriaLabel: '',
+ denyButtonColor: undefined,
+ cancelButtonText: 'Cancel',
+ cancelButtonAriaLabel: '',
+ cancelButtonColor: undefined,
+ buttonsStyling: true,
+ reverseButtons: false,
+ focusConfirm: true,
+ focusDeny: false,
+ focusCancel: false,
+ returnFocus: true,
+ showCloseButton: false,
+ closeButtonHtml: '×',
+ closeButtonAriaLabel: 'Close this dialog',
+ loaderHtml: '',
+ showLoaderOnConfirm: false,
+ showLoaderOnDeny: false,
+ imageUrl: undefined,
+ imageWidth: undefined,
+ imageHeight: undefined,
+ imageAlt: '',
+ timer: undefined,
+ timerProgressBar: false,
+ width: undefined,
+ padding: undefined,
+ background: undefined,
+ input: undefined,
+ inputPlaceholder: '',
+ inputLabel: '',
+ inputValue: '',
+ inputOptions: {},
+ inputAutoFocus: true,
+ inputAutoTrim: true,
+ inputAttributes: {},
+ inputValidator: undefined,
+ returnInputValueOnDeny: false,
+ validationMessage: undefined,
+ grow: false,
+ position: 'center',
+ progressSteps: [],
+ currentProgressStep: undefined,
+ progressStepsDistance: undefined,
+ willOpen: undefined,
+ didOpen: undefined,
+ didRender: undefined,
+ willClose: undefined,
+ didClose: undefined,
+ didDestroy: undefined,
+ scrollbarPadding: true,
+ topLayer: false
+};
+const updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'color', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'draggable', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'preConfirm', 'preDeny', 'progressSteps', 'returnFocus', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'theme', 'willClose'];
+
+/** @type {Record} */
+const deprecatedParams = {
+ allowEnterKey: undefined
+};
+const toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'draggable', 'focusConfirm', 'focusDeny', 'focusCancel', 'returnFocus', 'heightAuto', 'keydownListenerCapture'];
+
+/**
+ * Is valid parameter
+ *
+ * @param {string} paramName
+ * @returns {boolean}
+ */
+const isValidParameter = paramName => {
+ return Object.prototype.hasOwnProperty.call(defaultParams, paramName);
+};
+
+/**
+ * Is valid parameter for Swal.update() method
+ *
+ * @param {string} paramName
+ * @returns {boolean}
+ */
+const isUpdatableParameter = paramName => {
+ return updatableParams.indexOf(paramName) !== -1;
+};
+
+/**
+ * Is deprecated parameter
+ *
+ * @param {string} paramName
+ * @returns {string | undefined}
+ */
+const isDeprecatedParameter = paramName => {
+ return deprecatedParams[paramName];
+};
+
+/**
+ * @param {string} param
+ */
+const checkIfParamIsValid = param => {
+ if (!isValidParameter(param)) {
+ warn(`Unknown parameter "${param}"`);
+ }
+};
+
+/**
+ * @param {string} param
+ */
+const checkIfToastParamIsValid = param => {
+ if (toastIncompatibleParams.includes(param)) {
+ warn(`The parameter "${param}" is incompatible with toasts`);
+ }
+};
+
+/**
+ * @param {string} param
+ */
+const checkIfParamIsDeprecated = param => {
+ const isDeprecated = isDeprecatedParameter(param);
+ if (isDeprecated) {
+ warnAboutDeprecation(param, isDeprecated);
+ }
+};
+
+/**
+ * Show relevant warnings for given params
+ *
+ * @param {SweetAlertOptions} params
+ */
+const showWarningsForParams = params => {
+ if (params.backdrop === false && params.allowOutsideClick) {
+ warn('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`');
+ }
+ if (params.theme && !['light', 'dark', 'auto', 'minimal', 'borderless', 'embed-iframe'].includes(params.theme)) {
+ warn(`Invalid theme "${params.theme}". Expected "light", "dark", "auto", "minimal", "borderless", or "embed-iframe"`);
+ }
+ for (const param in params) {
+ checkIfParamIsValid(param);
+ if (params.toast) {
+ checkIfToastParamIsValid(param);
+ }
+ checkIfParamIsDeprecated(param);
+ }
+};
+
+/**
+ * Updates popup parameters.
+ *
+ * @param {SweetAlertOptions} params
+ */
+function update(params) {
+ const container = getContainer();
+ const popup = getPopup();
+ const innerParams = privateProps.innerParams.get(this);
+ if (!popup || hasClass(popup, innerParams.hideClass.popup)) {
+ warn(`You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.`);
+ return;
+ }
+ const validUpdatableParams = filterValidParams(params);
+ const updatedParams = Object.assign({}, innerParams, validUpdatableParams);
+ showWarningsForParams(updatedParams);
+ container.dataset['swal2Theme'] = updatedParams.theme;
+ render(this, updatedParams);
+ privateProps.innerParams.set(this, updatedParams);
+ Object.defineProperties(this, {
+ params: {
+ value: Object.assign({}, this.params, params),
+ writable: false,
+ enumerable: true
+ }
+ });
+}
+
+/**
+ * @param {SweetAlertOptions} params
+ * @returns {SweetAlertOptions}
+ */
+const filterValidParams = params => {
+ const validUpdatableParams = {};
+ Object.keys(params).forEach(param => {
+ if (isUpdatableParameter(param)) {
+ validUpdatableParams[param] = params[param];
+ } else {
+ warn(`Invalid parameter to update: ${param}`);
+ }
+ });
+ return validUpdatableParams;
+};
+
+/**
+ * Dispose the current SweetAlert2 instance
+ */
+function _destroy() {
+ const domCache = privateProps.domCache.get(this);
+ const innerParams = privateProps.innerParams.get(this);
+ if (!innerParams) {
+ disposeWeakMaps(this); // The WeakMaps might have been partly destroyed, we must recall it to dispose any remaining WeakMaps #2335
+ return; // This instance has already been destroyed
+ }
+
+ // Check if there is another Swal closing
+ if (domCache.popup && globalState.swalCloseEventFinishedCallback) {
+ globalState.swalCloseEventFinishedCallback();
+ delete globalState.swalCloseEventFinishedCallback;
+ }
+ if (typeof innerParams.didDestroy === 'function') {
+ innerParams.didDestroy();
+ }
+ globalState.eventEmitter.emit('didDestroy');
+ disposeSwal(this);
+}
+
+/**
+ * @param {SweetAlert} instance
+ */
+const disposeSwal = instance => {
+ disposeWeakMaps(instance);
+ // Unset this.params so GC will dispose it (#1569)
+ delete instance.params;
+ // Unset globalState props so GC will dispose globalState (#1569)
+ delete globalState.keydownHandler;
+ delete globalState.keydownTarget;
+ // Unset currentInstance
+ delete globalState.currentInstance;
+};
+
+/**
+ * @param {SweetAlert} instance
+ */
+const disposeWeakMaps = instance => {
+ // If the current instance is awaiting a promise result, we keep the privateMethods to call them once the promise result is retrieved #2335
+ if (instance.isAwaitingPromise) {
+ unsetWeakMaps(privateProps, instance);
+ instance.isAwaitingPromise = true;
+ } else {
+ unsetWeakMaps(privateMethods, instance);
+ unsetWeakMaps(privateProps, instance);
+ delete instance.isAwaitingPromise;
+ // Unset instance methods
+ delete instance.disableButtons;
+ delete instance.enableButtons;
+ delete instance.getInput;
+ delete instance.disableInput;
+ delete instance.enableInput;
+ delete instance.hideLoading;
+ delete instance.disableLoading;
+ delete instance.showValidationMessage;
+ delete instance.resetValidationMessage;
+ delete instance.close;
+ delete instance.closePopup;
+ delete instance.closeModal;
+ delete instance.closeToast;
+ delete instance.rejectPromise;
+ delete instance.update;
+ delete instance._destroy;
+ }
+};
+
+/**
+ * @param {object} obj
+ * @param {SweetAlert} instance
+ */
+const unsetWeakMaps = (obj, instance) => {
+ for (const i in obj) {
+ obj[i].delete(instance);
+ }
+};
+
+var instanceMethods = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ _destroy: _destroy,
+ close: close,
+ closeModal: close,
+ closePopup: close,
+ closeToast: close,
+ disableButtons: disableButtons,
+ disableInput: disableInput,
+ disableLoading: hideLoading,
+ enableButtons: enableButtons,
+ enableInput: enableInput,
+ getInput: getInput,
+ handleAwaitingPromise: handleAwaitingPromise,
+ hideLoading: hideLoading,
+ rejectPromise: rejectPromise,
+ resetValidationMessage: resetValidationMessage,
+ showValidationMessage: showValidationMessage,
+ update: update
+});
+
+/**
+ * @param {SweetAlertOptions} innerParams
+ * @param {DomCache} domCache
+ * @param {Function} dismissWith
+ */
+const handlePopupClick = (innerParams, domCache, dismissWith) => {
+ if (innerParams.toast) {
+ handleToastClick(innerParams, domCache, dismissWith);
+ } else {
+ // Ignore click events that had mousedown on the popup but mouseup on the container
+ // This can happen when the user drags a slider
+ handleModalMousedown(domCache);
+
+ // Ignore click events that had mousedown on the container but mouseup on the popup
+ handleContainerMousedown(domCache);
+ handleModalClick(innerParams, domCache, dismissWith);
+ }
+};
+
+/**
+ * @param {SweetAlertOptions} innerParams
+ * @param {DomCache} domCache
+ * @param {Function} dismissWith
+ */
+const handleToastClick = (innerParams, domCache, dismissWith) => {
+ // Closing toast by internal click
+ domCache.popup.onclick = () => {
+ if (innerParams && (isAnyButtonShown(innerParams) || innerParams.timer || innerParams.input)) {
+ return;
+ }
+ dismissWith(DismissReason.close);
+ };
+};
+
+/**
+ * @param {SweetAlertOptions} innerParams
+ * @returns {boolean}
+ */
+const isAnyButtonShown = innerParams => {
+ return !!(innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton);
+};
+let ignoreOutsideClick = false;
+
+/**
+ * @param {DomCache} domCache
+ */
+const handleModalMousedown = domCache => {
+ domCache.popup.onmousedown = () => {
+ domCache.container.onmouseup = function (e) {
+ domCache.container.onmouseup = () => {};
+ // We only check if the mouseup target is the container because usually it doesn't
+ // have any other direct children aside of the popup
+ if (e.target === domCache.container) {
+ ignoreOutsideClick = true;
+ }
+ };
+ };
+};
+
+/**
+ * @param {DomCache} domCache
+ */
+const handleContainerMousedown = domCache => {
+ domCache.container.onmousedown = e => {
+ // prevent the modal text from being selected on double click on the container (allowOutsideClick: false)
+ if (e.target === domCache.container) {
+ e.preventDefault();
+ }
+ domCache.popup.onmouseup = function (e) {
+ domCache.popup.onmouseup = () => {};
+ // We also need to check if the mouseup target is a child of the popup
+ if (e.target === domCache.popup || e.target instanceof HTMLElement && domCache.popup.contains(e.target)) {
+ ignoreOutsideClick = true;
+ }
+ };
+ };
+};
+
+/**
+ * @param {SweetAlertOptions} innerParams
+ * @param {DomCache} domCache
+ * @param {Function} dismissWith
+ */
+const handleModalClick = (innerParams, domCache, dismissWith) => {
+ domCache.container.onclick = e => {
+ if (ignoreOutsideClick) {
+ ignoreOutsideClick = false;
+ return;
+ }
+ if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {
+ dismissWith(DismissReason.backdrop);
+ }
+ };
+};
+
+const isJqueryElement = elem => typeof elem === 'object' && elem.jquery;
+const isElement = elem => elem instanceof Element || isJqueryElement(elem);
+const argsToParams = args => {
+ const params = {};
+ if (typeof args[0] === 'object' && !isElement(args[0])) {
+ Object.assign(params, args[0]);
+ } else {
+ ['title', 'html', 'icon'].forEach((name, index) => {
+ const arg = args[index];
+ if (typeof arg === 'string' || isElement(arg)) {
+ params[name] = arg;
+ } else if (arg !== undefined) {
+ error(`Unexpected type of ${name}! Expected "string" or "Element", got ${typeof arg}`);
+ }
+ });
+ }
+ return params;
+};
+
+/**
+ * Main method to create a new SweetAlert2 popup
+ *
+ * @param {...SweetAlertOptions} args
+ * @returns {Promise}
+ */
+function fire(...args) {
+ return new this(...args);
+}
+
+/**
+ * Returns an extended version of `Swal` containing `params` as defaults.
+ * Useful for reusing Swal configuration.
+ *
+ * For example:
+ *
+ * Before:
+ * const textPromptOptions = { input: 'text', showCancelButton: true }
+ * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })
+ * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })
+ *
+ * After:
+ * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })
+ * const {value: firstName} = await TextPrompt('What is your first name?')
+ * const {value: lastName} = await TextPrompt('What is your last name?')
+ *
+ * @param {SweetAlertOptions} mixinParams
+ * @returns {SweetAlert}
+ */
+function mixin(mixinParams) {
+ class MixinSwal extends this {
+ _main(params, priorityMixinParams) {
+ return super._main(params, Object.assign({}, mixinParams, priorityMixinParams));
+ }
+ }
+ // @ts-ignore
+ return MixinSwal;
+}
+
+/**
+ * If `timer` parameter is set, returns number of milliseconds of timer remained.
+ * Otherwise, returns undefined.
+ *
+ * @returns {number | undefined}
+ */
+const getTimerLeft = () => {
+ return globalState.timeout && globalState.timeout.getTimerLeft();
+};
+
+/**
+ * Stop timer. Returns number of milliseconds of timer remained.
+ * If `timer` parameter isn't set, returns undefined.
+ *
+ * @returns {number | undefined}
+ */
+const stopTimer = () => {
+ if (globalState.timeout) {
+ stopTimerProgressBar();
+ return globalState.timeout.stop();
+ }
+};
+
+/**
+ * Resume timer. Returns number of milliseconds of timer remained.
+ * If `timer` parameter isn't set, returns undefined.
+ *
+ * @returns {number | undefined}
+ */
+const resumeTimer = () => {
+ if (globalState.timeout) {
+ const remaining = globalState.timeout.start();
+ animateTimerProgressBar(remaining);
+ return remaining;
+ }
+};
+
+/**
+ * Resume timer. Returns number of milliseconds of timer remained.
+ * If `timer` parameter isn't set, returns undefined.
+ *
+ * @returns {number | undefined}
+ */
+const toggleTimer = () => {
+ const timer = globalState.timeout;
+ return timer && (timer.running ? stopTimer() : resumeTimer());
+};
+
+/**
+ * Increase timer. Returns number of milliseconds of an updated timer.
+ * If `timer` parameter isn't set, returns undefined.
+ *
+ * @param {number} ms
+ * @returns {number | undefined}
+ */
+const increaseTimer = ms => {
+ if (globalState.timeout) {
+ const remaining = globalState.timeout.increase(ms);
+ animateTimerProgressBar(remaining, true);
+ return remaining;
+ }
+};
+
+/**
+ * Check if timer is running. Returns true if timer is running
+ * or false if timer is paused or stopped.
+ * If `timer` parameter isn't set, returns undefined
+ *
+ * @returns {boolean}
+ */
+const isTimerRunning = () => {
+ return !!(globalState.timeout && globalState.timeout.isRunning());
+};
+
+let bodyClickListenerAdded = false;
+const clickHandlers = {};
+
+/**
+ * @param {string} attr
+ */
+function bindClickHandler(attr = 'data-swal-template') {
+ clickHandlers[attr] = this;
+ if (!bodyClickListenerAdded) {
+ document.body.addEventListener('click', bodyClickListener);
+ bodyClickListenerAdded = true;
+ }
+}
+const bodyClickListener = event => {
+ for (let el = event.target; el && el !== document; el = el.parentNode) {
+ for (const attr in clickHandlers) {
+ const template = el.getAttribute(attr);
+ if (template) {
+ clickHandlers[attr].fire({
+ template
+ });
+ return;
+ }
+ }
+ }
+};
+
+// Source: https://gist.github.com/mudge/5830382?permalink_comment_id=2691957#gistcomment-2691957
+
+class EventEmitter {
+ constructor() {
+ /** @type {Events} */
+ this.events = {};
+ }
+
+ /**
+ * @param {string} eventName
+ * @returns {EventHandlers}
+ */
+ _getHandlersByEventName(eventName) {
+ if (typeof this.events[eventName] === 'undefined') {
+ // not Set because we need to keep the FIFO order
+ // https://github.com/sweetalert2/sweetalert2/pull/2763#discussion_r1748990334
+ this.events[eventName] = [];
+ }
+ return this.events[eventName];
+ }
+
+ /**
+ * @param {string} eventName
+ * @param {EventHandler} eventHandler
+ */
+ on(eventName, eventHandler) {
+ const currentHandlers = this._getHandlersByEventName(eventName);
+ if (!currentHandlers.includes(eventHandler)) {
+ currentHandlers.push(eventHandler);
+ }
+ }
+
+ /**
+ * @param {string} eventName
+ * @param {EventHandler} eventHandler
+ */
+ once(eventName, eventHandler) {
+ /**
+ * @param {Array} args
+ */
+ const onceFn = (...args) => {
+ this.removeListener(eventName, onceFn);
+ eventHandler.apply(this, args);
+ };
+ this.on(eventName, onceFn);
+ }
+
+ /**
+ * @param {string} eventName
+ * @param {Array} args
+ */
+ emit(eventName, ...args) {
+ this._getHandlersByEventName(eventName).forEach(
+ /**
+ * @param {EventHandler} eventHandler
+ */
+ eventHandler => {
+ try {
+ eventHandler.apply(this, args);
+ } catch (error) {
+ console.error(error);
+ }
+ });
+ }
+
+ /**
+ * @param {string} eventName
+ * @param {EventHandler} eventHandler
+ */
+ removeListener(eventName, eventHandler) {
+ const currentHandlers = this._getHandlersByEventName(eventName);
+ const index = currentHandlers.indexOf(eventHandler);
+ if (index > -1) {
+ currentHandlers.splice(index, 1);
+ }
+ }
+
+ /**
+ * @param {string} eventName
+ */
+ removeAllListeners(eventName) {
+ if (this.events[eventName] !== undefined) {
+ // https://github.com/sweetalert2/sweetalert2/pull/2763#discussion_r1749239222
+ this.events[eventName].length = 0;
+ }
+ }
+ reset() {
+ this.events = {};
+ }
+}
+
+globalState.eventEmitter = new EventEmitter();
+
+/**
+ * @param {string} eventName
+ * @param {EventHandler} eventHandler
+ */
+const on = (eventName, eventHandler) => {
+ globalState.eventEmitter.on(eventName, eventHandler);
+};
+
+/**
+ * @param {string} eventName
+ * @param {EventHandler} eventHandler
+ */
+const once = (eventName, eventHandler) => {
+ globalState.eventEmitter.once(eventName, eventHandler);
+};
+
+/**
+ * @param {string} [eventName]
+ * @param {EventHandler} [eventHandler]
+ */
+const off = (eventName, eventHandler) => {
+ // Remove all handlers for all events
+ if (!eventName) {
+ globalState.eventEmitter.reset();
+ return;
+ }
+ if (eventHandler) {
+ // Remove a specific handler
+ globalState.eventEmitter.removeListener(eventName, eventHandler);
+ } else {
+ // Remove all handlers for a specific event
+ globalState.eventEmitter.removeAllListeners(eventName);
+ }
+};
+
+var staticMethods = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ argsToParams: argsToParams,
+ bindClickHandler: bindClickHandler,
+ clickCancel: clickCancel,
+ clickConfirm: clickConfirm,
+ clickDeny: clickDeny,
+ enableLoading: showLoading,
+ fire: fire,
+ getActions: getActions,
+ getCancelButton: getCancelButton,
+ getCloseButton: getCloseButton,
+ getConfirmButton: getConfirmButton,
+ getContainer: getContainer,
+ getDenyButton: getDenyButton,
+ getFocusableElements: getFocusableElements,
+ getFooter: getFooter,
+ getHtmlContainer: getHtmlContainer,
+ getIcon: getIcon,
+ getIconContent: getIconContent,
+ getImage: getImage,
+ getInputLabel: getInputLabel,
+ getLoader: getLoader,
+ getPopup: getPopup,
+ getProgressSteps: getProgressSteps,
+ getTimerLeft: getTimerLeft,
+ getTimerProgressBar: getTimerProgressBar,
+ getTitle: getTitle,
+ getValidationMessage: getValidationMessage,
+ increaseTimer: increaseTimer,
+ isDeprecatedParameter: isDeprecatedParameter,
+ isLoading: isLoading,
+ isTimerRunning: isTimerRunning,
+ isUpdatableParameter: isUpdatableParameter,
+ isValidParameter: isValidParameter,
+ isVisible: isVisible,
+ mixin: mixin,
+ off: off,
+ on: on,
+ once: once,
+ resumeTimer: resumeTimer,
+ showLoading: showLoading,
+ stopTimer: stopTimer,
+ toggleTimer: toggleTimer
+});
+
+class Timer {
+ /**
+ * @param {Function} callback
+ * @param {number} delay
+ */
+ constructor(callback, delay) {
+ this.callback = callback;
+ this.remaining = delay;
+ this.running = false;
+ this.start();
+ }
+
+ /**
+ * @returns {number}
+ */
+ start() {
+ if (!this.running) {
+ this.running = true;
+ this.started = new Date();
+ this.id = setTimeout(this.callback, this.remaining);
+ }
+ return this.remaining;
+ }
+
+ /**
+ * @returns {number}
+ */
+ stop() {
+ if (this.started && this.running) {
+ this.running = false;
+ clearTimeout(this.id);
+ this.remaining -= new Date().getTime() - this.started.getTime();
+ }
+ return this.remaining;
+ }
+
+ /**
+ * @param {number} n
+ * @returns {number}
+ */
+ increase(n) {
+ const running = this.running;
+ if (running) {
+ this.stop();
+ }
+ this.remaining += n;
+ if (running) {
+ this.start();
+ }
+ return this.remaining;
+ }
+
+ /**
+ * @returns {number}
+ */
+ getTimerLeft() {
+ if (this.running) {
+ this.stop();
+ this.start();
+ }
+ return this.remaining;
+ }
+
+ /**
+ * @returns {boolean}
+ */
+ isRunning() {
+ return this.running;
+ }
+}
+
+const swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];
+
+/**
+ * @param {SweetAlertOptions} params
+ * @returns {SweetAlertOptions}
+ */
+const getTemplateParams = params => {
+ const template = typeof params.template === 'string' ? (/** @type {HTMLTemplateElement} */document.querySelector(params.template)) : params.template;
+ if (!template) {
+ return {};
+ }
+ /** @type {DocumentFragment} */
+ const templateContent = template.content;
+ showWarningsForElements(templateContent);
+ const result = Object.assign(getSwalParams(templateContent), getSwalFunctionParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams));
+ return result;
+};
+
+/**
+ * @param {DocumentFragment} templateContent
+ * @returns {Record}
+ */
+const getSwalParams = templateContent => {
+ /** @type {Record} */
+ const result = {};
+ /** @type {HTMLElement[]} */
+ const swalParams = Array.from(templateContent.querySelectorAll('swal-param'));
+ swalParams.forEach(param => {
+ showWarningsForAttributes(param, ['name', 'value']);
+ const paramName = /** @type {keyof SweetAlertOptions} */param.getAttribute('name');
+ const value = param.getAttribute('value');
+ if (!paramName || !value) {
+ return;
+ }
+ if (typeof defaultParams[paramName] === 'boolean') {
+ result[paramName] = value !== 'false';
+ } else if (typeof defaultParams[paramName] === 'object') {
+ result[paramName] = JSON.parse(value);
+ } else {
+ result[paramName] = value;
+ }
+ });
+ return result;
+};
+
+/**
+ * @param {DocumentFragment} templateContent
+ * @returns {Record}
+ */
+const getSwalFunctionParams = templateContent => {
+ /** @type {Record} */
+ const result = {};
+ /** @type {HTMLElement[]} */
+ const swalFunctions = Array.from(templateContent.querySelectorAll('swal-function-param'));
+ swalFunctions.forEach(param => {
+ const paramName = /** @type {keyof SweetAlertOptions} */param.getAttribute('name');
+ const value = param.getAttribute('value');
+ if (!paramName || !value) {
+ return;
+ }
+ result[paramName] = new Function(`return ${value}`)();
+ });
+ return result;
+};
+
+/**
+ * @param {DocumentFragment} templateContent
+ * @returns {Record}
+ */
+const getSwalButtons = templateContent => {
+ /** @type {Record} */
+ const result = {};
+ /** @type {HTMLElement[]} */
+ const swalButtons = Array.from(templateContent.querySelectorAll('swal-button'));
+ swalButtons.forEach(button => {
+ showWarningsForAttributes(button, ['type', 'color', 'aria-label']);
+ const type = button.getAttribute('type');
+ if (!type || !['confirm', 'cancel', 'deny'].includes(type)) {
+ return;
+ }
+ result[`${type}ButtonText`] = button.innerHTML;
+ result[`show${capitalizeFirstLetter(type)}Button`] = true;
+ if (button.hasAttribute('color')) {
+ result[`${type}ButtonColor`] = button.getAttribute('color');
+ }
+ if (button.hasAttribute('aria-label')) {
+ result[`${type}ButtonAriaLabel`] = button.getAttribute('aria-label');
+ }
+ });
+ return result;
+};
+
+/**
+ * @param {DocumentFragment} templateContent
+ * @returns {Pick}
+ */
+const getSwalImage = templateContent => {
+ const result = {};
+ /** @type {HTMLElement | null} */
+ const image = templateContent.querySelector('swal-image');
+ if (image) {
+ showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']);
+ if (image.hasAttribute('src')) {
+ result.imageUrl = image.getAttribute('src') || undefined;
+ }
+ if (image.hasAttribute('width')) {
+ result.imageWidth = image.getAttribute('width') || undefined;
+ }
+ if (image.hasAttribute('height')) {
+ result.imageHeight = image.getAttribute('height') || undefined;
+ }
+ if (image.hasAttribute('alt')) {
+ result.imageAlt = image.getAttribute('alt') || undefined;
+ }
+ }
+ return result;
+};
+
+/**
+ * @param {DocumentFragment} templateContent
+ * @returns {Record}
+ */
+const getSwalIcon = templateContent => {
+ const result = {};
+ /** @type {HTMLElement | null} */
+ const icon = templateContent.querySelector('swal-icon');
+ if (icon) {
+ showWarningsForAttributes(icon, ['type', 'color']);
+ if (icon.hasAttribute('type')) {
+ result.icon = icon.getAttribute('type');
+ }
+ if (icon.hasAttribute('color')) {
+ result.iconColor = icon.getAttribute('color');
+ }
+ result.iconHtml = icon.innerHTML;
+ }
+ return result;
+};
+
+/**
+ * @param {DocumentFragment} templateContent
+ * @returns {Record}
+ */
+const getSwalInput = templateContent => {
+ /** @type {Record} */
+ const result = {};
+ /** @type {HTMLElement | null} */
+ const input = templateContent.querySelector('swal-input');
+ if (input) {
+ showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']);
+ result.input = input.getAttribute('type') || 'text';
+ if (input.hasAttribute('label')) {
+ result.inputLabel = input.getAttribute('label');
+ }
+ if (input.hasAttribute('placeholder')) {
+ result.inputPlaceholder = input.getAttribute('placeholder');
+ }
+ if (input.hasAttribute('value')) {
+ result.inputValue = input.getAttribute('value');
+ }
+ }
+ /** @type {HTMLElement[]} */
+ const inputOptions = Array.from(templateContent.querySelectorAll('swal-input-option'));
+ if (inputOptions.length) {
+ result.inputOptions = {};
+ inputOptions.forEach(option => {
+ showWarningsForAttributes(option, ['value']);
+ const optionValue = option.getAttribute('value');
+ if (!optionValue) {
+ return;
+ }
+ const optionName = option.innerHTML;
+ result.inputOptions[optionValue] = optionName;
+ });
+ }
+ return result;
+};
+
+/**
+ * @param {DocumentFragment} templateContent
+ * @param {string[]} paramNames
+ * @returns {Record}
+ */
+const getSwalStringParams = (templateContent, paramNames) => {
+ /** @type {Record} */
+ const result = {};
+ for (const i in paramNames) {
+ const paramName = paramNames[i];
+ /** @type {HTMLElement | null} */
+ const tag = templateContent.querySelector(paramName);
+ if (tag) {
+ showWarningsForAttributes(tag, []);
+ result[paramName.replace(/^swal-/, '')] = tag.innerHTML.trim();
+ }
+ }
+ return result;
+};
+
+/**
+ * @param {DocumentFragment} templateContent
+ */
+const showWarningsForElements = templateContent => {
+ const allowedElements = swalStringParams.concat(['swal-param', 'swal-function-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']);
+ Array.from(templateContent.children).forEach(el => {
+ const tagName = el.tagName.toLowerCase();
+ if (!allowedElements.includes(tagName)) {
+ warn(`Unrecognized element <${tagName}>`);
+ }
+ });
+};
+
+/**
+ * @param {HTMLElement} el
+ * @param {string[]} allowedAttributes
+ */
+const showWarningsForAttributes = (el, allowedAttributes) => {
+ Array.from(el.attributes).forEach(attribute => {
+ if (allowedAttributes.indexOf(attribute.name) === -1) {
+ warn([`Unrecognized attribute "${attribute.name}" on <${el.tagName.toLowerCase()}>.`, `${allowedAttributes.length ? `Allowed attributes are: ${allowedAttributes.join(', ')}` : 'To set the value, use HTML within the element.'}`]);
+ }
+ });
+};
+
+const SHOW_CLASS_TIMEOUT = 10;
+
+/**
+ * Open popup, add necessary classes and styles, fix scrollbar
+ *
+ * @param {SweetAlertOptions} params
+ */
+const openPopup = params => {
+ const container = getContainer();
+ const popup = getPopup();
+ if (typeof params.willOpen === 'function') {
+ params.willOpen(popup);
+ }
+ globalState.eventEmitter.emit('willOpen', popup);
+ const bodyStyles = window.getComputedStyle(document.body);
+ const initialBodyOverflow = bodyStyles.overflowY;
+ addClasses(container, popup, params);
+
+ // scrolling is 'hidden' until animation is done, after that 'auto'
+ setTimeout(() => {
+ setScrollingVisibility(container, popup);
+ }, SHOW_CLASS_TIMEOUT);
+ if (isModal()) {
+ fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow);
+ setAriaHidden();
+ }
+ if (!isToast() && !globalState.previousActiveElement) {
+ globalState.previousActiveElement = document.activeElement;
+ }
+ if (typeof params.didOpen === 'function') {
+ setTimeout(() => params.didOpen(popup));
+ }
+ globalState.eventEmitter.emit('didOpen', popup);
+ removeClass(container, swalClasses['no-transition']);
+};
+
+/**
+ * @param {AnimationEvent} event
+ */
+const swalOpenAnimationFinished = event => {
+ const popup = getPopup();
+ if (event.target !== popup) {
+ return;
+ }
+ const container = getContainer();
+ popup.removeEventListener('animationend', swalOpenAnimationFinished);
+ popup.removeEventListener('transitionend', swalOpenAnimationFinished);
+ container.style.overflowY = 'auto';
+};
+
+/**
+ * @param {HTMLElement} container
+ * @param {HTMLElement} popup
+ */
+const setScrollingVisibility = (container, popup) => {
+ if (hasCssAnimation(popup)) {
+ container.style.overflowY = 'hidden';
+ popup.addEventListener('animationend', swalOpenAnimationFinished);
+ popup.addEventListener('transitionend', swalOpenAnimationFinished);
+ } else {
+ container.style.overflowY = 'auto';
+ }
+};
+
+/**
+ * @param {HTMLElement} container
+ * @param {boolean} scrollbarPadding
+ * @param {string} initialBodyOverflow
+ */
+const fixScrollContainer = (container, scrollbarPadding, initialBodyOverflow) => {
+ iOSfix();
+ if (scrollbarPadding && initialBodyOverflow !== 'hidden') {
+ replaceScrollbarWithPadding(initialBodyOverflow);
+ }
+
+ // sweetalert2/issues/1247
+ setTimeout(() => {
+ container.scrollTop = 0;
+ });
+};
+
+/**
+ * @param {HTMLElement} container
+ * @param {HTMLElement} popup
+ * @param {SweetAlertOptions} params
+ */
+const addClasses = (container, popup, params) => {
+ addClass(container, params.showClass.backdrop);
+ if (params.animation) {
+ // this workaround with opacity is needed for https://github.com/sweetalert2/sweetalert2/issues/2059
+ popup.style.setProperty('opacity', '0', 'important');
+ show(popup, 'grid');
+ setTimeout(() => {
+ // Animate popup right after showing it
+ addClass(popup, params.showClass.popup);
+ // and remove the opacity workaround
+ popup.style.removeProperty('opacity');
+ }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062
+ } else {
+ show(popup, 'grid');
+ }
+ addClass([document.documentElement, document.body], swalClasses.shown);
+ if (params.heightAuto && params.backdrop && !params.toast) {
+ addClass([document.documentElement, document.body], swalClasses['height-auto']);
+ }
+};
+
+var defaultInputValidators = {
+ /**
+ * @param {string} string
+ * @param {string} [validationMessage]
+ * @returns {Promise}
+ */
+ email: (string, validationMessage) => {
+ return /^[a-zA-Z0-9.+_'-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]+$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');
+ },
+ /**
+ * @param {string} string
+ * @param {string} [validationMessage]
+ * @returns {Promise}
+ */
+ url: (string, validationMessage) => {
+ // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013
+ return /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');
+ }
+};
+
+/**
+ * @param {SweetAlertOptions} params
+ */
+function setDefaultInputValidators(params) {
+ // Use default `inputValidator` for supported input types if not provided
+ if (params.inputValidator) {
+ return;
+ }
+ if (params.input === 'email') {
+ params.inputValidator = defaultInputValidators['email'];
+ }
+ if (params.input === 'url') {
+ params.inputValidator = defaultInputValidators['url'];
+ }
+}
+
+/**
+ * @param {SweetAlertOptions} params
+ */
+function validateCustomTargetElement(params) {
+ // Determine if the custom target element is valid
+ if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {
+ warn('Target parameter is not valid, defaulting to "body"');
+ params.target = 'body';
+ }
+}
+
+/**
+ * Set type, text and actions on popup
+ *
+ * @param {SweetAlertOptions} params
+ */
+function setParameters(params) {
+ setDefaultInputValidators(params);
+
+ // showLoaderOnConfirm && preConfirm
+ if (params.showLoaderOnConfirm && !params.preConfirm) {
+ warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\n' + 'https://sweetalert2.github.io/#ajax-request');
+ }
+ validateCustomTargetElement(params);
+
+ // Replace newlines with in title
+ if (typeof params.title === 'string') {
+ params.title = params.title.split('\n').join(' ');
+ }
+ init(params);
+}
+
+/** @type {SweetAlert} */
+let currentInstance;
+var _promise = /*#__PURE__*/new WeakMap();
+class SweetAlert {
+ /**
+ * @param {...any} args
+ * @this {SweetAlert}
+ */
+ constructor(...args) {
+ /**
+ * @type {Promise}
+ */
+ _classPrivateFieldInitSpec(this, _promise, void 0);
+ // Prevent run in Node env
+ if (typeof window === 'undefined') {
+ return;
+ }
+ currentInstance = this;
+
+ // @ts-ignore
+ const outerParams = Object.freeze(this.constructor.argsToParams(args));
+
+ /** @type {Readonly} */
+ this.params = outerParams;
+
+ /** @type {boolean} */
+ this.isAwaitingPromise = false;
+ _classPrivateFieldSet2(_promise, this, this._main(currentInstance.params));
+ }
+ _main(userParams, mixinParams = {}) {
+ showWarningsForParams(Object.assign({}, mixinParams, userParams));
+ if (globalState.currentInstance) {
+ const swalPromiseResolve = privateMethods.swalPromiseResolve.get(globalState.currentInstance);
+ const {
+ isAwaitingPromise
+ } = globalState.currentInstance;
+ globalState.currentInstance._destroy();
+ if (!isAwaitingPromise) {
+ swalPromiseResolve({
+ isDismissed: true
+ });
+ }
+ if (isModal()) {
+ unsetAriaHidden();
+ }
+ }
+ globalState.currentInstance = currentInstance;
+ const innerParams = prepareParams(userParams, mixinParams);
+ setParameters(innerParams);
+ Object.freeze(innerParams);
+
+ // clear the previous timer
+ if (globalState.timeout) {
+ globalState.timeout.stop();
+ delete globalState.timeout;
+ }
+
+ // clear the restore focus timeout
+ clearTimeout(globalState.restoreFocusTimeout);
+ const domCache = populateDomCache(currentInstance);
+ render(currentInstance, innerParams);
+ privateProps.innerParams.set(currentInstance, innerParams);
+ return swalPromise(currentInstance, domCache, innerParams);
+ }
+
+ // `catch` cannot be the name of a module export, so we define our thenable methods here instead
+ then(onFulfilled) {
+ return _classPrivateFieldGet2(_promise, this).then(onFulfilled);
+ }
+ finally(onFinally) {
+ return _classPrivateFieldGet2(_promise, this).finally(onFinally);
+ }
+}
+
+/**
+ * @param {SweetAlert} instance
+ * @param {DomCache} domCache
+ * @param {SweetAlertOptions} innerParams
+ * @returns {Promise}
+ */
+const swalPromise = (instance, domCache, innerParams) => {
+ return new Promise((resolve, reject) => {
+ // functions to handle all closings/dismissals
+ /**
+ * @param {DismissReason} dismiss
+ */
+ const dismissWith = dismiss => {
+ instance.close({
+ isDismissed: true,
+ dismiss
+ });
+ };
+ privateMethods.swalPromiseResolve.set(instance, resolve);
+ privateMethods.swalPromiseReject.set(instance, reject);
+ domCache.confirmButton.onclick = () => {
+ handleConfirmButtonClick(instance);
+ };
+ domCache.denyButton.onclick = () => {
+ handleDenyButtonClick(instance);
+ };
+ domCache.cancelButton.onclick = () => {
+ handleCancelButtonClick(instance, dismissWith);
+ };
+ domCache.closeButton.onclick = () => {
+ dismissWith(DismissReason.close);
+ };
+ handlePopupClick(innerParams, domCache, dismissWith);
+ addKeydownHandler(globalState, innerParams, dismissWith);
+ handleInputOptionsAndValue(instance, innerParams);
+ openPopup(innerParams);
+ setupTimer(globalState, innerParams, dismissWith);
+ initFocus(domCache, innerParams);
+
+ // Scroll container to top on open (#1247, #1946)
+ setTimeout(() => {
+ domCache.container.scrollTop = 0;
+ });
+ });
+};
+
+/**
+ * @param {SweetAlertOptions} userParams
+ * @param {SweetAlertOptions} mixinParams
+ * @returns {SweetAlertOptions}
+ */
+const prepareParams = (userParams, mixinParams) => {
+ const templateParams = getTemplateParams(userParams);
+ const params = Object.assign({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131
+ params.showClass = Object.assign({}, defaultParams.showClass, params.showClass);
+ params.hideClass = Object.assign({}, defaultParams.hideClass, params.hideClass);
+ if (params.animation === false) {
+ params.showClass = {
+ backdrop: 'swal2-noanimation'
+ };
+ params.hideClass = {};
+ }
+ return params;
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @returns {DomCache}
+ */
+const populateDomCache = instance => {
+ const domCache = {
+ popup: getPopup(),
+ container: getContainer(),
+ actions: getActions(),
+ confirmButton: getConfirmButton(),
+ denyButton: getDenyButton(),
+ cancelButton: getCancelButton(),
+ loader: getLoader(),
+ closeButton: getCloseButton(),
+ validationMessage: getValidationMessage(),
+ progressSteps: getProgressSteps()
+ };
+ privateProps.domCache.set(instance, domCache);
+ return domCache;
+};
+
+/**
+ * @param {GlobalState} globalState
+ * @param {SweetAlertOptions} innerParams
+ * @param {Function} dismissWith
+ */
+const setupTimer = (globalState, innerParams, dismissWith) => {
+ const timerProgressBar = getTimerProgressBar();
+ hide(timerProgressBar);
+ if (innerParams.timer) {
+ globalState.timeout = new Timer(() => {
+ dismissWith('timer');
+ delete globalState.timeout;
+ }, innerParams.timer);
+ if (innerParams.timerProgressBar) {
+ show(timerProgressBar);
+ applyCustomClass(timerProgressBar, innerParams, 'timerProgressBar');
+ setTimeout(() => {
+ if (globalState.timeout && globalState.timeout.running) {
+ // timer can be already stopped or unset at this point
+ animateTimerProgressBar(innerParams.timer);
+ }
+ });
+ }
+ }
+};
+
+/**
+ * Initialize focus in the popup:
+ *
+ * 1. If `toast` is `true`, don't steal focus from the document.
+ * 2. Else if there is an [autofocus] element, focus it.
+ * 3. Else if `focusConfirm` is `true` and confirm button is visible, focus it.
+ * 4. Else if `focusDeny` is `true` and deny button is visible, focus it.
+ * 5. Else if `focusCancel` is `true` and cancel button is visible, focus it.
+ * 6. Else focus the first focusable element in a popup (if any).
+ *
+ * @param {DomCache} domCache
+ * @param {SweetAlertOptions} innerParams
+ */
+const initFocus = (domCache, innerParams) => {
+ if (innerParams.toast) {
+ return;
+ }
+ // TODO: this is dumb, remove `allowEnterKey` param in the next major version
+ if (!callIfFunction(innerParams.allowEnterKey)) {
+ warnAboutDeprecation('allowEnterKey');
+ blurActiveElement();
+ return;
+ }
+ if (focusAutofocus(domCache)) {
+ return;
+ }
+ if (focusButton(domCache, innerParams)) {
+ return;
+ }
+ setFocus(-1, 1);
+};
+
+/**
+ * @param {DomCache} domCache
+ * @returns {boolean}
+ */
+const focusAutofocus = domCache => {
+ const autofocusElements = Array.from(domCache.popup.querySelectorAll('[autofocus]'));
+ for (const autofocusElement of autofocusElements) {
+ if (autofocusElement instanceof HTMLElement && isVisible$1(autofocusElement)) {
+ autofocusElement.focus();
+ return true;
+ }
+ }
+ return false;
+};
+
+/**
+ * @param {DomCache} domCache
+ * @param {SweetAlertOptions} innerParams
+ * @returns {boolean}
+ */
+const focusButton = (domCache, innerParams) => {
+ if (innerParams.focusDeny && isVisible$1(domCache.denyButton)) {
+ domCache.denyButton.focus();
+ return true;
+ }
+ if (innerParams.focusCancel && isVisible$1(domCache.cancelButton)) {
+ domCache.cancelButton.focus();
+ return true;
+ }
+ if (innerParams.focusConfirm && isVisible$1(domCache.confirmButton)) {
+ domCache.confirmButton.focus();
+ return true;
+ }
+ return false;
+};
+const blurActiveElement = () => {
+ if (document.activeElement instanceof HTMLElement && typeof document.activeElement.blur === 'function') {
+ document.activeElement.blur();
+ }
+};
+
+// Dear russian users visiting russian sites. Let's have fun.
+if (typeof window !== 'undefined' && /^ru\b/.test(navigator.language) && location.host.match(/\.(ru|su|by|xn--p1ai)$/)) {
+ const now = new Date();
+ const initiationDate = localStorage.getItem('swal-initiation');
+ if (!initiationDate) {
+ localStorage.setItem('swal-initiation', `${now}`);
+ } else if ((now.getTime() - Date.parse(initiationDate)) / (1000 * 60 * 60 * 24) > 3) {
+ setTimeout(() => {
+ document.body.style.pointerEvents = 'none';
+ const ukrainianAnthem = document.createElement('audio');
+ ukrainianAnthem.src = 'https://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3';
+ ukrainianAnthem.loop = true;
+ document.body.appendChild(ukrainianAnthem);
+ setTimeout(() => {
+ ukrainianAnthem.play().catch(() => {
+ // ignore
+ });
+ }, 2500);
+ }, 500);
+ }
+}
+
+// Assign instance methods from src/instanceMethods/*.js to prototype
+SweetAlert.prototype.disableButtons = disableButtons;
+SweetAlert.prototype.enableButtons = enableButtons;
+SweetAlert.prototype.getInput = getInput;
+SweetAlert.prototype.disableInput = disableInput;
+SweetAlert.prototype.enableInput = enableInput;
+SweetAlert.prototype.hideLoading = hideLoading;
+SweetAlert.prototype.disableLoading = hideLoading;
+SweetAlert.prototype.showValidationMessage = showValidationMessage;
+SweetAlert.prototype.resetValidationMessage = resetValidationMessage;
+SweetAlert.prototype.close = close;
+SweetAlert.prototype.closePopup = close;
+SweetAlert.prototype.closeModal = close;
+SweetAlert.prototype.closeToast = close;
+SweetAlert.prototype.rejectPromise = rejectPromise;
+SweetAlert.prototype.update = update;
+SweetAlert.prototype._destroy = _destroy;
+
+// Assign static methods from src/staticMethods/*.js to constructor
+Object.assign(SweetAlert, staticMethods);
+
+// Proxy to instance methods to constructor, for now, for backwards compatibility
+Object.keys(instanceMethods).forEach(key => {
+ /**
+ * @param {...any} args
+ * @returns {any | undefined}
+ */
+ SweetAlert[key] = function (...args) {
+ if (currentInstance && currentInstance[key]) {
+ return currentInstance[key](...args);
+ }
+ return null;
+ };
+});
+SweetAlert.DismissReason = DismissReason;
+SweetAlert.version = '11.21.1';
+
+const Swal = SweetAlert;
+// @ts-ignore
+Swal.default = Swal;
+
+export { Swal as default };
+"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,":root{--swal2-outline: 0 0 0 3px rgba(100, 150, 200, 0.5);--swal2-container-padding: 0.625em;--swal2-backdrop: rgba(0, 0, 0, 0.4);--swal2-backdrop-transition: background-color 0.1s;--swal2-width: 32em;--swal2-padding: 0 0 1.25em;--swal2-border: none;--swal2-border-radius: 0.3125rem;--swal2-background: white;--swal2-color: #545454;--swal2-footer-border-color: #eee;--swal2-show-animation: swal2-show 0.3s;--swal2-hide-animation: swal2-hide 0.15s forwards;--swal2-icon-zoom: 1;--swal2-icon-animations: true;--swal2-title-padding: 0.8em 1em 0;--swal2-html-container-padding: 1em 1.6em 0.3em;--swal2-input-border-radius: 0.1875em;--swal2-input-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px transparent;--swal2-input-background: transparent;--swal2-input-transition: border-color 0.1s, box-shadow 0.1s;--swal2-progress-step-background: #add8e6;--swal2-validation-message-background: #f0f0f0;--swal2-validation-message-color: #666;--swal2-close-button-position: initial;--swal2-close-button-inset: auto;--swal2-close-button-font-size: 2.5em;--swal2-close-button-color: #ccc;--swal2-close-button-transition: color 0.1s, box-shadow 0.1s;--swal2-close-button-outline: initial;--swal2-close-button-box-shadow: inset 0 0 0 3px transparent;--swal2-close-button-focus-box-shadow: inset var(--swal2-outline);--swal2-close-button-hover-transform: none;--swal2-button-darken-hover: rgba(0, 0, 0, 0.1);--swal2-button-darken-active: rgba(0, 0, 0, 0.2);--swal2-button-transition: box-shadow 0.1s;--swal2-confirm-button-border: 0;--swal2-confirm-button-border-radius: 0.25em;--swal2-confirm-button-background-color: #7066e0;--swal2-deny-button-border: 0;--swal2-deny-button-border-radius: 0.25em;--swal2-deny-button-background-color: #dc3741;--swal2-cancel-button-border: 0;--swal2-cancel-button-border-radius: 0.25em;--swal2-cancel-button-background-color: #6e7881;--swal2-toast-show-animation: swal2-toast-show 0.5s;--swal2-toast-hide-animation: swal2-toast-hide 0.1s forwards;--swal2-toast-border: none;--swal2-toast-box-shadow: 0 0 1px hsl(0deg 0% 0% / 0.075), 0 1px 2px hsl(0deg 0% 0% / 0.075), 1px 2px 4px hsl(0deg 0% 0% / 0.075), 1px 3px 8px hsl(0deg 0% 0% / 0.075), 2px 4px 16px hsl(0deg 0% 0% / 0.075)}[data-swal2-theme=dark]{--swal2-dark-theme-black: #19191a;--swal2-dark-theme-white: #e1e1e1;--swal2-background: var(--swal2-dark-theme-black);--swal2-color: var(--swal2-dark-theme-white);--swal2-footer-border-color: #555;--swal2-input-background: color-mix(in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10%);--swal2-validation-message-background: color-mix( in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10% );--swal2-validation-message-color: var(--swal2-dark-theme-white)}@media(prefers-color-scheme: dark){[data-swal2-theme=auto]{--swal2-dark-theme-black: #19191a;--swal2-dark-theme-white: #e1e1e1;--swal2-background: var(--swal2-dark-theme-black);--swal2-color: var(--swal2-dark-theme-white);--swal2-footer-border-color: #555;--swal2-input-background: color-mix(in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10%);--swal2-validation-message-background: color-mix( in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10% );--swal2-validation-message-color: var(--swal2-dark-theme-white)}}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px var(--swal2-backdrop)}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}@media print{body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown) .swal2-container{position:static !important}}div:where(.swal2-container){display:grid;position:fixed;z-index:1060;inset:0;box-sizing:border-box;grid-template-areas:\"top-start top top-end\" \"center-start center center-end\" \"bottom-start bottom-center bottom-end\";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:var(--swal2-container-padding);overflow-x:hidden;transition:var(--swal2-backdrop-transition);-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:var(--swal2-backdrop)}div:where(.swal2-container).swal2-backdrop-hide{background:rgba(0,0,0,0) !important}div:where(.swal2-container).swal2-top-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}div:where(.swal2-container).swal2-top,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}div:where(.swal2-container).swal2-top-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-start>.swal2-popup,div:where(.swal2-container).swal2-center-left>.swal2-popup{grid-row:2;align-self:center}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;place-self:center center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;place-self:center end}div:where(.swal2-container).swal2-bottom-start>.swal2-popup,div:where(.swal2-container).swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;place-self:end end}div:where(.swal2-container).swal2-grow-row>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}div:where(.swal2-container).swal2-no-transition{transition:none !important}div:where(.swal2-container)[popover]{width:auto;border:0}div:where(.swal2-container) div:where(.swal2-popup){display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:var(--swal2-width);max-width:100%;padding:var(--swal2-padding);border:var(--swal2-border);border-radius:var(--swal2-border-radius);background:var(--swal2-background);color:var(--swal2-color);font-family:inherit;font-size:1rem;container-name:swal2-popup}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) div:where(.swal2-popup).swal2-draggable{cursor:grab}div:where(.swal2-container) div:where(.swal2-popup).swal2-draggable div:where(.swal2-icon){cursor:grab}div:where(.swal2-container) div:where(.swal2-popup).swal2-dragging{cursor:grabbing}div:where(.swal2-container) div:where(.swal2-popup).swal2-dragging div:where(.swal2-icon){cursor:grabbing}div:where(.swal2-container) h2:where(.swal2-title){position:relative;max-width:100%;margin:0;padding:var(--swal2-title-padding);color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word;cursor:initial}div:where(.swal2-container) div:where(.swal2-actions){display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(var(--swal2-button-darken-hover), var(--swal2-button-darken-hover))}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(var(--swal2-button-darken-active), var(--swal2-button-darken-active))}div:where(.swal2-container) div:where(.swal2-loader){display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}div:where(.swal2-container) button:where(.swal2-styled){margin:.3125em;padding:.625em 1.1em;transition:var(--swal2-button-transition);box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm){border:var(--swal2-confirm-button-border);border-radius:var(--swal2-confirm-button-border-radius);background:initial;background-color:var(--swal2-confirm-button-background-color);color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny){border:var(--swal2-deny-button-border);border-radius:var(--swal2-deny-button-border-radius);background:initial;background-color:var(--swal2-deny-button-background-color);color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel){border:var(--swal2-cancel-button-border);border-radius:var(--swal2-cancel-button-border-radius);background:initial;background-color:var(--swal2-cancel-button-background-color);color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):focus-visible{outline:none;box-shadow:var(--swal2-action-button-outline)}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){margin:1em 0 0;padding:1em 1em 0;border-top:1px solid var(--swal2-footer-border-color);color:inherit;font-size:1em;text-align:center;cursor:initial}div:where(.swal2-container) .swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:var(--swal2-border-radius);border-bottom-left-radius:var(--swal2-border-radius)}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){width:100%;height:.25em;background:rgba(0,0,0,.2)}div:where(.swal2-container) img:where(.swal2-image){max-width:100%;margin:2em auto 1em;cursor:initial}div:where(.swal2-container) button:where(.swal2-close){position:var(--swal2-close-button-position);inset:var(--swal2-close-button-inset);z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:var(--swal2-close-button-transition);border:none;border-radius:var(--swal2-border-radius);outline:var(--swal2-close-button-outline);background:rgba(0,0,0,0);color:var(--swal2-close-button-color);font-family:monospace;font-size:var(--swal2-close-button-font-size);cursor:pointer;justify-self:end}div:where(.swal2-container) button:where(.swal2-close):hover{transform:var(--swal2-close-button-hover-transform);background:rgba(0,0,0,0);color:#f27474}div:where(.swal2-container) button:where(.swal2-close):focus-visible{outline:none;box-shadow:var(--swal2-close-button-focus-box-shadow)}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-html-container){z-index:1;justify-content:center;margin:0;padding:var(--swal2-html-container-padding);overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word;cursor:initial}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) label:where(.swal2-checkbox){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea){box-sizing:border-box;width:auto;transition:var(--swal2-input-transition);border:1px solid #d9d9d9;border-radius:var(--swal2-input-border-radius);background:var(--swal2-input-background);box-shadow:var(--swal2-input-box-shadow);color:inherit;font-size:1.125em}div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:1px solid #b4dbed;outline:none;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{margin:1em 2em 3px;background:var(--swal2-background)}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{width:75%;margin-right:auto;margin-left:auto;background:var(--swal2-input-background);font-size:1.125em}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:var(--swal2-input-background);color:inherit;font-size:1.125em}div:where(.swal2-container) .swal2-radio,div:where(.swal2-container) .swal2-checkbox{align-items:center;justify-content:center;background:var(--swal2-background);color:inherit}div:where(.swal2-container) .swal2-radio label,div:where(.swal2-container) .swal2-checkbox label{margin:0 .6em;font-size:1.125em}div:where(.swal2-container) .swal2-radio input,div:where(.swal2-container) .swal2-checkbox input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:var(--swal2-validation-message-background);color:var(--swal2-validation-message-color);font-size:1em;font-weight:300}div:where(.swal2-container) div:where(.swal2-validation-message)::before{content:\"!\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}div:where(.swal2-container) .swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:var(--swal2-progress-step-background);color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:var(--swal2-progress-step-background)}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}div:where(.swal2-icon){position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;zoom:var(--swal2-icon-zoom);border:.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}div:where(.swal2-icon) .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{position:relative;flex-grow:1}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}}div:where(.swal2-icon).swal2-warning{border-color:#f8bb86;color:#f8bb86}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}}div:where(.swal2-icon).swal2-info{border-color:#3fc3ee;color:#3fc3ee}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}}div:where(.swal2-icon).swal2-question{border-color:#87adbd;color:#87adbd}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;border-radius:50%}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}div:where(.swal2-icon).swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}div:where(.swal2-icon).swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:var(--swal2-show-animation)}.swal2-hide{animation:var(--swal2-hide-animation)}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;border:var(--swal2-toast-border);background:var(--swal2-background);box-shadow:var(--swal2-toast-box-shadow);pointer-events:all}.swal2-toast>*{grid-column:2}.swal2-toast h2:where(.swal2-title){margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-toast .swal2-loading{justify-content:center}.swal2-toast input:where(.swal2-input){height:2em;margin:.5em;font-size:1em}.swal2-toast .swal2-validation-message{font-size:1em}.swal2-toast div:where(.swal2-footer){margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-toast button:where(.swal2-close){grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-toast div:where(.swal2-html-container){margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-toast div:where(.swal2-html-container):empty{padding:0}.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-toast div:where(.swal2-actions){justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-toast button:where(.swal2-styled){margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;border-radius:50%}.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}@container swal2-popup style(--swal2-icon-animations:true){.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}}.swal2-toast.swal2-show{animation:var(--swal2-toast-show-animation)}.swal2-toast.swal2-hide{animation:var(--swal2-toast-hide-animation)}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}");
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/sweetalert2/sweetalert2.esm.all.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/sweetalert2/sweetalert2.esm.all.min.js
new file mode 100644
index 000000000..588506831
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/sweetalert2/sweetalert2.esm.all.min.js
@@ -0,0 +1,6 @@
+/*!
+* sweetalert2 v11.21.1
+* Released under the MIT License.
+*/
+function e(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}function t(t,n){return t.get(e(t,n))}function n(e,t,n){(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e,t),t.set(e,n)}const o={},i=e=>new Promise((t=>{if(!e)return t();const n=window.scrollX,i=window.scrollY;o.restoreFocusTimeout=setTimeout((()=>{o.previousActiveElement instanceof HTMLElement?(o.previousActiveElement.focus(),o.previousActiveElement=null):document.body&&document.body.focus(),t()}),100),window.scrollTo(n,i)})),s="swal2-",r=["container","shown","height-auto","iosfix","popup","modal","no-backdrop","no-transition","toast","toast-shown","show","hide","close","title","html-container","actions","confirm","deny","cancel","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","input-label","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loader","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","timer-progress-bar-container","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error","draggable","dragging"].reduce(((e,t)=>(e[t]=s+t,e)),{}),a=["success","warning","info","question","error"].reduce(((e,t)=>(e[t]=s+t,e)),{}),l="SweetAlert2:",c=e=>e.charAt(0).toUpperCase()+e.slice(1),u=e=>{console.warn(`${l} ${"object"==typeof e?e.join(" "):e}`)},d=e=>{console.error(`${l} ${e}`)},p=[],m=(e,t=null)=>{var n;n=`"${e}" is deprecated and will be removed in the next major release.${t?` Use "${t}" instead.`:""}`,p.includes(n)||(p.push(n),u(n))},g=e=>"function"==typeof e?e():e,h=e=>e&&"function"==typeof e.toPromise,f=e=>h(e)?e.toPromise():Promise.resolve(e),b=e=>e&&Promise.resolve(e)===e,y=()=>document.body.querySelector(`.${r.container}`),v=e=>{const t=y();return t?t.querySelector(e):null},w=e=>v(`.${e}`),C=()=>w(r.popup),A=()=>w(r.icon),E=()=>w(r.title),k=()=>w(r["html-container"]),B=()=>w(r.image),$=()=>w(r["progress-steps"]),L=()=>w(r["validation-message"]),P=()=>v(`.${r.actions} .${r.confirm}`),x=()=>v(`.${r.actions} .${r.cancel}`),T=()=>v(`.${r.actions} .${r.deny}`),S=()=>v(`.${r.loader}`),O=()=>w(r.actions),M=()=>w(r.footer),j=()=>w(r["timer-progress-bar"]),H=()=>w(r.close),I=()=>{const e=C();if(!e)return[];const t=e.querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])'),n=Array.from(t).sort(((e,t)=>{const n=parseInt(e.getAttribute("tabindex")||"0"),o=parseInt(t.getAttribute("tabindex")||"0");return n>o?1:n"-1"!==e.getAttribute("tabindex")));return[...new Set(n.concat(i))].filter((e=>ee(e)))},D=()=>N(document.body,r.shown)&&!N(document.body,r["toast-shown"])&&!N(document.body,r["no-backdrop"]),q=()=>{const e=C();return!!e&&N(e,r.toast)},V=(e,t)=>{if(e.textContent="",t){const n=(new DOMParser).parseFromString(t,"text/html"),o=n.querySelector("head");o&&Array.from(o.childNodes).forEach((t=>{e.appendChild(t)}));const i=n.querySelector("body");i&&Array.from(i.childNodes).forEach((t=>{t instanceof HTMLVideoElement||t instanceof HTMLAudioElement?e.appendChild(t.cloneNode(!0)):e.appendChild(t)}))}},N=(e,t)=>{if(!t)return!1;const n=t.split(/\s+/);for(let t=0;t{if(((e,t)=>{Array.from(e.classList).forEach((n=>{Object.values(r).includes(n)||Object.values(a).includes(n)||Object.values(t.showClass||{}).includes(n)||e.classList.remove(n)}))})(e,t),!t.customClass)return;const o=t.customClass[n];o&&("string"==typeof o||o.forEach?z(e,o):u(`Invalid type of customClass.${n}! Expected string or iterable object, got "${typeof o}"`))},F=(e,t)=>{if(!t)return null;switch(t){case"select":case"textarea":case"file":return e.querySelector(`.${r.popup} > .${r[t]}`);case"checkbox":return e.querySelector(`.${r.popup} > .${r.checkbox} input`);case"radio":return e.querySelector(`.${r.popup} > .${r.radio} input:checked`)||e.querySelector(`.${r.popup} > .${r.radio} input:first-child`);case"range":return e.querySelector(`.${r.popup} > .${r.range} input`);default:return e.querySelector(`.${r.popup} > .${r.input}`)}},R=e=>{if(e.focus(),"file"!==e.type){const t=e.value;e.value="",e.value=t}},U=(e,t,n)=>{e&&t&&("string"==typeof t&&(t=t.split(/\s+/).filter(Boolean)),t.forEach((t=>{Array.isArray(e)?e.forEach((e=>{n?e.classList.add(t):e.classList.remove(t)})):n?e.classList.add(t):e.classList.remove(t)})))},z=(e,t)=>{U(e,t,!0)},W=(e,t)=>{U(e,t,!1)},K=(e,t)=>{const n=Array.from(e.children);for(let e=0;e{n===`${parseInt(n)}`&&(n=parseInt(n)),n||0===parseInt(n)?e.style.setProperty(t,"number"==typeof n?`${n}px`:n):e.style.removeProperty(t)},X=(e,t="flex")=>{e&&(e.style.display=t)},Z=e=>{e&&(e.style.display="none")},J=(e,t="block")=>{e&&new MutationObserver((()=>{Q(e,e.innerHTML,t)})).observe(e,{childList:!0,subtree:!0})},G=(e,t,n,o)=>{const i=e.querySelector(t);i&&i.style.setProperty(n,o)},Q=(e,t,n="flex")=>{t?X(e,n):Z(e)},ee=e=>!(!e||!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)),te=e=>!!(e.scrollHeight>e.clientHeight),ne=e=>{const t=window.getComputedStyle(e),n=parseFloat(t.getPropertyValue("animation-duration")||"0"),o=parseFloat(t.getPropertyValue("transition-duration")||"0");return n>0||o>0},oe=(e,t=!1)=>{const n=j();n&&ee(n)&&(t&&(n.style.transition="none",n.style.width="100%"),setTimeout((()=>{n.style.transition=`width ${e/1e3}s linear`,n.style.width="0%"}),10))},ie=`\n \n`.replace(/(^|\n)\s*/g,""),se=()=>{o.currentInstance.resetValidationMessage()},re=e=>{const t=(()=>{const e=y();return!!e&&(e.remove(),W([document.documentElement,document.body],[r["no-backdrop"],r["toast-shown"],r["has-column"]]),!0)})();if("undefined"==typeof window||"undefined"==typeof document)return void d("SweetAlert2 requires document to initialize");const n=document.createElement("div");n.className=r.container,t&&z(n,r["no-transition"]),V(n,ie),n.dataset.swal2Theme=e.theme;const o="string"==typeof(i=e.target)?document.querySelector(i):i;var i;o.appendChild(n),e.topLayer&&(n.setAttribute("popover",""),n.showPopover()),(e=>{const t=C();t.setAttribute("role",e.toast?"alert":"dialog"),t.setAttribute("aria-live",e.toast?"polite":"assertive"),e.toast||t.setAttribute("aria-modal","true")})(e),(e=>{"rtl"===window.getComputedStyle(e).direction&&z(y(),r.rtl)})(o),(()=>{const e=C(),t=K(e,r.input),n=K(e,r.file),o=e.querySelector(`.${r.range} input`),i=e.querySelector(`.${r.range} output`),s=K(e,r.select),a=e.querySelector(`.${r.checkbox} input`),l=K(e,r.textarea);t.oninput=se,n.onchange=se,s.onchange=se,a.onchange=se,l.oninput=se,o.oninput=()=>{se(),i.value=o.value},o.onchange=()=>{se(),i.value=o.value}})()},ae=(e,t)=>{e instanceof HTMLElement?t.appendChild(e):"object"==typeof e?le(e,t):e&&V(t,e)},le=(e,t)=>{e.jquery?ce(t,e):V(t,e.toString())},ce=(e,t)=>{if(e.textContent="",0 in t)for(let n=0;n in t;n++)e.appendChild(t[n].cloneNode(!0));else e.appendChild(t.cloneNode(!0))},ue=(e,t)=>{const n=O(),o=S();n&&o&&(t.showConfirmButton||t.showDenyButton||t.showCancelButton?X(n):Z(n),_(n,t,"actions"),function(e,t,n){const o=P(),i=T(),s=x();if(!o||!i||!s)return;pe(o,"confirm",n),pe(i,"deny",n),pe(s,"cancel",n),function(e,t,n,o){if(!o.buttonsStyling)return void W([e,t,n],r.styled);z([e,t,n],r.styled),o.confirmButtonColor&&e.style.setProperty("--swal2-confirm-button-background-color",o.confirmButtonColor);o.denyButtonColor&&t.style.setProperty("--swal2-deny-button-background-color",o.denyButtonColor);o.cancelButtonColor&&n.style.setProperty("--swal2-cancel-button-background-color",o.cancelButtonColor);de(e),de(t),de(n)}(o,i,s,n),n.reverseButtons&&(n.toast?(e.insertBefore(s,o),e.insertBefore(i,o)):(e.insertBefore(s,t),e.insertBefore(i,t),e.insertBefore(o,t)))}(n,o,t),V(o,t.loaderHtml||""),_(o,t,"loader"))};function de(e){const t=window.getComputedStyle(e),n=t.backgroundColor.replace(/rgba?\((\d+), (\d+), (\d+).*/,"rgba($1, $2, $3, 0.5)");e.style.setProperty("--swal2-action-button-outline",t.getPropertyValue("--swal2-outline").replace(/ rgba\(.*/,` ${n}`))}function pe(e,t,n){const o=c(t);Q(e,n[`show${o}Button`],"inline-block"),V(e,n[`${t}ButtonText`]||""),e.setAttribute("aria-label",n[`${t}ButtonAriaLabel`]||""),e.className=r[t],_(e,n,`${t}Button`)}const me=(e,t)=>{const n=y();n&&(!function(e,t){"string"==typeof t?e.style.background=t:t||z([document.documentElement,document.body],r["no-backdrop"])}(n,t.backdrop),function(e,t){if(!t)return;t in r?z(e,r[t]):(u('The "position" parameter is not valid, defaulting to "center"'),z(e,r.center))}(n,t.position),function(e,t){if(!t)return;z(e,r[`grow-${t}`])}(n,t.grow),_(n,t,"container"))};var ge={innerParams:new WeakMap,domCache:new WeakMap};const he=["input","file","range","select","radio","checkbox","textarea"],fe=e=>{if(!e.input)return;if(!Ee[e.input])return void d(`Unexpected type of input! Expected ${Object.keys(Ee).join(" | ")}, got "${e.input}"`);const t=Ce(e.input);if(!t)return;const n=Ee[e.input](t,e);X(t),e.inputAutoFocus&&setTimeout((()=>{R(n)}))},be=(e,t)=>{const n=C();if(!n)return;const o=F(n,e);if(o){(e=>{for(let t=0;t{if(!e.input)return;const t=Ce(e.input);t&&_(t,e,"input")},ve=(e,t)=>{!e.placeholder&&t.inputPlaceholder&&(e.placeholder=t.inputPlaceholder)},we=(e,t,n)=>{if(n.inputLabel){const o=document.createElement("label"),i=r["input-label"];o.setAttribute("for",e.id),o.className=i,"object"==typeof n.customClass&&z(o,n.customClass.inputLabel),o.innerText=n.inputLabel,t.insertAdjacentElement("beforebegin",o)}},Ce=e=>{const t=C();if(t)return K(t,r[e]||r.input)},Ae=(e,t)=>{["string","number"].includes(typeof t)?e.value=`${t}`:b(t)||u(`Unexpected type of inputValue! Expected "string", "number" or "Promise", got "${typeof t}"`)},Ee={};Ee.text=Ee.email=Ee.password=Ee.number=Ee.tel=Ee.url=Ee.search=Ee.date=Ee["datetime-local"]=Ee.time=Ee.week=Ee.month=(e,t)=>(Ae(e,t.inputValue),we(e,e,t),ve(e,t),e.type=t.input,e),Ee.file=(e,t)=>(we(e,e,t),ve(e,t),e),Ee.range=(e,t)=>{const n=e.querySelector("input"),o=e.querySelector("output");return Ae(n,t.inputValue),n.type=t.input,Ae(o,t.inputValue),we(n,e,t),e},Ee.select=(e,t)=>{if(e.textContent="",t.inputPlaceholder){const n=document.createElement("option");V(n,t.inputPlaceholder),n.value="",n.disabled=!0,n.selected=!0,e.appendChild(n)}return we(e,e,t),e},Ee.radio=e=>(e.textContent="",e),Ee.checkbox=(e,t)=>{const n=F(C(),"checkbox");n.value="1",n.checked=Boolean(t.inputValue);const o=e.querySelector("span");return V(o,t.inputPlaceholder||t.inputLabel),n},Ee.textarea=(e,t)=>{Ae(e,t.inputValue),ve(e,t),we(e,e,t);return setTimeout((()=>{if("MutationObserver"in window){const n=parseInt(window.getComputedStyle(C()).width);new MutationObserver((()=>{if(!document.body.contains(e))return;const o=e.offsetWidth+(i=e,parseInt(window.getComputedStyle(i).marginLeft)+parseInt(window.getComputedStyle(i).marginRight));var i;o>n?C().style.width=`${o}px`:Y(C(),"width",t.width)})).observe(e,{attributes:!0,attributeFilter:["style"]})}})),e};const ke=(e,t)=>{const n=k();n&&(J(n),_(n,t,"htmlContainer"),t.html?(ae(t.html,n),X(n,"block")):t.text?(n.textContent=t.text,X(n,"block")):Z(n),((e,t)=>{const n=C();if(!n)return;const o=ge.innerParams.get(e),i=!o||t.input!==o.input;he.forEach((e=>{const o=K(n,r[e]);o&&(be(e,t.inputAttributes),o.className=r[e],i&&Z(o))})),t.input&&(i&&fe(t),ye(t))})(e,t))},Be=(e,t)=>{for(const[n,o]of Object.entries(a))t.icon!==n&&W(e,o);z(e,t.icon&&a[t.icon]),Pe(e,t),$e(),_(e,t,"icon")},$e=()=>{const e=C();if(!e)return;const t=window.getComputedStyle(e).getPropertyValue("background-color"),n=e.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix");for(let e=0;e{if(!t.icon&&!t.iconHtml)return;let n=e.innerHTML,o="";if(t.iconHtml)o=xe(t.iconHtml);else if("success"===t.icon)o='\n
\n \n
\n
\n',n=n.replace(/ style=".*?"/g,"");else if("error"===t.icon)o='\n \n \n \n \n';else if(t.icon){o=xe({question:"?",warning:"!",info:"i"}[t.icon])}n.trim()!==o.trim()&&V(e,o)},Pe=(e,t)=>{if(t.iconColor){e.style.color=t.iconColor,e.style.borderColor=t.iconColor;for(const n of[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"])G(e,n,"background-color",t.iconColor);G(e,".swal2-success-ring","border-color",t.iconColor)}},xe=e=>`${e}
`;let Te=!1,Se=0,Oe=0,Me=0,je=0;const He=e=>{const t=C();if(e.target===t||A().contains(e.target)){Te=!0;const n=qe(e);Se=n.clientX,Oe=n.clientY,Me=parseInt(t.style.insetInlineStart)||0,je=parseInt(t.style.insetBlockStart)||0,z(t,"swal2-dragging")}},Ie=e=>{const t=C();if(Te){let{clientX:n,clientY:o}=qe(e);t.style.insetInlineStart=`${Me+(n-Se)}px`,t.style.insetBlockStart=`${je+(o-Oe)}px`}},De=()=>{const e=C();Te=!1,W(e,"swal2-dragging")},qe=e=>{let t=0,n=0;return e.type.startsWith("mouse")?(t=e.clientX,n=e.clientY):e.type.startsWith("touch")&&(t=e.touches[0].clientX,n=e.touches[0].clientY),{clientX:t,clientY:n}},Ve=(e,t)=>{const n=y(),o=C();if(n&&o){if(t.toast){Y(n,"width",t.width),o.style.width="100%";const e=S();e&&o.insertBefore(e,A())}else Y(o,"width",t.width);Y(o,"padding",t.padding),t.color&&(o.style.color=t.color),t.background&&(o.style.background=t.background),Z(L()),Ne(o,t),t.draggable&&!t.toast?(z(o,r.draggable),(e=>{e.addEventListener("mousedown",He),document.body.addEventListener("mousemove",Ie),e.addEventListener("mouseup",De),e.addEventListener("touchstart",He),document.body.addEventListener("touchmove",Ie),e.addEventListener("touchend",De)})(o)):(W(o,r.draggable),(e=>{e.removeEventListener("mousedown",He),document.body.removeEventListener("mousemove",Ie),e.removeEventListener("mouseup",De),e.removeEventListener("touchstart",He),document.body.removeEventListener("touchmove",Ie),e.removeEventListener("touchend",De)})(o))}},Ne=(e,t)=>{const n=t.showClass||{};e.className=`${r.popup} ${ee(e)?n.popup:""}`,t.toast?(z([document.documentElement,document.body],r["toast-shown"]),z(e,r.toast)):z(e,r.modal),_(e,t,"popup"),"string"==typeof t.customClass&&z(e,t.customClass),t.icon&&z(e,r[`icon-${t.icon}`])},_e=e=>{const t=document.createElement("li");return z(t,r["progress-step"]),V(t,e),t},Fe=e=>{const t=document.createElement("li");return z(t,r["progress-step-line"]),e.progressStepsDistance&&Y(t,"width",e.progressStepsDistance),t},Re=(e,t)=>{Ve(0,t),me(0,t),((e,t)=>{const n=$();if(!n)return;const{progressSteps:o,currentProgressStep:i}=t;o&&0!==o.length&&void 0!==i?(X(n),n.textContent="",i>=o.length&&u("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),o.forEach(((e,s)=>{const a=_e(e);if(n.appendChild(a),s===i&&z(a,r["active-progress-step"]),s!==o.length-1){const e=Fe(t);n.appendChild(e)}}))):Z(n)})(0,t),((e,t)=>{const n=ge.innerParams.get(e),o=A();if(!o)return;if(n&&t.icon===n.icon)return Le(o,t),void Be(o,t);if(!t.icon&&!t.iconHtml)return void Z(o);if(t.icon&&-1===Object.keys(a).indexOf(t.icon))return d(`Unknown icon! Expected "success", "error", "warning", "info" or "question", got "${t.icon}"`),void Z(o);X(o),Le(o,t),Be(o,t),z(o,t.showClass&&t.showClass.icon),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",$e)})(e,t),((e,t)=>{const n=B();n&&(t.imageUrl?(X(n,""),n.setAttribute("src",t.imageUrl),n.setAttribute("alt",t.imageAlt||""),Y(n,"width",t.imageWidth),Y(n,"height",t.imageHeight),n.className=r.image,_(n,t,"image")):Z(n))})(0,t),((e,t)=>{const n=E();n&&(J(n),Q(n,t.title||t.titleText,"block"),t.title&&ae(t.title,n),t.titleText&&(n.innerText=t.titleText),_(n,t,"title"))})(0,t),((e,t)=>{const n=H();n&&(V(n,t.closeButtonHtml||""),_(n,t,"closeButton"),Q(n,t.showCloseButton),n.setAttribute("aria-label",t.closeButtonAriaLabel||""))})(0,t),ke(e,t),ue(0,t),((e,t)=>{const n=M();n&&(J(n),Q(n,t.footer,"block"),t.footer&&ae(t.footer,n),_(n,t,"footer"))})(0,t);const n=C();"function"==typeof t.didRender&&n&&t.didRender(n),o.eventEmitter.emit("didRender",n)},Ue=()=>{var e;return null===(e=P())||void 0===e?void 0:e.click()},ze=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),We=e=>{e.keydownTarget&&e.keydownHandlerAdded&&(e.keydownTarget.removeEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!1)},Ke=(e,t)=>{var n;const o=I();if(o.length)return-2===(e+=t)&&(e=o.length-1),e===o.length?e=0:-1===e&&(e=o.length-1),void o[e].focus();null===(n=C())||void 0===n||n.focus()},Ye=["ArrowRight","ArrowDown"],Xe=["ArrowLeft","ArrowUp"],Ze=(e,t,n)=>{e&&(t.isComposing||229===t.keyCode||(e.stopKeydownPropagation&&t.stopPropagation(),"Enter"===t.key?Je(t,e):"Tab"===t.key?Ge(t):[...Ye,...Xe].includes(t.key)?Qe(t.key):"Escape"===t.key&&et(t,e,n)))},Je=(e,t)=>{if(!g(t.allowEnterKey))return;const n=F(C(),t.input);if(e.target&&n&&e.target instanceof HTMLElement&&e.target.outerHTML===n.outerHTML){if(["textarea","file"].includes(t.input))return;Ue(),e.preventDefault()}},Ge=e=>{const t=e.target,n=I();let o=-1;for(let e=0;e{const t=O(),n=P(),o=T(),i=x();if(!(t&&n&&o&&i))return;const s=[n,o,i];if(document.activeElement instanceof HTMLElement&&!s.includes(document.activeElement))return;const r=Ye.includes(e)?"nextElementSibling":"previousElementSibling";let a=document.activeElement;if(a){for(let e=0;e{g(t.allowEscapeKey)&&(e.preventDefault(),n(ze.esc))};var tt={swalPromiseResolve:new WeakMap,swalPromiseReject:new WeakMap};const nt=()=>{Array.from(document.body.children).forEach((e=>{e.hasAttribute("data-previous-aria-hidden")?(e.setAttribute("aria-hidden",e.getAttribute("data-previous-aria-hidden")||""),e.removeAttribute("data-previous-aria-hidden")):e.removeAttribute("aria-hidden")}))},ot="undefined"!=typeof window&&!!window.GestureEvent,it=()=>{const e=y();if(!e)return;let t;e.ontouchstart=e=>{t=st(e)},e.ontouchmove=e=>{t&&(e.preventDefault(),e.stopPropagation())}},st=e=>{const t=e.target,n=y(),o=k();return!(!n||!o)&&(!rt(e)&&!at(e)&&(t===n||!(te(n)||!(t instanceof HTMLElement)||((e,t)=>{let n=e;for(;n&&n!==t;){if(te(n))return!0;n=n.parentElement}return!1})(t,o)||"INPUT"===t.tagName||"TEXTAREA"===t.tagName||te(o)&&o.contains(t))))},rt=e=>e.touches&&e.touches.length&&"stylus"===e.touches[0].touchType,at=e=>e.touches&&e.touches.length>1;let lt=null;const ct=e=>{null===lt&&(document.body.scrollHeight>window.innerHeight||"scroll"===e)&&(lt=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight=`${lt+(()=>{const e=document.createElement("div");e.className=r["scrollbar-measure"],document.body.appendChild(e);const t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t})()}px`)};function ut(e,t,n,s){q()?yt(e,s):(i(n).then((()=>yt(e,s))),We(o)),ot?(t.setAttribute("style","display:none !important"),t.removeAttribute("class"),t.innerHTML=""):t.remove(),D()&&(null!==lt&&(document.body.style.paddingRight=`${lt}px`,lt=null),(()=>{if(N(document.body,r.iosfix)){const e=parseInt(document.body.style.top,10);W(document.body,r.iosfix),document.body.style.top="",document.body.scrollTop=-1*e}})(),nt()),W([document.documentElement,document.body],[r.shown,r["height-auto"],r["no-backdrop"],r["toast-shown"]])}function dt(e){e=ht(e);const t=tt.swalPromiseResolve.get(this),n=pt(this);this.isAwaitingPromise?e.isDismissed||(gt(this),t(e)):n&&t(e)}const pt=e=>{const t=C();if(!t)return!1;const n=ge.innerParams.get(e);if(!n||N(t,n.hideClass.popup))return!1;W(t,n.showClass.popup),z(t,n.hideClass.popup);const o=y();return W(o,n.showClass.backdrop),z(o,n.hideClass.backdrop),ft(e,t,n),!0};function mt(e){const t=tt.swalPromiseReject.get(this);gt(this),t&&t(e)}const gt=e=>{e.isAwaitingPromise&&(delete e.isAwaitingPromise,ge.innerParams.get(e)||e._destroy())},ht=e=>void 0===e?{isConfirmed:!1,isDenied:!1,isDismissed:!0}:Object.assign({isConfirmed:!1,isDenied:!1,isDismissed:!1},e),ft=(e,t,n)=>{var i;const s=y(),r=ne(t);"function"==typeof n.willClose&&n.willClose(t),null===(i=o.eventEmitter)||void 0===i||i.emit("willClose",t),r?bt(e,t,s,n.returnFocus,n.didClose):ut(e,s,n.returnFocus,n.didClose)},bt=(e,t,n,i,s)=>{o.swalCloseEventFinishedCallback=ut.bind(null,e,n,i,s);const r=function(e){var n;e.target===t&&(null===(n=o.swalCloseEventFinishedCallback)||void 0===n||n.call(o),delete o.swalCloseEventFinishedCallback,t.removeEventListener("animationend",r),t.removeEventListener("transitionend",r))};t.addEventListener("animationend",r),t.addEventListener("transitionend",r)},yt=(e,t)=>{setTimeout((()=>{var n;"function"==typeof t&&t.bind(e.params)(),null===(n=o.eventEmitter)||void 0===n||n.emit("didClose"),e._destroy&&e._destroy()}))},vt=e=>{let t=C();if(t||new Qn,t=C(),!t)return;const n=S();q()?Z(A()):wt(t,e),X(n),t.setAttribute("data-loading","true"),t.setAttribute("aria-busy","true"),t.focus()},wt=(e,t)=>{const n=O(),o=S();n&&o&&(!t&&ee(P())&&(t=P()),X(n),t&&(Z(t),o.setAttribute("data-button-to-replace",t.className),n.insertBefore(o,t)),z([e,n],r.loading))},Ct=e=>e.checked?1:0,At=e=>e.checked?e.value:null,Et=e=>e.files&&e.files.length?null!==e.getAttribute("multiple")?e.files:e.files[0]:null,kt=(e,t)=>{const n=C();if(!n)return;const o=e=>{"select"===t.input?function(e,t,n){const o=K(e,r.select);if(!o)return;const i=(e,t,o)=>{const i=document.createElement("option");i.value=o,V(i,t),i.selected=Lt(o,n.inputValue),e.appendChild(i)};t.forEach((e=>{const t=e[0],n=e[1];if(Array.isArray(n)){const e=document.createElement("optgroup");e.label=t,e.disabled=!1,o.appendChild(e),n.forEach((t=>i(e,t[1],t[0])))}else i(o,n,t)})),o.focus()}(n,$t(e),t):"radio"===t.input&&function(e,t,n){const o=K(e,r.radio);if(!o)return;t.forEach((e=>{const t=e[0],i=e[1],s=document.createElement("input"),a=document.createElement("label");s.type="radio",s.name=r.radio,s.value=t,Lt(t,n.inputValue)&&(s.checked=!0);const l=document.createElement("span");V(l,i),l.className=r.label,a.appendChild(s),a.appendChild(l),o.appendChild(a)}));const i=o.querySelectorAll("input");i.length&&i[0].focus()}(n,$t(e),t)};h(t.inputOptions)||b(t.inputOptions)?(vt(P()),f(t.inputOptions).then((t=>{e.hideLoading(),o(t)}))):"object"==typeof t.inputOptions?o(t.inputOptions):d("Unexpected type of inputOptions! Expected object, Map or Promise, got "+typeof t.inputOptions)},Bt=(e,t)=>{const n=e.getInput();n&&(Z(n),f(t.inputValue).then((o=>{n.value="number"===t.input?`${parseFloat(o)||0}`:`${o}`,X(n),n.focus(),e.hideLoading()})).catch((t=>{d(`Error in inputValue promise: ${t}`),n.value="",X(n),n.focus(),e.hideLoading()})))};const $t=e=>{const t=[];return e instanceof Map?e.forEach(((e,n)=>{let o=e;"object"==typeof o&&(o=$t(o)),t.push([n,o])})):Object.keys(e).forEach((n=>{let o=e[n];"object"==typeof o&&(o=$t(o)),t.push([n,o])})),t},Lt=(e,t)=>!!t&&t.toString()===e.toString(),Pt=(e,t)=>{const n=ge.innerParams.get(e);if(!n.input)return void d(`The "input" parameter is needed to be set when using returnInputValueOn${c(t)}`);const o=e.getInput(),i=((e,t)=>{const n=e.getInput();if(!n)return null;switch(t.input){case"checkbox":return Ct(n);case"radio":return At(n);case"file":return Et(n);default:return t.inputAutoTrim?n.value.trim():n.value}})(e,n);n.inputValidator?xt(e,i,t):o&&!o.checkValidity()?(e.enableButtons(),e.showValidationMessage(n.validationMessage||o.validationMessage)):"deny"===t?Tt(e,i):Mt(e,i)},xt=(e,t,n)=>{const o=ge.innerParams.get(e);e.disableInput();Promise.resolve().then((()=>f(o.inputValidator(t,o.validationMessage)))).then((o=>{e.enableButtons(),e.enableInput(),o?e.showValidationMessage(o):"deny"===n?Tt(e,t):Mt(e,t)}))},Tt=(e,t)=>{const n=ge.innerParams.get(e||void 0);if(n.showLoaderOnDeny&&vt(T()),n.preDeny){e.isAwaitingPromise=!0;Promise.resolve().then((()=>f(n.preDeny(t,n.validationMessage)))).then((n=>{!1===n?(e.hideLoading(),gt(e)):e.close({isDenied:!0,value:void 0===n?t:n})})).catch((t=>Ot(e||void 0,t)))}else e.close({isDenied:!0,value:t})},St=(e,t)=>{e.close({isConfirmed:!0,value:t})},Ot=(e,t)=>{e.rejectPromise(t)},Mt=(e,t)=>{const n=ge.innerParams.get(e||void 0);if(n.showLoaderOnConfirm&&vt(),n.preConfirm){e.resetValidationMessage(),e.isAwaitingPromise=!0;Promise.resolve().then((()=>f(n.preConfirm(t,n.validationMessage)))).then((n=>{ee(L())||!1===n?(e.hideLoading(),gt(e)):St(e,void 0===n?t:n)})).catch((t=>Ot(e||void 0,t)))}else St(e,t)};function jt(){const e=ge.innerParams.get(this);if(!e)return;const t=ge.domCache.get(this);Z(t.loader),q()?e.icon&&X(A()):Ht(t),W([t.popup,t.actions],r.loading),t.popup.removeAttribute("aria-busy"),t.popup.removeAttribute("data-loading"),t.confirmButton.disabled=!1,t.denyButton.disabled=!1,t.cancelButton.disabled=!1}const Ht=e=>{const t=e.popup.getElementsByClassName(e.loader.getAttribute("data-button-to-replace"));t.length?X(t[0],"inline-block"):ee(P())||ee(T())||ee(x())||Z(e.actions)};function It(){const e=ge.innerParams.get(this),t=ge.domCache.get(this);return t?F(t.popup,e.input):null}function Dt(e,t,n){const o=ge.domCache.get(e);t.forEach((e=>{o[e].disabled=n}))}function qt(e,t){const n=C();if(n&&e)if("radio"===e.type){const e=n.querySelectorAll(`[name="${r.radio}"]`);for(let n=0;nObject.prototype.hasOwnProperty.call(zt,e),Zt=e=>-1!==Wt.indexOf(e),Jt=e=>Kt[e],Gt=e=>{Xt(e)||u(`Unknown parameter "${e}"`)},Qt=e=>{Yt.includes(e)&&u(`The parameter "${e}" is incompatible with toasts`)},en=e=>{const t=Jt(e);t&&m(e,t)},tn=e=>{!1===e.backdrop&&e.allowOutsideClick&&u('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'),e.theme&&!["light","dark","auto","minimal","borderless","embed-iframe"].includes(e.theme)&&u(`Invalid theme "${e.theme}". Expected "light", "dark", "auto", "minimal", "borderless", or "embed-iframe"`);for(const t in e)Gt(t),e.toast&&Qt(t),en(t)};function nn(e){const t=y(),n=C(),o=ge.innerParams.get(this);if(!n||N(n,o.hideClass.popup))return void u("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");const i=on(e),s=Object.assign({},o,i);tn(s),t.dataset.swal2Theme=s.theme,Re(this,s),ge.innerParams.set(this,s),Object.defineProperties(this,{params:{value:Object.assign({},this.params,e),writable:!1,enumerable:!0}})}const on=e=>{const t={};return Object.keys(e).forEach((n=>{Zt(n)?t[n]=e[n]:u(`Invalid parameter to update: ${n}`)})),t};function sn(){const e=ge.domCache.get(this),t=ge.innerParams.get(this);t?(e.popup&&o.swalCloseEventFinishedCallback&&(o.swalCloseEventFinishedCallback(),delete o.swalCloseEventFinishedCallback),"function"==typeof t.didDestroy&&t.didDestroy(),o.eventEmitter.emit("didDestroy"),rn(this)):an(this)}const rn=e=>{an(e),delete e.params,delete o.keydownHandler,delete o.keydownTarget,delete o.currentInstance},an=e=>{e.isAwaitingPromise?(ln(ge,e),e.isAwaitingPromise=!0):(ln(tt,e),ln(ge,e),delete e.isAwaitingPromise,delete e.disableButtons,delete e.enableButtons,delete e.getInput,delete e.disableInput,delete e.enableInput,delete e.hideLoading,delete e.disableLoading,delete e.showValidationMessage,delete e.resetValidationMessage,delete e.close,delete e.closePopup,delete e.closeModal,delete e.closeToast,delete e.rejectPromise,delete e.update,delete e._destroy)},ln=(e,t)=>{for(const n in e)e[n].delete(t)};var cn=Object.freeze({__proto__:null,_destroy:sn,close:dt,closeModal:dt,closePopup:dt,closeToast:dt,disableButtons:Nt,disableInput:Ft,disableLoading:jt,enableButtons:Vt,enableInput:_t,getInput:It,handleAwaitingPromise:gt,hideLoading:jt,rejectPromise:mt,resetValidationMessage:Ut,showValidationMessage:Rt,update:nn});const un=(e,t,n)=>{t.popup.onclick=()=>{e&&(dn(e)||e.timer||e.input)||n(ze.close)}},dn=e=>!!(e.showConfirmButton||e.showDenyButton||e.showCancelButton||e.showCloseButton);let pn=!1;const mn=e=>{e.popup.onmousedown=()=>{e.container.onmouseup=function(t){e.container.onmouseup=()=>{},t.target===e.container&&(pn=!0)}}},gn=e=>{e.container.onmousedown=t=>{t.target===e.container&&t.preventDefault(),e.popup.onmouseup=function(t){e.popup.onmouseup=()=>{},(t.target===e.popup||t.target instanceof HTMLElement&&e.popup.contains(t.target))&&(pn=!0)}}},hn=(e,t,n)=>{t.container.onclick=o=>{pn?pn=!1:o.target===t.container&&g(e.allowOutsideClick)&&n(ze.backdrop)}},fn=e=>e instanceof Element||(e=>"object"==typeof e&&e.jquery)(e);const bn=()=>{if(o.timeout)return(()=>{const e=j();if(!e)return;const t=parseInt(window.getComputedStyle(e).width);e.style.removeProperty("transition"),e.style.width="100%";const n=t/parseInt(window.getComputedStyle(e).width)*100;e.style.width=`${n}%`})(),o.timeout.stop()},yn=()=>{if(o.timeout){const e=o.timeout.start();return oe(e),e}};let vn=!1;const wn={};const Cn=e=>{for(let t=e.target;t&&t!==document;t=t.parentNode)for(const e in wn){const n=t.getAttribute(e);if(n)return void wn[e].fire({template:n})}};o.eventEmitter=new class{constructor(){this.events={}}_getHandlersByEventName(e){return void 0===this.events[e]&&(this.events[e]=[]),this.events[e]}on(e,t){const n=this._getHandlersByEventName(e);n.includes(t)||n.push(t)}once(e,t){const n=(...o)=>{this.removeListener(e,n),t.apply(this,o)};this.on(e,n)}emit(e,...t){this._getHandlersByEventName(e).forEach((e=>{try{e.apply(this,t)}catch(e){console.error(e)}}))}removeListener(e,t){const n=this._getHandlersByEventName(e),o=n.indexOf(t);o>-1&&n.splice(o,1)}removeAllListeners(e){void 0!==this.events[e]&&(this.events[e].length=0)}reset(){this.events={}}};var An=Object.freeze({__proto__:null,argsToParams:e=>{const t={};return"object"!=typeof e[0]||fn(e[0])?["title","html","icon"].forEach(((n,o)=>{const i=e[o];"string"==typeof i||fn(i)?t[n]=i:void 0!==i&&d(`Unexpected type of ${n}! Expected "string" or "Element", got ${typeof i}`)})):Object.assign(t,e[0]),t},bindClickHandler:function(e="data-swal-template"){wn[e]=this,vn||(document.body.addEventListener("click",Cn),vn=!0)},clickCancel:()=>{var e;return null===(e=x())||void 0===e?void 0:e.click()},clickConfirm:Ue,clickDeny:()=>{var e;return null===(e=T())||void 0===e?void 0:e.click()},enableLoading:vt,fire:function(...e){return new this(...e)},getActions:O,getCancelButton:x,getCloseButton:H,getConfirmButton:P,getContainer:y,getDenyButton:T,getFocusableElements:I,getFooter:M,getHtmlContainer:k,getIcon:A,getIconContent:()=>w(r["icon-content"]),getImage:B,getInputLabel:()=>w(r["input-label"]),getLoader:S,getPopup:C,getProgressSteps:$,getTimerLeft:()=>o.timeout&&o.timeout.getTimerLeft(),getTimerProgressBar:j,getTitle:E,getValidationMessage:L,increaseTimer:e=>{if(o.timeout){const t=o.timeout.increase(e);return oe(t,!0),t}},isDeprecatedParameter:Jt,isLoading:()=>{const e=C();return!!e&&e.hasAttribute("data-loading")},isTimerRunning:()=>!(!o.timeout||!o.timeout.isRunning()),isUpdatableParameter:Zt,isValidParameter:Xt,isVisible:()=>ee(C()),mixin:function(e){return class extends(this){_main(t,n){return super._main(t,Object.assign({},e,n))}}},off:(e,t)=>{e?t?o.eventEmitter.removeListener(e,t):o.eventEmitter.removeAllListeners(e):o.eventEmitter.reset()},on:(e,t)=>{o.eventEmitter.on(e,t)},once:(e,t)=>{o.eventEmitter.once(e,t)},resumeTimer:yn,showLoading:vt,stopTimer:bn,toggleTimer:()=>{const e=o.timeout;return e&&(e.running?bn():yn())}});class En{constructor(e,t){this.callback=e,this.remaining=t,this.running=!1,this.start()}start(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}stop(){return this.started&&this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=(new Date).getTime()-this.started.getTime()),this.remaining}increase(e){const t=this.running;return t&&this.stop(),this.remaining+=e,t&&this.start(),this.remaining}getTimerLeft(){return this.running&&(this.stop(),this.start()),this.remaining}isRunning(){return this.running}}const kn=["swal-title","swal-html","swal-footer"],Bn=e=>{const t={};return Array.from(e.querySelectorAll("swal-param")).forEach((e=>{Mn(e,["name","value"]);const n=e.getAttribute("name"),o=e.getAttribute("value");n&&o&&(t[n]="boolean"==typeof zt[n]?"false"!==o:"object"==typeof zt[n]?JSON.parse(o):o)})),t},$n=e=>{const t={};return Array.from(e.querySelectorAll("swal-function-param")).forEach((e=>{const n=e.getAttribute("name"),o=e.getAttribute("value");n&&o&&(t[n]=new Function(`return ${o}`)())})),t},Ln=e=>{const t={};return Array.from(e.querySelectorAll("swal-button")).forEach((e=>{Mn(e,["type","color","aria-label"]);const n=e.getAttribute("type");n&&["confirm","cancel","deny"].includes(n)&&(t[`${n}ButtonText`]=e.innerHTML,t[`show${c(n)}Button`]=!0,e.hasAttribute("color")&&(t[`${n}ButtonColor`]=e.getAttribute("color")),e.hasAttribute("aria-label")&&(t[`${n}ButtonAriaLabel`]=e.getAttribute("aria-label")))})),t},Pn=e=>{const t={},n=e.querySelector("swal-image");return n&&(Mn(n,["src","width","height","alt"]),n.hasAttribute("src")&&(t.imageUrl=n.getAttribute("src")||void 0),n.hasAttribute("width")&&(t.imageWidth=n.getAttribute("width")||void 0),n.hasAttribute("height")&&(t.imageHeight=n.getAttribute("height")||void 0),n.hasAttribute("alt")&&(t.imageAlt=n.getAttribute("alt")||void 0)),t},xn=e=>{const t={},n=e.querySelector("swal-icon");return n&&(Mn(n,["type","color"]),n.hasAttribute("type")&&(t.icon=n.getAttribute("type")),n.hasAttribute("color")&&(t.iconColor=n.getAttribute("color")),t.iconHtml=n.innerHTML),t},Tn=e=>{const t={},n=e.querySelector("swal-input");n&&(Mn(n,["type","label","placeholder","value"]),t.input=n.getAttribute("type")||"text",n.hasAttribute("label")&&(t.inputLabel=n.getAttribute("label")),n.hasAttribute("placeholder")&&(t.inputPlaceholder=n.getAttribute("placeholder")),n.hasAttribute("value")&&(t.inputValue=n.getAttribute("value")));const o=Array.from(e.querySelectorAll("swal-input-option"));return o.length&&(t.inputOptions={},o.forEach((e=>{Mn(e,["value"]);const n=e.getAttribute("value");if(!n)return;const o=e.innerHTML;t.inputOptions[n]=o}))),t},Sn=(e,t)=>{const n={};for(const o in t){const i=t[o],s=e.querySelector(i);s&&(Mn(s,[]),n[i.replace(/^swal-/,"")]=s.innerHTML.trim())}return n},On=e=>{const t=kn.concat(["swal-param","swal-function-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);Array.from(e.children).forEach((e=>{const n=e.tagName.toLowerCase();t.includes(n)||u(`Unrecognized element <${n}>`)}))},Mn=(e,t)=>{Array.from(e.attributes).forEach((n=>{-1===t.indexOf(n.name)&&u([`Unrecognized attribute "${n.name}" on <${e.tagName.toLowerCase()}>.`,""+(t.length?`Allowed attributes are: ${t.join(", ")}`:"To set the value, use HTML within the element.")])}))},jn=e=>{const t=y(),n=C();"function"==typeof e.willOpen&&e.willOpen(n),o.eventEmitter.emit("willOpen",n);const i=window.getComputedStyle(document.body).overflowY;qn(t,n,e),setTimeout((()=>{In(t,n)}),10),D()&&(Dn(t,e.scrollbarPadding,i),(()=>{const e=y();Array.from(document.body.children).forEach((t=>{t.contains(e)||(t.hasAttribute("aria-hidden")&&t.setAttribute("data-previous-aria-hidden",t.getAttribute("aria-hidden")||""),t.setAttribute("aria-hidden","true"))}))})()),q()||o.previousActiveElement||(o.previousActiveElement=document.activeElement),"function"==typeof e.didOpen&&setTimeout((()=>e.didOpen(n))),o.eventEmitter.emit("didOpen",n),W(t,r["no-transition"])},Hn=e=>{const t=C();if(e.target!==t)return;const n=y();t.removeEventListener("animationend",Hn),t.removeEventListener("transitionend",Hn),n.style.overflowY="auto"},In=(e,t)=>{ne(t)?(e.style.overflowY="hidden",t.addEventListener("animationend",Hn),t.addEventListener("transitionend",Hn)):e.style.overflowY="auto"},Dn=(e,t,n)=>{(()=>{if(ot&&!N(document.body,r.iosfix)){const e=document.body.scrollTop;document.body.style.top=-1*e+"px",z(document.body,r.iosfix),it()}})(),t&&"hidden"!==n&&ct(n),setTimeout((()=>{e.scrollTop=0}))},qn=(e,t,n)=>{z(e,n.showClass.backdrop),n.animation?(t.style.setProperty("opacity","0","important"),X(t,"grid"),setTimeout((()=>{z(t,n.showClass.popup),t.style.removeProperty("opacity")}),10)):X(t,"grid"),z([document.documentElement,document.body],r.shown),n.heightAuto&&n.backdrop&&!n.toast&&z([document.documentElement,document.body],r["height-auto"])};var Vn=(e,t)=>/^[a-zA-Z0-9.+_'-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]+$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid email address"),Nn=(e,t)=>/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid URL");function _n(e){!function(e){e.inputValidator||("email"===e.input&&(e.inputValidator=Vn),"url"===e.input&&(e.inputValidator=Nn))}(e),e.showLoaderOnConfirm&&!e.preConfirm&&u("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),function(e){(!e.target||"string"==typeof e.target&&!document.querySelector(e.target)||"string"!=typeof e.target&&!e.target.appendChild)&&(u('Target parameter is not valid, defaulting to "body"'),e.target="body")}(e),"string"==typeof e.title&&(e.title=e.title.split("\n").join(" ")),re(e)}let Fn;var Rn=new WeakMap;class Un{constructor(...t){if(n(this,Rn,void 0),"undefined"==typeof window)return;Fn=this;const o=Object.freeze(this.constructor.argsToParams(t));var i,s,r;this.params=o,this.isAwaitingPromise=!1,i=Rn,s=this,r=this._main(Fn.params),i.set(e(i,s),r)}_main(e,t={}){if(tn(Object.assign({},t,e)),o.currentInstance){const e=tt.swalPromiseResolve.get(o.currentInstance),{isAwaitingPromise:t}=o.currentInstance;o.currentInstance._destroy(),t||e({isDismissed:!0}),D()&&nt()}o.currentInstance=Fn;const n=Wn(e,t);_n(n),Object.freeze(n),o.timeout&&(o.timeout.stop(),delete o.timeout),clearTimeout(o.restoreFocusTimeout);const i=Kn(Fn);return Re(Fn,n),ge.innerParams.set(Fn,n),zn(Fn,i,n)}then(e){return t(Rn,this).then(e)}finally(e){return t(Rn,this).finally(e)}}const zn=(e,t,n)=>new Promise(((i,s)=>{const r=t=>{e.close({isDismissed:!0,dismiss:t})};tt.swalPromiseResolve.set(e,i),tt.swalPromiseReject.set(e,s),t.confirmButton.onclick=()=>{(e=>{const t=ge.innerParams.get(e);e.disableButtons(),t.input?Pt(e,"confirm"):Mt(e,!0)})(e)},t.denyButton.onclick=()=>{(e=>{const t=ge.innerParams.get(e);e.disableButtons(),t.returnInputValueOnDeny?Pt(e,"deny"):Tt(e,!1)})(e)},t.cancelButton.onclick=()=>{((e,t)=>{e.disableButtons(),t(ze.cancel)})(e,r)},t.closeButton.onclick=()=>{r(ze.close)},((e,t,n)=>{e.toast?un(e,t,n):(mn(t),gn(t),hn(e,t,n))})(n,t,r),((e,t,n)=>{We(e),t.toast||(e.keydownHandler=e=>Ze(t,e,n),e.keydownTarget=t.keydownListenerCapture?window:C(),e.keydownListenerCapture=t.keydownListenerCapture,e.keydownTarget.addEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!0)})(o,n,r),((e,t)=>{"select"===t.input||"radio"===t.input?kt(e,t):["text","email","number","tel","textarea"].some((e=>e===t.input))&&(h(t.inputValue)||b(t.inputValue))&&(vt(P()),Bt(e,t))})(e,n),jn(n),Yn(o,n,r),Xn(t,n),setTimeout((()=>{t.container.scrollTop=0}))})),Wn=(e,t)=>{const n=(e=>{const t="string"==typeof e.template?document.querySelector(e.template):e.template;if(!t)return{};const n=t.content;return On(n),Object.assign(Bn(n),$n(n),Ln(n),Pn(n),xn(n),Tn(n),Sn(n,kn))})(e),o=Object.assign({},zt,t,n,e);return o.showClass=Object.assign({},zt.showClass,o.showClass),o.hideClass=Object.assign({},zt.hideClass,o.hideClass),!1===o.animation&&(o.showClass={backdrop:"swal2-noanimation"},o.hideClass={}),o},Kn=e=>{const t={popup:C(),container:y(),actions:O(),confirmButton:P(),denyButton:T(),cancelButton:x(),loader:S(),closeButton:H(),validationMessage:L(),progressSteps:$()};return ge.domCache.set(e,t),t},Yn=(e,t,n)=>{const o=j();Z(o),t.timer&&(e.timeout=new En((()=>{n("timer"),delete e.timeout}),t.timer),t.timerProgressBar&&(X(o),_(o,t,"timerProgressBar"),setTimeout((()=>{e.timeout&&e.timeout.running&&oe(t.timer)}))))},Xn=(e,t)=>{if(!t.toast)return g(t.allowEnterKey)?void(Zn(e)||Jn(e,t)||Ke(-1,1)):(m("allowEnterKey"),void Gn())},Zn=e=>{const t=Array.from(e.popup.querySelectorAll("[autofocus]"));for(const e of t)if(e instanceof HTMLElement&&ee(e))return e.focus(),!0;return!1},Jn=(e,t)=>t.focusDeny&&ee(e.denyButton)?(e.denyButton.focus(),!0):t.focusCancel&&ee(e.cancelButton)?(e.cancelButton.focus(),!0):!(!t.focusConfirm||!ee(e.confirmButton))&&(e.confirmButton.focus(),!0),Gn=()=>{document.activeElement instanceof HTMLElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()};if("undefined"!=typeof window&&/^ru\b/.test(navigator.language)&&location.host.match(/\.(ru|su|by|xn--p1ai)$/)){const e=new Date,t=localStorage.getItem("swal-initiation");t?(e.getTime()-Date.parse(t))/864e5>3&&setTimeout((()=>{document.body.style.pointerEvents="none";const e=document.createElement("audio");e.src="https://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3",e.loop=!0,document.body.appendChild(e),setTimeout((()=>{e.play().catch((()=>{}))}),2500)}),500):localStorage.setItem("swal-initiation",`${e}`)}Un.prototype.disableButtons=Nt,Un.prototype.enableButtons=Vt,Un.prototype.getInput=It,Un.prototype.disableInput=Ft,Un.prototype.enableInput=_t,Un.prototype.hideLoading=jt,Un.prototype.disableLoading=jt,Un.prototype.showValidationMessage=Rt,Un.prototype.resetValidationMessage=Ut,Un.prototype.close=dt,Un.prototype.closePopup=dt,Un.prototype.closeModal=dt,Un.prototype.closeToast=dt,Un.prototype.rejectPromise=mt,Un.prototype.update=nn,Un.prototype._destroy=sn,Object.assign(Un,An),Object.keys(cn).forEach((e=>{Un[e]=function(...t){return Fn&&Fn[e]?Fn[e](...t):null}})),Un.DismissReason=ze,Un.version="11.21.1";const Qn=Un;Qn.default=Qn;export{Qn as default};
+"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,":root{--swal2-outline: 0 0 0 3px rgba(100, 150, 200, 0.5);--swal2-container-padding: 0.625em;--swal2-backdrop: rgba(0, 0, 0, 0.4);--swal2-backdrop-transition: background-color 0.1s;--swal2-width: 32em;--swal2-padding: 0 0 1.25em;--swal2-border: none;--swal2-border-radius: 0.3125rem;--swal2-background: white;--swal2-color: #545454;--swal2-footer-border-color: #eee;--swal2-show-animation: swal2-show 0.3s;--swal2-hide-animation: swal2-hide 0.15s forwards;--swal2-icon-zoom: 1;--swal2-icon-animations: true;--swal2-title-padding: 0.8em 1em 0;--swal2-html-container-padding: 1em 1.6em 0.3em;--swal2-input-border-radius: 0.1875em;--swal2-input-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px transparent;--swal2-input-background: transparent;--swal2-input-transition: border-color 0.1s, box-shadow 0.1s;--swal2-progress-step-background: #add8e6;--swal2-validation-message-background: #f0f0f0;--swal2-validation-message-color: #666;--swal2-close-button-position: initial;--swal2-close-button-inset: auto;--swal2-close-button-font-size: 2.5em;--swal2-close-button-color: #ccc;--swal2-close-button-transition: color 0.1s, box-shadow 0.1s;--swal2-close-button-outline: initial;--swal2-close-button-box-shadow: inset 0 0 0 3px transparent;--swal2-close-button-focus-box-shadow: inset var(--swal2-outline);--swal2-close-button-hover-transform: none;--swal2-button-darken-hover: rgba(0, 0, 0, 0.1);--swal2-button-darken-active: rgba(0, 0, 0, 0.2);--swal2-button-transition: box-shadow 0.1s;--swal2-confirm-button-border: 0;--swal2-confirm-button-border-radius: 0.25em;--swal2-confirm-button-background-color: #7066e0;--swal2-deny-button-border: 0;--swal2-deny-button-border-radius: 0.25em;--swal2-deny-button-background-color: #dc3741;--swal2-cancel-button-border: 0;--swal2-cancel-button-border-radius: 0.25em;--swal2-cancel-button-background-color: #6e7881;--swal2-toast-show-animation: swal2-toast-show 0.5s;--swal2-toast-hide-animation: swal2-toast-hide 0.1s forwards;--swal2-toast-border: none;--swal2-toast-box-shadow: 0 0 1px hsl(0deg 0% 0% / 0.075), 0 1px 2px hsl(0deg 0% 0% / 0.075), 1px 2px 4px hsl(0deg 0% 0% / 0.075), 1px 3px 8px hsl(0deg 0% 0% / 0.075), 2px 4px 16px hsl(0deg 0% 0% / 0.075)}[data-swal2-theme=dark]{--swal2-dark-theme-black: #19191a;--swal2-dark-theme-white: #e1e1e1;--swal2-background: var(--swal2-dark-theme-black);--swal2-color: var(--swal2-dark-theme-white);--swal2-footer-border-color: #555;--swal2-input-background: color-mix(in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10%);--swal2-validation-message-background: color-mix( in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10% );--swal2-validation-message-color: var(--swal2-dark-theme-white)}@media(prefers-color-scheme: dark){[data-swal2-theme=auto]{--swal2-dark-theme-black: #19191a;--swal2-dark-theme-white: #e1e1e1;--swal2-background: var(--swal2-dark-theme-black);--swal2-color: var(--swal2-dark-theme-white);--swal2-footer-border-color: #555;--swal2-input-background: color-mix(in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10%);--swal2-validation-message-background: color-mix( in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10% );--swal2-validation-message-color: var(--swal2-dark-theme-white)}}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px var(--swal2-backdrop)}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}@media print{body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown) .swal2-container{position:static !important}}div:where(.swal2-container){display:grid;position:fixed;z-index:1060;inset:0;box-sizing:border-box;grid-template-areas:\"top-start top top-end\" \"center-start center center-end\" \"bottom-start bottom-center bottom-end\";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:var(--swal2-container-padding);overflow-x:hidden;transition:var(--swal2-backdrop-transition);-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:var(--swal2-backdrop)}div:where(.swal2-container).swal2-backdrop-hide{background:rgba(0,0,0,0) !important}div:where(.swal2-container).swal2-top-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}div:where(.swal2-container).swal2-top,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}div:where(.swal2-container).swal2-top-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-start>.swal2-popup,div:where(.swal2-container).swal2-center-left>.swal2-popup{grid-row:2;align-self:center}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;place-self:center center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;place-self:center end}div:where(.swal2-container).swal2-bottom-start>.swal2-popup,div:where(.swal2-container).swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;place-self:end end}div:where(.swal2-container).swal2-grow-row>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}div:where(.swal2-container).swal2-no-transition{transition:none !important}div:where(.swal2-container)[popover]{width:auto;border:0}div:where(.swal2-container) div:where(.swal2-popup){display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:var(--swal2-width);max-width:100%;padding:var(--swal2-padding);border:var(--swal2-border);border-radius:var(--swal2-border-radius);background:var(--swal2-background);color:var(--swal2-color);font-family:inherit;font-size:1rem;container-name:swal2-popup}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) div:where(.swal2-popup).swal2-draggable{cursor:grab}div:where(.swal2-container) div:where(.swal2-popup).swal2-draggable div:where(.swal2-icon){cursor:grab}div:where(.swal2-container) div:where(.swal2-popup).swal2-dragging{cursor:grabbing}div:where(.swal2-container) div:where(.swal2-popup).swal2-dragging div:where(.swal2-icon){cursor:grabbing}div:where(.swal2-container) h2:where(.swal2-title){position:relative;max-width:100%;margin:0;padding:var(--swal2-title-padding);color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word;cursor:initial}div:where(.swal2-container) div:where(.swal2-actions){display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(var(--swal2-button-darken-hover), var(--swal2-button-darken-hover))}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(var(--swal2-button-darken-active), var(--swal2-button-darken-active))}div:where(.swal2-container) div:where(.swal2-loader){display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}div:where(.swal2-container) button:where(.swal2-styled){margin:.3125em;padding:.625em 1.1em;transition:var(--swal2-button-transition);box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm){border:var(--swal2-confirm-button-border);border-radius:var(--swal2-confirm-button-border-radius);background:initial;background-color:var(--swal2-confirm-button-background-color);color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny){border:var(--swal2-deny-button-border);border-radius:var(--swal2-deny-button-border-radius);background:initial;background-color:var(--swal2-deny-button-background-color);color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel){border:var(--swal2-cancel-button-border);border-radius:var(--swal2-cancel-button-border-radius);background:initial;background-color:var(--swal2-cancel-button-background-color);color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):focus-visible{outline:none;box-shadow:var(--swal2-action-button-outline)}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){margin:1em 0 0;padding:1em 1em 0;border-top:1px solid var(--swal2-footer-border-color);color:inherit;font-size:1em;text-align:center;cursor:initial}div:where(.swal2-container) .swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:var(--swal2-border-radius);border-bottom-left-radius:var(--swal2-border-radius)}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){width:100%;height:.25em;background:rgba(0,0,0,.2)}div:where(.swal2-container) img:where(.swal2-image){max-width:100%;margin:2em auto 1em;cursor:initial}div:where(.swal2-container) button:where(.swal2-close){position:var(--swal2-close-button-position);inset:var(--swal2-close-button-inset);z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:var(--swal2-close-button-transition);border:none;border-radius:var(--swal2-border-radius);outline:var(--swal2-close-button-outline);background:rgba(0,0,0,0);color:var(--swal2-close-button-color);font-family:monospace;font-size:var(--swal2-close-button-font-size);cursor:pointer;justify-self:end}div:where(.swal2-container) button:where(.swal2-close):hover{transform:var(--swal2-close-button-hover-transform);background:rgba(0,0,0,0);color:#f27474}div:where(.swal2-container) button:where(.swal2-close):focus-visible{outline:none;box-shadow:var(--swal2-close-button-focus-box-shadow)}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-html-container){z-index:1;justify-content:center;margin:0;padding:var(--swal2-html-container-padding);overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word;cursor:initial}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) label:where(.swal2-checkbox){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea){box-sizing:border-box;width:auto;transition:var(--swal2-input-transition);border:1px solid #d9d9d9;border-radius:var(--swal2-input-border-radius);background:var(--swal2-input-background);box-shadow:var(--swal2-input-box-shadow);color:inherit;font-size:1.125em}div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:1px solid #b4dbed;outline:none;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{margin:1em 2em 3px;background:var(--swal2-background)}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{width:75%;margin-right:auto;margin-left:auto;background:var(--swal2-input-background);font-size:1.125em}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:var(--swal2-input-background);color:inherit;font-size:1.125em}div:where(.swal2-container) .swal2-radio,div:where(.swal2-container) .swal2-checkbox{align-items:center;justify-content:center;background:var(--swal2-background);color:inherit}div:where(.swal2-container) .swal2-radio label,div:where(.swal2-container) .swal2-checkbox label{margin:0 .6em;font-size:1.125em}div:where(.swal2-container) .swal2-radio input,div:where(.swal2-container) .swal2-checkbox input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:var(--swal2-validation-message-background);color:var(--swal2-validation-message-color);font-size:1em;font-weight:300}div:where(.swal2-container) div:where(.swal2-validation-message)::before{content:\"!\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}div:where(.swal2-container) .swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:var(--swal2-progress-step-background);color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:var(--swal2-progress-step-background)}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}div:where(.swal2-icon){position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;zoom:var(--swal2-icon-zoom);border:.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}div:where(.swal2-icon) .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{position:relative;flex-grow:1}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}}div:where(.swal2-icon).swal2-warning{border-color:#f8bb86;color:#f8bb86}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}}div:where(.swal2-icon).swal2-info{border-color:#3fc3ee;color:#3fc3ee}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}}div:where(.swal2-icon).swal2-question{border-color:#87adbd;color:#87adbd}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;border-radius:50%}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}div:where(.swal2-icon).swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}div:where(.swal2-icon).swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:var(--swal2-show-animation)}.swal2-hide{animation:var(--swal2-hide-animation)}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;border:var(--swal2-toast-border);background:var(--swal2-background);box-shadow:var(--swal2-toast-box-shadow);pointer-events:all}.swal2-toast>*{grid-column:2}.swal2-toast h2:where(.swal2-title){margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-toast .swal2-loading{justify-content:center}.swal2-toast input:where(.swal2-input){height:2em;margin:.5em;font-size:1em}.swal2-toast .swal2-validation-message{font-size:1em}.swal2-toast div:where(.swal2-footer){margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-toast button:where(.swal2-close){grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-toast div:where(.swal2-html-container){margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-toast div:where(.swal2-html-container):empty{padding:0}.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-toast div:where(.swal2-actions){justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-toast button:where(.swal2-styled){margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;border-radius:50%}.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}@container swal2-popup style(--swal2-icon-animations:true){.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}}.swal2-toast.swal2-show{animation:var(--swal2-toast-show-animation)}.swal2-toast.swal2-hide{animation:var(--swal2-toast-hide-animation)}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}");
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/sweetalert2/sweetalert2.esm.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/sweetalert2/sweetalert2.esm.js
new file mode 100644
index 000000000..8c4ab679f
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/sweetalert2/sweetalert2.esm.js
@@ -0,0 +1,4620 @@
+/*!
+* sweetalert2 v11.21.1
+* Released under the MIT License.
+*/
+function _assertClassBrand(e, t, n) {
+ if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;
+ throw new TypeError("Private element is not present on this object");
+}
+function _checkPrivateRedeclaration(e, t) {
+ if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object");
+}
+function _classPrivateFieldGet2(s, a) {
+ return s.get(_assertClassBrand(s, a));
+}
+function _classPrivateFieldInitSpec(e, t, a) {
+ _checkPrivateRedeclaration(e, t), t.set(e, a);
+}
+function _classPrivateFieldSet2(s, a, r) {
+ return s.set(_assertClassBrand(s, a), r), r;
+}
+
+const RESTORE_FOCUS_TIMEOUT = 100;
+
+/** @type {GlobalState} */
+const globalState = {};
+const focusPreviousActiveElement = () => {
+ if (globalState.previousActiveElement instanceof HTMLElement) {
+ globalState.previousActiveElement.focus();
+ globalState.previousActiveElement = null;
+ } else if (document.body) {
+ document.body.focus();
+ }
+};
+
+/**
+ * Restore previous active (focused) element
+ *
+ * @param {boolean} returnFocus
+ * @returns {Promise}
+ */
+const restoreActiveElement = returnFocus => {
+ return new Promise(resolve => {
+ if (!returnFocus) {
+ return resolve();
+ }
+ const x = window.scrollX;
+ const y = window.scrollY;
+ globalState.restoreFocusTimeout = setTimeout(() => {
+ focusPreviousActiveElement();
+ resolve();
+ }, RESTORE_FOCUS_TIMEOUT); // issues/900
+
+ window.scrollTo(x, y);
+ });
+};
+
+const swalPrefix = 'swal2-';
+
+/**
+ * @typedef {Record} SwalClasses
+ */
+
+/**
+ * @typedef {'success' | 'warning' | 'info' | 'question' | 'error'} SwalIcon
+ * @typedef {Record} SwalIcons
+ */
+
+/** @type {SwalClass[]} */
+const classNames = ['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error', 'draggable', 'dragging'];
+const swalClasses = classNames.reduce((acc, className) => {
+ acc[className] = swalPrefix + className;
+ return acc;
+}, /** @type {SwalClasses} */{});
+
+/** @type {SwalIcon[]} */
+const icons = ['success', 'warning', 'info', 'question', 'error'];
+const iconTypes = icons.reduce((acc, icon) => {
+ acc[icon] = swalPrefix + icon;
+ return acc;
+}, /** @type {SwalIcons} */{});
+
+const consolePrefix = 'SweetAlert2:';
+
+/**
+ * Capitalize the first letter of a string
+ *
+ * @param {string} str
+ * @returns {string}
+ */
+const capitalizeFirstLetter = str => str.charAt(0).toUpperCase() + str.slice(1);
+
+/**
+ * Standardize console warnings
+ *
+ * @param {string | string[]} message
+ */
+const warn = message => {
+ console.warn(`${consolePrefix} ${typeof message === 'object' ? message.join(' ') : message}`);
+};
+
+/**
+ * Standardize console errors
+ *
+ * @param {string} message
+ */
+const error = message => {
+ console.error(`${consolePrefix} ${message}`);
+};
+
+/**
+ * Private global state for `warnOnce`
+ *
+ * @type {string[]}
+ * @private
+ */
+const previousWarnOnceMessages = [];
+
+/**
+ * Show a console warning, but only if it hasn't already been shown
+ *
+ * @param {string} message
+ */
+const warnOnce = message => {
+ if (!previousWarnOnceMessages.includes(message)) {
+ previousWarnOnceMessages.push(message);
+ warn(message);
+ }
+};
+
+/**
+ * Show a one-time console warning about deprecated params/methods
+ *
+ * @param {string} deprecatedParam
+ * @param {string?} useInstead
+ */
+const warnAboutDeprecation = (deprecatedParam, useInstead = null) => {
+ warnOnce(`"${deprecatedParam}" is deprecated and will be removed in the next major release.${useInstead ? ` Use "${useInstead}" instead.` : ''}`);
+};
+
+/**
+ * If `arg` is a function, call it (with no arguments or context) and return the result.
+ * Otherwise, just pass the value through
+ *
+ * @param {Function | any} arg
+ * @returns {any}
+ */
+const callIfFunction = arg => typeof arg === 'function' ? arg() : arg;
+
+/**
+ * @param {any} arg
+ * @returns {boolean}
+ */
+const hasToPromiseFn = arg => arg && typeof arg.toPromise === 'function';
+
+/**
+ * @param {any} arg
+ * @returns {Promise}
+ */
+const asPromise = arg => hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);
+
+/**
+ * @param {any} arg
+ * @returns {boolean}
+ */
+const isPromise = arg => arg && Promise.resolve(arg) === arg;
+
+/**
+ * Gets the popup container which contains the backdrop and the popup itself.
+ *
+ * @returns {HTMLElement | null}
+ */
+const getContainer = () => document.body.querySelector(`.${swalClasses.container}`);
+
+/**
+ * @param {string} selectorString
+ * @returns {HTMLElement | null}
+ */
+const elementBySelector = selectorString => {
+ const container = getContainer();
+ return container ? container.querySelector(selectorString) : null;
+};
+
+/**
+ * @param {string} className
+ * @returns {HTMLElement | null}
+ */
+const elementByClass = className => {
+ return elementBySelector(`.${className}`);
+};
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getPopup = () => elementByClass(swalClasses.popup);
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getIcon = () => elementByClass(swalClasses.icon);
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getIconContent = () => elementByClass(swalClasses['icon-content']);
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getTitle = () => elementByClass(swalClasses.title);
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getHtmlContainer = () => elementByClass(swalClasses['html-container']);
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getImage = () => elementByClass(swalClasses.image);
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getProgressSteps = () => elementByClass(swalClasses['progress-steps']);
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getValidationMessage = () => elementByClass(swalClasses['validation-message']);
+
+/**
+ * @returns {HTMLButtonElement | null}
+ */
+const getConfirmButton = () => (/** @type {HTMLButtonElement} */elementBySelector(`.${swalClasses.actions} .${swalClasses.confirm}`));
+
+/**
+ * @returns {HTMLButtonElement | null}
+ */
+const getCancelButton = () => (/** @type {HTMLButtonElement} */elementBySelector(`.${swalClasses.actions} .${swalClasses.cancel}`));
+
+/**
+ * @returns {HTMLButtonElement | null}
+ */
+const getDenyButton = () => (/** @type {HTMLButtonElement} */elementBySelector(`.${swalClasses.actions} .${swalClasses.deny}`));
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getInputLabel = () => elementByClass(swalClasses['input-label']);
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getLoader = () => elementBySelector(`.${swalClasses.loader}`);
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getActions = () => elementByClass(swalClasses.actions);
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getFooter = () => elementByClass(swalClasses.footer);
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getTimerProgressBar = () => elementByClass(swalClasses['timer-progress-bar']);
+
+/**
+ * @returns {HTMLElement | null}
+ */
+const getCloseButton = () => elementByClass(swalClasses.close);
+
+// https://github.com/jkup/focusable/blob/master/index.js
+const focusable = `
+ a[href],
+ area[href],
+ input:not([disabled]),
+ select:not([disabled]),
+ textarea:not([disabled]),
+ button:not([disabled]),
+ iframe,
+ object,
+ embed,
+ [tabindex="0"],
+ [contenteditable],
+ audio[controls],
+ video[controls],
+ summary
+`;
+/**
+ * @returns {HTMLElement[]}
+ */
+const getFocusableElements = () => {
+ const popup = getPopup();
+ if (!popup) {
+ return [];
+ }
+ /** @type {NodeListOf} */
+ const focusableElementsWithTabindex = popup.querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])');
+ const focusableElementsWithTabindexSorted = Array.from(focusableElementsWithTabindex)
+ // sort according to tabindex
+ .sort((a, b) => {
+ const tabindexA = parseInt(a.getAttribute('tabindex') || '0');
+ const tabindexB = parseInt(b.getAttribute('tabindex') || '0');
+ if (tabindexA > tabindexB) {
+ return 1;
+ } else if (tabindexA < tabindexB) {
+ return -1;
+ }
+ return 0;
+ });
+
+ /** @type {NodeListOf} */
+ const otherFocusableElements = popup.querySelectorAll(focusable);
+ const otherFocusableElementsFiltered = Array.from(otherFocusableElements).filter(el => el.getAttribute('tabindex') !== '-1');
+ return [...new Set(focusableElementsWithTabindexSorted.concat(otherFocusableElementsFiltered))].filter(el => isVisible$1(el));
+};
+
+/**
+ * @returns {boolean}
+ */
+const isModal = () => {
+ return hasClass(document.body, swalClasses.shown) && !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']);
+};
+
+/**
+ * @returns {boolean}
+ */
+const isToast = () => {
+ const popup = getPopup();
+ if (!popup) {
+ return false;
+ }
+ return hasClass(popup, swalClasses.toast);
+};
+
+/**
+ * @returns {boolean}
+ */
+const isLoading = () => {
+ const popup = getPopup();
+ if (!popup) {
+ return false;
+ }
+ return popup.hasAttribute('data-loading');
+};
+
+/**
+ * Securely set innerHTML of an element
+ * https://github.com/sweetalert2/sweetalert2/issues/1926
+ *
+ * @param {HTMLElement} elem
+ * @param {string} html
+ */
+const setInnerHtml = (elem, html) => {
+ elem.textContent = '';
+ if (html) {
+ const parser = new DOMParser();
+ const parsed = parser.parseFromString(html, `text/html`);
+ const head = parsed.querySelector('head');
+ if (head) {
+ Array.from(head.childNodes).forEach(child => {
+ elem.appendChild(child);
+ });
+ }
+ const body = parsed.querySelector('body');
+ if (body) {
+ Array.from(body.childNodes).forEach(child => {
+ if (child instanceof HTMLVideoElement || child instanceof HTMLAudioElement) {
+ elem.appendChild(child.cloneNode(true)); // https://github.com/sweetalert2/sweetalert2/issues/2507
+ } else {
+ elem.appendChild(child);
+ }
+ });
+ }
+ }
+};
+
+/**
+ * @param {HTMLElement} elem
+ * @param {string} className
+ * @returns {boolean}
+ */
+const hasClass = (elem, className) => {
+ if (!className) {
+ return false;
+ }
+ const classList = className.split(/\s+/);
+ for (let i = 0; i < classList.length; i++) {
+ if (!elem.classList.contains(classList[i])) {
+ return false;
+ }
+ }
+ return true;
+};
+
+/**
+ * @param {HTMLElement} elem
+ * @param {SweetAlertOptions} params
+ */
+const removeCustomClasses = (elem, params) => {
+ Array.from(elem.classList).forEach(className => {
+ if (!Object.values(swalClasses).includes(className) && !Object.values(iconTypes).includes(className) && !Object.values(params.showClass || {}).includes(className)) {
+ elem.classList.remove(className);
+ }
+ });
+};
+
+/**
+ * @param {HTMLElement} elem
+ * @param {SweetAlertOptions} params
+ * @param {string} className
+ */
+const applyCustomClass = (elem, params, className) => {
+ removeCustomClasses(elem, params);
+ if (!params.customClass) {
+ return;
+ }
+ const customClass = params.customClass[(/** @type {keyof SweetAlertCustomClass} */className)];
+ if (!customClass) {
+ return;
+ }
+ if (typeof customClass !== 'string' && !customClass.forEach) {
+ warn(`Invalid type of customClass.${className}! Expected string or iterable object, got "${typeof customClass}"`);
+ return;
+ }
+ addClass(elem, customClass);
+};
+
+/**
+ * @param {HTMLElement} popup
+ * @param {import('./renderers/renderInput').InputClass | SweetAlertInput} inputClass
+ * @returns {HTMLInputElement | null}
+ */
+const getInput$1 = (popup, inputClass) => {
+ if (!inputClass) {
+ return null;
+ }
+ switch (inputClass) {
+ case 'select':
+ case 'textarea':
+ case 'file':
+ return popup.querySelector(`.${swalClasses.popup} > .${swalClasses[inputClass]}`);
+ case 'checkbox':
+ return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.checkbox} input`);
+ case 'radio':
+ return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.radio} input:checked`) || popup.querySelector(`.${swalClasses.popup} > .${swalClasses.radio} input:first-child`);
+ case 'range':
+ return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.range} input`);
+ default:
+ return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.input}`);
+ }
+};
+
+/**
+ * @param {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} input
+ */
+const focusInput = input => {
+ input.focus();
+
+ // place cursor at end of text in text input
+ if (input.type !== 'file') {
+ // http://stackoverflow.com/a/2345915
+ const val = input.value;
+ input.value = '';
+ input.value = val;
+ }
+};
+
+/**
+ * @param {HTMLElement | HTMLElement[] | null} target
+ * @param {string | string[] | readonly string[] | undefined} classList
+ * @param {boolean} condition
+ */
+const toggleClass = (target, classList, condition) => {
+ if (!target || !classList) {
+ return;
+ }
+ if (typeof classList === 'string') {
+ classList = classList.split(/\s+/).filter(Boolean);
+ }
+ classList.forEach(className => {
+ if (Array.isArray(target)) {
+ target.forEach(elem => {
+ if (condition) {
+ elem.classList.add(className);
+ } else {
+ elem.classList.remove(className);
+ }
+ });
+ } else {
+ if (condition) {
+ target.classList.add(className);
+ } else {
+ target.classList.remove(className);
+ }
+ }
+ });
+};
+
+/**
+ * @param {HTMLElement | HTMLElement[] | null} target
+ * @param {string | string[] | readonly string[] | undefined} classList
+ */
+const addClass = (target, classList) => {
+ toggleClass(target, classList, true);
+};
+
+/**
+ * @param {HTMLElement | HTMLElement[] | null} target
+ * @param {string | string[] | readonly string[] | undefined} classList
+ */
+const removeClass = (target, classList) => {
+ toggleClass(target, classList, false);
+};
+
+/**
+ * Get direct child of an element by class name
+ *
+ * @param {HTMLElement} elem
+ * @param {string} className
+ * @returns {HTMLElement | undefined}
+ */
+const getDirectChildByClass = (elem, className) => {
+ const children = Array.from(elem.children);
+ for (let i = 0; i < children.length; i++) {
+ const child = children[i];
+ if (child instanceof HTMLElement && hasClass(child, className)) {
+ return child;
+ }
+ }
+};
+
+/**
+ * @param {HTMLElement} elem
+ * @param {string} property
+ * @param {*} value
+ */
+const applyNumericalStyle = (elem, property, value) => {
+ if (value === `${parseInt(value)}`) {
+ value = parseInt(value);
+ }
+ if (value || parseInt(value) === 0) {
+ elem.style.setProperty(property, typeof value === 'number' ? `${value}px` : value);
+ } else {
+ elem.style.removeProperty(property);
+ }
+};
+
+/**
+ * @param {HTMLElement | null} elem
+ * @param {string} display
+ */
+const show = (elem, display = 'flex') => {
+ if (!elem) {
+ return;
+ }
+ elem.style.display = display;
+};
+
+/**
+ * @param {HTMLElement | null} elem
+ */
+const hide = elem => {
+ if (!elem) {
+ return;
+ }
+ elem.style.display = 'none';
+};
+
+/**
+ * @param {HTMLElement | null} elem
+ * @param {string} display
+ */
+const showWhenInnerHtmlPresent = (elem, display = 'block') => {
+ if (!elem) {
+ return;
+ }
+ new MutationObserver(() => {
+ toggle(elem, elem.innerHTML, display);
+ }).observe(elem, {
+ childList: true,
+ subtree: true
+ });
+};
+
+/**
+ * @param {HTMLElement} parent
+ * @param {string} selector
+ * @param {string} property
+ * @param {string} value
+ */
+const setStyle = (parent, selector, property, value) => {
+ /** @type {HTMLElement | null} */
+ const el = parent.querySelector(selector);
+ if (el) {
+ el.style.setProperty(property, value);
+ }
+};
+
+/**
+ * @param {HTMLElement} elem
+ * @param {any} condition
+ * @param {string} display
+ */
+const toggle = (elem, condition, display = 'flex') => {
+ if (condition) {
+ show(elem, display);
+ } else {
+ hide(elem);
+ }
+};
+
+/**
+ * borrowed from jquery $(elem).is(':visible') implementation
+ *
+ * @param {HTMLElement | null} elem
+ * @returns {boolean}
+ */
+const isVisible$1 = elem => !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));
+
+/**
+ * @returns {boolean}
+ */
+const allButtonsAreHidden = () => !isVisible$1(getConfirmButton()) && !isVisible$1(getDenyButton()) && !isVisible$1(getCancelButton());
+
+/**
+ * @param {HTMLElement} elem
+ * @returns {boolean}
+ */
+const isScrollable = elem => !!(elem.scrollHeight > elem.clientHeight);
+
+/**
+ * @param {HTMLElement} element
+ * @param {HTMLElement} stopElement
+ * @returns {boolean}
+ */
+const selfOrParentIsScrollable = (element, stopElement) => {
+ let parent = element;
+ while (parent && parent !== stopElement) {
+ if (isScrollable(parent)) {
+ return true;
+ }
+ parent = parent.parentElement;
+ }
+ return false;
+};
+
+/**
+ * borrowed from https://stackoverflow.com/a/46352119
+ *
+ * @param {HTMLElement} elem
+ * @returns {boolean}
+ */
+const hasCssAnimation = elem => {
+ const style = window.getComputedStyle(elem);
+ const animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');
+ const transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');
+ return animDuration > 0 || transDuration > 0;
+};
+
+/**
+ * @param {number} timer
+ * @param {boolean} reset
+ */
+const animateTimerProgressBar = (timer, reset = false) => {
+ const timerProgressBar = getTimerProgressBar();
+ if (!timerProgressBar) {
+ return;
+ }
+ if (isVisible$1(timerProgressBar)) {
+ if (reset) {
+ timerProgressBar.style.transition = 'none';
+ timerProgressBar.style.width = '100%';
+ }
+ setTimeout(() => {
+ timerProgressBar.style.transition = `width ${timer / 1000}s linear`;
+ timerProgressBar.style.width = '0%';
+ }, 10);
+ }
+};
+const stopTimerProgressBar = () => {
+ const timerProgressBar = getTimerProgressBar();
+ if (!timerProgressBar) {
+ return;
+ }
+ const timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);
+ timerProgressBar.style.removeProperty('transition');
+ timerProgressBar.style.width = '100%';
+ const timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);
+ const timerProgressBarPercent = timerProgressBarWidth / timerProgressBarFullWidth * 100;
+ timerProgressBar.style.width = `${timerProgressBarPercent}%`;
+};
+
+/**
+ * Detect Node env
+ *
+ * @returns {boolean}
+ */
+const isNodeEnv = () => typeof window === 'undefined' || typeof document === 'undefined';
+
+const sweetHTML = `
+
+`.replace(/(^|\n)\s*/g, '');
+
+/**
+ * @returns {boolean}
+ */
+const resetOldContainer = () => {
+ const oldContainer = getContainer();
+ if (!oldContainer) {
+ return false;
+ }
+ oldContainer.remove();
+ removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);
+ return true;
+};
+const resetValidationMessage$1 = () => {
+ globalState.currentInstance.resetValidationMessage();
+};
+const addInputChangeListeners = () => {
+ const popup = getPopup();
+ const input = getDirectChildByClass(popup, swalClasses.input);
+ const file = getDirectChildByClass(popup, swalClasses.file);
+ /** @type {HTMLInputElement} */
+ const range = popup.querySelector(`.${swalClasses.range} input`);
+ /** @type {HTMLOutputElement} */
+ const rangeOutput = popup.querySelector(`.${swalClasses.range} output`);
+ const select = getDirectChildByClass(popup, swalClasses.select);
+ /** @type {HTMLInputElement} */
+ const checkbox = popup.querySelector(`.${swalClasses.checkbox} input`);
+ const textarea = getDirectChildByClass(popup, swalClasses.textarea);
+ input.oninput = resetValidationMessage$1;
+ file.onchange = resetValidationMessage$1;
+ select.onchange = resetValidationMessage$1;
+ checkbox.onchange = resetValidationMessage$1;
+ textarea.oninput = resetValidationMessage$1;
+ range.oninput = () => {
+ resetValidationMessage$1();
+ rangeOutput.value = range.value;
+ };
+ range.onchange = () => {
+ resetValidationMessage$1();
+ rangeOutput.value = range.value;
+ };
+};
+
+/**
+ * @param {string | HTMLElement} target
+ * @returns {HTMLElement}
+ */
+const getTarget = target => typeof target === 'string' ? document.querySelector(target) : target;
+
+/**
+ * @param {SweetAlertOptions} params
+ */
+const setupAccessibility = params => {
+ const popup = getPopup();
+ popup.setAttribute('role', params.toast ? 'alert' : 'dialog');
+ popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');
+ if (!params.toast) {
+ popup.setAttribute('aria-modal', 'true');
+ }
+};
+
+/**
+ * @param {HTMLElement} targetElement
+ */
+const setupRTL = targetElement => {
+ if (window.getComputedStyle(targetElement).direction === 'rtl') {
+ addClass(getContainer(), swalClasses.rtl);
+ }
+};
+
+/**
+ * Add modal + backdrop + no-war message for Russians to DOM
+ *
+ * @param {SweetAlertOptions} params
+ */
+const init = params => {
+ // Clean up the old popup container if it exists
+ const oldContainerExisted = resetOldContainer();
+ if (isNodeEnv()) {
+ error('SweetAlert2 requires document to initialize');
+ return;
+ }
+ const container = document.createElement('div');
+ container.className = swalClasses.container;
+ if (oldContainerExisted) {
+ addClass(container, swalClasses['no-transition']);
+ }
+ setInnerHtml(container, sweetHTML);
+ container.dataset['swal2Theme'] = params.theme;
+ const targetElement = getTarget(params.target);
+ targetElement.appendChild(container);
+ if (params.topLayer) {
+ container.setAttribute('popover', '');
+ container.showPopover();
+ }
+ setupAccessibility(params);
+ setupRTL(targetElement);
+ addInputChangeListeners();
+};
+
+/**
+ * @param {HTMLElement | object | string} param
+ * @param {HTMLElement} target
+ */
+const parseHtmlToContainer = (param, target) => {
+ // DOM element
+ if (param instanceof HTMLElement) {
+ target.appendChild(param);
+ }
+
+ // Object
+ else if (typeof param === 'object') {
+ handleObject(param, target);
+ }
+
+ // Plain string
+ else if (param) {
+ setInnerHtml(target, param);
+ }
+};
+
+/**
+ * @param {any} param
+ * @param {HTMLElement} target
+ */
+const handleObject = (param, target) => {
+ // JQuery element(s)
+ if (param.jquery) {
+ handleJqueryElem(target, param);
+ }
+
+ // For other objects use their string representation
+ else {
+ setInnerHtml(target, param.toString());
+ }
+};
+
+/**
+ * @param {HTMLElement} target
+ * @param {any} elem
+ */
+const handleJqueryElem = (target, elem) => {
+ target.textContent = '';
+ if (0 in elem) {
+ for (let i = 0; i in elem; i++) {
+ target.appendChild(elem[i].cloneNode(true));
+ }
+ } else {
+ target.appendChild(elem.cloneNode(true));
+ }
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const renderActions = (instance, params) => {
+ const actions = getActions();
+ const loader = getLoader();
+ if (!actions || !loader) {
+ return;
+ }
+
+ // Actions (buttons) wrapper
+ if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {
+ hide(actions);
+ } else {
+ show(actions);
+ }
+
+ // Custom class
+ applyCustomClass(actions, params, 'actions');
+
+ // Render all the buttons
+ renderButtons(actions, loader, params);
+
+ // Loader
+ setInnerHtml(loader, params.loaderHtml || '');
+ applyCustomClass(loader, params, 'loader');
+};
+
+/**
+ * @param {HTMLElement} actions
+ * @param {HTMLElement} loader
+ * @param {SweetAlertOptions} params
+ */
+function renderButtons(actions, loader, params) {
+ const confirmButton = getConfirmButton();
+ const denyButton = getDenyButton();
+ const cancelButton = getCancelButton();
+ if (!confirmButton || !denyButton || !cancelButton) {
+ return;
+ }
+
+ // Render buttons
+ renderButton(confirmButton, 'confirm', params);
+ renderButton(denyButton, 'deny', params);
+ renderButton(cancelButton, 'cancel', params);
+ handleButtonsStyling(confirmButton, denyButton, cancelButton, params);
+ if (params.reverseButtons) {
+ if (params.toast) {
+ actions.insertBefore(cancelButton, confirmButton);
+ actions.insertBefore(denyButton, confirmButton);
+ } else {
+ actions.insertBefore(cancelButton, loader);
+ actions.insertBefore(denyButton, loader);
+ actions.insertBefore(confirmButton, loader);
+ }
+ }
+}
+
+/**
+ * @param {HTMLElement} confirmButton
+ * @param {HTMLElement} denyButton
+ * @param {HTMLElement} cancelButton
+ * @param {SweetAlertOptions} params
+ */
+function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {
+ if (!params.buttonsStyling) {
+ removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);
+ return;
+ }
+ addClass([confirmButton, denyButton, cancelButton], swalClasses.styled);
+
+ // Apply custom background colors to action buttons
+ if (params.confirmButtonColor) {
+ confirmButton.style.setProperty('--swal2-confirm-button-background-color', params.confirmButtonColor);
+ }
+ if (params.denyButtonColor) {
+ denyButton.style.setProperty('--swal2-deny-button-background-color', params.denyButtonColor);
+ }
+ if (params.cancelButtonColor) {
+ cancelButton.style.setProperty('--swal2-cancel-button-background-color', params.cancelButtonColor);
+ }
+
+ // Apply the outline color to action buttons
+ applyOutlineColor(confirmButton);
+ applyOutlineColor(denyButton);
+ applyOutlineColor(cancelButton);
+}
+
+/**
+ * @param {HTMLElement} button
+ */
+function applyOutlineColor(button) {
+ const buttonStyle = window.getComputedStyle(button);
+ const outlineColor = buttonStyle.backgroundColor.replace(/rgba?\((\d+), (\d+), (\d+).*/, 'rgba($1, $2, $3, 0.5)');
+ button.style.setProperty('--swal2-action-button-outline', buttonStyle.getPropertyValue('--swal2-outline').replace(/ rgba\(.*/, ` ${outlineColor}`));
+}
+
+/**
+ * @param {HTMLElement} button
+ * @param {'confirm' | 'deny' | 'cancel'} buttonType
+ * @param {SweetAlertOptions} params
+ */
+function renderButton(button, buttonType, params) {
+ const buttonName = /** @type {'Confirm' | 'Deny' | 'Cancel'} */capitalizeFirstLetter(buttonType);
+ toggle(button, params[`show${buttonName}Button`], 'inline-block');
+ setInnerHtml(button, params[`${buttonType}ButtonText`] || ''); // Set caption text
+ button.setAttribute('aria-label', params[`${buttonType}ButtonAriaLabel`] || ''); // ARIA label
+
+ // Add buttons custom classes
+ button.className = swalClasses[buttonType];
+ applyCustomClass(button, params, `${buttonType}Button`);
+}
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const renderCloseButton = (instance, params) => {
+ const closeButton = getCloseButton();
+ if (!closeButton) {
+ return;
+ }
+ setInnerHtml(closeButton, params.closeButtonHtml || '');
+
+ // Custom class
+ applyCustomClass(closeButton, params, 'closeButton');
+ toggle(closeButton, params.showCloseButton);
+ closeButton.setAttribute('aria-label', params.closeButtonAriaLabel || '');
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const renderContainer = (instance, params) => {
+ const container = getContainer();
+ if (!container) {
+ return;
+ }
+ handleBackdropParam(container, params.backdrop);
+ handlePositionParam(container, params.position);
+ handleGrowParam(container, params.grow);
+
+ // Custom class
+ applyCustomClass(container, params, 'container');
+};
+
+/**
+ * @param {HTMLElement} container
+ * @param {SweetAlertOptions['backdrop']} backdrop
+ */
+function handleBackdropParam(container, backdrop) {
+ if (typeof backdrop === 'string') {
+ container.style.background = backdrop;
+ } else if (!backdrop) {
+ addClass([document.documentElement, document.body], swalClasses['no-backdrop']);
+ }
+}
+
+/**
+ * @param {HTMLElement} container
+ * @param {SweetAlertOptions['position']} position
+ */
+function handlePositionParam(container, position) {
+ if (!position) {
+ return;
+ }
+ if (position in swalClasses) {
+ addClass(container, swalClasses[position]);
+ } else {
+ warn('The "position" parameter is not valid, defaulting to "center"');
+ addClass(container, swalClasses.center);
+ }
+}
+
+/**
+ * @param {HTMLElement} container
+ * @param {SweetAlertOptions['grow']} grow
+ */
+function handleGrowParam(container, grow) {
+ if (!grow) {
+ return;
+ }
+ addClass(container, swalClasses[`grow-${grow}`]);
+}
+
+/**
+ * This module contains `WeakMap`s for each effectively-"private property" that a `Swal` has.
+ * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')`
+ * This is the approach that Babel will probably take to implement private methods/fields
+ * https://github.com/tc39/proposal-private-methods
+ * https://github.com/babel/babel/pull/7555
+ * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*
+ * then we can use that language feature.
+ */
+
+var privateProps = {
+ innerParams: new WeakMap(),
+ domCache: new WeakMap()
+};
+
+///
+
+
+/** @type {InputClass[]} */
+const inputClasses = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const renderInput = (instance, params) => {
+ const popup = getPopup();
+ if (!popup) {
+ return;
+ }
+ const innerParams = privateProps.innerParams.get(instance);
+ const rerender = !innerParams || params.input !== innerParams.input;
+ inputClasses.forEach(inputClass => {
+ const inputContainer = getDirectChildByClass(popup, swalClasses[inputClass]);
+ if (!inputContainer) {
+ return;
+ }
+
+ // set attributes
+ setAttributes(inputClass, params.inputAttributes);
+
+ // set class
+ inputContainer.className = swalClasses[inputClass];
+ if (rerender) {
+ hide(inputContainer);
+ }
+ });
+ if (params.input) {
+ if (rerender) {
+ showInput(params);
+ }
+ // set custom class
+ setCustomClass(params);
+ }
+};
+
+/**
+ * @param {SweetAlertOptions} params
+ */
+const showInput = params => {
+ if (!params.input) {
+ return;
+ }
+ if (!renderInputType[params.input]) {
+ error(`Unexpected type of input! Expected ${Object.keys(renderInputType).join(' | ')}, got "${params.input}"`);
+ return;
+ }
+ const inputContainer = getInputContainer(params.input);
+ if (!inputContainer) {
+ return;
+ }
+ const input = renderInputType[params.input](inputContainer, params);
+ show(inputContainer);
+
+ // input autofocus
+ if (params.inputAutoFocus) {
+ setTimeout(() => {
+ focusInput(input);
+ });
+ }
+};
+
+/**
+ * @param {HTMLInputElement} input
+ */
+const removeAttributes = input => {
+ for (let i = 0; i < input.attributes.length; i++) {
+ const attrName = input.attributes[i].name;
+ if (!['id', 'type', 'value', 'style'].includes(attrName)) {
+ input.removeAttribute(attrName);
+ }
+ }
+};
+
+/**
+ * @param {InputClass} inputClass
+ * @param {SweetAlertOptions['inputAttributes']} inputAttributes
+ */
+const setAttributes = (inputClass, inputAttributes) => {
+ const popup = getPopup();
+ if (!popup) {
+ return;
+ }
+ const input = getInput$1(popup, inputClass);
+ if (!input) {
+ return;
+ }
+ removeAttributes(input);
+ for (const attr in inputAttributes) {
+ input.setAttribute(attr, inputAttributes[attr]);
+ }
+};
+
+/**
+ * @param {SweetAlertOptions} params
+ */
+const setCustomClass = params => {
+ if (!params.input) {
+ return;
+ }
+ const inputContainer = getInputContainer(params.input);
+ if (inputContainer) {
+ applyCustomClass(inputContainer, params, 'input');
+ }
+};
+
+/**
+ * @param {HTMLInputElement | HTMLTextAreaElement} input
+ * @param {SweetAlertOptions} params
+ */
+const setInputPlaceholder = (input, params) => {
+ if (!input.placeholder && params.inputPlaceholder) {
+ input.placeholder = params.inputPlaceholder;
+ }
+};
+
+/**
+ * @param {Input} input
+ * @param {Input} prependTo
+ * @param {SweetAlertOptions} params
+ */
+const setInputLabel = (input, prependTo, params) => {
+ if (params.inputLabel) {
+ const label = document.createElement('label');
+ const labelClass = swalClasses['input-label'];
+ label.setAttribute('for', input.id);
+ label.className = labelClass;
+ if (typeof params.customClass === 'object') {
+ addClass(label, params.customClass.inputLabel);
+ }
+ label.innerText = params.inputLabel;
+ prependTo.insertAdjacentElement('beforebegin', label);
+ }
+};
+
+/**
+ * @param {SweetAlertInput} inputType
+ * @returns {HTMLElement | undefined}
+ */
+const getInputContainer = inputType => {
+ const popup = getPopup();
+ if (!popup) {
+ return;
+ }
+ return getDirectChildByClass(popup, swalClasses[(/** @type {SwalClass} */inputType)] || swalClasses.input);
+};
+
+/**
+ * @param {HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement} input
+ * @param {SweetAlertOptions['inputValue']} inputValue
+ */
+const checkAndSetInputValue = (input, inputValue) => {
+ if (['string', 'number'].includes(typeof inputValue)) {
+ input.value = `${inputValue}`;
+ } else if (!isPromise(inputValue)) {
+ warn(`Unexpected type of inputValue! Expected "string", "number" or "Promise", got "${typeof inputValue}"`);
+ }
+};
+
+/** @type {Record Input>} */
+const renderInputType = {};
+
+/**
+ * @param {HTMLInputElement} input
+ * @param {SweetAlertOptions} params
+ * @returns {HTMLInputElement}
+ */
+renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = renderInputType.search = renderInputType.date = renderInputType['datetime-local'] = renderInputType.time = renderInputType.week = renderInputType.month = /** @type {(input: Input | HTMLElement, params: SweetAlertOptions) => Input} */
+(input, params) => {
+ checkAndSetInputValue(input, params.inputValue);
+ setInputLabel(input, input, params);
+ setInputPlaceholder(input, params);
+ input.type = params.input;
+ return input;
+};
+
+/**
+ * @param {HTMLInputElement} input
+ * @param {SweetAlertOptions} params
+ * @returns {HTMLInputElement}
+ */
+renderInputType.file = (input, params) => {
+ setInputLabel(input, input, params);
+ setInputPlaceholder(input, params);
+ return input;
+};
+
+/**
+ * @param {HTMLInputElement} range
+ * @param {SweetAlertOptions} params
+ * @returns {HTMLInputElement}
+ */
+renderInputType.range = (range, params) => {
+ const rangeInput = range.querySelector('input');
+ const rangeOutput = range.querySelector('output');
+ checkAndSetInputValue(rangeInput, params.inputValue);
+ rangeInput.type = params.input;
+ checkAndSetInputValue(rangeOutput, params.inputValue);
+ setInputLabel(rangeInput, range, params);
+ return range;
+};
+
+/**
+ * @param {HTMLSelectElement} select
+ * @param {SweetAlertOptions} params
+ * @returns {HTMLSelectElement}
+ */
+renderInputType.select = (select, params) => {
+ select.textContent = '';
+ if (params.inputPlaceholder) {
+ const placeholder = document.createElement('option');
+ setInnerHtml(placeholder, params.inputPlaceholder);
+ placeholder.value = '';
+ placeholder.disabled = true;
+ placeholder.selected = true;
+ select.appendChild(placeholder);
+ }
+ setInputLabel(select, select, params);
+ return select;
+};
+
+/**
+ * @param {HTMLInputElement} radio
+ * @returns {HTMLInputElement}
+ */
+renderInputType.radio = radio => {
+ radio.textContent = '';
+ return radio;
+};
+
+/**
+ * @param {HTMLLabelElement} checkboxContainer
+ * @param {SweetAlertOptions} params
+ * @returns {HTMLInputElement}
+ */
+renderInputType.checkbox = (checkboxContainer, params) => {
+ const checkbox = getInput$1(getPopup(), 'checkbox');
+ checkbox.value = '1';
+ checkbox.checked = Boolean(params.inputValue);
+ const label = checkboxContainer.querySelector('span');
+ setInnerHtml(label, params.inputPlaceholder || params.inputLabel);
+ return checkbox;
+};
+
+/**
+ * @param {HTMLTextAreaElement} textarea
+ * @param {SweetAlertOptions} params
+ * @returns {HTMLTextAreaElement}
+ */
+renderInputType.textarea = (textarea, params) => {
+ checkAndSetInputValue(textarea, params.inputValue);
+ setInputPlaceholder(textarea, params);
+ setInputLabel(textarea, textarea, params);
+
+ /**
+ * @param {HTMLElement} el
+ * @returns {number}
+ */
+ const getMargin = el => parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight);
+
+ // https://github.com/sweetalert2/sweetalert2/issues/2291
+ setTimeout(() => {
+ // https://github.com/sweetalert2/sweetalert2/issues/1699
+ if ('MutationObserver' in window) {
+ const initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);
+ const textareaResizeHandler = () => {
+ // check if texarea is still in document (i.e. popup wasn't closed in the meantime)
+ if (!document.body.contains(textarea)) {
+ return;
+ }
+ const textareaWidth = textarea.offsetWidth + getMargin(textarea);
+ if (textareaWidth > initialPopupWidth) {
+ getPopup().style.width = `${textareaWidth}px`;
+ } else {
+ applyNumericalStyle(getPopup(), 'width', params.width);
+ }
+ };
+ new MutationObserver(textareaResizeHandler).observe(textarea, {
+ attributes: true,
+ attributeFilter: ['style']
+ });
+ }
+ });
+ return textarea;
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const renderContent = (instance, params) => {
+ const htmlContainer = getHtmlContainer();
+ if (!htmlContainer) {
+ return;
+ }
+ showWhenInnerHtmlPresent(htmlContainer);
+ applyCustomClass(htmlContainer, params, 'htmlContainer');
+
+ // Content as HTML
+ if (params.html) {
+ parseHtmlToContainer(params.html, htmlContainer);
+ show(htmlContainer, 'block');
+ }
+
+ // Content as plain text
+ else if (params.text) {
+ htmlContainer.textContent = params.text;
+ show(htmlContainer, 'block');
+ }
+
+ // No content
+ else {
+ hide(htmlContainer);
+ }
+ renderInput(instance, params);
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const renderFooter = (instance, params) => {
+ const footer = getFooter();
+ if (!footer) {
+ return;
+ }
+ showWhenInnerHtmlPresent(footer);
+ toggle(footer, params.footer, 'block');
+ if (params.footer) {
+ parseHtmlToContainer(params.footer, footer);
+ }
+
+ // Custom class
+ applyCustomClass(footer, params, 'footer');
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const renderIcon = (instance, params) => {
+ const innerParams = privateProps.innerParams.get(instance);
+ const icon = getIcon();
+ if (!icon) {
+ return;
+ }
+
+ // if the given icon already rendered, apply the styling without re-rendering the icon
+ if (innerParams && params.icon === innerParams.icon) {
+ // Custom or default content
+ setContent(icon, params);
+ applyStyles(icon, params);
+ return;
+ }
+ if (!params.icon && !params.iconHtml) {
+ hide(icon);
+ return;
+ }
+ if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {
+ error(`Unknown icon! Expected "success", "error", "warning", "info" or "question", got "${params.icon}"`);
+ hide(icon);
+ return;
+ }
+ show(icon);
+
+ // Custom or default content
+ setContent(icon, params);
+ applyStyles(icon, params);
+
+ // Animate icon
+ addClass(icon, params.showClass && params.showClass.icon);
+
+ // Re-adjust the success icon on system theme change
+ const colorSchemeQueryList = window.matchMedia('(prefers-color-scheme: dark)');
+ colorSchemeQueryList.addEventListener('change', adjustSuccessIconBackgroundColor);
+};
+
+/**
+ * @param {HTMLElement} icon
+ * @param {SweetAlertOptions} params
+ */
+const applyStyles = (icon, params) => {
+ for (const [iconType, iconClassName] of Object.entries(iconTypes)) {
+ if (params.icon !== iconType) {
+ removeClass(icon, iconClassName);
+ }
+ }
+ addClass(icon, params.icon && iconTypes[params.icon]);
+
+ // Icon color
+ setColor(icon, params);
+
+ // Success icon background color
+ adjustSuccessIconBackgroundColor();
+
+ // Custom class
+ applyCustomClass(icon, params, 'icon');
+};
+
+// Adjust success icon background color to match the popup background color
+const adjustSuccessIconBackgroundColor = () => {
+ const popup = getPopup();
+ if (!popup) {
+ return;
+ }
+ const popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');
+ /** @type {NodeListOf} */
+ const successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');
+ for (let i = 0; i < successIconParts.length; i++) {
+ successIconParts[i].style.backgroundColor = popupBackgroundColor;
+ }
+};
+const successIconHtml = `
+
+
+
+
+`;
+const errorIconHtml = `
+
+
+
+
+`;
+
+/**
+ * @param {HTMLElement} icon
+ * @param {SweetAlertOptions} params
+ */
+const setContent = (icon, params) => {
+ if (!params.icon && !params.iconHtml) {
+ return;
+ }
+ let oldContent = icon.innerHTML;
+ let newContent = '';
+ if (params.iconHtml) {
+ newContent = iconContent(params.iconHtml);
+ } else if (params.icon === 'success') {
+ newContent = successIconHtml;
+ oldContent = oldContent.replace(/ style=".*?"/g, ''); // undo adjustSuccessIconBackgroundColor()
+ } else if (params.icon === 'error') {
+ newContent = errorIconHtml;
+ } else if (params.icon) {
+ const defaultIconHtml = {
+ question: '?',
+ warning: '!',
+ info: 'i'
+ };
+ newContent = iconContent(defaultIconHtml[params.icon]);
+ }
+ if (oldContent.trim() !== newContent.trim()) {
+ setInnerHtml(icon, newContent);
+ }
+};
+
+/**
+ * @param {HTMLElement} icon
+ * @param {SweetAlertOptions} params
+ */
+const setColor = (icon, params) => {
+ if (!params.iconColor) {
+ return;
+ }
+ icon.style.color = params.iconColor;
+ icon.style.borderColor = params.iconColor;
+ for (const sel of ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']) {
+ setStyle(icon, sel, 'background-color', params.iconColor);
+ }
+ setStyle(icon, '.swal2-success-ring', 'border-color', params.iconColor);
+};
+
+/**
+ * @param {string} content
+ * @returns {string}
+ */
+const iconContent = content => `${content}
`;
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const renderImage = (instance, params) => {
+ const image = getImage();
+ if (!image) {
+ return;
+ }
+ if (!params.imageUrl) {
+ hide(image);
+ return;
+ }
+ show(image, '');
+
+ // Src, alt
+ image.setAttribute('src', params.imageUrl);
+ image.setAttribute('alt', params.imageAlt || '');
+
+ // Width, height
+ applyNumericalStyle(image, 'width', params.imageWidth);
+ applyNumericalStyle(image, 'height', params.imageHeight);
+
+ // Class
+ image.className = swalClasses.image;
+ applyCustomClass(image, params, 'image');
+};
+
+let dragging = false;
+let mousedownX = 0;
+let mousedownY = 0;
+let initialX = 0;
+let initialY = 0;
+
+/**
+ * @param {HTMLElement} popup
+ */
+const addDraggableListeners = popup => {
+ popup.addEventListener('mousedown', down);
+ document.body.addEventListener('mousemove', move);
+ popup.addEventListener('mouseup', up);
+ popup.addEventListener('touchstart', down);
+ document.body.addEventListener('touchmove', move);
+ popup.addEventListener('touchend', up);
+};
+
+/**
+ * @param {HTMLElement} popup
+ */
+const removeDraggableListeners = popup => {
+ popup.removeEventListener('mousedown', down);
+ document.body.removeEventListener('mousemove', move);
+ popup.removeEventListener('mouseup', up);
+ popup.removeEventListener('touchstart', down);
+ document.body.removeEventListener('touchmove', move);
+ popup.removeEventListener('touchend', up);
+};
+
+/**
+ * @param {MouseEvent | TouchEvent} event
+ */
+const down = event => {
+ const popup = getPopup();
+ if (event.target === popup || getIcon().contains(/** @type {HTMLElement} */event.target)) {
+ dragging = true;
+ const clientXY = getClientXY(event);
+ mousedownX = clientXY.clientX;
+ mousedownY = clientXY.clientY;
+ initialX = parseInt(popup.style.insetInlineStart) || 0;
+ initialY = parseInt(popup.style.insetBlockStart) || 0;
+ addClass(popup, 'swal2-dragging');
+ }
+};
+
+/**
+ * @param {MouseEvent | TouchEvent} event
+ */
+const move = event => {
+ const popup = getPopup();
+ if (dragging) {
+ let {
+ clientX,
+ clientY
+ } = getClientXY(event);
+ popup.style.insetInlineStart = `${initialX + (clientX - mousedownX)}px`;
+ popup.style.insetBlockStart = `${initialY + (clientY - mousedownY)}px`;
+ }
+};
+const up = () => {
+ const popup = getPopup();
+ dragging = false;
+ removeClass(popup, 'swal2-dragging');
+};
+
+/**
+ * @param {MouseEvent | TouchEvent} event
+ * @returns {{ clientX: number, clientY: number }}
+ */
+const getClientXY = event => {
+ let clientX = 0,
+ clientY = 0;
+ if (event.type.startsWith('mouse')) {
+ clientX = /** @type {MouseEvent} */event.clientX;
+ clientY = /** @type {MouseEvent} */event.clientY;
+ } else if (event.type.startsWith('touch')) {
+ clientX = /** @type {TouchEvent} */event.touches[0].clientX;
+ clientY = /** @type {TouchEvent} */event.touches[0].clientY;
+ }
+ return {
+ clientX,
+ clientY
+ };
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const renderPopup = (instance, params) => {
+ const container = getContainer();
+ const popup = getPopup();
+ if (!container || !popup) {
+ return;
+ }
+
+ // Width
+ // https://github.com/sweetalert2/sweetalert2/issues/2170
+ if (params.toast) {
+ applyNumericalStyle(container, 'width', params.width);
+ popup.style.width = '100%';
+ const loader = getLoader();
+ if (loader) {
+ popup.insertBefore(loader, getIcon());
+ }
+ } else {
+ applyNumericalStyle(popup, 'width', params.width);
+ }
+
+ // Padding
+ applyNumericalStyle(popup, 'padding', params.padding);
+
+ // Color
+ if (params.color) {
+ popup.style.color = params.color;
+ }
+
+ // Background
+ if (params.background) {
+ popup.style.background = params.background;
+ }
+ hide(getValidationMessage());
+
+ // Classes
+ addClasses$1(popup, params);
+ if (params.draggable && !params.toast) {
+ addClass(popup, swalClasses.draggable);
+ addDraggableListeners(popup);
+ } else {
+ removeClass(popup, swalClasses.draggable);
+ removeDraggableListeners(popup);
+ }
+};
+
+/**
+ * @param {HTMLElement} popup
+ * @param {SweetAlertOptions} params
+ */
+const addClasses$1 = (popup, params) => {
+ const showClass = params.showClass || {};
+ // Default Class + showClass when updating Swal.update({})
+ popup.className = `${swalClasses.popup} ${isVisible$1(popup) ? showClass.popup : ''}`;
+ if (params.toast) {
+ addClass([document.documentElement, document.body], swalClasses['toast-shown']);
+ addClass(popup, swalClasses.toast);
+ } else {
+ addClass(popup, swalClasses.modal);
+ }
+
+ // Custom class
+ applyCustomClass(popup, params, 'popup');
+ // TODO: remove in the next major
+ if (typeof params.customClass === 'string') {
+ addClass(popup, params.customClass);
+ }
+
+ // Icon class (#1842)
+ if (params.icon) {
+ addClass(popup, swalClasses[`icon-${params.icon}`]);
+ }
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const renderProgressSteps = (instance, params) => {
+ const progressStepsContainer = getProgressSteps();
+ if (!progressStepsContainer) {
+ return;
+ }
+ const {
+ progressSteps,
+ currentProgressStep
+ } = params;
+ if (!progressSteps || progressSteps.length === 0 || currentProgressStep === undefined) {
+ hide(progressStepsContainer);
+ return;
+ }
+ show(progressStepsContainer);
+ progressStepsContainer.textContent = '';
+ if (currentProgressStep >= progressSteps.length) {
+ warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');
+ }
+ progressSteps.forEach((step, index) => {
+ const stepEl = createStepElement(step);
+ progressStepsContainer.appendChild(stepEl);
+ if (index === currentProgressStep) {
+ addClass(stepEl, swalClasses['active-progress-step']);
+ }
+ if (index !== progressSteps.length - 1) {
+ const lineEl = createLineElement(params);
+ progressStepsContainer.appendChild(lineEl);
+ }
+ });
+};
+
+/**
+ * @param {string} step
+ * @returns {HTMLLIElement}
+ */
+const createStepElement = step => {
+ const stepEl = document.createElement('li');
+ addClass(stepEl, swalClasses['progress-step']);
+ setInnerHtml(stepEl, step);
+ return stepEl;
+};
+
+/**
+ * @param {SweetAlertOptions} params
+ * @returns {HTMLLIElement}
+ */
+const createLineElement = params => {
+ const lineEl = document.createElement('li');
+ addClass(lineEl, swalClasses['progress-step-line']);
+ if (params.progressStepsDistance) {
+ applyNumericalStyle(lineEl, 'width', params.progressStepsDistance);
+ }
+ return lineEl;
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const renderTitle = (instance, params) => {
+ const title = getTitle();
+ if (!title) {
+ return;
+ }
+ showWhenInnerHtmlPresent(title);
+ toggle(title, params.title || params.titleText, 'block');
+ if (params.title) {
+ parseHtmlToContainer(params.title, title);
+ }
+ if (params.titleText) {
+ title.innerText = params.titleText;
+ }
+
+ // Custom class
+ applyCustomClass(title, params, 'title');
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const render = (instance, params) => {
+ renderPopup(instance, params);
+ renderContainer(instance, params);
+ renderProgressSteps(instance, params);
+ renderIcon(instance, params);
+ renderImage(instance, params);
+ renderTitle(instance, params);
+ renderCloseButton(instance, params);
+ renderContent(instance, params);
+ renderActions(instance, params);
+ renderFooter(instance, params);
+ const popup = getPopup();
+ if (typeof params.didRender === 'function' && popup) {
+ params.didRender(popup);
+ }
+ globalState.eventEmitter.emit('didRender', popup);
+};
+
+/*
+ * Global function to determine if SweetAlert2 popup is shown
+ */
+const isVisible = () => {
+ return isVisible$1(getPopup());
+};
+
+/*
+ * Global function to click 'Confirm' button
+ */
+const clickConfirm = () => {
+ var _dom$getConfirmButton;
+ return (_dom$getConfirmButton = getConfirmButton()) === null || _dom$getConfirmButton === void 0 ? void 0 : _dom$getConfirmButton.click();
+};
+
+/*
+ * Global function to click 'Deny' button
+ */
+const clickDeny = () => {
+ var _dom$getDenyButton;
+ return (_dom$getDenyButton = getDenyButton()) === null || _dom$getDenyButton === void 0 ? void 0 : _dom$getDenyButton.click();
+};
+
+/*
+ * Global function to click 'Cancel' button
+ */
+const clickCancel = () => {
+ var _dom$getCancelButton;
+ return (_dom$getCancelButton = getCancelButton()) === null || _dom$getCancelButton === void 0 ? void 0 : _dom$getCancelButton.click();
+};
+
+/** @typedef {'cancel' | 'backdrop' | 'close' | 'esc' | 'timer'} DismissReason */
+
+/** @type {Record} */
+const DismissReason = Object.freeze({
+ cancel: 'cancel',
+ backdrop: 'backdrop',
+ close: 'close',
+ esc: 'esc',
+ timer: 'timer'
+});
+
+/**
+ * @param {GlobalState} globalState
+ */
+const removeKeydownHandler = globalState => {
+ if (globalState.keydownTarget && globalState.keydownHandlerAdded) {
+ globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {
+ capture: globalState.keydownListenerCapture
+ });
+ globalState.keydownHandlerAdded = false;
+ }
+};
+
+/**
+ * @param {GlobalState} globalState
+ * @param {SweetAlertOptions} innerParams
+ * @param {*} dismissWith
+ */
+const addKeydownHandler = (globalState, innerParams, dismissWith) => {
+ removeKeydownHandler(globalState);
+ if (!innerParams.toast) {
+ globalState.keydownHandler = e => keydownHandler(innerParams, e, dismissWith);
+ globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();
+ globalState.keydownListenerCapture = innerParams.keydownListenerCapture;
+ globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {
+ capture: globalState.keydownListenerCapture
+ });
+ globalState.keydownHandlerAdded = true;
+ }
+};
+
+/**
+ * @param {number} index
+ * @param {number} increment
+ */
+const setFocus = (index, increment) => {
+ var _dom$getPopup;
+ const focusableElements = getFocusableElements();
+ // search for visible elements and select the next possible match
+ if (focusableElements.length) {
+ index = index + increment;
+
+ // shift + tab when .swal2-popup is focused
+ if (index === -2) {
+ index = focusableElements.length - 1;
+ }
+
+ // rollover to first item
+ if (index === focusableElements.length) {
+ index = 0;
+
+ // go to last item
+ } else if (index === -1) {
+ index = focusableElements.length - 1;
+ }
+ focusableElements[index].focus();
+ return;
+ }
+ // no visible focusable elements, focus the popup
+ (_dom$getPopup = getPopup()) === null || _dom$getPopup === void 0 || _dom$getPopup.focus();
+};
+const arrowKeysNextButton = ['ArrowRight', 'ArrowDown'];
+const arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp'];
+
+/**
+ * @param {SweetAlertOptions} innerParams
+ * @param {KeyboardEvent} event
+ * @param {Function} dismissWith
+ */
+const keydownHandler = (innerParams, event, dismissWith) => {
+ if (!innerParams) {
+ return; // This instance has already been destroyed
+ }
+
+ // Ignore keydown during IME composition
+ // https://developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event#ignoring_keydown_during_ime_composition
+ // https://github.com/sweetalert2/sweetalert2/issues/720
+ // https://github.com/sweetalert2/sweetalert2/issues/2406
+ if (event.isComposing || event.keyCode === 229) {
+ return;
+ }
+ if (innerParams.stopKeydownPropagation) {
+ event.stopPropagation();
+ }
+
+ // ENTER
+ if (event.key === 'Enter') {
+ handleEnter(event, innerParams);
+ }
+
+ // TAB
+ else if (event.key === 'Tab') {
+ handleTab(event);
+ }
+
+ // ARROWS - switch focus between buttons
+ else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(event.key)) {
+ handleArrows(event.key);
+ }
+
+ // ESC
+ else if (event.key === 'Escape') {
+ handleEsc(event, innerParams, dismissWith);
+ }
+};
+
+/**
+ * @param {KeyboardEvent} event
+ * @param {SweetAlertOptions} innerParams
+ */
+const handleEnter = (event, innerParams) => {
+ // https://github.com/sweetalert2/sweetalert2/issues/2386
+ if (!callIfFunction(innerParams.allowEnterKey)) {
+ return;
+ }
+ const input = getInput$1(getPopup(), innerParams.input);
+ if (event.target && input && event.target instanceof HTMLElement && event.target.outerHTML === input.outerHTML) {
+ if (['textarea', 'file'].includes(innerParams.input)) {
+ return; // do not submit
+ }
+ clickConfirm();
+ event.preventDefault();
+ }
+};
+
+/**
+ * @param {KeyboardEvent} event
+ */
+const handleTab = event => {
+ const targetElement = event.target;
+ const focusableElements = getFocusableElements();
+ let btnIndex = -1;
+ for (let i = 0; i < focusableElements.length; i++) {
+ if (targetElement === focusableElements[i]) {
+ btnIndex = i;
+ break;
+ }
+ }
+
+ // Cycle to the next button
+ if (!event.shiftKey) {
+ setFocus(btnIndex, 1);
+ }
+
+ // Cycle to the prev button
+ else {
+ setFocus(btnIndex, -1);
+ }
+ event.stopPropagation();
+ event.preventDefault();
+};
+
+/**
+ * @param {string} key
+ */
+const handleArrows = key => {
+ const actions = getActions();
+ const confirmButton = getConfirmButton();
+ const denyButton = getDenyButton();
+ const cancelButton = getCancelButton();
+ if (!actions || !confirmButton || !denyButton || !cancelButton) {
+ return;
+ }
+ /** @type HTMLElement[] */
+ const buttons = [confirmButton, denyButton, cancelButton];
+ if (document.activeElement instanceof HTMLElement && !buttons.includes(document.activeElement)) {
+ return;
+ }
+ const sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling';
+ let buttonToFocus = document.activeElement;
+ if (!buttonToFocus) {
+ return;
+ }
+ for (let i = 0; i < actions.children.length; i++) {
+ buttonToFocus = buttonToFocus[sibling];
+ if (!buttonToFocus) {
+ return;
+ }
+ if (buttonToFocus instanceof HTMLButtonElement && isVisible$1(buttonToFocus)) {
+ break;
+ }
+ }
+ if (buttonToFocus instanceof HTMLButtonElement) {
+ buttonToFocus.focus();
+ }
+};
+
+/**
+ * @param {KeyboardEvent} event
+ * @param {SweetAlertOptions} innerParams
+ * @param {Function} dismissWith
+ */
+const handleEsc = (event, innerParams, dismissWith) => {
+ if (callIfFunction(innerParams.allowEscapeKey)) {
+ event.preventDefault();
+ dismissWith(DismissReason.esc);
+ }
+};
+
+/**
+ * This module contains `WeakMap`s for each effectively-"private property" that a `Swal` has.
+ * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')`
+ * This is the approach that Babel will probably take to implement private methods/fields
+ * https://github.com/tc39/proposal-private-methods
+ * https://github.com/babel/babel/pull/7555
+ * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*
+ * then we can use that language feature.
+ */
+
+var privateMethods = {
+ swalPromiseResolve: new WeakMap(),
+ swalPromiseReject: new WeakMap()
+};
+
+// From https://developer.paciellogroup.com/blog/2018/06/the-current-state-of-modal-dialog-accessibility/
+// Adding aria-hidden="true" to elements outside of the active modal dialog ensures that
+// elements not within the active modal dialog will not be surfaced if a user opens a screen
+// reader’s list of elements (headings, form controls, landmarks, etc.) in the document.
+
+const setAriaHidden = () => {
+ const container = getContainer();
+ const bodyChildren = Array.from(document.body.children);
+ bodyChildren.forEach(el => {
+ if (el.contains(container)) {
+ return;
+ }
+ if (el.hasAttribute('aria-hidden')) {
+ el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden') || '');
+ }
+ el.setAttribute('aria-hidden', 'true');
+ });
+};
+const unsetAriaHidden = () => {
+ const bodyChildren = Array.from(document.body.children);
+ bodyChildren.forEach(el => {
+ if (el.hasAttribute('data-previous-aria-hidden')) {
+ el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden') || '');
+ el.removeAttribute('data-previous-aria-hidden');
+ } else {
+ el.removeAttribute('aria-hidden');
+ }
+ });
+};
+
+// @ts-ignore
+const isSafariOrIOS = typeof window !== 'undefined' && !!window.GestureEvent; // true for Safari desktop + all iOS browsers https://stackoverflow.com/a/70585394
+
+/**
+ * Fix iOS scrolling
+ * http://stackoverflow.com/q/39626302
+ */
+const iOSfix = () => {
+ if (isSafariOrIOS && !hasClass(document.body, swalClasses.iosfix)) {
+ const offset = document.body.scrollTop;
+ document.body.style.top = `${offset * -1}px`;
+ addClass(document.body, swalClasses.iosfix);
+ lockBodyScroll();
+ }
+};
+
+/**
+ * https://github.com/sweetalert2/sweetalert2/issues/1246
+ */
+const lockBodyScroll = () => {
+ const container = getContainer();
+ if (!container) {
+ return;
+ }
+ /** @type {boolean} */
+ let preventTouchMove;
+ /**
+ * @param {TouchEvent} event
+ */
+ container.ontouchstart = event => {
+ preventTouchMove = shouldPreventTouchMove(event);
+ };
+ /**
+ * @param {TouchEvent} event
+ */
+ container.ontouchmove = event => {
+ if (preventTouchMove) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ };
+};
+
+/**
+ * @param {TouchEvent} event
+ * @returns {boolean}
+ */
+const shouldPreventTouchMove = event => {
+ const target = event.target;
+ const container = getContainer();
+ const htmlContainer = getHtmlContainer();
+ if (!container || !htmlContainer) {
+ return false;
+ }
+ if (isStylus(event) || isZoom(event)) {
+ return false;
+ }
+ if (target === container) {
+ return true;
+ }
+ if (!isScrollable(container) && target instanceof HTMLElement && !selfOrParentIsScrollable(target, htmlContainer) &&
+ // #2823
+ target.tagName !== 'INPUT' &&
+ // #1603
+ target.tagName !== 'TEXTAREA' &&
+ // #2266
+ !(isScrollable(htmlContainer) &&
+ // #1944
+ htmlContainer.contains(target))) {
+ return true;
+ }
+ return false;
+};
+
+/**
+ * https://github.com/sweetalert2/sweetalert2/issues/1786
+ *
+ * @param {*} event
+ * @returns {boolean}
+ */
+const isStylus = event => {
+ return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';
+};
+
+/**
+ * https://github.com/sweetalert2/sweetalert2/issues/1891
+ *
+ * @param {TouchEvent} event
+ * @returns {boolean}
+ */
+const isZoom = event => {
+ return event.touches && event.touches.length > 1;
+};
+const undoIOSfix = () => {
+ if (hasClass(document.body, swalClasses.iosfix)) {
+ const offset = parseInt(document.body.style.top, 10);
+ removeClass(document.body, swalClasses.iosfix);
+ document.body.style.top = '';
+ document.body.scrollTop = offset * -1;
+ }
+};
+
+/**
+ * Measure scrollbar width for padding body during modal show/hide
+ * https://github.com/twbs/bootstrap/blob/master/js/src/modal.js
+ *
+ * @returns {number}
+ */
+const measureScrollbar = () => {
+ const scrollDiv = document.createElement('div');
+ scrollDiv.className = swalClasses['scrollbar-measure'];
+ document.body.appendChild(scrollDiv);
+ const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
+ document.body.removeChild(scrollDiv);
+ return scrollbarWidth;
+};
+
+/**
+ * Remember state in cases where opening and handling a modal will fiddle with it.
+ * @type {number | null}
+ */
+let previousBodyPadding = null;
+
+/**
+ * @param {string} initialBodyOverflow
+ */
+const replaceScrollbarWithPadding = initialBodyOverflow => {
+ // for queues, do not do this more than once
+ if (previousBodyPadding !== null) {
+ return;
+ }
+ // if the body has overflow
+ if (document.body.scrollHeight > window.innerHeight || initialBodyOverflow === 'scroll' // https://github.com/sweetalert2/sweetalert2/issues/2663
+ ) {
+ // add padding so the content doesn't shift after removal of scrollbar
+ previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));
+ document.body.style.paddingRight = `${previousBodyPadding + measureScrollbar()}px`;
+ }
+};
+const undoReplaceScrollbarWithPadding = () => {
+ if (previousBodyPadding !== null) {
+ document.body.style.paddingRight = `${previousBodyPadding}px`;
+ previousBodyPadding = null;
+ }
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {HTMLElement} container
+ * @param {boolean} returnFocus
+ * @param {Function} didClose
+ */
+function removePopupAndResetState(instance, container, returnFocus, didClose) {
+ if (isToast()) {
+ triggerDidCloseAndDispose(instance, didClose);
+ } else {
+ restoreActiveElement(returnFocus).then(() => triggerDidCloseAndDispose(instance, didClose));
+ removeKeydownHandler(globalState);
+ }
+
+ // workaround for https://github.com/sweetalert2/sweetalert2/issues/2088
+ // for some reason removing the container in Safari will scroll the document to bottom
+ if (isSafariOrIOS) {
+ container.setAttribute('style', 'display:none !important');
+ container.removeAttribute('class');
+ container.innerHTML = '';
+ } else {
+ container.remove();
+ }
+ if (isModal()) {
+ undoReplaceScrollbarWithPadding();
+ undoIOSfix();
+ unsetAriaHidden();
+ }
+ removeBodyClasses();
+}
+
+/**
+ * Remove SweetAlert2 classes from body
+ */
+function removeBodyClasses() {
+ removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);
+}
+
+/**
+ * Instance method to close sweetAlert
+ *
+ * @param {any} resolveValue
+ */
+function close(resolveValue) {
+ resolveValue = prepareResolveValue(resolveValue);
+ const swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);
+ const didClose = triggerClosePopup(this);
+ if (this.isAwaitingPromise) {
+ // A swal awaiting for a promise (after a click on Confirm or Deny) cannot be dismissed anymore #2335
+ if (!resolveValue.isDismissed) {
+ handleAwaitingPromise(this);
+ swalPromiseResolve(resolveValue);
+ }
+ } else if (didClose) {
+ // Resolve Swal promise
+ swalPromiseResolve(resolveValue);
+ }
+}
+const triggerClosePopup = instance => {
+ const popup = getPopup();
+ if (!popup) {
+ return false;
+ }
+ const innerParams = privateProps.innerParams.get(instance);
+ if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {
+ return false;
+ }
+ removeClass(popup, innerParams.showClass.popup);
+ addClass(popup, innerParams.hideClass.popup);
+ const backdrop = getContainer();
+ removeClass(backdrop, innerParams.showClass.backdrop);
+ addClass(backdrop, innerParams.hideClass.backdrop);
+ handlePopupAnimation(instance, popup, innerParams);
+ return true;
+};
+
+/**
+ * @param {any} error
+ */
+function rejectPromise(error) {
+ const rejectPromise = privateMethods.swalPromiseReject.get(this);
+ handleAwaitingPromise(this);
+ if (rejectPromise) {
+ // Reject Swal promise
+ rejectPromise(error);
+ }
+}
+
+/**
+ * @param {SweetAlert} instance
+ */
+const handleAwaitingPromise = instance => {
+ if (instance.isAwaitingPromise) {
+ delete instance.isAwaitingPromise;
+ // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335
+ if (!privateProps.innerParams.get(instance)) {
+ instance._destroy();
+ }
+ }
+};
+
+/**
+ * @param {any} resolveValue
+ * @returns {SweetAlertResult}
+ */
+const prepareResolveValue = resolveValue => {
+ // When user calls Swal.close()
+ if (typeof resolveValue === 'undefined') {
+ return {
+ isConfirmed: false,
+ isDenied: false,
+ isDismissed: true
+ };
+ }
+ return Object.assign({
+ isConfirmed: false,
+ isDenied: false,
+ isDismissed: false
+ }, resolveValue);
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {HTMLElement} popup
+ * @param {SweetAlertOptions} innerParams
+ */
+const handlePopupAnimation = (instance, popup, innerParams) => {
+ var _globalState$eventEmi;
+ const container = getContainer();
+ // If animation is supported, animate
+ const animationIsSupported = hasCssAnimation(popup);
+ if (typeof innerParams.willClose === 'function') {
+ innerParams.willClose(popup);
+ }
+ (_globalState$eventEmi = globalState.eventEmitter) === null || _globalState$eventEmi === void 0 || _globalState$eventEmi.emit('willClose', popup);
+ if (animationIsSupported) {
+ animatePopup(instance, popup, container, innerParams.returnFocus, innerParams.didClose);
+ } else {
+ // Otherwise, remove immediately
+ removePopupAndResetState(instance, container, innerParams.returnFocus, innerParams.didClose);
+ }
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {HTMLElement} popup
+ * @param {HTMLElement} container
+ * @param {boolean} returnFocus
+ * @param {Function} didClose
+ */
+const animatePopup = (instance, popup, container, returnFocus, didClose) => {
+ globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose);
+ /**
+ * @param {AnimationEvent | TransitionEvent} e
+ */
+ const swalCloseAnimationFinished = function (e) {
+ if (e.target === popup) {
+ var _globalState$swalClos;
+ (_globalState$swalClos = globalState.swalCloseEventFinishedCallback) === null || _globalState$swalClos === void 0 || _globalState$swalClos.call(globalState);
+ delete globalState.swalCloseEventFinishedCallback;
+ popup.removeEventListener('animationend', swalCloseAnimationFinished);
+ popup.removeEventListener('transitionend', swalCloseAnimationFinished);
+ }
+ };
+ popup.addEventListener('animationend', swalCloseAnimationFinished);
+ popup.addEventListener('transitionend', swalCloseAnimationFinished);
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {Function} didClose
+ */
+const triggerDidCloseAndDispose = (instance, didClose) => {
+ setTimeout(() => {
+ var _globalState$eventEmi2;
+ if (typeof didClose === 'function') {
+ didClose.bind(instance.params)();
+ }
+ (_globalState$eventEmi2 = globalState.eventEmitter) === null || _globalState$eventEmi2 === void 0 || _globalState$eventEmi2.emit('didClose');
+ // instance might have been destroyed already
+ if (instance._destroy) {
+ instance._destroy();
+ }
+ });
+};
+
+/**
+ * Shows loader (spinner), this is useful with AJAX requests.
+ * By default the loader be shown instead of the "Confirm" button.
+ *
+ * @param {HTMLButtonElement | null} [buttonToReplace]
+ */
+const showLoading = buttonToReplace => {
+ let popup = getPopup();
+ if (!popup) {
+ new Swal();
+ }
+ popup = getPopup();
+ if (!popup) {
+ return;
+ }
+ const loader = getLoader();
+ if (isToast()) {
+ hide(getIcon());
+ } else {
+ replaceButton(popup, buttonToReplace);
+ }
+ show(loader);
+ popup.setAttribute('data-loading', 'true');
+ popup.setAttribute('aria-busy', 'true');
+ popup.focus();
+};
+
+/**
+ * @param {HTMLElement} popup
+ * @param {HTMLButtonElement | null} [buttonToReplace]
+ */
+const replaceButton = (popup, buttonToReplace) => {
+ const actions = getActions();
+ const loader = getLoader();
+ if (!actions || !loader) {
+ return;
+ }
+ if (!buttonToReplace && isVisible$1(getConfirmButton())) {
+ buttonToReplace = getConfirmButton();
+ }
+ show(actions);
+ if (buttonToReplace) {
+ hide(buttonToReplace);
+ loader.setAttribute('data-button-to-replace', buttonToReplace.className);
+ actions.insertBefore(loader, buttonToReplace);
+ }
+ addClass([popup, actions], swalClasses.loading);
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const handleInputOptionsAndValue = (instance, params) => {
+ if (params.input === 'select' || params.input === 'radio') {
+ handleInputOptions(instance, params);
+ } else if (['text', 'email', 'number', 'tel', 'textarea'].some(i => i === params.input) && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {
+ showLoading(getConfirmButton());
+ handleInputValue(instance, params);
+ }
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} innerParams
+ * @returns {SweetAlertInputValue}
+ */
+const getInputValue = (instance, innerParams) => {
+ const input = instance.getInput();
+ if (!input) {
+ return null;
+ }
+ switch (innerParams.input) {
+ case 'checkbox':
+ return getCheckboxValue(input);
+ case 'radio':
+ return getRadioValue(input);
+ case 'file':
+ return getFileValue(input);
+ default:
+ return innerParams.inputAutoTrim ? input.value.trim() : input.value;
+ }
+};
+
+/**
+ * @param {HTMLInputElement} input
+ * @returns {number}
+ */
+const getCheckboxValue = input => input.checked ? 1 : 0;
+
+/**
+ * @param {HTMLInputElement} input
+ * @returns {string | null}
+ */
+const getRadioValue = input => input.checked ? input.value : null;
+
+/**
+ * @param {HTMLInputElement} input
+ * @returns {FileList | File | null}
+ */
+const getFileValue = input => input.files && input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const handleInputOptions = (instance, params) => {
+ const popup = getPopup();
+ if (!popup) {
+ return;
+ }
+ /**
+ * @param {Record} inputOptions
+ */
+ const processInputOptions = inputOptions => {
+ if (params.input === 'select') {
+ populateSelectOptions(popup, formatInputOptions(inputOptions), params);
+ } else if (params.input === 'radio') {
+ populateRadioOptions(popup, formatInputOptions(inputOptions), params);
+ }
+ };
+ if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {
+ showLoading(getConfirmButton());
+ asPromise(params.inputOptions).then(inputOptions => {
+ instance.hideLoading();
+ processInputOptions(inputOptions);
+ });
+ } else if (typeof params.inputOptions === 'object') {
+ processInputOptions(params.inputOptions);
+ } else {
+ error(`Unexpected type of inputOptions! Expected object, Map or Promise, got ${typeof params.inputOptions}`);
+ }
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertOptions} params
+ */
+const handleInputValue = (instance, params) => {
+ const input = instance.getInput();
+ if (!input) {
+ return;
+ }
+ hide(input);
+ asPromise(params.inputValue).then(inputValue => {
+ input.value = params.input === 'number' ? `${parseFloat(inputValue) || 0}` : `${inputValue}`;
+ show(input);
+ input.focus();
+ instance.hideLoading();
+ }).catch(err => {
+ error(`Error in inputValue promise: ${err}`);
+ input.value = '';
+ show(input);
+ input.focus();
+ instance.hideLoading();
+ });
+};
+
+/**
+ * @param {HTMLElement} popup
+ * @param {InputOptionFlattened[]} inputOptions
+ * @param {SweetAlertOptions} params
+ */
+function populateSelectOptions(popup, inputOptions, params) {
+ const select = getDirectChildByClass(popup, swalClasses.select);
+ if (!select) {
+ return;
+ }
+ /**
+ * @param {HTMLElement} parent
+ * @param {string} optionLabel
+ * @param {string} optionValue
+ */
+ const renderOption = (parent, optionLabel, optionValue) => {
+ const option = document.createElement('option');
+ option.value = optionValue;
+ setInnerHtml(option, optionLabel);
+ option.selected = isSelected(optionValue, params.inputValue);
+ parent.appendChild(option);
+ };
+ inputOptions.forEach(inputOption => {
+ const optionValue = inputOption[0];
+ const optionLabel = inputOption[1];
+ // spec:
+ // https://www.w3.org/TR/html401/interact/forms.html#h-17.6
+ // "...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)..."
+ // check whether this is a
+ if (Array.isArray(optionLabel)) {
+ // if it is an array, then it is an
+ const optgroup = document.createElement('optgroup');
+ optgroup.label = optionValue;
+ optgroup.disabled = false; // not configurable for now
+ select.appendChild(optgroup);
+ optionLabel.forEach(o => renderOption(optgroup, o[1], o[0]));
+ } else {
+ // case of
+ renderOption(select, optionLabel, optionValue);
+ }
+ });
+ select.focus();
+}
+
+/**
+ * @param {HTMLElement} popup
+ * @param {InputOptionFlattened[]} inputOptions
+ * @param {SweetAlertOptions} params
+ */
+function populateRadioOptions(popup, inputOptions, params) {
+ const radio = getDirectChildByClass(popup, swalClasses.radio);
+ if (!radio) {
+ return;
+ }
+ inputOptions.forEach(inputOption => {
+ const radioValue = inputOption[0];
+ const radioLabel = inputOption[1];
+ const radioInput = document.createElement('input');
+ const radioLabelElement = document.createElement('label');
+ radioInput.type = 'radio';
+ radioInput.name = swalClasses.radio;
+ radioInput.value = radioValue;
+ if (isSelected(radioValue, params.inputValue)) {
+ radioInput.checked = true;
+ }
+ const label = document.createElement('span');
+ setInnerHtml(label, radioLabel);
+ label.className = swalClasses.label;
+ radioLabelElement.appendChild(radioInput);
+ radioLabelElement.appendChild(label);
+ radio.appendChild(radioLabelElement);
+ });
+ const radios = radio.querySelectorAll('input');
+ if (radios.length) {
+ radios[0].focus();
+ }
+}
+
+/**
+ * Converts `inputOptions` into an array of `[value, label]`s
+ *
+ * @param {Record} inputOptions
+ * @typedef {string[]} InputOptionFlattened
+ * @returns {InputOptionFlattened[]}
+ */
+const formatInputOptions = inputOptions => {
+ /** @type {InputOptionFlattened[]} */
+ const result = [];
+ if (inputOptions instanceof Map) {
+ inputOptions.forEach((value, key) => {
+ let valueFormatted = value;
+ if (typeof valueFormatted === 'object') {
+ // case of
+ valueFormatted = formatInputOptions(valueFormatted);
+ }
+ result.push([key, valueFormatted]);
+ });
+ } else {
+ Object.keys(inputOptions).forEach(key => {
+ let valueFormatted = inputOptions[key];
+ if (typeof valueFormatted === 'object') {
+ // case of
+ valueFormatted = formatInputOptions(valueFormatted);
+ }
+ result.push([key, valueFormatted]);
+ });
+ }
+ return result;
+};
+
+/**
+ * @param {string} optionValue
+ * @param {SweetAlertInputValue} inputValue
+ * @returns {boolean}
+ */
+const isSelected = (optionValue, inputValue) => {
+ return !!inputValue && inputValue.toString() === optionValue.toString();
+};
+
+/**
+ * @param {SweetAlert} instance
+ */
+const handleConfirmButtonClick = instance => {
+ const innerParams = privateProps.innerParams.get(instance);
+ instance.disableButtons();
+ if (innerParams.input) {
+ handleConfirmOrDenyWithInput(instance, 'confirm');
+ } else {
+ confirm(instance, true);
+ }
+};
+
+/**
+ * @param {SweetAlert} instance
+ */
+const handleDenyButtonClick = instance => {
+ const innerParams = privateProps.innerParams.get(instance);
+ instance.disableButtons();
+ if (innerParams.returnInputValueOnDeny) {
+ handleConfirmOrDenyWithInput(instance, 'deny');
+ } else {
+ deny(instance, false);
+ }
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {Function} dismissWith
+ */
+const handleCancelButtonClick = (instance, dismissWith) => {
+ instance.disableButtons();
+ dismissWith(DismissReason.cancel);
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {'confirm' | 'deny'} type
+ */
+const handleConfirmOrDenyWithInput = (instance, type) => {
+ const innerParams = privateProps.innerParams.get(instance);
+ if (!innerParams.input) {
+ error(`The "input" parameter is needed to be set when using returnInputValueOn${capitalizeFirstLetter(type)}`);
+ return;
+ }
+ const input = instance.getInput();
+ const inputValue = getInputValue(instance, innerParams);
+ if (innerParams.inputValidator) {
+ handleInputValidator(instance, inputValue, type);
+ } else if (input && !input.checkValidity()) {
+ instance.enableButtons();
+ instance.showValidationMessage(innerParams.validationMessage || input.validationMessage);
+ } else if (type === 'deny') {
+ deny(instance, inputValue);
+ } else {
+ confirm(instance, inputValue);
+ }
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {SweetAlertInputValue} inputValue
+ * @param {'confirm' | 'deny'} type
+ */
+const handleInputValidator = (instance, inputValue, type) => {
+ const innerParams = privateProps.innerParams.get(instance);
+ instance.disableInput();
+ const validationPromise = Promise.resolve().then(() => asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage)));
+ validationPromise.then(validationMessage => {
+ instance.enableButtons();
+ instance.enableInput();
+ if (validationMessage) {
+ instance.showValidationMessage(validationMessage);
+ } else if (type === 'deny') {
+ deny(instance, inputValue);
+ } else {
+ confirm(instance, inputValue);
+ }
+ });
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {any} value
+ */
+const deny = (instance, value) => {
+ const innerParams = privateProps.innerParams.get(instance || undefined);
+ if (innerParams.showLoaderOnDeny) {
+ showLoading(getDenyButton());
+ }
+ if (innerParams.preDeny) {
+ instance.isAwaitingPromise = true; // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preDeny's promise is received
+ const preDenyPromise = Promise.resolve().then(() => asPromise(innerParams.preDeny(value, innerParams.validationMessage)));
+ preDenyPromise.then(preDenyValue => {
+ if (preDenyValue === false) {
+ instance.hideLoading();
+ handleAwaitingPromise(instance);
+ } else {
+ instance.close({
+ isDenied: true,
+ value: typeof preDenyValue === 'undefined' ? value : preDenyValue
+ });
+ }
+ }).catch(error => rejectWith(instance || undefined, error));
+ } else {
+ instance.close({
+ isDenied: true,
+ value
+ });
+ }
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @param {any} value
+ */
+const succeedWith = (instance, value) => {
+ instance.close({
+ isConfirmed: true,
+ value
+ });
+};
+
+/**
+ *
+ * @param {SweetAlert} instance
+ * @param {string} error
+ */
+const rejectWith = (instance, error) => {
+ instance.rejectPromise(error);
+};
+
+/**
+ *
+ * @param {SweetAlert} instance
+ * @param {any} value
+ */
+const confirm = (instance, value) => {
+ const innerParams = privateProps.innerParams.get(instance || undefined);
+ if (innerParams.showLoaderOnConfirm) {
+ showLoading();
+ }
+ if (innerParams.preConfirm) {
+ instance.resetValidationMessage();
+ instance.isAwaitingPromise = true; // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preConfirm's promise is received
+ const preConfirmPromise = Promise.resolve().then(() => asPromise(innerParams.preConfirm(value, innerParams.validationMessage)));
+ preConfirmPromise.then(preConfirmValue => {
+ if (isVisible$1(getValidationMessage()) || preConfirmValue === false) {
+ instance.hideLoading();
+ handleAwaitingPromise(instance);
+ } else {
+ succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);
+ }
+ }).catch(error => rejectWith(instance || undefined, error));
+ } else {
+ succeedWith(instance, value);
+ }
+};
+
+/**
+ * Hides loader and shows back the button which was hidden by .showLoading()
+ */
+function hideLoading() {
+ // do nothing if popup is closed
+ const innerParams = privateProps.innerParams.get(this);
+ if (!innerParams) {
+ return;
+ }
+ const domCache = privateProps.domCache.get(this);
+ hide(domCache.loader);
+ if (isToast()) {
+ if (innerParams.icon) {
+ show(getIcon());
+ }
+ } else {
+ showRelatedButton(domCache);
+ }
+ removeClass([domCache.popup, domCache.actions], swalClasses.loading);
+ domCache.popup.removeAttribute('aria-busy');
+ domCache.popup.removeAttribute('data-loading');
+ domCache.confirmButton.disabled = false;
+ domCache.denyButton.disabled = false;
+ domCache.cancelButton.disabled = false;
+}
+const showRelatedButton = domCache => {
+ const buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace'));
+ if (buttonToReplace.length) {
+ show(buttonToReplace[0], 'inline-block');
+ } else if (allButtonsAreHidden()) {
+ hide(domCache.actions);
+ }
+};
+
+/**
+ * Gets the input DOM node, this method works with input parameter.
+ *
+ * @returns {HTMLInputElement | null}
+ */
+function getInput() {
+ const innerParams = privateProps.innerParams.get(this);
+ const domCache = privateProps.domCache.get(this);
+ if (!domCache) {
+ return null;
+ }
+ return getInput$1(domCache.popup, innerParams.input);
+}
+
+/**
+ * @param {SweetAlert} instance
+ * @param {string[]} buttons
+ * @param {boolean} disabled
+ */
+function setButtonsDisabled(instance, buttons, disabled) {
+ const domCache = privateProps.domCache.get(instance);
+ buttons.forEach(button => {
+ domCache[button].disabled = disabled;
+ });
+}
+
+/**
+ * @param {HTMLInputElement | null} input
+ * @param {boolean} disabled
+ */
+function setInputDisabled(input, disabled) {
+ const popup = getPopup();
+ if (!popup || !input) {
+ return;
+ }
+ if (input.type === 'radio') {
+ /** @type {NodeListOf} */
+ const radios = popup.querySelectorAll(`[name="${swalClasses.radio}"]`);
+ for (let i = 0; i < radios.length; i++) {
+ radios[i].disabled = disabled;
+ }
+ } else {
+ input.disabled = disabled;
+ }
+}
+
+/**
+ * Enable all the buttons
+ * @this {SweetAlert}
+ */
+function enableButtons() {
+ setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);
+}
+
+/**
+ * Disable all the buttons
+ * @this {SweetAlert}
+ */
+function disableButtons() {
+ setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);
+}
+
+/**
+ * Enable the input field
+ * @this {SweetAlert}
+ */
+function enableInput() {
+ setInputDisabled(this.getInput(), false);
+}
+
+/**
+ * Disable the input field
+ * @this {SweetAlert}
+ */
+function disableInput() {
+ setInputDisabled(this.getInput(), true);
+}
+
+/**
+ * Show block with validation message
+ *
+ * @param {string} error
+ * @this {SweetAlert}
+ */
+function showValidationMessage(error) {
+ const domCache = privateProps.domCache.get(this);
+ const params = privateProps.innerParams.get(this);
+ setInnerHtml(domCache.validationMessage, error);
+ domCache.validationMessage.className = swalClasses['validation-message'];
+ if (params.customClass && params.customClass.validationMessage) {
+ addClass(domCache.validationMessage, params.customClass.validationMessage);
+ }
+ show(domCache.validationMessage);
+ const input = this.getInput();
+ if (input) {
+ input.setAttribute('aria-invalid', 'true');
+ input.setAttribute('aria-describedby', swalClasses['validation-message']);
+ focusInput(input);
+ addClass(input, swalClasses.inputerror);
+ }
+}
+
+/**
+ * Hide block with validation message
+ *
+ * @this {SweetAlert}
+ */
+function resetValidationMessage() {
+ const domCache = privateProps.domCache.get(this);
+ if (domCache.validationMessage) {
+ hide(domCache.validationMessage);
+ }
+ const input = this.getInput();
+ if (input) {
+ input.removeAttribute('aria-invalid');
+ input.removeAttribute('aria-describedby');
+ removeClass(input, swalClasses.inputerror);
+ }
+}
+
+const defaultParams = {
+ title: '',
+ titleText: '',
+ text: '',
+ html: '',
+ footer: '',
+ icon: undefined,
+ iconColor: undefined,
+ iconHtml: undefined,
+ template: undefined,
+ toast: false,
+ draggable: false,
+ animation: true,
+ theme: 'light',
+ showClass: {
+ popup: 'swal2-show',
+ backdrop: 'swal2-backdrop-show',
+ icon: 'swal2-icon-show'
+ },
+ hideClass: {
+ popup: 'swal2-hide',
+ backdrop: 'swal2-backdrop-hide',
+ icon: 'swal2-icon-hide'
+ },
+ customClass: {},
+ target: 'body',
+ color: undefined,
+ backdrop: true,
+ heightAuto: true,
+ allowOutsideClick: true,
+ allowEscapeKey: true,
+ allowEnterKey: true,
+ stopKeydownPropagation: true,
+ keydownListenerCapture: false,
+ showConfirmButton: true,
+ showDenyButton: false,
+ showCancelButton: false,
+ preConfirm: undefined,
+ preDeny: undefined,
+ confirmButtonText: 'OK',
+ confirmButtonAriaLabel: '',
+ confirmButtonColor: undefined,
+ denyButtonText: 'No',
+ denyButtonAriaLabel: '',
+ denyButtonColor: undefined,
+ cancelButtonText: 'Cancel',
+ cancelButtonAriaLabel: '',
+ cancelButtonColor: undefined,
+ buttonsStyling: true,
+ reverseButtons: false,
+ focusConfirm: true,
+ focusDeny: false,
+ focusCancel: false,
+ returnFocus: true,
+ showCloseButton: false,
+ closeButtonHtml: '×',
+ closeButtonAriaLabel: 'Close this dialog',
+ loaderHtml: '',
+ showLoaderOnConfirm: false,
+ showLoaderOnDeny: false,
+ imageUrl: undefined,
+ imageWidth: undefined,
+ imageHeight: undefined,
+ imageAlt: '',
+ timer: undefined,
+ timerProgressBar: false,
+ width: undefined,
+ padding: undefined,
+ background: undefined,
+ input: undefined,
+ inputPlaceholder: '',
+ inputLabel: '',
+ inputValue: '',
+ inputOptions: {},
+ inputAutoFocus: true,
+ inputAutoTrim: true,
+ inputAttributes: {},
+ inputValidator: undefined,
+ returnInputValueOnDeny: false,
+ validationMessage: undefined,
+ grow: false,
+ position: 'center',
+ progressSteps: [],
+ currentProgressStep: undefined,
+ progressStepsDistance: undefined,
+ willOpen: undefined,
+ didOpen: undefined,
+ didRender: undefined,
+ willClose: undefined,
+ didClose: undefined,
+ didDestroy: undefined,
+ scrollbarPadding: true,
+ topLayer: false
+};
+const updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'color', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'draggable', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'preConfirm', 'preDeny', 'progressSteps', 'returnFocus', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'theme', 'willClose'];
+
+/** @type {Record} */
+const deprecatedParams = {
+ allowEnterKey: undefined
+};
+const toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'draggable', 'focusConfirm', 'focusDeny', 'focusCancel', 'returnFocus', 'heightAuto', 'keydownListenerCapture'];
+
+/**
+ * Is valid parameter
+ *
+ * @param {string} paramName
+ * @returns {boolean}
+ */
+const isValidParameter = paramName => {
+ return Object.prototype.hasOwnProperty.call(defaultParams, paramName);
+};
+
+/**
+ * Is valid parameter for Swal.update() method
+ *
+ * @param {string} paramName
+ * @returns {boolean}
+ */
+const isUpdatableParameter = paramName => {
+ return updatableParams.indexOf(paramName) !== -1;
+};
+
+/**
+ * Is deprecated parameter
+ *
+ * @param {string} paramName
+ * @returns {string | undefined}
+ */
+const isDeprecatedParameter = paramName => {
+ return deprecatedParams[paramName];
+};
+
+/**
+ * @param {string} param
+ */
+const checkIfParamIsValid = param => {
+ if (!isValidParameter(param)) {
+ warn(`Unknown parameter "${param}"`);
+ }
+};
+
+/**
+ * @param {string} param
+ */
+const checkIfToastParamIsValid = param => {
+ if (toastIncompatibleParams.includes(param)) {
+ warn(`The parameter "${param}" is incompatible with toasts`);
+ }
+};
+
+/**
+ * @param {string} param
+ */
+const checkIfParamIsDeprecated = param => {
+ const isDeprecated = isDeprecatedParameter(param);
+ if (isDeprecated) {
+ warnAboutDeprecation(param, isDeprecated);
+ }
+};
+
+/**
+ * Show relevant warnings for given params
+ *
+ * @param {SweetAlertOptions} params
+ */
+const showWarningsForParams = params => {
+ if (params.backdrop === false && params.allowOutsideClick) {
+ warn('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`');
+ }
+ if (params.theme && !['light', 'dark', 'auto', 'minimal', 'borderless', 'embed-iframe'].includes(params.theme)) {
+ warn(`Invalid theme "${params.theme}". Expected "light", "dark", "auto", "minimal", "borderless", or "embed-iframe"`);
+ }
+ for (const param in params) {
+ checkIfParamIsValid(param);
+ if (params.toast) {
+ checkIfToastParamIsValid(param);
+ }
+ checkIfParamIsDeprecated(param);
+ }
+};
+
+/**
+ * Updates popup parameters.
+ *
+ * @param {SweetAlertOptions} params
+ */
+function update(params) {
+ const container = getContainer();
+ const popup = getPopup();
+ const innerParams = privateProps.innerParams.get(this);
+ if (!popup || hasClass(popup, innerParams.hideClass.popup)) {
+ warn(`You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.`);
+ return;
+ }
+ const validUpdatableParams = filterValidParams(params);
+ const updatedParams = Object.assign({}, innerParams, validUpdatableParams);
+ showWarningsForParams(updatedParams);
+ container.dataset['swal2Theme'] = updatedParams.theme;
+ render(this, updatedParams);
+ privateProps.innerParams.set(this, updatedParams);
+ Object.defineProperties(this, {
+ params: {
+ value: Object.assign({}, this.params, params),
+ writable: false,
+ enumerable: true
+ }
+ });
+}
+
+/**
+ * @param {SweetAlertOptions} params
+ * @returns {SweetAlertOptions}
+ */
+const filterValidParams = params => {
+ const validUpdatableParams = {};
+ Object.keys(params).forEach(param => {
+ if (isUpdatableParameter(param)) {
+ validUpdatableParams[param] = params[param];
+ } else {
+ warn(`Invalid parameter to update: ${param}`);
+ }
+ });
+ return validUpdatableParams;
+};
+
+/**
+ * Dispose the current SweetAlert2 instance
+ */
+function _destroy() {
+ const domCache = privateProps.domCache.get(this);
+ const innerParams = privateProps.innerParams.get(this);
+ if (!innerParams) {
+ disposeWeakMaps(this); // The WeakMaps might have been partly destroyed, we must recall it to dispose any remaining WeakMaps #2335
+ return; // This instance has already been destroyed
+ }
+
+ // Check if there is another Swal closing
+ if (domCache.popup && globalState.swalCloseEventFinishedCallback) {
+ globalState.swalCloseEventFinishedCallback();
+ delete globalState.swalCloseEventFinishedCallback;
+ }
+ if (typeof innerParams.didDestroy === 'function') {
+ innerParams.didDestroy();
+ }
+ globalState.eventEmitter.emit('didDestroy');
+ disposeSwal(this);
+}
+
+/**
+ * @param {SweetAlert} instance
+ */
+const disposeSwal = instance => {
+ disposeWeakMaps(instance);
+ // Unset this.params so GC will dispose it (#1569)
+ delete instance.params;
+ // Unset globalState props so GC will dispose globalState (#1569)
+ delete globalState.keydownHandler;
+ delete globalState.keydownTarget;
+ // Unset currentInstance
+ delete globalState.currentInstance;
+};
+
+/**
+ * @param {SweetAlert} instance
+ */
+const disposeWeakMaps = instance => {
+ // If the current instance is awaiting a promise result, we keep the privateMethods to call them once the promise result is retrieved #2335
+ if (instance.isAwaitingPromise) {
+ unsetWeakMaps(privateProps, instance);
+ instance.isAwaitingPromise = true;
+ } else {
+ unsetWeakMaps(privateMethods, instance);
+ unsetWeakMaps(privateProps, instance);
+ delete instance.isAwaitingPromise;
+ // Unset instance methods
+ delete instance.disableButtons;
+ delete instance.enableButtons;
+ delete instance.getInput;
+ delete instance.disableInput;
+ delete instance.enableInput;
+ delete instance.hideLoading;
+ delete instance.disableLoading;
+ delete instance.showValidationMessage;
+ delete instance.resetValidationMessage;
+ delete instance.close;
+ delete instance.closePopup;
+ delete instance.closeModal;
+ delete instance.closeToast;
+ delete instance.rejectPromise;
+ delete instance.update;
+ delete instance._destroy;
+ }
+};
+
+/**
+ * @param {object} obj
+ * @param {SweetAlert} instance
+ */
+const unsetWeakMaps = (obj, instance) => {
+ for (const i in obj) {
+ obj[i].delete(instance);
+ }
+};
+
+var instanceMethods = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ _destroy: _destroy,
+ close: close,
+ closeModal: close,
+ closePopup: close,
+ closeToast: close,
+ disableButtons: disableButtons,
+ disableInput: disableInput,
+ disableLoading: hideLoading,
+ enableButtons: enableButtons,
+ enableInput: enableInput,
+ getInput: getInput,
+ handleAwaitingPromise: handleAwaitingPromise,
+ hideLoading: hideLoading,
+ rejectPromise: rejectPromise,
+ resetValidationMessage: resetValidationMessage,
+ showValidationMessage: showValidationMessage,
+ update: update
+});
+
+/**
+ * @param {SweetAlertOptions} innerParams
+ * @param {DomCache} domCache
+ * @param {Function} dismissWith
+ */
+const handlePopupClick = (innerParams, domCache, dismissWith) => {
+ if (innerParams.toast) {
+ handleToastClick(innerParams, domCache, dismissWith);
+ } else {
+ // Ignore click events that had mousedown on the popup but mouseup on the container
+ // This can happen when the user drags a slider
+ handleModalMousedown(domCache);
+
+ // Ignore click events that had mousedown on the container but mouseup on the popup
+ handleContainerMousedown(domCache);
+ handleModalClick(innerParams, domCache, dismissWith);
+ }
+};
+
+/**
+ * @param {SweetAlertOptions} innerParams
+ * @param {DomCache} domCache
+ * @param {Function} dismissWith
+ */
+const handleToastClick = (innerParams, domCache, dismissWith) => {
+ // Closing toast by internal click
+ domCache.popup.onclick = () => {
+ if (innerParams && (isAnyButtonShown(innerParams) || innerParams.timer || innerParams.input)) {
+ return;
+ }
+ dismissWith(DismissReason.close);
+ };
+};
+
+/**
+ * @param {SweetAlertOptions} innerParams
+ * @returns {boolean}
+ */
+const isAnyButtonShown = innerParams => {
+ return !!(innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton);
+};
+let ignoreOutsideClick = false;
+
+/**
+ * @param {DomCache} domCache
+ */
+const handleModalMousedown = domCache => {
+ domCache.popup.onmousedown = () => {
+ domCache.container.onmouseup = function (e) {
+ domCache.container.onmouseup = () => {};
+ // We only check if the mouseup target is the container because usually it doesn't
+ // have any other direct children aside of the popup
+ if (e.target === domCache.container) {
+ ignoreOutsideClick = true;
+ }
+ };
+ };
+};
+
+/**
+ * @param {DomCache} domCache
+ */
+const handleContainerMousedown = domCache => {
+ domCache.container.onmousedown = e => {
+ // prevent the modal text from being selected on double click on the container (allowOutsideClick: false)
+ if (e.target === domCache.container) {
+ e.preventDefault();
+ }
+ domCache.popup.onmouseup = function (e) {
+ domCache.popup.onmouseup = () => {};
+ // We also need to check if the mouseup target is a child of the popup
+ if (e.target === domCache.popup || e.target instanceof HTMLElement && domCache.popup.contains(e.target)) {
+ ignoreOutsideClick = true;
+ }
+ };
+ };
+};
+
+/**
+ * @param {SweetAlertOptions} innerParams
+ * @param {DomCache} domCache
+ * @param {Function} dismissWith
+ */
+const handleModalClick = (innerParams, domCache, dismissWith) => {
+ domCache.container.onclick = e => {
+ if (ignoreOutsideClick) {
+ ignoreOutsideClick = false;
+ return;
+ }
+ if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {
+ dismissWith(DismissReason.backdrop);
+ }
+ };
+};
+
+const isJqueryElement = elem => typeof elem === 'object' && elem.jquery;
+const isElement = elem => elem instanceof Element || isJqueryElement(elem);
+const argsToParams = args => {
+ const params = {};
+ if (typeof args[0] === 'object' && !isElement(args[0])) {
+ Object.assign(params, args[0]);
+ } else {
+ ['title', 'html', 'icon'].forEach((name, index) => {
+ const arg = args[index];
+ if (typeof arg === 'string' || isElement(arg)) {
+ params[name] = arg;
+ } else if (arg !== undefined) {
+ error(`Unexpected type of ${name}! Expected "string" or "Element", got ${typeof arg}`);
+ }
+ });
+ }
+ return params;
+};
+
+/**
+ * Main method to create a new SweetAlert2 popup
+ *
+ * @param {...SweetAlertOptions} args
+ * @returns {Promise}
+ */
+function fire(...args) {
+ return new this(...args);
+}
+
+/**
+ * Returns an extended version of `Swal` containing `params` as defaults.
+ * Useful for reusing Swal configuration.
+ *
+ * For example:
+ *
+ * Before:
+ * const textPromptOptions = { input: 'text', showCancelButton: true }
+ * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })
+ * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })
+ *
+ * After:
+ * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })
+ * const {value: firstName} = await TextPrompt('What is your first name?')
+ * const {value: lastName} = await TextPrompt('What is your last name?')
+ *
+ * @param {SweetAlertOptions} mixinParams
+ * @returns {SweetAlert}
+ */
+function mixin(mixinParams) {
+ class MixinSwal extends this {
+ _main(params, priorityMixinParams) {
+ return super._main(params, Object.assign({}, mixinParams, priorityMixinParams));
+ }
+ }
+ // @ts-ignore
+ return MixinSwal;
+}
+
+/**
+ * If `timer` parameter is set, returns number of milliseconds of timer remained.
+ * Otherwise, returns undefined.
+ *
+ * @returns {number | undefined}
+ */
+const getTimerLeft = () => {
+ return globalState.timeout && globalState.timeout.getTimerLeft();
+};
+
+/**
+ * Stop timer. Returns number of milliseconds of timer remained.
+ * If `timer` parameter isn't set, returns undefined.
+ *
+ * @returns {number | undefined}
+ */
+const stopTimer = () => {
+ if (globalState.timeout) {
+ stopTimerProgressBar();
+ return globalState.timeout.stop();
+ }
+};
+
+/**
+ * Resume timer. Returns number of milliseconds of timer remained.
+ * If `timer` parameter isn't set, returns undefined.
+ *
+ * @returns {number | undefined}
+ */
+const resumeTimer = () => {
+ if (globalState.timeout) {
+ const remaining = globalState.timeout.start();
+ animateTimerProgressBar(remaining);
+ return remaining;
+ }
+};
+
+/**
+ * Resume timer. Returns number of milliseconds of timer remained.
+ * If `timer` parameter isn't set, returns undefined.
+ *
+ * @returns {number | undefined}
+ */
+const toggleTimer = () => {
+ const timer = globalState.timeout;
+ return timer && (timer.running ? stopTimer() : resumeTimer());
+};
+
+/**
+ * Increase timer. Returns number of milliseconds of an updated timer.
+ * If `timer` parameter isn't set, returns undefined.
+ *
+ * @param {number} ms
+ * @returns {number | undefined}
+ */
+const increaseTimer = ms => {
+ if (globalState.timeout) {
+ const remaining = globalState.timeout.increase(ms);
+ animateTimerProgressBar(remaining, true);
+ return remaining;
+ }
+};
+
+/**
+ * Check if timer is running. Returns true if timer is running
+ * or false if timer is paused or stopped.
+ * If `timer` parameter isn't set, returns undefined
+ *
+ * @returns {boolean}
+ */
+const isTimerRunning = () => {
+ return !!(globalState.timeout && globalState.timeout.isRunning());
+};
+
+let bodyClickListenerAdded = false;
+const clickHandlers = {};
+
+/**
+ * @param {string} attr
+ */
+function bindClickHandler(attr = 'data-swal-template') {
+ clickHandlers[attr] = this;
+ if (!bodyClickListenerAdded) {
+ document.body.addEventListener('click', bodyClickListener);
+ bodyClickListenerAdded = true;
+ }
+}
+const bodyClickListener = event => {
+ for (let el = event.target; el && el !== document; el = el.parentNode) {
+ for (const attr in clickHandlers) {
+ const template = el.getAttribute(attr);
+ if (template) {
+ clickHandlers[attr].fire({
+ template
+ });
+ return;
+ }
+ }
+ }
+};
+
+// Source: https://gist.github.com/mudge/5830382?permalink_comment_id=2691957#gistcomment-2691957
+
+class EventEmitter {
+ constructor() {
+ /** @type {Events} */
+ this.events = {};
+ }
+
+ /**
+ * @param {string} eventName
+ * @returns {EventHandlers}
+ */
+ _getHandlersByEventName(eventName) {
+ if (typeof this.events[eventName] === 'undefined') {
+ // not Set because we need to keep the FIFO order
+ // https://github.com/sweetalert2/sweetalert2/pull/2763#discussion_r1748990334
+ this.events[eventName] = [];
+ }
+ return this.events[eventName];
+ }
+
+ /**
+ * @param {string} eventName
+ * @param {EventHandler} eventHandler
+ */
+ on(eventName, eventHandler) {
+ const currentHandlers = this._getHandlersByEventName(eventName);
+ if (!currentHandlers.includes(eventHandler)) {
+ currentHandlers.push(eventHandler);
+ }
+ }
+
+ /**
+ * @param {string} eventName
+ * @param {EventHandler} eventHandler
+ */
+ once(eventName, eventHandler) {
+ /**
+ * @param {Array} args
+ */
+ const onceFn = (...args) => {
+ this.removeListener(eventName, onceFn);
+ eventHandler.apply(this, args);
+ };
+ this.on(eventName, onceFn);
+ }
+
+ /**
+ * @param {string} eventName
+ * @param {Array} args
+ */
+ emit(eventName, ...args) {
+ this._getHandlersByEventName(eventName).forEach(
+ /**
+ * @param {EventHandler} eventHandler
+ */
+ eventHandler => {
+ try {
+ eventHandler.apply(this, args);
+ } catch (error) {
+ console.error(error);
+ }
+ });
+ }
+
+ /**
+ * @param {string} eventName
+ * @param {EventHandler} eventHandler
+ */
+ removeListener(eventName, eventHandler) {
+ const currentHandlers = this._getHandlersByEventName(eventName);
+ const index = currentHandlers.indexOf(eventHandler);
+ if (index > -1) {
+ currentHandlers.splice(index, 1);
+ }
+ }
+
+ /**
+ * @param {string} eventName
+ */
+ removeAllListeners(eventName) {
+ if (this.events[eventName] !== undefined) {
+ // https://github.com/sweetalert2/sweetalert2/pull/2763#discussion_r1749239222
+ this.events[eventName].length = 0;
+ }
+ }
+ reset() {
+ this.events = {};
+ }
+}
+
+globalState.eventEmitter = new EventEmitter();
+
+/**
+ * @param {string} eventName
+ * @param {EventHandler} eventHandler
+ */
+const on = (eventName, eventHandler) => {
+ globalState.eventEmitter.on(eventName, eventHandler);
+};
+
+/**
+ * @param {string} eventName
+ * @param {EventHandler} eventHandler
+ */
+const once = (eventName, eventHandler) => {
+ globalState.eventEmitter.once(eventName, eventHandler);
+};
+
+/**
+ * @param {string} [eventName]
+ * @param {EventHandler} [eventHandler]
+ */
+const off = (eventName, eventHandler) => {
+ // Remove all handlers for all events
+ if (!eventName) {
+ globalState.eventEmitter.reset();
+ return;
+ }
+ if (eventHandler) {
+ // Remove a specific handler
+ globalState.eventEmitter.removeListener(eventName, eventHandler);
+ } else {
+ // Remove all handlers for a specific event
+ globalState.eventEmitter.removeAllListeners(eventName);
+ }
+};
+
+var staticMethods = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ argsToParams: argsToParams,
+ bindClickHandler: bindClickHandler,
+ clickCancel: clickCancel,
+ clickConfirm: clickConfirm,
+ clickDeny: clickDeny,
+ enableLoading: showLoading,
+ fire: fire,
+ getActions: getActions,
+ getCancelButton: getCancelButton,
+ getCloseButton: getCloseButton,
+ getConfirmButton: getConfirmButton,
+ getContainer: getContainer,
+ getDenyButton: getDenyButton,
+ getFocusableElements: getFocusableElements,
+ getFooter: getFooter,
+ getHtmlContainer: getHtmlContainer,
+ getIcon: getIcon,
+ getIconContent: getIconContent,
+ getImage: getImage,
+ getInputLabel: getInputLabel,
+ getLoader: getLoader,
+ getPopup: getPopup,
+ getProgressSteps: getProgressSteps,
+ getTimerLeft: getTimerLeft,
+ getTimerProgressBar: getTimerProgressBar,
+ getTitle: getTitle,
+ getValidationMessage: getValidationMessage,
+ increaseTimer: increaseTimer,
+ isDeprecatedParameter: isDeprecatedParameter,
+ isLoading: isLoading,
+ isTimerRunning: isTimerRunning,
+ isUpdatableParameter: isUpdatableParameter,
+ isValidParameter: isValidParameter,
+ isVisible: isVisible,
+ mixin: mixin,
+ off: off,
+ on: on,
+ once: once,
+ resumeTimer: resumeTimer,
+ showLoading: showLoading,
+ stopTimer: stopTimer,
+ toggleTimer: toggleTimer
+});
+
+class Timer {
+ /**
+ * @param {Function} callback
+ * @param {number} delay
+ */
+ constructor(callback, delay) {
+ this.callback = callback;
+ this.remaining = delay;
+ this.running = false;
+ this.start();
+ }
+
+ /**
+ * @returns {number}
+ */
+ start() {
+ if (!this.running) {
+ this.running = true;
+ this.started = new Date();
+ this.id = setTimeout(this.callback, this.remaining);
+ }
+ return this.remaining;
+ }
+
+ /**
+ * @returns {number}
+ */
+ stop() {
+ if (this.started && this.running) {
+ this.running = false;
+ clearTimeout(this.id);
+ this.remaining -= new Date().getTime() - this.started.getTime();
+ }
+ return this.remaining;
+ }
+
+ /**
+ * @param {number} n
+ * @returns {number}
+ */
+ increase(n) {
+ const running = this.running;
+ if (running) {
+ this.stop();
+ }
+ this.remaining += n;
+ if (running) {
+ this.start();
+ }
+ return this.remaining;
+ }
+
+ /**
+ * @returns {number}
+ */
+ getTimerLeft() {
+ if (this.running) {
+ this.stop();
+ this.start();
+ }
+ return this.remaining;
+ }
+
+ /**
+ * @returns {boolean}
+ */
+ isRunning() {
+ return this.running;
+ }
+}
+
+const swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];
+
+/**
+ * @param {SweetAlertOptions} params
+ * @returns {SweetAlertOptions}
+ */
+const getTemplateParams = params => {
+ const template = typeof params.template === 'string' ? (/** @type {HTMLTemplateElement} */document.querySelector(params.template)) : params.template;
+ if (!template) {
+ return {};
+ }
+ /** @type {DocumentFragment} */
+ const templateContent = template.content;
+ showWarningsForElements(templateContent);
+ const result = Object.assign(getSwalParams(templateContent), getSwalFunctionParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams));
+ return result;
+};
+
+/**
+ * @param {DocumentFragment} templateContent
+ * @returns {Record}
+ */
+const getSwalParams = templateContent => {
+ /** @type {Record} */
+ const result = {};
+ /** @type {HTMLElement[]} */
+ const swalParams = Array.from(templateContent.querySelectorAll('swal-param'));
+ swalParams.forEach(param => {
+ showWarningsForAttributes(param, ['name', 'value']);
+ const paramName = /** @type {keyof SweetAlertOptions} */param.getAttribute('name');
+ const value = param.getAttribute('value');
+ if (!paramName || !value) {
+ return;
+ }
+ if (typeof defaultParams[paramName] === 'boolean') {
+ result[paramName] = value !== 'false';
+ } else if (typeof defaultParams[paramName] === 'object') {
+ result[paramName] = JSON.parse(value);
+ } else {
+ result[paramName] = value;
+ }
+ });
+ return result;
+};
+
+/**
+ * @param {DocumentFragment} templateContent
+ * @returns {Record}
+ */
+const getSwalFunctionParams = templateContent => {
+ /** @type {Record} */
+ const result = {};
+ /** @type {HTMLElement[]} */
+ const swalFunctions = Array.from(templateContent.querySelectorAll('swal-function-param'));
+ swalFunctions.forEach(param => {
+ const paramName = /** @type {keyof SweetAlertOptions} */param.getAttribute('name');
+ const value = param.getAttribute('value');
+ if (!paramName || !value) {
+ return;
+ }
+ result[paramName] = new Function(`return ${value}`)();
+ });
+ return result;
+};
+
+/**
+ * @param {DocumentFragment} templateContent
+ * @returns {Record}
+ */
+const getSwalButtons = templateContent => {
+ /** @type {Record} */
+ const result = {};
+ /** @type {HTMLElement[]} */
+ const swalButtons = Array.from(templateContent.querySelectorAll('swal-button'));
+ swalButtons.forEach(button => {
+ showWarningsForAttributes(button, ['type', 'color', 'aria-label']);
+ const type = button.getAttribute('type');
+ if (!type || !['confirm', 'cancel', 'deny'].includes(type)) {
+ return;
+ }
+ result[`${type}ButtonText`] = button.innerHTML;
+ result[`show${capitalizeFirstLetter(type)}Button`] = true;
+ if (button.hasAttribute('color')) {
+ result[`${type}ButtonColor`] = button.getAttribute('color');
+ }
+ if (button.hasAttribute('aria-label')) {
+ result[`${type}ButtonAriaLabel`] = button.getAttribute('aria-label');
+ }
+ });
+ return result;
+};
+
+/**
+ * @param {DocumentFragment} templateContent
+ * @returns {Pick}
+ */
+const getSwalImage = templateContent => {
+ const result = {};
+ /** @type {HTMLElement | null} */
+ const image = templateContent.querySelector('swal-image');
+ if (image) {
+ showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']);
+ if (image.hasAttribute('src')) {
+ result.imageUrl = image.getAttribute('src') || undefined;
+ }
+ if (image.hasAttribute('width')) {
+ result.imageWidth = image.getAttribute('width') || undefined;
+ }
+ if (image.hasAttribute('height')) {
+ result.imageHeight = image.getAttribute('height') || undefined;
+ }
+ if (image.hasAttribute('alt')) {
+ result.imageAlt = image.getAttribute('alt') || undefined;
+ }
+ }
+ return result;
+};
+
+/**
+ * @param {DocumentFragment} templateContent
+ * @returns {Record}
+ */
+const getSwalIcon = templateContent => {
+ const result = {};
+ /** @type {HTMLElement | null} */
+ const icon = templateContent.querySelector('swal-icon');
+ if (icon) {
+ showWarningsForAttributes(icon, ['type', 'color']);
+ if (icon.hasAttribute('type')) {
+ result.icon = icon.getAttribute('type');
+ }
+ if (icon.hasAttribute('color')) {
+ result.iconColor = icon.getAttribute('color');
+ }
+ result.iconHtml = icon.innerHTML;
+ }
+ return result;
+};
+
+/**
+ * @param {DocumentFragment} templateContent
+ * @returns {Record}
+ */
+const getSwalInput = templateContent => {
+ /** @type {Record} */
+ const result = {};
+ /** @type {HTMLElement | null} */
+ const input = templateContent.querySelector('swal-input');
+ if (input) {
+ showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']);
+ result.input = input.getAttribute('type') || 'text';
+ if (input.hasAttribute('label')) {
+ result.inputLabel = input.getAttribute('label');
+ }
+ if (input.hasAttribute('placeholder')) {
+ result.inputPlaceholder = input.getAttribute('placeholder');
+ }
+ if (input.hasAttribute('value')) {
+ result.inputValue = input.getAttribute('value');
+ }
+ }
+ /** @type {HTMLElement[]} */
+ const inputOptions = Array.from(templateContent.querySelectorAll('swal-input-option'));
+ if (inputOptions.length) {
+ result.inputOptions = {};
+ inputOptions.forEach(option => {
+ showWarningsForAttributes(option, ['value']);
+ const optionValue = option.getAttribute('value');
+ if (!optionValue) {
+ return;
+ }
+ const optionName = option.innerHTML;
+ result.inputOptions[optionValue] = optionName;
+ });
+ }
+ return result;
+};
+
+/**
+ * @param {DocumentFragment} templateContent
+ * @param {string[]} paramNames
+ * @returns {Record}
+ */
+const getSwalStringParams = (templateContent, paramNames) => {
+ /** @type {Record} */
+ const result = {};
+ for (const i in paramNames) {
+ const paramName = paramNames[i];
+ /** @type {HTMLElement | null} */
+ const tag = templateContent.querySelector(paramName);
+ if (tag) {
+ showWarningsForAttributes(tag, []);
+ result[paramName.replace(/^swal-/, '')] = tag.innerHTML.trim();
+ }
+ }
+ return result;
+};
+
+/**
+ * @param {DocumentFragment} templateContent
+ */
+const showWarningsForElements = templateContent => {
+ const allowedElements = swalStringParams.concat(['swal-param', 'swal-function-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']);
+ Array.from(templateContent.children).forEach(el => {
+ const tagName = el.tagName.toLowerCase();
+ if (!allowedElements.includes(tagName)) {
+ warn(`Unrecognized element <${tagName}>`);
+ }
+ });
+};
+
+/**
+ * @param {HTMLElement} el
+ * @param {string[]} allowedAttributes
+ */
+const showWarningsForAttributes = (el, allowedAttributes) => {
+ Array.from(el.attributes).forEach(attribute => {
+ if (allowedAttributes.indexOf(attribute.name) === -1) {
+ warn([`Unrecognized attribute "${attribute.name}" on <${el.tagName.toLowerCase()}>.`, `${allowedAttributes.length ? `Allowed attributes are: ${allowedAttributes.join(', ')}` : 'To set the value, use HTML within the element.'}`]);
+ }
+ });
+};
+
+const SHOW_CLASS_TIMEOUT = 10;
+
+/**
+ * Open popup, add necessary classes and styles, fix scrollbar
+ *
+ * @param {SweetAlertOptions} params
+ */
+const openPopup = params => {
+ const container = getContainer();
+ const popup = getPopup();
+ if (typeof params.willOpen === 'function') {
+ params.willOpen(popup);
+ }
+ globalState.eventEmitter.emit('willOpen', popup);
+ const bodyStyles = window.getComputedStyle(document.body);
+ const initialBodyOverflow = bodyStyles.overflowY;
+ addClasses(container, popup, params);
+
+ // scrolling is 'hidden' until animation is done, after that 'auto'
+ setTimeout(() => {
+ setScrollingVisibility(container, popup);
+ }, SHOW_CLASS_TIMEOUT);
+ if (isModal()) {
+ fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow);
+ setAriaHidden();
+ }
+ if (!isToast() && !globalState.previousActiveElement) {
+ globalState.previousActiveElement = document.activeElement;
+ }
+ if (typeof params.didOpen === 'function') {
+ setTimeout(() => params.didOpen(popup));
+ }
+ globalState.eventEmitter.emit('didOpen', popup);
+ removeClass(container, swalClasses['no-transition']);
+};
+
+/**
+ * @param {AnimationEvent} event
+ */
+const swalOpenAnimationFinished = event => {
+ const popup = getPopup();
+ if (event.target !== popup) {
+ return;
+ }
+ const container = getContainer();
+ popup.removeEventListener('animationend', swalOpenAnimationFinished);
+ popup.removeEventListener('transitionend', swalOpenAnimationFinished);
+ container.style.overflowY = 'auto';
+};
+
+/**
+ * @param {HTMLElement} container
+ * @param {HTMLElement} popup
+ */
+const setScrollingVisibility = (container, popup) => {
+ if (hasCssAnimation(popup)) {
+ container.style.overflowY = 'hidden';
+ popup.addEventListener('animationend', swalOpenAnimationFinished);
+ popup.addEventListener('transitionend', swalOpenAnimationFinished);
+ } else {
+ container.style.overflowY = 'auto';
+ }
+};
+
+/**
+ * @param {HTMLElement} container
+ * @param {boolean} scrollbarPadding
+ * @param {string} initialBodyOverflow
+ */
+const fixScrollContainer = (container, scrollbarPadding, initialBodyOverflow) => {
+ iOSfix();
+ if (scrollbarPadding && initialBodyOverflow !== 'hidden') {
+ replaceScrollbarWithPadding(initialBodyOverflow);
+ }
+
+ // sweetalert2/issues/1247
+ setTimeout(() => {
+ container.scrollTop = 0;
+ });
+};
+
+/**
+ * @param {HTMLElement} container
+ * @param {HTMLElement} popup
+ * @param {SweetAlertOptions} params
+ */
+const addClasses = (container, popup, params) => {
+ addClass(container, params.showClass.backdrop);
+ if (params.animation) {
+ // this workaround with opacity is needed for https://github.com/sweetalert2/sweetalert2/issues/2059
+ popup.style.setProperty('opacity', '0', 'important');
+ show(popup, 'grid');
+ setTimeout(() => {
+ // Animate popup right after showing it
+ addClass(popup, params.showClass.popup);
+ // and remove the opacity workaround
+ popup.style.removeProperty('opacity');
+ }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062
+ } else {
+ show(popup, 'grid');
+ }
+ addClass([document.documentElement, document.body], swalClasses.shown);
+ if (params.heightAuto && params.backdrop && !params.toast) {
+ addClass([document.documentElement, document.body], swalClasses['height-auto']);
+ }
+};
+
+var defaultInputValidators = {
+ /**
+ * @param {string} string
+ * @param {string} [validationMessage]
+ * @returns {Promise}
+ */
+ email: (string, validationMessage) => {
+ return /^[a-zA-Z0-9.+_'-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]+$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');
+ },
+ /**
+ * @param {string} string
+ * @param {string} [validationMessage]
+ * @returns {Promise}
+ */
+ url: (string, validationMessage) => {
+ // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013
+ return /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');
+ }
+};
+
+/**
+ * @param {SweetAlertOptions} params
+ */
+function setDefaultInputValidators(params) {
+ // Use default `inputValidator` for supported input types if not provided
+ if (params.inputValidator) {
+ return;
+ }
+ if (params.input === 'email') {
+ params.inputValidator = defaultInputValidators['email'];
+ }
+ if (params.input === 'url') {
+ params.inputValidator = defaultInputValidators['url'];
+ }
+}
+
+/**
+ * @param {SweetAlertOptions} params
+ */
+function validateCustomTargetElement(params) {
+ // Determine if the custom target element is valid
+ if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {
+ warn('Target parameter is not valid, defaulting to "body"');
+ params.target = 'body';
+ }
+}
+
+/**
+ * Set type, text and actions on popup
+ *
+ * @param {SweetAlertOptions} params
+ */
+function setParameters(params) {
+ setDefaultInputValidators(params);
+
+ // showLoaderOnConfirm && preConfirm
+ if (params.showLoaderOnConfirm && !params.preConfirm) {
+ warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\n' + 'https://sweetalert2.github.io/#ajax-request');
+ }
+ validateCustomTargetElement(params);
+
+ // Replace newlines with in title
+ if (typeof params.title === 'string') {
+ params.title = params.title.split('\n').join(' ');
+ }
+ init(params);
+}
+
+/** @type {SweetAlert} */
+let currentInstance;
+var _promise = /*#__PURE__*/new WeakMap();
+class SweetAlert {
+ /**
+ * @param {...any} args
+ * @this {SweetAlert}
+ */
+ constructor(...args) {
+ /**
+ * @type {Promise}
+ */
+ _classPrivateFieldInitSpec(this, _promise, void 0);
+ // Prevent run in Node env
+ if (typeof window === 'undefined') {
+ return;
+ }
+ currentInstance = this;
+
+ // @ts-ignore
+ const outerParams = Object.freeze(this.constructor.argsToParams(args));
+
+ /** @type {Readonly} */
+ this.params = outerParams;
+
+ /** @type {boolean} */
+ this.isAwaitingPromise = false;
+ _classPrivateFieldSet2(_promise, this, this._main(currentInstance.params));
+ }
+ _main(userParams, mixinParams = {}) {
+ showWarningsForParams(Object.assign({}, mixinParams, userParams));
+ if (globalState.currentInstance) {
+ const swalPromiseResolve = privateMethods.swalPromiseResolve.get(globalState.currentInstance);
+ const {
+ isAwaitingPromise
+ } = globalState.currentInstance;
+ globalState.currentInstance._destroy();
+ if (!isAwaitingPromise) {
+ swalPromiseResolve({
+ isDismissed: true
+ });
+ }
+ if (isModal()) {
+ unsetAriaHidden();
+ }
+ }
+ globalState.currentInstance = currentInstance;
+ const innerParams = prepareParams(userParams, mixinParams);
+ setParameters(innerParams);
+ Object.freeze(innerParams);
+
+ // clear the previous timer
+ if (globalState.timeout) {
+ globalState.timeout.stop();
+ delete globalState.timeout;
+ }
+
+ // clear the restore focus timeout
+ clearTimeout(globalState.restoreFocusTimeout);
+ const domCache = populateDomCache(currentInstance);
+ render(currentInstance, innerParams);
+ privateProps.innerParams.set(currentInstance, innerParams);
+ return swalPromise(currentInstance, domCache, innerParams);
+ }
+
+ // `catch` cannot be the name of a module export, so we define our thenable methods here instead
+ then(onFulfilled) {
+ return _classPrivateFieldGet2(_promise, this).then(onFulfilled);
+ }
+ finally(onFinally) {
+ return _classPrivateFieldGet2(_promise, this).finally(onFinally);
+ }
+}
+
+/**
+ * @param {SweetAlert} instance
+ * @param {DomCache} domCache
+ * @param {SweetAlertOptions} innerParams
+ * @returns {Promise}
+ */
+const swalPromise = (instance, domCache, innerParams) => {
+ return new Promise((resolve, reject) => {
+ // functions to handle all closings/dismissals
+ /**
+ * @param {DismissReason} dismiss
+ */
+ const dismissWith = dismiss => {
+ instance.close({
+ isDismissed: true,
+ dismiss
+ });
+ };
+ privateMethods.swalPromiseResolve.set(instance, resolve);
+ privateMethods.swalPromiseReject.set(instance, reject);
+ domCache.confirmButton.onclick = () => {
+ handleConfirmButtonClick(instance);
+ };
+ domCache.denyButton.onclick = () => {
+ handleDenyButtonClick(instance);
+ };
+ domCache.cancelButton.onclick = () => {
+ handleCancelButtonClick(instance, dismissWith);
+ };
+ domCache.closeButton.onclick = () => {
+ dismissWith(DismissReason.close);
+ };
+ handlePopupClick(innerParams, domCache, dismissWith);
+ addKeydownHandler(globalState, innerParams, dismissWith);
+ handleInputOptionsAndValue(instance, innerParams);
+ openPopup(innerParams);
+ setupTimer(globalState, innerParams, dismissWith);
+ initFocus(domCache, innerParams);
+
+ // Scroll container to top on open (#1247, #1946)
+ setTimeout(() => {
+ domCache.container.scrollTop = 0;
+ });
+ });
+};
+
+/**
+ * @param {SweetAlertOptions} userParams
+ * @param {SweetAlertOptions} mixinParams
+ * @returns {SweetAlertOptions}
+ */
+const prepareParams = (userParams, mixinParams) => {
+ const templateParams = getTemplateParams(userParams);
+ const params = Object.assign({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131
+ params.showClass = Object.assign({}, defaultParams.showClass, params.showClass);
+ params.hideClass = Object.assign({}, defaultParams.hideClass, params.hideClass);
+ if (params.animation === false) {
+ params.showClass = {
+ backdrop: 'swal2-noanimation'
+ };
+ params.hideClass = {};
+ }
+ return params;
+};
+
+/**
+ * @param {SweetAlert} instance
+ * @returns {DomCache}
+ */
+const populateDomCache = instance => {
+ const domCache = {
+ popup: getPopup(),
+ container: getContainer(),
+ actions: getActions(),
+ confirmButton: getConfirmButton(),
+ denyButton: getDenyButton(),
+ cancelButton: getCancelButton(),
+ loader: getLoader(),
+ closeButton: getCloseButton(),
+ validationMessage: getValidationMessage(),
+ progressSteps: getProgressSteps()
+ };
+ privateProps.domCache.set(instance, domCache);
+ return domCache;
+};
+
+/**
+ * @param {GlobalState} globalState
+ * @param {SweetAlertOptions} innerParams
+ * @param {Function} dismissWith
+ */
+const setupTimer = (globalState, innerParams, dismissWith) => {
+ const timerProgressBar = getTimerProgressBar();
+ hide(timerProgressBar);
+ if (innerParams.timer) {
+ globalState.timeout = new Timer(() => {
+ dismissWith('timer');
+ delete globalState.timeout;
+ }, innerParams.timer);
+ if (innerParams.timerProgressBar) {
+ show(timerProgressBar);
+ applyCustomClass(timerProgressBar, innerParams, 'timerProgressBar');
+ setTimeout(() => {
+ if (globalState.timeout && globalState.timeout.running) {
+ // timer can be already stopped or unset at this point
+ animateTimerProgressBar(innerParams.timer);
+ }
+ });
+ }
+ }
+};
+
+/**
+ * Initialize focus in the popup:
+ *
+ * 1. If `toast` is `true`, don't steal focus from the document.
+ * 2. Else if there is an [autofocus] element, focus it.
+ * 3. Else if `focusConfirm` is `true` and confirm button is visible, focus it.
+ * 4. Else if `focusDeny` is `true` and deny button is visible, focus it.
+ * 5. Else if `focusCancel` is `true` and cancel button is visible, focus it.
+ * 6. Else focus the first focusable element in a popup (if any).
+ *
+ * @param {DomCache} domCache
+ * @param {SweetAlertOptions} innerParams
+ */
+const initFocus = (domCache, innerParams) => {
+ if (innerParams.toast) {
+ return;
+ }
+ // TODO: this is dumb, remove `allowEnterKey` param in the next major version
+ if (!callIfFunction(innerParams.allowEnterKey)) {
+ warnAboutDeprecation('allowEnterKey');
+ blurActiveElement();
+ return;
+ }
+ if (focusAutofocus(domCache)) {
+ return;
+ }
+ if (focusButton(domCache, innerParams)) {
+ return;
+ }
+ setFocus(-1, 1);
+};
+
+/**
+ * @param {DomCache} domCache
+ * @returns {boolean}
+ */
+const focusAutofocus = domCache => {
+ const autofocusElements = Array.from(domCache.popup.querySelectorAll('[autofocus]'));
+ for (const autofocusElement of autofocusElements) {
+ if (autofocusElement instanceof HTMLElement && isVisible$1(autofocusElement)) {
+ autofocusElement.focus();
+ return true;
+ }
+ }
+ return false;
+};
+
+/**
+ * @param {DomCache} domCache
+ * @param {SweetAlertOptions} innerParams
+ * @returns {boolean}
+ */
+const focusButton = (domCache, innerParams) => {
+ if (innerParams.focusDeny && isVisible$1(domCache.denyButton)) {
+ domCache.denyButton.focus();
+ return true;
+ }
+ if (innerParams.focusCancel && isVisible$1(domCache.cancelButton)) {
+ domCache.cancelButton.focus();
+ return true;
+ }
+ if (innerParams.focusConfirm && isVisible$1(domCache.confirmButton)) {
+ domCache.confirmButton.focus();
+ return true;
+ }
+ return false;
+};
+const blurActiveElement = () => {
+ if (document.activeElement instanceof HTMLElement && typeof document.activeElement.blur === 'function') {
+ document.activeElement.blur();
+ }
+};
+
+// Dear russian users visiting russian sites. Let's have fun.
+if (typeof window !== 'undefined' && /^ru\b/.test(navigator.language) && location.host.match(/\.(ru|su|by|xn--p1ai)$/)) {
+ const now = new Date();
+ const initiationDate = localStorage.getItem('swal-initiation');
+ if (!initiationDate) {
+ localStorage.setItem('swal-initiation', `${now}`);
+ } else if ((now.getTime() - Date.parse(initiationDate)) / (1000 * 60 * 60 * 24) > 3) {
+ setTimeout(() => {
+ document.body.style.pointerEvents = 'none';
+ const ukrainianAnthem = document.createElement('audio');
+ ukrainianAnthem.src = 'https://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3';
+ ukrainianAnthem.loop = true;
+ document.body.appendChild(ukrainianAnthem);
+ setTimeout(() => {
+ ukrainianAnthem.play().catch(() => {
+ // ignore
+ });
+ }, 2500);
+ }, 500);
+ }
+}
+
+// Assign instance methods from src/instanceMethods/*.js to prototype
+SweetAlert.prototype.disableButtons = disableButtons;
+SweetAlert.prototype.enableButtons = enableButtons;
+SweetAlert.prototype.getInput = getInput;
+SweetAlert.prototype.disableInput = disableInput;
+SweetAlert.prototype.enableInput = enableInput;
+SweetAlert.prototype.hideLoading = hideLoading;
+SweetAlert.prototype.disableLoading = hideLoading;
+SweetAlert.prototype.showValidationMessage = showValidationMessage;
+SweetAlert.prototype.resetValidationMessage = resetValidationMessage;
+SweetAlert.prototype.close = close;
+SweetAlert.prototype.closePopup = close;
+SweetAlert.prototype.closeModal = close;
+SweetAlert.prototype.closeToast = close;
+SweetAlert.prototype.rejectPromise = rejectPromise;
+SweetAlert.prototype.update = update;
+SweetAlert.prototype._destroy = _destroy;
+
+// Assign static methods from src/staticMethods/*.js to constructor
+Object.assign(SweetAlert, staticMethods);
+
+// Proxy to instance methods to constructor, for now, for backwards compatibility
+Object.keys(instanceMethods).forEach(key => {
+ /**
+ * @param {...any} args
+ * @returns {any | undefined}
+ */
+ SweetAlert[key] = function (...args) {
+ if (currentInstance && currentInstance[key]) {
+ return currentInstance[key](...args);
+ }
+ return null;
+ };
+});
+SweetAlert.DismissReason = DismissReason;
+SweetAlert.version = '11.21.1';
+
+const Swal = SweetAlert;
+// @ts-ignore
+Swal.default = Swal;
+
+export { Swal as default };
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/sweetalert2/sweetalert2.esm.min.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/sweetalert2/sweetalert2.esm.min.js
new file mode 100644
index 000000000..bc4f63a9e
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/sweetalert2/sweetalert2.esm.min.js
@@ -0,0 +1,5 @@
+/*!
+* sweetalert2 v11.21.1
+* Released under the MIT License.
+*/
+function e(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}function t(t,n){return t.get(e(t,n))}function n(e,t,n){(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e,t),t.set(e,n)}const o={},i=e=>new Promise((t=>{if(!e)return t();const n=window.scrollX,i=window.scrollY;o.restoreFocusTimeout=setTimeout((()=>{o.previousActiveElement instanceof HTMLElement?(o.previousActiveElement.focus(),o.previousActiveElement=null):document.body&&document.body.focus(),t()}),100),window.scrollTo(n,i)})),s="swal2-",r=["container","shown","height-auto","iosfix","popup","modal","no-backdrop","no-transition","toast","toast-shown","show","hide","close","title","html-container","actions","confirm","deny","cancel","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","input-label","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loader","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","timer-progress-bar-container","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error","draggable","dragging"].reduce(((e,t)=>(e[t]=s+t,e)),{}),a=["success","warning","info","question","error"].reduce(((e,t)=>(e[t]=s+t,e)),{}),l="SweetAlert2:",c=e=>e.charAt(0).toUpperCase()+e.slice(1),u=e=>{console.warn(`${l} ${"object"==typeof e?e.join(" "):e}`)},d=e=>{console.error(`${l} ${e}`)},p=[],m=(e,t=null)=>{var n;n=`"${e}" is deprecated and will be removed in the next major release.${t?` Use "${t}" instead.`:""}`,p.includes(n)||(p.push(n),u(n))},g=e=>"function"==typeof e?e():e,h=e=>e&&"function"==typeof e.toPromise,f=e=>h(e)?e.toPromise():Promise.resolve(e),b=e=>e&&Promise.resolve(e)===e,y=()=>document.body.querySelector(`.${r.container}`),v=e=>{const t=y();return t?t.querySelector(e):null},w=e=>v(`.${e}`),C=()=>w(r.popup),A=()=>w(r.icon),E=()=>w(r.title),k=()=>w(r["html-container"]),B=()=>w(r.image),$=()=>w(r["progress-steps"]),L=()=>w(r["validation-message"]),P=()=>v(`.${r.actions} .${r.confirm}`),x=()=>v(`.${r.actions} .${r.cancel}`),T=()=>v(`.${r.actions} .${r.deny}`),S=()=>v(`.${r.loader}`),O=()=>w(r.actions),M=()=>w(r.footer),j=()=>w(r["timer-progress-bar"]),H=()=>w(r.close),I=()=>{const e=C();if(!e)return[];const t=e.querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])'),n=Array.from(t).sort(((e,t)=>{const n=parseInt(e.getAttribute("tabindex")||"0"),o=parseInt(t.getAttribute("tabindex")||"0");return n>o?1:n"-1"!==e.getAttribute("tabindex")));return[...new Set(n.concat(i))].filter((e=>ee(e)))},D=()=>N(document.body,r.shown)&&!N(document.body,r["toast-shown"])&&!N(document.body,r["no-backdrop"]),q=()=>{const e=C();return!!e&&N(e,r.toast)},V=(e,t)=>{if(e.textContent="",t){const n=(new DOMParser).parseFromString(t,"text/html"),o=n.querySelector("head");o&&Array.from(o.childNodes).forEach((t=>{e.appendChild(t)}));const i=n.querySelector("body");i&&Array.from(i.childNodes).forEach((t=>{t instanceof HTMLVideoElement||t instanceof HTMLAudioElement?e.appendChild(t.cloneNode(!0)):e.appendChild(t)}))}},N=(e,t)=>{if(!t)return!1;const n=t.split(/\s+/);for(let t=0;t{if(((e,t)=>{Array.from(e.classList).forEach((n=>{Object.values(r).includes(n)||Object.values(a).includes(n)||Object.values(t.showClass||{}).includes(n)||e.classList.remove(n)}))})(e,t),!t.customClass)return;const o=t.customClass[n];o&&("string"==typeof o||o.forEach?z(e,o):u(`Invalid type of customClass.${n}! Expected string or iterable object, got "${typeof o}"`))},F=(e,t)=>{if(!t)return null;switch(t){case"select":case"textarea":case"file":return e.querySelector(`.${r.popup} > .${r[t]}`);case"checkbox":return e.querySelector(`.${r.popup} > .${r.checkbox} input`);case"radio":return e.querySelector(`.${r.popup} > .${r.radio} input:checked`)||e.querySelector(`.${r.popup} > .${r.radio} input:first-child`);case"range":return e.querySelector(`.${r.popup} > .${r.range} input`);default:return e.querySelector(`.${r.popup} > .${r.input}`)}},R=e=>{if(e.focus(),"file"!==e.type){const t=e.value;e.value="",e.value=t}},U=(e,t,n)=>{e&&t&&("string"==typeof t&&(t=t.split(/\s+/).filter(Boolean)),t.forEach((t=>{Array.isArray(e)?e.forEach((e=>{n?e.classList.add(t):e.classList.remove(t)})):n?e.classList.add(t):e.classList.remove(t)})))},z=(e,t)=>{U(e,t,!0)},W=(e,t)=>{U(e,t,!1)},K=(e,t)=>{const n=Array.from(e.children);for(let e=0;e{n===`${parseInt(n)}`&&(n=parseInt(n)),n||0===parseInt(n)?e.style.setProperty(t,"number"==typeof n?`${n}px`:n):e.style.removeProperty(t)},X=(e,t="flex")=>{e&&(e.style.display=t)},Z=e=>{e&&(e.style.display="none")},J=(e,t="block")=>{e&&new MutationObserver((()=>{Q(e,e.innerHTML,t)})).observe(e,{childList:!0,subtree:!0})},G=(e,t,n,o)=>{const i=e.querySelector(t);i&&i.style.setProperty(n,o)},Q=(e,t,n="flex")=>{t?X(e,n):Z(e)},ee=e=>!(!e||!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)),te=e=>!!(e.scrollHeight>e.clientHeight),ne=e=>{const t=window.getComputedStyle(e),n=parseFloat(t.getPropertyValue("animation-duration")||"0"),o=parseFloat(t.getPropertyValue("transition-duration")||"0");return n>0||o>0},oe=(e,t=!1)=>{const n=j();n&&ee(n)&&(t&&(n.style.transition="none",n.style.width="100%"),setTimeout((()=>{n.style.transition=`width ${e/1e3}s linear`,n.style.width="0%"}),10))},ie=`\n \n`.replace(/(^|\n)\s*/g,""),se=()=>{o.currentInstance.resetValidationMessage()},re=e=>{const t=(()=>{const e=y();return!!e&&(e.remove(),W([document.documentElement,document.body],[r["no-backdrop"],r["toast-shown"],r["has-column"]]),!0)})();if("undefined"==typeof window||"undefined"==typeof document)return void d("SweetAlert2 requires document to initialize");const n=document.createElement("div");n.className=r.container,t&&z(n,r["no-transition"]),V(n,ie),n.dataset.swal2Theme=e.theme;const o="string"==typeof(i=e.target)?document.querySelector(i):i;var i;o.appendChild(n),e.topLayer&&(n.setAttribute("popover",""),n.showPopover()),(e=>{const t=C();t.setAttribute("role",e.toast?"alert":"dialog"),t.setAttribute("aria-live",e.toast?"polite":"assertive"),e.toast||t.setAttribute("aria-modal","true")})(e),(e=>{"rtl"===window.getComputedStyle(e).direction&&z(y(),r.rtl)})(o),(()=>{const e=C(),t=K(e,r.input),n=K(e,r.file),o=e.querySelector(`.${r.range} input`),i=e.querySelector(`.${r.range} output`),s=K(e,r.select),a=e.querySelector(`.${r.checkbox} input`),l=K(e,r.textarea);t.oninput=se,n.onchange=se,s.onchange=se,a.onchange=se,l.oninput=se,o.oninput=()=>{se(),i.value=o.value},o.onchange=()=>{se(),i.value=o.value}})()},ae=(e,t)=>{e instanceof HTMLElement?t.appendChild(e):"object"==typeof e?le(e,t):e&&V(t,e)},le=(e,t)=>{e.jquery?ce(t,e):V(t,e.toString())},ce=(e,t)=>{if(e.textContent="",0 in t)for(let n=0;n in t;n++)e.appendChild(t[n].cloneNode(!0));else e.appendChild(t.cloneNode(!0))},ue=(e,t)=>{const n=O(),o=S();n&&o&&(t.showConfirmButton||t.showDenyButton||t.showCancelButton?X(n):Z(n),_(n,t,"actions"),function(e,t,n){const o=P(),i=T(),s=x();if(!o||!i||!s)return;pe(o,"confirm",n),pe(i,"deny",n),pe(s,"cancel",n),function(e,t,n,o){if(!o.buttonsStyling)return void W([e,t,n],r.styled);z([e,t,n],r.styled),o.confirmButtonColor&&e.style.setProperty("--swal2-confirm-button-background-color",o.confirmButtonColor);o.denyButtonColor&&t.style.setProperty("--swal2-deny-button-background-color",o.denyButtonColor);o.cancelButtonColor&&n.style.setProperty("--swal2-cancel-button-background-color",o.cancelButtonColor);de(e),de(t),de(n)}(o,i,s,n),n.reverseButtons&&(n.toast?(e.insertBefore(s,o),e.insertBefore(i,o)):(e.insertBefore(s,t),e.insertBefore(i,t),e.insertBefore(o,t)))}(n,o,t),V(o,t.loaderHtml||""),_(o,t,"loader"))};function de(e){const t=window.getComputedStyle(e),n=t.backgroundColor.replace(/rgba?\((\d+), (\d+), (\d+).*/,"rgba($1, $2, $3, 0.5)");e.style.setProperty("--swal2-action-button-outline",t.getPropertyValue("--swal2-outline").replace(/ rgba\(.*/,` ${n}`))}function pe(e,t,n){const o=c(t);Q(e,n[`show${o}Button`],"inline-block"),V(e,n[`${t}ButtonText`]||""),e.setAttribute("aria-label",n[`${t}ButtonAriaLabel`]||""),e.className=r[t],_(e,n,`${t}Button`)}const me=(e,t)=>{const n=y();n&&(!function(e,t){"string"==typeof t?e.style.background=t:t||z([document.documentElement,document.body],r["no-backdrop"])}(n,t.backdrop),function(e,t){if(!t)return;t in r?z(e,r[t]):(u('The "position" parameter is not valid, defaulting to "center"'),z(e,r.center))}(n,t.position),function(e,t){if(!t)return;z(e,r[`grow-${t}`])}(n,t.grow),_(n,t,"container"))};var ge={innerParams:new WeakMap,domCache:new WeakMap};const he=["input","file","range","select","radio","checkbox","textarea"],fe=e=>{if(!e.input)return;if(!Ee[e.input])return void d(`Unexpected type of input! Expected ${Object.keys(Ee).join(" | ")}, got "${e.input}"`);const t=Ce(e.input);if(!t)return;const n=Ee[e.input](t,e);X(t),e.inputAutoFocus&&setTimeout((()=>{R(n)}))},be=(e,t)=>{const n=C();if(!n)return;const o=F(n,e);if(o){(e=>{for(let t=0;t{if(!e.input)return;const t=Ce(e.input);t&&_(t,e,"input")},ve=(e,t)=>{!e.placeholder&&t.inputPlaceholder&&(e.placeholder=t.inputPlaceholder)},we=(e,t,n)=>{if(n.inputLabel){const o=document.createElement("label"),i=r["input-label"];o.setAttribute("for",e.id),o.className=i,"object"==typeof n.customClass&&z(o,n.customClass.inputLabel),o.innerText=n.inputLabel,t.insertAdjacentElement("beforebegin",o)}},Ce=e=>{const t=C();if(t)return K(t,r[e]||r.input)},Ae=(e,t)=>{["string","number"].includes(typeof t)?e.value=`${t}`:b(t)||u(`Unexpected type of inputValue! Expected "string", "number" or "Promise", got "${typeof t}"`)},Ee={};Ee.text=Ee.email=Ee.password=Ee.number=Ee.tel=Ee.url=Ee.search=Ee.date=Ee["datetime-local"]=Ee.time=Ee.week=Ee.month=(e,t)=>(Ae(e,t.inputValue),we(e,e,t),ve(e,t),e.type=t.input,e),Ee.file=(e,t)=>(we(e,e,t),ve(e,t),e),Ee.range=(e,t)=>{const n=e.querySelector("input"),o=e.querySelector("output");return Ae(n,t.inputValue),n.type=t.input,Ae(o,t.inputValue),we(n,e,t),e},Ee.select=(e,t)=>{if(e.textContent="",t.inputPlaceholder){const n=document.createElement("option");V(n,t.inputPlaceholder),n.value="",n.disabled=!0,n.selected=!0,e.appendChild(n)}return we(e,e,t),e},Ee.radio=e=>(e.textContent="",e),Ee.checkbox=(e,t)=>{const n=F(C(),"checkbox");n.value="1",n.checked=Boolean(t.inputValue);const o=e.querySelector("span");return V(o,t.inputPlaceholder||t.inputLabel),n},Ee.textarea=(e,t)=>{Ae(e,t.inputValue),ve(e,t),we(e,e,t);return setTimeout((()=>{if("MutationObserver"in window){const n=parseInt(window.getComputedStyle(C()).width);new MutationObserver((()=>{if(!document.body.contains(e))return;const o=e.offsetWidth+(i=e,parseInt(window.getComputedStyle(i).marginLeft)+parseInt(window.getComputedStyle(i).marginRight));var i;o>n?C().style.width=`${o}px`:Y(C(),"width",t.width)})).observe(e,{attributes:!0,attributeFilter:["style"]})}})),e};const ke=(e,t)=>{const n=k();n&&(J(n),_(n,t,"htmlContainer"),t.html?(ae(t.html,n),X(n,"block")):t.text?(n.textContent=t.text,X(n,"block")):Z(n),((e,t)=>{const n=C();if(!n)return;const o=ge.innerParams.get(e),i=!o||t.input!==o.input;he.forEach((e=>{const o=K(n,r[e]);o&&(be(e,t.inputAttributes),o.className=r[e],i&&Z(o))})),t.input&&(i&&fe(t),ye(t))})(e,t))},Be=(e,t)=>{for(const[n,o]of Object.entries(a))t.icon!==n&&W(e,o);z(e,t.icon&&a[t.icon]),Pe(e,t),$e(),_(e,t,"icon")},$e=()=>{const e=C();if(!e)return;const t=window.getComputedStyle(e).getPropertyValue("background-color"),n=e.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix");for(let e=0;e{if(!t.icon&&!t.iconHtml)return;let n=e.innerHTML,o="";if(t.iconHtml)o=xe(t.iconHtml);else if("success"===t.icon)o='\n
\n \n
\n
\n',n=n.replace(/ style=".*?"/g,"");else if("error"===t.icon)o='\n \n \n \n \n';else if(t.icon){o=xe({question:"?",warning:"!",info:"i"}[t.icon])}n.trim()!==o.trim()&&V(e,o)},Pe=(e,t)=>{if(t.iconColor){e.style.color=t.iconColor,e.style.borderColor=t.iconColor;for(const n of[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"])G(e,n,"background-color",t.iconColor);G(e,".swal2-success-ring","border-color",t.iconColor)}},xe=e=>`${e}
`;let Te=!1,Se=0,Oe=0,Me=0,je=0;const He=e=>{const t=C();if(e.target===t||A().contains(e.target)){Te=!0;const n=qe(e);Se=n.clientX,Oe=n.clientY,Me=parseInt(t.style.insetInlineStart)||0,je=parseInt(t.style.insetBlockStart)||0,z(t,"swal2-dragging")}},Ie=e=>{const t=C();if(Te){let{clientX:n,clientY:o}=qe(e);t.style.insetInlineStart=`${Me+(n-Se)}px`,t.style.insetBlockStart=`${je+(o-Oe)}px`}},De=()=>{const e=C();Te=!1,W(e,"swal2-dragging")},qe=e=>{let t=0,n=0;return e.type.startsWith("mouse")?(t=e.clientX,n=e.clientY):e.type.startsWith("touch")&&(t=e.touches[0].clientX,n=e.touches[0].clientY),{clientX:t,clientY:n}},Ve=(e,t)=>{const n=y(),o=C();if(n&&o){if(t.toast){Y(n,"width",t.width),o.style.width="100%";const e=S();e&&o.insertBefore(e,A())}else Y(o,"width",t.width);Y(o,"padding",t.padding),t.color&&(o.style.color=t.color),t.background&&(o.style.background=t.background),Z(L()),Ne(o,t),t.draggable&&!t.toast?(z(o,r.draggable),(e=>{e.addEventListener("mousedown",He),document.body.addEventListener("mousemove",Ie),e.addEventListener("mouseup",De),e.addEventListener("touchstart",He),document.body.addEventListener("touchmove",Ie),e.addEventListener("touchend",De)})(o)):(W(o,r.draggable),(e=>{e.removeEventListener("mousedown",He),document.body.removeEventListener("mousemove",Ie),e.removeEventListener("mouseup",De),e.removeEventListener("touchstart",He),document.body.removeEventListener("touchmove",Ie),e.removeEventListener("touchend",De)})(o))}},Ne=(e,t)=>{const n=t.showClass||{};e.className=`${r.popup} ${ee(e)?n.popup:""}`,t.toast?(z([document.documentElement,document.body],r["toast-shown"]),z(e,r.toast)):z(e,r.modal),_(e,t,"popup"),"string"==typeof t.customClass&&z(e,t.customClass),t.icon&&z(e,r[`icon-${t.icon}`])},_e=e=>{const t=document.createElement("li");return z(t,r["progress-step"]),V(t,e),t},Fe=e=>{const t=document.createElement("li");return z(t,r["progress-step-line"]),e.progressStepsDistance&&Y(t,"width",e.progressStepsDistance),t},Re=(e,t)=>{Ve(0,t),me(0,t),((e,t)=>{const n=$();if(!n)return;const{progressSteps:o,currentProgressStep:i}=t;o&&0!==o.length&&void 0!==i?(X(n),n.textContent="",i>=o.length&&u("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),o.forEach(((e,s)=>{const a=_e(e);if(n.appendChild(a),s===i&&z(a,r["active-progress-step"]),s!==o.length-1){const e=Fe(t);n.appendChild(e)}}))):Z(n)})(0,t),((e,t)=>{const n=ge.innerParams.get(e),o=A();if(!o)return;if(n&&t.icon===n.icon)return Le(o,t),void Be(o,t);if(!t.icon&&!t.iconHtml)return void Z(o);if(t.icon&&-1===Object.keys(a).indexOf(t.icon))return d(`Unknown icon! Expected "success", "error", "warning", "info" or "question", got "${t.icon}"`),void Z(o);X(o),Le(o,t),Be(o,t),z(o,t.showClass&&t.showClass.icon),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",$e)})(e,t),((e,t)=>{const n=B();n&&(t.imageUrl?(X(n,""),n.setAttribute("src",t.imageUrl),n.setAttribute("alt",t.imageAlt||""),Y(n,"width",t.imageWidth),Y(n,"height",t.imageHeight),n.className=r.image,_(n,t,"image")):Z(n))})(0,t),((e,t)=>{const n=E();n&&(J(n),Q(n,t.title||t.titleText,"block"),t.title&&ae(t.title,n),t.titleText&&(n.innerText=t.titleText),_(n,t,"title"))})(0,t),((e,t)=>{const n=H();n&&(V(n,t.closeButtonHtml||""),_(n,t,"closeButton"),Q(n,t.showCloseButton),n.setAttribute("aria-label",t.closeButtonAriaLabel||""))})(0,t),ke(e,t),ue(0,t),((e,t)=>{const n=M();n&&(J(n),Q(n,t.footer,"block"),t.footer&&ae(t.footer,n),_(n,t,"footer"))})(0,t);const n=C();"function"==typeof t.didRender&&n&&t.didRender(n),o.eventEmitter.emit("didRender",n)},Ue=()=>{var e;return null===(e=P())||void 0===e?void 0:e.click()},ze=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),We=e=>{e.keydownTarget&&e.keydownHandlerAdded&&(e.keydownTarget.removeEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!1)},Ke=(e,t)=>{var n;const o=I();if(o.length)return-2===(e+=t)&&(e=o.length-1),e===o.length?e=0:-1===e&&(e=o.length-1),void o[e].focus();null===(n=C())||void 0===n||n.focus()},Ye=["ArrowRight","ArrowDown"],Xe=["ArrowLeft","ArrowUp"],Ze=(e,t,n)=>{e&&(t.isComposing||229===t.keyCode||(e.stopKeydownPropagation&&t.stopPropagation(),"Enter"===t.key?Je(t,e):"Tab"===t.key?Ge(t):[...Ye,...Xe].includes(t.key)?Qe(t.key):"Escape"===t.key&&et(t,e,n)))},Je=(e,t)=>{if(!g(t.allowEnterKey))return;const n=F(C(),t.input);if(e.target&&n&&e.target instanceof HTMLElement&&e.target.outerHTML===n.outerHTML){if(["textarea","file"].includes(t.input))return;Ue(),e.preventDefault()}},Ge=e=>{const t=e.target,n=I();let o=-1;for(let e=0;e{const t=O(),n=P(),o=T(),i=x();if(!(t&&n&&o&&i))return;const s=[n,o,i];if(document.activeElement instanceof HTMLElement&&!s.includes(document.activeElement))return;const r=Ye.includes(e)?"nextElementSibling":"previousElementSibling";let a=document.activeElement;if(a){for(let e=0;e{g(t.allowEscapeKey)&&(e.preventDefault(),n(ze.esc))};var tt={swalPromiseResolve:new WeakMap,swalPromiseReject:new WeakMap};const nt=()=>{Array.from(document.body.children).forEach((e=>{e.hasAttribute("data-previous-aria-hidden")?(e.setAttribute("aria-hidden",e.getAttribute("data-previous-aria-hidden")||""),e.removeAttribute("data-previous-aria-hidden")):e.removeAttribute("aria-hidden")}))},ot="undefined"!=typeof window&&!!window.GestureEvent,it=()=>{const e=y();if(!e)return;let t;e.ontouchstart=e=>{t=st(e)},e.ontouchmove=e=>{t&&(e.preventDefault(),e.stopPropagation())}},st=e=>{const t=e.target,n=y(),o=k();return!(!n||!o)&&(!rt(e)&&!at(e)&&(t===n||!(te(n)||!(t instanceof HTMLElement)||((e,t)=>{let n=e;for(;n&&n!==t;){if(te(n))return!0;n=n.parentElement}return!1})(t,o)||"INPUT"===t.tagName||"TEXTAREA"===t.tagName||te(o)&&o.contains(t))))},rt=e=>e.touches&&e.touches.length&&"stylus"===e.touches[0].touchType,at=e=>e.touches&&e.touches.length>1;let lt=null;const ct=e=>{null===lt&&(document.body.scrollHeight>window.innerHeight||"scroll"===e)&&(lt=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight=`${lt+(()=>{const e=document.createElement("div");e.className=r["scrollbar-measure"],document.body.appendChild(e);const t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t})()}px`)};function ut(e,t,n,s){q()?yt(e,s):(i(n).then((()=>yt(e,s))),We(o)),ot?(t.setAttribute("style","display:none !important"),t.removeAttribute("class"),t.innerHTML=""):t.remove(),D()&&(null!==lt&&(document.body.style.paddingRight=`${lt}px`,lt=null),(()=>{if(N(document.body,r.iosfix)){const e=parseInt(document.body.style.top,10);W(document.body,r.iosfix),document.body.style.top="",document.body.scrollTop=-1*e}})(),nt()),W([document.documentElement,document.body],[r.shown,r["height-auto"],r["no-backdrop"],r["toast-shown"]])}function dt(e){e=ht(e);const t=tt.swalPromiseResolve.get(this),n=pt(this);this.isAwaitingPromise?e.isDismissed||(gt(this),t(e)):n&&t(e)}const pt=e=>{const t=C();if(!t)return!1;const n=ge.innerParams.get(e);if(!n||N(t,n.hideClass.popup))return!1;W(t,n.showClass.popup),z(t,n.hideClass.popup);const o=y();return W(o,n.showClass.backdrop),z(o,n.hideClass.backdrop),ft(e,t,n),!0};function mt(e){const t=tt.swalPromiseReject.get(this);gt(this),t&&t(e)}const gt=e=>{e.isAwaitingPromise&&(delete e.isAwaitingPromise,ge.innerParams.get(e)||e._destroy())},ht=e=>void 0===e?{isConfirmed:!1,isDenied:!1,isDismissed:!0}:Object.assign({isConfirmed:!1,isDenied:!1,isDismissed:!1},e),ft=(e,t,n)=>{var i;const s=y(),r=ne(t);"function"==typeof n.willClose&&n.willClose(t),null===(i=o.eventEmitter)||void 0===i||i.emit("willClose",t),r?bt(e,t,s,n.returnFocus,n.didClose):ut(e,s,n.returnFocus,n.didClose)},bt=(e,t,n,i,s)=>{o.swalCloseEventFinishedCallback=ut.bind(null,e,n,i,s);const r=function(e){var n;e.target===t&&(null===(n=o.swalCloseEventFinishedCallback)||void 0===n||n.call(o),delete o.swalCloseEventFinishedCallback,t.removeEventListener("animationend",r),t.removeEventListener("transitionend",r))};t.addEventListener("animationend",r),t.addEventListener("transitionend",r)},yt=(e,t)=>{setTimeout((()=>{var n;"function"==typeof t&&t.bind(e.params)(),null===(n=o.eventEmitter)||void 0===n||n.emit("didClose"),e._destroy&&e._destroy()}))},vt=e=>{let t=C();if(t||new Qn,t=C(),!t)return;const n=S();q()?Z(A()):wt(t,e),X(n),t.setAttribute("data-loading","true"),t.setAttribute("aria-busy","true"),t.focus()},wt=(e,t)=>{const n=O(),o=S();n&&o&&(!t&&ee(P())&&(t=P()),X(n),t&&(Z(t),o.setAttribute("data-button-to-replace",t.className),n.insertBefore(o,t)),z([e,n],r.loading))},Ct=e=>e.checked?1:0,At=e=>e.checked?e.value:null,Et=e=>e.files&&e.files.length?null!==e.getAttribute("multiple")?e.files:e.files[0]:null,kt=(e,t)=>{const n=C();if(!n)return;const o=e=>{"select"===t.input?function(e,t,n){const o=K(e,r.select);if(!o)return;const i=(e,t,o)=>{const i=document.createElement("option");i.value=o,V(i,t),i.selected=Lt(o,n.inputValue),e.appendChild(i)};t.forEach((e=>{const t=e[0],n=e[1];if(Array.isArray(n)){const e=document.createElement("optgroup");e.label=t,e.disabled=!1,o.appendChild(e),n.forEach((t=>i(e,t[1],t[0])))}else i(o,n,t)})),o.focus()}(n,$t(e),t):"radio"===t.input&&function(e,t,n){const o=K(e,r.radio);if(!o)return;t.forEach((e=>{const t=e[0],i=e[1],s=document.createElement("input"),a=document.createElement("label");s.type="radio",s.name=r.radio,s.value=t,Lt(t,n.inputValue)&&(s.checked=!0);const l=document.createElement("span");V(l,i),l.className=r.label,a.appendChild(s),a.appendChild(l),o.appendChild(a)}));const i=o.querySelectorAll("input");i.length&&i[0].focus()}(n,$t(e),t)};h(t.inputOptions)||b(t.inputOptions)?(vt(P()),f(t.inputOptions).then((t=>{e.hideLoading(),o(t)}))):"object"==typeof t.inputOptions?o(t.inputOptions):d("Unexpected type of inputOptions! Expected object, Map or Promise, got "+typeof t.inputOptions)},Bt=(e,t)=>{const n=e.getInput();n&&(Z(n),f(t.inputValue).then((o=>{n.value="number"===t.input?`${parseFloat(o)||0}`:`${o}`,X(n),n.focus(),e.hideLoading()})).catch((t=>{d(`Error in inputValue promise: ${t}`),n.value="",X(n),n.focus(),e.hideLoading()})))};const $t=e=>{const t=[];return e instanceof Map?e.forEach(((e,n)=>{let o=e;"object"==typeof o&&(o=$t(o)),t.push([n,o])})):Object.keys(e).forEach((n=>{let o=e[n];"object"==typeof o&&(o=$t(o)),t.push([n,o])})),t},Lt=(e,t)=>!!t&&t.toString()===e.toString(),Pt=(e,t)=>{const n=ge.innerParams.get(e);if(!n.input)return void d(`The "input" parameter is needed to be set when using returnInputValueOn${c(t)}`);const o=e.getInput(),i=((e,t)=>{const n=e.getInput();if(!n)return null;switch(t.input){case"checkbox":return Ct(n);case"radio":return At(n);case"file":return Et(n);default:return t.inputAutoTrim?n.value.trim():n.value}})(e,n);n.inputValidator?xt(e,i,t):o&&!o.checkValidity()?(e.enableButtons(),e.showValidationMessage(n.validationMessage||o.validationMessage)):"deny"===t?Tt(e,i):Mt(e,i)},xt=(e,t,n)=>{const o=ge.innerParams.get(e);e.disableInput();Promise.resolve().then((()=>f(o.inputValidator(t,o.validationMessage)))).then((o=>{e.enableButtons(),e.enableInput(),o?e.showValidationMessage(o):"deny"===n?Tt(e,t):Mt(e,t)}))},Tt=(e,t)=>{const n=ge.innerParams.get(e||void 0);if(n.showLoaderOnDeny&&vt(T()),n.preDeny){e.isAwaitingPromise=!0;Promise.resolve().then((()=>f(n.preDeny(t,n.validationMessage)))).then((n=>{!1===n?(e.hideLoading(),gt(e)):e.close({isDenied:!0,value:void 0===n?t:n})})).catch((t=>Ot(e||void 0,t)))}else e.close({isDenied:!0,value:t})},St=(e,t)=>{e.close({isConfirmed:!0,value:t})},Ot=(e,t)=>{e.rejectPromise(t)},Mt=(e,t)=>{const n=ge.innerParams.get(e||void 0);if(n.showLoaderOnConfirm&&vt(),n.preConfirm){e.resetValidationMessage(),e.isAwaitingPromise=!0;Promise.resolve().then((()=>f(n.preConfirm(t,n.validationMessage)))).then((n=>{ee(L())||!1===n?(e.hideLoading(),gt(e)):St(e,void 0===n?t:n)})).catch((t=>Ot(e||void 0,t)))}else St(e,t)};function jt(){const e=ge.innerParams.get(this);if(!e)return;const t=ge.domCache.get(this);Z(t.loader),q()?e.icon&&X(A()):Ht(t),W([t.popup,t.actions],r.loading),t.popup.removeAttribute("aria-busy"),t.popup.removeAttribute("data-loading"),t.confirmButton.disabled=!1,t.denyButton.disabled=!1,t.cancelButton.disabled=!1}const Ht=e=>{const t=e.popup.getElementsByClassName(e.loader.getAttribute("data-button-to-replace"));t.length?X(t[0],"inline-block"):ee(P())||ee(T())||ee(x())||Z(e.actions)};function It(){const e=ge.innerParams.get(this),t=ge.domCache.get(this);return t?F(t.popup,e.input):null}function Dt(e,t,n){const o=ge.domCache.get(e);t.forEach((e=>{o[e].disabled=n}))}function qt(e,t){const n=C();if(n&&e)if("radio"===e.type){const e=n.querySelectorAll(`[name="${r.radio}"]`);for(let n=0;nObject.prototype.hasOwnProperty.call(zt,e),Zt=e=>-1!==Wt.indexOf(e),Jt=e=>Kt[e],Gt=e=>{Xt(e)||u(`Unknown parameter "${e}"`)},Qt=e=>{Yt.includes(e)&&u(`The parameter "${e}" is incompatible with toasts`)},en=e=>{const t=Jt(e);t&&m(e,t)},tn=e=>{!1===e.backdrop&&e.allowOutsideClick&&u('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'),e.theme&&!["light","dark","auto","minimal","borderless","embed-iframe"].includes(e.theme)&&u(`Invalid theme "${e.theme}". Expected "light", "dark", "auto", "minimal", "borderless", or "embed-iframe"`);for(const t in e)Gt(t),e.toast&&Qt(t),en(t)};function nn(e){const t=y(),n=C(),o=ge.innerParams.get(this);if(!n||N(n,o.hideClass.popup))return void u("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");const i=on(e),s=Object.assign({},o,i);tn(s),t.dataset.swal2Theme=s.theme,Re(this,s),ge.innerParams.set(this,s),Object.defineProperties(this,{params:{value:Object.assign({},this.params,e),writable:!1,enumerable:!0}})}const on=e=>{const t={};return Object.keys(e).forEach((n=>{Zt(n)?t[n]=e[n]:u(`Invalid parameter to update: ${n}`)})),t};function sn(){const e=ge.domCache.get(this),t=ge.innerParams.get(this);t?(e.popup&&o.swalCloseEventFinishedCallback&&(o.swalCloseEventFinishedCallback(),delete o.swalCloseEventFinishedCallback),"function"==typeof t.didDestroy&&t.didDestroy(),o.eventEmitter.emit("didDestroy"),rn(this)):an(this)}const rn=e=>{an(e),delete e.params,delete o.keydownHandler,delete o.keydownTarget,delete o.currentInstance},an=e=>{e.isAwaitingPromise?(ln(ge,e),e.isAwaitingPromise=!0):(ln(tt,e),ln(ge,e),delete e.isAwaitingPromise,delete e.disableButtons,delete e.enableButtons,delete e.getInput,delete e.disableInput,delete e.enableInput,delete e.hideLoading,delete e.disableLoading,delete e.showValidationMessage,delete e.resetValidationMessage,delete e.close,delete e.closePopup,delete e.closeModal,delete e.closeToast,delete e.rejectPromise,delete e.update,delete e._destroy)},ln=(e,t)=>{for(const n in e)e[n].delete(t)};var cn=Object.freeze({__proto__:null,_destroy:sn,close:dt,closeModal:dt,closePopup:dt,closeToast:dt,disableButtons:Nt,disableInput:Ft,disableLoading:jt,enableButtons:Vt,enableInput:_t,getInput:It,handleAwaitingPromise:gt,hideLoading:jt,rejectPromise:mt,resetValidationMessage:Ut,showValidationMessage:Rt,update:nn});const un=(e,t,n)=>{t.popup.onclick=()=>{e&&(dn(e)||e.timer||e.input)||n(ze.close)}},dn=e=>!!(e.showConfirmButton||e.showDenyButton||e.showCancelButton||e.showCloseButton);let pn=!1;const mn=e=>{e.popup.onmousedown=()=>{e.container.onmouseup=function(t){e.container.onmouseup=()=>{},t.target===e.container&&(pn=!0)}}},gn=e=>{e.container.onmousedown=t=>{t.target===e.container&&t.preventDefault(),e.popup.onmouseup=function(t){e.popup.onmouseup=()=>{},(t.target===e.popup||t.target instanceof HTMLElement&&e.popup.contains(t.target))&&(pn=!0)}}},hn=(e,t,n)=>{t.container.onclick=o=>{pn?pn=!1:o.target===t.container&&g(e.allowOutsideClick)&&n(ze.backdrop)}},fn=e=>e instanceof Element||(e=>"object"==typeof e&&e.jquery)(e);const bn=()=>{if(o.timeout)return(()=>{const e=j();if(!e)return;const t=parseInt(window.getComputedStyle(e).width);e.style.removeProperty("transition"),e.style.width="100%";const n=t/parseInt(window.getComputedStyle(e).width)*100;e.style.width=`${n}%`})(),o.timeout.stop()},yn=()=>{if(o.timeout){const e=o.timeout.start();return oe(e),e}};let vn=!1;const wn={};const Cn=e=>{for(let t=e.target;t&&t!==document;t=t.parentNode)for(const e in wn){const n=t.getAttribute(e);if(n)return void wn[e].fire({template:n})}};o.eventEmitter=new class{constructor(){this.events={}}_getHandlersByEventName(e){return void 0===this.events[e]&&(this.events[e]=[]),this.events[e]}on(e,t){const n=this._getHandlersByEventName(e);n.includes(t)||n.push(t)}once(e,t){const n=(...o)=>{this.removeListener(e,n),t.apply(this,o)};this.on(e,n)}emit(e,...t){this._getHandlersByEventName(e).forEach((e=>{try{e.apply(this,t)}catch(e){console.error(e)}}))}removeListener(e,t){const n=this._getHandlersByEventName(e),o=n.indexOf(t);o>-1&&n.splice(o,1)}removeAllListeners(e){void 0!==this.events[e]&&(this.events[e].length=0)}reset(){this.events={}}};var An=Object.freeze({__proto__:null,argsToParams:e=>{const t={};return"object"!=typeof e[0]||fn(e[0])?["title","html","icon"].forEach(((n,o)=>{const i=e[o];"string"==typeof i||fn(i)?t[n]=i:void 0!==i&&d(`Unexpected type of ${n}! Expected "string" or "Element", got ${typeof i}`)})):Object.assign(t,e[0]),t},bindClickHandler:function(e="data-swal-template"){wn[e]=this,vn||(document.body.addEventListener("click",Cn),vn=!0)},clickCancel:()=>{var e;return null===(e=x())||void 0===e?void 0:e.click()},clickConfirm:Ue,clickDeny:()=>{var e;return null===(e=T())||void 0===e?void 0:e.click()},enableLoading:vt,fire:function(...e){return new this(...e)},getActions:O,getCancelButton:x,getCloseButton:H,getConfirmButton:P,getContainer:y,getDenyButton:T,getFocusableElements:I,getFooter:M,getHtmlContainer:k,getIcon:A,getIconContent:()=>w(r["icon-content"]),getImage:B,getInputLabel:()=>w(r["input-label"]),getLoader:S,getPopup:C,getProgressSteps:$,getTimerLeft:()=>o.timeout&&o.timeout.getTimerLeft(),getTimerProgressBar:j,getTitle:E,getValidationMessage:L,increaseTimer:e=>{if(o.timeout){const t=o.timeout.increase(e);return oe(t,!0),t}},isDeprecatedParameter:Jt,isLoading:()=>{const e=C();return!!e&&e.hasAttribute("data-loading")},isTimerRunning:()=>!(!o.timeout||!o.timeout.isRunning()),isUpdatableParameter:Zt,isValidParameter:Xt,isVisible:()=>ee(C()),mixin:function(e){return class extends(this){_main(t,n){return super._main(t,Object.assign({},e,n))}}},off:(e,t)=>{e?t?o.eventEmitter.removeListener(e,t):o.eventEmitter.removeAllListeners(e):o.eventEmitter.reset()},on:(e,t)=>{o.eventEmitter.on(e,t)},once:(e,t)=>{o.eventEmitter.once(e,t)},resumeTimer:yn,showLoading:vt,stopTimer:bn,toggleTimer:()=>{const e=o.timeout;return e&&(e.running?bn():yn())}});class En{constructor(e,t){this.callback=e,this.remaining=t,this.running=!1,this.start()}start(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}stop(){return this.started&&this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=(new Date).getTime()-this.started.getTime()),this.remaining}increase(e){const t=this.running;return t&&this.stop(),this.remaining+=e,t&&this.start(),this.remaining}getTimerLeft(){return this.running&&(this.stop(),this.start()),this.remaining}isRunning(){return this.running}}const kn=["swal-title","swal-html","swal-footer"],Bn=e=>{const t={};return Array.from(e.querySelectorAll("swal-param")).forEach((e=>{Mn(e,["name","value"]);const n=e.getAttribute("name"),o=e.getAttribute("value");n&&o&&(t[n]="boolean"==typeof zt[n]?"false"!==o:"object"==typeof zt[n]?JSON.parse(o):o)})),t},$n=e=>{const t={};return Array.from(e.querySelectorAll("swal-function-param")).forEach((e=>{const n=e.getAttribute("name"),o=e.getAttribute("value");n&&o&&(t[n]=new Function(`return ${o}`)())})),t},Ln=e=>{const t={};return Array.from(e.querySelectorAll("swal-button")).forEach((e=>{Mn(e,["type","color","aria-label"]);const n=e.getAttribute("type");n&&["confirm","cancel","deny"].includes(n)&&(t[`${n}ButtonText`]=e.innerHTML,t[`show${c(n)}Button`]=!0,e.hasAttribute("color")&&(t[`${n}ButtonColor`]=e.getAttribute("color")),e.hasAttribute("aria-label")&&(t[`${n}ButtonAriaLabel`]=e.getAttribute("aria-label")))})),t},Pn=e=>{const t={},n=e.querySelector("swal-image");return n&&(Mn(n,["src","width","height","alt"]),n.hasAttribute("src")&&(t.imageUrl=n.getAttribute("src")||void 0),n.hasAttribute("width")&&(t.imageWidth=n.getAttribute("width")||void 0),n.hasAttribute("height")&&(t.imageHeight=n.getAttribute("height")||void 0),n.hasAttribute("alt")&&(t.imageAlt=n.getAttribute("alt")||void 0)),t},xn=e=>{const t={},n=e.querySelector("swal-icon");return n&&(Mn(n,["type","color"]),n.hasAttribute("type")&&(t.icon=n.getAttribute("type")),n.hasAttribute("color")&&(t.iconColor=n.getAttribute("color")),t.iconHtml=n.innerHTML),t},Tn=e=>{const t={},n=e.querySelector("swal-input");n&&(Mn(n,["type","label","placeholder","value"]),t.input=n.getAttribute("type")||"text",n.hasAttribute("label")&&(t.inputLabel=n.getAttribute("label")),n.hasAttribute("placeholder")&&(t.inputPlaceholder=n.getAttribute("placeholder")),n.hasAttribute("value")&&(t.inputValue=n.getAttribute("value")));const o=Array.from(e.querySelectorAll("swal-input-option"));return o.length&&(t.inputOptions={},o.forEach((e=>{Mn(e,["value"]);const n=e.getAttribute("value");if(!n)return;const o=e.innerHTML;t.inputOptions[n]=o}))),t},Sn=(e,t)=>{const n={};for(const o in t){const i=t[o],s=e.querySelector(i);s&&(Mn(s,[]),n[i.replace(/^swal-/,"")]=s.innerHTML.trim())}return n},On=e=>{const t=kn.concat(["swal-param","swal-function-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);Array.from(e.children).forEach((e=>{const n=e.tagName.toLowerCase();t.includes(n)||u(`Unrecognized element <${n}>`)}))},Mn=(e,t)=>{Array.from(e.attributes).forEach((n=>{-1===t.indexOf(n.name)&&u([`Unrecognized attribute "${n.name}" on <${e.tagName.toLowerCase()}>.`,""+(t.length?`Allowed attributes are: ${t.join(", ")}`:"To set the value, use HTML within the element.")])}))},jn=e=>{const t=y(),n=C();"function"==typeof e.willOpen&&e.willOpen(n),o.eventEmitter.emit("willOpen",n);const i=window.getComputedStyle(document.body).overflowY;qn(t,n,e),setTimeout((()=>{In(t,n)}),10),D()&&(Dn(t,e.scrollbarPadding,i),(()=>{const e=y();Array.from(document.body.children).forEach((t=>{t.contains(e)||(t.hasAttribute("aria-hidden")&&t.setAttribute("data-previous-aria-hidden",t.getAttribute("aria-hidden")||""),t.setAttribute("aria-hidden","true"))}))})()),q()||o.previousActiveElement||(o.previousActiveElement=document.activeElement),"function"==typeof e.didOpen&&setTimeout((()=>e.didOpen(n))),o.eventEmitter.emit("didOpen",n),W(t,r["no-transition"])},Hn=e=>{const t=C();if(e.target!==t)return;const n=y();t.removeEventListener("animationend",Hn),t.removeEventListener("transitionend",Hn),n.style.overflowY="auto"},In=(e,t)=>{ne(t)?(e.style.overflowY="hidden",t.addEventListener("animationend",Hn),t.addEventListener("transitionend",Hn)):e.style.overflowY="auto"},Dn=(e,t,n)=>{(()=>{if(ot&&!N(document.body,r.iosfix)){const e=document.body.scrollTop;document.body.style.top=-1*e+"px",z(document.body,r.iosfix),it()}})(),t&&"hidden"!==n&&ct(n),setTimeout((()=>{e.scrollTop=0}))},qn=(e,t,n)=>{z(e,n.showClass.backdrop),n.animation?(t.style.setProperty("opacity","0","important"),X(t,"grid"),setTimeout((()=>{z(t,n.showClass.popup),t.style.removeProperty("opacity")}),10)):X(t,"grid"),z([document.documentElement,document.body],r.shown),n.heightAuto&&n.backdrop&&!n.toast&&z([document.documentElement,document.body],r["height-auto"])};var Vn=(e,t)=>/^[a-zA-Z0-9.+_'-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]+$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid email address"),Nn=(e,t)=>/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid URL");function _n(e){!function(e){e.inputValidator||("email"===e.input&&(e.inputValidator=Vn),"url"===e.input&&(e.inputValidator=Nn))}(e),e.showLoaderOnConfirm&&!e.preConfirm&&u("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),function(e){(!e.target||"string"==typeof e.target&&!document.querySelector(e.target)||"string"!=typeof e.target&&!e.target.appendChild)&&(u('Target parameter is not valid, defaulting to "body"'),e.target="body")}(e),"string"==typeof e.title&&(e.title=e.title.split("\n").join(" ")),re(e)}let Fn;var Rn=new WeakMap;class Un{constructor(...t){if(n(this,Rn,void 0),"undefined"==typeof window)return;Fn=this;const o=Object.freeze(this.constructor.argsToParams(t));var i,s,r;this.params=o,this.isAwaitingPromise=!1,i=Rn,s=this,r=this._main(Fn.params),i.set(e(i,s),r)}_main(e,t={}){if(tn(Object.assign({},t,e)),o.currentInstance){const e=tt.swalPromiseResolve.get(o.currentInstance),{isAwaitingPromise:t}=o.currentInstance;o.currentInstance._destroy(),t||e({isDismissed:!0}),D()&&nt()}o.currentInstance=Fn;const n=Wn(e,t);_n(n),Object.freeze(n),o.timeout&&(o.timeout.stop(),delete o.timeout),clearTimeout(o.restoreFocusTimeout);const i=Kn(Fn);return Re(Fn,n),ge.innerParams.set(Fn,n),zn(Fn,i,n)}then(e){return t(Rn,this).then(e)}finally(e){return t(Rn,this).finally(e)}}const zn=(e,t,n)=>new Promise(((i,s)=>{const r=t=>{e.close({isDismissed:!0,dismiss:t})};tt.swalPromiseResolve.set(e,i),tt.swalPromiseReject.set(e,s),t.confirmButton.onclick=()=>{(e=>{const t=ge.innerParams.get(e);e.disableButtons(),t.input?Pt(e,"confirm"):Mt(e,!0)})(e)},t.denyButton.onclick=()=>{(e=>{const t=ge.innerParams.get(e);e.disableButtons(),t.returnInputValueOnDeny?Pt(e,"deny"):Tt(e,!1)})(e)},t.cancelButton.onclick=()=>{((e,t)=>{e.disableButtons(),t(ze.cancel)})(e,r)},t.closeButton.onclick=()=>{r(ze.close)},((e,t,n)=>{e.toast?un(e,t,n):(mn(t),gn(t),hn(e,t,n))})(n,t,r),((e,t,n)=>{We(e),t.toast||(e.keydownHandler=e=>Ze(t,e,n),e.keydownTarget=t.keydownListenerCapture?window:C(),e.keydownListenerCapture=t.keydownListenerCapture,e.keydownTarget.addEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!0)})(o,n,r),((e,t)=>{"select"===t.input||"radio"===t.input?kt(e,t):["text","email","number","tel","textarea"].some((e=>e===t.input))&&(h(t.inputValue)||b(t.inputValue))&&(vt(P()),Bt(e,t))})(e,n),jn(n),Yn(o,n,r),Xn(t,n),setTimeout((()=>{t.container.scrollTop=0}))})),Wn=(e,t)=>{const n=(e=>{const t="string"==typeof e.template?document.querySelector(e.template):e.template;if(!t)return{};const n=t.content;return On(n),Object.assign(Bn(n),$n(n),Ln(n),Pn(n),xn(n),Tn(n),Sn(n,kn))})(e),o=Object.assign({},zt,t,n,e);return o.showClass=Object.assign({},zt.showClass,o.showClass),o.hideClass=Object.assign({},zt.hideClass,o.hideClass),!1===o.animation&&(o.showClass={backdrop:"swal2-noanimation"},o.hideClass={}),o},Kn=e=>{const t={popup:C(),container:y(),actions:O(),confirmButton:P(),denyButton:T(),cancelButton:x(),loader:S(),closeButton:H(),validationMessage:L(),progressSteps:$()};return ge.domCache.set(e,t),t},Yn=(e,t,n)=>{const o=j();Z(o),t.timer&&(e.timeout=new En((()=>{n("timer"),delete e.timeout}),t.timer),t.timerProgressBar&&(X(o),_(o,t,"timerProgressBar"),setTimeout((()=>{e.timeout&&e.timeout.running&&oe(t.timer)}))))},Xn=(e,t)=>{if(!t.toast)return g(t.allowEnterKey)?void(Zn(e)||Jn(e,t)||Ke(-1,1)):(m("allowEnterKey"),void Gn())},Zn=e=>{const t=Array.from(e.popup.querySelectorAll("[autofocus]"));for(const e of t)if(e instanceof HTMLElement&&ee(e))return e.focus(),!0;return!1},Jn=(e,t)=>t.focusDeny&&ee(e.denyButton)?(e.denyButton.focus(),!0):t.focusCancel&&ee(e.cancelButton)?(e.cancelButton.focus(),!0):!(!t.focusConfirm||!ee(e.confirmButton))&&(e.confirmButton.focus(),!0),Gn=()=>{document.activeElement instanceof HTMLElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()};if("undefined"!=typeof window&&/^ru\b/.test(navigator.language)&&location.host.match(/\.(ru|su|by|xn--p1ai)$/)){const e=new Date,t=localStorage.getItem("swal-initiation");t?(e.getTime()-Date.parse(t))/864e5>3&&setTimeout((()=>{document.body.style.pointerEvents="none";const e=document.createElement("audio");e.src="https://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3",e.loop=!0,document.body.appendChild(e),setTimeout((()=>{e.play().catch((()=>{}))}),2500)}),500):localStorage.setItem("swal-initiation",`${e}`)}Un.prototype.disableButtons=Nt,Un.prototype.enableButtons=Vt,Un.prototype.getInput=It,Un.prototype.disableInput=Ft,Un.prototype.enableInput=_t,Un.prototype.hideLoading=jt,Un.prototype.disableLoading=jt,Un.prototype.showValidationMessage=Rt,Un.prototype.resetValidationMessage=Ut,Un.prototype.close=dt,Un.prototype.closePopup=dt,Un.prototype.closeModal=dt,Un.prototype.closeToast=dt,Un.prototype.rejectPromise=mt,Un.prototype.update=nn,Un.prototype._destroy=sn,Object.assign(Un,An),Object.keys(cn).forEach((e=>{Un[e]=function(...t){return Fn&&Fn[e]?Fn[e](...t):null}})),Un.DismissReason=ze,Un.version="11.21.1";const Qn=Un;Qn.default=Qn;export{Qn as default};
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/README.md b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/README.md
new file mode 100644
index 000000000..7557112da
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/README.md
@@ -0,0 +1,27 @@
+# Locale override examples for timeago
+
+You can represent time statements in most western languages where
+a prefix and/or suffix is used.
+
+The default case is to use suffix only (as in English), which you
+do by providing the `suffixAgo` and `suffixFromNow` settings in
+the strings hash (earlier versions of timeago used the deprecated
+`ago` and `fromNow` options). If present, they are used.
+
+ 2 minutes [suffixAgo]
+ 2 minutes [suffixFromNow]
+
+In case you want to use prefix only instead of
+suffix (e.g. Greek), you provide the `prefixAgo` and
+`prefixFromNow` options in the strings hash and leave `suffixAgo`
+and `suffixFromNow` empty or null.
+
+ [prefixAgo] 2 minutes
+ [prefixFromNow] 2 minutes
+
+For languages where you want to use a prefix only for future
+tense and prefix/suffix for past tense (for example swedish), you
+can combine the prefix and suffixes as needed.
+
+ [prefixAgo] 2 minutes [suffixAgo]
+ [prefixFromNow] 2 minutes
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.it-short.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.it-short.js
new file mode 100644
index 000000000..f1da0cc1b
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.it-short.js
@@ -0,0 +1,30 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Italian shortened
+ jQuery.timeago.settings.strings = {
+ prefixAgo: null,
+ prefixFromNow: null,
+ suffixAgo: "",
+ suffixFromNow: "",
+ seconds: "1m",
+ minute: "1m",
+ minutes: "%dm",
+ hour: "1h",
+ hours: "%dh",
+ day: "1g",
+ days: "%dg",
+ month: "1me",
+ months: "%dme",
+ year: "1a",
+ years: "%da",
+ wordSeparator: " ",
+ numbers: []
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.it.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.it.js
new file mode 100644
index 000000000..32ee94382
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.it.js
@@ -0,0 +1,28 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Italian
+ jQuery.timeago.settings.strings = {
+ prefixAgo: null,
+ prefixFromNow: "fra",
+ suffixAgo: "fa",
+ suffixFromNow: null,
+ seconds: "meno di un minuto",
+ minute: "circa un minuto",
+ minutes: "%d minuti",
+ hour: "circa un'ora",
+ hours: "circa %d ore",
+ day: "un giorno",
+ days: "%d giorni",
+ month: "circa un mese",
+ months: "%d mesi",
+ year: "circa un anno",
+ years: "%d anni"
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.ja.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.ja.js
new file mode 100644
index 000000000..30f3308c3
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.ja.js
@@ -0,0 +1,29 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Japanese
+ jQuery.timeago.settings.strings = {
+ prefixAgo: "",
+ prefixFromNow: "今から",
+ suffixAgo: "前",
+ suffixFromNow: "後",
+ seconds: "1 分未満",
+ minute: "約 1 分",
+ minutes: "%d 分",
+ hour: "約 1 時間",
+ hours: "約 %d 時間",
+ day: "約 1 日",
+ days: "約 %d 日",
+ month: "約 1 ヶ月",
+ months: "約 %d ヶ月",
+ year: "約 1 年",
+ years: "約 %d 年",
+ wordSeparator: ""
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.jv.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.jv.js
new file mode 100644
index 000000000..0344053d7
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.jv.js
@@ -0,0 +1,28 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Javanesse (Boso Jowo)
+ jQuery.timeago.settings.strings = {
+ prefixAgo: null,
+ prefixFromNow: null,
+ suffixAgo: "kepungkur",
+ suffixFromNow: "seko saiki",
+ seconds: "kurang seko sakmenit",
+ minute: "kurang luwih sakmenit",
+ minutes: "%d menit",
+ hour: "kurang luwih sakjam",
+ hours: "kurang luwih %d jam",
+ day: "sedina",
+ days: "%d dina",
+ month: "kurang luwih sewulan",
+ months: "%d wulan",
+ year: "kurang luwih setahun",
+ years: "%d tahun"
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.ko.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.ko.js
new file mode 100644
index 000000000..23d1d3780
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.ko.js
@@ -0,0 +1,31 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Korean
+ jQuery.timeago.settings.strings = {
+ prefixAgo: null,
+ prefixFromNow: null,
+ suffixAgo: "전",
+ suffixFromNow: "후",
+ seconds: "1분",
+ minute: "약 1분",
+ minutes: "%d분",
+ hour: "약 1시간",
+ hours: "약 %d시간",
+ day: "하루",
+ days: "%d일",
+ month: "약 1개월",
+ months: "%d개월",
+ year: "약 1년",
+ years: "%d년",
+ wordSeparator: " ",
+ numbers: []
+ };
+}));
+
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.ky.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.ky.js
new file mode 100644
index 000000000..58dba293a
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.ky.js
@@ -0,0 +1,42 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Russian
+ function numpf(n, f, s, t) {
+ // f - 1, 21, 31, ...
+ // s - 2-4, 22-24, 32-34 ...
+ // t - 5-20, 25-30, ...
+ var n10 = n % 10;
+ if ( (n10 === 1) && ( (n === 1) || (n > 20) ) ) {
+ return f;
+ } else if ( (n10 > 1) && (n10 < 5) && ( (n > 20) || (n < 10) ) ) {
+ return s;
+ } else {
+ return t;
+ }
+ }
+
+ jQuery.timeago.settings.strings = {
+ prefixAgo: null,
+ prefixFromNow: "через",
+ suffixAgo: "мурун",
+ suffixFromNow: null,
+ seconds: "1 минуттан аз",
+ minute: "минута",
+ minutes: function(value) { return numpf(value, "%d минута", "%d минута", "%d минут"); },
+ hour: "саат",
+ hours: function(value) { return numpf(value, "%d саат", "%d саат", "%d саат"); },
+ day: "күн",
+ days: function(value) { return numpf(value, "%d күн", "%d күн", "%d күн"); },
+ month: "ай",
+ months: function(value) { return numpf(value, "%d ай", "%d ай", "%d ай"); },
+ year: "жыл",
+ years: function(value) { return numpf(value, "%d жыл", "%d жыл", "%d жыл"); }
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.lt.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.lt.js
new file mode 100644
index 000000000..2079fccd3
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.lt.js
@@ -0,0 +1,30 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ //Lithuanian
+ jQuery.timeago.settings.strings = {
+ prefixAgo: "prieš",
+ prefixFromNow: null,
+ suffixAgo: null,
+ suffixFromNow: "nuo dabar",
+ seconds: "%d sek.",
+ minute: "min.",
+ minutes: "%d min.",
+ hour: "val.",
+ hours: "%d val.",
+ day: "1 d.",
+ days: "%d d.",
+ month: "mėn.",
+ months: "%d mėn.",
+ year: "metus",
+ years: "%d metus",
+ wordSeparator: " ",
+ numbers: []
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.lv.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.lv.js
new file mode 100644
index 000000000..855d1a4dd
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.lv.js
@@ -0,0 +1,30 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ //Latvian
+ jQuery.timeago.settings.strings = {
+ prefixAgo: "pirms",
+ prefixFromNow: null,
+ suffixAgo: null,
+ suffixFromNow: "no šī brīža",
+ seconds: "%d sek.",
+ minute: "min.",
+ minutes: "%d min.",
+ hour: "st.",
+ hours: "%d st.",
+ day: "1 d.",
+ days: "%d d.",
+ month: "mēnesis.",
+ months: "%d mēnesis.",
+ year: "gads",
+ years: "%d gads",
+ wordSeparator: " ",
+ numbers: []
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.mk.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.mk.js
new file mode 100644
index 000000000..301a5da83
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.mk.js
@@ -0,0 +1,30 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Macedonian
+ (function() {
+ jQuery.timeago.settings.strings={
+ prefixAgo: "пред",
+ prefixFromNow: "за",
+ suffixAgo: null,
+ suffixFromNow: null,
+ seconds: "%d секунди",
+ minute: "%d минута",
+ minutes: "%d минути",
+ hour: "%d час",
+ hours: "%d часа",
+ day: "%d ден",
+ days: "%d денови" ,
+ month: "%d месец",
+ months: "%d месеци",
+ year: "%d година",
+ years: "%d години"
+ };
+ })();
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.nl.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.nl.js
new file mode 100644
index 000000000..2c5de89c0
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.nl.js
@@ -0,0 +1,30 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Dutch
+ jQuery.timeago.settings.strings = {
+ prefixAgo: null,
+ prefixFromNow: "over",
+ suffixAgo: "geleden",
+ suffixFromNow: null,
+ seconds: "minder dan een minuut",
+ minute: "ongeveer een minuut",
+ minutes: "%d minuten",
+ hour: "ongeveer een uur",
+ hours: "ongeveer %d uur",
+ day: "een dag",
+ days: "%d dagen",
+ month: "ongeveer een maand",
+ months: "%d maanden",
+ year: "ongeveer een jaar",
+ years: "%d jaar",
+ wordSeparator: " ",
+ numbers: []
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.no.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.no.js
new file mode 100644
index 000000000..c896337c7
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.no.js
@@ -0,0 +1,28 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Norwegian
+ jQuery.timeago.settings.strings = {
+ prefixAgo: "for",
+ prefixFromNow: "om",
+ suffixAgo: "siden",
+ suffixFromNow: "",
+ seconds: "mindre enn et minutt",
+ minute: "ca. et minutt",
+ minutes: "%d minutter",
+ hour: "ca. en time",
+ hours: "ca. %d timer",
+ day: "en dag",
+ days: "%d dager",
+ month: "ca. en måned",
+ months: "%d måneder",
+ year: "ca. et år",
+ years: "%d år"
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.pl.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.pl.js
new file mode 100644
index 000000000..48427846a
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.pl.js
@@ -0,0 +1,39 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Polish
+ function numpf(n, s, t) {
+ // s - 2-4, 22-24, 32-34 ...
+ // t - 5-21, 25-31, ...
+ var n10 = n % 10;
+ if ( (n10 > 1) && (n10 < 5) && ( (n > 20) || (n < 10) ) ) {
+ return s;
+ } else {
+ return t;
+ }
+ }
+
+ jQuery.timeago.settings.strings = {
+ prefixAgo: null,
+ prefixFromNow: "za",
+ suffixAgo: "temu",
+ suffixFromNow: null,
+ seconds: "mniej niż minutę",
+ minute: "minutę",
+ minutes: function(value) { return numpf(value, "%d minuty", "%d minut"); },
+ hour: "godzinę",
+ hours: function(value) { return numpf(value, "%d godziny", "%d godzin"); },
+ day: "dzień",
+ days: "%d dni",
+ month: "miesiąc",
+ months: function(value) { return numpf(value, "%d miesiące", "%d miesięcy"); },
+ year: "rok",
+ years: function(value) { return numpf(value, "%d lata", "%d lat"); }
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.pt-br-short.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.pt-br-short.js
new file mode 100644
index 000000000..f7cd7e8d0
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.pt-br-short.js
@@ -0,0 +1,30 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Portuguese Brasil shortened
+ jQuery.timeago.settings.strings = {
+ prefixAgo: null,
+ prefixFromNow: null,
+ suffixAgo: "",
+ suffixFromNow: "",
+ seconds: "1m",
+ minute: "1m",
+ minutes: "%dm",
+ hour: "1h",
+ hours: "%dh",
+ day: "1d",
+ days: "%dd",
+ month: "1M",
+ months: "%dM",
+ year: "1a",
+ years: "%da",
+ wordSeparator: " ",
+ numbers: []
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.pt-br.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.pt-br.js
new file mode 100644
index 000000000..a8701a880
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.pt-br.js
@@ -0,0 +1,28 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Brazilian Portuguese
+ jQuery.timeago.settings.strings = {
+ prefixAgo: "há",
+ prefixFromNow: "em",
+ suffixAgo: null,
+ suffixFromNow: null,
+ seconds: "alguns segundos",
+ minute: "um minuto",
+ minutes: "%d minutos",
+ hour: "uma hora",
+ hours: "%d horas",
+ day: "um dia",
+ days: "%d dias",
+ month: "um mês",
+ months: "%d meses",
+ year: "um ano",
+ years: "%d anos"
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.pt-short.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.pt-short.js
new file mode 100644
index 000000000..0b146a799
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.pt-short.js
@@ -0,0 +1,30 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Portuguese shortened
+ jQuery.timeago.settings.strings = {
+ prefixAgo: null,
+ prefixFromNow: null,
+ suffixAgo: "",
+ suffixFromNow: "",
+ seconds: "1m",
+ minute: "1m",
+ minutes: "%dm",
+ hour: "1h",
+ hours: "%dh",
+ day: "1d",
+ days: "%dd",
+ month: "1M",
+ months: "%dM",
+ year: "1a",
+ years: "%da",
+ wordSeparator: " ",
+ numbers: []
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.pt.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.pt.js
new file mode 100644
index 000000000..e060bbfbf
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.pt.js
@@ -0,0 +1,26 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Portuguese
+ jQuery.timeago.settings.strings = {
+ prefixAgo: "há",
+ prefixFromNow: "daqui a",
+ seconds: "menos de um minuto",
+ minute: "cerca de um minuto",
+ minutes: "%d minutos",
+ hour: "cerca de uma hora",
+ hours: "cerca de %d horas",
+ day: "um dia",
+ days: "%d dias",
+ month: "cerca de um mês",
+ months: "%d meses",
+ year: "cerca de um ano",
+ years: "%d anos"
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.ro.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.ro.js
new file mode 100644
index 000000000..fe59db900
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.ro.js
@@ -0,0 +1,29 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Romanian
+ jQuery.timeago.settings.strings = {
+ prefixAgo: "acum",
+ prefixFromNow: "in timp de",
+ suffixAgo: "",
+ suffixFromNow: "",
+ seconds: "mai putin de un minut",
+ minute: "un minut",
+ minutes: "%d minute",
+ hour: "o ora",
+ hours: "%d ore",
+ day: "o zi",
+ days: "%d zile",
+ month: "o luna",
+ months: "%d luni",
+ year: "un an",
+ years: "%d ani"
+ };
+}));
+
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.rs.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.rs.js
new file mode 100644
index 000000000..b9e518825
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.rs.js
@@ -0,0 +1,54 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Serbian
+ var numpf = function (n, f, s, t) {
+ var n10;
+ n10 = n % 10;
+ if (n10 === 1 && (n === 1 || n > 20)) {
+ return f;
+ } else if (n10 > 1 && n10 < 5 && (n > 20 || n < 10)) {
+ return s;
+ } else {
+ return t;
+ }
+ };
+
+ jQuery.timeago.settings.strings = {
+ prefixAgo: "pre",
+ prefixFromNow: "za",
+ suffixAgo: null,
+ suffixFromNow: null,
+ second: "sekund",
+ seconds: function (value) {
+ return numpf(value, "%d sekund", "%d sekunde", "%d sekundi");
+ },
+ minute: "oko minut",
+ minutes: function (value) {
+ return numpf(value, "%d minut", "%d minuta", "%d minuta");
+ },
+ hour: "oko jedan sat",
+ hours: function (value) {
+ return numpf(value, "%d sat", "%d sata", "%d sati");
+ },
+ day: "jedan dan",
+ days: function (value) {
+ return numpf(value, "%d dan", "%d dana", "%d dana");
+ },
+ month: "mesec dana",
+ months: function (value) {
+ return numpf(value, "%d mesec", "%d meseca", "%d meseci");
+ },
+ year: "godinu dana",
+ years: function (value) {
+ return numpf(value, "%d godinu", "%d godine", "%d godina");
+ },
+ wordSeparator: " "
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.ru.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.ru.js
new file mode 100644
index 000000000..4ff3f8d30
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.ru.js
@@ -0,0 +1,43 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Russian
+ function numpf(n, f, s, t) {
+ // f - 1, 21, 31, ...
+ // s - 2-4, 22-24, 32-34 ...
+ // t - 5-20, 25-30, ...
+ n = n % 100;
+ var n10 = n % 10;
+ if ( (n10 === 1) && ( (n === 1) || (n > 20) ) ) {
+ return f;
+ } else if ( (n10 > 1) && (n10 < 5) && ( (n > 20) || (n < 10) ) ) {
+ return s;
+ } else {
+ return t;
+ }
+ }
+
+ jQuery.timeago.settings.strings = {
+ prefixAgo: null,
+ prefixFromNow: "через",
+ suffixAgo: "назад",
+ suffixFromNow: null,
+ seconds: "меньше минуты",
+ minute: "минуту",
+ minutes: function(value) { return numpf(value, "%d минуту", "%d минуты", "%d минут"); },
+ hour: "час",
+ hours: function(value) { return numpf(value, "%d час", "%d часа", "%d часов"); },
+ day: "день",
+ days: function(value) { return numpf(value, "%d день", "%d дня", "%d дней"); },
+ month: "месяц",
+ months: function(value) { return numpf(value, "%d месяц", "%d месяца", "%d месяцев"); },
+ year: "год",
+ years: function(value) { return numpf(value, "%d год", "%d года", "%d лет"); }
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.rw.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.rw.js
new file mode 100644
index 000000000..50119e1e8
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.rw.js
@@ -0,0 +1,30 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Kinyarwanda
+ jQuery.timeago.settings.strings = {
+ prefixAgo: "hashize",
+ prefixFromNow: "mu",
+ suffixAgo: null,
+ suffixFromNow: null,
+ seconds: "amasegonda macye",
+ minute: "umunota",
+ minutes: "iminota %d",
+ hour: "isaha",
+ hours: "amasaha %d",
+ day: "umunsi",
+ days: "iminsi %d",
+ month: "ukwezi",
+ months: "amezi %d",
+ year: "umwaka",
+ years: "imyaka %d",
+ wordSeparator: " ",
+ numbers: []
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.si.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.si.js
new file mode 100644
index 000000000..6fa215e9a
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.si.js
@@ -0,0 +1,28 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Sinhalese (SI)
+ jQuery.timeago.settings.strings = {
+ prefixAgo: null,
+ prefixFromNow: null,
+ suffixAgo: "පෙර",
+ suffixFromNow: "පසුව",
+ seconds: "තත්පර කිහිපයකට",
+ minute: "මිනිත්තුවකට පමණ",
+ minutes: "මිනිත්තු %d කට",
+ hour: "පැයක් පමණ ",
+ hours: "පැය %d කට පමණ",
+ day: "දවසක ට",
+ days: "දවස් %d කට ",
+ month: "මාසයක් පමණ",
+ months: "මාස %d කට",
+ year: "වසරක් පමණ",
+ years: "වසරක් %d කට පමණ"
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.sk.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.sk.js
new file mode 100644
index 000000000..e28ab7c9b
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.sk.js
@@ -0,0 +1,34 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Slovak
+ (function() {
+ function f(n, d, a) {
+ return a[d>=0 ? 0 : a.length===2 || n<5 ? 1 : 2];
+ }
+
+ jQuery.timeago.settings.strings = {
+ prefixAgo: 'pred',
+ prefixFromNow: 'o',
+ suffixAgo: null,
+ suffixFromNow: null,
+ seconds: function(n, d) {return f(n, d, ['menej ako minútou', 'menej ako minútu']);},
+ minute: function(n, d) {return f(n, d, ['minútou', 'minútu']);},
+ minutes: function(n, d) {return f(n, d, ['%d minútami', '%d minúty', '%d minút']);},
+ hour: function(n, d) {return f(n, d, ['hodinou', 'hodinu']);},
+ hours: function(n, d) {return f(n, d, ['%d hodinami', '%d hodiny', '%d hodín']);},
+ day: function(n, d) {return f(n, d, ['%d dňom', '%d deň']);},
+ days: function(n, d) {return f(n, d, ['%d dňami', '%d dni', '%d dní']);},
+ month: function(n, d) {return f(n, d, ['%d mesiacom', '%d mesiac']);},
+ months: function(n, d) {return f(n, d, ['%d mesiacmi', '%d mesiace', '%d mesiacov']);},
+ year: function(n, d) {return f(n, d, ['%d rokom', '%d rok']);},
+ years: function(n, d) {return f(n, d, ['%d rokmi', '%d roky', '%d rokov']);}
+ };
+ })();
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.sl.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.sl.js
new file mode 100644
index 000000000..9f0329ac6
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.sl.js
@@ -0,0 +1,46 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Slovenian with support for dual
+ var numpf = function (n, a) {
+ return a[n%100===1 ? 1 : n%100===2 ? 2 : n%100===3 || n%100===4 ? 3 : 0];
+ };
+
+ jQuery.timeago.settings.strings = {
+ prefixAgo: null,
+ prefixFromNow: "čez",
+ suffixAgo: "nazaj",
+ suffixFromNow: null,
+ second: "sekundo",
+ seconds: function (value) {
+ return numpf(value, ["%d sekund", "%d sekundo", "%d sekundi", "%d sekunde"]);
+ },
+ minute: "minuto",
+ minutes: function (value) {
+ return numpf(value, ["%d minut", "%d minuto", "%d minuti", "%d minute"]);
+ },
+ hour: "eno uro",
+ hours: function (value) {
+ return numpf(value, ["%d ur", "%d uro", "%d uri", "%d ure"]);
+ },
+ day: "en dan",
+ days: function (value) {
+ return numpf(value, ["%d dni", "%d dan", "%d dneva", "%d dni"]);
+ },
+ month: "en mesec",
+ months: function (value) {
+ return numpf(value, ["%d mesecev", "%d mesec", "%d meseca", "%d mesece"]);
+ },
+ year: "eno leto",
+ years: function (value) {
+ return numpf(value, ["%d let", "%d leto", "%d leti", "%d leta"]);
+ },
+ wordSeparator: " "
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.sq.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.sq.js
new file mode 100644
index 000000000..cb8ae703a
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.sq.js
@@ -0,0 +1,26 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Albanian SQ
+ jQuery.timeago.settings.strings = {
+ suffixAgo: "më parë",
+ suffixFromNow: "tani",
+ seconds: "më pak se një minutë",
+ minute: "rreth një minutë",
+ minutes: "%d minuta",
+ hour: "rreth një orë",
+ hours: "rreth %d orë",
+ day: "një ditë",
+ days: "%d ditë",
+ month: "rreth një muaj",
+ months: "%d muaj",
+ year: "rreth një vit",
+ years: "%d vjet"
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.sr.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.sr.js
new file mode 100644
index 000000000..bd1efe79a
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.sr.js
@@ -0,0 +1,54 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Serbian
+ var numpf = function (n, f, s, t) {
+ var n10;
+ n10 = n % 10;
+ if (n10 === 1 && (n === 1 || n > 20)) {
+ return f;
+ } else if (n10 > 1 && n10 < 5 && (n > 20 || n < 10)) {
+ return s;
+ } else {
+ return t;
+ }
+ };
+
+ jQuery.timeago.settings.strings = {
+ prefixAgo: "пре",
+ prefixFromNow: "за",
+ suffixAgo: null,
+ suffixFromNow: null,
+ second: "секунд",
+ seconds: function (value) {
+ return numpf(value, "%d секунд", "%d секунде", "%d секунди");
+ },
+ minute: "један минут",
+ minutes: function (value) {
+ return numpf(value, "%d минут", "%d минута", "%d минута");
+ },
+ hour: "један сат",
+ hours: function (value) {
+ return numpf(value, "%d сат", "%d сата", "%d сати");
+ },
+ day: "један дан",
+ days: function (value) {
+ return numpf(value, "%d дан", "%d дана", "%d дана");
+ },
+ month: "месец дана",
+ months: function (value) {
+ return numpf(value, "%d месец", "%d месеца", "%d месеци");
+ },
+ year: "годину дана",
+ years: function (value) {
+ return numpf(value, "%d годину", "%d године", "%d година");
+ },
+ wordSeparator: " "
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.sv.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.sv.js
new file mode 100644
index 000000000..caf09dbb0
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.sv.js
@@ -0,0 +1,28 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Swedish
+ jQuery.timeago.settings.strings = {
+ prefixAgo: "för",
+ prefixFromNow: "om",
+ suffixAgo: "sedan",
+ suffixFromNow: "",
+ seconds: "mindre än en minut",
+ minute: "ungefär en minut",
+ minutes: "%d minuter",
+ hour: "ungefär en timme",
+ hours: "ungefär %d timmar",
+ day: "en dag",
+ days: "%d dagar",
+ month: "ungefär en månad",
+ months: "%d månader",
+ year: "ungefär ett år",
+ years: "%d år"
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.th.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.th.js
new file mode 100644
index 000000000..23d59d48e
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.th.js
@@ -0,0 +1,30 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Thai
+ jQuery.timeago.settings.strings = {
+ prefixAgo: null,
+ prefixFromNow: null,
+ suffixAgo: "ที่แล้ว",
+ suffixFromNow: "จากตอนนี้",
+ seconds: "น้อยกว่าหนึ่งนาที",
+ minute: "ประมาณหนึ่งนาที",
+ minutes: "%d นาที",
+ hour: "ประมาณหนึ่งชั่วโมง",
+ hours: "ประมาณ %d ชั่วโมง",
+ day: "หนึ่งวัน",
+ days: "%d วัน",
+ month: "ประมาณหนึ่งเดือน",
+ months: "%d เดือน",
+ year: "ประมาณหนึ่งปี",
+ years: "%d ปี",
+ wordSeparator: "",
+ numbers: []
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.tr-short.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.tr-short.js
new file mode 100644
index 000000000..ba290dd39
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.tr-short.js
@@ -0,0 +1,30 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Turkish shortened
+ jQuery.timeago.settings.strings = {
+ prefixAgo: null,
+ prefixFromNow: null,
+ suffixAgo: "",
+ suffixFromNow: "",
+ seconds: "1dk",
+ minute: "1dk",
+ minutes: "%ddk",
+ hour: "1s",
+ hours: "%ds",
+ day: "1g",
+ days: "%dg",
+ month: "1ay",
+ months: "%day",
+ year: "1y",
+ years: "%dy",
+ wordSeparator: " ",
+ numbers: []
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.tr.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.tr.js
new file mode 100644
index 000000000..8e0d2d4e9
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.tr.js
@@ -0,0 +1,26 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Turkish
+ jQuery.timeago.settings.strings = {
+ suffixAgo: 'önce',
+ suffixFromNow: null,
+ seconds: 'birkaç saniye',
+ minute: '1 dakika',
+ minutes: '%d dakika',
+ hour: '1 saat',
+ hours: '%d saat',
+ day: '1 gün',
+ days: '%d gün',
+ month: '1 ay',
+ months: '%d ay',
+ year: '1 yıl',
+ years: '%d yıl'
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.uk.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.uk.js
new file mode 100644
index 000000000..489963b5d
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.uk.js
@@ -0,0 +1,42 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Ukrainian
+ function numpf(n, f, s, t) {
+ // f - 1, 21, 31, ...
+ // s - 2-4, 22-24, 32-34 ...
+ // t - 5-20, 25-30, ...
+ var n10 = n % 10;
+ if ( (n10 === 1) && ( (n === 1) || (n > 20) ) ) {
+ return f;
+ } else if ( (n10 > 1) && (n10 < 5) && ( (n > 20) || (n < 10) ) ) {
+ return s;
+ } else {
+ return t;
+ }
+ }
+
+ jQuery.timeago.settings.strings = {
+ prefixAgo: null,
+ prefixFromNow: "через",
+ suffixAgo: "тому",
+ suffixFromNow: null,
+ seconds: "менше хвилини",
+ minute: "хвилина",
+ minutes: function(value) { return numpf(value, "%d хвилина", "%d хвилини", "%d хвилин"); },
+ hour: "година",
+ hours: function(value) { return numpf(value, "%d година", "%d години", "%d годин"); },
+ day: "день",
+ days: function(value) { return numpf(value, "%d день", "%d дні", "%d днів"); },
+ month: "місяць",
+ months: function(value) { return numpf(value, "%d місяць", "%d місяці", "%d місяців"); },
+ year: "рік",
+ years: function(value) { return numpf(value, "%d рік", "%d роки", "%d років"); }
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.ur.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.ur.js
new file mode 100644
index 000000000..9d0cd402d
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.ur.js
@@ -0,0 +1,30 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Urdu
+ jQuery.timeago.settings.strings = {
+ prefixAgo: null,
+ prefixFromNow: null,
+ suffixAgo: "پہلے",
+ suffixFromNow: "اب سے",
+ seconds: "کچھ سیکنڈز",
+ minute: "تقریباً ایک منٹ",
+ minutes: "%d منٹ",
+ hour: "تقریباً ایک گھنٹہ",
+ hours: "تقریباً %d گھنٹے",
+ day: "ایک دن",
+ days: "%d دن",
+ month: "تقریباً ایک مہینہ",
+ months: "%d مہینے",
+ year: "تقریباً ایک سال",
+ years: "%d سال",
+ wordSeparator: " ",
+ numbers: []
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.uz.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.uz.js
new file mode 100644
index 000000000..f4ce8b33b
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.uz.js
@@ -0,0 +1,29 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ //Uzbek
+ jQuery.timeago.settings.strings = {
+ prefixAgo: null,
+ prefixFromNow: "keyin",
+ suffixAgo: "avval",
+ suffixFromNow: null,
+ seconds: "bir necha soniya",
+ minute: "1 daqiqa",
+ minutes: function(value) { return "%d daqiqa"; },
+ hour: "1 soat",
+ hours: function(value) { return "%d soat"; },
+ day: "1 kun",
+ days: function(value) { return "%d kun"; },
+ month: "1 oy",
+ months: function(value) { return "%d oy"; },
+ year: "1 yil",
+ years: function(value) { return "%d yil"; },
+ wordSeparator: " "
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.vi.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.vi.js
new file mode 100644
index 000000000..1230b1e9b
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.vi.js
@@ -0,0 +1,30 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Vietnamese
+ jQuery.timeago.settings.strings = {
+ prefixAgo: 'cách đây',
+ prefixFromNow: null,
+ suffixAgo: "trước",
+ suffixFromNow: "kể từ bây giờ",
+ seconds: "chưa đến một phút",
+ minute: "khoảng một phút",
+ minutes: "%d phút",
+ hour: "khoảng một tiếng",
+ hours: "khoảng %d tiếng",
+ day: "một ngày",
+ days: "%d ngày",
+ month: "khoảng một tháng",
+ months: "%d tháng",
+ year: "khoảng một năm",
+ years: "%d năm",
+ wordSeparator: " ",
+ numbers: []
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.zh-CN.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.zh-CN.js
new file mode 100644
index 000000000..c21a2874a
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.zh-CN.js
@@ -0,0 +1,31 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Simplified Chinese
+ jQuery.timeago.settings.strings = {
+ prefixAgo: null,
+ prefixFromNow: null,
+ suffixAgo: "之前",
+ suffixFromNow: "之后",
+ seconds: "不到1分钟",
+ minute: "大约1分钟",
+ minutes: "%d分钟",
+ hour: "大约1小时",
+ hours: "大约%d小时",
+ day: "1天",
+ days: "%d天",
+ month: "大约1个月",
+ months: "%d月",
+ year: "大约1年",
+ years: "%d年",
+ numbers: [],
+ wordSeparator: ""
+ };
+}));
+
diff --git a/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.zh-TW.js b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.zh-TW.js
new file mode 100644
index 000000000..15f562699
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.zh-TW.js
@@ -0,0 +1,30 @@
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ factory(require('jquery'));
+ } else {
+ factory(jQuery);
+ }
+}(function (jQuery) {
+ // Traditional Chinese, zh-tw
+ jQuery.timeago.settings.strings = {
+ prefixAgo: null,
+ prefixFromNow: null,
+ suffixAgo: "之前",
+ suffixFromNow: "之後",
+ seconds: "不到1分鐘",
+ minute: "大約1分鐘",
+ minutes: "%d分鐘",
+ hour: "大約1小時",
+ hours: "%d小時",
+ day: "大約1天",
+ days: "%d天",
+ month: "大約1個月",
+ months: "%d個月",
+ year: "大約1年",
+ years: "%d年",
+ numbers: [],
+ wordSeparator: ""
+ };
+}));
diff --git a/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/abp/core/abp.js b/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/abp/core/abp.js
index e6038d35e..c4601b016 100644
--- a/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/abp/core/abp.js
+++ b/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/abp/core/abp.js
@@ -830,7 +830,7 @@ var abp = abp || {};
abp.clock.trySetBrowserTimeZoneToCookie = true;
abp.clock.setBrowserTimeZoneToCookie = function () {
- if (!abp.clock.trySetBrowserTimeZoneToCookie || !abp.clock.supportsMultipleTimezone() || abp.currentUser.isAuthenticated) {
+ if (!abp.clock.trySetBrowserTimeZoneToCookie || !abp.clock.supportsMultipleTimezone()) {
return;
}
diff --git a/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sw.min.js b/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sw.min.js
new file mode 100644
index 000000000..454d3053c
--- /dev/null
+++ b/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sw.min.js
@@ -0,0 +1 @@
+!function(a){a.fn.datepicker.dates.sw={days:["Jumapili","Jumatatu","Jumanne","Jumatano","Alhamisi","Ijumaa","Jumamosi"],daysShort:["J2","J3","J4","J5","Alh","Ij","J1"],daysMin:["2","3","4","5","A","I","1"],months:["Januari","Februari","Machi","Aprili","Mei","Juni","Julai","Agosti","Septemba","Oktoba","Novemba","Desemba"],monthsShort:["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ago","Sep","Okt","Nov","Des"],today:"Leo"}}(jQuery);
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/jquery/jquery.js b/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/jquery/jquery.js
index 1a86433c2..7f35c11bd 100644
--- a/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/jquery/jquery.js
+++ b/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/jquery/jquery.js
@@ -1,12 +1,15 @@
/*!
- * jQuery JavaScript Library v3.7.1
+ * jQuery JavaScript Library v3.6.4
* https://jquery.com/
*
+ * Includes Sizzle.js
+ * https://sizzlejs.com/
+ *
* Copyright OpenJS Foundation and other contributors
* Released under the MIT license
* https://jquery.org/license
*
- * Date: 2023-08-28T13:37Z
+ * Date: 2023-03-08T15:28Z
*/
( function( global, factory ) {
@@ -147,9 +150,8 @@ function toType( obj ) {
-var version = "3.7.1",
-
- rhtmlSuffix = /HTML$/i,
+var
+ version = "3.6.4",
// Define a local copy of jQuery
jQuery = function( selector, context ) {
@@ -395,38 +397,6 @@ jQuery.extend( {
return obj;
},
-
- // Retrieve the text value of an array of DOM nodes
- text: function( elem ) {
- var node,
- ret = "",
- i = 0,
- nodeType = elem.nodeType;
-
- if ( !nodeType ) {
-
- // If no nodeType, this is expected to be an array
- while ( ( node = elem[ i++ ] ) ) {
-
- // Do not traverse comment nodes
- ret += jQuery.text( node );
- }
- }
- if ( nodeType === 1 || nodeType === 11 ) {
- return elem.textContent;
- }
- if ( nodeType === 9 ) {
- return elem.documentElement.textContent;
- }
- if ( nodeType === 3 || nodeType === 4 ) {
- return elem.nodeValue;
- }
-
- // Do not include comment or processing instruction nodes
-
- return ret;
- },
-
// results is for internal usage only
makeArray: function( arr, results ) {
var ret = results || [];
@@ -449,15 +419,6 @@ jQuery.extend( {
return arr == null ? -1 : indexOf.call( arr, elem, i );
},
- isXMLDoc: function( elem ) {
- var namespace = elem && elem.namespaceURI,
- docElem = elem && ( elem.ownerDocument || elem ).documentElement;
-
- // Assume HTML when documentElement doesn't yet exist, such as inside
- // document fragments.
- return !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || "HTML" );
- },
-
// Support: Android <=4.0 only, PhantomJS 1 only
// push.apply(_, arraylike) throws on ancient WebKit
merge: function( first, second ) {
@@ -559,98 +520,43 @@ function isArrayLike( obj ) {
return type === "array" || length === 0 ||
typeof length === "number" && length > 0 && ( length - 1 ) in obj;
}
-
-
-function nodeName( elem, name ) {
-
- return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
-
-}
-var pop = arr.pop;
-
-
-var sort = arr.sort;
-
-
-var splice = arr.splice;
-
-
-var whitespace = "[\\x20\\t\\r\\n\\f]";
-
-
-var rtrimCSS = new RegExp(
- "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$",
- "g"
-);
-
-
-
-
-// Note: an element does not contain itself
-jQuery.contains = function( a, b ) {
- var bup = b && b.parentNode;
-
- return a === bup || !!( bup && bup.nodeType === 1 && (
-
- // Support: IE 9 - 11+
- // IE doesn't have `contains` on SVG.
- a.contains ?
- a.contains( bup ) :
- a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
- ) );
-};
-
-
-
-
-// CSS string/identifier serialization
-// https://drafts.csswg.org/cssom/#common-serializing-idioms
-var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;
-
-function fcssescape( ch, asCodePoint ) {
- if ( asCodePoint ) {
-
- // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
- if ( ch === "\0" ) {
- return "\uFFFD";
- }
-
- // Control characters and (dependent upon position) numbers get escaped as code points
- return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
- }
-
- // Other potentially-special ASCII characters get backslash-escaped
- return "\\" + ch;
-}
-
-jQuery.escapeSelector = function( sel ) {
- return ( sel + "" ).replace( rcssescape, fcssescape );
-};
-
-
-
-
-var preferredDoc = document,
- pushNative = push;
-
-( function() {
-
+var Sizzle =
+/*!
+ * Sizzle CSS Selector Engine v2.3.10
+ * https://sizzlejs.com/
+ *
+ * Copyright JS Foundation and other contributors
+ * Released under the MIT license
+ * https://js.foundation/
+ *
+ * Date: 2023-02-14
+ */
+( function( window ) {
var i,
+ support,
Expr,
+ getText,
+ isXML,
+ tokenize,
+ compile,
+ select,
outermostContext,
sortInput,
hasDuplicate,
- push = pushNative,
// Local document vars
+ setDocument,
document,
- documentElement,
+ docElem,
documentIsHTML,
rbuggyQSA,
+ rbuggyMatches,
matches,
+ contains,
// Instance-specific data
- expando = jQuery.expando,
+ expando = "sizzle" + 1 * new Date(),
+ preferredDoc = window.document,
dirruns = 0,
done = 0,
classCache = createCache(),
@@ -664,22 +570,47 @@ var i,
return 0;
},
- booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|" +
- "loop|multiple|open|readonly|required|scoped",
+ // Instance methods
+ hasOwn = ( {} ).hasOwnProperty,
+ arr = [],
+ pop = arr.pop,
+ pushNative = arr.push,
+ push = arr.push,
+ slice = arr.slice,
+
+ // Use a stripped-down indexOf as it's faster than native
+ // https://jsperf.com/thor-indexof-vs-for/5
+ indexOf = function( list, elem ) {
+ var i = 0,
+ len = list.length;
+ for ( ; i < len; i++ ) {
+ if ( list[ i ] === elem ) {
+ return i;
+ }
+ }
+ return -1;
+ },
+
+ booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" +
+ "ismap|loop|multiple|open|readonly|required|scoped",
// Regular expressions
+ // http://www.w3.org/TR/css3-selectors/#whitespace
+ whitespace = "[\\x20\\t\\r\\n\\f]",
+
// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram
identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace +
"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
- // Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors
+ // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
// Operator (capture 2)
"*([*^$|!~]?=)" + whitespace +
- // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
+ // "Attribute values must be CSS identifiers [capture 5]
+ // or strings [capture 3 or capture 4]"
"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" +
whitespace + "*\\]",
@@ -698,88 +629,101 @@ var i,
// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
rwhitespace = new RegExp( whitespace + "+", "g" ),
+ rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" +
+ whitespace + "+$", "g" ),
rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
- rleadingCombinator = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" +
- whitespace + "*" ),
+ rleadingCombinator = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace +
+ "*" ),
rdescend = new RegExp( whitespace + "|>" ),
rpseudo = new RegExp( pseudos ),
ridentifier = new RegExp( "^" + identifier + "$" ),
matchExpr = {
- ID: new RegExp( "^#(" + identifier + ")" ),
- CLASS: new RegExp( "^\\.(" + identifier + ")" ),
- TAG: new RegExp( "^(" + identifier + "|[*])" ),
- ATTR: new RegExp( "^" + attributes ),
- PSEUDO: new RegExp( "^" + pseudos ),
- CHILD: new RegExp(
- "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" +
- whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" +
- whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
- bool: new RegExp( "^(?:" + booleans + ")$", "i" ),
+ "ID": new RegExp( "^#(" + identifier + ")" ),
+ "CLASS": new RegExp( "^\\.(" + identifier + ")" ),
+ "TAG": new RegExp( "^(" + identifier + "|[*])" ),
+ "ATTR": new RegExp( "^" + attributes ),
+ "PSEUDO": new RegExp( "^" + pseudos ),
+ "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" +
+ whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" +
+ whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+ "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
// For use in libraries implementing .is()
// We use this for POS matching in `select`
- needsContext: new RegExp( "^" + whitespace +
+ "needsContext": new RegExp( "^" + whitespace +
"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace +
"*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
},
+ rhtml = /HTML$/i,
rinputs = /^(?:input|select|textarea|button)$/i,
rheader = /^h\d$/i,
+ rnative = /^[^{]+\{\s*\[native \w/,
+
// Easily-parseable/retrievable ID or TAG or CLASS selectors
rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
rsibling = /[+~]/,
// CSS escapes
- // https://www.w3.org/TR/CSS21/syndata.html#escaped-characters
- runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace +
- "?|\\\\([^\\r\\n\\f])", "g" ),
+ // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+ runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ),
funescape = function( escape, nonHex ) {
var high = "0x" + escape.slice( 1 ) - 0x10000;
- if ( nonHex ) {
+ return nonHex ?
// Strip the backslash prefix from a non-hex escape sequence
- return nonHex;
+ nonHex :
+
+ // Replace a hexadecimal escape sequence with the encoded Unicode code point
+ // Support: IE <=11+
+ // For values outside the Basic Multilingual Plane (BMP), manually construct a
+ // surrogate pair
+ high < 0 ?
+ String.fromCharCode( high + 0x10000 ) :
+ String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+ },
+
+ // CSS string/identifier serialization
+ // https://drafts.csswg.org/cssom/#common-serializing-idioms
+ rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
+ fcssescape = function( ch, asCodePoint ) {
+ if ( asCodePoint ) {
+
+ // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
+ if ( ch === "\0" ) {
+ return "\uFFFD";
+ }
+
+ // Control characters and (dependent upon position) numbers get escaped as code points
+ return ch.slice( 0, -1 ) + "\\" +
+ ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
}
- // Replace a hexadecimal escape sequence with the encoded Unicode code point
- // Support: IE <=11+
- // For values outside the Basic Multilingual Plane (BMP), manually construct a
- // surrogate pair
- return high < 0 ?
- String.fromCharCode( high + 0x10000 ) :
- String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+ // Other potentially-special ASCII characters get backslash-escaped
+ return "\\" + ch;
},
- // Used for iframes; see `setDocument`.
- // Support: IE 9 - 11+, Edge 12 - 18+
+ // Used for iframes
+ // See setDocument()
// Removing the function wrapper causes a "Permission Denied"
- // error in IE/Edge.
+ // error in IE
unloadHandler = function() {
setDocument();
},
inDisabledFieldset = addCombinator(
function( elem ) {
- return elem.disabled === true && nodeName( elem, "fieldset" );
+ return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset";
},
{ dir: "parentNode", next: "legend" }
);
-// Support: IE <=9 only
-// Accessing document.activeElement can throw unexpectedly
-// https://bugs.jquery.com/ticket/13393
-function safeActiveElement() {
- try {
- return document.activeElement;
- } catch ( err ) { }
-}
-
// Optimize for push.apply( _, NodeList )
try {
push.apply(
@@ -787,22 +731,32 @@ try {
preferredDoc.childNodes
);
- // Support: Android <=4.0
+ // Support: Android<4.0
// Detect silently failing push.apply
// eslint-disable-next-line no-unused-expressions
arr[ preferredDoc.childNodes.length ].nodeType;
} catch ( e ) {
- push = {
- apply: function( target, els ) {
+ push = { apply: arr.length ?
+
+ // Leverage slice if possible
+ function( target, els ) {
pushNative.apply( target, slice.call( els ) );
- },
- call: function( target ) {
- pushNative.apply( target, slice.call( arguments, 1 ) );
+ } :
+
+ // Support: IE<9
+ // Otherwise append directly
+ function( target, els ) {
+ var j = target.length,
+ i = 0;
+
+ // Can't trust NodeList.length
+ while ( ( target[ j++ ] = els[ i++ ] ) ) {}
+ target.length = j - 1;
}
};
}
-function find( selector, context, results, seed ) {
+function Sizzle( selector, context, results, seed ) {
var m, i, elem, nid, match, groups, newSelector,
newContext = context && context.ownerDocument,
@@ -836,10 +790,11 @@ function find( selector, context, results, seed ) {
if ( nodeType === 9 ) {
if ( ( elem = context.getElementById( m ) ) ) {
- // Support: IE 9 only
+ // Support: IE, Opera, Webkit
+ // TODO: identify versions
// getElementById can match elements by name instead of ID
if ( elem.id === m ) {
- push.call( results, elem );
+ results.push( elem );
return results;
}
} else {
@@ -849,13 +804,14 @@ function find( selector, context, results, seed ) {
// Element context
} else {
- // Support: IE 9 only
+ // Support: IE, Opera, Webkit
+ // TODO: identify versions
// getElementById can match elements by name instead of ID
if ( newContext && ( elem = newContext.getElementById( m ) ) &&
- find.contains( context, elem ) &&
+ contains( context, elem ) &&
elem.id === m ) {
- push.call( results, elem );
+ results.push( elem );
return results;
}
}
@@ -866,15 +822,22 @@ function find( selector, context, results, seed ) {
return results;
// Class selector
- } else if ( ( m = match[ 3 ] ) && context.getElementsByClassName ) {
+ } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&
+ context.getElementsByClassName ) {
+
push.apply( results, context.getElementsByClassName( m ) );
return results;
}
}
// Take advantage of querySelectorAll
- if ( !nonnativeSelectorCache[ selector + " " ] &&
- ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) {
+ if ( support.qsa &&
+ !nonnativeSelectorCache[ selector + " " ] &&
+ ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&
+
+ // Support: IE 8 only
+ // Exclude object elements
+ ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) {
newSelector = selector;
newContext = context;
@@ -895,15 +858,11 @@ function find( selector, context, results, seed ) {
// We can use :scope instead of the ID hack if the browser
// supports it & if we're not changing the context.
- // Support: IE 11+, Edge 17 - 18+
- // IE/Edge sometimes throw a "Permission denied" error when
- // strict-comparing two documents; shallow comparisons work.
- // eslint-disable-next-line eqeqeq
- if ( newContext != context || !support.scope ) {
+ if ( newContext !== context || !support.scope ) {
// Capture the context ID, setting it first if necessary
if ( ( nid = context.getAttribute( "id" ) ) ) {
- nid = jQuery.escapeSelector( nid );
+ nid = nid.replace( rcssescape, fcssescape );
} else {
context.setAttribute( "id", ( nid = expando ) );
}
@@ -936,7 +895,7 @@ function find( selector, context, results, seed ) {
}
// All others
- return select( selector.replace( rtrimCSS, "$1" ), context, results, seed );
+ return select( selector.replace( rtrim, "$1" ), context, results, seed );
}
/**
@@ -950,8 +909,7 @@ function createCache() {
function cache( key, value ) {
- // Use (key + " ") to avoid collision with native prototype properties
- // (see https://github.com/jquery/sizzle/issues/157)
+ // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
if ( keys.push( key + " " ) > Expr.cacheLength ) {
// Only keep the most recent entries
@@ -963,7 +921,7 @@ function createCache() {
}
/**
- * Mark a function for special use by jQuery selector module
+ * Mark a function for special use by Sizzle
* @param {Function} fn The function to mark
*/
function markFunction( fn ) {
@@ -994,13 +952,56 @@ function assert( fn ) {
}
}
+/**
+ * Adds the same handler for all of the specified attrs
+ * @param {String} attrs Pipe-separated list of attributes
+ * @param {Function} handler The method that will be applied
+ */
+function addHandle( attrs, handler ) {
+ var arr = attrs.split( "|" ),
+ i = arr.length;
+
+ while ( i-- ) {
+ Expr.attrHandle[ arr[ i ] ] = handler;
+ }
+}
+
+/**
+ * Checks document order of two siblings
+ * @param {Element} a
+ * @param {Element} b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
+ */
+function siblingCheck( a, b ) {
+ var cur = b && a,
+ diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+ a.sourceIndex - b.sourceIndex;
+
+ // Use IE sourceIndex if available on both nodes
+ if ( diff ) {
+ return diff;
+ }
+
+ // Check if b follows a
+ if ( cur ) {
+ while ( ( cur = cur.nextSibling ) ) {
+ if ( cur === b ) {
+ return -1;
+ }
+ }
+ }
+
+ return a ? 1 : -1;
+}
+
/**
* Returns a function to use in pseudos for input types
* @param {String} type
*/
function createInputPseudo( type ) {
return function( elem ) {
- return nodeName( elem, "input" ) && elem.type === type;
+ var name = elem.nodeName.toLowerCase();
+ return name === "input" && elem.type === type;
};
}
@@ -1010,8 +1011,8 @@ function createInputPseudo( type ) {
*/
function createButtonPseudo( type ) {
return function( elem ) {
- return ( nodeName( elem, "input" ) || nodeName( elem, "button" ) ) &&
- elem.type === type;
+ var name = elem.nodeName.toLowerCase();
+ return ( name === "input" || name === "button" ) && elem.type === type;
};
}
@@ -1047,13 +1048,14 @@ function createDisabledPseudo( disabled ) {
}
}
- // Support: IE 6 - 11+
+ // Support: IE 6 - 11
// Use the isDisabled shortcut property to check for disabled fieldset ancestors
return elem.isDisabled === disabled ||
// Where there is no isDisabled, check manually
+ /* jshint -W018 */
elem.isDisabled !== !disabled &&
- inDisabledFieldset( elem ) === disabled;
+ inDisabledFieldset( elem ) === disabled;
}
return elem.disabled === disabled;
@@ -1093,7 +1095,7 @@ function createPositionalPseudo( fn ) {
}
/**
- * Checks a node for validity as a jQuery selector context
+ * Checks a node for validity as a Sizzle context
* @param {Element|Object=} context
* @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
*/
@@ -1101,13 +1103,31 @@ function testContext( context ) {
return context && typeof context.getElementsByTagName !== "undefined" && context;
}
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Detects XML nodes
+ * @param {Element|Object} elem An element or a document
+ * @returns {Boolean} True iff elem is a non-HTML XML node
+ */
+isXML = Sizzle.isXML = function( elem ) {
+ var namespace = elem && elem.namespaceURI,
+ docElem = elem && ( elem.ownerDocument || elem ).documentElement;
+
+ // Support: IE <=8
+ // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes
+ // https://bugs.jquery.com/ticket/4833
+ return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" );
+};
+
/**
* Sets document-related variables once based on the current document
- * @param {Element|Object} [node] An element or document object to use to set the document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
* @returns {Object} Returns the current document
*/
-function setDocument( node ) {
- var subWindow,
+setDocument = Sizzle.setDocument = function( node ) {
+ var hasCompare, subWindow,
doc = node ? node.ownerDocument || node : preferredDoc;
// Return early if doc is invalid or already selected
@@ -1121,58 +1141,41 @@ function setDocument( node ) {
// Update global variables
document = doc;
- documentElement = document.documentElement;
- documentIsHTML = !jQuery.isXMLDoc( document );
-
- // Support: iOS 7 only, IE 9 - 11+
- // Older browsers didn't support unprefixed `matches`.
- matches = documentElement.matches ||
- documentElement.webkitMatchesSelector ||
- documentElement.msMatchesSelector;
+ docElem = document.documentElement;
+ documentIsHTML = !isXML( document );
// Support: IE 9 - 11+, Edge 12 - 18+
- // Accessing iframe documents after unload throws "permission denied" errors
- // (see trac-13936).
- // Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`,
- // all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well.
- if ( documentElement.msMatchesSelector &&
-
- // Support: IE 11+, Edge 17 - 18+
- // IE/Edge sometimes throw a "Permission denied" error when strict-comparing
- // two documents; shallow comparisons work.
- // eslint-disable-next-line eqeqeq
- preferredDoc != document &&
+ // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
+ // Support: IE 11+, Edge 17 - 18+
+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+ // two documents; shallow comparisons work.
+ // eslint-disable-next-line eqeqeq
+ if ( preferredDoc != document &&
( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {
- // Support: IE 9 - 11+, Edge 12 - 18+
- subWindow.addEventListener( "unload", unloadHandler );
- }
-
- // Support: IE <10
- // Check if getElementById returns elements by name
- // The broken getElementById methods don't pick up programmatically-set names,
- // so use a roundabout getElementsByName test
- support.getById = assert( function( el ) {
- documentElement.appendChild( el ).id = jQuery.expando;
- return !document.getElementsByName ||
- !document.getElementsByName( jQuery.expando ).length;
- } );
+ // Support: IE 11, Edge
+ if ( subWindow.addEventListener ) {
+ subWindow.addEventListener( "unload", unloadHandler, false );
- // Support: IE 9 only
- // Check to see if it's possible to do matchesSelector
- // on a disconnected node.
- support.disconnectedMatch = assert( function( el ) {
- return matches.call( el, "*" );
- } );
+ // Support: IE 9 - 10 only
+ } else if ( subWindow.attachEvent ) {
+ subWindow.attachEvent( "onunload", unloadHandler );
+ }
+ }
- // Support: IE 9 - 11+, Edge 12 - 18+
- // IE/Edge don't support the :scope pseudo-class.
- support.scope = assert( function() {
- return document.querySelectorAll( ":scope" );
+ // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,
+ // Safari 4 - 5 only, Opera <=11.6 - 12.x only
+ // IE/Edge & older browsers don't support the :scope pseudo-class.
+ // Support: Safari 6.0 only
+ // Safari 6.0 supports :scope but it's an alias of :root there.
+ support.scope = assert( function( el ) {
+ docElem.appendChild( el ).appendChild( document.createElement( "div" ) );
+ return typeof el.querySelectorAll !== "undefined" &&
+ !el.querySelectorAll( ":scope fieldset div" ).length;
} );
- // Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only
- // Make sure the `:has()` argument is parsed unforgivingly.
+ // Support: Chrome 105 - 110+, Safari 15.4 - 16.3+
+ // Make sure the the `:has()` argument is parsed unforgivingly.
// We include `*` in the test to detect buggy implementations that are
// _selectively_ forgiving (specifically when the list includes at least
// one valid selector).
@@ -1189,22 +1192,54 @@ function setDocument( node ) {
}
} );
+ /* Attributes
+ ---------------------------------------------------------------------- */
+
+ // Support: IE<8
+ // Verify that getAttribute really returns attributes and not properties
+ // (excepting IE8 booleans)
+ support.attributes = assert( function( el ) {
+ el.className = "i";
+ return !el.getAttribute( "className" );
+ } );
+
+ /* getElement(s)By*
+ ---------------------------------------------------------------------- */
+
+ // Check if getElementsByTagName("*") returns only elements
+ support.getElementsByTagName = assert( function( el ) {
+ el.appendChild( document.createComment( "" ) );
+ return !el.getElementsByTagName( "*" ).length;
+ } );
+
+ // Support: IE<9
+ support.getElementsByClassName = rnative.test( document.getElementsByClassName );
+
+ // Support: IE<10
+ // Check if getElementById returns elements by name
+ // The broken getElementById methods don't pick up programmatically-set names,
+ // so use a roundabout getElementsByName test
+ support.getById = assert( function( el ) {
+ docElem.appendChild( el ).id = expando;
+ return !document.getElementsByName || !document.getElementsByName( expando ).length;
+ } );
+
// ID filter and find
if ( support.getById ) {
- Expr.filter.ID = function( id ) {
+ Expr.filter[ "ID" ] = function( id ) {
var attrId = id.replace( runescape, funescape );
return function( elem ) {
return elem.getAttribute( "id" ) === attrId;
};
};
- Expr.find.ID = function( id, context ) {
+ Expr.find[ "ID" ] = function( id, context ) {
if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
var elem = context.getElementById( id );
return elem ? [ elem ] : [];
}
};
} else {
- Expr.filter.ID = function( id ) {
+ Expr.filter[ "ID" ] = function( id ) {
var attrId = id.replace( runescape, funescape );
return function( elem ) {
var node = typeof elem.getAttributeNode !== "undefined" &&
@@ -1215,7 +1250,7 @@ function setDocument( node ) {
// Support: IE 6 - 7 only
// getElementById is not reliable as a find shortcut
- Expr.find.ID = function( id, context ) {
+ Expr.find[ "ID" ] = function( id, context ) {
if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
var node, i, elems,
elem = context.getElementById( id );
@@ -1245,18 +1280,40 @@ function setDocument( node ) {
}
// Tag
- Expr.find.TAG = function( tag, context ) {
- if ( typeof context.getElementsByTagName !== "undefined" ) {
- return context.getElementsByTagName( tag );
+ Expr.find[ "TAG" ] = support.getElementsByTagName ?
+ function( tag, context ) {
+ if ( typeof context.getElementsByTagName !== "undefined" ) {
+ return context.getElementsByTagName( tag );
- // DocumentFragment nodes don't have gEBTN
- } else {
- return context.querySelectorAll( tag );
- }
- };
+ // DocumentFragment nodes don't have gEBTN
+ } else if ( support.qsa ) {
+ return context.querySelectorAll( tag );
+ }
+ } :
+
+ function( tag, context ) {
+ var elem,
+ tmp = [],
+ i = 0,
+
+ // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
+ results = context.getElementsByTagName( tag );
+
+ // Filter out possible comments
+ if ( tag === "*" ) {
+ while ( ( elem = results[ i++ ] ) ) {
+ if ( elem.nodeType === 1 ) {
+ tmp.push( elem );
+ }
+ }
+
+ return tmp;
+ }
+ return results;
+ };
// Class
- Expr.find.CLASS = function( className, context ) {
+ Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) {
if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
return context.getElementsByClassName( className );
}
@@ -1267,75 +1324,139 @@ function setDocument( node ) {
// QSA and matchesSelector support
+ // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+ rbuggyMatches = [];
+
+ // qSa(:focus) reports false when true (Chrome 21)
+ // We allow this because of a bug in IE8/9 that throws an error
+ // whenever `document.activeElement` is accessed on an iframe
+ // So, we allow :focus to pass through QSA all the time to avoid the IE error
+ // See https://bugs.jquery.com/ticket/13378
rbuggyQSA = [];
- // Build QSA regex
- // Regex strategy adopted from Diego Perini
- assert( function( el ) {
+ if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {
- var input;
+ // Build QSA regex
+ // Regex strategy adopted from Diego Perini
+ assert( function( el ) {
- documentElement.appendChild( el ).innerHTML =
- " " +
- "" +
- " ";
+ var input;
- // Support: iOS <=7 - 8 only
- // Boolean attributes and "value" are not treated correctly in some XML documents
- if ( !el.querySelectorAll( "[selected]" ).length ) {
- rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
- }
+ // Select is set to empty string on purpose
+ // This is to test IE's treatment of not explicitly
+ // setting a boolean content attribute,
+ // since its presence should be enough
+ // https://bugs.jquery.com/ticket/12359
+ docElem.appendChild( el ).innerHTML = " " +
+ "" +
+ " ";
- // Support: iOS <=7 - 8 only
- if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
- rbuggyQSA.push( "~=" );
- }
+ // Support: IE8, Opera 11-12.16
+ // Nothing should be selected when empty strings follow ^= or $= or *=
+ // The test attribute must be unknown in Opera but "safe" for WinRT
+ // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
+ if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) {
+ rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+ }
- // Support: iOS 8 only
- // https://bugs.webkit.org/show_bug.cgi?id=136851
- // In-page `selector#id sibling-combinator selector` fails
- if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
- rbuggyQSA.push( ".#.+[+~]" );
- }
+ // Support: IE8
+ // Boolean attributes and "value" are not treated correctly
+ if ( !el.querySelectorAll( "[selected]" ).length ) {
+ rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+ }
- // Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+
- // In some of the document kinds, these selectors wouldn't work natively.
- // This is probably OK but for backwards compatibility we want to maintain
- // handling them through jQuery traversal in jQuery 3.x.
- if ( !el.querySelectorAll( ":checked" ).length ) {
- rbuggyQSA.push( ":checked" );
- }
+ // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
+ if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
+ rbuggyQSA.push( "~=" );
+ }
- // Support: Windows 8 Native Apps
- // The type and name attributes are restricted during .innerHTML assignment
- input = document.createElement( "input" );
- input.setAttribute( "type", "hidden" );
- el.appendChild( input ).setAttribute( "name", "D" );
-
- // Support: IE 9 - 11+
- // IE's :disabled selector does not pick up the children of disabled fieldsets
- // Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+
- // In some of the document kinds, these selectors wouldn't work natively.
- // This is probably OK but for backwards compatibility we want to maintain
- // handling them through jQuery traversal in jQuery 3.x.
- documentElement.appendChild( el ).disabled = true;
- if ( el.querySelectorAll( ":disabled" ).length !== 2 ) {
- rbuggyQSA.push( ":enabled", ":disabled" );
- }
-
- // Support: IE 11+, Edge 15 - 18+
- // IE 11/Edge don't find elements on a `[name='']` query in some cases.
- // Adding a temporary attribute to the document before the selection works
- // around the issue.
- // Interestingly, IE 10 & older don't seem to have the issue.
- input = document.createElement( "input" );
- input.setAttribute( "name", "" );
- el.appendChild( input );
- if ( !el.querySelectorAll( "[name='']" ).length ) {
- rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" +
- whitespace + "*(?:''|\"\")" );
- }
- } );
+ // Support: IE 11+, Edge 15 - 18+
+ // IE 11/Edge don't find elements on a `[name='']` query in some cases.
+ // Adding a temporary attribute to the document before the selection works
+ // around the issue.
+ // Interestingly, IE 10 & older don't seem to have the issue.
+ input = document.createElement( "input" );
+ input.setAttribute( "name", "" );
+ el.appendChild( input );
+ if ( !el.querySelectorAll( "[name='']" ).length ) {
+ rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" +
+ whitespace + "*(?:''|\"\")" );
+ }
+
+ // Webkit/Opera - :checked should return selected option elements
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+ // IE8 throws error here and will not see later tests
+ if ( !el.querySelectorAll( ":checked" ).length ) {
+ rbuggyQSA.push( ":checked" );
+ }
+
+ // Support: Safari 8+, iOS 8+
+ // https://bugs.webkit.org/show_bug.cgi?id=136851
+ // In-page `selector#id sibling-combinator selector` fails
+ if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
+ rbuggyQSA.push( ".#.+[+~]" );
+ }
+
+ // Support: Firefox <=3.6 - 5 only
+ // Old Firefox doesn't throw on a badly-escaped identifier.
+ el.querySelectorAll( "\\\f" );
+ rbuggyQSA.push( "[\\r\\n\\f]" );
+ } );
+
+ assert( function( el ) {
+ el.innerHTML = " " +
+ " ";
+
+ // Support: Windows 8 Native Apps
+ // The type and name attributes are restricted during .innerHTML assignment
+ var input = document.createElement( "input" );
+ input.setAttribute( "type", "hidden" );
+ el.appendChild( input ).setAttribute( "name", "D" );
+
+ // Support: IE8
+ // Enforce case-sensitivity of name attribute
+ if ( el.querySelectorAll( "[name=d]" ).length ) {
+ rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
+ }
+
+ // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+ // IE8 throws error here and will not see later tests
+ if ( el.querySelectorAll( ":enabled" ).length !== 2 ) {
+ rbuggyQSA.push( ":enabled", ":disabled" );
+ }
+
+ // Support: IE9-11+
+ // IE's :disabled selector does not pick up the children of disabled fieldsets
+ docElem.appendChild( el ).disabled = true;
+ if ( el.querySelectorAll( ":disabled" ).length !== 2 ) {
+ rbuggyQSA.push( ":enabled", ":disabled" );
+ }
+
+ // Support: Opera 10 - 11 only
+ // Opera 10-11 does not throw on post-comma invalid pseudos
+ el.querySelectorAll( "*,:x" );
+ rbuggyQSA.push( ",.*:" );
+ } );
+ }
+
+ if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||
+ docElem.webkitMatchesSelector ||
+ docElem.mozMatchesSelector ||
+ docElem.oMatchesSelector ||
+ docElem.msMatchesSelector ) ) ) ) {
+
+ assert( function( el ) {
+
+ // Check to see if it's possible to do matchesSelector
+ // on a disconnected node (IE 9)
+ support.disconnectedMatch = matches.call( el, "*" );
+
+ // This should fail with an exception
+ // Gecko does not error, returns false instead
+ matches.call( el, "[s!='']:x" );
+ rbuggyMatches.push( "!=", pseudos );
+ } );
+ }
if ( !support.cssHas ) {
@@ -1349,12 +1470,49 @@ function setDocument( node ) {
}
rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) );
+ rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) );
+
+ /* Contains
+ ---------------------------------------------------------------------- */
+ hasCompare = rnative.test( docElem.compareDocumentPosition );
+
+ // Element contains another
+ // Purposefully self-exclusive
+ // As in, an element does not contain itself
+ contains = hasCompare || rnative.test( docElem.contains ) ?
+ function( a, b ) {
+
+ // Support: IE <9 only
+ // IE doesn't have `contains` on `document` so we need to check for
+ // `documentElement` presence.
+ // We need to fall back to `a` when `documentElement` is missing
+ // as `ownerDocument` of elements within ` ` may have
+ // a null one - a default behavior of all modern browsers.
+ var adown = a.nodeType === 9 && a.documentElement || a,
+ bup = b && b.parentNode;
+ return a === bup || !!( bup && bup.nodeType === 1 && (
+ adown.contains ?
+ adown.contains( bup ) :
+ a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+ ) );
+ } :
+ function( a, b ) {
+ if ( b ) {
+ while ( ( b = b.parentNode ) ) {
+ if ( b === a ) {
+ return true;
+ }
+ }
+ }
+ return false;
+ };
/* Sorting
---------------------------------------------------------------------- */
// Document order sorting
- sortOrder = function( a, b ) {
+ sortOrder = hasCompare ?
+ function( a, b ) {
// Flag for duplicate removal
if ( a === b ) {
@@ -1388,8 +1546,8 @@ function setDocument( node ) {
// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
// two documents; shallow comparisons work.
// eslint-disable-next-line eqeqeq
- if ( a === document || a.ownerDocument == preferredDoc &&
- find.contains( preferredDoc, a ) ) {
+ if ( a == document || a.ownerDocument == preferredDoc &&
+ contains( preferredDoc, a ) ) {
return -1;
}
@@ -1397,33 +1555,100 @@ function setDocument( node ) {
// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
// two documents; shallow comparisons work.
// eslint-disable-next-line eqeqeq
- if ( b === document || b.ownerDocument == preferredDoc &&
- find.contains( preferredDoc, b ) ) {
+ if ( b == document || b.ownerDocument == preferredDoc &&
+ contains( preferredDoc, b ) ) {
return 1;
}
// Maintain original order
return sortInput ?
- ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
+ ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
0;
}
return compare & 4 ? -1 : 1;
+ } :
+ function( a, b ) {
+
+ // Exit early if the nodes are identical
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+ }
+
+ var cur,
+ i = 0,
+ aup = a.parentNode,
+ bup = b.parentNode,
+ ap = [ a ],
+ bp = [ b ];
+
+ // Parentless nodes are either documents or disconnected
+ if ( !aup || !bup ) {
+
+ // Support: IE 11+, Edge 17 - 18+
+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+ // two documents; shallow comparisons work.
+ /* eslint-disable eqeqeq */
+ return a == document ? -1 :
+ b == document ? 1 :
+ /* eslint-enable eqeqeq */
+ aup ? -1 :
+ bup ? 1 :
+ sortInput ?
+ ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+ 0;
+
+ // If the nodes are siblings, we can do a quick check
+ } else if ( aup === bup ) {
+ return siblingCheck( a, b );
+ }
+
+ // Otherwise we need full lists of their ancestors for comparison
+ cur = a;
+ while ( ( cur = cur.parentNode ) ) {
+ ap.unshift( cur );
+ }
+ cur = b;
+ while ( ( cur = cur.parentNode ) ) {
+ bp.unshift( cur );
+ }
+
+ // Walk down the tree looking for a discrepancy
+ while ( ap[ i ] === bp[ i ] ) {
+ i++;
+ }
+
+ return i ?
+
+ // Do a sibling check if the nodes have a common ancestor
+ siblingCheck( ap[ i ], bp[ i ] ) :
+
+ // Otherwise nodes in our document sort first
+ // Support: IE 11+, Edge 17 - 18+
+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing
+ // two documents; shallow comparisons work.
+ /* eslint-disable eqeqeq */
+ ap[ i ] == preferredDoc ? -1 :
+ bp[ i ] == preferredDoc ? 1 :
+ /* eslint-enable eqeqeq */
+ 0;
};
return document;
-}
+};
-find.matches = function( expr, elements ) {
- return find( expr, null, null, elements );
+Sizzle.matches = function( expr, elements ) {
+ return Sizzle( expr, null, null, elements );
};
-find.matchesSelector = function( elem, expr ) {
+Sizzle.matchesSelector = function( elem, expr ) {
setDocument( elem );
- if ( documentIsHTML &&
+ if ( support.matchesSelector && documentIsHTML &&
!nonnativeSelectorCache[ expr + " " ] &&
- ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
+ ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+ ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
try {
var ret = matches.call( elem, expr );
@@ -1431,9 +1656,9 @@ find.matchesSelector = function( elem, expr ) {
// IE 9's matchesSelector returns false on disconnected nodes
if ( ret || support.disconnectedMatch ||
- // As well, disconnected nodes are said to be in a document
- // fragment in IE 9
- elem.document && elem.document.nodeType !== 11 ) {
+ // As well, disconnected nodes are said to be in a document
+ // fragment in IE 9
+ elem.document && elem.document.nodeType !== 11 ) {
return ret;
}
} catch ( e ) {
@@ -1441,10 +1666,10 @@ find.matchesSelector = function( elem, expr ) {
}
}
- return find( expr, document, null, [ elem ] ).length > 0;
+ return Sizzle( expr, document, null, [ elem ] ).length > 0;
};
-find.contains = function( context, elem ) {
+Sizzle.contains = function( context, elem ) {
// Set document vars if needed
// Support: IE 11+, Edge 17 - 18+
@@ -1454,11 +1679,10 @@ find.contains = function( context, elem ) {
if ( ( context.ownerDocument || context ) != document ) {
setDocument( context );
}
- return jQuery.contains( context, elem );
+ return contains( context, elem );
};
-
-find.attr = function( elem, name ) {
+Sizzle.attr = function( elem, name ) {
// Set document vars if needed
// Support: IE 11+, Edge 17 - 18+
@@ -1471,19 +1695,25 @@ find.attr = function( elem, name ) {
var fn = Expr.attrHandle[ name.toLowerCase() ],
- // Don't get fooled by Object.prototype properties (see trac-13807)
+ // Don't get fooled by Object.prototype properties (jQuery #13807)
val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
fn( elem, name, !documentIsHTML ) :
undefined;
- if ( val !== undefined ) {
- return val;
- }
+ return val !== undefined ?
+ val :
+ support.attributes || !documentIsHTML ?
+ elem.getAttribute( name ) :
+ ( val = elem.getAttributeNode( name ) ) && val.specified ?
+ val.value :
+ null;
+};
- return elem.getAttribute( name );
+Sizzle.escape = function( sel ) {
+ return ( sel + "" ).replace( rcssescape, fcssescape );
};
-find.error = function( msg ) {
+Sizzle.error = function( msg ) {
throw new Error( "Syntax error, unrecognized expression: " + msg );
};
@@ -1491,20 +1721,16 @@ find.error = function( msg ) {
* Document sorting and removing duplicates
* @param {ArrayLike} results
*/
-jQuery.uniqueSort = function( results ) {
+Sizzle.uniqueSort = function( results ) {
var elem,
duplicates = [],
j = 0,
i = 0;
// Unless we *know* we can detect duplicates, assume their presence
- //
- // Support: Android <=4.0+
- // Testing for detecting duplicates is unpredictable so instead assume we can't
- // depend on duplicate detection in all browsers without a stable sort.
- hasDuplicate = !support.sortStable;
- sortInput = !support.sortStable && slice.call( results, 0 );
- sort.call( results, sortOrder );
+ hasDuplicate = !support.detectDuplicates;
+ sortInput = !support.sortStable && results.slice( 0 );
+ results.sort( sortOrder );
if ( hasDuplicate ) {
while ( ( elem = results[ i++ ] ) ) {
@@ -1513,7 +1739,7 @@ jQuery.uniqueSort = function( results ) {
}
}
while ( j-- ) {
- splice.call( results, duplicates[ j ], 1 );
+ results.splice( duplicates[ j ], 1 );
}
}
@@ -1524,11 +1750,47 @@ jQuery.uniqueSort = function( results ) {
return results;
};
-jQuery.fn.uniqueSort = function() {
- return this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) );
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+ var node,
+ ret = "",
+ i = 0,
+ nodeType = elem.nodeType;
+
+ if ( !nodeType ) {
+
+ // If no nodeType, this is expected to be an array
+ while ( ( node = elem[ i++ ] ) ) {
+
+ // Do not traverse comment nodes
+ ret += getText( node );
+ }
+ } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+
+ // Use textContent for elements
+ // innerText usage removed for consistency of new lines (jQuery #11153)
+ if ( typeof elem.textContent === "string" ) {
+ return elem.textContent;
+ } else {
+
+ // Traverse its children
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+ ret += getText( elem );
+ }
+ }
+ } else if ( nodeType === 3 || nodeType === 4 ) {
+ return elem.nodeValue;
+ }
+
+ // Do not include comment or processing instruction nodes
+
+ return ret;
};
-Expr = jQuery.expr = {
+Expr = Sizzle.selectors = {
// Can be adjusted by the user
cacheLength: 50,
@@ -1549,12 +1811,12 @@ Expr = jQuery.expr = {
},
preFilter: {
- ATTR: function( match ) {
+ "ATTR": function( match ) {
match[ 1 ] = match[ 1 ].replace( runescape, funescape );
// Move the given value to match[3] whether quoted or unquoted
- match[ 3 ] = ( match[ 3 ] || match[ 4 ] || match[ 5 ] || "" )
- .replace( runescape, funescape );
+ match[ 3 ] = ( match[ 3 ] || match[ 4 ] ||
+ match[ 5 ] || "" ).replace( runescape, funescape );
if ( match[ 2 ] === "~=" ) {
match[ 3 ] = " " + match[ 3 ] + " ";
@@ -1563,7 +1825,7 @@ Expr = jQuery.expr = {
return match.slice( 0, 4 );
},
- CHILD: function( match ) {
+ "CHILD": function( match ) {
/* matches from matchExpr["CHILD"]
1 type (only|nth|...)
@@ -1581,30 +1843,29 @@ Expr = jQuery.expr = {
// nth-* requires argument
if ( !match[ 3 ] ) {
- find.error( match[ 0 ] );
+ Sizzle.error( match[ 0 ] );
}
// numeric x and y parameters for Expr.filter.CHILD
// remember that false/true cast respectively to 0/1
match[ 4 ] = +( match[ 4 ] ?
match[ 5 ] + ( match[ 6 ] || 1 ) :
- 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" )
- );
+ 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) );
match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" );
- // other types prohibit arguments
+ // other types prohibit arguments
} else if ( match[ 3 ] ) {
- find.error( match[ 0 ] );
+ Sizzle.error( match[ 0 ] );
}
return match;
},
- PSEUDO: function( match ) {
+ "PSEUDO": function( match ) {
var excess,
unquoted = !match[ 6 ] && match[ 2 ];
- if ( matchExpr.CHILD.test( match[ 0 ] ) ) {
+ if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) {
return null;
}
@@ -1633,36 +1894,36 @@ Expr = jQuery.expr = {
filter: {
- TAG: function( nodeNameSelector ) {
- var expectedNodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+ "TAG": function( nodeNameSelector ) {
+ var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
return nodeNameSelector === "*" ?
function() {
return true;
} :
function( elem ) {
- return nodeName( elem, expectedNodeName );
+ return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
};
},
- CLASS: function( className ) {
+ "CLASS": function( className ) {
var pattern = classCache[ className + " " ];
return pattern ||
- ( pattern = new RegExp( "(^|" + whitespace + ")" + className +
- "(" + whitespace + "|$)" ) ) &&
- classCache( className, function( elem ) {
- return pattern.test(
- typeof elem.className === "string" && elem.className ||
- typeof elem.getAttribute !== "undefined" &&
- elem.getAttribute( "class" ) ||
- ""
- );
+ ( pattern = new RegExp( "(^|" + whitespace +
+ ")" + className + "(" + whitespace + "|$)" ) ) && classCache(
+ className, function( elem ) {
+ return pattern.test(
+ typeof elem.className === "string" && elem.className ||
+ typeof elem.getAttribute !== "undefined" &&
+ elem.getAttribute( "class" ) ||
+ ""
+ );
} );
},
- ATTR: function( name, operator, check ) {
+ "ATTR": function( name, operator, check ) {
return function( elem ) {
- var result = find.attr( elem, name );
+ var result = Sizzle.attr( elem, name );
if ( result == null ) {
return operator === "!=";
@@ -1673,34 +1934,22 @@ Expr = jQuery.expr = {
result += "";
- if ( operator === "=" ) {
- return result === check;
- }
- if ( operator === "!=" ) {
- return result !== check;
- }
- if ( operator === "^=" ) {
- return check && result.indexOf( check ) === 0;
- }
- if ( operator === "*=" ) {
- return check && result.indexOf( check ) > -1;
- }
- if ( operator === "$=" ) {
- return check && result.slice( -check.length ) === check;
- }
- if ( operator === "~=" ) {
- return ( " " + result.replace( rwhitespace, " " ) + " " )
- .indexOf( check ) > -1;
- }
- if ( operator === "|=" ) {
- return result === check || result.slice( 0, check.length + 1 ) === check + "-";
- }
+ /* eslint-disable max-len */
+
+ return operator === "=" ? result === check :
+ operator === "!=" ? result !== check :
+ operator === "^=" ? check && result.indexOf( check ) === 0 :
+ operator === "*=" ? check && result.indexOf( check ) > -1 :
+ operator === "$=" ? check && result.slice( -check.length ) === check :
+ operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
+ operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+ false;
+ /* eslint-enable max-len */
- return false;
};
},
- CHILD: function( type, what, _argument, first, last ) {
+ "CHILD": function( type, what, _argument, first, last ) {
var simple = type.slice( 0, 3 ) !== "nth",
forward = type.slice( -4 ) !== "last",
ofType = what === "of-type";
@@ -1713,7 +1962,7 @@ Expr = jQuery.expr = {
} :
function( elem, _context, xml ) {
- var cache, outerCache, node, nodeIndex, start,
+ var cache, uniqueCache, outerCache, node, nodeIndex, start,
dir = simple !== forward ? "nextSibling" : "previousSibling",
parent = elem.parentNode,
name = ofType && elem.nodeName.toLowerCase(),
@@ -1728,7 +1977,7 @@ Expr = jQuery.expr = {
node = elem;
while ( ( node = node[ dir ] ) ) {
if ( ofType ?
- nodeName( node, name ) :
+ node.nodeName.toLowerCase() === name :
node.nodeType === 1 ) {
return false;
@@ -1747,8 +1996,17 @@ Expr = jQuery.expr = {
if ( forward && useCache ) {
// Seek `elem` from a previously-cached index
- outerCache = parent[ expando ] || ( parent[ expando ] = {} );
- cache = outerCache[ type ] || [];
+
+ // ...in a gzip-friendly way
+ node = parent;
+ outerCache = node[ expando ] || ( node[ expando ] = {} );
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ node.uniqueID ] ||
+ ( outerCache[ node.uniqueID ] = {} );
+
+ cache = uniqueCache[ type ] || [];
nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
diff = nodeIndex && cache[ 2 ];
node = nodeIndex && parent.childNodes[ nodeIndex ];
@@ -1760,7 +2018,7 @@ Expr = jQuery.expr = {
// When found, cache indexes on `parent` and break
if ( node.nodeType === 1 && ++diff && node === elem ) {
- outerCache[ type ] = [ dirruns, nodeIndex, diff ];
+ uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
break;
}
}
@@ -1769,8 +2027,17 @@ Expr = jQuery.expr = {
// Use previously-cached element index if available
if ( useCache ) {
- outerCache = elem[ expando ] || ( elem[ expando ] = {} );
- cache = outerCache[ type ] || [];
+
+ // ...in a gzip-friendly way
+ node = elem;
+ outerCache = node[ expando ] || ( node[ expando ] = {} );
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ node.uniqueID ] ||
+ ( outerCache[ node.uniqueID ] = {} );
+
+ cache = uniqueCache[ type ] || [];
nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
diff = nodeIndex;
}
@@ -1784,7 +2051,7 @@ Expr = jQuery.expr = {
( diff = nodeIndex = 0 ) || start.pop() ) ) {
if ( ( ofType ?
- nodeName( node, name ) :
+ node.nodeName.toLowerCase() === name :
node.nodeType === 1 ) &&
++diff ) {
@@ -1792,7 +2059,13 @@ Expr = jQuery.expr = {
if ( useCache ) {
outerCache = node[ expando ] ||
( node[ expando ] = {} );
- outerCache[ type ] = [ dirruns, diff ];
+
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ node.uniqueID ] ||
+ ( outerCache[ node.uniqueID ] = {} );
+
+ uniqueCache[ type ] = [ dirruns, diff ];
}
if ( node === elem ) {
@@ -1810,19 +2083,19 @@ Expr = jQuery.expr = {
};
},
- PSEUDO: function( pseudo, argument ) {
+ "PSEUDO": function( pseudo, argument ) {
// pseudo-class names are case-insensitive
- // https://www.w3.org/TR/selectors/#pseudo-classes
+ // http://www.w3.org/TR/selectors/#pseudo-classes
// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
// Remember that setFilters inherits from pseudos
var args,
fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
- find.error( "unsupported pseudo: " + pseudo );
+ Sizzle.error( "unsupported pseudo: " + pseudo );
// The user may use createPseudo to indicate that
// arguments are needed to create the filter function
- // just as jQuery does
+ // just as Sizzle does
if ( fn[ expando ] ) {
return fn( argument );
}
@@ -1836,7 +2109,7 @@ Expr = jQuery.expr = {
matched = fn( seed, argument ),
i = matched.length;
while ( i-- ) {
- idx = indexOf.call( seed, matched[ i ] );
+ idx = indexOf( seed, matched[ i ] );
seed[ idx ] = !( matches[ idx ] = matched[ i ] );
}
} ) :
@@ -1852,14 +2125,14 @@ Expr = jQuery.expr = {
pseudos: {
// Potentially complex pseudos
- not: markFunction( function( selector ) {
+ "not": markFunction( function( selector ) {
// Trim the selector passed to compile
// to avoid treating leading and trailing
// spaces as combinators
var input = [],
results = [],
- matcher = compile( selector.replace( rtrimCSS, "$1" ) );
+ matcher = compile( selector.replace( rtrim, "$1" ) );
return matcher[ expando ] ?
markFunction( function( seed, matches, _context, xml ) {
@@ -1878,23 +2151,22 @@ Expr = jQuery.expr = {
input[ 0 ] = elem;
matcher( input, null, xml, results );
- // Don't keep the element
- // (see https://github.com/jquery/sizzle/issues/299)
+ // Don't keep the element (issue #299)
input[ 0 ] = null;
return !results.pop();
};
} ),
- has: markFunction( function( selector ) {
+ "has": markFunction( function( selector ) {
return function( elem ) {
- return find( selector, elem ).length > 0;
+ return Sizzle( selector, elem ).length > 0;
};
} ),
- contains: markFunction( function( text ) {
+ "contains": markFunction( function( text ) {
text = text.replace( runescape, funescape );
return function( elem ) {
- return ( elem.textContent || jQuery.text( elem ) ).indexOf( text ) > -1;
+ return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;
};
} ),
@@ -1904,12 +2176,12 @@ Expr = jQuery.expr = {
// or beginning with the identifier C immediately followed by "-".
// The matching of C against the element's language value is performed case-insensitively.
// The identifier C does not have to be a valid language name."
- // https://www.w3.org/TR/selectors/#lang-pseudo
- lang: markFunction( function( lang ) {
+ // http://www.w3.org/TR/selectors/#lang-pseudo
+ "lang": markFunction( function( lang ) {
// lang value must be a valid identifier
if ( !ridentifier.test( lang || "" ) ) {
- find.error( "unsupported lang: " + lang );
+ Sizzle.error( "unsupported lang: " + lang );
}
lang = lang.replace( runescape, funescape ).toLowerCase();
return function( elem ) {
@@ -1928,39 +2200,38 @@ Expr = jQuery.expr = {
} ),
// Miscellaneous
- target: function( elem ) {
+ "target": function( elem ) {
var hash = window.location && window.location.hash;
return hash && hash.slice( 1 ) === elem.id;
},
- root: function( elem ) {
- return elem === documentElement;
+ "root": function( elem ) {
+ return elem === docElem;
},
- focus: function( elem ) {
- return elem === safeActiveElement() &&
- document.hasFocus() &&
+ "focus": function( elem ) {
+ return elem === document.activeElement &&
+ ( !document.hasFocus || document.hasFocus() ) &&
!!( elem.type || elem.href || ~elem.tabIndex );
},
// Boolean properties
- enabled: createDisabledPseudo( false ),
- disabled: createDisabledPseudo( true ),
+ "enabled": createDisabledPseudo( false ),
+ "disabled": createDisabledPseudo( true ),
- checked: function( elem ) {
+ "checked": function( elem ) {
// In CSS3, :checked should return both checked and selected elements
- // https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
- return ( nodeName( elem, "input" ) && !!elem.checked ) ||
- ( nodeName( elem, "option" ) && !!elem.selected );
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+ var nodeName = elem.nodeName.toLowerCase();
+ return ( nodeName === "input" && !!elem.checked ) ||
+ ( nodeName === "option" && !!elem.selected );
},
- selected: function( elem ) {
+ "selected": function( elem ) {
- // Support: IE <=11+
- // Accessing the selectedIndex property
- // forces the browser to treat the default option as
- // selected when in an optgroup.
+ // Accessing this property makes selected-by-default
+ // options in Safari work properly
if ( elem.parentNode ) {
// eslint-disable-next-line no-unused-expressions
elem.parentNode.selectedIndex;
@@ -1970,9 +2241,9 @@ Expr = jQuery.expr = {
},
// Contents
- empty: function( elem ) {
+ "empty": function( elem ) {
- // https://www.w3.org/TR/selectors/#empty-pseudo
+ // http://www.w3.org/TR/selectors/#empty-pseudo
// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
// but not by others (comment: 8; processing instruction: 7; etc.)
// nodeType < 6 works because attributes (2) do not appear as children
@@ -1984,49 +2255,49 @@ Expr = jQuery.expr = {
return true;
},
- parent: function( elem ) {
- return !Expr.pseudos.empty( elem );
+ "parent": function( elem ) {
+ return !Expr.pseudos[ "empty" ]( elem );
},
// Element/input types
- header: function( elem ) {
+ "header": function( elem ) {
return rheader.test( elem.nodeName );
},
- input: function( elem ) {
+ "input": function( elem ) {
return rinputs.test( elem.nodeName );
},
- button: function( elem ) {
- return nodeName( elem, "input" ) && elem.type === "button" ||
- nodeName( elem, "button" );
+ "button": function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return name === "input" && elem.type === "button" || name === "button";
},
- text: function( elem ) {
+ "text": function( elem ) {
var attr;
- return nodeName( elem, "input" ) && elem.type === "text" &&
+ return elem.nodeName.toLowerCase() === "input" &&
+ elem.type === "text" &&
// Support: IE <10 only
- // New HTML5 attribute values (e.g., "search") appear
- // with elem.type === "text"
+ // New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
( ( attr = elem.getAttribute( "type" ) ) == null ||
attr.toLowerCase() === "text" );
},
// Position-in-collection
- first: createPositionalPseudo( function() {
+ "first": createPositionalPseudo( function() {
return [ 0 ];
} ),
- last: createPositionalPseudo( function( _matchIndexes, length ) {
+ "last": createPositionalPseudo( function( _matchIndexes, length ) {
return [ length - 1 ];
} ),
- eq: createPositionalPseudo( function( _matchIndexes, length, argument ) {
+ "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) {
return [ argument < 0 ? argument + length : argument ];
} ),
- even: createPositionalPseudo( function( matchIndexes, length ) {
+ "even": createPositionalPseudo( function( matchIndexes, length ) {
var i = 0;
for ( ; i < length; i += 2 ) {
matchIndexes.push( i );
@@ -2034,7 +2305,7 @@ Expr = jQuery.expr = {
return matchIndexes;
} ),
- odd: createPositionalPseudo( function( matchIndexes, length ) {
+ "odd": createPositionalPseudo( function( matchIndexes, length ) {
var i = 1;
for ( ; i < length; i += 2 ) {
matchIndexes.push( i );
@@ -2042,24 +2313,19 @@ Expr = jQuery.expr = {
return matchIndexes;
} ),
- lt: createPositionalPseudo( function( matchIndexes, length, argument ) {
- var i;
-
- if ( argument < 0 ) {
- i = argument + length;
- } else if ( argument > length ) {
- i = length;
- } else {
- i = argument;
- }
-
+ "lt": createPositionalPseudo( function( matchIndexes, length, argument ) {
+ var i = argument < 0 ?
+ argument + length :
+ argument > length ?
+ length :
+ argument;
for ( ; --i >= 0; ) {
matchIndexes.push( i );
}
return matchIndexes;
} ),
- gt: createPositionalPseudo( function( matchIndexes, length, argument ) {
+ "gt": createPositionalPseudo( function( matchIndexes, length, argument ) {
var i = argument < 0 ? argument + length : argument;
for ( ; ++i < length; ) {
matchIndexes.push( i );
@@ -2069,7 +2335,7 @@ Expr = jQuery.expr = {
}
};
-Expr.pseudos.nth = Expr.pseudos.eq;
+Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ];
// Add button/input type pseudos
for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
@@ -2084,7 +2350,7 @@ function setFilters() {}
setFilters.prototype = Expr.filters = Expr.pseudos;
Expr.setFilters = new setFilters();
-function tokenize( selector, parseOnly ) {
+tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
var matched, match, tokens, type,
soFar, groups, preFilters,
cached = tokenCache[ selector + " " ];
@@ -2118,7 +2384,7 @@ function tokenize( selector, parseOnly ) {
value: matched,
// Cast descendant combinators to space
- type: match[ 0 ].replace( rtrimCSS, " " )
+ type: match[ 0 ].replace( rtrim, " " )
} );
soFar = soFar.slice( matched.length );
}
@@ -2145,16 +2411,14 @@ function tokenize( selector, parseOnly ) {
// Return the length of the invalid excess
// if we're just parsing
// Otherwise, throw an error or return tokens
- if ( parseOnly ) {
- return soFar.length;
- }
-
- return soFar ?
- find.error( selector ) :
+ return parseOnly ?
+ soFar.length :
+ soFar ?
+ Sizzle.error( selector ) :
- // Cache the tokens
- tokenCache( selector, groups ).slice( 0 );
-}
+ // Cache the tokens
+ tokenCache( selector, groups ).slice( 0 );
+};
function toSelector( tokens ) {
var i = 0,
@@ -2187,7 +2451,7 @@ function addCombinator( matcher, combinator, base ) {
// Check against all ancestor/preceding elements
function( elem, context, xml ) {
- var oldCache, outerCache,
+ var oldCache, uniqueCache, outerCache,
newCache = [ dirruns, doneName ];
// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
@@ -2204,9 +2468,14 @@ function addCombinator( matcher, combinator, base ) {
if ( elem.nodeType === 1 || checkNonElements ) {
outerCache = elem[ expando ] || ( elem[ expando ] = {} );
- if ( skip && nodeName( elem, skip ) ) {
+ // Support: IE <9 only
+ // Defend against cloned attroperties (jQuery gh-1709)
+ uniqueCache = outerCache[ elem.uniqueID ] ||
+ ( outerCache[ elem.uniqueID ] = {} );
+
+ if ( skip && skip === elem.nodeName.toLowerCase() ) {
elem = elem[ dir ] || elem;
- } else if ( ( oldCache = outerCache[ key ] ) &&
+ } else if ( ( oldCache = uniqueCache[ key ] ) &&
oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
// Assign to newCache so results back-propagate to previous elements
@@ -2214,7 +2483,7 @@ function addCombinator( matcher, combinator, base ) {
} else {
// Reuse newcache so results back-propagate to previous elements
- outerCache[ key ] = newCache;
+ uniqueCache[ key ] = newCache;
// A match means we're done; a fail means we have to keep checking
if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {
@@ -2246,7 +2515,7 @@ function multipleContexts( selector, contexts, results ) {
var i = 0,
len = contexts.length;
for ( ; i < len; i++ ) {
- find( selector, contexts[ i ], results );
+ Sizzle( selector, contexts[ i ], results );
}
return results;
}
@@ -2280,37 +2549,38 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
postFinder = setMatcher( postFinder, postSelector );
}
return markFunction( function( seed, results, context, xml ) {
- var temp, i, elem, matcherOut,
+ var temp, i, elem,
preMap = [],
postMap = [],
preexisting = results.length,
// Get initial elements from seed or context
- elems = seed ||
- multipleContexts( selector || "*",
- context.nodeType ? [ context ] : context, [] ),
+ elems = seed || multipleContexts(
+ selector || "*",
+ context.nodeType ? [ context ] : context,
+ []
+ ),
// Prefilter to get matcher input, preserving a map for seed-results synchronization
matcherIn = preFilter && ( seed || !selector ) ?
condense( elems, preMap, preFilter, context, xml ) :
- elems;
+ elems,
- if ( matcher ) {
+ matcherOut = matcher ?
- // If we have a postFinder, or filtered seed, or non-seed postFilter
- // or preexisting results,
- matcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+ // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+ postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
- // ...intermediate processing is necessary
- [] :
+ // ...intermediate processing is necessary
+ [] :
- // ...otherwise use results directly
- results;
+ // ...otherwise use results directly
+ results :
+ matcherIn;
- // Find primary matches
+ // Find primary matches
+ if ( matcher ) {
matcher( matcherIn, matcherOut, context, xml );
- } else {
- matcherOut = matcherIn;
}
// Apply postFilter
@@ -2348,7 +2618,7 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
i = matcherOut.length;
while ( i-- ) {
if ( ( elem = matcherOut[ i ] ) &&
- ( temp = postFinder ? indexOf.call( seed, elem ) : preMap[ i ] ) > -1 ) {
+ ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {
seed[ temp ] = !( results[ temp ] = elem );
}
@@ -2383,21 +2653,15 @@ function matcherFromTokens( tokens ) {
return elem === checkContext;
}, implicitRelative, true ),
matchAnyContext = addCombinator( function( elem ) {
- return indexOf.call( checkContext, elem ) > -1;
+ return indexOf( checkContext, elem ) > -1;
}, implicitRelative, true ),
matchers = [ function( elem, context, xml ) {
-
- // Support: IE 11+, Edge 17 - 18+
- // IE/Edge sometimes throw a "Permission denied" error when strict-comparing
- // two documents; shallow comparisons work.
- // eslint-disable-next-line eqeqeq
- var ret = ( !leadingRelative && ( xml || context != outermostContext ) ) || (
+ var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
( checkContext = context ).nodeType ?
matchContext( elem, context, xml ) :
matchAnyContext( elem, context, xml ) );
- // Avoid hanging onto element
- // (see https://github.com/jquery/sizzle/issues/299)
+ // Avoid hanging onto element (issue #299)
checkContext = null;
return ret;
} ];
@@ -2422,10 +2686,11 @@ function matcherFromTokens( tokens ) {
i > 1 && elementMatcher( matchers ),
i > 1 && toSelector(
- // If the preceding token was a descendant combinator, insert an implicit any-element `*`
- tokens.slice( 0, i - 1 )
- .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } )
- ).replace( rtrimCSS, "$1" ),
+ // If the preceding token was a descendant combinator, insert an implicit any-element `*`
+ tokens
+ .slice( 0, i - 1 )
+ .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } )
+ ).replace( rtrim, "$1" ),
matcher,
i < j && matcherFromTokens( tokens.slice( i, j ) ),
j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),
@@ -2451,7 +2716,7 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
contextBackup = outermostContext,
// We must always have either seed elements or outermost context
- elems = seed || byElement && Expr.find.TAG( "*", outermost ),
+ elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ),
// Use integer dirruns iff this is the outermost matcher
dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),
@@ -2467,9 +2732,8 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
}
// Add elements passing elementMatchers directly to results
- // Support: iOS <=7 - 9 only
- // Tolerate NodeList properties (IE: "length"; Safari: ) matching
- // elements by id. (see trac-14142)
+ // Support: IE<9, Safari
+ // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id
for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {
if ( byElement && elem ) {
j = 0;
@@ -2484,7 +2748,7 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
}
while ( ( matcher = elementMatchers[ j++ ] ) ) {
if ( matcher( elem, context || document, xml ) ) {
- push.call( results, elem );
+ results.push( elem );
break;
}
}
@@ -2547,7 +2811,7 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
if ( outermost && !seed && setMatched.length > 0 &&
( matchedCount + setMatchers.length ) > 1 ) {
- jQuery.uniqueSort( results );
+ Sizzle.uniqueSort( results );
}
}
@@ -2565,7 +2829,7 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
superMatcher;
}
-function compile( selector, match /* Internal Use Only */ ) {
+compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
var i,
setMatchers = [],
elementMatchers = [],
@@ -2588,25 +2852,27 @@ function compile( selector, match /* Internal Use Only */ ) {
}
// Cache the compiled function
- cached = compilerCache( selector,
- matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+ cached = compilerCache(
+ selector,
+ matcherFromGroupMatchers( elementMatchers, setMatchers )
+ );
// Save selector and tokenization
cached.selector = selector;
}
return cached;
-}
+};
/**
- * A low-level selection function that works with jQuery's compiled
+ * A low-level selection function that works with Sizzle's compiled
* selector functions
* @param {String|Function} selector A selector or a pre-compiled
- * selector function built with jQuery selector compile
+ * selector function built with Sizzle.compile
* @param {Element} context
* @param {Array} [results]
* @param {Array} [seed] A set of elements to match against
*/
-function select( selector, context, results, seed ) {
+select = Sizzle.select = function( selector, context, results, seed ) {
var i, tokens, token, type, find,
compiled = typeof selector === "function" && selector,
match = !seed && tokenize( ( selector = compiled.selector || selector ) );
@@ -2620,12 +2886,10 @@ function select( selector, context, results, seed ) {
// Reduce context if the leading compound selector is an ID
tokens = match[ 0 ] = match[ 0 ].slice( 0 );
if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" &&
- context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {
+ context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {
- context = ( Expr.find.ID(
- token.matches[ 0 ].replace( runescape, funescape ),
- context
- ) || [] )[ 0 ];
+ context = ( Expr.find[ "ID" ]( token.matches[ 0 ]
+ .replace( runescape, funescape ), context ) || [] )[ 0 ];
if ( !context ) {
return results;
@@ -2638,7 +2902,7 @@ function select( selector, context, results, seed ) {
}
// Fetch a seed set for right-to-left matching
- i = matchExpr.needsContext.test( selector ) ? 0 : tokens.length;
+ i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length;
while ( i-- ) {
token = tokens[ i ];
@@ -2651,8 +2915,8 @@ function select( selector, context, results, seed ) {
// Search, expanding context for leading sibling combinators
if ( ( seed = find(
token.matches[ 0 ].replace( runescape, funescape ),
- rsibling.test( tokens[ 0 ].type ) &&
- testContext( context.parentNode ) || context
+ rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||
+ context
) ) ) {
// If seed is empty or no tokens remain, we can return early
@@ -2679,18 +2943,21 @@ function select( selector, context, results, seed ) {
!context || rsibling.test( selector ) && testContext( context.parentNode ) || context
);
return results;
-}
+};
// One-time assignments
-// Support: Android <=4.0 - 4.1+
// Sort stability
support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando;
+// Support: Chrome 14-35+
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = !!hasDuplicate;
+
// Initialize against the default document
setDocument();
-// Support: Android <=4.0 - 4.1+
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
// Detached nodes confoundingly follow *each other*
support.sortDetached = assert( function( el ) {
@@ -2698,29 +2965,68 @@ support.sortDetached = assert( function( el ) {
return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1;
} );
-jQuery.find = find;
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert( function( el ) {
+ el.innerHTML = " ";
+ return el.firstChild.getAttribute( "href" ) === "#";
+} ) ) {
+ addHandle( "type|href|height|width", function( elem, name, isXML ) {
+ if ( !isXML ) {
+ return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+ }
+ } );
+}
-// Deprecated
-jQuery.expr[ ":" ] = jQuery.expr.pseudos;
-jQuery.unique = jQuery.uniqueSort;
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert( function( el ) {
+ el.innerHTML = " ";
+ el.firstChild.setAttribute( "value", "" );
+ return el.firstChild.getAttribute( "value" ) === "";
+} ) ) {
+ addHandle( "value", function( elem, _name, isXML ) {
+ if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+ return elem.defaultValue;
+ }
+ } );
+}
-// These have always been private, but they used to be documented as part of
-// Sizzle so let's maintain them for now for backwards compatibility purposes.
-find.compile = compile;
-find.select = select;
-find.setDocument = setDocument;
-find.tokenize = tokenize;
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert( function( el ) {
+ return el.getAttribute( "disabled" ) == null;
+} ) ) {
+ addHandle( booleans, function( elem, name, isXML ) {
+ var val;
+ if ( !isXML ) {
+ return elem[ name ] === true ? name.toLowerCase() :
+ ( val = elem.getAttributeNode( name ) ) && val.specified ?
+ val.value :
+ null;
+ }
+ } );
+}
-find.escape = jQuery.escapeSelector;
-find.getText = jQuery.text;
-find.isXML = jQuery.isXMLDoc;
-find.selectors = jQuery.expr;
-find.support = jQuery.support;
-find.uniqueSort = jQuery.uniqueSort;
+return Sizzle;
+
+} )( window );
+
+
+
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+
+// Deprecated
+jQuery.expr[ ":" ] = jQuery.expr.pseudos;
+jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+jQuery.escapeSelector = Sizzle.escape;
- /* eslint-enable */
-} )();
var dir = function( elem, dir, until ) {
@@ -2754,6 +3060,13 @@ var siblings = function( n, elem ) {
var rneedsContext = jQuery.expr.match.needsContext;
+
+
+function nodeName( elem, name ) {
+
+ return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+
+}
var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
@@ -3004,7 +3317,7 @@ jQuery.fn.extend( {
if ( cur.nodeType < 11 && ( targets ?
targets.index( cur ) > -1 :
- // Don't pass non-elements to jQuery#find
+ // Don't pass non-elements to Sizzle
cur.nodeType === 1 &&
jQuery.find.matchesSelector( cur, selectors ) ) ) {
@@ -3559,7 +3872,7 @@ jQuery.extend( {
if ( jQuery.Deferred.exceptionHook ) {
jQuery.Deferred.exceptionHook( e,
- process.error );
+ process.stackTrace );
}
// Support: Promises/A+ section 2.3.3.3.4.1
@@ -3587,17 +3900,10 @@ jQuery.extend( {
process();
} else {
- // Call an optional hook to record the error, in case of exception
+ // Call an optional hook to record the stack, in case of exception
// since it's otherwise lost when execution goes async
- if ( jQuery.Deferred.getErrorHook ) {
- process.error = jQuery.Deferred.getErrorHook();
-
- // The deprecated alias of the above. While the name suggests
- // returning the stack, not an error instance, jQuery just passes
- // it directly to `console.warn` so both will work; an instance
- // just better cooperates with source maps.
- } else if ( jQuery.Deferred.getStackHook ) {
- process.error = jQuery.Deferred.getStackHook();
+ if ( jQuery.Deferred.getStackHook ) {
+ process.stackTrace = jQuery.Deferred.getStackHook();
}
window.setTimeout( process );
}
@@ -3772,16 +4078,12 @@ jQuery.extend( {
// warn about them ASAP rather than swallowing them by default.
var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
-// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error
-// captured before the async barrier to get the original error cause
-// which may otherwise be hidden.
-jQuery.Deferred.exceptionHook = function( error, asyncError ) {
+jQuery.Deferred.exceptionHook = function( error, stack ) {
// Support: IE 8 - 9 only
// Console exists when dev tools are open, which can happen at any time
if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
- window.console.warn( "jQuery.Deferred exception: " + error.message,
- error.stack, asyncError );
+ window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
}
};
@@ -4837,6 +5139,25 @@ function returnFalse() {
return false;
}
+// Support: IE <=9 - 11+
+// focus() and blur() are asynchronous, except when they are no-op.
+// So expect focus to be synchronous when the element is already active,
+// and blur to be synchronous when the element is not already active.
+// (focus and blur are always synchronous in other supported browsers,
+// this just defines when we can count on it).
+function expectSync( elem, type ) {
+ return ( elem === safeActiveElement() ) === ( type === "focus" );
+}
+
+// Support: IE <=9 only
+// Accessing document.activeElement can throw unexpectedly
+// https://bugs.jquery.com/ticket/13393
+function safeActiveElement() {
+ try {
+ return document.activeElement;
+ } catch ( err ) { }
+}
+
function on( elem, types, selector, data, fn, one ) {
var origFn, type;
@@ -5274,7 +5595,7 @@ jQuery.event = {
el.click && nodeName( el, "input" ) ) {
// dataPriv.set( el, "click", ... )
- leverageNative( el, "click", true );
+ leverageNative( el, "click", returnTrue );
}
// Return false to allow normal processing in the caller
@@ -5325,10 +5646,10 @@ jQuery.event = {
// synthetic events by interrupting progress until reinvoked in response to
// *native* events that it fires directly, ensuring that state changes have
// already occurred before other listeners are invoked.
-function leverageNative( el, type, isSetup ) {
+function leverageNative( el, type, expectSync ) {
- // Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add
- if ( !isSetup ) {
+ // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add
+ if ( !expectSync ) {
if ( dataPriv.get( el, type ) === undefined ) {
jQuery.event.add( el, type, returnTrue );
}
@@ -5340,13 +5661,15 @@ function leverageNative( el, type, isSetup ) {
jQuery.event.add( el, type, {
namespace: false,
handler: function( event ) {
- var result,
+ var notAsync, result,
saved = dataPriv.get( this, type );
if ( ( event.isTrigger & 1 ) && this[ type ] ) {
// Interrupt processing of the outer synthetic .trigger()ed event
- if ( !saved ) {
+ // Saved data should be false in such cases, but might be a leftover capture object
+ // from an async native handler (gh-4350)
+ if ( !saved.length ) {
// Store arguments for use when handling the inner native event
// There will always be at least one argument (an event object), so this array
@@ -5355,22 +5678,33 @@ function leverageNative( el, type, isSetup ) {
dataPriv.set( this, type, saved );
// Trigger the native event and capture its result
+ // Support: IE <=9 - 11+
+ // focus() and blur() are asynchronous
+ notAsync = expectSync( this, type );
this[ type ]();
result = dataPriv.get( this, type );
- dataPriv.set( this, type, false );
-
+ if ( saved !== result || notAsync ) {
+ dataPriv.set( this, type, false );
+ } else {
+ result = {};
+ }
if ( saved !== result ) {
// Cancel the outer synthetic event
event.stopImmediatePropagation();
event.preventDefault();
- return result;
+ // Support: Chrome 86+
+ // In Chrome, if an element having a focusout handler is blurred by
+ // clicking outside of it, it invokes the handler synchronously. If
+ // that handler calls `.remove()` on the element, the data is cleared,
+ // leaving `result` undefined. We need to guard against this.
+ return result && result.value;
}
// If this is an inner synthetic event for an event with a bubbling surrogate
- // (focus or blur), assume that the surrogate already propagated from triggering
- // the native event and prevent that from happening again here.
+ // (focus or blur), assume that the surrogate already propagated from triggering the
+ // native event and prevent that from happening again here.
// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the
// bubbling surrogate propagates *after* the non-bubbling base), but that seems
// less bad than duplication.
@@ -5380,25 +5714,22 @@ function leverageNative( el, type, isSetup ) {
// If this is a native event triggered above, everything is now in order
// Fire an inner synthetic event with the original arguments
- } else if ( saved ) {
+ } else if ( saved.length ) {
// ...and capture the result
- dataPriv.set( this, type, jQuery.event.trigger(
- saved[ 0 ],
- saved.slice( 1 ),
- this
- ) );
-
- // Abort handling of the native event by all jQuery handlers while allowing
- // native handlers on the same element to run. On target, this is achieved
- // by stopping immediate propagation just on the jQuery event. However,
- // the native event is re-wrapped by a jQuery one on each level of the
- // propagation so the only way to stop it for jQuery is to stop it for
- // everyone via native `stopPropagation()`. This is not a problem for
- // focus/blur which don't bubble, but it does also stop click on checkboxes
- // and radios. We accept this limitation.
- event.stopPropagation();
- event.isImmediatePropagationStopped = returnTrue;
+ dataPriv.set( this, type, {
+ value: jQuery.event.trigger(
+
+ // Support: IE <=9 - 11+
+ // Extend with the prototype to reset the above stopImmediatePropagation()
+ jQuery.extend( saved[ 0 ], jQuery.Event.prototype ),
+ saved.slice( 1 ),
+ this
+ )
+ } );
+
+ // Abort handling of the native event
+ event.stopImmediatePropagation();
}
}
} );
@@ -5537,73 +5868,18 @@ jQuery.each( {
}, jQuery.event.addProp );
jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) {
-
- function focusMappedHandler( nativeEvent ) {
- if ( document.documentMode ) {
-
- // Support: IE 11+
- // Attach a single focusin/focusout handler on the document while someone wants
- // focus/blur. This is because the former are synchronous in IE while the latter
- // are async. In other browsers, all those handlers are invoked synchronously.
-
- // `handle` from private data would already wrap the event, but we need
- // to change the `type` here.
- var handle = dataPriv.get( this, "handle" ),
- event = jQuery.event.fix( nativeEvent );
- event.type = nativeEvent.type === "focusin" ? "focus" : "blur";
- event.isSimulated = true;
-
- // First, handle focusin/focusout
- handle( nativeEvent );
-
- // ...then, handle focus/blur
- //
- // focus/blur don't bubble while focusin/focusout do; simulate the former by only
- // invoking the handler at the lower level.
- if ( event.target === event.currentTarget ) {
-
- // The setup part calls `leverageNative`, which, in turn, calls
- // `jQuery.event.add`, so event handle will already have been set
- // by this point.
- handle( event );
- }
- } else {
-
- // For non-IE browsers, attach a single capturing handler on the document
- // while someone wants focusin/focusout.
- jQuery.event.simulate( delegateType, nativeEvent.target,
- jQuery.event.fix( nativeEvent ) );
- }
- }
-
jQuery.event.special[ type ] = {
// Utilize native event if possible so blur/focus sequence is correct
setup: function() {
- var attaches;
-
// Claim the first handler
// dataPriv.set( this, "focus", ... )
// dataPriv.set( this, "blur", ... )
- leverageNative( this, type, true );
-
- if ( document.documentMode ) {
-
- // Support: IE 9 - 11+
- // We use the same native handler for focusin & focus (and focusout & blur)
- // so we need to coordinate setup & teardown parts between those events.
- // Use `delegateType` as the key as `type` is already used by `leverageNative`.
- attaches = dataPriv.get( this, delegateType );
- if ( !attaches ) {
- this.addEventListener( delegateType, focusMappedHandler );
- }
- dataPriv.set( this, delegateType, ( attaches || 0 ) + 1 );
- } else {
+ leverageNative( this, type, expectSync );
- // Return false to allow normal processing in the caller
- return false;
- }
+ // Return false to allow normal processing in the caller
+ return false;
},
trigger: function() {
@@ -5614,24 +5890,6 @@ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateTyp
return true;
},
- teardown: function() {
- var attaches;
-
- if ( document.documentMode ) {
- attaches = dataPriv.get( this, delegateType ) - 1;
- if ( !attaches ) {
- this.removeEventListener( delegateType, focusMappedHandler );
- dataPriv.remove( this, delegateType );
- } else {
- dataPriv.set( this, delegateType, attaches );
- }
- } else {
-
- // Return false to indicate standard teardown should be applied
- return false;
- }
- },
-
// Suppress native focus or blur if we're currently inside
// a leveraged native-event stack
_default: function( event ) {
@@ -5640,58 +5898,6 @@ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateTyp
delegateType: delegateType
};
-
- // Support: Firefox <=44
- // Firefox doesn't have focus(in | out) events
- // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
- //
- // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
- // focus(in | out) events fire after focus & blur events,
- // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
- // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
- //
- // Support: IE 9 - 11+
- // To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,
- // attach a single handler for both events in IE.
- jQuery.event.special[ delegateType ] = {
- setup: function() {
-
- // Handle: regular nodes (via `this.ownerDocument`), window
- // (via `this.document`) & document (via `this`).
- var doc = this.ownerDocument || this.document || this,
- dataHolder = document.documentMode ? this : doc,
- attaches = dataPriv.get( dataHolder, delegateType );
-
- // Support: IE 9 - 11+
- // We use the same native handler for focusin & focus (and focusout & blur)
- // so we need to coordinate setup & teardown parts between those events.
- // Use `delegateType` as the key as `type` is already used by `leverageNative`.
- if ( !attaches ) {
- if ( document.documentMode ) {
- this.addEventListener( delegateType, focusMappedHandler );
- } else {
- doc.addEventListener( type, focusMappedHandler, true );
- }
- }
- dataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 );
- },
- teardown: function() {
- var doc = this.ownerDocument || this.document || this,
- dataHolder = document.documentMode ? this : doc,
- attaches = dataPriv.get( dataHolder, delegateType ) - 1;
-
- if ( !attaches ) {
- if ( document.documentMode ) {
- this.removeEventListener( delegateType, focusMappedHandler );
- } else {
- doc.removeEventListener( type, focusMappedHandler, true );
- }
- dataPriv.remove( dataHolder, delegateType );
- } else {
- dataPriv.set( dataHolder, delegateType, attaches );
- }
- }
- };
} );
// Create mouseenter/leave events using mouseover/out and event-time checks
@@ -5923,7 +6129,7 @@ function domManip( collection, args, callback, ignored ) {
if ( hasScripts ) {
doc = scripts[ scripts.length - 1 ].ownerDocument;
- // Re-enable scripts
+ // Reenable scripts
jQuery.map( scripts, restoreScript );
// Evaluate executable scripts on first document insertion
@@ -5994,8 +6200,7 @@ jQuery.extend( {
if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
!jQuery.isXMLDoc( elem ) ) {
- // We eschew jQuery#find here for performance reasons:
- // https://jsperf.com/getall-vs-sizzle/2
+ // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
destElements = getAll( clone );
srcElements = getAll( elem );
@@ -6271,6 +6476,15 @@ var swap = function( elem, options, callback ) {
var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
+var whitespace = "[\\x20\\t\\r\\n\\f]";
+
+
+var rtrimCSS = new RegExp(
+ "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$",
+ "g"
+);
+
+
( function() {
@@ -6380,7 +6594,7 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
trChild = document.createElement( "div" );
table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate";
- tr.style.cssText = "box-sizing:content-box;border:1px solid";
+ tr.style.cssText = "border:1px solid";
// Support: Chrome 86+
// Height set through cssText does not get applied.
@@ -6392,7 +6606,7 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
// In our bodyBackground.html iframe,
// display for all div elements is set to "inline",
// which causes a problem only in Android 8 Chrome 86.
- // Ensuring the div is `display: block`
+ // Ensuring the div is display: block
// gets around this issue.
trChild.style.display = "block";
@@ -6579,8 +6793,7 @@ function setPositiveNumber( _elem, value, subtract ) {
function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {
var i = dimension === "width" ? 1 : 0,
extra = 0,
- delta = 0,
- marginDelta = 0;
+ delta = 0;
// Adjustment may not be necessary
if ( box === ( isBorderBox ? "border" : "content" ) ) {
@@ -6590,10 +6803,8 @@ function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computed
for ( ; i < 4; i += 2 ) {
// Both box models exclude margin
- // Count margin delta separately to only add it after scroll gutter adjustment.
- // This is needed to make negative margins work with `outerHeight( true )` (gh-3982).
if ( box === "margin" ) {
- marginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );
+ delta += jQuery.css( elem, box + cssExpand[ i ], true, styles );
}
// If we get here with a content-box, we're seeking "padding" or "border" or "margin"
@@ -6644,7 +6855,7 @@ function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computed
) ) || 0;
}
- return delta + marginDelta;
+ return delta;
}
function getWidthOrHeight( elem, dimension, extra ) {
@@ -6742,35 +6953,26 @@ jQuery.extend( {
// Don't automatically add "px" to these possibly-unitless properties
cssNumber: {
- animationIterationCount: true,
- aspectRatio: true,
- borderImageSlice: true,
- columnCount: true,
- flexGrow: true,
- flexShrink: true,
- fontWeight: true,
- gridArea: true,
- gridColumn: true,
- gridColumnEnd: true,
- gridColumnStart: true,
- gridRow: true,
- gridRowEnd: true,
- gridRowStart: true,
- lineHeight: true,
- opacity: true,
- order: true,
- orphans: true,
- scale: true,
- widows: true,
- zIndex: true,
- zoom: true,
-
- // SVG-related
- fillOpacity: true,
- floodOpacity: true,
- stopOpacity: true,
- strokeMiterlimit: true,
- strokeOpacity: true
+ "animationIterationCount": true,
+ "columnCount": true,
+ "fillOpacity": true,
+ "flexGrow": true,
+ "flexShrink": true,
+ "fontWeight": true,
+ "gridArea": true,
+ "gridColumn": true,
+ "gridColumnEnd": true,
+ "gridColumnStart": true,
+ "gridRow": true,
+ "gridRowEnd": true,
+ "gridRowStart": true,
+ "lineHeight": true,
+ "opacity": true,
+ "order": true,
+ "orphans": true,
+ "widows": true,
+ "zIndex": true,
+ "zoom": true
},
// Add in properties whose names you wish to fix before
@@ -8496,39 +8698,9 @@ jQuery.each( [ "radio", "checkbox" ], function() {
// Return jQuery for attributes-only inclusion
-var location = window.location;
-
-var nonce = { guid: Date.now() };
-var rquery = ( /\?/ );
-
-
-
-// Cross-browser xml parsing
-jQuery.parseXML = function( data ) {
- var xml, parserErrorElem;
- if ( !data || typeof data !== "string" ) {
- return null;
- }
-
- // Support: IE 9 - 11 only
- // IE throws on parseFromString with invalid input.
- try {
- xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
- } catch ( e ) {}
- parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ];
- if ( !xml || parserErrorElem ) {
- jQuery.error( "Invalid XML: " + (
- parserErrorElem ?
- jQuery.map( parserErrorElem.childNodes, function( el ) {
- return el.textContent;
- } ).join( "\n" ) :
- data
- ) );
- }
- return xml;
-};
+support.focusin = "onfocusin" in window;
var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
@@ -8716,6 +8888,85 @@ jQuery.fn.extend( {
} );
+// Support: Firefox <=44
+// Firefox doesn't have focus(in | out) events
+// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
+//
+// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
+// focus(in | out) events fire after focus & blur events,
+// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
+// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
+if ( !support.focusin ) {
+ jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+ // Attach a single capturing handler on the document while someone wants focusin/focusout
+ var handler = function( event ) {
+ jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
+ };
+
+ jQuery.event.special[ fix ] = {
+ setup: function() {
+
+ // Handle: regular nodes (via `this.ownerDocument`), window
+ // (via `this.document`) & document (via `this`).
+ var doc = this.ownerDocument || this.document || this,
+ attaches = dataPriv.access( doc, fix );
+
+ if ( !attaches ) {
+ doc.addEventListener( orig, handler, true );
+ }
+ dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
+ },
+ teardown: function() {
+ var doc = this.ownerDocument || this.document || this,
+ attaches = dataPriv.access( doc, fix ) - 1;
+
+ if ( !attaches ) {
+ doc.removeEventListener( orig, handler, true );
+ dataPriv.remove( doc, fix );
+
+ } else {
+ dataPriv.access( doc, fix, attaches );
+ }
+ }
+ };
+ } );
+}
+var location = window.location;
+
+var nonce = { guid: Date.now() };
+
+var rquery = ( /\?/ );
+
+
+
+// Cross-browser xml parsing
+jQuery.parseXML = function( data ) {
+ var xml, parserErrorElem;
+ if ( !data || typeof data !== "string" ) {
+ return null;
+ }
+
+ // Support: IE 9 - 11 only
+ // IE throws on parseFromString with invalid input.
+ try {
+ xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
+ } catch ( e ) {}
+
+ parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ];
+ if ( !xml || parserErrorElem ) {
+ jQuery.error( "Invalid XML: " + (
+ parserErrorElem ?
+ jQuery.map( parserErrorElem.childNodes, function( el ) {
+ return el.textContent;
+ } ).join( "\n" ) :
+ data
+ ) );
+ }
+ return xml;
+};
+
+
var
rbracket = /\[\]$/,
rCRLF = /\r?\n/g,
@@ -10560,9 +10811,7 @@ jQuery.fn.extend( {
},
hover: function( fnOver, fnOut ) {
- return this
- .on( "mouseenter", fnOver )
- .on( "mouseleave", fnOut || fnOver );
+ return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
}
} );
diff --git a/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/moment/locale/dv.js b/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/moment/locale/dv.js
index b1c687f92..e6cc8f649 100644
Binary files a/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/moment/locale/dv.js and b/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/moment/locale/dv.js differ
diff --git a/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/moment/locale/gom-deva.js b/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/moment/locale/gom-deva.js
index aa5b5a540..ae93d0d16 100644
--- a/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/moment/locale/gom-deva.js
+++ b/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/moment/locale/gom-deva.js
@@ -1,4 +1,75 @@
-ig#rsa-sha1"/>6kXsmnwOioIUniPorvJBwWaQewY= aH/L58Xc1TIUpl48TiwwYfh/Eg9DeUONlm4mK7xKns64PCbXdFkHZDmuQTrxpV4a4FRzZjBPZBNutmN0GDlO9jq0MA9Res3hbqKcw8vwspfS/FOgCo7orn5leRrEvDy6jdnfBCwYy/wPdF6mrqF1u3p1hicGZZ8bQGHYZ8Pprggg5QIyuqLTM/yS5Y+nMdiiVrQnssRqK8k6yNXpjXy0qiaEzOYW8v9Cuwym8c71Iot7DH6XQubz4brDlpDL2OASBM8IDYuRJ7d5O3WSkKHQRxpx16I76g2Cor4Nd79xpnlJ5xWiiUI2BfR7TMtymzuNWPbTXl6AE9iUktQcpSL6ng== lAi6wXhcWOjn1rN1aIy6z4YBcYlkdrxP9EEw7iiD0tg6i0aVOgZ/FS6IxiOgZXYwTgK/BHA7QN6/lvxnecZ2cETT7w7ZRByGUN1zTQKFwXdyQz/xdp5kZ81bmI3EQWLJBT6iW5K8HZr0qRsQRlExUrWZSOI449+Br2QgOMcBMS3FEMBS8XCBPgZ3z/V9ydztWjhopBB0ZngebWEjqwtlrXEB1M+WOPWUcljdJlp5pXNkiqCrJEzenMJ+tfTfD/8zv08LdhhIAmx1VLViItRqO9OD7l313X7bVyfTWTxGmf7D9YS5Sa0UCiOXM0qVZCVuQ5CzjLRLa13FaJurQ6SBhQ== AQAB 2024-05-15T19:26:09Z msft:sl/EUL/GENERIC/PUBLIC msft:sl/EUL/GENERIC/PUBLIC 2.0 https://licensing.microsoft.com {7209E8E3-CCE2-49dd-8F6E-2CC8A611F202} {4F4DD237-48AA-429C-802E-AB850592393B} {1dd49dd3-c5cc-4c0b-844c-0a844eafbe52} {0ff1ce15-a989-479d-af46-f275c6370663} {6040a6e7-445d-4609-b6c4-8a66b709cb54} Office 21, Office21HomeBusiness2021R_SubTrial edition E750D6F6-EDF5-433A-95AF-A8CE79700FD5 Microsoft Corporation Office 21, TIMEBASED_SUB channel https://activation.sls.microsoft.com/SLActivateProduct/SLActivateProduct.asmx?configextension=o14 msft:spp/licenseacquisition/payloadhandler/pa/1.0 {E750D6F6-EDF5-433A-95AF-A8CE79700FD5} https://go.microsoft.com/fwlink/?LinkID=187557 TIMEBASED_SUB Office21HomeBusiness2021R_SubTrial Office21_HomeBusiness2021Retail 1 EditionId EditionId 0x0000013A true 1 21.0.17713.30000 Office 21 UL oob License (Private) uIBHhs9VY/GtWJ0MlKWlcC+W+XE= jcrEP1AdWSEGYNBcjmeFsOWIydcmHAWwSDI8WLwdsJWSRJtlJKF35ycOKYGI0PVsqcWsAqenLOATqY2+pZ0aFr0Csu6+ZQeMF90S7cMxOFhBqRSFlkyVhK0EShaH7GVrcPBRF1+I/jTUavDwUIcBnjbpmq/flDEboh4UdzwTLpl+5ZTkk4JVdqdQfQ+E+139c5zxF2wwu/Zg5baa+gsasUZeJ1C8Lpw2osa5FPV1h6nOBv+HaN++20jiDIx3Rr3VRM7ylz9/BNXQXZbaB2ziBaqUygSyrMZQtFHKdkhK/tRw8WlX0nw/co6tRLiZvd3W2wgg1MlAaZ/mPUun+tz2LA== lAi6wXhcWOjn1rN1aIy6z4YBcYlkdrxP9EEw7iiD0tg6i0aVOgZ/FS6IxiOgZXYwTgK/BHA7QN6/lvxnecZ2cETT7w7ZRByGUN1zTQKFwXdyQz/xdp5kZ81bmI3EQWLJBT6iW5K8HZr0qRsQRlExUrWZSOI449+Br2QgOMcBMS3FEMBS8XCBPgZ3z/V9ydztWjhopBB0ZngebWEjqwtlrXEB1M+WOPWUcljdJlp5pXNkiqCrJEzenMJ+tfTfD/8zv08LdhhIAmx1VLViItRqO9OD7l313X7bVyfTWTxGmf7D9YS5Sa0UCiOXM0qVZCVuQ5CzjLRLa13FaJurQ6SBhQ== AQAB 2024-05-15T19:27:19Z msft:sl/EUL/GENERIC/PUBLIC msft:sl/EUL/GENERIC/PUBLIC 2.0 https://licensing.microsoft.com {7209E8E3-CCE2-49dd-8F6E-2CC8A611F202} {B4AF11BE-5F94-4D8F-9844-CE0D5E0D8680} {72ca9534-5564-4d9c-be00-f68582b8c2fd} {0ff1ce15-a989-479d-af46-f275c6370663} {6040a6e7-445d-4609-b6c4-8a66b709cb54} Office 16, Office16O365HomePremR_SubTest4 edition 35B11F35-F47A-4D06-866E-6A199F9FBC65 Microsoft Corporation Office 16, TIMEBASED_SUB channel https://activation.sls.microsoft.com/SLActivatePro
\ No newline at end of file
+//! moment.js locale configuration
+//! locale : Italian (Switzerland) [it-ch]
+//! author : xfh : https://github.com/xfh
+
+;(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ && typeof require === 'function' ? factory(require('../moment')) :
+ typeof define === 'function' && define.amd ? define(['../moment'], factory) :
+ factory(global.moment)
+}(this, (function (moment) { 'use strict';
+
+ //! moment.js locale configuration
+
+ var itCh = moment.defineLocale('it-ch', {
+ months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(
+ '_'
+ ),
+ monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
+ weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(
+ '_'
+ ),
+ weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
+ weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),
+ longDateFormat: {
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
+ L: 'DD.MM.YYYY',
+ LL: 'D MMMM YYYY',
+ LLL: 'D MMMM YYYY HH:mm',
+ LLLL: 'dddd D MMMM YYYY HH:mm',
+ },
+ calendar: {
+ sameDay: '[Oggi alle] LT',
+ nextDay: '[Domani alle] LT',
+ nextWeek: 'dddd [alle] LT',
+ lastDay: '[Ieri alle] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[la scorsa] dddd [alle] LT';
+ default:
+ return '[lo scorso] dddd [alle] LT';
+ }
+ },
+ sameElse: 'L',
+ },
+ relativeTime: {
+ future: function (s) {
+ return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;
+ },
+ past: '%s fa',
+ s: 'alcuni secondi',
+ ss: '%d secondi',
+ m: 'un minuto',
+ mm: '%d minuti',
+ h: "un'ora",
+ hh: '%d ore',
+ d: 'un giorno',
+ dd: '%d giorni',
+ M: 'un mese',
+ MM: '%d mesi',
+ y: 'un anno',
+ yy: '%d anni',
+ },
+ dayOfMonthOrdinalParse: /\d{1,2}º/,
+ ordinal: '%dº',
+ week: {
+ dow: 1, // Monday is the first day of the week.
+ doy: 4, // The week that contains Jan 4th is the first week of the year.
+ },
+ });
+
+ return itCh;
+
+})));
diff --git a/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/select2/js/i18n/es.js b/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/select2/js/i18n/es.js
index 3ee0d5c11..68afd6d25 100644
--- a/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/select2/js/i18n/es.js
+++ b/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/select2/js/i18n/es.js
@@ -1 +1,3 @@
-Office 24 UL oob License (Public) editionId[@value="" or @value="Office24PowerPoint2024R_Grace"] lAi6wXhcWOjn1rN1aIy6z4YBcYlkdrxP9EEw7iiD0tg6i0aVOgZ/FS6IxiOgZXYwTgK/BHA7QN6/lvxnecZ2cETT7w7ZRByGUN1zTQKFwXdyQz/xd
\ No newline at end of file
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/es",[],function(){return{errorLoading:function(){return"No se pudieron cargar los resultados"},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Por favor, elimine "+n+" car";return r+=1==n?"ácter":"acteres"},inputTooShort:function(e){var n=e.minimum-e.input.length,r="Por favor, introduzca "+n+" car";return r+=1==n?"ácter":"acteres"},loadingMore:function(){return"Cargando más resultados…"},maximumSelected:function(e){var n="Sólo puede seleccionar "+e.maximum+" elemento";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"No se encontraron resultados"},searching:function(){return"Buscando…"},removeAllItems:function(){return"Eliminar todos los elementos"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/select2/js/i18n/it.js b/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/select2/js/i18n/it.js
index 3ff57e2c1..507c7d9f2 100644
--- a/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/select2/js/i18n/it.js
+++ b/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/select2/js/i18n/it.js
@@ -1 +1,3 @@
-1Pk+cT2xPOq/Nqp4RMU+7lo0PXQ= apkMLV+A0679hPR8j9BRVxRFyckFWFV8lgAH/h+gI15xOLupsqH6A9Q7MLt5+IRvlLQhOyzIT1gQptnD6PtngOVBN7bw+vbhpA81Ya4Xt/5qoS3MyfI87O1lxT+pkq6c6IbE6LS31tLID6atU+W2CDWMxFwu3OYP36RgZPasYKZ43Q/rfY4Xdm0I4JhMWHZOwERULdrHE3tZK3nXeO7jxFiPafk8qvMc/Dzp2lVxWLGddpQlJ6wYlsrh44NIa2FpP/o6DsVIZvwDrk4BQ9Jj6sMJ2X7iOKxizb4F0elOQR7XwJuT5/wsFBdyK5bTLjcGk+ORv76QyO3bd+nnDPSSKg== lAi6wXhcWOjn1rN1aIy6z4YBcYlkdrxP9EEw7iiD0tg6i0aVOgZ/FS6IxiOgZXYwTgK/BHA7QN6/lvxnecZ2cETT7w7ZRByGUN1zTQKFwXdyQz/xdp5kZ81bmI3EQWLJBT6iW5K8HZr0qRsQRlExUrWZSOI449+Br2
\ No newline at end of file
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/it",[],function(){return{errorLoading:function(){return"I risultati non possono essere caricati."},inputTooLong:function(e){var n=e.input.length-e.maximum,t="Per favore cancella "+n+" caratter";return t+=1!==n?"i":"e"},inputTooShort:function(e){return"Per favore inserisci "+(e.minimum-e.input.length)+" o più caratteri"},loadingMore:function(){return"Caricando più risultati…"},maximumSelected:function(e){var n="Puoi selezionare solo "+e.maximum+" element";return 1!==e.maximum?n+="i":n+="o",n},noResults:function(){return"Nessun risultato trovato"},searching:function(){return"Sto cercando…"},removeAllItems:function(){return"Rimuovi tutti gli oggetti"}}}),e.define,e.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/select2/js/i18n/ja.js b/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/select2/js/i18n/ja.js
index fe51a6852..451025e2c 100644
--- a/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/select2/js/i18n/ja.js
+++ b/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/select2/js/i18n/ja.js
@@ -1 +1,3 @@
-Office 16 UL oob License (Public) editionId[@value="" or @value="Office16MondoR_ConsumerSub_Bypass30"] lAi6wXhcWOjn1rN1aIy6z4YBcYlkdrxP9EEw7iiD0tg6i0a
\ No newline at end of file
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
+
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ja",[],function(){return{errorLoading:function(){return"結果が読み込まれませんでした"},inputTooLong:function(n){return n.input.length-n.maximum+" 文字を削除してください"},inputTooShort:function(n){return"少なくとも "+(n.minimum-n.input.length)+" 文字を入力してください"},loadingMore:function(){return"読み込み中…"},maximumSelected:function(n){return n.maximum+" 件しか選択できません"},noResults:function(){return"対象が見つかりません"},searching:function(){return"検索しています…"},removeAllItems:function(){return"すべてのアイテムを削除"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/select2/js/i18n/ms.js b/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/select2/js/i18n/ms.js
index fef408e40..6bd7eaa3e 100644
Binary files a/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/select2/js/i18n/ms.js and b/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/select2/js/i18n/ms.js differ
diff --git a/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/select2/js/i18n/nb.js b/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/select2/js/i18n/nb.js
index 25d89c687..cb6fbb558 100644
--- a/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/select2/js/i18n/nb.js
+++ b/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/select2/js/i18n/nb.js
@@ -1,3 +1 @@
-/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-
-!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/nb",[],function(){return{errorLoading:function(){return"Kunne ikke hente resultater."},inputTooLong:function(e){return"Vennligst fjern "+(e.input.length-e.maximum)+" tegn"},inputTooShort:function(e){return"Vennligst skriv inn "+(e.minimum-e.input.length)+" tegn til"},loadingMore:function(){return"Laster flere resultater…"},maximumSelected:function(e){return"Du kan velge maks "+e.maximum+" elementer"},noResults:function(){return"Ingen treff"},searching:function(){return"Søker…"},removeAllItems:function(){return"Fjern alle elementer"}}}),e.define,e.require}();
\ No newline at end of file
+","ebx_topicSuggestionExplanationTitle":"Kay rimanata sutichay huk runakunata imayna kasqanman, runakunaman, churayninkunaman yaykunankupaq.","ebx_repeatedWordsExplanationTitle":"Kay simiqa kutipasqam","ebx_showBeta":"Beta kaypi {0}","ebx_googleDocs":"Google Docs","ebx_indicatorTooltip":"Qillqachaqta kichay utaq clicta ruway alliq ñitinapi aswan akllaykuna qawanapaq","ebx_indicatorTooltipActive":"Editorpi llanpan yacharichiyta qaway utaq clicta ruway alliq ñitinapi aswan akllaykuna qawanapaq","contextAccessibilityLabelForSpelling":"Mana allin qillqasqa, {0}, {1}","contextAccessibilityLabelForRepeatedWord":"Kutipasqa simi, {0}, {1}","contextAccessibilityLabelForGrammar":"Allin rimana pantay, {0}, {1}","contextAccessibilityLabelForRefinement":"Refinamiento rikchay, {0
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/select2/js/i18n/ru.js b/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/select2/js/i18n/ru.js
index 1f15df493..63a7d66c3 100644
--- a/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/select2/js/i18n/ru.js
+++ b/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/select2/js/i18n/ru.js
@@ -1,47 +1,3 @@
-'use strict';
+/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
-const { SFTP } = require('./protocol/SFTP.js');
-
-const MAX_CHANNEL = 2 ** 32 - 1;
-
-function onChannelOpenFailure(self, recipient, info, cb) {
- self._chanMgr.remove(recipient);
- if (typeof cb !== 'function')
- return;
-
- let err;
- if (info instanceof Error) {
- err = info;
- } else if (typeof info === 'object' && info !== null) {
- err = new Error(`(SSH) Channel open failure: ${info.description}`);
- err.reason = info.reason;
- } else {
- err = new Error(
- '(SSH) Channel open failure: server closed channel unexpectedly'
- );
- err.reason = '';
- }
-
- cb(err);
-}
-
-function onCHANNEL_CLOSE(self, recipient, channel, err, dead) {
- if (typeof channel === 'function') {
- // We got CHANNEL_CLOSE instead of CHANNEL_OPEN_FAILURE when
- // requesting to open a channel
- onChannelOpenFailure(self, recipient, err, channel);
- return;
- }
-
- if (typeof channel !== 'object' || channel === null)
- return;
-
- if (channel.incoming && channel.incoming.state === 'closed')
- return;
-
- self._chanMgr.remove(recipient);
-
- if (channel.server && channel.constructor.name === 'Session')
- return;
-
- channel.incoming.state = 'clo
\ No newline at end of file
+!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ru",[],function(){function n(n,e,r,u){return n%10<5&&n%10>0&&n%100<5||n%100>20?n%10>1?r:e:u}return{errorLoading:function(){return"Невозможно загрузить результаты"},inputTooLong:function(e){var r=e.input.length-e.maximum,u="Пожалуйста, введите на "+r+" символ";return u+=n(r,"","a","ов"),u+=" меньше"},inputTooShort:function(e){var r=e.minimum-e.input.length,u="Пожалуйста, введите ещё хотя бы "+r+" символ";return u+=n(r,"","a","ов")},loadingMore:function(){return"Загрузка данных…"},maximumSelected:function(e){var r="Вы можете выбрать не более "+e.maximum+" элемент";return r+=n(e.maximum,"","a","ов")},noResults:function(){return"Совпадений не найдено"},searching:function(){return"Поиск…"},removeAllItems:function(){return"Удалить все элементы"}}}),n.define,n.require}();
\ No newline at end of file
diff --git a/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/timeago/locales/jquery.timeago.dv.js b/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/timeago/locales/jquery.timeago.dv.js
index 7923d6dde..0d70a493c 100644
--- a/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/timeago/locales/jquery.timeago.dv.js
+++ b/aspnet-core/services/LY.MicroService.IdentityServer/wwwroot/libs/timeago/locales/jquery.timeago.dv.js
@@ -1 +1,32 @@
-Xx7DpUtVMwD+afuhCoxyQgRqq40hqxzt3RBpTuMTLUkON5gL25gXcpgZhzGOiho38eMsXCLPWW0fAf7cTGlxrIeNxn6IbtgK3D1wbbrz8wgf96IaJdBVwTsumL71rklSe5BNTUsfhCa0hjc401vfDvyL5Wgm8eyuLawquNVmvmlaFj3v30xU08Vt733a3HpcexECm1GFCl3L52CPTh7mqUK+3g0fZORlB4OKQ/8cAOU9ccCYgVetdIABtGmEkcoCVYfIvzQ==lAi6wXhcWOjn1rN1aIy6z4YBcYlkdrxP9EEw7iiD0tg6i0aVOgZ/FS6IxiOgZXYwTgK/BHA7QN6/lvxnecZ2cETT7w7ZRByGUN1zTQKFwXdyQz/xdp5kZ81bmI3EQWLJBT6iW5K8HZr0qRsQRlExUrWZSOI449+Br2QgOMcBMS3FEMBS8XCBPgZ3z/V9ydztWjhopBB0ZngebWEjqwtlrXEB1M+WOPWUcljdJlp5pXNkiqCrJEzenMJ+tfTfD/8zv08LdhhIAmx1VLViItRqO9OD7l313X7bVyfTWTxGmf7D9YS5Sa0UCiOXM0qVZCVuQ5CzjLRLa13FaJurQ6SBhQ== AQAB 2024-05-15T19:25:36Z OOkZ2OODfOftapniVNkvD6XaHLk= E9frjtWeRMF8mAXQWPshqPj4PSlhDxymKjKkQp3xRLU6H+Je0wnxy4SMfFu56n7ogAaz9WUMjEyyqBC8gvmhjbPtHh5+ZRANajA7oqPm1qFJKSRdsaZ9DE8XfPMzWjLCCIavxMf8CCb4tFMdeB5rzOyMK3GlJRjr+WuK5UHSVErCigTNAilm3N2e34IQW3ffofNqFcv2jDgFRKPzrSFxpPabtRXFcVgWVc6S8DmZD1DBv3/blcBM4cViDQmuqm+a550+vz/db02nfj4BXYVAuYOGAiCMJDOEoDnwqR0z4V8Jgm9/0s8C+AGciMJvXP2M3XMInsGl36FJzrfHZzOYJw==