quasar-ui-sellmate-ui-kit 3.0.3 → 3.0.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.
Files changed (67) hide show
  1. package/.prettierrc +25 -25
  2. package/README.md +156 -156
  3. package/dist/index.common.js +2 -2
  4. package/dist/index.css +1 -1
  5. package/dist/index.esm.js +2 -2
  6. package/dist/index.min.css +1 -1
  7. package/dist/index.rtl.css +1 -1
  8. package/dist/index.rtl.min.css +1 -1
  9. package/dist/index.umd.js +3826 -3826
  10. package/dist/index.umd.min.js +2 -2
  11. package/package.json +83 -83
  12. package/src/assets/icons.js +28 -28
  13. package/src/components/SBreadcrumbs.vue +55 -55
  14. package/src/components/SButton.vue +206 -206
  15. package/src/components/SButtonGroup.vue +41 -41
  16. package/src/components/SButtonToggle.vue +200 -200
  17. package/src/components/SCaution.vue +102 -102
  18. package/src/components/SCheckbox.vue +123 -123
  19. package/src/components/SChip.vue +99 -99
  20. package/src/components/SDate.vue +717 -717
  21. package/src/components/SDateAutoRangePicker.vue +341 -341
  22. package/src/components/SDatePicker.vue +472 -472
  23. package/src/components/SDateRange.vue +470 -470
  24. package/src/components/SDateRangePicker.vue +660 -660
  25. package/src/components/SDateTimePicker.vue +349 -349
  26. package/src/components/SDialog.vue +250 -250
  27. package/src/components/SDropdown.vue +216 -216
  28. package/src/components/SEditor.vue +490 -490
  29. package/src/components/SFilePicker.vue +207 -207
  30. package/src/components/SHelp.vue +146 -146
  31. package/src/components/SInput.vue +343 -343
  32. package/src/components/SInputCounter.vue +46 -46
  33. package/src/components/SInputNumber.vue +179 -179
  34. package/src/components/SList.vue +29 -29
  35. package/src/components/SMarkupTable.vue +141 -141
  36. package/src/components/SPagination.vue +266 -266
  37. package/src/components/SRadio.vue +78 -78
  38. package/src/components/SRouteTab.vue +67 -67
  39. package/src/components/SSelect.vue +294 -294
  40. package/src/components/SSelectCheckbox.vue +222 -222
  41. package/src/components/SSelectCustom.vue +189 -189
  42. package/src/components/SSelectGroupCheckbox.vue +235 -235
  43. package/src/components/SSelectSearch.vue +261 -261
  44. package/src/components/SSelectSearchAutoComplete.vue +172 -172
  45. package/src/components/SSelectSearchCheckbox.vue +356 -356
  46. package/src/components/SStringToInput.vue +66 -66
  47. package/src/components/STab.vue +77 -77
  48. package/src/components/STable.vue +425 -425
  49. package/src/components/STableTree.vue +210 -210
  50. package/src/components/STabs.vue +32 -32
  51. package/src/components/STimePicker.vue +159 -159
  52. package/src/components/SToggle.vue +68 -68
  53. package/src/components/STooltip.vue +209 -209
  54. package/src/components/SelelctItem.vue +21 -21
  55. package/src/components/TimePickerCard.vue +352 -352
  56. package/src/composables/date.js +11 -11
  57. package/src/composables/modelBinder.js +13 -13
  58. package/src/composables/table/use-navigator.js +110 -110
  59. package/src/composables/table/use-resizable.js +80 -80
  60. package/src/css/app.scss +90 -90
  61. package/src/css/default.scss +875 -875
  62. package/src/css/extends.scss +154 -154
  63. package/src/css/quasar.variables.scss +189 -189
  64. package/src/directives/Directive.js +7 -7
  65. package/src/index.scss +3 -3
  66. package/src/vue-plugin.js +91 -91
  67. package/tsconfig.json +35 -35
