admins-components 9.0.50 → 9.0.52

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 (240) hide show
  1. package/dist/admins-components.js +35 -33
  2. package/dist/admins-components100.js +245 -3
  3. package/dist/admins-components100.js.map +1 -1
  4. package/dist/admins-components102.js +6 -52
  5. package/dist/admins-components102.js.map +1 -1
  6. package/dist/admins-components103.js +3 -82
  7. package/dist/admins-components103.js.map +1 -1
  8. package/dist/admins-components104.js +3 -113
  9. package/dist/admins-components104.js.map +1 -1
  10. package/dist/admins-components105.js +49 -44
  11. package/dist/admins-components105.js.map +1 -1
  12. package/dist/admins-components106.js +80 -104
  13. package/dist/admins-components106.js.map +1 -1
  14. package/dist/admins-components107.js +109 -16
  15. package/dist/admins-components107.js.map +1 -1
  16. package/dist/admins-components108.js +46 -6
  17. package/dist/admins-components108.js.map +1 -1
  18. package/dist/admins-components109.js +100 -246
  19. package/dist/admins-components109.js.map +1 -1
  20. package/dist/admins-components110.js +19 -26
  21. package/dist/admins-components110.js.map +1 -1
  22. package/dist/admins-components111.js +6 -27
  23. package/dist/admins-components111.js.map +1 -1
  24. package/dist/admins-components112.js +239 -159
  25. package/dist/admins-components112.js.map +1 -1
  26. package/dist/admins-components113.js +26 -67
  27. package/dist/admins-components113.js.map +1 -1
  28. package/dist/admins-components114.js +25 -64
  29. package/dist/admins-components114.js.map +1 -1
  30. package/dist/admins-components115.js +169 -27
  31. package/dist/admins-components115.js.map +1 -1
  32. package/dist/admins-components116.js +65 -13
  33. package/dist/admins-components116.js.map +1 -1
  34. package/dist/admins-components117.js +64 -24
  35. package/dist/admins-components117.js.map +1 -1
  36. package/dist/admins-components118.js +29 -8
  37. package/dist/admins-components118.js.map +1 -1
  38. package/dist/admins-components119.js +16 -4
  39. package/dist/admins-components119.js.map +1 -1
  40. package/dist/admins-components120.js +27 -3
  41. package/dist/admins-components120.js.map +1 -1
  42. package/dist/admins-components121.js +8 -2
  43. package/dist/admins-components121.js.map +1 -1
  44. package/dist/admins-components122.js +4 -21
  45. package/dist/admins-components122.js.map +1 -1
  46. package/dist/admins-components123.js +3 -14
  47. package/dist/admins-components123.js.map +1 -1
  48. package/dist/admins-components124.js +3 -8
  49. package/dist/admins-components124.js.map +1 -1
  50. package/dist/admins-components125.js +19 -11
  51. package/dist/admins-components125.js.map +1 -1
  52. package/dist/admins-components126.js +14 -26
  53. package/dist/admins-components126.js.map +1 -1
  54. package/dist/admins-components127.js +7 -82
  55. package/dist/admins-components127.js.map +1 -1
  56. package/dist/admins-components128.js +9 -7
  57. package/dist/admins-components128.js.map +1 -1
  58. package/dist/admins-components129.js +25 -4
  59. package/dist/admins-components129.js.map +1 -1
  60. package/dist/admins-components130.js +81 -6
  61. package/dist/admins-components130.js.map +1 -1
  62. package/dist/admins-components131.js +10 -6
  63. package/dist/admins-components131.js.map +1 -1
  64. package/dist/admins-components132.js +2 -3
  65. package/dist/admins-components132.js.map +1 -1
  66. package/dist/admins-components133.js +8 -15
  67. package/dist/admins-components133.js.map +1 -1
  68. package/dist/admins-components134.js +6 -12
  69. package/dist/admins-components134.js.map +1 -1
  70. package/dist/admins-components135.js +6 -30
  71. package/dist/admins-components135.js.map +1 -1
  72. package/dist/admins-components136.js +15 -4
  73. package/dist/admins-components136.js.map +1 -1
  74. package/dist/admins-components137.js +13 -29
  75. package/dist/admins-components137.js.map +1 -1
  76. package/dist/admins-components138.js +30 -5
  77. package/dist/admins-components138.js.map +1 -1
  78. package/dist/admins-components139.js +4 -5
  79. package/dist/admins-components139.js.map +1 -1
  80. package/dist/admins-components140.js +28 -7
  81. package/dist/admins-components140.js.map +1 -1
  82. package/dist/admins-components141.js +4 -73
  83. package/dist/admins-components141.js.map +1 -1
  84. package/dist/admins-components142.js +4 -28
  85. package/dist/admins-components142.js.map +1 -1
  86. package/dist/admins-components143.js +8 -59
  87. package/dist/admins-components143.js.map +1 -1
  88. package/dist/admins-components144.js +72 -22
  89. package/dist/admins-components144.js.map +1 -1
  90. package/dist/admins-components145.js +26 -47
  91. package/dist/admins-components145.js.map +1 -1
  92. package/dist/admins-components146.js +58 -30
  93. package/dist/admins-components146.js.map +1 -1
  94. package/dist/admins-components147.js +24 -3
  95. package/dist/admins-components147.js.map +1 -1
  96. package/dist/admins-components148.js +44 -173
  97. package/dist/admins-components148.js.map +1 -1
  98. package/dist/admins-components149.js +28 -43
  99. package/dist/admins-components149.js.map +1 -1
  100. package/dist/admins-components150.js +3 -37
  101. package/dist/admins-components150.js.map +1 -1
  102. package/dist/admins-components151.js +176 -43
  103. package/dist/admins-components151.js.map +1 -1
  104. package/dist/admins-components152.js +41 -136
  105. package/dist/admins-components152.js.map +1 -1
  106. package/dist/admins-components153.js +36 -57
  107. package/dist/admins-components153.js.map +1 -1
  108. package/dist/admins-components154.js +44 -5
  109. package/dist/admins-components154.js.map +1 -1
  110. package/dist/admins-components155.js +141 -6
  111. package/dist/admins-components155.js.map +1 -1
  112. package/dist/admins-components156.js +57 -75
  113. package/dist/admins-components156.js.map +1 -1
  114. package/dist/admins-components157.js +6 -28
  115. package/dist/admins-components157.js.map +1 -1
  116. package/dist/admins-components158.js +5 -1930
  117. package/dist/admins-components158.js.map +1 -1
  118. package/dist/admins-components159.js +75 -24810
  119. package/dist/admins-components159.js.map +1 -1
  120. package/dist/admins-components16.js +4 -3
  121. package/dist/admins-components16.js.map +1 -1
  122. package/dist/admins-components160.js +28 -8
  123. package/dist/admins-components160.js.map +1 -1
  124. package/dist/admins-components161.js +1929 -5
  125. package/dist/admins-components161.js.map +1 -0
  126. package/dist/admins-components162.js +24809 -140
  127. package/dist/admins-components162.js.map +1 -1
  128. package/dist/admins-components163.js +3 -3
  129. package/dist/admins-components163.js.map +1 -1
  130. package/dist/admins-components164.js +7 -9
  131. package/dist/admins-components165.js +143 -0
  132. package/dist/admins-components165.js.map +1 -0
  133. package/dist/admins-components166.js +8 -167
  134. package/dist/admins-components166.js.map +1 -1
  135. package/dist/admins-components167.js +8 -50
  136. package/dist/admins-components167.js.map +1 -1
  137. package/dist/admins-components169.js +161 -43
  138. package/dist/admins-components169.js.map +1 -1
  139. package/dist/admins-components17.js.map +1 -1
  140. package/dist/admins-components170.js +51 -6
  141. package/dist/admins-components170.js.map +1 -1
  142. package/dist/admins-components171.js +8 -79
  143. package/dist/admins-components171.js.map +1 -1
  144. package/dist/admins-components172.js +35 -43
  145. package/dist/admins-components172.js.map +1 -1
  146. package/dist/admins-components173.js +6 -59
  147. package/dist/admins-components173.js.map +1 -1
  148. package/dist/admins-components174.js +79 -8
  149. package/dist/admins-components174.js.map +1 -1
  150. package/dist/admins-components175.js +43 -37
  151. package/dist/admins-components175.js.map +1 -1
  152. package/dist/admins-components176.js +58 -8
  153. package/dist/admins-components176.js.map +1 -1
  154. package/dist/admins-components177.js +10 -0
  155. package/dist/admins-components177.js.map +1 -0
  156. package/dist/admins-components178.js +44 -50
  157. package/dist/admins-components178.js.map +1 -1
  158. package/dist/admins-components179.js +10 -0
  159. package/dist/admins-components179.js.map +1 -0
  160. package/dist/admins-components181.js +59 -0
  161. package/dist/admins-components181.js.map +1 -0
  162. package/dist/admins-components5.js +30 -28
  163. package/dist/admins-components5.js.map +1 -1
  164. package/dist/admins-components58.js.map +1 -1
  165. package/dist/admins-components6.js.map +1 -1
  166. package/dist/admins-components60.js +1 -1
  167. package/dist/admins-components60.js.map +1 -1
  168. package/dist/admins-components65.js +66 -42
  169. package/dist/admins-components65.js.map +1 -1
  170. package/dist/admins-components67.js.map +1 -1
  171. package/dist/admins-components68.js +102 -95
  172. package/dist/admins-components68.js.map +1 -1
  173. package/dist/admins-components70.js.map +1 -1
  174. package/dist/admins-components72.js +135 -126
  175. package/dist/admins-components72.js.map +1 -1
  176. package/dist/admins-components74.js.map +1 -1
  177. package/dist/admins-components76.js +32 -122
  178. package/dist/admins-components76.js.map +1 -1
  179. package/dist/admins-components77.js +146 -0
  180. package/dist/admins-components77.js.map +1 -0
  181. package/dist/admins-components79.js +6 -59
  182. package/dist/admins-components79.js.map +1 -1
  183. package/dist/admins-components80.js +140 -67
  184. package/dist/admins-components80.js.map +1 -1
  185. package/dist/admins-components82.js +7 -0
  186. package/dist/admins-components82.js.map +1 -0
  187. package/dist/admins-components83.js +59 -6
  188. package/dist/admins-components83.js.map +1 -1
  189. package/dist/admins-components84.js +66 -229
  190. package/dist/admins-components84.js.map +1 -1
  191. package/dist/{admins-components81.js → admins-components85.js} +2 -2
  192. package/dist/{admins-components81.js.map → admins-components85.js.map} +1 -1
  193. package/dist/admins-components87.js +6 -37
  194. package/dist/admins-components87.js.map +1 -1
  195. package/dist/admins-components88.js +231 -0
  196. package/dist/admins-components88.js.map +1 -0
  197. package/dist/admins-components90.js +6 -199
  198. package/dist/admins-components90.js.map +1 -1
  199. package/dist/admins-components91.js +38 -0
  200. package/dist/{admins-components89.js.map → admins-components91.js.map} +1 -1
  201. package/dist/admins-components93.js +6 -16
  202. package/dist/admins-components93.js.map +1 -1
  203. package/dist/admins-components94.js +188 -64
  204. package/dist/admins-components94.js.map +1 -1
  205. package/dist/admins-components96.js +2 -2
  206. package/dist/admins-components96.js.map +1 -1
  207. package/dist/admins-components97.js +76 -198
  208. package/dist/admins-components97.js.map +1 -1
  209. package/dist/admins-components99.js +2 -2
  210. package/dist/admins-components99.js.map +1 -1
  211. package/dist/main.css +1 -1
  212. package/dist/main.css.map +1 -1
  213. package/dist/src/components/TextInput.vue.d.ts +2 -0
  214. package/dist/src/components/data-table/DataList.vue.d.ts +12 -3
  215. package/dist/src/components/data-table/DataPaginator.vue.d.ts +5 -1
  216. package/dist/src/components/data-table/DataSearch.vue.d.ts +9 -0
  217. package/dist/src/components/data-table/DataSort.vue.d.ts +51 -0
  218. package/dist/src/components/data-table/DataTable.vue.d.ts +12 -0
  219. package/dist/src/index.d.ts +4 -0
  220. package/dist/src/styles/components/data-table/data-cards.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  221. package/dist/src/styles/components/data-table/data-list.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  222. package/dist/src/styles/components/data-table/data-search.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  223. package/dist/src/styles/components/data-table/data-sort.scss_vue_type_style_index_0_src_true_lang.css +1 -0
  224. package/dist/src/styles/components/data-table/data-table.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  225. package/dist/src/styles/components/dropdown-select.scss_vue_type_style_index_0_src_true_lang.css +1 -1
  226. package/dist/src/types/data-list.d.ts +1 -0
  227. package/dist/src/utils/url.d.ts +21 -0
  228. package/package.json +1 -1
  229. package/dist/admins-components101.js +0 -4
  230. package/dist/admins-components101.js.map +0 -1
  231. package/dist/admins-components164.js.map +0 -1
  232. package/dist/admins-components168.js +0 -10
  233. package/dist/admins-components168.js.map +0 -1
  234. package/dist/admins-components78.js +0 -7
  235. package/dist/admins-components78.js.map +0 -1
  236. package/dist/admins-components86.js +0 -7
  237. package/dist/admins-components86.js.map +0 -1
  238. package/dist/admins-components89.js +0 -7
  239. package/dist/admins-components92.js +0 -7
  240. package/dist/admins-components92.js.map +0 -1
