admins-components 9.0.38 → 9.0.40

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 (238) hide show
  1. package/dist/admins-components.js +38 -38
  2. package/dist/admins-components100.js +3 -52
  3. package/dist/admins-components100.js.map +1 -1
  4. package/dist/admins-components101.js +3 -82
  5. package/dist/admins-components101.js.map +1 -1
  6. package/dist/admins-components102.js +49 -110
  7. package/dist/admins-components102.js.map +1 -1
  8. package/dist/admins-components103.js +80 -45
  9. package/dist/admins-components103.js.map +1 -1
  10. package/dist/admins-components104.js +108 -101
  11. package/dist/admins-components104.js.map +1 -1
  12. package/dist/admins-components105.js +41 -14
  13. package/dist/admins-components105.js.map +1 -1
  14. package/dist/admins-components106.js +105 -6
  15. package/dist/admins-components106.js.map +1 -1
  16. package/dist/admins-components107.js +16 -248
  17. package/dist/admins-components107.js.map +1 -1
  18. package/dist/admins-components108.js +7 -27
  19. package/dist/admins-components108.js.map +1 -1
  20. package/dist/admins-components109.js +247 -23
  21. package/dist/admins-components109.js.map +1 -1
  22. package/dist/admins-components110.js +26 -171
  23. package/dist/admins-components110.js.map +1 -1
  24. package/dist/admins-components111.js +25 -65
  25. package/dist/admins-components111.js.map +1 -1
  26. package/dist/admins-components112.js +163 -58
  27. package/dist/admins-components112.js.map +1 -1
  28. package/dist/admins-components113.js +65 -27
  29. package/dist/admins-components113.js.map +1 -1
  30. package/dist/admins-components114.js +63 -12
  31. package/dist/admins-components114.js.map +1 -1
  32. package/dist/admins-components115.js +29 -26
  33. package/dist/admins-components115.js.map +1 -1
  34. package/dist/admins-components116.js +16 -9
  35. package/dist/admins-components116.js.map +1 -1
  36. package/dist/admins-components117.js +26 -3
  37. package/dist/admins-components117.js.map +1 -1
  38. package/dist/admins-components118.js +8 -2
  39. package/dist/admins-components118.js.map +1 -1
  40. package/dist/admins-components119.js +4 -3
  41. package/dist/admins-components119.js.map +1 -1
  42. package/dist/admins-components120.js +3 -21
  43. package/dist/admins-components120.js.map +1 -1
  44. package/dist/admins-components121.js +3 -14
  45. package/dist/admins-components121.js.map +1 -1
  46. package/dist/admins-components122.js +20 -7
  47. package/dist/admins-components122.js.map +1 -1
  48. package/dist/admins-components123.js +14 -13
  49. package/dist/admins-components123.js.map +1 -1
  50. package/dist/admins-components124.js +8 -26
  51. package/dist/admins-components124.js.map +1 -1
  52. package/dist/admins-components125.js +12 -82
  53. package/dist/admins-components125.js.map +1 -1
  54. package/dist/admins-components126.js +24 -9
  55. package/dist/admins-components126.js.map +1 -1
  56. package/dist/admins-components127.js +82 -4
  57. package/dist/admins-components127.js.map +1 -1
  58. package/dist/admins-components128.js +11 -8
  59. package/dist/admins-components128.js.map +1 -1
  60. package/dist/admins-components129.js +4 -6
  61. package/dist/admins-components129.js.map +1 -1
  62. package/dist/admins-components130.js +8 -6
  63. package/dist/admins-components130.js.map +1 -1
  64. package/dist/admins-components131.js +6 -14
  65. package/dist/admins-components131.js.map +1 -1
  66. package/dist/admins-components132.js +4 -11
  67. package/dist/admins-components132.js.map +1 -1
  68. package/dist/admins-components133.js +15 -30
  69. package/dist/admins-components133.js.map +1 -1
  70. package/dist/admins-components134.js +13 -4
  71. package/dist/admins-components134.js.map +1 -1
  72. package/dist/admins-components135.js +30 -29
  73. package/dist/admins-components135.js.map +1 -1
  74. package/dist/admins-components136.js +4 -5
  75. package/dist/admins-components136.js.map +1 -1
  76. package/dist/admins-components137.js +29 -5
  77. package/dist/admins-components137.js.map +1 -1
  78. package/dist/admins-components138.js +4 -7
  79. package/dist/admins-components138.js.map +1 -1
  80. package/dist/admins-components139.js +4 -73
  81. package/dist/admins-components139.js.map +1 -1
  82. package/dist/admins-components140.js +7 -28
  83. package/dist/admins-components140.js.map +1 -1
  84. package/dist/admins-components141.js +73 -58
  85. package/dist/admins-components141.js.map +1 -1
  86. package/dist/admins-components142.js +29 -24
  87. package/dist/admins-components142.js.map +1 -1
  88. package/dist/admins-components143.js +56 -47
  89. package/dist/admins-components143.js.map +1 -1
  90. package/dist/admins-components144.js +23 -30
  91. package/dist/admins-components144.js.map +1 -1
  92. package/dist/admins-components145.js +50 -3
  93. package/dist/admins-components145.js.map +1 -1
  94. package/dist/admins-components146.js +29 -177
  95. package/dist/admins-components146.js.map +1 -1
  96. package/dist/admins-components147.js +3 -46
  97. package/dist/admins-components147.js.map +1 -1
  98. package/dist/admins-components148.js +177 -35
  99. package/dist/admins-components148.js.map +1 -1
  100. package/dist/admins-components149.js +41 -41
  101. package/dist/admins-components149.js.map +1 -1
  102. package/dist/admins-components150.js +32 -136
  103. package/dist/admins-components150.js.map +1 -1
  104. package/dist/admins-components151.js +42 -54
  105. package/dist/admins-components151.js.map +1 -1
  106. package/dist/admins-components152.js +140 -6
  107. package/dist/admins-components152.js.map +1 -1
  108. package/dist/admins-components153.js +57 -5
  109. package/dist/admins-components153.js.map +1 -1
  110. package/dist/admins-components154.js +6 -75
  111. package/dist/admins-components154.js.map +1 -1
  112. package/dist/admins-components155.js +5 -28
  113. package/dist/admins-components155.js.map +1 -1
  114. package/dist/admins-components156.js +74 -1929
  115. package/dist/admins-components156.js.map +1 -1
  116. package/dist/admins-components157.js +29 -24811
  117. package/dist/admins-components157.js.map +1 -1
  118. package/dist/admins-components158.js +1930 -8
  119. package/dist/admins-components158.js.map +1 -1
  120. package/dist/admins-components159.js +24809 -5
  121. package/dist/admins-components159.js.map +1 -0
  122. package/dist/admins-components160.js +8 -141
  123. package/dist/admins-components160.js.map +1 -1
  124. package/dist/admins-components161.js +7 -9
  125. package/dist/admins-components162.js +141 -8
  126. package/dist/admins-components162.js.map +1 -1
  127. package/dist/admins-components163.js +10 -0
  128. package/dist/{admins-components161.js.map → admins-components163.js.map} +1 -1
  129. package/dist/admins-components164.js +8 -167
  130. package/dist/admins-components164.js.map +1 -1
  131. package/dist/admins-components166.js +167 -8
  132. package/dist/admins-components166.js.map +1 -1
  133. package/dist/admins-components167.js +39 -38
  134. package/dist/admins-components167.js.map +1 -1
  135. package/dist/admins-components168.js +9 -6
  136. package/dist/admins-components168.js.map +1 -1
  137. package/dist/admins-components169.js +42 -72
  138. package/dist/admins-components169.js.map +1 -1
  139. package/dist/admins-components170.js +6 -58
  140. package/dist/admins-components170.js.map +1 -1
  141. package/dist/admins-components171.js +72 -51
  142. package/dist/admins-components171.js.map +1 -1
  143. package/dist/admins-components172.js +57 -8
  144. package/dist/admins-components172.js.map +1 -1
  145. package/dist/admins-components173.js +40 -33
  146. package/dist/admins-components173.js.map +1 -1
  147. package/dist/admins-components174.js +3 -3
  148. package/dist/admins-components174.js.map +1 -1
  149. package/dist/admins-components175.js +53 -0
  150. package/dist/admins-components175.js.map +1 -0
  151. package/dist/admins-components176.js +8 -57
  152. package/dist/admins-components176.js.map +1 -1
  153. package/dist/admins-components178.js +59 -0
  154. package/dist/admins-components178.js.map +1 -0
  155. package/dist/admins-components38.js +2 -2
  156. package/dist/admins-components38.js.map +1 -1
  157. package/dist/admins-components39.js.map +1 -1
  158. package/dist/admins-components58.js.map +1 -1
  159. package/dist/admins-components59.js +1 -13
  160. package/dist/admins-components59.js.map +1 -1
  161. package/dist/admins-components61.js +22 -22
  162. package/dist/admins-components61.js.map +1 -1
  163. package/dist/admins-components62.js.map +1 -1
  164. package/dist/admins-components63.js +69 -133
  165. package/dist/admins-components63.js.map +1 -1
  166. package/dist/admins-components64.js +5 -0
  167. package/dist/admins-components64.js.map +1 -0
  168. package/dist/admins-components65.js +118 -7
  169. package/dist/admins-components65.js.map +1 -1
  170. package/dist/admins-components67.js +8 -0
  171. package/dist/admins-components67.js.map +1 -0
  172. package/dist/admins-components68.js +145 -7
  173. package/dist/admins-components68.js.map +1 -1
  174. package/dist/admins-components70.js +7 -279
  175. package/dist/admins-components70.js.map +1 -1
  176. package/dist/{admins-components69.js.map → admins-components71.js.map} +1 -1
  177. package/dist/admins-components72.js +279 -6
  178. package/dist/admins-components72.js.map +1 -1
  179. package/dist/admins-components74.js +6 -126
  180. package/dist/admins-components74.js.map +1 -1
  181. package/dist/{admins-components73.js.map → admins-components75.js.map} +1 -1
  182. package/dist/admins-components76.js +126 -6
  183. package/dist/admins-components76.js.map +1 -1
  184. package/dist/admins-components78.js +6 -69
  185. package/dist/admins-components78.js.map +1 -1
  186. package/dist/admins-components79.js +55 -234
  187. package/dist/admins-components79.js.map +1 -1
  188. package/dist/admins-components80.js +70 -0
  189. package/dist/admins-components80.js.map +1 -0
  190. package/dist/admins-components81.js +238 -6
  191. package/dist/admins-components81.js.map +1 -1
  192. package/dist/admins-components83.js +7 -0
  193. package/dist/admins-components83.js.map +1 -0
  194. package/dist/admins-components84.js +229 -6
  195. package/dist/admins-components84.js.map +1 -1
  196. package/dist/admins-components86.js +7 -0
  197. package/dist/admins-components86.js.map +1 -0
  198. package/dist/admins-components87.js +37 -6
  199. package/dist/admins-components87.js.map +1 -1
  200. package/dist/admins-components89.js +7 -0
  201. package/dist/{admins-components85.js.map → admins-components89.js.map} +1 -1
  202. package/dist/admins-components90.js +199 -6
  203. package/dist/admins-components90.js.map +1 -1
  204. package/dist/admins-components92.js +6 -75
  205. package/dist/admins-components92.js.map +1 -1
  206. package/dist/{admins-components91.js.map → admins-components93.js.map} +1 -1
  207. package/dist/admins-components94.js +75 -6
  208. package/dist/admins-components94.js.map +1 -1
  209. package/dist/admins-components96.js +7 -0
  210. package/dist/admins-components96.js.map +1 -0
  211. package/dist/admins-components97.js +204 -6
  212. package/dist/admins-components97.js.map +1 -1
  213. package/dist/admins-components99.js +6 -3
  214. package/dist/admins-components99.js.map +1 -1
  215. package/dist/src/components/ConfirmModal.vue.d.ts +1 -1
  216. package/dist/src/components/data-table/DataFilters.vue.d.ts +2 -1
  217. package/dist/src/components/data-table/DataListActions.vue.d.ts +8 -0
  218. package/dist/src/styles/components/modal.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  219. package/dist/src/types/data-list.d.ts +5 -1
  220. package/package.json +1 -1
  221. package/dist/admins-components165.js +0 -52
  222. package/dist/admins-components165.js.map +0 -1
  223. package/dist/admins-components66.js +0 -171
  224. package/dist/admins-components66.js.map +0 -1
  225. package/dist/admins-components77.js +0 -60
  226. package/dist/admins-components77.js.map +0 -1
  227. package/dist/admins-components82.js +0 -230
  228. package/dist/admins-components82.js.map +0 -1
  229. package/dist/admins-components85.js +0 -38
  230. package/dist/admins-components88.js +0 -200
  231. package/dist/admins-components88.js.map +0 -1
  232. package/dist/admins-components95.js +0 -205
  233. package/dist/admins-components95.js.map +0 -1
  234. package/dist/admins-components98.js +0 -4
  235. package/dist/admins-components98.js.map +0 -1
  236. /package/dist/{admins-components69.js → admins-components71.js} +0 -0
  237. /package/dist/{admins-components73.js → admins-components75.js} +0 -0
  238. /package/dist/{admins-components91.js → admins-components93.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components90.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\n <strong><em>\"piros alma\"</em></strong\n >, <strong><em>\"almafa\"</em></strong\n >, <strong><em>\"alma\"</em></strong> vagy <strong><em>\"almás pite\"</em></strong> is találat\n 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ó 4 ikon:</p>\n <ul>\n <li>\n <i class=\"fa-regular fa-star\"></i>: ikonra kattintva megjelölhető a készlet\n alapértelmezettként. Ekkor az oldal következő betöltésekor automatikusan az itt megadott\n szűrők lesznek alkalmazva.\n </li>\n\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
+ {"version":3,"file":"admins-components90.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\n <strong><em>\"piros alma\"</em></strong\n >, <strong><em>\"almafa\"</em></strong\n >, <strong><em>\"alma\"</em></strong> vagy <strong><em>\"almás pite\"</em></strong> is találat\n 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ó 4 ikon:</p>\n <ul>\n <li>\n <i class=\"fa-regular fa-star\"></i>: ikonra kattintva megjelölhető a készlet\n alapértelmezettként. Ekkor az oldal következő betöltésekor automatikusan az itt megadott\n szűrők lesznek alkalmazva.\n </li>\n\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":"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"}
@@ -1,76 +1,7 @@
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-components91.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
- "onUpdate:modelValue": w
72
- }, null, 8, ["model-value", "placeholder"])) : s("", !0)]));
73
- }
74
- });
1
+ import './src/styles/components/data-table/data-list-guide.scss_vue_type_style_index_0_src_true_lang.css';
2
+ import e from "./admins-components90.js";
3
+ /* empty css */
4
+ //#region src/components/data-table/DataListGuide.vue
5
+ var t = e;
75
6
  //#endregion
