@quoreadmin/ui 1.7.20 → 1.8.1

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 (355) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.js +42 -40
  3. package/dist/index10.js +2 -2
  4. package/dist/{index100.js → index101.js} +1 -1
  5. package/dist/index103.js +138 -6
  6. package/dist/index104.js +4 -0
  7. package/dist/index107.js +2 -2
  8. package/dist/index109.js +1 -1
  9. package/dist/index11.js +2 -2
  10. package/dist/index111.js +3 -3
  11. package/dist/index113.js +6 -6
  12. package/dist/index115.js +1 -1
  13. package/dist/index117.js +5 -5
  14. package/dist/index12.js +2 -2
  15. package/dist/index127.js +69 -10
  16. package/dist/index129.js +9 -75
  17. package/dist/index13.js +2 -2
  18. package/dist/index131.js +68 -243
  19. package/dist/index133.js +257 -0
  20. package/dist/index136.js +35 -16
  21. package/dist/index138.js +22 -50
  22. package/dist/index14.js +2 -2
  23. package/dist/index140.js +38 -1110
  24. package/dist/index142.js +1059 -216
  25. package/dist/index144.js +238 -294
  26. package/dist/index146.js +335 -16
  27. package/dist/index148.js +15 -87
  28. package/dist/index15.js +2 -2
  29. package/dist/index150.js +71 -61
  30. package/dist/index152.js +66 -93
  31. package/dist/index154.js +120 -0
  32. package/dist/index157.js +373 -28
  33. package/dist/index159.js +28 -194
  34. package/dist/index16.js +2 -2
  35. package/dist/index161.js +210 -0
  36. package/dist/index164.js +110 -5518
  37. package/dist/index165.js +484 -80
  38. package/dist/index166.js +5505 -844
  39. package/dist/index167.js +90 -37
  40. package/dist/index168.js +816 -235
  41. package/dist/index169.js +28 -140
  42. package/dist/index17.js +2 -2
  43. package/dist/index170.js +271 -1190
  44. package/dist/index171.js +134 -756
  45. package/dist/index172.js +1133 -1242
  46. package/dist/index173.js +753 -257
  47. package/dist/index174.js +1290 -88
  48. package/dist/index175.js +276 -2
  49. package/dist/index176.js +86 -1356
  50. package/dist/index177.js +4 -0
  51. package/dist/index178.js +1372 -14
  52. package/dist/index18.js +2 -2
  53. package/dist/index180.js +11 -11
  54. package/dist/index181.js +11 -11
  55. package/dist/index182.js +12 -19
  56. package/dist/index183.js +18 -759
  57. package/dist/index184.js +25 -1122
  58. package/dist/index185.js +625 -1100
  59. package/dist/index186.js +1122 -11277
  60. package/dist/index187.js +1234 -36
  61. package/dist/index188.js +11276 -43
  62. package/dist/index19.js +2 -2
  63. package/dist/index191.js +36 -5938
  64. package/dist/index192.js +42 -205
  65. package/dist/index193.js +5922 -19
  66. package/dist/index194.js +199 -10
  67. package/dist/index195.js +33 -76
  68. package/dist/index196.js +14 -249
  69. package/dist/index197.js +72 -13678
  70. package/dist/index198.js +253 -27
  71. package/dist/index199.js +13669 -48
  72. package/dist/index2.js +2 -2
  73. package/dist/index20.js +2 -2
  74. package/dist/index200.js +25 -236
  75. package/dist/index201.js +45 -290
  76. package/dist/index202.js +179 -229
  77. package/dist/index203.js +304 -29
  78. package/dist/index204.js +286 -114
  79. package/dist/index205.js +29 -32
  80. package/dist/index206.js +116 -26
  81. package/dist/index207.js +31 -31
  82. package/dist/index208.js +26 -9
  83. package/dist/index209.js +35 -18
  84. package/dist/index21.js +2 -2
  85. package/dist/index210.js +8 -9
  86. package/dist/index211.js +19 -10
  87. package/dist/index212.js +10 -51
  88. package/dist/index213.js +9 -42
  89. package/dist/index214.js +50 -3
  90. package/dist/index215.js +40 -36
  91. package/dist/index216.js +4 -21
  92. package/dist/index217.js +35 -84
  93. package/dist/index218.js +21 -407
  94. package/dist/index219.js +159 -20
  95. package/dist/index22.js +3 -3
  96. package/dist/index220.js +19 -160
  97. package/dist/index221.js +10 -10
  98. package/dist/index222.js +15 -13
  99. package/dist/index223.js +198 -21
  100. package/dist/index224.js +51 -180
  101. package/dist/index225.js +82 -64
  102. package/dist/index226.js +406 -33
  103. package/dist/index227.js +33 -39
  104. package/dist/index228.js +36 -123
  105. package/dist/index229.js +158 -35
  106. package/dist/index23.js +2 -2
  107. package/dist/index230.js +227 -79
  108. package/dist/index231.js +36 -19
  109. package/dist/index232.js +10 -20
  110. package/dist/index233.js +22 -20
  111. package/dist/index234.js +126 -19
  112. package/dist/index235.js +35 -158
  113. package/dist/index236.js +79 -227
  114. package/dist/index237.js +19 -36
  115. package/dist/index238.js +20 -10
  116. package/dist/index239.js +20 -3632
  117. package/dist/index24.js +2 -2
  118. package/dist/index240.js +20 -55
  119. package/dist/index241.js +22 -77
  120. package/dist/index242.js +22 -52
  121. package/dist/index243.js +20 -215
  122. package/dist/index244.js +836 -10
  123. package/dist/index245.js +695 -50
  124. package/dist/index246.js +174 -59
  125. package/dist/index247.js +22 -54
  126. package/dist/index248.js +20 -75
  127. package/dist/index249.js +19 -722
  128. package/dist/index25.js +60 -11
  129. package/dist/index250.js +3 -39
  130. package/dist/index251.js +181 -58
  131. package/dist/index252.js +133 -11
  132. package/dist/index253.js +1189 -671
  133. package/dist/index254.js +20 -820
  134. package/dist/index255.js +11 -11
  135. package/dist/index256.js +9 -9
  136. package/dist/index257.js +22 -13
  137. package/dist/index258.js +20 -836
  138. package/dist/index259.js +19 -701
  139. package/dist/index26.js +1 -1
  140. package/dist/index260.js +2 -176
  141. package/dist/index261.js +2 -22
  142. package/dist/index262.js +3632 -20
  143. package/dist/index263.js +55 -20
  144. package/dist/index264.js +77 -3
  145. package/dist/index265.js +46 -181
  146. package/dist/index266.js +209 -127
  147. package/dist/index267.js +10 -1223
  148. package/dist/index268.js +57 -20
  149. package/dist/index269.js +61 -22
  150. package/dist/index27.js +1 -1
  151. package/dist/index270.js +54 -22
  152. package/dist/index271.js +75 -29
  153. package/dist/index272.js +722 -19
  154. package/dist/index273.js +39 -20
  155. package/dist/index274.js +64 -2
  156. package/dist/index275.js +11 -2
  157. package/dist/index276.js +689 -237
  158. package/dist/index277.js +820 -8
  159. package/dist/index278.js +42 -126
  160. package/dist/index279.js +59 -63
  161. package/dist/index28.js +1 -1
  162. package/dist/index280.js +26 -3
  163. package/dist/index281.js +21 -26
  164. package/dist/index282.js +21 -53
  165. package/dist/index283.js +15 -78
  166. package/dist/index284.js +17 -26
  167. package/dist/index285.js +253 -22
  168. package/dist/index286.js +8 -22
  169. package/dist/index287.js +137 -15
  170. package/dist/index288.js +83 -17
  171. package/dist/index289.js +2 -2
  172. package/dist/index29.js +1 -1
  173. package/dist/index290.js +3 -2
  174. package/dist/index291.js +24 -1515
  175. package/dist/index292.js +2 -386
  176. package/dist/index293.js +245 -2714
  177. package/dist/index294.js +4 -84
  178. package/dist/index295.js +135 -3765
  179. package/dist/index296.js +70 -57
  180. package/dist/index297.js +86 -14
  181. package/dist/index298.js +27 -82
  182. package/dist/index299.js +13 -199
  183. package/dist/index3.js +2 -2
  184. package/dist/index30.js +1 -1
  185. package/dist/index300.js +66 -237
  186. package/dist/index301.js +3 -78
  187. package/dist/index302.js +2 -22
  188. package/dist/index303.js +74 -926
  189. package/dist/index304.js +52 -21
  190. package/dist/index305.js +5 -19
  191. package/dist/index306.js +4 -19
  192. package/dist/index307.js +171 -61
  193. package/dist/index308.js +62 -18
  194. package/dist/index309.js +74 -18
  195. package/dist/index31.js +1 -1
  196. package/dist/index310.js +78 -21
  197. package/dist/index311.js +11 -11
  198. package/dist/index312.js +930 -58
  199. package/dist/index313.js +21 -261
  200. package/dist/index314.js +19 -5
  201. package/dist/index315.js +19 -139
  202. package/dist/index316.js +67 -71
  203. package/dist/index317.js +17 -85
  204. package/dist/index318.js +19 -29
  205. package/dist/index319.js +21 -15
  206. package/dist/index32.js +1 -1
  207. package/dist/index320.js +21 -74
  208. package/dist/index321.js +63 -4
  209. package/dist/index322.js +1518 -2
  210. package/dist/index323.js +376 -73
  211. package/dist/index324.js +2726 -48
  212. package/dist/index325.js +84 -4
  213. package/dist/index326.js +3769 -4
  214. package/dist/index327.js +51 -170
  215. package/dist/index328.js +14 -62
  216. package/dist/index329.js +84 -75
  217. package/dist/index33.js +1 -1
  218. package/dist/index330.js +201 -8
  219. package/dist/index331.js +245 -12
  220. package/dist/index332.js +32 -50
  221. package/dist/index333.js +8 -11
  222. package/dist/index334.js +12 -13
  223. package/dist/index335.js +49 -52
  224. package/dist/index336.js +9 -49
  225. package/dist/index337.js +10 -27
  226. package/dist/index338.js +58 -2
  227. package/dist/index339.js +52 -5
  228. package/dist/index34.js +1 -1
  229. package/dist/index340.js +31 -2
  230. package/dist/index341.js +2 -23
  231. package/dist/index342.js +4 -40
  232. package/dist/index343.js +2 -2
  233. package/dist/index344.js +22 -10
  234. package/dist/index345.js +38 -17
  235. package/dist/index346.js +2 -17
  236. package/dist/index347.js +10 -9
  237. package/dist/index348.js +20 -10
  238. package/dist/index349.js +17 -2
  239. package/dist/index35.js +1 -1
  240. package/dist/index350.js +9 -8
  241. package/dist/index351.js +10 -10
  242. package/dist/index352.js +2 -14
  243. package/dist/index353.js +9 -37
  244. package/dist/index354.js +9 -19
  245. package/dist/index355.js +14 -20
  246. package/dist/index356.js +17 -62
  247. package/dist/index357.js +56 -36
  248. package/dist/index358.js +26 -16
  249. package/dist/index359.js +6 -56
  250. package/dist/index36.js +1 -1
  251. package/dist/index360.js +51 -28
  252. package/dist/index361.js +7 -7
  253. package/dist/index362.js +11 -51
  254. package/dist/index363.js +6 -6
  255. package/dist/index364.js +28 -12
  256. package/dist/index365.js +2 -7
  257. package/dist/index366.js +69 -27
  258. package/dist/index367.js +167 -2
  259. package/dist/index368.js +20 -70
  260. package/dist/index369.js +20 -167
  261. package/dist/index37.js +4 -16
  262. package/dist/index370.js +61 -98
  263. package/dist/index371.js +37 -91
  264. package/dist/index372.js +30 -97
  265. package/dist/index373.js +11 -17
  266. package/dist/index374.js +3 -30
  267. package/dist/index375.js +3 -10
  268. package/dist/index376.js +13 -4
  269. package/dist/index377.js +7 -4
  270. package/dist/index378.js +12 -13
  271. package/dist/index379.js +5 -7
  272. package/dist/index38.js +15 -43
  273. package/dist/index380.js +33 -12
  274. package/dist/index381.js +31 -5
  275. package/dist/index382.js +27 -32
  276. package/dist/index383.js +58 -28
  277. package/dist/index384.js +16 -27
  278. package/dist/index385.js +99 -59
  279. package/dist/index386.js +91 -3
  280. package/dist/index387.js +98 -2
  281. package/dist/index388.js +3 -2
  282. package/dist/index389.js +2 -17
  283. package/dist/index39.js +42 -67
  284. package/dist/index390.js +2 -13
  285. package/dist/index391.js +17 -6
  286. package/dist/index392.js +13 -32
  287. package/dist/index393.js +8 -0
  288. package/dist/index394.js +34 -0
  289. package/dist/index4.js +2 -2
  290. package/dist/index40.js +66 -26
  291. package/dist/index41.js +25 -32
  292. package/dist/index42.js +32 -37
  293. package/dist/index43.js +37 -1300
  294. package/dist/index44.js +1273 -337
  295. package/dist/index45.js +357 -145
  296. package/dist/index46.js +155 -18
  297. package/dist/index47.js +16 -42
  298. package/dist/index48.js +44 -68
  299. package/dist/index49.js +67 -61
  300. package/dist/index5.js +2 -2
  301. package/dist/index50.js +57 -175
  302. package/dist/index51.js +173 -77
  303. package/dist/index52.js +78 -199
  304. package/dist/index53.js +206 -68
  305. package/dist/index54.js +69 -20
  306. package/dist/index55.js +20 -11
  307. package/dist/index56.js +10 -6
  308. package/dist/index57.js +5 -209
  309. package/dist/index58.js +210 -12
  310. package/dist/index59.js +12 -184
  311. package/dist/index6.js +2 -2
  312. package/dist/index60.js +176 -68
  313. package/dist/index61.js +79 -0
  314. package/dist/index63.js +7 -63
  315. package/dist/index64.js +65 -0
  316. package/dist/index7.js +2 -2
  317. package/dist/{index71.js → index72.js} +2 -2
  318. package/dist/index76.js +40 -308
  319. package/dist/index77.js +330 -0
  320. package/dist/index8.js +3 -3
  321. package/dist/{index80.js → index81.js} +5 -5
  322. package/dist/{index82.js → index83.js} +1 -1
  323. package/dist/index85.js +23 -131
  324. package/dist/index86.js +144 -0
  325. package/dist/{index87.js → index88.js} +5 -5
  326. package/dist/index9.js +2 -2
  327. package/dist/{index89.js → index90.js} +5 -5
  328. package/dist/{index95.js → index96.js} +3 -3
  329. package/dist/index98.js +20 -25
  330. package/dist/index99.js +34 -0
  331. package/dist/src/components/footer-actions/footer-actions.stories.d.ts +33 -1
  332. package/dist/src/components/footer-actions/footer-actions.vue.d.ts +29 -2
  333. package/dist/src/components/page-header/page-header.stories.d.ts +394 -0
  334. package/dist/src/components/page-header/page-header.vue.d.ts +43 -0
  335. package/dist/src/index.d.ts +1 -0
  336. package/package.json +1 -1
  337. package/src/assets/illustrations/app-icon-news.svg +1 -0
  338. package/dist/index102.js +0 -142
  339. package/dist/index134.js +0 -56
  340. package/dist/index155.js +0 -389
  341. package/dist/index162.js +0 -116
  342. package/dist/index163.js +0 -497
  343. package/dist/index179.js +0 -20
  344. package/dist/index62.js +0 -9
  345. package/dist/index75.js +0 -62
  346. package/dist/index84.js +0 -36
  347. package/dist/index97.js +0 -29
  348. package/dist/src/components/footer-actions/footer-actions.d.ts +0 -3
  349. /package/dist/{index65.js → index66.js} +0 -0
  350. /package/dist/{index67.js → index68.js} +0 -0
  351. /package/dist/{index69.js → index70.js} +0 -0
  352. /package/dist/{index73.js → index74.js} +0 -0
  353. /package/dist/{index78.js → index79.js} +0 -0
  354. /package/dist/{index91.js → index92.js} +0 -0
  355. /package/dist/{index93.js → index94.js} +0 -0
