admins-components 9.0.65 → 9.0.67

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