@mptw/skylens-ui 1.4.109 → 1.5.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.
- package/AGENTS.md +59 -0
- package/CLAUDE.md +36 -0
- package/README.md +7 -7
- package/app/app.config.ts +14 -0
- package/app/app.vue +5 -0
- package/app/assets/css/layout.css +134 -0
- package/app/assets/css/main.css +189 -0
- package/{components → app/components}/SLAlertModal.vue +24 -16
- package/{components → app/components}/SLBreadcrumbs.vue +12 -8
- package/app/components/SLButton.vue +370 -0
- package/{components → app/components}/SLCalendarButton.vue +40 -34
- package/{components → app/components}/SLCalendarPopup.vue +79 -53
- package/{components → app/components}/SLCard.vue +57 -41
- package/{components → app/components}/SLChart.vue +6 -3
- package/{components → app/components}/SLCheckbox.vue +92 -49
- package/{components → app/components}/SLCircleButton.vue +25 -16
- package/{components → app/components}/SLCollapsableBlock.vue +44 -33
- package/{components → app/components}/SLCollapsableMulitPillSelect.vue +20 -15
- package/{components → app/components}/SLConfirmModal.vue +9 -6
- package/{components → app/components}/SLContextMenu.vue +88 -48
- package/{components → app/components}/SLDateInput.vue +109 -92
- package/{components → app/components}/SLDatePicker.vue +9 -7
- package/{components → app/components}/SLDistributor.vue +1 -1
- package/{components → app/components}/SLDownloadButton.vue +39 -29
- package/{components → app/components}/SLDraggable.vue +2 -2
- package/{components → app/components}/SLDropdown.vue +33 -25
- package/{components → app/components}/SLDropdownItem.vue +9 -5
- package/{components → app/components}/SLElementWithTitle.vue +12 -7
- package/{components → app/components}/SLEyeCheckbox.vue +44 -31
- package/{components → app/components}/SLFileInput.vue +23 -16
- package/{components → app/components}/SLGenderAgeSelect.vue +52 -36
- package/{components → app/components}/SLHourRangeInput.vue +45 -32
- package/{components → app/components}/SLIOSSwitch.vue +81 -60
- package/{components → app/components}/SLIcon.vue +4 -3
- package/{components → app/components}/SLIconButton.vue +31 -29
- package/{components → app/components}/SLInfoTip.vue +51 -40
- package/{components → app/components}/SLInsightSitePage.vue +12 -7
- package/{components → app/components}/SLLegend.vue +19 -12
- package/app/components/SLLinearProgressBar.vue +22 -0
- package/{components → app/components}/SLLink.vue +12 -8
- package/{components → app/components}/SLLoading.vue +34 -31
- package/{components → app/components}/SLMapChart.vue +5 -4
- package/{components → app/components}/SLModal.vue +90 -66
- package/{components → app/components}/SLMonthCalendarButton.vue +91 -45
- package/{components → app/components}/SLMonthPicker.vue +42 -37
- package/{components → app/components}/SLMultiEmailInput.vue +163 -113
- package/{components → app/components}/SLMultiSelect.vue +37 -26
- package/{components → app/components}/SLNoData.vue +16 -11
- package/app/components/SLNotification.vue +155 -0
- package/{components → app/components}/SLPageModal.vue +14 -9
- package/{components → app/components}/SLPagination.vue +45 -33
- package/{components → app/components}/SLPillCheckbox.vue +50 -42
- package/{components → app/components}/SLPillLabel.vue +43 -28
- package/{components → app/components}/SLPopupMenuButton.vue +26 -17
- package/{components → app/components}/SLProfileButton.vue +28 -20
- package/{components → app/components}/SLProjectShareItem.vue +30 -17
- package/{components → app/components}/SLRadioButton.vue +41 -33
- package/{components → app/components}/SLRadioButtonGroup.vue +28 -23
- package/app/components/SLRadioGroup.vue +221 -0
- package/{components → app/components}/SLRangeInput.vue +53 -38
- package/{components → app/components}/SLRegionsMapChart.vue +5 -4
- package/{components → app/components}/SLRightSider.vue +50 -40
- package/{components → app/components}/SLSearchInput.vue +24 -19
- package/{components → app/components}/SLSelect.vue +114 -87
- package/{components → app/components}/SLSelectAllToggle.vue +52 -37
- package/app/components/SLSidebarNav.vue +487 -0
- package/{components → app/components}/SLSidebarNavGroupItem.vue +13 -10
- package/{components → app/components}/SLSidebarNavGroupItemSection.vue +240 -179
- package/{components → app/components}/SLSidebarNavLinkItem.vue +131 -109
- package/{components → app/components}/SLSidebarNavSectionItem.vue +21 -18
- package/{components → app/components}/SLSitePage.vue +35 -24
- package/{components → app/components}/SLSkyInsightSitePage.vue +13 -8
- package/{components → app/components}/SLSortByDropdown.vue +35 -22
- package/{components → app/components}/SLSpinIcon.vue +6 -3
- package/{components → app/components}/SLStayRangeInput.vue +47 -36
- package/{components → app/components}/SLTab.vue +7 -2
- package/app/components/SLTable.vue +472 -0
- package/{components → app/components}/SLTableTooltip.vue +44 -30
- package/app/components/SLTabs.vue +528 -0
- package/{components → app/components}/SLTextInput.vue +162 -134
- package/{components → app/components}/SLTextarea.vue +40 -29
- package/{components → app/components}/SLToast.vue +19 -11
- package/{components → app/components}/SLToggleButton.vue +18 -11
- package/{components → app/components}/SLTwoLayerMultiSelect.vue +180 -85
- package/{components → app/components}/SLTwoLayerSelect.vue +47 -37
- package/{components → app/components}/SLTwoLayerSingleSelect.vue +52 -33
- package/{components → app/components}/SLWarnModal.vue +9 -7
- package/app/interface/commons.ts +7 -0
- package/{utils → app/utils}/index.ts +213 -146
- package/eslint.config.js +3 -0
- package/nuxt.config.ts +17 -14
- package/package.json +10 -9
- package/skills-lock.json +59 -0
- package/tsconfig.json +1 -6
- package/.eslintrc.cjs +0 -4
- package/app.config.ts +0 -5
- package/assets/css/layout.styl +0 -98
- package/assets/css/tailwind.css +0 -3
- package/components/SLButton.vue +0 -337
- package/components/SLLinearProgressBar.vue +0 -35
- package/components/SLNotification.vue +0 -151
- package/components/SLRadioGroup.vue +0 -209
- package/components/SLSidebarNav.vue +0 -427
- package/components/SLTable.vue +0 -455
- package/components/SLTabs.vue +0 -475
- package/interface/commons.ts +0 -7
- package/pages/index.vue +0 -15
- package/tailwind.config.js +0 -271
- /package/{assets → app/assets}/css/fonts/MEShPlus-font-icon.eot +0 -0
- /package/{assets → app/assets}/css/fonts/MEShPlus-font-icon.svg +0 -0
- /package/{assets → app/assets}/css/fonts/MEShPlus-font-icon.ttf +0 -0
- /package/{assets → app/assets}/css/fonts/MEShPlus-font-icon.woff +0 -0
- /package/{assets → app/assets}/css/icons.css +0 -0
- /package/{assets → app/assets}/images/commons/app-logo-white.png +0 -0
- /package/{assets → app/assets}/images/commons/app-logo.png +0 -0
- /package/{assets → app/assets}/images/commons/empty-box.png +0 -0
- /package/{interface → app/interface}/IDateRange.ts +0 -0
- /package/{interface → app/interface}/IHourRange.ts +0 -0
- /package/{interface → app/interface}/IInputOption.ts +0 -0
- /package/{interface → app/interface}/ILegendItem.ts +0 -0
- /package/{interface → app/interface}/IOrganization.ts +0 -0
- /package/{interface → app/interface}/IPopupMenuButton.ts +0 -0
- /package/{interface → app/interface}/IStayRange.ts +0 -0
- /package/{interface → app/interface}/ITableField.ts +0 -0
- /package/{interface → app/interface}/IWeb.ts +0 -0
- /package/{interface → app/interface}/NavConfigType.ts +0 -0
- /package/{models → app/models}/DateRange.ts +0 -0
- /package/{plugins → app/plugins}/v-calendar.ts +0 -0
- /package/{utils → app/utils}/constants.ts +0 -0
- /package/{utils → app/utils}/generateSheet.ts +0 -0
|
@@ -62,62 +62,78 @@ export default defineComponent({
|
|
|
62
62
|
});
|
|
63
63
|
</script>
|
|
64
64
|
|
|
65
|
-
<style
|
|
66
|
-
.
|
|
67
|
-
.tabs
|
|
68
|
-
.card
|
|
69
|
-
@apply border-0 rounded-none shadow-none
|
|
65
|
+
<style>
|
|
66
|
+
@reference '~ui/app/assets/css/main.css';
|
|
70
67
|
|
|
71
|
-
|
|
72
|
-
|
|
68
|
+
.tabs .tabs .card {
|
|
69
|
+
@apply border-0 rounded-none shadow-none;
|
|
70
|
+
}
|
|
73
71
|
|
|
74
|
-
|
|
75
|
-
|
|
72
|
+
.tabs .card {
|
|
73
|
+
@apply rounded-lg border-primary-300 shadow-md;
|
|
74
|
+
}
|
|
76
75
|
|
|
77
|
-
.card
|
|
78
|
-
@apply
|
|
76
|
+
.tabs .card .card {
|
|
77
|
+
@apply border-0 rounded-none shadow-none;
|
|
78
|
+
}
|
|
79
79
|
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
.card {
|
|
81
|
+
@apply p-4 border border-primary-600 rounded bg-white shadow-default;
|
|
82
|
+
}
|
|
82
83
|
|
|
83
|
-
|
|
84
|
-
|
|
84
|
+
.card .card-prepend {
|
|
85
|
+
@apply mb-4;
|
|
86
|
+
}
|
|
85
87
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
+
.card .card-header {
|
|
89
|
+
@apply flex justify-between mb-4;
|
|
90
|
+
}
|
|
88
91
|
|
|
89
|
-
|
|
90
|
-
|
|
92
|
+
.card .card-header .card-title {
|
|
93
|
+
@apply inline-flex flex-col;
|
|
94
|
+
}
|
|
91
95
|
|
|
92
|
-
|
|
93
|
-
|
|
96
|
+
.card .card-header .card-title-container {
|
|
97
|
+
@apply inline-flex items-center mb-2 text-lg text-primary;
|
|
98
|
+
}
|
|
94
99
|
|
|
95
|
-
|
|
96
|
-
|
|
100
|
+
.card .card-header .card-title-container .title-icon {
|
|
101
|
+
@apply ml-2;
|
|
102
|
+
}
|
|
97
103
|
|
|
98
|
-
|
|
99
|
-
|
|
104
|
+
.card .card-header .card-title-border {
|
|
105
|
+
@apply h-0.5 rounded-full bg-highlight-500;
|
|
106
|
+
}
|
|
100
107
|
|
|
101
|
-
|
|
102
|
-
|
|
108
|
+
.card .card-header .card-desc {
|
|
109
|
+
@apply text-base text-pgray-2;
|
|
110
|
+
}
|
|
103
111
|
|
|
104
|
-
|
|
105
|
-
|
|
112
|
+
.card .card-header .card-desc .date-range {
|
|
113
|
+
@apply ml-2 text-sm text-pgray-3;
|
|
114
|
+
}
|
|
106
115
|
|
|
107
|
-
|
|
108
|
-
|
|
116
|
+
.card .card-header .inline-info {
|
|
117
|
+
@apply mt-2 text-sm text-pgray-3;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.card .card-body {
|
|
121
|
+
@apply relative;
|
|
122
|
+
}
|
|
109
123
|
|
|
110
|
-
|
|
111
|
-
|
|
124
|
+
.card .card-footer {
|
|
125
|
+
@apply mt-4 pb-2 border-b border-primary-300/30;
|
|
126
|
+
}
|
|
112
127
|
|
|
113
|
-
|
|
114
|
-
|
|
128
|
+
.card {
|
|
129
|
+
@apply border-primary-300 rounded-lg shadow-md;
|
|
130
|
+
}
|
|
115
131
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
@apply mb-0 text-base text-pgray-2
|
|
132
|
+
.card .card-header .card-title-container {
|
|
133
|
+
@apply mb-0 text-base text-pgray-2;
|
|
134
|
+
}
|
|
120
135
|
|
|
121
|
-
|
|
122
|
-
|
|
136
|
+
.card .card-header .card-title-border {
|
|
137
|
+
@apply hidden;
|
|
138
|
+
}
|
|
123
139
|
</style>
|
|
@@ -187,7 +187,10 @@ export default defineComponent({
|
|
|
187
187
|
});
|
|
188
188
|
</script>
|
|
189
189
|
|
|
190
|
-
<style
|
|
191
|
-
.
|
|
192
|
-
|
|
190
|
+
<style>
|
|
191
|
+
@reference '~ui/app/assets/css/main.css';
|
|
192
|
+
|
|
193
|
+
.chart {
|
|
194
|
+
@apply flex w-full h-52 min-h-52 overflow-hidden;
|
|
195
|
+
}
|
|
193
196
|
</style>
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
|
|
17
17
|
<script lang="ts">
|
|
18
18
|
import { isEqual } from "lodash-es";
|
|
19
|
-
import type IInputOption from "~ui/interface/IInputOption";
|
|
20
|
-
import { getUID } from "~ui/utils";
|
|
19
|
+
import type IInputOption from "~ui/app/interface/IInputOption";
|
|
20
|
+
import { getUID } from "~ui/app/utils";
|
|
21
21
|
|
|
22
22
|
export default defineComponent({
|
|
23
23
|
name: "SLCheckbox",
|
|
@@ -77,10 +77,18 @@ export default defineComponent({
|
|
|
77
77
|
default: null,
|
|
78
78
|
},
|
|
79
79
|
},
|
|
80
|
-
emits: ["update:modelValue",
|
|
80
|
+
emits: ["update:modelValue", "update:lastCheckValue"],
|
|
81
81
|
setup(props, { emit }) {
|
|
82
|
-
const {
|
|
83
|
-
|
|
82
|
+
const {
|
|
83
|
+
size,
|
|
84
|
+
disabled,
|
|
85
|
+
modelValue,
|
|
86
|
+
trueValue,
|
|
87
|
+
falseValue,
|
|
88
|
+
value,
|
|
89
|
+
options,
|
|
90
|
+
lastCheckValue,
|
|
91
|
+
} = toRefs(props);
|
|
84
92
|
const uid = ref<string | undefined>(undefined);
|
|
85
93
|
|
|
86
94
|
const checkboxClass = computed(() => {
|
|
@@ -109,21 +117,40 @@ export default defineComponent({
|
|
|
109
117
|
if (Array.isArray(modelValue.value)) {
|
|
110
118
|
const valueSet: Set<any> = new Set(modelValue.value);
|
|
111
119
|
|
|
112
|
-
const lastCheckIndex =
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
120
|
+
const lastCheckIndex =
|
|
121
|
+
lastCheckValue.value === null ||
|
|
122
|
+
lastCheckValue.value === undefined ||
|
|
123
|
+
!options.value
|
|
124
|
+
? -1
|
|
125
|
+
: options.value.findIndex((o) =>
|
|
126
|
+
isEqual(o.value, lastCheckValue.value),
|
|
127
|
+
);
|
|
128
|
+
const currentCheckIndex =
|
|
129
|
+
options.value?.findIndex((o) => isEqual(o.value, value.value)) || -1;
|
|
130
|
+
|
|
131
|
+
if (
|
|
132
|
+
!options.value ||
|
|
133
|
+
lastCheckIndex === -1 ||
|
|
134
|
+
lastCheckIndex === currentCheckIndex ||
|
|
135
|
+
!e.shiftKey
|
|
136
|
+
) {
|
|
116
137
|
if (isChecked.value) {
|
|
117
138
|
valueSet.delete(value.value);
|
|
118
139
|
emit("update:lastCheckValue", null);
|
|
119
140
|
} else {
|
|
120
141
|
valueSet.add(value.value);
|
|
121
|
-
emit(
|
|
142
|
+
emit("update:lastCheckValue", value.value);
|
|
122
143
|
}
|
|
123
144
|
} else {
|
|
124
145
|
emit("update:lastCheckValue", null);
|
|
125
|
-
const start =
|
|
126
|
-
|
|
146
|
+
const start =
|
|
147
|
+
lastCheckIndex < currentCheckIndex
|
|
148
|
+
? lastCheckIndex
|
|
149
|
+
: currentCheckIndex;
|
|
150
|
+
const end =
|
|
151
|
+
lastCheckIndex < currentCheckIndex
|
|
152
|
+
? currentCheckIndex
|
|
153
|
+
: lastCheckIndex;
|
|
127
154
|
options.value.slice(start, end + 1).forEach((o) => {
|
|
128
155
|
if (o.disabled) return;
|
|
129
156
|
valueSet.add(o.value);
|
|
@@ -135,7 +162,7 @@ export default defineComponent({
|
|
|
135
162
|
|
|
136
163
|
emit(
|
|
137
164
|
"update:modelValue",
|
|
138
|
-
isChecked.value ? falseValue.value : trueValue.value
|
|
165
|
+
isChecked.value ? falseValue.value : trueValue.value,
|
|
139
166
|
);
|
|
140
167
|
}
|
|
141
168
|
|
|
@@ -153,55 +180,71 @@ export default defineComponent({
|
|
|
153
180
|
});
|
|
154
181
|
</script>
|
|
155
182
|
|
|
156
|
-
<style
|
|
157
|
-
.
|
|
158
|
-
|
|
183
|
+
<style>
|
|
184
|
+
@reference '~ui/app/assets/css/main.css';
|
|
185
|
+
|
|
186
|
+
.checkbox {
|
|
187
|
+
@apply inline-flex relative text-base align-top overflow-hidden;
|
|
188
|
+
}
|
|
159
189
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
190
|
+
.checkbox.inactive label {
|
|
191
|
+
@apply pointer-events-none;
|
|
192
|
+
}
|
|
163
193
|
|
|
164
|
-
|
|
165
|
-
|
|
194
|
+
.checkbox.checkbox-sm {
|
|
195
|
+
@apply text-sm;
|
|
196
|
+
}
|
|
166
197
|
|
|
167
|
-
|
|
168
|
-
|
|
198
|
+
.checkbox.checkbox-sm label {
|
|
199
|
+
@apply text-sm;
|
|
200
|
+
}
|
|
169
201
|
|
|
170
|
-
|
|
171
|
-
|
|
202
|
+
.checkbox input {
|
|
203
|
+
@apply absolute -top-10 -left-10;
|
|
204
|
+
}
|
|
172
205
|
|
|
173
|
-
|
|
174
|
-
|
|
206
|
+
.checkbox label {
|
|
207
|
+
@apply relative text-base text-pgray-3 cursor-pointer;
|
|
208
|
+
}
|
|
175
209
|
|
|
176
|
-
|
|
177
|
-
|
|
210
|
+
.checkbox label .icon {
|
|
211
|
+
@apply hidden;
|
|
212
|
+
}
|
|
178
213
|
|
|
179
|
-
|
|
180
|
-
|
|
214
|
+
.checkbox label span {
|
|
215
|
+
@apply ml-2;
|
|
216
|
+
}
|
|
181
217
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
218
|
+
.checkbox input:not(:checked) + label:not(.is-check-some) .icon-square {
|
|
219
|
+
@apply inline-block;
|
|
220
|
+
}
|
|
185
221
|
|
|
186
|
-
|
|
187
|
-
|
|
222
|
+
.checkbox input:not(:checked) + label.is-check-some {
|
|
223
|
+
@apply text-primary;
|
|
224
|
+
}
|
|
188
225
|
|
|
189
|
-
|
|
190
|
-
|
|
226
|
+
.checkbox input:not(:checked) + label.is-check-some .icon-square {
|
|
227
|
+
@apply hidden;
|
|
228
|
+
}
|
|
191
229
|
|
|
192
|
-
|
|
193
|
-
|
|
230
|
+
.checkbox input:not(:checked) + label.is-check-some .icon-minus-square {
|
|
231
|
+
@apply inline-block;
|
|
232
|
+
}
|
|
194
233
|
|
|
195
|
-
|
|
196
|
-
|
|
234
|
+
.checkbox input:checked + label,
|
|
235
|
+
.checkbox.is-check-some {
|
|
236
|
+
@apply text-primary;
|
|
237
|
+
}
|
|
197
238
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
239
|
+
.checkbox input:checked + label .icon-check-square {
|
|
240
|
+
@apply inline-block;
|
|
241
|
+
}
|
|
201
242
|
|
|
202
|
-
|
|
203
|
-
|
|
243
|
+
.checkbox input:not(:checked):disabled + label {
|
|
244
|
+
@apply text-pgray-4 cursor-default pointer-events-none;
|
|
245
|
+
}
|
|
204
246
|
|
|
205
|
-
|
|
206
|
-
|
|
247
|
+
.checkbox input:checked:disabled + label {
|
|
248
|
+
@apply text-pgray-3 cursor-default pointer-events-none;
|
|
249
|
+
}
|
|
207
250
|
</style>
|
|
@@ -51,7 +51,7 @@ export default defineComponent({
|
|
|
51
51
|
btnClass.push(`circle-button-${color.value}`);
|
|
52
52
|
}
|
|
53
53
|
if (shadow.value) {
|
|
54
|
-
btnClass.push("shadow");
|
|
54
|
+
btnClass.push("shadow-default");
|
|
55
55
|
}
|
|
56
56
|
if (active.value) {
|
|
57
57
|
btnClass.push("active");
|
|
@@ -71,25 +71,34 @@ export default defineComponent({
|
|
|
71
71
|
});
|
|
72
72
|
</script>
|
|
73
73
|
|
|
74
|
-
<style
|
|
75
|
-
.
|
|
76
|
-
@apply inline-flex items-center justify-center relative w-10 h-10 rounded-full bg-white text-xl s('leading-5.75') text-white
|
|
74
|
+
<style>
|
|
75
|
+
@reference '~ui/app/assets/css/main.css';
|
|
77
76
|
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
.circle-button {
|
|
78
|
+
@apply inline-flex items-center justify-center relative w-10 h-10 rounded-full bg-white text-xl leading-5.75 text-white;
|
|
79
|
+
}
|
|
80
80
|
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
.circle-button-lg {
|
|
82
|
+
@apply w-13.5 h-13.5 text-2.67xl;
|
|
83
|
+
}
|
|
83
84
|
|
|
84
|
-
|
|
85
|
-
|
|
85
|
+
.circle-button-lg .badge {
|
|
86
|
+
@apply top-1.75 right-3 w-1 h-1;
|
|
87
|
+
}
|
|
86
88
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
+
.circle-button-highlight-400 {
|
|
90
|
+
@apply bg-highlight-400;
|
|
91
|
+
}
|
|
89
92
|
|
|
90
|
-
|
|
91
|
-
|
|
93
|
+
.circle-button-highlight-400.shadow {
|
|
94
|
+
@apply shadow-md;
|
|
95
|
+
}
|
|
92
96
|
|
|
93
|
-
|
|
94
|
-
|
|
97
|
+
.circle-button-highlight-400.active {
|
|
98
|
+
@apply border border-highlight text-highlight;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.circle-button .badge {
|
|
102
|
+
@apply absolute top-1.5 right-2 block w-0.75 h-0.75 rounded-full bg-highlight;
|
|
103
|
+
}
|
|
95
104
|
</style>
|
|
@@ -24,7 +24,7 @@ export default defineComponent({
|
|
|
24
24
|
props: {
|
|
25
25
|
blockTitleIcon: {
|
|
26
26
|
type: String,
|
|
27
|
-
default:
|
|
27
|
+
default: "",
|
|
28
28
|
},
|
|
29
29
|
blockTitle: {
|
|
30
30
|
type: String,
|
|
@@ -95,38 +95,49 @@ export default defineComponent({
|
|
|
95
95
|
});
|
|
96
96
|
</script>
|
|
97
97
|
|
|
98
|
-
<style
|
|
99
|
-
.
|
|
100
|
-
@apply s('p-3.75') border border-secondary-400 rounded-lg
|
|
101
|
-
|
|
102
|
-
&.collapsed
|
|
103
|
-
.sl-collapsable-block-header
|
|
104
|
-
.toggle-collapse-button
|
|
105
|
-
.icon
|
|
106
|
-
@apply rotate-0
|
|
107
|
-
|
|
108
|
-
.sl-collapsable-block-body
|
|
109
|
-
@apply pt-0
|
|
110
|
-
|
|
111
|
-
&-header
|
|
112
|
-
.collapse-block-title-icon
|
|
113
|
-
@apply text-sm text-primary
|
|
114
|
-
|
|
115
|
-
.collapse-block-title
|
|
116
|
-
@apply text-base text-pgray-1 font-bold
|
|
98
|
+
<style>
|
|
99
|
+
@reference '~ui/app/assets/css/main.css';
|
|
117
100
|
|
|
118
|
-
|
|
119
|
-
|
|
101
|
+
.sl-collapsable-block {
|
|
102
|
+
@apply p-3.75 border border-secondary-400 rounded-lg;
|
|
103
|
+
}
|
|
120
104
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
105
|
+
.sl-collapsable-block.collapsed
|
|
106
|
+
.sl-collapsable-block-header
|
|
107
|
+
.toggle-collapse-button
|
|
108
|
+
.icon {
|
|
109
|
+
@apply rotate-0;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.sl-collapsable-block.collapsed .sl-collapsable-block-body {
|
|
113
|
+
@apply pt-0;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.sl-collapsable-block-header .collapse-block-title-icon {
|
|
117
|
+
@apply text-sm text-primary;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.sl-collapsable-block-header .collapse-block-title {
|
|
121
|
+
@apply text-base text-pgray-1 font-bold;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.sl-collapsable-block-header .toggle-collapse-button {
|
|
125
|
+
@apply inline-flex items-center space-x-2;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.sl-collapsable-block-header .toggle-collapse-button .button-title {
|
|
129
|
+
@apply text-sm text-primary;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.sl-collapsable-block-header .toggle-collapse-button .icon {
|
|
133
|
+
@apply text-xs leading-none text-primary-600 rotate-180 transition-transform;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.sl-collapsable-block-body {
|
|
137
|
+
@apply relative pt-4 overflow-hidden transition-all;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.sl-collapsable-block-body .collapsable-block-wrapper {
|
|
141
|
+
@apply absolute top-4 left-0 w-full;
|
|
142
|
+
}
|
|
132
143
|
</style>
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
<script lang="ts">
|
|
25
25
|
import type { PropType } from "vue";
|
|
26
|
-
import type IInputOption from "~ui/interface/IInputOption";
|
|
26
|
+
import type IInputOption from "~ui/app/interface/IInputOption";
|
|
27
27
|
|
|
28
28
|
export default defineComponent({
|
|
29
29
|
name: "SLCollapsableMultiPillSelect",
|
|
@@ -47,7 +47,7 @@ export default defineComponent({
|
|
|
47
47
|
const filteredOptions = computed(() => {
|
|
48
48
|
if (!showIndustryTypes.value) {
|
|
49
49
|
return options.value.filter((option) =>
|
|
50
|
-
modelValue.value.includes(option.value)
|
|
50
|
+
modelValue.value.includes(option.value),
|
|
51
51
|
);
|
|
52
52
|
}
|
|
53
53
|
|
|
@@ -72,21 +72,26 @@ export default defineComponent({
|
|
|
72
72
|
});
|
|
73
73
|
</script>
|
|
74
74
|
|
|
75
|
-
<style
|
|
76
|
-
.
|
|
77
|
-
.toggle-button
|
|
78
|
-
@apply inline-flex items-center justify-between w-80 p-2 mb-2 border border-primary-500 rounded text-base text-pgray-2
|
|
75
|
+
<style>
|
|
76
|
+
@reference '~ui/app/assets/css/main.css';
|
|
79
77
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
78
|
+
.collapsable-multi-pill-select .toggle-button {
|
|
79
|
+
@apply inline-flex items-center justify-between w-80 p-2 mb-2 border border-primary-500 rounded text-base text-pgray-2;
|
|
80
|
+
}
|
|
83
81
|
|
|
84
|
-
|
|
85
|
-
|
|
82
|
+
.collapsable-multi-pill-select .toggle-button.active .toggle-icon {
|
|
83
|
+
@apply rotate-180;
|
|
84
|
+
}
|
|
86
85
|
|
|
87
|
-
|
|
88
|
-
|
|
86
|
+
.collapsable-multi-pill-select .toggle-button .toggle-icon {
|
|
87
|
+
@apply transform origin-center;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.collapsable-multi-pill-select .pills {
|
|
91
|
+
@apply -mx-1 mb-4 border-b border-primary-300;
|
|
92
|
+
}
|
|
89
93
|
|
|
90
|
-
|
|
91
|
-
|
|
94
|
+
.collapsable-multi-pill-select .pills .pill-checkbox {
|
|
95
|
+
@apply mx-1 mb-2;
|
|
96
|
+
}
|
|
92
97
|
</style>
|
|
@@ -112,11 +112,14 @@ export default defineComponent({
|
|
|
112
112
|
});
|
|
113
113
|
</script>
|
|
114
114
|
|
|
115
|
-
<style
|
|
116
|
-
.
|
|
117
|
-
.modal-backdrop
|
|
118
|
-
@apply s('bg-white/40') backdrop-blur-5
|
|
115
|
+
<style>
|
|
116
|
+
@reference '~ui/app/assets/css/main.css';
|
|
119
117
|
|
|
120
|
-
|
|
121
|
-
|
|
118
|
+
.confirm-modal .modal-backdrop {
|
|
119
|
+
@apply bg-white/40 backdrop-blur-[5px];
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.confirm-modal-footer {
|
|
123
|
+
@apply flex justify-center space-x-4;
|
|
124
|
+
}
|
|
122
125
|
</style>
|