76
- export { _ as default };
7
+ export { t as default };
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components92.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 @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,EAqBM,OArBN,GAqBM,CAnBI,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,EASE,GAAA;;GAPA,MAAK;GACL,WAAA;GACC,eAAa,EAAA;GACd,mBAAgB;GACf,aAAa,EAAA;GACb,cAAc;GACd,uBAAoB"}
1
+ {"version":3,"file":"admins-components92.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\n <strong><em>\"piros alma\"</em></strong\n >, <strong><em>\"almafa\"</em></strong\n >, <strong><em>\"alma\"</em></strong> vagy <strong><em>\"almás pite\"</em></strong> is találat\n 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ó 4 ikon:</p>\n <ul>\n <li>\n <i class=\"fa-regular fa-star\"></i>: ikonra kattintva megjelölhető a készlet\n alapértelmezettként. Ekkor az oldal következő betöltésekor automatikusan az itt megadott\n szűrők lesznek alkalmazva.\n </li>\n\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 +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-components93.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,7 +1,76 @@
1
- import './src/styles/components/data-table/data-search.scss_vue_type_style_index_0_src_true_lang.css';
2
- import e from "./admins-components92.js";
3
- /* empty css */
4
- //#region src/components/data-table/DataSearch.vue
5
- var t = e;
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-components93.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
+ "onUpdate:modelValue": w
72
+ }, null, 8, ["model-value", "placeholder"])) : s("", !0)]));
73
+ }
74
+ });
6
75
  //#endregion
