admins-components 9.0.34 → 9.0.36

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 (217) hide show
  1. package/dist/admins-components.js +35 -34
  2. package/dist/admins-components100.js +50 -80
  3. package/dist/admins-components100.js.map +1 -1
  4. package/dist/admins-components101.js +78 -109
  5. package/dist/admins-components101.js.map +1 -1
  6. package/dist/admins-components102.js +110 -44
  7. package/dist/admins-components102.js.map +1 -1
  8. package/dist/admins-components103.js +42 -101
  9. package/dist/admins-components103.js.map +1 -1
  10. package/dist/admins-components104.js +104 -18
  11. package/dist/admins-components104.js.map +1 -1
  12. package/dist/admins-components105.js +19 -6
  13. package/dist/admins-components105.js.map +1 -1
  14. package/dist/admins-components106.js +5 -250
  15. package/dist/admins-components106.js.map +1 -1
  16. package/dist/admins-components107.js +250 -25
  17. package/dist/admins-components107.js.map +1 -1
  18. package/dist/admins-components108.js +26 -27
  19. package/dist/admins-components108.js.map +1 -1
  20. package/dist/admins-components109.js +25 -169
  21. package/dist/admins-components109.js.map +1 -1
  22. package/dist/admins-components110.js +165 -61
  23. package/dist/admins-components110.js.map +1 -1
  24. package/dist/admins-components111.js +61 -60
  25. package/dist/admins-components111.js.map +1 -1
  26. package/dist/admins-components112.js +65 -28
  27. package/dist/admins-components112.js.map +1 -1
  28. package/dist/admins-components113.js +28 -14
  29. package/dist/admins-components113.js.map +1 -1
  30. package/dist/admins-components114.js +15 -26
  31. package/dist/admins-components114.js.map +1 -1
  32. package/dist/admins-components115.js +26 -8
  33. package/dist/admins-components115.js.map +1 -1
  34. package/dist/admins-components116.js +9 -4
  35. package/dist/admins-components116.js.map +1 -1
  36. package/dist/admins-components117.js +4 -3
  37. package/dist/admins-components117.js.map +1 -1
  38. package/dist/admins-components118.js +2 -2
  39. package/dist/admins-components118.js.map +1 -1
  40. package/dist/admins-components119.js +3 -21
  41. package/dist/admins-components119.js.map +1 -1
  42. package/dist/admins-components120.js +21 -14
  43. package/dist/admins-components120.js.map +1 -1
  44. package/dist/admins-components121.js +14 -8
  45. package/dist/admins-components121.js.map +1 -1
  46. package/dist/admins-components122.js +8 -13
  47. package/dist/admins-components122.js.map +1 -1
  48. package/dist/admins-components123.js +11 -24
  49. package/dist/admins-components123.js.map +1 -1
  50. package/dist/admins-components124.js +24 -81
  51. package/dist/admins-components124.js.map +1 -1
  52. package/dist/admins-components125.js +82 -10
  53. package/dist/admins-components125.js.map +1 -1
  54. package/dist/admins-components126.js +10 -4
  55. package/dist/admins-components126.js.map +1 -1
  56. package/dist/admins-components127.js +5 -8
  57. package/dist/admins-components127.js.map +1 -1
  58. package/dist/admins-components128.js +7 -6
  59. package/dist/admins-components128.js.map +1 -1
  60. package/dist/admins-components129.js +6 -5
  61. package/dist/admins-components129.js.map +1 -1
  62. package/dist/admins-components130.js +4 -13
  63. package/dist/admins-components130.js.map +1 -1
  64. package/dist/admins-components131.js +11 -9
  65. package/dist/admins-components131.js.map +1 -1
  66. package/dist/admins-components132.js +13 -30
  67. package/dist/admins-components132.js.map +1 -1
  68. package/dist/admins-components133.js +30 -4
  69. package/dist/admins-components133.js.map +1 -1
  70. package/dist/admins-components134.js +4 -29
  71. package/dist/admins-components134.js.map +1 -1
  72. package/dist/admins-components135.js +29 -5
  73. package/dist/admins-components135.js.map +1 -1
  74. package/dist/admins-components136.js +3 -3
  75. package/dist/admins-components136.js.map +1 -1
  76. package/dist/admins-components137.js +4 -7
  77. package/dist/admins-components137.js.map +1 -1
  78. package/dist/admins-components138.js +7 -73
  79. package/dist/admins-components138.js.map +1 -1
  80. package/dist/admins-components139.js +71 -26
  81. package/dist/admins-components139.js.map +1 -1
  82. package/dist/admins-components140.js +27 -57
  83. package/dist/admins-components140.js.map +1 -1
  84. package/dist/admins-components141.js +57 -22
  85. package/dist/admins-components141.js.map +1 -1
  86. package/dist/admins-components142.js +21 -47
  87. package/dist/admins-components142.js.map +1 -1
  88. package/dist/admins-components143.js +48 -29
  89. package/dist/admins-components143.js.map +1 -1
  90. package/dist/admins-components144.js +31 -3
  91. package/dist/admins-components144.js.map +1 -1
  92. package/dist/admins-components145.js +3 -179
  93. package/dist/admins-components145.js.map +1 -1
  94. package/dist/admins-components146.js +176 -43
  95. package/dist/admins-components146.js.map +1 -1
  96. package/dist/admins-components147.js +44 -35
  97. package/dist/admins-components147.js.map +1 -1
  98. package/dist/admins-components148.js +34 -43
  99. package/dist/admins-components148.js.map +1 -1
  100. package/dist/admins-components149.js +42 -137
  101. package/dist/admins-components149.js.map +1 -1
  102. package/dist/admins-components150.js +134 -51
  103. package/dist/admins-components150.js.map +1 -1
  104. package/dist/admins-components151.js +58 -7
  105. package/dist/admins-components151.js.map +1 -1
  106. package/dist/admins-components152.js +6 -5
  107. package/dist/admins-components152.js.map +1 -1
  108. package/dist/admins-components153.js +6 -76
  109. package/dist/admins-components153.js.map +1 -1
  110. package/dist/admins-components154.js +76 -29
  111. package/dist/admins-components154.js.map +1 -1
  112. package/dist/admins-components155.js +29 -1931
  113. package/dist/admins-components155.js.map +1 -1
  114. package/dist/admins-components156.js +1748 -24628
  115. package/dist/admins-components156.js.map +1 -1
  116. package/dist/admins-components157.js +24810 -8
  117. package/dist/admins-components157.js.map +1 -1
  118. package/dist/admins-components158.js +9 -7
  119. package/dist/admins-components158.js.map +1 -0
  120. package/dist/admins-components159.js +7 -142
  121. package/dist/admins-components160.js +141 -8
  122. package/dist/admins-components160.js.map +1 -1
  123. package/dist/admins-components161.js +3 -3
  124. package/dist/admins-components161.js.map +1 -1
  125. package/dist/admins-components162.js +10 -0
  126. package/dist/admins-components162.js.map +1 -0
  127. package/dist/admins-components164.js +161 -44
  128. package/dist/admins-components164.js.map +1 -1
  129. package/dist/admins-components165.js +50 -8
  130. package/dist/admins-components165.js.map +1 -1
  131. package/dist/admins-components166.js +8 -49
  132. package/dist/admins-components166.js.map +1 -1
  133. package/dist/admins-components167.js +50 -6
  134. package/dist/admins-components167.js.map +1 -1
  135. package/dist/admins-components168.js +6 -80
  136. package/dist/admins-components168.js.map +1 -1
  137. package/dist/admins-components169.js +70 -48
  138. package/dist/admins-components169.js.map +1 -1
  139. package/dist/admins-components170.js +30 -31
  140. package/dist/admins-components170.js.map +1 -1
  141. package/dist/admins-components171.js +58 -8
  142. package/dist/admins-components171.js.map +1 -1
  143. package/dist/admins-components172.js +8 -51
  144. package/dist/admins-components172.js.map +1 -1
  145. package/dist/admins-components173.js +51 -8
  146. package/dist/admins-components173.js.map +1 -1
  147. package/dist/admins-components174.js +10 -0
  148. package/dist/admins-components174.js.map +1 -0
  149. package/dist/{admins-components175.js → admins-components176.js} +3 -3
  150. package/dist/{admins-components175.js.map → admins-components176.js.map} +1 -1
  151. package/dist/admins-components21.js +114 -114
  152. package/dist/admins-components21.js.map +1 -1
  153. package/dist/admins-components22.js.map +1 -1
  154. package/dist/admins-components73.js +7 -122
  155. package/dist/admins-components73.js.map +1 -1
  156. package/dist/admins-components74.js +127 -0
  157. package/dist/admins-components74.js.map +1 -0
  158. package/dist/admins-components76.js +6 -59
  159. package/dist/admins-components76.js.map +1 -1
  160. package/dist/admins-components77.js +55 -217
  161. package/dist/admins-components77.js.map +1 -1
  162. package/dist/admins-components78.js +70 -0
  163. package/dist/admins-components78.js.map +1 -0
  164. package/dist/admins-components79.js +238 -6
  165. package/dist/admins-components79.js.map +1 -1
  166. package/dist/admins-components81.js +6 -251
  167. package/dist/admins-components81.js.map +1 -1
  168. package/dist/admins-components82.js +225 -0
  169. package/dist/admins-components82.js.map +1 -0
  170. package/dist/admins-components84.js +6 -37
  171. package/dist/admins-components84.js.map +1 -1
  172. package/dist/admins-components85.js +38 -0
  173. package/dist/{admins-components86.js.map → admins-components85.js.map} +1 -1
  174. package/dist/admins-components87.js +6 -198
  175. package/dist/admins-components87.js.map +1 -1
  176. package/dist/admins-components88.js +200 -0
  177. package/dist/admins-components88.js.map +1 -0
  178. package/dist/admins-components90.js +6 -16
  179. package/dist/admins-components90.js.map +1 -1
  180. package/dist/admins-components91.js +16 -75
  181. package/dist/admins-components91.js.map +1 -1
  182. package/dist/admins-components92.js +76 -0
  183. package/dist/{admins-components93.js.map → admins-components92.js.map} +1 -1
  184. package/dist/admins-components94.js +6 -203
  185. package/dist/admins-components94.js.map +1 -1
  186. package/dist/admins-components95.js +205 -0
  187. package/dist/admins-components95.js.map +1 -0
  188. package/dist/admins-components97.js +6 -3
  189. package/dist/admins-components97.js.map +1 -1
  190. package/dist/admins-components98.js +3 -3
  191. package/dist/admins-components98.js.map +1 -1
  192. package/dist/admins-components99.js +3 -52
  193. package/dist/admins-components99.js.map +1 -1
  194. package/dist/main.css +1 -1
  195. package/dist/main.css.map +1 -1
  196. package/dist/src/components/data-table/DataList.vue.d.ts +2 -0
  197. package/dist/src/components/data-table/FiltersHistory.vue.d.ts +10 -8
  198. package/dist/src/index.d.ts +3 -1
  199. package/dist/src/styles/components/data-table/filters-history.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  200. package/dist/src/utils/dataFilters.d.ts +5 -2
  201. package/dist/src/utils/storageKey.d.ts +4 -0
  202. package/package.json +1 -1
  203. package/dist/admins-components159.js.map +0 -1
  204. package/dist/admins-components163.js +0 -169
  205. package/dist/admins-components163.js.map +0 -1
  206. package/dist/admins-components75.js +0 -7
  207. package/dist/admins-components75.js.map +0 -1
  208. package/dist/admins-components80.js +0 -53
  209. package/dist/admins-components80.js.map +0 -1
  210. package/dist/admins-components83.js +0 -7
  211. package/dist/admins-components83.js.map +0 -1
  212. package/dist/admins-components86.js +0 -7
  213. package/dist/admins-components89.js +0 -7
  214. package/dist/admins-components89.js.map +0 -1
  215. package/dist/admins-components93.js +0 -7
  216. package/dist/admins-components96.js +0 -7
  217. package/dist/admins-components96.js.map +0 -1
