quasar-ui-sellmate-ui-kit 2.3.2 → 3.0.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 (68) hide show
  1. package/.eslintrc.cjs +73 -0
  2. package/.prettierrc +25 -0
  3. package/README.md +156 -142
  4. package/dist/index.common.js +2 -2
  5. package/dist/index.css +3 -8
  6. package/dist/index.esm.js +2 -2
  7. package/dist/index.min.css +2 -2
  8. package/dist/index.rtl.css +3 -8
  9. package/dist/index.rtl.min.css +2 -2
  10. package/dist/index.umd.js +3820 -3822
  11. package/dist/index.umd.min.js +2 -2
  12. package/package.json +83 -75
  13. package/src/assets/icons.js +28 -28
  14. package/src/components/SBreadcrumbs.vue +55 -55
  15. package/src/components/SButton.vue +206 -206
  16. package/src/components/SButtonGroup.vue +41 -41
  17. package/src/components/SButtonToggle.vue +200 -200
  18. package/src/components/SCaution.vue +102 -102
  19. package/src/components/SCheckbox.vue +123 -123
  20. package/src/components/SChip.vue +99 -99
  21. package/src/components/SDate.vue +717 -717
  22. package/src/components/SDateAutoRangePicker.vue +341 -341
  23. package/src/components/SDatePicker.vue +472 -472
  24. package/src/components/SDateRange.vue +470 -470
  25. package/src/components/SDateRangePicker.vue +660 -660
  26. package/src/components/SDateTimePicker.vue +349 -349
  27. package/src/components/SDialog.vue +250 -250
  28. package/src/components/SDropdown.vue +216 -216
  29. package/src/components/SEditor.vue +490 -490
  30. package/src/components/SFilePicker.vue +207 -207
  31. package/src/components/SHelp.vue +146 -146
  32. package/src/components/SInput.vue +343 -343
  33. package/src/components/SInputCounter.vue +46 -46
  34. package/src/components/SInputNumber.vue +179 -179
  35. package/src/components/SList.vue +29 -29
  36. package/src/components/SMarkupTable.vue +141 -141
  37. package/src/components/SPagination.vue +266 -266
  38. package/src/components/SRadio.vue +78 -78
  39. package/src/components/SRouteTab.vue +67 -67
  40. package/src/components/SSelect.vue +294 -294
  41. package/src/components/SSelectCheckbox.vue +222 -222
  42. package/src/components/SSelectCustom.vue +189 -189
  43. package/src/components/SSelectGroupCheckbox.vue +235 -235
  44. package/src/components/SSelectSearch.vue +261 -261
  45. package/src/components/SSelectSearchAutoComplete.vue +172 -172
  46. package/src/components/SSelectSearchCheckbox.vue +356 -356
  47. package/src/components/SStringToInput.vue +66 -66
  48. package/src/components/STab.vue +77 -77
  49. package/src/components/STable.vue +425 -425
  50. package/src/components/STableTree.vue +210 -208
  51. package/src/components/STabs.vue +32 -32
  52. package/src/components/STimePicker.vue +159 -159
  53. package/src/components/SToggle.vue +68 -68
  54. package/src/components/STooltip.vue +209 -209
  55. package/src/components/SelelctItem.vue +21 -21
  56. package/src/components/TimePickerCard.vue +352 -352
  57. package/src/composables/date.js +11 -11
  58. package/src/composables/modelBinder.js +13 -13
  59. package/src/composables/table/use-navigator.js +110 -110
  60. package/src/composables/table/use-resizable.js +80 -80
  61. package/src/css/app.scss +90 -90
  62. package/src/css/default.scss +875 -875
  63. package/src/css/extends.scss +154 -154
  64. package/src/css/quasar.variables.scss +189 -189
  65. package/src/directives/Directive.js +7 -8
  66. package/src/index.scss +3 -9
  67. package/src/vue-plugin.js +91 -92
  68. package/tsconfig.json +35 -0
