hl-core 0.0.9-beta.5 → 0.0.9-beta.51

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 (63) hide show
  1. package/api/base.api.ts +1042 -0
  2. package/api/index.ts +2 -620
  3. package/api/interceptors.ts +53 -14
  4. package/components/Button/Btn.vue +2 -2
  5. package/components/Complex/MessageBlock.vue +2 -2
  6. package/components/Complex/Page.vue +1 -1
  7. package/components/Dialog/Dialog.vue +60 -15
  8. package/components/Form/DynamicForm.vue +100 -0
  9. package/components/Form/FormBlock.vue +12 -3
  10. package/components/Form/FormData.vue +110 -0
  11. package/components/Form/FormSection.vue +3 -3
  12. package/components/Form/FormToggle.vue +25 -5
  13. package/components/Form/ManagerAttachment.vue +150 -86
  14. package/components/Form/ProductConditionsBlock.vue +59 -6
  15. package/components/Input/Datepicker.vue +43 -7
  16. package/components/Input/DynamicInput.vue +23 -0
  17. package/components/Input/FileInput.vue +25 -5
  18. package/components/Input/FormInput.vue +7 -4
  19. package/components/Input/Monthpicker.vue +34 -0
  20. package/components/Input/PanelInput.vue +5 -1
  21. package/components/Input/RoundedEmptyField.vue +5 -0
  22. package/components/Input/RoundedSelect.vue +18 -0
  23. package/components/Input/SwitchInput.vue +64 -0
  24. package/components/Input/TextInput.vue +160 -0
  25. package/components/Layout/Drawer.vue +17 -4
  26. package/components/Layout/Header.vue +23 -2
  27. package/components/Layout/Loader.vue +1 -1
  28. package/components/Layout/SettingsPanel.vue +13 -7
  29. package/components/Menu/InfoMenu.vue +35 -0
  30. package/components/Menu/MenuNav.vue +17 -2
  31. package/components/Pages/Anketa.vue +140 -52
  32. package/components/Pages/Auth.vue +50 -9
  33. package/components/Pages/ContragentForm.vue +124 -50
  34. package/components/Pages/Documents.vue +179 -29
  35. package/components/Pages/InvoiceInfo.vue +1 -1
  36. package/components/Pages/MemberForm.vue +605 -116
  37. package/components/Pages/ProductAgreement.vue +1 -8
  38. package/components/Pages/ProductConditions.vue +1055 -183
  39. package/components/Panel/PanelHandler.vue +583 -46
  40. package/components/Panel/PanelSelectItem.vue +17 -2
  41. package/components/Panel/RightPanelCloser.vue +7 -0
  42. package/components/Transitions/Animation.vue +28 -0
  43. package/components/Utilities/Qr.vue +44 -0
  44. package/composables/axios.ts +1 -0
  45. package/composables/classes.ts +456 -8
  46. package/composables/constants.ts +114 -2
  47. package/composables/fields.ts +328 -0
  48. package/composables/index.ts +270 -19
  49. package/composables/styles.ts +29 -16
  50. package/layouts/default.vue +48 -3
  51. package/locales/ru.json +547 -14
  52. package/package.json +28 -24
  53. package/pages/Token.vue +1 -12
  54. package/plugins/vuetifyPlugin.ts +2 -0
  55. package/store/data.store.ts +1463 -275
  56. package/store/extractStore.ts +17 -0
  57. package/store/form.store.ts +13 -1
  58. package/store/member.store.ts +1 -1
  59. package/store/rules.ts +83 -5
  60. package/types/enum.ts +61 -0
  61. package/types/env.d.ts +1 -0
  62. package/types/form.ts +94 -0
  63. package/types/index.ts +259 -23
@@ -24,7 +24,7 @@
24
24
  :suffix="suffix"
25
25
  @keyup.enter.prevent="submitted"
26
26
  @click:control="!props.readonly && $emit('append')"
27
- @click:clear="(props.readonly ? false : clearable) && $emit('update:modelValue', new Value())"
27
+ @click:clear="(props.readonly ? false : clearable) && $emit('update:modelValue', clearValue)"
28
28
  @click:append="!props.readonly && $emit('append-out')"
29
29
  @click:prepend="!props.readonly && $emit('prepend-out')"
30
30
  @click:append-inner="!props.readonly && $emit('append')"
