admins-components 9.0.73 → 9.0.76

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 (258) hide show
  1. package/dist/admins-components.js +29 -29
  2. package/dist/admins-components100.js +1 -1
  3. package/dist/admins-components100.js.map +1 -1
  4. package/dist/admins-components102.js +4 -4
  5. package/dist/admins-components103.js +96 -96
  6. package/dist/admins-components103.js.map +1 -1
  7. package/dist/admins-components105.js +4 -4
  8. package/dist/admins-components105.js.map +1 -1
  9. package/dist/admins-components11.js +6 -6
  10. package/dist/admins-components110.js +1 -1
  11. package/dist/admins-components110.js.map +1 -1
  12. package/dist/admins-components111.js +2 -2
  13. package/dist/admins-components111.js.map +1 -1
  14. package/dist/admins-components112.js.map +1 -1
  15. package/dist/admins-components113.js +1 -1
  16. package/dist/admins-components113.js.map +1 -1
  17. package/dist/admins-components115.js +144 -126
  18. package/dist/admins-components115.js.map +1 -1
  19. package/dist/admins-components116.js +7 -5
  20. package/dist/admins-components116.js.map +1 -1
  21. package/dist/admins-components117.js +1 -1
  22. package/dist/admins-components117.js.map +1 -1
  23. package/dist/admins-components118.js +75 -27
  24. package/dist/admins-components118.js.map +1 -1
  25. package/dist/admins-components119.js +30 -6
  26. package/dist/admins-components119.js.map +1 -1
  27. package/dist/admins-components12.js.map +1 -1
  28. package/dist/admins-components120.js +34 -20
  29. package/dist/admins-components120.js.map +1 -1
  30. package/dist/admins-components121.js +1 -3
  31. package/dist/admins-components121.js.map +1 -1
  32. package/dist/admins-components122.js +4 -3
  33. package/dist/admins-components122.js.map +1 -1
  34. package/dist/admins-components124.js +2 -1
  35. package/dist/admins-components124.js.map +1 -1
  36. package/dist/admins-components129.js +1 -1
  37. package/dist/admins-components129.js.map +1 -1
  38. package/dist/admins-components13.js +2 -2
  39. package/dist/admins-components13.js.map +1 -1
  40. package/dist/admins-components132.js +23 -15
  41. package/dist/admins-components132.js.map +1 -1
  42. package/dist/admins-components133.js.map +1 -1
  43. package/dist/admins-components14.js +4 -4
  44. package/dist/admins-components141.js +2 -2
  45. package/dist/admins-components141.js.map +1 -1
  46. package/dist/admins-components142.js.map +1 -1
  47. package/dist/admins-components143.js +5 -1
  48. package/dist/admins-components143.js.map +1 -1
  49. package/dist/admins-components144.js +1 -1
  50. package/dist/admins-components144.js.map +1 -1
  51. package/dist/admins-components145.js +4 -1
  52. package/dist/admins-components145.js.map +1 -1
  53. package/dist/admins-components146.js +30 -6
  54. package/dist/admins-components146.js.map +1 -1
  55. package/dist/admins-components147.js +64 -54
  56. package/dist/admins-components147.js.map +1 -1
  57. package/dist/admins-components148.js +8 -25
  58. package/dist/admins-components148.js.map +1 -1
  59. package/dist/admins-components149.js +26 -56
  60. package/dist/admins-components149.js.map +1 -1
  61. package/dist/admins-components150.js +56 -21
  62. package/dist/admins-components150.js.map +1 -1
  63. package/dist/admins-components151.js +27 -45
  64. package/dist/admins-components151.js.map +1 -1
  65. package/dist/admins-components152.js +48 -29
  66. package/dist/admins-components152.js.map +1 -1
  67. package/dist/admins-components153.js +48 -3
  68. package/dist/admins-components153.js.map +1 -1
  69. package/dist/admins-components154.js +3 -179
  70. package/dist/admins-components154.js.map +1 -1
  71. package/dist/admins-components155.js +200 -42
  72. package/dist/admins-components155.js.map +1 -1
  73. package/dist/admins-components156.js +44 -35
  74. package/dist/admins-components156.js.map +1 -1
  75. package/dist/admins-components157.js +35 -44
  76. package/dist/admins-components157.js.map +1 -1
  77. package/dist/admins-components158.js +42 -137
  78. package/dist/admins-components158.js.map +1 -1
  79. package/dist/admins-components159.js +146 -51
  80. package/dist/admins-components159.js.map +1 -1
  81. package/dist/admins-components16.js +2 -2
  82. package/dist/admins-components16.js.map +1 -1
  83. package/dist/admins-components160.js +58 -7
  84. package/dist/admins-components160.js.map +1 -1
  85. package/dist/admins-components161.js +6 -5
  86. package/dist/admins-components161.js.map +1 -1
  87. package/dist/admins-components162.js +6 -76
  88. package/dist/admins-components162.js.map +1 -1
  89. package/dist/admins-components163.js +77 -29
  90. package/dist/admins-components163.js.map +1 -1
  91. package/dist/admins-components164.js +29 -1931
  92. package/dist/admins-components164.js.map +1 -1
  93. package/dist/admins-components165.js +1743 -24631
  94. package/dist/admins-components165.js.map +1 -1
  95. package/dist/admins-components166.js +24788 -8
  96. package/dist/admins-components166.js.map +1 -1
  97. package/dist/admins-components167.js +9 -7
  98. package/dist/admins-components167.js.map +1 -0
  99. package/dist/admins-components168.js +7 -142
  100. package/dist/admins-components169.js +141 -8
  101. package/dist/admins-components169.js.map +1 -1
  102. package/dist/admins-components17.js +3 -3
  103. package/dist/admins-components170.js +3 -3
  104. package/dist/admins-components170.js.map +1 -1
  105. package/dist/admins-components171.js +10 -0
  106. package/dist/admins-components171.js.map +1 -0
  107. package/dist/admins-components173.js +160 -45
  108. package/dist/admins-components173.js.map +1 -1
  109. package/dist/admins-components174.js +52 -8
  110. package/dist/admins-components174.js.map +1 -1
  111. package/dist/admins-components175.js +8 -49
  112. package/dist/admins-components175.js.map +1 -1
  113. package/dist/admins-components176.js +50 -6
  114. package/dist/admins-components176.js.map +1 -1
  115. package/dist/admins-components177.js +6 -80
  116. package/dist/admins-components177.js.map +1 -1
  117. package/dist/admins-components178.js +71 -48
  118. package/dist/admins-components178.js.map +1 -1
  119. package/dist/admins-components179.js +30 -35
  120. package/dist/admins-components179.js.map +1 -1
  121. package/dist/admins-components18.js +1 -1
  122. package/dist/admins-components18.js.map +1 -1
  123. package/dist/admins-components180.js +62 -8
  124. package/dist/admins-components180.js.map +1 -1
  125. package/dist/admins-components181.js +8 -51
  126. package/dist/admins-components181.js.map +1 -1
  127. package/dist/admins-components182.js +51 -8
  128. package/dist/admins-components182.js.map +1 -1
  129. package/dist/admins-components183.js +10 -0
  130. package/dist/admins-components183.js.map +1 -0
  131. package/dist/{admins-components184.js → admins-components185.js} +5 -5
  132. package/dist/{admins-components184.js.map → admins-components185.js.map} +1 -1
  133. package/dist/admins-components20.js +1 -1
  134. package/dist/admins-components21.js +10 -6
  135. package/dist/admins-components21.js.map +1 -1
  136. package/dist/admins-components22.js +4 -4
  137. package/dist/admins-components23.js +1 -1
  138. package/dist/admins-components23.js.map +1 -1
  139. package/dist/admins-components25.js +1 -1
  140. package/dist/admins-components26.js +107 -106
  141. package/dist/admins-components26.js.map +1 -1
  142. package/dist/admins-components28.js +4 -4
  143. package/dist/admins-components28.js.map +1 -1
  144. package/dist/admins-components29.js +1 -1
  145. package/dist/admins-components29.js.map +1 -1
  146. package/dist/admins-components3.js +1 -3
  147. package/dist/admins-components3.js.map +1 -1
  148. package/dist/admins-components30.js +1 -1
  149. package/dist/admins-components31.js.map +1 -1
  150. package/dist/admins-components32.js +2 -2
  151. package/dist/admins-components32.js.map +1 -1
  152. package/dist/admins-components34.js +4 -4
  153. package/dist/admins-components35.js +2 -2
  154. package/dist/admins-components35.js.map +1 -1
  155. package/dist/admins-components37.js +4 -4
  156. package/dist/admins-components38.js +1 -1
  157. package/dist/admins-components38.js.map +1 -1
  158. package/dist/admins-components40.js +1 -1
  159. package/dist/admins-components41.js +1 -1
  160. package/dist/admins-components41.js.map +1 -1
  161. package/dist/admins-components43.js +1 -1
  162. package/dist/admins-components43.js.map +1 -1
  163. package/dist/admins-components45.js +1 -1
  164. package/dist/admins-components46.js +1 -1
  165. package/dist/admins-components46.js.map +1 -1
  166. package/dist/admins-components48.js +1 -1
  167. package/dist/admins-components49.js +1 -1
  168. package/dist/admins-components49.js.map +1 -1
  169. package/dist/admins-components5.js +2 -2
  170. package/dist/admins-components5.js.map +1 -1
  171. package/dist/admins-components51.js +1 -1
  172. package/dist/admins-components51.js.map +1 -1
  173. package/dist/admins-components54.js +1 -1
  174. package/dist/admins-components54.js.map +1 -1
  175. package/dist/admins-components56.js +1 -1
  176. package/dist/admins-components57.js +1 -1
  177. package/dist/admins-components57.js.map +1 -1
  178. package/dist/admins-components6.js +3 -3
  179. package/dist/admins-components62.js +1 -1
  180. package/dist/admins-components62.js.map +1 -1
  181. package/dist/admins-components64.js +1 -1
  182. package/dist/admins-components65.js.map +1 -1
  183. package/dist/admins-components66.js +1 -1
  184. package/dist/admins-components66.js.map +1 -1
  185. package/dist/admins-components68.js +5 -5
  186. package/dist/admins-components68.js.map +1 -1
  187. package/dist/admins-components7.js +1 -1
  188. package/dist/admins-components7.js.map +1 -1
  189. package/dist/admins-components70.js +1 -1
  190. package/dist/admins-components71.js +1 -1
  191. package/dist/admins-components71.js.map +1 -1
  192. package/dist/admins-components73.js +1 -1
  193. package/dist/admins-components74.js +1 -1
  194. package/dist/admins-components74.js.map +1 -1
  195. package/dist/admins-components75.js +1 -1
  196. package/dist/admins-components75.js.map +1 -1
  197. package/dist/admins-components77.js +1 -1
  198. package/dist/admins-components78.js +1 -1
  199. package/dist/admins-components79.js +1 -1
  200. package/dist/admins-components79.js.map +1 -1
  201. package/dist/admins-components8.js +2 -2
  202. package/dist/admins-components8.js.map +1 -1
  203. package/dist/admins-components80.js +2 -2
  204. package/dist/admins-components80.js.map +1 -1
  205. package/dist/admins-components82.js +4 -4
  206. package/dist/admins-components83.js +16 -23
  207. package/dist/admins-components83.js.map +1 -1
  208. package/dist/admins-components85.js +4 -4
  209. package/dist/admins-components85.js.map +1 -1
  210. package/dist/admins-components86.js.map +1 -1
  211. package/dist/admins-components87.js +46 -24
  212. package/dist/admins-components87.js.map +1 -1
  213. package/dist/admins-components88.js +4 -4
  214. package/dist/admins-components88.js.map +1 -1
  215. package/dist/admins-components90.js +1 -1
  216. package/dist/admins-components91.js +1 -1
  217. package/dist/admins-components91.js.map +1 -1
  218. package/dist/admins-components93.js +1 -1
  219. package/dist/admins-components94.js +1 -1
  220. package/dist/admins-components94.js.map +1 -1
  221. package/dist/admins-components96.js +1 -1
  222. package/dist/admins-components97.js +1 -1
  223. package/dist/admins-components97.js.map +1 -1
  224. package/dist/admins-components99.js +1 -1
  225. package/dist/main.css +1 -1
  226. package/dist/main.css.map +1 -1
  227. package/dist/src/composables/useDropdownAnchor.d.ts +0 -11
  228. package/dist/src/index.d.ts +1 -1
  229. package/dist/src/utils/dataFilters.d.ts +9 -0
  230. package/dist/{src/styles → styles}/components/data-table/filter-tags.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  231. package/dist/styles/components/dropdown-select.scss_vue_type_style_index_0_src_true_lang.css +1 -0
  232. package/package.json +1 -1
  233. package/dist/admins-components168.js.map +0 -1
  234. package/dist/admins-components172.js +0 -169
  235. package/dist/admins-components172.js.map +0 -1
  236. package/dist/src/styles/components/dropdown-select.scss_vue_type_style_index_0_src_true_lang.css +0 -1
  237. /package/dist/{src/styles → styles}/components/calendar.scss_vue_type_style_index_0_src_true_lang.css +0 -0
  238. /package/dist/{src/styles → styles}/components/copy-to-clipboard.scss_vue_type_style_index_0_src_true_lang.css +0 -0
  239. /package/dist/{src/styles → styles}/components/data-table/data-cards.scss_vue_type_style_index_0_src_true_lang.css +0 -0
  240. /package/dist/{src/styles → styles}/components/data-table/data-filters.scss_vue_type_style_index_0_src_true_lang.css +0 -0
  241. /package/dist/{src/styles → styles}/components/data-table/data-list-guide.scss_vue_type_style_index_0_src_true_lang.css +0 -0
  242. /package/dist/{src/styles → styles}/components/data-table/data-list-options.scss_vue_type_style_index_0_src_true_lang.css +0 -0
  243. /package/dist/{src/styles → styles}/components/data-table/data-list.scss_vue_type_style_index_0_src_true_lang.css +0 -0
  244. /package/dist/{src/styles → styles}/components/data-table/data-paginator.scss_vue_type_style_index_0_src_true_lang.css +0 -0
  245. /package/dist/{src/styles → styles}/components/data-table/data-search.scss_vue_type_style_index_0_src_true_lang.css +0 -0
  246. /package/dist/{src/styles → styles}/components/data-table/data-sort.scss_vue_type_style_index_0_src_true_lang.css +0 -0
  247. /package/dist/{src/styles → styles}/components/data-table/data-table.scss_vue_type_style_index_0_src_true_lang.css +0 -0
  248. /package/dist/{src/styles → styles}/components/data-table/filters-history.scss_vue_type_style_index_0_src_true_lang.css +0 -0
  249. /package/dist/{src/styles → styles}/components/data-table/tag-list.scss_vue_type_style_index_0_src_true_lang.css +0 -0
  250. /package/dist/{src/styles → styles}/components/datepickers.scss_vue_type_style_index_1_src_true_lang.css +0 -0
  251. /package/dist/{src/styles → styles}/components/header.scss_vue_type_style_index_0_src_true_lang.css +0 -0
  252. /package/dist/{src/styles → styles}/components/image-picker.scss_vue_type_style_index_0_src_true_lang.css +0 -0
  253. /package/dist/{src/styles → styles}/components/loader.scss_vue_type_style_index_0_src_true_lang.css +0 -0
  254. /package/dist/{src/styles → styles}/components/modal.scss_vue_type_style_index_0_src_true_lang.css +0 -0
  255. /package/dist/{src/styles → styles}/components/sidebar.scss_vue_type_style_index_0_src_true_lang.css +0 -0
  256. /package/dist/{src/styles → styles}/components/toast-notification.scss_vue_type_style_index_0_src_true_lang.css +0 -0
  257. /package/dist/{src/vueformelements → vueformelements}/ArticlePickerElement.vue_vue_type_style_index_0_scoped_43c54caa_lang.css +0 -0
  258. /package/dist/{src/vueformelements → vueformelements}/PartnerPickerElement.vue_vue_type_style_index_0_scoped_09bea4ae_lang.css +0 -0
