quasar-ui-sellmate-ui-kit 3.0.3 → 3.0.5

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 +3829 -3829
  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,207 +1,207 @@
1
- <template>
2
- <q-file
3
- outlined
4
- dense
5
- :model-value="modelValue"
6
- @update:model-value="value => $emit('update:modelValue', value)"
7
- class="s-file rounded-borders"
8
- ref="sFilePickerRef"
9
- :disable="disable"
10
- :class="{ 's-file--nodata': displayPlaceholder }"
11
- >
12
- <template v-for="(_, slotName, index) in $slots" #[slotName]="data">
13
- <!-- eslint-disable-next-line -->
14
- <slot :key="index" :name="slotName" v-bind="data"></slot>
15
- </template>
16
- <!-- NOTE: slot에 오버라이드 되어서 무조건 노출로 변경 -->
17
- <template #prepend v-if="true">
18
- <q-icon :name="attachFileIcon" size="20px" color="Grey_Darken-4" @click.stop />
19
- <div v-if="displayPlaceholder" class="file-placeholder text-Grey_Lighten-2" @click.stop>
20
- {{ placeholder }}
21
- </div>
22
- </template>
23
- <template #append v-if="clearable">
24
- <q-icon
25
- :name="closeIcon"
26
- size="16px"
27
- class="cursor-pointer"
28
- @click="clearFile"
29
- data-cy="delete-icon"
30
- />
31
- </template>
32
- </q-file>
33
- </template>
34
-
35
- <script>
36
- import { defineComponent, ref, computed } from 'vue';
37
- import { QFile, QIcon } from 'quasar';
38
- import { attachFileIcon, closeIcon } from '../assets/icons.js';
39
-
40
- export default defineComponent({
41
- name: 'SFilePicker',
42
- components: {
43
- QFile,
44
- QIcon,
45
- },
46
- props: {
47
- placeholder: {
48
- type: String,
49
- default: '파일을 업로드 해주세요',
50
- },
51
- disable: {
52
- type: Boolean,
53
- default: false,
54
- },
55
- clearable: {
56
- type: Boolean,
57
- default: false,
58
- },
59
- modelValue: {
60
- type: [File, FileList, Array, null],
61
- required: true,
62
- },
63
- },
64
- setup(props, { emit }) {
65
- function clearFile() {
66
- emit('update:modelValue', null);
67
- }
68
- return {
69
- closeIcon,
70
- clearFile,
71
- attachFileIcon,
72
- sFilePickerRef: ref(null),
73
- displayPlaceholder: computed(
74
- () => {
75
- if (Array.isArray(props.modelValue)) {
76
- return props.modelValue.length === 0 || (props.modelValue.length > 0
77
- && props.modelValue.every(file => file instanceof File && file.size === 0));
78
- }
79
- if (props.modelValue === null) {
80
- return true;
81
- }
82
- return props.modelValue instanceof File && props.modelValue.size === 0;
83
- },
84
- ),
85
- };
86
- },
87
- });
88
- </script>
89
-
90
- <style lang="scss">
91
- @import '../css/quasar.variables.scss';
92
-
93
- .s-file {
94
- width: fit-content;
95
- max-height: $default-height;
96
-
97
- .q-field__inner {
98
- .q-field__control {
99
- align-items: center;
100
- padding: 4px 8px;
101
- min-height: $default-height;
102
- height: $default-height;
103
- align-items: center;
104
-
105
- &:hover,
106
- &:active {
107
- background: $Grey_Lighten-5;
108
- }
109
-
110
- &:after {
111
- border: 1px solid $Grey_Lighten-1;
112
- box-shadow: none;
113
- }
114
-
115
- .q-field__prepend {
116
- width: fit-content;
117
- height: $default-content-height;
118
- padding: 0;
119
- flex-grow: 1;
120
- cursor: pointer;
121
-
122
- > .q-icon {
123
- margin-right: $between-margin-md;
124
- }
125
- .file-placeholder {
126
- line-height: $default-line-height;
127
- font-size: $default-font;
128
- font-weight: $default-font-weight;
129
- height: 100%;
130
- display: block;
131
- width: fit-content;
132
- }
133
- }
134
-
135
- &-container {
136
- .q-field__native {
137
- min-height: 0;
138
-
139
- > div {
140
- font-size: $default-font;
141
- overflow: hidden;
142
- color: $Grey_Darken-5;
143
- word-break: keep-all;
144
- white-space: nowrap;
145
- text-overflow: ellipsis;
146
- margin-right: 8px;
147
- line-height: 16px;
148
- }
149
- }
150
- }
151
-
152
- .q-field__append {
153
- height: $default-content-size;
154
- font-size: $default-font;
155
- width: 20px;
156
- padding: 0;
157
- justify-content: center;
158
- align-items: center;
159
- margin-left: 8px;
160
-
161
- > .q-icon {
162
- font-size: 20px;
163
- }
164
- }
165
- }
166
- }
167
-
168
- &--nodata {
169
- .q-field__inner .q-field__control .q-field__control-container {
170
- display: none;
171
- }
172
- }
173
- }
174
-
175
- .s-file.q-field--disabled {
176
- .q-field__inner {
177
- .q-field__control {
178
- opacity: 1 !important;
179
- background: $Grey_Lighten-3;
180
-
181
- &:after {
182
- border: 1px solid $Grey_Lighten-2;
183
- }
184
-
185
- &-container {
186
- .q-field__native {
187
- > span {
188
- color: $Grey_Default;
189
- }
190
- }
191
- }
192
-
193
- .q-field__prepend {
194
- opacity: 1 !important;
195
-
196
- .file-placeholder {
197
- color: $Grey_Default !important;
198
- }
199
-
200
- .q-icon {
201
- color: $Grey_Default !important;
202
- }
203
- }
204
- }
205
- }
206
- }
207
- </style>
1
+ <template>
2
+ <q-file
3
+ outlined
4
+ dense
5
+ :model-value="modelValue"
6
+ @update:model-value="value => $emit('update:modelValue', value)"
7
+ class="s-file rounded-borders"
8
+ ref="sFilePickerRef"
9
+ :disable="disable"
10
+ :class="{ 's-file--nodata': displayPlaceholder }"
11
+ >
12
+ <template v-for="(_, slotName, index) in $slots" #[slotName]="data">
13
+ <!-- eslint-disable-next-line -->
14
+ <slot :key="index" :name="slotName" v-bind="data"></slot>
15
+ </template>
16
+ <!-- NOTE: slot에 오버라이드 되어서 무조건 노출로 변경 -->
17
+ <template #prepend v-if="true">
18
+ <q-icon :name="attachFileIcon" size="20px" color="Grey_Darken-4" @click.stop />
19
+ <div v-if="displayPlaceholder" class="file-placeholder text-Grey_Lighten-2" @click.stop>
20
+ {{ placeholder }}
21
+ </div>
22
+ </template>
23
+ <template #append v-if="clearable">
24
+ <q-icon
25
+ :name="closeIcon"
26
+ size="16px"
27
+ class="cursor-pointer"
28
+ @click="clearFile"
29
+ data-cy="delete-icon"
30
+ />
31
+ </template>
32
+ </q-file>
33
+ </template>
34
+
35
+ <script>
36
+ import { defineComponent, ref, computed } from 'vue';
37
+ import { QFile, QIcon } from 'quasar';
38
+ import { attachFileIcon, closeIcon } from '../assets/icons.js';
39
+
40
+ export default defineComponent({
41
+ name: 'SFilePicker',
42
+ components: {
43
+ QFile,
44
+ QIcon,
45
+ },
46
+ props: {
47
+ placeholder: {
48
+ type: String,
49
+ default: '파일을 업로드 해주세요',
50
+ },
51
+ disable: {
52
+ type: Boolean,
53
+ default: false,
54
+ },
55
+ clearable: {
56
+ type: Boolean,
57
+ default: false,
58
+ },
59
+ modelValue: {
60
+ type: [File, FileList, Array, null],
61
+ required: true,
62
+ },
63
+ },
64
+ setup(props, { emit }) {
65
+ function clearFile() {
66
+ emit('update:modelValue', null);
67
+ }
68
+ return {
69
+ closeIcon,
70
+ clearFile,
71
+ attachFileIcon,
72
+ sFilePickerRef: ref(null),
73
+ displayPlaceholder: computed(
74
+ () => {
75
+ if (Array.isArray(props.modelValue)) {
76
+ return props.modelValue.length === 0 || (props.modelValue.length > 0
77
+ && props.modelValue.every(file => file instanceof File && file.size === 0));
78
+ }
79
+ if (props.modelValue === null) {
80
+ return true;
81
+ }
82
+ return props.modelValue instanceof File && props.modelValue.size === 0;
83
+ },
84
+ ),
85
+ };
86
+ },
87
+ });
88
+ </script>
89
+
90
+ <style lang="scss">
91
+ @import '../css/quasar.variables.scss';
92
+
93
+ .s-file {
94
+ width: fit-content;
95
+ max-height: $default-height;
96
+
97
+ .q-field__inner {
98
+ .q-field__control {
99
+ align-items: center;
100
+ padding: 4px 8px;
101
+ min-height: $default-height;
102
+ height: $default-height;
103
+ align-items: center;
104
+
105
+ &:hover,
106
+ &:active {
107
+ background: $Grey_Lighten-5;
108
+ }
109
+
110
+ &:after {
111
+ border: 1px solid $Grey_Lighten-1;
112
+ box-shadow: none;
113
+ }
114
+
115
+ .q-field__prepend {
116
+ width: fit-content;
117
+ height: $default-content-height;
118
+ padding: 0;
119
+ flex-grow: 1;
120
+ cursor: pointer;
121
+
122
+ > .q-icon {
123
+ margin-right: $between-margin-md;
124
+ }
125
+ .file-placeholder {
126
+ line-height: $default-line-height;
127
+ font-size: $default-font;
128
+ font-weight: $default-font-weight;
129
+ height: 100%;
130
+ display: block;
131
+ width: fit-content;
132
+ }
133
+ }
134
+
135
+ &-container {
136
+ .q-field__native {
137
+ min-height: 0;
138
+
139
+ > div {
140
+ font-size: $default-font;
141
+ overflow: hidden;
142
+ color: $Grey_Darken-5;
143
+ word-break: keep-all;
144
+ white-space: nowrap;
145
+ text-overflow: ellipsis;
146
+ margin-right: 8px;
147
+ line-height: 16px;
148
+ }
149
+ }
150
+ }
151
+
152
+ .q-field__append {
153
+ height: $default-content-size;
154
+ font-size: $default-font;
155
+ width: 20px;
156
+ padding: 0;
157
+ justify-content: center;
158
+ align-items: center;
159
+ margin-left: 8px;
160
+
161
+ > .q-icon {
162
+ font-size: 20px;
163
+ }
164
+ }
165
+ }
166
+ }
167
+
168
+ &--nodata {
169
+ .q-field__inner .q-field__control .q-field__control-container {
170
+ display: none;
171
+ }
172
+ }
173
+ }
174
+
175
+ .s-file.q-field--disabled {
176
+ .q-field__inner {
177
+ .q-field__control {
178
+ opacity: 1 !important;
179
+ background: $Grey_Lighten-3;
180
+
181
+ &:after {
182
+ border: 1px solid $Grey_Lighten-2;
183
+ }
184
+
185
+ &-container {
186
+ .q-field__native {
187
+ > span {
188
+ color: $Grey_Default;
189
+ }
190
+ }
191
+ }
192
+
193
+ .q-field__prepend {
194
+ opacity: 1 !important;
195
+
196
+ .file-placeholder {
197
+ color: $Grey_Default !important;
198
+ }
199
+
200
+ .q-icon {
201
+ color: $Grey_Default !important;
202
+ }
203
+ }
204
+ }
205
+ }
206
+ }
207
+ </style>