admins-components 9.0.38 → 9.0.40

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 (238) hide show
  1. package/dist/admins-components.js +38 -38
  2. package/dist/admins-components100.js +3 -52
  3. package/dist/admins-components100.js.map +1 -1
  4. package/dist/admins-components101.js +3 -82
  5. package/dist/admins-components101.js.map +1 -1
  6. package/dist/admins-components102.js +49 -110
  7. package/dist/admins-components102.js.map +1 -1
  8. package/dist/admins-components103.js +80 -45
  9. package/dist/admins-components103.js.map +1 -1
  10. package/dist/admins-components104.js +108 -101
  11. package/dist/admins-components104.js.map +1 -1
  12. package/dist/admins-components105.js +41 -14
  13. package/dist/admins-components105.js.map +1 -1
  14. package/dist/admins-components106.js +105 -6
  15. package/dist/admins-components106.js.map +1 -1
  16. package/dist/admins-components107.js +16 -248
  17. package/dist/admins-components107.js.map +1 -1
  18. package/dist/admins-components108.js +7 -27
  19. package/dist/admins-components108.js.map +1 -1
  20. package/dist/admins-components109.js +247 -23
  21. package/dist/admins-components109.js.map +1 -1
  22. package/dist/admins-components110.js +26 -171
  23. package/dist/admins-components110.js.map +1 -1
  24. package/dist/admins-components111.js +25 -65
  25. package/dist/admins-components111.js.map +1 -1
  26. package/dist/admins-components112.js +163 -58
  27. package/dist/admins-components112.js.map +1 -1
  28. package/dist/admins-components113.js +65 -27
  29. package/dist/admins-components113.js.map +1 -1
  30. package/dist/admins-components114.js +63 -12
  31. package/dist/admins-components114.js.map +1 -1
  32. package/dist/admins-components115.js +29 -26
  33. package/dist/admins-components115.js.map +1 -1
  34. package/dist/admins-components116.js +16 -9
  35. package/dist/admins-components116.js.map +1 -1
  36. package/dist/admins-components117.js +26 -3
  37. package/dist/admins-components117.js.map +1 -1
  38. package/dist/admins-components118.js +8 -2
  39. package/dist/admins-components118.js.map +1 -1
  40. package/dist/admins-components119.js +4 -3
  41. package/dist/admins-components119.js.map +1 -1
  42. package/dist/admins-components120.js +3 -21
  43. package/dist/admins-components120.js.map +1 -1
  44. package/dist/admins-components121.js +3 -14
  45. package/dist/admins-components121.js.map +1 -1
  46. package/dist/admins-components122.js +20 -7
  47. package/dist/admins-components122.js.map +1 -1
  48. package/dist/admins-components123.js +14 -13
  49. package/dist/admins-components123.js.map +1 -1
  50. package/dist/admins-components124.js +8 -26
  51. package/dist/admins-components124.js.map +1 -1
  52. package/dist/admins-components125.js +12 -82
  53. package/dist/admins-components125.js.map +1 -1
  54. package/dist/admins-components126.js +24 -9
  55. package/dist/admins-components126.js.map +1 -1
  56. package/dist/admins-components127.js +82 -4
  57. package/dist/admins-components127.js.map +1 -1
  58. package/dist/admins-components128.js +11 -8
  59. package/dist/admins-components128.js.map +1 -1
  60. package/dist/admins-components129.js +4 -6
  61. package/dist/admins-components129.js.map +1 -1
  62. package/dist/admins-components130.js +8 -6
  63. package/dist/admins-components130.js.map +1 -1
  64. package/dist/admins-components131.js +6 -14
  65. package/dist/admins-components131.js.map +1 -1
  66. package/dist/admins-components132.js +4 -11
  67. package/dist/admins-components132.js.map +1 -1
  68. package/dist/admins-components133.js +15 -30
  69. package/dist/admins-components133.js.map +1 -1
  70. package/dist/admins-components134.js +13 -4
  71. package/dist/admins-components134.js.map +1 -1
  72. package/dist/admins-components135.js +30 -29
  73. package/dist/admins-components135.js.map +1 -1
  74. package/dist/admins-components136.js +4 -5
  75. package/dist/admins-components136.js.map +1 -1
  76. package/dist/admins-components137.js +29 -5
  77. package/dist/admins-components137.js.map +1 -1
  78. package/dist/admins-components138.js +4 -7
  79. package/dist/admins-components138.js.map +1 -1
  80. package/dist/admins-components139.js +4 -73
  81. package/dist/admins-components139.js.map +1 -1
  82. package/dist/admins-components140.js +7 -28
  83. package/dist/admins-components140.js.map +1 -1
  84. package/dist/admins-components141.js +73 -58
  85. package/dist/admins-components141.js.map +1 -1
  86. package/dist/admins-components142.js +29 -24
  87. package/dist/admins-components142.js.map +1 -1
  88. package/dist/admins-components143.js +56 -47
  89. package/dist/admins-components143.js.map +1 -1
  90. package/dist/admins-components144.js +23 -30
  91. package/dist/admins-components144.js.map +1 -1
  92. package/dist/admins-components145.js +50 -3
  93. package/dist/admins-components145.js.map +1 -1
  94. package/dist/admins-components146.js +29 -177
  95. package/dist/admins-components146.js.map +1 -1
  96. package/dist/admins-components147.js +3 -46
  97. package/dist/admins-components147.js.map +1 -1
  98. package/dist/admins-components148.js +177 -35
  99. package/dist/admins-components148.js.map +1 -1
  100. package/dist/admins-components149.js +41 -41
  101. package/dist/admins-components149.js.map +1 -1
  102. package/dist/admins-components150.js +32 -136
  103. package/dist/admins-components150.js.map +1 -1
  104. package/dist/admins-components151.js +42 -54
  105. package/dist/admins-components151.js.map +1 -1
  106. package/dist/admins-components152.js +140 -6
  107. package/dist/admins-components152.js.map +1 -1
  108. package/dist/admins-components153.js +57 -5
  109. package/dist/admins-components153.js.map +1 -1
  110. package/dist/admins-components154.js +6 -75
  111. package/dist/admins-components154.js.map +1 -1
  112. package/dist/admins-components155.js +5 -28
  113. package/dist/admins-components155.js.map +1 -1
  114. package/dist/admins-components156.js +74 -1929
  115. package/dist/admins-components156.js.map +1 -1
  116. package/dist/admins-components157.js +29 -24811
  117. package/dist/admins-components157.js.map +1 -1
  118. package/dist/admins-components158.js +1930 -8
  119. package/dist/admins-components158.js.map +1 -1
  120. package/dist/admins-components159.js +24809 -5
  121. package/dist/admins-components159.js.map +1 -0
  122. package/dist/admins-components160.js +8 -141
  123. package/dist/admins-components160.js.map +1 -1
  124. package/dist/admins-components161.js +7 -9
  125. package/dist/admins-components162.js +141 -8
  126. package/dist/admins-components162.js.map +1 -1
  127. package/dist/admins-components163.js +10 -0
  128. package/dist/{admins-components161.js.map → admins-components163.js.map} +1 -1
  129. package/dist/admins-components164.js +8 -167
  130. package/dist/admins-components164.js.map +1 -1
  131. package/dist/admins-components166.js +167 -8
  132. package/dist/admins-components166.js.map +1 -1
  133. package/dist/admins-components167.js +39 -38
  134. package/dist/admins-components167.js.map +1 -1
  135. package/dist/admins-components168.js +9 -6
  136. package/dist/admins-components168.js.map +1 -1
  137. package/dist/admins-components169.js +42 -72
  138. package/dist/admins-components169.js.map +1 -1
  139. package/dist/admins-components170.js +6 -58
  140. package/dist/admins-components170.js.map +1 -1
  141. package/dist/admins-components171.js +72 -51
  142. package/dist/admins-components171.js.map +1 -1
  143. package/dist/admins-components172.js +57 -8
  144. package/dist/admins-components172.js.map +1 -1
  145. package/dist/admins-components173.js +40 -33
  146. package/dist/admins-components173.js.map +1 -1
  147. package/dist/admins-components174.js +3 -3
  148. package/dist/admins-components174.js.map +1 -1
  149. package/dist/admins-components175.js +53 -0
  150. package/dist/admins-components175.js.map +1 -0
  151. package/dist/admins-components176.js +8 -57
  152. package/dist/admins-components176.js.map +1 -1
  153. package/dist/admins-components178.js +59 -0
  154. package/dist/admins-components178.js.map +1 -0
  155. package/dist/admins-components38.js +2 -2
  156. package/dist/admins-components38.js.map +1 -1
  157. package/dist/admins-components39.js.map +1 -1
  158. package/dist/admins-components58.js.map +1 -1
  159. package/dist/admins-components59.js +1 -13
  160. package/dist/admins-components59.js.map +1 -1
  161. package/dist/admins-components61.js +22 -22
  162. package/dist/admins-components61.js.map +1 -1
  163. package/dist/admins-components62.js.map +1 -1
  164. package/dist/admins-components63.js +69 -133
  165. package/dist/admins-components63.js.map +1 -1
  166. package/dist/admins-components64.js +5 -0
  167. package/dist/admins-components64.js.map +1 -0
  168. package/dist/admins-components65.js +118 -7
  169. package/dist/admins-components65.js.map +1 -1
  170. package/dist/admins-components67.js +8 -0
  171. package/dist/admins-components67.js.map +1 -0
  172. package/dist/admins-components68.js +145 -7
  173. package/dist/admins-components68.js.map +1 -1
  174. package/dist/admins-components70.js +7 -279
  175. package/dist/admins-components70.js.map +1 -1
  176. package/dist/{admins-components69.js.map → admins-components71.js.map} +1 -1
  177. package/dist/admins-components72.js +279 -6
  178. package/dist/admins-components72.js.map +1 -1
  179. package/dist/admins-components74.js +6 -126
  180. package/dist/admins-components74.js.map +1 -1
  181. package/dist/{admins-components73.js.map → admins-components75.js.map} +1 -1
  182. package/dist/admins-components76.js +126 -6
  183. package/dist/admins-components76.js.map +1 -1
  184. package/dist/admins-components78.js +6 -69
  185. package/dist/admins-components78.js.map +1 -1
  186. package/dist/admins-components79.js +55 -234
  187. package/dist/admins-components79.js.map +1 -1
  188. package/dist/admins-components80.js +70 -0
  189. package/dist/admins-components80.js.map +1 -0
  190. package/dist/admins-components81.js +238 -6
  191. package/dist/admins-components81.js.map +1 -1
  192. package/dist/admins-components83.js +7 -0
  193. package/dist/admins-components83.js.map +1 -0
  194. package/dist/admins-components84.js +229 -6
  195. package/dist/admins-components84.js.map +1 -1
  196. package/dist/admins-components86.js +7 -0
  197. package/dist/admins-components86.js.map +1 -0
  198. package/dist/admins-components87.js +37 -6
  199. package/dist/admins-components87.js.map +1 -1
  200. package/dist/admins-components89.js +7 -0
  201. package/dist/{admins-components85.js.map → admins-components89.js.map} +1 -1
  202. package/dist/admins-components90.js +199 -6
  203. package/dist/admins-components90.js.map +1 -1
  204. package/dist/admins-components92.js +6 -75
  205. package/dist/admins-components92.js.map +1 -1
  206. package/dist/{admins-components91.js.map → admins-components93.js.map} +1 -1
  207. package/dist/admins-components94.js +75 -6
  208. package/dist/admins-components94.js.map +1 -1
  209. package/dist/admins-components96.js +7 -0
  210. package/dist/admins-components96.js.map +1 -0
  211. package/dist/admins-components97.js +204 -6
  212. package/dist/admins-components97.js.map +1 -1
  213. package/dist/admins-components99.js +6 -3
  214. package/dist/admins-components99.js.map +1 -1
  215. package/dist/src/components/ConfirmModal.vue.d.ts +1 -1
  216. package/dist/src/components/data-table/DataFilters.vue.d.ts +2 -1
  217. package/dist/src/components/data-table/DataListActions.vue.d.ts +8 -0
  218. package/dist/src/styles/components/modal.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  219. package/dist/src/types/data-list.d.ts +5 -1
  220. package/package.json +1 -1
  221. package/dist/admins-components165.js +0 -52
  222. package/dist/admins-components165.js.map +0 -1
  223. package/dist/admins-components66.js +0 -171
  224. package/dist/admins-components66.js.map +0 -1
  225. package/dist/admins-components77.js +0 -60
  226. package/dist/admins-components77.js.map +0 -1
  227. package/dist/admins-components82.js +0 -230
  228. package/dist/admins-components82.js.map +0 -1
  229. package/dist/admins-components85.js +0 -38
  230. package/dist/admins-components88.js +0 -200
  231. package/dist/admins-components88.js.map +0 -1
  232. package/dist/admins-components95.js +0 -205
  233. package/dist/admins-components95.js.map +0 -1
  234. package/dist/admins-components98.js +0 -4
  235. package/dist/admins-components98.js.map +0 -1
  236. /package/dist/{admins-components69.js → admins-components71.js} +0 -0
  237. /package/dist/{admins-components73.js → admins-components75.js} +0 -0
  238. /package/dist/{admins-components91.js → admins-components93.js} +0 -0