@@ -32,35 +32,35 @@ import { getUrlParam as ee, joinUrl as te, navigateIframe as ne, removeUrlParam
32
32
  import { getDefaultPaginator as ae } from "./admins-components80.js";
33
33
  import oe from "./admins-components82.js";
34
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";
35
+ import { filterEmptyValues as ce, getDefaultFilterValues as le, getDefaultFilters as ue, getDefaultSavedFilter as de, getFilterUrlParams as fe, getSavedFilters as pe, writeFilterParams as me } from "./admins-components87.js";
36
+ import he from "./admins-components90.js";
37
+ import ge from "./admins-components93.js";
38
+ import _e from "./admins-components96.js";
39
+ import { getDefaultSearch as ve } from "./admins-components100.js";
40
+ import { dataListDefaults as ye, getDefaultFetchData as be } from "./admins-components103.js";
41
+ import xe from "./admins-components105.js";
42
+ import { isIpInUrl as Se } from "./admins-components106.js";
43
+ import { getCurrentSite as Ce } from "./admins-components107.js";
44
+ import { vTooltip as we } from "./admins-components108.js";
45
+ import { createNativeFetch as Te } from "./admins-components109.js";
46
+ import { FetchDetails as Ee, FetchError as De, Methods as Oe, initRequest as ke } from "./admins-components110.js";
47
+ import { useArticleEditorService as Ae } from "./admins-components111.js";
48
+ import { useCurrentUser as je } from "./admins-components112.js";
49
+ import { BackendService as Me, useBackendService as Ne } from "./admins-components113.js";
50
+ import { aoeConfig as Pe, configureArticleOfferElement as Fe } from "./admins-components167.js";
51
+ import Ie from "./admins-components169.js";
52
+ import { apeConfig as Le, configureArticlePickerElement as Re } from "./admins-components170.js";
53
+ import { configureImagePickerElement as ze, ipeConfig as Be } from "./admins-components171.js";
55
54
  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";
55
+ import He from "./admins-components174.js";
56
+ import { configureExternalArticleOfferElement as Ue, eaoeConfig as We } from "./admins-components175.js";
57
+ import Ge from "./admins-components176.js";
58
+ import { configureGalleryImageSelectorElement as Ke, gisConfig as qe } from "./admins-components177.js";
60
59
  import Je from "./admins-components178.js";
61
60
  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 };