7
- export { t as default };
76
+ export { _ as default };
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components94.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 @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
+ {"version":3,"file":"admins-components94.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 @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,EAqBM,OArBN,GAqBM,CAnBI,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,EASE,GAAA;;GAPA,MAAK;GACL,WAAA;GACC,eAAa,EAAA;GACd,mBAAgB;GACf,aAAa,EAAA;GACb,cAAc;GACd,uBAAoB"}
@@ -0,0 +1,7 @@
1
+ import './src/styles/components/data-table/data-search.scss_vue_type_style_index_0_src_true_lang.css';
2
+ import e from "./admins-components94.js";
3
+ /* empty css */
4
+ //#region src/components/data-table/DataSearch.vue
5
+ var t = e;
6
+ //#endregion
7
+ export { t as default };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admins-components96.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 @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,7 +1,205 @@
1
- import './src/styles/components/data-table/data-list.scss_vue_type_style_index_0_src_true_lang.css';
2
- import e from "./admins-components95.js";
3
- /* empty css */
4
- //#region src/components/data-table/DataList.vue
5
- var t = e;
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 i from "./admins-components78.js";
6
+ import { getDefaultFilters as a } from "./admins-components80.js";
7
+ import o from "./admins-components86.js";
8
+ import s from "./admins-components89.js";
9
+ import c from "./admins-components92.js";
10
+ import l from "./admins-components96.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: "c-data-list__toolbar" }, T = {
14
+ key: 2,
15
+ class: "flex-center gap-1"
16
+ }, E = { class: "flex-center ml-auto nowrap" }, D = {
17
+ layoutBreakpoint: 768,
18
+ orderable: !0,
19
+ loading: !1,
20
+ useSearch: !0,
21
+ useFilters: !0,
22
+ handleUrl: !1
23
+ }, O = /* @__PURE__ */ g({
24
+ __name: "DataList",
25
+ props: /* @__PURE__ */ _({
26
+ config: {},
27
+ items: {},
28
+ settings: {},
29
+ id: {},
30
+ layoutBreakpoint: {},
31
+ orderable: { type: Boolean },
32
+ pagination: {},
33
+ loading: { type: Boolean },
34
+ handleUrl: { type: Boolean },
35
+ useSearch: { type: Boolean },
36
+ useFilters: { type: Boolean },
37
+ searchConfig: {},
38
+ filterConfig: {}
39
+ }, {
40
+ ...D,
41
+ searchConfig: void 0,
42
+ filterConfig: void 0
43
+ }),
44
+ emits: [
45
+ "filter-change",
46
+ "selection-change",
47
+ "settings-change",
48
+ "pagination-change",
49
+ "sort-change",
50
+ "search-change"
51
+ ],
52
+ setup(g, { expose: _, emit: D }) {
53
+ let O = S(null), k = g;
54
+ function A(e) {
55
+ let t = k[e];
56
+ return t && Object.hasOwn(t, "handleUrl") ? t.handleUrl : k.handleUrl;
57
+ }
58
+ let j = u(() => ({
59
+ ...k.searchConfig,
60
+ handleUrl: A("searchConfig")
61
+ })), M = u(() => ({
62
+ ...k.filterConfig,
63
+ handleUrl: A("filterConfig")
64
+ })), 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, k.id, !1) : {}), V = null;
65
+ b(() => {
66
+ V = new ResizeObserver((e) => {
67
+ L.value = (e[0]?.contentRect.width ?? 0) < k.layoutBreakpoint;
68
+ }), R.value && V.observe(R.value);
69
+ }), y(() => V?.disconnect());
70
+ let H = u(() => {
71
+ let e = I.value?.layout;
72
+ return e === "table" || e === "cards" ? e : L.value ? "cards" : "table";
73
+ }), U = u(() => {
74
+ if (!I.value) return k.config;
75
+ let e = I.value.columnOrder, t = k.config.columns.map((e) => ({
76
+ ...e,
77
+ visible: I.value.columns[e.property] ?? e.visible !== !1
78
+ }));
79
+ return e?.length && t.sort((t, n) => {
80
+ let r = e.indexOf(t.property), i = e.indexOf(n.property);
81
+ return (r === -1 ? 999 : r) - (i === -1 ? 999 : i);
82
+ }), {
83
+ ...k.config,
84
+ columns: t
85
+ };
86
+ });
87
+ function W(e) {
88
+ I.value = e, N("settings-change", e);
89
+ }
90
+ _({
91
+ openOptions: () => P.value = !0,
92
+ closeOptions: () => P.value = !1,
93
+ openFilters: () => z.value = !0,
94
+ closeFilters: () => z.value = !1
95
+ });
96
+ async function G(e) {
97
+ z.value = !0, setTimeout(() => {
98
+ O.value?.focusFilter(e);
99
+ }, 300);
100
+ }
101
+ function K(e) {
102
+ B.value = e.values, N("filter-change", e.transformed);
103
+ }
104
+ 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) => {
105
+ N("search-change", e);
106
+ };
107
+ return (a, u) => (x(), p("div", C, [m("div", {
108
+ ref_key: "root",
109
+ ref: R,
110
+ class: "c-data-list"
111
+ }, [
112
+ m("div", w, [
113
+ g.useSearch ? (x(), d(l, v({ key: 0 }, j.value, { onSearchChange: Y }), null, 16)) : f("", !0),
114
+ g.useFilters && g.filterConfig?.items && g.filterConfig.items.length > 0 ? (x(), d(e, {
115
+ key: 1,
116
+ label: "Szűrők",
117
+ icon: "fa-solid fa-filter",
118
+ onClick: u[0] ||= (e) => z.value = !0,
119
+ style: { "flex-shrink": "0" },
120
+ type: q.value > 0 ? "info" : "normal",
121
+ indicator: q.value > 0 ? q.value : void 0
122
+ }, null, 8, ["type", "indicator"])) : f("", !0),
123
+ g.useFilters && g.filterConfig?.items && g.filterConfig.items.length > 0 ? (x(), p("div", T, [h(s, {
124
+ filters: B.value,
125
+ items: g.filterConfig.items,
126
+ onRemove: u[1] ||= (e) => O.value?.clearFilter(e),
127
+ onOpenFilter: G
128
+ }, null, 8, ["filters", "items"])])) : f("", !0),
129
+ m("div", E, [h(e, {
130
+ icon: "fa-solid fa-gear",
131
+ class: "lh-normal",
132
+ onClick: u[2] ||= (e) => P.value = !0
133
+ }), h(e, {
134
+ icon: "fa-solid fa-question",
135
+ class: "lh-normal",
136
+ onClick: u[3] ||= (e) => F.value = !0
137
+ })])
138
+ ]),
139
+ g.useFilters && g.filterConfig?.items && g.filterConfig.items.length > 0 ? (x(), d(o, v({
140
+ key: 0,
141
+ ref_key: "dataFiltersRef",
142
+ ref: O
143
+ }, M.value, {
144
+ "storage-key": g.id,
145
+ open: z.value,
146
+ onClose: u[4] ||= (e) => z.value = !1,
147
+ onChange: K
148
+ }), null, 16, ["storage-key", "open"])) : f("", !0),
149
+ h(c, {
150
+ open: F.value,
151
+ onClose: u[5] ||= (e) => F.value = !1
152
+ }, null, 8, ["open"]),
153
+ H.value === "table" ? (x(), d(t, {
154
+ key: 1,
155
+ config: U.value,
156
+ loading: g.loading,
157
+ items: g.items,
158
+ settings: I.value ?? void 0,
159
+ onFilterChange: u[6] ||= (e) => N("filter-change", e),
160
+ onSelectionChange: u[7] ||= (e) => N("selection-change", e),
161
+ onSortChange: u[8] ||= (e) => N("sort-change", e)
162
+ }, null, 8, [
163
+ "config",
164
+ "loading",
165
+ "items",
166
+ "settings"
167
+ ])) : (x(), d(n, {
168
+ key: 2,
169
+ config: U.value,
170
+ loading: g.loading,
171
+ items: g.items,
172
+ settings: I.value ?? void 0,
173
+ onSelectionChange: u[9] ||= (e) => N("selection-change", e)
174
+ }, null, 8, [
175
+ "config",
176
+ "loading",
177
+ "items",
178
+ "settings"
179
+ ])),
180
+ g.pagination && J.value ? (x(), d(i, {
181
+ key: 3,
182
+ settings: g.pagination,
183
+ "storage-key": g.id,
184
+ "onUpdate:pagination": u[10] ||= (e) => N("pagination-change", e)
185
+ }, null, 8, ["settings", "storage-key"])) : f("", !0),
186
+ h(r, {
187
+ open: P.value,
188
+ columns: g.config.columns,
189
+ settings: g.settings ?? {},
190
+ "storage-key": g.id,
191
+ orderable: g.orderable,
192
+ onClose: u[11] ||= (e) => P.value = !1,
193
+ onChange: W
194
+ }, null, 8, [
195
+ "open",
196
+ "columns",
197
+ "settings",
198
+ "storage-key",
199
+ "orderable"
200
+ ])
201
+ ], 512)]));
202
+ }
203
+ });
6
204
  //#endregion
