admins-components 9.0.65 → 9.0.67

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 (267) hide show
  1. package/dist/admins-components.js +41 -41
  2. package/dist/admins-components100.js +75 -244
  3. package/dist/admins-components100.js.map +1 -1
  4. package/dist/admins-components102.js +2 -2
  5. package/dist/admins-components102.js.map +1 -1
  6. package/dist/admins-components103.js +256 -3
  7. package/dist/admins-components103.js.map +1 -1
  8. package/dist/admins-components105.js +6 -52
  9. package/dist/admins-components105.js.map +1 -1
  10. package/dist/admins-components106.js +3 -82
  11. package/dist/admins-components106.js.map +1 -1
  12. package/dist/admins-components107.js +3 -113
  13. package/dist/admins-components107.js.map +1 -1
  14. package/dist/admins-components108.js +49 -44
  15. package/dist/admins-components108.js.map +1 -1
  16. package/dist/admins-components109.js +80 -104
  17. package/dist/admins-components109.js.map +1 -1
  18. package/dist/admins-components110.js +109 -16
  19. package/dist/admins-components110.js.map +1 -1
  20. package/dist/admins-components111.js +46 -6
  21. package/dist/admins-components111.js.map +1 -1
  22. package/dist/admins-components112.js +100 -246
  23. package/dist/admins-components112.js.map +1 -1
  24. package/dist/admins-components113.js +19 -26
  25. package/dist/admins-components113.js.map +1 -1
  26. package/dist/admins-components114.js +6 -27
  27. package/dist/admins-components114.js.map +1 -1
  28. package/dist/admins-components115.js +239 -159
  29. package/dist/admins-components115.js.map +1 -1
  30. package/dist/admins-components116.js +26 -67
  31. package/dist/admins-components116.js.map +1 -1
  32. package/dist/admins-components117.js +25 -64
  33. package/dist/admins-components117.js.map +1 -1
  34. package/dist/admins-components118.js +169 -27
  35. package/dist/admins-components118.js.map +1 -1
  36. package/dist/admins-components119.js +65 -13
  37. package/dist/admins-components119.js.map +1 -1
  38. package/dist/admins-components120.js +64 -24
  39. package/dist/admins-components120.js.map +1 -1
  40. package/dist/admins-components121.js +29 -8
  41. package/dist/admins-components121.js.map +1 -1
  42. package/dist/admins-components122.js +16 -4
  43. package/dist/admins-components122.js.map +1 -1
  44. package/dist/admins-components123.js +27 -3
  45. package/dist/admins-components123.js.map +1 -1
  46. package/dist/admins-components124.js +8 -2
  47. package/dist/admins-components124.js.map +1 -1
  48. package/dist/admins-components125.js +4 -21
  49. package/dist/admins-components125.js.map +1 -1
  50. package/dist/admins-components126.js +3 -14
  51. package/dist/admins-components126.js.map +1 -1
  52. package/dist/admins-components127.js +3 -8
  53. package/dist/admins-components127.js.map +1 -1
  54. package/dist/admins-components128.js +19 -11
  55. package/dist/admins-components128.js.map +1 -1
  56. package/dist/admins-components129.js +14 -26
  57. package/dist/admins-components129.js.map +1 -1
  58. package/dist/admins-components130.js +7 -82
  59. package/dist/admins-components130.js.map +1 -1
  60. package/dist/admins-components131.js +9 -7
  61. package/dist/admins-components131.js.map +1 -1
  62. package/dist/admins-components132.js +25 -4
  63. package/dist/admins-components132.js.map +1 -1
  64. package/dist/admins-components133.js +81 -6
  65. package/dist/admins-components133.js.map +1 -1
  66. package/dist/admins-components134.js +10 -6
  67. package/dist/admins-components134.js.map +1 -1
  68. package/dist/admins-components135.js +2 -3
  69. package/dist/admins-components135.js.map +1 -1
  70. package/dist/admins-components136.js +8 -15
  71. package/dist/admins-components136.js.map +1 -1
  72. package/dist/admins-components137.js +6 -12
  73. package/dist/admins-components137.js.map +1 -1
  74. package/dist/admins-components138.js +6 -30
  75. package/dist/admins-components138.js.map +1 -1
  76. package/dist/admins-components139.js +15 -4
  77. package/dist/admins-components139.js.map +1 -1
  78. package/dist/admins-components140.js +13 -29
  79. package/dist/admins-components140.js.map +1 -1
  80. package/dist/admins-components141.js +30 -5
  81. package/dist/admins-components141.js.map +1 -1
  82. package/dist/admins-components142.js +4 -5
  83. package/dist/admins-components142.js.map +1 -1
  84. package/dist/admins-components143.js +28 -7
  85. package/dist/admins-components143.js.map +1 -1
  86. package/dist/admins-components144.js +4 -73
  87. package/dist/admins-components144.js.map +1 -1
  88. package/dist/admins-components145.js +4 -28
  89. package/dist/admins-components145.js.map +1 -1
  90. package/dist/admins-components146.js +8 -59
  91. package/dist/admins-components146.js.map +1 -1
  92. package/dist/admins-components147.js +72 -22
  93. package/dist/admins-components147.js.map +1 -1
  94. package/dist/admins-components148.js +26 -47
  95. package/dist/admins-components148.js.map +1 -1
  96. package/dist/admins-components149.js +58 -30
  97. package/dist/admins-components149.js.map +1 -1
  98. package/dist/admins-components150.js +24 -3
  99. package/dist/admins-components150.js.map +1 -1
  100. package/dist/admins-components151.js +44 -173
  101. package/dist/admins-components151.js.map +1 -1
  102. package/dist/admins-components152.js +28 -43
  103. package/dist/admins-components152.js.map +1 -1
  104. package/dist/admins-components153.js +3 -37
  105. package/dist/admins-components153.js.map +1 -1
  106. package/dist/admins-components154.js +176 -43
  107. package/dist/admins-components154.js.map +1 -1
  108. package/dist/admins-components155.js +41 -136
  109. package/dist/admins-components155.js.map +1 -1
  110. package/dist/admins-components156.js +36 -57
  111. package/dist/admins-components156.js.map +1 -1
  112. package/dist/admins-components157.js +44 -5
  113. package/dist/admins-components157.js.map +1 -1
  114. package/dist/admins-components158.js +141 -6
  115. package/dist/admins-components158.js.map +1 -1
  116. package/dist/admins-components159.js +57 -75
  117. package/dist/admins-components159.js.map +1 -1
  118. package/dist/admins-components160.js +6 -28
  119. package/dist/admins-components160.js.map +1 -1
  120. package/dist/admins-components161.js +5 -1930
  121. package/dist/admins-components161.js.map +1 -1
  122. package/dist/admins-components162.js +75 -24810
  123. package/dist/admins-components162.js.map +1 -1
  124. package/dist/admins-components163.js +28 -8
  125. package/dist/admins-components163.js.map +1 -1
  126. package/dist/admins-components164.js +1929 -5
  127. package/dist/admins-components164.js.map +1 -0
  128. package/dist/admins-components165.js +24809 -140
  129. package/dist/admins-components165.js.map +1 -1
  130. package/dist/admins-components166.js +3 -3
  131. package/dist/admins-components166.js.map +1 -1
  132. package/dist/admins-components167.js +7 -9
  133. package/dist/admins-components168.js +143 -0
  134. package/dist/admins-components168.js.map +1 -0
  135. package/dist/admins-components169.js +8 -167
  136. package/dist/admins-components169.js.map +1 -1
  137. package/dist/admins-components170.js +8 -52
  138. package/dist/admins-components170.js.map +1 -1
  139. package/dist/admins-components172.js +161 -43
  140. package/dist/admins-components172.js.map +1 -1
  141. package/dist/admins-components173.js +53 -6
  142. package/dist/admins-components173.js.map +1 -1
  143. package/dist/admins-components174.js +8 -79
  144. package/dist/admins-components174.js.map +1 -1
  145. package/dist/admins-components175.js +35 -43
  146. package/dist/admins-components175.js.map +1 -1
  147. package/dist/admins-components176.js +6 -63
  148. package/dist/admins-components176.js.map +1 -1
  149. package/dist/admins-components177.js +79 -8
  150. package/dist/admins-components177.js.map +1 -1
  151. package/dist/admins-components178.js +43 -37
  152. package/dist/admins-components178.js.map +1 -1
  153. package/dist/admins-components179.js +62 -8
  154. package/dist/admins-components179.js.map +1 -1
  155. package/dist/admins-components180.js +10 -0
  156. package/dist/admins-components180.js.map +1 -0
  157. package/dist/admins-components181.js +44 -50
  158. package/dist/admins-components181.js.map +1 -1
  159. package/dist/admins-components182.js +10 -0
  160. package/dist/admins-components182.js.map +1 -0
  161. package/dist/admins-components184.js +59 -0
  162. package/dist/admins-components184.js.map +1 -0
  163. package/dist/admins-components21.js +2 -2
  164. package/dist/admins-components21.js.map +1 -1
  165. package/dist/admins-components22.js.map +1 -1
  166. package/dist/admins-components29.js +6 -3
  167. package/dist/admins-components29.js.map +1 -1
  168. package/dist/admins-components30.js.map +1 -1
  169. package/dist/admins-components5.js +4 -2
  170. package/dist/admins-components5.js.map +1 -1
  171. package/dist/admins-components58.js.map +1 -1
  172. package/dist/admins-components6.js.map +1 -1
  173. package/dist/admins-components60.js +28 -73
  174. package/dist/admins-components60.js.map +1 -1
  175. package/dist/admins-components62.js +4 -2
  176. package/dist/admins-components62.js.map +1 -1
  177. package/dist/admins-components63.js +95 -83
  178. package/dist/admins-components63.js.map +1 -1
  179. package/dist/admins-components64.js +70 -4
  180. package/dist/admins-components64.js.map +1 -1
  181. package/dist/admins-components65.js +4 -157
  182. package/dist/admins-components65.js.map +1 -1
  183. package/dist/admins-components66.js +90 -0
  184. package/dist/admins-components66.js.map +1 -0
  185. package/dist/admins-components67.js +2 -5
  186. package/dist/admins-components67.js.map +1 -1
  187. package/dist/admins-components68.js +130 -136
  188. package/dist/admins-components68.js.map +1 -1
  189. package/dist/admins-components70.js +2 -2
  190. package/dist/admins-components70.js.map +1 -1
  191. package/dist/admins-components71.js +163 -7
  192. package/dist/admins-components71.js.map +1 -1
  193. package/dist/admins-components73.js +8 -0
  194. package/dist/admins-components73.js.map +1 -0
  195. package/dist/admins-components74.js +7 -6
  196. package/dist/admins-components74.js.map +1 -1
  197. package/dist/admins-components75.js +289 -8
  198. package/dist/admins-components75.js.map +1 -1
  199. package/dist/admins-components77.js +6 -145
  200. package/dist/admins-components77.js.map +1 -1
  201. package/dist/admins-components78.js +10 -0
  202. package/dist/admins-components78.js.map +1 -0
  203. package/dist/admins-components79.js +43 -6
  204. package/dist/admins-components79.js.map +1 -1
  205. package/dist/admins-components80.js +130 -121
  206. package/dist/admins-components80.js.map +1 -1
  207. package/dist/admins-components82.js +2 -2
  208. package/dist/admins-components82.js.map +1 -1
  209. package/dist/admins-components83.js +133 -56
  210. package/dist/admins-components83.js.map +1 -1
  211. package/dist/admins-components85.js +6 -238
  212. package/dist/admins-components85.js.map +1 -1
  213. package/dist/admins-components86.js +60 -0
  214. package/dist/admins-components86.js.map +1 -0
  215. package/dist/admins-components87.js +67 -6
  216. package/dist/admins-components87.js.map +1 -1
  217. package/dist/admins-components88.js +216 -208
  218. package/dist/admins-components88.js.map +1 -1
  219. package/dist/admins-components90.js +2 -2
  220. package/dist/admins-components90.js.map +1 -1
  221. package/dist/admins-components91.js +225 -32
  222. package/dist/admins-components91.js.map +1 -1
  223. package/dist/admins-components93.js +2 -2
  224. package/dist/admins-components93.js.map +1 -1
  225. package/dist/admins-components94.js +65 -194
  226. package/dist/admins-components94.js.map +1 -1
  227. package/dist/admins-components96.js +2 -2
  228. package/dist/admins-components96.js.map +1 -1
  229. package/dist/admins-components97.js +188 -71
  230. package/dist/admins-components97.js.map +1 -1
  231. package/dist/admins-components99.js +2 -2
  232. package/dist/admins-components99.js.map +1 -1
  233. package/dist/main.css +1 -1
  234. package/dist/main.css.map +1 -1
  235. package/dist/src/components/Button.vue.d.ts +2 -1
  236. package/dist/src/components/DropdownMenu.vue.d.ts +2 -0
  237. package/dist/src/components/data-table/DataList.vue.d.ts +3 -0
  238. package/dist/src/components/data-table/DataSearch.vue.d.ts +0 -4
  239. package/dist/src/components/data-table/DataSort.vue.d.ts +0 -5
  240. package/dist/src/components/data-table/FilterTags.vue.d.ts +1 -0
  241. package/dist/src/components/data-table/TagList.vue.d.ts +18 -0
  242. package/dist/src/index.d.ts +2 -2
  243. package/dist/src/styles/components/data-table/data-cards.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  244. package/dist/src/styles/components/data-table/data-list.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  245. package/dist/src/styles/components/data-table/data-paginator.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  246. package/dist/src/styles/components/data-table/filter-tags.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  247. package/dist/src/styles/components/data-table/tag-list.scss_vue_type_style_index_0_src_true_lang.css +1 -0
  248. package/dist/src/styles/components/datepickers.scss_vue_type_style_index_1_src_true_lang.css +1 -1
  249. package/dist/src/styles/components/header.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  250. package/dist/src/styles/components/sidebar.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  251. package/dist/src/types/data-list.d.ts +2 -0
  252. package/dist/src/utils/dataListConverters.d.ts +16 -1
  253. package/dist/src/utils/url.d.ts +1 -0
  254. package/package.json +1 -1
  255. package/dist/admins-components104.js +0 -4
  256. package/dist/admins-components104.js.map +0 -1
  257. package/dist/admins-components167.js.map +0 -1
  258. package/dist/admins-components171.js +0 -10
  259. package/dist/admins-components171.js.map +0 -1
  260. package/dist/admins-components61.js +0 -71
  261. package/dist/admins-components61.js.map +0 -1
  262. package/dist/admins-components72.js +0 -289
  263. package/dist/admins-components72.js.map +0 -1
  264. package/dist/admins-components76.js +0 -37
  265. package/dist/admins-components76.js.map +0 -1
  266. package/dist/admins-components84.js +0 -68
  267. package/dist/admins-components84.js.map +0 -1