61
+ import Xe from "./admins-components180.js";
62
+ import { configureInternalArticleOfferElement as Ze, iaoeConfig as Qe } from "./admins-components181.js";
63
+ import $e from "./admins-components182.js";
64
+ import { configurePartnerPickerElement as et, ppeconfig as tt } from "./admins-components183.js";
65
+ import nt from "./admins-components185.js";
66
+ export { Ie as ArticleOfferElement, Ve as ArticlePickerElement, Me as BackendService, u as Button, m as Calendar, v as Checkbox, E as ConfirmModal, D as CopyToClipboard, X as DataCards, ge as DataFilters, xe as DataList, N as DataListActions, Q as DataListOptions, oe as DataPaginator, Y as DataTable, h as DatePicker, y as DateRangePicker, He as DateTimePickerElement, S as DropdownMenu, x as DropdownSelect, k as ExternalArticleOffer, Ge as ExternalArticleOfferElement, Ee as FetchDetails, De as FetchError, _e as FilterTags, he as FiltersHistory, Je as GalleryImageSelectorElement, w as HeaderComponent, O as ImagePicker, Xe as ImagePickerDetailsElement, Ye as ImagePickerElement, A as InternalArticleOffer, $e as InternalArticleOfferElement, b as Loader, Oe as Methods, T as Modal, nt as PartnerPickerElement, C as Sidebar, _ as TextInput, M as ToastNotification, Pe as aoeConfig, Le as apeConfig, L as booleanToString, d as calendarConfigDefaults, e as castToDate, Fe as configureArticleOfferElement, Re as configureArticlePickerElement, Ue as configureExternalArticleOfferElement, Ke as configureGalleryImageSelectorElement, ze as configureImagePickerElement, Ze as configureInternalArticleOfferElement, et as configurePartnerPickerElement, Te as createNativeFetch, P as dataCardsSettingsDefaults, R as dataListConverters, ye as dataListDefaults, F as dataListSettingsDefaults, I as dataTableSettingsDefaults, f as datePickerConfigDefaults, p as dateRangePickerConfigDefaults, g as debounce, Z as deepMerge, We as eaoeConfig, t as earlierOf, n as endOfDay, z as enumMap, ce as filterEmptyValues, B as formatCurrency, r as formatDate, V as formatNumber, Ce as getCurrentSite, be as getDefaultFetchData, le as getDefaultFilterValues, ue as getDefaultFilters, ae as getDefaultPaginator, de as getDefaultSavedFilter, ve as getDefaultSearch, se as getDefaultSort, fe as getFilterUrlParams, $ as getFullStorageKey, pe as getSavedFilters, ee as getUrlParam, qe as gisConfig, Qe as iaoeConfig, H as identity, ke as initRequest, Be as ipeConfig, Se as isIpInUrl, te as joinUrl, i as laterOf, U as listToString, W as localToLocalString, a as localToUTCString, ne as navigateIframe, o as parseDate, tt 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, Ae as useArticleEditorService, Ne as useBackendService, je as useCurrentUser, J as utcToLocalString, l as utcToString, we as vTooltip, me as writeFilterParams };
@@ -13,7 +13,7 @@ function g(e = "search", t = "exactMatch") {
13
13
  exactMatch: a === "true" || a === "1" ? !0 : a === "false" || a === "0" ? !1 : void 0
14
14
  });