7
- export { t as default };
205
+ export { D as dataListDefaults, O as default };
@@ -1 +1 @@
1
- {"version":3,"file":"admins-components97.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</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 FilterResponse,\n type DataFiltersProps,\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, { 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' }]\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\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\"\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 <Button icon=\"fa-solid fa-gear\" class=\"lh-normal\" @click=\"showOptions = true\" />\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 @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-components97.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</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 FilterResponse,\n type DataFiltersProps,\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, { 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' }]\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\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\"\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 <Button icon=\"fa-solid fa-gear\" class=\"lh-normal\" @click=\"showOptions = true\" />\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 @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":";;;;;;;;;;;;;;;gDAqBa,IAAmB;CAC9B,kBAAkB;CAClB,WAAW;CACX,SAAS;CACT,WAAW;CACX,YAAY;CACZ,WAAW;AACb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BA,IAAM,IAAiB,EAA6C,IAAI,GAElE,IAAQ;EAMd,SAAS,EAAkB,GAA4D;GACrF,IAAM,IAAa,EAAM;GAIzB,OAHI,KAAc,OAAO,OAAO,GAAsB,WAAW,IACvD,EAAuC,YAE1C,EAAM;EACf;EAEA,IAAM,IAAqB,SAAiC;GAC1D,GAAG,EAAM;GACT,WAAW,EAAkB,cAAc;EAC7C,EAAE,GAEI,IAAqB,SAAkC;GAC3D,GAAI,EAAM;GACV,WAAW,EAAkB,cAAc;EAC7C,EAAE,GAEI,IAAO,GASP,IAAc,EAAI,EAAK,GACvB,IAAY,EAAI,EAAK,GACrB,IAAmB,EAA6B,IAAI,GACpD,IAAW,EAAI,EAAK,GACpB,IAAO,EAAwB,IAAI,GACnC,IAAc,EAAI,EAAK,GAEvB,IAAgB,EACpB,EAAM,cAAc,QAAQ,EAAkB,EAAM,aAAa,OAAO,EAAM,IAAI,EAAK,IAAI,CAAC,CAC9F,GACI,IAAwC;EAS5C,AAPA,QAAgB;GAId,AAHA,IAAiB,IAAI,gBAAgB,MAAY;IAC/C,EAAS,SAAS,EAAQ,IAAI,YAAY,SAAS,KAAK,EAAM;GAChE,CAAC,GACG,EAAK,SAAO,EAAe,QAAQ,EAAK,KAAK;EACnD,CAAC,GAED,QAAsB,GAAgB,WAAW,CAAC;EAElD,IAAM,IAAkB,QAAkC;GACxD,IAAM,IAAS,EAAiB,OAAO;GAEvC,OADI,MAAW,WAAW,MAAW,UAAgB,IAC9C,EAAS,QAAQ,UAAU;EACpC,CAAC,GAEK,IAAiB,QAA+B;GACpD,IAAI,CAAC,EAAiB,OAAO,OAAO,EAAM;GAC1C,IAAM,IAAQ,EAAiB,MAAM,aAC/B,IAAS,EAAM,OAAO,QAAQ,KAAK,OAAO;IAC9C,GAAG;IACH,SAAS,EAAiB,MAAO,QAAQ,EAAE,aAAa,EAAE,YAAY;GACxE,EAAE;GAQF,OAPI,GAAO,UACT,EAAO,MAAM,GAAG,MAAM;IACpB,IAAM,IAAK,EAAM,QAAQ,EAAE,QAAQ,GAC7B,IAAK,EAAM,QAAQ,EAAE,QAAQ;IACnC,QAAQ,MAAO,KAAK,MAAM,MAAO,MAAO,KAAK,MAAM;GACrD,CAAC,GAEI;IAAE,GAAG,EAAM;IAAQ,SAAS;GAAO;EAC5C,CAAC;EAED,SAAS,EAAiB,GAAqB;GAE7C,AADA,EAAiB,QAAQ,GACzB,EAAK,mBAAmB,CAAC;EAC3B;EAEA,EAAa;GACX,mBAAoB,EAAY,QAAQ;GACxC,oBAAqB,EAAY,QAAQ;GACzC,mBAAoB,EAAY,QAAQ;GACxC,oBAAqB,EAAY,QAAQ;EAC3C,CAAC;EAED,eAAe,EAAW,GAAa;GAErC,AADA,EAAY,QAAQ,IACpB,iBAAiB;IACf,EAAe,OAAO,YAAY,CAAG;GACvC,GAAG,GAAG;EACR;EAEA,SAAS,EAAe,GAA0B;GAEhD,AADA,EAAc,QAAQ,EAAS,QAC/B,EAAK,iBAAiB,EAAS,WAAW;EAC5C;EAEA,IAAM,IAAqB,QACnB,OAAO,OAAO,EAAc,KAAK,EAAE,QAAQ,MAAM,KAAK,QAAQ,MAAM,EAAE,EAAE,MAChF,GAEM,IAAgB,QACd,CAAC,CAAC,EAAM,eAAe,EAAM,MAAM,SAAS,KAAK,CAAC,EAAM,QAChE,GAEM,KAAgB,MAA4C;GAChE,EAAK,iBAAiB,CAAK;EAC7B;yBAKE,EA4EM,OA5EN,GA4EM,CA3EJ,EA0EM,OAAA;YA1EG;GAAJ,KAAI;GAAO,OAAM;;GACpB,EA0BM,OA1BN,GA0BM;IAzBc,EAAA,aAAA,EAAA,GAAlB,EAAyF,GAAzF,EAAyF,EAAA,KAAA,EAAA,GAApD,EAAA,OAAkB,EAAG,gBAAe,EAAY,CAAA,GAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA;IAE7E,EAAA,cAAc,EAAA,cAAc,SAAS,EAAA,aAAa,MAAM,SAAM,KAAA,EAAA,GADtE,EAQE,GAAA;;KANA,OAAM;KACN,MAAK;KACJ,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,QAAW;KACnB,OAAA,EAAA,eAAA,IAAA;KACC,MAAM,EAAA,QAAkB,IAAA,SAAA;KACxB,WAAW,EAAA,QAAkB,IAAO,EAAA,QAAqB,KAAA;;IAIpD,EAAA,cAAc,EAAA,cAAc,SAAS,EAAA,aAAa,MAAM,SAAM,KAAA,EAAA,GAFtE,EAUM,OAVN,GAUM,CANJ,EAKE,GAAA;KAJC,SAAS,EAAA;KACT,OAAO,EAAA,aAAa;KACpB,UAAM,AAAA,EAAA,QAAG,MAAgB,EAAA,OAAgB,YAAY,CAAG;KACxD,cAAY;;IAGjB,EAGM,OAHN,GAGM,CAFJ,EAAgF,GAAA;KAAxE,MAAK;KAAmB,OAAM;KAAa,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,QAAW;QACrE,EAAkF,GAAA;KAA1E,MAAK;KAAuB,OAAM;KAAa,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,QAAS;;;GAKnE,EAAA,cAAc,EAAA,cAAc,SAAS,EAAA,aAAa,MAAM,SAAM,KAAA,EAAA,GAFtE,EAQE,GARF,EAQE;;aAPI;IAAJ,KAAI;MAEI,EAAA,OAAkB;IACzB,eAAa,EAAA;IACb,MAAM,EAAA;IACN,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,QAAW;IAClB,UAAQ;;GAEX,EAA8D,GAAA;IAA9C,MAAM,EAAA;IAAY,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,QAAS;;GAE1C,EAAA,UAAe,WAAA,EAAA,GADvB,EASE,GAAA;;IAPC,QAAQ,EAAA;IACR,SAAS,EAAA;IACT,OAAO,EAAA;IACP,UAAU,EAAA,SAAoB,KAAA;IAC9B,gBAAa,AAAA,EAAA,QAAA,MAAE,EAAI,iBAAkB,CAAM;IAC3C,mBAAgB,AAAA,EAAA,QAAA,MAAE,EAAI,oBAAqB,CAAM;IACjD,cAAW,AAAA,EAAA,QAAA,MAAE,EAAI,eAAgB,CAAM;;;;;;eAG1C,EAOE,GAAA;;IALC,QAAQ,EAAA;IACR,SAAS,EAAA;IACT,OAAO,EAAA;IACP,UAAU,EAAA,SAAoB,KAAA;IAC9B,mBAAgB,AAAA,EAAA,QAAA,MAAE,EAAI,oBAAqB,CAAM;;;;;;;GAI5C,EAAA,cAAc,EAAA,SAAA,EAAA,GADtB,EAKE,GAAA;;IAHC,UAAU,EAAA;IACV,eAAa,EAAA;IACb,uBAAiB,AAAA,EAAA,SAAA,MAAE,EAAI,qBAAsB,CAAM;;GAGtD,EAQE,GAAA;IAPC,MAAM,EAAA;IACN,SAAS,EAAA,OAAO;IAChB,UAAU,EAAA,YAAQ,CAAA;IAClB,eAAa,EAAA;IACb,WAAW,EAAA;IACX,SAAK,AAAA,EAAA,SAAA,MAAE,EAAA,QAAW;IAClB,UAAQ"}
@@ -1,4 +1,7 @@
1
- //#region src/utils/cmsContext.ts
2
- var e = () => window.cmsContext?.currentSite;
1
+ import './src/styles/components/data-table/data-list.scss_vue_type_style_index_0_src_true_lang.css';
2
+ import e from "./admins-components97.js";
3
+ /* empty css */
4
+ //#region src/components/data-table/DataList.vue
5
+ var t = e;
3
6
  //#endregion
4
- export { e as getCurrentSite };
7
+ export { t as default };