admins-components 9.0.68 → 9.0.69

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 (45) hide show
  1. package/dist/admins-components.js +44 -43
  2. package/dist/admins-components103.js +102 -94
  3. package/dist/admins-components103.js.map +1 -1
  4. package/dist/admins-components105.js.map +1 -1
  5. package/dist/admins-components29.js +19 -19
  6. package/dist/admins-components29.js.map +1 -1
  7. package/dist/admins-components30.js.map +1 -1
  8. package/dist/admins-components57.js +88 -24
  9. package/dist/admins-components57.js.map +1 -1
  10. package/dist/admins-components58.js +4 -9
  11. package/dist/admins-components58.js.map +1 -1
  12. package/dist/admins-components59.js +24 -6
  13. package/dist/admins-components59.js.map +1 -1
  14. package/dist/admins-components60.js +9 -31
  15. package/dist/admins-components60.js.map +1 -1
  16. package/dist/admins-components61.js +8 -0
  17. package/dist/admins-components61.js.map +1 -0
  18. package/dist/admins-components62.js +31 -6
  19. package/dist/admins-components62.js.map +1 -1
  20. package/dist/admins-components64.js +6 -70
  21. package/dist/admins-components64.js.map +1 -1
  22. package/dist/admins-components65.js +96 -4
  23. package/dist/admins-components65.js.map +1 -1
  24. package/dist/admins-components66.js +65 -84
  25. package/dist/admins-components66.js.map +1 -1
  26. package/dist/admins-components67.js +1 -1
  27. package/dist/admins-components67.js.map +1 -1
  28. package/dist/admins-components68.js +34 -26
  29. package/dist/admins-components68.js.map +1 -1
  30. package/dist/admins-components70.js +1 -1
  31. package/dist/admins-components70.js.map +1 -1
  32. package/dist/admins-components71.js +33 -29
  33. package/dist/admins-components71.js.map +1 -1
  34. package/dist/admins-components73.js +1 -1
  35. package/dist/admins-components73.js.map +1 -1
  36. package/dist/admins-components75.js +1 -1
  37. package/dist/main.css +1 -1
  38. package/dist/main.css.map +1 -1
  39. package/dist/src/components/data-table/DataCards.vue.d.ts +6 -0
  40. package/dist/src/components/data-table/DataList.vue.d.ts +4 -0
  41. package/dist/src/components/data-table/DataTable.vue.d.ts +6 -0
  42. package/dist/src/index.d.ts +1 -0
  43. package/package.json +1 -1
  44. package/dist/admins-components63.js +0 -97
  45. package/dist/admins-components63.js.map +0 -1
@@ -20,46 +20,47 @@ import k from "./admins-components50.js";
20
20
  import A from "./admins-components52.js";
21
21
  import { toast as j } from "./admins-components53.js";
22
22
  import M from "./admins-components56.js";