@@ -1,7 +1,127 @@
1
- import './src/styles/components/data-table/data-paginator.scss_vue_type_style_index_0_src_true_lang.css';
2
- import e from "./admins-components74.js";
3
- /* empty css */
4
- //#region src/components/data-table/DataPaginator.vue
5
- var t = e;
1
+ import e from "./admins-components6.js";
2
+ import { getFullStorageKey as t } from "./admins-components75.js";
3
+ import { Fragment as n, computed as r, createElementBlock as i, createElementVNode as a, createVNode as o, defineComponent as s, normalizeClass as c, openBlock as l, renderList as u, toDisplayString as d } from "vue";
4
+ //#region src/components/data-table/DataPaginator.vue?vue&type=script&setup=true&lang.ts
5
+ var f = { class: "ac-component" }, p = { class: "c-paginator-wrapper" }, m = { class: "c-paginator" }, h = { class: "c-paginator__info" }, g = { class: "c-paginator__range" }, _ = { class: "c-paginator__total" }, v = {
6
+ class: "c-paginator__nav",
7
+ "aria-label": "Pagination"
8
+ }, y = {
9
+ key: 0,
10
+ class: "c-paginator__ellipsis"
11
+ }, b = ["onClick"], x = { class: "c-paginator__size" }, S = ["value"], C = ["value"], w = [
12
+ 10,
13
+ 25,
14
+ 50,
15
+ 100
16
+ ], T = 100;
17
+ function E(e) {
18
+ try {
19
+ let n = t("pagination", e), r = localStorage.getItem(n);
20
+ if (r) {
21
+ let e = Number(r);
22
+ if (e > 0) return e;
23
+ }
24
+ } catch {
25
+ console.warn("Failed to read page size from localStorage");
26
+ }
27
+ return T;
28
+ }
29
+ function D(e) {
30
+ return {
31
+ total: 0,
32
+ page: 1,
33
+ pageSize: E(e)
34
+ };
35
+ }
36
+ var O = /* @__PURE__ */ s({
37
+ __name: "DataPaginator",
38
+ props: {
39
+ settings: {},
40
+ storageKey: {}
41
+ },
42
+ emits: ["update:pagination"],
43
+ setup(s, { emit: T }) {
44
+ let E = s, D = T;
45
+ function O(e) {
46
+ try {
47
+ let n = t("pagination", E.storageKey);
48
+ localStorage.setItem(n, String(e));
49
+ } catch {
50
+ console.warn("Failed to save page size to localStorage");
51
+ }
52
+ }
53
+ let k = r(() => Math.max(1, Math.ceil(E.settings.total / E.settings.pageSize))), A = r(() => E.settings.total === 0 ? 0 : (E.settings.page - 1) * E.settings.pageSize + 1), j = r(() => Math.min(E.settings.page * E.settings.pageSize, E.settings.total)), M = r(() => {
54
+ let e = k.value, t = E.settings.page;
55
+ if (e <= N) {
56
+ let t = [];
57
+ for (let n = 1; n <= e; n++) t.push(n);
58
+ return t;
59
+ }
60
+ let n = N - 2, r = t - 1, i = t + 1;
61
+ for (r < 2 && (i = Math.min(e - 1, i + (2 - r)), r = 2), i > e - 1 && (r = Math.max(2, r - (i - (e - 1))), i = e - 1); i - r + 1 < n;) {
62
+ let t = r > 2, a = i < e - 1;
63
+ if (!t && !a) break;
64
+ let o = r - 2, s = e - 1 - i, c = +((t ? r - 1 : 0) > 2) + +(i < e - 1), l = +(r > 2) + +((a ? i + 1 : 0) < e - 1), u = i - r + 2, d = !1;
65
+ if (t && (o >= s || !a) && u + c <= n ? (r--, d = !0) : a && u + l <= n && (i++, d = !0), !d) break;
66
+ }
67
+ let a = r > 2, o = i < e - 1, s = [];
68
+ s.push(1), a && s.push("...");
69
+ for (let e = r; e <= i; e++) s.push(e);
70
+ return o && s.push("..."), s.push(e), s;
71
+ }), N = 7;
72
+ function P(e) {
73
+ let t = E.settings.page, n = k.value, r = e === 1 || e === n, i = e === t;
74
+ return t > 3 && t < n - 2 && !r && !i;
75
+ }
76
+ function F(e) {
77
+ e < 1 || e > k.value || e === E.settings.page || D("update:pagination", {
78
+ page: e,
79
+ pageSize: E.settings.pageSize
80
+ });
81
+ }
82
+ function I(e) {
83
+ let t = Number(e.target.value);
84
+ O(t), D("update:pagination", {
85
+ page: 1,
86
+ pageSize: t
87
+ });
88
+ }
89
+ return (t, r) => (l(), i("div", f, [a("div", p, [a("div", m, [
90
+ a("div", h, [a("span", g, d(A.value) + "–" + d(j.value), 1), a("span", _, " / " + d(s.settings.total), 1)]),
91
+ a("nav", v, [
92
+ o(e, {
93
+ icon: "fa-solid fa-chevron-left",
94
+ rel: "prev",
95
+ disabled: s.settings.page <= 1,
96
+ callback: () => F(s.settings.page - 1)
97
+ }, null, 8, ["disabled", "callback"]),
98
+ (l(!0), i(n, null, u(M.value, (e, t) => (l(), i(n, { key: t }, [e === "..." ? (l(), i("span", y, "…")) : (l(), i("button", {
99
+ key: 1,
100
+ type: "button",
101
+ class: c(["c-paginator__page", {
102
+ "is-active": e === s.settings.page,
103
+ "is-hidden-sm": P(e)
104
+ }]),
105
+ onClick: (t) => F(e)
106
+ }, d(e), 11, b))], 64))), 128)),
107
+ o(e, {
108
+ icon: "fa-solid fa-chevron-right",
109
+ rel: "next",
110
+ disabled: s.settings.page >= k.value,
111
+ callback: () => F(s.settings.page + 1)
112
+ }, null, 8, ["disabled", "callback"])
113
+ ]),
114
+ a("div", x, [a("select", {
115
+ class: "c-paginator__select",
116
+ id: "page-size-select",
117
+ value: s.settings.pageSize,
118
+ onChange: I
119
+ }, [(l(), i(n, null, u(w, (e) => a("option", {
120
+ key: e,
121
+ value: e
122
+ }, d(e) + " elem / oldal", 9, C)), 64))], 40, S)])
123
+ ])])]));
124
+ }
125
+ });
6
126
  //#endregion