@@ -1,204 +1,7 @@
1
- import e from "./admins-components6.js";
2
- import t from "./admins-components65.js";
3
- import n from "./admins-components68.js";
4
- import r from "./admins-components72.js";
5
- import i from "./admins-components75.js";
6
- import { getFilterParams as a } from "./admins-components80.js";
7
- import o from "./admins-components83.js";
8
- import s from "./admins-components86.js";
9
- import c from "./admins-components89.js";
10
- import l from "./admins-components93.js";
11
- import { computed as u, createBlock as d, createCommentVNode as f, createElementBlock as p, createElementVNode as m, createVNode as h, defineComponent as g, mergeDefaults as _, mergeProps as v, onBeforeUnmount as y, onMounted as b, openBlock as x, ref as S } from "vue";
12
- //#region src/components/data-table/DataList.vue?vue&type=script&setup=true&lang.ts
13
- var C = { class: "ac-component" }, w = { class: "c-data-list__toolbar" }, T = {
14
- key: 2,
15
- class: "flex-center gap-1"
16
- }, E = { class: "ml-auto" }, D = {
17
- layoutBreakpoint: 768,
18
- orderable: !0,
19
- loading: !1,
20
- useSearch: !0,
21
- useFilters: !0
22
- }, O = /* @__PURE__ */ g({
23
- __name: "DataList",
24
- props: /* @__PURE__ */ _({
25
- config: {},
26
- items: {},
27
- settings: {},
28
- id: {},
29
- layoutBreakpoint: {},
30
- orderable: { type: Boolean },
31
- pagination: {},
32
- loading: { type: Boolean },
33
- handleUrl: { type: Boolean },
34
- useSearch: { type: Boolean },
35
- useFilters: { type: Boolean },
36
- searchConfig: {},
37
- filterConfig: {}
38
- }, {
39
- ...D,
40
- searchConfig: void 0,
41
- filterConfig: void 0
42
- }),
43
- emits: [
44
- "filter-change",
45
- "selection-change",
46
- "settings-change",
47
- "pagination-change",
48
- "sort-change",
49
- "search-change"
50
- ],
51
- setup(g, { expose: _, emit: D }) {
52
- let O = S(null), k = g;
53
- function A(e) {
54
- let t = k[e];
55
- return t && Object.hasOwn(t, "handleUrl") ? t.handleUrl : k.handleUrl;
56
- }
57
- let j = u(() => ({
58
- ...k.searchConfig,
59
- handleUrl: A("searchConfig")
60
- })), M = u(() => ({
61
- ...k.filterConfig,
62
- handleUrl: A("filterConfig")
63
- })), N = D, P = S(!1), F = S(!1), I = S(null), L = S(!1), R = S(null), z = S(!1), B = S(k.filterConfig?.items ? a(k.filterConfig.items) ?? {} : {}), V = null;
64
- b(() => {
65
- V = new ResizeObserver((e) => {
66
- L.value = (e[0]?.contentRect.width ?? 0) < k.layoutBreakpoint;
67
- }), R.value && V.observe(R.value);
68
- }), y(() => V?.disconnect());
69
- let H = u(() => {
70
- let e = I.value?.layout;
71
- return e === "table" || e === "cards" ? e : L.value ? "cards" : "table";
72
- }), U = u(() => {
73
- if (!I.value) return k.config;
74
- let e = I.value.columnOrder, t = k.config.columns.map((e) => ({
75
- ...e,
76
- visible: I.value.columns[e.property] ?? e.visible !== !1
77
- }));
78
- return e?.length && t.sort((t, n) => {
79
- let r = e.indexOf(t.property), i = e.indexOf(n.property);
80
- return (r === -1 ? 999 : r) - (i === -1 ? 999 : i);
81
- }), {
82
- ...k.config,
83
- columns: t
84
- };
85
- });
86
- function W(e) {
87
- I.value = e, N("settings-change", e);
88
- }
89
- _({
90
- openOptions: () => P.value = !0,
91
- closeOptions: () => P.value = !1,
92
- openFilters: () => z.value = !0,
93
- closeFilters: () => z.value = !1
94
- });
95
- async function G(e) {
96
- z.value = !0, setTimeout(() => {
97
- O.value?.focusFilter(e);
98
- }, 300);
99
- }
100
- function K(e) {
101
- B.value = e.values, N("filter-change", e.transformed);
102
- }
103
- let q = u(() => Object.values(B.value).filter((e) => e != null && e !== "").length), J = u(() => !!k.pagination && (k.items.length > 0 || !k.loading)), Y = (e) => {
104
- N("search-change", e);
105
- };
106
- return (a, u) => (x(), p("div", C, [m("div", {
107
- ref_key: "root",
108
- ref: R,
109
- class: "c-data-list"
110
- }, [
111
- m("div", w, [
112
- g.useSearch ? (x(), d(l, v({ key: 0 }, j.value, { onSearchChange: Y }), null, 16)) : f("", !0),
113
- g.useFilters && g.filterConfig?.items && g.filterConfig.items.length > 0 ? (x(), d(e, {
114
- key: 1,
115
- label: "Szűrők",
116
- icon: "fa-solid fa-filter",
117
- onClick: u[0] ||= (e) => z.value = !0,
118
- style: { "flex-shrink": "0" },
119
- type: q.value > 0 ? "info" : "normal",
120
- indicator: q.value > 0 ? q.value : void 0
121
- }, null, 8, ["type", "indicator"])) : f("", !0),
122
- g.useFilters && g.filterConfig?.items && g.filterConfig.items.length > 0 ? (x(), p("div", T, [h(s, {
123
- filters: B.value,
124
- items: g.filterConfig.items,
125
- onRemove: u[1] ||= (e) => O.value?.clearFilter(e),
126
- onOpenFilter: G
127
- }, null, 8, ["filters", "items"])])) : f("", !0),
128
- m("div", E, [h(e, {
129
- icon: "fa-solid fa-gear",
130
- class: "lh-normal",
131
- onClick: u[2] ||= (e) => P.value = !0
132
- }), h(e, {
133
- icon: "fa-solid fa-question",
134
- class: "lh-normal",
135
- onClick: u[3] ||= (e) => F.value = !0
136
- })])
137
- ]),
138
- g.useFilters && g.filterConfig?.items && g.filterConfig.items.length > 0 ? (x(), d(o, v({
139
- key: 0,
140
- ref_key: "dataFiltersRef",
141
- ref: O
142
- }, M.value, {
143
- "storage-key": g.id,
144
- open: z.value,
145
- onClose: u[4] ||= (e) => z.value = !1,
146
- onChange: K
147
- }), null, 16, ["storage-key", "open"])) : f("", !0),
148
- h(c, {
149
- open: F.value,
150
- onClose: u[5] ||= (e) => F.value = !1
151
- }, null, 8, ["open"]),
152
- H.value === "table" ? (x(), d(t, {
153
- key: 1,
154
- config: U.value,
155
- loading: g.loading,
156
- items: g.items,
157
- settings: I.value ?? void 0,
158
- onFilterChange: u[6] ||= (e) => N("filter-change", e),
159
- onSelectionChange: u[7] ||= (e) => N("selection-change", e),
160
- onSortChange: u[8] ||= (e) => N("sort-change", e)
161
- }, null, 8, [
162
- "config",
163
- "loading",
164
- "items",
165
- "settings"
166
- ])) : (x(), d(n, {
167
- key: 2,
168
- config: U.value,
169
- loading: g.loading,
170
- items: g.items,
171
- settings: I.value ?? void 0,
172
- onSelectionChange: u[9] ||= (e) => N("selection-change", e)
173
- }, null, 8, [
174
- "config",
175
- "loading",
176
- "items",
177
- "settings"
178
- ])),
179
- g.pagination && J.value ? (x(), d(i, {
180
- key: 3,
181
- settings: g.pagination,
182
- "storage-key": g.id,
183
- "onUpdate:pagination": u[10] ||= (e) => N("pagination-change", e)
184
- }, null, 8, ["settings", "storage-key"])) : f("", !0),
185
- h(r, {
186
- open: P.value,
187
- columns: g.config.columns,
188
- settings: g.settings ?? {},
189
- "storage-key": g.id,
190
- orderable: g.orderable,
191
- onClose: u[11] ||= (e) => P.value = !1,
192
- onChange: W
193
- }, null, 8, [
194
- "open",
195
- "columns",
196
- "settings",
197
- "storage-key",
198
- "orderable"
199
- ])
200
- ], 512)]));
201
- }
202
- });
1
+ import './src/styles/components/data-table/data-search.scss_vue_type_style_index_0_src_true_lang.css';
2
+ import e from "./admins-components92.js";
3
+ /* empty css */
4
+ //#region src/components/data-table/DataSearch.vue
5
+ var t = e;
203
6
  //#endregion