@@ -1,216 +1,216 @@
1
- <template>
2
- <q-btn
3
- outline
4
- split
5
- :color="!color ? 'Grey_Default' : color"
6
- no-caps
7
- no-wrap
8
- unelevated
9
- :ripple="false"
10
- :icon-right="arrowDownIcon"
11
- menu-anchor="bottom start"
12
- menu-self="top start"
13
- class="s-dropdown"
14
- :class="{
15
- 'use-color': color,
16
- 's-dropdown-xs': size === 'xs',
17
- 's-dropdown-sm': size === 'sm',
18
- 's-dropdown-md': size === 'md',
19
- }"
20
- >
21
- <q-menu :class="menuClass" class="s-dropdown-menu" :offset="[0, 4]">
22
- <template v-for="(opt, i) in options" :key="i">
23
- <q-item
24
- :clickable="opt.disable === undefined || opt.disable === false"
25
- v-if="opt.display === true || opt.display === undefined"
26
- v-close-popup
27
- @click="
28
- () => {
29
- $emit('handleClickOption', opt[optionValue]);
30
- $emit('handleClick', opt);
31
- }
32
- "
33
- >
34
- <q-item-section>
35
- <q-item-label v-html="opt[optionLabel]"></q-item-label>
36
- </q-item-section>
37
- </q-item>
38
- </template>
39
- </q-menu>
40
- </q-btn>
41
- </template>
42
-
43
- <script>
44
- import { QBtn, QItem, QItemLabel, QItemSection, QMenu } from 'quasar';
45
- import { defineComponent, ref } from 'vue';
46
- import { arrowDownIcon } from '../assets/icons.js';
47
-
48
- export default defineComponent({
49
- name: 'SDropdown',
50
- components: {
51
- QBtn,
52
- QMenu,
53
- QItem,
54
- QItemSection,
55
- QItemLabel,
56
- },
57
- props: {
58
- options: {
59
- type: Array,
60
- /**
61
- * label -> optionLabel;
62
- * value -> optionValue;
63
- * @return {{ label: string, value: string, disable: boolean, display: boolean }[]}
64
- */
65
- default: () => ([]),
66
- },
67
- size: {
68
- type: String,
69
- default: 'sm',
70
- },
71
- color: String,
72
- menuClass: String,
73
- optionLabel: {
74
- type: String,
75
- default: 'label',
76
- },
77
- optionValue: {
78
- type: String,
79
- default: 'value',
80
- },
81
- },
82
- setup() {
83
- return {
84
- arrowDownIcon,
85
- showMenu: ref(false),
86
- };
87
- },
88
- });
89
- </script>
90
-
91
- <style lang="scss">
92
- @import '../css/quasar.variables.scss';
93
-
94
- .s-dropdown {
95
- min-height: 0;
96
- padding: 0 !important;
97
-
98
- .q-btn__content {
99
- min-height: 0;
100
- align-items: center;
101
-
102
- .block {
103
- color: $Grey_Darken-4;
104
- line-height: $default-content-height;
105
- border-right: 1px solid $Grey_Default !important;
106
- font-size: $default-font;
107
- font-weight: $default-font-weight;
108
- }
109
-
110
- .q-icon {
111
- padding: 0;
112
- border-right: none;
113
- font-size: $default-font;
114
- width: $icon-size-sm;
115
- height: $icon-size-sm;
116
- }
117
- }
118
- }
119
-
120
- .use-color {
121
- .q-btn__content {
122
- .block {
123
- color: currentColor;
124
- border-right: 1px solid currentColor !important;
125
- }
126
- }
127
- }
128
-
129
- .s-dropdown-xs {
130
- min-width: 67px;
131
- height: 24px;
132
-
133
- .q-btn__content {
134
- span {
135
- padding: 1px 8px 1px 10px;
136
- }
137
-
138
- .q-icon {
139
- margin: 5px 4px 5px 6px;
140
- }
141
- }
142
- }
143
-
144
- .s-dropdown-sm {
145
- min-width: 75px;
146
- height: 28px;
147
-
148
- .q-btn__content {
149
- span {
150
- padding: 3px 10px 3px 12px;
151
- }
152
-
153
- .q-icon {
154
- margin: 8px;
155
- }
156
- }
157
- }
158
-
159
- .s-dropdown-md {
160
- min-width: 107px;
161
- height: 34px;
162
-
163
- .q-btn__content {
164
- .block {
165
- padding: 2.4px 10px 2.4px 12px; // 가운데 바가 있어 상하 1px 줄임
166
- font-size: $font-md;
167
- font-weight: $font-weight-md;
168
- }
169
-
170
- .q-icon {
171
- margin: 11px 12px;
172
- }
173
- }
174
- }
175
-
176
- .s-dropdown.disabled {
177
- opacity: 1 !important;
178
- border: none;
179
- padding: 0;
180
- &:before {
181
- border: 1px solid $Grey_Lighten-2;
182
- background: $Grey_Lighten-3 !important;
183
- }
184
-
185
- .q-btn__content {
186
- > span {
187
- color: $Grey_Default;
188
- }
189
-
190
- .block {
191
- line-height: $default-content-height !important;
192
- border-right: 1px solid $Grey_Lighten-2 !important;
193
- }
194
- }
195
- }
196
-
197
- // TODO: md 사이즈 필요
198
- .s-dropdown-menu {
199
- .q-item {
200
- padding: 4px 12px;
201
- min-height: 0;
202
-
203
- &__section {
204
- min-height: 0;
205
- height: 20px;
206
- }
207
-
208
- &:not(.q-item--clickable) {
209
- cursor: default;
210
- color: $Grey_Lighten-1;
211
- }
212
- }
213
-
214
- box-shadow: 0px 2px 6px 0px #00000020;
215
- }
216
- </style>
1
+ <template>
2
+ <q-btn
3
+ outline
4
+ split
5
+ :color="!color ? 'Grey_Default' : color"
6
+ no-caps
7
+ no-wrap
8
+ unelevated
9
+ :ripple="false"
10
+ :icon-right="arrowDownIcon"
11
+ menu-anchor="bottom start"
12
+ menu-self="top start"
13
+ class="s-dropdown"
14
+ :class="{
15
+ 'use-color': color,
16
+ 's-dropdown-xs': size === 'xs',
17
+ 's-dropdown-sm': size === 'sm',
18
+ 's-dropdown-md': size === 'md',
19
+ }"
20
+ >
21
+ <q-menu :class="menuClass" class="s-dropdown-menu" :offset="[0, 4]">
22
+ <template v-for="(opt, i) in options" :key="i">
23
+ <q-item
24
+ :clickable="opt.disable === undefined || opt.disable === false"
25
+ v-if="opt.display === true || opt.display === undefined"
26
+ v-close-popup
27
+ @click="
28
+ () => {
29
+ $emit('handleClickOption', opt[optionValue]);
30
+ $emit('handleClick', opt);
31
+ }
32
+ "
33
+ >
34
+ <q-item-section>
35
+ <q-item-label v-html="opt[optionLabel]"></q-item-label>
36
+ </q-item-section>
37
+ </q-item>
38
+ </template>
39
+ </q-menu>
40
+ </q-btn>
41
+ </template>
42
+
43
+ <script>
44
+ import { QBtn, QItem, QItemLabel, QItemSection, QMenu } from 'quasar';
45
+ import { defineComponent, ref } from 'vue';
46
+ import { arrowDownIcon } from '../assets/icons.js';
47
+
48
+ export default defineComponent({
49
+ name: 'SDropdown',
50
+ components: {
51
+ QBtn,
52
+ QMenu,
53
+ QItem,
54
+ QItemSection,
55
+ QItemLabel,
56
+ },
57
+ props: {
58
+ options: {
59
+ type: Array,
60
+ /**
61
+ * label -> optionLabel;
62
+ * value -> optionValue;
63
+ * @return {{ label: string, value: string, disable: boolean, display: boolean }[]}
64
+ */
65
+ default: () => ([]),
66
+ },
67
+ size: {
68
+ type: String,
69
+ default: 'sm',
70
+ },
71
+ color: String,
72
+ menuClass: String,
73
+ optionLabel: {
74
+ type: String,
75
+ default: 'label',
76
+ },
77
+ optionValue: {
78
+ type: String,
79
+ default: 'value',
80
+ },
81
+ },
82
+ setup() {
83
+ return {
84
+ arrowDownIcon,
85
+ showMenu: ref(false),
86
+ };
87
+ },
88
+ });
89
+ </script>
90
+
91
+ <style lang="scss">
92
+ @import '../css/quasar.variables.scss';
93
+
94
+ .s-dropdown {
95
+ min-height: 0;
96
+ padding: 0 !important;
97
+
98
+ .q-btn__content {
99
+ min-height: 0;
100
+ align-items: center;
101
+
102
+ .block {
103
+ color: $Grey_Darken-4;
104
+ line-height: $default-content-height;
105
+ border-right: 1px solid $Grey_Default !important;
106
+ font-size: $default-font;
107
+ font-weight: $default-font-weight;
108
+ }
109
+
110
+ .q-icon {
111
+ padding: 0;
112
+ border-right: none;
113
+ font-size: $default-font;
114
+ width: $icon-size-sm;
115
+ height: $icon-size-sm;
116
+ }
117
+ }
118
+ }
119
+
120
+ .use-color {
121
+ .q-btn__content {
122
+ .block {
123
+ color: currentColor;
124
+ border-right: 1px solid currentColor !important;
125
+ }
126
+ }
127
+ }
128
+
129
+ .s-dropdown-xs {
130
+ min-width: 67px;
131
+ height: 24px;
132
+
133
+ .q-btn__content {
134
+ span {
135
+ padding: 1px 8px 1px 10px;
136
+ }
137
+
138
+ .q-icon {
139
+ margin: 5px 4px 5px 6px;
140
+ }
141
+ }
142
+ }
143
+
144
+ .s-dropdown-sm {
145
+ min-width: 75px;
146
+ height: 28px;
147
+
148
+ .q-btn__content {
149
+ span {
150
+ padding: 3px 10px 3px 12px;
151
+ }
152
+
153
+ .q-icon {
154
+ margin: 8px;
155
+ }
156
+ }
157
+ }
158
+
159
+ .s-dropdown-md {
160
+ min-width: 107px;
161
+ height: 34px;
162
+
163
+ .q-btn__content {
164
+ .block {
165
+ padding: 2.4px 10px 2.4px 12px; // 가운데 바가 있어 상하 1px 줄임
166
+ font-size: $font-md;
167
+ font-weight: $font-weight-md;
168
+ }
169
+
170
+ .q-icon {
171
+ margin: 11px 12px;
172
+ }
173
+ }
174
+ }
175
+
176
+ .s-dropdown.disabled {
177
+ opacity: 1 !important;
178
+ border: none;
179
+ padding: 0;
180
+ &:before {
181
+ border: 1px solid $Grey_Lighten-2;
182
+ background: $Grey_Lighten-3 !important;
183
+ }
184
+
185
+ .q-btn__content {
186
+ > span {
187
+ color: $Grey_Default;
188
+ }
189
+
190
+ .block {
191
+ line-height: $default-content-height !important;
192
+ border-right: 1px solid $Grey_Lighten-2 !important;
193
+ }
194
+ }
195
+ }
196
+
197
+ // TODO: md 사이즈 필요
198
+ .s-dropdown-menu {
199
+ .q-item {
200
+ padding: 4px 12px;
201
+ min-height: 0;
202
+
203
+ &__section {
204
+ min-height: 0;
205
+ height: 20px;
206
+ }
207
+
208
+ &:not(.q-item--clickable) {
209
+ cursor: default;
210
+ color: $Grey_Lighten-1;
211
+ }
212
+ }
213
+
214
+ box-shadow: 0px 2px 6px 0px #00000020;
215
+ }
216
+ </style>