n8n-editor-ui 1.71.3 → 1.72.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-C7YrhVc7.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-WpdLQ_Lc.js} +1 -1
  2. package/dist/assets/{AuthView-Cnr31xHM.css → AuthView-BP3bsQpK.css} +3 -14
  3. package/dist/assets/{AuthView-BhrVKHQb.js → AuthView-xWm2P-0B.js} +1 -1
  4. package/dist/assets/{CanvasChat-B2z8TKEq.js → CanvasChat-CpplEK_c.js} +76 -104
  5. package/dist/assets/{CanvasChat-BuYT3e9G.css → CanvasChat-DhkdJLy7.css} +18 -81
  6. package/dist/assets/{CanvasControls-Gjw5xMXK.css → CanvasControls-BEOkwFDJ.css} +1 -2
  7. package/dist/assets/{CanvasControls-D3OVjMCG.js → CanvasControls-CNOZvEmR.js} +1 -1
  8. package/dist/assets/{ChangePasswordView-BkoEwfgW.js → ChangePasswordView-Bx4HKBs9.js} +2 -2
  9. package/dist/assets/CollectionParameter-IbNRc-rP.js +4 -0
  10. package/dist/assets/{ConcurrentExecutionsHeader-D99WmQjD.css → ConcurrentExecutionsHeader-ChCLnjVG.css} +7 -17
  11. package/dist/assets/{ConcurrentExecutionsHeader-D_jkbuah.js → ConcurrentExecutionsHeader-dMskl4He.js} +51 -47
  12. package/dist/assets/CredentialsView-CzforIh7.css +36 -0
  13. package/dist/assets/{CredentialsView-WgZTdwDF.js → CredentialsView-DYmrbOcr.js} +15 -25
  14. package/dist/assets/ErrorView-DZCz_7-d.css +22 -0
  15. package/dist/assets/{ErrorView-CCvyR8gc.js → ErrorView-DpKWfKAY.js} +1 -1
  16. package/dist/assets/{ExecutionsView-DNwpODRj.css → ExecutionsView-CLxQdDnP.css} +16 -43
  17. package/dist/assets/{ExecutionsView-BsIeNcoc.js → ExecutionsView-a2Slm2v9.js} +123 -38
  18. package/dist/assets/FileSaver.min-BiLlhrlQ.js +81 -0
  19. package/dist/assets/{FixedCollectionParameter-DzOGMEdq.css → FixedCollectionParameter-CUxLKPYJ.css} +1 -6
  20. package/dist/assets/{FixedCollectionParameter-DMpNSKjt.js → FixedCollectionParameter-DMiADFki.js} +5 -9
  21. package/dist/assets/{ForgotMyPasswordView-m-NI0pKA.js → ForgotMyPasswordView-RLODqWeW.js} +2 -2
  22. package/dist/assets/{MainHeader-DrUbWzLR.css → MainHeader-Bg4Jr0GW.css} +16 -63
  23. package/dist/assets/{MainHeader-CzdjrO1j.js → MainHeader-CZBWRbIF.js} +20 -33
  24. package/dist/assets/{MainSidebar-DL53w2zU.css → MainSidebar-B_Q71vG8.css} +16 -68
  25. package/dist/assets/{MainSidebar-CWZj9hUz.js → MainSidebar-Cm-l0HUG.js} +86 -71
  26. package/dist/assets/{NodeCreation-BNsKR1XL.js → NodeCreation-Bycww9rf.js} +10 -14
  27. package/dist/assets/{NodeCreation-30KXmZi2.css → NodeCreation-DTNNkgVv.css} +1 -5
  28. package/dist/assets/{NodeCreator-nENM_3bV.js → NodeCreator-BrgHuvb2.js} +54 -90
  29. package/dist/assets/{NodeCreator-CvOLgSO_.css → NodeCreator-BvqI_pdC.css} +21 -91
  30. package/dist/assets/{NodeViewSwitcher-tJDzCGJC.js → NodeViewSwitcher-D5JjSNB2.js} +7425 -1780
  31. package/dist/assets/{NodeViewSwitcher-jLTC590F.css → NodeViewSwitcher-DngiUgY8.css} +323 -950
  32. package/dist/assets/{ProjectCardBadge-Dwm_41ZR.js → ProjectCardBadge-B6a5Tl_X.js} +8 -13
  33. package/dist/assets/ProjectHeader-CDl0NBcF.css +21 -0
  34. package/dist/assets/{ProjectHeader-DTRxu2oO.js → ProjectHeader-CUoGk-wO.js} +61 -44
  35. package/dist/assets/{ProjectSettings-hzCZqVHM.js → ProjectSettings-BSOa51jE.js} +24 -42
  36. package/dist/assets/{ProjectSettings-CChpfrTS.css → ProjectSettings-DZws5IzZ.css} +2 -9
  37. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-Bv3nXXk5.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-ouQuoTYp.js} +1 -1
  38. package/dist/assets/{ResourcesListLayout-CKArPHiS.js → ResourcesListLayout-BKk7DIWo.js} +24 -30
  39. package/dist/assets/{ResourcesListLayout-I4rYUdFt.css → ResourcesListLayout-NZz6R66g.css} +11 -47
  40. package/dist/assets/{RunDataJson-jFaJ_yC4.js → RunDataJson-D7Whxi5x.js} +13 -13
  41. package/dist/assets/{RunDataJson-Dtc8i0I7.css → RunDataJson-DW_khHj4.css} +0 -1
  42. package/dist/assets/{RunDataJsonActions-zNKrn8z4.css → RunDataJsonActions-CoiM0oFP.css} +0 -1
  43. package/dist/assets/RunDataJsonActions-hLh8-Su6.js +5514 -0
  44. package/dist/assets/{RunDataSearch-BA0wlJtp.css → RunDataSearch-B4q8H9Ex.css} +0 -1
  45. package/dist/assets/{RunDataSearch-C9VyfwRz.js → RunDataSearch-Ds3EGLA6.js} +5 -7
  46. package/dist/assets/{RunDataTable-enskmmU4.css → RunDataTable-BOaG0Pms.css} +2 -10
  47. package/dist/assets/{RunDataTable-CK4Z05pd.js → RunDataTable-atOC6vYW.js} +9 -14
  48. package/dist/assets/{SamlOnboarding-POzPTpcl.js → SamlOnboarding-DuDPZUey.js} +4 -5
  49. package/dist/assets/{SettingsApiView-BOFUFUqU.js → SettingsApiView-CFlbEwnS.js} +1 -1
  50. package/dist/assets/{SettingsApiView-5wBxahqI.css → SettingsApiView-DX3S-5pa.css} +2 -8
  51. package/dist/assets/{SettingsCommunityNodesView-088VPv0r.js → SettingsCommunityNodesView-CJrxi3vi.js} +3 -3
  52. package/dist/assets/{SettingsCommunityNodesView-BTbugFls.css → SettingsCommunityNodesView-kzxtAoLp.css} +10 -42
  53. package/dist/assets/SettingsExternalSecrets-BnXyxlJd.css +29 -0
  54. package/dist/assets/{SettingsExternalSecrets-DlobsnOy.js → SettingsExternalSecrets-BusSlBVI.js} +14 -17
  55. package/dist/assets/SettingsLdapView-BLPKhtjA.js +2423 -0
  56. package/dist/assets/{SettingsLdapView-cRgzivq6.css → SettingsLdapView-BPh_inzE.css} +2 -8
  57. package/dist/assets/{SettingsLogStreamingView-EW9yIYwY.js → SettingsLogStreamingView-DI9OYnte.js} +20 -37
  58. package/dist/assets/SettingsLogStreamingView-Uz298HNW.css +46 -0
  59. package/dist/assets/{SettingsPersonalView-BOQgHIYm.css → SettingsPersonalView-CqzRUitO.css} +3 -13
  60. package/dist/assets/{SettingsPersonalView-DrJJtUL5.js → SettingsPersonalView-CwLPEQe5.js} +7 -10
  61. package/dist/assets/{SettingsSourceControl-COccchDl.js → SettingsSourceControl-BHiwsbh6.js} +1 -1
  62. package/dist/assets/{SettingsSourceControl-aZrwFtXG.css → SettingsSourceControl-C7H8sLJN.css} +5 -21
  63. package/dist/assets/{SettingsSso-BczGJSZo.js → SettingsSso-BUE-Dg9u.js} +10 -11
  64. package/dist/assets/{SettingsSso-DUkYL_--.css → SettingsSso-Be_ejj46.css} +3 -13
  65. package/dist/assets/{SettingsUsageAndPlan-vijI-va0.css → SettingsUsageAndPlan-C3fKPMTY.css} +13 -54
  66. package/dist/assets/{SettingsUsageAndPlan-OepwN_K0.js → SettingsUsageAndPlan-g8SYxLIm.js} +3 -7
  67. package/dist/assets/{SettingsUsersView-D6xH2uOE.js → SettingsUsersView-DsjbsMkp.js} +8 -15
  68. package/dist/assets/{SettingsView-D30Stwpp.js → SettingsView-BZqGq_NA.js} +3 -4
  69. package/dist/assets/{SettingsView-DOWbkj-V.css → SettingsView-o6uNYu0t.css} +1 -5
  70. package/dist/assets/{SetupView-DLhUy2sO.js → SetupView-DKcifLmN.js} +3 -9
  71. package/dist/assets/{SetupWorkflowCredentialsButton-FAOxK4hC.js → SetupWorkflowCredentialsButton-1FX7DWWs.js} +3 -5
  72. package/dist/assets/{SetupWorkflowFromTemplateView-29le4KEi.js → SetupWorkflowFromTemplateView-BI8db6Bn.js} +5 -9
  73. package/dist/assets/SetupWorkflowFromTemplateView-DjBcyMCl.css +26 -0
  74. package/dist/assets/{SigninView-B3r5QMqu.js → SigninView-DRl5Z9dU.js} +4 -5
  75. package/dist/assets/{SigninView-BEBHcgmK.css → SigninView-DzDE1gJb.css} +3 -14
  76. package/dist/assets/{SignoutView-DiRv1jyS.js → SignoutView-CD6CNCd4.js} +1 -1
  77. package/dist/assets/{SignupView-DepIL1mr.js → SignupView-BUIFD8_L.js} +2 -2
  78. package/dist/assets/{TemplateDetails-BG8YmNsP.js → TemplateDetails-BZy8nHAa.js} +1 -1
  79. package/dist/assets/{TemplateDetails-BjsdeJu8.css → TemplateDetails-p3M6A7jr.css} +1 -4
  80. package/dist/assets/{TemplateList-4lx8vpYf.css → TemplateList-BR3bpDTv.css} +13 -52
  81. package/dist/assets/{TemplateList-CEljIT09.js → TemplateList-DdYIfcdc.js} +1 -1
  82. package/dist/assets/{TemplatesCollectionView-C1BUeMtq.css → TemplatesCollectionView-DJVlK4Bb.css} +1 -5
  83. package/dist/assets/{TemplatesCollectionView-C1katHqi.js → TemplatesCollectionView-a9gOg1oh.js} +5 -5
  84. package/dist/assets/{TemplatesSearchView-BiokbeYf.css → TemplatesSearchView-CFrHWGcY.css} +4 -21
  85. package/dist/assets/{TemplatesSearchView-6ugazm6D.js → TemplatesSearchView-C_qp2w-Y.js} +5 -20
  86. package/dist/assets/{TemplatesView-BfnDbKo5.css → TemplatesView-CBNZZ_X1.css} +3 -16
  87. package/dist/assets/{TemplatesView-BnpZqzSI.js → TemplatesView-Srd2qTc6.js} +1 -1
  88. package/dist/assets/{TemplatesWorkflowView-D-rSlrYy.js → TemplatesWorkflowView-CDkCoN9X.js} +35 -39
  89. package/dist/assets/{TemplatesWorkflowView-BN5JjV6M.css → TemplatesWorkflowView-CVC0fbb6.css} +2 -10
  90. package/dist/assets/{TestDefinitionEditView-szspUG0t.css → TestDefinitionEditView-CVRXpJ4c.css} +13 -54
  91. package/dist/assets/{TestDefinitionEditView-Dw2F_7Ku.js → TestDefinitionEditView-CgQpahO7.js} +3 -4
  92. package/dist/assets/{TestDefinitionListView-Cv9ivpVk.js → TestDefinitionListView-BGJr2Okj.js} +4 -4
  93. package/dist/assets/{TestDefinitionListView-BfUssieW.css → TestDefinitionListView-BJVxwUdb.css} +9 -46
  94. package/dist/assets/{VariablesView-meR15bnW.css → VariablesView-BnGnRwcl.css} +3 -13
  95. package/dist/assets/{VariablesView-BrvfrvgE.js → VariablesView-DBlZthPg.js} +28 -38
  96. package/dist/assets/{VirtualSchema-Be-DGXEU.css → VirtualSchema-CIfwZj8N.css} +11 -48
  97. package/dist/assets/VirtualSchema-DkiHWd9N.js +378 -0
  98. package/dist/assets/{WorkerView-DhAgtBED.js → WorkerView--FWlY_KA.js} +14 -23
  99. package/dist/assets/WorkerView-CvXMClDD.css +123 -0
  100. package/dist/assets/{WorkflowActivator-Def_oRg7.js → WorkflowActivator-BbpMhG1U.js} +2 -2
  101. package/dist/assets/{WorkflowActivator-D8FiI2jP.css → WorkflowActivator-DSBGQvK0.css} +3 -9
  102. package/dist/assets/{WorkflowExecutionsInfoAccordion-lODxxxtv.js → WorkflowExecutionsInfoAccordion-DOpZ49kK.js} +1 -1
  103. package/dist/assets/{WorkflowExecutionsInfoAccordion-DfMew6q4.css → WorkflowExecutionsInfoAccordion-f5tIRAwu.css} +2 -14
  104. package/dist/assets/WorkflowExecutionsLandingPage-BodEQ5Bq.css +23 -0
  105. package/dist/assets/{WorkflowExecutionsLandingPage-Bidi-y5V.js → WorkflowExecutionsLandingPage-CAbWLqG8.js} +2 -2
  106. package/dist/assets/{WorkflowExecutionsPreview-DRCpGEbi.css → WorkflowExecutionsPreview-C-e7WZrK.css} +22 -98
  107. package/dist/assets/{WorkflowExecutionsPreview-d2F04pj8.js → WorkflowExecutionsPreview-CfUWIIgy.js} +39 -71
  108. package/dist/assets/{WorkflowExecutionsView-C6EMZ-AQ.css → WorkflowExecutionsView-CFOgmzpK.css} +18 -74
  109. package/dist/assets/{WorkflowExecutionsView-CHr4rzKW.js → WorkflowExecutionsView-DrfZ7QK8.js} +151 -165
  110. package/dist/assets/{WorkflowHistory-C-lUH0fo.css → WorkflowHistory-D0ufvWsH.css} +14 -57
  111. package/dist/assets/{WorkflowHistory-BSijDFcx.js → WorkflowHistory-eqsh1yXn.js} +16 -29
  112. package/dist/assets/{WorkflowOnboardingView-CvuowIe6.js → WorkflowOnboardingView-Kbe8c2_R.js} +22 -5
  113. package/dist/assets/{WorkflowPreview-CYf78I6t.js → WorkflowPreview-DKTyMYfO.js} +5 -11
  114. package/dist/assets/{WorkflowPreview-Bpiv2_RO.css → WorkflowPreview-DuLM6rtd.css} +4 -15
  115. package/dist/assets/{WorkflowsView-Bc1WW7-8.js → WorkflowsView-ClrcrpKc.js} +110 -120
  116. package/dist/assets/WorkflowsView-D5fBzfD4.css +65 -0
  117. package/dist/assets/{index-D50gpyk6.css → index-Bo70cRA3.css} +350 -1351
  118. package/dist/assets/{index-D57HUAs6.js → index-fCEqBD8K.js} +45117 -40863
  119. package/dist/assets/polyfills-BN5TIqPj.js +5985 -0
  120. package/dist/assets/{pushConnection.store-BrFt2YWH.js → pushConnection.store-Kmly9nV5.js} +2 -3
  121. package/dist/assets/{templateActions-BrLvM4wQ.js → templateActions-xeWyRgrU.js} +1 -1
  122. package/dist/assets/{testDefinition.store.ee-DJ6gErZh.js → testDefinition.store.ee-C9BPbACc.js} +1 -1
  123. package/dist/assets/{useBugReporting-v6zXxGxR.js → useBugReporting-CbgIVUCL.js} +1 -1
  124. package/dist/assets/{useExecutionDebugging-Dhwr-oW3.js → useExecutionDebugging-Cuf88DQE.js} +3 -6
  125. package/dist/assets/{useExecutionHelpers-Ovym9OwA.js → useExecutionHelpers-BIxUwlsh.js} +3 -4
  126. package/dist/assets/{useGlobalEntityCreation-D_NS7_je.js → useGlobalEntityCreation-DGVSN-Im.js} +29 -14
  127. package/dist/assets/{useNodeViewVersionSwitcher-ESq0kPP5.js → useNodeViewVersionSwitcher-Eg-dOWbq.js} +1 -1
  128. package/dist/assets/{usePushConnection-DCkWEVa2.js → usePushConnection-D-iAKJiL.js} +36 -22
  129. package/dist/assets/{useRunWorkflow-B_S0x25z.css → useRunWorkflow-BDl-2MsN.css} +24 -106
  130. package/dist/assets/{useRunWorkflow-g1Tw1vWo.js → useRunWorkflow-BXE6bWp2.js} +1547 -1581
  131. package/dist/assets/{useWorkflowActivate-DibPO-sA.js → useWorkflowActivate-D8cU5eJ_.js} +1 -1
  132. package/dist/index.html +4 -2
  133. package/package.json +1 -1
  134. package/tsconfig.json +2 -1
  135. package/vite.config.mts +11 -0
  136. package/dist/assets/CollectionParameter-D7-YFFFP.js +0 -4
  137. package/dist/assets/CredentialsView-ChjCCSbV.css +0 -56
  138. package/dist/assets/ErrorView-Dzof6SY8.css +0 -35
  139. package/dist/assets/FileSaver.min-BsJSdQo9.js +0 -74
  140. package/dist/assets/ProjectHeader-CTK_rV3h.css +0 -28
  141. package/dist/assets/RunDataJsonActions-CUYH2C-z.js +0 -5509
  142. package/dist/assets/SettingsExternalSecrets-BD5PuMIG.css +0 -50
  143. package/dist/assets/SettingsLdapView-CDm8JWNK.js +0 -2417
  144. package/dist/assets/SettingsLogStreamingView-CWIuI89G.css +0 -75
  145. package/dist/assets/SetupWorkflowFromTemplateView-CvsDVBkh.css +0 -44
  146. package/dist/assets/VirtualSchema-DFybirEh.js +0 -1863
  147. package/dist/assets/WorkerView-C_d54L0W.css +0 -181
  148. package/dist/assets/WorkflowExecutionsLandingPage-B1zCnzh_.css +0 -39
  149. package/dist/assets/WorkflowsView-C1eCTa1K.css +0 -82
  150. /package/dist/assets/{ProjectCardBadge-DPUG4BoB.css → ProjectCardBadge-DQvW5T7s.css} +0 -0
  151. /package/dist/assets/{SettingsUsersView-Ba9S2o-I.css → SettingsUsersView-C13eCMjh.css} +0 -0
