admins-components 9.0.66 → 9.0.68

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 (250) hide show
  1. package/dist/admins-components.js +39 -39
  2. package/dist/admins-components100.js +75 -249
  3. package/dist/admins-components100.js.map +1 -1
  4. package/dist/admins-components102.js +2 -2
  5. package/dist/admins-components102.js.map +1 -1
  6. package/dist/admins-components103.js +256 -3
  7. package/dist/admins-components103.js.map +1 -1
  8. package/dist/admins-components105.js +6 -52
  9. package/dist/admins-components105.js.map +1 -1
  10. package/dist/admins-components106.js +3 -82
  11. package/dist/admins-components106.js.map +1 -1
  12. package/dist/admins-components107.js +3 -113
  13. package/dist/admins-components107.js.map +1 -1
  14. package/dist/admins-components108.js +49 -44
  15. package/dist/admins-components108.js.map +1 -1
  16. package/dist/admins-components109.js +80 -104
  17. package/dist/admins-components109.js.map +1 -1
  18. package/dist/admins-components110.js +109 -16
  19. package/dist/admins-components110.js.map +1 -1
  20. package/dist/admins-components111.js +46 -6
  21. package/dist/admins-components111.js.map +1 -1
  22. package/dist/admins-components112.js +100 -246
  23. package/dist/admins-components112.js.map +1 -1
  24. package/dist/admins-components113.js +19 -26
  25. package/dist/admins-components113.js.map +1 -1
  26. package/dist/admins-components114.js +6 -27
  27. package/dist/admins-components114.js.map +1 -1
  28. package/dist/admins-components115.js +239 -159
  29. package/dist/admins-components115.js.map +1 -1
  30. package/dist/admins-components116.js +26 -67
  31. package/dist/admins-components116.js.map +1 -1
  32. package/dist/admins-components117.js +25 -64
  33. package/dist/admins-components117.js.map +1 -1
  34. package/dist/admins-components118.js +169 -27
  35. package/dist/admins-components118.js.map +1 -1
  36. package/dist/admins-components119.js +65 -13
  37. package/dist/admins-components119.js.map +1 -1
  38. package/dist/admins-components120.js +64 -24
  39. package/dist/admins-components120.js.map +1 -1
  40. package/dist/admins-components121.js +29 -8
  41. package/dist/admins-components121.js.map +1 -1
  42. package/dist/admins-components122.js +16 -4
  43. package/dist/admins-components122.js.map +1 -1
  44. package/dist/admins-components123.js +27 -3
  45. package/dist/admins-components123.js.map +1 -1
  46. package/dist/admins-components124.js +8 -2
  47. package/dist/admins-components124.js.map +1 -1
  48. package/dist/admins-components125.js +4 -21
  49. package/dist/admins-components125.js.map +1 -1
  50. package/dist/admins-components126.js +3 -14
  51. package/dist/admins-components126.js.map +1 -1
  52. package/dist/admins-components127.js +3 -8
  53. package/dist/admins-components127.js.map +1 -1
  54. package/dist/admins-components128.js +19 -11
  55. package/dist/admins-components128.js.map +1 -1
  56. package/dist/admins-components129.js +14 -26
  57. package/dist/admins-components129.js.map +1 -1
  58. package/dist/admins-components130.js +7 -82
  59. package/dist/admins-components130.js.map +1 -1
  60. package/dist/admins-components131.js +9 -7
  61. package/dist/admins-components131.js.map +1 -1
  62. package/dist/admins-components132.js +25 -4
  63. package/dist/admins-components132.js.map +1 -1
  64. package/dist/admins-components133.js +81 -6
  65. package/dist/admins-components133.js.map +1 -1
  66. package/dist/admins-components134.js +10 -6
  67. package/dist/admins-components134.js.map +1 -1
  68. package/dist/admins-components135.js +2 -3
  69. package/dist/admins-components135.js.map +1 -1
  70. package/dist/admins-components136.js +8 -15
  71. package/dist/admins-components136.js.map +1 -1
  72. package/dist/admins-components137.js +6 -12
  73. package/dist/admins-components137.js.map +1 -1
  74. package/dist/admins-components138.js +6 -30
  75. package/dist/admins-components138.js.map +1 -1
  76. package/dist/admins-components139.js +15 -4
  77. package/dist/admins-components139.js.map +1 -1
  78. package/dist/admins-components140.js +13 -29
  79. package/dist/admins-components140.js.map +1 -1
  80. package/dist/admins-components141.js +30 -5
  81. package/dist/admins-components141.js.map +1 -1
  82. package/dist/admins-components142.js +4 -5
  83. package/dist/admins-components142.js.map +1 -1
  84. package/dist/admins-components143.js +28 -7
  85. package/dist/admins-components143.js.map +1 -1
  86. package/dist/admins-components144.js +4 -73
  87. package/dist/admins-components144.js.map +1 -1
  88. package/dist/admins-components145.js +4 -28
  89. package/dist/admins-components145.js.map +1 -1
  90. package/dist/admins-components146.js +8 -59
  91. package/dist/admins-components146.js.map +1 -1
  92. package/dist/admins-components147.js +72 -22
  93. package/dist/admins-components147.js.map +1 -1
  94. package/dist/admins-components148.js +26 -47
  95. package/dist/admins-components148.js.map +1 -1
  96. package/dist/admins-components149.js +58 -30
  97. package/dist/admins-components149.js.map +1 -1
  98. package/dist/admins-components150.js +24 -3
  99. package/dist/admins-components150.js.map +1 -1
  100. package/dist/admins-components151.js +44 -173
  101. package/dist/admins-components151.js.map +1 -1
  102. package/dist/admins-components152.js +28 -43
  103. package/dist/admins-components152.js.map +1 -1
  104. package/dist/admins-components153.js +3 -37
  105. package/dist/admins-components153.js.map +1 -1
  106. package/dist/admins-components154.js +176 -43
  107. package/dist/admins-components154.js.map +1 -1
  108. package/dist/admins-components155.js +41 -136
  109. package/dist/admins-components155.js.map +1 -1
  110. package/dist/admins-components156.js +36 -57
  111. package/dist/admins-components156.js.map +1 -1
  112. package/dist/admins-components157.js +44 -5
  113. package/dist/admins-components157.js.map +1 -1
  114. package/dist/admins-components158.js +141 -6
  115. package/dist/admins-components158.js.map +1 -1
  116. package/dist/admins-components159.js +57 -75
  117. package/dist/admins-components159.js.map +1 -1
  118. package/dist/admins-components160.js +6 -28
  119. package/dist/admins-components160.js.map +1 -1
  120. package/dist/admins-components161.js +5 -1930
  121. package/dist/admins-components161.js.map +1 -1
  122. package/dist/admins-components162.js +75 -24810
  123. package/dist/admins-components162.js.map +1 -1
  124. package/dist/admins-components163.js +28 -8
  125. package/dist/admins-components163.js.map +1 -1
  126. package/dist/admins-components164.js +1929 -5
  127. package/dist/admins-components164.js.map +1 -0
  128. package/dist/admins-components165.js +24809 -140
  129. package/dist/admins-components165.js.map +1 -1
  130. package/dist/admins-components166.js +3 -3
  131. package/dist/admins-components166.js.map +1 -1
  132. package/dist/admins-components167.js +7 -9
  133. package/dist/admins-components168.js +143 -0
  134. package/dist/admins-components168.js.map +1 -0
  135. package/dist/admins-components169.js +8 -167
  136. package/dist/admins-components169.js.map +1 -1
  137. package/dist/admins-components170.js +8 -52
  138. package/dist/admins-components170.js.map +1 -1
  139. package/dist/admins-components172.js +161 -43
  140. package/dist/admins-components172.js.map +1 -1
  141. package/dist/admins-components173.js +53 -6
  142. package/dist/admins-components173.js.map +1 -1
  143. package/dist/admins-components174.js +8 -79
  144. package/dist/admins-components174.js.map +1 -1
  145. package/dist/admins-components175.js +35 -43
  146. package/dist/admins-components175.js.map +1 -1
  147. package/dist/admins-components176.js +6 -63
  148. package/dist/admins-components176.js.map +1 -1
  149. package/dist/admins-components177.js +79 -8
  150. package/dist/admins-components177.js.map +1 -1
  151. package/dist/admins-components178.js +43 -37
  152. package/dist/admins-components178.js.map +1 -1
  153. package/dist/admins-components179.js +62 -8
  154. package/dist/admins-components179.js.map +1 -1
  155. package/dist/admins-components180.js +10 -0
  156. package/dist/admins-components180.js.map +1 -0
  157. package/dist/admins-components181.js +44 -50
  158. package/dist/admins-components181.js.map +1 -1
  159. package/dist/admins-components182.js +10 -0
  160. package/dist/admins-components182.js.map +1 -0
  161. package/dist/admins-components184.js +59 -0
  162. package/dist/admins-components184.js.map +1 -0
  163. package/dist/admins-components29.js.map +1 -1
  164. package/dist/admins-components30.js.map +1 -1
  165. package/dist/admins-components5.js.map +1 -1
  166. package/dist/admins-components6.js.map +1 -1
  167. package/dist/admins-components60.js +31 -73
  168. package/dist/admins-components60.js.map +1 -1
  169. package/dist/admins-components62.js +4 -2
  170. package/dist/admins-components62.js.map +1 -1
  171. package/dist/admins-components63.js +95 -88
  172. package/dist/admins-components63.js.map +1 -1
  173. package/dist/admins-components64.js +70 -4
  174. package/dist/admins-components64.js.map +1 -1
  175. package/dist/admins-components65.js +4 -157
  176. package/dist/admins-components65.js.map +1 -1
  177. package/dist/admins-components66.js +90 -0
  178. package/dist/admins-components66.js.map +1 -0
  179. package/dist/admins-components67.js +2 -5
  180. package/dist/admins-components67.js.map +1 -1
  181. package/dist/admins-components68.js +130 -136
  182. package/dist/admins-components68.js.map +1 -1
  183. package/dist/admins-components70.js +2 -2
  184. package/dist/admins-components70.js.map +1 -1
  185. package/dist/admins-components71.js +163 -7
  186. package/dist/admins-components71.js.map +1 -1
  187. package/dist/admins-components73.js +8 -0
  188. package/dist/admins-components73.js.map +1 -0
  189. package/dist/admins-components74.js +7 -6
  190. package/dist/admins-components74.js.map +1 -1
  191. package/dist/admins-components75.js +289 -8
  192. package/dist/admins-components75.js.map +1 -1
  193. package/dist/admins-components77.js +6 -145
  194. package/dist/admins-components77.js.map +1 -1
  195. package/dist/admins-components78.js +10 -0
  196. package/dist/admins-components78.js.map +1 -0
  197. package/dist/admins-components79.js +43 -6
  198. package/dist/admins-components79.js.map +1 -1
  199. package/dist/admins-components80.js +130 -121
  200. package/dist/admins-components80.js.map +1 -1
  201. package/dist/admins-components82.js +2 -2
  202. package/dist/admins-components82.js.map +1 -1
  203. package/dist/admins-components83.js +133 -56
  204. package/dist/admins-components83.js.map +1 -1
  205. package/dist/admins-components85.js +6 -238
  206. package/dist/admins-components85.js.map +1 -1
  207. package/dist/admins-components86.js +60 -0
  208. package/dist/admins-components86.js.map +1 -0
  209. package/dist/admins-components87.js +67 -6
  210. package/dist/admins-components87.js.map +1 -1
  211. package/dist/admins-components88.js +216 -208
  212. package/dist/admins-components88.js.map +1 -1
  213. package/dist/admins-components90.js +2 -2
  214. package/dist/admins-components90.js.map +1 -1
  215. package/dist/admins-components91.js +218 -58
  216. package/dist/admins-components91.js.map +1 -1
  217. package/dist/admins-components93.js +2 -2
  218. package/dist/admins-components93.js.map +1 -1
  219. package/dist/admins-components94.js +65 -194
  220. package/dist/admins-components94.js.map +1 -1
  221. package/dist/admins-components96.js +2 -2
  222. package/dist/admins-components96.js.map +1 -1
  223. package/dist/admins-components97.js +188 -71
  224. package/dist/admins-components97.js.map +1 -1
  225. package/dist/admins-components99.js +2 -2
  226. package/dist/admins-components99.js.map +1 -1
  227. package/dist/src/components/Button.vue.d.ts +0 -4
  228. package/dist/src/components/DropdownMenu.vue.d.ts +0 -4
  229. package/dist/src/components/data-table/DataList.vue.d.ts +0 -5
  230. package/dist/src/components/data-table/DataSearch.vue.d.ts +0 -4
  231. package/dist/src/components/data-table/DataSort.vue.d.ts +0 -5
  232. package/dist/src/components/data-table/FilterTags.vue.d.ts +0 -6
  233. package/dist/src/components/data-table/TagList.vue.d.ts +18 -0
  234. package/dist/src/index.d.ts +1 -1
  235. package/dist/src/styles/components/data-table/tag-list.scss_vue_type_style_index_0_src_true_lang.css +1 -0
  236. package/dist/src/utils/dataListConverters.d.ts +16 -1
  237. package/package.json +1 -1
  238. package/dist/admins-components104.js +0 -4
  239. package/dist/admins-components104.js.map +0 -1
  240. package/dist/admins-components167.js.map +0 -1
  241. package/dist/admins-components171.js +0 -10
  242. package/dist/admins-components171.js.map +0 -1
  243. package/dist/admins-components61.js +0 -71
  244. package/dist/admins-components61.js.map +0 -1
  245. package/dist/admins-components72.js +0 -289
  246. package/dist/admins-components72.js.map +0 -1
  247. package/dist/admins-components76.js +0 -44
  248. package/dist/admins-components76.js.map +0 -1
  249. package/dist/admins-components84.js +0 -68
  250. package/dist/admins-components84.js.map +0 -1