23
- import { dataCardsSettingsDefaults as N, dataListSettingsDefaults as P, dataTableSettingsDefaults as F } from "./admins-components58.js";
24
- import { booleanToString as I, dataListConverters as L, enumMap as R, formatCurrency as z, formatNumber as B, identity as V, listToString as H, localToLocalString as U, shortUuid as W, tagList as G, textEllipse as K, utcToLocalString as q } from "./admins-components63.js";
25
- import J from "./admins-components70.js";
26
- import Y from "./admins-components73.js";
27
- import { deepMerge as X } from "./admins-components74.js";
28
- import Z from "./admins-components77.js";
29
- import { getFullStorageKey as Q } from "./admins-components78.js";
30
- import { getUrlParam as $, joinUrl as ee, navigateIframe as te, removeUrlParam as ne, setUrlParam as re } from "./admins-components79.js";
31
- import { getDefaultPaginator as ie } from "./admins-components80.js";
32
- import ae from "./admins-components82.js";
33
- import { getDefaultSort as oe } from "./admins-components83.js";
34
- import { filterEmptyValues as se, getDefaultFilters as ce, getDefaultSavedFilter as le, getFilterUrlParams as ue, getSavedFilters as de, writeFilterParams as fe } from "./admins-components87.js";
35
- import pe from "./admins-components90.js";
36
- import me from "./admins-components93.js";
37
- import he from "./admins-components96.js";
38
- import { getDefaultSearch as ge } from "./admins-components100.js";
39
- import { dataListDefaults as _e, getDefaultFetchData as ve } from "./admins-components103.js";
40
- import ye from "./admins-components105.js";
41
- import { isIpInUrl as be } from "./admins-components106.js";
42
- import { getCurrentSite as xe } from "./admins-components107.js";
43
- import { vTooltip as Se } from "./admins-components108.js";
44
- import { createNativeFetch as Ce } from "./admins-components109.js";
45
- import { FetchDetails as we, FetchError as Te, Methods as Ee, initRequest as De } from "./admins-components110.js";
46
- import { useArticleEditorService as Oe } from "./admins-components111.js";
47
- import { useCurrentUser as ke } from "./admins-components112.js";
48
- import { BackendService as Ae, useBackendService as je } from "./admins-components113.js";
49
- import { aoeConfig as Me, configureArticleOfferElement as Ne } from "./admins-components166.js";
50
- import Pe from "./admins-components168.js";
51
- import { apeConfig as Fe, configureArticlePickerElement as Ie } from "./admins-components169.js";
52
- import { configureImagePickerElement as Le, ipeConfig as Re } from "./admins-components170.js";
53
- import ze from "./admins-components172.js";
54
- import Be from "./admins-components173.js";
55
- import { configureExternalArticleOfferElement as Ve, eaoeConfig as He } from "./admins-components174.js";
56
- import Ue from "./admins-components175.js";
57
- import { configureGalleryImageSelectorElement as We, gisConfig as Ge } from "./admins-components176.js";
58
- import Ke from "./admins-components177.js";
59
- import qe from "./admins-components178.js";
60
- import Je from "./admins-components179.js";
61
- import { configureInternalArticleOfferElement as Ye, iaoeConfig as Xe } from "./admins-components180.js";
62
- import Ze from "./admins-components181.js";
63
- import { configurePartnerPickerElement as Qe, ppeconfig as $e } from "./admins-components182.js";
64
- import et from "./admins-components184.js";
65
- export { Pe as ArticleOfferElement, ze as ArticlePickerElement, Ae as BackendService, u as Button, m as Calendar, v as Checkbox, E as ConfirmModal, D as CopyToClipboard, Y as DataCards, me as DataFilters, ye as DataList, Z as DataListOptions, ae as DataPaginator, J as DataTable, h as DatePicker, y as DateRangePicker, Be as DateTimePickerElement, S as DropdownMenu, x as DropdownSelect, k as ExternalArticleOffer, Ue as ExternalArticleOfferElement, we as FetchDetails, Te as FetchError, he as FilterTags, pe as FiltersHistory, Ke as GalleryImageSelectorElement, w as HeaderComponent, O as ImagePicker, Je as ImagePickerDetailsElement, qe as ImagePickerElement, A as InternalArticleOffer, Ze as InternalArticleOfferElement, b as Loader, Ee as Methods, T as Modal, et as PartnerPickerElement, C as Sidebar, _ as TextInput, M as ToastNotification, Me as aoeConfig, Fe as apeConfig, I as booleanToString, d as calendarConfigDefaults, e as castToDate, Ne as configureArticleOfferElement, Ie as configureArticlePickerElement, Ve as configureExternalArticleOfferElement, We as configureGalleryImageSelectorElement, Le as configureImagePickerElement, Ye as configureInternalArticleOfferElement, Qe as configurePartnerPickerElement, Ce as createNativeFetch, N as dataCardsSettingsDefaults, L as dataListConverters, _e as dataListDefaults, P as dataListSettingsDefaults, F as dataTableSettingsDefaults, f as datePickerConfigDefaults, p as dateRangePickerConfigDefaults, g as debounce, X as deepMerge, He as eaoeConfig, t as earlierOf, n as endOfDay, R as enumMap, se as filterEmptyValues, z as formatCurrency, r as formatDate, B as formatNumber, xe as getCurrentSite, ve as getDefaultFetchData, ce as getDefaultFilters, ie as getDefaultPaginator, le as getDefaultSavedFilter, ge as getDefaultSearch, oe as getDefaultSort, ue as getFilterUrlParams, Q as getFullStorageKey, de as getSavedFilters, $ as getUrlParam, Ge as gisConfig, Xe as iaoeConfig, V as identity, De as initRequest, Re as ipeConfig, be as isIpInUrl, ee as joinUrl, i as laterOf, H as listToString, U as localToLocalString, a as localToUTCString, te as navigateIframe, o as parseDate, $e as ppeconfig, ne as removeUrlParam, re as setUrlParam, W as shortUuid, s as startOfDay, c as startOfWeek, G as tagList, K as textEllipse, j as toast, Oe as useArticleEditorService, je as useBackendService, ke as useCurrentUser, q as utcToLocalString, l as utcToString, Se as vTooltip, fe as writeFilterParams };
23
+ import N from "./admins-components58.js";
24
+ import { dataCardsSettingsDefaults as P, dataListSettingsDefaults as F, dataTableSettingsDefaults as I } from "./admins-components60.js";
25
+ import { booleanToString as L, dataListConverters as R, enumMap as z, formatCurrency as B, formatNumber as V, identity as H, listToString as U, localToLocalString as W, shortUuid as G, tagList as K, textEllipse as q, utcToLocalString as J } from "./admins-components65.js";
26
+ import Y from "./admins-components70.js";
27
+ import X from "./admins-components73.js";
28
+ import { deepMerge as Z } from "./admins-components74.js";
29
+ import Q from "./admins-components77.js";
30
+ import { getFullStorageKey as $ } from "./admins-components78.js";
31
+ import { getUrlParam as ee, joinUrl as te, navigateIframe as ne, removeUrlParam as re, setUrlParam as ie } from "./admins-components79.js";
32
+ import { getDefaultPaginator as ae } from "./admins-components80.js";
33
+ import oe from "./admins-components82.js";
34
+ import { getDefaultSort as se } from "./admins-components83.js";
35
+ import { filterEmptyValues as ce, getDefaultFilters as le, getDefaultSavedFilter as ue, getFilterUrlParams as de, getSavedFilters as fe, writeFilterParams as pe } from "./admins-components87.js";
36
+ import me from "./admins-components90.js";
37
+ import he from "./admins-components93.js";
38
+ import ge from "./admins-components96.js";
39
+ import { getDefaultSearch as _e } from "./admins-components100.js";
40
+ import { dataListDefaults as ve, getDefaultFetchData as ye } from "./admins-components103.js";
41
+ import be from "./admins-components105.js";
42
+ import { isIpInUrl as xe } from "./admins-components106.js";
43
+ import { getCurrentSite as Se } from "./admins-components107.js";
44
+ import { vTooltip as Ce } from "./admins-components108.js";
45
+ import { createNativeFetch as we } from "./admins-components109.js";
46
+ import { FetchDetails as Te, FetchError as Ee, Methods as De, initRequest as Oe } from "./admins-components110.js";
47
+ import { useArticleEditorService as ke } from "./admins-components111.js";
48
+ import { useCurrentUser as Ae } from "./admins-components112.js";
49
+ import { BackendService as je, useBackendService as Me } from "./admins-components113.js";
50
+ import { aoeConfig as Ne, configureArticleOfferElement as Pe } from "./admins-components166.js";
51
+ import Fe from "./admins-components168.js";
52
+ import { apeConfig as Ie, configureArticlePickerElement as Le } from "./admins-components169.js";
53
+ import { configureImagePickerElement as Re, ipeConfig as ze } from "./admins-components170.js";
54
+ import Be from "./admins-components172.js";
55
+ import Ve from "./admins-components173.js";
56
+ import { configureExternalArticleOfferElement as He, eaoeConfig as Ue } from "./admins-components174.js";
57
+ import We from "./admins-components175.js";
58
+ import { configureGalleryImageSelectorElement as Ge, gisConfig as Ke } from "./admins-components176.js";
59
+ import qe from "./admins-components177.js";
60
+ import Je from "./admins-components178.js";
61
+ import Ye from "./admins-components179.js";
62
+ import { configureInternalArticleOfferElement as Xe, iaoeConfig as Ze } from "./admins-components180.js";
63
+ import Qe from "./admins-components181.js";
64
+ import { configurePartnerPickerElement as $e, ppeconfig as et } from "./admins-components182.js";
65
+ import tt from "./admins-components184.js";
66
+ export { Fe as ArticleOfferElement, Be as ArticlePickerElement, je as BackendService, u as Button, m as Calendar, v as Checkbox, E as ConfirmModal, D as CopyToClipboard, X as DataCards, he as DataFilters, be as DataList, N as DataListActions, Q as DataListOptions, oe as DataPaginator, Y as DataTable, h as DatePicker, y as DateRangePicker, Ve as DateTimePickerElement, S as DropdownMenu, x as DropdownSelect, k as ExternalArticleOffer, We as ExternalArticleOfferElement, Te as FetchDetails, Ee as FetchError, ge as FilterTags, me as FiltersHistory, qe as GalleryImageSelectorElement, w as HeaderComponent, O as ImagePicker, Ye as ImagePickerDetailsElement, Je as ImagePickerElement, A as InternalArticleOffer, Qe as InternalArticleOfferElement, b as Loader, De as Methods, T as Modal, tt as PartnerPickerElement, C as Sidebar, _ as TextInput, M as ToastNotification, Ne as aoeConfig, Ie as apeConfig, L as booleanToString, d as calendarConfigDefaults, e as castToDate, Pe as configureArticleOfferElement, Le as configureArticlePickerElement, He as configureExternalArticleOfferElement, Ge as configureGalleryImageSelectorElement, Re as configureImagePickerElement, Xe as configureInternalArticleOfferElement, $e as configurePartnerPickerElement, we as createNativeFetch, P as dataCardsSettingsDefaults, R as dataListConverters, ve as dataListDefaults, F as dataListSettingsDefaults, I as dataTableSettingsDefaults, f as datePickerConfigDefaults, p as dateRangePickerConfigDefaults, g as debounce, Z as deepMerge, Ue as eaoeConfig, t as earlierOf, n as endOfDay, z as enumMap, ce as filterEmptyValues, B as formatCurrency, r as formatDate, V as formatNumber, Se as getCurrentSite, ye as getDefaultFetchData, le as getDefaultFilters, ae as getDefaultPaginator, ue as getDefaultSavedFilter, _e as getDefaultSearch, se as getDefaultSort, de as getFilterUrlParams, $ as getFullStorageKey, fe as getSavedFilters, ee as getUrlParam, Ke as gisConfig, Ze as iaoeConfig, H as identity, Oe as initRequest, ze as ipeConfig, xe as isIpInUrl, te as joinUrl, i as laterOf, U as listToString, W as localToLocalString, a as localToUTCString, ne as navigateIframe, o as parseDate, et as ppeconfig, re as removeUrlParam, ie as setUrlParam, G as shortUuid, s as startOfDay, c as startOfWeek, K as tagList, q as textEllipse, j as toast, ke as useArticleEditorService, Me as useBackendService, Ae as useCurrentUser, J as utcToLocalString, l as utcToString, Ce as vTooltip, pe as writeFilterParams };
@@ -9,15 +9,15 @@ import s from "./admins-components85.js";
9
9
  import { getDefaultFilters as c } from "./admins-components87.js";
