@vc-shell/framework 1.0.148 → 1.0.150
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/CHANGELOG.md +26 -0
- package/core/composables/index.ts +1 -1
- package/core/composables/useLanguages/index.ts +52 -0
- package/core/plugins/i18n/index.ts +1 -1
- package/core/plugins/modularity/index.ts +10 -1
- package/core/plugins/validation/index.ts +0 -11
- package/core/plugins/validation/rules.ts +7 -6
- package/dist/core/composables/index.d.ts +1 -1
- package/dist/core/composables/index.d.ts.map +1 -1
- package/dist/core/composables/useLanguages/index.d.ts +12 -0
- package/dist/core/composables/useLanguages/index.d.ts.map +1 -0
- package/dist/core/plugins/modularity/index.d.ts.map +1 -1
- package/dist/core/plugins/validation/index.d.ts +0 -3
- package/dist/core/plugins/validation/index.d.ts.map +1 -1
- package/dist/core/plugins/validation/rules.d.ts +1 -1
- package/dist/core/plugins/validation/rules.d.ts.map +1 -1
- package/dist/framework.js +11703 -10961
- package/dist/index.css +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/shared/components/app-switcher/composables/useAppSwitcher/index.d.ts.map +1 -1
- package/dist/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue.d.ts.map +1 -1
- package/dist/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.d.ts +0 -12
- package/dist/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.d.ts.map +1 -1
- package/dist/shared/components/blade-navigation/composables/useBladeNavigation/index.d.ts +6 -3
- package/dist/shared/components/blade-navigation/composables/useBladeNavigation/index.d.ts.map +1 -1
- package/dist/shared/components/blade-navigation/plugin.d.ts.map +1 -1
- package/dist/shared/components/blade-navigation/types/index.d.ts +6 -8
- package/dist/shared/components/blade-navigation/types/index.d.ts.map +1 -1
- package/dist/shared/components/language-selector/language-selector.vue.d.ts.map +1 -1
- package/dist/shared/components/user-dropdown-button/index.d.ts +6 -0
- package/dist/shared/components/user-dropdown-button/index.d.ts.map +1 -1
- package/dist/shared/components/user-dropdown-button/user-dropdown-button.vue.d.ts +1 -0
- package/dist/shared/components/user-dropdown-button/user-dropdown-button.vue.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/components/SchemaRender.d.ts +3 -3
- package/dist/shared/modules/dynamic/components/fields/Button.d.ts +1 -1
- package/dist/shared/modules/dynamic/components/fields/Card.d.ts +1 -1
- package/dist/shared/modules/dynamic/components/fields/Checkbox.d.ts +1 -1
- package/dist/shared/modules/dynamic/components/fields/ContentField.d.ts +1 -1
- package/dist/shared/modules/dynamic/components/fields/DynamicProperty.d.ts +1 -1
- package/dist/shared/modules/dynamic/components/fields/EditorField.d.ts +1 -1
- package/dist/shared/modules/dynamic/components/fields/Fieldset.d.ts +1 -1
- package/dist/shared/modules/dynamic/components/fields/GalleryField.d.ts +1 -1
- package/dist/shared/modules/dynamic/components/fields/ImageField.d.ts +1 -1
- package/dist/shared/modules/dynamic/components/fields/InputCurrency.d.ts +1 -1
- package/dist/shared/modules/dynamic/components/fields/InputField.d.ts +1 -1
- package/dist/shared/modules/dynamic/components/fields/MultivalueField.d.ts +1 -1
- package/dist/shared/modules/dynamic/components/fields/SelectField.d.ts +1 -1
- package/dist/shared/modules/dynamic/components/fields/StatusField.d.ts +1 -1
- package/dist/shared/modules/dynamic/components/fields/TextareaField.d.ts +1 -1
- package/dist/shared/modules/dynamic/components/fields/VideoField.d.ts +1 -1
- package/dist/shared/modules/dynamic/components/fields/props.d.ts +1 -1
- package/dist/shared/modules/dynamic/factories/types/index.d.ts +1 -1
- package/dist/shared/modules/dynamic/factories/types/index.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/helpers/nodeBuilder.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/helpers/override.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/index.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts +3 -1
- package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts +2 -0
- package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/types/index.d.ts +13 -4
- package/dist/shared/modules/dynamic/types/index.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue.d.ts +1 -0
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts +13 -2
- package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts.map +1 -1
- package/package.json +6 -5
- package/shared/components/app-switcher/composables/useAppSwitcher/index.ts +2 -1
- package/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue +12 -26
- package/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.ts +18 -11
- package/shared/components/blade-navigation/composables/useBladeNavigation/index.ts +231 -337
- package/shared/components/blade-navigation/plugin.ts +2 -1
- package/shared/components/blade-navigation/types/index.ts +5 -11
- package/shared/components/language-selector/language-selector.vue +12 -10
- package/shared/components/notification-dropdown/notification-dropdown.vue +1 -1
- package/shared/components/user-dropdown-button/user-dropdown-button.vue +57 -41
- package/shared/modules/dynamic/factories/types/index.ts +1 -1
- package/shared/modules/dynamic/helpers/nodeBuilder.ts +6 -3
- package/shared/modules/dynamic/helpers/override.ts +29 -11
- package/shared/modules/dynamic/index.ts +1 -0
- package/shared/modules/dynamic/pages/dynamic-blade-form.vue +47 -17
- package/shared/modules/dynamic/pages/dynamic-blade-list.vue +11 -1
- package/shared/modules/dynamic/types/index.ts +13 -4
- package/ui/components/atoms/vc-label/vc-label.vue +18 -19
- package/ui/components/molecules/vc-multivalue/vc-multivalue.vue +1 -0
- package/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue +7 -20
- package/ui/components/organisms/vc-app/_internal/vc-app-menu/vc-app-menu.vue +1 -1
- package/ui/components/organisms/vc-app/vc-app.vue +16 -22
- package/core/composables/useI18n/index.ts +0 -7
- package/dist/core/composables/useI18n/index.d.ts +0 -3
- package/dist/core/composables/useI18n/index.d.ts.map +0 -1
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
>
|
|
6
6
|
<slot name="app-switcher"></slot>
|
|
7
7
|
|
|
8
|
-
<template v-if="!$isMobile.value ||
|
|
8
|
+
<template v-if="!$isMobile.value || blades.length === 0">
|
|
9
9
|
<!-- Logo -->
|
|
10
10
|
<img
|
|
11
11
|
class="tw-h-1/2 tw-cursor-pointer tw-mx-3"
|
|
@@ -26,15 +26,15 @@
|
|
|
26
26
|
<template v-if="$isMobile.value">
|
|
27
27
|
<!-- Show blades name when at least one blade is opened -->
|
|
28
28
|
<div
|
|
29
|
-
v-if="
|
|
29
|
+
v-if="blades.length === 1"
|
|
30
30
|
class="tw-overflow-ellipsis tw-overflow-hidden tw-whitespace-nowrap tw-text-2xl tw-leading-header tw-ml-2"
|
|
31
31
|
>
|
|
32
|
-
{{
|
|
32
|
+
{{ toValue(blades[blades.length - 1]?.props?.navigation?.instance)?.title || "" }}
|
|
33
33
|
</div>
|
|
34
34
|
|
|
35
35
|
<!-- Show back link when more than one blade is opened -->
|
|
36
36
|
<VcLink
|
|
37
|
-
v-else-if="
|
|
37
|
+
v-else-if="blades.length > 1"
|
|
38
38
|
class="tw-ml-3"
|
|
39
39
|
@click="$emit('backlink:click')"
|
|
40
40
|
>
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
|
|
57
57
|
<!-- Show menu toggler on mobile devices -->
|
|
58
58
|
<div
|
|
59
|
-
v-if="$isMobile.value"
|
|
59
|
+
v-if="!disableMenu && $isMobile.value"
|
|
60
60
|
class="tw-text-[#319ed4] tw-w-[var(--app-bar-button-width)] tw-flex tw-items-center tw-justify-center tw-h-full tw-box-border tw-cursor-pointer"
|
|
61
61
|
@click="$emit('menubutton:click')"
|
|
62
62
|
>
|
|
@@ -70,11 +70,12 @@ import { useI18n } from "vue-i18n";
|
|
|
70
70
|
import { VcIcon, VcLink } from "./../../../../";
|
|
71
71
|
import { IBladeToolbar } from "./../../../../../../core/types";
|
|
72
72
|
import { useBladeNavigation } from "./../../../../../../shared";
|
|
73
|
-
import {
|
|
73
|
+
import { toValue } from "vue";
|
|
74
74
|
|
|
75
75
|
export interface Props {
|
|
76
76
|
logo?: string;
|
|
77
77
|
title?: string;
|
|
78
|
+
disableMenu?: boolean;
|
|
78
79
|
}
|
|
79
80
|
|
|
80
81
|
export interface Emits {
|
|
@@ -91,20 +92,6 @@ defineEmits<Emits>();
|
|
|
91
92
|
const { t } = useI18n({ useScope: "global" });
|
|
92
93
|
|
|
93
94
|
const { blades } = useBladeNavigation();
|
|
94
|
-
|
|
95
|
-
const viewTitle = ref();
|
|
96
|
-
const quantity = ref();
|
|
97
|
-
|
|
98
|
-
watch(
|
|
99
|
-
() => blades,
|
|
100
|
-
async (newVal) => {
|
|
101
|
-
await nextTick(() => {
|
|
102
|
-
viewTitle.value = Object.values(newVal.value?.instances || {})[0]?.title;
|
|
103
|
-
quantity.value = Object.values(newVal.value?.components || {}).length;
|
|
104
|
-
});
|
|
105
|
-
},
|
|
106
|
-
{ deep: true, immediate: true, flush: "post" },
|
|
107
|
-
);
|
|
108
95
|
</script>
|
|
109
96
|
|
|
110
97
|
<style lang="scss">
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
<!-- Show menu close handler on mobile devices -->
|
|
19
19
|
<div
|
|
20
20
|
v-if="$isMobile.value"
|
|
21
|
-
class="tw-text-[#319ed4] tw-flex tw-justify-end tw-items-center tw-p-4"
|
|
21
|
+
class="tw-text-[#319ed4] tw-flex tw-justify-end tw-items-center tw-p-4 tw-cursor-pointer"
|
|
22
22
|
>
|
|
23
23
|
<VcIcon
|
|
24
24
|
icon="fas fa-times"
|
|
@@ -21,8 +21,9 @@
|
|
|
21
21
|
class="tw-shrink-0"
|
|
22
22
|
:logo="logo"
|
|
23
23
|
:title="title"
|
|
24
|
+
:disable-menu="disableMenu"
|
|
24
25
|
@menubutton:click="($refs.menu as Record<'isMobileVisible', boolean>).isMobileVisible = true"
|
|
25
|
-
@backlink:click="closeBlade(
|
|
26
|
+
@backlink:click="closeBlade(blades.length - 1)"
|
|
26
27
|
@logo:click="openRoot"
|
|
27
28
|
>
|
|
28
29
|
<template #app-switcher>
|
|
@@ -64,19 +65,18 @@
|
|
|
64
65
|
</VcAppBar>
|
|
65
66
|
|
|
66
67
|
<div class="tw-overflow-hidden tw-flex tw-grow tw-basis-0">
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
</slot>
|
|
68
|
+
<!-- Init main menu -->
|
|
69
|
+
<VcAppMenu
|
|
70
|
+
v-if="!disableMenu"
|
|
71
|
+
ref="menu"
|
|
72
|
+
class="tw-shrink-0"
|
|
73
|
+
:version="version"
|
|
74
|
+
@item:click="onMenuItemClick"
|
|
75
|
+
>
|
|
76
|
+
<template #mobile>
|
|
77
|
+
<UserDropdownButton class="tw-p-0 tw-mb-2 tw-w-full tw-h-auto" />
|
|
78
|
+
</template>
|
|
79
|
+
</VcAppMenu>
|
|
80
80
|
|
|
81
81
|
<!-- Blade navigation -->
|
|
82
82
|
<div
|
|
@@ -107,7 +107,6 @@ import {
|
|
|
107
107
|
NotificationDropdown,
|
|
108
108
|
BladeRoutesRecord,
|
|
109
109
|
} from "./../../../../shared/components";
|
|
110
|
-
import { useI18n } from "vue-i18n";
|
|
111
110
|
import { useNotifications, useUser } from "../../../../core/composables";
|
|
112
111
|
import { useRoute, useRouter } from "vue-router";
|
|
113
112
|
import { watchOnce } from "@vueuse/core";
|
|
@@ -119,6 +118,7 @@ export interface Props {
|
|
|
119
118
|
version?: string;
|
|
120
119
|
theme?: "light" | "dark";
|
|
121
120
|
title?: string;
|
|
121
|
+
disableMenu?: boolean;
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
defineOptions({
|
|
@@ -128,7 +128,6 @@ defineOptions({
|
|
|
128
128
|
defineSlots<{
|
|
129
129
|
"app-switcher": void;
|
|
130
130
|
toolbar: void;
|
|
131
|
-
"navigation-menu": void;
|
|
132
131
|
"toolbar:prepend": void;
|
|
133
132
|
"toolbar:language-selector": void;
|
|
134
133
|
"toolbar:notifications-dropdown": void;
|
|
@@ -145,7 +144,7 @@ const router = useRouter();
|
|
|
145
144
|
|
|
146
145
|
const { openBlade, closeBlade, resolveBladeByName, blades } = useBladeNavigation();
|
|
147
146
|
const { appsList, switchApp, getApps } = useAppSwitcher();
|
|
148
|
-
|
|
147
|
+
|
|
149
148
|
const { loadFromHistory } = useNotifications();
|
|
150
149
|
const route = useRoute();
|
|
151
150
|
const { isAuthenticated } = useUser();
|
|
@@ -165,10 +164,6 @@ const onMenuItemClick = function (item: MenuItem) {
|
|
|
165
164
|
}
|
|
166
165
|
};
|
|
167
166
|
|
|
168
|
-
function langInit() {
|
|
169
|
-
currentLocale.value = localStorage.getItem("VC_LANGUAGE_SETTINGS") ?? "en";
|
|
170
|
-
}
|
|
171
|
-
|
|
172
167
|
const openRoot = async () => {
|
|
173
168
|
router.push("/");
|
|
174
169
|
};
|
|
@@ -177,7 +172,6 @@ watchOnce(
|
|
|
177
172
|
() => props.isReady,
|
|
178
173
|
async (newVal) => {
|
|
179
174
|
if (isAuthenticated.value && newVal) {
|
|
180
|
-
langInit();
|
|
181
175
|
await loadFromHistory();
|
|
182
176
|
await getApps();
|
|
183
177
|
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { useI18n as VueUseI18n } from "vue-i18n";
|
|
2
|
-
|
|
3
|
-
/** @deprecated use `useI18n({ useScope: "global" })` directly from `vue-i18n` */
|
|
4
|
-
export function useI18n() {
|
|
5
|
-
console.debug(`[@vc-shell/framework#useI18n] - Entry point`);
|
|
6
|
-
return VueUseI18n({ useScope: "global" });
|
|
7
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../core/composables/useI18n/index.ts"],"names":[],"mappings":"AAEA,iFAAiF;AACjF,wBAAgB,OAAO,mEAGtB"}
|