@@ -1,2417 +0,0 @@
1
- import { ej as getDefaultExportFromCjs, r as ref, aU as toRefs, o as onMounted, b0 as onUnmounted, c as openBlock, h as createElementBlock, s as renderSlot, i as createVNode, f as createCommentVNode, j as createBaseVNode, t as toDisplayString, H as watch, y as nextTick, cC as pushScopeId, cA as popScopeId, d as defineComponent, a as useToast, a3 as useDocumentTitle, a5 as usePageRedirectionHelper, p as useSettingsStore, q as computed, w as withCtx, k as createTextVNode, l as unref, n as normalizeClass, ay as withDirectives, e as createBlock, i8 as ElTableColumn, i9 as ElTable, g as useI18n, ia as createFormEventBus, ae as MODAL_CONFIRM, m as resolveComponent, cI as resolveDirective, al as useMessage, ib as capitalizeFirstLetter, ic as convertToDisplayDate, _ as _export_sfc } from "./index-D57HUAs6.js";
2
- var humanizeDuration$1 = { exports: {} };
3
- (function(module) {
4
- (function() {
5
- var greek = {
6
- y: function(c) {
7
- return c === 1 ? "χρόνος" : "χρόνια";
8
- },
9
- mo: function(c) {
10
- return c === 1 ? "μήνας" : "μήνες";
11
- },
12
- w: function(c) {
13
- return c === 1 ? "εβδομάδα" : "εβδομάδες";
14
- },
15
- d: function(c) {
16
- return c === 1 ? "μέρα" : "μέρες";
17
- },
18
- h: function(c) {
19
- return c === 1 ? "ώρα" : "ώρες";
20
- },
21
- m: function(c) {
22
- return c === 1 ? "λεπτό" : "λεπτά";
23
- },
24
- s: function(c) {
25
- return c === 1 ? "δευτερόλεπτο" : "δευτερόλεπτα";
26
- },
27
- ms: function(c) {
28
- return (c === 1 ? "χιλιοστό" : "χιλιοστά") + " του δευτερολέπτου";
29
- },
30
- decimal: ","
31
- };
32
- var ARABIC_DIGITS = ["۰", "١", "٢", "٣", "٤", "٥", "٦", "٧", "٨", "٩"];
33
- var LANGUAGES = {
34
- af: {
35
- y: "jaar",
36
- mo: function(c) {
37
- return "maand" + (c === 1 ? "" : "e");
38
- },
39
- w: function(c) {
40
- return c === 1 ? "week" : "weke";
41
- },
42
- d: function(c) {
43
- return c === 1 ? "dag" : "dae";
44
- },
45
- h: function(c) {
46
- return c === 1 ? "uur" : "ure";
47
- },
48
- m: function(c) {
49
- return c === 1 ? "minuut" : "minute";
50
- },
51
- s: function(c) {
52
- return "sekonde" + (c === 1 ? "" : "s");
53
- },
54
- ms: function(c) {
55
- return "millisekonde" + (c === 1 ? "" : "s");
56
- },
57
- decimal: ","
58
- },
59
- ar: {
60
- y: function(c) {
61
- return ["سنة", "سنتان", "سنوات"][getArabicForm(c)];
62
- },
63
- mo: function(c) {
64
- return ["شهر", "شهران", "أشهر"][getArabicForm(c)];
65
- },
66
- w: function(c) {
67
- return ["أسبوع", "أسبوعين", "أسابيع"][getArabicForm(c)];
68
- },
69
- d: function(c) {
70
- return ["يوم", "يومين", "أيام"][getArabicForm(c)];
71
- },
72
- h: function(c) {
73
- return ["ساعة", "ساعتين", "ساعات"][getArabicForm(c)];
74
- },
75
- m: function(c) {
76
- return ["دقيقة", "دقيقتان", "دقائق"][getArabicForm(c)];
77
- },
78
- s: function(c) {
79
- return ["ثانية", "ثانيتان", "ثواني"][getArabicForm(c)];
80
- },
81
- ms: function(c) {
82
- return ["جزء من الثانية", "جزآن من الثانية", "أجزاء من الثانية"][getArabicForm(c)];
83
- },
84
- decimal: ",",
85
- delimiter: " و ",
86
- _formatCount: function(count, decimal) {
87
- var replacements = assign(ARABIC_DIGITS, { ".": decimal });
88
- var characters = count.toString().split("");
89
- for (var i = 0; i < characters.length; i++) {
90
- var character = characters[i];
91
- if (has(replacements, character)) {
92
- characters[i] = replacements[character];
93
- }
94
- }
95
- return characters.join("");
96
- }
97
- },
98
- bg: {
99
- y: function(c) {
100
- return ["години", "година", "години"][getSlavicForm(c)];
101
- },
102
- mo: function(c) {
103
- return ["месеца", "месец", "месеца"][getSlavicForm(c)];
104
- },
105
- w: function(c) {
106
- return ["седмици", "седмица", "седмици"][getSlavicForm(c)];
107
- },
108
- d: function(c) {
109
- return ["дни", "ден", "дни"][getSlavicForm(c)];
110
- },
111
- h: function(c) {
112
- return ["часа", "час", "часа"][getSlavicForm(c)];
113
- },
114
- m: function(c) {
115
- return ["минути", "минута", "минути"][getSlavicForm(c)];
116
- },
117
- s: function(c) {
118
- return ["секунди", "секунда", "секунди"][getSlavicForm(c)];
119
- },
120
- ms: function(c) {
121
- return ["милисекунди", "милисекунда", "милисекунди"][getSlavicForm(c)];
122
- },
123
- decimal: ","
124
- },
125
- bn: {
126
- y: "বছর",
127
- mo: "মাস",
128
- w: "সপ্তাহ",
129
- d: "দিন",
130
- h: "ঘন্টা",
131
- m: "মিনিট",
132
- s: "সেকেন্ড",
133
- ms: "মিলিসেকেন্ড"
134
- },
135
- ca: {
136
- y: function(c) {
137
- return "any" + (c === 1 ? "" : "s");
138
- },
139
- mo: function(c) {
140
- return "mes" + (c === 1 ? "" : "os");
141
- },
142
- w: function(c) {
143
- return "setman" + (c === 1 ? "a" : "es");
144
- },
145
- d: function(c) {
146
- return "di" + (c === 1 ? "a" : "es");
147
- },
148
- h: function(c) {
149
- return "hor" + (c === 1 ? "a" : "es");
150
- },
151
- m: function(c) {
152
- return "minut" + (c === 1 ? "" : "s");
153
- },
154
- s: function(c) {
155
- return "segon" + (c === 1 ? "" : "s");
156
- },
157
- ms: function(c) {
158
- return "milisegon" + (c === 1 ? "" : "s");
159
- },
160
- decimal: ","
161
- },
162
- cs: {
163
- y: function(c) {
164
- return ["rok", "roku", "roky", "let"][getCzechOrSlovakForm(c)];
165
- },
166
- mo: function(c) {
167
- return ["měsíc", "měsíce", "měsíce", "měsíců"][getCzechOrSlovakForm(c)];
168
- },
169
- w: function(c) {
170
- return ["týden", "týdne", "týdny", "týdnů"][getCzechOrSlovakForm(c)];
171
- },
172
- d: function(c) {
173
- return ["den", "dne", "dny", "dní"][getCzechOrSlovakForm(c)];
174
- },
175
- h: function(c) {
176
- return ["hodina", "hodiny", "hodiny", "hodin"][getCzechOrSlovakForm(c)];
177
- },
178
- m: function(c) {
179
- return ["minuta", "minuty", "minuty", "minut"][getCzechOrSlovakForm(c)];
180
- },
181
- s: function(c) {
182
- return ["sekunda", "sekundy", "sekundy", "sekund"][getCzechOrSlovakForm(c)];
183
- },
184
- ms: function(c) {
185
- return ["milisekunda", "milisekundy", "milisekundy", "milisekund"][getCzechOrSlovakForm(c)];
186
- },
187
- decimal: ","
188
- },
189
- cy: {
190
- y: "flwyddyn",
191
- mo: "mis",
192
- w: "wythnos",
193
- d: "diwrnod",
194
- h: "awr",
195
- m: "munud",
196
- s: "eiliad",
197
- ms: "milieiliad"
198
- },
199
- da: {
200
- y: "år",
201
- mo: function(c) {
202
- return "måned" + (c === 1 ? "" : "er");
203
- },
204
- w: function(c) {
205
- return "uge" + (c === 1 ? "" : "r");
206
- },
207
- d: function(c) {
208
- return "dag" + (c === 1 ? "" : "e");
209
- },
210
- h: function(c) {
211
- return "time" + (c === 1 ? "" : "r");
212
- },
213
- m: function(c) {
214
- return "minut" + (c === 1 ? "" : "ter");
215
- },
216
- s: function(c) {
217
- return "sekund" + (c === 1 ? "" : "er");
218
- },
219
- ms: function(c) {
220
- return "millisekund" + (c === 1 ? "" : "er");
221
- },
222
- decimal: ","
223
- },
224
- de: {
225
- y: function(c) {
226
- return "Jahr" + (c === 1 ? "" : "e");
227
- },
228
- mo: function(c) {
229
- return "Monat" + (c === 1 ? "" : "e");
230
- },
231
- w: function(c) {
232
- return "Woche" + (c === 1 ? "" : "n");
233
- },
234
- d: function(c) {
235
- return "Tag" + (c === 1 ? "" : "e");
236
- },
237
- h: function(c) {
238
- return "Stunde" + (c === 1 ? "" : "n");
239
- },
240
- m: function(c) {
241
- return "Minute" + (c === 1 ? "" : "n");
242
- },
243
- s: function(c) {
244
- return "Sekunde" + (c === 1 ? "" : "n");
245
- },
246
- ms: function(c) {
247
- return "Millisekunde" + (c === 1 ? "" : "n");
248
- },
249
- decimal: ","
250
- },
251
- el: greek,
252
- en: {
253
- y: function(c) {
254
- return "year" + (c === 1 ? "" : "s");
255
- },
256
- mo: function(c) {
257
- return "month" + (c === 1 ? "" : "s");
258
- },
259
- w: function(c) {
260
- return "week" + (c === 1 ? "" : "s");
261
- },
262
- d: function(c) {
263
- return "day" + (c === 1 ? "" : "s");
264
- },
265
- h: function(c) {
266
- return "hour" + (c === 1 ? "" : "s");
267
- },
268
- m: function(c) {
269
- return "minute" + (c === 1 ? "" : "s");
270
- },
271
- s: function(c) {
272
- return "second" + (c === 1 ? "" : "s");
273
- },
274
- ms: function(c) {
275
- return "millisecond" + (c === 1 ? "" : "s");
276
- },
277
- decimal: "."
278
- },
279
- eo: {
280
- y: function(c) {
281
- return "jaro" + (c === 1 ? "" : "j");
282
- },
283
- mo: function(c) {
284
- return "monato" + (c === 1 ? "" : "j");
285
- },
286
- w: function(c) {
287
- return "semajno" + (c === 1 ? "" : "j");
288
- },
289
- d: function(c) {
290
- return "tago" + (c === 1 ? "" : "j");
291
- },
292
- h: function(c) {
293
- return "horo" + (c === 1 ? "" : "j");
294
- },
295
- m: function(c) {
296
- return "minuto" + (c === 1 ? "" : "j");
297
- },
298
- s: function(c) {
299
- return "sekundo" + (c === 1 ? "" : "j");
300
- },
301
- ms: function(c) {
302
- return "milisekundo" + (c === 1 ? "" : "j");
303
- },
304
- decimal: ","
305
- },
306
- es: {
307
- y: function(c) {
308
- return "año" + (c === 1 ? "" : "s");
309
- },
310
- mo: function(c) {
311
- return "mes" + (c === 1 ? "" : "es");
312
- },
313
- w: function(c) {
314
- return "semana" + (c === 1 ? "" : "s");
315
- },
316
- d: function(c) {
317
- return "día" + (c === 1 ? "" : "s");
318
- },
319
- h: function(c) {
320
- return "hora" + (c === 1 ? "" : "s");
321
- },
322
- m: function(c) {
323
- return "minuto" + (c === 1 ? "" : "s");
324
- },
325
- s: function(c) {
326
- return "segundo" + (c === 1 ? "" : "s");
327
- },
328
- ms: function(c) {
329
- return "milisegundo" + (c === 1 ? "" : "s");
330
- },
331
- decimal: ","
332
- },
333
- et: {
334
- y: function(c) {
335
- return "aasta" + (c === 1 ? "" : "t");
336
- },
337
- mo: function(c) {
338
- return "kuu" + (c === 1 ? "" : "d");
339
- },
340
- w: function(c) {
341
- return "nädal" + (c === 1 ? "" : "at");
342
- },
343
- d: function(c) {
344
- return "päev" + (c === 1 ? "" : "a");
345
- },
346
- h: function(c) {
347
- return "tund" + (c === 1 ? "" : "i");
348
- },
349
- m: function(c) {
350
- return "minut" + (c === 1 ? "" : "it");
351
- },
352
- s: function(c) {
353
- return "sekund" + (c === 1 ? "" : "it");
354
- },
355
- ms: function(c) {
356
- return "millisekund" + (c === 1 ? "" : "it");
357
- },
358
- decimal: ","
359
- },
360
- eu: {
361
- y: "urte",
362
- mo: "hilabete",
363
- w: "aste",
364
- d: "egun",
365
- h: "ordu",
366
- m: "minutu",
367
- s: "segundo",
368
- ms: "milisegundo",
369
- decimal: ","
370
- },
371
- fa: {
372
- y: "سال",
373
- mo: "ماه",
374
- w: "هفته",
375
- d: "روز",
376
- h: "ساعت",
377
- m: "دقیقه",
378
- s: "ثانیه",
379
- ms: "میلی ثانیه",
380
- decimal: "."
381
- },
382
- fi: {
383
- y: function(c) {
384
- return c === 1 ? "vuosi" : "vuotta";
385
- },
386
- mo: function(c) {
387
- return c === 1 ? "kuukausi" : "kuukautta";
388
- },
389
- w: function(c) {
390
- return "viikko" + (c === 1 ? "" : "a");
391
- },
392
- d: function(c) {
393
- return "päivä" + (c === 1 ? "" : "ä");
394
- },
395
- h: function(c) {
396
- return "tunti" + (c === 1 ? "" : "a");
397
- },
398
- m: function(c) {
399
- return "minuutti" + (c === 1 ? "" : "a");
400
- },
401
- s: function(c) {
402
- return "sekunti" + (c === 1 ? "" : "a");
403
- },
404
- ms: function(c) {
405
- return "millisekunti" + (c === 1 ? "" : "a");
406
- },
407
- decimal: ","
408
- },
409
- fo: {
410
- y: "ár",
411
- mo: function(c) {
412
- return c === 1 ? "mánaður" : "mánaðir";
413
- },
414
- w: function(c) {
415
- return c === 1 ? "vika" : "vikur";
416
- },
417
- d: function(c) {
418
- return c === 1 ? "dagur" : "dagar";
419
- },
420
- h: function(c) {
421
- return c === 1 ? "tími" : "tímar";
422
- },
423
- m: function(c) {
424
- return c === 1 ? "minuttur" : "minuttir";
425
- },
426
- s: "sekund",
427
- ms: "millisekund",
428
- decimal: ","
429
- },
430
- fr: {
431
- y: function(c) {
432
- return "an" + (c >= 2 ? "s" : "");
433
- },
434
- mo: "mois",
435
- w: function(c) {
436
- return "semaine" + (c >= 2 ? "s" : "");
437
- },
438
- d: function(c) {
439
- return "jour" + (c >= 2 ? "s" : "");
440
- },
441
- h: function(c) {
442
- return "heure" + (c >= 2 ? "s" : "");
443
- },
444
- m: function(c) {
445
- return "minute" + (c >= 2 ? "s" : "");
446
- },
447
- s: function(c) {
448
- return "seconde" + (c >= 2 ? "s" : "");
449
- },
450
- ms: function(c) {
451
- return "milliseconde" + (c >= 2 ? "s" : "");
452
- },
453
- decimal: ","
454
- },
455
- gr: greek,
456
- he: {
457
- y: function(c) {
458
- return c === 1 ? "שנה" : "שנים";
459
- },
460
- mo: function(c) {
461
- return c === 1 ? "חודש" : "חודשים";
462
- },
463
- w: function(c) {
464
- return c === 1 ? "שבוע" : "שבועות";
465
- },
466
- d: function(c) {
467
- return c === 1 ? "יום" : "ימים";
468
- },
469
- h: function(c) {
470
- return c === 1 ? "שעה" : "שעות";
471
- },
472
- m: function(c) {
473
- return c === 1 ? "דקה" : "דקות";
474
- },
475
- s: function(c) {
476
- return c === 1 ? "שניה" : "שניות";
477
- },
478
- ms: function(c) {
479
- return c === 1 ? "מילישנייה" : "מילישניות";
480
- },
481
- decimal: "."
482
- },
483
- hr: {
484
- y: function(c) {
485
- if (c % 10 === 2 || c % 10 === 3 || c % 10 === 4) {
486
- return "godine";
487
- }
488
- return "godina";
489
- },
490
- mo: function(c) {
491
- if (c === 1) {
492
- return "mjesec";
493
- } else if (c === 2 || c === 3 || c === 4) {
494
- return "mjeseca";
495
- }
496
- return "mjeseci";
497
- },
498
- w: function(c) {
499
- if (c % 10 === 1 && c !== 11) {
500
- return "tjedan";
501
- }
502
- return "tjedna";
503
- },
504
- d: function(c) {
505
- return c === 1 ? "dan" : "dana";
506
- },
507
- h: function(c) {
508
- if (c === 1) {
509
- return "sat";
510
- } else if (c === 2 || c === 3 || c === 4) {
511
- return "sata";
512
- }
513
- return "sati";
514
- },
515
- m: function(c) {
516
- var mod10 = c % 10;
517
- if ((mod10 === 2 || mod10 === 3 || mod10 === 4) && (c < 10 || c > 14)) {
518
- return "minute";
519
- }
520
- return "minuta";
521
- },
522
- s: function(c) {
523
- var mod10 = c % 10;
524
- if (mod10 === 5 || Math.floor(c) === c && c >= 10 && c <= 19) {
525
- return "sekundi";
526
- } else if (mod10 === 1) {
527
- return "sekunda";
528
- } else if (mod10 === 2 || mod10 === 3 || mod10 === 4) {
529
- return "sekunde";
530
- }
531
- return "sekundi";
532
- },
533
- ms: function(c) {
534
- if (c === 1) {
535
- return "milisekunda";
536
- } else if (c % 10 === 2 || c % 10 === 3 || c % 10 === 4) {
537
- return "milisekunde";
538
- }
539
- return "milisekundi";
540
- },
541
- decimal: ","
542
- },
543
- hi: {
544
- y: "साल",
545
- mo: function(c) {
546
- return c === 1 ? "महीना" : "महीने";
547
- },
548
- w: function(c) {
549
- return c === 1 ? "हफ़्ता" : "हफ्ते";
550
- },
551
- d: "दिन",
552
- h: function(c) {
553
- return c === 1 ? "घंटा" : "घंटे";
554
- },
555
- m: "मिनट",
556
- s: "सेकंड",
557
- ms: "मिलीसेकंड",
558
- decimal: "."
559
- },
560
- hu: {
561
- y: "év",
562
- mo: "hónap",
563
- w: "hét",
564
- d: "nap",
565
- h: "óra",
566
- m: "perc",
567
- s: "másodperc",
568
- ms: "ezredmásodperc",
569
- decimal: ","
570
- },
571
- id: {
572
- y: "tahun",
573
- mo: "bulan",
574
- w: "minggu",
575
- d: "hari",
576
- h: "jam",
577
- m: "menit",
578
- s: "detik",
579
- ms: "milidetik",
580
- decimal: "."
581
- },
582
- is: {
583
- y: "ár",
584
- mo: function(c) {
585
- return "mánuð" + (c === 1 ? "ur" : "ir");
586
- },
587
- w: function(c) {
588
- return "vik" + (c === 1 ? "a" : "ur");
589
- },
590
- d: function(c) {
591
- return "dag" + (c === 1 ? "ur" : "ar");
592
- },
593
- h: function(c) {
594
- return "klukkutím" + (c === 1 ? "i" : "ar");
595
- },
596
- m: function(c) {
597
- return "mínút" + (c === 1 ? "a" : "ur");
598
- },
599
- s: function(c) {
600
- return "sekúnd" + (c === 1 ? "a" : "ur");
601
- },
602
- ms: function(c) {
603
- return "millisekúnd" + (c === 1 ? "a" : "ur");
604
- },
605
- decimal: "."
606
- },
607
- it: {
608
- y: function(c) {
609
- return "ann" + (c === 1 ? "o" : "i");
610
- },
611
- mo: function(c) {
612
- return "mes" + (c === 1 ? "e" : "i");
613
- },
614
- w: function(c) {
615
- return "settiman" + (c === 1 ? "a" : "e");
616
- },
617
- d: function(c) {
618
- return "giorn" + (c === 1 ? "o" : "i");
619
- },
620
- h: function(c) {
621
- return "or" + (c === 1 ? "a" : "e");
622
- },
623
- m: function(c) {
624
- return "minut" + (c === 1 ? "o" : "i");
625
- },
626
- s: function(c) {
627
- return "second" + (c === 1 ? "o" : "i");
628
- },
629
- ms: function(c) {
630
- return "millisecond" + (c === 1 ? "o" : "i");
631
- },
632
- decimal: ","
633
- },
634
- ja: {
635
- y: "年",
636
- mo: "ヶ月",
637
- w: "週",
638
- d: "日",
639
- h: "時間",
640
- m: "分",
641
- s: "秒",
642
- ms: "ミリ秒",
643
- decimal: "."
644
- },
645
- km: {
646
- y: "ឆ្នាំ",
647
- mo: "ខែ",
648
- w: "សប្តាហ៍",
649
- d: "ថ្ងៃ",
650
- h: "ម៉ោង",
651
- m: "នាទី",
652
- s: "វិនាទី",
653
- ms: "មិល្លីវិនាទី"
654
- },
655
- kn: {
656
- y: function(c) {
657
- return c === 1 ? "ವರ್ಷ" : "ವರ್ಷಗಳು";
658
- },
659
- mo: function(c) {
660
- return c === 1 ? "ತಿಂಗಳು" : "ತಿಂಗಳುಗಳು";
661
- },
662
- w: function(c) {
663
- return c === 1 ? "ವಾರ" : "ವಾರಗಳು";
664
- },
665
- d: function(c) {
666
- return c === 1 ? "ದಿನ" : "ದಿನಗಳು";
667
- },
668
- h: function(c) {
669
- return c === 1 ? "ಗಂಟೆ" : "ಗಂಟೆಗಳು";
670
- },
671
- m: function(c) {
672
- return c === 1 ? "ನಿಮಿಷ" : "ನಿಮಿಷಗಳು";
673
- },
674
- s: function(c) {
675
- return c === 1 ? "ಸೆಕೆಂಡ್" : "ಸೆಕೆಂಡುಗಳು";
676
- },
677
- ms: function(c) {
678
- return c === 1 ? "ಮಿಲಿಸೆಕೆಂಡ್" : "ಮಿಲಿಸೆಕೆಂಡುಗಳು";
679
- }
680
- },
681
- ko: {
682
- y: "년",
683
- mo: "개월",
684
- w: "주일",
685
- d: "일",
686
- h: "시간",
687
- m: "분",
688
- s: "초",
689
- ms: "밀리 초",
690
- decimal: "."
691
- },
692
- ku: {
693
- y: "sal",
694
- mo: "meh",
695
- w: "hefte",
696
- d: "roj",
697
- h: "seet",
698
- m: "deqe",
699
- s: "saniye",
700
- ms: "mîlîçirk",
701
- decimal: ","
702
- },
703
- lo: {
704
- y: "ປີ",
705
- mo: "ເດືອນ",
706
- w: "ອາທິດ",
707
- d: "ມື້",
708
- h: "ຊົ່ວໂມງ",
709
- m: "ນາທີ",
710
- s: "ວິນາທີ",
711
- ms: "ມິນລິວິນາທີ",
712
- decimal: ","
713
- },
714
- lt: {
715
- y: function(c) {
716
- return c % 10 === 0 || c % 100 >= 10 && c % 100 <= 20 ? "metų" : "metai";
717
- },
718
- mo: function(c) {
719
- return ["mėnuo", "mėnesiai", "mėnesių"][getLithuanianForm(c)];
720
- },
721
- w: function(c) {
722
- return ["savaitė", "savaitės", "savaičių"][getLithuanianForm(c)];
723
- },
724
- d: function(c) {
725
- return ["diena", "dienos", "dienų"][getLithuanianForm(c)];
726
- },
727
- h: function(c) {
728
- return ["valanda", "valandos", "valandų"][getLithuanianForm(c)];
729
- },
730
- m: function(c) {
731
- return ["minutė", "minutės", "minučių"][getLithuanianForm(c)];
732
- },
733
- s: function(c) {
734
- return ["sekundė", "sekundės", "sekundžių"][getLithuanianForm(c)];
735
- },
736
- ms: function(c) {
737
- return ["milisekundė", "milisekundės", "milisekundžių"][getLithuanianForm(c)];
738
- },
739
- decimal: ","
740
- },
741
- lv: {
742
- y: function(c) {
743
- return getLatvianForm(c) ? "gads" : "gadi";
744
- },
745
- mo: function(c) {
746
- return getLatvianForm(c) ? "mēnesis" : "mēneši";
747
- },
748
- w: function(c) {
749
- return getLatvianForm(c) ? "nedēļa" : "nedēļas";
750
- },
751
- d: function(c) {
752
- return getLatvianForm(c) ? "diena" : "dienas";
753
- },
754
- h: function(c) {
755
- return getLatvianForm(c) ? "stunda" : "stundas";
756
- },
757
- m: function(c) {
758
- return getLatvianForm(c) ? "minūte" : "minūtes";
759
- },
760
- s: function(c) {
761
- return getLatvianForm(c) ? "sekunde" : "sekundes";
762
- },
763
- ms: function(c) {
764
- return getLatvianForm(c) ? "milisekunde" : "milisekundes";
765
- },
766
- decimal: ","
767
- },
768
- mk: {
769
- y: function(c) {
770
- return c === 1 ? "година" : "години";
771
- },
772
- mo: function(c) {
773
- return c === 1 ? "месец" : "месеци";
774
- },
775
- w: function(c) {
776
- return c === 1 ? "недела" : "недели";
777
- },
778
- d: function(c) {
779
- return c === 1 ? "ден" : "дена";
780
- },
781
- h: function(c) {
782
- return c === 1 ? "час" : "часа";
783
- },
784
- m: function(c) {
785
- return c === 1 ? "минута" : "минути";
786
- },
787
- s: function(c) {
788
- return c === 1 ? "секунда" : "секунди";
789
- },
790
- ms: function(c) {
791
- return c === 1 ? "милисекунда" : "милисекунди";
792
- },
793
- decimal: ","
794
- },
795
- mr: {
796
- y: function(c) {
797
- return c === 1 ? "वर्ष" : "वर्षे";
798
- },
799
- mo: function(c) {
800
- return c === 1 ? "महिना" : "महिने";
801
- },
802
- w: function(c) {
803
- return c === 1 ? "आठवडा" : "आठवडे";
804
- },
805
- d: "दिवस",
806
- h: "तास",
807
- m: function(c) {
808
- return c === 1 ? "मिनिट" : "मिनिटे";
809
- },
810
- s: "सेकंद",
811
- ms: "मिलिसेकंद"
812
- },
813
- ms: {
814
- y: "tahun",
815
- mo: "bulan",
816
- w: "minggu",
817
- d: "hari",
818
- h: "jam",
819
- m: "minit",
820
- s: "saat",
821
- ms: "milisaat",
822
- decimal: "."
823
- },
824
- nl: {
825
- y: "jaar",
826
- mo: function(c) {
827
- return c === 1 ? "maand" : "maanden";
828
- },
829
- w: function(c) {
830
- return c === 1 ? "week" : "weken";
831
- },
832
- d: function(c) {
833
- return c === 1 ? "dag" : "dagen";
834
- },
835
- h: "uur",
836
- m: function(c) {
837
- return c === 1 ? "minuut" : "minuten";
838
- },
839
- s: function(c) {
840
- return c === 1 ? "seconde" : "seconden";
841
- },
842
- ms: function(c) {
843
- return c === 1 ? "milliseconde" : "milliseconden";
844
- },
845
- decimal: ","
846
- },
847
- no: {
848
- y: "år",
849
- mo: function(c) {
850
- return "måned" + (c === 1 ? "" : "er");
851
- },
852
- w: function(c) {
853
- return "uke" + (c === 1 ? "" : "r");
854
- },
855
- d: function(c) {
856
- return "dag" + (c === 1 ? "" : "er");
857
- },
858
- h: function(c) {
859
- return "time" + (c === 1 ? "" : "r");
860
- },
861
- m: function(c) {
862
- return "minutt" + (c === 1 ? "" : "er");
863
- },
864
- s: function(c) {
865
- return "sekund" + (c === 1 ? "" : "er");
866
- },
867
- ms: function(c) {
868
- return "millisekund" + (c === 1 ? "" : "er");
869
- },
870
- decimal: ","
871
- },
872
- pl: {
873
- y: function(c) {
874
- return ["rok", "roku", "lata", "lat"][getPolishForm(c)];
875
- },
876
- mo: function(c) {
877
- return ["miesiąc", "miesiąca", "miesiące", "miesięcy"][getPolishForm(c)];
878
- },
879
- w: function(c) {
880
- return ["tydzień", "tygodnia", "tygodnie", "tygodni"][getPolishForm(c)];
881
- },
882
- d: function(c) {
883
- return ["dzień", "dnia", "dni", "dni"][getPolishForm(c)];
884
- },
885
- h: function(c) {
886
- return ["godzina", "godziny", "godziny", "godzin"][getPolishForm(c)];
887
- },
888
- m: function(c) {
889
- return ["minuta", "minuty", "minuty", "minut"][getPolishForm(c)];
890
- },
891
- s: function(c) {
892
- return ["sekunda", "sekundy", "sekundy", "sekund"][getPolishForm(c)];
893
- },
894
- ms: function(c) {
895
- return ["milisekunda", "milisekundy", "milisekundy", "milisekund"][getPolishForm(c)];
896
- },
897
- decimal: ","
898
- },
899
- pt: {
900
- y: function(c) {
901
- return "ano" + (c === 1 ? "" : "s");
902
- },
903
- mo: function(c) {
904
- return c === 1 ? "mês" : "meses";
905
- },
906
- w: function(c) {
907
- return "semana" + (c === 1 ? "" : "s");
908
- },
909
- d: function(c) {
910
- return "dia" + (c === 1 ? "" : "s");
911
- },
912
- h: function(c) {
913
- return "hora" + (c === 1 ? "" : "s");
914
- },
915
- m: function(c) {
916
- return "minuto" + (c === 1 ? "" : "s");
917
- },
918
- s: function(c) {
919
- return "segundo" + (c === 1 ? "" : "s");
920
- },
921
- ms: function(c) {
922
- return "milissegundo" + (c === 1 ? "" : "s");
923
- },
924
- decimal: ","
925
- },
926
- ro: {
927
- y: function(c) {
928
- return c === 1 ? "an" : "ani";
929
- },
930
- mo: function(c) {
931
- return c === 1 ? "lună" : "luni";
932
- },
933
- w: function(c) {
934
- return c === 1 ? "săptămână" : "săptămâni";
935
- },
936
- d: function(c) {
937
- return c === 1 ? "zi" : "zile";
938
- },
939
- h: function(c) {
940
- return c === 1 ? "oră" : "ore";
941
- },
942
- m: function(c) {
943
- return c === 1 ? "minut" : "minute";
944
- },
945
- s: function(c) {
946
- return c === 1 ? "secundă" : "secunde";
947
- },
948
- ms: function(c) {
949
- return c === 1 ? "milisecundă" : "milisecunde";
950
- },
951
- decimal: ","
952
- },
953
- ru: {
954
- y: function(c) {
955
- return ["лет", "год", "года"][getSlavicForm(c)];
956
- },
957
- mo: function(c) {
958
- return ["месяцев", "месяц", "месяца"][getSlavicForm(c)];
959
- },
960
- w: function(c) {
961
- return ["недель", "неделя", "недели"][getSlavicForm(c)];
962
- },
963
- d: function(c) {
964
- return ["дней", "день", "дня"][getSlavicForm(c)];
965
- },
966
- h: function(c) {
967
- return ["часов", "час", "часа"][getSlavicForm(c)];
968
- },
969
- m: function(c) {
970
- return ["минут", "минута", "минуты"][getSlavicForm(c)];
971
- },
972
- s: function(c) {
973
- return ["секунд", "секунда", "секунды"][getSlavicForm(c)];
974
- },
975
- ms: function(c) {
976
- return ["миллисекунд", "миллисекунда", "миллисекунды"][getSlavicForm(c)];
977
- },
978
- decimal: ","
979
- },
980
- sq: {
981
- y: function(c) {
982
- return c === 1 ? "vit" : "vjet";
983
- },
984
- mo: "muaj",
985
- w: "javë",
986
- d: "ditë",
987
- h: "orë",
988
- m: function(c) {
989
- return "minut" + (c === 1 ? "ë" : "a");
990
- },
991
- s: function(c) {
992
- return "sekond" + (c === 1 ? "ë" : "a");
993
- },
994
- ms: function(c) {
995
- return "milisekond" + (c === 1 ? "ë" : "a");
996
- },
997
- decimal: ","
998
- },
999
- sr: {
1000
- y: function(c) {
1001
- return ["години", "година", "године"][getSlavicForm(c)];
1002
- },
1003
- mo: function(c) {
1004
- return ["месеци", "месец", "месеца"][getSlavicForm(c)];
1005
- },
1006
- w: function(c) {
1007
- return ["недељи", "недеља", "недеље"][getSlavicForm(c)];
1008
- },
1009
- d: function(c) {
1010
- return ["дани", "дан", "дана"][getSlavicForm(c)];
1011
- },
1012
- h: function(c) {
1013
- return ["сати", "сат", "сата"][getSlavicForm(c)];
1014
- },
1015
- m: function(c) {
1016
- return ["минута", "минут", "минута"][getSlavicForm(c)];
1017
- },
1018
- s: function(c) {
1019
- return ["секунди", "секунда", "секунде"][getSlavicForm(c)];
1020
- },
1021
- ms: function(c) {
1022
- return ["милисекунди", "милисекунда", "милисекунде"][getSlavicForm(c)];
1023
- },
1024
- decimal: ","
1025
- },
1026
- ta: {
1027
- y: function(c) {
1028
- return c === 1 ? "வருடம்" : "ஆண்டுகள்";
1029
- },
1030
- mo: function(c) {
1031
- return c === 1 ? "மாதம்" : "மாதங்கள்";
1032
- },
1033
- w: function(c) {
1034
- return c === 1 ? "வாரம்" : "வாரங்கள்";
1035
- },
1036
- d: function(c) {
1037
- return c === 1 ? "நாள்" : "நாட்கள்";
1038
- },
1039
- h: function(c) {
1040
- return c === 1 ? "மணி" : "மணிநேரம்";
1041
- },
1042
- m: function(c) {
1043
- return "நிமிட" + (c === 1 ? "ம்" : "ங்கள்");
1044
- },
1045
- s: function(c) {
1046
- return "வினாடி" + (c === 1 ? "" : "கள்");
1047
- },
1048
- ms: function(c) {
1049
- return "மில்லி விநாடி" + (c === 1 ? "" : "கள்");
1050
- }
1051
- },
1052
- te: {
1053
- y: function(c) {
1054
- return "సంవత్స" + (c === 1 ? "రం" : "రాల");
1055
- },
1056
- mo: function(c) {
1057
- return "నెల" + (c === 1 ? "" : "ల");
1058
- },
1059
- w: function(c) {
1060
- return c === 1 ? "వారం" : "వారాలు";
1061
- },
1062
- d: function(c) {
1063
- return "రోజు" + (c === 1 ? "" : "లు");
1064
- },
1065
- h: function(c) {
1066
- return "గంట" + (c === 1 ? "" : "లు");
1067
- },
1068
- m: function(c) {
1069
- return c === 1 ? "నిమిషం" : "నిమిషాలు";
1070
- },
1071
- s: function(c) {
1072
- return c === 1 ? "సెకను" : "సెకన్లు";
1073
- },
1074
- ms: function(c) {
1075
- return c === 1 ? "మిల్లీసెకన్" : "మిల్లీసెకన్లు";
1076
- }
1077
- },
1078
- uk: {
1079
- y: function(c) {
1080
- return ["років", "рік", "роки"][getSlavicForm(c)];
1081
- },
1082
- mo: function(c) {
1083
- return ["місяців", "місяць", "місяці"][getSlavicForm(c)];
1084
- },
1085
- w: function(c) {
1086
- return ["тижнів", "тиждень", "тижні"][getSlavicForm(c)];
1087
- },
1088
- d: function(c) {
1089
- return ["днів", "день", "дні"][getSlavicForm(c)];
1090
- },
1091
- h: function(c) {
1092
- return ["годин", "година", "години"][getSlavicForm(c)];
1093
- },
1094
- m: function(c) {
1095
- return ["хвилин", "хвилина", "хвилини"][getSlavicForm(c)];
1096
- },
1097
- s: function(c) {
1098
- return ["секунд", "секунда", "секунди"][getSlavicForm(c)];
1099
- },
1100
- ms: function(c) {
1101
- return ["мілісекунд", "мілісекунда", "мілісекунди"][getSlavicForm(c)];
1102
- },
1103
- decimal: ","
1104
- },
1105
- ur: {
1106
- y: "سال",
1107
- mo: function(c) {
1108
- return c === 1 ? "مہینہ" : "مہینے";
1109
- },
1110
- w: function(c) {
1111
- return c === 1 ? "ہفتہ" : "ہفتے";
1112
- },
1113
- d: "دن",
1114
- h: function(c) {
1115
- return c === 1 ? "گھنٹہ" : "گھنٹے";
1116
- },
1117
- m: "منٹ",
1118
- s: "سیکنڈ",
1119
- ms: "ملی سیکنڈ",
1120
- decimal: "."
1121
- },
1122
- sk: {
1123
- y: function(c) {
1124
- return ["rok", "roky", "roky", "rokov"][getCzechOrSlovakForm(c)];
1125
- },
1126
- mo: function(c) {
1127
- return ["mesiac", "mesiace", "mesiace", "mesiacov"][getCzechOrSlovakForm(c)];
1128
- },
1129
- w: function(c) {
1130
- return ["týždeň", "týždne", "týždne", "týždňov"][getCzechOrSlovakForm(c)];
1131
- },
1132
- d: function(c) {
1133
- return ["deň", "dni", "dni", "dní"][getCzechOrSlovakForm(c)];
1134
- },
1135
- h: function(c) {
1136
- return ["hodina", "hodiny", "hodiny", "hodín"][getCzechOrSlovakForm(c)];
1137
- },
1138
- m: function(c) {
1139
- return ["minúta", "minúty", "minúty", "minút"][getCzechOrSlovakForm(c)];
1140
- },
1141
- s: function(c) {
1142
- return ["sekunda", "sekundy", "sekundy", "sekúnd"][getCzechOrSlovakForm(c)];
1143
- },
1144
- ms: function(c) {
1145
- return ["milisekunda", "milisekundy", "milisekundy", "milisekúnd"][getCzechOrSlovakForm(c)];
1146
- },
1147
- decimal: ","
1148
- },
1149
- sl: {
1150
- y: function(c) {
1151
- if (c % 10 === 1) {
1152
- return "leto";
1153
- } else if (c % 100 === 2) {
1154
- return "leti";
1155
- } else if (c % 100 === 3 || c % 100 === 4 || Math.floor(c) !== c && c % 100 <= 5) {
1156
- return "leta";
1157
- } else {
1158
- return "let";
1159
- }
1160
- },
1161
- mo: function(c) {
1162
- if (c % 10 === 1) {
1163
- return "mesec";
1164
- } else if (c % 100 === 2 || Math.floor(c) !== c && c % 100 <= 5) {
1165
- return "meseca";
1166
- } else if (c % 10 === 3 || c % 10 === 4) {
1167
- return "mesece";
1168
- } else {
1169
- return "mesecev";
1170
- }
1171
- },
1172
- w: function(c) {
1173
- if (c % 10 === 1) {
1174
- return "teden";
1175
- } else if (c % 10 === 2 || Math.floor(c) !== c && c % 100 <= 4) {
1176
- return "tedna";
1177
- } else if (c % 10 === 3 || c % 10 === 4) {
1178
- return "tedne";
1179
- } else {
1180
- return "tednov";
1181
- }
1182
- },
1183
- d: function(c) {
1184
- return c % 100 === 1 ? "dan" : "dni";
1185
- },
1186
- h: function(c) {
1187
- if (c % 10 === 1) {
1188
- return "ura";
1189
- } else if (c % 100 === 2) {
1190
- return "uri";
1191
- } else if (c % 10 === 3 || c % 10 === 4 || Math.floor(c) !== c) {
1192
- return "ure";
1193
- } else {
1194
- return "ur";
1195
- }
1196
- },
1197
- m: function(c) {
1198
- if (c % 10 === 1) {
1199
- return "minuta";
1200
- } else if (c % 10 === 2) {
1201
- return "minuti";
1202
- } else if (c % 10 === 3 || c % 10 === 4 || Math.floor(c) !== c && c % 100 <= 4) {
1203
- return "minute";
1204
- } else {
1205
- return "minut";
1206
- }
1207
- },
1208
- s: function(c) {
1209
- if (c % 10 === 1) {
1210
- return "sekunda";
1211
- } else if (c % 100 === 2) {
1212
- return "sekundi";
1213
- } else if (c % 100 === 3 || c % 100 === 4 || Math.floor(c) !== c) {
1214
- return "sekunde";
1215
- } else {
1216
- return "sekund";
1217
- }
1218
- },
1219
- ms: function(c) {
1220
- if (c % 10 === 1) {
1221
- return "milisekunda";
1222
- } else if (c % 100 === 2) {
1223
- return "milisekundi";
1224
- } else if (c % 100 === 3 || c % 100 === 4 || Math.floor(c) !== c) {
1225
- return "milisekunde";
1226
- } else {
1227
- return "milisekund";
1228
- }
1229
- },
1230
- decimal: ","
1231
- },
1232
- sv: {
1233
- y: "år",
1234
- mo: function(c) {
1235
- return "månad" + (c === 1 ? "" : "er");
1236
- },
1237
- w: function(c) {
1238
- return "veck" + (c === 1 ? "a" : "or");
1239
- },
1240
- d: function(c) {
1241
- return "dag" + (c === 1 ? "" : "ar");
1242
- },
1243
- h: function(c) {
1244
- return "timm" + (c === 1 ? "e" : "ar");
1245
- },
1246
- m: function(c) {
1247
- return "minut" + (c === 1 ? "" : "er");
1248
- },
1249
- s: function(c) {
1250
- return "sekund" + (c === 1 ? "" : "er");
1251
- },
1252
- ms: function(c) {
1253
- return "millisekund" + (c === 1 ? "" : "er");
1254
- },
1255
- decimal: ","
1256
- },
1257
- sw: {
1258
- y: function(c) {
1259
- return c === 1 ? "mwaka" : "miaka";
1260
- },
1261
- mo: function(c) {
1262
- return c === 1 ? "mwezi" : "miezi";
1263
- },
1264
- w: "wiki",
1265
- d: function(c) {
1266
- return c === 1 ? "siku" : "masiku";
1267
- },
1268
- h: function(c) {
1269
- return c === 1 ? "saa" : "masaa";
1270
- },
1271
- m: "dakika",
1272
- s: "sekunde",
1273
- ms: "milisekunde",
1274
- decimal: ".",
1275
- _numberFirst: true
1276
- },
1277
- tr: {
1278
- y: "yıl",
1279
- mo: "ay",
1280
- w: "hafta",
1281
- d: "gün",
1282
- h: "saat",
1283
- m: "dakika",
1284
- s: "saniye",
1285
- ms: "milisaniye",
1286
- decimal: ","
1287
- },
1288
- th: {
1289
- y: "ปี",
1290
- mo: "เดือน",
1291
- w: "สัปดาห์",
1292
- d: "วัน",
1293
- h: "ชั่วโมง",
1294
- m: "นาที",
1295
- s: "วินาที",
1296
- ms: "มิลลิวินาที",
1297
- decimal: "."
1298
- },
1299
- vi: {
1300
- y: "năm",
1301
- mo: "tháng",
1302
- w: "tuần",
1303
- d: "ngày",
1304
- h: "giờ",
1305
- m: "phút",
1306
- s: "giây",
1307
- ms: "mili giây",
1308
- decimal: ","
1309
- },
1310
- zh_CN: {
1311
- y: "年",
1312
- mo: "个月",
1313
- w: "周",
1314
- d: "天",
1315
- h: "小时",
1316
- m: "分钟",
1317
- s: "秒",
1318
- ms: "毫秒",
1319
- decimal: "."
1320
- },
1321
- zh_TW: {
1322
- y: "年",
1323
- mo: "個月",
1324
- w: "周",
1325
- d: "天",
1326
- h: "小時",
1327
- m: "分鐘",
1328
- s: "秒",
1329
- ms: "毫秒",
1330
- decimal: "."
1331
- }
1332
- };
1333
- function humanizer(passedOptions) {
1334
- var result = function humanizer2(ms, humanizerOptions) {
1335
- var options = assign({}, result, humanizerOptions || {});
1336
- return doHumanization(ms, options);
1337
- };
1338
- return assign(
1339
- result,
1340
- {
1341
- language: "en",
1342
- spacer: " ",
1343
- conjunction: "",
1344
- serialComma: true,
1345
- units: ["y", "mo", "w", "d", "h", "m", "s"],
1346
- languages: {},
1347
- round: false,
1348
- unitMeasures: {
1349
- y: 315576e5,
1350
- mo: 26298e5,
1351
- w: 6048e5,
1352
- d: 864e5,
1353
- h: 36e5,
1354
- m: 6e4,
1355
- s: 1e3,
1356
- ms: 1
1357
- }
1358
- },
1359
- passedOptions
1360
- );
1361
- }
1362
- var humanizeDuration2 = humanizer({});
1363
- function getDictionary(options) {
1364
- var languagesFromOptions = [options.language];
1365
- if (has(options, "fallbacks")) {
1366
- if (isArray(options.fallbacks) && options.fallbacks.length) {
1367
- languagesFromOptions = languagesFromOptions.concat(options.fallbacks);
1368
- } else {
1369
- throw new Error("fallbacks must be an array with at least one element");
1370
- }
1371
- }
1372
- for (var i = 0; i < languagesFromOptions.length; i++) {
1373
- var languageToTry = languagesFromOptions[i];
1374
- if (has(options.languages, languageToTry)) {
1375
- return options.languages[languageToTry];
1376
- } else if (has(LANGUAGES, languageToTry)) {
1377
- return LANGUAGES[languageToTry];
1378
- }
1379
- }
1380
- throw new Error("No language found.");
1381
- }
1382
- function doHumanization(ms, options) {
1383
- var i, len, piece;
1384
- ms = Math.abs(ms);
1385
- var dictionary = getDictionary(options);
1386
- var pieces = [];
1387
- var unitName, unitMS, unitCount;
1388
- for (i = 0, len = options.units.length; i < len; i++) {
1389
- unitName = options.units[i];
1390
- unitMS = options.unitMeasures[unitName];
1391
- if (i + 1 === len) {
1392
- if (has(options, "maxDecimalPoints")) {
1393
- var expValue = Math.pow(10, options.maxDecimalPoints);
1394
- var unitCountFloat = ms / unitMS;
1395
- unitCount = parseFloat(
1396
- (Math.floor(expValue * unitCountFloat) / expValue).toFixed(
1397
- options.maxDecimalPoints
1398
- )
1399
- );
1400
- } else {
1401
- unitCount = ms / unitMS;
1402
- }
1403
- } else {
1404
- unitCount = Math.floor(ms / unitMS);
1405
- }
1406
- pieces.push({
1407
- unitCount,
1408
- unitName
1409
- });
1410
- ms -= unitCount * unitMS;
1411
- }
1412
- var firstOccupiedUnitIndex = 0;
1413
- for (i = 0; i < pieces.length; i++) {
1414
- if (pieces[i].unitCount) {
1415
- firstOccupiedUnitIndex = i;
1416
- break;
1417
- }
1418
- }
1419
- if (options.round) {
1420
- var ratioToLargerUnit, previousPiece;
1421
- for (i = pieces.length - 1; i >= 0; i--) {
1422
- piece = pieces[i];
1423
- piece.unitCount = Math.round(piece.unitCount);
1424
- if (i === 0) {
1425
- break;
1426
- }
1427
- previousPiece = pieces[i - 1];
1428
- ratioToLargerUnit = options.unitMeasures[previousPiece.unitName] / options.unitMeasures[piece.unitName];
1429
- if (piece.unitCount % ratioToLargerUnit === 0 || options.largest && options.largest - 1 < i - firstOccupiedUnitIndex) {
1430
- previousPiece.unitCount += piece.unitCount / ratioToLargerUnit;
1431
- piece.unitCount = 0;
1432
- }
1433
- }
1434
- }
1435
- var result = [];
1436
- for (i = 0, pieces.length; i < len; i++) {
1437
- piece = pieces[i];
1438
- if (piece.unitCount) {
1439
- result.push(
1440
- render(piece.unitCount, piece.unitName, dictionary, options)
1441
- );
1442
- }
1443
- if (result.length === options.largest) {
1444
- break;
1445
- }
1446
- }
1447
- if (result.length) {
1448
- var delimiter;
1449
- if (has(options, "delimiter")) {
1450
- delimiter = options.delimiter;
1451
- } else if (has(dictionary, "delimiter")) {
1452
- delimiter = dictionary.delimiter;
1453
- } else {
1454
- delimiter = ", ";
1455
- }
1456
- if (!options.conjunction || result.length === 1) {
1457
- return result.join(delimiter);
1458
- } else if (result.length === 2) {
1459
- return result.join(options.conjunction);
1460
- } else if (result.length > 2) {
1461
- return result.slice(0, -1).join(delimiter) + (options.serialComma ? "," : "") + options.conjunction + result.slice(-1);
1462
- }
1463
- } else {
1464
- return render(
1465
- 0,
1466
- options.units[options.units.length - 1],
1467
- dictionary,
1468
- options
1469
- );
1470
- }
1471
- }
1472
- function render(count, type, dictionary, options) {
1473
- var decimal;
1474
- if (has(options, "decimal")) {
1475
- decimal = options.decimal;
1476
- } else if (has(dictionary, "decimal")) {
1477
- decimal = dictionary.decimal;
1478
- } else {
1479
- decimal = ".";
1480
- }
1481
- var countStr;
1482
- if (typeof dictionary._formatCount === "function") {
1483
- countStr = dictionary._formatCount(count, decimal);
1484
- } else {
1485
- countStr = count.toString().replace(".", decimal);
1486
- }
1487
- var dictionaryValue = dictionary[type];
1488
- var word;
1489
- if (typeof dictionaryValue === "function") {
1490
- word = dictionaryValue(count);
1491
- } else {
1492
- word = dictionaryValue;
1493
- }
1494
- if (dictionary._numberFirst) {
1495
- return word + options.spacer + countStr;
1496
- }
1497
- return countStr + options.spacer + word;
1498
- }
1499
- function assign(destination) {
1500
- var source;
1501
- for (var i = 1; i < arguments.length; i++) {
1502
- source = arguments[i];
1503
- for (var prop in source) {
1504
- if (has(source, prop)) {
1505
- destination[prop] = source[prop];
1506
- }
1507
- }
1508
- }
1509
- return destination;
1510
- }
1511
- function getArabicForm(c) {
1512
- if (c === 1) {
1513
- return 0;
1514
- }
1515
- if (c === 2) {
1516
- return 1;
1517
- }
1518
- if (c > 2 && c < 11) {
1519
- return 2;
1520
- }
1521
- return 0;
1522
- }
1523
- function getPolishForm(c) {
1524
- if (c === 1) {
1525
- return 0;
1526
- } else if (Math.floor(c) !== c) {
1527
- return 1;
1528
- } else if (c % 10 >= 2 && c % 10 <= 4 && !(c % 100 > 10 && c % 100 < 20)) {
1529
- return 2;
1530
- } else {
1531
- return 3;
1532
- }
1533
- }
1534
- function getSlavicForm(c) {
1535
- if (Math.floor(c) !== c) {
1536
- return 2;
1537
- } else if (c % 100 >= 5 && c % 100 <= 20 || c % 10 >= 5 && c % 10 <= 9 || c % 10 === 0) {
1538
- return 0;
1539
- } else if (c % 10 === 1) {
1540
- return 1;
1541
- } else if (c > 1) {
1542
- return 2;
1543
- } else {
1544
- return 0;
1545
- }
1546
- }
1547
- function getCzechOrSlovakForm(c) {
1548
- if (c === 1) {
1549
- return 0;
1550
- } else if (Math.floor(c) !== c) {
1551
- return 1;
1552
- } else if (c % 10 >= 2 && c % 10 <= 4 && c % 100 < 10) {
1553
- return 2;
1554
- } else {
1555
- return 3;
1556
- }
1557
- }
1558
- function getLithuanianForm(c) {
1559
- if (c === 1 || c % 10 === 1 && c % 100 > 20) {
1560
- return 0;
1561
- } else if (Math.floor(c) !== c || c % 10 >= 2 && c % 100 > 20 || c % 10 >= 2 && c % 100 < 10) {
1562
- return 1;
1563
- } else {
1564
- return 2;
1565
- }
1566
- }
1567
- function getLatvianForm(c) {
1568
- return c % 10 === 1 && c % 100 !== 11;
1569
- }
1570
- var isArray = Array.isArray || function(arg) {
1571
- return Object.prototype.toString.call(arg) === "[object Array]";
1572
- };
1573
- function has(obj, key) {
1574
- return Object.prototype.hasOwnProperty.call(obj, key);
1575
- }
1576
- humanizeDuration2.getSupportedLanguages = function getSupportedLanguages() {
1577
- var result = [];
1578
- for (var language in LANGUAGES) {
1579
- if (has(LANGUAGES, language) && language !== "gr") {
1580
- result.push(language);
1581
- }
1582
- }
1583
- return result;
1584
- };
1585
- humanizeDuration2.humanizer = humanizer;
1586
- if (module.exports) {
1587
- module.exports = humanizeDuration2;
1588
- } else {
1589
- this.humanizeDuration = humanizeDuration2;
1590
- }
1591
- })();
1592
- })(humanizeDuration$1);
1593
- var humanizeDurationExports = humanizeDuration$1.exports;
1594
- const humanizeDuration = /* @__PURE__ */ getDefaultExportFromCjs(humanizeDurationExports);
1595
- const E = (e, o) => {
1596
- const t = e.__vccOpts || e;
1597
- for (const [n, s] of o)
1598
- t[n] = s;
1599
- return t;
1600
- }, C = {}, j = (e) => (pushScopeId("data-v-259be2b2"), e = e(), popScopeId(), e), M = { class: "container" }, T = /* @__PURE__ */ j(() => /* @__PURE__ */ createBaseVNode("div", { class: "spinner" }, null, -1)), V = [
1601
- T
1602
- ];
1603
- function W(e, o) {
1604
- return openBlock(), createElementBlock("div", M, V);
1605
- }
1606
- const D = /* @__PURE__ */ E(C, [["render", W], ["__scopeId", "data-v-259be2b2"], ["__file", "/home/oumoussa/side-projects/infinite/src/components/Spinner.vue"]]), U = (e) => ({
1607
- loading() {
1608
- e.value = "loading";
1609
- },
1610
- loaded() {
1611
- e.value = "loaded";
1612
- },
1613
- complete() {
1614
- e.value = "complete";
1615
- },
1616
- error() {
1617
- e.value = "error";
1618
- }
1619
- }), z = (e, o, t) => () => {
1620
- const n = t.parentEl || document.documentElement;
1621
- t.prevHeight = n.scrollHeight, o.loading(), e("infinite", o);
1622
- }, A = (e, o) => {
1623
- const t = e.getBoundingClientRect();
1624
- if (!o)
1625
- return t.top >= 0 && t.bottom <= window.innerHeight;
1626
- const n = o.getBoundingClientRect();
1627
- return t.top >= n.top && t.bottom <= n.bottom;
1628
- }, y = (e) => {
1629
- e.parentEl = document.querySelector(e.target) || null;
1630
- let o = `0px 0px ${e.distance}px 0px`;
1631
- e.top && (o = `${e.distance}px 0px 0px 0px`);
1632
- const t = new IntersectionObserver(
1633
- (n) => {
1634
- n[0].isIntersecting && (e.firstload && e.emit(), e.firstload = true);
1635
- },
1636
- { root: e.parentEl, rootMargin: o }
1637
- );
1638
- return t.observe(e.infiniteLoading.value), t;
1639
- };
1640
- const F = { class: "state-error" }, G = {
1641
- __name: "InfiniteLoading",
1642
- props: {
1643
- top: { type: Boolean, required: false },
1644
- target: { type: [String, Boolean], required: false },
1645
- distance: { type: Number, required: false, default: 0 },
1646
- identifier: { required: false },
1647
- firstload: { type: Boolean, required: false, default: true },
1648
- slots: { type: Object, required: false }
1649
- },
1650
- emits: ["infinite"],
1651
- setup(e, { emit: o }) {
1652
- const t = e;
1653
- let n = null;
1654
- const s = ref(null), l = ref("ready"), { top: f, firstload: x, target: I, distance: S } = t, { identifier: _ } = toRefs(t), i = {
1655
- infiniteLoading: s,
1656
- target: I,
1657
- top: f,
1658
- firstload: x,
1659
- distance: S,
1660
- prevHeight: 0,
1661
- parentEl: null
1662
- };
1663
- i.emit = z(o, U(l), i);
1664
- const k = () => watch(l, async (r) => {
1665
- const c = i.parentEl || document.documentElement;
1666
- await nextTick(), r == "loaded" && f && (c.scrollTop = c.scrollHeight - i.prevHeight), r == "loaded" && A(s.value, i.parentEl) && i.emit(), r == "complete" && n.disconnect();
1667
- }), q = () => watch(_, () => {
1668
- l.value = "ready", n.disconnect(), n = y(i);
1669
- });
1670
- return onMounted(() => {
1671
- n = y(i), k(), _ && q();
1672
- }), onUnmounted(() => {
1673
- n.disconnect();
1674
- }), (r, c) => (openBlock(), createElementBlock("div", {
1675
- ref_key: "infiniteLoading",
1676
- ref: s
1677
- }, [
1678
- l.value == "loading" ? renderSlot(r.$slots, "spinner", { key: 0 }, () => [
1679
- createVNode(D)
1680
- ], true) : createCommentVNode("v-if", true),
1681
- l.value == "complete" ? renderSlot(r.$slots, "complete", { key: 1 }, () => {
1682
- var d;
1683
- return [
1684
- createBaseVNode("span", null, toDisplayString(((d = e.slots) == null ? void 0 : d.complete) || "No more results!"), 1)
1685
- ];
1686
- }, true) : createCommentVNode("v-if", true),
1687
- l.value == "error" ? renderSlot(r.$slots, "error", {
1688
- key: 2,
1689
- retry: i.emit
1690
- }, () => {
1691
- var d;
1692
- return [
1693
- createBaseVNode("span", F, [
1694
- createBaseVNode("span", null, toDisplayString(((d = e.slots) == null ? void 0 : d.error) || "Oops something went wrong!"), 1),
1695
- createBaseVNode("button", {
1696
- class: "retry",
1697
- onClick: c[0] || (c[0] = (...B) => i.emit && i.emit(...B))
1698
- }, " retry ")
1699
- ])
1700
- ];
1701
- }, true) : createCommentVNode("v-if", true)
1702
- ], 512));
1703
- }
1704
- }, K = /* @__PURE__ */ E(G, [["__scopeId", "data-v-9d82030b"], ["__file", "/home/oumoussa/side-projects/infinite/src/components/InfiniteLoading.vue"]]);
1705
- const _hoisted_1 = { key: 0 };
1706
- const _hoisted_2 = { key: 1 };
1707
- const _hoisted_3 = { key: 0 };
1708
- const _hoisted_4 = { class: "pb-3xl" };
1709
- const _sfc_main = /* @__PURE__ */ defineComponent({
1710
- __name: "SettingsLdapView",
1711
- setup(__props) {
1712
- const toast = useToast();
1713
- const i18n = useI18n();
1714
- const message = useMessage();
1715
- const documentTitle = useDocumentTitle();
1716
- const pageRedirectionHelper = usePageRedirectionHelper();
1717
- const settingsStore = useSettingsStore();
1718
- const dataTable = ref([]);
1719
- const tableKey = ref(0);
1720
- const adConfig = ref();
1721
- const loadingTestConnection = ref(false);
1722
- const loadingDryRun = ref(false);
1723
- const loadingLiveRun = ref(false);
1724
- const loadingTable = ref(false);
1725
- const hasAnyChanges = ref(false);
1726
- const formInputs = ref(null);
1727
- const formBus = createFormEventBus();
1728
- const readyToSubmit = ref(false);
1729
- const page = ref(0);
1730
- const loginEnabled = ref(false);
1731
- const syncEnabled = ref(false);
1732
- const ldapConfigFormRef = ref();
1733
- const isLDAPFeatureEnabled = computed(() => settingsStore.settings.enterprise.ldap);
1734
- const goToUpgrade = async () => await pageRedirectionHelper.goToUpgrade("ldap", "upgrade-ldap");
1735
- const cellClassStyle = ({ row, column }) => {
1736
- if (column.property === "status") {
1737
- if (row.status === "Success") {
1738
- return { color: "green" };
1739
- } else if (row.status === "Error") {
1740
- return { color: "red" };
1741
- }
1742
- }
1743
- if (column.property === "runMode") {
1744
- if (row.runMode === "Dry") {
1745
- return { color: "orange" };
1746
- } else if (row.runMode === "Live") {
1747
- return { color: "blue" };
1748
- }
1749
- }
1750
- return {};
1751
- };
1752
- const onInput = (input) => {
1753
- if (input.name === "loginEnabled" && typeof input.value === "boolean") {
1754
- loginEnabled.value = input.value;
1755
- }
1756
- if (input.name === "synchronizationEnabled" && typeof input.value === "boolean") {
1757
- syncEnabled.value = input.value;
1758
- }
1759
- hasAnyChanges.value = true;
1760
- };
1761
- const onReadyToSubmit = (ready) => {
1762
- readyToSubmit.value = ready;
1763
- };
1764
- const syncDataMapper = (sync) => {
1765
- const startedAt = new Date(sync.startedAt);
1766
- const endedAt = new Date(sync.endedAt);
1767
- const runTimeInMinutes = endedAt.getTime() - startedAt.getTime();
1768
- return {
1769
- runTime: humanizeDuration(runTimeInMinutes),
1770
- runMode: capitalizeFirstLetter(sync.runMode),
1771
- status: capitalizeFirstLetter(sync.status),
1772
- endedAt: convertToDisplayDate(endedAt.getTime()),
1773
- details: i18n.baseText("settings.ldap.usersScanned", {
1774
- interpolate: {
1775
- scanned: sync.scanned.toString()
1776
- }
1777
- })
1778
- };
1779
- };
1780
- const onSubmit = async () => {
1781
- if (!hasAnyChanges.value || !ldapConfigFormRef.value) {
1782
- return;
1783
- }
1784
- const formValues = ldapConfigFormRef.value.getValues();
1785
- const newConfiguration = {
1786
- loginEnabled: formValues.loginEnabled,
1787
- loginLabel: formValues.loginLabel,
1788
- connectionUrl: formValues.serverAddress,
1789
- allowUnauthorizedCerts: formValues.allowUnauthorizedCerts,
1790
- connectionPort: +formValues.port,
1791
- connectionSecurity: formValues.connectionSecurity,
1792
- baseDn: formValues.baseDn,
1793
- bindingAdminDn: formValues.bindingType === "admin" ? formValues.adminDn : "",
1794
- bindingAdminPassword: formValues.bindingType === "admin" ? formValues.adminPassword : "",
1795
- emailAttribute: formValues.email,
1796
- firstNameAttribute: formValues.firstName,
1797
- lastNameAttribute: formValues.lastName,
1798
- loginIdAttribute: formValues.loginId,
1799
- ldapIdAttribute: formValues.ldapId,
1800
- userFilter: formValues.userFilter,
1801
- synchronizationEnabled: formValues.synchronizationEnabled,
1802
- synchronizationInterval: +formValues.synchronizationInterval,
1803
- searchPageSize: +formValues.pageSize,
1804
- searchTimeout: +formValues.searchTimeout
1805
- };
1806
- let saveForm = true;
1807
- if (!adConfig.value) return;
1808
- try {
1809
- if (adConfig.value.loginEnabled && !newConfiguration.loginEnabled) {
1810
- const confirmAction = await message.confirm(
1811
- i18n.baseText("settings.ldap.confirmMessage.beforeSaveForm.message"),
1812
- i18n.baseText("settings.ldap.confirmMessage.beforeSaveForm.headline"),
1813
- {
1814
- cancelButtonText: i18n.baseText(
1815
- "settings.ldap.confirmMessage.beforeSaveForm.cancelButtonText"
1816
- ),
1817
- confirmButtonText: i18n.baseText(
1818
- "settings.ldap.confirmMessage.beforeSaveForm.confirmButtonText"
1819
- )
1820
- }
1821
- );
1822
- saveForm = confirmAction === MODAL_CONFIRM;
1823
- }
1824
- if (!saveForm) {
1825
- hasAnyChanges.value = true;
1826
- }
1827
- adConfig.value = await settingsStore.updateLdapConfig(newConfiguration);
1828
- toast.showToast({
1829
- title: i18n.baseText("settings.ldap.updateConfiguration"),
1830
- message: "",
1831
- type: "success"
1832
- });
1833
- } catch (error) {
1834
- toast.showError(error, i18n.baseText("settings.ldap.configurationError"));
1835
- } finally {
1836
- if (saveForm) {
1837
- hasAnyChanges.value = false;
1838
- }
1839
- }
1840
- };
1841
- const onSaveClick = () => {
1842
- formBus.emit("submit");
1843
- };
1844
- const onTestConnectionClick = async () => {
1845
- loadingTestConnection.value = true;
1846
- try {
1847
- await settingsStore.testLdapConnection();
1848
- toast.showToast({
1849
- title: i18n.baseText("settings.ldap.connectionTest"),
1850
- message: i18n.baseText("settings.ldap.toast.connection.success"),
1851
- type: "success"
1852
- });
1853
- } catch (error) {
1854
- toast.showToast({
1855
- title: i18n.baseText("settings.ldap.connectionTestError"),
1856
- message: error.message,
1857
- type: "error"
1858
- });
1859
- } finally {
1860
- loadingTestConnection.value = false;
1861
- }
1862
- };
1863
- const onDryRunClick = async () => {
1864
- loadingDryRun.value = true;
1865
- try {
1866
- await settingsStore.runLdapSync({ type: "dry" });
1867
- toast.showToast({
1868
- title: i18n.baseText("settings.ldap.runSync.title"),
1869
- message: i18n.baseText("settings.ldap.toast.sync.success"),
1870
- type: "success"
1871
- });
1872
- } catch (error) {
1873
- toast.showError(error, i18n.baseText("settings.ldap.synchronizationError"));
1874
- } finally {
1875
- loadingDryRun.value = false;
1876
- await reloadLdapSynchronizations();
1877
- }
1878
- };
1879
- const onLiveRunClick = async () => {
1880
- loadingLiveRun.value = true;
1881
- try {
1882
- await settingsStore.runLdapSync({ type: "live" });
1883
- toast.showToast({
1884
- title: i18n.baseText("settings.ldap.runSync.title"),
1885
- message: i18n.baseText("settings.ldap.toast.sync.success"),
1886
- type: "success"
1887
- });
1888
- } catch (error) {
1889
- toast.showError(error, i18n.baseText("settings.ldap.synchronizationError"));
1890
- } finally {
1891
- loadingLiveRun.value = false;
1892
- await reloadLdapSynchronizations();
1893
- }
1894
- };
1895
- const getLdapConfig = async () => {
1896
- try {
1897
- adConfig.value = await settingsStore.getLdapConfig();
1898
- loginEnabled.value = adConfig.value.loginEnabled;
1899
- syncEnabled.value = adConfig.value.synchronizationEnabled;
1900
- const whenLoginEnabled = (values) => values.loginEnabled === true;
1901
- const whenSyncAndLoginEnabled = (values) => values.synchronizationEnabled === true && values.loginEnabled === true;
1902
- const whenAdminBindingAndLoginEnabled = (values) => values.bindingType === "admin" && values.loginEnabled === true;
1903
- formInputs.value = [
1904
- {
1905
- name: "loginEnabled",
1906
- initialValue: adConfig.value.loginEnabled,
1907
- properties: {
1908
- type: "toggle",
1909
- label: i18n.baseText("settings.ldap.form.loginEnabled.label"),
1910
- tooltipText: i18n.baseText("settings.ldap.form.loginEnabled.tooltip"),
1911
- required: true
1912
- }
1913
- },
1914
- {
1915
- name: "loginLabel",
1916
- initialValue: adConfig.value.loginLabel,
1917
- properties: {
1918
- label: i18n.baseText("settings.ldap.form.loginLabel.label"),
1919
- required: true,
1920
- placeholder: i18n.baseText("settings.ldap.form.loginLabel.placeholder"),
1921
- infoText: i18n.baseText("settings.ldap.form.loginLabel.infoText")
1922
- },
1923
- shouldDisplay: whenLoginEnabled
1924
- },
1925
- {
1926
- name: "serverAddress",
1927
- initialValue: adConfig.value.connectionUrl,
1928
- properties: {
1929
- label: i18n.baseText("settings.ldap.form.serverAddress.label"),
1930
- required: true,
1931
- capitalize: true,
1932
- placeholder: i18n.baseText("settings.ldap.form.serverAddress.placeholder"),
1933
- infoText: i18n.baseText("settings.ldap.form.serverAddress.infoText")
1934
- },
1935
- shouldDisplay: whenLoginEnabled
1936
- },
1937
- {
1938
- name: "port",
1939
- initialValue: adConfig.value.connectionPort,
1940
- properties: {
1941
- type: "number",
1942
- label: i18n.baseText("settings.ldap.form.port.label"),
1943
- capitalize: true,
1944
- infoText: i18n.baseText("settings.ldap.form.port.infoText")
1945
- },
1946
- shouldDisplay: whenLoginEnabled
1947
- },
1948
- {
1949
- name: "connectionSecurity",
1950
- initialValue: adConfig.value.connectionSecurity,
1951
- properties: {
1952
- type: "select",
1953
- label: i18n.baseText("settings.ldap.form.connectionSecurity.label"),
1954
- infoText: i18n.baseText("settings.ldap.form.connectionSecurity.infoText"),
1955
- options: [
1956
- {
1957
- label: "None",
1958
- value: "none"
1959
- },
1960
- {
1961
- label: "TLS",
1962
- value: "tls"
1963
- },
1964
- {
1965
- label: "STARTTLS",
1966
- value: "startTls"
1967
- }
1968
- ],
1969
- required: true,
1970
- capitalize: true
1971
- },
1972
- shouldDisplay: whenLoginEnabled
1973
- },
1974
- {
1975
- name: "allowUnauthorizedCerts",
1976
- initialValue: adConfig.value.allowUnauthorizedCerts,
1977
- properties: {
1978
- type: "toggle",
1979
- label: i18n.baseText("settings.ldap.form.allowUnauthorizedCerts.label"),
1980
- required: false
1981
- },
1982
- shouldDisplay(values) {
1983
- return values.connectionSecurity !== "none" && values.loginEnabled === true;
1984
- }
1985
- },
1986
- {
1987
- name: "baseDn",
1988
- initialValue: adConfig.value.baseDn,
1989
- properties: {
1990
- label: i18n.baseText("settings.ldap.form.baseDn.label"),
1991
- required: true,
1992
- capitalize: true,
1993
- placeholder: i18n.baseText("settings.ldap.form.baseDn.placeholder"),
1994
- infoText: i18n.baseText("settings.ldap.form.baseDn.infoText")
1995
- },
1996
- shouldDisplay: whenLoginEnabled
1997
- },
1998
- {
1999
- name: "bindingType",
2000
- initialValue: "admin",
2001
- properties: {
2002
- type: "select",
2003
- label: i18n.baseText("settings.ldap.form.bindingType.label"),
2004
- infoText: i18n.baseText("settings.ldap.form.bindingType.infoText"),
2005
- options: [
2006
- {
2007
- value: "admin",
2008
- label: "Admin"
2009
- },
2010
- {
2011
- value: "anonymous",
2012
- label: "Anonymous"
2013
- }
2014
- ]
2015
- },
2016
- shouldDisplay: whenLoginEnabled
2017
- },
2018
- {
2019
- name: "adminDn",
2020
- initialValue: adConfig.value.bindingAdminDn,
2021
- properties: {
2022
- label: i18n.baseText("settings.ldap.form.adminDn.label"),
2023
- placeholder: i18n.baseText("settings.ldap.form.adminDn.placeholder"),
2024
- infoText: i18n.baseText("settings.ldap.form.adminDn.infoText"),
2025
- capitalize: true
2026
- },
2027
- shouldDisplay: whenAdminBindingAndLoginEnabled
2028
- },
2029
- {
2030
- name: "adminPassword",
2031
- initialValue: adConfig.value.bindingAdminPassword,
2032
- properties: {
2033
- label: i18n.baseText("settings.ldap.form.adminPassword.label"),
2034
- type: "password",
2035
- capitalize: true,
2036
- infoText: i18n.baseText("settings.ldap.form.adminPassword.infoText")
2037
- },
2038
- shouldDisplay: whenAdminBindingAndLoginEnabled
2039
- },
2040
- {
2041
- name: "userFilter",
2042
- initialValue: adConfig.value.userFilter,
2043
- properties: {
2044
- label: i18n.baseText("settings.ldap.form.userFilter.label"),
2045
- type: "text",
2046
- required: false,
2047
- capitalize: true,
2048
- placeholder: i18n.baseText("settings.ldap.form.userFilter.placeholder"),
2049
- infoText: i18n.baseText("settings.ldap.form.userFilter.infoText")
2050
- },
2051
- shouldDisplay: whenLoginEnabled
2052
- },
2053
- {
2054
- name: "attributeMappingInfo",
2055
- properties: {
2056
- label: i18n.baseText("settings.ldap.form.attributeMappingInfo.label"),
2057
- type: "info",
2058
- labelSize: "large",
2059
- labelAlignment: "left"
2060
- },
2061
- shouldDisplay: whenLoginEnabled
2062
- },
2063
- {
2064
- name: "ldapId",
2065
- initialValue: adConfig.value.ldapIdAttribute,
2066
- properties: {
2067
- label: i18n.baseText("settings.ldap.form.ldapId.label"),
2068
- type: "text",
2069
- required: true,
2070
- capitalize: true,
2071
- placeholder: i18n.baseText("settings.ldap.form.ldapId.placeholder"),
2072
- infoText: i18n.baseText("settings.ldap.form.ldapId.infoText")
2073
- },
2074
- shouldDisplay: whenLoginEnabled
2075
- },
2076
- {
2077
- name: "loginId",
2078
- initialValue: adConfig.value.loginIdAttribute,
2079
- properties: {
2080
- label: i18n.baseText("settings.ldap.form.loginId.label"),
2081
- type: "text",
2082
- autocomplete: "email",
2083
- required: true,
2084
- capitalize: true,
2085
- placeholder: i18n.baseText("settings.ldap.form.loginId.placeholder"),
2086
- infoText: i18n.baseText("settings.ldap.form.loginId.infoText")
2087
- },
2088
- shouldDisplay: whenLoginEnabled
2089
- },
2090
- {
2091
- name: "email",
2092
- initialValue: adConfig.value.emailAttribute,
2093
- properties: {
2094
- label: i18n.baseText("settings.ldap.form.email.label"),
2095
- type: "text",
2096
- autocomplete: "email",
2097
- required: true,
2098
- capitalize: true,
2099
- placeholder: i18n.baseText("settings.ldap.form.email.placeholder"),
2100
- infoText: i18n.baseText("settings.ldap.form.email.infoText")
2101
- },
2102
- shouldDisplay: whenLoginEnabled
2103
- },
2104
- {
2105
- name: "firstName",
2106
- initialValue: adConfig.value.firstNameAttribute,
2107
- properties: {
2108
- label: i18n.baseText("settings.ldap.form.firstName.label"),
2109
- type: "text",
2110
- autocomplete: "email",
2111
- required: true,
2112
- capitalize: true,
2113
- placeholder: i18n.baseText("settings.ldap.form.firstName.placeholder"),
2114
- infoText: i18n.baseText("settings.ldap.form.firstName.infoText")
2115
- },
2116
- shouldDisplay: whenLoginEnabled
2117
- },
2118
- {
2119
- name: "lastName",
2120
- initialValue: adConfig.value.lastNameAttribute,
2121
- properties: {
2122
- label: i18n.baseText("settings.ldap.form.lastName.label"),
2123
- type: "text",
2124
- autocomplete: "email",
2125
- required: true,
2126
- capitalize: true,
2127
- placeholder: i18n.baseText("settings.ldap.form.lastName.placeholder"),
2128
- infoText: i18n.baseText("settings.ldap.form.lastName.infoText")
2129
- },
2130
- shouldDisplay: whenLoginEnabled
2131
- },
2132
- {
2133
- name: "synchronizationEnabled",
2134
- initialValue: adConfig.value.synchronizationEnabled,
2135
- properties: {
2136
- type: "toggle",
2137
- label: i18n.baseText("settings.ldap.form.synchronizationEnabled.label"),
2138
- tooltipText: i18n.baseText("settings.ldap.form.synchronizationEnabled.tooltip"),
2139
- required: true
2140
- },
2141
- shouldDisplay: whenLoginEnabled
2142
- },
2143
- {
2144
- name: "synchronizationInterval",
2145
- initialValue: adConfig.value.synchronizationInterval,
2146
- properties: {
2147
- type: "number",
2148
- label: i18n.baseText("settings.ldap.form.synchronizationInterval.label"),
2149
- infoText: i18n.baseText("settings.ldap.form.synchronizationInterval.infoText")
2150
- },
2151
- shouldDisplay: whenSyncAndLoginEnabled
2152
- },
2153
- {
2154
- name: "pageSize",
2155
- initialValue: adConfig.value.searchPageSize,
2156
- properties: {
2157
- type: "number",
2158
- label: i18n.baseText("settings.ldap.form.pageSize.label"),
2159
- infoText: i18n.baseText("settings.ldap.form.pageSize.infoText")
2160
- },
2161
- shouldDisplay: whenSyncAndLoginEnabled
2162
- },
2163
- {
2164
- name: "searchTimeout",
2165
- initialValue: adConfig.value.searchTimeout,
2166
- properties: {
2167
- type: "number",
2168
- label: i18n.baseText("settings.ldap.form.searchTimeout.label"),
2169
- infoText: i18n.baseText("settings.ldap.form.searchTimeout.infoText")
2170
- },
2171
- shouldDisplay: whenSyncAndLoginEnabled
2172
- }
2173
- ];
2174
- } catch (error) {
2175
- toast.showError(error, i18n.baseText("settings.ldap.configurationError"));
2176
- }
2177
- };
2178
- const getLdapSynchronizations = async (state) => {
2179
- try {
2180
- loadingTable.value = true;
2181
- const data = await settingsStore.getLdapSynchronizations({
2182
- page: page.value
2183
- });
2184
- if (data.length !== 0) {
2185
- dataTable.value.push(...data.map(syncDataMapper));
2186
- page.value += 1;
2187
- state.loaded();
2188
- } else {
2189
- state.complete();
2190
- }
2191
- loadingTable.value = false;
2192
- } catch (error) {
2193
- toast.showError(error, i18n.baseText("settings.ldap.synchronizationError"));
2194
- }
2195
- };
2196
- const reloadLdapSynchronizations = async () => {
2197
- try {
2198
- page.value = 0;
2199
- tableKey.value += 1;
2200
- dataTable.value = [];
2201
- } catch (error) {
2202
- toast.showError(error, i18n.baseText("settings.ldap.synchronizationError"));
2203
- }
2204
- };
2205
- onMounted(async () => {
2206
- documentTitle.set(i18n.baseText("settings.ldap"));
2207
- if (!isLDAPFeatureEnabled.value) return;
2208
- await getLdapConfig();
2209
- });
2210
- return (_ctx, _cache) => {
2211
- const _component_n8n_heading = resolveComponent("n8n-heading");
2212
- const _component_n8n_info_tip = resolveComponent("n8n-info-tip");
2213
- const _component_n8n_action_box = resolveComponent("n8n-action-box");
2214
- const _component_n8n_form_inputs = resolveComponent("n8n-form-inputs");
2215
- const _component_n8n_button = resolveComponent("n8n-button");
2216
- const _directive_n8n_html = resolveDirective("n8n-html");
2217
- const _directive_loading = resolveDirective("loading");
2218
- return !isLDAPFeatureEnabled.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
2219
- createBaseVNode("div", {
2220
- class: normalizeClass([_ctx.$style.header, "mb-2xl"])
2221
- }, [
2222
- createVNode(_component_n8n_heading, { size: "2xlarge" }, {
2223
- default: withCtx(() => [
2224
- createTextVNode(toDisplayString(unref(i18n).baseText("settings.ldap")), 1)
2225
- ]),
2226
- _: 1
2227
- })
2228
- ], 2),
2229
- createVNode(_component_n8n_info_tip, {
2230
- type: "note",
2231
- theme: "info",
2232
- "tooltip-placement": "right",
2233
- class: "mb-l"
2234
- }, {
2235
- default: withCtx(() => [
2236
- createTextVNode(toDisplayString(unref(i18n).baseText("settings.ldap.note")), 1)
2237
- ]),
2238
- _: 1
2239
- }),
2240
- createVNode(_component_n8n_action_box, {
2241
- description: unref(i18n).baseText("settings.ldap.disabled.description"),
2242
- "button-text": unref(i18n).baseText("settings.ldap.disabled.buttonText"),
2243
- "onClick:button": goToUpgrade
2244
- }, {
2245
- heading: withCtx(() => [
2246
- createBaseVNode("span", null, toDisplayString(unref(i18n).baseText("settings.ldap.disabled.title")), 1)
2247
- ]),
2248
- _: 1
2249
- }, 8, ["description", "button-text"])
2250
- ])) : (openBlock(), createElementBlock("div", _hoisted_2, [
2251
- createBaseVNode("div", {
2252
- class: normalizeClass(_ctx.$style.container)
2253
- }, [
2254
- createBaseVNode("div", {
2255
- class: normalizeClass(_ctx.$style.header)
2256
- }, [
2257
- createVNode(_component_n8n_heading, { size: "2xlarge" }, {
2258
- default: withCtx(() => [
2259
- createTextVNode(toDisplayString(unref(i18n).baseText("settings.ldap")), 1)
2260
- ]),
2261
- _: 1
2262
- })
2263
- ], 2),
2264
- createBaseVNode("div", {
2265
- class: normalizeClass(_ctx.$style.docsInfoTip)
2266
- }, [
2267
- createVNode(_component_n8n_info_tip, {
2268
- theme: "info",
2269
- type: "note"
2270
- }, {
2271
- default: withCtx(() => [
2272
- withDirectives(createBaseVNode("span", null, null, 512), [
2273
- [_directive_n8n_html, unref(i18n).baseText("settings.ldap.infoTip")]
2274
- ])
2275
- ]),
2276
- _: 1
2277
- })
2278
- ], 2),
2279
- createBaseVNode("div", {
2280
- class: normalizeClass(_ctx.$style.settingsForm)
2281
- }, [
2282
- formInputs.value ? (openBlock(), createBlock(_component_n8n_form_inputs, {
2283
- key: 0,
2284
- ref_key: "ldapConfigFormRef",
2285
- ref: ldapConfigFormRef,
2286
- inputs: formInputs.value,
2287
- "event-bus": unref(formBus),
2288
- "column-view": true,
2289
- "vertical-spacing": "l",
2290
- onUpdate: onInput,
2291
- onReady: onReadyToSubmit,
2292
- onSubmit
2293
- }, null, 8, ["inputs", "event-bus"])) : createCommentVNode("", true)
2294
- ], 2),
2295
- createBaseVNode("div", null, [
2296
- loginEnabled.value ? (openBlock(), createBlock(_component_n8n_button, {
2297
- key: 0,
2298
- label: loadingTestConnection.value ? unref(i18n).baseText("settings.ldap.testingConnection") : unref(i18n).baseText("settings.ldap.testConnection"),
2299
- size: "large",
2300
- class: "mr-s",
2301
- disabled: hasAnyChanges.value || !readyToSubmit.value,
2302
- loading: loadingTestConnection.value,
2303
- onClick: onTestConnectionClick
2304
- }, null, 8, ["label", "disabled", "loading"])) : createCommentVNode("", true),
2305
- createVNode(_component_n8n_button, {
2306
- label: unref(i18n).baseText("settings.ldap.save"),
2307
- size: "large",
2308
- disabled: !hasAnyChanges.value || !readyToSubmit.value,
2309
- onClick: onSaveClick
2310
- }, null, 8, ["label", "disabled"])
2311
- ])
2312
- ], 2),
2313
- loginEnabled.value ? (openBlock(), createElementBlock("div", _hoisted_3, [
2314
- createVNode(_component_n8n_heading, {
2315
- tag: "h1",
2316
- class: "mb-xl mt-3xl",
2317
- size: "medium"
2318
- }, {
2319
- default: withCtx(() => [
2320
- createTextVNode(toDisplayString(unref(i18n).baseText("settings.ldap.section.synchronization.title")), 1)
2321
- ]),
2322
- _: 1
2323
- }),
2324
- createBaseVNode("div", {
2325
- class: normalizeClass(_ctx.$style.syncTable)
2326
- }, [
2327
- withDirectives((openBlock(), createBlock(unref(ElTable), {
2328
- key: tableKey.value,
2329
- border: true,
2330
- stripe: true,
2331
- data: dataTable.value,
2332
- "cell-style": cellClassStyle,
2333
- style: { "width": "100%" },
2334
- "max-height": "250"
2335
- }, {
2336
- empty: withCtx(() => [
2337
- createTextVNode(toDisplayString(unref(i18n).baseText("settings.ldap.synchronizationTable.empty.message")), 1)
2338
- ]),
2339
- append: withCtx(() => [
2340
- createVNode(unref(K), {
2341
- target: ".el-table__body-wrapper",
2342
- onInfinite: getLdapSynchronizations
2343
- })
2344
- ]),
2345
- default: withCtx(() => [
2346
- createVNode(unref(ElTableColumn), {
2347
- prop: "status",
2348
- label: unref(i18n).baseText("settings.ldap.synchronizationTable.column.status")
2349
- }, null, 8, ["label"]),
2350
- createVNode(unref(ElTableColumn), {
2351
- prop: "endedAt",
2352
- label: unref(i18n).baseText("settings.ldap.synchronizationTable.column.endedAt")
2353
- }, null, 8, ["label"]),
2354
- createVNode(unref(ElTableColumn), {
2355
- prop: "runMode",
2356
- label: unref(i18n).baseText("settings.ldap.synchronizationTable.column.runMode")
2357
- }, null, 8, ["label"]),
2358
- createVNode(unref(ElTableColumn), {
2359
- prop: "runTime",
2360
- label: unref(i18n).baseText("settings.ldap.synchronizationTable.column.runTime")
2361
- }, null, 8, ["label"]),
2362
- createVNode(unref(ElTableColumn), {
2363
- prop: "details",
2364
- label: unref(i18n).baseText("settings.ldap.synchronizationTable.column.details")
2365
- }, null, 8, ["label"])
2366
- ]),
2367
- _: 1
2368
- }, 8, ["data"])), [
2369
- [_directive_loading, loadingTable.value]
2370
- ])
2371
- ], 2),
2372
- createBaseVNode("div", _hoisted_4, [
2373
- createVNode(_component_n8n_button, {
2374
- label: unref(i18n).baseText("settings.ldap.dryRun"),
2375
- type: "secondary",
2376
- size: "large",
2377
- class: "mr-s",
2378
- disabled: hasAnyChanges.value || !readyToSubmit.value,
2379
- loading: loadingDryRun.value,
2380
- onClick: onDryRunClick
2381
- }, null, 8, ["label", "disabled", "loading"]),
2382
- createVNode(_component_n8n_button, {
2383
- label: unref(i18n).baseText("settings.ldap.synchronizeNow"),
2384
- size: "large",
2385
- disabled: hasAnyChanges.value || !readyToSubmit.value,
2386
- loading: loadingLiveRun.value,
2387
- onClick: onLiveRunClick
2388
- }, null, 8, ["label", "disabled", "loading"])
2389
- ])
2390
- ])) : createCommentVNode("", true)
2391
- ]));
2392
- };
2393
- }
2394
- });
2395
- const container = "_container_17k3n_1";
2396
- const syncTable = "_syncTable_17k3n_5";
2397
- const header = "_header_17k3n_9";
2398
- const enableFeatureContainer = "_enableFeatureContainer_17k3n_18";
2399
- const sectionHeader = "_sectionHeader_17k3n_32";
2400
- const settingsForm = "_settingsForm_17k3n_36";
2401
- const docsInfoTip = "_docsInfoTip_17k3n_40";
2402
- const style0 = {
2403
- container,
2404
- syncTable,
2405
- header,
2406
- enableFeatureContainer,
2407
- sectionHeader,
2408
- settingsForm,
2409
- docsInfoTip
2410
- };
2411
- const cssModules = {
2412
- "$style": style0
2413
- };
2414
- const SettingsLdapView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
2415
- export {
2416
- SettingsLdapView as default
2417
- };