204
- export { D as dataListDefaults, O as default };
7
+ export { t as default };
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components94.js","names":[],"sources":["../src/components/data-table/DataList.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type { PaginatorSettings } from '@/types/data-list'\nexport type { DataSearchProps } from './DataSearch.vue'\nexport type { DataFiltersProps } from './DataFilters.vue'\n\nexport interface DataListProps {\n config: DataListConfig\n items: Record<string, unknown>[]\n settings?: Partial<DataListSettings>\n id: string\n layoutBreakpoint?: number\n orderable?: boolean\n pagination?: PaginatorSettings\n loading?: boolean\n handleUrl?: boolean\n useSearch?: boolean\n useFilters?: boolean\n searchConfig?: DataSearchProps\n filterConfig?: DataFiltersProps\n}\n\nexport const dataListDefaults = {\n layoutBreakpoint: 768,\n orderable: true,\n loading: false,\n useSearch: true,\n useFilters: true,\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, computed, onMounted, onBeforeUnmount } from 'vue'\nimport DataTable from '@/components/data-table/DataTable.vue'\nimport DataCards from '@/components/data-table/DataCards.vue'\nimport DataListOptions from '@/components/data-table/DataListOptions.vue'\nimport DataPaginator from '@/components/data-table/DataPaginator.vue'\nimport Button from '@/components/Button.vue'\nimport type {\n DataListConfig,\n DataListSettings,\n PageSettings,\n PaginatorSettings,\n} from '@/types/data-list'\nimport type { FilterValue } from '@/types/data-list'\nimport DataFilters, {\n type FilterResponse,\n type DataFiltersProps,\n} from '@/components/data-table/DataFilters.vue'\nimport FilterTags from '@/components/data-table/FilterTags.vue'\nimport DataListGuide from '@/components/data-table/DataListGuide.vue'\nimport { getFilterParams } from '@/utils/dataFilters'\nimport DataSearch, { type DataSearchProps } from './DataSearch.vue'\n\nconst dataFiltersRef = ref<InstanceType<typeof DataFilters> | null>(null)\n\nconst props = withDefaults(defineProps<DataListProps>(), {\n ...dataListDefaults,\n searchConfig: undefined,\n filterConfig: undefined,\n})\n\nfunction resolvedHandleUrl(side: 'searchConfig' | 'filterConfig'): boolean | undefined {\n const sideConfig = props[side]\n if (sideConfig && Object.hasOwn(sideConfig as object, 'handleUrl')) {\n return (sideConfig as { handleUrl?: boolean }).handleUrl\n }\n return props.handleUrl\n}\n\nconst mergedSearchConfig = computed<DataSearchProps>(() => ({\n ...props.searchConfig,\n handleUrl: resolvedHandleUrl('searchConfig'),\n}))\n\nconst mergedFilterConfig = computed<DataFiltersProps>(() => ({\n ...(props.filterConfig as DataFiltersProps),\n handleUrl: resolvedHandleUrl('filterConfig'),\n}))\n\nconst emit = defineEmits<{\n 'filter-change': [filters: Record<string, FilterValue>]\n 'selection-change': [selected: unknown[]]\n 'settings-change': [settings: DataListSettings]\n 'pagination-change': [pagination: PageSettings]\n 'sort-change': [sort: { key: string; direction: 'asc' | 'desc' }]\n 'search-change': [filters: Record<string, string | boolean>]\n}>()\n\nconst showOptions = ref(false)\nconst showGuide = ref(false)\nconst resolvedSettings = ref<DataListSettings | null>(null)\nconst isMobile = ref(false)\nconst root = ref<HTMLElement | null>(null)\nconst showFilters = ref(false)\n\nconst activeFilters = ref<Record<string, any>>(\n props.filterConfig?.items ? (getFilterParams(props.filterConfig.items) ?? {}) : {},\n)\n\nlet resizeObserver: ResizeObserver | null = null\n\nonMounted(() => {\n resizeObserver = new ResizeObserver((entries) => {\n isMobile.value = (entries[0]?.contentRect.width ?? 0) < props.layoutBreakpoint\n })\n if (root.value) resizeObserver.observe(root.value)\n})\n\nonBeforeUnmount(() => resizeObserver?.disconnect())\n\nconst effectiveLayout = computed<'table' | 'cards'>(() => {\n const layout = resolvedSettings.value?.layout\n if (layout === 'table' || layout === 'cards') return layout\n return isMobile.value ? 'cards' : 'table'\n})\n\nconst internalConfig = computed<DataListConfig>(() => {\n if (!resolvedSettings.value) return props.config\n const order = resolvedSettings.value.columnOrder\n const mapped = props.config.columns.map((c) => ({\n ...c,\n visible: resolvedSettings.value!.columns[c.property] ?? c.visible !== false,\n }))\n if (order?.length) {\n mapped.sort((a, b) => {\n const ai = order.indexOf(a.property)\n const bi = order.indexOf(b.property)\n return (ai === -1 ? 999 : ai) - (bi === -1 ? 999 : bi)\n })\n }\n return { ...props.config, columns: mapped }\n})\n\nfunction onSettingsChange(s: DataListSettings) {\n resolvedSettings.value = s\n emit('settings-change', s)\n}\n\ndefineExpose({\n openOptions: () => (showOptions.value = true),\n closeOptions: () => (showOptions.value = false),\n openFilters: () => (showFilters.value = true),\n closeFilters: () => (showFilters.value = false),\n})\n\nasync function openFilter(key: string) {\n showFilters.value = true\n setTimeout(() => {\n dataFiltersRef.value?.focusFilter(key)\n }, 300)\n}\n\nfunction onFilterChange(response: FilterResponse) {\n activeFilters.value = response.values\n emit('filter-change', response.transformed)\n}\n\nconst activeFiltersCount = computed(\n () => Object.values(activeFilters.value).filter((v) => v != null && v !== '').length,\n)\n\nconst showPaginator = computed(\n () => !!props.pagination && (props.items.length > 0 || !props.loading),\n)\n\nconst searchChange = (value: Record<string, string | boolean>) => {\n emit('search-change', value)\n}\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div ref=\"root\" class=\"c-data-list\">\n <div class=\"c-data-list__toolbar\">\n <DataSearch v-if=\"useSearch\" v-bind=\"mergedSearchConfig\" @search-change=\"searchChange\" />\n <Button\n v-if=\"useFilters && filterConfig?.items && filterConfig.items.length > 0\"\n label=\"Szűrők\"\n icon=\"fa-solid fa-filter\"\n @click=\"showFilters = true\"\n style=\"flex-shrink: 0\"\n :type=\"activeFiltersCount > 0 ? 'info' : 'normal'\"\n :indicator=\"activeFiltersCount > 0 ? activeFiltersCount : undefined\"\n />\n <div\n class=\"flex-center gap-1\"\n v-if=\"useFilters && filterConfig?.items && filterConfig.items.length > 0\"\n >\n <FilterTags\n :filters=\"activeFilters\"\n :items=\"filterConfig.items\"\n @remove=\"(key: string) => dataFiltersRef?.clearFilter(key)\"\n @openFilter=\"openFilter\"\n />\n </div>\n <div class=\"ml-auto\">\n <Button icon=\"fa-solid fa-gear\" class=\"lh-normal\" @click=\"showOptions = true\" />\n <Button icon=\"fa-solid fa-question\" class=\"lh-normal\" @click=\"showGuide = true\" />\n </div>\n </div>\n <DataFilters\n ref=\"dataFiltersRef\"\n v-if=\"useFilters && filterConfig?.items && filterConfig.items.length > 0\"\n v-bind=\"mergedFilterConfig\"\n :storage-key=\"id\"\n :open=\"showFilters\"\n @close=\"showFilters = false\"\n @change=\"onFilterChange\"\n />\n\n <!-- <div class=\"c-data-list__toolbar\">\n <Button\n\n icon=\"fa-solid fa-gear\"\n class=\"c-data-list__toolbar__item\"\n size=\"small\"\n @click=\"showOptions = true\"\n />\n <Button\n\n icon=\"fa-solid fa-question\"\n icon-position=\"right\"\n class=\"c-data-list__toolbar__item ml-auto\"\n label-alignment-fix\n size=\"small\"\n @click=\"showGuide = true\"\n />\n </div> -->\n <DataListGuide :open=\"showGuide\" @close=\"showGuide = false\" />\n <DataTable\n v-if=\"effectiveLayout === 'table'\"\n :config=\"internalConfig\"\n :loading=\"loading\"\n :items=\"items\"\n :settings=\"resolvedSettings ?? undefined\"\n @filter-change=\"emit('filter-change', $event)\"\n @selection-change=\"emit('selection-change', $event)\"\n @sort-change=\"emit('sort-change', $event)\"\n />\n\n <DataCards\n v-else\n :config=\"internalConfig\"\n :loading=\"loading\"\n :items=\"items\"\n :settings=\"resolvedSettings ?? undefined\"\n @selection-change=\"emit('selection-change', $event)\"\n />\n\n <DataPaginator\n v-if=\"pagination && showPaginator\"\n :settings=\"pagination\"\n :storage-key=\"id\"\n @update:pagination=\"emit('pagination-change', $event)\"\n />\n\n <DataListOptions\n :open=\"showOptions\"\n :columns=\"config.columns\"\n :settings=\"settings ?? {}\"\n :storage-key=\"id\"\n :orderable=\"orderable\"\n @close=\"showOptions = false\"\n @change=\"onSettingsChange\"\n />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-list.scss\"></style>\n"],"mappings":"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"}
1
+ {"version":3,"file":"admins-components94.js","names":[],"sources":["../src/components/data-table/DataSearch.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface DataSearchProps {\n showExactMatch?: boolean\n showSearch?: boolean\n placeholder?: string\n handleUrl?: boolean\n searchKey?: string\n exactMatchKey?: string\n}\n</script>\n\n<script setup lang=\"ts\">\nimport Checkbox from '@/components/Checkbox.vue'\nimport TextInput from '@/components/TextInput.vue'\nimport { debounce } from '@/utils/debounce'\nimport { getUrlParam, removeUrlParam, setUrlParam } from '@/utils/url'\nimport { onMounted, ref } from 'vue'\n\nconst props = withDefaults(\n defineProps<DataSearchProps>(),\n {\n showExactMatch: true,\n showSearch: true,\n placeholder: 'Keresés...',\n handleUrl: false,\n searchKey: 'search',\n exactMatchKey: 'exactMatch',\n },\n)\n\ntype SearchFilterPayload = { [k: string]: string | boolean }\n\nconst exactMatch = ref<boolean | undefined>(false)\nconst search = ref<string>('')\n\nconst emit = defineEmits<{\n 'search-change': [filters: SearchFilterPayload]\n}>()\n\nfunction emitChange() {\n const filters: SearchFilterPayload = {}\n if (props.showSearch) filters[props.searchKey] = search.value\n if (props.showExactMatch) filters[props.exactMatchKey] = exactMatch.value ?? false\n emit('search-change', filters)\n}\n\nfunction onCheckboxChange(value: boolean | undefined) {\n exactMatch.value = value\n emitChange()\n debouncedSyncToUrl()\n}\n\nfunction onSearchChange(value: string | number | null) {\n search.value = value == null ? '' : String(value)\n emitChange()\n debouncedSyncToUrl()\n}\n\nfunction readUrlOnMount() {\n const rawSearch = getUrlParam(props.searchKey)\n if (rawSearch && rawSearch !== '') search.value = rawSearch\n\n const rawExact = getUrlParam(props.exactMatchKey)\n if (rawExact === 'true' || rawExact === '1') exactMatch.value = true\n else if (rawExact === 'false' || rawExact === '0') exactMatch.value = false\n}\n\nfunction syncToUrl() {\n if (!props.handleUrl) return\n\n if (search.value === '') removeUrlParam(props.searchKey)\n else setUrlParam(props.searchKey, search.value)\n\n const exact = exactMatch.value ?? false\n if (!exact) removeUrlParam(props.exactMatchKey)\n else setUrlParam(props.exactMatchKey, 'true')\n}\n\nconst debouncedSyncToUrl = debounce(syncToUrl, 300)\n\nonMounted(() => {\n if (!props.handleUrl) return\n readUrlOnMount()\n\n emitChange()\n})\n</script>\n<template>\n <div class=\"data-search-wrapper\">\n <Checkbox\n v-if=\"showExactMatch\"\n :model-value=\"exactMatch\"\n class=\"gap-1\"\n @update:model-value=\"onCheckboxChange\"\n >\n <template #label>\n <span class=\"data-search-label\">Pontos<br />egyezés </span>\n </template>\n </Checkbox>\n <TextInput\n v-if=\"showSearch\"\n type=\"text\"\n clearable\n :model-value=\"search\"\n label-on-border=\"Keresés\"\n :placeholder=\"placeholder\"\n :autocomplete=\"false\"\n @update:model-value=\"onSearchChange\"\n />\n </div>\n</template>\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-search.scss\"></style>\n"],"mappings":""}
@@ -0,0 +1,205 @@
1
+ import e from "./admins-components6.js";
2
+ import t from "./admins-components65.js";
3
+ import n from "./admins-components68.js";
4
+ import r from "./admins-components72.js";
5
+ import i from "./admins-components76.js";
6
+ import { getDefaultFilters as a } from "./admins-components78.js";
7
+ import o from "./admins-components84.js";
8
+ import s from "./admins-components87.js";
9
+ import c from "./admins-components90.js";
10
+ import l from "./admins-components94.js";
11
+ import { computed as u, createBlock as d, createCommentVNode as f, createElementBlock as p, createElementVNode as m, createVNode as h, defineComponent as g, mergeDefaults as _, mergeProps as v, onBeforeUnmount as y, onMounted as b, openBlock as x, ref as S } from "vue";
12
+ //#region src/components/data-table/DataList.vue?vue&type=script&setup=true&lang.ts
13
+ var C = { class: "ac-component" }, w = { class: "c-data-list__toolbar" }, T = {
14
+ key: 2,
15
+ class: "flex-center gap-1"
16
+ }, E = { class: "flex-center ml-auto nowrap" }, D = {
17
+ layoutBreakpoint: 768,
18
+ orderable: !0,
19
+ loading: !1,
20
+ useSearch: !0,
21
+ useFilters: !0,
22
+ handleUrl: !1
23
+ }, O = /* @__PURE__ */ g({
24
+ __name: "DataList",
25
+ props: /* @__PURE__ */ _({
26
+ config: {},
27
+ items: {},
28
+ settings: {},
29
+ id: {},
30
+ layoutBreakpoint: {},
31
+ orderable: { type: Boolean },
32
+ pagination: {},
33
+ loading: { type: Boolean },
34
+ handleUrl: { type: Boolean },
35
+ useSearch: { type: Boolean },
36
+ useFilters: { type: Boolean },
37
+ searchConfig: {},
38
+ filterConfig: {}
39
+ }, {
40
+ ...D,
41
+ searchConfig: void 0,
42
+ filterConfig: void 0
43
+ }),
44
+ emits: [
45
+ "filter-change",
46
+ "selection-change",
47
+ "settings-change",
48
+ "pagination-change",
49
+ "sort-change",
50
+ "search-change"
51
+ ],
52
+ setup(g, { expose: _, emit: D }) {
53
+ let O = S(null), k = g;
54
+ function A(e) {
55
+ let t = k[e];
56
+ return t && Object.hasOwn(t, "handleUrl") ? t.handleUrl : k.handleUrl;
57
+ }
58
+ let j = u(() => ({
59
+ ...k.searchConfig,
60
+ handleUrl: A("searchConfig")
61
+ })), M = u(() => ({
62
+ ...k.filterConfig,
63
+ handleUrl: A("filterConfig")
64
+ })), N = D, P = S(!1), F = S(!1), I = S(null), L = S(!1), R = S(null), z = S(!1), B = S(k.filterConfig?.items ? a(k.filterConfig.items, k.id, !1) : {}), V = null;
65
+ b(() => {
66
+ V = new ResizeObserver((e) => {
67
+ L.value = (e[0]?.contentRect.width ?? 0) < k.layoutBreakpoint;
68
+ }), R.value && V.observe(R.value);
69
+ }), y(() => V?.disconnect());
70
+ let H = u(() => {
71
+ let e = I.value?.layout;
72
+ return e === "table" || e === "cards" ? e : L.value ? "cards" : "table";
73
+ }), U = u(() => {
74
+ if (!I.value) return k.config;
75
+ let e = I.value.columnOrder, t = k.config.columns.map((e) => ({
76
+ ...e,
77
+ visible: I.value.columns[e.property] ?? e.visible !== !1
78
+ }));
79
+ return e?.length && t.sort((t, n) => {
80
+ let r = e.indexOf(t.property), i = e.indexOf(n.property);
81
+ return (r === -1 ? 999 : r) - (i === -1 ? 999 : i);
82
+ }), {
83
+ ...k.config,
84
+ columns: t
85
+ };
86
+ });
87
+ function W(e) {
88
+ I.value = e, N("settings-change", e);
89
+ }
90
+ _({
91
+ openOptions: () => P.value = !0,
92
+ closeOptions: () => P.value = !1,
93
+ openFilters: () => z.value = !0,
94
+ closeFilters: () => z.value = !1
95
+ });
96
+ async function G(e) {
97
+ z.value = !0, setTimeout(() => {
98
+ O.value?.focusFilter(e);
99
+ }, 300);
100
+ }
101
+ function K(e) {
102
+ B.value = e.values, N("filter-change", e.transformed);
103
+ }
104
+ let q = u(() => Object.values(B.value).filter((e) => e != null && e !== "").length), J = u(() => !!k.pagination && (k.items.length > 0 || !k.loading)), Y = (e) => {
105
+ N("search-change", e);
106
+ };
107
+ return (a, u) => (x(), p("div", C, [m("div", {
108
+ ref_key: "root",
109
+ ref: R,
110
+ class: "c-data-list"
111
+ }, [
112
+ m("div", w, [
113
+ g.useSearch ? (x(), d(l, v({ key: 0 }, j.value, { onSearchChange: Y }), null, 16)) : f("", !0),
114
+ g.useFilters && g.filterConfig?.items && g.filterConfig.items.length > 0 ? (x(), d(e, {
115
+ key: 1,
116
+ label: "Szűrők",
117
+ icon: "fa-solid fa-filter",
118
+ onClick: u[0] ||= (e) => z.value = !0,
119
+ style: { "flex-shrink": "0" },
120
+ type: q.value > 0 ? "info" : "normal",
121
+ indicator: q.value > 0 ? q.value : void 0
122
+ }, null, 8, ["type", "indicator"])) : f("", !0),
123
+ g.useFilters && g.filterConfig?.items && g.filterConfig.items.length > 0 ? (x(), p("div", T, [h(s, {
124
+ filters: B.value,
125
+ items: g.filterConfig.items,
126
+ onRemove: u[1] ||= (e) => O.value?.clearFilter(e),
127
+ onOpenFilter: G
128
+ }, null, 8, ["filters", "items"])])) : f("", !0),
129
+ m("div", E, [h(e, {
130
+ icon: "fa-solid fa-gear",
131
+ class: "lh-normal",
132
+ onClick: u[2] ||= (e) => P.value = !0
133
+ }), h(e, {
134
+ icon: "fa-solid fa-question",
135
+ class: "lh-normal",
136
+ onClick: u[3] ||= (e) => F.value = !0
137
+ })])
138
+ ]),
139
+ g.useFilters && g.filterConfig?.items && g.filterConfig.items.length > 0 ? (x(), d(o, v({
140
+ key: 0,
141
+ ref_key: "dataFiltersRef",
142
+ ref: O
143
+ }, M.value, {
144
+ "storage-key": g.id,
145
+ open: z.value,
146
+ onClose: u[4] ||= (e) => z.value = !1,
147
+ onChange: K
148
+ }), null, 16, ["storage-key", "open"])) : f("", !0),
149
+ h(c, {
150
+ open: F.value,
151
+ onClose: u[5] ||= (e) => F.value = !1
152
+ }, null, 8, ["open"]),
153
+ H.value === "table" ? (x(), d(t, {
154
+ key: 1,
155
+ config: U.value,
156
+ loading: g.loading,
157
+ items: g.items,
158
+ settings: I.value ?? void 0,
159
+ onFilterChange: u[6] ||= (e) => N("filter-change", e),
160
+ onSelectionChange: u[7] ||= (e) => N("selection-change", e),
161
+ onSortChange: u[8] ||= (e) => N("sort-change", e)
162
+ }, null, 8, [
163
+ "config",
164
+ "loading",
165
+ "items",
166
+ "settings"
167
+ ])) : (x(), d(n, {
168
+ key: 2,
169
+ config: U.value,
170
+ loading: g.loading,
171
+ items: g.items,
172
+ settings: I.value ?? void 0,
173
+ onSelectionChange: u[9] ||= (e) => N("selection-change", e)
174
+ }, null, 8, [
175
+ "config",
176
+ "loading",
177
+ "items",
178
+ "settings"
179
+ ])),
180
+ g.pagination && J.value ? (x(), d(i, {
181
+ key: 3,
182
+ settings: g.pagination,
183
+ "storage-key": g.id,
184
+ "onUpdate:pagination": u[10] ||= (e) => N("pagination-change", e)
185
+ }, null, 8, ["settings", "storage-key"])) : f("", !0),
186
+ h(r, {
187
+ open: P.value,
188
+ columns: g.config.columns,
189
+ settings: g.settings ?? {},
190
+ "storage-key": g.id,
191
+ orderable: g.orderable,
192
+ onClose: u[11] ||= (e) => P.value = !1,
193
+ onChange: W
194
+ }, null, 8, [
195
+ "open",
196
+ "columns",
197
+ "settings",
198
+ "storage-key",
199
+ "orderable"
200
+ ])
201
+ ], 512)]));
202
+ }
203
+ });
204
+ //#endregion
205
+ export { D as dataListDefaults, O as default };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admins-components95.js","names":[],"sources":["../src/components/data-table/DataList.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type { PaginatorSettings } from '@/types/data-list'\nexport type { DataSearchProps } from './DataSearch.vue'\nexport type { DataFiltersProps } from './DataFilters.vue'\n\nexport interface DataListProps {\n config: DataListConfig\n items: Record<string, unknown>[]\n settings?: Partial<DataListSettings>\n id: string\n layoutBreakpoint?: number\n orderable?: boolean\n pagination?: PaginatorSettings\n loading?: boolean\n handleUrl?: boolean\n useSearch?: boolean\n useFilters?: boolean\n searchConfig?: DataSearchProps\n filterConfig?: DataFiltersProps\n}\n\nexport const dataListDefaults = {\n layoutBreakpoint: 768,\n orderable: true,\n loading: false,\n useSearch: true,\n useFilters: true,\n handleUrl: false\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, computed, onMounted, onBeforeUnmount } from 'vue'\nimport DataTable from '@/components/data-table/DataTable.vue'\nimport DataCards from '@/components/data-table/DataCards.vue'\nimport DataListOptions from '@/components/data-table/DataListOptions.vue'\nimport DataPaginator from '@/components/data-table/DataPaginator.vue'\nimport Button from '@/components/Button.vue'\nimport type {\n DataListConfig,\n DataListSettings,\n PageSettings,\n PaginatorSettings,\n} from '@/types/data-list'\nimport type { FilterValue } from '@/types/data-list'\nimport DataFilters, {\n type FilterResponse,\n type DataFiltersProps,\n} from '@/components/data-table/DataFilters.vue'\nimport FilterTags from '@/components/data-table/FilterTags.vue'\nimport DataListGuide from '@/components/data-table/DataListGuide.vue'\nimport DataSearch, { type DataSearchProps } from './DataSearch.vue'\nimport { getDefaultFilters } from '@/utils/dataFilters.ts'\n\nconst dataFiltersRef = ref<InstanceType<typeof DataFilters> | null>(null)\n\nconst props = withDefaults(defineProps<DataListProps>(), {\n ...dataListDefaults,\n searchConfig: undefined,\n filterConfig: undefined,\n})\n\nfunction resolvedHandleUrl(side: 'searchConfig' | 'filterConfig'): boolean | undefined {\n const sideConfig = props[side]\n if (sideConfig && Object.hasOwn(sideConfig as object, 'handleUrl')) {\n return (sideConfig as { handleUrl?: boolean }).handleUrl\n }\n return props.handleUrl\n}\n\nconst mergedSearchConfig = computed<DataSearchProps>(() => ({\n ...props.searchConfig,\n handleUrl: resolvedHandleUrl('searchConfig'),\n}))\n\nconst mergedFilterConfig = computed<DataFiltersProps>(() => ({\n ...(props.filterConfig as DataFiltersProps),\n handleUrl: resolvedHandleUrl('filterConfig'),\n}))\n\nconst emit = defineEmits<{\n 'filter-change': [filters: Record<string, FilterValue>]\n 'selection-change': [selected: unknown[]]\n 'settings-change': [settings: DataListSettings]\n 'pagination-change': [pagination: PageSettings]\n 'sort-change': [sort: { key: string; direction: 'asc' | 'desc' }]\n 'search-change': [filters: Record<string, string | boolean>]\n}>()\n\nconst showOptions = ref(false)\nconst showGuide = ref(false)\nconst resolvedSettings = ref<DataListSettings | null>(null)\nconst isMobile = ref(false)\nconst root = ref<HTMLElement | null>(null)\nconst showFilters = ref(false)\n\nconst activeFilters = ref<Record<string, unknown>>(\n props.filterConfig?.items ? getDefaultFilters(props.filterConfig.items, props.id, false) : {},\n)\nlet resizeObserver: ResizeObserver | null = null\n\nonMounted(() => {\n resizeObserver = new ResizeObserver((entries) => {\n isMobile.value = (entries[0]?.contentRect.width ?? 0) < props.layoutBreakpoint\n })\n if (root.value) resizeObserver.observe(root.value)\n})\n\nonBeforeUnmount(() => resizeObserver?.disconnect())\n\nconst effectiveLayout = computed<'table' | 'cards'>(() => {\n const layout = resolvedSettings.value?.layout\n if (layout === 'table' || layout === 'cards') return layout\n return isMobile.value ? 'cards' : 'table'\n})\n\nconst internalConfig = computed<DataListConfig>(() => {\n if (!resolvedSettings.value) return props.config\n const order = resolvedSettings.value.columnOrder\n const mapped = props.config.columns.map((c) => ({\n ...c,\n visible: resolvedSettings.value!.columns[c.property] ?? c.visible !== false,\n }))\n if (order?.length) {\n mapped.sort((a, b) => {\n const ai = order.indexOf(a.property)\n const bi = order.indexOf(b.property)\n return (ai === -1 ? 999 : ai) - (bi === -1 ? 999 : bi)\n })\n }\n return { ...props.config, columns: mapped }\n})\n\nfunction onSettingsChange(s: DataListSettings) {\n resolvedSettings.value = s\n emit('settings-change', s)\n}\n\ndefineExpose({\n openOptions: () => (showOptions.value = true),\n closeOptions: () => (showOptions.value = false),\n openFilters: () => (showFilters.value = true),\n closeFilters: () => (showFilters.value = false),\n})\n\nasync function openFilter(key: string) {\n showFilters.value = true\n setTimeout(() => {\n dataFiltersRef.value?.focusFilter(key)\n }, 300)\n}\n\nfunction onFilterChange(response: FilterResponse) {\n activeFilters.value = response.values\n emit('filter-change', response.transformed)\n}\n\nconst activeFiltersCount = computed(\n () => Object.values(activeFilters.value).filter((v) => v != null && v !== '').length,\n)\n\nconst showPaginator = computed(\n () => !!props.pagination && (props.items.length > 0 || !props.loading),\n)\n\nconst searchChange = (value: Record<string, string | boolean>) => {\n emit('search-change', value)\n}\n\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div ref=\"root\" class=\"c-data-list\">\n <div class=\"c-data-list__toolbar\">\n <DataSearch v-if=\"useSearch\" v-bind=\"mergedSearchConfig\" @search-change=\"searchChange\" />\n <Button\n v-if=\"useFilters && filterConfig?.items && filterConfig.items.length > 0\"\n label=\"Szűrők\"\n icon=\"fa-solid fa-filter\"\n @click=\"showFilters = true\"\n style=\"flex-shrink: 0\"\n :type=\"activeFiltersCount > 0 ? 'info' : 'normal'\"\n :indicator=\"activeFiltersCount > 0 ? activeFiltersCount : undefined\"\n />\n <div\n class=\"flex-center gap-1\"\n v-if=\"useFilters && filterConfig?.items && filterConfig.items.length > 0\"\n >\n <FilterTags\n :filters=\"activeFilters\"\n :items=\"filterConfig.items\"\n @remove=\"(key: string) => dataFiltersRef?.clearFilter(key)\"\n @openFilter=\"openFilter\"\n />\n </div>\n <div class=\"flex-center ml-auto nowrap\">\n <Button icon=\"fa-solid fa-gear\" class=\"lh-normal\" @click=\"showOptions = true\" />\n <Button icon=\"fa-solid fa-question\" class=\"lh-normal\" @click=\"showGuide = true\" />\n </div>\n </div>\n <DataFilters\n ref=\"dataFiltersRef\"\n v-if=\"useFilters && filterConfig?.items && filterConfig.items.length > 0\"\n v-bind=\"mergedFilterConfig\"\n :storage-key=\"id\"\n :open=\"showFilters\"\n @close=\"showFilters = false\"\n @change=\"onFilterChange\"\n />\n <DataListGuide :open=\"showGuide\" @close=\"showGuide = false\" />\n <DataTable\n v-if=\"effectiveLayout === 'table'\"\n :config=\"internalConfig\"\n :loading=\"loading\"\n :items=\"items\"\n :settings=\"resolvedSettings ?? undefined\"\n @filter-change=\"emit('filter-change', $event)\"\n @selection-change=\"emit('selection-change', $event)\"\n @sort-change=\"emit('sort-change', $event)\"\n />\n\n <DataCards\n v-else\n :config=\"internalConfig\"\n :loading=\"loading\"\n :items=\"items\"\n :settings=\"resolvedSettings ?? undefined\"\n @selection-change=\"emit('selection-change', $event)\"\n />\n\n <DataPaginator\n v-if=\"pagination && showPaginator\"\n :settings=\"pagination\"\n :storage-key=\"id\"\n @update:pagination=\"emit('pagination-change', $event)\"\n />\n\n <DataListOptions\n :open=\"showOptions\"\n :columns=\"config.columns\"\n :settings=\"settings ?? {}\"\n :storage-key=\"id\"\n :orderable=\"orderable\"\n @close=\"showOptions = false\"\n @change=\"onSettingsChange\"\n />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-list.scss\"></style>\n"],"mappings":"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"}
@@ -1,4 +1,7 @@
1
- //#region src/utils/ipUtils.ts
2
- var e = (e) => /(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/.test(e);
1
+ import './src/styles/components/data-table/data-list.scss_vue_type_style_index_0_src_true_lang.css';
2
+ import e from "./admins-components95.js";
3
+ /* empty css */
4
+ //#region src/components/data-table/DataList.vue
5
+ var t = e;
3
6
  //#endregion
4
- export { e as isIpInUrl };
7
+ export { t as default };
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components97.js","names":[],"sources":["../src/utils/ipUtils.ts"],"sourcesContent":["export const isIpInUrl = (url: string) => {\n const ipv4Regex =\n /(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/\n\n return ipv4Regex.test(url)\n}\n"],"mappings":";AAAA,IAAa,KAAa,MAIjB,iKAAU,KAAK,CAAG"}
1
+ {"version":3,"file":"admins-components97.js","names":[],"sources":["../src/components/data-table/DataList.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type { PaginatorSettings } from '@/types/data-list'\nexport type { DataSearchProps } from './DataSearch.vue'\nexport type { DataFiltersProps } from './DataFilters.vue'\n\nexport interface DataListProps {\n config: DataListConfig\n items: Record<string, unknown>[]\n settings?: Partial<DataListSettings>\n id: string\n layoutBreakpoint?: number\n orderable?: boolean\n pagination?: PaginatorSettings\n loading?: boolean\n handleUrl?: boolean\n useSearch?: boolean\n useFilters?: boolean\n searchConfig?: DataSearchProps\n filterConfig?: DataFiltersProps\n}\n\nexport const dataListDefaults = {\n layoutBreakpoint: 768,\n orderable: true,\n loading: false,\n useSearch: true,\n useFilters: true,\n handleUrl: false\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, computed, onMounted, onBeforeUnmount } from 'vue'\nimport DataTable from '@/components/data-table/DataTable.vue'\nimport DataCards from '@/components/data-table/DataCards.vue'\nimport DataListOptions from '@/components/data-table/DataListOptions.vue'\nimport DataPaginator from '@/components/data-table/DataPaginator.vue'\nimport Button from '@/components/Button.vue'\nimport type {\n DataListConfig,\n DataListSettings,\n PageSettings,\n PaginatorSettings,\n} from '@/types/data-list'\nimport type { FilterValue } from '@/types/data-list'\nimport DataFilters, {\n type FilterResponse,\n type DataFiltersProps,\n} from '@/components/data-table/DataFilters.vue'\nimport FilterTags from '@/components/data-table/FilterTags.vue'\nimport DataListGuide from '@/components/data-table/DataListGuide.vue'\nimport DataSearch, { type DataSearchProps } from './DataSearch.vue'\nimport { getDefaultFilters } from '@/utils/dataFilters.ts'\n\nconst dataFiltersRef = ref<InstanceType<typeof DataFilters> | null>(null)\n\nconst props = withDefaults(defineProps<DataListProps>(), {\n ...dataListDefaults,\n searchConfig: undefined,\n filterConfig: undefined,\n})\n\nfunction resolvedHandleUrl(side: 'searchConfig' | 'filterConfig'): boolean | undefined {\n const sideConfig = props[side]\n if (sideConfig && Object.hasOwn(sideConfig as object, 'handleUrl')) {\n return (sideConfig as { handleUrl?: boolean }).handleUrl\n }\n return props.handleUrl\n}\n\nconst mergedSearchConfig = computed<DataSearchProps>(() => ({\n ...props.searchConfig,\n handleUrl: resolvedHandleUrl('searchConfig'),\n}))\n\nconst mergedFilterConfig = computed<DataFiltersProps>(() => ({\n ...(props.filterConfig as DataFiltersProps),\n handleUrl: resolvedHandleUrl('filterConfig'),\n}))\n\nconst emit = defineEmits<{\n 'filter-change': [filters: Record<string, FilterValue>]\n 'selection-change': [selected: unknown[]]\n 'settings-change': [settings: DataListSettings]\n 'pagination-change': [pagination: PageSettings]\n 'sort-change': [sort: { key: string; direction: 'asc' | 'desc' }]\n 'search-change': [filters: Record<string, string | boolean>]\n}>()\n\nconst showOptions = ref(false)\nconst showGuide = ref(false)\nconst resolvedSettings = ref<DataListSettings | null>(null)\nconst isMobile = ref(false)\nconst root = ref<HTMLElement | null>(null)\nconst showFilters = ref(false)\n\nconst activeFilters = ref<Record<string, unknown>>(\n props.filterConfig?.items ? getDefaultFilters(props.filterConfig.items, props.id, false) : {},\n)\nlet resizeObserver: ResizeObserver | null = null\n\nonMounted(() => {\n resizeObserver = new ResizeObserver((entries) => {\n isMobile.value = (entries[0]?.contentRect.width ?? 0) < props.layoutBreakpoint\n })\n if (root.value) resizeObserver.observe(root.value)\n})\n\nonBeforeUnmount(() => resizeObserver?.disconnect())\n\nconst effectiveLayout = computed<'table' | 'cards'>(() => {\n const layout = resolvedSettings.value?.layout\n if (layout === 'table' || layout === 'cards') return layout\n return isMobile.value ? 'cards' : 'table'\n})\n\nconst internalConfig = computed<DataListConfig>(() => {\n if (!resolvedSettings.value) return props.config\n const order = resolvedSettings.value.columnOrder\n const mapped = props.config.columns.map((c) => ({\n ...c,\n visible: resolvedSettings.value!.columns[c.property] ?? c.visible !== false,\n }))\n if (order?.length) {\n mapped.sort((a, b) => {\n const ai = order.indexOf(a.property)\n const bi = order.indexOf(b.property)\n return (ai === -1 ? 999 : ai) - (bi === -1 ? 999 : bi)\n })\n }\n return { ...props.config, columns: mapped }\n})\n\nfunction onSettingsChange(s: DataListSettings) {\n resolvedSettings.value = s\n emit('settings-change', s)\n}\n\ndefineExpose({\n openOptions: () => (showOptions.value = true),\n closeOptions: () => (showOptions.value = false),\n openFilters: () => (showFilters.value = true),\n closeFilters: () => (showFilters.value = false),\n})\n\nasync function openFilter(key: string) {\n showFilters.value = true\n setTimeout(() => {\n dataFiltersRef.value?.focusFilter(key)\n }, 300)\n}\n\nfunction onFilterChange(response: FilterResponse) {\n activeFilters.value = response.values\n emit('filter-change', response.transformed)\n}\n\nconst activeFiltersCount = computed(\n () => Object.values(activeFilters.value).filter((v) => v != null && v !== '').length,\n)\n\nconst showPaginator = computed(\n () => !!props.pagination && (props.items.length > 0 || !props.loading),\n)\n\nconst searchChange = (value: Record<string, string | boolean>) => {\n emit('search-change', value)\n}\n\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div ref=\"root\" class=\"c-data-list\">\n <div class=\"c-data-list__toolbar\">\n <DataSearch v-if=\"useSearch\" v-bind=\"mergedSearchConfig\" @search-change=\"searchChange\" />\n <Button\n v-if=\"useFilters && filterConfig?.items && filterConfig.items.length > 0\"\n label=\"Szűrők\"\n icon=\"fa-solid fa-filter\"\n @click=\"showFilters = true\"\n style=\"flex-shrink: 0\"\n :type=\"activeFiltersCount > 0 ? 'info' : 'normal'\"\n :indicator=\"activeFiltersCount > 0 ? activeFiltersCount : undefined\"\n />\n <div\n class=\"flex-center gap-1\"\n v-if=\"useFilters && filterConfig?.items && filterConfig.items.length > 0\"\n >\n <FilterTags\n :filters=\"activeFilters\"\n :items=\"filterConfig.items\"\n @remove=\"(key: string) => dataFiltersRef?.clearFilter(key)\"\n @openFilter=\"openFilter\"\n />\n </div>\n <div class=\"flex-center ml-auto nowrap\">\n <Button icon=\"fa-solid fa-gear\" class=\"lh-normal\" @click=\"showOptions = true\" />\n <Button icon=\"fa-solid fa-question\" class=\"lh-normal\" @click=\"showGuide = true\" />\n </div>\n </div>\n <DataFilters\n ref=\"dataFiltersRef\"\n v-if=\"useFilters && filterConfig?.items && filterConfig.items.length > 0\"\n v-bind=\"mergedFilterConfig\"\n :storage-key=\"id\"\n :open=\"showFilters\"\n @close=\"showFilters = false\"\n @change=\"onFilterChange\"\n />\n <DataListGuide :open=\"showGuide\" @close=\"showGuide = false\" />\n <DataTable\n v-if=\"effectiveLayout === 'table'\"\n :config=\"internalConfig\"\n :loading=\"loading\"\n :items=\"items\"\n :settings=\"resolvedSettings ?? undefined\"\n @filter-change=\"emit('filter-change', $event)\"\n @selection-change=\"emit('selection-change', $event)\"\n @sort-change=\"emit('sort-change', $event)\"\n />\n\n <DataCards\n v-else\n :config=\"internalConfig\"\n :loading=\"loading\"\n :items=\"items\"\n :settings=\"resolvedSettings ?? undefined\"\n @selection-change=\"emit('selection-change', $event)\"\n />\n\n <DataPaginator\n v-if=\"pagination && showPaginator\"\n :settings=\"pagination\"\n :storage-key=\"id\"\n @update:pagination=\"emit('pagination-change', $event)\"\n />\n\n <DataListOptions\n :open=\"showOptions\"\n :columns=\"config.columns\"\n :settings=\"settings ?? {}\"\n :storage-key=\"id\"\n :orderable=\"orderable\"\n @close=\"showOptions = false\"\n @change=\"onSettingsChange\"\n />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-list.scss\"></style>\n"],"mappings":""}
@@ -1,4 +1,4 @@
1
- //#region src/utils/cmsContext.ts
2
- var e = () => window.cmsContext?.currentSite;
1
+ //#region src/utils/ipUtils.ts
2
+ var e = (e) => /(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/.test(e);
3
3
  //#endregion
4
- export { e as getCurrentSite };
4
+ export { e as isIpInUrl };
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components98.js","names":[],"sources":["../src/utils/cmsContext.ts"],"sourcesContent":["export const getCurrentSite = (): string | undefined => {\n return (window as any).cmsContext?.currentSite\n}\n"],"mappings":";AAAA,IAAa,UACD,OAAe,YAAY"}
1
+ {"version":3,"file":"admins-components98.js","names":[],"sources":["../src/utils/ipUtils.ts"],"sourcesContent":["export const isIpInUrl = (url: string) => {\n const ipv4Regex =\n /(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/\n\n return ipv4Regex.test(url)\n}\n"],"mappings":";AAAA,IAAa,KAAa,MAIjB,iKAAU,KAAK,CAAG"}
@@ -1,53 +1,4 @@
1
- //#region src/directives/tooltip.ts
2
- function e() {
3
- let e = document.createElement("div");
4
- return e.className = "v-tooltip ac-component", e.style.position = "fixed", e.style.zIndex = "9999999", e.style.opacity = "0", e.style.pointerEvents = "none", e.style.transition = "opacity 0.15s", e;
5
- }
6
- function t(e, t) {
7
- let n = window.innerWidth, r = window.innerHeight;
8
- e.style.maxWidth = `min(${n - 16}px, 300px)`;
9
- let i = e.getBoundingClientRect(), a = i.width, o = i.height, s = t.clientX + 12, c = t.clientY + 18;
10
- s + a > n - 8 && (s = t.clientX - a - 12), c + o > r - 8 && (c = t.clientY - o - 12), s = Math.max(8, Math.min(s, n - a - 8)), c = Math.max(8, Math.min(c, r - o - 8)), e.style.left = `${s}px`, e.style.top = `${c}px`;
11
- }
12
- function n(e, t, n) {
13
- n ? e.innerHTML = t : e.textContent = t;
14
- }
15
- var r = {
16
- mounted(r, i) {
17
- let a = e();
18
- n(a, i.value, !!i.modifiers.html), document.body.appendChild(a);
19
- let o = null, s = null, c = null, l = (e) => {
20
- c = e;
21
- }, u = (e) => {
22
- c = e, s &&= (clearTimeout(s), null), o = setTimeout(() => {
23
- t(a, c ?? e), a.style.opacity = "1";
24
- }, 400);
25
- }, d = () => {
26
- c = null, o &&= (clearTimeout(o), null), s = setTimeout(() => {
27
- a.style.opacity = "0";
28
- }, 50);
29
- }, f = (e) => {
30
- o &&= (clearTimeout(o), null), s &&= (clearTimeout(s), null), a.style.opacity === "1" ? a.style.opacity = "0" : (t(a, e), a.style.opacity = "1");
31
- }, p = () => {
32
- o &&= (clearTimeout(o), null), a.style.opacity = "0";
33
- };
34
- r.addEventListener("mouseenter", u), r.addEventListener("mousemove", l), r.addEventListener("mouseleave", d), r.addEventListener("click", f), window.addEventListener("scroll", p, !0), r._tooltip = {
35
- el: a,
36
- showTimeout: o,
37
- hideTimeout: s,
38
- onEnter: u,
39
- onMove: l,
40
- onLeave: d,
41
- onClick: f,
42
- onScroll: p
43
- };
44
- },
45
- updated(e, t) {
46
- e._tooltip && n(e._tooltip.el, t.value, !!t.modifiers.html);
47
- },
48
- unmounted(e) {
49
- e._tooltip &&= (e.removeEventListener("mouseenter", e._tooltip.onEnter), e.removeEventListener("mousemove", e._tooltip.onMove), e.removeEventListener("mouseleave", e._tooltip.onLeave), e.removeEventListener("click", e._tooltip.onClick), window.removeEventListener("scroll", e._tooltip.onScroll, !0), e._tooltip.el.remove(), void 0);
50
- }
51
- };
1
+ //#region src/utils/cmsContext.ts
2
+ var e = () => window.cmsContext?.currentSite;
52
3
  //#endregion
53
- export { r as vTooltip };
4
+ export { e as getCurrentSite };
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components99.js","names":[],"sources":["../src/directives/tooltip.ts"],"sourcesContent":["import type { Directive, DirectiveBinding } from 'vue'\n\ninterface TooltipEl extends HTMLElement {\n _tooltip?: {\n el: HTMLElement\n showTimeout: ReturnType<typeof setTimeout> | null\n hideTimeout: ReturnType<typeof setTimeout> | null\n onEnter: (e: MouseEvent) => void\n onMove: (e: MouseEvent) => void\n onLeave: () => void\n onClick: (e: MouseEvent) => void\n onScroll: () => void\n }\n}\n\nfunction createTooltipEl(): HTMLElement {\n const el = document.createElement('div')\n el.className = 'v-tooltip ac-component'\n el.style.position = 'fixed'\n el.style.zIndex = '9999999'\n el.style.opacity = '0'\n el.style.pointerEvents = 'none'\n el.style.transition = 'opacity 0.15s'\n return el\n}\n\nfunction position(tooltip: HTMLElement, e: MouseEvent) {\n const offsetX = 12\n const offsetY = 18\n const edge = 8\n const vw = window.innerWidth\n const vh = window.innerHeight\n\n tooltip.style.maxWidth = `min(${vw - 2 * edge}px, 300px)`\n\n const rect = tooltip.getBoundingClientRect()\n const w = rect.width\n const h = rect.height\n\n let x = e.clientX + offsetX\n let y = e.clientY + offsetY\n\n if (x + w > vw - edge) {\n x = e.clientX - w - offsetX\n }\n if (y + h > vh - edge) {\n y = e.clientY - h - offsetX\n }\n\n x = Math.max(edge, Math.min(x, vw - w - edge))\n y = Math.max(edge, Math.min(y, vh - h - edge))\n\n tooltip.style.left = `${x}px`\n tooltip.style.top = `${y}px`\n}\n\nfunction setContent(tooltip: HTMLElement, value: string, html: boolean) {\n if (html) {\n tooltip.innerHTML = value\n } else {\n tooltip.textContent = value\n }\n}\n\nexport const vTooltip: Directive = {\n mounted(el: TooltipEl, binding: DirectiveBinding<string>) {\n const tooltip = createTooltipEl()\n setContent(tooltip, binding.value, !!binding.modifiers.html)\n document.body.appendChild(tooltip)\n\n let showTimeout: ReturnType<typeof setTimeout> | null = null\n let hideTimeout: ReturnType<typeof setTimeout> | null = null\n let lastEvent: MouseEvent | null = null\n\n const onMove = (e: MouseEvent) => {\n lastEvent = e\n }\n\n const onEnter = (e: MouseEvent) => {\n lastEvent = e\n if (hideTimeout) {\n clearTimeout(hideTimeout)\n hideTimeout = null\n }\n showTimeout = setTimeout(() => {\n position(tooltip, lastEvent ?? e)\n tooltip.style.opacity = '1'\n }, 400)\n }\n\n const onLeave = () => {\n lastEvent = null\n if (showTimeout) {\n clearTimeout(showTimeout)\n showTimeout = null\n }\n hideTimeout = setTimeout(() => {\n tooltip.style.opacity = '0'\n }, 50)\n }\n\n const onClick = (e: MouseEvent) => {\n if (showTimeout) {\n clearTimeout(showTimeout)\n showTimeout = null\n }\n if (hideTimeout) {\n clearTimeout(hideTimeout)\n hideTimeout = null\n }\n if (tooltip.style.opacity === '1') {\n tooltip.style.opacity = '0'\n } else {\n position(tooltip, e)\n tooltip.style.opacity = '1'\n }\n }\n\n const onScroll = () => {\n if (showTimeout) {\n clearTimeout(showTimeout)\n showTimeout = null\n }\n tooltip.style.opacity = '0'\n }\n\n el.addEventListener('mouseenter', onEnter)\n el.addEventListener('mousemove', onMove)\n el.addEventListener('mouseleave', onLeave)\n el.addEventListener('click', onClick)\n window.addEventListener('scroll', onScroll, true)\n\n el._tooltip = {\n el: tooltip,\n showTimeout,\n hideTimeout,\n onEnter,\n onMove,\n onLeave,\n onClick,\n onScroll,\n }\n },\n\n updated(el: TooltipEl, binding: DirectiveBinding<string>) {\n if (el._tooltip) {\n setContent(el._tooltip.el, binding.value, !!binding.modifiers.html)\n }\n },\n\n unmounted(el: TooltipEl) {\n if (el._tooltip) {\n el.removeEventListener('mouseenter', el._tooltip.onEnter)\n el.removeEventListener('mousemove', el._tooltip.onMove)\n el.removeEventListener('mouseleave', el._tooltip.onLeave)\n el.removeEventListener('click', el._tooltip.onClick)\n window.removeEventListener('scroll', el._tooltip.onScroll, true)\n el._tooltip.el.remove()\n el._tooltip = undefined\n }\n },\n}\n"],"mappings":";AAeA,SAAS,IAA+B;CACtC,IAAM,IAAK,SAAS,cAAc,KAAK;CAOvC,OANA,EAAG,YAAY,0BACf,EAAG,MAAM,WAAW,SACpB,EAAG,MAAM,SAAS,WAClB,EAAG,MAAM,UAAU,KACnB,EAAG,MAAM,gBAAgB,QACzB,EAAG,MAAM,aAAa,iBACf;AACT;AAEA,SAAS,EAAS,GAAsB,GAAe;CACrD,IAGM,IAAK,OAAO,YACZ,IAAK,OAAO;CAElB,EAAQ,MAAM,WAAW,OAAO,IAAK,GAAS;CAE9C,IAAM,IAAO,EAAQ,sBAAsB,GACrC,IAAI,EAAK,OACT,IAAI,EAAK,QAEX,IAAI,EAAE,UAAU,IAChB,IAAI,EAAE,UAAU;CAapB,AAXI,IAAI,IAAI,IAAK,MACf,IAAI,EAAE,UAAU,IAAI,KAElB,IAAI,IAAI,IAAK,MACf,IAAI,EAAE,UAAU,IAAI,KAGtB,IAAI,KAAK,IAAI,GAAM,KAAK,IAAI,GAAG,IAAK,IAAI,CAAI,CAAC,GAC7C,IAAI,KAAK,IAAI,GAAM,KAAK,IAAI,GAAG,IAAK,IAAI,CAAI,CAAC,GAE7C,EAAQ,MAAM,OAAO,GAAG,EAAE,KAC1B,EAAQ,MAAM,MAAM,GAAG,EAAE;AAC3B;AAEA,SAAS,EAAW,GAAsB,GAAe,GAAe;CACtE,AAAI,IACF,EAAQ,YAAY,IAEpB,EAAQ,cAAc;AAE1B;AAEA,IAAa,IAAsB;CACjC,QAAQ,GAAe,GAAmC;EACxD,IAAM,IAAU,EAAgB;EAEhC,AADA,EAAW,GAAS,EAAQ,OAAO,CAAC,CAAC,EAAQ,UAAU,IAAI,GAC3D,SAAS,KAAK,YAAY,CAAO;EAEjC,IAAI,IAAoD,MACpD,IAAoD,MACpD,IAA+B,MAE7B,KAAU,MAAkB;GAChC,IAAY;EACd,GAEM,KAAW,MAAkB;GAMjC,AALA,IAAY,GACZ,AAEE,OADA,aAAa,CAAW,GACV,OAEhB,IAAc,iBAAiB;IAE7B,AADA,EAAS,GAAS,KAAa,CAAC,GAChC,EAAQ,MAAM,UAAU;GAC1B,GAAG,GAAG;EACR,GAEM,UAAgB;GAMpB,AALA,IAAY,MACZ,AAEE,OADA,aAAa,CAAW,GACV,OAEhB,IAAc,iBAAiB;IAC7B,EAAQ,MAAM,UAAU;GAC1B,GAAG,EAAE;EACP,GAEM,KAAW,MAAkB;GASjC,AARA,AAEE,OADA,aAAa,CAAW,GACV,OAEhB,AAEE,OADA,aAAa,CAAW,GACV,OAEZ,EAAQ,MAAM,YAAY,MAC5B,EAAQ,MAAM,UAAU,OAExB,EAAS,GAAS,CAAC,GACnB,EAAQ,MAAM,UAAU;EAE5B,GAEM,UAAiB;GAKrB,AAJA,AAEE,OADA,aAAa,CAAW,GACV,OAEhB,EAAQ,MAAM,UAAU;EAC1B;EAQA,AANA,EAAG,iBAAiB,cAAc,CAAO,GACzC,EAAG,iBAAiB,aAAa,CAAM,GACvC,EAAG,iBAAiB,cAAc,CAAO,GACzC,EAAG,iBAAiB,SAAS,CAAO,GACpC,OAAO,iBAAiB,UAAU,GAAU,EAAI,GAEhD,EAAG,WAAW;GACZ,IAAI;GACJ;GACA;GACA;GACA;GACA;GACA;GACA;EACF;CACF;CAEA,QAAQ,GAAe,GAAmC;EACxD,AAAI,EAAG,YACL,EAAW,EAAG,SAAS,IAAI,EAAQ,OAAO,CAAC,CAAC,EAAQ,UAAU,IAAI;CAEtE;CAEA,UAAU,GAAe;EACvB,AAOE,EAAG,cANH,EAAG,oBAAoB,cAAc,EAAG,SAAS,OAAO,GACxD,EAAG,oBAAoB,aAAa,EAAG,SAAS,MAAM,GACtD,EAAG,oBAAoB,cAAc,EAAG,SAAS,OAAO,GACxD,EAAG,oBAAoB,SAAS,EAAG,SAAS,OAAO,GACnD,OAAO,oBAAoB,UAAU,EAAG,SAAS,UAAU,EAAI,GAC/D,EAAG,SAAS,GAAG,OAAO,GACR,KAAA;CAElB;AACF"}
1
+ {"version":3,"file":"admins-components99.js","names":[],"sources":["../src/utils/cmsContext.ts"],"sourcesContent":["export const getCurrentSite = (): string | undefined => {\n return (window as any).cmsContext?.currentSite\n}\n"],"mappings":";AAAA,IAAa,UACD,OAAe,YAAY"}