package/dist/index144.js CHANGED
@@ -1,350 +1,294 @@
1
- import { defineComponent as te, ref as n, computed as w, onMounted as le, onUnmounted as oe, h as D, render as H } from "vue";
2
- import se from "./index191.js";
3
- import re from "./index192.js";
4
- import ae from "./index193.js";
5
- import ne from "./index194.js";
6
- import ce from "./index6.js";
7
- import ie from "./index49.js";
8
- import N from "./index28.js";
9
- import ue from "./index175.js";
10
- import de from "./index54.js";
11
- import fe from "./index55.js";
12
- import { filterData as ve } from "./index53.js";
13
- import { useDebounceFn as he } from "./index174.js";
14
- const ke = te({
15
- name: "QTable",
1
+ import { defineComponent as H, ref as n, computed as a, watch as g, nextTick as f } from "vue";
2
+ import { Multiselect as I } from "./index189.js";
3
+ import { useI18n as k } from "vue-i18n";
4
+ /* empty css */
5
+ import q from "./index6.js";
6
+ const U = H({
7
+ name: "QSelect",
16
8
  components: {
17
- Column: re,
18
- ColumnGroup: ae,
19
- DataTable: se,
20
- Row: ne,
21
- QBadge: ce,
22
- QTooltip: ie
9
+ QBadge: q,
10
+ VueMultiselect: I
23
11
  },
24
12
  props: {
25
- // Pass in an ID unique to the table.
26
13
  id: {
27
14
  type: String,
28
15
  default: ""
29
16
  },
30
- // Pass in data for the table using v-model - this replaces tableData.
17
+ // Options in the select
18
+ options: {
19
+ type: [Array, Object],
20
+ required: !0
21
+ },
22
+ // v-model
31
23
  modelValue: {
32
- type: Array,
33
- default: () => []
24
+ type: [String, Number, Array, Object, null, void 0],
25
+ default: void 0
34
26
  },
35
- // Pass in the columns for the table.
36
- columns: {
37
- type: Array,
38
- default: () => []
27
+ // trackby is for selected value
28
+ // Used to compare objects. Only use if options are objects.
29
+ trackBy: {
30
+ type: String,
31
+ default: "id"
39
32
  },
40
- // Pass in whether to show the search field.
41
- hasSearch: {
33
+ // Label from option Object, that will be visible in the dropdown.
34
+ label: {
35
+ type: String,
36
+ default: "label"
37
+ },
38
+ // Equivalent to the placeholder attribute on a <select> input.
39
+ placeholder: {
40
+ type: String,
41
+ default: ""
42
+ },
43
+ // In our case, the multiselect acts like the tagging component - https://vue-multiselect.js.org/#sub-tagging
44
+ multiple: {
45
+ type: Boolean,
46
+ default: !1
47
+ },
48
+ taggable: {
49
+ type: Boolean,
50
+ default: !1
51
+ },
52
+ // Add / removes search input.
53
+ searchable: {
42
54
  type: Boolean,
43
55
  default: !0
44
56
  },
45
- // Pass in a default sort.
46
- // TODO: This is not set up with PrimeVue DataTable yet. No default sort.
47
- sortBy: {
57
+ // Defaulting to an empty function - this overrides vue-multiselects default sort
58
+ // customLabel(a, label).length - customLabel(b, label).length
59
+ // which is sorting by the length of the label desc
60
+ filterSortFunction: {
61
+ type: Function,
62
+ default: () => {
63
+ }
64
+ },
65
+ disabled: {
66
+ type: Boolean,
67
+ default: !1
68
+ },
69
+ loading: {
70
+ type: Boolean,
71
+ default: !1
72
+ },
73
+ // Grouping - like optgroups
74
+ // https://vue-multiselect.js.org/#sub-option-groups
75
+ groupValues: {
48
76
  type: String,
49
77
  default: ""
50
78
  },
51
- // Pass in the items per page to display.
52
- // TODO: This is for pagination and/or infinite scroll, to be implemented later.
53
- itemsPerPage: {
54
- type: Number,
55
- default: 20
79
+ groupLabel: {
80
+ type: String,
81
+ default: ""
56
82
  },
57
- // Pass in the currently displayed page.
58
- // TODO: This is for pagination and/or infinite scroll, to be implemented later.
59
- currentPage: {
60
- type: Number,
61
- default: 1
83
+ // Props for vue-multiselect - deselectGroupLabel, selectGroupLabel, selectLabel
84
+ groupSelectable: {
85
+ type: Boolean,
86
+ default: !0
62
87
  },
63
- // Pass in a search field placeholder. Fallback is localized "Search" in template.
64
- searchPlaceholder: {
88
+ // A couple of dropdowns have checkboxes
89
+ hasCheckboxes: {
90
+ type: Boolean,
91
+ default: !1
92
+ },
93
+ size: {
94
+ type: String,
95
+ default: "lg"
96
+ },
97
+ // TODO: Document what this is for when I realize what it is used for
98
+ info: {
65
99
  type: String,
66
100
  default: ""
67
101
  },
68
- // Pass in the filters for the table.
69
- filters: {
70
- type: Object,
71
- default: () => ({})
102
+ // NEW - Allows to remove all selected values. Otherwise one must be left selected.
103
+ allowEmpty: {
104
+ type: Boolean,
105
+ default: !0
72
106
  },
73
- // Pass in a function for when filters icon is clicked.
74
- filtersAction: {
75
- type: Function,
76
- default: () => {
77
- }
107
+ // Array of keyboard key aliases to block when selecting ex ['Tab', 'Enter', 'Delete']
108
+ blockKeys: {
109
+ type: Array,
110
+ default: () => ["Delete"]
78
111
  },
79
- // Pass in a count of active filters.
80
- filtersCount: {
81
- type: Number,
82
- default: 0
112
+ // We could make this a slot like optionPrefix
113
+ noResultMessage: {
114
+ type: String,
115
+ default: ""
83
116
  },
84
- // Pass in an array of attribute names to globally search.
85
- globalFilters: {
86
- type: Array,
87
- default: () => []
117
+ // Message to show when options array is empty
118
+ noOptionsMessage: {
119
+ type: String,
120
+ default: ""
88
121
  },
89
- // Pass in a loading state.
90
- loading: {
122
+ // Selection control for mobile
123
+ selectionControl: {
91
124
  type: Boolean,
92
125
  default: !1
93
126
  },
94
- // Pass in if table is multi-sort. We won't use this initially.
95
- isMultiSort: {
127
+ showExpanded: {
96
128
  type: Boolean,
97
129
  default: !1
98
130
  },
99
- // Pass in if table is multi-select.
100
- isMultiSelect: {
131
+ showPlaceholderImage: {
132
+ type: Boolean,
133
+ default: !0
134
+ },
135
+ // Use this with multiple = true
136
+ showSelectAll: {
101
137
  type: Boolean,
102
138
  default: !1
103
139
  },
104
- // Pass in a function to handle when a row is selected.
105
- rowSelect: {
106
- type: Function,
107
- default: () => {
108
- }
140
+ // Helpful text for user to know how to add a new option
141
+ tagPlaceholder: {
142
+ type: String,
143
+ default: ""
109
144
  },
110
- // Pass in a function to handle when a row is unselected.
111
- rowUnselect: {
112
- type: Function,
113
- default: () => {
114
- }
145
+ // Expands the field to see all selected options
146
+ expand: {
147
+ type: Boolean,
148
+ default: !1
115
149
  },
116
- // Pass in the height of combined fixed elements while vertical scrolling.
117
- fixedTopOffset: {
118
- type: Number,
119
- default: 0
150
+ // Shows the selected count
151
+ showSelectedCount: {
152
+ type: Boolean,
153
+ default: !1
120
154
  },
121
- // Pass in the number of skeleton rows that should show while loading.
122
- skeletonRows: {
123
- type: Number,
124
- default: 6
155
+ // Send email report and schedule report have email dropdowns with name & email. In those use cases, the selected value needs to be truncated.
156
+ truncateTag: {
157
+ type: Boolean,
158
+ default: !1
125
159
  },
126
- // Pass in the scroll amount for the left scroll button.
127
- leftScrollAmount: {
160
+ // Limit of options shown to the user - refer to receipents and week frequency example
161
+ limitShown: {
128
162
  type: Number,
129
- default: 200
163
+ default: null
130
164
  },
131
- // Pass in the scroll amount for the right scroll button.
132
- rightScrollAmount: {
133
- type: Number,
134
- default: 200
165
+ // Ability to pass in a function if we need validation for tags (example: email needs to check if it's a valid email before adding it to the list of options)
166
+ validationMethod: {
167
+ type: Function,
168
+ default: () => !0
135
169
  },
136
- // If set to true we do not use the built in frozen prop for primevue table
137
- // instead we set our own sticky columns. Initially only supporting first and last
138
- overrideFrozen: {
170
+ // Show descriptions as part of the options (on right).
171
+ showOptionDescription: {
139
172
  type: Boolean,
140
173
  default: !1
141
174
  },
142
- // Pass in the debounce time for the search field.
143
- searchDelay: {
144
- type: Number,
145
- default: 300
175
+ // There are use cases where we do not want taggable true, because taggable allows for adding values to the list of options. There are scenarios where design wants the tag styling in some places but then not in others
176
+ showTags: {
177
+ type: Boolean,
178
+ default: !1
179
+ },
180
+ // Open direction of the options. Default to below.
181
+ openDirection: {
182
+ type: String,
183
+ default: "bottom"
184
+ },
185
+ // Shows "*Required" indicator next to placeholder with different styling
186
+ required: {
187
+ type: Boolean,
188
+ default: !1
189
+ },
190
+ // Use this with taggable = false, multiple = false, showTags = false to allow for adding options without tags.
191
+ useAddTagsOnly: {
192
+ type: Boolean,
193
+ default: !1
194
+ },
195
+ clearOnSelect: {
196
+ type: Boolean,
197
+ default: !1
198
+ },
199
+ closeOnSelect: {
200
+ type: Boolean,
201
+ default: !1
202
+ },
203
+ // Enables floating label behavior - label floats to top when focused or has value
204
+ floatingLabel: {
205
+ type: Boolean,
206
+ default: !1
146
207
  }
147
208
  },
148
- emits: ["is-empty"],
149
- setup(s, { emit: P }) {
150
- const { deviceType: T } = fe(), k = n(), c = n(!1), d = n(!1), h = n(!1), L = n(!1), m = n(!1), y = n(!0), F = n(ue), t = n(), A = n(""), O = n([]), a = n(), Q = n(0), U = w(() => ve(
151
- s.modelValue,
152
- A.value,
153
- s.filters,
154
- void 0,
155
- // sortBy handled by PrimeVue
156
- void 0,
157
- // orderBy handled by PrimeVue
158
- []
159
- )), q = w(() => T.value === "desktop"), I = w(() => {
160
- const e = !s.loading && k.value?.empty;
161
- return P("is-empty", e), e;
162
- }), V = w(() => {
163
- const e = [], l = {};
164
- let o = 0;
165
- return s.columns.forEach((r) => {
166
- l[r.key] = "";
167
- }), [...Array(s.skeletonRows)].forEach(() => {
168
- e.push({
169
- ...l,
170
- shimmer: o % 2 ? "bg-gray-10" : "bg-gray-30"
171
- }), o++;
172
- }), e;
173
- }), p = () => {
174
- x(), R(), B(), b(), v();
175
- }, j = (e) => {
176
- s.rowSelect(e);
177
- }, G = (e) => {
178
- s.rowUnselect(e);
179
- }, B = () => {
180
- const e = a.value.offsetTop - s.fixedTopOffset, l = document.querySelector('div[data-pc-section="header"]'), o = t.value?.querySelector("thead");
181
- if (d.value = !!s.fixedTopOffset && a.value && window.scrollY >= e, d.value)
182
- if (l.style.top = s.fixedTopOffset + "px", c.value)
183
- o.style.top = "";
184
- else {
185
- const r = s.fixedTopOffset + l.clientHeight + 1;
186
- o.style.top = r + "px";
187
- }
188
- else
189
- l.style.top = "", o.style.top = "";
190
- if (d.value && c.value) {
191
- const r = document.querySelector(
192
- 'div[data-pc-section="header"] > div[data-pc-section="wrapper"]'
193
- );
194
- r?.querySelectorAll("th")?.forEach((u, i) => {
195
- const f = t.value?.querySelector(
196
- `th:nth-child(${i + 1})`
197
- ), S = f?.getAttribute("aria-sort");
198
- u?.setAttribute("aria-sort", S), u.classList.contains("actions") && (u.style.minWidth = f?.clientWidth + "px");
199
- }), r && (r.scrollLeft = t.value.scrollLeft);
209
+ emits: ["update:model-value"],
210
+ setup(l, { slots: h, emit: o }) {
211
+ const { t: r } = k(), d = n(null), c = n(null), e = n(l.modelValue), p = n(""), s = n(!1), i = n([]), y = a(() => Array.isArray(l.options) ? l.options.length : 0), m = a(() => !!h.action), S = a(() => l.noResultMessage || r("HC_PRESS_ENTER_TO_CREATE_A_TAG")), b = a(() => l.tagPlaceholder || r("HC_PRESS_ENTER_TO_CREATE_A_TAG")), B = a(() => l.noOptionsMessage || r("HC_LIST_IS_EMPTY")), _ = a(() => y.value === e.value.length ? r("HC_ALL") : e.value.length > 1 ? r("HC_MULTIPLE_SELECTED") : e.value[0].label || e.value[0].name || ""), T = a(() => l.taggable || l.showTags), A = a(() => !!(l.groupValues && l.groupLabel && l.groupSelectable)), v = a(() => l.multiple ? Array.isArray(e.value) && e.value.length > 0 : e.value !== null && e.value !== void 0 && e.value !== ""), E = a(() => l.floatingLabel), C = a(() => l.floatingLabel && v.value), O = (t) => {
212
+ o("update:model-value", t);
213
+ }, w = (t) => {
214
+ p.value = t;
215
+ }, L = async (t) => {
216
+ const u = {
217
+ label: t,
218
+ name: t,
219
+ added: !0
220
+ // maybe change this to class - I am going to use this for external emails
221
+ };
222
+ if (!l.validationMethod(u)) {
223
+ await f(), d.value.search = t;
224
+ return;
200
225
  }
201
- R(), b(), v();
202
- }, b = () => {
203
- const l = t.value.scrollWidth - t.value.clientWidth;
204
- y.value = Math.abs(t.value.scrollLeft) <= 1, m.value = Math.abs(t.value.scrollLeft - l) <= 1;
205
- }, Y = () => {
206
- x(), h.value = !1, L.value = !1, s.columns.forEach((e, l) => {
207
- e.frozen && (h.value || (h.value = !0), a.value.querySelectorAll(`th:nth-child(${l + 1}), td:nth-child(${l + 1})`).forEach(
208
- (o) => {
209
- o.classList.add("sticky"), l === 0 ? o.classList.add("left-0") : l === s.columns.length - 1 && e.frozen && (o.classList.add("right-0"), L.value = !0);
210
- }
211
- ));
226
+ i.value.push(u), e.value.push(u);
227
+ }, M = () => {
228
+ e.value = [], o("update:model-value", e.value);
229
+ }, R = (t) => {
230
+ typeof t == "number" && t >= 0 ? e.value.splice(t, 1) : e.value = [], f(() => {
231
+ o("update:model-value", e.value);
212
232
  });
213
- }, J = () => {
214
- const e = t.value?.cloneNode(!0);
215
- if (e) {
216
- const l = document.querySelector('div[data-pc-section="header"]');
217
- l?.append(e);
218
- const o = l?.querySelector('div[data-pc-section="wrapper"]');
219
- o?.querySelector("tbody")?.remove(), o?.addEventListener("scroll", () => {
220
- t.value.scrollLeft = o.scrollLeft, b(), v();
221
- }), t.value?.addEventListener("scroll", () => {
222
- o.scrollLeft = t.value.scrollLeft, b(), t.value?.setAttribute("data-scroll", t.value.scrollLeft.toString()), v();
223
- }), o?.querySelectorAll("th")?.forEach((r, u) => {
224
- r?.addEventListener("click", async () => {
225
- if (d.value && c.value) {
226
- const i = t.value?.querySelector(`th:nth-child(${u + 1})`);
227
- await i?.click();
228
- const f = i?.getAttribute("aria-sort");
229
- r?.setAttribute("aria-sort", f);
230
- }
231
- });
232
- });
233
- }
234
- }, x = () => {
235
- t.value.scrollWidth > t.value.clientWidth ? (c.value = !0, t.value?.classList.add("is-scrolled")) : (c.value = !1, t.value?.classList.remove("is-scrolled")), t.value && t.value.setAttribute("data-scroll", t.value.scrollLeft.toString());
236
- }, R = () => {
237
- const e = t.value.clientWidth + "px", l = document.querySelector('div[data-pc-section="header"]'), o = l.querySelector('div[data-pc-section="wrapper"] thead');
238
- l.style.width = e, t.value.querySelector("thead").style.width = e, o && (o.style.width = e);
239
- }, C = () => {
240
- if (t.value) {
241
- const e = -Math.min(
242
- s.leftScrollAmount,
243
- t.value.scrollLeft
244
- ), l = d.value ? "instant" : "smooth";
245
- t.value.scrollBy({
246
- left: e,
247
- behavior: l
248
- });
249
- }
250
- }, W = () => {
251
- if (t.value) {
252
- const e = t.value.scrollWidth - t.value.clientWidth, l = Math.min(
253
- s.rightScrollAmount,
254
- e - t.value.scrollLeft
255
- ), o = d.value ? "instant" : "smooth";
256
- t.value.scrollBy({
257
- left: l,
258
- behavior: o
259
- });
260
- }
261
- }, $ = () => {
262
- if (c.value || !q.value) {
263
- const e = y.value ? "hidden" : "", l = m.value ? "hidden" : "";
264
- a.value?.insertAdjacentHTML(
265
- "beforeend",
266
- `<button type="button" class="q-table-scroll-button scroll-button scroll-left ${e}"></button>
267
- <button type="button" class="q-table-scroll-button scroll-button scroll-right ${l}"></button>`
268
- );
269
- const o = D(N, {
270
- icon: "chevron-left",
271
- type: "",
272
- size: "md",
273
- class: "p-[0.1875rem]"
274
- }), r = D(N, {
275
- icon: "chevron-right",
276
- type: "",
277
- size: "md",
278
- class: "p-[0.1875rem]"
279
- }), u = a.value?.querySelector(".scroll-button.scroll-left"), i = a.value?.querySelector(".scroll-button.scroll-right");
280
- H(o, u), H(r, i), u?.addEventListener("click", C), i?.addEventListener("click", W), v();
281
- }
282
- }, K = () => {
283
- a.value?.querySelectorAll(".scroll-button")?.forEach((e) => {
284
- e.remove();
233
+ }, V = (t) => {
234
+ l.multiple && e.value && t.length === e.value.length && f(() => {
235
+ e.value = [], o("update:model-value", e.value);
285
236
  });
286
- }, v = () => {
287
- const e = a.value?.querySelector(".scroll-button.scroll-left"), l = a.value?.querySelector(".scroll-button.scroll-right"), o = t.value?.querySelector("td.sticky:first-child"), r = a.value?.getBoundingClientRect(), i = document.querySelector('div[data-pc-section="header"]')?.getBoundingClientRect().height || 0, f = t.value;
288
- if (a.value && r && f) {
289
- const S = o?.getBoundingClientRect().width || 0;
290
- a.value.style.setProperty("--first-sticky-width", `${S}px`);
291
- const M = f.getBoundingClientRect(), g = Math.max(M.top, i), E = Math.min(M.bottom, window.innerHeight), Z = g < window.innerHeight && E > i, _ = E - g, ee = g + _ / 2;
292
- if (e && l)
293
- if (Z && c.value) {
294
- e.classList.remove("hidden"), l.classList.remove("hidden");
295
- const z = Math.max(
296
- g,
297
- Math.min(ee, E - e.offsetHeight)
298
- );
299
- e.style.top = `${z}px`, l.style.top = `${z}px`, e.style.left = `${r.left + S + 8}px`, l.style.right = `${window.innerWidth - r.right + 8}px`;
300
- } else
301
- e.classList.add("hidden"), l.classList.add("hidden");
302
- e && (y.value || !c.value ? e.classList.add("hidden") : e.classList.remove("hidden")), l && (m.value || !c.value ? l.classList.add("hidden") : l.classList.remove("hidden"));
237
+ }, x = async () => {
238
+ if (s.value || (s.value = !0, i.value = l.options), c.value && l.searchable) {
239
+ await f();
240
+ const t = c.value.querySelector(
241
+ ".multiselect__content-wrapper"
242
+ ), u = c.value.querySelector(
243
+ ".multiselect__input"
244
+ );
245
+ u.style.width = t.clientWidth + "px";
303
246
  }
304
- }, X = he((e) => {
305
- A.value = e;
306
- }, s.searchDelay);
307
- return le(() => {
308
- t.value = document.querySelector('div[data-pc-section="wrapper"]'), p(), window.addEventListener("resize", p), window.addEventListener("scroll", B), J(), q.value || $();
309
- }), oe(() => {
310
- window.removeEventListener("resize", p), window.removeEventListener("scroll", B);
247
+ }, P = () => {
248
+ s.value = !1;
249
+ }, F = async () => {
250
+ if (!d.value)
251
+ return;
252
+ const t = d.value;
253
+ e.value = [], l.groupValues ? t.filteredOptions.forEach((u) => {
254
+ e.value.push(u);
255
+ }) : e.value = t.filteredOptions, o("update:model-value", e.value);
256
+ };
257
+ return g(() => l.modelValue, (t) => {
258
+ e.value = t;
259
+ }), g(() => l.options, (t) => {
260
+ s.value && (i.value = t);
311
261
  }), {
312
- // Refs
313
- dataTableRef: k,
314
- horizontalScroll: c,
315
- isFixed: d,
316
- isSticky: h,
317
- isLastCellSticky: L,
318
- isScrolledToEnd: m,
319
- isScrolledToStart: y,
320
- noResultsPath: F,
321
- scrollableElement: t,
322
- scrollLeft: C,
323
- scrollRight: W,
324
- search: A,
325
- selectedRows: O,
326
- tableContainer: a,
327
- tableHeight: Q,
328
- // Computed
329
- isDesktop: q,
330
- isEmpty: I,
331
- skeletonData: V,
332
- filteredData: U,
333
- // Methods
334
- // determineFixed,
335
- addScrollButtons: $,
336
- onPageResizeOrLoad: p,
337
- onSelectRow: j,
338
- onUnselectRow: G,
339
- removeScrollButtons: K,
340
- setSticky: Y,
341
- // Composable
342
- mq: de,
343
- deviceType: T,
344
- debouncedSearch: X
262
+ currentSelect: d,
263
+ currentContainer: c,
264
+ search: p,
265
+ selected: e,
266
+ isOpened: s,
267
+ internalOptions: i,
268
+ // computed
269
+ hasAction: m,
270
+ noResultsText: S,
271
+ noOptionsText: B,
272
+ noTagFound: b,
273
+ selectedCount: y,
274
+ selectedText: _,
275
+ useTags: T,
276
+ enableGroupSelect: A,
277
+ hasValue: v,
278
+ showFloatingLabel: E,
279
+ isLabelFloated: C,
280
+ addTag: L,
281
+ clearAll: M,
282
+ onOpen: x,
283
+ onClose: P,
284
+ onRemove: V,
285
+ onUpdateValue: O,
286
+ removeElement: R,
287
+ searchChange: w,
288
+ selectAll: F
345
289
  };
346
290
  }
347
291
  });
348
292
  export {
349
- ke as default
293
+ U as default
350
294
  };