@@ -6,11 +6,15 @@ export default _default;
6
6
  declare const __VLS_export: import('vue').DefineComponent<{
7
7
  settings: PaginatorSettings;
8
8
  storageKey: string;
9
+ handleUrl?: boolean;
9
10
  }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
10
11
  "update:pagination": (pagination: PageSettings) => any;
11
12
  }, string, import('vue').PublicProps, Readonly<{
12
13
  settings: PaginatorSettings;
13
14
  storageKey: string;
15
+ handleUrl?: boolean;
14
16
  }> & Readonly<{
15
17
  "onUpdate:pagination"?: ((pagination: PageSettings) => any) | undefined;
16
- }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
18
+ }>, {
19
+ handleUrl: boolean;
20
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -6,6 +6,15 @@ export interface DataSearchProps {
6
6
  searchKey?: string;
7
7
  exactMatchKey?: string;
8
8
  }
9
+ export interface DefaultSearch {
10
+ search?: string;
11
+ exactMatch?: boolean | undefined;
12
+ }
13
+ /**
14
+ * Resolve the initial search state from the URL.
15
+ * URL is the only source — there is no localStorage fallback for search.
16
+ */
17
+ export declare function getDefaultSearch(searchKey?: string, exactMatchKey?: string): DefaultSearch;
9
18
  declare const _default: typeof __VLS_export;
10
19
  export default _default;
11
20
  declare const __VLS_export: import('vue').DefineComponent<DataSearchProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
@@ -0,0 +1,51 @@
1
+ export type SortDirection = 'asc' | 'desc';
2
+ export interface DataSortOption {
3
+ value: string;
4
+ label: string;
5
+ icon?: string;
6
+ }
7
+ export interface DataSortProps {
8
+ modelValue: {
9
+ key: string;
10
+ direction: SortDirection;
11
+ } | null;
12
+ options: DataSortOption[];
13
+ placeholder?: string;
14
+ handleUrl?: boolean;
15
+ disabled?: boolean;
16
+ }
17
+ /**
18
+ * Resolve the initial sort state from the URL.
19
+ * URL is the only source — there is no localStorage fallback for sort.
20
+ * Returns `null` if no valid `sortBy` + `sortDir` pair is present in the URL.
21
+ */
22
+ export declare function getDefaultSort(): {
23
+ key: string;
24
+ direction: SortDirection;
25
+ } | null;
26
+ declare const _default: typeof __VLS_export;
27
+ export default _default;
28
+ declare const __VLS_export: import('vue').DefineComponent<DataSortProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
29
+ "update:modelValue": (sort: {
30
+ key: string;
31
+ direction: SortDirection;
32
+ } | null) => any;
33
+ "sort-change": (sort: {
34
+ key: string;
35
+ direction: SortDirection;
36
+ } | null) => any;
37
+ }, string, import('vue').PublicProps, Readonly<DataSortProps> & Readonly<{
38
+ "onUpdate:modelValue"?: ((sort: {
39
+ key: string;
40
+ direction: SortDirection;
41
+ } | null) => any) | undefined;
42
+ "onSort-change"?: ((sort: {
43
+ key: string;
44
+ direction: SortDirection;
45
+ } | null) => any) | undefined;
46
+ }>, {
47
+ disabled: boolean;
48
+ placeholder: string;
49
+ options: DataSortOption[];
50
+ handleUrl: boolean;
51
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -8,6 +8,10 @@ declare const __VLS_export: import('vue').DefineComponent<{
8
8
  items: Record<string, unknown>[];
9
9
  settings?: DataTableSettings;
10
10
  loading?: boolean;
11
+ initialSort?: {
12
+ key: string;
13
+ direction: "desc" | "asc";
14
+ } | null;
11
15
  }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
12
16
  "selection-change": (selected: unknown[]) => any;
13
17
  "sort-change": (sort: {
@@ -19,6 +23,10 @@ declare const __VLS_export: import('vue').DefineComponent<{
19
23
  items: Record<string, unknown>[];
20
24
  settings?: DataTableSettings;
21
25
  loading?: boolean;
26
+ initialSort?: {
27
+ key: string;
28
+ direction: "desc" | "asc";
29
+ } | null;
22
30
  }> & Readonly<{
23
31
  "onSelection-change"?: ((selected: unknown[]) => any) | undefined;
24
32
  "onSort-change"?: ((sort: {
@@ -28,4 +36,8 @@ declare const __VLS_export: import('vue').DefineComponent<{
28
36
  }>, {
29
37
  loading: boolean;
30
38
  settings: DataTableSettings;
39
+ initialSort: {
40
+ key: string;
41
+ direction: "desc" | "asc";
42
+ } | null;
31
43
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -18,6 +18,9 @@ export { default as Loader } from './components/Loader.vue';
18
18
  export { default as ToastNotification } from './components/ToastNotification.vue';
19
19
  export { default as DataList, dataListDefaults } from './components/data-table/DataList.vue';
20
20
  export { getDefaultPaginator } from './components/data-table/DataPaginator.vue';
21
+ export { getDefaultSearch } from './components/data-table/DataSearch.vue';
22
+ export { getDefaultSort } from './components/data-table/DataSort.vue';
23
+ export { getDefaultFetchData } from './components/data-table/DataList.vue';
21
24
  export { getDefaultFilters, getFilterUrlParams, getSavedFilters, getDefaultSavedFilter, filterEmptyValues, writeFilterParams, } from './utils/dataFilters';
22
25
  export { getFullStorageKey, type Storable } from './utils/storageKey';
23
26
  export { default as DataTable } from './components/data-table/DataTable.vue';
@@ -32,6 +35,7 @@ export type { DataListProps } from './components/data-table/DataList.vue';
32
35
  export type { DatePickerProps } from './components/DatePicker.vue';
33
36
  export type { DateRangePickerProps } from './components/DateRangePicker.vue';
34
37
  export type { DataSearchProps } from './components/data-table/DataSearch.vue';
38
+ export type { DataSortProps, DataSortOption } from './components/data-table/DataSort.vue';
35
39
  export type { DataFiltersProps, FilterItem } from './components/data-table/DataFilters.vue';
36
40
  export type { FilterResponse } from './components/data-table/DataFilters.vue';
37
41
  export type { DropdownSelectProps, DropdownOption, DropdownSelectConfig, } from './components/DropdownSelect.vue';
@@ -1 +1 @@
1
- .ac-component .c-cards-wrapper{max-height:var(--data-list-max-height,75dvh);-webkit-overflow-scrolling:touch;position:relative;overflow:auto}.ac-component .c-cards-wrapper.is-loading .c-cards{opacity:.45;transition:opacity .15s ease-out}.ac-component .c-cards-wrapper .c-cards{border-top:2px solid var(--neutral-200);border-bottom:2px solid var(--neutral-200);flex-direction:column;gap:.5rem;padding:.5rem 0;font-size:.875rem;display:flex}.ac-component .c-cards-wrapper .c-cards.is-compact{gap:.25rem}.ac-component .c-cards-wrapper .c-cards.is-compact .c-card__header{--header-padding-y:.375rem}.ac-component .c-cards-wrapper .c-cards.is-compact .c-card__label{font-size:.6rem}.ac-component .c-cards-wrapper .c-cards.is-compact .c-card__field{min-height:unset;padding-top:.5rem;padding-bottom:.375rem}.ac-component .c-cards-wrapper .c-cards.is-compact .c-card__body{row-gap:.5rem;padding-bottom:.5rem}.ac-component .c-cards-wrapper .c-cards.is-compact .c-card__actions{padding-top:0}.ac-component .c-cards-wrapper .c-cards__loading-wrap{border-top:2px solid var(--neutral-200);border-bottom:2px solid var(--neutral-200);justify-content:center;align-items:center;width:100%;padding:2rem;display:flex}.ac-component .c-cards-wrapper .c-cards__backdrop{z-index:1;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none;background:#fff9;justify-content:center;align-items:center;animation:.15s ease-out c-cards-backdrop-in;display:flex;position:absolute;inset:0}.ac-component .c-cards-wrapper .c-card{border:1px solid var(--neutral-200);background:var(--neutral-0);border-radius:.75rem;transition:border-color .15s,box-shadow .15s}.ac-component .c-cards-wrapper .c-card.is-open{border-color:var(--premium-500)}.ac-component .c-cards-wrapper .c-card.is-open .c-card__header{background:var(--premium-50)}.ac-component .c-cards-wrapper .c-card.is-open .c-card__header:hover{background:var(--premium-100)}.ac-component .c-cards-wrapper .c-card.is-open .c-card__icon{transform:rotate(180deg)}.ac-component .c-cards-wrapper .c-card.is-selected{border-color:var(--premium-400);box-shadow:0 0 0 1px var(--premium-200)}.ac-component .c-cards-wrapper .c-card.is-selected .c-card__header{background:var(--site-100)}.ac-component .c-cards-wrapper .c-card.is-selected .c-card__header:hover{background:var(--site-200)}.ac-component .c-cards-wrapper .c-card__header{--header-padding-y:.75rem;--header-padding-x:.75rem;width:100%;padding:var(--header-padding-y) var(--header-padding-x);border-radius:inherit;background:var(--neutral-50);color:inherit;text-align:left;cursor:pointer;border:0;align-items:center;gap:.5rem;line-height:1.2;transition:background-color .15s;display:flex}.ac-component .c-cards-wrapper .c-card__header:hover{background:var(--premium-100)}.ac-component .c-cards-wrapper .c-card__check-zone{padding:0 .5rem 0 var(--header-padding-x);margin:calc(-1 * var(--header-padding-y)) -.5rem calc(-1 * var(--header-padding-y)) calc(-1 * var(--header-padding-x));align-self:stretch;align-items:center;display:flex}.ac-component .c-cards-wrapper .c-card__check-zone .c-checkbox{width:1.25rem;height:1.25rem}.ac-component .c-cards-wrapper .c-card__heading{flex-direction:row;flex:auto;gap:.5rem;min-width:0;display:flex}.ac-component .c-cards-wrapper .c-card__heading-item{flex-direction:column;flex:1 1 0;min-width:0;display:flex}.ac-component .c-cards-wrapper .c-card__heading-item.primary{flex:2 1 0}.ac-component .c-cards-wrapper .c-card__label{color:var(--neutral-600);text-transform:uppercase;letter-spacing:.03em;font-size:.7rem;font-weight:700}.ac-component .c-cards-wrapper .c-card__title{color:var(--neutral-900);font-size:.95rem;font-weight:700}.ac-component .c-cards-wrapper .c-card__icon{color:var(--neutral-700);font-size:.9rem;transition:transform .2s}.ac-component .c-cards-wrapper .c-card__body{--field-gap-x:.375rem;gap:.75rem var(--field-gap-x);flex-wrap:wrap;padding:.625rem;display:flex;container-type:inline-size}.ac-component .c-cards-wrapper .c-card__field{flex:1 1 calc(50% - .5 * var(--field-gap-x));border:1px solid var(--neutral-200);border-radius:8px;align-items:center;min-height:2.5rem;padding:.5rem;display:flex;position:relative}.ac-component .c-cards-wrapper .c-card__field:hover .c-copy-btn{opacity:1}.ac-component .c-cards-wrapper .c-card__field-value{overflow-wrap:break-word;word-break:break-word;flex:1;font-size:.875rem}.ac-component .c-cards-wrapper .c-card__field-label{letter-spacing:.02em;background:var(--neutral-0);color:var(--neutral-600);padding:0 .125rem;font-size:.7rem;font-weight:700;position:absolute;top:-.5lh;left:.5rem}.ac-component .c-cards-wrapper .c-card__field .c-copy-btn{opacity:0}.ac-component .c-cards-wrapper .c-card__field-copy{background:var(--neutral-0);padding:.125rem;position:absolute;top:-.625lh;right:.375rem}.ac-component .c-cards-wrapper .c-card__field-copy:hover{color:var(--premium-600);background:var(--background-100)}@media (hover:none),(pointer:coarse){.ac-component .c-cards-wrapper .c-card__field:focus-within,.ac-component .c-cards-wrapper .c-card__field:hover{border-color:var(--neutral-300)}.ac-component .c-cards-wrapper .c-card__field:focus-within .c-card__field-copy,.ac-component .c-cards-wrapper .c-card__field:hover .c-card__field-copy{opacity:1}}.ac-component .c-cards-wrapper .c-card__actions{flex-wrap:wrap;flex:100%;justify-content:space-around;align-items:center;gap:.5rem;padding-top:.25rem;display:flex}@keyframes c-cards-backdrop-in{0%{opacity:0}to{opacity:1}}@container (width<=526px){.ac-component .c-cards-wrapper .c-card__field{flex-basis:100%}}
1
+ .ac-component .c-cards-wrapper{max-height:var(--data-list-max-height,75dvh);-webkit-overflow-scrolling:touch;position:relative;overflow:auto}.ac-component .c-cards-wrapper.is-loading .c-cards{opacity:.45;transition:opacity .15s ease-out}.ac-component .c-cards-wrapper .c-cards{border-top:2px solid var(--neutral-200);border-bottom:2px solid var(--neutral-200);flex-direction:column;gap:.5rem;padding:.5rem 0;font-size:.875rem;display:flex}.ac-component .c-cards-wrapper .c-cards.is-compact{gap:.25rem}.ac-component .c-cards-wrapper .c-cards.is-compact .c-card__header{--header-padding-y:.375rem}.ac-component .c-cards-wrapper .c-cards.is-compact .c-card__label{font-size:.6rem}.ac-component .c-cards-wrapper .c-cards.is-compact .c-card__field{min-height:unset;padding-top:.5rem;padding-bottom:.375rem}.ac-component .c-cards-wrapper .c-cards.is-compact .c-card__body{row-gap:.5rem;padding-bottom:.5rem}.ac-component .c-cards-wrapper .c-cards.is-compact .c-card__actions{padding-top:0}.ac-component .c-cards-wrapper .c-cards__loading-wrap{border-top:2px solid var(--neutral-200);border-bottom:2px solid var(--neutral-200);justify-content:center;align-items:center;width:100%;padding:2rem;display:flex}.ac-component .c-cards-wrapper .c-cards__backdrop{z-index:1;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none;background:#fff9;justify-content:center;align-items:center;animation:.15s ease-out c-cards-backdrop-in;display:flex;position:absolute;inset:0}.ac-component .c-cards-wrapper .c-card{border:1px solid var(--neutral-200);background:var(--neutral-0);border-radius:.75rem;transition:border-color .15s,box-shadow .15s}.ac-component .c-cards-wrapper .c-card.is-open{border-color:var(--premium-500)}.ac-component .c-cards-wrapper .c-card.is-open .c-card__header{background:var(--premium-50)}.ac-component .c-cards-wrapper .c-card.is-open .c-card__header:hover{background:var(--premium-100)}.ac-component .c-cards-wrapper .c-card.is-open .c-card__icon{transform:rotate(180deg)}.ac-component .c-cards-wrapper .c-card.is-selected{border-color:var(--premium-400);box-shadow:0 0 0 1px var(--premium-200)}.ac-component .c-cards-wrapper .c-card.is-selected .c-card__header{background:var(--site-100)}.ac-component .c-cards-wrapper .c-card.is-selected .c-card__header:hover{background:var(--site-200)}.ac-component .c-cards-wrapper .c-card__header{--header-padding-y:.75rem;--header-padding-x:.75rem;width:100%;padding:var(--header-padding-y) var(--header-padding-x);border-radius:inherit;background:var(--neutral-50);color:inherit;text-align:left;cursor:pointer;border:0;align-items:center;gap:.5rem;line-height:1.2;transition:background-color .15s;display:flex}.ac-component .c-cards-wrapper .c-card__header:hover{background:var(--premium-100)}.ac-component .c-cards-wrapper .c-card__check-zone{padding:0 .5rem 0 var(--header-padding-x);margin:calc(-1 * var(--header-padding-y)) -.5rem calc(-1 * var(--header-padding-y)) calc(-1 * var(--header-padding-x));align-self:stretch;align-items:center;display:flex}.ac-component .c-cards-wrapper .c-card__check-zone .c-checkbox{width:1.25rem;height:1.25rem}.ac-component .c-cards-wrapper .c-card__heading{flex-direction:row;flex:auto;gap:.5rem;min-width:0;display:flex}.ac-component .c-cards-wrapper .c-card__heading-item{flex-direction:column;flex:1 1 0;min-width:0;display:flex}.ac-component .c-cards-wrapper .c-card__heading-item.primary{flex:2 1 0}.ac-component .c-cards-wrapper .c-card__label{color:var(--neutral-600);text-transform:uppercase;letter-spacing:.03em;font-size:.675rem;font-weight:700}.ac-component .c-cards-wrapper .c-card__title{color:var(--neutral-800);font-size:.85rem;font-weight:600}.ac-component .c-cards-wrapper .c-card__icon{color:var(--neutral-700);font-size:.9rem;transition:transform .2s}.ac-component .c-cards-wrapper .c-card__body{--field-gap-x:.375rem;gap:.75rem var(--field-gap-x);flex-wrap:wrap;padding:.625rem;display:flex;container-type:inline-size}.ac-component .c-cards-wrapper .c-card__field{flex:1 1 calc(50% - .5 * var(--field-gap-x));border:1px solid var(--neutral-200);border-radius:8px;align-items:center;min-height:2.5rem;padding:.5rem;display:flex;position:relative}.ac-component .c-cards-wrapper .c-card__field:hover .c-copy-btn{opacity:1}.ac-component .c-cards-wrapper .c-card__field-value{overflow-wrap:break-word;word-break:break-word;flex:1;font-size:.875rem}.ac-component .c-cards-wrapper .c-card__field-label{letter-spacing:.02em;background:var(--neutral-0);color:var(--neutral-600);padding:0 .125rem;font-size:.7rem;font-weight:700;position:absolute;top:-.5lh;left:.5rem}.ac-component .c-cards-wrapper .c-card__field .c-copy-btn{opacity:0}.ac-component .c-cards-wrapper .c-card__field-copy{background:var(--neutral-0);padding:.125rem;position:absolute;top:-.625lh;right:.375rem}.ac-component .c-cards-wrapper .c-card__field-copy:hover{color:var(--premium-600);background:var(--background-100)}@media (hover:none),(pointer:coarse){.ac-component .c-cards-wrapper .c-card__field:focus-within,.ac-component .c-cards-wrapper .c-card__field:hover{border-color:var(--neutral-300)}.ac-component .c-cards-wrapper .c-card__field:focus-within .c-card__field-copy,.ac-component .c-cards-wrapper .c-card__field:hover .c-card__field-copy{opacity:1}}.ac-component .c-cards-wrapper .c-card__actions{flex-wrap:wrap;flex:100%;justify-content:space-around;align-items:center;gap:.5rem;padding-top:.25rem;display:flex}@keyframes c-cards-backdrop-in{0%{opacity:0}to{opacity:1}}@container (width<=526px){.ac-component .c-cards-wrapper .c-card__field{flex-basis:100%}}
@@ -1 +1 @@
1
- .ac-component .c-data-list{width:100%;min-width:0}.ac-component .c-data-list__toolbar{align-items:center;gap:.5rem;margin-bottom:.5rem;padding-inline:.5rem;display:flex}@media (width<=768px){.ac-component .c-data-list__toolbar{flex-wrap:wrap}}.ac-component .c-data-list .dc-datetime{white-space:normal;display:inline}.ac-component .c-data-list .dc-datetime__part{white-space:nowrap}.ac-component .c-data-list .dc-datetime__sep{white-space:normal;width:.25em;display:inline-block}.ac-component .c-data-list .dc-loading{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}
1
+ .ac-component .c-data-list{width:100%;min-width:0}.ac-component .c-data-list__toolbar{align-items:center;gap:.5rem;margin-bottom:.5rem;padding-inline:.5rem;display:flex}@media (width<=1280px){.ac-component .c-data-list__toolbar{flex-wrap:wrap;padding-inline:0}.ac-component .c-data-list__toolbar .flex-center-wrap-on-mobile{flex-basis:100%;order:99}}.ac-component .c-data-list__toolbar .settings-btn .fa-gear{margin-inline:-1px}.ac-component .c-data-list .dc-datetime{white-space:normal;display:inline}.ac-component .c-data-list .dc-datetime__part{white-space:nowrap}.ac-component .c-data-list .dc-datetime__sep{white-space:normal;width:.25em;display:inline-block}.ac-component .c-data-list .dc-loading{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}
@@ -1 +1 @@
1
- .ac-component .data-search-wrapper{align-items:center;gap:.75rem;display:flex}.ac-component .data-search-label{text-align:center;text-transform:none;font-size:.7rem;line-height:normal}
1
+ .ac-component .data-search-wrapper{align-items:center;gap:.75rem;display:flex}.ac-component .data-search-wrapper .c-icon-btn--clear i{line-height:inherit}.ac-component .data-search-label{text-align:center;text-transform:none;font-size:.7rem;line-height:normal}.ac-component .data-search-input{min-width:8rem;padding-right:0}
@@ -0,0 +1 @@
1
+ .ds-sort-wrapper{display:inline-block;position:relative}.ds-sort-trigger.c-btn{color:var(--ac-placeholder-color);border-color:var(--neutral-300)}.ds-sort-trigger.c-btn.is-active{border-color:var(--ac-color-primary);color:var(--ac-color-primary)}.ds-sort-trigger.c-btn.is-open{border-color:var(--ac-color-primary)}.ds-sort-label{max-width:12rem}.ds-sort-clear{margin-right:-.25rem;padding:0!important}.ds-sort-panel{background:var(--neutral-0,#fff);border:1px solid var(--neutral-200);border-radius:.5rem;flex-direction:column;gap:.625rem;min-width:16rem;padding:.75rem;animation:.12s ease-out ds-sort-panel-in;display:flex;box-shadow:0 4px 12px -2px #32325dcc,0 2px 6px -2px #0003}@keyframes ds-sort-panel-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.ds-sort-panel__row{flex-direction:column;gap:.25rem;display:flex}.ds-sort-panel__label{letter-spacing:.04em;text-transform:uppercase;color:var(--neutral-500);padding:0 .125rem;font-size:.6875rem;font-weight:600}.ds-sort-direction{border:1px solid var(--neutral-200);background:var(--neutral-50);border-radius:.375rem;display:inline-flex;overflow:hidden}.ds-sort-direction__btn{color:var(--neutral-600);cursor:pointer;background:0 0;border:0;flex:1;justify-content:center;align-items:center;gap:.375rem;padding:.4375rem .625rem;font-size:.75rem;font-weight:500;transition:background-color .15s,color .15s;display:inline-flex}.ds-sort-direction__btn+.ds-sort-direction__btn{border-left:1px solid var(--neutral-200)}.ds-sort-direction__btn:hover:not(.is-active){background:var(--neutral-100);color:var(--neutral-900)}.ds-sort-direction__btn.is-active{background:var(--ac-color-primary);color:var(--neutral-0)}.ds-sort-panel__footer{justify-content:flex-end;margin-top:.125rem;padding-top:.25rem;display:flex}.ds-sort-ok{background:var(--ac-color-primary);color:var(--neutral-0);cursor:pointer;border:0;border-radius:.25rem;padding:.375rem .875rem;font-size:.75rem;font-weight:500;transition:background-color .15s}.ds-sort-ok:hover{background:var(--ac-color-primary-hover,var(--ac-color-primary));filter:brightness(.92)}
@@ -1 +1 @@
1
- .c-table-wrapper{--table-col-max-width:28rem;--table-primary-col-min-width:12rem;--table-primary-col-max-width:32rem;max-height:var(--data-list-max-height,75dvh);-webkit-overflow-scrolling:touch;position:relative;overflow:auto}.c-table-wrapper .c-table{--cell-padding:.5rem .375rem;--action-count:0;border-collapse:collapse;width:100%;min-width:48rem;font-size:.875rem}.c-table-wrapper .c-table thead{z-index:2;background-color:var(--neutral-150);position:sticky;top:0;box-shadow:0 2px 5px -1px #32325d40,0 1px 3px -1px #0000004d}.c-table-wrapper .c-table th,.c-table-wrapper .c-table td{padding:var(--cell-padding);text-align:left;border-bottom:1px solid var(--neutral-200);overflow-wrap:break-word}.c-table-wrapper .c-table .primary-col{min-width:var(--table-primary-col-min-width);max-width:var(--table-primary-col-max-width)}.c-table-wrapper .c-table th.c-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.c-table-wrapper .c-table th.c-sortable--sorted{color:var(--premium-500)}.c-table-wrapper .c-table th.c-sortable:hover{color:#1e2627}.c-table-wrapper .c-table th .c-sort-icon{color:var(--neutral-400);margin-left:.25rem;transition:color .15s}.c-table-wrapper .c-table th .c-sort-icon--active{color:var(--premium-500)}.c-table-wrapper .c-table td{max-width:var(--table-col-max-width)}.c-table-wrapper .c-table td.is-nowrap{white-space:nowrap}.c-table-wrapper .c-table.is-compact th{padding-top:.5rem;padding-bottom:.5rem}.c-table-wrapper .c-table.is-compact td{padding-top:.1875rem;padding-bottom:.1875rem}.c-table-wrapper .c-table tbody tr.is-striped{background-color:var(--neutral-50)}.c-table-wrapper .c-table tbody tr.is-selected,.c-table-wrapper .c-table tbody tr.is-striped.is-selected{background-color:var(--premium-200)}.c-table-wrapper .c-table tbody .c-table__loading-row,.c-table-wrapper .c-table tbody .c-table__loading-row:hover{background-color:#0000}.c-table-wrapper .c-table tbody .c-table__loading-cell{text-align:center;border-bottom:1px solid var(--neutral-200);padding:2rem}.c-table-wrapper .c-table tbody .c-table__loading-wrap{justify-content:center;align-items:center;width:100%;display:flex}@media (hover:hover) and (pointer:fine){.c-table-wrapper .c-table th.c-sortable:hover .c-sort-icon{color:var(--neutral-700)}.c-table-wrapper .c-table tbody tr:hover,.c-table-wrapper .c-table tbody tr.is-striped:hover{background-color:var(--premium-100)}.c-table-wrapper .c-table tbody tr:hover td,.c-table-wrapper .c-table tbody tr.is-striped:hover td{border-color:var(--premium-400)}.c-table-wrapper .c-table tbody tr.is-selected:hover,.c-table-wrapper .c-table tbody tr.is-striped.is-selected:hover{background-color:var(--premium-300)}}.c-table-wrapper .c-table .c-actions-header{text-align:center}.c-table-wrapper .c-table .c-actions-cell .c-actions-wrap{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.25rem;display:flex}.c-table-wrapper .c-table__cell{position:relative}@media (hover:none),(pointer:coarse){.c-table-wrapper .c-table__cell{transition:background-color .15s}.c-table-wrapper .c-table__cell:focus-within,.c-table-wrapper .c-table__cell:hover{background-color:#dfefef80}}.c-table-wrapper .c-table__cell .c-copy-btn{opacity:0;position:absolute;top:0;right:0}.c-table-wrapper .c-table__cell:hover .c-copy-btn,.c-table-wrapper .c-table__cell:focus-within .c-copy-btn{opacity:1}.c-table-wrapper .c-table__backdrop{z-index:1;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none;background:#fff9;justify-content:center;align-items:center;padding-top:3rem;animation:.15s ease-out c-table-backdrop-in;display:flex;position:absolute;inset:0}.c-table-wrapper.is-loading .c-table tbody{opacity:.45;transition:opacity .15s ease-out}@keyframes c-table-backdrop-in{0%{opacity:0}to{opacity:1}}
1
+ .c-table-wrapper{max-height:var(--data-list-max-height,75dvh);-webkit-overflow-scrolling:touch;position:relative;overflow:auto}.c-table-wrapper .c-table{--cell-padding:.375rem;--action-count:0;border-collapse:collapse;width:100%;min-width:48rem;font-size:.875rem}.c-table-wrapper .c-table thead{z-index:2;background-color:var(--neutral-150);position:sticky;top:0;box-shadow:0 2px 5px -1px #32325d40,0 1px 3px -1px #0000004d}.c-table-wrapper .c-table th,.c-table-wrapper .c-table td{padding:var(--cell-padding);text-align:left;border-bottom:1px solid var(--neutral-200);overflow-wrap:break-word}.c-table-wrapper .c-table .primary-col{overflow-wrap:anywhere;word-break:break-word;flex-grow:1.5;width:0}.c-table-wrapper .c-table th:not(.primary-col),.c-table-wrapper .c-table td:not(.primary-col){width:1%}.c-table-wrapper .c-table th.c-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.c-table-wrapper .c-table th.c-sortable--sorted{color:var(--premium-500)}.c-table-wrapper .c-table th.c-sortable:hover{color:#1e2627}.c-table-wrapper .c-table th .c-sort-icon{color:var(--neutral-400);margin-left:.25rem;transition:color .15s}.c-table-wrapper .c-table th .c-sort-icon--active{color:var(--premium-500)}.c-table-wrapper .c-table td{max-width:var(--table-col-max-width)}.c-table-wrapper .c-table td.is-nowrap{white-space:nowrap}.c-table-wrapper .c-table.is-compact th{padding-top:.5rem;padding-bottom:.5rem}.c-table-wrapper .c-table.is-compact td{padding-top:.1875rem;padding-bottom:.1875rem}.c-table-wrapper .c-table tbody tr.is-striped{background-color:var(--neutral-50)}.c-table-wrapper .c-table tbody tr.is-selected,.c-table-wrapper .c-table tbody tr.is-striped.is-selected{background-color:var(--premium-200)}.c-table-wrapper .c-table tbody .c-table__loading-row,.c-table-wrapper .c-table tbody .c-table__loading-row:hover{background-color:#0000}.c-table-wrapper .c-table tbody .c-table__loading-cell{text-align:center;border-bottom:1px solid var(--neutral-200);padding:2rem}.c-table-wrapper .c-table tbody .c-table__loading-wrap{justify-content:center;align-items:center;width:100%;display:flex}@media (hover:hover) and (pointer:fine){.c-table-wrapper .c-table th.c-sortable:hover .c-sort-icon{color:var(--neutral-700)}.c-table-wrapper .c-table tbody tr:hover,.c-table-wrapper .c-table tbody tr.is-striped:hover{background-color:var(--premium-100)}.c-table-wrapper .c-table tbody tr:hover td,.c-table-wrapper .c-table tbody tr.is-striped:hover td{border-color:var(--premium-400)}.c-table-wrapper .c-table tbody tr.is-selected:hover,.c-table-wrapper .c-table tbody tr.is-striped.is-selected:hover{background-color:var(--premium-300)}}.c-table-wrapper .c-table .c-actions-header{text-align:center}.c-table-wrapper .c-table .c-actions-cell .c-actions-wrap{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.25rem;display:flex}.c-table-wrapper .c-table__cell{position:relative}@media (hover:none),(pointer:coarse){.c-table-wrapper .c-table__cell{transition:background-color .15s}.c-table-wrapper .c-table__cell:focus-within,.c-table-wrapper .c-table__cell:hover{background-color:#dfefef80}}.c-table-wrapper .c-table__cell .c-copy-btn{opacity:0;position:absolute;top:0;right:0}.c-table-wrapper .c-table__cell:hover .c-copy-btn,.c-table-wrapper .c-table__cell:focus-within .c-copy-btn{opacity:1}.c-table-wrapper .c-table__backdrop{z-index:1;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none;background:#fff9;justify-content:center;align-items:center;padding-top:3rem;animation:.15s ease-out c-table-backdrop-in;display:flex;position:absolute;inset:0}.c-table-wrapper.is-loading .c-table tbody{opacity:.45;transition:opacity .15s ease-out}@keyframes c-table-backdrop-in{0%{opacity:0}to{opacity:1}}
@@ -1 +1 @@
1
- .ac-component .ds-wrapper{--ds-field-padding:.375rem .5rem}.ac-component .ds-wrapper .ds-value{padding:var(--ac-input-padding);font-size:inherit;color:var(--neutral-900);flex:1;padding-right:.125rem}.ac-component .ds-wrapper .c-input-row--sm .ds-value{padding:var(--ac-input-padding-sm);padding-right:.125rem}.ac-component .ds-wrapper .c-input-row--lg .ds-value{padding:var(--ac-input-padding-lg);padding-right:.125rem}.ac-component .ds-wrapper .ds-dropdown{right:0}.ac-component .ds-wrapper .ds-filter{padding:var(--ac-field-padding);border-bottom:1px solid var(--neutral-100);align-items:center;gap:.5rem;display:flex;position:relative}.ac-component .ds-wrapper .ds-dropdown--multiple .ds-filter,.ac-component .ds-wrapper .ds-dropdown--multiple .ds-option{padding:var(--ds-field-padding)}.ac-component .ds-wrapper .ds-select-all-checkbox{flex-shrink:0}.ac-component .ds-wrapper .ds-filter-input{border:1px solid var(--neutral-200);width:100%;color:var(--neutral-900);border-radius:.375rem;outline:none;padding:.375rem 1.5rem .375rem .5rem;font-family:inherit;font-size:.8125rem}.ac-component .ds-wrapper .ds-filter-input::placeholder{color:var(--ac-placeholder-color)}.ac-component .ds-wrapper .ds-clear-btn{padding:0 .125rem 0 0}.ac-component .ds-wrapper .ds-filter-clear{padding:0;position:absolute;top:50%;right:1.375rem;transform:translateY(-50%)}.ac-component .ds-wrapper .ds-options{max-height:var(--ac-dropdown-max-height,18rem);margin:0;padding:.25rem 0;list-style:none;overflow-y:auto}.ac-component .ds-wrapper .ds-options .ds-option--loading{min-height:calc(var(--ac-dropdown-max-height,18rem) / 1.75);pointer-events:none;justify-content:center;align-items:center;display:flex}.ac-component .ds-wrapper .d-option{cursor:pointer;align-items:center;gap:.5rem;transition:background-color .1s;display:flex}.ac-component .ds-wrapper .d-option__label{flex:1}.ac-component .ds-wrapper .dm-option{align-items:center;gap:.375em;display:flex}.ac-component .ds-wrapper .dm-option.is-disabled{opacity:.7;pointer-events:none}.ac-component .ds-wrapper .dm-trigger .c-icon-btn--chevron{color:inherit}.ac-component .ds-wrapper .ds-option{padding:var(--ac-field-padding);color:var(--neutral-800);font-size:.875rem}.ac-component .ds-wrapper .ds-option:hover{background:var(--neutral-50)}.ac-component .ds-wrapper .ds-option__highlight{background:rgba(var(--ac-color-primary-rgb), .1);color:var(--neutral-900);border-radius:.125rem}.ac-component .ds-wrapper .ds-option--selected{background:var(--neutral-100);font-weight:500}.ac-component .ds-wrapper .ds-option--empty{color:var(--neutral-400);cursor:default;font-style:italic}.ac-component .ds-wrapper .ds-option--empty:hover{background:0 0}
1
+ .ac-component .ds-wrapper{--ds-field-padding:.375rem .5rem}.ac-component .ds-wrapper .ds-value{padding:var(--ac-input-padding);font-size:inherit;color:var(--neutral-900);flex:1;padding-right:.125rem}.ac-component .ds-wrapper .c-input-row--sm .ds-value{padding:var(--ac-input-padding-sm);padding-right:.125rem}.ac-component .ds-wrapper .c-input-row--lg .ds-value{padding:var(--ac-input-padding-lg);padding-right:.125rem}.ac-component .ds-wrapper .ds-dropdown{right:0}.ac-component .ds-wrapper .ds-filter{padding:var(--ac-field-padding);border-bottom:1px solid var(--neutral-100);align-items:center;gap:.5rem;display:flex;position:relative}.ac-component .ds-wrapper .ds-dropdown--multiple .ds-filter,.ac-component .ds-wrapper .ds-dropdown--multiple .ds-option{padding:var(--ds-field-padding)}.ac-component .ds-wrapper .ds-select-all-checkbox{flex-shrink:0}.ac-component .ds-wrapper .ds-filter-input{border:1px solid var(--neutral-200);width:100%;color:var(--neutral-900);border-radius:.375rem;outline:none;padding:.375rem 1.5rem .375rem .5rem;font-family:inherit;font-size:.8125rem}.ac-component .ds-wrapper .ds-filter-input::placeholder{color:var(--ac-placeholder-color)}.ac-component .ds-wrapper .ds-clear-btn{padding:0 .125rem 0 0}.ac-component .ds-wrapper .ds-filter-clear{padding:0;position:absolute;top:50%;right:1.375rem;transform:translateY(-50%)}.ac-component .ds-wrapper .ds-options{max-height:var(--ac-dropdown-max-height,18rem);margin:0;padding:.25rem 0;list-style:none;overflow-y:auto}.ac-component .ds-wrapper .ds-options .ds-option--loading{min-height:calc(var(--ac-dropdown-max-height,18rem) / 1.75);pointer-events:none;justify-content:center;align-items:center;display:flex}.ac-component .ds-wrapper .d-option{cursor:pointer;align-items:center;gap:.5rem;transition:background-color .1s;display:flex}.ac-component .ds-wrapper .d-option__label{flex:1;font-weight:500}.ac-component .ds-wrapper .dm-option{align-items:center;gap:.375em;display:flex}.ac-component .ds-wrapper .dm-option.is-disabled{opacity:.7;pointer-events:none}.ac-component .ds-wrapper .dm-trigger .c-icon-btn--chevron{color:inherit}.ac-component .ds-wrapper .ds-option{padding:var(--ac-field-padding);color:var(--neutral-800);font-size:.875rem}.ac-component .ds-wrapper .ds-option:hover{background:var(--neutral-50)}.ac-component .ds-wrapper .ds-option__highlight{background:rgba(var(--ac-color-primary-rgb), .1);color:var(--neutral-900);border-radius:.125rem}.ac-component .ds-wrapper .ds-option--selected{background:var(--neutral-100);font-weight:500}.ac-component .ds-wrapper .ds-option--empty{color:var(--neutral-400);cursor:default;font-style:italic}.ac-component .ds-wrapper .ds-option--empty:hover{background:0 0}
@@ -41,6 +41,7 @@ export type ColumnType = 'normal' | 'uuid' | 'date' | 'datetime';
41
41
  export interface Column {
42
42
  visible?: boolean;
43
43
  primary?: boolean;
44
+ hideable?: boolean;
44
45
  label: string;
45
46
  property: string;
46
47
  sort?: Sort;
@@ -1,4 +1,25 @@
1
1
  export declare function getUrlParam(key: string): string | null;
2
2
  export declare function setUrlParam(key: string, value: string | number): void;
3
3
  export declare function removeUrlParam(key?: string): void;
4
+ /** Read a URL param as a positive number. Returns `null` if missing or invalid. */
5
+ export declare function readUrlNumber(key: string): number | null;
6
+ /** Read a URL param as a boolean. Accepts `'true' | '1' | 'false' | '0'`. Returns `null` otherwise. */
7
+ export declare function readUrlBool(key: string): boolean | null;
8
+ /** Read a URL param as a non-empty string. Returns `null` if missing or empty. */
9
+ export declare function readUrlString(key: string): string | null;
10
+ interface WriteUrlOptions {
11
+ handleUrl: boolean;
12
+ /**
13
+ * If the new value equals the default (or is `''` / `null`), the URL param
14
+ * is *removed* rather than set. Keeps URLs clean. Defaults to `true`.
15
+ */
16
+ removeWhenDefault?: boolean;
17
+ default?: unknown;
18
+ }
19
+ /**
20
+ * Write a value to the URL — or remove the param if `handleUrl` is `false`,
21
+ * or if the value matches the default / is empty.
22
+ */
23
+ export declare function writeUrlOrRemove(key: string, value: string | number | boolean | null | undefined, options: WriteUrlOptions): void;
4
24
  export declare function joinUrl(...parts: string[]): string;
25
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "admins-components",
3
- "version": "9.0.50",
3
+ "version": "9.0.52",
4
4
  "type": "module",
5
5
  "module": "./dist/admins-components.js",
6
6
  "types": "./dist/index.d.ts",
@@ -1,4 +0,0 @@
1
- //#region src/utils/cmsContext.ts
2
- var e = () => window.cmsContext?.currentSite;
3
- //#endregion
4
- export { e as getCurrentSite };
@@ -1 +0,0 @@
1
- {"version":3,"file":"admins-components101.js","names":[],"sources":["../src/utils/cmsContext.ts"],"sourcesContent":["export const getCurrentSite = (): string | undefined => {\n return (window as any).cmsContext?.currentSite\n}\n"],"mappings":";AAAA,IAAa,UACD,OAAe,YAAY"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"admins-components164.js","names":[],"sources":["../src/vueformelements/config/ImagePickerElementConfig.ts"],"sourcesContent":["export interface ImagePickerElementConfig {\n environment: string\n articleEditorUrl: string\n searchImageWidgetUrl: string\n imageBaseUrl: string\n imageViewId: string\n}\n\nexport let ipeConfig: ImagePickerElementConfig = (window as any).config?.imagePicker || {}\n\nexport function configureImagePickerElement(ipec: ImagePickerElementConfig) {\n ipeConfig = {\n ...ipeConfig,\n ...ipec,\n }\n\n return ipeConfig\n}\n"],"mappings":";AAQA,IAAW,IAAuC,OAAe,QAAQ,eAAe,CAAC;AAEzF,SAAgB,EAA4B,GAAgC;CAM1E,OALA,IAAY;EACV,GAAG;EACH,GAAG;CACL,GAEO;AACT"}
@@ -1,10 +0,0 @@
1
- //#region src/vueformelements/config/ExternalArticleOfferElementConfig.ts
2
- var e = window.config?.externalArticleOfferElement || {};
3
- function t(t) {
4
- return e = {
5
- ...e,
6
- ...t
7
- }, e;
8
- }
9
- //#endregion
10
- export { t as configureExternalArticleOfferElement, e as eaoeConfig };
@@ -1 +0,0 @@
1
- {"version":3,"file":"admins-components168.js","names":[],"sources":["../src/vueformelements/config/ExternalArticleOfferElementConfig.ts"],"sourcesContent":["import type { Article } from '@/components/custom/ExternalArticleOffer.vue'\n\nexport interface ExternalArticleOfferElementConfig {\n formats: { label: string; value: string }[]\n onArticleUrlChanged: (url: string, callback: (article: Article) => void) => void\n}\n\nexport let eaoeConfig: ExternalArticleOfferElementConfig =\n (window as any).config?.externalArticleOfferElement || {}\n\nexport function configureExternalArticleOfferElement(conf: ExternalArticleOfferElementConfig) {\n eaoeConfig = {\n ...eaoeConfig,\n ...conf,\n }\n\n return eaoeConfig\n}\n"],"mappings":";AAOA,IAAW,IACR,OAAe,QAAQ,+BAA+B,CAAC;AAE1D,SAAgB,EAAqC,GAAyC;CAM5F,OALA,IAAa;EACX,GAAG;EACH,GAAG;CACL,GAEO;AACT"}
@@ -1,7 +0,0 @@
1
- import './src/styles/components/data-table/data-paginator.scss_vue_type_style_index_0_src_true_lang.css';
2
- import e from "./admins-components76.js";
3
- /* empty css */
4
- //#region src/components/data-table/DataPaginator.vue
5
- var t = e;
6
- //#endregion
7
- export { t as default };
@@ -1 +0,0 @@
1
- {"version":3,"file":"admins-components78.js","names":[],"sources":["../src/components/data-table/DataPaginator.vue"],"sourcesContent":["<script lang=\"ts\">\nconst SIZE_OPTIONS = [10, 25, 50, 100]\nconst DEFAULT_PAGE_SIZE = 100\n\nexport function getPageSize(storageKey: string): number {\n try {\n const fullStorageKey = getFullStorageKey('pagination', storageKey)\n const raw = localStorage.getItem(fullStorageKey)\n if (raw) {\n const size = Number(raw)\n if (size > 0) return size\n }\n } catch {\n console.warn('Failed to read page size from localStorage')\n }\n return DEFAULT_PAGE_SIZE\n}\n\nexport function getDefaultPaginator(storageKey: string) {\n return {\n total: 0,\n page: 1,\n pageSize: getPageSize(storageKey),\n } as PaginatorSettings\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport Button from '@/components/Button.vue'\nimport type { PaginatorSettings, PageSettings } from '@/types/data-list'\nimport { getFullStorageKey } from '@/utils/storageKey'\n\nconst props = defineProps<{ settings: PaginatorSettings; storageKey: string }>()\n\nconst emit = defineEmits<{\n 'update:pagination': [pagination: PageSettings]\n}>()\n\nfunction savePageSize(size: number) {\n try {\n const fullStorageKey = getFullStorageKey('pagination', props.storageKey)\n localStorage.setItem(fullStorageKey, String(size))\n } catch {\n console.warn('Failed to save page size to localStorage')\n }\n}\n\nconst totalPages = computed(() =>\n Math.max(1, Math.ceil(props.settings.total / props.settings.pageSize)),\n)\n\nconst rangeStart = computed(() =>\n props.settings.total === 0 ? 0 : (props.settings.page - 1) * props.settings.pageSize + 1,\n)\nconst rangeEnd = computed(() =>\n Math.min(props.settings.page * props.settings.pageSize, props.settings.total),\n)\n\nconst visiblePages = computed<(number | '...')[]>(() => {\n const total = totalPages.value\n const current = props.settings.page\n\n if (total <= SLOT_COUNT) {\n const pages: number[] = []\n for (let i = 1; i <= total; i++) pages.push(i)\n return pages\n }\n\n const inner = SLOT_COUNT - 2\n let winStart = current - 1\n let winEnd = current + 1\n if (winStart < 2) {\n winEnd = Math.min(total - 1, winEnd + (2 - winStart))\n winStart = 2\n }\n if (winEnd > total - 1) {\n winStart = Math.max(2, winStart - (winEnd - (total - 1)))\n winEnd = total - 1\n }\n\n while (winEnd - winStart + 1 < inner) {\n const canExtendLeft = winStart > 2\n const canExtendRight = winEnd < total - 1\n if (!canExtendLeft && !canExtendRight) break\n\n const roomLeft = winStart - 2\n const roomRight = total - 1 - winEnd\n\n const ellipsisIfExtendLeft =\n ((canExtendLeft ? winStart - 1 : 0) > 2 ? 1 : 0) + (winEnd < total - 1 ? 1 : 0)\n const ellipsisIfExtendRight =\n (winStart > 2 ? 1 : 0) + ((canExtendRight ? winEnd + 1 : 0) < total - 1 ? 1 : 0)\n\n const newSize = winEnd - winStart + 2\n\n let extended = false\n if (\n canExtendLeft &&\n (roomLeft >= roomRight || !canExtendRight) &&\n newSize + ellipsisIfExtendLeft <= inner\n ) {\n winStart--\n extended = true\n } else if (canExtendRight && newSize + ellipsisIfExtendRight <= inner) {\n winEnd++\n extended = true\n }\n if (!extended) break\n }\n const showLeftEllipsis = winStart > 2\n const showRightEllipsis = winEnd < total - 1\n\n const pages: (number | '...')[] = []\n pages.push(1)\n if (showLeftEllipsis) pages.push('...')\n for (let p = winStart; p <= winEnd; p++) pages.push(p)\n if (showRightEllipsis) pages.push('...')\n pages.push(total)\n\n return pages\n})\n\nconst SLOT_COUNT = 7\n\nfunction shouldHideOnSmall(page: number) {\n const current = props.settings.page\n const total = totalPages.value\n\n const isEdge = page === 1 || page === total\n const isCurrent = page === current\n\n const isMiddleRange = current > 3 && current < total - 2\n\n return isMiddleRange && !isEdge && !isCurrent\n}\n\nfunction goToPage(page: number) {\n if (page < 1 || page > totalPages.value || page === props.settings.page) return\n emit('update:pagination', { page, pageSize: props.settings.pageSize })\n}\n\nfunction changePageSize(event: Event) {\n const size = Number((event.target as HTMLSelectElement).value)\n savePageSize(size)\n emit('update:pagination', { page: 1, pageSize: size })\n}\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div class=\"c-paginator-wrapper\">\n <div class=\"c-paginator\">\n <div class=\"c-paginator__info\">\n <span class=\"c-paginator__range\">{{ rangeStart }}&ndash;{{ rangeEnd }}</span>\n <span class=\"c-paginator__total\"> / {{ settings.total }}</span>\n </div>\n\n <nav class=\"c-paginator__nav\" aria-label=\"Pagination\">\n <Button\n icon=\"fa-solid fa-chevron-left\"\n rel=\"prev\"\n :disabled=\"settings.page <= 1\"\n :callback=\"() => goToPage(settings.page - 1)\"\n />\n\n <template v-for=\"(p, i) in visiblePages\" :key=\"i\">\n <span v-if=\"p === '...'\" class=\"c-paginator__ellipsis\">&hellip;</span>\n <button\n v-else\n type=\"button\"\n class=\"c-paginator__page\"\n :class=\"{\n 'is-active': p === settings.page,\n 'is-hidden-sm': shouldHideOnSmall(p),\n }\"\n @click=\"goToPage(p)\"\n >\n {{ p }}\n </button>\n </template>\n\n <Button\n icon=\"fa-solid fa-chevron-right\"\n rel=\"next\"\n :disabled=\"settings.page >= totalPages\"\n :callback=\"() => goToPage(settings.page + 1)\"\n />\n </nav>\n\n <div class=\"c-paginator__size\">\n <select\n class=\"c-paginator__select\"\n id=\"page-size-select\"\n :value=\"settings.pageSize\"\n @change=\"changePageSize\"\n >\n <option v-for=\"s in SIZE_OPTIONS\" :key=\"s\" :value=\"s\">{{ s }} elem / oldal</option>\n </select>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-paginator.scss\"></style>\n"],"mappings":""}
@@ -1,7 +0,0 @@
1
- import './src/styles/components/data-table/data-filters.scss_vue_type_style_index_0_src_true_lang.css';
2
- import e from "./admins-components84.js";
3
- /* empty css */
4
- //#region src/components/data-table/DataFilters.vue
5
- var t = e;
6
- //#endregion
7
- export { t as default };
@@ -1 +0,0 @@
1
- {"version":3,"file":"admins-components86.js","names":[],"sources":["../src/components/data-table/DataFilters.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { DropdownOption } from '@/components/DropdownSelect.vue'\n\nexport interface FilterItem {\n type: FilterItemType\n key: string\n label?: string\n placeholder?: string\n value?: any\n options?: DropdownOption[]\n fullWidth?: boolean\n config?: Record<string, any>\n displayClass?: string\n transformer?: (value: any) => Record<string, any> | null | undefined\n onInnerSearch?: (value: string) => void\n onChange?: (value: any) => void\n}\n\nexport interface FilterResponse {\n values: Record<string, any>\n transformed: Record<string, any>\n}\n\nexport interface DataFiltersProps {\n items: FilterItem[]\n open?: boolean\n position?: SidebarPosition\n lazy?: boolean\n handleUrl?: boolean\n historyEnabled?: boolean\n storageKey?: string\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport Sidebar, { type SidebarPosition } from '@/components/Sidebar.vue'\nimport DatePicker from '@/components/DatePicker.vue'\nimport DateRangePicker from '@/components/DateRangePicker.vue'\nimport DropdownSelect from '@/components/DropdownSelect.vue'\nimport TextInput, { type TextInputType } from '@/components/TextInput.vue'\nimport Button from '@/components/Button.vue'\nimport Checkbox from '@/components/Checkbox.vue'\nimport FiltersHistory from '@/components/data-table/FiltersHistory.vue'\nimport type { DatePickerConfig, DateRangePickerConfig } from '@/types/datepickers'\nimport type { FilterItemType, PickedDate, PickedUtcRange } from '@/types/types'\nimport { filterEmptyValues, getDefaultFilters, writeFilterParams } from '@/utils/dataFilters'\n\nconst props = withDefaults(defineProps<DataFiltersProps>(), {\n open: false,\n position: 'left',\n lazy: true,\n handleUrl: false,\n historyEnabled: true,\n})\n\nconst emit = defineEmits<{\n close: []\n change: [response: FilterResponse]\n}>()\n\nconst values = ref<Record<string, any>>(getDefaultFilters(props.items, props.storageKey, false))\nconst filterRefs = ref<Record<string, any>>({})\n\nfunction setFilterRef(key: string, el: any) {\n if (el) filterRefs.value[key] = el\n else delete filterRefs.value[key]\n}\n\nfunction buildDatePickerConfig(item: FilterItem): DatePickerConfig {\n return {\n ...(item.config ?? {}),\n showTime: item.type === 'datetime',\n placeholder: item.placeholder ?? (item.type === 'datetime' ? 'Időpont' : 'Dátum'),\n }\n}\n\nfunction buildDateRangePickerConfig(item: FilterItem): DateRangePickerConfig {\n return {\n ...(item.config ?? {}),\n ...(!item.fullWidth ? { compact: true } : {}),\n showTime: item.type === 'datetimerange',\n }\n}\n\nfunction update(item: FilterItem, value: any) {\n const stored = typeof value === 'string' ? value.trim() : value\n values.value = { ...values.value, [item.key]: stored }\n if (item.onChange) item.onChange(stored)\n if (!props.lazy) emitChange()\n}\n\nconst hasActiveFilters = computed(() =>\n Object.values(values.value).some((v) => v !== null && v !== '' && v !== undefined),\n)\n\nfunction buildResponse(): FilterResponse {\n const transformed: Record<string, any> = {}\n for (const item of props.items) {\n if (item.type === 'separator') continue\n const val = values.value[item.key]\n if (item.transformer) Object.assign(transformed, item.transformer(val) ?? {})\n else transformed[item.key] = val\n }\n return { values: filterEmptyValues(values.value), transformed: filterEmptyValues(transformed) }\n}\n\nfunction emitChange() {\n if (props.handleUrl) writeFilterParams(props.items, values.value)\n emit('change', buildResponse())\n}\n\nfunction confirm() {\n emitChange()\n emit('close')\n}\n\nfunction clearAll() {\n values.value = {}\n emitChange()\n}\n\nfunction clearFilter(key: string) {\n values.value = { ...values.value, [key]: null }\n emitChange()\n}\n\nfunction focusFilter(key: string) {\n const el = (filterRefs.value as Record<string, any>)[key]\n if (!el) return\n\n if (typeof el.focusAndOpen === 'function') el.focusAndOpen()\n else if (typeof el.focus === 'function') el.focus()\n}\n\nfunction onHistoryLoad(loaded: Record<string, any>) {\n const next: Record<string, any> = { ...values.value }\n for (const item of props.items) {\n if (item.type === 'separator') continue\n if (item.key in loaded) next[item.key] = loaded[item.key] ?? null\n }\n values.value = next\n emitChange()\n}\n\ndefineExpose({ clearFilter, focusFilter })\n\nfunction handleFilterKeydown(event: KeyboardEvent) {\n if (event.key !== 'Enter') return\n\n // Allow Enter in textarea for line breaks\n const target = event.target as HTMLElement\n if (target?.tagName === 'TEXTAREA') return\n\n event.preventDefault()\n confirm()\n}\n\nfunction handleDropdownFilterInput(item: FilterItem, text: string) {\n if (item.onInnerSearch) item.onInnerSearch(text)\n}\n</script>\n\n<template>\n <Sidebar :open=\"open\" title=\"Szűrők\" :position=\"position\" @close=\"emit('close')\">\n <div class=\"data-filters\" @keydown=\"handleFilterKeydown\">\n <div\n v-for=\"item in items\"\n :key=\"item.key\"\n class=\"data-filters__field\"\n :class=\"{ 'data-filters__field--full': item.fullWidth || item.type === 'separator' }\"\n >\n <hr v-if=\"item.type === 'separator'\" class=\"data-filters__separator\" />\n <template v-else-if=\"item.type === 'checkbox'\">\n <Checkbox\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :model-value=\"(values[item.key] as boolean) ?? false\"\n :label=\"item.label ?? item.key\"\n @update:model-value=\"(val) => update(item, val)\"\n v-bind=\"item.config\"\n />\n </template>\n <template v-else-if=\"['text', 'number', 'textarea'].includes(item.type)\">\n <TextInput\n :type=\"item.type as TextInputType\"\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :id=\"`df-${item.key}`\"\n :model-value=\"(values[item.key] as string) ?? ''\"\n :label=\"item.label ?? item.key\"\n :placeholder=\"item.placeholder\"\n @update:model-value=\"(val) => update(item, val || null)\"\n v-bind=\"item.config\"\n />\n </template>\n <template v-else-if=\"item.type === 'date' || item.type === 'datetime'\">\n <label class=\"c-label\" :for=\"`df-${item.key}`\">{{ item.label ?? item.key }}</label>\n <DatePicker\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :id=\"`df-${item.key}`\"\n :model-value=\"(values[item.key] as PickedDate) ?? null\"\n :config=\"buildDatePickerConfig(item)\"\n @update:model-value=\"(val) => update(item, val)\"\n />\n </template>\n <template v-else-if=\"item.type === 'daterange' || item.type === 'datetimerange'\">\n <span class=\"c-label\">{{ item.label ?? item.key }}</span>\n <DateRangePicker\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :model-value=\"(values[item.key] as PickedUtcRange) ?? null\"\n :config=\"buildDateRangePickerConfig(item)\"\n @update:model-value=\"(val) => update(item, val)\"\n />\n </template>\n <template v-else-if=\"item.type === 'dropdown'\">\n <span class=\"c-label\">{{ item.label ?? item.key }}</span>\n <DropdownSelect\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :model-value=\"(values[item.key] as string) ?? null\"\n :options=\"item.options ?? []\"\n :config=\"{\n ...(item.config ?? {}),\n placeholder: item.placeholder ?? 'Válassz...',\n clearable: true,\n filterable: true,\n }\"\n @filter-input=\"handleDropdownFilterInput(item, $event)\"\n @update:model-value=\"(val) => update(item, val)\"\n />\n </template>\n </div>\n </div>\n <div class=\"data-filters__footer\">\n <Button\n icon=\"fa-solid fa-trash-can\"\n :disabled=\"!hasActiveFilters\"\n label=\"Szűrők törlése\"\n aria-label=\"Szűrők törlése\"\n size=\"small\"\n @click=\"clearAll\"\n />\n <Button label=\"Szűrés\" aria-label=\"Szűrés\" type=\"success\" @click=\"confirm\" />\n </div>\n <template v-if=\"historyEnabled\">\n <hr class=\"separator my-3\" />\n <FiltersHistory\n :items=\"items\"\n :values=\"values\"\n :storage-key=\"storageKey\"\n @load=\"onHistoryLoad\"\n />\n </template>\n </Sidebar>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-filters.scss\"></style>\n"],"mappings":""}
@@ -1,7 +0,0 @@
1
- import './src/styles/components/data-table/filter-tags.scss_vue_type_style_index_0_src_true_lang.css';
2
- import e from "./admins-components87.js";
3
- /* empty css */
4
- //#region src/components/data-table/FilterTags.vue
5
- var t = e;
6
- //#endregion
7
- export { t as default };
@@ -1,7 +0,0 @@
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;
6
- //#endregion
7
- export { t as default };
@@ -1 +0,0 @@
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":""}