7
- export { t as default };
127
+ export { O as default, D as getDefaultPaginator, E as getPageSize };
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components76.js","names":[],"sources":["../src/components/data-table/DataPaginator.vue"],"sourcesContent":["<script lang=\"ts\">\nconst SIZE_OPTIONS = [10, 25, 50, 100]\nconst DEFAULT_PAGE_SIZE = 100\n\nexport function getPageSize(storageKey: string): number {\n try {\n const fullStorageKey = getFullStorageKey('pagination', storageKey)\n const raw = localStorage.getItem(fullStorageKey)\n if (raw) {\n const size = Number(raw)\n if (size > 0) return size\n }\n } catch {\n console.warn('Failed to read page size from localStorage')\n }\n return DEFAULT_PAGE_SIZE\n}\n\nexport function getDefaultPaginator(storageKey: string) {\n return {\n total: 0,\n page: 1,\n pageSize: getPageSize(storageKey),\n } as PaginatorSettings\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport Button from '@/components/Button.vue'\nimport type { PaginatorSettings, PageSettings } from '@/types/data-list'\nimport { getFullStorageKey } from '@/utils/storageKey'\n\nconst props = defineProps<{ settings: PaginatorSettings; storageKey: string }>()\n\nconst emit = defineEmits<{\n 'update:pagination': [pagination: PageSettings]\n}>()\n\nfunction savePageSize(size: number) {\n try {\n const fullStorageKey = getFullStorageKey('pagination', props.storageKey)\n localStorage.setItem(fullStorageKey, String(size))\n } catch {\n console.warn('Failed to save page size to localStorage')\n }\n}\n\nconst totalPages = computed(() =>\n Math.max(1, Math.ceil(props.settings.total / props.settings.pageSize)),\n)\n\nconst rangeStart = computed(() =>\n props.settings.total === 0 ? 0 : (props.settings.page - 1) * props.settings.pageSize + 1,\n)\nconst rangeEnd = computed(() =>\n Math.min(props.settings.page * props.settings.pageSize, props.settings.total),\n)\n\nconst visiblePages = computed<(number | '...')[]>(() => {\n const total = totalPages.value\n const current = props.settings.page\n\n if (total <= SLOT_COUNT) {\n const pages: number[] = []\n for (let i = 1; i <= total; i++) pages.push(i)\n return pages\n }\n\n const inner = SLOT_COUNT - 2\n let winStart = current - 1\n let winEnd = current + 1\n if (winStart < 2) {\n winEnd = Math.min(total - 1, winEnd + (2 - winStart))\n winStart = 2\n }\n if (winEnd > total - 1) {\n winStart = Math.max(2, winStart - (winEnd - (total - 1)))\n winEnd = total - 1\n }\n\n while (winEnd - winStart + 1 < inner) {\n const canExtendLeft = winStart > 2\n const canExtendRight = winEnd < total - 1\n if (!canExtendLeft && !canExtendRight) break\n\n const roomLeft = winStart - 2\n const roomRight = total - 1 - winEnd\n\n const ellipsisIfExtendLeft =\n ((canExtendLeft ? winStart - 1 : 0) > 2 ? 1 : 0) + (winEnd < total - 1 ? 1 : 0)\n const ellipsisIfExtendRight =\n (winStart > 2 ? 1 : 0) + ((canExtendRight ? winEnd + 1 : 0) < total - 1 ? 1 : 0)\n\n const newSize = winEnd - winStart + 2\n\n let extended = false\n if (\n canExtendLeft &&\n (roomLeft >= roomRight || !canExtendRight) &&\n newSize + ellipsisIfExtendLeft <= inner\n ) {\n winStart--\n extended = true\n } else if (canExtendRight && newSize + ellipsisIfExtendRight <= inner) {\n winEnd++\n extended = true\n }\n if (!extended) break\n }\n const showLeftEllipsis = winStart > 2\n const showRightEllipsis = winEnd < total - 1\n\n const pages: (number | '...')[] = []\n pages.push(1)\n if (showLeftEllipsis) pages.push('...')\n for (let p = winStart; p <= winEnd; p++) pages.push(p)\n if (showRightEllipsis) pages.push('...')\n pages.push(total)\n\n return pages\n})\n\nconst SLOT_COUNT = 7\n\nfunction shouldHideOnSmall(page: number) {\n const current = props.settings.page\n const total = totalPages.value\n\n const isEdge = page === 1 || page === total\n const isCurrent = page === current\n\n const isMiddleRange = current > 3 && current < total - 2\n\n return isMiddleRange && !isEdge && !isCurrent\n}\n\nfunction goToPage(page: number) {\n if (page < 1 || page > totalPages.value || page === props.settings.page) return\n emit('update:pagination', { page, pageSize: props.settings.pageSize })\n}\n\nfunction changePageSize(event: Event) {\n const size = Number((event.target as HTMLSelectElement).value)\n savePageSize(size)\n emit('update:pagination', { page: 1, pageSize: size })\n}\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div class=\"c-paginator-wrapper\">\n <div class=\"c-paginator\">\n <div class=\"c-paginator__info\">\n <span class=\"c-paginator__range\">{{ rangeStart }}&ndash;{{ rangeEnd }}</span>\n <span class=\"c-paginator__total\"> / {{ settings.total }}</span>\n </div>\n\n <nav class=\"c-paginator__nav\" aria-label=\"Pagination\">\n <Button\n icon=\"fa-solid fa-chevron-left\"\n rel=\"prev\"\n :disabled=\"settings.page <= 1\"\n :callback=\"() => goToPage(settings.page - 1)\"\n />\n\n <template v-for=\"(p, i) in visiblePages\" :key=\"i\">\n <span v-if=\"p === '...'\" class=\"c-paginator__ellipsis\">&hellip;</span>\n <button\n v-else\n type=\"button\"\n class=\"c-paginator__page\"\n :class=\"{\n 'is-active': p === settings.page,\n 'is-hidden-sm': shouldHideOnSmall(p),\n }\"\n @click=\"goToPage(p)\"\n >\n {{ p }}\n </button>\n </template>\n\n <Button\n icon=\"fa-solid fa-chevron-right\"\n rel=\"next\"\n :disabled=\"settings.page >= totalPages\"\n :callback=\"() => goToPage(settings.page + 1)\"\n />\n </nav>\n\n <div class=\"c-paginator__size\">\n <select\n class=\"c-paginator__select\"\n id=\"page-size-select\"\n :value=\"settings.pageSize\"\n @change=\"changePageSize\"\n >\n <option v-for=\"s in SIZE_OPTIONS\" :key=\"s\" :value=\"s\">{{ s }} elem / oldal</option>\n </select>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-paginator.scss\"></style>\n"],"mappings":""}
1
+ {"version":3,"file":"admins-components76.js","names":[],"sources":["../src/components/data-table/DataPaginator.vue"],"sourcesContent":["<script lang=\"ts\">\nconst SIZE_OPTIONS = [10, 25, 50, 100]\nconst DEFAULT_PAGE_SIZE = 100\n\nexport function getPageSize(storageKey: string): number {\n try {\n const fullStorageKey = getFullStorageKey('pagination', storageKey)\n const raw = localStorage.getItem(fullStorageKey)\n if (raw) {\n const size = Number(raw)\n if (size > 0) return size\n }\n } catch {\n console.warn('Failed to read page size from localStorage')\n }\n return DEFAULT_PAGE_SIZE\n}\n\nexport function getDefaultPaginator(storageKey: string) {\n return {\n total: 0,\n page: 1,\n pageSize: getPageSize(storageKey),\n } as PaginatorSettings\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport Button from '@/components/Button.vue'\nimport type { PaginatorSettings, PageSettings } from '@/types/data-list'\nimport { getFullStorageKey } from '@/utils/storageKey'\n\nconst props = defineProps<{ settings: PaginatorSettings; storageKey: string }>()\n\nconst emit = defineEmits<{\n 'update:pagination': [pagination: PageSettings]\n}>()\n\nfunction savePageSize(size: number) {\n try {\n const fullStorageKey = getFullStorageKey('pagination', props.storageKey)\n localStorage.setItem(fullStorageKey, String(size))\n } catch {\n console.warn('Failed to save page size to localStorage')\n }\n}\n\nconst totalPages = computed(() =>\n Math.max(1, Math.ceil(props.settings.total / props.settings.pageSize)),\n)\n\nconst rangeStart = computed(() =>\n props.settings.total === 0 ? 0 : (props.settings.page - 1) * props.settings.pageSize + 1,\n)\nconst rangeEnd = computed(() =>\n Math.min(props.settings.page * props.settings.pageSize, props.settings.total),\n)\n\nconst visiblePages = computed<(number | '...')[]>(() => {\n const total = totalPages.value\n const current = props.settings.page\n\n if (total <= SLOT_COUNT) {\n const pages: number[] = []\n for (let i = 1; i <= total; i++) pages.push(i)\n return pages\n }\n\n const inner = SLOT_COUNT - 2\n let winStart = current - 1\n let winEnd = current + 1\n if (winStart < 2) {\n winEnd = Math.min(total - 1, winEnd + (2 - winStart))\n winStart = 2\n }\n if (winEnd > total - 1) {\n winStart = Math.max(2, winStart - (winEnd - (total - 1)))\n winEnd = total - 1\n }\n\n while (winEnd - winStart + 1 < inner) {\n const canExtendLeft = winStart > 2\n const canExtendRight = winEnd < total - 1\n if (!canExtendLeft && !canExtendRight) break\n\n const roomLeft = winStart - 2\n const roomRight = total - 1 - winEnd\n\n const ellipsisIfExtendLeft =\n ((canExtendLeft ? winStart - 1 : 0) > 2 ? 1 : 0) + (winEnd < total - 1 ? 1 : 0)\n const ellipsisIfExtendRight =\n (winStart > 2 ? 1 : 0) + ((canExtendRight ? winEnd + 1 : 0) < total - 1 ? 1 : 0)\n\n const newSize = winEnd - winStart + 2\n\n let extended = false\n if (\n canExtendLeft &&\n (roomLeft >= roomRight || !canExtendRight) &&\n newSize + ellipsisIfExtendLeft <= inner\n ) {\n winStart--\n extended = true\n } else if (canExtendRight && newSize + ellipsisIfExtendRight <= inner) {\n winEnd++\n extended = true\n }\n if (!extended) break\n }\n const showLeftEllipsis = winStart > 2\n const showRightEllipsis = winEnd < total - 1\n\n const pages: (number | '...')[] = []\n pages.push(1)\n if (showLeftEllipsis) pages.push('...')\n for (let p = winStart; p <= winEnd; p++) pages.push(p)\n if (showRightEllipsis) pages.push('...')\n pages.push(total)\n\n return pages\n})\n\nconst SLOT_COUNT = 7\n\nfunction shouldHideOnSmall(page: number) {\n const current = props.settings.page\n const total = totalPages.value\n\n const isEdge = page === 1 || page === total\n const isCurrent = page === current\n\n const isMiddleRange = current > 3 && current < total - 2\n\n return isMiddleRange && !isEdge && !isCurrent\n}\n\nfunction goToPage(page: number) {\n if (page < 1 || page > totalPages.value || page === props.settings.page) return\n emit('update:pagination', { page, pageSize: props.settings.pageSize })\n}\n\nfunction changePageSize(event: Event) {\n const size = Number((event.target as HTMLSelectElement).value)\n savePageSize(size)\n emit('update:pagination', { page: 1, pageSize: size })\n}\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div class=\"c-paginator-wrapper\">\n <div class=\"c-paginator\">\n <div class=\"c-paginator__info\">\n <span class=\"c-paginator__range\">{{ rangeStart }}&ndash;{{ rangeEnd }}</span>\n <span class=\"c-paginator__total\"> / {{ settings.total }}</span>\n </div>\n\n <nav class=\"c-paginator__nav\" aria-label=\"Pagination\">\n <Button\n icon=\"fa-solid fa-chevron-left\"\n rel=\"prev\"\n :disabled=\"settings.page <= 1\"\n :callback=\"() => goToPage(settings.page - 1)\"\n />\n\n <template v-for=\"(p, i) in visiblePages\" :key=\"i\">\n <span v-if=\"p === '...'\" class=\"c-paginator__ellipsis\">&hellip;</span>\n <button\n v-else\n type=\"button\"\n class=\"c-paginator__page\"\n :class=\"{\n 'is-active': p === settings.page,\n 'is-hidden-sm': shouldHideOnSmall(p),\n }\"\n @click=\"goToPage(p)\"\n >\n {{ p }}\n </button>\n </template>\n\n <Button\n icon=\"fa-solid fa-chevron-right\"\n rel=\"next\"\n :disabled=\"settings.page >= totalPages\"\n :callback=\"() => goToPage(settings.page + 1)\"\n />\n </nav>\n\n <div class=\"c-paginator__size\">\n <select\n class=\"c-paginator__select\"\n id=\"page-size-select\"\n :value=\"settings.pageSize\"\n @change=\"changePageSize\"\n >\n <option v-for=\"s in SIZE_OPTIONS\" :key=\"s\" :value=\"s\">{{ s }} elem / oldal</option>\n </select>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-paginator.scss\"></style>\n"],"mappings":"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"}
@@ -1,70 +1,7 @@
1
- import { getFullStorageKey as e } from "./admins-components73.js";
2
- import { parseDropdownValue as t } from "./admins-components77.js";
3
- //#region src/utils/dataFilters.ts
4
- function n(e, t, n = !0) {
5
- let i = r(e), o = Object.keys(i).length > 0, s = (o ? null : a(t))?.values ?? {}, c = {};
6
- for (let t of e) {
7
- if (t.type === "separator") continue;
8
- let e;
9
- if (t.key in i) e = i[t.key];
10
- else if (o) continue;
11
- else if (t.key in s) e = s[t.key];
12
- else if (t.value !== void 0) e = t.value;
13
- else continue;
14
- if (e != null) if (n && t.transformer) {
15
- let n = t.transformer(e);
16
- n && Object.assign(c, n);
17
- } else c[t.key] = e;
18
- }
19
- return c;
20
- }
21
- function r(e) {
22
- let t = new URLSearchParams(window.location.search), n = {};
23
- for (let r of e) {
24
- if (r.type === "separator") continue;
25
- let e = window.location.search ? t.get(r.key) : null;
26
- e && (n[r.key] = s(r.type, e, r.value));
27
- }
28
- return n;
29
- }
30
- function i(t) {
31
- try {
32
- let n = e("filters", t), r = JSON.parse(localStorage.getItem(n) ?? "[]");
33
- return Array.isArray(r) ? r.filter((e) => e && typeof e == "object" && typeof e.id == "string" && e.values && typeof e.savedAt == "string") : [];
34
- } catch {
35
- return [];
36
- }
37
- }
38
- function a(e) {
39
- return i(e).find((e) => e.isDefault) ?? null;
40
- }
41
- function o(e) {
42
- return Object.fromEntries(Object.entries(e).filter(([e, t]) => t !== null && t !== "" && t !== void 0));
43
- }
44
- function s(e, n, r) {
45
- if (e === "number") {
46
- let e = Number(n);
47
- return isNaN(e) ? r ?? null : e;
48
- }
49
- return e === "date" || e === "datetime" ? { utc: n } : e === "daterange" || e === "datetimerange" ? c(n, r) : e === "dropdown" ? t(n) : e === "checkbox" ? n === "true" : n;
50
- }
51
- function c(e, t) {
52
- try {
53
- let t = JSON.parse(e);
54
- return t && typeof t == "object" && "local" in t && t.local && (t.local = new Date(t.local)), t;
55
- } catch {
56
- return t ?? null;
57
- }
58
- }
59
- function l(e, t) {
60
- let n = new URLSearchParams(window.location.search);
61
- for (let r of e) {
62
- if (r.type === "separator") continue;
63
- let e = t[r.key];
64
- e == null || e === "" ? n.delete(r.key) : r.type === "date" || r.type === "datetime" ? n.set(r.key, e.utc) : typeof e == "object" ? n.set(r.key, JSON.stringify(e)) : n.set(r.key, String(e));
65
- }
66
- let r = n.toString(), i = window.location.pathname + (r ? `?${r}` : "");
67
- window.history.replaceState(null, "", i);
68
- }
1
+ import './src/styles/components/data-table/data-paginator.scss_vue_type_style_index_0_src_true_lang.css';
2
+ import e from "./admins-components76.js";
3
+ /* empty css */
4
+ //#region src/components/data-table/DataPaginator.vue
5
+ var t = e;
69
6
  //#endregion