@@ -1,4 +1,257 @@
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 e from "./admins-components6.js";
2
+ import t from "./admins-components70.js";
3
+ import n from "./admins-components73.js";
4
+ import r from "./admins-components77.js";
5
+ import { getDefaultPaginator as i } from "./admins-components80.js";
6
+ import a from "./admins-components82.js";
7
+ import { getDefaultSort as o } from "./admins-components83.js";
8
+ import s from "./admins-components85.js";
9
+ import { getDefaultFilters as c } from "./admins-components87.js";
10
+ import ee from "./admins-components93.js";
11
+ import l from "./admins-components96.js";
12
+ import u from "./admins-components99.js";
13
+ import { getDefaultSearch as d } from "./admins-components100.js";
14
+ import te from "./admins-components102.js";
15
+ import { computed as f, createBlock as p, createCommentVNode as m, createElementBlock as h, createElementVNode as g, createSlots as _, createVNode as v, defineComponent as y, guardReactiveProps as b, mergeDefaults as x, mergeProps as S, normalizeClass as ne, normalizeProps as C, onBeforeUnmount as w, onMounted as re, openBlock as T, ref as E, renderList as D, renderSlot as O, withCtx as k } from "vue";
16
+ //#region src/components/data-table/DataList.vue?vue&type=script&setup=true&lang.ts
17
+ var A = { class: "c-data-list__toolbar" }, j = {
18
+ key: 2,
19
+ class: "flex-center gap-1 flex-center-wrap-on-mobile"
20
+ }, M = { class: "c-data-list__toolbar__right" }, N = {
21
+ layoutBreakpoint: 768,
22
+ orderable: !0,
23
+ loading: !1,
24
+ useSearch: !0,
25
+ useFilters: !0,
26
+ handleUrl: !1,
27
+ fillHeight: !1
28
+ };
29
+ function P(e, t) {
30
+ let n = i(t), r = o(), a = d(), s = c(e, t, !0);
31
+ return {
32
+ ...n,
33
+ ...r,
34
+ ...a,
35
+ ...s
36
+ };
37
+ }
38
+ var F = /* @__PURE__ */ y({
39
+ __name: "DataList",
40
+ props: /* @__PURE__ */ x({
41
+ config: {},
42
+ items: {},
43
+ settings: {},
44
+ id: {},
45
+ layoutBreakpoint: {},
46
+ orderable: { type: Boolean },
47
+ pagination: {},
48
+ loading: { type: Boolean },
49
+ handleUrl: { type: Boolean },
50
+ useSearch: { type: Boolean },
51
+ useFilters: { type: Boolean },
52
+ searchConfig: {},
53
+ filterConfig: {},
54
+ fillHeight: { type: Boolean }
55
+ }, {
56
+ ...N,
57
+ searchConfig: void 0,
58
+ filterConfig: void 0
59
+ }),
60
+ emits: [
61
+ "filter-change",
62
+ "selection-change",
63
+ "settings-change",
64
+ "pagination-change",
65
+ "sort-change",
66
+ "search-change"
67
+ ],
68
+ setup(i, { expose: d, emit: y }) {
69
+ let x = E(null), N = i;
70
+ function P(e) {
71
+ let t = N[e];
72
+ return t && Object.hasOwn(t, "handleUrl") ? t.handleUrl : N.handleUrl;
73
+ }
74
+ let F = f(() => ({
75
+ ...N.searchConfig,
76
+ handleUrl: P("searchConfig")
77
+ })), I = f(() => ({
78
+ ...N.filterConfig,
79
+ handleUrl: P("filterConfig")
80
+ })), L = y, R = E(!1), z = E(!1), B = E(null), V = E(!1), H = E(null), U = E(!1), W = E(N.filterConfig?.items ? c(N.filterConfig.items, N.id, !1) : {}), G = null;
81
+ re(() => {
82
+ G = new ResizeObserver((e) => {
83
+ V.value = (e[0]?.contentRect.width ?? 0) < N.layoutBreakpoint;
84
+ }), H.value && G.observe(H.value);
85
+ }), w(() => G?.disconnect());
86
+ let K = f(() => {
87
+ let e = B.value?.layout;
88
+ return e === "table" || e === "cards" ? e : V.value ? "cards" : "table";
89
+ }), q = f(() => {
90
+ if (!B.value) return N.config;
91
+ let e = B.value.columnOrder, t = N.config.columns.map((e) => ({
92
+ ...e,
93
+ visible: B.value.columns[e.property] ?? e.visible !== !1
94
+ }));
95
+ return e?.length && t.sort((t, n) => {
96
+ let r = e.indexOf(t.property), i = e.indexOf(n.property);
97
+ return (r === -1 ? 999 : r) - (i === -1 ? 999 : i);
98
+ }), {
99
+ ...N.config,
100
+ columns: t
101
+ };
102
+ });
103
+ function J(e) {
104
+ B.value = e, L("settings-change", e);
105
+ }
106
+ d({
107
+ openOptions: () => R.value = !0,
108
+ closeOptions: () => R.value = !1,
109
+ openFilters: () => U.value = !0,
110
+ closeFilters: () => U.value = !1
111
+ });
112
+ async function Y(e) {
113
+ U.value = !0, setTimeout(() => {
114
+ x.value?.focusFilter(e);
115
+ }, 300);
116
+ }
117
+ function ie(e) {
118
+ W.value = e.values, L("filter-change", e.transformed);
119
+ }
120
+ let X = f(() => Object.values(W.value).filter((e) => e != null && e !== "").length), ae = f(() => !!N.pagination && (N.items.length > 0 || !N.loading)), oe = (e) => {
121
+ L("search-change", e);
122
+ }, Z = f(() => N.config.columns.filter((e) => e.sort).map((e) => ({
123
+ value: e.property,
124
+ label: e.label
125
+ }))), Q = E(N.handleUrl ? o() : null), $ = (e) => {
126
+ Q.value = e, L("sort-change", e);
127
+ };
128
+ return (o, c) => (T(), h("div", {
129
+ ref_key: "root",
130
+ ref: H,
131
+ class: ne(["ac-component c-data-list", { "c-data-list--fill-height": i.fillHeight }])
132
+ }, [
133
+ g("div", A, [
134
+ i.useSearch ? (T(), p(te, S({ key: 0 }, F.value, { onSearchChange: oe }), null, 16)) : m("", !0),
135
+ i.useFilters && i.filterConfig?.items && i.filterConfig.items.length > 0 ? (T(), p(e, {
136
+ key: 1,
137
+ label: "Szűrők",
138
+ icon: "fa-solid fa-filter",
139
+ onClick: c[0] ||= (e) => U.value = !0,
140
+ style: { "flex-shrink": "0" },
141
+ type: X.value > 0 ? "primary" : "normal",
142
+ indicator: X.value > 0 ? X.value : void 0
143
+ }, null, 8, ["type", "indicator"])) : m("", !0),
144
+ i.useFilters && i.filterConfig?.items && i.filterConfig.items.length > 0 ? (T(), h("div", j, [v(l, {
145
+ filters: W.value,
146
+ items: i.filterConfig.items,
147
+ compact: "",
148
+ onRemove: c[1] ||= (e) => x.value?.clearFilter(e),
149
+ onOpenFilter: Y
150
+ }, null, 8, ["filters", "items"])])) : m("", !0),
151
+ g("div", M, [
152
+ Z.value.length > 0 ? (T(), p(s, {
153
+ key: 0,
154
+ modelValue: Q.value,
155
+ "onUpdate:modelValue": c[2] ||= (e) => Q.value = e,
156
+ options: Z.value,
157
+ "handle-url": i.handleUrl,
158
+ onSortChange: $
159
+ }, null, 8, [
160
+ "modelValue",
161
+ "options",
162
+ "handle-url"
163
+ ])) : m("", !0),
164
+ v(e, {
165
+ icon: "fa-solid fa-gear",
166
+ class: "lh-normal settings-btn",
167
+ ariaLabel: "Beállítások",
168
+ onClick: c[3] ||= (e) => R.value = !0
169
+ }),
170
+ v(e, {
171
+ icon: "fa-solid fa-question",
172
+ class: "lh-normal",
173
+ onClick: c[4] ||= (e) => z.value = !0,
174
+ ariaLabel: "Súgó"
175
+ })
176
+ ])
177
+ ]),
178
+ i.useFilters && i.filterConfig?.items && i.filterConfig.items.length > 0 ? (T(), p(ee, S({
179
+ key: 0,
180
+ ref_key: "dataFiltersRef",
181
+ ref: x
182
+ }, I.value, {
183
+ "storage-key": i.id,
184
+ open: U.value,
185
+ onClose: c[5] ||= (e) => U.value = !1,
186
+ onChange: ie
187
+ }), null, 16, ["storage-key", "open"])) : m("", !0),
188
+ v(u, {
189
+ open: z.value,
190
+ onClose: c[6] ||= (e) => z.value = !1
191
+ }, null, 8, ["open"]),
192
+ K.value === "table" ? (T(), p(t, {
193
+ key: 1,
194
+ config: q.value,
195
+ loading: i.loading,
196
+ items: i.items,
197
+ settings: B.value ?? void 0,
198
+ "initial-sort": Q.value,
199
+ onFilterChange: c[7] ||= (e) => L("filter-change", e),
200
+ onSelectionChange: c[8] ||= (e) => L("selection-change", e),
201
+ onSortChange: $
202
+ }, _({ _: 2 }, [D(q.value.columns, (e) => ({
203
+ name: `cell:${e.property}`,
204
+ fn: k((t) => [O(o.$slots, `cell:${e.property}`, C(b(t)))])
205
+ }))]), 1032, [
206
+ "config",
207
+ "loading",
208
+ "items",
209
+ "settings",
210
+ "initial-sort"
211
+ ])) : (T(), p(n, {
212
+ key: 2,
213
+ config: q.value,
214
+ loading: i.loading,
215
+ items: i.items,
216
+ settings: B.value ?? void 0,
217
+ onSelectionChange: c[9] ||= (e) => L("selection-change", e)
218
+ }, _({ _: 2 }, [D(q.value.columns, (e) => ({
219
+ name: `cell:${e.property}`,
220
+ fn: k((t) => [O(o.$slots, `cell:${e.property}`, C(b(t)))])
221
+ }))]), 1032, [
222
+ "config",
223
+ "loading",
224
+ "items",
225
+ "settings"
226
+ ])),
227
+ i.pagination && ae.value ? (T(), p(a, {
228
+ key: 3,
229
+ settings: i.pagination,
230
+ "storage-key": i.id,
231
+ "handle-url": i.handleUrl,
232
+ "onUpdate:pagination": c[10] ||= (e) => L("pagination-change", e)
233
+ }, null, 8, [
234
+ "settings",
235
+ "storage-key",
236
+ "handle-url"
237
+ ])) : m("", !0),
238
+ v(r, {
239
+ open: R.value,
240
+ columns: i.config.columns,
241
+ settings: i.settings ?? {},
242
+ "storage-key": i.id,
243
+ orderable: i.orderable,
244
+ onClose: c[11] ||= (e) => R.value = !1,
245
+ onChange: J
246
+ }, null, 8, [
247
+ "open",
248
+ "columns",
249
+ "settings",
250
+ "storage-key",
251
+ "orderable"
252
+ ])
253
+ ], 2));
254
+ }
255
+ });
3
256
  //#endregion