@@ -1,266 +1,266 @@
1
- <template>
2
- <div class="s-pagination row">
3
- <div class="icons-container" v-if="paginationInfo.startPage !== 1">
4
- <q-btn
5
- flat
6
- dense
7
- round
8
- :ripple="false"
9
- unelevated
10
- type="button"
11
- align="center"
12
- class="bg-transparent first-btn"
13
- text-color="Grey_Darken-2"
14
- :icon="paginationFirstIcon"
15
- @click="updateModelValue('goFirst')"
16
- />
17
- <q-btn
18
- flat
19
- dense
20
- round
21
- :ripple="false"
22
- unelevated
23
- type="button"
24
- align="center"
25
- class="left-btn"
26
- text-color="Grey_Darken-2"
27
- :icon="paginationLeftIcon"
28
- @click="updateModelValue('goLeft')"
29
- />
30
- </div>
31
- <div class="pagination-container">
32
- <q-btn
33
- v-for="(p, i) in 10"
34
- :key="i"
35
- v-show="paginationInfo.startPage + i <= paginationInfo.lastPage"
36
- flat
37
- dense
38
- rounded
39
- no-wrap
40
- unelevated
41
- :ripple="false"
42
- :label="paginationInfo.startPage + i"
43
- text-color="Grey_Darken-2"
44
- type="button"
45
- align="center"
46
- @click="updateModelValue(paginationInfo.startPage + i)"
47
- class="pagination-btn"
48
- :class="{
49
- 'pagination-active-btn': paginationInfo.startPage + i === paginationInfo.currentPage,
50
- }"
51
- />
52
- </div>
53
- <div class="icons-container" v-if="paginationInfo.lastPage - paginationInfo.startPage >= 10">
54
- <q-btn
55
- flat
56
- dense
57
- round
58
- :ripple="false"
59
- unelevated
60
- type="button"
61
- align="center"
62
- class="right-btn"
63
- text-color="Grey_Darken-2"
64
- :icon="paginationRightIcon"
65
- @click="updateModelValue('goRight')"
66
- />
67
- <q-btn
68
- flat
69
- dense
70
- round
71
- :ripple="false"
72
- unelevated
73
- type="button"
74
- align="center"
75
- class="last-btn"
76
- text-color="Grey_Darken-2"
77
- :icon="paginationLastIcon"
78
- @click="updateModelValue('goLast')"
79
- />
80
- </div>
81
- </div>
82
- </template>
83
-
84
- <script>
85
- import { QBtn } from 'quasar';
86
- import { defineComponent, ref, watch } from 'vue';
87
- // eslint-disable-next-line
88
- import {
89
- paginationFirstIcon,
90
- paginationLastIcon,
91
- paginationLeftIcon,
92
- paginationRightIcon,
93
- } from '../assets/icons.js';
94
-
95
- export default defineComponent({
96
- name: 'SPagination',
97
- components: {
98
- QBtn,
99
- },
100
- props: {
101
- modelValue: {
102
- type: Number,
103
- default: 1,
104
- },
105
- lastPage: {
106
- type: Number,
107
- default: 1,
108
- required: true,
109
- },
110
- },
111
- setup(props, { emit }) {
112
- const paginationInfo = ref({
113
- lastPage: props.lastPage,
114
- currentPage: props.modelValue,
115
- startPage: Math.floor((props.modelValue - 1) / 10) * 10 + 1,
116
- });
117
-
118
- function updateModelValue(val) {
119
- if (val === 'goFirst') {
120
- paginationInfo.value.startPage = 1;
121
- paginationInfo.value.currentPage = 1;
122
- } else if (val === 'goLeft' && paginationInfo.value.startPage - 10 > 0) {
123
- paginationInfo.value.startPage -= 10;
124
- paginationInfo.value.currentPage = paginationInfo.value.startPage + 9;
125
- } else if (
126
- val === 'goRight'
127
- && paginationInfo.value.startPage + 10 <= paginationInfo.value.lastPage
128
- ) {
129
- paginationInfo.value.startPage += 10;
130
- paginationInfo.value.currentPage = paginationInfo.value.startPage;
131
- } else if (val === 'goLast') {
132
- if (paginationInfo.value.lastPage % 10 !== 0) {
133
- paginationInfo.value.startPage = Math.floor(
134
- paginationInfo.value.lastPage / 10,
135
- ) * 10 + 1;
136
- } else {
137
- paginationInfo.value.startPage = (
138
- Math.floor(paginationInfo.value.lastPage / 10) - 1
139
- ) * 10 + 1;
140
- }
141
- paginationInfo.value.currentPage = paginationInfo.value.lastPage;
142
- } else {
143
- paginationInfo.value.currentPage = val;
144
- }
145
- emit('update:modelValue', paginationInfo.value.currentPage);
146
- }
147
-
148
- watch(
149
- () => props.modelValue,
150
- newVal => {
151
- paginationInfo.value.currentPage = newVal;
152
- paginationInfo.value.startPage = Math.floor((newVal - 1) / 10) * 10 + 1;
153
- },
154
- );
155
-
156
- watch(
157
- () => props.lastPage,
158
- newVal => {
159
- paginationInfo.value.lastPage = newVal;
160
- },
161
- );
162
-
163
- return {
164
- paginationRightIcon,
165
- paginationLeftIcon,
166
- paginationLastIcon,
167
- paginationFirstIcon,
168
-
169
- paginationInfo,
170
-
171
- updateModelValue,
172
- };
173
- },
174
- });
175
- </script>
176
-
177
- <style lang="scss">
178
- @import '../css/quasar.variables.scss';
179
-
180
- .s-pagination {
181
- display: flex;
182
- justify-content: center;
183
- align-items: center;
184
- .q-btn {
185
- min-height: $pagination-size;
186
- height: $pagination-size;
187
- margin: $pagination-margin;
188
- justify-content: center;
189
- &:hover {
190
- &:before {
191
- border: 1px solid $Blue_B_Lighten-1;
192
- }
193
- .q-focus-helper {
194
- opacity: 0 !important;
195
- &:before,
196
- &:after {
197
- opacity: 0 !important;
198
- }
199
- }
200
- .q-btn__content {
201
- .q-icon {
202
- color: $Blue_B_Lighten-1;
203
- }
204
- > span {
205
- color: $Blue_B_Lighten-1;
206
- }
207
- }
208
- }
209
- }
210
- > .icons-container {
211
- .q-btn {
212
- padding: 0 !important;
213
- min-width: $pagination-size;
214
- width: $pagination-size;
215
- &__content {
216
- .q-icon {
217
- font-size: $default-font;
218
- width: $icon-size-sm;
219
- height: $icon-size-sm;
220
- }
221
- }
222
- }
223
- }
224
- .pagination-container {
225
- .q-btn {
226
- min-width: $pagination-size;
227
- width: fit-content;
228
- padding: 0;
229
- &__content {
230
- padding: 2px 10px;
231
- > span {
232
- height: $default-content-height;
233
- line-height: $default-content-height;
234
- font-size: $default-font;
235
- font-weight: $default-font-weight;
236
- }
237
- }
238
- }
239
- .pagination-active-btn {
240
- &:before {
241
- background: $Blue_B_Lighten-1 !important;
242
- }
243
- .q-btn__content {
244
- > span {
245
- color: white !important;
246
- }
247
- }
248
- }
249
- }
250
- .q-btn.disabled {
251
- &:hover {
252
- &:before {
253
- border: none;
254
- }
255
- .q-btn__content {
256
- .q-icon {
257
- color: $Grey_Default;
258
- }
259
- > span {
260
- color: $Grey_Default;
261
- }
262
- }
263
- }
264
- }
265
- }
266
- </style>
1
+ <template>
2
+ <div class="s-pagination row">
3
+ <div class="icons-container" v-if="paginationInfo.startPage !== 1">
4
+ <q-btn
5
+ flat
6
+ dense
7
+ round
8
+ :ripple="false"
9
+ unelevated
10
+ type="button"
11
+ align="center"
12
+ class="bg-transparent first-btn"
13
+ text-color="Grey_Darken-2"
14
+ :icon="paginationFirstIcon"
15
+ @click="updateModelValue('goFirst')"
16
+ />
17
+ <q-btn
18
+ flat
19
+ dense
20
+ round
21
+ :ripple="false"
22
+ unelevated
23
+ type="button"
24
+ align="center"
25
+ class="left-btn"
26
+ text-color="Grey_Darken-2"
27
+ :icon="paginationLeftIcon"
28
+ @click="updateModelValue('goLeft')"
29
+ />
30
+ </div>
31
+ <div class="pagination-container">
32
+ <q-btn
33
+ v-for="(p, i) in 10"
34
+ :key="i"
35
+ v-show="paginationInfo.startPage + i <= paginationInfo.lastPage"
36
+ flat
37
+ dense
38
+ rounded
39
+ no-wrap
40
+ unelevated
41
+ :ripple="false"
42
+ :label="paginationInfo.startPage + i"
43
+ text-color="Grey_Darken-2"
44
+ type="button"
45
+ align="center"
46
+ @click="updateModelValue(paginationInfo.startPage + i)"
47
+ class="pagination-btn"
48
+ :class="{
49
+ 'pagination-active-btn': paginationInfo.startPage + i === paginationInfo.currentPage,
50
+ }"
51
+ />
52
+ </div>
53
+ <div class="icons-container" v-if="paginationInfo.lastPage - paginationInfo.startPage >= 10">
54
+ <q-btn
55
+ flat
56
+ dense
57
+ round
58
+ :ripple="false"
59
+ unelevated
60
+ type="button"
61
+ align="center"
62
+ class="right-btn"
63
+ text-color="Grey_Darken-2"
64
+ :icon="paginationRightIcon"
65
+ @click="updateModelValue('goRight')"
66
+ />
67
+ <q-btn
68
+ flat
69
+ dense
70
+ round
71
+ :ripple="false"
72
+ unelevated
73
+ type="button"
74
+ align="center"
75
+ class="last-btn"
76
+ text-color="Grey_Darken-2"
77
+ :icon="paginationLastIcon"
78
+ @click="updateModelValue('goLast')"
79
+ />
80
+ </div>
81
+ </div>
82
+ </template>
83
+
84
+ <script>
85
+ import { QBtn } from 'quasar';
86
+ import { defineComponent, ref, watch } from 'vue';
87
+ // eslint-disable-next-line
88
+ import {
89
+ paginationFirstIcon,
90
+ paginationLastIcon,
91
+ paginationLeftIcon,
92
+ paginationRightIcon,
93
+ } from '../assets/icons.js';
94
+
95
+ export default defineComponent({
96
+ name: 'SPagination',
97
+ components: {
98
+ QBtn,
99
+ },
100
+ props: {
101
+ modelValue: {
102
+ type: Number,
103
+ default: 1,
104
+ },
105
+ lastPage: {
106
+ type: Number,
107
+ default: 1,
108
+ required: true,
109
+ },
110
+ },
111
+ setup(props, { emit }) {
112
+ const paginationInfo = ref({
113
+ lastPage: props.lastPage,
114
+ currentPage: props.modelValue,
115
+ startPage: Math.floor((props.modelValue - 1) / 10) * 10 + 1,
116
+ });
117
+
118
+ function updateModelValue(val) {
119
+ if (val === 'goFirst') {
120
+ paginationInfo.value.startPage = 1;
121
+ paginationInfo.value.currentPage = 1;
122
+ } else if (val === 'goLeft' && paginationInfo.value.startPage - 10 > 0) {
123
+ paginationInfo.value.startPage -= 10;
124
+ paginationInfo.value.currentPage = paginationInfo.value.startPage + 9;
125
+ } else if (
126
+ val === 'goRight'
127
+ && paginationInfo.value.startPage + 10 <= paginationInfo.value.lastPage
128
+ ) {
129
+ paginationInfo.value.startPage += 10;
130
+ paginationInfo.value.currentPage = paginationInfo.value.startPage;
131
+ } else if (val === 'goLast') {
132
+ if (paginationInfo.value.lastPage % 10 !== 0) {
133
+ paginationInfo.value.startPage = Math.floor(
134
+ paginationInfo.value.lastPage / 10,
135
+ ) * 10 + 1;
136
+ } else {
137
+ paginationInfo.value.startPage = (
138
+ Math.floor(paginationInfo.value.lastPage / 10) - 1
139
+ ) * 10 + 1;
140
+ }
141
+ paginationInfo.value.currentPage = paginationInfo.value.lastPage;
142
+ } else {
143
+ paginationInfo.value.currentPage = val;
144
+ }
145
+ emit('update:modelValue', paginationInfo.value.currentPage);
146
+ }
147
+
148
+ watch(
149
+ () => props.modelValue,
150
+ newVal => {
151
+ paginationInfo.value.currentPage = newVal;
152
+ paginationInfo.value.startPage = Math.floor((newVal - 1) / 10) * 10 + 1;
153
+ },
154
+ );
155
+
156
+ watch(
157
+ () => props.lastPage,
158
+ newVal => {
159
+ paginationInfo.value.lastPage = newVal;
160
+ },
161
+ );
162
+
163
+ return {
164
+ paginationRightIcon,
165
+ paginationLeftIcon,
166
+ paginationLastIcon,
167
+ paginationFirstIcon,
168
+
169
+ paginationInfo,
170
+
171
+ updateModelValue,
172
+ };
173
+ },
174
+ });
175
+ </script>
176
+
177
+ <style lang="scss">
178
+ @import '../css/quasar.variables.scss';
179
+
180
+ .s-pagination {
181
+ display: flex;
182
+ justify-content: center;
183
+ align-items: center;
184
+ .q-btn {
185
+ min-height: $pagination-size;
186
+ height: $pagination-size;
187
+ margin: $pagination-margin;
188
+ justify-content: center;
189
+ &:hover {
190
+ &:before {
191
+ border: 1px solid $Blue_B_Lighten-1;
192
+ }
193
+ .q-focus-helper {
194
+ opacity: 0 !important;
195
+ &:before,
196
+ &:after {
197
+ opacity: 0 !important;
198
+ }
199
+ }
200
+ .q-btn__content {
201
+ .q-icon {
202
+ color: $Blue_B_Lighten-1;
203
+ }
204
+ > span {
205
+ color: $Blue_B_Lighten-1;
206
+ }
207
+ }
208
+ }
209
+ }
210
+ > .icons-container {
211
+ .q-btn {
212
+ padding: 0 !important;
213
+ min-width: $pagination-size;
214
+ width: $pagination-size;
215
+ &__content {
216
+ .q-icon {
217
+ font-size: $default-font;
218
+ width: $icon-size-sm;
219
+ height: $icon-size-sm;
220
+ }
221
+ }
222
+ }
223
+ }
224
+ .pagination-container {
225
+ .q-btn {
226
+ min-width: $pagination-size;
227
+ width: fit-content;
228
+ padding: 0;
229
+ &__content {
230
+ padding: 2px 10px;
231
+ > span {
232
+ height: $default-content-height;
233
+ line-height: $default-content-height;
234
+ font-size: $default-font;
235
+ font-weight: $default-font-weight;
236
+ }
237
+ }
238
+ }
239
+ .pagination-active-btn {
240
+ &:before {
241
+ background: $Blue_B_Lighten-1 !important;
242
+ }
243
+ .q-btn__content {
244
+ > span {
245
+ color: white !important;
246
+ }
247
+ }
248
+ }
249
+ }
250
+ .q-btn.disabled {
251
+ &:hover {
252
+ &:before {
253
+ border: none;
254
+ }
255
+ .q-btn__content {
256
+ .q-icon {
257
+ color: $Grey_Default;
258
+ }
259
+ > span {
260
+ color: $Grey_Default;
261
+ }
262
+ }
263
+ }
264
+ }
265
+ }
266
+ </style>
@@ -1,78 +1,78 @@
1
- <template>
2
- <q-radio
3
- dense
4
- color="positive"
5
- class="s-radio"
6
- :class="length >= 3 ? 'radio-margin-sm' : 'radio-margin-lg'"
7
- size="12px"
8
- />
9
- </template>
10
-
11
- <script>
12
- import { QRadio } from 'quasar';
13
- import { defineComponent } from 'vue';
14
-
15
- export default defineComponent({
16
- name: 'SRadio',
17
- components: {
18
- QRadio,
19
- },
20
- props: {
21
- length: Number,
22
- },
23
- });
24
- </script>
25
-
26
- <style lang="scss">
27
- @import '../css/quasar.variables.scss';
28
-
29
- .s-radio {
30
- & > .q-radio__inner {
31
- min-width: $default-icon-size;
32
- width: $default-icon-size;
33
- height: $default-icon-size;
34
- color: $Grey_Default;
35
- &:before {
36
- opacity: 0 !important;
37
- }
38
- &:hover {
39
- color: $positive;
40
- }
41
- }
42
- .q-radio__label {
43
- padding-left: $default-icon-margin;
44
- color: $Grey_Darken-4;
45
- line-height: $default-content-height;
46
- }
47
- &[aria-checked="true"] {
48
- .q-radio__inner {
49
- .q-radio__bg {
50
- .q-radio__check {
51
- transform: scale3d(1.2, 1.2, 1);
52
- }
53
- }
54
- }
55
- }
56
- }
57
- .disabled.s-radio {
58
- opacity: 1 !important;
59
- border: none;
60
- background: none !important;
61
- .q-radio__inner {
62
- color: $Grey_Lighten-2 !important;
63
- background: $Grey_Lighten-4;
64
- }
65
- }
66
- .radio-margin-sm {
67
- margin-right: 20px;
68
- &:last-of-type {
69
- margin-right: 0;
70
- }
71
- }
72
- .radio-margin-lg {
73
- margin-right: 40px;
74
- &:last-of-type {
75
- margin-right: 0;
76
- }
77
- }
78
- </style>
1
+ <template>
2
+ <q-radio
3
+ dense
4
+ color="positive"
5
+ class="s-radio"
6
+ :class="length >= 3 ? 'radio-margin-sm' : 'radio-margin-lg'"
7
+ size="12px"
8
+ />
9
+ </template>
10
+
11
+ <script>
12
+ import { QRadio } from 'quasar';
13
+ import { defineComponent } from 'vue';
14
+
15
+ export default defineComponent({
16
+ name: 'SRadio',
17
+ components: {
18
+ QRadio,
19
+ },
20
+ props: {
21
+ length: Number,
22
+ },
23
+ });
24
+ </script>
25
+
26
+ <style lang="scss">
27
+ @import '../css/quasar.variables.scss';
28
+
29
+ .s-radio {
30
+ & > .q-radio__inner {
31
+ min-width: $default-icon-size;
32
+ width: $default-icon-size;
33
+ height: $default-icon-size;
34
+ color: $Grey_Default;
35
+ &:before {
36
+ opacity: 0 !important;
37
+ }
38
+ &:hover {
39
+ color: $positive;
40
+ }
41
+ }
42
+ .q-radio__label {
43
+ padding-left: $default-icon-margin;
44
+ color: $Grey_Darken-4;
45
+ line-height: $default-content-height;
46
+ }
47
+ &[aria-checked="true"] {
48
+ .q-radio__inner {
49
+ .q-radio__bg {
50
+ .q-radio__check {
51
+ transform: scale3d(1.2, 1.2, 1);
52
+ }
53
+ }
54
+ }
55
+ }
56
+ }
57
+ .disabled.s-radio {
58
+ opacity: 1 !important;
59
+ border: none;
60
+ background: none !important;
61
+ .q-radio__inner {
62
+ color: $Grey_Lighten-2 !important;
63
+ background: $Grey_Lighten-4;
64
+ }
65
+ }
66
+ .radio-margin-sm {
67
+ margin-right: 20px;
68
+ &:last-of-type {
69
+ margin-right: 0;
70
+ }
71
+ }
72
+ .radio-margin-lg {
73
+ margin-right: 40px;
74
+ &:last-of-type {
75
+ margin-right: 0;
76
+ }
77
+ }
78
+ </style>