@quoreadmin/ui 1.4.2 → 1.4.4
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.
- package/dist/index.js +110 -85433
- package/dist/index10.js +55 -0
- package/dist/index101.js +213 -0
- package/dist/index103.js +78 -0
- package/dist/index105.js +136 -0
- package/dist/index107.js +216 -0
- package/dist/index109.js +134 -0
- package/dist/index11.js +183 -0
- package/dist/index111.js +154 -0
- package/dist/index113.js +44 -0
- package/dist/index115.js +78 -0
- package/dist/index117.js +25 -0
- package/dist/index119.js +84 -0
- package/dist/index12.js +74 -0
- package/dist/index121.js +16 -0
- package/dist/index123.js +82 -0
- package/dist/index125.js +134 -0
- package/dist/index127.js +56 -0
- package/dist/index129.js +37 -0
- package/dist/index13.js +32 -0
- package/dist/index131.js +65 -0
- package/dist/index133.js +815 -0
- package/dist/index135.js +277 -0
- package/dist/index137.js +350 -0
- package/dist/index139.js +31 -0
- package/dist/index14.js +190 -0
- package/dist/index141.js +89 -0
- package/dist/index143.js +93 -0
- package/dist/index145.js +116 -0
- package/dist/index147.js +389 -0
- package/dist/index149.js +44 -0
- package/dist/index15.js +138 -0
- package/dist/index151.js +210 -0
- package/dist/index154.js +116 -0
- package/dist/index155.js +497 -0
- package/dist/index156.js +5524 -0
- package/dist/index157.js +93 -0
- package/dist/index158.js +863 -0
- package/dist/index159.js +40 -0
- package/dist/index16.js +318 -0
- package/dist/index160.js +282 -0
- package/dist/index161.js +152 -0
- package/dist/index162.js +1201 -0
- package/dist/index163.js +774 -0
- package/dist/index164.js +1310 -0
- package/dist/index165.js +278 -0
- package/dist/index166.js +108 -0
- package/dist/index167.js +4 -0
- package/dist/index168.js +1378 -0
- package/dist/index17.js +25 -0
- package/dist/index170.js +20 -0
- package/dist/index171.js +20 -0
- package/dist/index172.js +20 -0
- package/dist/index173.js +20 -0
- package/dist/index174.js +27 -0
- package/dist/index175.js +761 -0
- package/dist/index176.js +831 -0
- package/dist/index177.js +1236 -0
- package/dist/index178.js +11279 -0
- package/dist/index179.js +38 -0
- package/dist/index18.js +48 -0
- package/dist/index180.js +117 -0
- package/dist/index181.js +46 -0
- package/dist/index182.js +1192 -0
- package/dist/index184.js +5940 -0
- package/dist/index185.js +209 -0
- package/dist/index186.js +37 -0
- package/dist/index187.js +20 -0
- package/dist/index188.js +80 -0
- package/dist/index189.js +255 -0
- package/dist/index19.js +53 -0
- package/dist/index190.js +13686 -0
- package/dist/index191.js +29 -0
- package/dist/index192.js +65 -0
- package/dist/index193.js +240 -0
- package/dist/index194.js +310 -0
- package/dist/index195.js +290 -0
- package/dist/index196.js +35 -0
- package/dist/index197.js +118 -0
- package/dist/index198.js +38 -0
- package/dist/index199.js +28 -0
- package/dist/index2.js +86 -0
- package/dist/index20.js +35 -0
- package/dist/index200.js +38 -0
- package/dist/index201.js +11 -0
- package/dist/index202.js +21 -0
- package/dist/index203.js +12 -0
- package/dist/index204.js +12 -0
- package/dist/index205.js +53 -0
- package/dist/index206.js +45 -0
- package/dist/index207.js +6 -0
- package/dist/index208.js +41 -0
- package/dist/index209.js +23 -0
- package/dist/index21.js +68 -0
- package/dist/index210.js +163 -0
- package/dist/index211.js +22 -0
- package/dist/index212.js +22 -0
- package/dist/index213.js +24 -0
- package/dist/index214.js +201 -0
- package/dist/index215.js +72 -0
- package/dist/index216.js +90 -0
- package/dist/index217.js +409 -0
- package/dist/index218.js +36 -0
- package/dist/index219.js +42 -0
- package/dist/index22.js +176 -0
- package/dist/index220.js +163 -0
- package/dist/index221.js +230 -0
- package/dist/index222.js +39 -0
- package/dist/index223.js +12 -0
- package/dist/index224.js +24 -0
- package/dist/index225.js +129 -0
- package/dist/index226.js +40 -0
- package/dist/index227.js +82 -0
- package/dist/index228.js +22 -0
- package/dist/index229.js +22 -0
- package/dist/index23.js +14 -0
- package/dist/index230.js +22 -0
- package/dist/index231.js +22 -0
- package/dist/index232.js +24 -0
- package/dist/index233.js +24 -0
- package/dist/index234.js +22 -0
- package/dist/index235.js +838 -0
- package/dist/index236.js +704 -0
- package/dist/index237.js +178 -0
- package/dist/index238.js +24 -0
- package/dist/index239.js +22 -0
- package/dist/index24.js +43 -0
- package/dist/index240.js +22 -0
- package/dist/index241.js +5 -0
- package/dist/index242.js +189 -0
- package/dist/index243.js +135 -0
- package/dist/index244.js +1225 -0
- package/dist/index245.js +22 -0
- package/dist/index246.js +24 -0
- package/dist/index247.js +24 -0
- package/dist/index248.js +31 -0
- package/dist/index249.js +22 -0
- package/dist/index25.js +123 -0
- package/dist/index250.js +22 -0
- package/dist/index251.js +4 -0
- package/dist/index252.js +4 -0
- package/dist/index253.js +3634 -0
- package/dist/index254.js +57 -0
- package/dist/index255.js +79 -0
- package/dist/index256.js +54 -0
- package/dist/index257.js +217 -0
- package/dist/index258.js +12 -0
- package/dist/index259.js +59 -0
- package/dist/index26.js +29 -0
- package/dist/index260.js +63 -0
- package/dist/index261.js +56 -0
- package/dist/index262.js +77 -0
- package/dist/index263.js +725 -0
- package/dist/index264.js +41 -0
- package/dist/index265.js +66 -0
- package/dist/index266.js +13 -0
- package/dist/index267.js +707 -0
- package/dist/index268.js +822 -0
- package/dist/index269.js +56 -0
- package/dist/index27.js +163 -0
- package/dist/index270.js +81 -0
- package/dist/index271.js +28 -0
- package/dist/index272.js +24 -0
- package/dist/index273.js +24 -0
- package/dist/index274.js +18 -0
- package/dist/index275.js +19 -0
- package/dist/index276.js +255 -0
- package/dist/index277.js +10 -0
- package/dist/index278.js +140 -0
- package/dist/index279.js +85 -0
- package/dist/index28.js +286 -0
- package/dist/index280.js +25 -0
- package/dist/index281.js +4 -0
- package/dist/index282.js +5 -0
- package/dist/index283.js +29 -0
- package/dist/index284.js +237 -0
- package/dist/index285.js +8 -0
- package/dist/index286.js +136 -0
- package/dist/index287.js +70 -0
- package/dist/index288.js +89 -0
- package/dist/index289.js +31 -0
- package/dist/index29.js +69 -0
- package/dist/index290.js +11 -0
- package/dist/index291.js +77 -0
- package/dist/index292.js +6 -0
- package/dist/index293.js +4 -0
- package/dist/index294.js +85 -0
- package/dist/index295.js +56 -0
- package/dist/index296.js +8 -0
- package/dist/index297.js +7 -0
- package/dist/index298.js +181 -0
- package/dist/index299.js +65 -0
- package/dist/index3.js +69 -0
- package/dist/index30.js +183 -0
- package/dist/index300.js +77 -0
- package/dist/index301.js +81 -0
- package/dist/index302.js +24 -0
- package/dist/index303.js +937 -0
- package/dist/index304.js +24 -0
- package/dist/index305.js +22 -0
- package/dist/index306.js +22 -0
- package/dist/index307.js +71 -0
- package/dist/index308.js +21 -0
- package/dist/index309.js +21 -0
- package/dist/index31.js +44 -0
- package/dist/index310.js +24 -0
- package/dist/index311.js +24 -0
- package/dist/index312.js +65 -0
- package/dist/index313.js +1520 -0
- package/dist/index314.js +388 -0
- package/dist/index315.js +2733 -0
- package/dist/index316.js +88 -0
- package/dist/index317.js +3772 -0
- package/dist/index318.js +62 -0
- package/dist/index319.js +17 -0
- package/dist/index32.js +55 -0
- package/dist/index320.js +86 -0
- package/dist/index321.js +204 -0
- package/dist/index322.js +248 -0
- package/dist/index323.js +39 -0
- package/dist/index324.js +11 -0
- package/dist/index325.js +15 -0
- package/dist/index326.js +57 -0
- package/dist/index327.js +14 -0
- package/dist/index328.js +16 -0
- package/dist/index329.js +60 -0
- package/dist/index33.js +38 -0
- package/dist/index330.js +54 -0
- package/dist/index331.js +33 -0
- package/dist/index332.js +4 -0
- package/dist/index333.js +7 -0
- package/dist/index334.js +4 -0
- package/dist/index335.js +25 -0
- package/dist/index336.js +43 -0
- package/dist/index337.js +4 -0
- package/dist/index338.js +13 -0
- package/dist/index339.js +22 -0
- package/dist/index34.js +35 -0
- package/dist/index340.js +19 -0
- package/dist/index341.js +12 -0
- package/dist/index342.js +12 -0
- package/dist/index343.js +4 -0
- package/dist/index344.js +11 -0
- package/dist/index345.js +12 -0
- package/dist/index346.js +16 -0
- package/dist/index347.js +23 -0
- package/dist/index348.js +58 -0
- package/dist/index349.js +31 -0
- package/dist/index35.js +19 -0
- package/dist/index350.js +9 -0
- package/dist/index351.js +54 -0
- package/dist/index352.js +8 -0
- package/dist/index353.js +14 -0
- package/dist/index354.js +9 -0
- package/dist/index355.js +30 -0
- package/dist/index356.js +4 -0
- package/dist/index357.js +72 -0
- package/dist/index358.js +169 -0
- package/dist/index359.js +22 -0
- package/dist/index36.js +47 -0
- package/dist/index360.js +22 -0
- package/dist/index361.js +66 -0
- package/dist/index362.js +39 -0
- package/dist/index363.js +33 -0
- package/dist/index364.js +13 -0
- package/dist/index365.js +6 -0
- package/dist/index366.js +6 -0
- package/dist/index367.js +15 -0
- package/dist/index368.js +9 -0
- package/dist/index369.js +14 -0
- package/dist/index37.js +42 -0
- package/dist/index370.js +7 -0
- package/dist/index371.js +35 -0
- package/dist/index372.js +33 -0
- package/dist/index373.js +30 -0
- package/dist/index374.js +63 -0
- package/dist/index375.js +19 -0
- package/dist/index376.js +103 -0
- package/dist/index377.js +93 -0
- package/dist/index378.js +100 -0
- package/dist/index379.js +5 -0
- package/dist/index38.js +32 -0
- package/dist/index380.js +4 -0
- package/dist/index381.js +4 -0
- package/dist/index382.js +19 -0
- package/dist/index383.js +15 -0
- package/dist/index384.js +8 -0
- package/dist/index385.js +34 -0
- package/dist/index39.js +39 -0
- package/dist/index4.js +23 -0
- package/dist/index40.js +44 -0
- package/dist/index41.js +1075 -0
- package/dist/index42.js +339 -0
- package/dist/index43.js +159 -0
- package/dist/index44.js +22 -0
- package/dist/index45.js +42 -0
- package/dist/index46.js +72 -0
- package/dist/index47.js +65 -0
- package/dist/index48.js +184 -0
- package/dist/index49.js +88 -0
- package/dist/index5.js +19 -0
- package/dist/index50.js +209 -0
- package/dist/index51.js +71 -0
- package/dist/index52.js +22 -0
- package/dist/index53.js +13 -0
- package/dist/index54.js +9 -0
- package/dist/index55.js +213 -0
- package/dist/index56.js +15 -0
- package/dist/index57.js +187 -0
- package/dist/index58.js +79 -0
- package/dist/index6.js +21 -0
- package/dist/index60.js +9 -0
- package/dist/index61.js +65 -0
- package/dist/index63.js +44 -0
- package/dist/index65.js +16 -0
- package/dist/index67.js +30 -0
- package/dist/index69.js +141 -0
- package/dist/index7.js +76 -0
- package/dist/index71.js +78 -0
- package/dist/index73.js +62 -0
- package/dist/index74.js +105 -0
- package/dist/index76.js +217 -0
- package/dist/index78.js +108 -0
- package/dist/index8.js +31 -0
- package/dist/index80.js +36 -0
- package/dist/index81.js +140 -0
- package/dist/index83.js +141 -0
- package/dist/index85.js +292 -0
- package/dist/index87.js +29 -0
- package/dist/index89.js +45 -0
- package/dist/index9.js +36 -0
- package/dist/index91.js +117 -0
- package/dist/index93.js +29 -0
- package/dist/index94.js +34 -0
- package/dist/index96.js +138 -0
- package/dist/index97.js +10 -0
- package/dist/index99.js +39 -0
- package/dist/src/composables/filtering.d.ts +5 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/views/lists.vue.d.ts +52 -12
- package/dist/src/views/showcase.vue.d.ts +130 -30
- package/dist/src/views/tables.vue.d.ts +52 -12
- package/package.json +3 -4
- package/tailwind.preset.ts +1 -0
- package/dist/index.umd.cjs +0 -1322
package/dist/index135.js
ADDED
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import { defineComponent as L, ref as n, computed as a, watch as g, nextTick as i } from "vue";
|
|
2
|
+
import { Multiselect as x } from "./index182.js";
|
|
3
|
+
import { useI18n as P } from "vue-i18n";
|
|
4
|
+
/* empty css */
|
|
5
|
+
import H from "./index6.js";
|
|
6
|
+
const q = L({
|
|
7
|
+
name: "QSelect",
|
|
8
|
+
components: {
|
|
9
|
+
QBadge: H,
|
|
10
|
+
VueMultiselect: x
|
|
11
|
+
},
|
|
12
|
+
props: {
|
|
13
|
+
id: {
|
|
14
|
+
type: String,
|
|
15
|
+
default: ""
|
|
16
|
+
},
|
|
17
|
+
// Options in the select
|
|
18
|
+
options: {
|
|
19
|
+
type: [Array, Object],
|
|
20
|
+
required: !0
|
|
21
|
+
},
|
|
22
|
+
// v-model
|
|
23
|
+
modelValue: {
|
|
24
|
+
type: [String, Number, Array, Object],
|
|
25
|
+
default: ""
|
|
26
|
+
},
|
|
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"
|
|
32
|
+
},
|
|
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: {
|
|
54
|
+
type: Boolean,
|
|
55
|
+
default: !0
|
|
56
|
+
},
|
|
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: {
|
|
76
|
+
type: String,
|
|
77
|
+
default: ""
|
|
78
|
+
},
|
|
79
|
+
groupLabel: {
|
|
80
|
+
type: String,
|
|
81
|
+
default: ""
|
|
82
|
+
},
|
|
83
|
+
// Props for vue-multiselect - deselectGroupLabel, selectGroupLabel, selectLabel
|
|
84
|
+
groupSelectable: {
|
|
85
|
+
type: Boolean,
|
|
86
|
+
default: !0
|
|
87
|
+
},
|
|
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: {
|
|
99
|
+
type: String,
|
|
100
|
+
default: ""
|
|
101
|
+
},
|
|
102
|
+
// NEW - Allows to remove all selected values. Otherwise one must be left selected.
|
|
103
|
+
allowEmpty: {
|
|
104
|
+
type: Boolean,
|
|
105
|
+
default: !0
|
|
106
|
+
},
|
|
107
|
+
// Array of keyboard key aliases to block when selecting ex ['Tab', 'Enter', 'Delete']
|
|
108
|
+
blockKeys: {
|
|
109
|
+
type: Array,
|
|
110
|
+
default: () => ["Delete"]
|
|
111
|
+
},
|
|
112
|
+
// We could make this a slot like optionPrefix
|
|
113
|
+
noResultMessage: {
|
|
114
|
+
type: String,
|
|
115
|
+
default: ""
|
|
116
|
+
},
|
|
117
|
+
// Message to show when options array is empty
|
|
118
|
+
noOptionsMessage: {
|
|
119
|
+
type: String,
|
|
120
|
+
default: ""
|
|
121
|
+
},
|
|
122
|
+
// Selection control for mobile
|
|
123
|
+
selectionControl: {
|
|
124
|
+
type: Boolean,
|
|
125
|
+
default: !1
|
|
126
|
+
},
|
|
127
|
+
showExpanded: {
|
|
128
|
+
type: Boolean,
|
|
129
|
+
default: !1
|
|
130
|
+
},
|
|
131
|
+
showPlaceholderImage: {
|
|
132
|
+
type: Boolean,
|
|
133
|
+
default: !0
|
|
134
|
+
},
|
|
135
|
+
// Use this with multiple = true
|
|
136
|
+
showSelectAll: {
|
|
137
|
+
type: Boolean,
|
|
138
|
+
default: !1
|
|
139
|
+
},
|
|
140
|
+
// Helpful text for user to know how to add a new option
|
|
141
|
+
tagPlaceholder: {
|
|
142
|
+
type: String,
|
|
143
|
+
default: ""
|
|
144
|
+
},
|
|
145
|
+
// Expands the field to see all selected options
|
|
146
|
+
expand: {
|
|
147
|
+
type: Boolean,
|
|
148
|
+
default: !1
|
|
149
|
+
},
|
|
150
|
+
// Shows the selected count
|
|
151
|
+
showSelectedCount: {
|
|
152
|
+
type: Boolean,
|
|
153
|
+
default: !1
|
|
154
|
+
},
|
|
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
|
|
159
|
+
},
|
|
160
|
+
// Limit of options shown to the user - refer to receipents and week frequency example
|
|
161
|
+
limitShown: {
|
|
162
|
+
type: Number,
|
|
163
|
+
default: null
|
|
164
|
+
},
|
|
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
|
|
169
|
+
},
|
|
170
|
+
// Show descriptions as part of the options (on right).
|
|
171
|
+
showOptionDescription: {
|
|
172
|
+
type: Boolean,
|
|
173
|
+
default: !1
|
|
174
|
+
},
|
|
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
|
+
// Use this with taggable = false, multiple = false, showTags = false to allow for adding options without tags.
|
|
186
|
+
useAddTagsOnly: {
|
|
187
|
+
type: Boolean,
|
|
188
|
+
default: !1
|
|
189
|
+
},
|
|
190
|
+
clearOnSelect: {
|
|
191
|
+
type: Boolean,
|
|
192
|
+
default: !1
|
|
193
|
+
},
|
|
194
|
+
closeOnSelect: {
|
|
195
|
+
type: Boolean,
|
|
196
|
+
default: !1
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
emits: ["update:model-value"],
|
|
200
|
+
setup(l, { slots: v, emit: o }) {
|
|
201
|
+
const { t: s } = P(), r = n(null), f = n(null), t = n(l.modelValue), p = n(""), c = n(!1), d = n([]), y = a(() => Array.isArray(l.options) ? l.options.length : 0), h = a(() => !!v.action), m = a(() => l.noResultMessage || s("HC_PRESS_ENTER_TO_CREATE_A_TAG")), S = a(() => l.tagPlaceholder || s("HC_PRESS_ENTER_TO_CREATE_A_TAG")), b = a(() => l.noOptionsMessage || s("HC_LIST_IS_EMPTY")), B = a(() => y.value === t.value.length ? s("HC_ALL") : t.value.length > 1 ? s("HC_MULTIPLE_SELECTED") : t.value[0].label || t.value[0].name || ""), _ = a(() => l.taggable || l.showTags), T = a(() => !!(l.groupValues && l.groupLabel && l.groupSelectable)), E = (e) => {
|
|
202
|
+
o("update:model-value", e);
|
|
203
|
+
}, A = (e) => {
|
|
204
|
+
p.value = e;
|
|
205
|
+
}, O = async (e) => {
|
|
206
|
+
const u = {
|
|
207
|
+
label: e,
|
|
208
|
+
name: e,
|
|
209
|
+
added: !0
|
|
210
|
+
// maybe change this to class - I am going to use this for external emails
|
|
211
|
+
};
|
|
212
|
+
if (!l.validationMethod(u)) {
|
|
213
|
+
await i(), r.value.search = e;
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
d.value.push(u), t.value.push(u);
|
|
217
|
+
}, C = () => {
|
|
218
|
+
t.value = [], o("update:model-value", t.value);
|
|
219
|
+
}, w = (e) => {
|
|
220
|
+
typeof e == "number" && e >= 0 ? t.value.splice(e, 1) : t.value = [], i(() => {
|
|
221
|
+
o("update:model-value", t.value);
|
|
222
|
+
});
|
|
223
|
+
}, M = (e) => {
|
|
224
|
+
l.multiple && t.value && e.length === t.value.length && i(() => {
|
|
225
|
+
t.value = [], o("update:model-value", t.value);
|
|
226
|
+
});
|
|
227
|
+
}, R = async () => {
|
|
228
|
+
if (c.value || (c.value = !0, d.value = l.options), f.value && l.searchable) {
|
|
229
|
+
await i();
|
|
230
|
+
const e = f.value.querySelector(
|
|
231
|
+
".multiselect__content-wrapper"
|
|
232
|
+
), u = f.value.querySelector(
|
|
233
|
+
".multiselect__input"
|
|
234
|
+
);
|
|
235
|
+
u.style.width = e.clientWidth + "px";
|
|
236
|
+
}
|
|
237
|
+
}, V = async () => {
|
|
238
|
+
if (!r.value)
|
|
239
|
+
return;
|
|
240
|
+
const e = r.value;
|
|
241
|
+
t.value = [], l.groupValues ? e.filteredOptions.forEach((u) => {
|
|
242
|
+
t.value.push(u);
|
|
243
|
+
}) : t.value = e.filteredOptions, o("update:model-value", t.value);
|
|
244
|
+
};
|
|
245
|
+
return g(() => l.modelValue, (e) => {
|
|
246
|
+
t.value = e;
|
|
247
|
+
}), g(() => l.options, (e) => {
|
|
248
|
+
c.value && (d.value = e);
|
|
249
|
+
}), {
|
|
250
|
+
currentSelect: r,
|
|
251
|
+
search: p,
|
|
252
|
+
selected: t,
|
|
253
|
+
isOpened: c,
|
|
254
|
+
internalOptions: d,
|
|
255
|
+
// computed
|
|
256
|
+
hasAction: h,
|
|
257
|
+
noResultsText: m,
|
|
258
|
+
noOptionsText: b,
|
|
259
|
+
noTagFound: S,
|
|
260
|
+
selectedCount: y,
|
|
261
|
+
selectedText: B,
|
|
262
|
+
useTags: _,
|
|
263
|
+
enableGroupSelect: T,
|
|
264
|
+
addTag: O,
|
|
265
|
+
clearAll: C,
|
|
266
|
+
onOpen: R,
|
|
267
|
+
onRemove: M,
|
|
268
|
+
onUpdateValue: E,
|
|
269
|
+
removeElement: w,
|
|
270
|
+
searchChange: A,
|
|
271
|
+
selectAll: V
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
});
|
|
275
|
+
export {
|
|
276
|
+
q as default
|
|
277
|
+
};
|
package/dist/index137.js
ADDED
|
@@ -0,0 +1,350 @@
|
|
|
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 "./index184.js";
|
|
3
|
+
import re from "./index185.js";
|
|
4
|
+
import ae from "./index186.js";
|
|
5
|
+
import ne from "./index187.js";
|
|
6
|
+
import ce from "./index6.js";
|
|
7
|
+
import ie from "./index47.js";
|
|
8
|
+
import N from "./index26.js";
|
|
9
|
+
import ue from "./index167.js";
|
|
10
|
+
import de from "./index52.js";
|
|
11
|
+
import fe from "./index53.js";
|
|
12
|
+
import { filterData as ve } from "./index51.js";
|
|
13
|
+
import { useDebounceFn as he } from "./index166.js";
|
|
14
|
+
const ke = te({
|
|
15
|
+
name: "QTable",
|
|
16
|
+
components: {
|
|
17
|
+
Column: re,
|
|
18
|
+
ColumnGroup: ae,
|
|
19
|
+
DataTable: se,
|
|
20
|
+
Row: ne,
|
|
21
|
+
QBadge: ce,
|
|
22
|
+
QTooltip: ie
|
|
23
|
+
},
|
|
24
|
+
props: {
|
|
25
|
+
// Pass in an ID unique to the table.
|
|
26
|
+
id: {
|
|
27
|
+
type: String,
|
|
28
|
+
default: ""
|
|
29
|
+
},
|
|
30
|
+
// Pass in data for the table using v-model - this replaces tableData.
|
|
31
|
+
modelValue: {
|
|
32
|
+
type: Array,
|
|
33
|
+
default: () => []
|
|
34
|
+
},
|
|
35
|
+
// Pass in the columns for the table.
|
|
36
|
+
columns: {
|
|
37
|
+
type: Array,
|
|
38
|
+
default: () => []
|
|
39
|
+
},
|
|
40
|
+
// Pass in whether to show the search field.
|
|
41
|
+
hasSearch: {
|
|
42
|
+
type: Boolean,
|
|
43
|
+
default: !0
|
|
44
|
+
},
|
|
45
|
+
// Pass in a default sort.
|
|
46
|
+
// TODO: This is not set up with PrimeVue DataTable yet. No default sort.
|
|
47
|
+
sortBy: {
|
|
48
|
+
type: String,
|
|
49
|
+
default: ""
|
|
50
|
+
},
|
|
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
|
|
56
|
+
},
|
|
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
|
|
62
|
+
},
|
|
63
|
+
// Pass in a search field placeholder. Fallback is localized "Search" in template.
|
|
64
|
+
searchPlaceholder: {
|
|
65
|
+
type: String,
|
|
66
|
+
default: ""
|
|
67
|
+
},
|
|
68
|
+
// Pass in the filters for the table.
|
|
69
|
+
filters: {
|
|
70
|
+
type: Object,
|
|
71
|
+
default: () => ({})
|
|
72
|
+
},
|
|
73
|
+
// Pass in a function for when filters icon is clicked.
|
|
74
|
+
filtersAction: {
|
|
75
|
+
type: Function,
|
|
76
|
+
default: () => {
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
// Pass in a count of active filters.
|
|
80
|
+
filtersCount: {
|
|
81
|
+
type: Number,
|
|
82
|
+
default: 0
|
|
83
|
+
},
|
|
84
|
+
// Pass in an array of attribute names to globally search.
|
|
85
|
+
globalFilters: {
|
|
86
|
+
type: Array,
|
|
87
|
+
default: () => []
|
|
88
|
+
},
|
|
89
|
+
// Pass in a loading state.
|
|
90
|
+
loading: {
|
|
91
|
+
type: Boolean,
|
|
92
|
+
default: !1
|
|
93
|
+
},
|
|
94
|
+
// Pass in if table is multi-sort. We won't use this initially.
|
|
95
|
+
isMultiSort: {
|
|
96
|
+
type: Boolean,
|
|
97
|
+
default: !1
|
|
98
|
+
},
|
|
99
|
+
// Pass in if table is multi-select.
|
|
100
|
+
isMultiSelect: {
|
|
101
|
+
type: Boolean,
|
|
102
|
+
default: !1
|
|
103
|
+
},
|
|
104
|
+
// Pass in a function to handle when a row is selected.
|
|
105
|
+
rowSelect: {
|
|
106
|
+
type: Function,
|
|
107
|
+
default: () => {
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
// Pass in a function to handle when a row is unselected.
|
|
111
|
+
rowUnselect: {
|
|
112
|
+
type: Function,
|
|
113
|
+
default: () => {
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
// Pass in the height of combined fixed elements while vertical scrolling.
|
|
117
|
+
fixedTopOffset: {
|
|
118
|
+
type: Number,
|
|
119
|
+
default: 0
|
|
120
|
+
},
|
|
121
|
+
// Pass in the number of skeleton rows that should show while loading.
|
|
122
|
+
skeletonRows: {
|
|
123
|
+
type: Number,
|
|
124
|
+
default: 6
|
|
125
|
+
},
|
|
126
|
+
// Pass in the scroll amount for the left scroll button.
|
|
127
|
+
leftScrollAmount: {
|
|
128
|
+
type: Number,
|
|
129
|
+
default: 200
|
|
130
|
+
},
|
|
131
|
+
// Pass in the scroll amount for the right scroll button.
|
|
132
|
+
rightScrollAmount: {
|
|
133
|
+
type: Number,
|
|
134
|
+
default: 200
|
|
135
|
+
},
|
|
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: {
|
|
139
|
+
type: Boolean,
|
|
140
|
+
default: !1
|
|
141
|
+
},
|
|
142
|
+
// Pass in the debounce time for the search field.
|
|
143
|
+
searchDelay: {
|
|
144
|
+
type: Number,
|
|
145
|
+
default: 300
|
|
146
|
+
}
|
|
147
|
+
},
|
|
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);
|
|
200
|
+
}
|
|
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
|
+
));
|
|
212
|
+
});
|
|
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();
|
|
285
|
+
});
|
|
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"));
|
|
303
|
+
}
|
|
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);
|
|
311
|
+
}), {
|
|
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
|
|
345
|
+
};
|
|
346
|
+
}
|
|
347
|
+
});
|
|
348
|
+
export {
|
|
349
|
+
ke as default
|
|
350
|
+
};
|
package/dist/index139.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { defineComponent as e } from "vue";
|
|
2
|
+
const r = e({
|
|
3
|
+
name: "QTag",
|
|
4
|
+
components: {},
|
|
5
|
+
props: {
|
|
6
|
+
tagClass: {
|
|
7
|
+
type: String,
|
|
8
|
+
default: ""
|
|
9
|
+
},
|
|
10
|
+
bgColor: {
|
|
11
|
+
type: String,
|
|
12
|
+
default: "bg-green-0"
|
|
13
|
+
},
|
|
14
|
+
textColor: {
|
|
15
|
+
type: String,
|
|
16
|
+
default: "text-green-20"
|
|
17
|
+
},
|
|
18
|
+
shape: {
|
|
19
|
+
type: String,
|
|
20
|
+
default: "square"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
setup(n, { slots: t }) {
|
|
24
|
+
return {
|
|
25
|
+
hasIcon: !!t.icon
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
export {
|
|
30
|
+
r as default
|
|
31
|
+
};
|