4
- export { e as isIpInUrl };
257
+ export { N as dataListDefaults, F as default, P as getDefaultFetchData };
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components103.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-components103.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 fillHeight?: boolean\n}\n\nexport const dataListDefaults = {\n layoutBreakpoint: 768,\n orderable: true,\n loading: false,\n useSearch: true,\n useFilters: true,\n handleUrl: false,\n fillHeight: false,\n}\n\nexport function getDefaultFetchData(filters: FilterItem[], storageKey: string) {\n const defaultPaginator = getDefaultPaginator(storageKey)\n const defaultSort = getDefaultSort()\n const defaultSearch = getDefaultSearch()\n const defaultFilters = getDefaultFilters(filters, storageKey, true)\n\n return {\n ...defaultPaginator,\n ...defaultSort,\n ...defaultSearch,\n ...defaultFilters,\n }\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, { getDefaultPaginator } from '@/components/data-table/DataPaginator.vue'\nimport Button from '@/components/Button.vue'\nimport DataSort, { getDefaultSort, type DataSortOption } from '@/components/data-table/DataSort.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 type FilterItem,\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, { getDefaultSearch, 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' } | null]\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\nconst sortableColumns = computed<DataSortOption[]>(() =>\n props.config.columns.filter((c) => c.sort).map((c) => ({ value: c.property, label: c.label })),\n)\n\nconst currentSort = ref<{ key: string; direction: 'asc' | 'desc' } | null>(\n props.handleUrl ? getDefaultSort() : null,\n)\n\nconst onSortChange = (sort: { key: string; direction: 'asc' | 'desc' } | null) => {\n currentSort.value = sort\n // DataSort already writes the URL when handleUrl: true; we only emit.\n emit('sort-change', sort)\n}\n</script>\n\n<template>\n <div\n ref=\"root\"\n class=\"ac-component c-data-list\"\n :class=\"{ 'c-data-list--fill-height': fillHeight }\"\n >\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 ? 'primary' : 'normal'\"\n :indicator=\"activeFiltersCount > 0 ? activeFiltersCount : undefined\"\n />\n <div\n class=\"flex-center gap-1 flex-center-wrap-on-mobile\"\n v-if=\"useFilters && filterConfig?.items && filterConfig.items.length > 0\"\n >\n <FilterTags\n :filters=\"activeFilters\"\n :items=\"filterConfig.items\"\n compact\n @remove=\"(key: string) => dataFiltersRef?.clearFilter(key)\"\n @openFilter=\"openFilter\"\n />\n </div>\n <div class=\"c-data-list__toolbar__right\">\n <DataSort\n v-if=\"sortableColumns.length > 0\"\n v-model=\"currentSort\"\n :options=\"sortableColumns\"\n :handle-url=\"handleUrl\"\n @sort-change=\"onSortChange\"\n />\n\n <Button\n icon=\"fa-solid fa-gear\"\n class=\"lh-normal settings-btn\"\n ariaLabel=\"Beállítások\"\n @click=\"showOptions = true\"\n />\n <Button\n icon=\"fa-solid fa-question\"\n class=\"lh-normal\"\n @click=\"showGuide = true\"\n ariaLabel=\"Súgó\"\n />\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 :initial-sort=\"currentSort\"\n @filter-change=\"emit('filter-change', $event)\"\n @selection-change=\"emit('selection-change', $event)\"\n @sort-change=\"onSortChange\"\n >\n <template\n v-for=\"col in internalConfig.columns\"\n :key=\"col.property\"\n #[`cell:${col.property}`]=\"slotProps\"\n >\n <slot :name=\"`cell:${col.property}`\" v-bind=\"slotProps\" />\n </template>\n </DataTable>\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 <template\n v-for=\"col in internalConfig.columns\"\n :key=\"col.property\"\n #[`cell:${col.property}`]=\"slotProps\"\n >\n <slot :name=\"`cell:${col.property}`\" v-bind=\"slotProps\" />\n </template>\n </DataCards>\n\n <DataPaginator\n v-if=\"pagination && showPaginator\"\n :settings=\"pagination\"\n :storage-key=\"id\"\n :handle-url=\"handleUrl\"\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</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-list.scss\"></style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;iDAsBa,IAAmB;CAC9B,kBAAkB;CAClB,WAAW;CACX,SAAS;CACT,WAAW;CACX,YAAY;CACZ,WAAW;CACX,YAAY;AACd;AAEA,SAAgB,EAAoB,GAAuB,GAAoB;CAC7E,IAAM,IAAmB,EAAoB,CAAU,GACjD,IAAc,EAAe,GAC7B,IAAgB,EAAiB,GACjC,IAAiB,EAAkB,GAAS,GAAY,EAAI;CAElE,OAAO;EACL,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;CACL;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BA,IAAM,IAAiB,EAA6C,IAAI,GAElE,IAAQ;EAMd,SAAS,EAAkB,GAA4D;GACrF,IAAM,IAAa,EAAM;GAIzB,OAHI,KAAc,OAAO,OAAO,GAAsB,WAAW,IACvD,EAAuC,YAE1C,EAAM;EACf;EAEA,IAAM,IAAqB,SAAiC;GAC1D,GAAG,EAAM;GACT,WAAW,EAAkB,cAAc;EAC7C,EAAE,GAEI,IAAqB,SAAkC;GAC3D,GAAI,EAAM;GACV,WAAW,EAAkB,cAAc;EAC7C,EAAE,GAEI,IAAO,GASP,IAAc,EAAI,EAAK,GACvB,IAAY,EAAI,EAAK,GACrB,IAAmB,EAA6B,IAAI,GACpD,IAAW,EAAI,EAAK,GACpB,IAAO,EAAwB,IAAI,GACnC,IAAc,EAAI,EAAK,GAEvB,IAAgB,EACpB,EAAM,cAAc,QAAQ,EAAkB,EAAM,aAAa,OAAO,EAAM,IAAI,EAAK,IAAI,CAAC,CAC9F,GACI,IAAwC;EAS5C,AAPA,SAAgB;GAId,AAHA,IAAiB,IAAI,gBAAgB,MAAY;IAC/C,EAAS,SAAS,EAAQ,IAAI,YAAY,SAAS,KAAK,EAAM;GAChE,CAAC,GACG,EAAK,SAAO,EAAe,QAAQ,EAAK,KAAK;EACnD,CAAC,GAED,QAAsB,GAAgB,WAAW,CAAC;EAElD,IAAM,IAAkB,QAAkC;GACxD,IAAM,IAAS,EAAiB,OAAO;GAEvC,OADI,MAAW,WAAW,MAAW,UAAgB,IAC9C,EAAS,QAAQ,UAAU;EACpC,CAAC,GAEK,IAAiB,QAA+B;GACpD,IAAI,CAAC,EAAiB,OAAO,OAAO,EAAM;GAC1C,IAAM,IAAQ,EAAiB,MAAM,aAC/B,IAAS,EAAM,OAAO,QAAQ,KAAK,OAAO;IAC9C,GAAG;IACH,SAAS,EAAiB,MAAO,QAAQ,EAAE,aAAa,EAAE,YAAY;GACxE,EAAE;GAQF,OAPI,GAAO,UACT,EAAO,MAAM,GAAG,MAAM;IACpB,IAAM,IAAK,EAAM,QAAQ,EAAE,QAAQ,GAC7B,IAAK,EAAM,QAAQ,EAAE,QAAQ;IACnC,QAAQ,MAAO,KAAK,MAAM,MAAO,MAAO,KAAK,MAAM;GACrD,CAAC,GAEI;IAAE,GAAG,EAAM;IAAQ,SAAS;GAAO;EAC5C,CAAC;EAED,SAAS,EAAiB,GAAqB;GAE7C,AADA,EAAiB,QAAQ,GACzB,EAAK,mBAAmB,CAAC;EAC3B;EAEA,EAAa;GACX,mBAAoB,EAAY,QAAQ;GACxC,oBAAqB,EAAY,QAAQ;GACzC,mBAAoB,EAAY,QAAQ;GACxC,oBAAqB,EAAY,QAAQ;EAC3C,CAAC;EAED,eAAe,EAAW,GAAa;GAErC,AADA,EAAY,QAAQ,IACpB,iBAAiB;IACf,EAAe,OAAO,YAAY,CAAG;GACvC,GAAG,GAAG;EACR;EAEA,SAAS,GAAe,GAA0B;GAEhD,AADA,EAAc,QAAQ,EAAS,QAC/B,EAAK,iBAAiB,EAAS,WAAW;EAC5C;EAEA,IAAM,IAAqB,QACnB,OAAO,OAAO,EAAc,KAAK,EAAE,QAAQ,MAAM,KAAK,QAAQ,MAAM,EAAE,EAAE,MAChF,GAEM,KAAgB,QACd,CAAC,CAAC,EAAM,eAAe,EAAM,MAAM,SAAS,KAAK,CAAC,EAAM,QAChE,GAEM,MAAgB,MAA4C;GAChE,EAAK,iBAAiB,CAAK;EAC7B,GAEM,IAAkB,QACtB,EAAM,OAAO,QAAQ,QAAQ,MAAM,EAAE,IAAI,EAAE,KAAK,OAAO;GAAE,OAAO,EAAE;GAAU,OAAO,EAAE;EAAM,EAAE,CAC/F,GAEM,IAAc,EAClB,EAAM,YAAY,EAAe,IAAI,IACvC,GAEM,KAAgB,MAA4D;GAGhF,AAFA,EAAY,QAAQ,GAEpB,EAAK,eAAe,CAAI;EAC1B;yBAIE,EAmHM,OAAA;YAlHA;GAAJ,KAAI;GACJ,OAAK,GAAA,CAAC,4BAA0B,EAAA,4BACM,EAAA,WAAU,CAAA,CAAA;;GAEhD,EA6CM,OA7CN,GA6CM;IA5Cc,EAAA,aAAA,EAAA,GAAlB,EAAyF,IAAzF,EAAyF,EAAA,KAAA,EAAA,GAApD,EAAA,OAAkB,EAAG,gBAAe,GAAY,CAAA,GAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA;IAE7E,EAAA,cAAc,EAAA,cAAc,SAAS,EAAA,aAAa,MAAM,SAAM,KAAA,EAAA,GADtE,EAQE,GAAA;;KANA,OAAM;KACN,MAAK;KACJ,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,QAAW;KACnB,OAAA,EAAA,eAAA,IAAA;KACC,MAAM,EAAA,QAAkB,IAAA,YAAA;KACxB,WAAW,EAAA,QAAkB,IAAO,EAAA,QAAqB,KAAA;;IAIpD,EAAA,cAAc,EAAA,cAAc,SAAS,EAAA,aAAa,MAAM,SAAM,KAAA,EAAA,GAFtE,EAWM,OAXN,GAWM,CAPJ,EAME,GAAA;KALC,SAAS,EAAA;KACT,OAAO,EAAA,aAAa;KACrB,SAAA;KACC,UAAM,AAAA,EAAA,QAAG,MAAgB,EAAA,OAAgB,YAAY,CAAG;KACxD,cAAY;;IAGjB,EAqBM,OArBN,GAqBM;KAnBI,EAAA,MAAgB,SAAM,KAAA,EAAA,GAD9B,EAME,GAAA;;kBAJS,EAAA;+CAAW,QAAA;MACnB,SAAS,EAAA;MACT,cAAY,EAAA;MACC;;;;;;KAGhB,EAKE,GAAA;MAJA,MAAK;MACL,OAAM;MACN,WAAU;MACT,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,QAAW;;KAErB,EAKE,GAAA;MAJA,MAAK;MACL,OAAM;MACL,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,QAAS;MACjB,WAAU;;;;GAMR,EAAA,cAAc,EAAA,cAAc,SAAS,EAAA,aAAa,MAAM,SAAM,KAAA,EAAA,GAFtE,EAQE,IARF,EAQE;;aAPI;IAAJ,KAAI;MAEI,EAAA,OAAkB;IACzB,eAAa,EAAA;IACb,MAAM,EAAA;IACN,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,QAAW;IAClB,UAAQ;;GAEX,EAA8D,GAAA;IAA9C,MAAM,EAAA;IAAY,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,QAAS;;GAE1C,EAAA,UAAe,WAAA,EAAA,GADvB,EAkBY,GAAA;;IAhBT,QAAQ,EAAA;IACR,SAAS,EAAA;IACT,OAAO,EAAA;IACP,UAAU,EAAA,SAAoB,KAAA;IAC9B,gBAAc,EAAA;IACd,gBAAa,AAAA,EAAA,QAAA,MAAE,EAAI,iBAAkB,CAAM;IAC3C,mBAAgB,AAAA,EAAA,QAAA,MAAE,EAAI,oBAAqB,CAAM;IACpC;qBAGE,EAAA,MAAe,UAAtB;kBAEE,EAAI;WAAc,MAAS,CAEpC,EAA0D,EAAA,QAAA,QAArC,EAAI,YAAQ,EAAA,EAAY,CAAS,CAAA,CAAA,CAAA,CAAA;;;;;;;eAI1D,EAeY,GAAA;;IAbT,QAAQ,EAAA;IACR,SAAS,EAAA;IACT,OAAO,EAAA;IACP,UAAU,EAAA,SAAoB,KAAA;IAC9B,mBAAgB,AAAA,EAAA,QAAA,MAAE,EAAI,oBAAqB,CAAM;qBAGlC,EAAA,MAAe,UAAtB;kBAEE,EAAI;WAAc,MAAS,CAEpC,EAA0D,EAAA,QAAA,QAArC,EAAI,YAAQ,EAAA,EAAY,CAAS,CAAA,CAAA,CAAA,CAAA;;;;;;;GAKlD,EAAA,cAAc,GAAA,SAAA,EAAA,GADtB,EAME,GAAA;;IAJC,UAAU,EAAA;IACV,eAAa,EAAA;IACb,cAAY,EAAA;IACZ,uBAAiB,AAAA,EAAA,SAAA,MAAE,EAAI,qBAAsB,CAAM;;;;;;GAGtD,EAQE,GAAA;IAPC,MAAM,EAAA;IACN,SAAS,EAAA,OAAO;IAChB,UAAU,EAAA,YAAQ,CAAA;IAClB,eAAa,EAAA;IACb,WAAW,EAAA;IACX,SAAK,AAAA,EAAA,SAAA,MAAE,EAAA,QAAW;IAClB,UAAQ"}
@@ -1,53 +1,7 @@
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
+ import './src/styles/components/data-table/data-list.scss_vue_type_style_index_0_src_true_lang.css';
2
+ import e from "./admins-components103.js";
3
+ /* empty css */
4
+ //#region src/components/data-table/DataList.vue
5
+ var t = e;
52
6
  //#endregion
53
- export { r as vTooltip };
7
+ export { t as default };
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components105.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":"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"}
1
+ {"version":3,"file":"admins-components105.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 fillHeight?: boolean\n}\n\nexport const dataListDefaults = {\n layoutBreakpoint: 768,\n orderable: true,\n loading: false,\n useSearch: true,\n useFilters: true,\n handleUrl: false,\n fillHeight: false,\n}\n\nexport function getDefaultFetchData(filters: FilterItem[], storageKey: string) {\n const defaultPaginator = getDefaultPaginator(storageKey)\n const defaultSort = getDefaultSort()\n const defaultSearch = getDefaultSearch()\n const defaultFilters = getDefaultFilters(filters, storageKey, true)\n\n return {\n ...defaultPaginator,\n ...defaultSort,\n ...defaultSearch,\n ...defaultFilters,\n }\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, { getDefaultPaginator } from '@/components/data-table/DataPaginator.vue'\nimport Button from '@/components/Button.vue'\nimport DataSort, { getDefaultSort, type DataSortOption } from '@/components/data-table/DataSort.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 type FilterItem,\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, { getDefaultSearch, 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' } | null]\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\nconst sortableColumns = computed<DataSortOption[]>(() =>\n props.config.columns.filter((c) => c.sort).map((c) => ({ value: c.property, label: c.label })),\n)\n\nconst currentSort = ref<{ key: string; direction: 'asc' | 'desc' } | null>(\n props.handleUrl ? getDefaultSort() : null,\n)\n\nconst onSortChange = (sort: { key: string; direction: 'asc' | 'desc' } | null) => {\n currentSort.value = sort\n // DataSort already writes the URL when handleUrl: true; we only emit.\n emit('sort-change', sort)\n}\n</script>\n\n<template>\n <div\n ref=\"root\"\n class=\"ac-component c-data-list\"\n :class=\"{ 'c-data-list--fill-height': fillHeight }\"\n >\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 ? 'primary' : 'normal'\"\n :indicator=\"activeFiltersCount > 0 ? activeFiltersCount : undefined\"\n />\n <div\n class=\"flex-center gap-1 flex-center-wrap-on-mobile\"\n v-if=\"useFilters && filterConfig?.items && filterConfig.items.length > 0\"\n >\n <FilterTags\n :filters=\"activeFilters\"\n :items=\"filterConfig.items\"\n compact\n @remove=\"(key: string) => dataFiltersRef?.clearFilter(key)\"\n @openFilter=\"openFilter\"\n />\n </div>\n <div class=\"c-data-list__toolbar__right\">\n <DataSort\n v-if=\"sortableColumns.length > 0\"\n v-model=\"currentSort\"\n :options=\"sortableColumns\"\n :handle-url=\"handleUrl\"\n @sort-change=\"onSortChange\"\n />\n\n <Button\n icon=\"fa-solid fa-gear\"\n class=\"lh-normal settings-btn\"\n ariaLabel=\"Beállítások\"\n @click=\"showOptions = true\"\n />\n <Button\n icon=\"fa-solid fa-question\"\n class=\"lh-normal\"\n @click=\"showGuide = true\"\n ariaLabel=\"Súgó\"\n />\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 :initial-sort=\"currentSort\"\n @filter-change=\"emit('filter-change', $event)\"\n @selection-change=\"emit('selection-change', $event)\"\n @sort-change=\"onSortChange\"\n >\n <template\n v-for=\"col in internalConfig.columns\"\n :key=\"col.property\"\n #[`cell:${col.property}`]=\"slotProps\"\n >\n <slot :name=\"`cell:${col.property}`\" v-bind=\"slotProps\" />\n </template>\n </DataTable>\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 <template\n v-for=\"col in internalConfig.columns\"\n :key=\"col.property\"\n #[`cell:${col.property}`]=\"slotProps\"\n >\n <slot :name=\"`cell:${col.property}`\" v-bind=\"slotProps\" />\n </template>\n </DataCards>\n\n <DataPaginator\n v-if=\"pagination && showPaginator\"\n :settings=\"pagination\"\n :storage-key=\"id\"\n :handle-url=\"handleUrl\"\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</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-list.scss\"></style>\n"],"mappings":""}
@@ -1,83 +1,4 @@
1
- import { joinUrl as e } from "./admins-components76.js";
2
- import { ref as t } from "vue";
3
- //#region src/services/createNativeFetch.ts
4
- function n(n) {
5
- return function(i) {
6
- let a = t(null), o = t(null), s = t(null), c = t(null), l = t(!1), u = t(!1), d = "GET", f, p = "json", m = null, h = {
7
- data: a,
8
- error: o,
9
- response: s,
10
- statusCode: c,
11
- isFetching: l,
12
- canAbort: u,
13
- get() {
14
- return d = "GET", h;
15
- },
16
- post(e) {
17
- return d = "POST", f = e, h;
18
- },
19
- put(e) {
20
- return d = "PUT", f = e, h;
21
- },
22
- patch(e) {
23
- return d = "PATCH", f = e, h;
24
- },
25
- delete(e) {
26
- return d = "DELETE", f = e, h;
27
- },
28
- json() {
29
- return p = "json", h;
30
- },
31
- text() {
32
- return p = "text", h;
33
- },
34
- abort() {
35
- m?.abort();
36
- },
37
- async execute() {
38
- m = new AbortController(), l.value = !0, u.value = !0, o.value = null, s.value = null, c.value = null;
39
- let t = {
40
- ...n.fetchOptions,
41
- method: d,
42
- signal: m.signal
43
- };
44
- f != null && d !== "GET" && (t.body = r(f) ? JSON.stringify(f.value) : JSON.stringify(f));
45
- let g = {
46
- url: e(n.baseUrl, i),
47
- options: t
48
- };
49
- try {
50
- n.options?.beforeFetch?.(g);
51
- let e = await fetch(g.url, g.options);
52
- s.value = e, c.value = e.status;
53
- let t = null;
54
- if (p === "text") t = await e.text();
55
- else {
56
- let n = await e.text();
57
- t = n ? JSON.parse(n) : null;
58
- }
59
- if (a.value = t, !e.ok) throw Error(e.statusText || `HTTP ${e.status}`);
60
- n.options?.afterFetch?.({
61
- data: t,
62
- response: e
63
- });
64
- } catch (e) {
65
- o.value = e, n.options?.onFetchError?.({
66
- error: e,
67
- response: s.value,
68
- data: a.value
69
- });
70
- } finally {
71
- l.value = !1, u.value = !1, m = null;
72
- }
73
- return h;
74
- }
75
- };
76
- return n.options?.immediate !== !1 && h.execute(), h;
77
- };
78
- }
79
- function r(e) {
80
- return !!e && typeof e == "object" && "value" in e;
81
- }
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);
82
3
  //#endregion
