@7365admin1/layer-common 3.2.2-staging.111 → 3.2.2-staging.113
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/assets/css/screens.css +70 -0
- package/components/AccessCardAssignToUnitForm.vue +13 -21
- package/components/AccessCardDeleteDialog.vue +41 -39
- package/components/AccessCardReplaceForm.vue +27 -23
- package/components/AddEqupmentForm.vue +18 -22
- package/components/AttendanceDetailsDialog.vue +57 -63
- package/components/BuildingForm.vue +31 -26
- package/components/BulletinBoardForm.vue +18 -23
- package/components/CameraForm.vue +20 -21
- package/components/ConfirmDialog.vue +14 -8
- package/components/Dialog/ReplaceAutofillPrompt.vue +19 -26
- package/components/Dialog/ReusablePrompt.vue +30 -29
- package/components/Dialog/UpdateMoreAction.vue +62 -59
- package/components/DocumentForm.vue +14 -21
- package/components/DocumentViewer.vue +29 -12
- package/components/InvitationClientForm.vue +21 -19
- package/components/InvitationForm.vue +15 -21
- package/components/OrgViewDialog.vue +34 -16
- package/components/PasswordConfirmation.vue +44 -26
- package/components/ScheduleTaskAreaFormDialog.vue +48 -51
- package/components/ScheduleTaskAreaUpdateMoreAction.vue +57 -62
- package/components/ServiceProviderFormCreate.vue +29 -20
- package/components/ServiceProviderInvitationPrompt.vue +48 -43
- package/package.json +1 -1
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<v-card width="100%">
|
|
3
|
-
<v-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
</v-row>
|
|
9
|
-
</v-toolbar>
|
|
10
|
-
<v-card-text style="max-height: 100vh; overflow-y: auto" class="pa-0">
|
|
2
|
+
<v-card width="100%" class="screen-modal">
|
|
3
|
+
<v-card-title class="text-capitalize">
|
|
4
|
+
{{ prop.mode }} Block {{ (prop.mode === "edit" && building.block) ? `- ${building.block}` : "" }}
|
|
5
|
+
</v-card-title>
|
|
6
|
+
|
|
7
|
+
<v-card-text class="screen-modal__body pa-0">
|
|
11
8
|
<v-form v-model="validForm" :disabled="disable">
|
|
12
9
|
<v-row no-gutters class="px-6 pt-4">
|
|
13
10
|
<v-col cols="12" class="mt-2">
|
|
14
11
|
<v-row no-gutters>
|
|
15
12
|
<InputLabel class="text-capitalize font-weight-bold" title="Block Name" required />
|
|
16
13
|
<v-col cols="12">
|
|
17
|
-
<v-text-field v-model="building.name" density="comfortable" :rules="[requiredRule]"></v-text-field>
|
|
14
|
+
<v-text-field v-model="building.name" class="filter-field" density="comfortable" :rules="[requiredRule]"></v-text-field>
|
|
18
15
|
</v-col>
|
|
19
16
|
</v-row>
|
|
20
17
|
</v-col>
|
|
@@ -26,7 +23,7 @@
|
|
|
26
23
|
<InputLabel class="text-capitalize font-weight-bold" title="Block No." required />
|
|
27
24
|
<v-col cols="12">
|
|
28
25
|
<v-select v-model.number="building.block" :items="blocks" item-title="label" item-value="value"
|
|
29
|
-
density="comfortable" :rules="[
|
|
26
|
+
class="filter-field" density="comfortable" :rules="[
|
|
30
27
|
requiredRule,
|
|
31
28
|
() =>
|
|
32
29
|
(building.block && building.block > 0) ||
|
|
@@ -45,7 +42,7 @@
|
|
|
45
42
|
<v-row no-gutters>
|
|
46
43
|
<InputLabel class="text-capitalize font-weight-bold" title="No. of Levels" required />
|
|
47
44
|
<v-col cols="12">
|
|
48
|
-
<v-text-field v-model.number="buildingLevels" density="comfortable" :rules="[requiredRule]"
|
|
45
|
+
<v-text-field v-model.number="buildingLevels" class="filter-field" density="comfortable" :rules="[requiredRule]"
|
|
49
46
|
type="number" @update:model-value="setBuildingLevels()"></v-text-field>
|
|
50
47
|
</v-col>
|
|
51
48
|
</v-row>
|
|
@@ -73,7 +70,7 @@
|
|
|
73
70
|
<v-col cols="12">
|
|
74
71
|
<v-row no-gutters>
|
|
75
72
|
<v-col :cols="prop.mode === 'edit' ? 10 : 12">
|
|
76
|
-
<v-text-field v-model.trim="building.levels[levelIndex].name" density="comfortable"></v-text-field>
|
|
73
|
+
<v-text-field v-model.trim="building.levels[levelIndex].name" class="filter-field" density="comfortable"></v-text-field>
|
|
77
74
|
</v-col>
|
|
78
75
|
<v-col v-if="prop.mode === 'edit'" cols="2" class="d-flex align-center pb-5 justify-end">
|
|
79
76
|
<v-btn icon variant="text" color="error" :disabled="disable"
|
|
@@ -92,7 +89,7 @@
|
|
|
92
89
|
<v-row no-gutters class="px-6 w-100">
|
|
93
90
|
<v-row no-gutters v-for="(newLevelsItem, index) in newLevelsArray" :key="index" :cols="12" class="w-100">
|
|
94
91
|
<v-col :cols="prop.mode === 'edit' ? 10 : 12">
|
|
95
|
-
<v-text-field v-model.trim="newLevelsArray[index]" density="comfortable"></v-text-field>
|
|
92
|
+
<v-text-field v-model.trim="newLevelsArray[index]" class="filter-field" density="comfortable"></v-text-field>
|
|
96
93
|
</v-col>
|
|
97
94
|
<v-col v-if="prop.mode === 'edit'" cols="2" class="d-flex align-center pb-5 justify-end">
|
|
98
95
|
<v-btn icon variant="text" color="error" @click="newLevelsArray.splice(index, 1)">
|
|
@@ -104,7 +101,7 @@
|
|
|
104
101
|
|
|
105
102
|
<v-row v-if="prop.mode === 'edit'" no-gutters class="px-6 w-100">
|
|
106
103
|
<v-col cols="10">
|
|
107
|
-
<v-text-field v-model.trim="activeNewLevelInput"
|
|
104
|
+
<v-text-field v-model.trim="activeNewLevelInput" class="filter-field w-100" density="comfortable"
|
|
108
105
|
placeholder="Add new level" @click="addNewLevelErrorMessage = ''"></v-text-field>
|
|
109
106
|
</v-col>
|
|
110
107
|
<v-col cols="2" class="d-flex align-center pb-5 justify-end">
|
|
@@ -150,22 +147,22 @@
|
|
|
150
147
|
</v-form>
|
|
151
148
|
</v-card-text>
|
|
152
149
|
|
|
153
|
-
<v-
|
|
150
|
+
<v-card-actions class="screen-modal__footer">
|
|
154
151
|
<v-row no-gutters>
|
|
155
|
-
<v-col cols="6">
|
|
156
|
-
<v-btn
|
|
152
|
+
<v-col cols="6" class="pr-2">
|
|
153
|
+
<v-btn block variant="outlined" class="text-none screen-btn-ghost" @click="cancel" :disabled="disable">
|
|
157
154
|
Cancel
|
|
158
155
|
</v-btn>
|
|
159
156
|
</v-col>
|
|
160
157
|
|
|
161
|
-
<v-col cols="6">
|
|
162
|
-
<v-btn
|
|
158
|
+
<v-col cols="6" class="pl-2">
|
|
159
|
+
<v-btn block variant="flat" class="text-none screen-btn-primary" :disabled="!validForm || disable"
|
|
163
160
|
@click="submit" :loading="disable">
|
|
164
161
|
Submit
|
|
165
162
|
</v-btn>
|
|
166
163
|
</v-col>
|
|
167
164
|
</v-row>
|
|
168
|
-
</v-
|
|
165
|
+
</v-card-actions>
|
|
169
166
|
|
|
170
167
|
<ConfirmDialog v-model="confirmDeleteLevelDialog" :loading="loading.deletingLevel" width="450" persistent>
|
|
171
168
|
<template #title>
|
|
@@ -178,16 +175,24 @@
|
|
|
178
175
|
|
|
179
176
|
<template #footer>
|
|
180
177
|
<v-row no-gutters class="w-100">
|
|
181
|
-
<v-col cols="6">
|
|
182
|
-
<v-btn
|
|
178
|
+
<v-col cols="6" class="pr-2">
|
|
179
|
+
<v-btn block variant="outlined" class="text-none screen-btn-ghost" :disabled="loading.deletingLevel"
|
|
183
180
|
@click="closeDeleteLevelPrompt">
|
|
184
181
|
Cancel
|
|
185
182
|
</v-btn>
|
|
186
183
|
</v-col>
|
|
187
184
|
|
|
188
|
-
<v-col cols="6">
|
|
189
|
-
|
|
190
|
-
|
|
185
|
+
<v-col cols="6" class="pl-2">
|
|
186
|
+
<!-- Left on Vuetify's own error fill, deliberately. It must NOT
|
|
187
|
+
take `.screen-btn-primary` - that class sets `background` and
|
|
188
|
+
would repaint a delete button accent blue. And the handoff
|
|
189
|
+
draws no modal, so it specifies no destructive button: making
|
|
190
|
+
one out of `--err` puts white on a token that LIGHTENS in dark
|
|
191
|
+
theme, which measured 2.99:1 - the same fill-used-as-ink trap
|
|
192
|
+
as the Upload button. So this keeps today's appearance and only
|
|
193
|
+
loses the 40px height. A destructive button needs a spec. -->
|
|
194
|
+
<v-btn block variant="flat" color="error" class="text-none"
|
|
195
|
+
:loading="loading.deletingLevel" :disabled="loading.deletingLevel" @click="confirmDeleteLevel">
|
|
191
196
|
Delete
|
|
192
197
|
</v-btn>
|
|
193
198
|
</v-col>
|
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<v-card
|
|
3
|
+
class="screen-modal"
|
|
3
4
|
width="100%"
|
|
4
5
|
:loading="loading.processing"
|
|
5
6
|
:disabled="loading.processing || getAnnouncementByIdPending"
|
|
6
7
|
:key="`form-key-${formKey}`"
|
|
7
8
|
>
|
|
8
|
-
<v-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
{{ prop.mode }} Announcement
|
|
12
|
-
</span>
|
|
13
|
-
</v-row>
|
|
14
|
-
</v-toolbar>
|
|
15
|
-
<v-card-text style="max-height: 100vh; overflow-y: auto" class="pa-6">
|
|
9
|
+
<v-card-title class="text-capitalize">{{ prop.mode }} Announcement</v-card-title>
|
|
10
|
+
|
|
11
|
+
<v-card-text class="screen-modal__body pa-6">
|
|
16
12
|
<v-form
|
|
17
13
|
ref="formRef"
|
|
18
14
|
v-model="validForm"
|
|
@@ -61,7 +57,7 @@
|
|
|
61
57
|
density="compact"
|
|
62
58
|
color="transparent"
|
|
63
59
|
flat
|
|
64
|
-
class="ml-3
|
|
60
|
+
class="ml-3"
|
|
65
61
|
@mousedown.stop
|
|
66
62
|
@click.stop="handleRemoveRecipient(item)"
|
|
67
63
|
/>
|
|
@@ -112,10 +108,14 @@
|
|
|
112
108
|
>Attachments</v-col
|
|
113
109
|
>
|
|
114
110
|
<v-col cols="12">
|
|
111
|
+
<!-- Was `color="primary-button"` on an OUTLINED button, i.e. a
|
|
112
|
+
FILL token used as ink - the exact case `utils/theme.ts`
|
|
113
|
+
warns about. Measured 3.64:1 on the dark card, under AA. It
|
|
114
|
+
is a secondary action, so it takes the design's ghost
|
|
115
|
+
button, whose `--text2` ink is readable in both themes. -->
|
|
115
116
|
<v-btn
|
|
116
117
|
text="Upload"
|
|
117
|
-
class="text-capitalize"
|
|
118
|
-
color="primary-button"
|
|
118
|
+
class="text-capitalize screen-btn-ghost"
|
|
119
119
|
variant="outlined"
|
|
120
120
|
min-width="150"
|
|
121
121
|
@click="handleUpload"
|
|
@@ -161,34 +161,29 @@
|
|
|
161
161
|
{{ errorMessage }}
|
|
162
162
|
</p>
|
|
163
163
|
</v-row>
|
|
164
|
-
<v-
|
|
164
|
+
<v-card-actions class="screen-modal__footer">
|
|
165
165
|
<v-row no-gutters>
|
|
166
|
-
<v-col cols="6">
|
|
166
|
+
<v-col cols="6" class="pr-2">
|
|
167
167
|
<v-btn
|
|
168
|
-
tile
|
|
169
168
|
block
|
|
170
|
-
variant="
|
|
171
|
-
class="text-none"
|
|
172
|
-
size="48"
|
|
169
|
+
variant="outlined"
|
|
170
|
+
class="text-none screen-btn-ghost"
|
|
173
171
|
@click="close"
|
|
174
172
|
text="Close"
|
|
175
173
|
/>
|
|
176
174
|
</v-col>
|
|
177
|
-
<v-col cols="6">
|
|
175
|
+
<v-col cols="6" class="pl-2">
|
|
178
176
|
<v-btn
|
|
179
|
-
tile
|
|
180
177
|
block
|
|
181
178
|
variant="flat"
|
|
182
|
-
|
|
183
|
-
class="text-none"
|
|
184
|
-
size="48"
|
|
179
|
+
class="text-none screen-btn-primary"
|
|
185
180
|
:text="prop.mode === 'add' ? 'Add Bulletin' : 'Save'"
|
|
186
181
|
:disabled="loading.processing || !validForm"
|
|
187
182
|
@click="onSubmit"
|
|
188
183
|
/>
|
|
189
184
|
</v-col>
|
|
190
185
|
</v-row>
|
|
191
|
-
</v-
|
|
186
|
+
</v-card-actions>
|
|
192
187
|
</v-card>
|
|
193
188
|
</template>
|
|
194
189
|
|
|
@@ -1,20 +1,15 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<v-card width="100%">
|
|
3
|
-
<v-
|
|
4
|
-
<v-row no-gutters class="fill-height px-6" align="center">
|
|
5
|
-
<span class="font-weight-bold text-h5 text-capitalize">
|
|
6
|
-
{{ title }}
|
|
7
|
-
</span>
|
|
8
|
-
</v-row>
|
|
9
|
-
</v-toolbar>
|
|
2
|
+
<v-card width="100%" class="screen-modal">
|
|
3
|
+
<v-card-title class="text-capitalize">{{ title }}</v-card-title>
|
|
10
4
|
|
|
11
|
-
<v-card-text
|
|
5
|
+
<v-card-text class="screen-modal__body pa-5">
|
|
12
6
|
<v-form ref="formRef" v-model="validForm" :disabled="disable">
|
|
13
7
|
<v-row no-gutters class="pt-4">
|
|
14
8
|
<v-col v-if="isCCTV" cols="12">
|
|
15
9
|
<InputLabel class="text-capitalize" title="Camera Name" required />
|
|
16
10
|
<v-text-field
|
|
17
11
|
v-model.trim="camera.name"
|
|
12
|
+
class="filter-field"
|
|
18
13
|
density="comfortable"
|
|
19
14
|
:rules="[requiredRule]"
|
|
20
15
|
placeholder="Enter CCTV camera name"
|
|
@@ -24,6 +19,7 @@
|
|
|
24
19
|
<InputLabel class="text-capitalize" title="URL" required />
|
|
25
20
|
<v-text-field
|
|
26
21
|
v-model.trim="camera.host"
|
|
22
|
+
class="filter-field"
|
|
27
23
|
density="comfortable"
|
|
28
24
|
:rules="[requiredRule, hostRule]"
|
|
29
25
|
placeholder="Enter camera URL"
|
|
@@ -35,6 +31,7 @@
|
|
|
35
31
|
<v-select
|
|
36
32
|
v-model="camera.category"
|
|
37
33
|
:items="anprCategoryOptions"
|
|
34
|
+
class="filter-field"
|
|
38
35
|
density="comfortable"
|
|
39
36
|
:rules="[requiredRule]"
|
|
40
37
|
/>
|
|
@@ -45,6 +42,7 @@
|
|
|
45
42
|
<v-select
|
|
46
43
|
v-model="camera.direction"
|
|
47
44
|
:items="anprDirectionOptions"
|
|
45
|
+
class="filter-field"
|
|
48
46
|
density="comfortable"
|
|
49
47
|
:rules="[requiredRule]"
|
|
50
48
|
/>
|
|
@@ -55,6 +53,7 @@
|
|
|
55
53
|
<v-select
|
|
56
54
|
v-model="camera.guardPost"
|
|
57
55
|
:items="guardPostOptions"
|
|
56
|
+
class="filter-field"
|
|
58
57
|
density="comfortable"
|
|
59
58
|
/>
|
|
60
59
|
</v-col> -->
|
|
@@ -63,6 +62,7 @@
|
|
|
63
62
|
<InputLabel class="text-capitalize" title="User" required />
|
|
64
63
|
<v-text-field
|
|
65
64
|
v-model.trim="camera.username"
|
|
65
|
+
class="filter-field"
|
|
66
66
|
density="comfortable"
|
|
67
67
|
:rules="[requiredRule]"
|
|
68
68
|
placeholder="Enter username"
|
|
@@ -74,6 +74,7 @@
|
|
|
74
74
|
<v-text-field
|
|
75
75
|
v-model.trim="camera.password"
|
|
76
76
|
type="password"
|
|
77
|
+
class="filter-field"
|
|
77
78
|
density="comfortable"
|
|
78
79
|
:rules="[requiredRule]"
|
|
79
80
|
placeholder="Enter password"
|
|
@@ -86,6 +87,7 @@
|
|
|
86
87
|
v-model="camera.status"
|
|
87
88
|
hide-details
|
|
88
89
|
inset
|
|
90
|
+
class="filter-field"
|
|
89
91
|
density="comfortable"
|
|
90
92
|
true-value="active"
|
|
91
93
|
false-value="inactive"
|
|
@@ -97,27 +99,24 @@
|
|
|
97
99
|
</v-form>
|
|
98
100
|
</v-card-text>
|
|
99
101
|
|
|
100
|
-
|
|
102
|
+
<!-- Was a `v-toolbar`: a grey slab with square (`tile`) buttons and a
|
|
103
|
+
hardcoded `color="black"` primary. The gate on Submit is unchanged. -->
|
|
104
|
+
<v-card-actions class="screen-modal__footer">
|
|
101
105
|
<v-row no-gutters>
|
|
102
|
-
<v-col cols="6">
|
|
106
|
+
<v-col cols="6" class="pr-2">
|
|
103
107
|
<v-btn
|
|
104
|
-
tile
|
|
105
108
|
block
|
|
106
|
-
variant="
|
|
107
|
-
class="text-none"
|
|
108
|
-
size="48"
|
|
109
|
+
variant="outlined"
|
|
110
|
+
class="text-none screen-btn-ghost"
|
|
109
111
|
@click="back"
|
|
110
112
|
text="Cancel"
|
|
111
113
|
/>
|
|
112
114
|
</v-col>
|
|
113
|
-
<v-col cols="6">
|
|
115
|
+
<v-col cols="6" class="pl-2">
|
|
114
116
|
<v-btn
|
|
115
|
-
tile
|
|
116
117
|
block
|
|
117
118
|
variant="flat"
|
|
118
|
-
|
|
119
|
-
class="text-none"
|
|
120
|
-
size="48"
|
|
119
|
+
class="text-none screen-btn-primary"
|
|
121
120
|
:disabled="!validForm || disable || !hasChanges"
|
|
122
121
|
@click="submit"
|
|
123
122
|
:loading="disable"
|
|
@@ -125,7 +124,7 @@
|
|
|
125
124
|
/>
|
|
126
125
|
</v-col>
|
|
127
126
|
</v-row>
|
|
128
|
-
</v-
|
|
127
|
+
</v-card-actions>
|
|
129
128
|
</v-card>
|
|
130
129
|
</template>
|
|
131
130
|
|
|
@@ -1,36 +1,42 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
<!-- 520px is the handoff's `--modal-w`; the card was `rounded-xl` (24px) on a
|
|
3
|
+
Material elevation, where the design draws a 16px corner and its own
|
|
4
|
+
modal shadow. -->
|
|
5
|
+
<v-dialog v-model="dialog" max-width="520" persistent>
|
|
6
|
+
<v-card class="screen-modal pa-6">
|
|
4
7
|
<!-- Close Button -->
|
|
5
8
|
<v-btn
|
|
6
9
|
icon
|
|
7
10
|
variant="text"
|
|
8
11
|
size="small"
|
|
9
|
-
class="position-absolute"
|
|
12
|
+
class="screen-modal__close position-absolute"
|
|
10
13
|
style="top: 8px; right: 8px"
|
|
11
14
|
@click="closeDialog"
|
|
12
15
|
>
|
|
13
16
|
<v-icon>mdi-close</v-icon>
|
|
14
17
|
</v-btn>
|
|
15
18
|
|
|
16
|
-
<v-card-text class="text-center">
|
|
19
|
+
<v-card-text class="screen-modal__body text-center">
|
|
17
20
|
<v-row v-if="imageSrc" justify="center" class="py-10">
|
|
18
21
|
<v-img height="120" :src="imageSrc" alt="Dialog Image" contain />
|
|
19
22
|
</v-row>
|
|
20
23
|
|
|
21
|
-
<!-- Title Slot
|
|
22
|
-
|
|
24
|
+
<!-- Title Slot. The handoff's 17px/800 modal title belongs to a
|
|
25
|
+
bordered header row this dialog does not draw - a centred title
|
|
26
|
+
inside the body is a case it is silent on, so it takes the
|
|
27
|
+
established `.screen-card-title` primitive. -->
|
|
28
|
+
<div class="screen-card-title mb-2">
|
|
23
29
|
<slot name="title"></slot>
|
|
24
30
|
</div>
|
|
25
31
|
|
|
26
32
|
<!-- Description Slot -->
|
|
27
|
-
<div class="
|
|
33
|
+
<div class="mb-4">
|
|
28
34
|
<slot name="description"></slot>
|
|
29
35
|
</div>
|
|
30
36
|
</v-card-text>
|
|
31
37
|
|
|
32
38
|
<!-- Footer Slot -->
|
|
33
|
-
<v-card-actions>
|
|
39
|
+
<v-card-actions class="screen-modal__footer">
|
|
34
40
|
<slot name="footer"></slot>
|
|
35
41
|
</v-card-actions>
|
|
36
42
|
</v-card>
|
|
@@ -1,32 +1,25 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<v-card width="100%" :disabled="loading" :loading="loading">
|
|
3
|
-
<v-card-text
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
</span>
|
|
10
|
-
</v-col>
|
|
11
|
-
</v-row>
|
|
2
|
+
<v-card class="screen-modal" width="100%" :disabled="loading" :loading="loading">
|
|
3
|
+
<v-card-text class="screen-modal__body pa-5 my-5 px-7 text-center">
|
|
4
|
+
<span class="screen-card-title d-block">{{ promptTitle }}</span>
|
|
5
|
+
|
|
6
|
+
<span class="d-block mt-5">
|
|
7
|
+
By proceeding, your previous user inputs will be replaced.
|
|
8
|
+
</span>
|
|
12
9
|
</v-card-text>
|
|
13
10
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
11
|
+
<!-- The design's footer: two equal-width buttons, ghost then primary,
|
|
12
|
+
on a bordered strip. Replaces the `v-toolbar` of two square 48px
|
|
13
|
+
tiles, whose Proceed was a hardcoded `color="black"` fill. -->
|
|
14
|
+
<div class="screen-modal__footer">
|
|
15
|
+
<v-btn class="screen-btn-ghost" variant="outlined" @click="emit('close')">
|
|
16
|
+
Cancel
|
|
17
|
+
</v-btn>
|
|
21
18
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
</v-btn>
|
|
27
|
-
</v-col>
|
|
28
|
-
</v-row>
|
|
29
|
-
</v-toolbar>
|
|
19
|
+
<v-btn class="screen-btn-primary" variant="flat" @click="emit('proceed')">
|
|
20
|
+
Proceed
|
|
21
|
+
</v-btn>
|
|
22
|
+
</div>
|
|
30
23
|
</v-card>
|
|
31
24
|
</template>
|
|
32
25
|
|
|
@@ -46,4 +39,4 @@ const emit = defineEmits(["close", "proceed"])
|
|
|
46
39
|
|
|
47
40
|
</script>
|
|
48
41
|
|
|
49
|
-
<style scoped></style>
|
|
42
|
+
<style scoped></style>
|
|
@@ -1,34 +1,35 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<v-card width="100%" :disabled="loading" :loading="loading">
|
|
3
|
-
<v-card-text
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
<span >
|
|
10
|
-
{{ message }}
|
|
11
|
-
</span>
|
|
12
|
-
</v-col>
|
|
13
|
-
</v-row>
|
|
2
|
+
<v-card class="screen-modal" width="100%" :disabled="loading" :loading="loading">
|
|
3
|
+
<v-card-text class="screen-modal__body pa-5 my-5 px-7 text-center">
|
|
4
|
+
<span class="screen-card-title d-block">{{ promptTitle }}</span>
|
|
5
|
+
|
|
6
|
+
<span v-if="message" class="d-block mt-5">
|
|
7
|
+
{{ message }}
|
|
8
|
+
</span>
|
|
14
9
|
</v-card-text>
|
|
15
10
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
11
|
+
<!-- The design's footer: two equal-width buttons, ghost then primary,
|
|
12
|
+
on a bordered strip. -->
|
|
13
|
+
<div class="screen-modal__footer">
|
|
14
|
+
<v-btn class="screen-btn-ghost" variant="outlined" @click="emit('close')">
|
|
15
|
+
Cancel
|
|
16
|
+
</v-btn>
|
|
17
|
+
|
|
18
|
+
<!-- The old default was a hardcoded `color="black"` fill, which is
|
|
19
|
+
the same black on the dark theme as on the light one. With no
|
|
20
|
+
colour asked for, the confirming action now takes the design's
|
|
21
|
+
primary shape like every other modal's Submit.
|
|
23
22
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
23
|
+
A caller that DOES name a colour keeps it: `NumberSettingField`
|
|
24
|
+
passes `red` to mark a destructive confirm, and the handoff
|
|
25
|
+
draws no destructive button, so overriding it here would be
|
|
26
|
+
inventing a control the design never named. Left as it renders
|
|
27
|
+
today and raised for a design decision. -->
|
|
28
|
+
<v-btn :class="confirmButtonColor ? 'text-none' : 'screen-btn-primary'"
|
|
29
|
+
variant="flat" :color="confirmButtonColor || undefined" @click="emit('proceed')">
|
|
30
|
+
{{ confirmLabel }}
|
|
31
|
+
</v-btn>
|
|
32
|
+
</div>
|
|
32
33
|
</v-card>
|
|
33
34
|
</template>
|
|
34
35
|
|
|
@@ -52,7 +53,7 @@ const props = defineProps({
|
|
|
52
53
|
},
|
|
53
54
|
confirmButtonColor: {
|
|
54
55
|
type: String,
|
|
55
|
-
default: "
|
|
56
|
+
default: ""
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
})
|
|
@@ -61,4 +62,4 @@ const emit = defineEmits(["close", "proceed"])
|
|
|
61
62
|
|
|
62
63
|
</script>
|
|
63
64
|
|
|
64
|
-
<style scoped></style>
|
|
65
|
+
<style scoped></style>
|