@nxgt/material-vue 0.24.0 → 0.25.0

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 (139) hide show
  1. package/README.md +17 -19
  2. package/dist/{Button-DOcT4Pej.js → Button-C1aaI0Gw.js} +1 -1
  3. package/dist/{HoverCardTrigger-WQe85PCH.js → HoverCardTrigger-JtHn0IFQ.js} +2 -2
  4. package/dist/{camera-BNbLUPb1.js → camera-BacVyXl0.js} +13 -13
  5. package/dist/{components-YlYuHLEI.js → components-DRBKkOqk.js} +15333 -13879
  6. package/dist/components.js +8 -8
  7. package/dist/composables.js +2 -2
  8. package/dist/dnd.js +1 -1
  9. package/dist/form-scope-VxlJuvFe.js +43 -0
  10. package/dist/{i18n-provider-DTuxugHO.js → i18n-provider-D0oYv0XS.js} +1 -1
  11. package/dist/i18n.js +4 -4
  12. package/dist/{icon-button-DKLuZ2c-.js → icon-button-B2FQtIHS.js} +1 -1
  13. package/dist/lib/components/ui/collections/tree/use-tree.d.ts +2 -0
  14. package/dist/lib/components/ui/dates/date-field/date-field.vue.d.ts +10 -1
  15. package/dist/lib/components/ui/dates/date-field/date-form-field.vue.d.ts +3 -1
  16. package/dist/lib/components/ui/dates/date-field/day-matcher.d.ts +26 -0
  17. package/dist/lib/components/ui/dates/date-field/index.d.ts +1 -0
  18. package/dist/lib/components/ui/dates/date-field/partials/date-field-content.vue.d.ts +2 -0
  19. package/dist/lib/components/ui/dates/date-range-field/date-range-field.utils.d.ts +11 -0
  20. package/dist/lib/components/ui/dates/date-range-field/date-range-field.vue.d.ts +26 -1
  21. package/dist/lib/components/ui/dates/date-range-field/date-range-form-field.vue.d.ts +3 -1
  22. package/dist/lib/components/ui/dates/date-range-field/index.d.ts +1 -0
  23. package/dist/lib/components/ui/dates/date-range-field/partials/date-range-calendar.vue.d.ts +5 -0
  24. package/dist/lib/components/ui/dates/date-range-field/partials/date-range-field-trigger.vue.d.ts +2 -0
  25. package/dist/lib/components/ui/dates/date-range-field/partials/date-range-presets.vue.d.ts +12 -0
  26. package/dist/lib/components/ui/dates/date-range-field/partials/date-range-times.vue.d.ts +13 -0
  27. package/dist/lib/components/ui/dates/date-range-field/use-date-range-presets.d.ts +23 -0
  28. package/dist/lib/components/ui/dates/time-picker/time-picker-utils.d.ts +7 -0
  29. package/dist/lib/components/ui/display/accordion-card/accordion-card.vue.d.ts +29 -1
  30. package/dist/lib/components/ui/display/avatar/Avatar.vue.d.ts +14 -3
  31. package/dist/lib/components/ui/display/avatar/index.d.ts +1 -0
  32. package/dist/lib/components/ui/display/cards/cards.gallery.d.ts +5 -9
  33. package/dist/lib/components/ui/display/qrcode/qrcode.vue.d.ts +5 -3
  34. package/dist/lib/components/ui/display/status-indicator/status-tone.d.ts +3 -0
  35. package/dist/lib/components/ui/feedback/confirmation-dialog/async-form-scope.d.ts +15 -0
  36. package/dist/lib/components/ui/feedback/confirmation-dialog/confirmation-dialog.vue.d.ts +37 -24
  37. package/dist/lib/components/ui/feedback/confirmation-dialog/index.d.ts +1 -1
  38. package/dist/lib/components/ui/feedback/confirmation-dialog/partials/confirmation-dialog-form-error.vue.d.ts +3 -0
  39. package/dist/lib/components/ui/fields/attributes/form-schema.d.ts +24 -22
  40. package/dist/lib/components/ui/fields/contacts/consts.d.ts +1 -1
  41. package/dist/lib/components/ui/fields/number-field/number-field.vue.d.ts +2 -0
  42. package/dist/lib/components/ui/fields/slider/partials/slider-field-row.vue.d.ts +32 -0
  43. package/dist/lib/components/ui/fields/slider/slider-field.vue.d.ts +22 -1
  44. package/dist/lib/components/ui/fields/slider/slider-form-field.vue.d.ts +13 -1
  45. package/dist/lib/components/ui/forms/form-scope-schema.d.ts +43 -0
  46. package/dist/lib/components/ui/forms/form-scope.vue.d.ts +33 -0
  47. package/dist/lib/components/ui/media/file-preview/file-preview-pdf.lazy.d.ts +8 -0
  48. package/dist/lib/components/ui/media/file-preview/file-preview.vue.d.ts +9 -0
  49. package/dist/lib/components/ui/media/file-preview/index.d.ts +3 -0
  50. package/dist/lib/components/ui/media/file-preview/partials/file-preview-body.vue.d.ts +21 -0
  51. package/dist/lib/components/ui/media/file-preview/partials/file-preview-card.vue.d.ts +15 -0
  52. package/dist/lib/components/ui/media/file-preview/partials/file-preview-download.vue.d.ts +11 -0
  53. package/dist/lib/components/ui/media/file-preview/partials/file-preview-media.vue.d.ts +17 -0
  54. package/dist/lib/components/ui/media/file-preview/partials/file-preview-pdf.vue.d.ts +21 -0
  55. package/dist/lib/components/ui/media/file-preview/partials/file-preview-status.vue.d.ts +22 -0
  56. package/dist/lib/components/ui/media/file-preview/partials/file-preview-text.vue.d.ts +16 -0
  57. package/dist/lib/components/ui/media/file-preview/types.d.ts +19 -0
  58. package/dist/lib/components/ui/media/file-preview/use-file-preview.d.ts +21 -0
  59. package/dist/lib/components/ui/media/file-preview/use-text-preview.d.ts +17 -0
  60. package/dist/lib/components/ui/media/files-form-field/files-form-field.vue.d.ts +29 -0
  61. package/dist/lib/components/ui/media/files-form-field/index.d.ts +2 -0
  62. package/dist/lib/components/ui/media/image-cropper/partials/image-cropper-canvas.vue.d.ts +1 -1
  63. package/dist/lib/components/ui/media/index.d.ts +2 -0
  64. package/dist/lib/components/ui/media/pdf-viewer/partials/pdf-page.vue.d.ts +1 -1
  65. package/dist/lib/components/ui/media/pdf-viewer/partials/pdf-reader-body.vue.d.ts +2 -2
  66. package/dist/lib/components/ui/media/upload/network-upload-field/use-image-preview.d.ts +9 -1
  67. package/dist/lib/components/ui/primitives/tabs/Tabs.vue.d.ts +3 -0
  68. package/dist/lib/components/ui/primitives/tabs/index.d.ts +1 -0
  69. package/dist/lib/components/ui/primitives/tabs/tabs-variant.d.ts +9 -0
  70. package/dist/lib/components/ui/selection/autocomplete/autocomplete-form-field.vue.d.ts +31 -5
  71. package/dist/lib/components/ui/selection/autocomplete/autocomplete-items.d.ts +23 -0
  72. package/dist/lib/components/ui/selection/autocomplete/autocomplete.vue.d.ts +48 -13
  73. package/dist/lib/components/ui/selection/autocomplete/filter-options.d.ts +2 -1
  74. package/dist/lib/components/ui/selection/autocomplete/partials/autocomplete-box.vue.d.ts +13 -1
  75. package/dist/lib/components/ui/selection/autocomplete/partials/autocomplete-list.vue.d.ts +17 -3
  76. package/dist/lib/components/ui/selection/autocomplete/use-autocomplete-items.d.ts +15 -0
  77. package/dist/lib/components/ui/selection/autocomplete/use-autocomplete-open.d.ts +15 -0
  78. package/dist/lib/components/ui/selection/autocomplete/use-autocomplete-texts.d.ts +14 -0
  79. package/dist/lib/components/ui/selection/autocomplete/use-autocomplete.d.ts +34 -0
  80. package/dist/lib/components/ui/selection/index.d.ts +1 -0
  81. package/dist/lib/components/ui/selection/select-field/select-field.vue.d.ts +16 -1
  82. package/dist/lib/components/ui/selection/select-field/select-form-field.vue.d.ts +16 -2
  83. package/dist/lib/components/ui/selection/tree-select-field/index.d.ts +3 -0
  84. package/dist/lib/components/ui/selection/tree-select-field/partials/tree-select-panel.vue.d.ts +27 -0
  85. package/dist/lib/components/ui/selection/tree-select-field/partials/tree-select-trigger.vue.d.ts +28 -0
  86. package/dist/lib/components/ui/selection/tree-select-field/tree-select-field.vue.d.ts +8 -0
  87. package/dist/lib/components/ui/selection/tree-select-field/tree-select-form-field.vue.d.ts +8 -0
  88. package/dist/lib/components/ui/selection/tree-select-field/tree-select.utils.d.ts +29 -0
  89. package/dist/lib/components/ui/selection/tree-select-field/types.d.ts +28 -0
  90. package/dist/lib/components/ui/selection/tree-select-field/use-tree-select-field.d.ts +19 -0
  91. package/dist/lib/components/ui/widgets/code-editor/code-editor-options.d.ts +4 -1
  92. package/dist/lib/components/ui/widgets/code-editor/code-editor.vue.d.ts +7 -0
  93. package/dist/lib/components/ui/widgets/code-editor/index.d.ts +1 -0
  94. package/dist/lib/components/ui/widgets/code-editor/monaco-editor.vue.d.ts +3 -0
  95. package/dist/lib/i18n/resources/en/en.d.ts +33 -0
  96. package/dist/lib/i18n/resources/en/material.json.d.ts +36 -3
  97. package/dist/lib/i18n/resources/fr/fr.d.ts +33 -0
  98. package/dist/lib/i18n/resources/fr/material.json.d.ts +36 -3
  99. package/dist/lib/i18n/resources/resources.d.ts +66 -0
  100. package/dist/lib/i18n/translator.d.ts +1 -1
  101. package/dist/lib/nuxt/component-names.d.ts +1 -1
  102. package/dist/lib.js +2 -2
  103. package/dist/main.js +17 -17
  104. package/dist/map.js +4 -4
  105. package/dist/material-vue.css +1 -1
  106. package/dist/{pdf-outline-sidebar-0I-LGrgY.js → pdf-outline-sidebar-jJfhNjnN.js} +2 -2
  107. package/dist/{pdf-page-C74-6lyZ.js → pdf-page-BW1hXzPu.js} +1 -1
  108. package/dist/{pdf-page-list-DPsquYPY.js → pdf-page-list-D277RtWS.js} +2 -2
  109. package/dist/{pdf-reader-Bkpp7UZ7.js → pdf-reader-BReUTsn_.js} +73 -71
  110. package/dist/{pdf-sidebar-BH-1jvy-.js → pdf-sidebar-Bk6PowY1.js} +3 -3
  111. package/dist/{pdf-thumbnail-sidebar-ByqNaYfz.js → pdf-thumbnail-sidebar-BcNDFsks.js} +3 -3
  112. package/dist/{pdf-toolbar-BRnmzddi.js → pdf-toolbar-CHjaMhH9.js} +4 -4
  113. package/dist/pdf.js +2 -2
  114. package/dist/{sortable-provider-CC9eO1nm.js → sortable-provider-C83VBfGl.js} +2 -2
  115. package/dist/{stored-language-N_UoPJsY.js → stored-language-CC_vdcCN.js} +72 -6
  116. package/dist/{stx-player-BGKIDqNX.js → stx-player-BMQ1D2Li.js} +20 -20
  117. package/dist/{translator-CU0jKvzB.js → translator-B-X_1taI.js} +1 -1
  118. package/dist/{use-heading-spy-Bw1LIAkC.js → use-heading-spy-C_ySuvTl.js} +1 -1
  119. package/dist/{use-material-translation-8hUB2M-S.js → use-material-translation-B6sIk0mF.js} +3 -3
  120. package/docs/components/README.md +2 -1
  121. package/docs/components/data-display.md +51 -10
  122. package/docs/components/data-table-filter-and-lists.md +4 -0
  123. package/docs/components/date-and-time.md +116 -9
  124. package/docs/components/feedback-and-status.md +56 -4
  125. package/docs/components/form-fields.md +15 -5
  126. package/docs/components/media-and-files.md +119 -5
  127. package/docs/components/navigation-and-layout.md +2 -1
  128. package/docs/components/primitives.md +21 -4
  129. package/docs/components/rich-widgets.md +20 -3
  130. package/docs/components/selection-and-choice.md +135 -9
  131. package/docs/guides/forms.md +3 -4
  132. package/docs/guides/i18n.md +44 -4
  133. package/docs/previews/date-time-daterangefield.webp +0 -0
  134. package/docs/previews/media-files-filepreview.webp +0 -0
  135. package/docs/previews/selection-choice-treeselectfield.webp +0 -0
  136. package/docs/roadmap.md +43 -37
  137. package/docs/troubleshooting.md +110 -1
  138. package/lib/nuxt/component-names.ts +4 -0
  139. package/package.json +2 -2
