admins-components 9.0.27 → 9.0.29

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 (322) hide show
  1. package/README.md +4 -22
  2. package/dist/admins-components.js +53 -52
  3. package/dist/admins-components100.js +79 -249
  4. package/dist/admins-components100.js.map +1 -1
  5. package/dist/admins-components101.js +112 -26
  6. package/dist/admins-components101.js.map +1 -1
  7. package/dist/admins-components102.js +45 -26
  8. package/dist/admins-components102.js.map +1 -1
  9. package/dist/admins-components103.js +102 -168
  10. package/dist/admins-components103.js.map +1 -1
  11. package/dist/admins-components104.js +17 -65
  12. package/dist/admins-components104.js.map +1 -1
  13. package/dist/admins-components105.js +6 -66
  14. package/dist/admins-components105.js.map +1 -1
  15. package/dist/admins-components106.js +247 -25
  16. package/dist/admins-components106.js.map +1 -1
  17. package/dist/admins-components107.js +27 -16
  18. package/dist/admins-components107.js.map +1 -1
  19. package/dist/admins-components108.js +26 -25
  20. package/dist/admins-components108.js.map +1 -1
  21. package/dist/admins-components109.js +171 -8
  22. package/dist/admins-components109.js.map +1 -1
  23. package/dist/admins-components110.js +67 -3
  24. package/dist/admins-components110.js.map +1 -1
  25. package/dist/admins-components111.js +67 -3
  26. package/dist/admins-components111.js.map +1 -1
  27. package/dist/admins-components112.js +30 -3
  28. package/dist/admins-components112.js.map +1 -1
  29. package/dist/admins-components113.js +15 -20
  30. package/dist/admins-components113.js.map +1 -1
  31. package/dist/admins-components114.js +27 -14
  32. package/dist/admins-components114.js.map +1 -1
  33. package/dist/admins-components115.js +8 -7
  34. package/dist/admins-components115.js.map +1 -1
  35. package/dist/admins-components116.js +4 -13
  36. package/dist/admins-components116.js.map +1 -1
  37. package/dist/admins-components117.js +3 -26
  38. package/dist/admins-components117.js.map +1 -1
  39. package/dist/admins-components118.js +3 -83
  40. package/dist/admins-components118.js.map +1 -1
  41. package/dist/admins-components119.js +19 -9
  42. package/dist/admins-components119.js.map +1 -1
  43. package/dist/admins-components120.js +14 -5
  44. package/dist/admins-components120.js.map +1 -1
  45. package/dist/admins-components121.js +7 -7
  46. package/dist/admins-components121.js.map +1 -1
  47. package/dist/admins-components122.js +12 -6
  48. package/dist/admins-components122.js.map +1 -1
  49. package/dist/admins-components123.js +25 -5
  50. package/dist/admins-components123.js.map +1 -1
  51. package/dist/admins-components124.js +82 -14
  52. package/dist/admins-components124.js.map +1 -1
  53. package/dist/admins-components125.js +10 -12
  54. package/dist/admins-components125.js.map +1 -1
  55. package/dist/admins-components126.js +5 -30
  56. package/dist/admins-components126.js.map +1 -1
  57. package/dist/admins-components127.js +7 -3
  58. package/dist/admins-components127.js.map +1 -1
  59. package/dist/admins-components128.js +7 -29
  60. package/dist/admins-components128.js.map +1 -1
  61. package/dist/admins-components129.js +3 -2
  62. package/dist/admins-components129.js.map +1 -1
  63. package/dist/admins-components130.js +12 -2
  64. package/dist/admins-components130.js.map +1 -1
  65. package/dist/admins-components131.js +12 -7
  66. package/dist/admins-components131.js.map +1 -1
  67. package/dist/admins-components132.js +30 -74
  68. package/dist/admins-components132.js.map +1 -1
  69. package/dist/admins-components133.js +4 -29
  70. package/dist/admins-components133.js.map +1 -1
  71. package/dist/admins-components134.js +27 -57
  72. package/dist/admins-components134.js.map +1 -1
  73. package/dist/admins-components135.js +5 -24
  74. package/dist/admins-components135.js.map +1 -1
  75. package/dist/admins-components136.js +5 -50
  76. package/dist/admins-components136.js.map +1 -1
  77. package/dist/admins-components137.js +7 -30
  78. package/dist/admins-components137.js.map +1 -1
  79. package/dist/admins-components138.js +74 -3
  80. package/dist/admins-components138.js.map +1 -1
  81. package/dist/admins-components139.js +27 -177
  82. package/dist/admins-components139.js.map +1 -1
  83. package/dist/admins-components140.js +58 -45
  84. package/dist/admins-components140.js.map +1 -1
  85. package/dist/admins-components141.js +23 -36
  86. package/dist/admins-components141.js.map +1 -1
  87. package/dist/admins-components142.js +46 -42
  88. package/dist/admins-components142.js.map +1 -1
  89. package/dist/admins-components143.js +28 -138
  90. package/dist/admins-components143.js.map +1 -1
  91. package/dist/admins-components144.js +3 -58
  92. package/dist/admins-components144.js.map +1 -1
  93. package/dist/admins-components145.js +178 -6
  94. package/dist/admins-components145.js.map +1 -1
  95. package/dist/admins-components146.js +45 -5
  96. package/dist/admins-components146.js.map +1 -1
  97. package/dist/admins-components147.js +37 -76
  98. package/dist/admins-components147.js.map +1 -1
  99. package/dist/admins-components148.js +45 -28
  100. package/dist/admins-components148.js.map +1 -1
  101. package/dist/admins-components149.js +129 -1919
  102. package/dist/admins-components149.js.map +1 -1
  103. package/dist/admins-components15.js +8 -42
  104. package/dist/admins-components15.js.map +1 -1
  105. package/dist/admins-components150.js +54 -24807
  106. package/dist/admins-components150.js.map +1 -1
  107. package/dist/admins-components151.js +6 -8
  108. package/dist/admins-components151.js.map +1 -1
  109. package/dist/admins-components152.js +6 -7
  110. package/dist/admins-components152.js.map +1 -0
  111. package/dist/admins-components153.js +76 -142
  112. package/dist/admins-components153.js.map +1 -1
  113. package/dist/admins-components154.js +28 -8
  114. package/dist/admins-components154.js.map +1 -1
  115. package/dist/admins-components155.js +1930 -8
  116. package/dist/admins-components155.js.map +1 -1
  117. package/dist/admins-components156.js +24812 -0
  118. package/dist/admins-components156.js.map +1 -0
  119. package/dist/admins-components157.js +8 -167
  120. package/dist/admins-components157.js.map +1 -1
  121. package/dist/admins-components158.js +7 -51
  122. package/dist/admins-components159.js +141 -8
  123. package/dist/admins-components159.js.map +1 -1
  124. package/dist/admins-components16.js +89 -4
  125. package/dist/admins-components16.js.map +1 -1
  126. package/dist/admins-components160.js +8 -49
  127. package/dist/admins-components160.js.map +1 -1
  128. package/dist/admins-components161.js +9 -6
  129. package/dist/admins-components161.js.map +1 -1
  130. package/dist/admins-components163.js +160 -50
  131. package/dist/admins-components163.js.map +1 -1
  132. package/dist/admins-components164.js +34 -42
  133. package/dist/admins-components164.js.map +1 -1
  134. package/dist/admins-components165.js +3 -3
  135. package/dist/admins-components165.js.map +1 -1
  136. package/dist/admins-components166.js +18 -20
  137. package/dist/admins-components166.js.map +1 -1
  138. package/dist/admins-components167.js +6 -9
  139. package/dist/admins-components167.js.map +1 -1
  140. package/dist/{admins-components162.js → admins-components168.js} +3 -3
  141. package/dist/{admins-components162.js.map → admins-components168.js.map} +1 -1
  142. package/dist/admins-components169.js +51 -51
  143. package/dist/admins-components169.js.map +1 -1
  144. package/dist/admins-components17.js +4 -94
  145. package/dist/admins-components17.js.map +1 -1
  146. package/dist/admins-components170.js +60 -0
  147. package/dist/admins-components170.js.map +1 -0
  148. package/dist/admins-components171.js +10 -0
  149. package/dist/admins-components171.js.map +1 -0
  150. package/dist/admins-components172.js +53 -0
  151. package/dist/admins-components172.js.map +1 -0
  152. package/dist/admins-components173.js +10 -0
  153. package/dist/admins-components173.js.map +1 -0
  154. package/dist/admins-components175.js +59 -0
  155. package/dist/admins-components175.js.map +1 -0
  156. package/dist/admins-components18.js +37 -239
  157. package/dist/admins-components18.js.map +1 -1
  158. package/dist/admins-components19.js +1 -2
  159. package/dist/admins-components19.js.map +1 -1
  160. package/dist/admins-components20.js +91 -179
  161. package/dist/admins-components20.js.map +1 -1
  162. package/dist/admins-components21.js +245 -0
  163. package/dist/admins-components21.js.map +1 -0
  164. package/dist/admins-components22.js +3 -4
  165. package/dist/admins-components22.js.map +1 -1
  166. package/dist/admins-components23.js +172 -68
  167. package/dist/admins-components23.js.map +1 -1
  168. package/dist/admins-components25.js +6 -58
  169. package/dist/admins-components25.js.map +1 -1
  170. package/dist/admins-components26.js +79 -0
  171. package/dist/{admins-components24.js.map → admins-components26.js.map} +1 -1
  172. package/dist/admins-components27.js +3 -3
  173. package/dist/admins-components27.js.map +1 -1
  174. package/dist/admins-components28.js +50 -64
  175. package/dist/admins-components28.js.map +1 -1
  176. package/dist/admins-components29.js +75 -0
  177. package/dist/admins-components29.js.map +1 -0
  178. package/dist/admins-components31.js +6 -39
  179. package/dist/admins-components31.js.map +1 -1
  180. package/dist/admins-components32.js +66 -0
  181. package/dist/admins-components32.js.map +1 -0
  182. package/dist/admins-components34.js +6 -36
  183. package/dist/admins-components34.js.map +1 -1
  184. package/dist/admins-components35.js +39 -4
  185. package/dist/admins-components35.js.map +1 -1
  186. package/dist/{admins-components33.js → admins-components37.js} +1 -1
  187. package/dist/{admins-components33.js.map → admins-components37.js.map} +1 -1
  188. package/dist/admins-components38.js +36 -6
  189. package/dist/admins-components38.js.map +1 -1
  190. package/dist/admins-components39.js +4 -146
  191. package/dist/admins-components39.js.map +1 -1
  192. package/dist/{admins-components36.js.map → admins-components40.js.map} +1 -1
  193. package/dist/admins-components42.js +6 -124
  194. package/dist/admins-components42.js.map +1 -1
  195. package/dist/admins-components43.js +146 -4
  196. package/dist/admins-components43.js.map +1 -1
  197. package/dist/admins-components45.js +4 -2
  198. package/dist/admins-components45.js.map +1 -1
  199. package/dist/admins-components46.js +120 -15
  200. package/dist/admins-components46.js.map +1 -1
  201. package/dist/admins-components47.js +5 -0
  202. package/dist/admins-components47.js.map +1 -0
  203. package/dist/admins-components48.js +179 -6
  204. package/dist/admins-components48.js.map +1 -1
  205. package/dist/admins-components49.js +4 -54
  206. package/dist/admins-components49.js.map +1 -1
  207. package/dist/admins-components50.js +15 -89
  208. package/dist/admins-components50.js.map +1 -1
  209. package/dist/admins-components52.js +2 -2
  210. package/dist/admins-components52.js.map +1 -1
  211. package/dist/admins-components53.js +52 -23
  212. package/dist/admins-components53.js.map +1 -1
  213. package/dist/admins-components54.js +93 -9
  214. package/dist/admins-components54.js.map +1 -1
  215. package/dist/admins-components56.js +6 -73
  216. package/dist/admins-components56.js.map +1 -1
  217. package/dist/admins-components57.js +24 -65
  218. package/dist/admins-components57.js.map +1 -1
  219. package/dist/admins-components58.js +9 -4
  220. package/dist/admins-components58.js.map +1 -1
  221. package/dist/admins-components59.js +19 -138
  222. package/dist/admins-components59.js.map +1 -1
  223. package/dist/admins-components60.js +74 -0
  224. package/dist/admins-components60.js.map +1 -0
  225. package/dist/admins-components61.js +66 -7
  226. package/dist/admins-components61.js.map +1 -1
  227. package/dist/admins-components62.js +4 -170
  228. package/dist/admins-components62.js.map +1 -1
  229. package/dist/admins-components63.js +140 -0
  230. package/dist/admins-components63.js.map +1 -0
  231. package/dist/admins-components65.js +7 -7
  232. package/dist/admins-components65.js.map +1 -1
  233. package/dist/admins-components66.js +155 -259
  234. package/dist/admins-components66.js.map +1 -1
  235. package/dist/admins-components68.js +3 -2
  236. package/dist/admins-components68.js.map +1 -1
  237. package/dist/admins-components69.js +6 -119
  238. package/dist/admins-components69.js.map +1 -1
  239. package/dist/admins-components70.js +280 -0
  240. package/dist/admins-components70.js.map +1 -0
  241. package/dist/admins-components72.js +6 -59
  242. package/dist/admins-components72.js.map +1 -1
  243. package/dist/admins-components73.js +110 -207
  244. package/dist/admins-components73.js.map +1 -1
  245. package/dist/admins-components75.js +2 -2
  246. package/dist/admins-components75.js.map +1 -1
  247. package/dist/admins-components76.js +58 -7
  248. package/dist/admins-components76.js.map +1 -1
  249. package/dist/admins-components77.js +220 -51
  250. package/dist/admins-components77.js.map +1 -1
  251. package/dist/admins-components79.js +7 -0
  252. package/dist/admins-components79.js.map +1 -0
  253. package/dist/admins-components80.js +52 -6
  254. package/dist/admins-components80.js.map +1 -1
  255. package/dist/admins-components81.js +246 -32
  256. package/dist/admins-components81.js.map +1 -1
  257. package/dist/admins-components83.js +2 -2
  258. package/dist/admins-components83.js.map +1 -1
  259. package/dist/admins-components84.js +31 -192
  260. package/dist/admins-components84.js.map +1 -1
  261. package/dist/admins-components86.js +2 -2
  262. package/dist/admins-components86.js.map +1 -1
  263. package/dist/admins-components87.js +195 -184
  264. package/dist/admins-components87.js.map +1 -1
  265. package/dist/admins-components89.js +2 -2
  266. package/dist/admins-components89.js.map +1 -1
  267. package/dist/admins-components90.js +16 -3
  268. package/dist/admins-components90.js.map +1 -1
  269. package/dist/admins-components91.js +77 -16
  270. package/dist/admins-components91.js.map +1 -1
  271. package/dist/admins-components93.js +6 -52
  272. package/dist/admins-components93.js.map +1 -1
  273. package/dist/admins-components94.js +195 -81
  274. package/dist/admins-components94.js.map +1 -1
  275. package/dist/admins-components96.js +6 -47
  276. package/dist/admins-components96.js.map +1 -1
  277. package/dist/admins-components97.js +3 -106
  278. package/dist/admins-components97.js.map +1 -1
  279. package/dist/admins-components98.js +3 -20
  280. package/dist/admins-components98.js.map +1 -1
  281. package/dist/admins-components99.js +51 -6
  282. package/dist/admins-components99.js.map +1 -1
  283. package/dist/main.css +1 -1
  284. package/dist/main.css.map +1 -1
  285. package/dist/src/components/Checkbox.vue.d.ts +11 -1
  286. package/dist/src/components/TextInput.vue.d.ts +33 -0
  287. package/dist/src/components/data-table/DataFilters.vue.d.ts +7 -14
  288. package/dist/src/components/data-table/DataList.vue.d.ts +10 -7
  289. package/dist/src/components/data-table/DataSearch.vue.d.ts +26 -0
  290. package/dist/src/composables/useSwipeToClose.d.ts +50 -0
  291. package/dist/src/index.d.ts +5 -1
  292. package/dist/src/styles/components/data-table/data-cards.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  293. package/dist/src/styles/components/data-table/data-list.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  294. package/dist/src/styles/components/data-table/data-paginator.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  295. package/dist/src/styles/components/data-table/data-search.scss_vue_type_style_index_0_src_true_lang.css +1 -0
  296. package/dist/src/styles/components/data-table/data-table.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  297. package/dist/src/styles/components/dropdown-select.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  298. package/dist/src/styles/components/image-picker.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  299. package/dist/src/styles/components/sidebar.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  300. package/dist/src/types/data-list.d.ts +0 -1
  301. package/package.json +1 -1
  302. package/dist/admins-components158.js.map +0 -1
  303. package/dist/admins-components24.js +0 -7
  304. package/dist/admins-components30.js +0 -7
  305. package/dist/admins-components30.js.map +0 -1
  306. package/dist/admins-components41.js +0 -7
  307. package/dist/admins-components41.js.map +0 -1
  308. package/dist/admins-components44.js +0 -180
  309. package/dist/admins-components44.js.map +0 -1
  310. package/dist/admins-components55.js +0 -20
  311. package/dist/admins-components55.js.map +0 -1
  312. package/dist/admins-components64.js +0 -8
  313. package/dist/admins-components64.js.map +0 -1
  314. package/dist/admins-components71.js +0 -7
  315. package/dist/admins-components71.js.map +0 -1
  316. package/dist/admins-components78.js +0 -276
  317. package/dist/admins-components78.js.map +0 -1
  318. package/dist/admins-components92.js +0 -4
  319. package/dist/admins-components92.js.map +0 -1
  320. package/dist/admins-components95.js +0 -114
  321. package/dist/admins-components95.js.map +0 -1
  322. /package/dist/{admins-components36.js → admins-components40.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components89.js","names":[],"sources":["../src/components/data-table/DataList.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type { PaginatorSettings } from '@/types/data-list'\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 filters?: FilterItem[]\n historyEnabled?: boolean\n loading?: boolean\n handleUrl?: boolean\n}\n\nexport const dataListDefaults = {\n layoutBreakpoint: 768,\n orderable: true,\n historyEnabled: true,\n loading: false,\n handleUrl: false,\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 from '@/components/data-table/DataPaginator.vue'\nimport Button from '@/components/Button.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 FilterItem,\n type FilterResponse,\n} from '@/components/data-table/DataFilters.vue'\nimport FilterTags from '@/components/data-table/FilterTags.vue'\nimport DataListGuide from '@/components/data-table/DataListGuide.vue'\nimport { getFilterParams } from '@/utils/dataFilters'\n\nconst dataFiltersRef = ref<InstanceType<typeof DataFilters> | null>(null)\n\nconst props = withDefaults(defineProps<DataListProps>(), {\n ...dataListDefaults,\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' }]\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\n// const hasTextFilter = computed(() =>\n// props.filters?.some((item) => item.type === 'text' || item.type === 'textarea'),\n// )\n\n// const exactMatchFilterItem: FilterItem = {\n// type: 'checkbox',\n// key: 'exactMatch',\n// label: 'Pontos egyezés',\n// fullWidth: true,\n// config: {\n// labelAlignmentFix: true,\n// },\n// displayClass: 'highlight-chip',\n// }\n\n// function ensureExactMatchItem(items: FilterItem[]): FilterItem[] {\n// if (!hasTextFilter.value) return items\n// if (items.some((i) => i.key === 'exactMatch')) return items\n\n// return [exactMatchFilterItem, ...items]\n// }\n\n// const resolvedFilters = computed<FilterItem[]>(() => ensureExactMatchItem(props.filters ?? []))\n\nconst activeFilters = ref<Record<string, any>>(\n props.filters ? (getFilterParams(props.filters) ?? {}) : {},\n)\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</script>\n\n<template>\n <div class=\"ac-component\">\n <div ref=\"root\" class=\"c-data-list\">\n <template v-if=\"filters && filters.length > 0\">\n <div class=\"flex-center gap-2 mb-3 wrap-on-small\">\n <Button\n label=\"Szűrők megnyitása\"\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 class=\"flex-center gap-1\">\n <FilterTags\n :filters=\"activeFilters\"\n :items=\"filters\"\n @remove=\"(key: string) => dataFiltersRef?.clearFilter(key)\"\n @openFilter=\"openFilter\"\n />\n </div>\n </div>\n <DataFilters\n ref=\"dataFiltersRef\"\n :open=\"showFilters\"\n :items=\"filters\"\n :history-enabled=\"historyEnabled\"\n lazy\n :handle-url=\"handleUrl\"\n :storage-key=\"id\"\n @close=\"showFilters = false\"\n @change=\"onFilterChange\"\n />\n </template>\n\n <div class=\"c-data-list__toolbar\">\n <Button\n label=\"Beállítások\"\n icon=\"fa-solid fa-gear\"\n class=\"c-data-list__toolbar__item\"\n size=\"small\"\n @click=\"showOptions = true\"\n />\n <Button\n label=\"Súgó\"\n icon=\"fa-solid fa-question\"\n icon-position=\"right\"\n class=\"c-data-list__toolbar__item ml-auto\"\n label-alignment-fix\n size=\"small\"\n @click=\"showGuide = true\"\n />\n </div>\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 @filter-change=\"emit('filter-change', $event)\"\n @selection-change=\"emit('selection-change', $event)\"\n @sort-change=\"emit('sort-change', $event)\"\n />\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\n <DataPaginator\n v-if=\"pagination && showPaginator\"\n :settings=\"pagination\"\n :storage-key=\"id\"\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-components89.js","names":[],"sources":["../src/components/data-table/DataListGuide.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref } from 'vue'\nimport Sidebar, { type SidebarPosition } from '@/components/Sidebar.vue'\n\nwithDefaults(\n defineProps<{\n open?: boolean\n position?: SidebarPosition\n }>(),\n {\n open: false,\n position: 'right',\n },\n)\n\nconst emit = defineEmits<{\n close: []\n}>()\n\nconst root = ref<HTMLElement | null>(null)\n\nfunction scrollToSection(target: string | null | undefined) {\n if (!target || !root.value) return\n const el = root.value.querySelector(`#${target}`)\n if (el) el.scrollIntoView({ behavior: 'smooth', block: 'start' })\n}\n</script>\n\n<template>\n <Sidebar :open=\"open\" title=\"Súgó\" :position=\"position\" @close=\"emit('close')\">\n <div ref=\"root\" class=\"ac-component dl-guide\">\n <section class=\"dl-guide-section\">\n <h3 class=\"dl-guide-title\">Tartalom</h3>\n <ul class=\"dl-guide-toc m-0\">\n <li>\n <a\n href=\"#\"\n class=\"dl-guide-toc-link dl-guide-toc-link--primary\"\n @click.prevent=\"scrollToSection('layout')\"\n >Megjelenés testreszabása</a\n >\n <ul>\n <li class=\"m-0\">\n <a href=\"#\" class=\"dl-guide-toc-link\" @click.prevent=\"scrollToSection('view')\"\n >Nézet</a\n >\n </li>\n <li class=\"m-0\">\n <a href=\"#\" class=\"dl-guide-toc-link\" @click.prevent=\"scrollToSection('appearance')\"\n >Megjelenés</a\n >\n </li>\n <li class=\"m-0\">\n <a href=\"#\" class=\"dl-guide-toc-link\" @click.prevent=\"scrollToSection('columns')\"\n >Oszlopok láthatósága és sorrendje</a\n >\n </li>\n <li class=\"m-0\">\n <a href=\"#\" class=\"dl-guide-toc-link\" @click.prevent=\"scrollToSection('reset')\"\n >Beállítások visszaállítása</a\n >\n </li>\n </ul>\n </li>\n <li>\n <a\n href=\"#\"\n class=\"dl-guide-toc-link dl-guide-toc-link--primary\"\n @click.prevent=\"scrollToSection('filters')\"\n >Szűrők</a\n >\n <ul>\n <li class=\"m-0\">\n <a\n href=\"#\"\n class=\"dl-guide-toc-link\"\n @click.prevent=\"scrollToSection('exact-match')\"\n >Pontos egyezés</a\n >\n </li>\n <li class=\"m-0\">\n <a\n href=\"#\"\n class=\"dl-guide-toc-link\"\n @click.prevent=\"scrollToSection('save-filters')\"\n >Szűrések mentése</a\n >\n </li>\n </ul>\n </li>\n </ul>\n </section>\n <hr class=\"separator\" />\n <section id=\"layout\" class=\"dl-guide-section\">\n <h3 class=\"dl-guide-title\">A táblázat megjelenésének testreszabása</h3>\n <p>\n A <strong><i class=\"fa-solid fa-gear\"></i> Beállítások</strong> gombra kattintva lehetőség\n van a tábla megjelenésének testreszabására. A beállítások az adott táblához kapcsolódóan\n helyi tárolóban kerülnek mentésre, így ugyanazon eszközön és böngészőben megmaradnak a\n következő látogatáskor is.\n </p>\n <hr class=\"separator\" />\n <h4 id=\"view\" class=\"dl-guide-subtitle\">Nézet</h4>\n <ul>\n <li>\n <i class=\"fa-solid fa-display mr-1\"></i>\n <strong>Kijelző méretéhez igazodó</strong> (alapértelmezett): A kijelző méretétől\n függően automatikusan választ a táblázat és a kártyás nézet között.\n </li>\n <li>\n <i class=\"fa-solid fa-table-list mr-1\"></i> <strong>Táblázat:</strong> klasszikus\n táblázatos megjelenés\n </li>\n <li>\n <i class=\"fa-solid fa-list mr-1\"></i> <strong>Kártyák:</strong> sorok kártyás\n megjelenítése, a kártya fejlécére kattintva lenyithatóak a részletes adatok.\n </li>\n </ul>\n <hr class=\"separator\" />\n <h4 id=\"appearance\" class=\"dl-guide-subtitle\">Megjelenés</h4>\n <ul>\n <li>\n <strong>Kompakt:</strong> A sorok közti távolság és a belső margók csökkentésével több\n adat jeleníthető meg egyszerre.\n </li>\n <li>\n <strong>Sávos (striped):</strong> Csak a táblázatos nézetben elérhető, minden második\n sor enyhe szürke hátteret kap, ezzel megkönnyítve a sorok követését.\n </li>\n </ul>\n <hr class=\"separator\" />\n <h4 id=\"columns\" class=\"dl-guide-subtitle\">Oszlopok láthatósága és sorrendje</h4>\n <ul>\n <li>\n <strong>Kártya fejléc:</strong> kártyás nézet esetén a fejlécben megjelenő mezők\n láthatósága és sorrendje.\n </li>\n <li>\n <strong>Oszlopok:</strong> táblázat nézetben az oszlopok láthatósága és sorrendje.\n </li>\n </ul>\n <p>\n A sorrend módosítása történhet az <i class=\"fa-solid fa-grip-vertical\"></i> ikonon\n <strong class=\"nowrap\">drag-n-drop</strong>al vagy az ikonra kattinva a megjelenő nyilak\n segítségével.\n </p>\n <hr class=\"separator\" />\n\n <h4 id=\"reset\" class=\"dl-guide-subtitle\">Beállítások visszaállítása</h4>\n <p>\n Az\n <strong>Alapértelmezés visszaállítása</strong> gomb visszaállítja a gyári értékeket, és\n törli a helyi tárolóban elmentett beállításokat.\n </p>\n </section>\n <hr class=\"separator\" />\n <section id=\"filters\" class=\"dl-guide-section\">\n <h3 class=\"dl-guide-title\">Szűrők</h3>\n <h4 id=\"exact-match\" class=\"dl-guide-subtitle\">Pontos egyezés</h4>\n <p>\n Amennyiben a táblázhoz tartozik szabad szavas keresés, a pontos egyezés opciót használva\n csak azokat a találatokat kapjuk, amelyek teljes mértékben megfelelnek a keresett\n kifejezésnek. Pl. alap esetben <strong><em>\"alma\"</em></strong> keresésre a <strong><em>\"piros alma\"</em></strong>, <strong><em>\"almafa\"</em></strong>, <strong><em>\"alma\"</em></strong> vagy\n <strong><em>\"almás pite\"</em></strong> is találat lehet, míg pontos egyezés esetén csak az <strong><em>\"alma\"</em></strong> található meg.\n </p>\n<hr class=\"separator\" />\n <h4 id=\"save-filters\" class=\"dl-guide-subtitle\">Szűrések mentése</h4>\n <p>\n A <strong><i class=\"fa-solid fa-sliders\"></i> Mentett szűrők</strong>re kattintva\n lehetőség van elmenteni az aktuális szűrési feltételeket, így később egyetlen kattintással\n előhívhatja azokat.\n </p>\n <p>\n A szűrési feltételek megadása után a\n <strong><i class=\"fa-solid fa-bookmark fa-sm\"></i> Mentés</strong> gomb megnyomásával\n elmenthető a szűrőkészlet. Az elnevezés megadása nem kötelező, csak saját magadnak szól a\n későbbi könnyebb azonosítás érdekében.\n </p>\n <p>\n Ezt követően a szűrőkészlet a mentés dátumával és elnevezésével jelenik meg a mentett\n szűrők között. Ezekre kattintva lenyithatók a szűrőkészlet részletei.\n </p>\n <p>A mentett készlet jobb oldalán található 3 ikon:</p>\n <ul>\n <li>\n <i class=\"fa-solid fa-check\"></i>: ikonra kattintva tölthetők be a készletek.\n Megnyomásakor a szűrési feltételek automatikusan kitöltődnek az elmentett értékekkel.\n </li>\n\n <li>\n <span class=\"c-indicator\">?</span>: azt mutatja, hogy hány szűrési feltétel van a\n készletben.\n </li>\n <li>\n <i class=\"fa-solid fa-xmark\"></i>: a mentett szűrőkészlet törlése (a művelet\n megerősítést kér).\n </li>\n </ul>\n <p class=\"dl-guide-note\">Táblázatonként maximum <strong>20</strong> készlet menthető el.</p>\n <p>\n A lista alján található \"Összes törlése\" gombbal törölhető a táblához tartozó minden\n elmentett szűrőkészlet.\n </p>\n\n <p class=\"dl-guide-note\">\n <strong>Fontos:</strong> a beállítások és a szűrők is csak böngészőben (localStorage)\n kerülnek tárolásra, ezért más eszközön vagy böngészőben nem lesznek elérhetőek.\n </p>\n </section>\n </div>\n </Sidebar>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-list-guide.scss\"></style>\n"],"mappings":""}
