@mixd-id/web-scaffold 0.1.250801003 → 0.1.250801005
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/docs/components/Dashboard.md +56 -0
- package/package.json +2 -1
- package/src/components/Ahref.vue +1 -1
- package/src/components/Alert.vue +1 -1
- package/src/components/ArrayList.vue +2 -2
- package/src/components/Article.vue +2 -2
- package/src/components/Button.vue +1 -1
- package/src/components/Card.vue +221 -0
- package/src/components/Cart.vue +2 -2
- package/src/components/CartIcon.vue +1 -1
- package/src/components/Checkout.vue +2 -2
- package/src/components/CheckoutDelivery.vue +1 -1
- package/src/components/CodeEditor.vue +1 -1
- package/src/components/ColorPicker.vue +3 -3
- package/src/components/ColorPicker2.vue +3 -3
- package/src/components/ColorPicker3.vue +1 -1
- package/src/components/Confirm.vue +1 -1
- package/src/components/ContextMenu.vue +2 -2
- package/src/components/ContextMenuItem.vue +53 -0
- package/src/components/Dashboard.vue +243 -0
- package/src/components/Dashboard2.vue +1 -1
- package/src/components/DashboardComponentSelector.vue +96 -0
- package/src/components/DashboardConfigs.vue +202 -0
- package/src/components/Datepicker.vue +2 -2
- package/src/components/DayTimeRange.vue +2 -2
- package/src/components/Dropdown.vue +2 -2
- package/src/components/Flex.vue +6 -4
- package/src/components/GHeatMaps.vue +3 -3
- package/src/components/HTMLEditor.vue +8 -4
- package/src/components/Image.vue +1 -1
- package/src/components/ImportModal.vue +1 -1
- package/src/components/List.vue +81 -109
- package/src/components/ListPage1.vue +14 -15
- package/src/components/ListView.vue +5 -6
- package/src/components/ListViewSettings.vue +2 -2
- package/src/components/LogViewerItem.vue +1 -1
- package/src/components/MarkdownEdit.vue +3 -3
- package/src/components/MarkdownPreview.vue +3 -3
- package/src/components/Modal.vue +39 -18
- package/src/components/MultiDropdown.vue +1 -1
- package/src/components/MultilineText.vue +1 -1
- package/src/components/OTPField.vue +11 -17
- package/src/components/PageBuilder.vue +3 -3
- package/src/components/Radio.vue +1 -1
- package/src/components/SearchModal.vue +1 -1
- package/src/components/Slider.vue +1 -1
- package/src/components/SvgEditor.vue +2 -2
- package/src/components/Switch.vue +4 -5
- package/src/components/Table.vue +2 -2
- package/src/components/TableView.vue +2 -3
- package/src/components/TableViewHead.vue +2 -2
- package/src/components/TextEditor.vue +3 -3
- package/src/components/TextWithTag.vue +23 -5
- package/src/components/Textarea.vue +11 -13
- package/src/components/Textbox.vue +2 -1
- package/src/components/Timepicker.vue +2 -2
- package/src/components/Toast.vue +1 -1
- package/src/components/TreeMenu.vue +2 -2
- package/src/components/TreeView2.vue +3 -2
- package/src/components/TreeViewItem2.vue +7 -4
- package/src/components/VirtualGrid.vue +3 -3
- package/src/components/VirtualTable.vue +20 -19
- package/src/index.js +4 -1
- package/src/themes/default/index.js +53 -150
- package/src/utils/helpers.mjs +6 -12
- package/src/utils/wss.mjs +0 -2
- package/src/widgets/AhrefSetting.vue +1 -1
- package/src/widgets/ArticleSetting.vue +1 -1
- package/src/widgets/BackgroundColorSetting.vue +1 -1
- package/src/widgets/BotEditor/BotEditorActions.vue +2 -2
- package/src/widgets/BotEditor.vue +4 -4
- package/src/widgets/ButtonSetting.vue +1 -1
- package/src/widgets/CarouselSetting.vue +1 -1
- package/src/widgets/CartSetting.vue +1 -1
- package/src/widgets/CheckoutSetting.vue +1 -1
- package/src/widgets/CollapsiblePanelSetting.vue +1 -1
- package/src/widgets/ColumnSelector.vue +1 -1
- package/src/widgets/ComponentSetting.vue +1 -1
- package/src/widgets/ComponentSetting2.vue +2 -12
- package/src/widgets/ComponentSetting3.vue +1 -1
- package/src/widgets/ContactForm.vue +1 -1
- package/src/widgets/ContactFormSetting.vue +7 -7
- package/src/widgets/Dashboard/BarChart.vue +5 -6
- package/src/widgets/Dashboard/BarChartSetting.vue +1 -1
- package/src/widgets/Dashboard/DataTableSetting.vue +3 -3
- package/src/widgets/Dashboard/DatasourceSelector.vue +1 -1
- package/src/widgets/Dashboard/DoughnutSetting.vue +1 -1
- package/src/widgets/Dashboard/Metric.vue +1 -1
- package/src/widgets/Dashboard/PieSetting.vue +1 -1
- package/src/widgets/Dashboard/PolarAreaSetting.vue +1 -1
- package/src/widgets/Dashboard/ViewSelector.vue +1 -1
- package/src/widgets/Dashboard/VirtualTableSetting.vue +121 -180
- package/src/widgets/{Dashboard.vue → Dashboard0.vue} +10 -10
- package/src/widgets/FAQSetting.vue +3 -3
- package/src/widgets/FeatureListSetting.vue +3 -3
- package/src/widgets/FlexSetting.vue +1 -1
- package/src/widgets/GridSetting.vue +1 -19
- package/src/widgets/Header2Setting.vue +1 -1
- package/src/widgets/HeaderSetting.vue +1 -1
- package/src/widgets/IconListSetting.vue +2 -2
- package/src/widgets/ImageSetting.vue +1 -1
- package/src/widgets/LinkSetting.vue +1 -1
- package/src/widgets/LinkSettingModal.vue +1 -1
- package/src/widgets/LogViewer.vue +1 -1
- package/src/widgets/MarginSetting.vue +2 -2
- package/src/widgets/MenuEditor.vue +1 -1
- package/src/widgets/MenuItem1Setting.vue +1 -1
- package/src/widgets/ModalSetting.vue +1 -1
- package/src/widgets/MultiValueSetting.vue +2 -2
- package/src/widgets/MultiValueSetting2.vue +2 -2
- package/src/widgets/OGSettingModal.vue +1 -1
- package/src/widgets/PaddingSetting.vue +2 -2
- package/src/widgets/ParagraphSetting.vue +1 -1
- package/src/widgets/PresetBar.vue +28 -16
- package/src/widgets/PresetBarPivot.vue +8 -8
- package/src/widgets/PresetSelector.vue +12 -12
- package/src/widgets/SearchModalSetting.vue +1 -1
- package/src/widgets/ShareSetting.vue +3 -3
- package/src/widgets/StyleSetting.vue +1 -1
- package/src/widgets/TestimonialSetting.vue +3 -3
- package/src/widgets/TextBlockSetting.vue +1 -1
- package/src/widgets/UserActionBuilder/UserActionOutput.vue +1 -1
- package/src/widgets/UserActionBuilder/UserActionOutputReply.vue +1 -1
- package/src/widgets/UserActionBuilder/UserActionProps.vue +3 -3
- package/src/widgets/UserActionBuilder.vue +4 -4
- package/src/widgets/WebPageBuilder.vue +17 -17
- package/src/widgets/WebPageBuilder2.vue +7 -7
- package/src/widgets/WebPageBuilder4/MultiValueSetting.vue +2 -2
- package/src/widgets/WebPageBuilder4.vue +5 -5
- package/src/widgets/YoutubeVideoSetting.vue +1 -1
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Dashboard
|
|
2
|
+
Dashboard components
|
|
3
|
+
|
|
4
|
+
## Configs
|
|
5
|
+
| Property | Type | Default | Description |
|
|
6
|
+
|----------|------|---------|-------------|
|
|
7
|
+
| params | Object | {} | | Dashboard parameters |
|
|
8
|
+
| params.presetUid | String | "" | | Preset unique identifier |
|
|
9
|
+
|
|
10
|
+
## Samples
|
|
11
|
+
```json
|
|
12
|
+
{
|
|
13
|
+
"params": {
|
|
14
|
+
"presetUid": "abc",
|
|
15
|
+
"viewUid": "def"
|
|
16
|
+
},
|
|
17
|
+
|
|
18
|
+
"presets": [
|
|
19
|
+
|
|
20
|
+
{
|
|
21
|
+
"name": "Preset Name",
|
|
22
|
+
|
|
23
|
+
"views": [
|
|
24
|
+
{
|
|
25
|
+
"type": "Grid",
|
|
26
|
+
"uid": ":uid"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
|
|
30
|
+
"datasource": {
|
|
31
|
+
|
|
32
|
+
":uid": {
|
|
33
|
+
"uid": ":uid",
|
|
34
|
+
"datasourceUid": "234",
|
|
35
|
+
"filters": [],
|
|
36
|
+
"sorts": [],
|
|
37
|
+
"groups": [],
|
|
38
|
+
"pivot": []
|
|
39
|
+
},
|
|
40
|
+
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
## Sub Components
|
|
51
|
+
|
|
52
|
+
### Dashboard Configs
|
|
53
|
+
Dashboard configuration panel
|
|
54
|
+
|
|
55
|
+
### Dashboard Component Selector
|
|
56
|
+
Component selector for adding component to preset views
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mixd-id/web-scaffold",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.250801005",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"dev": "vite serve",
|
|
7
7
|
"build": "vite build",
|
|
@@ -64,6 +64,7 @@
|
|
|
64
64
|
"glob": "^8.0.3",
|
|
65
65
|
"lodash": "^4.17.21",
|
|
66
66
|
"lodash-es": "^4.17.21",
|
|
67
|
+
"marked": "^16.4.1",
|
|
67
68
|
"md5": "^2.3.0",
|
|
68
69
|
"mitt": "^3.0.1",
|
|
69
70
|
"pinia": "^2.0.2",
|
package/src/components/Ahref.vue
CHANGED
package/src/components/Alert.vue
CHANGED
|
@@ -205,7 +205,7 @@ export default{
|
|
|
205
205
|
|
|
206
206
|
.alert>*{
|
|
207
207
|
@apply max-h-[60vh] overflow-y-auto bg-base-400 dark:bg-base-300 rounded-xl;
|
|
208
|
-
@apply border-[1px] border-
|
|
208
|
+
@apply border-[1px] border-border-50;
|
|
209
209
|
@apply min-w-[280px] max-w-[80vw] md:max-w-[480px];
|
|
210
210
|
}
|
|
211
211
|
|
|
@@ -37,12 +37,12 @@ export default{
|
|
|
37
37
|
|
|
38
38
|
.comp{
|
|
39
39
|
@apply min-w-[200px] p-1;
|
|
40
|
-
@apply border-[1px] border-
|
|
40
|
+
@apply border-[1px] border-border-200 bg-base-300 hover:border-text-300 rounded-lg;
|
|
41
41
|
@apply flex flex-row items-start flex-nowrap;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
.item{
|
|
45
|
-
@apply border-[1px] border-
|
|
45
|
+
@apply border-[1px] border-border-200 hover:border-text-300 rounded-lg p-1 px-2;
|
|
46
46
|
@apply flex flex-row items-center gap-2;
|
|
47
47
|
}
|
|
48
48
|
|
|
@@ -376,11 +376,11 @@ export default{
|
|
|
376
376
|
.article font[size='7']{ @apply text-4xl; }
|
|
377
377
|
|
|
378
378
|
.article table{
|
|
379
|
-
@apply border-[1px] border-
|
|
379
|
+
@apply border-[1px] border-border-200 border-collapse w-full;
|
|
380
380
|
table-layout: fixed;
|
|
381
381
|
}
|
|
382
382
|
.article table th, .article table td{
|
|
383
|
-
@apply border-[1px] border-
|
|
383
|
+
@apply border-[1px] border-border-200 p-3 text-left;
|
|
384
384
|
@apply break-words;
|
|
385
385
|
}
|
|
386
386
|
|
|
@@ -137,7 +137,7 @@ export default{
|
|
|
137
137
|
<style module>
|
|
138
138
|
|
|
139
139
|
.button{
|
|
140
|
-
@apply p-2 rounded-lg relative inline-flex flex-row items-center justify-center;
|
|
140
|
+
@apply p-2 px-8 rounded-lg relative inline-flex flex-row items-center justify-center;
|
|
141
141
|
@apply whitespace-nowrap text-ellipsis overflow-hidden min-h-7;
|
|
142
142
|
@apply border-[1px];
|
|
143
143
|
@apply active:top-[1px] active:left-[1px] disabled:top-0 disabled:left-0;
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<Teleport v-if="float" to=".bW9k">
|
|
3
|
+
<Transition name="slideup"
|
|
4
|
+
@after-leave="onAfterLeave"
|
|
5
|
+
appear>
|
|
6
|
+
<div v-if="computedState"
|
|
7
|
+
:class="computedClass"
|
|
8
|
+
:style="computedStyle">
|
|
9
|
+
|
|
10
|
+
<slot name="header">
|
|
11
|
+
<div class="relative">
|
|
12
|
+
<div class="absolute top-0 right-0">
|
|
13
|
+
<button type="button" @click="close" class="p-4">
|
|
14
|
+
<svg width="24" height="24" viewBox="0 0 24 24" class="fill-text-300 hover:fill-red-500" xmlns="http://www.w3.org/2000/svg">
|
|
15
|
+
<path d="M6.53034 5.46965C6.23745 5.17676 5.76257 5.17676 5.46968 5.46965C5.17679 5.76255 5.17679 6.23742 5.46968 6.53031L10.9393 12L5.46967 17.4697C5.17678 17.7626 5.17678 18.2374 5.46967 18.5303C5.76256 18.8232 6.23744 18.8232 6.53033 18.5303L12 13.0606L17.4697 18.5303C17.7626 18.8232 18.2375 18.8232 18.5303 18.5303C18.8232 18.2374 18.8232 17.7626 18.5303 17.4697L13.0607 12L18.5303 6.53032C18.8232 6.23743 18.8232 5.76256 18.5303 5.46966C18.2374 5.17677 17.7626 5.17677 17.4697 5.46966L12 10.9393L6.53034 5.46965Z"/>
|
|
16
|
+
</svg>
|
|
17
|
+
</button>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
</slot>
|
|
21
|
+
|
|
22
|
+
<slot name="default"></slot>
|
|
23
|
+
|
|
24
|
+
</div>
|
|
25
|
+
</Transition>
|
|
26
|
+
</Teleport>
|
|
27
|
+
<div v-else :class="computedClass">
|
|
28
|
+
<slot name="default"></slot>
|
|
29
|
+
</div>
|
|
30
|
+
</template>
|
|
31
|
+
|
|
32
|
+
<script>
|
|
33
|
+
|
|
34
|
+
const modals = []
|
|
35
|
+
|
|
36
|
+
const onDismiss = (e) => {
|
|
37
|
+
if(e.target.classList.contains('bW9k')){
|
|
38
|
+
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
document.querySelector('.bW9k').addEventListener('click', onDismiss)
|
|
43
|
+
|
|
44
|
+
export default{
|
|
45
|
+
|
|
46
|
+
computed: {
|
|
47
|
+
|
|
48
|
+
computedClass(){
|
|
49
|
+
return [
|
|
50
|
+
this.float ? this.$style.modal : this.$style.static,
|
|
51
|
+
this.class,
|
|
52
|
+
this.computedState ? this.$style['state-open'] : ''
|
|
53
|
+
]
|
|
54
|
+
.join(' ')
|
|
55
|
+
.trim()
|
|
56
|
+
},
|
|
57
|
+
|
|
58
|
+
computedState(){
|
|
59
|
+
return this.mounted &&
|
|
60
|
+
(this.query ? this.query in this.$route.query : this._state);
|
|
61
|
+
},
|
|
62
|
+
|
|
63
|
+
computedStyle(){
|
|
64
|
+
return {
|
|
65
|
+
width: (res => /^\d+$/.test(res) ? parseInt(res) + 'px' : res)(this.width),
|
|
66
|
+
height: (res => /^\d+$/.test(res) ? parseInt(res) + 'px' : res)(this.height),
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
|
|
70
|
+
computedTransition(){
|
|
71
|
+
return 'slidedown'
|
|
72
|
+
},
|
|
73
|
+
|
|
74
|
+
},
|
|
75
|
+
|
|
76
|
+
data(){
|
|
77
|
+
return {
|
|
78
|
+
mounted: false,
|
|
79
|
+
_state: false
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
|
|
83
|
+
methods:{
|
|
84
|
+
|
|
85
|
+
close(){
|
|
86
|
+
if(!this.float) return
|
|
87
|
+
|
|
88
|
+
if(this.query){
|
|
89
|
+
this.$router.replace({
|
|
90
|
+
...this.$route,
|
|
91
|
+
query: {
|
|
92
|
+
...this.$route.query,
|
|
93
|
+
[this.query]: undefined
|
|
94
|
+
}
|
|
95
|
+
})
|
|
96
|
+
}
|
|
97
|
+
else{
|
|
98
|
+
this._state = false
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
},
|
|
102
|
+
|
|
103
|
+
open(){
|
|
104
|
+
if(this.query){
|
|
105
|
+
|
|
106
|
+
}
|
|
107
|
+
else{
|
|
108
|
+
this._state = true
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
|
|
112
|
+
onAfterLeave(){
|
|
113
|
+
this.$nextTick(() => {
|
|
114
|
+
let overlay = document.querySelector('.bW9k')
|
|
115
|
+
if(overlay){
|
|
116
|
+
if(overlay.children.length < 1)
|
|
117
|
+
overlay.classList.remove('bW9l')
|
|
118
|
+
}
|
|
119
|
+
})
|
|
120
|
+
},
|
|
121
|
+
|
|
122
|
+
},
|
|
123
|
+
|
|
124
|
+
mounted(){
|
|
125
|
+
this.mounted = true
|
|
126
|
+
},
|
|
127
|
+
|
|
128
|
+
props:{
|
|
129
|
+
|
|
130
|
+
class: String,
|
|
131
|
+
|
|
132
|
+
float: Boolean,
|
|
133
|
+
|
|
134
|
+
height: {
|
|
135
|
+
type: [ String, Number ],
|
|
136
|
+
},
|
|
137
|
+
|
|
138
|
+
state: {
|
|
139
|
+
type: Boolean,
|
|
140
|
+
default: false
|
|
141
|
+
},
|
|
142
|
+
|
|
143
|
+
query: String,
|
|
144
|
+
|
|
145
|
+
width: [ String, Number ],
|
|
146
|
+
|
|
147
|
+
},
|
|
148
|
+
|
|
149
|
+
watch: {
|
|
150
|
+
|
|
151
|
+
computedState: {
|
|
152
|
+
immediate: true,
|
|
153
|
+
handler(state){
|
|
154
|
+
if(!this.float) return
|
|
155
|
+
|
|
156
|
+
let overlay = document.querySelector('.bW9k')
|
|
157
|
+
if(overlay){
|
|
158
|
+
if(state){
|
|
159
|
+
overlay.classList.add('bW9l')
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
</script>
|
|
170
|
+
|
|
171
|
+
<style>
|
|
172
|
+
|
|
173
|
+
.bW9k{
|
|
174
|
+
@apply z-20 hidden w-[100vw] h-[100vh];
|
|
175
|
+
@apply bg-white/50 backdrop-blur-xl;
|
|
176
|
+
position: fixed;
|
|
177
|
+
top: 0;
|
|
178
|
+
left: 0;
|
|
179
|
+
bottom: 0;
|
|
180
|
+
right: 0;
|
|
181
|
+
z-index: 100;
|
|
182
|
+
}
|
|
183
|
+
[data-theme="dark"] .bW9k{
|
|
184
|
+
@apply bg-black/50;
|
|
185
|
+
}
|
|
186
|
+
.bW9l{
|
|
187
|
+
@apply flex items-center justify-center;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
</style>
|
|
191
|
+
|
|
192
|
+
<style module>
|
|
193
|
+
|
|
194
|
+
.static{
|
|
195
|
+
@apply flex flex-col;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.modal{
|
|
199
|
+
@apply fixed;
|
|
200
|
+
@apply bg-base-400 dark:bg-base-300;
|
|
201
|
+
@apply border-[1px] border-border-50 flex max-h-[90vh] max-w-full;
|
|
202
|
+
@apply rounded-xl overflow-hidden transition-all;
|
|
203
|
+
@apply flex flex-col;
|
|
204
|
+
z-index: 101;
|
|
205
|
+
transition: all 200ms cubic-bezier(0.25, 1, 0.5, 1);
|
|
206
|
+
transform: scale(0);
|
|
207
|
+
opacity: 0;
|
|
208
|
+
}
|
|
209
|
+
.modal.state-open{
|
|
210
|
+
transform: scale(1);
|
|
211
|
+
opacity: 1;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
.overlay{
|
|
215
|
+
@apply absolute z-20 left-0 bottom-0 top-0 right-0 bg-white/50 backdrop-blur-sm;
|
|
216
|
+
}
|
|
217
|
+
html[data-theme='dark'] .overlay{
|
|
218
|
+
@apply bg-black/50;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
</style>
|
package/src/components/Cart.vue
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
<h3>Cart</h3>
|
|
20
20
|
</div>
|
|
21
21
|
|
|
22
|
-
<div class="divide-y divide-
|
|
22
|
+
<div class="divide-y divide-border-50 px-3 bg-base-300 min-h-[80vh]">
|
|
23
23
|
<div v-for="item in cart.items" class="flex flex-row gap-2 p-2">
|
|
24
24
|
<Checkbox v-model="item.checked" />
|
|
25
25
|
<Image :src="item.imageUrl" class="w-[56px] aspect-square rounded-lg" />
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
</div>
|
|
57
57
|
</div>
|
|
58
58
|
|
|
59
|
-
<div class="p-5 py-3 bg-base-300 flex flex-row sticky bottom-0 border-t-[1px] border-
|
|
59
|
+
<div class="p-5 py-3 bg-base-300 flex flex-row sticky bottom-0 border-t-[1px] border-border-50">
|
|
60
60
|
<div v-if="cart?.total > 0" class="flex flex-col flex-1 leading-3">
|
|
61
61
|
<small>Total</small>
|
|
62
62
|
<h5>Rp. {{ cart.total.toLocaleString() }}</h5>
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
<ContextMenu ref="contextMenu"
|
|
24
24
|
position="bottom-right"
|
|
25
25
|
class="border-transparent">
|
|
26
|
-
<div class="flex flex-col min-w-[300px] divide-y divide-
|
|
26
|
+
<div class="flex flex-col min-w-[300px] divide-y divide-border-50">
|
|
27
27
|
|
|
28
28
|
<div class="" @click.stop>
|
|
29
29
|
<div class="p-5 py-3 flex flex-row items-center">
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
|
|
67
67
|
<div class="mt-1 p-5 bg-base-300 flex flex-col gap-3">
|
|
68
68
|
<div v-for="item in order.items" class="flex flex-row gap-3">
|
|
69
|
-
<Image :src="item.imageSrc" class="w-[60px] aspect-square rounded-lg bg-base-
|
|
69
|
+
<Image :src="item.imageSrc" class="w-[60px] aspect-square rounded-lg bg-base-300" />
|
|
70
70
|
<div class="flex-1 flex flex-col gap1">
|
|
71
71
|
<small>{{ item.code }}</small>
|
|
72
72
|
<strong>{{ item.name }}</strong>
|
|
@@ -173,7 +173,7 @@
|
|
|
173
173
|
|
|
174
174
|
</div>
|
|
175
175
|
|
|
176
|
-
<div class="flex md:hidden p-5 py-3 bg-base-300 flex-row sticky bottom-0 border-t-[1px] border-
|
|
176
|
+
<div class="flex md:hidden p-5 py-3 bg-base-300 flex-row sticky bottom-0 border-t-[1px] border-border-50">
|
|
177
177
|
<div v-if="order?.total > 0" class="flex flex-col flex-1 leading-3">
|
|
178
178
|
<small>Total</small>
|
|
179
179
|
<h5>Rp. {{ order.total.toLocaleString() }}</h5>
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<h3>Select Delivery</h3>
|
|
6
6
|
</div>
|
|
7
7
|
|
|
8
|
-
<div v-if="!newItem" class="flex flex-col divide-y divide-
|
|
8
|
+
<div v-if="!newItem" class="flex flex-col divide-y divide-border-50">
|
|
9
9
|
<div v-for="item in items"
|
|
10
10
|
class="p-5 py-3 flex flex-col cursor-pointer"
|
|
11
11
|
@click="apply(item)">
|
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
</div>
|
|
21
21
|
<div class="grid grid-cols-2 gap-4">
|
|
22
22
|
<button type="button" @click="select('')"
|
|
23
|
-
class="w-full p-1 border-
|
|
23
|
+
class="w-full p-1 border-border-100 border-[1px] rounded-lg">None</button>
|
|
24
24
|
<button type="button" v-if="mode !== 'class' && Boolean(customColor)"
|
|
25
|
-
class="w-full p-1 border-
|
|
25
|
+
class="w-full p-1 border-border-100 border-[1px] rounded-lg"
|
|
26
26
|
@click="$refs.inputColor.click()">Custom</button>
|
|
27
27
|
</div>
|
|
28
28
|
</div>
|
|
@@ -150,7 +150,7 @@ export default{
|
|
|
150
150
|
}
|
|
151
151
|
|
|
152
152
|
.circle{
|
|
153
|
-
@apply w-[24px] h-[24px] rounded-full cursor-pointer border-[2px] border-
|
|
153
|
+
@apply w-[24px] h-[24px] rounded-full cursor-pointer border-[2px] border-border-200;
|
|
154
154
|
}
|
|
155
155
|
|
|
156
156
|
.inputColor{
|
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
</div>
|
|
25
25
|
<div class="grid grid-cols-2 gap-4">
|
|
26
26
|
<button type="button" @click="select('')"
|
|
27
|
-
class="w-full p-1 border-
|
|
27
|
+
class="w-full p-1 border-border-100 border-[1px] rounded-lg">None</button>
|
|
28
28
|
<button type="button" v-if="mode !== 'class' && Boolean(customColor)"
|
|
29
|
-
class="w-full p-1 border-
|
|
29
|
+
class="w-full p-1 border-border-100 border-[1px] rounded-lg"
|
|
30
30
|
@click="$refs.inputColor.click()">Custom</button>
|
|
31
31
|
</div>
|
|
32
32
|
</div>
|
|
@@ -173,7 +173,7 @@ export default{
|
|
|
173
173
|
}
|
|
174
174
|
|
|
175
175
|
.circle{
|
|
176
|
-
@apply w-[24px] h-[24px] rounded-full cursor-pointer border-[2px] border-
|
|
176
|
+
@apply w-[24px] h-[24px] rounded-full cursor-pointer border-[2px] border-border-200;
|
|
177
177
|
}
|
|
178
178
|
|
|
179
179
|
.inputColor{
|
|
@@ -123,7 +123,7 @@ export default{
|
|
|
123
123
|
|
|
124
124
|
.confirm>*{
|
|
125
125
|
@apply max-h-[60vh] overflow-y-auto bg-base-400 dark:bg-base-300 rounded-xl;
|
|
126
|
-
@apply border-[1px] border-
|
|
126
|
+
@apply border-[1px] border-border-50;
|
|
127
127
|
@apply min-w-[280px] max-w-[80vw] md:max-w-[480px];
|
|
128
128
|
}
|
|
129
129
|
|
|
@@ -241,8 +241,8 @@ export default {
|
|
|
241
241
|
<style module>
|
|
242
242
|
|
|
243
243
|
.contextMenu{
|
|
244
|
-
@apply fixed bg-base-400
|
|
245
|
-
@apply whitespace-nowrap shadow-2xl border-[1px] border-
|
|
244
|
+
@apply fixed bg-base-400 backdrop-blur-xl min-w-[150px] overflow-y-auto rounded-lg;
|
|
245
|
+
@apply whitespace-nowrap shadow-2xl border-[1px] border-border-50 mt-[1px];
|
|
246
246
|
z-index: 180;
|
|
247
247
|
}
|
|
248
248
|
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div :class="$style.item">
|
|
3
|
+
<div class="py-1">
|
|
4
|
+
<div :class="`${$style.indicator}${value.status === 2 ? ` ${$style.read}` : ''}`"></div>
|
|
5
|
+
</div>
|
|
6
|
+
<div class="flex-1 flex flex-col">
|
|
7
|
+
<div class="flex flex-row gap-6">
|
|
8
|
+
<strong class="flex-1 text-ellipsis-nowrap">{{ value.title }}</strong>
|
|
9
|
+
<small class="text-text-400">{{ dayjs(value.createdAt).format('D MMM HH:mm') }}</small>
|
|
10
|
+
</div>
|
|
11
|
+
<div>
|
|
12
|
+
<p class="whitespace-pre-wrap line-clamp-2">Biscuit bonbon gummi bears biscuit jelly-o cupcake danish tart carrot cake. Icing muffin gummi bears</p>
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
15
|
+
</div>
|
|
16
|
+
</template>
|
|
17
|
+
|
|
18
|
+
<script>
|
|
19
|
+
|
|
20
|
+
import dayjs from "dayjs";
|
|
21
|
+
|
|
22
|
+
export default{
|
|
23
|
+
methods: {dayjs},
|
|
24
|
+
|
|
25
|
+
props: {
|
|
26
|
+
|
|
27
|
+
value: Object
|
|
28
|
+
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
</script>
|
|
34
|
+
|
|
35
|
+
<style module>
|
|
36
|
+
|
|
37
|
+
.item {
|
|
38
|
+
@apply flex flex-row gap-3 p-3;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.item:hover{
|
|
42
|
+
@apply bg-primary-50;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.indicator{
|
|
46
|
+
@apply w-[14px] h-[14px] rounded-full bg-primary-600;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.indicator.read{
|
|
50
|
+
@apply bg-text-300;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
</style>
|