@@ -50,6 +50,10 @@ export default defineComponent({
50
50
  type: Boolean,
51
51
  default: false,
52
52
  },
53
+ clearValue: {
54
+ type: Object,
55
+ default: new Value(),
56
+ },
53
57
  clearable: {
54
58
  type: Boolean,
55
59
  default: true,
@@ -0,0 +1,5 @@
1
+ <template>
2
+ <div class="min-w-[250px] h-[50px] border-[1px] border-[#dadada] bg-[#FFF] pl-4 flex cursor-pointer opacity-[87%]" :class="[$styles.textSimple, $styles.rounded]">
3
+ <slot></slot>
4
+ </div>
5
+ </template>
@@ -7,6 +7,8 @@
7
7
  :placeholder="placeholder"
8
8
  :label="label"
9
9
  :variant="variant"
10
+ :density="(density as any)"
11
+ :menu-icon="menuIcon"
10
12
  :clear-icon="clearIcon"
11
13
  :color="color"
12
14
  :hint="hint"
@@ -19,6 +21,7 @@
19
21
  :append-inner-icon="appendInnerIcon ? appendInnerIcon : ''"
20
22
  :bg-color="bgColor ? bgColor : ''"
21
23
  :items="items"
24
+ :hide-details="hideDetails"
22
25
  @click:append="!props.readonly && $emit('append-out')"
23
26
  @click:prepend="!props.readonly && $emit('prepend-out')"
24
27
  @click:append-inner="!props.readonly && $emit('append')"
@@ -78,10 +81,22 @@ export default defineComponent({
78
81
  type: String as PropType<InputVariants>,
79
82
  default: 'solo',
80
83
  },
84
+ density: {
85
+ type: String,
86
+ default: 'compact',
87
+ },
88
+ hideDetails: {
89
+ type: Boolean,
90
+ default: false,
91
+ },
81
92
  color: {
82
93
  type: String,
83
94
  default: '#009c73',
84
95
  },
96
+ menuIcon: {
97
+ type: String,
98
+ default: 'mdi-chevron-down',
99
+ },
85
100
  clearIcon: {
86
101
  type: String,
87
102
  default: 'mdi-close',
@@ -122,6 +137,9 @@ export default defineComponent({
122
137
  border: none !important;
123
138
  outline: none !important;
124
139
  }
140
+ .rounded-select.v-input {
141
+ flex: unset !important;
142
+ }
125
143
  .rounded-select .v-label.v-field-label {
126
144
  top: 20px;
127
145
  }
@@ -0,0 +1,64 @@
1
+ <template>
2
+ <div class="base-switch-input p-4 bg-white rounded-lg mb-3">
3
+ <v-switch v-model="field.modelValue" v-bind="switchProps" />
4
+ </div>
5
+ </template>
6
+
7
+ <script lang="ts">
8
+ export default defineComponent({
9
+ name: 'asSwitchInput',
10
+ props: {
11
+ field: {
12
+ type: Object as PropType<SwitchInput>,
13
+ required: true,
14
+ },
15
+ },
16
+ setup(props) {
17
+ const switchProps = computed(() => {
18
+ return {
19
+ label: props.field.label,
20
+ direction: props.field.direction,
21
+ disabled: props.field.disabled,
22
+ hideDetails: true,
23
+ color: '#009C73',
24
+ };
25
+ });
26
+ return { switchProps };
27
+ },
28
+ });
29
+ </script>
30
+
31
+ <style>
32
+ .base-switch-input .v-switch label {
33
+ font-size: 14px !important;
34
+ font-weight: 400 !important;
35
+ line-height: 20px !important;
36
+ opacity: 1 !important;
37
+ }
38
+ .base-switch-input .v-switch__track {
39
+ background: white !important;
40
+ border: 1.1px solid #e5e5ea;
41
+ height: 19px !important;
42
+ width: 100px !important;
43
+ border-radius: 16px;
44
+ overflow: hidden;
45
+ }
46
+
47
+ .base-switch-input .switch-block .v-input--horizontal {
48
+ grid-template-areas: unset !important;
49
+ }
50
+
51
+ .base-switch-input .v-switch__thumb {
52
+ color: white;
53
+ width: 20px;
54
+ height: 20px;
55
+ }
56
+
57
+ .base-switch-input .v-selection-control--dirty .v-switch__track {
58
+ background: #009c73 !important;
59
+ }
60
+
61
+ .base-switch-input .v-switch .v-selection-control {
62
+ min-height: unset !important;
63
+ }
64
+ </style>
@@ -0,0 +1,160 @@
1
+ <template>
2
+ <div class="base-text-input flex justify-between items-center pr-4 mb-[1px] bg-[#fff]" @click="$emit('onClickField')">
3
+ <v-text-field v-model="control.modelValue" v-bind="textFieldProps" v-maska="mask">
4
+ <div v-if="hasSuffix" class="absolute top-[27px] left-[18px] flex items-center justify-center">
5
+ <p class="opacity-0 inline-block mr-[2px]">{{ control.modelValue }}</p>
6
+ <span>{{ suffix }}</span>
7
+ </div>
8
+ </v-text-field>
9
+ <v-icon v-if="control.iconName" :icon="`mdi cursor-pointer ${iconsList[control.iconName]}`" color="#A0B3D8" />
10
+ <vue-date-picker v-if="control.maska === 'date'" v-model="control.modelValue" v-bind="datePickerProps" @update:modelValue="$emit('update:modelValue', $event)">
11
+ <template #trigger>
12
+ <v-icon icon="mdi mdi-calendar-blank-outline cursor-pointer" color="#a0b3d8" />
13
+ </template>
14
+ </vue-date-picker>
15
+ </div>
16
+ </template>
17
+
18
+ <script lang="ts">
19
+ const iconsList: { [key: string]: string } = {
20
+ arrowRight: 'mdi-chevron-right',
21
+ search: 'mdi-magnify',
22
+ sms: 'mdi-message-text',
23
+ clear: 'mdi-close',
24
+ };
25
+
26
+ const suffixList: { [key: string]: string } = {
27
+ kzt: '₸',
28
+ usd: '$',
29
+ percent: '%',
30
+ };
31
+
32
+ export default defineComponent({
33
+ props: {
34
+ control: {
35
+ type: Object as PropType<InputType>,
36
+ required: true,
37
+ },
38
+ },
39
+ setup(props) {
40
+ const mask = computed(() => (props.control.maska ? useMask()[props.control.maska] : ''));
41
+ const dataStore = useDataStore();
42
+
43
+ const textFieldProps = computed(() => {
44
+ return {
45
+ label: props.control.label,
46
+ placeholder: props.control.placeholder,
47
+ disabled: props.control.disabled,
48
+ maxLength: props.control.maxLength,
49
+ readonly: props.control.readonly || props.control.iconName === 'arrowRight',
50
+ };
51
+ });
52
+
53
+ const datePickerProps = computed(() => {
54
+ return {
55
+ locale: 'ru',
56
+ flow: ['calendar'],
57
+ modelType: 'dd.MM.yyyy',
58
+ enableTimePicker: false,
59
+ clearable: false,
60
+ disabled: props.control.disabled,
61
+ readonly: props.control.readonly,
62
+ selectText: 'Выбрать',
63
+ cancelText: 'Закрыть',
64
+ closeOnScroll: true,
65
+ transitions: false,
66
+ teleport: true,
67
+ sixWeeks: true,
68
+ };
69
+ });
70
+
71
+ const hasSuffix = computed(() => {
72
+ return props.control.suffix && props.control.type === 'number' && props.control.modelValue;
73
+ });
74
+
75
+ const suffix = computed(() => {
76
+ return hasSuffix.value ? suffixList[props.control.suffix!] : '';
77
+ });
78
+
79
+ const onClickIcon = async () => {
80
+ if (props.control.fetchFrom) {
81
+ dataStore.rightPanel.open = true;
82
+ dataStore.rightPanel.title = 'test panel name';
83
+ }
84
+ };
85
+
86
+ return {
87
+ // State
88
+ datePickerProps,
89
+ textFieldProps,
90
+ hasSuffix,
91
+ mask,
92
+ suffix,
93
+ iconsList,
94
+ // Functions
95
+ onClickIcon,
96
+ };
97
+ },
98
+ });
99
+ </script>
100
+ <style>
101
+ .base-text-input .v-field__append-inner i {
102
+ color: #a0b3d8 !important;
103
+ margin-left: 10px;
104
+ margin-right: 4px;
105
+ }
106
+ .base-text-input .v-field__append-inner {
107
+ margin-top: 12px;
108
+ cursor: pointer;
109
+ padding-right: 6px;
110
+ }
111
+ .base-text-input .v-field__outline,
112
+ .base-text-input .v-field__overlay,
113
+ .base-text-input .v-field__loader {
114
+ display: none !important;
115
+ }
116
+
117
+ .base-text-input .v-input__prepend {
118
+ padding-top: 0;
119
+ display: flex;
120
+ align-items: center;
121
+ }
122
+ .base-text-input .v-field__append-inner {
123
+ display: flex;
124
+ padding: 0;
125
+ align-items: center;
126
+ justify-content: center;
127
+ }
128
+
129
+ .base-text-input .v-file-input {
130
+ padding: 0px;
131
+ }
132
+ .base-text-input .v-messages,
133
+ .base-text-input .v-messages__message,
134
+ .base-text-input .v-input__details {
135
+ min-height: unset !important;
136
+ }
137
+ .base-text-input .v-messages__message {
138
+ transition: all 0.5s;
139
+ margin-bottom: 10px;
140
+ }
141
+ .base-text-input .v-input__details {
142
+ padding-bottom: 0 !important;
143
+ padding-top: 0 !important;
144
+ }
145
+ .base-text-input .dp__action_buttons button {
146
+ padding: 6px 9px;
147
+ height: unset;
148
+ }
149
+ .base-text-input .dp__action_select {
150
+ background: #a0b3d8;
151
+ color: white;
152
+ }
153
+ .base-text-input .dp__action_select:hover {
154
+ background: #97acd6;
155
+ }
156
+ .base-text-input .dp__active_date,
157
+ .base-text-input .dp__overlay_cell_active {
158
+ background: #a0b3d8;
159
+ }
160
+ </style>
@@ -2,9 +2,14 @@
2
2
  <v-navigation-drawer
3
3
  v-model="$dataStore[whichPanel].open"
4
4
  :temporary="$dataStore[whichPanel].overlay"
5
- location="right"
6
- class="sm:!w-[400px] lg:!relative !right-0"
7
- :class="[$dataStore[whichPanel].overlay ? 'lg:!hidden' : '', $dataStore[whichPanel].open ? '!w-full lg:!w-[420px]' : 'lg:!w-[0px]']"
5
+ :location="side"
6
+ class="sm:!w-[400px]"
7
+ :class="[
8
+ $dataStore[whichPanel].overlay ? 'lg:!hidden' : '',
9
+ $dataStore[whichPanel].open ? '!w-full lg:!w-1/4' : 'lg:!w-[0px]',
10
+ side === 'left' ? '!left-0 !absolute' : '!right-0',
11
+ side === 'right' && $dataStore[whichPanel].open ? 'lg:!relative' : '',
12
+ ]"
8
13
  :disable-resize-watcher="true"
9
14
  :disable-route-watcher="true"
10
15
  >
@@ -12,7 +17,10 @@
12
17
  <div v-if="$dataStore.panelAction === null" class="flex flex-col" id="panel-actions">
13
18
  <slot></slot>
14
19
  </div>
15
- <base-panel-handler v-else />
20
+ <div v-if="side === 'right'" class="flex flex-col" id="right-panel-actions">
21
+ <slot></slot>
22
+ </div>
23
+ <base-panel-handler v-else @task="$emit('task', $event)" />
16
24
  <slot name="panel"></slot>
17
25
  </v-navigation-drawer>
18
26
  </template>
@@ -29,7 +37,12 @@ export default defineComponent({
29
37
  type: String as PropType<PanelTypes>,
30
38
  default: 'panel',
31
39
  },
40
+ side: {
41
+ type: String as PropType<'left' | 'right'>,
42
+ default: 'left',
43
+ },
32
44
  },
45
+ emits: ['task'],
33
46
  setup(props) {
34
47
  const dataStore = useDataStore();
35
48
 
@@ -1,7 +1,14 @@
1
1
  <template>
2
- <header class="relative w-full h-[70px] text-center font-medium align-middle flex items-center border-b-[1px]" :class="[$styles.blueBgLight, $styles.textSimple]">
2
+ <header class="relative w-full min-h-[70px] text-center font-medium align-middle flex items-center border-b-[1px]" :class="[$styles.blueBgLight, $styles.textSimple]">
3
3
  <i v-if="hasBack" @click="$emit('onBack')" class="absolute left-5 mdi text-xl cursor-pointer transition-all" :class="[backIcon, backIconAnim]"></i>
4
4
  <span class="mx-10">{{ title }}</span>
5
+ <i
6
+ v-if="hasInfo && infoItems && infoItems.length && infoItems.filter(i => (typeof i.show === 'boolean' ? i.show : true)).length"
7
+ class="mdi text-xl cursor-pointer transition-all opacity-70"
8
+ :class="[infoIcon, $styles.blueText]"
9
+ >
10
+ <base-info-menu :options="infoItems" @clicked="$dataStore.copyToClipboard($event, false)" />
11
+ </i>
5
12
  <i
6
13
  v-if="hasMore"
7
14
  @click="$emit('onMore')"
@@ -13,6 +20,8 @@
13
20
  </template>
14
21
 
15
22
  <script lang="ts">
23
+ import { MenuItem } from '../../composables/classes';
24
+
16
25
  export default defineComponent({
17
26
  props: {
18
27
  hasBack: {
@@ -33,7 +42,19 @@ export default defineComponent({
33
42
  },
34
43
  moreIcon: {
35
44
  type: String,
36
- default: 'mdi-cog-outline',
45
+ default: 'mdi-dots-vertical',
46
+ },
47
+ hasInfo: {
48
+ type: Boolean,
49
+ default: false,
50
+ },
51
+ infoIcon: {
52
+ type: String,
53
+ default: '',
54
+ },
55
+ infoItems: {
56
+ type: Array as PropType<Array<MenuItem>>,
57
+ default: [],
37
58
  },
38
59
  title: {
39
60
  type: String,
@@ -28,7 +28,7 @@ export default defineComponent({
28
28
  },
29
29
  bgColor: {
30
30
  type: String,
31
- default: '#009C73',
31
+ default: import.meta.env.VITE_PRODUCT === 'auletti' || import.meta.env.VITE_PARENT_PRODUCT === 'auletti' ? '#1B1918' : '#009c73',
32
32
  },
33
33
  },
34
34
  });
@@ -9,7 +9,7 @@
9
9
  <v-text-field v-model="$dataStore.user.fullName" :readonly="true" hide-details variant="plain" :label="$dataStore.user.roles?.join(', ')" />
10
10
  <i class="mdi mdi-account-outline text-2xl text-[#A0B3D8]"></i
11
11
  ></base-panel-item>
12
- <base-panel-item v-if="$dataStore.isEFO && !isProduction && $dataStore.accessToken" @click="changeBridge('lka', $dataStore.accessToken)" class="cursor-pointer">
12
+ <base-panel-item v-if="$dataStore.isEFO && $dataStore.accessToken && $dataStore.hasAccess().toLKA" @click="changeBridge('lka', $dataStore.accessToken)" class="cursor-pointer">
13
13
  {{ $dataStore.t('labels.lkaLong') }}
14
14
  <i class="mdi mdi-chevron-right text-2xl text-[#A0B3D8]"></i
15
15
  ></base-panel-item>
@@ -30,6 +30,10 @@
30
30
  {{ $dataStore.t('historyStatementsAndStatuses') }}
31
31
  <i class="mdi mdi-history text-xl text-[#A0B3D8]"></i>
32
32
  </base-panel-item>
33
+ <base-panel-item v-if="hasFAQ" @click="$router.push({ name: 'FAQ' })" class="cursor-pointer">
34
+ FAQ
35
+ <i class="mdi mdi-help text-xl text-[#A0B3D8]"></i>
36
+ </base-panel-item>
33
37
  <base-panel-item @click="dialogSignOut = true" class="cursor-pointer" :class="[$styles.redText]">
34
38
  {{ $dataStore.t('buttons.logout') }}
35
39
  <i class="mdi mdi-logout text-xl"></i>
@@ -39,9 +43,10 @@
39
43
  </div>
40
44
  <base-dialog
41
45
  v-model="dialogSignOut"
42
- :title="$dataStore.t('dialog.exit')"
43
- :subtitle="$dataStore.t('dialog.dataWillClear')"
44
- actions="default"
46
+ :title="$dataStore.t('dialog.confirmExit')"
47
+ :subtitle="$dataStore.t('dialog.exit') + $dataStore.t('dialog.dataWillClear')"
48
+ :confirm="$dataStore.t('confirm.exit')"
49
+ :icon="{ mdi: 'exit-to-app', color: '#FD2D39' }"
45
50
  @yes="logoutUser"
46
51
  @no="dialogSignOut = false"
47
52
  />
@@ -54,6 +59,7 @@ import { changeBridge } from '#imports';
54
59
  import pkg from '../../package.json';
55
60
  const dialogSignOut = ref(false);
56
61
  const dataStore = useDataStore();
62
+ const router = useRouter();
57
63
 
58
64
  const handleFontSize = (action: 'increase' | 'decrease') => {
59
65
  if (action === 'increase' && dataStore.fontSize < 24) dataStore.fontSize += 2;
@@ -70,13 +76,13 @@ const logoutUser = async () => {
70
76
  await dataStore.logoutUser();
71
77
  };
72
78
 
73
- const isProduction = import.meta.env.VITE_MODE === 'production';
74
-
75
79
  const hasHistory = computed(() => {
76
80
  return !dataStore.isLKA;
77
81
  });
78
82
 
83
+ const hasFAQ = computed(() => router.hasRoute('FAQ') && !dataStore.isAULETTI && !dataStore.isAulettiParent);
84
+
79
85
  const openHistory = async () => {
80
- dataStore.sendToParent(constants.postActions.toStatementHistory, dataStore.isBridge ? '' : dataStore.product);
86
+ dataStore.sendToParent(constants.postActions.toStatementHistory, dataStore.isBridge || dataStore.isDSO || dataStore.isUU ? '' : dataStore.product);
81
87
  };
82
88
  </script>
@@ -0,0 +1,35 @@
1
+ <template>
2
+ <v-menu
3
+ v-if="options && options.length && options.filter(i => (typeof i.show === 'boolean' ? i.show : true)).length"
4
+ open-on-click
5
+ activator="parent"
6
+ :close-on-content-click="false"
7
+ transition="scale-transition"
8
+ >
9
+ <base-form-text-section class="p-1 border-[1px] flex flex-col gap-3 elevation-3 w-[250px]">
10
+ <v-list lines="two" density="compact" class="!p-0">
11
+ <v-list-item v-for="(option, index) of options.filter(i => (typeof i.show === 'boolean' ? i.show : true))" :key="index" class="!px-3">
12
+ <v-list-item-title :class="[$styles.greenText]">{{ option.title }}</v-list-item-title>
13
+ <v-list-item-subtitle class="!opacity-50">{{ option.description }}</v-list-item-subtitle>
14
+ <template v-slot:append>
15
+ <v-btn color="#faae17" :icon="option.icon ? option.icon : 'mdi-content-copy'" variant="text" size="small" @click="$emit('clicked', option.title)"></v-btn>
16
+ </template>
17
+ </v-list-item>
18
+ </v-list>
19
+ </base-form-text-section>
20
+ </v-menu>
21
+ </template>
22
+
23
+ <script lang="ts">
24
+ import { MenuItem } from '../../composables/classes';
25
+
26
+ export default defineComponent({
27
+ emits: ['clicked'],
28
+ props: {
29
+ options: {
30
+ type: Array as PropType<Array<MenuItem>>,
31
+ default: [],
32
+ },
33
+ },
34
+ });
35
+ </script>
@@ -6,7 +6,10 @@
6
6
  :has-back="hasBack"
7
7
  :back-icon="backIcon"
8
8
  :has-more="hasMore"
9
- :hide-more-on-lg="hideOnLg"
9
+ :has-info="hasInfo"
10
+ :info-icon="infoIcon"
11
+ :info-items="infoItems"
12
+ :hide-more-on-lg="false"
10
13
  :more-icon="moreIcon"
11
14
  @onBack="$emit('onBack')"
12
15
  @onMore="$emit('onMore')"
@@ -68,6 +71,18 @@ export default defineComponent({
68
71
  type: Boolean,
69
72
  default: false,
70
73
  },
74
+ hasInfo: {
75
+ type: Boolean,
76
+ default: false,
77
+ },
78
+ infoIcon: {
79
+ type: String,
80
+ default: '',
81
+ },
82
+ infoItems: {
83
+ type: Array as PropType<Array<MenuItem>>,
84
+ default: [],
85
+ },
71
86
  backIcon: {
72
87
  type: String,
73
88
  default: 'mdi-arrow-left',
@@ -78,7 +93,7 @@ export default defineComponent({
78
93
  },
79
94
  moreIcon: {
80
95
  type: String,
81
- default: 'mdi-cog-outline',
96
+ default: 'mdi-dots-vertical',
82
97
  },
83
98
  },
84
99
  emits: ['onLink', 'onBack', 'onMore', 'clicked'],