@@ -1,7 +1,7 @@
1
1
  import { n as e } from "./rolldown-runtime-CWhphoD1.js";
2
2
  import { t } from "./utils-CykWQ0iJ.js";
3
- import { gf as n } from "./components-YlYuHLEI.js";
4
- import { t as r } from "./use-material-translation-8hUB2M-S.js";
3
+ import { Ef as n } from "./components-DRBKkOqk.js";
4
+ import { t as r } from "./use-material-translation-B6sIk0mF.js";
5
5
  import { Fragment as i, computed as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, defineComponent as u, normalizeClass as d, normalizeStyle as f, openBlock as p, ref as m, renderList as h, toDisplayString as g, unref as _, withCtx as v } from "vue";
6
6
  //#region lib/components/ui/media/pdf-viewer/partials/pdf-outline-row.vue?vue&type=script&setup=true&lang.ts
7
7
  var y = {
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./utils-CykWQ0iJ.js";
2
- import { vp as t } from "./components-YlYuHLEI.js";
2
+ import { Op as t } from "./components-DRBKkOqk.js";
3
3
  import { computed as n, createBlock as r, createCommentVNode as i, createElementBlock as a, createElementVNode as o, defineComponent as s, nextTick as c, normalizeClass as l, normalizeStyle as u, onBeforeUnmount as d, openBlock as f, ref as p, shallowRef as m, unref as h, watch as g } from "vue";
4
4
  import { DEFAULT_PAGE_SIZE as _, escapeHtml as v, findTextMatches as y, highlightItemHtml as b, placeholderSize as x, rotatedSize as S } from "@nxgt/material-core/pdf-viewer";
5
5
  //#region lib/components/ui/media/pdf-viewer/pdf-note-icons.ts
@@ -1,6 +1,6 @@
1
1
  import { n as e } from "./rolldown-runtime-CWhphoD1.js";
2
- import { gf as t } from "./components-YlYuHLEI.js";
3
- import { t as n } from "./pdf-page-C74-6lyZ.js";
2
+ import { Ef as t } from "./components-DRBKkOqk.js";
3
+ import { t as n } from "./pdf-page-BW1hXzPu.js";
4
4
  import { Fragment as r, createBlock as i, createElementBlock as a, createElementVNode as o, defineComponent as s, openBlock as c, renderList as l, withCtx as u } from "vue";
5
5
  //#region lib/components/ui/media/pdf-viewer/partials/pdf-page-list.vue?vue&type=script&setup=true&lang.ts
6
6
  var d = { class: "flex flex-col items-center gap-4 px-4 py-4" }, f = /*@__PURE__*/ s({
@@ -1,19 +1,19 @@
1
1
  import { t as e } from "./utils-CykWQ0iJ.js";
2
- import { En as t } from "./components-YlYuHLEI.js";
3
- import { t as n } from "./use-material-translation-8hUB2M-S.js";
4
- import { t as r } from "./Button-DOcT4Pej.js";
5
- import { o as i } from "./HoverCardTrigger-WQe85PCH.js";
6
- import { n as a } from "./pdf-page-C74-6lyZ.js";
7
- import { t as o } from "./pdf-page-list-DPsquYPY.js";
8
- import { t as s } from "./pdf-sidebar-BH-1jvy-.js";
9
- import { t as c } from "./pdf-toolbar-BRnmzddi.js";
2
+ import { On as t } from "./components-DRBKkOqk.js";
3
+ import { t as n } from "./use-material-translation-B6sIk0mF.js";
4
+ import { t as r } from "./Button-C1aaI0Gw.js";
5
+ import { o as i } from "./HoverCardTrigger-JtHn0IFQ.js";
6
+ import { n as a } from "./pdf-page-BW1hXzPu.js";
7
+ import { t as o } from "./pdf-page-list-D277RtWS.js";
8
+ import { t as s } from "./pdf-sidebar-Bk6PowY1.js";
9
+ import { t as c } from "./pdf-toolbar-CHjaMhH9.js";
10
10
  import { computed as l, createBlock as u, createCommentVNode as d, createElementBlock as f, createElementVNode as p, createTextVNode as m, createVNode as h, defineComponent as g, nextTick as _, normalizeClass as v, onBeforeUnmount as y, onMounted as b, openBlock as x, reactive as S, ref as C, shallowRef as w, toDisplayString as T, toRef as E, unref as D, useId as O, watch as k, withCtx as A } from "vue";
11
11
  import { AlertCircle as j, FileX2 as M, KeyRound as N, Loader2 as P } from "@lucide/vue";
12
12
  import { pdfSourceKey as F, toPdfjsParams as I } from "@nxgt/material-core/pdf-source";
13
- import { createScrollSpy as L, hitAt as R, mapPdfOutline as ee, pinToPage as te, revealHit as ne, scrollIntoArea as z, searchDocument as B, stepHit as V, withPageMatches as H } from "@nxgt/material-core/pdf-viewer";
14
- import { downloadPdfFile as U, printPdfFile as W } from "@nxgt/material-core/pdf-download";
13
+ import { createScrollSpy as L, hitAt as R, mapPdfOutline as ee, pinHolds as te, pinToPage as ne, revealHit as z, scrollIntoArea as B, searchDocument as V, stepHit as H, withPageMatches as U } from "@nxgt/material-core/pdf-viewer";
14
+ import { downloadPdfFile as W, printPdfFile as G } from "@nxgt/material-core/pdf-download";
15
15
  //#region lib/components/ui/media/pdf-viewer/pdf-reader-keyboard.ts
16
- function G(e, t) {
16
+ function K(e, t) {
17
17
  let n = e.target;
18
18
  if (n?.closest?.("[role=\"menu\"]")) return;
19
19
  let r = n?.tagName;
@@ -33,15 +33,15 @@ function G(e, t) {
33
33
  }
34
34
  //#endregion
35
35
  //#region lib/components/ui/media/pdf-viewer/partials/pdf-empty-state.vue?vue&type=script&setup=true&lang.ts
36
- var K = { class: "text-sm font-medium" }, q = /* @__PURE__ */ g({
36
+ var q = { class: "text-sm font-medium" }, J = /* @__PURE__ */ g({
37
37
  __name: "pdf-empty-state",
38
38
  props: { class: {} },
39
39
  setup(t) {
40
40
  let { t: r } = n();
41
- return (t, n) => (x(), f("div", { class: v(D(e)("flex min-h-64 h-full flex-col items-center justify-center gap-3 text-muted-foreground", t.$props.class)) }, [h(D(M), { class: "size-10 opacity-40" }), p("p", K, T(D(r)("material.pdf-reader.empty", "No document selected")), 1)], 2));
41
+ return (t, n) => (x(), f("div", { class: v(D(e)("flex min-h-64 h-full flex-col items-center justify-center gap-3 text-muted-foreground", t.$props.class)) }, [h(D(M), { class: "size-10 opacity-40" }), p("p", q, T(D(r)("material.pdf-reader.empty", "No document selected")), 1)], 2));
42
42
  }
43
- }), J = "noopener noreferrer nofollow";
44
- async function Y(e, t) {
43
+ }), Y = "noopener noreferrer nofollow";
44
+ async function X(e, t) {
45
45
  try {
46
46
  let n = typeof t == "string" ? await e.getDestination(t) : t;
47
47
  if (!Array.isArray(n)) return null;
@@ -51,7 +51,7 @@ async function Y(e, t) {
51
51
  return null;
52
52
  }
53
53
  }
54
- function X({ pdf: e, goToPage: t, externalLinkTarget: n }) {
54
+ function Z({ pdf: e, goToPage: t, externalLinkTarget: n }) {
55
55
  let r = (n) => {
56
56
  let r = Number(n);
57
57
  Number.isInteger(r) && r >= 1 && r <= e.numPages && t(r);
@@ -66,12 +66,12 @@ function X({ pdf: e, goToPage: t, externalLinkTarget: n }) {
66
66
  page: 0,
67
67
  rotation: 0,
68
68
  addLinkAttributes(e, t, r = !1) {
69
- e.href = t, e.rel = J, e.target = n ?? (r ? "_blank" : "");
69
+ e.href = t, e.rel = Y, e.target = n ?? (r ? "_blank" : "");
70
70
  },
71
71
  getDestinationHash: () => "#",
72
72
  getAnchorUrl: () => "#",
73
73
  async goToDestination(t) {
74
- let n = await Y(e, t);
74
+ let n = await X(e, t);
75
75
  n !== null && r(n);
76
76
  },
77
77
  goToPage: r,
@@ -89,7 +89,7 @@ function X({ pdf: e, goToPage: t, externalLinkTarget: n }) {
89
89
  }
90
90
  //#endregion
91
91
  //#region lib/components/ui/media/pdf-viewer/use-pdf-document.ts
92
- function Z(e, t) {
92
+ function re(e, t) {
93
93
  let n = w(null), r = w(null), i = 0, o = null;
94
94
  function s() {
95
95
  o?.destroy(), o = null, r.value = null, n.value?.destroy(), n.value = null;
@@ -132,24 +132,24 @@ function Z(e, t) {
132
132
  }
133
133
  //#endregion
134
134
  //#region lib/components/ui/media/pdf-viewer/partials/pdf-error-state.vue?vue&type=script&setup=true&lang.ts
135
- var re = { class: "absolute inset-0 flex flex-col items-center justify-center gap-3 text-muted-foreground" }, ie = { class: "text-sm font-medium" }, ae = { class: "max-w-xs text-center text-xs opacity-60" }, oe = /* @__PURE__ */ g({
135
+ var ie = { class: "absolute inset-0 flex flex-col items-center justify-center gap-3 text-muted-foreground" }, ae = { class: "text-sm font-medium" }, oe = { class: "max-w-xs text-center text-xs opacity-60" }, se = /* @__PURE__ */ g({
136
136
  __name: "pdf-error-state",
137
137
  props: { message: {} },
138
138
  setup(e) {
139
139
  let { t } = n();
140
- return (n, r) => (x(), f("div", re, [
140
+ return (n, r) => (x(), f("div", ie, [
141
141
  h(D(j), { class: "size-10 text-error opacity-70" }),
142
- p("p", ie, T(D(t)("material.pdf-reader.error", "Failed to load document")), 1),
143
- p("p", ae, T(e.message), 1)
142
+ p("p", ae, T(D(t)("material.pdf-reader.error", "Failed to load document")), 1),
143
+ p("p", oe, T(e.message), 1)
144
144
  ]));
145
145
  }
146
- }), se = { class: "absolute inset-0 z-10 flex flex-col items-center justify-center gap-3 bg-background/80 backdrop-blur-sm" }, ce = { class: "text-sm text-muted-foreground" }, le = /* @__PURE__ */ g({
146
+ }), ce = { class: "absolute inset-0 z-10 flex flex-col items-center justify-center gap-3 bg-background/80 backdrop-blur-sm" }, le = { class: "text-sm text-muted-foreground" }, ue = /* @__PURE__ */ g({
147
147
  __name: "pdf-loading-overlay",
148
148
  setup(e) {
149
149
  let { t } = n();
150
- return (e, n) => (x(), f("div", se, [h(D(P), { class: "size-8 animate-spin text-primary" }), p("p", ce, T(D(t)("material.pdf-reader.loading", "Loading document…")), 1)]));
150
+ return (e, n) => (x(), f("div", ce, [h(D(P), { class: "size-8 animate-spin text-primary" }), p("p", le, T(D(t)("material.pdf-reader.loading", "Loading document…")), 1)]));
151
151
  }
152
- }), ue = { class: "absolute inset-0 flex flex-col items-center justify-center gap-4" }, de = { class: "text-sm font-semibold" }, fe = ["id"], pe = /* @__PURE__ */ g({
152
+ }), de = { class: "absolute inset-0 flex flex-col items-center justify-center gap-4" }, fe = { class: "text-sm font-semibold" }, Q = ["id"], pe = /* @__PURE__ */ g({
153
153
  __name: "pdf-password-form",
154
154
  props: {
155
155
  modelValue: {},
@@ -164,9 +164,9 @@ var re = { class: "absolute inset-0 flex flex-col items-center justify-center ga
164
164
  function u(e) {
165
165
  e.key === "Enter" && o("submit");
166
166
  }
167
- return (t, n) => (x(), f("div", ue, [
167
+ return (t, n) => (x(), f("div", de, [
168
168
  h(D(N), { class: "size-10 text-primary opacity-70" }),
169
- p("p", de, T(D(s)("material.pdf-reader.password", "Password protected")), 1),
169
+ p("p", fe, T(D(s)("material.pdf-reader.password", "Password protected")), 1),
170
170
  p("div", {
171
171
  ref_key: "fields",
172
172
  ref: l,
@@ -201,10 +201,10 @@ var re = { class: "absolute inset-0 flex flex-col items-center justify-center ga
201
201
  id: D(c),
202
202
  role: "alert",
203
203
  class: "text-sm text-error"
204
- }, T(D(s)("material.pdf-reader.password-incorrect", "Incorrect password. Try again.")), 9, fe)) : d("", !0)
204
+ }, T(D(s)("material.pdf-reader.password-incorrect", "Incorrect password. Try again.")), 9, Q)) : d("", !0)
205
205
  ]));
206
206
  }
207
- }), me = { class: "flex min-h-0 flex-1" }, Q = /* @__PURE__ */ g({
207
+ }), me = { class: "flex min-h-0 flex-1" }, he = /* @__PURE__ */ g({
208
208
  __name: "pdf-reader-body",
209
209
  props: {
210
210
  file: {},
@@ -226,7 +226,7 @@ var re = { class: "absolute inset-0 flex flex-col items-center justify-center ga
226
226
  "documentChange"
227
227
  ],
228
228
  setup(e, { emit: t }) {
229
- let n = e, r = t, i = C(""), { pdf: a, resolvePassword: c } = Z(E(n, "file"), {
229
+ let n = e, r = t, i = C(""), { pdf: a, resolvePassword: c } = re(E(n, "file"), {
230
230
  onLoadSuccess: (e) => r("loadSuccess", e),
231
231
  onLoadError: (e) => r("loadError", e),
232
232
  onPasswordProtected: (e) => r("passwordProtected", e),
@@ -242,10 +242,10 @@ var re = { class: "absolute inset-0 flex flex-col items-center justify-center ga
242
242
  async function g(e) {
243
243
  let t = a.value;
244
244
  if (!t || e.dest == null) return;
245
- let n = await Y(t, e.dest);
245
+ let n = await X(t, e.dest);
246
246
  n !== null && r("goToPage", n);
247
247
  }
248
- let _ = l(() => a.value ? X({
248
+ let _ = l(() => a.value ? Z({
249
249
  pdf: a.value,
250
250
  goToPage: (e) => r("goToPage", e),
251
251
  externalLinkTarget: n.externalLinkTarget
@@ -274,8 +274,8 @@ var re = { class: "absolute inset-0 flex flex-col items-center justify-center ga
274
274
  ref: m,
275
275
  class: "relative min-w-0 flex-1 overflow-hidden"
276
276
  }, [
277
- e.state.isLoading ? (x(), u(le, { key: 0 })) : d("", !0),
278
- e.state.error && !e.state.isPasswordProtected ? (x(), u(oe, {
277
+ e.state.isLoading ? (x(), u(ue, { key: 0 })) : d("", !0),
278
+ e.state.error && !e.state.isPasswordProtected ? (x(), u(se, {
279
279
  key: 1,
280
280
  message: e.state.error
281
281
  }, null, 8, ["message"])) : d("", !0),
@@ -317,57 +317,59 @@ var re = { class: "absolute inset-0 flex flex-col items-center justify-center ga
317
317
  });
318
318
  //#endregion
319
319
  //#region lib/components/ui/media/pdf-viewer/use-pdf-file-actions.ts
320
- function he(e, t) {
320
+ function ge(e, t) {
321
321
  let { t: r } = n(), i = () => t.value?.getData();
322
322
  return {
323
323
  download() {
324
- e.onDownload ? e.onDownload() : e.file && U(e.file, {
324
+ e.onDownload ? e.onDownload() : e.file && W(e.file, {
325
325
  fileName: e.fileName,
326
326
  getData: i,
327
327
  defaultName: r("material.pdf-reader.default-file-name", "document")
328
328
  });
329
329
  },
330
330
  print() {
331
- e.onPrint ? e.onPrint() : e.file && W(e.file, { getData: i });
331
+ e.onPrint ? e.onPrint() : e.file && G(e.file, { getData: i });
332
332
  }
333
333
  };
334
334
  }
335
335
  //#endregion
336
336
  //#region lib/components/ui/media/pdf-viewer/use-pdf-scroll-spy.ts
337
- var ge = 2e3;
338
- function _e(e) {
339
- let t = C(!1), n = 0, r = null, i = () => {};
337
+ var _e = 2e3;
338
+ function ve(e) {
339
+ let t = C(!1), n = 0, r = null, i = () => {}, a = 0;
340
340
  return k(e.numPages, (e) => {
341
341
  e > 0 || (i(), t.value = !1, n = 0);
342
342
  }), k(() => [
343
343
  t.value,
344
344
  e.numPages(),
345
345
  e.sizesKnown()
346
- ], ([a, o, s], c, l) => {
347
- if (a || o === 0) return;
348
- let u = () => {
349
- let a = e.currentPage(), o = e.pageRefs.get(a);
350
- o && a > 1 && (z(o, "start", "auto"), i = te(() => e.pageRefs.get(a), () => r?.hold())), n = a, t.value = !0;
346
+ ], ([o, s, c], l, u) => {
347
+ if (o || s === 0) return;
348
+ let d = () => {
349
+ let o = e.currentPage(), s = e.pageRefs.get(o);
350
+ s && o > 1 && (B(s, "start", "auto"), a = o, i = ne(() => e.pageRefs.get(o), () => r?.hold(), () => {
351
+ a = 0;
352
+ })), n = o, t.value = !0;
351
353
  };
352
- if (s) {
353
- u();
354
+ if (c) {
355
+ d();
354
356
  return;
355
357
  }
356
- let d = setTimeout(u, ge);
357
- l(() => clearTimeout(d));
358
- }, { flush: "post" }), k(t, (t, a, o) => {
358
+ let f = setTimeout(d, _e);
359
+ u(() => clearTimeout(f));
360
+ }, { flush: "post" }), k(t, (t, o, s) => {
359
361
  if (!t) return;
360
- let s = L(() => e.containerRef.value, () => e.pageRefs, (t) => {
361
- i(), n = t, e.goToPage(t);
362
+ let c = L(() => e.containerRef.value, () => e.pageRefs, (t) => {
363
+ a && te(e.pageRefs.get(a)) || (i(), n = t, e.goToPage(t));
362
364
  });
363
- r = s, n > 1 && s.hold(), o(() => {
364
- s.stop(), r = null;
365
+ r = c, n > 1 && c.hold(), s(() => {
366
+ c.stop(), r = null;
365
367
  });
366
368
  }), k(e.currentPage, (a) => {
367
369
  if (!t.value || e.numPages() === 0 || a === n) return;
368
370
  n = a, i(), r?.hold();
369
371
  let o = e.pageRefs.get(a);
370
- o && z(o, "start");
372
+ o && B(o, "start");
371
373
  }), y(() => {
372
374
  i(), r?.stop();
373
375
  }), () => {
@@ -380,13 +382,13 @@ var $ = {
380
382
  texts: [],
381
383
  matches: []
382
384
  };
383
- function ve(e, t, n = 150) {
385
+ function ye(e, t, n = 150) {
384
386
  let r = w($);
385
387
  return k([e, t], ([e, t], i, a) => {
386
388
  if (r.value = $, !e || !t.trim()) return;
387
389
  let o = !1, s = setTimeout(() => {
388
- B(e, t, (e) => {
389
- r.value = H(r.value, e);
390
+ V(e, t, (e) => {
391
+ r.value = U(r.value, e);
390
392
  }, () => o).catch(() => {});
391
393
  }, n);
392
394
  a(() => {
@@ -396,22 +398,22 @@ function ve(e, t, n = 150) {
396
398
  }
397
399
  //#endregion
398
400
  //#region lib/components/ui/media/pdf-viewer/use-pdf-search-hits.ts
399
- function ye(e) {
400
- let t = ve(e.pdf, e.query), n = C(-1);
401
+ function be(e) {
402
+ let t = ye(e.pdf, e.query), n = C(-1);
401
403
  k([e.pdf, e.query], () => {
402
404
  n.value = -1;
403
405
  });
404
406
  let r = l(() => Array.from(t.value.matches, (e) => e?.length ?? 0)), i = l(() => r.value.reduce((e, t) => e + t, 0)), a = () => {};
405
407
  y(() => a());
406
408
  function o(t) {
407
- let o = i.value, s = V(n.value, t, o);
409
+ let o = i.value, s = H(n.value, t, o);
408
410
  if (s < 0) return {
409
411
  index: 0,
410
412
  count: o
411
413
  };
412
414
  n.value = s;
413
415
  let c = R(r.value, s);
414
- return c && (e.goToPage(c.page), a(), a = ne(() => e.pageRefs.get(c.page), c.hit, e.holdScrollSpy)), {
416
+ return c && (e.goToPage(c.page), a(), a = z(() => e.pageRefs.get(c.page), c.hit, e.holdScrollSpy)), {
415
417
  index: s,
416
418
  count: o
417
419
  };
@@ -434,7 +436,7 @@ function ye(e) {
434
436
  }
435
437
  //#endregion
436
438
  //#region lib/components/ui/media/pdf-viewer/pdf-reader.vue?vue&type=script&setup=true&lang.ts
437
- var be = ["aria-label"], xe = /* @__PURE__ */ g({
439
+ var xe = ["aria-label"], Se = /* @__PURE__ */ g({
438
440
  name: "PdfReader",
439
441
  __name: "pdf-reader",
440
442
  props: {
@@ -471,14 +473,14 @@ var be = ["aria-label"], xe = /* @__PURE__ */ g({
471
473
  onPageChange: (e) => a.onPageChange ? a.onPageChange(e) : o("pageChange", e),
472
474
  onLoadSuccess: (e) => a.onLoadSuccess ? a.onLoadSuccess(e) : o("loadSuccess", e),
473
475
  onLoadError: (e) => a.onLoadError ? a.onLoadError(e) : o("loadError", e)
474
- }), { state: _, computedScale: S, actions: T, handlers: E } = g, O = _e({
476
+ }), { state: _, computedScale: S, actions: T, handlers: E } = g, O = ve({
475
477
  containerRef: g.containerRef,
476
478
  pageRefs: d,
477
479
  currentPage: () => _.currentPage,
478
480
  numPages: () => _.numPages,
479
481
  sizesKnown: () => _.containerHeight !== void 0 && (_.pageSizes?.length ?? 0) >= _.currentPage - 1,
480
482
  goToPage: T.goToPage
481
- }), { hits: k, highlight: A } = ye({
483
+ }), { hits: k, highlight: A } = be({
482
484
  pdf: p,
483
485
  query: () => _.searchQuery,
484
486
  goToPage: T.goToPage,
@@ -497,7 +499,7 @@ var be = ["aria-label"], xe = /* @__PURE__ */ g({
497
499
  document.removeEventListener("fullscreenchange", N);
498
500
  });
499
501
  function P(e) {
500
- G(e, {
502
+ K(e, {
501
503
  ...T,
502
504
  openSearch: () => _.setSearchOpen(!0),
503
505
  closeSearch: () => _.searchOpen ? (_.setSearchOpen(!1), !0) : !1,
@@ -511,7 +513,7 @@ var be = ["aria-label"], xe = /* @__PURE__ */ g({
511
513
  }
512
514
  });
513
515
  }
514
- let { download: F, print: I } = he(a, p);
516
+ let { download: F, print: I } = ge(a, p);
515
517
  return (t, n) => r.file ? (x(), f("div", {
516
518
  key: 1,
517
519
  ref_key: "wrapperRef",
@@ -563,7 +565,7 @@ var be = ["aria-label"], xe = /* @__PURE__ */ g({
563
565
  "onSearchChange",
564
566
  "onSearchOpenChange",
565
567
  "onToggleNightMode"
566
- ]), h(Q, {
568
+ ]), h(he, {
567
569
  file: r.file,
568
570
  state: D(_),
569
571
  "effective-scale": D(S),
@@ -593,11 +595,11 @@ var be = ["aria-label"], xe = /* @__PURE__ */ g({
593
595
  "onSetOutline",
594
596
  "onSetSidebarTab",
595
597
  "onGoToPage"
596
- ])], 42, be)) : (x(), u(q, {
598
+ ])], 42, xe)) : (x(), u(J, {
597
599
  key: 0,
598
600
  class: v(a.class)
599
601
  }, null, 8, ["class"]));
600
602
  }
601
603
  });
602
604
  //#endregion
603
- export { xe as default };
605
+ export { Se as default };
@@ -1,8 +1,8 @@
1
1
  import { n as e } from "./rolldown-runtime-CWhphoD1.js";
2
2
  import { t } from "./utils-CykWQ0iJ.js";
3
- import { t as n } from "./use-material-translation-8hUB2M-S.js";
4
- import { t as r } from "./pdf-outline-sidebar-0I-LGrgY.js";
5
- import { t as i } from "./pdf-thumbnail-sidebar-ByqNaYfz.js";
3
+ import { t as n } from "./use-material-translation-B6sIk0mF.js";
4
+ import { t as r } from "./pdf-outline-sidebar-jJfhNjnN.js";
5
+ import { t as i } from "./pdf-thumbnail-sidebar-BcNDFsks.js";
6
6
  import { createElementBlock as a, createElementVNode as o, createVNode as s, defineComponent as c, normalizeClass as l, openBlock as u, toDisplayString as d, unref as f, useId as p, useTemplateRef as m } from "vue";
7
7
  //#region lib/components/ui/media/pdf-viewer/partials/pdf-sidebar.vue?vue&type=script&setup=true&lang.ts
8
8
  var h = ["aria-label"], g = ["aria-label"], _ = [
@@ -1,8 +1,8 @@
1
1
  import { n as e } from "./rolldown-runtime-CWhphoD1.js";
2
2
  import { t } from "./utils-CykWQ0iJ.js";
3
- import { gf as n } from "./components-YlYuHLEI.js";
4
- import { t as r } from "./use-material-translation-8hUB2M-S.js";
5
- import { t as i } from "./pdf-page-C74-6lyZ.js";
3
+ import { Ef as n } from "./components-DRBKkOqk.js";
4
+ import { t as r } from "./use-material-translation-B6sIk0mF.js";
5
+ import { t as i } from "./pdf-page-BW1hXzPu.js";
6
6
  import { Fragment as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createVNode as l, defineComponent as u, normalizeClass as d, openBlock as f, renderList as p, toDisplayString as m, unref as h, withCtx as g } from "vue";
7
7
  //#region lib/components/ui/media/pdf-viewer/partials/pdf-thumbnail-sidebar.vue?vue&type=script&setup=true&lang.ts
8
8
  var _ = ["aria-label"], v = {
@@ -1,10 +1,10 @@
1
1
  import { n as e } from "./rolldown-runtime-CWhphoD1.js";
2
2
  import { t } from "./utils-CykWQ0iJ.js";
3
- import { t as n } from "./use-material-translation-8hUB2M-S.js";
4
- import { s as r } from "./Button-DOcT4Pej.js";
5
- import { t as i } from "./icon-button-DKLuZ2c-.js";
3
+ import { t as n } from "./use-material-translation-B6sIk0mF.js";
4
+ import { s as r } from "./Button-C1aaI0Gw.js";
5
+ import { t as i } from "./icon-button-B2FQtIHS.js";
6
6
  import { a, i as o, n as s, o as c, r as l, t as u } from "./DropdownMenuTrigger-BHAhXGUO.js";
7
- import { o as d } from "./HoverCardTrigger-WQe85PCH.js";
7
+ import { o as d } from "./HoverCardTrigger-JtHn0IFQ.js";
8
8
  import { Fragment as f, computed as p, createBlock as m, createCommentVNode as h, createElementBlock as g, createElementVNode as _, createTextVNode as v, createVNode as y, defineComponent as b, nextTick as x, normalizeClass as S, openBlock as C, ref as w, renderList as T, toDisplayString as E, unref as D, useTemplateRef as O, watch as k, withCtx as A } from "vue";
9
9
  import { ChevronDown as j, ChevronLeft as M, ChevronRight as N, ChevronUp as P, Download as F, Maximize2 as I, Minimize2 as L, Moon as R, Printer as z, RotateCw as B, Search as V, Sidebar as H, ZoomIn as U, ZoomOut as W } from "@lucide/vue";
10
10
  //#region lib/components/ui/media/pdf-viewer/partials/pdf-toolbar-search.vue?vue&type=script&setup=true&lang.ts
package/dist/pdf.js CHANGED
@@ -1,5 +1,5 @@
1
- import { n as e, t } from "./use-material-translation-8hUB2M-S.js";
2
- import { t as n } from "./Button-DOcT4Pej.js";
1
+ import { n as e, t } from "./use-material-translation-B6sIk0mF.js";
2
+ import { t as n } from "./Button-C1aaI0Gw.js";
3
3
  import { computed as r, createBlock as i, createTextVNode as a, defineComponent as o, getCurrentInstance as s, nextTick as c, onMounted as l, onScopeDispose as u, openBlock as d, ref as f, renderSlot as p, shallowRef as m, toDisplayString as ee, toValue as h, unref as g, watch as te, withCtx as ne } from "vue";
4
4
  import { contentDisposition as re, pdfBytesResponse as ie, toWebStream as ae } from "@nxgt/material-core/pdf/http";
5
5
  import { badge as oe, dataTable as se, defaultPdfTheme as ce, definePdfDocument as _, divider as v, header as y, heading as b, image as x, keyValue as S, keyValueOf as C, link as w, metric as T, page as E, pageBreak as D, pageNumber as O, pdfDocument as k, resolvePdfColor as A, resolvePdfTheme as j, row as M, section as N, spacer as P, stack as F, table as I, text as L, totals as R } from "@nxgt/material-core/pdf/model";
@@ -1,6 +1,6 @@
1
1
  import { t as e } from "./utils-CykWQ0iJ.js";
2
- import { t } from "./use-material-translation-8hUB2M-S.js";
3
- import { t as n } from "./icon-button-DKLuZ2c-.js";
2
+ import { t } from "./use-material-translation-B6sIk0mF.js";
3
+ import { t as n } from "./icon-button-B2FQtIHS.js";
4
4
  import { Teleport as r, computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createVNode as c, defineComponent as l, inject as u, mergeProps as d, normalizeStyle as f, onUnmounted as p, openBlock as m, provide as h, reactive as g, ref as _, renderSlot as v, toValue as y, unref as b, useAttrs as x, watch as S, watchEffect as C, withCtx as w, withModifiers as T } from "vue";
5
5
  import { GripVertical as E } from "@lucide/vue";
6
6
  import { Primitive as D } from "reka-ui";
@@ -40,7 +40,8 @@ var e = {
40
40
  confirm: "Confirm",
41
41
  cancel: "Cancel",
42
42
  processing: "Processing...",
43
- failed: "The action failed."
43
+ failed: "The action failed.",
44
+ "form-failed": "The form could not be loaded."
44
45
  },
45
46
  "location-field": {
46
47
  placeholder: "No location selected",
@@ -608,6 +609,12 @@ var e = {
608
609
  expand: "Expand",
609
610
  collapse: "Collapse"
610
611
  },
612
+ "tree-select-field": {
613
+ placeholder: "Select…",
614
+ search: "Search",
615
+ empty: "No match found.",
616
+ selected: "{count} selected"
617
+ },
611
618
  "image-cropper": {
612
619
  title: "Crop image",
613
620
  zoom: "Zoom",
@@ -1108,7 +1115,8 @@ var e = {
1108
1115
  spinner: { loading: "Loading..." },
1109
1116
  slider: {
1110
1117
  minimum: "Minimum",
1111
- maximum: "Maximum"
1118
+ maximum: "Maximum",
1119
+ value: "Value"
1112
1120
  },
1113
1121
  "scroll-to-top": { label: "Scroll to top" },
1114
1122
  map: {
@@ -1136,7 +1144,32 @@ var e = {
1136
1144
  "pane-layout": { "sheet-title": "Side Panel" },
1137
1145
  "time-picker": {
1138
1146
  am: "AM",
1139
- pm: "PM"
1147
+ pm: "PM",
1148
+ hours: "Hours",
1149
+ minutes: "Minutes"
1150
+ },
1151
+ "date-range-field": {
1152
+ presets: "Presets",
1153
+ preset: {
1154
+ today: "Today",
1155
+ yesterday: "Yesterday",
1156
+ "last-7-days": "Last 7 days",
1157
+ "last-30-days": "Last 30 days",
1158
+ "this-month": "This month",
1159
+ "last-month": "Last month",
1160
+ "this-year": "This year"
1161
+ },
1162
+ "start-time": "Start time",
1163
+ "end-time": "End time"
1164
+ },
1165
+ "file-preview": {
1166
+ label: "Preview of {name}",
1167
+ untitled: "Untitled file",
1168
+ loading: "Loading preview…",
1169
+ error: "This file could not be previewed.",
1170
+ download: "Download",
1171
+ truncated: "Showing the first {size} of this file.",
1172
+ content: "Contents of {name}"
1140
1173
  }
1141
1174
  } },
1142
1175
  fr: { material: {
@@ -1178,7 +1211,8 @@ var e = {
1178
1211
  confirm: "Confirmer",
1179
1212
  cancel: "Annuler",
1180
1213
  processing: "Traitement en cours…",
1181
- failed: "L’action a échoué."
1214
+ failed: "L’action a échoué.",
1215
+ "form-failed": "Le formulaire n’a pas pu être chargé."
1182
1216
  },
1183
1217
  "location-field": {
1184
1218
  placeholder: "Aucun emplacement sélectionné",
@@ -1746,6 +1780,12 @@ var e = {
1746
1780
  expand: "Déplier",
1747
1781
  collapse: "Replier"
1748
1782
  },
1783
+ "tree-select-field": {
1784
+ placeholder: "Sélectionner…",
1785
+ search: "Rechercher",
1786
+ empty: "Aucun résultat.",
1787
+ selected: "{count, plural, one {# sélectionné} other {# sélectionnés}}"
1788
+ },
1749
1789
  "image-cropper": {
1750
1790
  title: "Recadrer l'image",
1751
1791
  zoom: "Zoom",
@@ -2246,7 +2286,8 @@ var e = {
2246
2286
  spinner: { loading: "Chargement..." },
2247
2287
  slider: {
2248
2288
  minimum: "Minimum",
2249
- maximum: "Maximum"
2289
+ maximum: "Maximum",
2290
+ value: "Valeur"
2250
2291
  },
2251
2292
  "scroll-to-top": { label: "Retour en haut" },
2252
2293
  map: {
@@ -2274,7 +2315,32 @@ var e = {
2274
2315
  "pane-layout": { "sheet-title": "Panneau latéral" },
2275
2316
  "time-picker": {
2276
2317
  am: "a.m.",
2277
- pm: "p.m."
2318
+ pm: "p.m.",
2319
+ hours: "Heures",
2320
+ minutes: "Minutes"
2321
+ },
2322
+ "date-range-field": {
2323
+ presets: "Plages prédéfinies",
2324
+ preset: {
2325
+ today: "Aujourd’hui",
2326
+ yesterday: "Hier",
2327
+ "last-7-days": "7 derniers jours",
2328
+ "last-30-days": "30 derniers jours",
2329
+ "this-month": "Ce mois-ci",
2330
+ "last-month": "Le mois dernier",
2331
+ "this-year": "Cette année"
2332
+ },
2333
+ "start-time": "Heure de début",
2334
+ "end-time": "Heure de fin"
2335
+ },
2336
+ "file-preview": {
2337
+ label: "Aperçu de {name}",
2338
+ untitled: "Fichier sans nom",
2339
+ loading: "Chargement de l’aperçu…",
2340
+ error: "Impossible d’afficher l’aperçu de ce fichier.",
2341
+ download: "Télécharger",
2342
+ truncated: "Seuls les premiers {size} de ce fichier sont affichés.",
2343
+ content: "Contenu de {name}"
2278
2344
  }
2279
2345
  } }
2280
2346
  }, t = "language", n = "en", r = Object.keys(e);