10
10
  import ee from "./admins-components93.js";
11
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";
12
+ import te from "./admins-components99.js";
13
+ import { getDefaultSearch as u } from "./admins-components100.js";
14
+ import d 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 C, normalizeProps as w, onBeforeUnmount as T, onMounted as E, openBlock as D, ref as O, renderList as k, renderSlot as A, useSlots as j, withCtx as M } from "vue";
16
16
  //#region src/components/data-table/DataList.vue?vue&type=script&setup=true&lang.ts
17
- var A = { class: "c-data-list__toolbar" }, j = {
17
+ var ne = { class: "c-data-list__toolbar" }, N = {
18
18
  key: 2,
19
19
  class: "flex-center gap-1 flex-center-wrap-on-mobile"
20
- }, M = { class: "c-data-list__toolbar__right" }, N = {
20
+ }, P = { class: "c-data-list__toolbar__right" }, F = {
21
21
  layoutBreakpoint: 768,
22
22
  orderable: !0,
23
23
  loading: !1,
@@ -26,8 +26,8 @@ var A = { class: "c-data-list__toolbar" }, j = {
26
26
  handleUrl: !1,
27
27
  fillHeight: !1
28
28
  };
29
- function P(e, t) {
30
- let n = i(t), r = o(), a = d(), s = c(e, t, !0);
29
+ function I(e, t) {
30
+ let n = i(t), r = o(), a = u(), s = c(e, t, !0);
31
31
  return {
32
32
  ...n,
33
33
  ...r,
@@ -35,7 +35,7 @@ function P(e, t) {
35
35
  ...s
36
36
  };
37
37
  }
38
- var F = /* @__PURE__ */ y({
38
+ var L = /* @__PURE__ */ y({
39
39
  __name: "DataList",
40
40
  props: /* @__PURE__ */ x({
41
41
  config: {},
@@ -53,7 +53,7 @@ var F = /* @__PURE__ */ y({
53
53
  filterConfig: {},
54
54
  fillHeight: { type: Boolean }
55
55
  }, {
56
- ...N,
56
+ ...F,
57
57
  searchConfig: void 0,
58
58
  filterConfig: void 0
59
59
  }),
@@ -65,91 +65,91 @@ var F = /* @__PURE__ */ y({
65
65
  "sort-change",
66
66
  "search-change"
67
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;
68
+ setup(i, { expose: u, emit: y }) {
69
+ let x = O(null), F = j(), I = f(() => !!F.actions), L = i;
70
+ function R(e) {
71
+ let t = L[e];
72
+ return t && Object.hasOwn(t, "handleUrl") ? t.handleUrl : L.handleUrl;
73
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) => ({
74
+ let re = f(() => ({
75
+ ...L.searchConfig,
76
+ handleUrl: R("searchConfig")
77
+ })), ie = f(() => ({
78
+ ...L.filterConfig,
79
+ handleUrl: R("filterConfig")
80
+ })), z = y, B = O(!1), V = O(!1), H = O(null), U = O(!1), W = O(null), G = O(!1), K = O(L.filterConfig?.items ? c(L.filterConfig.items, L.id, !1) : {}), q = null;
81
+ E(() => {
82
+ q = new ResizeObserver((e) => {
83
+ U.value = (e[0]?.contentRect.width ?? 0) < L.layoutBreakpoint;
84
+ }), W.value && q.observe(W.value);
85
+ }), T(() => q?.disconnect());
86
+ let J = f(() => {
87
+ let e = H.value?.layout;
88
+ return e === "table" || e === "cards" ? e : U.value ? "cards" : "table";
89
+ }), Y = f(() => {
90
+ if (!H.value) return L.config;
91
+ let e = H.value.columnOrder, t = L.config.columns.map((e) => ({
92
92
  ...e,
93
- visible: B.value.columns[e.property] ?? e.visible !== !1
93
+ visible: H.value.columns[e.property] ?? e.visible !== !1
94
94
  }));
95
95
  return e?.length && t.sort((t, n) => {
96
96
  let r = e.indexOf(t.property), i = e.indexOf(n.property);
97
97
  return (r === -1 ? 999 : r) - (i === -1 ? 999 : i);
98
98
  }), {
99
- ...N.config,
99
+ ...L.config,
100
100
  columns: t
101
101
  };
102
102
  });
103
- function J(e) {
104
- B.value = e, L("settings-change", e);
103
+ function ae(e) {
104
+ H.value = e, z("settings-change", e);
105
105
  }
106
- d({
107
- openOptions: () => R.value = !0,
108
- closeOptions: () => R.value = !1,
109
- openFilters: () => U.value = !0,
110
- closeFilters: () => U.value = !1
106
+ u({
107
+ openOptions: () => B.value = !0,
108
+ closeOptions: () => B.value = !1,
109
+ openFilters: () => G.value = !0,
110
+ closeFilters: () => G.value = !1
111
111
  });
112
- async function Y(e) {
113
- U.value = !0, setTimeout(() => {
112
+ async function oe(e) {
113
+ G.value = !0, setTimeout(() => {
114
114
  x.value?.focusFilter(e);
115
115
  }, 300);
116
116
  }
117
- function ie(e) {
118
- W.value = e.values, L("filter-change", e.transformed);
117
+ function se(e) {
118
+ K.value = e.values, z("filter-change", e.transformed);
119
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) => ({
120
+ let X = f(() => Object.values(K.value).filter((e) => e != null && e !== "").length), ce = f(() => !!L.pagination && (L.items.length > 0 || !L.loading)), le = (e) => {
121
+ z("search-change", e);
122
+ }, Z = f(() => L.config.columns.filter((e) => e.sort).map((e) => ({
123
123
  value: e.property,
124
124
  label: e.label
125
- }))), Q = E(N.handleUrl ? o() : null), $ = (e) => {
126
- Q.value = e, L("sort-change", e);
125
+ }))), Q = O(L.handleUrl ? o() : null), $ = (e) => {
126
+ Q.value = e, z("sort-change", e);
127
127
  };
128
- return (o, c) => (T(), h("div", {
128
+ return (o, c) => (D(), h("div", {
129
129
  ref_key: "root",
130
- ref: H,
131
- class: ne(["ac-component c-data-list", { "c-data-list--fill-height": i.fillHeight }])
130
+ ref: W,
131
+ class: C(["ac-component c-data-list", { "c-data-list--fill-height": i.fillHeight }])
132
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, {
133
+ g("div", ne, [
134
+ i.useSearch ? (D(), p(d, S({ key: 0 }, re.value, { onSearchChange: le }), null, 16)) : m("", !0),
135
+ i.useFilters && i.filterConfig?.items && i.filterConfig.items.length > 0 ? (D(), p(e, {
136
136
  key: 1,
137
137
  label: "Szűrők",
138
138
  icon: "fa-solid fa-filter",
139
- onClick: c[0] ||= (e) => U.value = !0,
139
+ onClick: c[0] ||= (e) => G.value = !0,
140
140
  style: { "flex-shrink": "0" },
141
141
  type: X.value > 0 ? "primary" : "normal",
142
142
  indicator: X.value > 0 ? X.value : void 0
143
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,
144
+ i.useFilters && i.filterConfig?.items && i.filterConfig.items.length > 0 ? (D(), h("div", N, [v(l, {
145
+ filters: K.value,
146
146
  items: i.filterConfig.items,
147
147
  compact: "",
148
148
  onRemove: c[1] ||= (e) => x.value?.clearFilter(e),
149
- onOpenFilter: Y
149
+ onOpenFilter: oe
150
150
  }, null, 8, ["filters", "items"])])) : m("", !0),
151
- g("div", M, [
152
- Z.value.length > 0 ? (T(), p(s, {
151
+ g("div", P, [
152
+ Z.value.length > 0 ? (D(), p(s, {
153
153
  key: 0,
154
154
  modelValue: Q.value,
155
155
  "onUpdate:modelValue": c[2] ||= (e) => Q.value = e,
@@ -165,84 +165,92 @@ var F = /* @__PURE__ */ y({
165
165
  icon: "fa-solid fa-gear",
166
166
  class: "lh-normal settings-btn",
167
167
  ariaLabel: "Beállítások",
168
- onClick: c[3] ||= (e) => R.value = !0
168
+ onClick: c[3] ||= (e) => B.value = !0
169
169
  }),
170
170
  v(e, {
171
171
  icon: "fa-solid fa-question",
172
172
  class: "lh-normal",
173
- onClick: c[4] ||= (e) => z.value = !0,
173
+ onClick: c[4] ||= (e) => V.value = !0,
174
174
  ariaLabel: "Súgó"
175
175
  })
176
176
  ])
177
177
  ]),
178
- i.useFilters && i.filterConfig?.items && i.filterConfig.items.length > 0 ? (T(), p(ee, S({
178
+ i.useFilters && i.filterConfig?.items && i.filterConfig.items.length > 0 ? (D(), p(ee, S({
179
179
  key: 0,
180
180
  ref_key: "dataFiltersRef",
181
181
  ref: x
182
- }, I.value, {
182
+ }, ie.value, {
183
183
  "storage-key": i.id,
184
- open: U.value,
185
- onClose: c[5] ||= (e) => U.value = !1,
186
- onChange: ie
184
+ open: G.value,
185
+ onClose: c[5] ||= (e) => G.value = !1,
186
+ onChange: se
187
187
  }), null, 16, ["storage-key", "open"])) : m("", !0),
188
- v(u, {
189
- open: z.value,
190
- onClose: c[6] ||= (e) => z.value = !1
188
+ v(te, {
189
+ open: V.value,
190
+ onClose: c[6] ||= (e) => V.value = !1
191
191
  }, null, 8, ["open"]),
192
- K.value === "table" ? (T(), p(t, {
192
+ J.value === "table" ? (D(), p(t, {
193
193
  key: 1,
194
- config: q.value,
194
+ config: Y.value,
195
195
  loading: i.loading,
196
196
  items: i.items,
197
- settings: B.value ?? void 0,
197
+ settings: H.value ?? void 0,
198
198
  "initial-sort": Q.value,
199
- onFilterChange: c[7] ||= (e) => L("filter-change", e),
200
- onSelectionChange: c[8] ||= (e) => L("selection-change", e),
199
+ onFilterChange: c[7] ||= (e) => z("filter-change", e),
200
+ onSelectionChange: c[8] ||= (e) => z("selection-change", e),
201
201
  onSortChange: $
202
- }, _({ _: 2 }, [D(q.value.columns, (e) => ({
202
+ }, _({ _: 2 }, [k(Y.value.columns, (e) => ({
203
203
  name: `cell:${e.property}`,
204
- fn: k((t) => [O(o.$slots, `cell:${e.property}`, C(b(t)))])
205
- }))]), 1032, [
204
+ fn: M((t) => [A(o.$slots, `cell:${e.property}`, w(b(t)))])
205
+ })), I.value ? {
206
+ name: "actions",
207
+ fn: M((e) => [A(o.$slots, "actions", w(b(e)))]),
208
+ key: "0"
209
+ } : void 0]), 1032, [
206
210
  "config",
207
211
  "loading",
208
212
  "items",
209
213
  "settings",
210
214
  "initial-sort"
211
- ])) : (T(), p(n, {
215
+ ])) : (D(), p(n, {
212
216
  key: 2,
213
- config: q.value,
217
+ config: Y.value,
214
218
  loading: i.loading,
215
219
  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) => ({
220
+ settings: H.value ?? void 0,
221
+ onSelectionChange: c[9] ||= (e) => z("selection-change", e)
222
+ }, _({ _: 2 }, [k(Y.value.columns, (e) => ({
219
223
  name: `cell:${e.property}`,
220
- fn: k((t) => [O(o.$slots, `cell:${e.property}`, C(b(t)))])
221
- }))]), 1032, [
224
+ fn: M((t) => [A(o.$slots, `cell:${e.property}`, w(b(t)))])
225
+ })), I.value ? {
226
+ name: "actions",
227
+ fn: M((e) => [A(o.$slots, "actions", w(b(e)))]),
228
+ key: "0"
229
+ } : void 0]), 1032, [
222
230
  "config",
223
231
  "loading",
224
232
  "items",
225
233
  "settings"
226
234
  ])),
227
- i.pagination && ae.value ? (T(), p(a, {
235
+ i.pagination && ce.value ? (D(), p(a, {
228
236
  key: 3,
229
237
  settings: i.pagination,
230
238
  "storage-key": i.id,
231
239
  "handle-url": i.handleUrl,
232
- "onUpdate:pagination": c[10] ||= (e) => L("pagination-change", e)
240
+ "onUpdate:pagination": c[10] ||= (e) => z("pagination-change", e)
233
241
  }, null, 8, [
234
242
  "settings",
235
243
  "storage-key",
236
244
  "handle-url"
237
245
  ])) : m("", !0),
238
246
  v(r, {
239
- open: R.value,
247
+ open: B.value,
240
248
  columns: i.config.columns,
241
249
  settings: i.settings ?? {},
242
250
  "storage-key": i.id,
243
251
  orderable: i.orderable,
244
- onClose: c[11] ||= (e) => R.value = !1,
245
- onChange: J
252
+ onClose: c[11] ||= (e) => B.value = !1,
253
+ onChange: ae
246
254
  }, null, 8, [
247
255
  "open",
248
256
  "columns",
@@ -254,4 +262,4 @@ var F = /* @__PURE__ */ y({
254
262
  }
255
263
  });
256
264
  //#endregion
257
- export { N as dataListDefaults, F as default, P as getDefaultFetchData };
265
+ export { F as dataListDefaults, L as default, I as getDefaultFetchData };
@@ -1 +1 @@
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":"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"}
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, useSlots } 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)\nconst slots = useSlots()\nconst hasActionsSlot = computed(() => !!slots.actions)\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 <template v-if=\"hasActionsSlot\" #actions=\"slotProps\">\n <slot name=\"actions\" 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 <template v-if=\"hasActionsSlot\" #actions=\"slotProps\">\n <slot name=\"actions\" 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":"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"}
@@ -1 +1 @@
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
+ {"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, useSlots } 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)\nconst slots = useSlots()\nconst hasActionsSlot = computed(() => !!slots.actions)\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 <template v-if=\"hasActionsSlot\" #actions=\"slotProps\">\n <slot name=\"actions\" 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 <template v-if=\"hasActionsSlot\" #actions=\"slotProps\">\n <slot name=\"actions\" 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":""}