70
- export { o as filterEmptyValues, n as getDefaultFilters, a as getDefaultSavedFilter, r as getFilterUrlParams, i as getSavedFilters, l as writeFilterParams };
7
+ export { t as default };
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components78.js","names":[],"sources":["../src/utils/dataFilters.ts"],"sourcesContent":["import type { FilterItem } from '@/components/data-table/DataFilters.vue'\nimport type { SavedFilter } from '@/components/data-table/FiltersHistory.vue'\nimport { parseDropdownValue } from '@/utils/filterDisplay'\nimport { getFullStorageKey } from '@/utils/storageKey'\n\n export function getDefaultFilters(\n items: FilterItem[],\n storageKey?: string,\n useTransformers = true,\n): Record<string, unknown> {\n const urlFilters = getFilterUrlParams(items)\n const hasUrlParams = Object.keys(urlFilters).length > 0\n const defaultFilter = hasUrlParams ? null : getDefaultSavedFilter(storageKey)\n const defaultSavedValues = defaultFilter?.values ?? {}\n\n const result: Record<string, unknown> = {}\n\n for (const item of items) {\n if (item.type === 'separator') continue\n\n let value: unknown\n\n if (item.key in urlFilters) {\n value = urlFilters[item.key]\n } else if (hasUrlParams) {\n continue\n } else if (item.key in defaultSavedValues) {\n value = defaultSavedValues[item.key]\n } else if (item.value !== undefined) {\n value = item.value\n } else {\n continue\n }\n\n if (value == null) continue\n\n if (useTransformers && item.transformer) {\n const transformed = item.transformer(value)\n if (transformed) {\n Object.assign(result, transformed)\n }\n } else {\n result[item.key] = value\n }\n }\n\n return result\n}\n\n/* export function getDefaultFilters(\n items: FilterItem[],\n storageKey?: string,\n): Record<string, unknown> {\n return getDefaultFilterRaws(items, storageKey, true)\n} */\n\nexport function getFilterUrlParams(items: FilterItem[]): Record<string, unknown> {\n const params = new URLSearchParams(window.location.search)\n const result: Record<string, unknown> = {}\n\n for (const item of items) {\n if (item.type === 'separator') continue\n\n const raw = window.location.search ? params.get(item.key) : null\n if (raw) {\n result[item.key] = parseFilterValue(item.type, raw, item.value)\n }\n }\n return result\n}\n\nexport function getSavedFilters(storageKey?: string): SavedFilter[] {\n try {\n const fullStorageKey = getFullStorageKey('filters', storageKey)\n const parsed = JSON.parse(localStorage.getItem(fullStorageKey) ?? '[]')\n return Array.isArray(parsed)\n ? parsed.filter(\n (e) =>\n e &&\n typeof e === 'object' &&\n typeof e.id === 'string' &&\n e.values &&\n typeof e.savedAt === 'string',\n )\n : []\n } catch {\n return []\n }\n}\n\nexport function getDefaultSavedFilter(storageKey?: string): SavedFilter | null {\n const savedFilters = getSavedFilters(storageKey)\n return savedFilters.find((f) => f.isDefault) ?? null\n}\n\nexport function filterEmptyValues(filters: Record<string, any>): Record<string, any> {\n return Object.fromEntries(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Object.entries(filters).filter(([_, val]) => val !== null && val !== '' && val !== undefined),\n )\n}\n\nfunction parseFilterValue(type: FilterItem['type'], raw: string, fallback: unknown): unknown {\n if (type === 'number') {\n const n = Number(raw)\n return isNaN(n) ? (fallback ?? null) : n\n }\n if (type === 'date' || type === 'datetime') {\n return { utc: raw }\n }\n if (type === 'daterange' || type === 'datetimerange') {\n return parseRangeValue(raw, fallback)\n }\n if (type === 'dropdown') {\n return parseDropdownValue(raw)\n }\n if (type === 'checkbox') {\n return raw === 'true'\n }\n\n return raw\n}\n\nfunction parseRangeValue(raw: string, fallback: unknown): unknown {\n try {\n const parsed = JSON.parse(raw)\n if (parsed && typeof parsed === 'object' && 'local' in parsed && parsed.local) {\n parsed.local = new Date(parsed.local)\n }\n return parsed\n } catch {\n return fallback ?? null\n }\n}\n\nexport function writeFilterParams(items: FilterItem[], vals: Record<string, unknown>) {\n const params = new URLSearchParams(window.location.search)\n for (const item of items) {\n if (item.type === 'separator') continue\n const v = vals[item.key]\n if (v === null || v === undefined || v === '') {\n params.delete(item.key)\n } else if (item.type === 'date' || item.type === 'datetime') {\n params.set(item.key, (v as { utc: string }).utc)\n } else if (typeof v === 'object') {\n params.set(item.key, JSON.stringify(v))\n } else {\n params.set(item.key, String(v))\n }\n }\n const qs = params.toString()\n const url = window.location.pathname + (qs ? `?${qs}` : '')\n window.history.replaceState(null, '', url)\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"admins-components78.js","names":[],"sources":["../src/components/data-table/DataPaginator.vue"],"sourcesContent":["<script lang=\"ts\">\nconst SIZE_OPTIONS = [10, 25, 50, 100]\nconst DEFAULT_PAGE_SIZE = 100\n\nexport function getPageSize(storageKey: string): number {\n try {\n const fullStorageKey = getFullStorageKey('pagination', storageKey)\n const raw = localStorage.getItem(fullStorageKey)\n if (raw) {\n const size = Number(raw)\n if (size > 0) return size\n }\n } catch {\n console.warn('Failed to read page size from localStorage')\n }\n return DEFAULT_PAGE_SIZE\n}\n\nexport function getDefaultPaginator(storageKey: string) {\n return {\n total: 0,\n page: 1,\n pageSize: getPageSize(storageKey),\n } as PaginatorSettings\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport Button from '@/components/Button.vue'\nimport type { PaginatorSettings, PageSettings } from '@/types/data-list'\nimport { getFullStorageKey } from '@/utils/storageKey'\n\nconst props = defineProps<{ settings: PaginatorSettings; storageKey: string }>()\n\nconst emit = defineEmits<{\n 'update:pagination': [pagination: PageSettings]\n}>()\n\nfunction savePageSize(size: number) {\n try {\n const fullStorageKey = getFullStorageKey('pagination', props.storageKey)\n localStorage.setItem(fullStorageKey, String(size))\n } catch {\n console.warn('Failed to save page size to localStorage')\n }\n}\n\nconst totalPages = computed(() =>\n Math.max(1, Math.ceil(props.settings.total / props.settings.pageSize)),\n)\n\nconst rangeStart = computed(() =>\n props.settings.total === 0 ? 0 : (props.settings.page - 1) * props.settings.pageSize + 1,\n)\nconst rangeEnd = computed(() =>\n Math.min(props.settings.page * props.settings.pageSize, props.settings.total),\n)\n\nconst visiblePages = computed<(number | '...')[]>(() => {\n const total = totalPages.value\n const current = props.settings.page\n\n if (total <= SLOT_COUNT) {\n const pages: number[] = []\n for (let i = 1; i <= total; i++) pages.push(i)\n return pages\n }\n\n const inner = SLOT_COUNT - 2\n let winStart = current - 1\n let winEnd = current + 1\n if (winStart < 2) {\n winEnd = Math.min(total - 1, winEnd + (2 - winStart))\n winStart = 2\n }\n if (winEnd > total - 1) {\n winStart = Math.max(2, winStart - (winEnd - (total - 1)))\n winEnd = total - 1\n }\n\n while (winEnd - winStart + 1 < inner) {\n const canExtendLeft = winStart > 2\n const canExtendRight = winEnd < total - 1\n if (!canExtendLeft && !canExtendRight) break\n\n const roomLeft = winStart - 2\n const roomRight = total - 1 - winEnd\n\n const ellipsisIfExtendLeft =\n ((canExtendLeft ? winStart - 1 : 0) > 2 ? 1 : 0) + (winEnd < total - 1 ? 1 : 0)\n const ellipsisIfExtendRight =\n (winStart > 2 ? 1 : 0) + ((canExtendRight ? winEnd + 1 : 0) < total - 1 ? 1 : 0)\n\n const newSize = winEnd - winStart + 2\n\n let extended = false\n if (\n canExtendLeft &&\n (roomLeft >= roomRight || !canExtendRight) &&\n newSize + ellipsisIfExtendLeft <= inner\n ) {\n winStart--\n extended = true\n } else if (canExtendRight && newSize + ellipsisIfExtendRight <= inner) {\n winEnd++\n extended = true\n }\n if (!extended) break\n }\n const showLeftEllipsis = winStart > 2\n const showRightEllipsis = winEnd < total - 1\n\n const pages: (number | '...')[] = []\n pages.push(1)\n if (showLeftEllipsis) pages.push('...')\n for (let p = winStart; p <= winEnd; p++) pages.push(p)\n if (showRightEllipsis) pages.push('...')\n pages.push(total)\n\n return pages\n})\n\nconst SLOT_COUNT = 7\n\nfunction shouldHideOnSmall(page: number) {\n const current = props.settings.page\n const total = totalPages.value\n\n const isEdge = page === 1 || page === total\n const isCurrent = page === current\n\n const isMiddleRange = current > 3 && current < total - 2\n\n return isMiddleRange && !isEdge && !isCurrent\n}\n\nfunction goToPage(page: number) {\n if (page < 1 || page > totalPages.value || page === props.settings.page) return\n emit('update:pagination', { page, pageSize: props.settings.pageSize })\n}\n\nfunction changePageSize(event: Event) {\n const size = Number((event.target as HTMLSelectElement).value)\n savePageSize(size)\n emit('update:pagination', { page: 1, pageSize: size })\n}\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div class=\"c-paginator-wrapper\">\n <div class=\"c-paginator\">\n <div class=\"c-paginator__info\">\n <span class=\"c-paginator__range\">{{ rangeStart }}&ndash;{{ rangeEnd }}</span>\n <span class=\"c-paginator__total\"> / {{ settings.total }}</span>\n </div>\n\n <nav class=\"c-paginator__nav\" aria-label=\"Pagination\">\n <Button\n icon=\"fa-solid fa-chevron-left\"\n rel=\"prev\"\n :disabled=\"settings.page <= 1\"\n :callback=\"() => goToPage(settings.page - 1)\"\n />\n\n <template v-for=\"(p, i) in visiblePages\" :key=\"i\">\n <span v-if=\"p === '...'\" class=\"c-paginator__ellipsis\">&hellip;</span>\n <button\n v-else\n type=\"button\"\n class=\"c-paginator__page\"\n :class=\"{\n 'is-active': p === settings.page,\n 'is-hidden-sm': shouldHideOnSmall(p),\n }\"\n @click=\"goToPage(p)\"\n >\n {{ p }}\n </button>\n </template>\n\n <Button\n icon=\"fa-solid fa-chevron-right\"\n rel=\"next\"\n :disabled=\"settings.page >= totalPages\"\n :callback=\"() => goToPage(settings.page + 1)\"\n />\n </nav>\n\n <div class=\"c-paginator__size\">\n <select\n class=\"c-paginator__select\"\n id=\"page-size-select\"\n :value=\"settings.pageSize\"\n @change=\"changePageSize\"\n >\n <option v-for=\"s in SIZE_OPTIONS\" :key=\"s\" :value=\"s\">{{ s }} elem / oldal</option>\n </select>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-paginator.scss\"></style>\n"],"mappings":""}
@@ -1,239 +1,60 @@
1
1
  import { formatDate as e } from "./admins-components3.js";