15
15
  }
16
- var _ = /* @__PURE__ */ u({
16
+ var _ = /*@__PURE__*/ u({
17
17
  __name: "DataSearch",
18
18
  props: {
19
19
  showExactMatch: {
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components100.js","names":[],"sources":["../src/components/data-table/DataSearch.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface DataSearchProps {\n showExactMatch?: boolean\n showSearch?: boolean\n placeholder?: string\n handleUrl?: boolean\n searchKey?: string\n exactMatchKey?: string\n}\n\nexport interface DefaultSearch {\n search?: string\n exactMatch?: boolean | undefined\n}\n\nexport function getDefaultSearch(\n searchKey = 'search',\n exactMatchKey = 'exactMatch',\n): DefaultSearch {\n const params = new URLSearchParams(\n typeof window === 'undefined' ? '' : window.location.search,\n )\n const search = params.get(searchKey) ?? ''\n const exactRaw = params.get(exactMatchKey)\n const exactMatch = exactRaw === 'true' || exactRaw === '1'\n ? true\n : exactRaw === 'false' || exactRaw === '0'\n ? false\n : undefined\n return filterEmptyValues({ search, exactMatch })\n}\n</script>\n\n<script setup lang=\"ts\">\nimport Checkbox from '@/components/Checkbox.vue'\nimport TextInput from '@/components/TextInput.vue'\nimport { writeUrlOrRemove } from '@/utils/url'\nimport { debounce } from '@/utils/debounce'\nimport { onMounted, ref } from 'vue'\nimport { filterEmptyValues } from '@/utils/dataFilters'\n\nconst props = withDefaults(\n defineProps<DataSearchProps>(),\n {\n showExactMatch: true,\n showSearch: true,\n placeholder: 'Keresés...',\n handleUrl: false,\n searchKey: 'search',\n exactMatchKey: 'exactMatch',\n },\n)\n\ntype SearchFilterPayload = { [k: string]: string | boolean }\n\n// Seed refs from URL synchronously at setup so the input shows the URL value\n// on first render. URL is the only persistent source for search.\nconst initial = getDefaultSearch(props.searchKey, props.exactMatchKey)\nconst exactMatch = ref<boolean | undefined>(initial.exactMatch)\nconst search = ref<string>(initial.search ?? '')\n\nconst emit = defineEmits<{\n 'search-change': [filters: SearchFilterPayload]\n}>()\n\nfunction emitChange() {\n const filters: SearchFilterPayload = {}\n if (props.showSearch) filters[props.searchKey] = search.value\n if (props.showExactMatch) filters[props.exactMatchKey] = exactMatch.value ?? false\n emit('search-change', filters)\n}\n\nfunction syncToUrl() {\n writeUrlOrRemove(props.searchKey, search.value, { handleUrl: props.handleUrl })\n writeUrlOrRemove(props.exactMatchKey, exactMatch.value ?? false, {\n handleUrl: props.handleUrl,\n default: false,\n })\n}\n\nconst debouncedSyncToUrl = debounce(syncToUrl, 300)\n\nfunction onCheckboxChange(value: boolean | undefined) {\n exactMatch.value = value\n emitChange()\n debouncedSyncToUrl()\n}\n\nfunction onSearchChange(value: string | number | null) {\n search.value = value == null ? '' : String(value).trim()\n emitChange()\n debouncedSyncToUrl()\n}\n\nonMounted(() => {\n if (!props.handleUrl) return\n // If we had URL values at setup, push them up to the parent now.\n if (search.value || (exactMatch.value ?? false)) emitChange()\n})\n</script>\n<template>\n <div class=\"data-search-wrapper\">\n <Checkbox\n v-if=\"showExactMatch\"\n :model-value=\"exactMatch\"\n class=\"gap-1\"\n @update:model-value=\"onCheckboxChange\"\n >\n <template #label>\n <span class=\"data-search-label\">Pontos<br />egyezés </span>\n </template>\n </Checkbox>\n <TextInput\n v-if=\"showSearch\"\n type=\"text\"\n clearable\n :model-value=\"search\"\n inputClass=\"data-search-input\"\n label-on-border=\"Keresés\"\n :placeholder=\"placeholder\"\n :autocomplete=\"false\"\n @update:model-value=\"onSearchChange\"\n />\n </div>\n</template>\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-search.scss\"></style>\n"],"mappings":";;;;;;;;AAeA,SAAgB,EACd,IAAY,UACZ,IAAgB,cACD;CACf,IAAM,IAAS,IAAI,gBACjB,OAAO,SAAW,MAAc,KAAK,OAAO,SAAS,MACvD,GACM,IAAS,EAAO,IAAI,CAAS,KAAK,IAClC,IAAW,EAAO,IAAI,CAAa;CAMzC,OAAO,EAAkB;EAAE;EAAQ,YALhB,MAAa,UAAU,MAAa,MACnD,KACA,MAAa,WAAW,MAAa,MACrC,KACA,KAAA;CAC0C,CAAC;AACjD;;;;;;;;;;;;;;;;;;;;;;EAWA,IAAM,IAAQ,GAgBR,IAAU,EAAiB,EAAM,WAAW,EAAM,aAAa,GAC/D,IAAa,EAAyB,EAAQ,UAAU,GACxD,IAAS,EAAY,EAAQ,UAAU,EAAE,GAEzC,IAAO;EAIb,SAAS,IAAa;GACpB,IAAM,IAA+B,CAAC;GAGtC,AAFI,EAAM,eAAY,EAAQ,EAAM,aAAa,EAAO,QACpD,EAAM,mBAAgB,EAAQ,EAAM,iBAAiB,EAAW,SAAS,KAC7E,EAAK,iBAAiB,CAAO;EAC/B;EAEA,SAAS,IAAY;GAEnB,AADA,EAAiB,EAAM,WAAW,EAAO,OAAO,EAAE,WAAW,EAAM,UAAU,CAAC,GAC9E,EAAiB,EAAM,eAAe,EAAW,SAAS,IAAO;IAC/D,WAAW,EAAM;IACjB,SAAS;GACX,CAAC;EACH;EAEA,IAAM,IAAqB,EAAS,GAAW,GAAG;EAElD,SAAS,EAAiB,GAA4B;GAGpD,AAFA,EAAW,QAAQ,GACnB,EAAW,GACX,EAAmB;EACrB;EAEA,SAAS,EAAe,GAA+B;GAGrD,AAFA,EAAO,QAAQ,KAAS,OAAO,KAAK,OAAO,CAAK,EAAE,KAAK,GACvD,EAAW,GACX,EAAmB;EACrB;SAEA,QAAgB;GACT,EAAM,cAEP,EAAO,UAAU,EAAW,SAAS,QAAQ,EAAW;EAC9D,CAAC,mBAGC,EAsBM,OAtBN,GAsBM,CApBI,EAAA,kBAAA,EAAA,GADR,EASW,GAAA;;GAPR,eAAa,EAAA;GACd,OAAM;GACL,uBAAoB;;GAEV,OAAK,QAC6C,CAAA,GAAA,AAAA,EAAA,OAAA,CAA3D,EAA2D,QAAA,EAArD,OAAM,oBAAmB,GAAA;MAAC,QAAM;IAAA,EAAM,IAAA;MAAA,UAAQ;;;uCAIhD,EAAA,cAAA,EAAA,GADR,EAUE,GAAA;;GARA,MAAK;GACL,WAAA;GACC,eAAa,EAAA;GACd,YAAW;GACX,mBAAgB;GACf,aAAa,EAAA;GACb,cAAc;GACd,uBAAoB"}
1
+ {"version":3,"file":"admins-components100.js","names":[],"sources":["../src/components/data-table/DataSearch.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface DataSearchProps {\n showExactMatch?: boolean\n showSearch?: boolean\n placeholder?: string\n handleUrl?: boolean\n searchKey?: string\n exactMatchKey?: string\n}\n\nexport interface DefaultSearch {\n search?: string\n exactMatch?: boolean | undefined\n}\n\nexport function getDefaultSearch(\n searchKey = 'search',\n exactMatchKey = 'exactMatch',\n): DefaultSearch {\n const params = new URLSearchParams(\n typeof window === 'undefined' ? '' : window.location.search,\n )\n const search = params.get(searchKey) ?? ''\n const exactRaw = params.get(exactMatchKey)\n const exactMatch = exactRaw === 'true' || exactRaw === '1'\n ? true\n : exactRaw === 'false' || exactRaw === '0'\n ? false\n : undefined\n return filterEmptyValues({ search, exactMatch })\n}\n</script>\n\n<script setup lang=\"ts\">\nimport Checkbox from '@/components/Checkbox.vue'\nimport TextInput from '@/components/TextInput.vue'\nimport { writeUrlOrRemove } from '@/utils/url'\nimport { debounce } from '@/utils/debounce'\nimport { onMounted, ref } from 'vue'\nimport { filterEmptyValues } from '@/utils/dataFilters'\n\nconst props = withDefaults(\n defineProps<DataSearchProps>(),\n {\n showExactMatch: true,\n showSearch: true,\n placeholder: 'Keresés...',\n handleUrl: false,\n searchKey: 'search',\n exactMatchKey: 'exactMatch',\n },\n)\n\ntype SearchFilterPayload = { [k: string]: string | boolean }\n\n// Seed refs from URL synchronously at setup so the input shows the URL value\n// on first render. URL is the only persistent source for search.\nconst initial = getDefaultSearch(props.searchKey, props.exactMatchKey)\nconst exactMatch = ref<boolean | undefined>(initial.exactMatch)\nconst search = ref<string>(initial.search ?? '')\n\nconst emit = defineEmits<{\n 'search-change': [filters: SearchFilterPayload]\n}>()\n\nfunction emitChange() {\n const filters: SearchFilterPayload = {}\n if (props.showSearch) filters[props.searchKey] = search.value\n if (props.showExactMatch) filters[props.exactMatchKey] = exactMatch.value ?? false\n emit('search-change', filters)\n}\n\nfunction syncToUrl() {\n writeUrlOrRemove(props.searchKey, search.value, { handleUrl: props.handleUrl })\n writeUrlOrRemove(props.exactMatchKey, exactMatch.value ?? false, {\n handleUrl: props.handleUrl,\n default: false,\n })\n}\n\nconst debouncedSyncToUrl = debounce(syncToUrl, 300)\n\nfunction onCheckboxChange(value: boolean | undefined) {\n exactMatch.value = value\n emitChange()\n debouncedSyncToUrl()\n}\n\nfunction onSearchChange(value: string | number | null) {\n search.value = value == null ? '' : String(value).trim()\n emitChange()\n debouncedSyncToUrl()\n}\n\nonMounted(() => {\n if (!props.handleUrl) return\n // If we had URL values at setup, push them up to the parent now.\n if (search.value || (exactMatch.value ?? false)) emitChange()\n})\n</script>\n<template>\n <div class=\"data-search-wrapper\">\n <Checkbox\n v-if=\"showExactMatch\"\n :model-value=\"exactMatch\"\n class=\"gap-1\"\n @update:model-value=\"onCheckboxChange\"\n >\n <template #label>\n <span class=\"data-search-label\">Pontos<br />egyezés </span>\n </template>\n </Checkbox>\n <TextInput\n v-if=\"showSearch\"\n type=\"text\"\n clearable\n :model-value=\"search\"\n inputClass=\"data-search-input\"\n label-on-border=\"Keresés\"\n :placeholder=\"placeholder\"\n :autocomplete=\"false\"\n @update:model-value=\"onSearchChange\"\n />\n </div>\n</template>\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-search.scss\"></style>\n"],"mappings":";;;;;;;;AAeA,SAAgB,EACd,IAAY,UACZ,IAAgB,cACD;CACf,IAAM,IAAS,IAAI,gBACjB,OAAO,SAAW,MAAc,KAAK,OAAO,SAAS,MACvD,GACM,IAAS,EAAO,IAAI,CAAS,KAAK,IAClC,IAAW,EAAO,IAAI,CAAa;CAMzC,OAAO,EAAkB;EAAE;EAAQ,YALhB,MAAa,UAAU,MAAa,MACnD,KACA,MAAa,WAAW,MAAa,MACrC,KACA,KAAA;CAC0C,CAAC;AACjD;;;;;;;;;;;;;;;;;;;;;;EAWA,IAAM,IAAQ,GAgBR,IAAU,EAAiB,EAAM,WAAW,EAAM,aAAa,GAC/D,IAAa,EAAyB,EAAQ,UAAU,GACxD,IAAS,EAAY,EAAQ,UAAU,EAAE,GAEzC,IAAO;EAIb,SAAS,IAAa;GACpB,IAAM,IAA+B,CAAC;GAGtC,AAFI,EAAM,eAAY,EAAQ,EAAM,aAAa,EAAO,QACpD,EAAM,mBAAgB,EAAQ,EAAM,iBAAiB,EAAW,SAAS,KAC7E,EAAK,iBAAiB,CAAO;EAC/B;EAEA,SAAS,IAAY;GAEnB,AADA,EAAiB,EAAM,WAAW,EAAO,OAAO,EAAE,WAAW,EAAM,UAAU,CAAC,GAC9E,EAAiB,EAAM,eAAe,EAAW,SAAS,IAAO;IAC/D,WAAW,EAAM;IACjB,SAAS;GACX,CAAC;EACH;EAEA,IAAM,IAAqB,EAAS,GAAW,GAAG;EAElD,SAAS,EAAiB,GAA4B;GAGpD,AAFA,EAAW,QAAQ,GACnB,EAAW,GACX,EAAmB;EACrB;EAEA,SAAS,EAAe,GAA+B;GAGrD,AAFA,EAAO,QAAQ,KAAS,OAAO,KAAK,OAAO,CAAK,CAAC,CAAC,KAAK,GACvD,EAAW,GACX,EAAmB;EACrB;SAEA,QAAgB;GACT,EAAM,cAEP,EAAO,UAAU,EAAW,SAAS,QAAQ,EAAW;EAC9D,CAAC,cAGC,EAAA,GAAA,EAsBM,OAtBN,GAsBM,CApBI,EAAA,kBADR,EAAA,GAAA,EASW,GAAA;;GAPR,eAAa,EAAA;GACd,OAAM;GACL,uBAAoB;;GAEV,OAAK,QAC6C,CAAA,GAAA,AAAA,EAAA,OAAA,CAA3D,EAA2D,QAAA,EAArD,OAAM,oBAAmB,GAAA;IAAC,EAAA,QAAM;IAAA,EAAM,IAAA;IAAA,EAAA,UAAQ;;;EAIhD,GAAA,GAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,EAAA,GAAA,EAAA,cADR,EAAA,GAAA,EAUE,GAAA;;GARA,MAAK;GACL,WAAA;GACC,eAAa,EAAA;GACd,YAAW;GACX,mBAAgB;GACf,aAAa,EAAA;GACb,cAAc;GACd,uBAAoB"}
@@ -1,7 +1,7 @@
1
- import './src/styles/components/data-table/data-search.scss_vue_type_style_index_0_src_true_lang.css';
2
- import e from "./admins-components100.js";
1
+ import './styles/components/data-table/data-search.scss_vue_type_style_index_0_src_true_lang.css';
2
+ import e, { getDefaultSearch as t } from "./admins-components100.js";
3
3
  /* empty css */
4
4
  //#region src/components/data-table/DataSearch.vue
5
- var t = e;
5
+ var n = e;
6
6
  //#endregion
7
- export { t as default };
7
+ export { n as default, t as getDefaultSearch };
@@ -6,15 +6,15 @@ import { getDefaultPaginator as i } from "./admins-components80.js";
6
6
  import a from "./admins-components82.js";
7
7
  import { getDefaultSort as o } from "./admins-components83.js";
8
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 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";
9
+ import { getDefaultFilterValues as c, getDefaultFilters as l } from "./admins-components87.js";
10
+ import u from "./admins-components93.js";
11
+ import d from "./admins-components96.js";
12
+ import f from "./admins-components99.js";
13
+ import { getDefaultSearch as p } from "./admins-components100.js";
14
+ import ee from "./admins-components102.js";
15
+ import { computed as m, createBlock as h, createCommentVNode as g, createElementBlock as _, createElementVNode as v, createSlots as y, createVNode as b, defineComponent as x, guardReactiveProps as S, mergeDefaults as C, mergeProps as w, normalizeClass as te, normalizeProps as T, onBeforeUnmount as ne, onMounted as re, openBlock as E, ref as D, renderList as O, renderSlot as k, useSlots as A, withCtx as j } from "vue";
16
16
  //#region src/components/data-table/DataList.vue?vue&type=script&setup=true&lang.ts
17
- var ne = { class: "c-data-list__toolbar" }, N = {
17
+ var M = { class: "c-data-list__toolbar" }, N = {
18
18
  key: 2,
19
19
  class: "flex-center gap-1 flex-center-wrap-on-mobile"
20
20
  }, P = { class: "c-data-list__toolbar__right" }, F = {
@@ -27,7 +27,7 @@ var ne = { class: "c-data-list__toolbar" }, N = {
27
27
  fillHeight: !1
28
28
  };
29
29
  function I(e, t) {
30
- let n = i(t), r = o(), a = u(), s = c(e, t, !0);
30
+ let n = i(t), r = o(), a = p(), s = c(e, t, !0);
31
31
  return {
32
32
  ...n,
33
33
  ...r,
@@ -35,9 +35,9 @@ function I(e, t) {
35
35
  ...s
36
36
  };
37
37
  }
38
- var L = /* @__PURE__ */ y({
38
+ var L = /*@__PURE__*/ x({
39
39
  __name: "DataList",
40
- props: /* @__PURE__ */ x({
40
+ props: /*@__PURE__*/ C({
41
41
  config: {},
42
42
  items: {},
43
43
  settings: {},
@@ -65,91 +65,91 @@ var L = /* @__PURE__ */ y({
65
65
  "sort-change",
66
66
  "search-change"
67
67
  ],
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;
68
+ setup(i, { expose: c, emit: p }) {
69
+ let x = D(null), C = A(), F = m(() => !!C.actions), I = i;
70
+ function L(e) {
71
+ let t = I[e];
72
+ return t && Object.hasOwn(t, "handleUrl") ? t.handleUrl : I.handleUrl;
73
73
  }
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) => ({
74
+ let R = m(() => ({
75
+ ...I.searchConfig,
76
+ handleUrl: L("searchConfig")
77
+ })), z = m(() => ({
78
+ ...I.filterConfig,
79
+ handleUrl: L("filterConfig")
80
+ })), B = p, V = D(!1), H = D(!1), U = D(null), W = D(!1), G = D(null), K = D(!1), q = D(I.filterConfig?.items ? l(I.filterConfig.items, I.id, !1) : {}), J = null;
81
+ re(() => {
82
+ J = new ResizeObserver((e) => {
83
+ W.value = (e[0]?.contentRect.width ?? 0) < I.layoutBreakpoint;
84
+ }), G.value && J.observe(G.value);
85
+ }), ne(() => J?.disconnect());
86
+ let ie = m(() => {
87
+ let e = U.value?.layout;
88
+ return e === "table" || e === "cards" ? e : W.value ? "cards" : "table";
89
+ }), Y = m(() => {
90
+ if (!U.value) return I.config;
91
+ let e = U.value.columnOrder, t = I.config.columns.map((e) => ({
92
92
  ...e,
93
- visible: H.value.columns[e.property] ?? e.visible !== !1
93
+ visible: U.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
- ...L.config,
99
+ ...I.config,
100
100
  columns: t
101
101
  };
102
102
  });
103
103
  function ae(e) {
104
- H.value = e, z("settings-change", e);
104
+ U.value = e, B("settings-change", e);
105
105
  }
106
- u({
107
- openOptions: () => B.value = !0,
108
- closeOptions: () => B.value = !1,
109
- openFilters: () => G.value = !0,
110
- closeFilters: () => G.value = !1
106
+ c({
107
+ openOptions: () => V.value = !0,
108
+ closeOptions: () => V.value = !1,
109
+ openFilters: () => K.value = !0,
110
+ closeFilters: () => K.value = !1
111
111
  });
112
112
  async function oe(e) {
113
- G.value = !0, setTimeout(() => {
113
+ K.value = !0, setTimeout(() => {
114
114
  x.value?.focusFilter(e);
115
115
  }, 300);
116
116
  }
117
117
  function se(e) {
118
- K.value = e.values, z("filter-change", e.transformed);
118
+ q.value = e.values, B("filter-change", e.transformed);
119
119
  }
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) => ({
120
+ let X = m(() => Object.values(q.value).filter((e) => e != null && e !== "").length), ce = m(() => !!I.pagination && (I.items.length > 0 || !I.loading)), le = (e) => {
121
+ B("search-change", e);
122
+ }, Z = m(() => I.config.columns.filter((e) => e.sort).map((e) => ({
123
123
  value: e.property,
124
124
  label: e.label
125
- }))), Q = O(L.handleUrl ? o() : null), $ = (e) => {
126
- Q.value = e, z("sort-change", e);
125
+ }))), Q = D(I.handleUrl ? o() : null), $ = (e) => {
126
+ Q.value = e, B("sort-change", e);
127
127
  };
128
- return (o, c) => (D(), h("div", {
128
+ return (o, c) => (E(), _("div", {
129
129
  ref_key: "root",
130
- ref: W,
131
- class: C(["ac-component c-data-list", { "c-data-list--fill-height": i.fillHeight }])
130
+ ref: G,
131
+ class: te(["ac-component c-data-list", { "c-data-list--fill-height": i.fillHeight }])
132
132
  }, [
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, {
133
+ v("div", M, [
134
+ i.useSearch ? (E(), h(ee, w({ key: 0 }, R.value, { onSearchChange: le }), null, 16)) : g("", !0),
135
+ i.useFilters && i.filterConfig?.items && i.filterConfig.items.length > 0 ? (E(), h(e, {
136
136
  key: 1,
137
137
  label: "Szűrők",
138
138
  icon: "fa-solid fa-filter",
139
- onClick: c[0] ||= (e) => G.value = !0,
139
+ onClick: c[0] ||= (e) => K.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
- }, null, 8, ["type", "indicator"])) : m("", !0),
144
- i.useFilters && i.filterConfig?.items && i.filterConfig.items.length > 0 ? (D(), h("div", N, [v(l, {
145
- filters: K.value,
143
+ }, null, 8, ["type", "indicator"])) : g("", !0),
144
+ i.useFilters && i.filterConfig?.items && i.filterConfig.items.length > 0 ? (E(), _("div", N, [b(d, {
145
+ filters: q.value,
146
146
  items: i.filterConfig.items,
147
147
  compact: "",
148
148
  onRemove: c[1] ||= (e) => x.value?.clearFilter(e),
149
149
  onOpenFilter: oe
150
- }, null, 8, ["filters", "items"])])) : m("", !0),
151
- g("div", P, [
152
- Z.value.length > 0 ? (D(), p(s, {
150
+ }, null, 8, ["filters", "items"])])) : g("", !0),
151
+ v("div", P, [
152
+ Z.value.length > 0 ? (E(), h(s, {
153
153
  key: 0,
154
154
  modelValue: Q.value,
155
155
  "onUpdate:modelValue": c[2] ||= (e) => Q.value = e,
@@ -160,51 +160,51 @@ var L = /* @__PURE__ */ y({
160
160
  "modelValue",
161
161
  "options",
162
162
  "handle-url"
163
- ])) : m("", !0),
164
- v(e, {
163
+ ])) : g("", !0),
164
+ b(e, {
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) => B.value = !0
168
+ onClick: c[3] ||= (e) => V.value = !0
169
169
  }),
170
- v(e, {
170
+ b(e, {
171
171
  icon: "fa-solid fa-question",
172
172
  class: "lh-normal",
173
- onClick: c[4] ||= (e) => V.value = !0,
173
+ onClick: c[4] ||= (e) => H.value = !0,
174
174
  ariaLabel: "Súgó"
175
175
  })
176
176
  ])
177
177
  ]),
178
- i.useFilters && i.filterConfig?.items && i.filterConfig.items.length > 0 ? (D(), p(ee, S({
178
+ i.useFilters && i.filterConfig?.items && i.filterConfig.items.length > 0 ? (E(), h(u, w({
179
179
  key: 0,
180
180
  ref_key: "dataFiltersRef",
181
181
  ref: x
182
- }, ie.value, {
182
+ }, z.value, {
183
183
  "storage-key": i.id,
184
- open: G.value,
185
- onClose: c[5] ||= (e) => G.value = !1,
184
+ open: K.value,
185
+ onClose: c[5] ||= (e) => K.value = !1,
186
186
  onChange: se
187
- }), null, 16, ["storage-key", "open"])) : m("", !0),
188
- v(te, {
189
- open: V.value,
190
- onClose: c[6] ||= (e) => V.value = !1
187
+ }), null, 16, ["storage-key", "open"])) : g("", !0),
188
+ b(f, {
189
+ open: H.value,
190
+ onClose: c[6] ||= (e) => H.value = !1
191
191
  }, null, 8, ["open"]),
192
- J.value === "table" ? (D(), p(t, {
192
+ ie.value === "table" ? (E(), h(t, {
193
193
  key: 1,
194
194
  config: Y.value,
195
195
  loading: i.loading,
196
196
  items: i.items,
197
- settings: H.value ?? void 0,
197
+ settings: U.value ?? void 0,
198
198
  "initial-sort": Q.value,
199
- onFilterChange: c[7] ||= (e) => z("filter-change", e),
200
- onSelectionChange: c[8] ||= (e) => z("selection-change", e),
199
+ onFilterChange: c[7] ||= (e) => B("filter-change", e),
200
+ onSelectionChange: c[8] ||= (e) => B("selection-change", e),
201
201
  onSortChange: $
202
- }, _({ _: 2 }, [k(Y.value.columns, (e) => ({
202
+ }, y({ _: 2 }, [O(Y.value.columns, (e) => ({
203
203
  name: `cell:${e.property}`,
204
- fn: M((t) => [A(o.$slots, `cell:${e.property}`, w(b(t)))])
205
- })), I.value ? {
204
+ fn: j((t) => [k(o.$slots, `cell:${e.property}`, T(S(t)))])
205
+ })), F.value ? {
206
206
  name: "actions",
207
- fn: M((e) => [A(o.$slots, "actions", w(b(e)))]),
207
+ fn: j((e) => [k(o.$slots, "actions", T(S(e)))]),
208
208
  key: "0"
209
209
  } : void 0]), 1032, [
210
210
  "config",
@@ -212,19 +212,19 @@ var L = /* @__PURE__ */ y({
212
212
  "items",
213
213
  "settings",
214
214
  "initial-sort"
215
- ])) : (D(), p(n, {
215
+ ])) : (E(), h(n, {
216
216
  key: 2,
217
217
  config: Y.value,
218
218
  loading: i.loading,
219
219
  items: i.items,
220
- settings: H.value ?? void 0,
221
- onSelectionChange: c[9] ||= (e) => z("selection-change", e)
222
- }, _({ _: 2 }, [k(Y.value.columns, (e) => ({
220
+ settings: U.value ?? void 0,
221
+ onSelectionChange: c[9] ||= (e) => B("selection-change", e)
222
+ }, y({ _: 2 }, [O(Y.value.columns, (e) => ({
223
223
  name: `cell:${e.property}`,
224
- fn: M((t) => [A(o.$slots, `cell:${e.property}`, w(b(t)))])
225
- })), I.value ? {
224
+ fn: j((t) => [k(o.$slots, `cell:${e.property}`, T(S(t)))])
225
+ })), F.value ? {
226
226
  name: "actions",
227
- fn: M((e) => [A(o.$slots, "actions", w(b(e)))]),
227
+ fn: j((e) => [k(o.$slots, "actions", T(S(e)))]),
228
228
  key: "0"
229
229
  } : void 0]), 1032, [
230
230
  "config",
@@ -232,24 +232,24 @@ var L = /* @__PURE__ */ y({
232
232
  "items",
233
233
  "settings"
234
234
  ])),
235
- i.pagination && ce.value ? (D(), p(a, {
235
+ i.pagination && ce.value ? (E(), h(a, {
236
236
  key: 3,
237
237
  settings: i.pagination,
238
238
  "storage-key": i.id,
239
239
  "handle-url": i.handleUrl,
240
- "onUpdate:pagination": c[10] ||= (e) => z("pagination-change", e)
240
+ "onUpdate:pagination": c[10] ||= (e) => B("pagination-change", e)
241
241
  }, null, 8, [
242
242
  "settings",
243
243
  "storage-key",
244
244
  "handle-url"
245
- ])) : m("", !0),
246
- v(r, {
247
- open: B.value,
245
+ ])) : g("", !0),
246
+ b(r, {
247
+ open: V.value,
248
248
  columns: i.config.columns,
249
249
  settings: i.settings ?? {},
250
250
  "storage-key": i.id,
251
251
  orderable: i.orderable,
252
- onClose: c[11] ||= (e) => B.value = !1,
252
+ onClose: c[11] ||= (e) => V.value = !1,
253
253
  onChange: ae
254
254
  }, null, 8, [
255
255
  "open",
@@ -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, 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
+ {"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 = getDefaultFilterValues(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, getDefaultFilterValues } 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,7 +1,7 @@
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";
1
+ import './styles/components/data-table/data-list.scss_vue_type_style_index_0_src_true_lang.css';
2
+ import e, { dataListDefaults as t, getDefaultFetchData as n } from "./admins-components103.js";
3
3
  /* empty css */
4
4
  //#region src/components/data-table/DataList.vue
5
- var t = e;
5
+ var r = e;
6
6
  //#endregion
7
- export { t as default };
7
+ export { t as dataListDefaults, r as default, n as getDefaultFetchData };
@@ -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, 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":""}
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 = getDefaultFilterValues(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, getDefaultFilterValues } 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":""}