83
- export { n as createNativeFetch };
4
+ export { e as isIpInUrl };
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components106.js","names":[],"sources":["../src/services/createNativeFetch.ts"],"sourcesContent":["/* VueUse helyett */\nimport { ref, type Ref } from 'vue'\nimport { joinUrl } from '@/utils/url'\n\nexport type NativeUseFetchReturn<T = unknown> = {\n data: Ref<T | null>\n error: Ref<any>\n response: Ref<Response | null>\n statusCode: Ref<number | null>\n isFetching: Ref<boolean>\n canAbort: Ref<boolean>\n\n get: () => NativeUseFetchReturn<T>\n post: (payload?: unknown) => NativeUseFetchReturn<T>\n put: (payload?: unknown) => NativeUseFetchReturn<T>\n patch: (payload?: unknown) => NativeUseFetchReturn<T>\n delete: (payload?: unknown) => NativeUseFetchReturn<T>\n\n json: <R = T>() => NativeUseFetchReturn<R>\n text: () => NativeUseFetchReturn<string>\n\n execute: () => Promise<NativeUseFetchReturn<T>>\n abort: () => void\n}\n\nexport type CreateFetchOptions = {\n baseUrl: string\n fetchOptions?: RequestInit\n options?: {\n immediate?: boolean\n beforeFetch?: (ctx: { url: string; options: RequestInit }) => any\n afterFetch?: (ctx: { data: unknown; response: Response }) => any\n onFetchError?: (ctx: { error: any; response: Response | null; data: unknown }) => any\n }\n}\n\nexport function createNativeFetch(config: CreateFetchOptions) {\n return function useNativeFetch<T = unknown>(url: string): NativeUseFetchReturn<T> {\n const data = ref<T | null>(null) as Ref<T | null>\n const error = ref<any>(null)\n const response = ref<Response | null>(null)\n const statusCode = ref<number | null>(null)\n const isFetching = ref(false)\n const canAbort = ref(false)\n\n let method = 'GET'\n let payload: unknown = undefined\n let parser: 'json' | 'text' = 'json'\n let controller: AbortController | null = null\n\n const instance: NativeUseFetchReturn<T> = {\n data,\n error,\n response,\n statusCode,\n isFetching,\n canAbort,\n\n get() {\n method = 'GET'\n return instance\n },\n\n post(p?: unknown) {\n method = 'POST'\n payload = p\n return instance\n },\n\n put(p?: unknown) {\n method = 'PUT'\n payload = p\n return instance\n },\n\n patch(p?: unknown) {\n method = 'PATCH'\n payload = p\n return instance\n },\n\n delete(p?: unknown) {\n method = 'DELETE'\n payload = p\n return instance\n },\n\n json<R = T>() {\n parser = 'json'\n return instance as unknown as NativeUseFetchReturn<R>\n },\n\n text() {\n parser = 'text'\n return instance as unknown as NativeUseFetchReturn<string>\n },\n\n abort() {\n controller?.abort()\n },\n\n async execute() {\n controller = new AbortController()\n\n isFetching.value = true\n canAbort.value = true\n error.value = null\n response.value = null\n statusCode.value = null\n\n const requestOptions: RequestInit = {\n ...config.fetchOptions,\n method,\n signal: controller.signal,\n }\n\n if (payload !== undefined && payload !== null && method !== 'GET') {\n requestOptions.body = isRefLike(payload)\n ? JSON.stringify(payload.value)\n : JSON.stringify(payload)\n }\n\n const ctx = {\n url: joinUrl(config.baseUrl, url),\n options: requestOptions,\n }\n\n try {\n config.options?.beforeFetch?.(ctx)\n\n const res = await fetch(ctx.url, ctx.options)\n\n response.value = res\n statusCode.value = res.status\n\n let parsedData: unknown = null\n\n if (parser === 'text') {\n parsedData = await res.text()\n } else {\n const text = await res.text()\n parsedData = text ? JSON.parse(text) : null\n }\n\n data.value = parsedData as T\n\n if (!res.ok) {\n throw new Error(res.statusText || `HTTP ${res.status}`)\n }\n\n config.options?.afterFetch?.({\n data: parsedData,\n response: res,\n })\n } catch (e: any) {\n error.value = e\n\n config.options?.onFetchError?.({\n error: e,\n response: response.value,\n data: data.value,\n })\n } finally {\n isFetching.value = false\n canAbort.value = false\n controller = null\n }\n\n return instance\n },\n } satisfies NativeUseFetchReturn<T>\n\n if (config.options?.immediate !== false) {\n instance.execute()\n }\n\n return instance\n }\n}\n\nfunction isRefLike(value: unknown): value is Ref<unknown> {\n return !!value && typeof value === 'object' && 'value' in value\n}\n"],"mappings":";;;AAoCA,SAAgB,EAAkB,GAA4B;CAC5D,OAAO,SAAqC,GAAsC;EAChF,IAAM,IAAO,EAAc,IAAI,GACzB,IAAQ,EAAS,IAAI,GACrB,IAAW,EAAqB,IAAI,GACpC,IAAa,EAAmB,IAAI,GACpC,IAAa,EAAI,EAAK,GACtB,IAAW,EAAI,EAAK,GAEtB,IAAS,OACT,GACA,IAA0B,QAC1B,IAAqC,MAEnC,IAAoC;GACxC;GACA;GACA;GACA;GACA;GACA;GAEA,MAAM;IAEJ,OADA,IAAS,OACF;GACT;GAEA,KAAK,GAAa;IAGhB,OAFA,IAAS,QACT,IAAU,GACH;GACT;GAEA,IAAI,GAAa;IAGf,OAFA,IAAS,OACT,IAAU,GACH;GACT;GAEA,MAAM,GAAa;IAGjB,OAFA,IAAS,SACT,IAAU,GACH;GACT;GAEA,OAAO,GAAa;IAGlB,OAFA,IAAS,UACT,IAAU,GACH;GACT;GAEA,OAAc;IAEZ,OADA,IAAS,QACF;GACT;GAEA,OAAO;IAEL,OADA,IAAS,QACF;GACT;GAEA,QAAQ;IACN,GAAY,MAAM;GACpB;GAEA,MAAM,UAAU;IAOd,AANA,IAAa,IAAI,gBAAgB,GAEjC,EAAW,QAAQ,IACnB,EAAS,QAAQ,IACjB,EAAM,QAAQ,MACd,EAAS,QAAQ,MACjB,EAAW,QAAQ;IAEnB,IAAM,IAA8B;KAClC,GAAG,EAAO;KACV;KACA,QAAQ,EAAW;IACrB;IAEA,AAAI,KAAqC,QAAQ,MAAW,UAC1D,EAAe,OAAO,EAAU,CAAO,IACnC,KAAK,UAAU,EAAQ,KAAK,IAC5B,KAAK,UAAU,CAAO;IAG5B,IAAM,IAAM;KACV,KAAK,EAAQ,EAAO,SAAS,CAAG;KAChC,SAAS;IACX;IAEA,IAAI;KACF,EAAO,SAAS,cAAc,CAAG;KAEjC,IAAM,IAAM,MAAM,MAAM,EAAI,KAAK,EAAI,OAAO;KAG5C,AADA,EAAS,QAAQ,GACjB,EAAW,QAAQ,EAAI;KAEvB,IAAI,IAAsB;KAE1B,IAAI,MAAW,QACb,IAAa,MAAM,EAAI,KAAK;UACvB;MACL,IAAM,IAAO,MAAM,EAAI,KAAK;MAC5B,IAAa,IAAO,KAAK,MAAM,CAAI,IAAI;KACzC;KAIA,IAFA,EAAK,QAAQ,GAET,CAAC,EAAI,IACP,MAAU,MAAM,EAAI,cAAc,QAAQ,EAAI,QAAQ;KAGxD,EAAO,SAAS,aAAa;MAC3B,MAAM;MACN,UAAU;KACZ,CAAC;IACH,SAAS,GAAQ;KAGf,AAFA,EAAM,QAAQ,GAEd,EAAO,SAAS,eAAe;MAC7B,OAAO;MACP,UAAU,EAAS;MACnB,MAAM,EAAK;KACb,CAAC;IACH,UAAU;KAGR,AAFA,EAAW,QAAQ,IACnB,EAAS,QAAQ,IACjB,IAAa;IACf;IAEA,OAAO;GACT;EACF;EAMA,OAJI,EAAO,SAAS,cAAc,MAChC,EAAS,QAAQ,GAGZ;CACT;AACF;AAEA,SAAS,EAAU,GAAuC;CACxD,OAAO,CAAC,CAAC,KAAS,OAAO,KAAU,YAAY,WAAW;AAC5D"}
1
+ {"version":3,"file":"admins-components106.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,114 +1,4 @@
1
- import { toast as e } from "./admins-components53.js";
2
- import { isIpInUrl as t } from "./admins-components103.js";
3
- import { createNativeFetch as n } from "./admins-components106.js";
4
- import { ref as r, watch as i } from "vue";
5
- //#region src/services/services.ts
6
- var a = class {
7
- title;
8
- message;
9
- errorCode;
10
- constructor(e, t, n) {
11
- this.title = e, this.message = t, this.errorCode = n;
12
- }
13
- }, o = /* @__PURE__ */ function(e) {
14
- return e[e.GET = 0] = "GET", e[e.GET_TEXT = 1] = "GET_TEXT", e[e.POST = 2] = "POST", e[e.POST_TEXT = 3] = "POST_TEXT", e[e.PUT = 4] = "PUT", e[e.PUT_TEXT = 5] = "PUT_TEXT", e[e.PATCH = 6] = "PATCH", e[e.DELETE = 7] = "DELETE", e;
15
- }({}), s = class {
16
- relativeUrl;
17
- method;
18
- fetchMethod;
19
- constructor(r, i, a, s, c = "application/json", l) {
20
- this.relativeUrl = i, this.method = a, this.fetchMethod = n({
21
- baseUrl: r,
22
- fetchOptions: { credentials: r.indexOf("localhost") != -1 || t(r) ? "omit" : "include" },
23
- options: {
24
- immediate: !1,
25
- beforeFetch: (e) => {
26
- e.options.headers = {
27
- ...c ? { "Content-Type": c } : {},
28
- ...l ?? {}
29
- };
30
- },
31
- onFetchError: (t) => {
32
- if (t.error?.name === "AbortError") return t;
33
- let n = "Ismeretlen eredetű hiba!", r = !t.response;
34
- return t.response && !t.response.ok && (r = !0, n = s.get(t.response.status), n || (n = `${o[a]} for Call: ${i} with Status: ${t.response.status} has no registered errorMessages!`, console.error(n))), r && e.error("Hiba a szerver elérése közben...", n), t;
35
- },
36
- afterFetch: (e) => e
37
- }
38
- });
39
- }
40
- };
41
- function c(e, t, n, o) {
42
- let s = {};
43
- s.payload = r(t), s.routeParams = r(n), s.queryParams = r(o), s.isFetching = r(!1), s.data = r();
44
- let c = null, l = null;
45
- return s.execute = () => {
46
- c &&= (c(), null), l &&= (l(), null), s.fetch && s.fetch.canAbort.value && s.fetch.abort();
47
- let t = `${u(e.relativeUrl, s.routeParams.value, s.queryParams.value)}`, n = e.fetchMethod(t), r, o = n.isFetching;
48
- async function d() {
49
- if (f() && s.successCallback) s.successCallback(s.data.value);
50
- else if (!f() && s.errorCallback) {
51
- console.log(s.fetch.error.value);
52
- let e;
53
- if (s.fetch.response.value && s.fetch.response.value.body) {
54
- let { value: t, done: n } = await s.fetch.response.value.body.getReader().read();
55
- !n && t && (e = new TextDecoder().decode(t), console.log("Response Body:", e));
56
- }
57
- s.errorCallback(new a(s.fetch.error.value, e, s.fetch.statusCode.value ? s.fetch.statusCode.value : void 0));
58
- }
59
- s.finallyCallback && s.finallyCallback();
60
- }
61
- function f() {
62
- return s.fetch.statusCode && s.fetch.statusCode.value >= 200 && s.fetch.statusCode.value <= 299;
63
- }
64
- switch (e.method) {
65
- case 0:
66
- r = n.get().json().data;
67
- break;
68
- case 1:
69
- r = n.get().text().data;
70
- break;
71
- case 4:
72
- r = n.put(s.payload).json().data;
73
- break;
74
- case 5:
75
- r = n.put(s.payload).text().data;
76
- break;
77
- case 3:
78
- r = n.post(s.payload).text().data;
79
- break;
80
- case 2:
81
- r = n.post(s.payload).json().data;
82
- break;
83
- case 6:
84
- r = n.patch(s.payload).json().data;
85
- break;
86
- case 7:
87
- r = n.delete(s.payload).json().data;
88
- break;
89
- default: throw Error(`Method: ${e.method} is not implemented!`);
90
- }
91
- c = i(r, (e) => {
92
- s.data.value = e;
93
- }), l = i(o, (e) => {
94
- s.isFetching.value = e, e || d();
95
- }), s.fetch = n, n.execute();
96
- }, s;
97
- }
98
- function l(e) {
99
- return e ? Object.keys(e).filter((t) => e[t] !== void 0 && e[t] !== null).map((t) => `${encodeURIComponent(t)}=${encodeURIComponent(String(e[t]))}`).join("&") : "";
100
- }
101
- function u(e, t, n) {
102
- let r = e;
103
- if (r ||= "", r.slice(-1) === "/" && (r = r.substring(0, r.length - 1)), t && Object.keys(t).forEach((e) => {
104
- if (r.indexOf(`{${e}}`) === -1) throw window.dispatchEvent(new CustomEvent("fetch-error", { detail: new a("Hiba!", `RouteParams: ${e} not found in url: ${r}! Contact the developers!`) })), Error(`RouteParams: ${e} not found in url: ${r}! Contact the developers!`);
105
- let n = t[e];
106
- r = r.replace(`{${e}}`, n);
107
- }), n) {
108
- let e = l(n);
109
- e.length > 0 && (r.indexOf("?") === -1 ? r += "?" : !r.endsWith("?") && !r.endsWith("&") && (r += "&"), r += e);
110
- }
111
- return r;
112
- }
1
+ //#region src/utils/cmsContext.ts
2
+ var e = () => window.cmsContext?.currentSite;
113
3
  //#endregion
114
- export { s as FetchDetails, a as FetchError, o as Methods, c as initRequest };
4
+ export { e as getCurrentSite };