2
- import t from "./admins-components6.js";
3
- import n from "./admins-components39.js";
4
- import { getFullStorageKey as r } from "./admins-components73.js";
5
- import { buildFilterDisplay as i } from "./admins-components77.js";
6
- import { getSavedFilters as ee } from "./admins-components78.js";
7
- import { Fragment as a, computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as te, defineComponent as f, nextTick as p, normalizeClass as m, onMounted as ne, openBlock as h, ref as g, renderList as _, resolveDirective as v, toDisplayString as y, vModelText as b, watch as re, withDirectives as x, withKeys as S, withModifiers as C } from "vue";
8
- //#region src/components/data-table/FiltersHistory.vue?vue&type=script&setup=true&lang.ts
9
- var ie = { class: "ac-component" }, ae = { class: "filters-history" }, oe = ["aria-expanded"], se = {
10
- key: 0,
11
- class: "c-indicator"
12
- }, ce = { key: 1 }, le = {
13
- key: 0,
14
- class: "filters-history__panel c-scroll"
15
- }, ue = { class: "filters-history__save-row" }, de = {
16
- key: 0,
17
- class: "filters-history__hint"
18
- }, fe = {
19
- key: 1,
20
- class: "filters-history__hint"
21
- }, w = {
22
- key: 2,
23
- class: "filters-history__list"
24
- }, T = [
25
- "aria-expanded",
26
- "onClick",
27
- "onKeydown"
28
- ], E = { class: "filters-history__item-header-text" }, D = { class: "filters-history__item-name" }, O = {
29
- key: 0,
30
- class: "filters-history__item-date"
31
- }, k = [
32
- "onClick",
33
- "aria-label",
34
- "title"
35
- ], A = ["onClick"], j = ["onClick"], M = ["onClick"], N = {
36
- key: 0,
37
- class: "filters-history__item-content"
38
- }, P = {
39
- key: 0,
40
- class: "filters-history__item-body"
41
- }, F = {
42
- key: 1,
43
- class: "filters-history__item-empty"
44
- }, I = { key: 3 }, L = /* @__PURE__ */ f({
45
- __name: "FiltersHistory",
46
- props: {
47
- items: {},
48
- values: {},
49
- storageKey: {}
50
- },
51
- emits: ["load"],
52
- setup(f, { emit: L }) {
53
- let R = f, z = L, B = g(!1), V = g([]), H = g(""), U = g(/* @__PURE__ */ new Set()), W = g(!1);
54
- function G(e) {
55
- return U.value.has(e);
56
- }
57
- function K(e) {
58
- let t = new Set(U.value);
59
- t.has(e) ? t.delete(e) : t.add(e), U.value = t;
60
- }
61
- function pe() {
62
- V.value = ee(R.storageKey);
63
- }
64
- function q() {
65
- try {
66
- let e = r("filters", R.storageKey);
67
- localStorage.setItem(e, JSON.stringify(V.value));
68
- } catch {
69
- console.warn("Failed to persist saved filters to localStorage");
70
- }
71
- }
72
- ne(pe);
73
- let J = o(() => Object.values(R.values).some((e) => e !== null && e !== "" && e !== void 0));
74
- function me() {
75
- return Date.now().toString(36);
76
- }
77
- re(() => [R.values, H.value], () => {
78
- Y.value &&= !1;
79
- }, { deep: !0 });
80
- let Y = g(!1);
81
- function X() {
82
- if (!J.value) return;
83
- let e = H.value.trim();
84
- V.value = [{
85
- id: me(),
86
- savedAt: (/* @__PURE__ */ new Date()).toISOString(),
87
- name: e || void 0,
88
- values: { ...R.values }
89
- }, ...V.value].slice(0, 50), H.value = "", q(), p(() => {
90
- Y.value = !0;
91
- });
92
- }
93
- function he(e) {
94
- z("load", { ...e.values });
95
- }
96
- function Z(e) {
97
- if (V.value = V.value.filter((t) => t.id !== e.id), U.value.has(e.id)) {
98
- let t = new Set(U.value);
99
- t.delete(e.id), U.value = t;
100
- }
101
- q();
102
- }
103
- function ge() {
104
- V.value = [], U.value = /* @__PURE__ */ new Set(), q(), W.value = !1;
105
- }
106
- function Q(e) {
107
- return i(R.items, e.values);
2
+ //#region src/utils/filterDisplay.ts
3
+ function t(t, r, i) {
4
+ if (i == null || i === "") return "";
5
+ let a = t.find((e) => e.key === r);
6
+ if (a?.type === "dropdown" && a.options) {
7
+ let e = n(i);
8
+ if (Array.isArray(e)) return e.map((e) => {
9
+ let t = a.options?.find((t) => t.value === e);
10
+ return t ? t.label : String(e);
11
+ }).join(", ");
12
+ let t = a.options.find((t) => t.value === e);
13
+ if (t) return t.label;
14
+ }
15
+ if (a?.type === "checkbox") return i ? "Bekapcsolva" : "";
16
+ if (a?.type === "date" || a?.type === "datetime") {
17
+ if (typeof i == "object" && i) {
18
+ let t = i.local ?? i.utc ?? null;
19
+ if (t == null) return "";
20
+ let n = t instanceof Date ? t : new Date(t);
21
+ if (!isNaN(n.getTime())) return e(n, a.type === "datetime" ? "YYYY-MM-DD HH:mm" : "YYYY-MM-DD");
22
+ }
23
+ if (typeof i == "string" && i) {
24
+ let t = new Date(i);
25
+ if (!isNaN(t.getTime())) return e(t, a.type === "datetime" ? "YYYY-MM-DD HH:mm" : "YYYY-MM-DD");
108
26
  }
109
- let _e = o(() => {
110
- let e = /* @__PURE__ */ new Map();
111
- for (let t of V.value) e.set(t.id, Q(t));
112
- return e;
27
+ }
28
+ if ((a?.type === "daterange" || a?.type === "datetimerange") && typeof i == "object") {
29
+ let t = a.type === "datetimerange" ? "YYYY-MM-DD HH:mm" : "YYYY-MM-DD";
30
+ return `${i.fromUtc ? e(new Date(i.fromUtc), t) : "…"} - ${i.toUtc ? e(new Date(i.toUtc), t) : "…"}`;
31
+ }
32
+ return typeof i == "object" ? JSON.stringify(i) : String(i);
33
+ }
34
+ function n(e) {
35
+ if (Array.isArray(e)) return e;
36
+ if (typeof e == "string") {
37
+ if (e.startsWith("[") && e.endsWith("]")) try {
38
+ let t = JSON.parse(e);
39
+ if (Array.isArray(t)) return t;
40
+ } catch {}
41
+ return e;
42
+ }
43
+ return e;
44
+ }
45
+ function r(e, n) {
46
+ let r = [];
47
+ for (let [i, a] of Object.entries(n)) {
48
+ let n = t(e, i, a);
49
+ if (!n) continue;
50
+ let o = e.find((e) => e.key === i), s = o?.label ?? i;
51
+ r.push({
52
+ key: i,
53
+ text: `${s}: ${n}`,
54
+ displayClass: o?.displayClass
113
55
  });
114
- function $(e) {
115
- return _e.value.get(e.id) ?? Q(e);
116
- }
117
- let ve = o(() => {
118
- let e = V.value.find((e) => e.isDefault);
119
- return e ? [e, ...V.value.filter((e) => !e.isDefault)] : V.value;
120
- }), ye = o(() => V.value.length >= 43);
121
- function be(t) {
122
- let n = new Date(t);
123
- return isNaN(n.getTime()) ? t : e(n, "YYYY-MM-DD HH:mm");
124
- }
125
- function xe(e) {
126
- e.isDefault ? e.isDefault = !1 : (V.value.forEach((e) => {
127
- e.isDefault = !1;
128
- }), e.isDefault = !0), q();
129
- }
130
- return (e, r) => {
131
- let i = v("tooltip");
132
- return h(), l("div", ie, [u("div", ae, [u("button", {
133
- type: "button",
134
- class: m(["filters-history__toggle", { "is-open": B.value }]),
135
- "aria-expanded": B.value,
136
- onClick: r[0] ||= (e) => B.value = !B.value
137
- }, [
138
- r[6] ||= u("i", { class: "fa-solid fa-sliders filters-history__toggle-icon" }, null, -1),
139
- r[7] ||= u("span", { class: "filters-history__toggle-label" }, "Mentett szűrők", -1),
140
- V.value.length ? (h(), l("span", se, y(V.value.length), 1)) : c("", !0),
141
- ye.value ? x((h(), l("span", ce, [d("/ " + y(50))])), [[i, "Maximum 50 szűrő menthető"]]) : c("", !0),
142
- u("i", { class: m(["fa-solid filters-history__chevron", B.value ? "fa-chevron-up" : "fa-chevron-down"]) }, null, 2)
143
- ], 10, oe), B.value ? (h(), l("div", le, [
144
- u("div", ue, [x(u("input", {
145
- "onUpdate:modelValue": r[1] ||= (e) => H.value = e,
146
- type: "text",
147
- class: "c-input-row c-input-row--sm",
148
- placeholder: "Elnevezés",
149
- onKeydown: S(X, ["enter"])
150
- }, null, 544), [[b, H.value]]), te(t, {
151
- icon: "fa-solid fa-bookmark",
152
- label: "Mentés",
153
- size: "small",
154
- type: "info",
155
- disabled: !J.value || Y.value,
156
- onClick: X
157
- }, null, 8, ["disabled"])]),
158
- !J.value && V.value.length === 0 ? (h(), l("p", de, " Nincs aktív szűrő. Adj meg értékeket a mentéshez. ")) : V.value.length === 0 ? (h(), l("p", fe, [...r[8] ||= [
159
- d(" Még nincs mentett szűrő.", -1),
160
- u("br", null, null, -1),
161
- d(" Az aktuális beállítások a „Mentés\" gombbal menthetők.", -1),
162
- u("br", null, null, -1),
163
- d(" Az „Elnevezés\" mező csak a könnyebb azonosítás miatt van, megadása nem kötelező. ", -1)
164
- ]])) : c("", !0),
165
- V.value.length > 0 ? (h(), l("ul", w, [(h(!0), l(a, null, _(ve.value, (e) => (h(), l("li", {
166
- key: e.id,
167
- class: m(["filters-history__item", {
168
- "is-open": G(e.id),
169
- "is-default": e.isDefault
170
- }])
171
- }, [u("div", {
172
- class: "filters-history__item-header",
173
- role: "button",
174
- tabindex: "0",
175
- "aria-expanded": G(e.id),
176
- onClick: (t) => K(e.id),
177
- onKeydown: [S(C((t) => K(e.id), ["prevent"]), ["enter"]), S(C((t) => K(e.id), ["prevent"]), ["space"])]
178
- }, [
179
- u("i", { class: m(["fa-solid filters-history__item-chevron", G(e.id) ? "fa-chevron-down" : "fa-chevron-right"]) }, null, 2),
180
- u("span", E, [u("span", D, y(e.name), 1), e.name ? (h(), l("span", O, y(be(e.savedAt)), 1)) : c("", !0)]),
181
- u("div", {
182
- class: "filters-history__item-actions",
183
- onClick: r[2] ||= C(() => {}, ["stop"])
184
- }, [
185
- u("button", {
186
- type: "button",
187
- class: m(["c-indicator filters-history__item-btn filters-history__item-default", { active: e.isDefault }]),
188
- onClick: (t) => xe(e),
189
- "aria-label": e.isDefault ? "Alapértelmezett szűrő törlése" : "Alapértelmezett szűrő beállítása",
190
- title: e.isDefault ? "Alapértelmezett szűrő törlése" : "Alapértelmezett szűrő beállítása"
191
- }, [u("i", { class: m(["fa-star fix-icon-pos", e.isDefault ? "fa-solid" : "fa-regular"]) }, null, 2)], 10, k),
192
- u("button", {
193
- type: "button",
194
- class: "c-indicator filters-history__item-btn filters-history__item-load",
195
- "aria-label": "Betöltés",
196
- title: "Betöltés",
197
- onClick: (t) => he(e)
198
- }, [...r[9] ||= [u("i", { class: "fa-solid fa-check" }, null, -1)]], 8, A),
199
- $(e).length ? x((h(), l("span", {
200
- key: 0,
201
- class: "c-indicator",
202
- onClick: C((t) => K(e.id), ["stop"])
203
- }, [d(y($(e).length), 1)], 8, j)), [[i, `${$(e).length} szűrési feltétel`]]) : c("", !0),
204
- u("button", {
205
- type: "button",
206
- class: "c-indicator filters-history__item-btn filters-history__item-remove",
207
- "aria-label": "Törlés",
208
- title: "Törlés",
209
- onClick: (t) => Z(e)
210
- }, [...r[10] ||= [u("i", { class: "fa-solid fa-xmark" }, null, -1)]], 8, M)
211
- ])
212
- ], 40, T), G(e.id) ? (h(), l("div", N, [$(e).length ? (h(), l("div", P, [(h(!0), l(a, null, _($(e), (e, t) => (h(), l("span", {
213
- key: t,
214
- class: m(["c-chip", e.displayClass])
215
- }, y(e.text), 3))), 128))])) : (h(), l("p", F, "Nincs megjeleníthető szűrő."))])) : c("", !0)], 2))), 128))])) : c("", !0),
216
- V.value.length > 3 ? (h(), l("div", I, [
217
- r[11] ||= u("hr", { class: "separator my-1" }, null, -1),
218
- V.value.length ? (h(), l("a", {
219
- key: 0,
220
- class: "filters-history__clear-all px-2",
221
- onClick: r[3] ||= (e) => W.value = !0
222
- }, "Összes törlése")) : c("", !0),
223
- W.value ? (h(), s(n, {
224
- key: 1,
225
- title: "Mentett szűrők törlése",
226
- message: "Biztosan törlöd az összes mentett szűrőt?",
227
- "confirm-label": "Törlés",
228
- "cancel-label": "Mégse",
229
- type: "error",
230
- onConfirm: r[4] ||= (e) => ge(),
231
- onCancel: r[5] ||= (e) => W.value = !1
232
- })) : c("", !0)
233
- ])) : c("", !0)
234
- ])) : c("", !0)])]);
235
- };
236
56
  }
237
- });
57
+ return r;
58
+ }
238
59
  //#endregion
239
- export { L as default };
60
+ export { r as buildFilterDisplay, t as displayFilterValue, n as parseDropdownValue };