UNPKG

n8n-editor-ui

Version:

Workflow Editor UI for n8n

2,257 lines 107 kB
;
(function () {
  System.register(["./chunk-legacy-Re9CbdfL.js", "./vue.runtime.esm-bundler-legacy--Sn1h8On.js", "./_MapCache-legacy-DlYNX_X1.js", "./src-legacy-uZTNWMC0.js", "./en-legacy-DJK4SpPN.js", "./preload-helper-legacy-CXRjoQ0T.js", "./_plugin-vue_export-helper-legacy-DZMI5HPp.js", "./truncate-legacy-BGje52Or.js", "./_initCloneObject-legacy-BQarUtj5.js", "./table-legacy-CYxTRgYJ.js", "./icon-legacy-CqVXaCIS.js", "./overlay-legacy-o1gtoD8p.js", "./empty-legacy-CA9D6itE.js", "./useMessage-legacy-M2m6s8Ce.js", "./useTelemetry-legacy-B3pzzkAE.js", "./useToast-legacy-C4Vu5mt9.js", "./sanitize-html-legacy-DLqXJu-U.js", "./CalendarDate-legacy-BUvNgcoo.js", "./path-browserify-legacy-C6ml8BkF.js", "./constants-legacy-TKxWCqvM.js", "./merge-legacy-8xjIc_ts.js", "./_baseOrderBy-legacy-CB2Dh5d_.js", "./dateformat-legacy-C4HUJTCr.js", "./useDebounce-legacy-CqZ-fJEm.js", "./useExternalHooks-legacy-8pg6K3ln.js", "./useStyles-legacy-E8NPEyeD.js", "./cloudPlan.store-legacy-U_Bztyyz.js", "./versions.store-legacy-BtvVzXUy.js", "./usePageRedirectionHelper-legacy-D0bLDat3.js", "./sso.store-legacy-Bv88fDKQ.js", "./vue-legacy-DYOFx85F.js"], function (_export, _context) {
    "use strict";

    var __toESM, __commonJS, computed, toDisplayString, createElementBlock, createCommentVNode, unref, ref, createVNode, defineComponent, createBlock, onMounted, withCtx, openBlock, createTextVNode, resolveDirective, normalizeClass, createBaseVNode, withDirectives, useI18n, N8nActionBox_default, N8nInfoTip_default, N8nButton_default, createFormEventBus, N8nFormInputs_default, N8nHeading_default, __plugin_vue_export_helper_default, ElTableColumn, ElTable, useMessage, useSettingsStore, useDocumentTitle, convertToDisplayDate, capitalizeFirstLetter, useToast, MODAL_CONFIRM, usePageRedirectionHelper, useSSOStore, require_vue, __vite_style__, require_humanize_duration, require_v3_infinite_loading_umd, import_humanize_duration, import_v3_infinite_loading_umd, _hoisted_1, _hoisted_2, _hoisted_3, _hoisted_4, SettingsLdapView_vue_vue_type_script_setup_true_lang_default, container, syncTable, header, enableFeatureContainer, sectionHeader, settingsForm, docsInfoTip, SettingsLdapView_vue_vue_type_style_index_0_lang_module_default, cssModules, SettingsLdapView_default;
    return {
      setters: [function (_chunkLegacy001Js) {
        __toESM = _chunkLegacy001Js.o;
        __commonJS = _chunkLegacy001Js.t;
      }, function (_vueRuntimeEsmBundlerLegacy003Js) {
        computed = _vueRuntimeEsmBundlerLegacy003Js.C;
        toDisplayString = _vueRuntimeEsmBundlerLegacy003Js.Cn;
        createElementBlock = _vueRuntimeEsmBundlerLegacy003Js.D;
        createCommentVNode = _vueRuntimeEsmBundlerLegacy003Js.E;
        unref = _vueRuntimeEsmBundlerLegacy003Js.Gt;
        ref = _vueRuntimeEsmBundlerLegacy003Js.It;
        createVNode = _vueRuntimeEsmBundlerLegacy003Js.M;
        defineComponent = _vueRuntimeEsmBundlerLegacy003Js.P;
        createBlock = _vueRuntimeEsmBundlerLegacy003Js.T;
        onMounted = _vueRuntimeEsmBundlerLegacy003Js.Z;
        withCtx = _vueRuntimeEsmBundlerLegacy003Js.bt;
        openBlock = _vueRuntimeEsmBundlerLegacy003Js.et;
        createTextVNode = _vueRuntimeEsmBundlerLegacy003Js.j;
        resolveDirective = _vueRuntimeEsmBundlerLegacy003Js.st;
        normalizeClass = _vueRuntimeEsmBundlerLegacy003Js.vn;
        createBaseVNode = _vueRuntimeEsmBundlerLegacy003Js.w;
        withDirectives = _vueRuntimeEsmBundlerLegacy003Js.xt;
      }, function (_MapCacheLegacy005Js) {
        useI18n = _MapCacheLegacy005Js.gt;
      }, function (_srcLegacy007Js) {
        N8nActionBox_default = _srcLegacy007Js.Ct;
        N8nInfoTip_default = _srcLegacy007Js.F;
        N8nButton_default = _srcLegacy007Js.Hn;
        createFormEventBus = _srcLegacy007Js.bt;
        N8nFormInputs_default = _srcLegacy007Js.z;
        N8nHeading_default = _srcLegacy007Js.zn;
      }, function (_enLegacy00bJs) {}, function (_preloadHelperLegacy00dJs) {}, function (_pluginVue_exportHelperLegacy00fJs) {
        __plugin_vue_export_helper_default = _pluginVue_exportHelperLegacy00fJs.t;
      }, function (_truncateLegacy00hJs) {}, function (_initCloneObjectLegacy00jJs) {}, function (_tableLegacy00lJs) {
        ElTableColumn = _tableLegacy00lJs.n;
        ElTable = _tableLegacy00lJs.t;
      }, function (_iconLegacy00nJs) {}, function (_overlayLegacy00rJs) {}, function (_emptyLegacy00vJs) {}, function (_useMessageLegacy00xJs) {
        useMessage = _useMessageLegacy00xJs.t;
      }, function (_useTelemetryLegacy00HJs) {
        useSettingsStore = _useTelemetryLegacy00HJs.Ho;
        useDocumentTitle = _useTelemetryLegacy00HJs.Tn;
        convertToDisplayDate = _useTelemetryLegacy00HJs.mi;
      }, function (_useToastLegacy00JJs) {
        capitalizeFirstLetter = _useToastLegacy00JJs.n;
        useToast = _useToastLegacy00JJs.t;
      }, function (_sanitizeHtmlLegacy00LJs) {}, function (_CalendarDateLegacy00NJs) {}, function (_pathBrowserifyLegacy00RJs) {}, function (_constantsLegacy00TJs) {
        MODAL_CONFIRM = _constantsLegacy00TJs.ts;
      }, function (_mergeLegacy00VJs) {}, function (_baseOrderByLegacy00ZJs) {}, function (_dateformatLegacy00$Js) {}, function (_useDebounceLegacy011Js) {}, function (_useExternalHooksLegacy013Js) {}, function (_useStylesLegacy015Js) {}, function (_cloudPlanStoreLegacy01dJs) {}, function (_versionsStoreLegacy01LJs) {}, function (_usePageRedirectionHelperLegacy01NJs) {
        usePageRedirectionHelper = _usePageRedirectionHelperLegacy01NJs.t;
      }, function (_ssoStoreLegacy039Js) {
        useSSOStore = _ssoStoreLegacy039Js.n;
      }, function (_vueLegacy03xJs) {
        require_vue = _vueLegacy03xJs.t;
      }],
      execute: function () {
        __vite_style__ = document.createElement('style');
        __vite_style__.textContent = "/* BEM support Func\n -------------------------- */\n/* Transition\n-------------------------- */\n/* Color\n-------------------------- */\n/* Link\n-------------------------- */\n/* Border\n-------------------------- */\n/* Outline\n-------------------------- */\n/* Box shadow\n-------------------------- */\n/* Fill\n-------------------------- */\n/* Typography\n-------------------------- */\n/* z-index\n-------------------------- */\n/* Disable base\n-------------------------- */\n/* Icon\n-------------------------- */\n/* Checkbox\n-------------------------- */\n/* Radio\n-------------------------- */\n/* Select\n-------------------------- */\n/* Alert\n-------------------------- */\n/* MessageBox\n-------------------------- */\n/* Message\n-------------------------- */\n/* Notification\n-------------------------- */\n/* Input\n-------------------------- */\n/* Cascader\n-------------------------- */\n/* Group\n-------------------------- */\n/* Tab\n-------------------------- */\n/* Button\n-------------------------- */\n/* cascader\n-------------------------- */\n/* Switch\n-------------------------- */\n/* Dialog\n-------------------------- */\n/* Table\n-------------------------- */\n/* Pagination\n-------------------------- */\n/* Popup\n-------------------------- */\n/* Popover\n-------------------------- */\n/* Tooltip\n-------------------------- */\n/* Tag\n-------------------------- */\n/* Tree\n-------------------------- */\n/* Dropdown\n-------------------------- */\n/* Badge\n-------------------------- */\n/* Card\n--------------------------*/\n/* Slider\n--------------------------*/\n/* Steps\n--------------------------*/\n/* Menu\n--------------------------*/\n/* Rate\n--------------------------*/\n/* DatePicker\n--------------------------*/\n/* Loading\n--------------------------*/\n/* Scrollbar\n--------------------------*/\n/* Carousel\n--------------------------*/\n/* Collapse\n--------------------------*/\n/* Transfer\n--------------------------*/\n/* Header\n  --------------------------*/\n/* Footer\n--------------------------*/\n/* Main\n--------------------------*/\n/* Timeline\n--------------------------*/\n/* Backtop\n--------------------------*/\n/* Link\n--------------------------*/\n/* Calendar\n--------------------------*/\n/* Form\n-------------------------- */\n/* Avatar\n--------------------------*/\n/* Break-point\n--------------------------*/\n/* Break-points\n -------------------------- */\n/* Scrollbar\n -------------------------- */\n/* Placeholder\n -------------------------- */\n/* BEM\n -------------------------- */\n._container_y6w94_123 > * {\n  margin-bottom: var(--spacing--2xl);\n}\n._syncTable_y6w94_127 {\n  margin-bottom: var(--spacing--2xl);\n}\n._header_y6w94_131 {\n  display: flex;\n  align-items: center;\n  white-space: nowrap;\n}\n._header_y6w94_131 *:first-child {\n  flex-grow: 1;\n}\n._enableFeatureContainer_y6w94_140 {\n  margin-bottom: var(--spacing--xl);\n}\n._enableFeatureContainer_y6w94_140 > span {\n  font-size: var(--font-size--sm);\n  font-weight: var(--font-weight--bold);\n  padding: 0;\n}\n._enableFeatureContainer_y6w94_140 > * {\n  padding: 0.5em;\n}\n._sectionHeader_y6w94_152 {\n  margin-bottom: var(--spacing--sm);\n}\n._settingsForm_y6w94_156 .form-text {\n  margin-top: var(--spacing--xl);\n}\n._docsInfoTip_y6w94_160, ._docsInfoTip_y6w94_160 > div {\n  margin-bottom: var(--spacing--xl);\n}/*$vite$:1*/";
        document.head.appendChild(__vite_style__);
        //#region ../../../node_modules/.pnpm/humanize-duration@3.27.3/node_modules/humanize-duration/humanize-duration.js
        require_humanize_duration = /* @__PURE__ */__commonJS({
          "../../../node_modules/.pnpm/humanize-duration@3.27.3/node_modules/humanize-duration/humanize-duration.js": (exports, module) => {
            (function () {
              var greek = {
                y: function (c) {
                  return c === 1 ? "χρόνος" : "χρόνια";
                },
                mo: function (c) {
                  return c === 1 ? "μήνας" : "μήνες";
                },
                w: function (c) {
                  return c === 1 ? "εβδομάδα" : "εβδομάδες";
                },
                d: function (c) {
                  return c === 1 ? "μέρα" : "μέρες";
                },
                h: function (c) {
                  return c === 1 ? "ώρα" : "ώρες";
                },
                m: function (c) {
                  return c === 1 ? "λεπτό" : "λεπτά";
                },
                s: function (c) {
                  return c === 1 ? "δευτερόλεπτο" : "δευτερόλεπτα";
                },
                ms: function (c) {
                  return (c === 1 ? "χιλιοστό" : "χιλιοστά") + " του δευτερολέπτου";
                },
                decimal: ","
              };
              var ARABIC_DIGITS = ["۰", "١", "٢", "٣", "٤", "٥", "٦", "٧", "٨", "٩"];
              var LANGUAGES = {
                af: {
                  y: "jaar",
                  mo: function (c) {
                    return "maand" + (c === 1 ? "" : "e");
                  },
                  w: function (c) {
                    return c === 1 ? "week" : "weke";
                  },
                  d: function (c) {
                    return c === 1 ? "dag" : "dae";
                  },
                  h: function (c) {
                    return c === 1 ? "uur" : "ure";
                  },
                  m: function (c) {
                    return c === 1 ? "minuut" : "minute";
                  },
                  s: function (c) {
                    return "sekonde" + (c === 1 ? "" : "s");
                  },
                  ms: function (c) {
                    return "millisekonde" + (c === 1 ? "" : "s");
                  },
                  decimal: ","
                },
                ar: {
                  y: function (c) {
                    return ["سنة", "سنتان", "سنوات"][getArabicForm(c)];
                  },
                  mo: function (c) {
                    return ["شهر", "شهران", "أشهر"][getArabicForm(c)];
                  },
                  w: function (c) {
                    return ["أسبوع", "أسبوعين", "أسابيع"][getArabicForm(c)];
                  },
                  d: function (c) {
                    return ["يوم", "يومين", "أيام"][getArabicForm(c)];
                  },
                  h: function (c) {
                    return ["ساعة", "ساعتين", "ساعات"][getArabicForm(c)];
                  },
                  m: function (c) {
                    return ["دقيقة", "دقيقتان", "دقائق"][getArabicForm(c)];
                  },
                  s: function (c) {
                    return ["ثانية", "ثانيتان", "ثواني"][getArabicForm(c)];
                  },
                  ms: function (c) {
                    return ["جزء من الثانية", "جزآن من الثانية", "أجزاء من الثانية"][getArabicForm(c)];
                  },
                  decimal: ",",
                  delimiter: " و ",
                  _formatCount: function (count, decimal) {
                    var replacements = assign(ARABIC_DIGITS, {
                      ".": decimal
                    });
                    var characters = count.toString().split("");
                    for (var i = 0; i < characters.length; i++) {
                      var character = characters[i];
                      if (has(replacements, character)) characters[i] = replacements[character];
                    }
                    return characters.join("");
                  }
                },
                bg: {
                  y: function (c) {
                    return ["години", "година", "години"][getSlavicForm(c)];
                  },
                  mo: function (c) {
                    return ["месеца", "месец", "месеца"][getSlavicForm(c)];
                  },
                  w: function (c) {
                    return ["седмици", "седмица", "седмици"][getSlavicForm(c)];
                  },
                  d: function (c) {
                    return ["дни", "ден", "дни"][getSlavicForm(c)];
                  },
                  h: function (c) {
                    return ["часа", "час", "часа"][getSlavicForm(c)];
                  },
                  m: function (c) {
                    return ["минути", "минута", "минути"][getSlavicForm(c)];
                  },
                  s: function (c) {
                    return ["секунди", "секунда", "секунди"][getSlavicForm(c)];
                  },
                  ms: function (c) {
                    return ["милисекунди", "милисекунда", "милисекунди"][getSlavicForm(c)];
                  },
                  decimal: ","
                },
                bn: {
                  y: "বছর",
                  mo: "মাস",
                  w: "সপ্তাহ",
                  d: "দিন",
                  h: "ঘন্টা",
                  m: "মিনিট",
                  s: "সেকেন্ড",
                  ms: "মিলিসেকেন্ড"
                },
                ca: {
                  y: function (c) {
                    return "any" + (c === 1 ? "" : "s");
                  },
                  mo: function (c) {
                    return "mes" + (c === 1 ? "" : "os");
                  },
                  w: function (c) {
                    return "setman" + (c === 1 ? "a" : "es");
                  },
                  d: function (c) {
                    return "di" + (c === 1 ? "a" : "es");
                  },
                  h: function (c) {
                    return "hor" + (c === 1 ? "a" : "es");
                  },
                  m: function (c) {
                    return "minut" + (c === 1 ? "" : "s");
                  },
                  s: function (c) {
                    return "segon" + (c === 1 ? "" : "s");
                  },
                  ms: function (c) {
                    return "milisegon" + (c === 1 ? "" : "s");
                  },
                  decimal: ","
                },
                cs: {
                  y: function (c) {
                    return ["rok", "roku", "roky", "let"][getCzechOrSlovakForm(c)];
                  },
                  mo: function (c) {
                    return ["měsíc", "měsíce", "měsíce", "měsíců"][getCzechOrSlovakForm(c)];
                  },
                  w: function (c) {
                    return ["týden", "týdne", "týdny", "týdnů"][getCzechOrSlovakForm(c)];
                  },
                  d: function (c) {
                    return ["den", "dne", "dny", "dní"][getCzechOrSlovakForm(c)];
                  },
                  h: function (c) {
                    return ["hodina", "hodiny", "hodiny", "hodin"][getCzechOrSlovakForm(c)];
                  },
                  m: function (c) {
                    return ["minuta", "minuty", "minuty", "minut"][getCzechOrSlovakForm(c)];
                  },
                  s: function (c) {
                    return ["sekunda", "sekundy", "sekundy", "sekund"][getCzechOrSlovakForm(c)];
                  },
                  ms: function (c) {
                    return ["milisekunda", "milisekundy", "milisekundy", "milisekund"][getCzechOrSlovakForm(c)];
                  },
                  decimal: ","
                },
                cy: {
                  y: "flwyddyn",
                  mo: "mis",
                  w: "wythnos",
                  d: "diwrnod",
                  h: "awr",
                  m: "munud",
                  s: "eiliad",
                  ms: "milieiliad"
                },
                da: {
                  y: "år",
                  mo: function (c) {
                    return "måned" + (c === 1 ? "" : "er");
                  },
                  w: function (c) {
                    return "uge" + (c === 1 ? "" : "r");
                  },
                  d: function (c) {
                    return "dag" + (c === 1 ? "" : "e");
                  },
                  h: function (c) {
                    return "time" + (c === 1 ? "" : "r");
                  },
                  m: function (c) {
                    return "minut" + (c === 1 ? "" : "ter");
                  },
                  s: function (c) {
                    return "sekund" + (c === 1 ? "" : "er");
                  },
                  ms: function (c) {
                    return "millisekund" + (c === 1 ? "" : "er");
                  },
                  decimal: ","
                },
                de: {
                  y: function (c) {
                    return "Jahr" + (c === 1 ? "" : "e");
                  },
                  mo: function (c) {
                    return "Monat" + (c === 1 ? "" : "e");
                  },
                  w: function (c) {
                    return "Woche" + (c === 1 ? "" : "n");
                  },
                  d: function (c) {
                    return "Tag" + (c === 1 ? "" : "e");
                  },
                  h: function (c) {
                    return "Stunde" + (c === 1 ? "" : "n");
                  },
                  m: function (c) {
                    return "Minute" + (c === 1 ? "" : "n");
                  },
                  s: function (c) {
                    return "Sekunde" + (c === 1 ? "" : "n");
                  },
                  ms: function (c) {
                    return "Millisekunde" + (c === 1 ? "" : "n");
                  },
                  decimal: ","
                },
                el: greek,
                en: {
                  y: function (c) {
                    return "year" + (c === 1 ? "" : "s");
                  },
                  mo: function (c) {
                    return "month" + (c === 1 ? "" : "s");
                  },
                  w: function (c) {
                    return "week" + (c === 1 ? "" : "s");
                  },
                  d: function (c) {
                    return "day" + (c === 1 ? "" : "s");
                  },
                  h: function (c) {
                    return "hour" + (c === 1 ? "" : "s");
                  },
                  m: function (c) {
                    return "minute" + (c === 1 ? "" : "s");
                  },
                  s: function (c) {
                    return "second" + (c === 1 ? "" : "s");
                  },
                  ms: function (c) {
                    return "millisecond" + (c === 1 ? "" : "s");
                  },
                  decimal: "."
                },
                eo: {
                  y: function (c) {
                    return "jaro" + (c === 1 ? "" : "j");
                  },
                  mo: function (c) {
                    return "monato" + (c === 1 ? "" : "j");
                  },
                  w: function (c) {
                    return "semajno" + (c === 1 ? "" : "j");
                  },
                  d: function (c) {
                    return "tago" + (c === 1 ? "" : "j");
                  },
                  h: function (c) {
                    return "horo" + (c === 1 ? "" : "j");
                  },
                  m: function (c) {
                    return "minuto" + (c === 1 ? "" : "j");
                  },
                  s: function (c) {
                    return "sekundo" + (c === 1 ? "" : "j");
                  },
                  ms: function (c) {
                    return "milisekundo" + (c === 1 ? "" : "j");
                  },
                  decimal: ","
                },
                es: {
                  y: function (c) {
                    return "año" + (c === 1 ? "" : "s");
                  },
                  mo: function (c) {
                    return "mes" + (c === 1 ? "" : "es");
                  },
                  w: function (c) {
                    return "semana" + (c === 1 ? "" : "s");
                  },
                  d: function (c) {
                    return "día" + (c === 1 ? "" : "s");
                  },
                  h: function (c) {
                    return "hora" + (c === 1 ? "" : "s");
                  },
                  m: function (c) {
                    return "minuto" + (c === 1 ? "" : "s");
                  },
                  s: function (c) {
                    return "segundo" + (c === 1 ? "" : "s");
                  },
                  ms: function (c) {
                    return "milisegundo" + (c === 1 ? "" : "s");
                  },
                  decimal: ","
                },
                et: {
                  y: function (c) {
                    return "aasta" + (c === 1 ? "" : "t");
                  },
                  mo: function (c) {
                    return "kuu" + (c === 1 ? "" : "d");
                  },
                  w: function (c) {
                    return "nädal" + (c === 1 ? "" : "at");
                  },
                  d: function (c) {
                    return "päev" + (c === 1 ? "" : "a");
                  },
                  h: function (c) {
                    return "tund" + (c === 1 ? "" : "i");
                  },
                  m: function (c) {
                    return "minut" + (c === 1 ? "" : "it");
                  },
                  s: function (c) {
                    return "sekund" + (c === 1 ? "" : "it");
                  },
                  ms: function (c) {
                    return "millisekund" + (c === 1 ? "" : "it");
                  },
                  decimal: ","
                },
                eu: {
                  y: "urte",
                  mo: "hilabete",
                  w: "aste",
                  d: "egun",
                  h: "ordu",
                  m: "minutu",
                  s: "segundo",
                  ms: "milisegundo",
                  decimal: ","
                },
                fa: {
                  y: "سال",
                  mo: "ماه",
                  w: "هفته",
                  d: "روز",
                  h: "ساعت",
                  m: "دقیقه",
                  s: "ثانیه",
                  ms: "میلی ثانیه",
                  decimal: "."
                },
                fi: {
                  y: function (c) {
                    return c === 1 ? "vuosi" : "vuotta";
                  },
                  mo: function (c) {
                    return c === 1 ? "kuukausi" : "kuukautta";
                  },
                  w: function (c) {
                    return "viikko" + (c === 1 ? "" : "a");
                  },
                  d: function (c) {
                    return "päivä" + (c === 1 ? "" : "ä");
                  },
                  h: function (c) {
                    return "tunti" + (c === 1 ? "" : "a");
                  },
                  m: function (c) {
                    return "minuutti" + (c === 1 ? "" : "a");
                  },
                  s: function (c) {
                    return "sekunti" + (c === 1 ? "" : "a");
                  },
                  ms: function (c) {
                    return "millisekunti" + (c === 1 ? "" : "a");
                  },
                  decimal: ","
                },
                fo: {
                  y: "ár",
                  mo: function (c) {
                    return c === 1 ? "mánaður" : "mánaðir";
                  },
                  w: function (c) {
                    return c === 1 ? "vika" : "vikur";
                  },
                  d: function (c) {
                    return c === 1 ? "dagur" : "dagar";
                  },
                  h: function (c) {
                    return c === 1 ? "tími" : "tímar";
                  },
                  m: function (c) {
                    return c === 1 ? "minuttur" : "minuttir";
                  },
                  s: "sekund",
                  ms: "millisekund",
                  decimal: ","
                },
                fr: {
                  y: function (c) {
                    return "an" + (c >= 2 ? "s" : "");
                  },
                  mo: "mois",
                  w: function (c) {
                    return "semaine" + (c >= 2 ? "s" : "");
                  },
                  d: function (c) {
                    return "jour" + (c >= 2 ? "s" : "");
                  },
                  h: function (c) {
                    return "heure" + (c >= 2 ? "s" : "");
                  },
                  m: function (c) {
                    return "minute" + (c >= 2 ? "s" : "");
                  },
                  s: function (c) {
                    return "seconde" + (c >= 2 ? "s" : "");
                  },
                  ms: function (c) {
                    return "milliseconde" + (c >= 2 ? "s" : "");
                  },
                  decimal: ","
                },
                gr: greek,
                he: {
                  y: function (c) {
                    return c === 1 ? "שנה" : "שנים";
                  },
                  mo: function (c) {
                    return c === 1 ? "חודש" : "חודשים";
                  },
                  w: function (c) {
                    return c === 1 ? "שבוע" : "שבועות";
                  },
                  d: function (c) {
                    return c === 1 ? "יום" : "ימים";
                  },
                  h: function (c) {
                    return c === 1 ? "שעה" : "שעות";
                  },
                  m: function (c) {
                    return c === 1 ? "דקה" : "דקות";
                  },
                  s: function (c) {
                    return c === 1 ? "שניה" : "שניות";
                  },
                  ms: function (c) {
                    return c === 1 ? "מילישנייה" : "מילישניות";
                  },
                  decimal: "."
                },
                hr: {
                  y: function (c) {
                    if (c % 10 === 2 || c % 10 === 3 || c % 10 === 4) return "godine";
                    return "godina";
                  },
                  mo: function (c) {
                    if (c === 1) return "mjesec";else if (c === 2 || c === 3 || c === 4) return "mjeseca";
                    return "mjeseci";
                  },
                  w: function (c) {
                    if (c % 10 === 1 && c !== 11) return "tjedan";
                    return "tjedna";
                  },
                  d: function (c) {
                    return c === 1 ? "dan" : "dana";
                  },
                  h: function (c) {
                    if (c === 1) return "sat";else if (c === 2 || c === 3 || c === 4) return "sata";
                    return "sati";
                  },
                  m: function (c) {
                    var mod10 = c % 10;
                    if ((mod10 === 2 || mod10 === 3 || mod10 === 4) && (c < 10 || c > 14)) return "minute";
                    return "minuta";
                  },
                  s: function (c) {
                    var mod10 = c % 10;
                    if (mod10 === 5 || Math.floor(c) === c && c >= 10 && c <= 19) return "sekundi";else if (mod10 === 1) return "sekunda";else if (mod10 === 2 || mod10 === 3 || mod10 === 4) return "sekunde";
                    return "sekundi";
                  },
                  ms: function (c) {
                    if (c === 1) return "milisekunda";else if (c % 10 === 2 || c % 10 === 3 || c % 10 === 4) return "milisekunde";
                    return "milisekundi";
                  },
                  decimal: ","
                },
                hi: {
                  y: "साल",
                  mo: function (c) {
                    return c === 1 ? "महीना" : "महीने";
                  },
                  w: function (c) {
                    return c === 1 ? "हफ़्ता" : "हफ्ते";
                  },
                  d: "दिन",
                  h: function (c) {
                    return c === 1 ? "घंटा" : "घंटे";
                  },
                  m: "मिनट",
                  s: "सेकंड",
                  ms: "मिलीसेकंड",
                  decimal: "."
                },
                hu: {
                  y: "év",
                  mo: "hónap",
                  w: "hét",
                  d: "nap",
                  h: "óra",
                  m: "perc",
                  s: "másodperc",
                  ms: "ezredmásodperc",
                  decimal: ","
                },
                id: {
                  y: "tahun",
                  mo: "bulan",
                  w: "minggu",
                  d: "hari",
                  h: "jam",
                  m: "menit",
                  s: "detik",
                  ms: "milidetik",
                  decimal: "."
                },
                is: {
                  y: "ár",
                  mo: function (c) {
                    return "mánuð" + (c === 1 ? "ur" : "ir");
                  },
                  w: function (c) {
                    return "vik" + (c === 1 ? "a" : "ur");
                  },
                  d: function (c) {
                    return "dag" + (c === 1 ? "ur" : "ar");
                  },
                  h: function (c) {
                    return "klukkutím" + (c === 1 ? "i" : "ar");
                  },
                  m: function (c) {
                    return "mínút" + (c === 1 ? "a" : "ur");
                  },
                  s: function (c) {
                    return "sekúnd" + (c === 1 ? "a" : "ur");
                  },
                  ms: function (c) {
                    return "millisekúnd" + (c === 1 ? "a" : "ur");
                  },
                  decimal: "."
                },
                it: {
                  y: function (c) {
                    return "ann" + (c === 1 ? "o" : "i");
                  },
                  mo: function (c) {
                    return "mes" + (c === 1 ? "e" : "i");
                  },
                  w: function (c) {
                    return "settiman" + (c === 1 ? "a" : "e");
                  },
                  d: function (c) {
                    return "giorn" + (c === 1 ? "o" : "i");
                  },
                  h: function (c) {
                    return "or" + (c === 1 ? "a" : "e");
                  },
                  m: function (c) {
                    return "minut" + (c === 1 ? "o" : "i");
                  },
                  s: function (c) {
                    return "second" + (c === 1 ? "o" : "i");
                  },
                  ms: function (c) {
                    return "millisecond" + (c === 1 ? "o" : "i");
                  },
                  decimal: ","
                },
                ja: {
                  y: "年",
                  mo: "ヶ月",
                  w: "週",
                  d: "日",
                  h: "時間",
                  m: "分",
                  s: "秒",
                  ms: "ミリ秒",
                  decimal: "."
                },
                km: {
                  y: "ឆ្នាំ",
                  mo: "ខែ",
                  w: "សប្តាហ៍",
                  d: "ថ្ងៃ",
                  h: "ម៉ោង",
                  m: "នាទី",
                  s: "វិនាទី",
                  ms: "មិល្លីវិនាទី"
                },
                kn: {
                  y: function (c) {
                    return c === 1 ? "ವರ್ಷ" : "ವರ್ಷಗಳು";
                  },
                  mo: function (c) {
                    return c === 1 ? "ತಿಂಗಳು" : "ತಿಂಗಳುಗಳು";
                  },
                  w: function (c) {
                    return c === 1 ? "ವಾರ" : "ವಾರಗಳು";
                  },
                  d: function (c) {
                    return c === 1 ? "ದಿನ" : "ದಿನಗಳು";
                  },
                  h: function (c) {
                    return c === 1 ? "ಗಂಟೆ" : "ಗಂಟೆಗಳು";
                  },
                  m: function (c) {
                    return c === 1 ? "ನಿಮಿಷ" : "ನಿಮಿಷಗಳು";
                  },
                  s: function (c) {
                    return c === 1 ? "ಸೆಕೆಂಡ್" : "ಸೆಕೆಂಡುಗಳು";
                  },
                  ms: function (c) {
                    return c === 1 ? "ಮಿಲಿಸೆಕೆಂಡ್" : "ಮಿಲಿಸೆಕೆಂಡುಗಳು";
                  }
                },
                ko: {
                  y: "년",
                  mo: "개월",
                  w: "주일",
                  d: "일",
                  h: "시간",
                  m: "분",
                  s: "초",
                  ms: "밀리 초",
                  decimal: "."
                },
                ku: {
                  y: "sal",
                  mo: "meh",
                  w: "hefte",
                  d: "roj",
                  h: "seet",
                  m: "deqe",
                  s: "saniye",
                  ms: "mîlîçirk",
                  decimal: ","
                },
                lo: {
                  y: "ປີ",
                  mo: "ເດືອນ",
                  w: "ອາທິດ",
                  d: "ມື້",
                  h: "ຊົ່ວໂມງ",
                  m: "ນາທີ",
                  s: "ວິນາທີ",
                  ms: "ມິນລິວິນາທີ",
                  decimal: ","
                },
                lt: {
                  y: function (c) {
                    return c % 10 === 0 || c % 100 >= 10 && c % 100 <= 20 ? "metų" : "metai";
                  },
                  mo: function (c) {
                    return ["mėnuo", "mėnesiai", "mėnesių"][getLithuanianForm(c)];
                  },
                  w: function (c) {
                    return ["savaitė", "savaitės", "savaičių"][getLithuanianForm(c)];
                  },
                  d: function (c) {
                    return ["diena", "dienos", "dienų"][getLithuanianForm(c)];
                  },
                  h: function (c) {
                    return ["valanda", "valandos", "valandų"][getLithuanianForm(c)];
                  },
                  m: function (c) {
                    return ["minutė", "minutės", "minučių"][getLithuanianForm(c)];
                  },
                  s: function (c) {
                    return ["sekundė", "sekundės", "sekundžių"][getLithuanianForm(c)];
                  },
                  ms: function (c) {
                    return ["milisekundė", "milisekundės", "milisekundžių"][getLithuanianForm(c)];
                  },
                  decimal: ","
                },
                lv: {
                  y: function (c) {
                    return getLatvianForm(c) ? "gads" : "gadi";
                  },
                  mo: function (c) {
                    return getLatvianForm(c) ? "mēnesis" : "mēneši";
                  },
                  w: function (c) {
                    return getLatvianForm(c) ? "nedēļa" : "nedēļas";
                  },
                  d: function (c) {
                    return getLatvianForm(c) ? "diena" : "dienas";
                  },
                  h: function (c) {
                    return getLatvianForm(c) ? "stunda" : "stundas";
                  },
                  m: function (c) {
                    return getLatvianForm(c) ? "minūte" : "minūtes";
                  },
                  s: function (c) {
                    return getLatvianForm(c) ? "sekunde" : "sekundes";
                  },
                  ms: function (c) {
                    return getLatvianForm(c) ? "milisekunde" : "milisekundes";
                  },
                  decimal: ","
                },
                mk: {
                  y: function (c) {
                    return c === 1 ? "година" : "години";
                  },
                  mo: function (c) {
                    return c === 1 ? "месец" : "месеци";
                  },
                  w: function (c) {
                    return c === 1 ? "недела" : "недели";
                  },
                  d: function (c) {
                    return c === 1 ? "ден" : "дена";
                  },
                  h: function (c) {
                    return c === 1 ? "час" : "часа";
                  },
                  m: function (c) {
                    return c === 1 ? "минута" : "минути";
                  },
                  s: function (c) {
                    return c === 1 ? "секунда" : "секунди";
                  },
                  ms: function (c) {
                    return c === 1 ? "милисекунда" : "милисекунди";
                  },
                  decimal: ","
                },
                mr: {
                  y: function (c) {
                    return c === 1 ? "वर्ष" : "वर्षे";
                  },
                  mo: function (c) {
                    return c === 1 ? "महिना" : "महिने";
                  },
                  w: function (c) {
                    return c === 1 ? "आठवडा" : "आठवडे";
                  },
                  d: "दिवस",
                  h: "तास",
                  m: function (c) {
                    return c === 1 ? "मिनिट" : "मिनिटे";
                  },
                  s: "सेकंद",
                  ms: "मिलिसेकंद"
                },
                ms: {
                  y: "tahun",
                  mo: "bulan",
                  w: "minggu",
                  d: "hari",
                  h: "jam",
                  m: "minit",
                  s: "saat",
                  ms: "milisaat",
                  decimal: "."
                },
                nl: {
                  y: "jaar",
                  mo: function (c) {
                    return c === 1 ? "maand" : "maanden";
                  },
                  w: function (c) {
                    return c === 1 ? "week" : "weken";
                  },
                  d: function (c) {
                    return c === 1 ? "dag" : "dagen";
                  },
                  h: "uur",
                  m: function (c) {
                    return c === 1 ? "minuut" : "minuten";
                  },
                  s: function (c) {
                    return c === 1 ? "seconde" : "seconden";
                  },
                  ms: function (c) {
                    return c === 1 ? "milliseconde" : "milliseconden";
                  },
                  decimal: ","
                },
                no: {
                  y: "år",
                  mo: function (c) {
                    return "måned" + (c === 1 ? "" : "er");
                  },
                  w: function (c) {
                    return "uke" + (c === 1 ? "" : "r");
                  },
                  d: function (c) {
                    return "dag" + (c === 1 ? "" : "er");
                  },
                  h: function (c) {
                    return "time" + (c === 1 ? "" : "r");
                  },
                  m: function (c) {
                    return "minutt" + (c === 1 ? "" : "er");
                  },
                  s: function (c) {
                    return "sekund" + (c === 1 ? "" : "er");
                  },
                  ms: function (c) {
                    return "millisekund" + (c === 1 ? "" : "er");
                  },
                  decimal: ","
                },
                pl: {
                  y: function (c) {
                    return ["rok", "roku", "lata", "lat"][getPolishForm(c)];
                  },
                  mo: function (c) {
                    return ["miesiąc", "miesiąca", "miesiące", "miesięcy"][getPolishForm(c)];
                  },
                  w: function (c) {
                    return ["tydzień", "tygodnia", "tygodnie", "tygodni"][getPolishForm(c)];
                  },
                  d: function (c) {
                    return ["dzień", "dnia", "dni", "dni"][getPolishForm(c)];
                  },
                  h: function (c) {
                    return ["godzina", "godziny", "godziny", "godzin"][getPolishForm(c)];
                  },
                  m: function (c) {
                    return ["minuta", "minuty", "minuty", "minut"][getPolishForm(c)];
                  },
                  s: function (c) {
                    return ["sekunda", "sekundy", "sekundy", "sekund"][getPolishForm(c)];
                  },
                  ms: function (c) {
                    return ["milisekunda", "milisekundy", "milisekundy", "milisekund"][getPolishForm(c)];
                  },
                  decimal: ","
                },
                pt: {
                  y: function (c) {
                    return "ano" + (c === 1 ? "" : "s");
                  },
                  mo: function (c) {
                    return c === 1 ? "mês" : "meses";
                  },
                  w: function (c) {
                    return "semana" + (c === 1 ? "" : "s");
                  },
                  d: function (c) {
                    return "dia" + (c === 1 ? "" : "s");
                  },
                  h: function (c) {
                    return "hora" + (c === 1 ? "" : "s");
                  },
                  m: function (c) {
                    return "minuto" + (c === 1 ? "" : "s");
                  },
                  s: function (c) {
                    return "segundo" + (c === 1 ? "" : "s");
                  },
                  ms: function (c) {
                    return "milissegundo" + (c === 1 ? "" : "s");
                  },
                  decimal: ","
                },
                ro: {
                  y: function (c) {
                    return c === 1 ? "an" : "ani";
                  },
                  mo: function (c) {
                    return c === 1 ? "lună" : "luni";
                  },
                  w: function (c) {
                    return c === 1 ? "săptămână" : "săptămâni";
                  },
                  d: function (c) {
                    return c === 1 ? "zi" : "zile";
                  },
                  h: function (c) {
                    return c === 1 ? "oră" : "ore";
                  },
                  m: function (c) {
                    return c === 1 ? "minut" : "minute";
                  },
                  s: function (c) {
                    return c === 1 ? "secundă" : "secunde";
                  },
                  ms: function (c) {
                    return c === 1 ? "milisecundă" : "milisecunde";
                  },
                  decimal: ","
                },
                ru: {
                  y: function (c) {
                    return ["лет", "год", "года"][getSlavicForm(c)];
                  },
                  mo: function (c) {
                    return ["месяцев", "месяц", "месяца"][getSlavicForm(c)];
                  },
                  w: function (c) {
                    return ["недель", "неделя", "недели"][getSlavicForm(c)];
                  },
                  d: function (c) {
                    return ["дней", "день", "дня"][getSlavicForm(c)];
                  },
                  h: function (c) {
                    return ["часов", "час", "часа"][getSlavicForm(c)];
                  },
                  m: function (c) {
                    return ["минут", "минута", "минуты"][getSlavicForm(c)];
                  },
                  s: function (c) {
                    return ["секунд", "секунда", "секунды"][getSlavicForm(c)];
                  },
                  ms: function (c) {
                    return ["миллисекунд", "миллисекунда", "миллисекунды"][getSlavicForm(c)];
                  },
                  decimal: ","
                },
                sq: {
                  y: function (c) {
                    return c === 1 ? "vit" : "vjet";
                  },
                  mo: "muaj",
                  w: "javë",
                  d: "ditë",
                  h: "orë",
                  m: function (c) {
                    return "minut" + (c === 1 ? "ë" : "a");
                  },
                  s: function (c) {
                    return "sekond" + (c === 1 ? "ë" : "a");
                  },
                  ms: function (c) {
                    return "milisekond" + (c === 1 ? "ë" : "a");
                  },
                  decimal: ","
                },
                sr: {
                  y: function (c) {
                    return ["години", "година", "године"][getSlavicForm(c)];
                  },
                  mo: function (c) {
                    return ["месеци", "месец", "месеца"][getSlavicForm(c)];
                  },
                  w: function (c) {
                    return ["недељи", "недеља", "недеље"][getSlavicForm(c)];
                  },
                  d: function (c) {
                    return ["дани", "дан", "дана"][getSlavicForm(c)];
                  },
                  h: function (c) {
                    return ["сати", "сат", "сата"][getSlavicForm(c)];
                  },
                  m: function (c) {
                    return ["минута", "минут", "минута"][getSlavicForm(c)];
                  },
                  s: function (c) {
                    return ["секунди", "секунда", "секунде"][getSlavicForm(c)];
                  },
                  ms: function (c) {
                    return ["милисекунди", "милисекунда", "милисекунде"][getSlavicForm(c)];
                  },
                  decimal: ","
                },
                ta: {
                  y: function (c) {
                    return c === 1 ? "வருடம்" : "ஆண்டுகள்";
                  },
                  mo: function (c) {
                    return c === 1 ? "மாதம்" : "மாதங்கள்";
                  },
                  w: function (c) {
                    return c === 1 ? "வாரம்" : "வாரங்கள்";
                  },
                  d: function (c) {
                    return c === 1 ? "நாள்" : "நாட்கள்";
                  },
                  h: function (c) {
                    return c === 1 ? "மணி" : "மணிநேரம்";
                  },
                  m: function (c) {
                    return "நிமிட" + (c === 1 ? "ம்" : "ங்கள்");
                  },
                  s: function (c) {
                    return "வினாடி" + (c === 1 ? "" : "கள்");
                  },
                  ms: function (c) {
                    return "மில்லி விநாடி" + (c === 1 ? "" : "கள்");
                  }
                },
                te: {
                  y: function (c) {
                    return "సంవత్స" + (c === 1 ? "రం" : "రాల");
                  },
                  mo: function (c) {
                    return "నెల" + (c === 1 ? "" : "ల");
                  },
                  w: function (c) {
                    return c === 1 ? "వారం" : "వారాలు";
                  },
                  d: function (c) {
                    return "రోజు" + (c === 1 ? "" : "లు");
                  },
                  h: function (c) {
                    return "గంట" + (c === 1 ? "" : "లు");
                  },
                  m: function (c) {
                    return c === 1 ? "నిమిషం" : "నిమిషాలు";
                  },
                  s: function (c) {
                    return c === 1 ? "సెకను" : "సెకన్లు";
                  },
                  ms: function (c) {
                    return c === 1 ? "మిల్లీసెకన్" : "మిల్లీసెకన్లు";
                  }
                },
                uk: {
                  y: function (c) {
                    return ["років", "рік", "роки"][getSlavicForm(c)];
                  },
                  mo: function (c) {
                    return ["місяців", "місяць", "місяці"][getSlavicForm(c)];
                  },
                  w: function (c) {
                    return ["тижнів", "тиждень", "тижні"][getSlavicForm(c)];
                  },
                  d: function (c) {
                    return ["днів", "день", "дні"][getSlavicForm(c)];
                  },
                  h: function (c) {
                    return ["годин", "година", "години"][getSlavicForm(c)];
                  },
                  m: function (c) {
                    return ["хвилин", "хвилина", "хвилини"][getSlavicForm(c)];
                  },
                  s: function (c) {
                    return ["секунд", "секунда", "секунди"][getSlavicForm(c)];
                  },
                  ms: function (c) {
                    return ["мілісекунд", "мілісекунда", "мілісекунди"][getSlavicForm(c)];
                  },
                  decimal: ","
                },
                ur: {
                  y: "سال",
                  mo: function (c) {
                    return c === 1 ? "مہینہ" : "مہینے";
                  },
                  w: function (c) {
                    return c === 1 ? "ہفتہ" : "ہفتے";
                  },
                  d: "دن",
                  h: function (c) {
                    return c === 1 ? "گھنٹہ" : "گھنٹے";
                  },
                  m: "منٹ",
                  s: "سیکنڈ",
                  ms: "ملی سیکنڈ",
                  decimal: "."
                },
                sk: {
                  y: function (c) {
                    return ["rok", "roky", "roky", "rokov"][getCzechOrSlovakForm(c)];
                  },
                  mo: function (c) {
                    return ["mesiac", "mesiace", "mesiace", "mesiacov"][getCzechOrSlovakForm(c)];
                  },
                  w: function (c) {
                    return ["týždeň", "týždne", "týždne", "týždňov"][getCzechOrSlovakForm(c)];
                  },
                  d: function (c) {
                    return ["deň", "dni", "dni", "dní"][getCzechOrSlovakForm(c)];
                  },
                  h: function (c) {
                    return ["hodina", "hodiny", "hodiny", "hodín"][getCzechOrSlovakForm(c)];
                  },
                  m: function (c) {
                    return ["minúta", "minúty", "minúty", "minút"][getCzechOrSlovakForm(c)];
                  },
                  s: function (c) {
                    return ["sekunda", "sekundy", "sekundy", "sekúnd"][getCzechOrSlovakForm(c)];
                  },
                  ms: function (c) {
                    return ["milisekunda", "milisekundy", "milisekundy", "milisekúnd"][getCzechOrSlovakForm(c)];
                  },
                  decimal: ","
                },
                sl: {
                  y: function (c) {
                    if (c % 10 === 1) return "leto";else if (c % 100 === 2) return "leti";else if (c % 100 === 3 || c % 100 === 4 || Math.floor(c) !== c && c % 100 <= 5) return "leta";else return "let";
                  },
                  mo: function (c) {
                    if (c % 10 === 1) return "mesec";else if (c % 100 === 2 || Math.floor(c) !== c && c % 100 <= 5) return "meseca";else if (c % 10 === 3 || c % 10 === 4) return "mesece";else return "mesecev";
                  },
                  w: function (c) {
                    if (c % 10 === 1) return "teden";else if (c % 10 === 2 || Math.floor(c) !== c && c % 100 <= 4) return "tedna";else if (c % 10 === 3 || c % 10 === 4) return "tedne";else return "tednov";
                  },
                  d: function (c) {
                    return c % 100 === 1 ? "dan" : "dni";
                  },
                  h: function (c) {
                    if (c % 10 === 1) return "ura";else if (c % 100 === 2) return "uri";else if (c % 10 === 3 || c % 10 === 4 || Math.floor(c) !== c) return "ure";else return "ur";
                  },
                  m: function (c) {
                    if (c % 10 === 1) return "minuta";else if (c % 10 === 2) return "minuti";else if (c % 10 === 3 || c % 10 === 4 || Math.floor(c) !== c && c % 100 <= 4) return "minute";else return "minut";
                  },
                  s: function (c) {
                    if (c % 10 === 1) return "sekunda";else if (c % 100 === 2) return "sekundi";else if (c % 100 === 3 || c % 100 === 4 || Math.floor(c) !== c) return "sekunde";else return "sekund";
                  },
                  ms: function (c) {
                    if (c % 10 === 1) return "milisekunda";else if (c % 100 === 2) return "milisekundi";else if (c % 100 === 3 || c % 100 === 4 || Math.floor(c) !== c) return "milisekunde";else return "milisekund";
                  },
                  decimal: ","
                },
                sv: {
                  y: "år",
                  mo: function (c) {
                    return "månad" + (c === 1 ? "" : "er");
                  },
                  w: function (c) {
                    return "veck" + (c === 1 ? "a" : "or");
                  },
                  d: function (c) {
                    return "dag" + (c === 1 ? "" : "ar");
                  },
                  h: function (c) {
                    return "timm" + (c === 1 ? "e" : "ar");
                  },
                  m: function (c) {
                    return "minut" + (c === 1 ? "" : "er");
                  },
                  s: function (c) {
                    return "sekund" + (c === 1 ? "" : "er");
                  },
                  ms: function (c) {
                    return "millisekund" + (c === 1 ? "" : "er");
                  },
                  decimal: ","
                },
                sw: {
                  y: function (c) {
                    return c === 1 ? "mwaka" : "miaka";
                  },
                  mo: function (c) {
                    return c === 1 ? "mwezi" : "miezi";
                  },
                  w: "wiki",
                  d: function (c) {
                    return c === 1 ? "siku" : "masiku";
                  },
                  h: function (c) {
                    return c === 1 ? "saa" : "masaa";
                  },
                  m: "dakika",
                  s: "sekunde",
                  ms: "milisekunde",
                  decimal: ".",
                  _numberFirst: true
                },
                tr: {
                  y: "yıl",
                  mo: "ay",
                  w: "hafta",
                  d: "gün",
                  h: "saat",
                  m: "dakika",
                  s: "saniye",
                  ms: "milisaniye",
                  decimal: ","
                },
                th: {
                  y: "ปี",
                  mo: "เดือน",
                  w: "สัปดาห์",
                  d: "วัน",
                  h: "ชั่วโมง",
                  m: "นาที",
                  s: "วินาที",
                  ms: "มิลลิวินาที",
                  decimal: "."
                },
                vi: {
                  y: "năm",
                  mo: "tháng",
                  w: "tuần",
                  d: "ngày",
                  h: "giờ",
                  m: "phút",
                  s: "giây",
                  ms: "mili giây",
                  decimal: ","
                },
                zh_CN: {
                  y: "年",
                  mo: "个月",
                  w: "周",
                  d: "天",
                  h: "小时",
                  m: "分钟",
                  s: "秒",
                  ms: "毫秒",
                  decimal: "."
                },
                zh_TW: {
                  y: "年",
                  mo: "個月",
                  w: "周",
                  d: "天",
                  h: "小時",
                  m: "分鐘",
                  s: "秒",
                  ms: "毫秒",
                  decimal: "."
                }
              };
              function humanizer(passedOptions) {
                var result = function humanizer$1(ms, humanizerOptions) {
                  return doHumanization(ms, assign({}, result, humanizerOptions || {}));
                };
                return assign(result, {
                  language: "en",
                  spacer: " ",
                  conjunction: "",
                  serialComma: true,
                  units: ["y", "mo", "w", "d", "h", "m", "s"],
                  languages: {},
                  round: false,
                  unitMeasures: {
                    y: 315576e5,
                    mo: 26298e5,
                    w: 6048e5,
                    d: 864e5,
                    h: 36e5,
                    m: 6e4,
                    s: 1e3,
                    ms: 1
                  }
                }, passedOptions);
              }
              var humanizeDuration$1 = humanizer({});
              function getDictionary(options) {
                var languagesFromOptions = [options.language];
                if (has(options, "fallbacks")) if (isArray(options.fallbacks) && options.fallbacks.length) languagesFromOptions = languagesFromOptions.concat(options.fallbacks);else throw new Error("fallbacks must be an array with at least one element");
                for (var i = 0; i < languagesFromOptions.length; i++) {
                  var languageToTry = languagesFromOptions[i];
                  if (has(options.languages, languageToTry)) return options.languages[languageToTry];else if (has(LANGUAGES, languageToTry)) return LANGUAGES[languageToTry];
                }
                throw new Error("No language found.");
              }
              function doHumanization(ms, options) {
                var i, len, piece;
                ms = Math.abs(ms);
                var dictionary = getDictionary(options);
                var pieces = [];
                var unitName, unitMS, unitCount;
                for (i = 0, len = options.units.length; i < len; i++) {
                  unitName = options.units[i];
                  unitMS = options.unitMeasures[unitName];
                  if (i + 1 === len) {
                    if (has(options, "maxDecimalPoints")) {
                      var expValue = Math.pow(10, options.maxDecimalPoints);
                      var unitCountFloat = ms / unitMS;
                      unitCount = parseFloat((Math.floor(expValue * unitCountFloat) / expValue).toFixed(options.maxDecimalPoints));
                    } else unitCount = ms / unitMS;
                  } else unitCount = Math.floor(ms / unitMS);
                  pieces.push({
                    unitCount,
                    unitName
                  });
                  ms -= unitCount * unitMS;
                }
                var firstOccupiedUnitIndex = 0;
                for (i = 0; i < pieces.length; i++) if (pieces[i].unitCount) {
                  firstOccupiedUnitIndex = i;
                  break;
                }
                if (options.round) {
                  var ratioToLargerUnit, previousPiece;
                  for (i = pieces.length - 1; i >= 0; i--) {
                    piece = pieces[i];
                    piece.unitCount = Math.round(piece.unitCount);
                    if (i === 0) break;
                    previousPiece = pieces[i - 1];
                    ratioToLargerUnit = options.unitMeasures[previousPiece.unitName] / options.unitMeasures[piece.unitName];
                    if (piece.unitCount % ratioToLargerUnit === 0 || options.largest && options.largest - 1 < i - firstOccupiedUnitIndex) {
                      previousPiece.unitCount += piece.unitCount / ratioToLargerUnit;
                      piece.unitCount = 0;
                    }
                  }
                }
                var result = [];
                for (i = 0, pieces.length; i < len; i++) {
                  piece = pieces[i];
                  if (piece.unitCount) result.push(render(piece.unitCount, piece.unitName, dictionary, options));
                  if (result.length === options.largest) break;
                }
                if (result.length) {
                  var delimiter;
                  if (has(options, "delimiter")) delimiter = options.delimiter;else if (has(dictionary, "delimiter")) delimiter = dictionary.delimiter;else delimiter = ", ";
                  if (!options.conjunction || result.length === 1) return result.join(delimiter);else if (result.length === 2) return result.join(options.conjunction);else if (result.length > 2) return result.slice(0, -1).join(delimiter) + (options.serialComma ? "," : "") + options.conjunction + result.slice(-1);
                } else return render(0, options.units[options.units.length - 1], dictionary, options);
              }
              function render(count, type, dictionary, options) {
                var decimal;
                if (has(options, "decimal")) decimal = options.decimal;else if (has(dictionary, "decimal")) decimal = dictionary.decimal;else decimal = ".";
                var countStr;
                if (typeof dictionary._formatCount === "function") countStr = dictionary._formatCount(count, decimal);else countStr = count.toString().replace(".", decimal);
                var dictionaryValue = dictionary[type];
                var word;
                if (typeof dictionaryValue === "function") word = dictionaryValue(count);else word = dictionaryValue;
                if (dictionary._numberFirst) return word + options.spacer + countStr;
                return countStr + options.spacer + word;
              }
              function assign(destination) {
                var source;
                for (var i = 1; i < arguments.length; i++) {
                  source = arguments[i];
                  for (var prop in source) if (has(source, prop)) destination[prop] = source[prop];
                }
                return destination;
              }
              function getArabicForm(c) {
                if (c === 1) return 0;
                if (c === 2) return 1;
                if (c > 2 && c < 11) return 2;
                return 0;
              }
              function getPolishForm(c) {
                if (c === 1) return 0;else if (Math.floor(c) !== c) return 1;else if (c % 10 >= 2 && c % 10 <= 4 && !(c % 100 > 10 && c % 100 < 20)) return 2;else return 3;
              }
              function getSlavicForm(c) {
                if (Math.floor(c) !== c) return 2;else if (c % 100 >= 5 && c % 100 <= 20 || c % 10 >= 5 && c % 10 <= 9 || c % 10 === 0) return 0;else if (c % 10 === 1) return 1;else if (c > 1) return 2;else return 0;
              }
              function getCzechOrSlovakForm(c) {
                if (c === 1) return 0;else if (Math.floor(c) !== c) return 1;else if (c % 10 >= 2 && c % 10 <= 4 && c % 100 < 10) return 2;else return 3;
              }
              function getLithuanianForm(c) {
                if (c === 1 || c % 10 === 1 && c % 100 > 20) return 0;else if (Math.floor(c) !== c || c % 10 >= 2 && c % 100 > 20 || c % 10 >= 2 && c % 100 < 10) return 1;else return 2;
              }
              function getLatvianForm(c) {
                return c % 10 === 1 && c % 100 !== 11;
              }
              var isArray = Array.isArray || function (arg) {
                return Object.prototype.toString.call(arg) === "[object Array]";
              };
              function has(obj, key) {
                return Object.prototype.hasOwnProperty.call(obj, key);
              }
              humanizeDuration$1.getSupportedLanguages = function getSupportedLanguages() {
                var result = [];
                for (var language in LANGUAGES) if (has(LANGUAGES, language) && language !== "gr") result.push(language);
                return result;
              };
              humanizeDuration$1.humanizer = humanizer;
              if (typeof define === "function" && define.amd) define(function () {
                return humanizeDuration$1;
              });else if (typeof module !== "undefined" && module.exports) module.exports = humanizeDuration$1;else this.humanizeDuration = humanizeDuration$1;
            })();
          }
        }); //#endregion
        //#region ../../../node_modules/.pnpm/v3-infinite-loading@1.2.2/node_modules/v3-infinite-loading/lib/v3-infinite-loading.umd.js
        require_v3_infinite_loading_umd = /* @__PURE__ */__commonJS({
          "../../../node_modules/.pnpm/v3-infinite-loading@1.2.2/node_modules/v3-infinite-loading/lib/v3-infinite-loading.umd.js": (exports, module) => {
            (function (s, e) {
              typeof exports == "object" && typeof module < "u" ? e(exports, require_vue()) : typeof define == "function" && define.amd ? define(["exports", "vue"], e) : (s = typeof globalThis < "u" ? globalThis : s || self, e(s.V3InfiniteLoading = {}, s.Vue));
            })(exports, function (s, e) {
              const f = (t, i) => {
                  const n = t.__vccOpts || t;
                  for (const [o, c] of i) n[o] = c;
                  return n;
                },
                g = {},
                y = t => (e.pushScopeId("data-v-259be2b2"), t = t(), e.popScopeId(), t),
                h = {
                  class: "container"
                },
                b = [y(() => e.createElementVNode("div", {
                  class: "spinner"
                }, null, -1))];
              function E(t, i) {
                return e.openBlock(), e.createElementBlock("div", h, b);
              }
              const S = f(g, [["render", E], ["__scopeId", "data-v-259be2b2"], ["__file", "/home/oumoussa/side-projects/infinite/src/components/Spinner.vue"]]),
                x = t => ({
                  loading() {
                    t.value = "loading";
                  },
                  loaded() {
                    t.value = "loaded";
                  },
                  complete() {
                    t.value = "complete";
                  },
                  error() {
                    t.value = "error";
                  }
                }),
                v = (t, i, n) => () => {
                  n.prevHeight = (n.parentEl || document.documentElement).scrollHeight, i.loading(), t("infinite", i);
                },
                I = (t, i) => {
                  const n = t.getBoundingClientRect();
                  if (!i) return n.top >= 0 && n.bottom <= window.innerHeight;
                  const o = i.getBoundingClientRect();
                  return n.top >= o.top && n.bottom <= o.bottom;
                },
                u = t => {
                  t.parentEl = document.querySelector(t.target) || null;
                  let i = `0px 0px ${t.distance}px 0px`;
                  t.top && (i = `${t.distance}px 0px 0px 0px`);
                  const n = new IntersectionObserver(o => {
                    o[0].isIntersecting && (t.firstload && t.emit(), t.firstload = !0);
                  }, {
                    root: t.parentEl,
                    rootMargin: i
                  });
                  return n.observe(t.infiniteLoading.value), n;
                },
                k = {
                  class: "state-error"
                };
              s.default = f({
                __name: "InfiniteLoading",
                props: {
                  top: {
                    type: Boolean,
                    required: !1
                  },
                  target: {
                    type: [String, Boolean],
                    required: !1
                  },
                  distance: {
                    type: Number,
                    required: !1,
                    default: 0
                  },
                  identifier: {
                    required: !1
                  },
                  firstload: {
                    type: Boolean,
                    required: !1,
                    default: !0
                  },
                  slots: {
                    type: Object,
                    required: !1
                  }
                },
                emits: ["infinite"],
                setup(t, {
                  emit: i
                }) {
                  const n = t;
                  let o = null;
                  const c = e.ref(null),
                    d = e.ref("ready"),
                    {
                      top: _,
                      firstload: V,
                      target: B,
                      distance: q
                    } = n,
                    {
                      identifier: m
                    } = e.toRefs(n),
                    r = {
                      infiniteLoading: c,
                      target: B,
                      top: _,
                      firstload: V,
                      distance: q,
                      prevHeight: 0,
                      parentEl: null
                    };
                  r.emit = v(i, x(d), r);
                  const L = () => e.watch(d, async l => {
                      const a = r.parentEl || document.documentElement;
                      await e.nextTick(), l == "loaded" && _ && (a.scrollTop = a.scrollHeight - r.prevHeight), l == "loaded" && I(c.value, r.parentEl) && r.emit(), l == "complete" && o.disconnect();
                    }),
                    w = () => e.watch(m, () => {
                      d.value = "ready", o.disconnect(), o = u(r);
                    });
                  return e.onMounted(() => {
                    o = u(r), L(), m && w();
                  }), e.onUnmounted(() => {
                    o.disconnect();
                  }), (l, a) => (e.openBlock(), e.createElementBlock("div", {
                    ref_key: "infiniteLoading",
                    ref: c
                  }, [d.value == "loading" ? e.renderSlot(l.$slots, "spinner", {
                    key: 0
                  }, () => [e.createVNode(S)], !0) : e.createCommentVNode("v-if", !0), d.value == "complete" ? e.renderSlot(l.$slots, "complete", {
                    key: 1
                  }, () => {
                    var p;
                    return [e.createElementVNode("span", null, e.toDisplayString(((p = t.slots) == null ? void 0 : p.complete) || "No more results!"), 1)];
                  }, !0) : e.createCommentVNode("v-if", !0), d.value == "error" ? e.renderSlot(l.$slots, "error", {
                    key: 2,
                    retry: r.emit
                  }, () => {
                    var p;
                    return [e.createElementVNode("span", k, [e.createElementVNode("span", null, e.toDisplayString(((p = t.slots) == null ? void 0 : p.error) || "Oops something went wrong!"), 1), e.createElementVNode("button", {
                      class: "retry",
                      onClick: a[0] || (a[0] = (...$) => r.emit && r.emit(...$))
                    }, " retry ")])];
                  }, !0) : e.createCommentVNode("v-if", !0)], 512));
                }
              }, [["__scopeId", "data-v-9d82030b"], ["__file", "/home/oumoussa/side-projects/infinite/src/components/InfiniteLoading.vue"]]), Object.defineProperties(s, {
                __esModule: {
                  value: !0
                },
                [Symbol.toStringTag]: {
                  value: "Module"
                }
              });
            });
          }
        }); //#endregion
        //#region src/features/settings/sso/views/SettingsLdapView.vue?vue&type=script&setup=true&lang.ts
        import_humanize_duration = /* @__PURE__ */__toESM(require_humanize_duration());
        import_v3_infinite_loading_umd = /* @__PURE__ */__toESM(require_v3_infinite_loading_umd());
        _hoisted_1 = {
          key: 0
        };
        _hoisted_2 = {
          key: 1
        };
        _hoisted_3 = {
          key: 0
        };
        _hoisted_4 = {
          class: "pb-3xl"
        };
        SettingsLdapView_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */defineComponent({
          __name: "SettingsLdapView",
          setup(__props) {
            const toast = useToast();
            const i18n = useI18n();
            const message = useMessage();
            const documentTitle = useDocumentTitle();
            const pageRedirectionHelper = usePageRedirectionHelper();
            const settingsStore = useSettingsStore();
            const ssoStore = useSSOStore();
            const dataTable = ref([]);
            const tableKey = ref(0);
            const adConfig = ref();
            const loadingTestConnection = ref(false);
            const loadingDryRun = ref(false);
            const loadingLiveRun = ref(false);
            const loadingTable = ref(false);
            const hasAnyChanges = ref(false);
            const formInputs = ref(null);
            const formBus = createFormEventBus();
            const readyToSubmit = ref(false);
            const page = ref(0);
            const loginEnabled = ref(false);
            const syncEnabled = ref(false);
            const ldapConfigFormRef = ref();
            const isLDAPFeatureEnabled = computed(() => settingsStore.settings.enterprise.ldap);
            const goToUpgrade = async () => await pageRedirectionHelper.goToUpgrade("ldap", "upgrade-ldap");
            const cellClassStyle = ({
              row,
              column
            }) => {
              if (column.property === "status") {
                if (row.status === "Success") return {
                  color: "green"
                };else if (row.status === "Error") return {
                  color: "red"
                };
              }
              if (column.property === "runMode") {
                if (row.runMode === "Dry") return {
                  color: "orange"
                };else if (row.runMode === "Live") return {
                  color: "blue"
                };
              }
              return {};
            };
            const onInput = input => {
              if (input.name === "loginEnabled" && typeof input.value === "boolean") loginEnabled.value = input.value;
              if (input.name === "synchronizationEnabled" && typeof input.value === "boolean") syncEnabled.value = input.value;
              hasAnyChanges.value = true;
            };
            const onReadyToSubmit = ready => {
              readyToSubmit.value = ready;
            };
            const syncDataMapper = sync => {
              const startedAt = new Date(sync.startedAt);
              const endedAt = new Date(sync.endedAt);
              return {
                runTime: (0, import_humanize_duration.default)(endedAt.getTime() - startedAt.getTime()),
                runMode: capitalizeFirstLetter(sync.runMode),
                status: capitalizeFirstLetter(sync.status),
                endedAt: convertToDisplayDate(endedAt.getTime()),
                details: i18n.baseText("settings.ldap.usersScanned", {
                  interpolate: {
                    scanned: sync.scanned.toString()
                  }
                })
              };
            };
            const onSubmit = async () => {
              if (!hasAnyChanges.value || !ldapConfigFormRef.value) return;
              const formValues = ldapConfigFormRef.value.getValues();
              const newConfiguration = {
                loginEnabled: formValues.loginEnabled,
                loginLabel: formValues.loginLabel,
                connectionUrl: formValues.serverAddress,
                allowUnauthorizedCerts: formValues.allowUnauthorizedCerts,
                connectionPort: +formValues.port,
                connectionSecurity: formValues.connectionSecurity,
                baseDn: formValues.baseDn,
                bindingAdminDn: formValues.bindingType === "admin" ? formValues.adminDn : "",
                bindingAdminPassword: formValues.bindingType === "admin" ? formValues.adminPassword : "",
                emailAttribute: formValues.email,
                firstNameAttribute: formValues.firstName,
                lastNameAttribute: formValues.lastName,
                loginIdAttribute: formValues.loginId,
                ldapIdAttribute: formValues.ldapId,
                userFilter: formValues.userFilter,
                synchronizationEnabled: formValues.synchronizationEnabled,
                synchronizationInterval: +formValues.synchronizationInterval,
                searchPageSize: +formValues.pageSize,
                searchTimeout: +formValues.searchTimeout,
                enforceEmailUniqueness: formValues.enforceEmailUniqueness
              };
              let saveForm = true;
              if (!adConfig.value) return;
              try {
                if (adConfig.value.loginEnabled && !newConfiguration.loginEnabled) saveForm = (await message.confirm(i18n.baseText("settings.ldap.confirmMessage.beforeSaveForm.message"), i18n.baseText("settings.ldap.confirmMessage.beforeSaveForm.headline"), {
                  cancelButtonText: i18n.baseText("settings.ldap.confirmMessage.beforeSaveForm.cancelButtonText"),
                  confirmButtonText: i18n.baseText("settings.ldap.confirmMessage.beforeSaveForm.confirmButtonText")
                })) === MODAL_CONFIRM;
                if (!saveForm) hasAnyChanges.value = true;
                adConfig.value = await ssoStore.updateLdapConfig(newConfiguration);
                toast.showToast({
                  title: i18n.baseText("settings.ldap.updateConfiguration"),
                  message: "",
                  type: "success"
                });
              } catch (error) {
                toast.showError(error, i18n.baseText("settings.ldap.configurationError"));
              } finally {
                if (saveForm) hasAnyChanges.value = false;
              }
            };
            const onSaveClick = () => {
              formBus.emit("submit");
            };
            const onTestConnectionClick = async () => {
              loadingTestConnection.value = true;
              try {
                await ssoStore.testLdapConnection();
                toast.showToast({
                  title: i18n.baseText("settings.ldap.connectionTest"),
                  message: i18n.baseText("settings.ldap.toast.connection.success"),
                  type: "success"
                });
              } catch (error) {
                toast.showToast({
                  title: i18n.baseText("settings.ldap.connectionTestError"),
                  message: error.message,
                  type: "error"
                });
              } finally {
                loadingTestConnection.value = false;
              }
            };
            const onDryRunClick = async () => {
              loadingDryRun.value = true;
              try {
                await ssoStore.runLdapSync({
                  type: "dry"
                });
                toast.showToast({
                  title: i18n.baseText("settings.ldap.runSync.title"),
                  message: i18n.baseText("settings.ldap.toast.sync.success"),
                  type: "success"
                });
              } catch (error) {
                toast.showError(error, i18n.baseText("settings.ldap.synchronizationError"));
              } finally {
                loadingDryRun.value = false;
                await reloadLdapSynchronizations();
              }
            };
            const onLiveRunClick = async () => {
              loadingLiveRun.value = true;
              try {
                await ssoStore.runLdapSync({
                  type: "live"
                });
                toast.showToast({
                  title: i18n.baseText("settings.ldap.runSync.title"),
                  message: i18n.baseText("settings.ldap.toast.sync.success"),
                  type: "success"
                });
              } catch (error) {
                toast.showError(error, i18n.baseText("settings.ldap.synchronizationError"));
              } finally {
                loadingLiveRun.value = false;
                await reloadLdapSynchronizations();
              }
            };
            const getLdapConfig = async () => {
              try {
                adConfig.value = await ssoStore.getLdapConfig();
                loginEnabled.value = adConfig.value.loginEnabled;
                syncEnabled.value = adConfig.value.synchronizationEnabled;
                const whenLoginEnabled = values => values.loginEnabled === true;
                const whenSyncAndLoginEnabled = values => values.synchronizationEnabled === true && values.loginEnabled === true;
                const whenAdminBindingAndLoginEnabled = values => values.bindingType === "admin" && values.loginEnabled === true;
                formInputs.value = [{
                  name: "loginEnabled",
                  initialValue: adConfig.value.loginEnabled,
                  properties: {
                    type: "toggle",
                    label: i18n.baseText("settings.ldap.form.loginEnabled.label"),
                    tooltipText: i18n.baseText("settings.ldap.form.loginEnabled.tooltip"),
                    required: true
                  }
                }, {
                  name: "loginLabel",
                  initialValue: adConfig.value.loginLabel,
                  properties: {
                    label: i18n.baseText("settings.ldap.form.loginLabel.label"),
                    required: true,
                    placeholder: i18n.baseText("settings.ldap.form.loginLabel.placeholder"),
                    infoText: i18n.baseText("settings.ldap.form.loginLabel.infoText")
                  },
                  shouldDisplay: whenLoginEnabled
                }, {
                  name: "serverAddress",
                  initialValue: adConfig.value.connectionUrl,
                  properties: {
                    label: i18n.baseText("settings.ldap.form.serverAddress.label"),
                    required: true,
                    capitalize: true,
                    placeholder: i18n.baseText("settings.ldap.form.serverAddress.placeholder"),
                    infoText: i18n.baseText("settings.ldap.form.serverAddress.infoText")
                  },
                  shouldDisplay: whenLoginEnabled
                }, {
                  name: "port",
                  initialValue: adConfig.value.connectionPort,
                  properties: {
                    type: "number",
                    label: i18n.baseText("settings.ldap.form.port.label"),
                    capitalize: true,
                    infoText: i18n.baseText("settings.ldap.form.port.infoText")
                  },
                  shouldDisplay: whenLoginEnabled
                }, {
                  name: "connectionSecurity",
                  initialValue: adConfig.value.connectionSecurity,
                  properties: {
                    type: "select",
                    label: i18n.baseText("settings.ldap.form.connectionSecurity.label"),
                    infoText: i18n.baseText("settings.ldap.form.connectionSecurity.infoText"),
                    options: [{
                      label: "None",
                      value: "none"
                    }, {
                      label: "TLS",
                      value: "tls"
                    }, {
                      label: "STARTTLS",
                      value: "startTls"
                    }],
                    required: true,
                    capitalize: true
                  },
                  shouldDisplay: whenLoginEnabled
                }, {
                  name: "allowUnauthorizedCerts",
                  initialValue: adConfig.value.allowUnauthorizedCerts,
                  properties: {
                    type: "toggle",
                    label: i18n.baseText("settings.ldap.form.allowUnauthorizedCerts.label"),
                    required: false
                  },
                  shouldDisplay(values) {
                    return values.connectionSecurity !== "none" && values.loginEnabled === true;
                  }
                }, {
                  name: "baseDn",
                  initialValue: adConfig.value.baseDn,
                  properties: {
                    label: i18n.baseText("settings.ldap.form.baseDn.label"),
                    required: true,
                    capitalize: true,
                    placeholder: i18n.baseText("settings.ldap.form.baseDn.placeholder"),
                    infoText: i18n.baseText("settings.ldap.form.baseDn.infoText")
                  },
                  shouldDisplay: whenLoginEnabled
                }, {
                  name: "bindingType",
                  initialValue: "admin",
                  properties: {
                    type: "select",
                    label: i18n.baseText("settings.ldap.form.bindingType.label"),
                    infoText: i18n.baseText("settings.ldap.form.bindingType.infoText"),
                    options: [{
                      value: "admin",
                      label: "Admin"
                    }, {
                      value: "anonymous",
                      label: "Anonymous"
                    }]
                  },
                  shouldDisplay: whenLoginEnabled
                }, {
                  name: "adminDn",
                  initialValue: adConfig.value.bindingAdminDn,
                  properties: {
                    label: i18n.baseText("settings.ldap.form.adminDn.label"),
                    placeholder: i18n.baseText("settings.ldap.form.adminDn.placeholder"),
                    infoText: i18n.baseText("settings.ldap.form.adminDn.infoText"),
                    capitalize: true
                  },
                  shouldDisplay: whenAdminBindingAndLoginEnabled
                }, {
                  name: "adminPassword",
                  initialValue: adConfig.value.bindingAdminPassword,
                  properties: {
                    label: i18n.baseText("settings.ldap.form.adminPassword.label"),
                    type: "password",
                    capitalize: true,
                    infoText: i18n.baseText("settings.ldap.form.adminPassword.infoText")
                  },
                  shouldDisplay: whenAdminBindingAndLoginEnabled
                }, {
                  name: "userFilter",
                  initialValue: adConfig.value.userFilter,
                  properties: {
                    label: i18n.baseText("settings.ldap.form.userFilter.label"),
                    type: "text",
                    required: false,
                    capitalize: true,
                    placeholder: i18n.baseText("settings.ldap.form.userFilter.placeholder"),
                    infoText: i18n.baseText("settings.ldap.form.userFilter.infoText")
                  },
                  shouldDisplay: whenLoginEnabled
                }, {
                  name: "attributeMappingInfo",
                  properties: {
                    label: i18n.baseText("settings.ldap.form.attributeMappingInfo.label"),
                    type: "info",
                    labelSize: "large",
                    labelAlignment: "left"
                  },
                  shouldDisplay: whenLoginEnabled
                }, {
                  name: "ldapId",
                  initialValue: adConfig.value.ldapIdAttribute,
                  properties: {
                    label: i18n.baseText("settings.ldap.form.ldapId.label"),
                    type: "text",
                    required: true,
                    capitalize: true,
                    placeholder: i18n.baseText("settings.ldap.form.ldapId.placeholder"),
                    infoText: i18n.baseText("settings.ldap.form.ldapId.infoText")
                  },
                  shouldDisplay: whenLoginEnabled
                }, {
                  name: "loginId",
                  initialValue: adConfig.value.loginIdAttribute,
                  properties: {
                    label: i18n.baseText("settings.ldap.form.loginId.label"),
                    type: "text",
                    autocomplete: "email",
                    required: true,
                    capitalize: true,
                    placeholder: i18n.baseText("settings.ldap.form.loginId.placeholder"),
                    infoText: i18n.baseText("settings.ldap.form.loginId.infoText")
                  },
                  shouldDisplay: whenLoginEnabled
                }, {
                  name: "email",
                  initialValue: adConfig.value.emailAttribute,
                  properties: {
                    label: i18n.baseText("settings.ldap.form.email.label"),
                    type: "text",
                    autocomplete: "email",
                    required: true,
                    capitalize: true,
                    placeholder: i18n.baseText("settings.ldap.form.email.placeholder"),
                    infoText: i18n.baseText("settings.ldap.form.email.infoText")
                  },
                  shouldDisplay: whenLoginEnabled
                }, {
                  name: "firstName",
                  initialValue: adConfig.value.firstNameAttribute,
                  properties: {
                    label: i18n.baseText("settings.ldap.form.firstName.label"),
                    type: "text",
                    autocomplete: "email",
                    required: true,
                    capitalize: true,
                    placeholder: i18n.baseText("settings.ldap.form.firstName.placeholder"),
                    infoText: i18n.baseText("settings.ldap.form.firstName.infoText")
                  },
                  shouldDisplay: whenLoginEnabled
                }, {
                  name: "lastName",
                  initialValue: adConfig.value.lastNameAttribute,
                  properties: {
                    label: i18n.baseText("settings.ldap.form.lastName.label"),
                    type: "text",
                    autocomplete: "email",
                    required: true,
                    capitalize: true,
                    placeholder: i18n.baseText("settings.ldap.form.lastName.placeholder"),
                    infoText: i18n.baseText("settings.ldap.form.lastName.infoText")
                  },
                  shouldDisplay: whenLoginEnabled
                }, {
                  name: "synchronizationEnabled",
                  initialValue: adConfig.value.synchronizationEnabled,
                  properties: {
                    type: "toggle",
                    label: i18n.baseText("settings.ldap.form.synchronizationEnabled.label"),
                    tooltipText: i18n.baseText("settings.ldap.form.synchronizationEnabled.tooltip"),
                    required: true
                  },
                  shouldDisplay: whenLoginEnabled
                }, {
                  name: "synchronizationInterval",
                  initialValue: adConfig.value.synchronizationInterval,
                  properties: {
                    type: "number",
                    label: i18n.baseText("settings.ldap.form.synchronizationInterval.label"),
                    infoText: i18n.baseText("settings.ldap.form.synchronizationInterval.infoText")
                  },
                  shouldDisplay: whenSyncAndLoginEnabled
                }, {
                  name: "pageSize",
                  initialValue: adConfig.value.searchPageSize,
                  properties: {
                    type: "number",
                    label: i18n.baseText("settings.ldap.form.pageSize.label"),
                    infoText: i18n.baseText("settings.ldap.form.pageSize.infoText")
                  },
                  shouldDisplay: whenSyncAndLoginEnabled
                }, {
                  name: "searchTimeout",
                  initialValue: adConfig.value.searchTimeout,
                  properties: {
                    type: "number",
                    label: i18n.baseText("settings.ldap.form.searchTimeout.label"),
                    infoText: i18n.baseText("settings.ldap.form.searchTimeout.infoText")
                  },
                  shouldDisplay: whenSyncAndLoginEnabled
                }, {
                  name: "enforceEmailUniqueness",
                  initialValue: adConfig.value.enforceEmailUniqueness,
                  properties: {
                    type: "toggle",
                    label: i18n.baseText("settings.ldap.form.enforceEmailUniqueness.label"),
                    tooltipText: i18n.baseText("settings.ldap.form.enforceEmailUniqueness.tooltip"),
                    required: false
                  },
                  shouldDisplay: whenLoginEnabled
                }];
              } catch (error) {
                toast.showError(error, i18n.baseText("settings.ldap.configurationError"));
              }
            };
            const getLdapSynchronizations = async state => {
              try {
                loadingTable.value = true;
                const data = await ssoStore.getLdapSynchronizations({
                  page: page.value
                });
                if (data.length !== 0) {
                  dataTable.value.push(...data.map(syncDataMapper));
                  page.value += 1;
                  state.loaded();
                } else state.complete();
                loadingTable.value = false;
              } catch (error) {
                toast.showError(error, i18n.baseText("settings.ldap.synchronizationError"));
              }
            };
            const reloadLdapSynchronizations = async () => {
              try {
                page.value = 0;
                tableKey.value += 1;
                dataTable.value = [];
              } catch (error) {
                toast.showError(error, i18n.baseText("settings.ldap.synchronizationError"));
              }
            };
            onMounted(async () => {
              documentTitle.set(i18n.baseText("settings.ldap"));
              if (!isLDAPFeatureEnabled.value) return;
              await getLdapConfig();
            });
            return (_ctx, _cache) => {
              const _directive_n8n_html = resolveDirective("n8n-html");
              const _directive_loading = resolveDirective("loading");
              return !isLDAPFeatureEnabled.value ? (openBlock(), createElementBlock("div", _hoisted_1, [createBaseVNode("div", {
                class: normalizeClass([_ctx.$style.header, "mb-2xl"])
              }, [createVNode(unref(N8nHeading_default), {
                size: "2xlarge"
              }, {
                default: withCtx(() => [createTextVNode(toDisplayString(unref(i18n).baseText("settings.ldap")), 1)]),
                _: 1
              })], 2), createVNode(unref(N8nInfoTip_default), {
                type: "note",
                theme: "info",
                "tooltip-placement": "right",
                class: "mb-l"
              }, {
                default: withCtx(() => [createTextVNode(toDisplayString(unref(i18n).baseText("settings.ldap.note")), 1)]),
                _: 1
              }), createVNode(unref(N8nActionBox_default), {
                description: unref(i18n).baseText("settings.ldap.disabled.description"),
                "button-text": unref(i18n).baseText("settings.ldap.disabled.buttonText"),
                "onClick:button": goToUpgrade
              }, {
                heading: withCtx(() => [createBaseVNode("span", null, toDisplayString(unref(i18n).baseText("settings.ldap.disabled.title")), 1)]),
                _: 1
              }, 8, ["description", "button-text"])])) : (openBlock(), createElementBlock("div", _hoisted_2, [createBaseVNode("div", {
                class: normalizeClass(_ctx.$style.container)
              }, [createBaseVNode("div", {
                class: normalizeClass(_ctx.$style.header)
              }, [createVNode(unref(N8nHeading_default), {
                size: "2xlarge"
              }, {
                default: withCtx(() => [createTextVNode(toDisplayString(unref(i18n).baseText("settings.ldap")), 1)]),
                _: 1
              })], 2), createBaseVNode("div", {
                class: normalizeClass(_ctx.$style.docsInfoTip)
              }, [createVNode(unref(N8nInfoTip_default), {
                theme: "info",
                type: "note"
              }, {
                default: withCtx(() => [withDirectives(createBaseVNode("span", null, null, 512), [[_directive_n8n_html, unref(i18n).baseText("settings.ldap.infoTip")]])]),
                _: 1
              })], 2), createBaseVNode("div", {
                class: normalizeClass(_ctx.$style.settingsForm)
              }, [formInputs.value ? (openBlock(), createBlock(unref(N8nFormInputs_default), {
                key: 0,
                ref_key: "ldapConfigFormRef",
                ref: ldapConfigFormRef,
                inputs: formInputs.value,
                "event-bus": unref(formBus),
                "column-view": true,
                "vertical-spacing": "l",
                onUpdate: onInput,
                onReady: onReadyToSubmit,
                onSubmit
              }, null, 8, ["inputs", "event-bus"])) : createCommentVNode("", true)], 2), createBaseVNode("div", null, [loginEnabled.value ? (openBlock(), createBlock(unref(N8nButton_default), {
                key: 0,
                label: loadingTestConnection.value ? unref(i18n).baseText("settings.ldap.testingConnection") : unref(i18n).baseText("settings.ldap.testConnection"),
                size: "large",
                class: "mr-s",
                disabled: hasAnyChanges.value || !readyToSubmit.value,
                loading: loadingTestConnection.value,
                onClick: onTestConnectionClick
              }, null, 8, ["label", "disabled", "loading"])) : createCommentVNode("", true), createVNode(unref(N8nButton_default), {
                label: unref(i18n).baseText("settings.ldap.save"),
                size: "large",
                disabled: !hasAnyChanges.value || !readyToSubmit.value,
                onClick: onSaveClick
              }, null, 8, ["label", "disabled"])])], 2), loginEnabled.value ? (openBlock(), createElementBlock("div", _hoisted_3, [createVNode(unref(N8nHeading_default), {
                tag: "h1",
                class: "mb-xl mt-3xl",
                size: "medium"
              }, {
                default: withCtx(() => [createTextVNode(toDisplayString(unref(i18n).baseText("settings.ldap.section.synchronization.title")), 1)]),
                _: 1
              }), createBaseVNode("div", {
                class: normalizeClass(_ctx.$style.syncTable)
              }, [withDirectives((openBlock(), createBlock(unref(ElTable), {
                key: tableKey.value,
                border: true,
                stripe: true,
                data: dataTable.value,
                "cell-style": cellClassStyle,
                style: {
                  "width": "100%"
                },
                "max-height": "250"
              }, {
                empty: withCtx(() => [createTextVNode(toDisplayString(unref(i18n).baseText("settings.ldap.synchronizationTable.empty.message")), 1)]),
                append: withCtx(() => [createVNode(unref(import_v3_infinite_loading_umd.default), {
                  target: ".el-table__body-wrapper",
                  onInfinite: getLdapSynchronizations
                })]),
                default: withCtx(() => [createVNode(unref(ElTableColumn), {
                  prop: "status",
                  label: unref(i18n).baseText("settings.ldap.synchronizationTable.column.status")
                }, null, 8, ["label"]), createVNode(unref(ElTableColumn), {
                  prop: "endedAt",
                  label: unref(i18n).baseText("settings.ldap.synchronizationTable.column.endedAt")
                }, null, 8, ["label"]), createVNode(unref(ElTableColumn), {
                  prop: "runMode",
                  label: unref(i18n).baseText("settings.ldap.synchronizationTable.column.runMode")
                }, null, 8, ["label"]), createVNode(unref(ElTableColumn), {
                  prop: "runTime",
                  label: unref(i18n).baseText("settings.ldap.synchronizationTable.column.runTime")
                }, null, 8, ["label"]), createVNode(unref(ElTableColumn), {
                  prop: "details",
                  label: unref(i18n).baseText("settings.ldap.synchronizationTable.column.details")
                }, null, 8, ["label"])]),
                _: 1
              }, 8, ["data"])), [[_directive_loading, loadingTable.value]])], 2), createBaseVNode("div", _hoisted_4, [createVNode(unref(N8nButton_default), {
                label: unref(i18n).baseText("settings.ldap.dryRun"),
                type: "secondary",
                size: "large",
                class: "mr-s",
                disabled: hasAnyChanges.value || !readyToSubmit.value,
                loading: loadingDryRun.value,
                onClick: onDryRunClick
              }, null, 8, ["label", "disabled", "loading"]), createVNode(unref(N8nButton_default), {
                label: unref(i18n).baseText("settings.ldap.synchronizeNow"),
                size: "large",
                disabled: hasAnyChanges.value || !readyToSubmit.value,
                loading: loadingLiveRun.value,
                onClick: onLiveRunClick
              }, null, 8, ["label", "disabled", "loading"])])])) : createCommentVNode("", true)]));
            };
          }
        }); //#endregion
        //#region src/features/settings/sso/views/SettingsLdapView.vue?vue&type=style&index=0&lang.module.scss
        container = "_container_y6w94_123";
        syncTable = "_syncTable_y6w94_127";
        header = "_header_y6w94_131";
        enableFeatureContainer = "_enableFeatureContainer_y6w94_140";
        sectionHeader = "_sectionHeader_y6w94_152";
        settingsForm = "_settingsForm_y6w94_156";
        docsInfoTip = "_docsInfoTip_y6w94_160";
        SettingsLdapView_vue_vue_type_style_index_0_lang_module_default = {
          container,
          syncTable,
          header,
          enableFeatureContainer,
          sectionHeader,
          settingsForm,
          docsInfoTip
        }; //#endregion
        //#region src/features/settings/sso/views/SettingsLdapView.vue
        cssModules = {
          "$style": SettingsLdapView_vue_vue_type_style_index_0_lang_module_default
        };
        _export("default", SettingsLdapView_default = /* @__PURE__ */__plugin_vue_export_helper_default(SettingsLdapView_vue_vue_type_script_setup_true_lang_default, [["__cssModules", cssModules]])); //#endregion
      }
    };
  });
})();