@@ -1,4 +1,17 @@
1
- //#region src/utils/ipUtils.ts
2
- var e = (e) => /(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/.test(e);
1
+ //#region src/utils/url.ts
2
+ function e(e) {
3
+ return new URLSearchParams(window.location.search).get(e);
4
+ }
5
+ function t(e, t) {
6
+ let n = new URL(window.location.href);
7
+ n.searchParams.set(e, String(t)), window.history.replaceState({}, "", n.toString());
8
+ }
9
+ function n(e) {
10
+ let t = new URL(window.location.href);
11
+ e ? t.searchParams.delete(e) : t.search = "", window.history.replaceState({}, "", t.toString());
12
+ }
13
+ function r(...e) {
14
+ return e.map((e, t) => t === 0 ? e.replace(/\/+$/, "") : e.replace(/^\/+|\/+$/g, "")).filter(Boolean).join("/");
15
+ }
3
16
  //#endregion
4
- export { e as isIpInUrl };
17
+ export { e as getUrlParam, r as joinUrl, n as removeUrlParam, t as setUrlParam };
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components90.js","names":[],"sources":["../src/utils/ipUtils.ts"],"sourcesContent":["export const isIpInUrl = (url: string) => {\n const ipv4Regex =\n /(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/\n\n return ipv4Regex.test(url)\n}\n"],"mappings":";AAAA,IAAa,KAAa,MAIjB,iKAAU,KAAK,CAAG"}
1
+ {"version":3,"file":"admins-components90.js","names":[],"sources":["../src/utils/url.ts"],"sourcesContent":["export function getUrlParam(key: string): string | null {\n return new URLSearchParams(window.location.search).get(key)\n}\n\nexport function setUrlParam(key: string, value: string | number): void {\n const url = new URL(window.location.href)\n url.searchParams.set(key, String(value))\n window.history.replaceState({}, '', url.toString())\n}\n\nexport function removeUrlParam(key?: string): void {\n const url = new URL(window.location.href)\n if (key) {\n url.searchParams.delete(key)\n } else {\n url.search = ''\n }\n window.history.replaceState({}, '', url.toString())\n}\n\nexport function joinUrl(...parts: string[]): string {\n return parts\n .map((part, i) => {\n if (i === 0) return part.replace(/\\/+$/, '')\n return part.replace(/^\\/+|\\/+$/g, '')\n })\n .filter(Boolean)\n .join('/')\n}\n"],"mappings":";AAAA,SAAgB,EAAY,GAA4B;CACtD,OAAO,IAAI,gBAAgB,OAAO,SAAS,MAAM,EAAE,IAAI,CAAG;AAC5D;AAEA,SAAgB,EAAY,GAAa,GAA8B;CACrE,IAAM,IAAM,IAAI,IAAI,OAAO,SAAS,IAAI;CAExC,AADA,EAAI,aAAa,IAAI,GAAK,OAAO,CAAK,CAAC,GACvC,OAAO,QAAQ,aAAa,CAAC,GAAG,IAAI,EAAI,SAAS,CAAC;AACpD;AAEA,SAAgB,EAAe,GAAoB;CACjD,IAAM,IAAM,IAAI,IAAI,OAAO,SAAS,IAAI;CAMxC,AALI,IACF,EAAI,aAAa,OAAO,CAAG,IAE3B,EAAI,SAAS,IAEf,OAAO,QAAQ,aAAa,CAAC,GAAG,IAAI,EAAI,SAAS,CAAC;AACpD;AAEA,SAAgB,EAAQ,GAAG,GAAyB;CAClD,OAAO,EACJ,KAAK,GAAM,MACN,MAAM,IAAU,EAAK,QAAQ,QAAQ,EAAE,IACpC,EAAK,QAAQ,cAAc,EAAE,CACrC,EACA,OAAO,OAAO,EACd,KAAK,GAAG;AACb"}
@@ -1,17 +1,78 @@
1
- //#region src/utils/url.ts
2
- function e(e) {
3
- return new URLSearchParams(window.location.search).get(e);
4
- }
5
- function t(e, t) {
6
- let n = new URL(window.location.href);
7
- n.searchParams.set(e, String(t)), window.history.replaceState({}, "", n.toString());
8
- }
9
- function n(e) {
10
- let t = new URL(window.location.href);
11
- e ? t.searchParams.delete(e) : t.search = "", window.history.replaceState({}, "", t.toString());
12
- }
13
- function r(...e) {
14
- return e.map((e, t) => t === 0 ? e.replace(/\/+$/, "") : e.replace(/^\/+|\/+$/g, "")).filter(Boolean).join("/");
15
- }
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 { getUrlParam as r, removeUrlParam as i, setUrlParam as a } from "./admins-components90.js";
5
+ import { createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createTextVNode as u, defineComponent as d, onMounted as f, openBlock as p, ref as m, withCtx as h } from "vue";
6
+ //#region src/components/data-table/DataSearch.vue?vue&type=script&setup=true&lang.ts
7
+ var g = { class: "data-search-wrapper" }, _ = /* @__PURE__ */ d({
8
+ __name: "DataSearch",
9
+ props: {
10
+ showExactMatch: {
11
+ type: Boolean,
12
+ default: !0
13
+ },
14
+ showSearch: {
15
+ type: Boolean,
16
+ default: !0
17
+ },
18
+ placeholder: { default: "Keresés..." },
19
+ handleUrl: {
20
+ type: Boolean,
21
+ default: !1
22
+ },
23
+ searchKey: { default: "search" },
24
+ exactMatchKey: { default: "exactMatch" }
25
+ },
26
+ emits: ["search-change"],
27
+ setup(d, { emit: _ }) {
28
+ let v = d, y = m(!1), b = m(""), x = _;
29
+ function S() {
30
+ let e = {};
31
+ v.showSearch && (e[v.searchKey] = b.value), v.showExactMatch && (e[v.exactMatchKey] = y.value ?? !1), x("search-change", e);
32
+ }
33
+ function C(e) {
34
+ y.value = e, S(), D();
35
+ }
36
+ function w(e) {
37
+ b.value = e == null ? "" : String(e), S(), D();
38
+ }
39
+ function T() {
40
+ let e = r(v.searchKey);
41
+ e && e !== "" && (b.value = e);
42
+ let t = r(v.exactMatchKey);
43
+ t === "true" || t === "1" ? y.value = !0 : (t === "false" || t === "0") && (y.value = !1);
44
+ }
45
+ function E() {
46
+ v.handleUrl && (b.value === "" ? i(v.searchKey) : a(v.searchKey, b.value), y.value ?? !1 ? a(v.exactMatchKey, "true") : i(v.exactMatchKey));
47
+ }
48
+ let D = e(E, 300);
49
+ return f(() => {
50
+ v.handleUrl && (T(), S());
51
+ }), (e, r) => (p(), c("div", g, [d.showExactMatch ? (p(), o(n, {
52
+ key: 0,
53
+ "model-value": y.value,
54
+ class: "gap-1",
55
+ "onUpdate:modelValue": C
56
+ }, {
57
+ label: h(() => [...r[0] ||= [l("span", { class: "data-search-label" }, [
58
+ u(" Pontos"),
59
+ l("br"),
60
+ u("egyezés ")
61
+ ], -1)]]),
62
+ _: 1
63
+ }, 8, ["model-value"])) : s("", !0), d.showSearch ? (p(), o(t, {
64
+ key: 1,
65
+ type: "text",
66
+ clearable: "",
67
+ "model-value": b.value,
68
+ "label-on-border": "Keresés",
69
+ placeholder: d.placeholder,
70
+ autocomplete: !1,
71
+ icon: "fa-solid fa-magnifying-glass",
72
+ iconPosition: "right",
73
+ "onUpdate:modelValue": w
74
+ }, null, 8, ["model-value", "placeholder"])) : s("", !0)]));
75
+ }
76
+ });
16
77
  //#endregion
17
- export { e as getUrlParam, r as joinUrl, n as removeUrlParam, t as setUrlParam };
78
+ export { _ as default };
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components91.js","names":[],"sources":["../src/utils/url.ts"],"sourcesContent":["export function getUrlParam(key: string): string | null {\n return new URLSearchParams(window.location.search).get(key)\n}\n\nexport function setUrlParam(key: string, value: string | number): void {\n const url = new URL(window.location.href)\n url.searchParams.set(key, String(value))\n window.history.replaceState({}, '', url.toString())\n}\n\nexport function removeUrlParam(key?: string): void {\n const url = new URL(window.location.href)\n if (key) {\n url.searchParams.delete(key)\n } else {\n url.search = ''\n }\n window.history.replaceState({}, '', url.toString())\n}\n\nexport function joinUrl(...parts: string[]): string {\n return parts\n .map((part, i) => {\n if (i === 0) return part.replace(/\\/+$/, '')\n return part.replace(/^\\/+|\\/+$/g, '')\n })\n .filter(Boolean)\n .join('/')\n}\n"],"mappings":";AAAA,SAAgB,EAAY,GAA4B;CACtD,OAAO,IAAI,gBAAgB,OAAO,SAAS,MAAM,EAAE,IAAI,CAAG;AAC5D;AAEA,SAAgB,EAAY,GAAa,GAA8B;CACrE,IAAM,IAAM,IAAI,IAAI,OAAO,SAAS,IAAI;CAExC,AADA,EAAI,aAAa,IAAI,GAAK,OAAO,CAAK,CAAC,GACvC,OAAO,QAAQ,aAAa,CAAC,GAAG,IAAI,EAAI,SAAS,CAAC;AACpD;AAEA,SAAgB,EAAe,GAAoB;CACjD,IAAM,IAAM,IAAI,IAAI,OAAO,SAAS,IAAI;CAMxC,AALI,IACF,EAAI,aAAa,OAAO,CAAG,IAE3B,EAAI,SAAS,IAEf,OAAO,QAAQ,aAAa,CAAC,GAAG,IAAI,EAAI,SAAS,CAAC;AACpD;AAEA,SAAgB,EAAQ,GAAG,GAAyB;CAClD,OAAO,EACJ,KAAK,GAAM,MACN,MAAM,IAAU,EAAK,QAAQ,QAAQ,EAAE,IACpC,EAAK,QAAQ,cAAc,EAAE,CACrC,EACA,OAAO,OAAO,EACd,KAAK,GAAG;AACb"}
1
+ {"version":3,"file":"admins-components91.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</script>\n\n<script setup lang=\"ts\">\nimport Checkbox from '@/components/Checkbox.vue'\nimport TextInput from '@/components/TextInput.vue'\nimport { debounce } from '@/utils/debounce'\nimport { getUrlParam, removeUrlParam, setUrlParam } from '@/utils/url'\nimport { onMounted, ref } from 'vue'\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\nconst exactMatch = ref<boolean | undefined>(false)\nconst search = ref<string>('')\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 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)\n emitChange()\n debouncedSyncToUrl()\n}\n\nfunction readUrlOnMount() {\n const rawSearch = getUrlParam(props.searchKey)\n if (rawSearch && rawSearch !== '') search.value = rawSearch\n\n const rawExact = getUrlParam(props.exactMatchKey)\n if (rawExact === 'true' || rawExact === '1') exactMatch.value = true\n else if (rawExact === 'false' || rawExact === '0') exactMatch.value = false\n}\n\nfunction syncToUrl() {\n if (!props.handleUrl) return\n\n if (search.value === '') removeUrlParam(props.searchKey)\n else setUrlParam(props.searchKey, search.value)\n\n const exact = exactMatch.value ?? false\n if (!exact) removeUrlParam(props.exactMatchKey)\n else setUrlParam(props.exactMatchKey, 'true')\n}\n\nconst debouncedSyncToUrl = debounce(syncToUrl, 300)\n\nonMounted(() => {\n if (!props.handleUrl) return\n readUrlOnMount()\n\n 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 label-on-border=\"Keresés\"\n :placeholder=\"placeholder\"\n :autocomplete=\"false\"\n icon=\"fa-solid fa-magnifying-glass\"\n iconPosition=\"right\"\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBA,IAAM,IAAQ,GAcR,IAAa,EAAyB,EAAK,GAC3C,IAAS,EAAY,EAAE,GAEvB,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,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,GAChD,EAAW,GACX,EAAmB;EACrB;EAEA,SAAS,IAAiB;GACxB,IAAM,IAAY,EAAY,EAAM,SAAS;GAC7C,AAAI,KAAa,MAAc,OAAI,EAAO,QAAQ;GAElD,IAAM,IAAW,EAAY,EAAM,aAAa;GAChD,AAAI,MAAa,UAAU,MAAa,MAAK,EAAW,QAAQ,MACvD,MAAa,WAAW,MAAa,SAAK,EAAW,QAAQ;EACxE;EAEA,SAAS,IAAY;GACd,EAAM,cAEP,EAAO,UAAU,KAAI,EAAe,EAAM,SAAS,IAClD,EAAY,EAAM,WAAW,EAAO,KAAK,GAEhC,EAAW,SAAS,KAE7B,EAAY,EAAM,eAAe,MAAM,IADhC,EAAe,EAAM,aAAa;EAEhD;EAEA,IAAM,IAAqB,EAAS,GAAW,GAAG;SAElD,QAAgB;GACT,EAAM,cACX,EAAe,GAEf,EAAW;EACb,CAAC,mBAGC,EAuBM,OAvBN,GAuBM,CArBI,EAAA,kBAAA,EAAA,GADR,EASW,GAAA;;GAPR,eAAa,EAAA;GACd,OAAM;GACL,uBAAoB;;GAEV,OAAK,QAC8C,CAAA,GAAA,AAAA,EAAA,OAAA,CAA5D,EAA4D,QAAA,EAAtD,OAAM,oBAAmB,GAAA;MAAC,SAAO;IAAA,EAAM,IAAA;MAAA,UAAQ;;;uCAIjD,EAAA,cAAA,EAAA,GADR,EAWE,GAAA;;GATA,MAAK;GACL,WAAA;GACC,eAAa,EAAA;GACd,mBAAgB;GACf,aAAa,EAAA;GACb,cAAc;GACf,MAAK;GACL,cAAa;GACZ,uBAAoB"}
@@ -1,53 +1,7 @@
1
- //#region src/directives/tooltip.ts
2
- function e() {
3
- let e = document.createElement("div");
4
- return e.className = "v-tooltip ac-component", e.style.position = "fixed", e.style.zIndex = "9999999", e.style.opacity = "0", e.style.pointerEvents = "none", e.style.transition = "opacity 0.15s", e;
5
- }
6
- function t(e, t) {
7
- let n = window.innerWidth, r = window.innerHeight;
8
- e.style.maxWidth = `min(${n - 16}px, 300px)`;
9
- let i = e.getBoundingClientRect(), a = i.width, o = i.height, s = t.clientX + 12, c = t.clientY + 18;
10
- s + a > n - 8 && (s = t.clientX - a - 12), c + o > r - 8 && (c = t.clientY - o - 12), s = Math.max(8, Math.min(s, n - a - 8)), c = Math.max(8, Math.min(c, r - o - 8)), e.style.left = `${s}px`, e.style.top = `${c}px`;
11
- }
12
- function n(e, t, n) {
13
- n ? e.innerHTML = t : e.textContent = t;
14
- }
15
- var r = {
16
- mounted(r, i) {
17
- let a = e();
18
- n(a, i.value, !!i.modifiers.html), document.body.appendChild(a);
19
- let o = null, s = null, c = null, l = (e) => {
20
- c = e;
21
- }, u = (e) => {
22
- c = e, s &&= (clearTimeout(s), null), o = setTimeout(() => {
23
- t(a, c ?? e), a.style.opacity = "1";
24
- }, 400);
25
- }, d = () => {
26
- c = null, o &&= (clearTimeout(o), null), s = setTimeout(() => {
27
- a.style.opacity = "0";
28
- }, 50);
29
- }, f = (e) => {
30
- o &&= (clearTimeout(o), null), s &&= (clearTimeout(s), null), a.style.opacity === "1" ? a.style.opacity = "0" : (t(a, e), a.style.opacity = "1");
31
- }, p = () => {
32
- o &&= (clearTimeout(o), null), a.style.opacity = "0";
33
- };
34
- r.addEventListener("mouseenter", u), r.addEventListener("mousemove", l), r.addEventListener("mouseleave", d), r.addEventListener("click", f), window.addEventListener("scroll", p, !0), r._tooltip = {
35
- el: a,
36
- showTimeout: o,
37
- hideTimeout: s,
38
- onEnter: u,
39
- onMove: l,
40
- onLeave: d,
41
- onClick: f,
42
- onScroll: p
43
- };
44
- },
45
- updated(e, t) {
46
- e._tooltip && n(e._tooltip.el, t.value, !!t.modifiers.html);
47
- },
48
- unmounted(e) {
49
- e._tooltip &&= (e.removeEventListener("mouseenter", e._tooltip.onEnter), e.removeEventListener("mousemove", e._tooltip.onMove), e.removeEventListener("mouseleave", e._tooltip.onLeave), e.removeEventListener("click", e._tooltip.onClick), window.removeEventListener("scroll", e._tooltip.onScroll, !0), e._tooltip.el.remove(), void 0);
50
- }
51
- };
1
+ import './src/styles/components/data-table/data-search.scss_vue_type_style_index_0_src_true_lang.css';
2
+ import e from "./admins-components91.js";
3
+ /* empty css */
4
+ //#region src/components/data-table/DataSearch.vue
5
+ var t = e;
52
6
  //#endregion
53
- export { r as vTooltip };
7
+ export { t as default };
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components93.js","names":[],"sources":["../src/directives/tooltip.ts"],"sourcesContent":["import type { Directive, DirectiveBinding } from 'vue'\n\ninterface TooltipEl extends HTMLElement {\n _tooltip?: {\n el: HTMLElement\n showTimeout: ReturnType<typeof setTimeout> | null\n hideTimeout: ReturnType<typeof setTimeout> | null\n onEnter: (e: MouseEvent) => void\n onMove: (e: MouseEvent) => void\n onLeave: () => void\n onClick: (e: MouseEvent) => void\n onScroll: () => void\n }\n}\n\nfunction createTooltipEl(): HTMLElement {\n const el = document.createElement('div')\n el.className = 'v-tooltip ac-component'\n el.style.position = 'fixed'\n el.style.zIndex = '9999999'\n el.style.opacity = '0'\n el.style.pointerEvents = 'none'\n el.style.transition = 'opacity 0.15s'\n return el\n}\n\nfunction position(tooltip: HTMLElement, e: MouseEvent) {\n const offsetX = 12\n const offsetY = 18\n const edge = 8\n const vw = window.innerWidth\n const vh = window.innerHeight\n\n tooltip.style.maxWidth = `min(${vw - 2 * edge}px, 300px)`\n\n const rect = tooltip.getBoundingClientRect()\n const w = rect.width\n const h = rect.height\n\n let x = e.clientX + offsetX\n let y = e.clientY + offsetY\n\n if (x + w > vw - edge) {\n x = e.clientX - w - offsetX\n }\n if (y + h > vh - edge) {\n y = e.clientY - h - offsetX\n }\n\n x = Math.max(edge, Math.min(x, vw - w - edge))\n y = Math.max(edge, Math.min(y, vh - h - edge))\n\n tooltip.style.left = `${x}px`\n tooltip.style.top = `${y}px`\n}\n\nfunction setContent(tooltip: HTMLElement, value: string, html: boolean) {\n if (html) {\n tooltip.innerHTML = value\n } else {\n tooltip.textContent = value\n }\n}\n\nexport const vTooltip: Directive = {\n mounted(el: TooltipEl, binding: DirectiveBinding<string>) {\n const tooltip = createTooltipEl()\n setContent(tooltip, binding.value, !!binding.modifiers.html)\n document.body.appendChild(tooltip)\n\n let showTimeout: ReturnType<typeof setTimeout> | null = null\n let hideTimeout: ReturnType<typeof setTimeout> | null = null\n let lastEvent: MouseEvent | null = null\n\n const onMove = (e: MouseEvent) => {\n lastEvent = e\n }\n\n const onEnter = (e: MouseEvent) => {\n lastEvent = e\n if (hideTimeout) {\n clearTimeout(hideTimeout)\n hideTimeout = null\n }\n showTimeout = setTimeout(() => {\n position(tooltip, lastEvent ?? e)\n tooltip.style.opacity = '1'\n }, 400)\n }\n\n const onLeave = () => {\n lastEvent = null\n if (showTimeout) {\n clearTimeout(showTimeout)\n showTimeout = null\n }\n hideTimeout = setTimeout(() => {\n tooltip.style.opacity = '0'\n }, 50)\n }\n\n const onClick = (e: MouseEvent) => {\n if (showTimeout) {\n clearTimeout(showTimeout)\n showTimeout = null\n }\n if (hideTimeout) {\n clearTimeout(hideTimeout)\n hideTimeout = null\n }\n if (tooltip.style.opacity === '1') {\n tooltip.style.opacity = '0'\n } else {\n position(tooltip, e)\n tooltip.style.opacity = '1'\n }\n }\n\n const onScroll = () => {\n if (showTimeout) {\n clearTimeout(showTimeout)\n showTimeout = null\n }\n tooltip.style.opacity = '0'\n }\n\n el.addEventListener('mouseenter', onEnter)\n el.addEventListener('mousemove', onMove)\n el.addEventListener('mouseleave', onLeave)\n el.addEventListener('click', onClick)\n window.addEventListener('scroll', onScroll, true)\n\n el._tooltip = {\n el: tooltip,\n showTimeout,\n hideTimeout,\n onEnter,\n onMove,\n onLeave,\n onClick,\n onScroll,\n }\n },\n\n updated(el: TooltipEl, binding: DirectiveBinding<string>) {\n if (el._tooltip) {\n setContent(el._tooltip.el, binding.value, !!binding.modifiers.html)\n }\n },\n\n unmounted(el: TooltipEl) {\n if (el._tooltip) {\n el.removeEventListener('mouseenter', el._tooltip.onEnter)\n el.removeEventListener('mousemove', el._tooltip.onMove)\n el.removeEventListener('mouseleave', el._tooltip.onLeave)\n el.removeEventListener('click', el._tooltip.onClick)\n window.removeEventListener('scroll', el._tooltip.onScroll, true)\n el._tooltip.el.remove()\n el._tooltip = undefined\n }\n },\n}\n"],"mappings":";AAeA,SAAS,IAA+B;CACtC,IAAM,IAAK,SAAS,cAAc,KAAK;CAOvC,OANA,EAAG,YAAY,0BACf,EAAG,MAAM,WAAW,SACpB,EAAG,MAAM,SAAS,WAClB,EAAG,MAAM,UAAU,KACnB,EAAG,MAAM,gBAAgB,QACzB,EAAG,MAAM,aAAa,iBACf;AACT;AAEA,SAAS,EAAS,GAAsB,GAAe;CACrD,IAGM,IAAK,OAAO,YACZ,IAAK,OAAO;CAElB,EAAQ,MAAM,WAAW,OAAO,IAAK,GAAS;CAE9C,IAAM,IAAO,EAAQ,sBAAsB,GACrC,IAAI,EAAK,OACT,IAAI,EAAK,QAEX,IAAI,EAAE,UAAU,IAChB,IAAI,EAAE,UAAU;CAapB,AAXI,IAAI,IAAI,IAAK,MACf,IAAI,EAAE,UAAU,IAAI,KAElB,IAAI,IAAI,IAAK,MACf,IAAI,EAAE,UAAU,IAAI,KAGtB,IAAI,KAAK,IAAI,GAAM,KAAK,IAAI,GAAG,IAAK,IAAI,CAAI,CAAC,GAC7C,IAAI,KAAK,IAAI,GAAM,KAAK,IAAI,GAAG,IAAK,IAAI,CAAI,CAAC,GAE7C,EAAQ,MAAM,OAAO,GAAG,EAAE,KAC1B,EAAQ,MAAM,MAAM,GAAG,EAAE;AAC3B;AAEA,SAAS,EAAW,GAAsB,GAAe,GAAe;CACtE,AAAI,IACF,EAAQ,YAAY,IAEpB,EAAQ,cAAc;AAE1B;AAEA,IAAa,IAAsB;CACjC,QAAQ,GAAe,GAAmC;EACxD,IAAM,IAAU,EAAgB;EAEhC,AADA,EAAW,GAAS,EAAQ,OAAO,CAAC,CAAC,EAAQ,UAAU,IAAI,GAC3D,SAAS,KAAK,YAAY,CAAO;EAEjC,IAAI,IAAoD,MACpD,IAAoD,MACpD,IAA+B,MAE7B,KAAU,MAAkB;GAChC,IAAY;EACd,GAEM,KAAW,MAAkB;GAMjC,AALA,IAAY,GACZ,AAEE,OADA,aAAa,CAAW,GACV,OAEhB,IAAc,iBAAiB;IAE7B,AADA,EAAS,GAAS,KAAa,CAAC,GAChC,EAAQ,MAAM,UAAU;GAC1B,GAAG,GAAG;EACR,GAEM,UAAgB;GAMpB,AALA,IAAY,MACZ,AAEE,OADA,aAAa,CAAW,GACV,OAEhB,IAAc,iBAAiB;IAC7B,EAAQ,MAAM,UAAU;GAC1B,GAAG,EAAE;EACP,GAEM,KAAW,MAAkB;GASjC,AARA,AAEE,OADA,aAAa,CAAW,GACV,OAEhB,AAEE,OADA,aAAa,CAAW,GACV,OAEZ,EAAQ,MAAM,YAAY,MAC5B,EAAQ,MAAM,UAAU,OAExB,EAAS,GAAS,CAAC,GACnB,EAAQ,MAAM,UAAU;EAE5B,GAEM,UAAiB;GAKrB,AAJA,AAEE,OADA,aAAa,CAAW,GACV,OAEhB,EAAQ,MAAM,UAAU;EAC1B;EAQA,AANA,EAAG,iBAAiB,cAAc,CAAO,GACzC,EAAG,iBAAiB,aAAa,CAAM,GACvC,EAAG,iBAAiB,cAAc,CAAO,GACzC,EAAG,iBAAiB,SAAS,CAAO,GACpC,OAAO,iBAAiB,UAAU,GAAU,EAAI,GAEhD,EAAG,WAAW;GACZ,IAAI;GACJ;GACA;GACA;GACA;GACA;GACA;GACA;EACF;CACF;CAEA,QAAQ,GAAe,GAAmC;EACxD,AAAI,EAAG,YACL,EAAW,EAAG,SAAS,IAAI,EAAQ,OAAO,CAAC,CAAC,EAAQ,UAAU,IAAI;CAEtE;CAEA,UAAU,GAAe;EACvB,AAOE,EAAG,cANH,EAAG,oBAAoB,cAAc,EAAG,SAAS,OAAO,GACxD,EAAG,oBAAoB,aAAa,EAAG,SAAS,MAAM,GACtD,EAAG,oBAAoB,cAAc,EAAG,SAAS,OAAO,GACxD,EAAG,oBAAoB,SAAS,EAAG,SAAS,OAAO,GACnD,OAAO,oBAAoB,UAAU,EAAG,SAAS,UAAU,EAAI,GAC/D,EAAG,SAAS,GAAG,OAAO,GACR,KAAA;CAElB;AACF"}
1
+ {"version":3,"file":"admins-components93.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</script>\n\n<script setup lang=\"ts\">\nimport Checkbox from '@/components/Checkbox.vue'\nimport TextInput from '@/components/TextInput.vue'\nimport { debounce } from '@/utils/debounce'\nimport { getUrlParam, removeUrlParam, setUrlParam } from '@/utils/url'\nimport { onMounted, ref } from 'vue'\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\nconst exactMatch = ref<boolean | undefined>(false)\nconst search = ref<string>('')\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 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)\n emitChange()\n debouncedSyncToUrl()\n}\n\nfunction readUrlOnMount() {\n const rawSearch = getUrlParam(props.searchKey)\n if (rawSearch && rawSearch !== '') search.value = rawSearch\n\n const rawExact = getUrlParam(props.exactMatchKey)\n if (rawExact === 'true' || rawExact === '1') exactMatch.value = true\n else if (rawExact === 'false' || rawExact === '0') exactMatch.value = false\n}\n\nfunction syncToUrl() {\n if (!props.handleUrl) return\n\n if (search.value === '') removeUrlParam(props.searchKey)\n else setUrlParam(props.searchKey, search.value)\n\n const exact = exactMatch.value ?? false\n if (!exact) removeUrlParam(props.exactMatchKey)\n else setUrlParam(props.exactMatchKey, 'true')\n}\n\nconst debouncedSyncToUrl = debounce(syncToUrl, 300)\n\nonMounted(() => {\n if (!props.handleUrl) return\n readUrlOnMount()\n\n 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 label-on-border=\"Keresés\"\n :placeholder=\"placeholder\"\n :autocomplete=\"false\"\n icon=\"fa-solid fa-magnifying-glass\"\n iconPosition=\"right\"\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":""}
@@ -1,83 +1,197 @@
1
- import { joinUrl as e } from "./admins-components91.js";
2
- import { ref as t } from "vue";
3
- //#region src/services/createNativeFetch.ts
4
- function n(n) {
5
- return function(i) {
6
- let a = t(null), o = t(null), s = t(null), c = t(null), l = t(!1), u = t(!1), d = "GET", f, p = "json", m = null, h = {
7
- data: a,
8
- error: o,
9
- response: s,
10
- statusCode: c,
11
- isFetching: l,
12
- canAbort: u,
13
- get() {
14
- return d = "GET", h;
15
- },
16
- post(e) {
17
- return d = "POST", f = e, h;
18
- },
19
- put(e) {
20
- return d = "PUT", f = e, h;
21
- },
22
- patch(e) {
23
- return d = "PATCH", f = e, h;
24
- },
25
- delete(e) {
26
- return d = "DELETE", f = e, h;
27
- },
28
- json() {
29
- return p = "json", h;
30
- },
31
- text() {
32
- return p = "text", h;
33
- },
34
- abort() {
35
- m?.abort();
36
- },
37
- async execute() {
38
- m = new AbortController(), l.value = !0, u.value = !0, o.value = null, s.value = null, c.value = null;
39
- let t = {
40
- ...n.fetchOptions,
41
- method: d,
42
- signal: m.signal
43
- };
44
- f != null && d !== "GET" && (t.body = r(f) ? JSON.stringify(f.value) : JSON.stringify(f));
45
- let g = {
46
- url: e(n.baseUrl, i),
47
- options: t
48
- };
49
- try {
50
- n.options?.beforeFetch?.(g);
51
- let e = await fetch(g.url, g.options);
52
- s.value = e, c.value = e.status;
53
- let t = null;
54
- if (p === "text") t = await e.text();
55
- else {
56
- let n = await e.text();
57
- t = n ? JSON.parse(n) : null;
58
- }
59
- if (a.value = t, !e.ok) throw Error(e.statusText || `HTTP ${e.status}`);
60
- n.options?.afterFetch?.({
61
- data: t,
62
- response: e
63
- });
64
- } catch (e) {
65
- o.value = e, n.options?.onFetchError?.({
66
- error: e,
67
- response: s.value,
68
- data: a.value
69
- });
70
- } finally {
71
- l.value = !1, u.value = !1, m = null;
72
- }
73
- return h;
74
- }
1
+ import e from "./admins-components6.js";
2
+ import t from "./admins-components65.js";
3
+ import n from "./admins-components68.js";
4
+ import r from "./admins-components72.js";
5
+ import i from "./admins-components75.js";
6
+ import { getFilterParams as a } from "./admins-components80.js";
7
+ import o from "./admins-components83.js";
8
+ import s from "./admins-components86.js";
9
+ import c from "./admins-components89.js";
10
+ import l from "./admins-components93.js";
11
+ import { computed as u, createBlock as d, createCommentVNode as f, createElementBlock as p, createElementVNode as m, createVNode as h, defineComponent as g, mergeDefaults as _, mergeProps as v, onBeforeUnmount as y, onMounted as b, openBlock as x, ref as S } from "vue";
12
+ //#region src/components/data-table/DataList.vue?vue&type=script&setup=true&lang.ts
13
+ var C = { class: "ac-component" }, w = { class: "flex-center gap-2 mb-2 wrap-on-small" }, T = {
14
+ key: 2,
15
+ class: "flex-center gap-1"
16
+ }, E = { class: "ml-auto mr-2" }, D = {
17
+ layoutBreakpoint: 768,
18
+ orderable: !0,
19
+ loading: !1
20
+ }, O = /* @__PURE__ */ g({
21
+ __name: "DataList",
22
+ props: /* @__PURE__ */ _({
23
+ config: {},
24
+ items: {},
25
+ settings: {},
26
+ id: {},
27
+ layoutBreakpoint: {},
28
+ orderable: { type: Boolean },
29
+ pagination: {},
30
+ loading: { type: Boolean },
31
+ handleUrl: { type: Boolean },
32
+ searchConfig: {},
33
+ filterConfig: {}
34
+ }, {
35
+ ...D,
36
+ searchConfig: void 0,
37
+ filterConfig: void 0
38
+ }),
39
+ emits: [
40
+ "filter-change",
41
+ "selection-change",
42
+ "settings-change",
43
+ "pagination-change",
44
+ "sort-change",
45
+ "search-change"
46
+ ],
47
+ setup(g, { expose: _, emit: D }) {
48
+ let O = S(null), k = g;
49
+ function A(e) {
50
+ let t = k[e];
51
+ return t && Object.hasOwn(t, "handleUrl") ? t.handleUrl : k.handleUrl;
52
+ }
53
+ let j = u(() => ({
54
+ ...k.searchConfig,
55
+ handleUrl: A("searchConfig")
56
+ })), M = u(() => ({
57
+ ...k.filterConfig,
58
+ handleUrl: A("filterConfig")
59
+ })), N = D, P = S(!1), F = S(!1), I = S(null), L = S(!1), R = S(null), z = S(!1), B = S(k.filterConfig?.items ? a(k.filterConfig.items) ?? {} : {}), V = null;
60
+ b(() => {
61
+ V = new ResizeObserver((e) => {
62
+ L.value = (e[0]?.contentRect.width ?? 0) < k.layoutBreakpoint;
63
+ }), R.value && V.observe(R.value);
64
+ }), y(() => V?.disconnect());
65
+ let H = u(() => {
66
+ let e = I.value?.layout;
67
+ return e === "table" || e === "cards" ? e : L.value ? "cards" : "table";
68
+ }), U = u(() => {
69
+ if (!I.value) return k.config;
70
+ let e = I.value.columnOrder, t = k.config.columns.map((e) => ({
71
+ ...e,
72
+ visible: I.value.columns[e.property] ?? e.visible !== !1
73
+ }));
74
+ return e?.length && t.sort((t, n) => {
75
+ let r = e.indexOf(t.property), i = e.indexOf(n.property);
76
+ return (r === -1 ? 999 : r) - (i === -1 ? 999 : i);
77
+ }), {
78
+ ...k.config,
79
+ columns: t
80
+ };
81
+ });
82
+ function W(e) {
83
+ I.value = e, N("settings-change", e);
84
+ }
85
+ _({
86
+ openOptions: () => P.value = !0,
87
+ closeOptions: () => P.value = !1,
88
+ openFilters: () => z.value = !0,
89
+ closeFilters: () => z.value = !1
90
+ });
91
+ async function G(e) {
92
+ z.value = !0, setTimeout(() => {
93
+ O.value?.focusFilter(e);
94
+ }, 300);
95
+ }
96
+ function K(e) {
97
+ B.value = e.values, N("filter-change", e.transformed);
98
+ }
99
+ let q = u(() => Object.values(B.value).filter((e) => e != null && e !== "").length), J = u(() => !!k.pagination && (k.items.length > 0 || !k.loading)), Y = (e) => {
100
+ N("search-change", e);
75
101
  };
76
- return n.options?.immediate !== !1 && h.execute(), h;
77
- };
78
- }
79
- function r(e) {
80
- return !!e && typeof e == "object" && "value" in e;
81
- }
102
+ return (a, u) => (x(), p("div", C, [m("div", {
103
+ ref_key: "root",
104
+ ref: R,
105
+ class: "c-data-list"
106
+ }, [
107
+ m("template", null, [m("div", w, [
108
+ g.searchConfig ? (x(), d(l, v({ key: 0 }, j.value, { onSearchChange: Y }), null, 16)) : f("", !0),
109
+ g.filterConfig?.items && g.filterConfig.items.length > 0 ? (x(), d(e, {
110
+ key: 1,
111
+ label: "Szűrők",
112
+ icon: "fa-solid fa-filter",
113
+ onClick: u[0] ||= (e) => z.value = !0,
114
+ style: { "flex-shrink": "0" },
115
+ type: q.value > 0 ? "info" : "normal",
116
+ indicator: q.value > 0 ? q.value : void 0
117
+ }, null, 8, ["type", "indicator"])) : f("", !0),
118
+ g.filterConfig?.items && g.filterConfig.items.length > 0 ? (x(), p("div", T, [h(s, {
119
+ filters: B.value,
120
+ items: g.filterConfig.items,
121
+ onRemove: u[1] ||= (e) => O.value?.clearFilter(e),
122
+ onOpenFilter: G
123
+ }, null, 8, ["filters", "items"])])) : f("", !0),
124
+ m("div", E, [h(e, {
125
+ icon: "fa-solid fa-gear",
126
+ onClick: u[2] ||= (e) => P.value = !0
127
+ }), h(e, {
128
+ icon: "fa-solid fa-question",
129
+ onClick: u[3] ||= (e) => F.value = !0
130
+ })])
131
+ ]), g.filterConfig?.items && g.filterConfig.items.length > 0 ? (x(), d(o, v({
132
+ key: 0,
133
+ ref_key: "dataFiltersRef",
134
+ ref: O
135
+ }, M.value, {
136
+ "storage-key": g.id,
137
+ open: z.value,
138
+ onClose: u[4] ||= (e) => z.value = !1,
139
+ onChange: K
140
+ }), null, 16, ["storage-key", "open"])) : f("", !0)]),
141
+ h(c, {
142
+ open: F.value,
143
+ onClose: u[5] ||= (e) => F.value = !1
144
+ }, null, 8, ["open"]),
145
+ H.value === "table" ? (x(), d(t, {
146
+ key: 0,
147
+ config: U.value,
148
+ loading: g.loading,
149
+ items: g.items,
150
+ settings: I.value ?? void 0,
151
+ onFilterChange: u[6] ||= (e) => N("filter-change", e),
152
+ onSelectionChange: u[7] ||= (e) => N("selection-change", e),
153
+ onSortChange: u[8] ||= (e) => N("sort-change", e)
154
+ }, null, 8, [
155
+ "config",
156
+ "loading",
157
+ "items",
158
+ "settings"
159
+ ])) : (x(), d(n, {
160
+ key: 1,
161
+ config: U.value,
162
+ loading: g.loading,
163
+ items: g.items,
164
+ settings: I.value ?? void 0,
165
+ onSelectionChange: u[9] ||= (e) => N("selection-change", e)
166
+ }, null, 8, [
167
+ "config",
168
+ "loading",
169
+ "items",
170
+ "settings"
171
+ ])),
172
+ g.pagination && J.value ? (x(), d(i, {
173
+ key: 2,
174
+ settings: g.pagination,
175
+ "storage-key": g.id,
176
+ "onUpdate:pagination": u[10] ||= (e) => N("pagination-change", e)
177
+ }, null, 8, ["settings", "storage-key"])) : f("", !0),
178
+ h(r, {
179
+ open: P.value,
180
+ columns: g.config.columns,
181
+ settings: g.settings ?? {},
182
+ "storage-key": g.id,
183
+ orderable: g.orderable,
184
+ onClose: u[11] ||= (e) => P.value = !1,
185
+ onChange: W
186
+ }, null, 8, [
187
+ "open",
188
+ "columns",
189
+ "settings",
190
+ "storage-key",
191
+ "orderable"
192
+ ])
193
+ ], 512)]));
194
+ }
195
+ });
82
196
  //#endregion
83
- export { n as createNativeFetch };
197
+ export { D as dataListDefaults, O as default };