@ramathibodi/nuxt-commons 0.1.73 → 0.1.75
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/README.md +115 -96
- package/dist/module.json +1 -1
- package/dist/module.mjs +1 -0
- package/dist/runtime/components/Alert.vue +58 -54
- package/dist/runtime/components/BarcodeReader.vue +130 -122
- package/dist/runtime/components/ExportCSV.vue +110 -102
- package/dist/runtime/components/FileBtn.vue +79 -67
- package/dist/runtime/components/ImportCSV.vue +151 -139
- package/dist/runtime/components/MrzReader.vue +168 -0
- package/dist/runtime/components/SplitterPanel.vue +67 -59
- package/dist/runtime/components/TabsGroup.vue +39 -31
- package/dist/runtime/components/TextBarcode.vue +66 -54
- package/dist/runtime/components/device/IdCardButton.vue +95 -83
- package/dist/runtime/components/device/IdCardWebSocket.vue +207 -195
- package/dist/runtime/components/device/Scanner.vue +350 -338
- package/dist/runtime/components/dialog/Confirm.vue +112 -100
- package/dist/runtime/components/dialog/Host.vue +88 -84
- package/dist/runtime/components/dialog/Index.vue +84 -72
- package/dist/runtime/components/dialog/Loading.vue +51 -39
- package/dist/runtime/components/dialog/default/Confirm.vue +112 -100
- package/dist/runtime/components/dialog/default/Loading.vue +60 -48
- package/dist/runtime/components/dialog/default/Notify.vue +82 -70
- package/dist/runtime/components/dialog/default/Printing.vue +46 -34
- package/dist/runtime/components/dialog/default/VerifyUser.vue +144 -132
- package/dist/runtime/components/document/Form.vue +50 -42
- package/dist/runtime/components/document/TemplateBuilder.vue +536 -524
- package/dist/runtime/components/form/ActionPad.vue +156 -144
- package/dist/runtime/components/form/Birthdate.vue +116 -104
- package/dist/runtime/components/form/CheckboxGroup.vue +99 -87
- package/dist/runtime/components/form/CodeEditor.vue +45 -37
- package/dist/runtime/components/form/Date.vue +270 -258
- package/dist/runtime/components/form/DateTime.vue +220 -208
- package/dist/runtime/components/form/Dialog.vue +178 -166
- package/dist/runtime/components/form/EditPad.vue +157 -145
- package/dist/runtime/components/form/File.vue +295 -283
- package/dist/runtime/components/form/Hidden.vue +44 -32
- package/dist/runtime/components/form/Iterator.vue +538 -526
- package/dist/runtime/components/form/Login.vue +143 -131
- package/dist/runtime/components/form/Pad.vue +399 -387
- package/dist/runtime/components/form/SignPad.vue +226 -218
- package/dist/runtime/components/form/System.vue +34 -26
- package/dist/runtime/components/form/Table.vue +391 -379
- package/dist/runtime/components/form/TableData.vue +236 -224
- package/dist/runtime/components/form/Time.vue +177 -165
- package/dist/runtime/components/form/images/Capture.vue +245 -237
- package/dist/runtime/components/form/images/Edit.vue +133 -121
- package/dist/runtime/components/form/images/Field.vue +331 -320
- package/dist/runtime/components/form/images/Pad.vue +54 -42
- package/dist/runtime/components/label/Date.vue +37 -29
- package/dist/runtime/components/label/DateAgo.vue +102 -94
- package/dist/runtime/components/label/DateCount.vue +152 -144
- package/dist/runtime/components/label/Field.vue +111 -103
- package/dist/runtime/components/label/FormatMoney.vue +37 -29
- package/dist/runtime/components/label/Mask.vue +46 -38
- package/dist/runtime/components/label/Object.vue +21 -13
- package/dist/runtime/components/master/Autocomplete.vue +89 -81
- package/dist/runtime/components/master/Combobox.vue +88 -80
- package/dist/runtime/components/master/RadioGroup.vue +90 -78
- package/dist/runtime/components/master/Select.vue +70 -62
- package/dist/runtime/components/master/label.vue +55 -47
- package/dist/runtime/components/model/Autocomplete.vue +91 -79
- package/dist/runtime/components/model/Combobox.vue +90 -78
- package/dist/runtime/components/model/Pad.vue +114 -102
- package/dist/runtime/components/model/Select.vue +78 -72
- package/dist/runtime/components/model/Table.vue +370 -358
- package/dist/runtime/components/model/iterator.vue +497 -489
- package/dist/runtime/components/model/label.vue +58 -50
- package/dist/runtime/components/pdf/Print.vue +75 -63
- package/dist/runtime/components/pdf/View.vue +146 -134
- package/dist/runtime/composables/alert.d.ts +4 -0
- package/dist/runtime/composables/api.d.ts +4 -0
- package/dist/runtime/composables/dialog.d.ts +1 -1
- package/dist/runtime/composables/document/templateFormHidden.d.ts +4 -0
- package/dist/runtime/composables/graphql.d.ts +1 -1
- package/dist/runtime/composables/graphqlModel.d.ts +9 -9
- package/dist/runtime/composables/graphqlModelItem.d.ts +7 -7
- package/dist/runtime/composables/graphqlModelOperation.d.ts +6 -6
- package/dist/runtime/composables/localStorageModel.d.ts +4 -0
- package/dist/runtime/composables/lookupList.d.ts +4 -0
- package/dist/runtime/composables/menu.d.ts +4 -0
- package/dist/runtime/composables/useMrzReader.d.ts +48 -0
- package/dist/runtime/composables/useMrzReader.js +423 -0
- package/dist/runtime/composables/useTesseract.d.ts +16 -0
- package/dist/runtime/composables/useTesseract.js +45 -0
- package/dist/runtime/composables/userPermission.d.ts +1 -1
- package/dist/runtime/labs/Calendar.vue +99 -99
- package/dist/runtime/labs/form/EditMobile.vue +152 -152
- package/dist/runtime/labs/form/TextFieldMask.vue +43 -43
- package/dist/runtime/plugins/clientConfig.d.ts +1 -1
- package/dist/runtime/plugins/default.d.ts +1 -1
- package/dist/runtime/plugins/dialogManager.d.ts +1 -1
- package/dist/runtime/plugins/permission.d.ts +1 -1
- package/dist/runtime/types/alert.d.ts +11 -11
- package/dist/runtime/types/clientConfig.d.ts +13 -13
- package/dist/runtime/types/dialogManager.d.ts +35 -35
- package/dist/runtime/types/formDialog.d.ts +5 -5
- package/dist/runtime/types/graphqlOperation.d.ts +23 -23
- package/dist/runtime/types/menu.d.ts +31 -31
- package/dist/runtime/types/modules.d.ts +7 -7
- package/dist/runtime/types/permission.d.ts +13 -13
- package/dist/runtime/utils/asset.d.ts +2 -0
- package/dist/runtime/utils/asset.js +49 -0
- package/package.json +131 -122
- package/scripts/enrich-vue-docs-from-ai.mjs +197 -0
- package/scripts/generate-ai-summary.mjs +321 -0
- package/scripts/generate-composables-md.mjs +129 -0
- package/scripts/postInstall.cjs +70 -70
- package/templates/.codegen/codegen.ts +32 -32
- package/templates/.codegen/plugin-schema-object.js +161 -161
- package/templates/public/tesseract/mrz.traineddata.gz +0 -0
- package/templates/public/tesseract/ocrb.traineddata.gz +0 -0
|
@@ -1,101 +1,113 @@
|
|
|
1
|
-
<script lang="ts" setup>
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
})
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
/**
|
|
3
|
+
* DialogDefaultConfirm is a default dialog content component used by the dialog host for common runtime prompts and feedback.
|
|
4
|
+
* This doc block is consumed by vue-docgen for generated API documentation.
|
|
5
|
+
*/
|
|
6
|
+
import { ref, watch, computed, type Ref } from 'vue'
|
|
7
|
+
import { isEqual, isUndefined, isEmpty } from 'lodash-es'
|
|
8
|
+
|
|
9
|
+
interface DialogProps {
|
|
10
|
+
title?: string // Title text displayed in the component header or dialog.
|
|
11
|
+
modelValue: boolean // Bound value for v-model synchronization with the parent component.
|
|
12
|
+
message?: string // main message body shown in UI
|
|
13
|
+
buttonTrueText?: string // label for the confirm/primary action
|
|
14
|
+
buttonFalseText?: string // label for the cancel/secondary action
|
|
15
|
+
type?: 'primary' | 'success' | 'warning' | 'info' | 'error' // visual variant controlling color and intent semantics
|
|
16
|
+
confirmData?: string // confirmation text that users must type before continue
|
|
17
|
+
width?: string // dialog/component width in CSS-compatible units
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Public props accepted by DialogDefaultConfirm.
|
|
22
|
+
* Document each prop field with intent, defaults, and side effects for clear generated docs.
|
|
23
|
+
*/
|
|
24
|
+
const props = withDefaults(defineProps<DialogProps>(), {
|
|
25
|
+
title: 'Confirm',
|
|
26
|
+
message: 'Do you want to proceed?',
|
|
27
|
+
buttonTrueText: 'Ok',
|
|
28
|
+
buttonFalseText: 'Cancel',
|
|
29
|
+
type: 'primary',
|
|
30
|
+
width: 'auto',
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Custom events emitted by DialogDefaultConfirm.
|
|
35
|
+
* Parents can listen to these events to react to user actions and internal state changes.
|
|
36
|
+
*/
|
|
37
|
+
const emit = defineEmits<{
|
|
38
|
+
(e: 'update:modelValue', value: boolean): void
|
|
39
|
+
(e: 'resolve', value: boolean): void
|
|
40
|
+
(e: 'reject', value: any): void
|
|
41
|
+
}>()
|
|
42
|
+
|
|
43
|
+
const dialogVisible: Ref<boolean> = ref(props.modelValue)
|
|
44
|
+
|
|
45
|
+
watch(() => props.modelValue, (val) => {
|
|
46
|
+
dialogVisible.value = val
|
|
47
|
+
})
|
|
48
|
+
|
|
49
|
+
watch(dialogVisible, (val) => {
|
|
50
|
+
if (!val) emit('update:modelValue', false)
|
|
51
|
+
})
|
|
52
|
+
|
|
53
|
+
const txtConfirm = ref<string>('')
|
|
54
|
+
|
|
55
|
+
const isDisabled = computed(() => {
|
|
56
|
+
if (isUndefined(props.confirmData)) return false
|
|
57
|
+
if (isEmpty(props.confirmData)) return true
|
|
58
|
+
return !isEqual(txtConfirm.value, props.confirmData)
|
|
59
|
+
})
|
|
60
|
+
|
|
61
|
+
const handleResult = (result: boolean) => {
|
|
62
|
+
dialogVisible.value = false
|
|
63
|
+
emit('resolve', result) // emit back to dialog-manager
|
|
64
|
+
}
|
|
65
|
+
</script>
|
|
66
|
+
|
|
67
|
+
<template>
|
|
68
|
+
<v-row justify="center">
|
|
69
|
+
<v-dialog
|
|
70
|
+
v-model="dialogVisible"
|
|
71
|
+
persistent
|
|
72
|
+
:width="props.width"
|
|
73
|
+
>
|
|
74
|
+
<v-card>
|
|
75
|
+
<v-toolbar
|
|
76
|
+
:color="props.type"
|
|
77
|
+
:title="props.title"
|
|
78
|
+
/>
|
|
79
|
+
<v-card-text>{{ props.message }}</v-card-text>
|
|
80
|
+
<v-card-text v-if="props.confirmData">
|
|
81
|
+
<v-text-field
|
|
82
|
+
v-model="txtConfirm"
|
|
83
|
+
variant="underlined"
|
|
84
|
+
>
|
|
85
|
+
<template #label>
|
|
86
|
+
<slot
|
|
87
|
+
name="labelTextConfirm"
|
|
88
|
+
:text="props.confirmData"
|
|
89
|
+
/>
|
|
90
|
+
</template>
|
|
91
|
+
</v-text-field>
|
|
92
|
+
</v-card-text>
|
|
93
|
+
<v-card-actions>
|
|
94
|
+
<v-spacer />
|
|
95
|
+
<v-btn
|
|
96
|
+
variant="text"
|
|
97
|
+
@click="handleResult(false)"
|
|
98
|
+
>
|
|
99
|
+
{{ props.buttonFalseText }}
|
|
100
|
+
</v-btn>
|
|
101
|
+
<v-btn
|
|
102
|
+
:color="props.type"
|
|
103
|
+
variant="text"
|
|
104
|
+
:disabled="isDisabled"
|
|
105
|
+
@click="handleResult(true)"
|
|
106
|
+
>
|
|
107
|
+
{{ props.buttonTrueText }}
|
|
108
|
+
</v-btn>
|
|
109
|
+
</v-card-actions>
|
|
110
|
+
</v-card>
|
|
111
|
+
</v-dialog>
|
|
112
|
+
</v-row>
|
|
101
113
|
</template>
|
|
@@ -1,48 +1,60 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
<
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
/**
|
|
3
|
+
* DialogDefaultLoading is a default dialog content component used by the dialog host for common runtime prompts and feedback.
|
|
4
|
+
* This doc block is consumed by vue-docgen for generated API documentation.
|
|
5
|
+
*/
|
|
6
|
+
import { ref, watch } from 'vue'
|
|
7
|
+
|
|
8
|
+
interface DialogProps {
|
|
9
|
+
modelValue: boolean // Bound value for v-model synchronization with the parent component.
|
|
10
|
+
color?: string // Vuetify color name applied to the visual element.
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Custom events emitted by DialogDefaultLoading.
|
|
14
|
+
* Parents can listen to these events to react to user actions and internal state changes.
|
|
15
|
+
*/
|
|
16
|
+
const emit = defineEmits(['update:modelValue'])
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Public props accepted by DialogDefaultLoading.
|
|
20
|
+
* Document each prop field with intent, defaults, and side effects for clear generated docs.
|
|
21
|
+
*/
|
|
22
|
+
const props = defineProps<DialogProps>()
|
|
23
|
+
const dialogVisible = ref<boolean>(props.modelValue)
|
|
24
|
+
|
|
25
|
+
watch(() => props.modelValue, (newValue) => {
|
|
26
|
+
dialogVisible.value = newValue
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
watch(() => dialogVisible.value, (newValue) => {
|
|
30
|
+
emit('update:modelValue', newValue)
|
|
31
|
+
})
|
|
32
|
+
</script>
|
|
33
|
+
|
|
34
|
+
<template>
|
|
35
|
+
<v-dialog
|
|
36
|
+
v-model="dialogVisible"
|
|
37
|
+
persistent
|
|
38
|
+
max-width="400"
|
|
39
|
+
class="rounded-xl"
|
|
40
|
+
>
|
|
41
|
+
<v-card :color="props.color || 'surface'" elevation="10" class="pa-4 rounded-xl">
|
|
42
|
+
<v-card-title class="text-h6 text-center">
|
|
43
|
+
<slot name="title">Please wait</slot>
|
|
44
|
+
</v-card-title>
|
|
45
|
+
|
|
46
|
+
<v-card-text class="text-center">
|
|
47
|
+
<v-progress-circular
|
|
48
|
+
indeterminate
|
|
49
|
+
size="40"
|
|
50
|
+
width="4"
|
|
51
|
+
color="primary"
|
|
52
|
+
class="mb-4"
|
|
53
|
+
/>
|
|
54
|
+
<div>
|
|
55
|
+
<slot>Loading data, please wait...</slot>
|
|
56
|
+
</div>
|
|
57
|
+
</v-card-text>
|
|
58
|
+
</v-card>
|
|
59
|
+
</v-dialog>
|
|
60
|
+
</template>
|
|
@@ -1,70 +1,82 @@
|
|
|
1
|
-
<script lang="ts" setup>
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
/**
|
|
3
|
+
* DialogDefaultNotify is a default dialog content component used by the dialog host for common runtime prompts and feedback.
|
|
4
|
+
* This doc block is consumed by vue-docgen for generated API documentation.
|
|
5
|
+
*/
|
|
6
|
+
import { ref, watch, type Ref } from 'vue'
|
|
7
|
+
|
|
8
|
+
interface DialogProps {
|
|
9
|
+
title?: string // Title text displayed in the component header or dialog.
|
|
10
|
+
modelValue: boolean // Bound value for v-model synchronization with the parent component.
|
|
11
|
+
message?: string // main message body shown in UI
|
|
12
|
+
buttonText?: string // Label text displayed on the primary action button.
|
|
13
|
+
type?: 'primary' | 'success' | 'warning' | 'info' | 'error' // visual variant controlling color and intent semantics
|
|
14
|
+
width?: string // dialog/component width in CSS-compatible units
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Public props accepted by DialogDefaultNotify.
|
|
19
|
+
* Document each prop field with intent, defaults, and side effects for clear generated docs.
|
|
20
|
+
*/
|
|
21
|
+
const props = withDefaults(defineProps<DialogProps>(), {
|
|
22
|
+
title: 'Notice',
|
|
23
|
+
message: 'Something happened.',
|
|
24
|
+
buttonText: 'OK',
|
|
25
|
+
type: 'primary',
|
|
26
|
+
width: 'auto',
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Custom events emitted by DialogDefaultNotify.
|
|
31
|
+
* Parents can listen to these events to react to user actions and internal state changes.
|
|
32
|
+
*/
|
|
33
|
+
const emit = defineEmits<{
|
|
34
|
+
(e: 'update:modelValue', value: boolean): void
|
|
35
|
+
(e: 'resolve', value: boolean): void
|
|
36
|
+
}>()
|
|
37
|
+
|
|
38
|
+
const dialogVisible: Ref<boolean> = ref(props.modelValue)
|
|
39
|
+
|
|
40
|
+
watch(() => props.modelValue, (val) => {
|
|
41
|
+
dialogVisible.value = val
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
watch(dialogVisible, (val) => {
|
|
45
|
+
if (!val) emit('update:modelValue', false)
|
|
46
|
+
})
|
|
47
|
+
|
|
48
|
+
const handleClose = () => {
|
|
49
|
+
dialogVisible.value = false
|
|
50
|
+
emit('resolve', true)
|
|
51
|
+
}
|
|
52
|
+
</script>
|
|
53
|
+
|
|
54
|
+
<template>
|
|
55
|
+
<v-row justify="center">
|
|
56
|
+
<v-dialog
|
|
57
|
+
v-model="dialogVisible"
|
|
58
|
+
persistent
|
|
59
|
+
:width="props.width"
|
|
60
|
+
>
|
|
61
|
+
<v-card>
|
|
62
|
+
<v-toolbar
|
|
63
|
+
:color="props.type"
|
|
64
|
+
:title="props.title"
|
|
65
|
+
density="compact"
|
|
66
|
+
/>
|
|
67
|
+
<v-card-text class="text-body-2 text-center py-4">
|
|
68
|
+
{{ props.message }}
|
|
69
|
+
</v-card-text>
|
|
70
|
+
<v-card-actions class="justify-center">
|
|
71
|
+
<v-btn
|
|
72
|
+
:color="props.type"
|
|
73
|
+
variant="elevated"
|
|
74
|
+
@click="handleClose"
|
|
75
|
+
>
|
|
76
|
+
{{ props.buttonText }}
|
|
77
|
+
</v-btn>
|
|
78
|
+
</v-card-actions>
|
|
79
|
+
</v-card>
|
|
80
|
+
</v-dialog>
|
|
81
|
+
</v-row>
|
|
82
|
+
</template>
|
|
@@ -1,35 +1,47 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
<
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
/**
|
|
3
|
+
* DialogDefaultPrinting is a default dialog content component used by the dialog host for common runtime prompts and feedback.
|
|
4
|
+
* This doc block is consumed by vue-docgen for generated API documentation.
|
|
5
|
+
*/
|
|
6
|
+
import { ref, watch } from 'vue'
|
|
7
|
+
|
|
8
|
+
interface DialogProps {
|
|
9
|
+
modelValue: boolean // Bound value for v-model synchronization with the parent component.
|
|
10
|
+
color?: string // Vuetify color name applied to the visual element.
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Custom events emitted by DialogDefaultPrinting.
|
|
14
|
+
* Parents can listen to these events to react to user actions and internal state changes.
|
|
15
|
+
*/
|
|
16
|
+
const emit = defineEmits(['update:modelValue'])
|
|
17
|
+
/**
|
|
18
|
+
* Public props accepted by DialogDefaultPrinting.
|
|
19
|
+
* Document each prop field with intent, defaults, and side effects for clear generated docs.
|
|
20
|
+
*/
|
|
21
|
+
const props = defineProps<DialogProps>()
|
|
22
|
+
const dialogVisible = ref(props.modelValue)
|
|
23
|
+
|
|
24
|
+
watch(() => props.modelValue, (newValue) => {
|
|
25
|
+
dialogVisible.value = newValue
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
watch(() => dialogVisible.value, (newValue) => {
|
|
29
|
+
emit('update:modelValue', newValue)
|
|
30
|
+
})
|
|
31
|
+
</script>
|
|
32
|
+
|
|
33
|
+
<template>
|
|
34
|
+
<v-dialog
|
|
35
|
+
v-model="dialogVisible"
|
|
36
|
+
persistent
|
|
37
|
+
max-width="320"
|
|
38
|
+
class="rounded-lg"
|
|
39
|
+
>
|
|
40
|
+
<v-card :color="props.color || 'surface'" class="pa-3 rounded-lg d-flex flex-column align-center">
|
|
41
|
+
<v-icon size="36" color="primary" class="mb-2">mdi mdi-printer</v-icon>
|
|
42
|
+
<div class="text-center text-body-2">
|
|
43
|
+
<slot>Preparing to print...</slot>
|
|
44
|
+
</div>
|
|
45
|
+
</v-card>
|
|
46
|
+
</v-dialog>
|
|
35
47
|
</template>
|