@@ -21,45 +21,45 @@ 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
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, textEllipse as G, utcToLocalString as K } from "./admins-components60.js";
25
- import q from "./admins-components67.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";
26
25
  import J from "./admins-components70.js";
27
- import { deepMerge as Y } from "./admins-components71.js";
28
- import X from "./admins-components74.js";
29
- import { getFullStorageKey as Z } from "./admins-components75.js";
30
- import { getUrlParam as Q, joinUrl as $, navigateIframe as ee, removeUrlParam as te, setUrlParam as ne } from "./admins-components76.js";
31
- import { getDefaultPaginator as re } from "./admins-components77.js";
32
- import ie from "./admins-components79.js";
33
- import { getDefaultSort as ae } from "./admins-components80.js";
34
- import { filterEmptyValues as oe, getDefaultFilters as se, getDefaultSavedFilter as ce, getFilterUrlParams as le, getSavedFilters as ue, writeFilterParams as de } from "./admins-components84.js";
35
- import fe from "./admins-components87.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";
36
35
  import pe from "./admins-components90.js";
37
36
  import me from "./admins-components93.js";
38
- import { getDefaultSearch as he } from "./admins-components97.js";
39
- import { dataListDefaults as ge, getDefaultFetchData as _e } from "./admins-components100.js";
40
- import ve from "./admins-components102.js";
41
- import { isIpInUrl as ye } from "./admins-components103.js";
42
- import { getCurrentSite as be } from "./admins-components104.js";
43
- import { vTooltip as xe } from "./admins-components105.js";
44
- import { createNativeFetch as Se } from "./admins-components106.js";
45
- import { FetchDetails as Ce, FetchError as we, Methods as Te, initRequest as Ee } from "./admins-components107.js";
46
- import { useArticleEditorService as De } from "./admins-components108.js";
47
- import { useCurrentUser as Oe } from "./admins-components109.js";
48
- import { BackendService as ke, useBackendService as Ae } from "./admins-components110.js";
49
- import { aoeConfig as je, configureArticleOfferElement as Me } from "./admins-components163.js";
50
- import Ne from "./admins-components165.js";
51
- import { apeConfig as Pe, configureArticlePickerElement as Fe } from "./admins-components166.js";
52
- import { configureImagePickerElement as Ie, ipeConfig as Le } from "./admins-components167.js";
53
- import Re from "./admins-components169.js";
54
- import ze from "./admins-components170.js";
55
- import { configureExternalArticleOfferElement as Be, eaoeConfig as Ve } from "./admins-components171.js";
56
- import He from "./admins-components172.js";
57
- import { configureGalleryImageSelectorElement as Ue, gisConfig as We } from "./admins-components173.js";
58
- import Ge from "./admins-components174.js";
59
- import Ke from "./admins-components175.js";
60
- import qe from "./admins-components176.js";
61
- import { configureInternalArticleOfferElement as Je, iaoeConfig as Ye } from "./admins-components177.js";
62
- import Xe from "./admins-components178.js";
63
- import { configurePartnerPickerElement as Ze, ppeconfig as Qe } from "./admins-components179.js";
64
- import $e from "./admins-components181.js";
65
- export { Ne as ArticleOfferElement, Re as ArticlePickerElement, ke as BackendService, u as Button, m as Calendar, v as Checkbox, E as ConfirmModal, D as CopyToClipboard, J as DataCards, pe as DataFilters, ve as DataList, X as DataListOptions, ie as DataPaginator, q as DataTable, h as DatePicker, y as DateRangePicker, ze as DateTimePickerElement, S as DropdownMenu, x as DropdownSelect, k as ExternalArticleOffer, He as ExternalArticleOfferElement, Ce as FetchDetails, we as FetchError, me as FilterTags, fe as FiltersHistory, Ge as GalleryImageSelectorElement, w as HeaderComponent, O as ImagePicker, qe as ImagePickerDetailsElement, Ke as ImagePickerElement, A as InternalArticleOffer, Xe as InternalArticleOfferElement, b as Loader, Te as Methods, T as Modal, $e as PartnerPickerElement, C as Sidebar, _ as TextInput, M as ToastNotification, je as aoeConfig, Pe as apeConfig, I as booleanToString, d as calendarConfigDefaults, e as castToDate, Me as configureArticleOfferElement, Fe as configureArticlePickerElement, Be as configureExternalArticleOfferElement, Ue as configureGalleryImageSelectorElement, Ie as configureImagePickerElement, Je as configureInternalArticleOfferElement, Ze as configurePartnerPickerElement, Se as createNativeFetch, N as dataCardsSettingsDefaults, L as dataListConverters, ge as dataListDefaults, P as dataListSettingsDefaults, F as dataTableSettingsDefaults, f as datePickerConfigDefaults, p as dateRangePickerConfigDefaults, g as debounce, Y as deepMerge, Ve as eaoeConfig, t as earlierOf, n as endOfDay, R as enumMap, oe as filterEmptyValues, z as formatCurrency, r as formatDate, B as formatNumber, be as getCurrentSite, _e as getDefaultFetchData, se as getDefaultFilters, re as getDefaultPaginator, ce as getDefaultSavedFilter, he as getDefaultSearch, ae as getDefaultSort, le as getFilterUrlParams, Z as getFullStorageKey, ue as getSavedFilters, Q as getUrlParam, We as gisConfig, Ye as iaoeConfig, V as identity, Ee as initRequest, Le as ipeConfig, ye as isIpInUrl, $ as joinUrl, i as laterOf, H as listToString, U as localToLocalString, a as localToUTCString, ee as navigateIframe, o as parseDate, Qe as ppeconfig, te as removeUrlParam, ne as setUrlParam, W as shortUuid, s as startOfDay, c as startOfWeek, G as textEllipse, j as toast, De as useArticleEditorService, Ae as useBackendService, Oe as useCurrentUser, K as utcToLocalString, l as utcToString, xe as vTooltip, de as writeFilterParams };
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 };
@@ -1,257 +1,83 @@
1
- import e from "./admins-components6.js";
2
- import t from "./admins-components67.js";
3
- import n from "./admins-components70.js";
4
- import r from "./admins-components74.js";
5
- import { getDefaultPaginator as i } from "./admins-components77.js";
6
- import a from "./admins-components79.js";
7
- import { getDefaultSort as o } from "./admins-components80.js";
8
- import s from "./admins-components82.js";
9
- import { getDefaultFilters as c } from "./admins-components84.js";
10
- import ee from "./admins-components90.js";
11
- import l from "./admins-components93.js";
12
- import u from "./admins-components96.js";
13
- import { getDefaultSearch as d } from "./admins-components97.js";
14
- import te from "./admins-components99.js";
15
- import { computed as f, createBlock as p, createCommentVNode as m, createElementBlock as h, createElementVNode as g, createSlots as _, createVNode as v, defineComponent as y, guardReactiveProps as b, mergeDefaults as x, mergeProps as S, normalizeClass as ne, normalizeProps as C, onBeforeUnmount as w, onMounted as re, openBlock as T, ref as E, renderList as D, renderSlot as O, withCtx as k } from "vue";
16
- //#region src/components/data-table/DataList.vue?vue&type=script&setup=true&lang.ts
17
- var A = { class: "c-data-list__toolbar" }, j = {
18
- key: 2,
19
- class: "flex-center gap-1 flex-center-wrap-on-mobile"
20
- }, M = { class: "c-data-list__toolbar__right" }, N = {
21
- layoutBreakpoint: 768,
22
- orderable: !0,
23
- loading: !1,
24
- useSearch: !0,
25
- useFilters: !0,
26
- handleUrl: !1,
27
- fillHeight: !1
28
- };
29
- function P(e, t) {
30
- let n = i(t), r = o(), a = d(), s = c(e, t, !0);
31
- return {
32
- ...n,
33
- ...r,
34
- ...a,
35
- ...s
36
- };
1
+ import { debounce as e } from "./admins-components15.js";
2
+ import t from "./admins-components17.js";
3
+ import n from "./admins-components19.js";
4
+ import { writeUrlOrRemove as r } from "./admins-components79.js";
5
+ import { filterEmptyValues as i } from "./admins-components87.js";
6
+ import { createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createTextVNode as l, defineComponent as u, onMounted as d, openBlock as f, ref as p, withCtx as m } from "vue";
7
+ //#region src/components/data-table/DataSearch.vue?vue&type=script&setup=true&lang.ts
8
+ var h = { class: "data-search-wrapper" };
9
+ function g(e = "search", t = "exactMatch") {
10
+ let n = new URLSearchParams(typeof window > "u" ? "" : window.location.search), r = n.get(e) ?? "", a = n.get(t);
11
+ return i({
12
+ search: r,
13
+ exactMatch: a === "true" || a === "1" ? !0 : a === "false" || a === "0" ? !1 : void 0
14
+ });
37
15
  }
38
- var F = /* @__PURE__ */ y({
39
- __name: "DataList",
40
- props: /* @__PURE__ */ x({
41
- config: {},
42
- items: {},
43
- settings: {},
44
- id: {},
45
- layoutBreakpoint: {},
46
- orderable: { type: Boolean },
47
- pagination: {},
48
- loading: { type: Boolean },
49
- handleUrl: { type: Boolean },
50
- useSearch: { type: Boolean },
51
- useFilters: { type: Boolean },
52
- searchConfig: {},
53
- filterConfig: {},
54
- fillHeight: { type: Boolean }
55
- }, {
56
- ...N,
57
- searchConfig: void 0,
58
- filterConfig: void 0
59
- }),
60
- emits: [
61
- "filter-change",
62
- "selection-change",
63
- "settings-change",
64
- "pagination-change",
65
- "sort-change",
66
- "search-change"
67
- ],
68
- setup(i, { expose: d, emit: y }) {
69
- let x = E(null), N = i;
70
- function P(e) {
71
- let t = N[e];
72
- return t && Object.hasOwn(t, "handleUrl") ? t.handleUrl : N.handleUrl;
16
+ var _ = /* @__PURE__ */ u({
17
+ __name: "DataSearch",
18
+ props: {
19
+ showExactMatch: {
20
+ type: Boolean,
21
+ default: !0
22
+ },
23
+ showSearch: {
24
+ type: Boolean,
25
+ default: !0
26
+ },
27
+ placeholder: { default: "Keresés..." },
28
+ handleUrl: {
29
+ type: Boolean,
30
+ default: !1
31
+ },
32
+ searchKey: { default: "search" },
33
+ exactMatchKey: { default: "exactMatch" }
34
+ },
35
+ emits: ["search-change"],
36
+ setup(i, { emit: u }) {
37
+ let _ = i, v = g(_.searchKey, _.exactMatchKey), y = p(v.exactMatch), b = p(v.search ?? ""), x = u;
38
+ function S() {
39
+ let e = {};
40
+ _.showSearch && (e[_.searchKey] = b.value), _.showExactMatch && (e[_.exactMatchKey] = y.value ?? !1), x("search-change", e);
73
41
  }
74
- let F = f(() => ({
75
- ...N.searchConfig,
76
- handleUrl: P("searchConfig")
77
- })), I = f(() => ({
78
- ...N.filterConfig,
79
- handleUrl: P("filterConfig")
80
- })), L = y, R = E(!1), z = E(!1), B = E(null), V = E(!1), H = E(null), U = E(!1), W = E(N.filterConfig?.items ? c(N.filterConfig.items, N.id, !1) : {}), G = null;
81
- re(() => {
82
- G = new ResizeObserver((e) => {
83
- V.value = (e[0]?.contentRect.width ?? 0) < N.layoutBreakpoint;
84
- }), H.value && G.observe(H.value);
85
- }), w(() => G?.disconnect());
86
- let K = f(() => {
87
- let e = B.value?.layout;
88
- return e === "table" || e === "cards" ? e : V.value ? "cards" : "table";
89
- }), q = f(() => {
90
- if (!B.value) return N.config;
91
- let e = B.value.columnOrder, t = N.config.columns.map((e) => ({
92
- ...e,
93
- visible: B.value.columns[e.property] ?? e.visible !== !1
94
- }));
95
- return e?.length && t.sort((t, n) => {
96
- let r = e.indexOf(t.property), i = e.indexOf(n.property);
97
- return (r === -1 ? 999 : r) - (i === -1 ? 999 : i);
98
- }), {
99
- ...N.config,
100
- columns: t
101
- };
102
- });
103
- function J(e) {
104
- B.value = e, L("settings-change", e);
42
+ function C() {
43
+ r(_.searchKey, b.value, { handleUrl: _.handleUrl }), r(_.exactMatchKey, y.value ?? !1, {
44
+ handleUrl: _.handleUrl,
45
+ default: !1
46
+ });
105
47
  }
106
- d({
107
- openOptions: () => R.value = !0,
108
- closeOptions: () => R.value = !1,
109
- openFilters: () => U.value = !0,
110
- closeFilters: () => U.value = !1
111
- });
112
- async function Y(e) {
113
- U.value = !0, setTimeout(() => {
114
- x.value?.focusFilter(e);
115
- }, 300);
48
+ let w = e(C, 300);
49
+ function T(e) {
50
+ y.value = e, S(), w();
116
51
  }
117
- function ie(e) {
118
- W.value = e.values, L("filter-change", e.transformed);
52
+ function E(e) {
53
+ b.value = e == null ? "" : String(e).trim(), S(), w();
119
54
  }
120
- let X = f(() => Object.values(W.value).filter((e) => e != null && e !== "").length), ae = f(() => !!N.pagination && (N.items.length > 0 || !N.loading)), oe = (e) => {
121
- L("search-change", e);
122
- }, Z = f(() => N.config.columns.filter((e) => e.sort).map((e) => ({
123
- value: e.property,
124
- label: e.label
125
- }))), Q = E(N.handleUrl ? o() : null), $ = (e) => {
126
- Q.value = e, L("sort-change", e);
127
- };
128
- return (o, c) => (T(), h("div", {
129
- ref_key: "root",
130
- ref: H,
131
- class: ne(["ac-component c-data-list", { "c-data-list--fill-height": i.fillHeight }])
132
- }, [
133
- g("div", A, [
134
- i.useSearch ? (T(), p(te, S({ key: 0 }, F.value, { onSearchChange: oe }), null, 16)) : m("", !0),
135
- i.useFilters && i.filterConfig?.items && i.filterConfig.items.length > 0 ? (T(), p(e, {
136
- key: 1,
137
- label: "Szűrők",
138
- icon: "fa-solid fa-filter",
139
- onClick: c[0] ||= (e) => U.value = !0,
140
- style: { "flex-shrink": "0" },
141
- type: X.value > 0 ? "primary" : "normal",
142
- indicator: X.value > 0 ? X.value : void 0
143
- }, null, 8, ["type", "indicator"])) : m("", !0),
144
- i.useFilters && i.filterConfig?.items && i.filterConfig.items.length > 0 ? (T(), h("div", j, [v(l, {
145
- filters: W.value,
146
- items: i.filterConfig.items,
147
- compact: "",
148
- onRemove: c[1] ||= (e) => x.value?.clearFilter(e),
149
- onOpenFilter: Y
150
- }, null, 8, ["filters", "items"])])) : m("", !0),
151
- g("div", M, [
152
- Z.value.length > 0 ? (T(), p(s, {
153
- key: 0,
154
- modelValue: Q.value,
155
- "onUpdate:modelValue": c[2] ||= (e) => Q.value = e,
156
- options: Z.value,
157
- "handle-url": i.handleUrl,
158
- onSortChange: $
159
- }, null, 8, [
160
- "modelValue",
161
- "options",
162
- "handle-url"
163
- ])) : m("", !0),
164
- v(e, {
165
- icon: "fa-solid fa-gear",
166
- class: "lh-normal settings-btn",
167
- ariaLabel: "Beállítások",
168
- onClick: c[3] ||= (e) => R.value = !0
169
- }),
170
- v(e, {
171
- icon: "fa-solid fa-question",
172
- class: "lh-normal",
173
- onClick: c[4] ||= (e) => z.value = !0,
174
- ariaLabel: "Súgó"
175
- })
176
- ])
177
- ]),
178
- i.useFilters && i.filterConfig?.items && i.filterConfig.items.length > 0 ? (T(), p(ee, S({
179
- key: 0,
180
- ref_key: "dataFiltersRef",
181
- ref: x
182
- }, I.value, {
183
- "storage-key": i.id,
184
- open: U.value,
185
- onClose: c[5] ||= (e) => U.value = !1,
186
- onChange: ie
187
- }), null, 16, ["storage-key", "open"])) : m("", !0),
188
- v(u, {
189
- open: z.value,
190
- onClose: c[6] ||= (e) => z.value = !1
191
- }, null, 8, ["open"]),
192
- K.value === "table" ? (T(), p(t, {
193
- key: 1,
194
- config: q.value,
195
- loading: i.loading,
196
- items: i.items,
197
- settings: B.value ?? void 0,
198
- "initial-sort": Q.value,
199
- onFilterChange: c[7] ||= (e) => L("filter-change", e),
200
- onSelectionChange: c[8] ||= (e) => L("selection-change", e),
201
- onSortChange: $
202
- }, _({ _: 2 }, [D(q.value.columns, (e) => ({
203
- name: `cell:${e.property}`,
204
- fn: k((t) => [O(o.$slots, `cell:${e.property}`, C(b(t)))])
205
- }))]), 1032, [
206
- "config",
207
- "loading",
208
- "items",
209
- "settings",
210
- "initial-sort"
211
- ])) : (T(), p(n, {
212
- key: 2,
213
- config: q.value,
214
- loading: i.loading,
215
- items: i.items,
216
- settings: B.value ?? void 0,
217
- onSelectionChange: c[9] ||= (e) => L("selection-change", e)
218
- }, _({ _: 2 }, [D(q.value.columns, (e) => ({
219
- name: `cell:${e.property}`,
220
- fn: k((t) => [O(o.$slots, `cell:${e.property}`, C(b(t)))])
221
- }))]), 1032, [
222
- "config",
223
- "loading",
224
- "items",
225
- "settings"
226
- ])),
227
- i.pagination && ae.value ? (T(), p(a, {
228
- key: 3,
229
- settings: i.pagination,
230
- "storage-key": i.id,
231
- "handle-url": i.handleUrl,
232
- "onUpdate:pagination": c[10] ||= (e) => L("pagination-change", e)
233
- }, null, 8, [
234
- "settings",
235
- "storage-key",
236
- "handle-url"
237
- ])) : m("", !0),
238
- v(r, {
239
- open: R.value,
240
- columns: i.config.columns,
241
- settings: i.settings ?? {},
242
- "storage-key": i.id,
243
- orderable: i.orderable,
244
- onClose: c[11] ||= (e) => R.value = !1,
245
- onChange: J
246
- }, null, 8, [
247
- "open",
248
- "columns",
249
- "settings",
250
- "storage-key",
251
- "orderable"
252
- ])
253
- ], 2));
55
+ return d(() => {
56
+ _.handleUrl && (b.value || (y.value ?? !1)) && S();
57
+ }), (e, r) => (f(), s("div", h, [i.showExactMatch ? (f(), a(n, {
58
+ key: 0,
59
+ "model-value": y.value,
60
+ class: "gap-1",
61
+ "onUpdate:modelValue": T
62
+ }, {
63
+ label: m(() => [...r[0] ||= [c("span", { class: "data-search-label" }, [
64
+ l("Pontos"),
65
+ c("br"),
66
+ l("egyezés ")
67
+ ], -1)]]),
68
+ _: 1
69
+ }, 8, ["model-value"])) : o("", !0), i.showSearch ? (f(), a(t, {
70
+ key: 1,
71
+ type: "text",
72
+ clearable: "",
73
+ "model-value": b.value,
74
+ inputClass: "data-search-input",
75
+ "label-on-border": "Keresés",
76
+ placeholder: i.placeholder,
77
+ autocomplete: !1,
78
+ "onUpdate:modelValue": E
79
+ }, null, 8, ["model-value", "placeholder"])) : o("", !0)]));
254
80
  }
255
81
  });
256
82
  //#endregion
257
- export { N as dataListDefaults, F as default, P as getDefaultFetchData };
83
+ export { _ as default, g as getDefaultSearch };
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components100.js","names":[],"sources":["../src/components/data-table/DataList.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type { PaginatorSettings } from '@/types/data-list'\nexport type { DataSearchProps } from './DataSearch.vue'\nexport type { DataFiltersProps } from './DataFilters.vue'\n\nexport interface DataListProps {\n config: DataListConfig\n items: Record<string, unknown>[]\n settings?: Partial<DataListSettings>\n id: string\n layoutBreakpoint?: number\n orderable?: boolean\n pagination?: PaginatorSettings\n loading?: boolean\n handleUrl?: boolean\n useSearch?: boolean\n useFilters?: boolean\n searchConfig?: DataSearchProps\n filterConfig?: DataFiltersProps\n /**\n * If true, the table wrapper fills its parent column instead of capping\n * at `--data-list-max-height`. The parent must be a flex column with a\n * definite height for the tbody to scroll inside the wrapper.\n */\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-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,7 +1,7 @@
1
- import './src/styles/components/data-table/data-list.scss_vue_type_style_index_0_src_true_lang.css';
1
+ import './src/styles/components/data-table/data-search.scss_vue_type_style_index_0_src_true_lang.css';
2
2
  import e from "./admins-components100.js";
3
3
  /* empty css */
4
- //#region src/components/data-table/DataList.vue
4
+ //#region src/components/data-table/DataSearch.vue
5
5
  var t = e;
6
6
  //#endregion
7
7
  export { t as default };
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components102.js","names":[],"sources":["../src/components/data-table/DataList.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type { PaginatorSettings } from '@/types/data-list'\nexport type { DataSearchProps } from './DataSearch.vue'\nexport type { DataFiltersProps } from './DataFilters.vue'\n\nexport interface DataListProps {\n config: DataListConfig\n items: Record<string, unknown>[]\n settings?: Partial<DataListSettings>\n id: string\n layoutBreakpoint?: number\n orderable?: boolean\n pagination?: PaginatorSettings\n loading?: boolean\n handleUrl?: boolean\n useSearch?: boolean\n useFilters?: boolean\n searchConfig?: DataSearchProps\n filterConfig?: DataFiltersProps\n /**\n * If true, the table wrapper fills its parent column instead of capping\n * at `--data-list-max-height`. The parent must be a flex column with a\n * definite height for the tbody to scroll inside the wrapper.\n */\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-components102.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":""}