@vc-shell/framework 1.1.0-alpha.3 → 1.1.0-alpha.4
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/core/composables/index.ts +18 -17
- package/core/composables/useDashboard/index.ts +19 -0
- package/core/composables/{useGlobalSearch.ts → useGlobalSearch/index.ts} +3 -5
- package/core/composables/useWidgets/index.ts +19 -18
- package/core/plugins/modularity/loader.ts +2 -1
- package/core/services/dashboard-service.ts +121 -0
- package/core/services/widget-service.ts +1 -4
- package/dist/core/composables/index.d.ts +1 -0
- package/dist/core/composables/index.d.ts.map +1 -1
- package/dist/core/composables/useDashboard/index.d.ts +5 -0
- package/dist/core/composables/useDashboard/index.d.ts.map +1 -0
- package/dist/core/composables/{useGlobalSearch.d.ts → useGlobalSearch/index.d.ts} +1 -1
- package/dist/core/composables/useGlobalSearch/index.d.ts.map +1 -0
- package/dist/core/plugins/modularity/loader.d.ts.map +1 -1
- package/dist/core/services/dashboard-service.d.ts +33 -0
- package/dist/core/services/dashboard-service.d.ts.map +1 -0
- package/dist/core/services/widget-service.d.ts.map +1 -1
- package/dist/framework.js +235 -225
- package/dist/{index-Bu12RZTu.js → index-8LELHzw9.js} +1 -1
- package/dist/{index-Bwl2ND2Q.js → index-9lJxZE5w.js} +1 -1
- package/dist/{index-CJi-BbTb.js → index-B1YR_MYV.js} +1 -1
- package/dist/{index-BhdwVgUw.js → index-BA98L1jI.js} +1 -1
- package/dist/{index-NdrUF1u3.js → index-BAeTsi-X.js} +1 -1
- package/dist/{index-CbRqPQTw.js → index-BBYyHeYA.js} +1 -1
- package/dist/{index-CsaYfhir.js → index-BrUitdDo.js} +1 -1
- package/dist/{index-CZ_pj3nW.js → index-BuO5ByG9.js} +1 -1
- package/dist/{index-DFPb-jDP.js → index-CJ5I7vTn.js} +1 -1
- package/dist/{index-BdoAu2fz.js → index-CWKrD2Cd.js} +1 -1
- package/dist/{index-DVaMW7gL.js → index-Cf9Tz1ql.js} +1 -1
- package/dist/{index-B89uIUkS.js → index-CrxFDC2b.js} +1 -1
- package/dist/{index-BcQiBkO6.js → index-D1JchciU.js} +1 -1
- package/dist/{index-CEvuTGIu.js → index-DLtsQ_PJ.js} +31254 -31134
- package/dist/{index-COjjAS6v.js → index-DVljTjbf.js} +1 -1
- package/dist/{index-DjQ6Ffv8.js → index-RwX3kiZh.js} +28 -28
- package/dist/{index-S9Ht7s3i.js → index-xLYzNPa7.js} +1 -1
- package/dist/index.css +1 -1
- package/dist/injection-keys.d.ts +28 -0
- package/dist/injection-keys.d.ts.map +1 -1
- package/dist/shared/components/dashboard-widget-card/dashboard-widget-card.vue.d.ts +25 -0
- package/dist/shared/components/dashboard-widget-card/dashboard-widget-card.vue.d.ts.map +1 -0
- package/dist/shared/components/dashboard-widget-card/index.d.ts +2 -0
- package/dist/shared/components/dashboard-widget-card/index.d.ts.map +1 -0
- package/dist/shared/components/draggable-dashboard/DraggableDashboard.vue.d.ts +6 -0
- package/dist/shared/components/draggable-dashboard/DraggableDashboard.vue.d.ts.map +1 -0
- package/dist/shared/components/draggable-dashboard/_internal/DashboardWidget.vue.d.ts +20 -0
- package/dist/shared/components/draggable-dashboard/_internal/DashboardWidget.vue.d.ts.map +1 -0
- package/dist/shared/components/draggable-dashboard/composables/useDashboardDragAndDrop.d.ts +354 -0
- package/dist/shared/components/draggable-dashboard/composables/useDashboardDragAndDrop.d.ts.map +1 -0
- package/dist/shared/components/draggable-dashboard/composables/useDashboardGrid.d.ts +12 -0
- package/dist/shared/components/draggable-dashboard/composables/useDashboardGrid.d.ts.map +1 -0
- package/dist/shared/components/draggable-dashboard/index.d.ts +2 -0
- package/dist/shared/components/draggable-dashboard/index.d.ts.map +1 -0
- package/dist/shared/components/draggable-dashboard/types.d.ts +80 -0
- package/dist/shared/components/draggable-dashboard/types.d.ts.map +1 -0
- package/dist/shared/components/index.d.ts +2 -0
- package/dist/shared/components/index.d.ts.map +1 -1
- package/dist/shared/components/user-dropdown-button/_internal/user-info.vue.d.ts.map +1 -1
- package/dist/shared/components/user-dropdown-button/user-dropdown-button.vue.d.ts.map +1 -1
- package/dist/shared/composables/useMenuExpanded.d.ts +2 -0
- package/dist/shared/composables/useMenuExpanded.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/components/fields/storybook/Button.stories.d.ts +0 -41
- package/dist/shared/modules/dynamic/components/fields/storybook/Button.stories.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/components/fields/storybook/Card.stories.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/components/fields/storybook/common/templates.d.ts +1 -1
- package/dist/shared/modules/dynamic/components/fields/storybook/common/templates.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts +2 -25
- package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts.map +1 -1
- package/dist/tailwind.config.d.ts +1 -81
- package/dist/tailwind.config.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/ui/components/atoms/vc-button/vc-button.stories.d.ts +169 -734
- package/dist/ui/components/atoms/vc-button/vc-button.stories.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-button/vc-button.vue.d.ts +18 -2
- package/dist/ui/components/atoms/vc-button/vc-button.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-card/index.d.ts +2 -0
- package/dist/ui/components/atoms/vc-card/index.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-card/vc-card.stories.d.ts +12 -0
- package/dist/ui/components/atoms/vc-card/vc-card.stories.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-card/vc-card.vue.d.ts +2 -0
- package/dist/ui/components/atoms/vc-card/vc-card.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/icons/GridDotsIcon.vue.d.ts +18 -0
- package/dist/ui/components/atoms/vc-icon/icons/GridDotsIcon.vue.d.ts.map +1 -0
- package/dist/ui/components/atoms/vc-icon/icons/ShoppingCardIcon.vue.d.ts +18 -0
- package/dist/ui/components/atoms/vc-icon/icons/ShoppingCardIcon.vue.d.ts.map +1 -0
- package/dist/ui/components/atoms/vc-icon/icons/index.d.ts +2 -0
- package/dist/ui/components/atoms/vc-icon/icons/index.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/composables/useAppMenuState.d.ts +2 -0
- package/dist/ui/components/organisms/vc-app/_internal/composables/useAppMenuState.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue.d.ts +0 -1
- 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/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue.d.ts +2 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/vc-app-menu.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/vc-app.stories.d.ts +13 -67
- package/dist/ui/components/organisms/vc-app/vc-app.stories.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts +5 -65
- package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-base-header/vc-table-base-header.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/{vc-table-header/vc-table-header.vue.d.ts → vc-table-columns-header/vc-table-columns-header.vue.d.ts} +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-columns-header/vc-table-columns-header.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-header/vc-table-header.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-mobile-view/vc-table-mobile-view.vue.d.ts +33 -3
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-mobile-view/vc-table-mobile-view.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableRowReorder.d.ts.map +1 -1
- package/package.json +10 -5
- package/shared/components/dashboard-widget-card/dashboard-widget-card.vue +67 -0
- package/shared/components/dashboard-widget-card/index.ts +1 -0
- package/shared/components/draggable-dashboard/DraggableDashboard.vue +369 -0
- package/shared/components/draggable-dashboard/_internal/DashboardWidget.vue +133 -0
- package/shared/components/draggable-dashboard/composables/useDashboardDragAndDrop.ts +547 -0
- package/shared/components/draggable-dashboard/composables/useDashboardGrid.ts +250 -0
- package/shared/components/draggable-dashboard/index.ts +1 -0
- package/shared/components/draggable-dashboard/types.ts +91 -0
- package/shared/components/index.ts +2 -0
- package/shared/components/user-dropdown-button/_internal/user-info.vue +25 -12
- package/shared/components/user-dropdown-button/user-dropdown-button.vue +3 -3
- package/shared/composables/useMenuExpanded.ts +24 -0
- package/shared/modules/assets/components/assets-details/assets-details.vue +1 -1
- package/shared/modules/dynamic/components/fields/storybook/Button.stories.ts +186 -247
- package/shared/modules/dynamic/components/fields/storybook/Card.stories.ts +175 -176
- package/shared/modules/dynamic/components/fields/storybook/common/templates.ts +8 -8
- package/shared/modules/dynamic/pages/dynamic-blade-list.vue +153 -187
- package/tailwind.config.ts +127 -126
- package/ui/components/atoms/vc-button/vc-button.stories.ts +1 -16
- package/ui/components/atoms/vc-button/vc-button.vue +74 -63
- package/ui/components/atoms/vc-card/vc-card.stories.ts +102 -102
- package/ui/components/atoms/vc-card/vc-card.vue +164 -159
- package/ui/components/atoms/vc-icon/icons/GridDotsIcon.vue +22 -0
- package/ui/components/atoms/vc-icon/icons/ShoppingCardIcon.vue +16 -0
- package/ui/components/atoms/vc-icon/icons/index.ts +2 -0
- package/ui/components/molecules/vc-field/vc-field.vue +1 -1
- package/ui/components/organisms/vc-app/_internal/composables/useAppMenuState.ts +12 -1
- package/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/AppBarContent.vue +1 -2
- package/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/AppBarHeader.vue +1 -1
- package/ui/components/organisms/vc-app/_internal/vc-app-bar/_internal/AppBarOverlay.vue +0 -1
- package/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue +274 -112
- package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue +81 -37
- package/ui/components/organisms/vc-app/_internal/vc-app-menu/vc-app-menu.vue +7 -5
- package/ui/components/organisms/vc-app/vc-app.vue +26 -15
- package/ui/components/organisms/vc-table/_internal/vc-table-base-header/vc-table-base-header.vue +5 -7
- package/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/{vc-table-header/vc-table-header.vue → vc-table-columns-header/vc-table-columns-header.vue} +23 -21
- package/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-row/vc-table-row.vue +1 -0
- package/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/vc-table-desktop-view.vue +1 -1
- package/ui/components/organisms/vc-table/_internal/vc-table-header/vc-table-header.vue +12 -1
- package/ui/components/organisms/vc-table/_internal/vc-table-mobile-view/vc-table-mobile-view.vue +45 -2
- package/ui/components/organisms/vc-table/composables/useTableColumnReorder.ts +5 -5
- package/ui/components/organisms/vc-table/composables/useTableColumnResize.ts +1 -1
- package/ui/components/organisms/vc-table/composables/useTableRowReorder.ts +1 -0
- package/core/services/toolbarbus-service.ts +0 -34
- package/dist/core/composables/useGlobalSearch.d.ts.map +0 -1
- package/dist/core/services/toolbarbus-service.d.ts +0 -10
- package/dist/core/services/toolbarbus-service.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-app/composables/useToolbarSlots.d.ts +0 -5
- package/dist/ui/components/organisms/vc-app/composables/useToolbarSlots.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-desktop-view/_internal/vc-table-header/vc-table-header.vue.d.ts.map +0 -1
- package/ui/components/organisms/vc-app/composables/useToolbarSlots.ts +0 -37
|
@@ -1,151 +1,133 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
:is="isWidgetView ? 'template' : 'VcBlade'"
|
|
2
|
+
<VcBlade
|
|
4
3
|
v-if="!composables"
|
|
5
4
|
:expanded="expanded"
|
|
6
5
|
:closable="closable"
|
|
7
6
|
:width="settings?.width || '50%'"
|
|
8
7
|
:toolbar-items="toolbarComputed"
|
|
9
8
|
:title="title"
|
|
10
|
-
:class="{
|
|
11
|
-
'tw-flex tw-flex-auto': isWidgetView,
|
|
12
|
-
}"
|
|
13
9
|
:modified="unreffedScope?.modified"
|
|
14
10
|
@close="$emit('close:blade')"
|
|
15
11
|
@expand="$emit('expand:blade')"
|
|
16
12
|
@collapse="$emit('collapse:blade')"
|
|
17
13
|
>
|
|
18
|
-
<
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
14
|
+
<div
|
|
15
|
+
v-if="toValue(scope?.breadcrumbs)?.length"
|
|
16
|
+
class="tw-p-4"
|
|
17
|
+
>
|
|
18
|
+
<VcBreadcrumbs
|
|
19
|
+
:items="toValue(scope?.breadcrumbs)"
|
|
20
|
+
variant="light"
|
|
21
|
+
with-arrow
|
|
22
|
+
/>
|
|
23
|
+
</div>
|
|
24
|
+
<VcTable
|
|
25
|
+
class="tw-grow tw-basis-0"
|
|
26
|
+
v-bind="tableConfigComputed"
|
|
27
|
+
:expanded="expanded"
|
|
28
|
+
:total-label="$t(`${localizationPrefix}.PAGES.LIST.TABLE.TOTALS`)"
|
|
29
|
+
:active-filter-count="activeFilterCount"
|
|
30
|
+
:disable-filter="filterDisable"
|
|
31
|
+
>
|
|
32
|
+
<template
|
|
33
|
+
v-if="isFilterVisible && bladeOptions.tableData?.filter"
|
|
34
|
+
#filters="{ closePanel }"
|
|
23
35
|
>
|
|
24
|
-
|
|
25
|
-
>
|
|
26
|
-
</template>
|
|
27
|
-
<template v-else>
|
|
28
|
-
<div
|
|
29
|
-
v-if="!isWidgetView && toValue(scope?.breadcrumbs)?.length"
|
|
30
|
-
class="tw-p-4"
|
|
31
|
-
>
|
|
32
|
-
<VcBreadcrumbs
|
|
33
|
-
:items="toValue(scope?.breadcrumbs)"
|
|
34
|
-
variant="light"
|
|
35
|
-
with-arrow
|
|
36
|
-
/>
|
|
37
|
-
</div>
|
|
38
|
-
<VcTable
|
|
39
|
-
class="tw-grow tw-basis-0"
|
|
40
|
-
v-bind="tableConfigComputed"
|
|
41
|
-
:expanded="expanded"
|
|
42
|
-
:total-label="$t(`${localizationPrefix}.PAGES.LIST.TABLE.TOTALS`)"
|
|
43
|
-
:active-filter-count="activeFilterCount"
|
|
44
|
-
:disable-filter="filterDisable"
|
|
45
|
-
>
|
|
46
|
-
<template
|
|
47
|
-
v-if="isFilterVisible && bladeOptions.tableData?.filter"
|
|
48
|
-
#filters="{ closePanel }"
|
|
49
|
-
>
|
|
50
|
-
<filterComponent :close="closePanel" />
|
|
51
|
-
</template>
|
|
36
|
+
<filterComponent :close="closePanel" />
|
|
37
|
+
</template>
|
|
52
38
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
</template>
|
|
62
|
-
<template v-else>
|
|
63
|
-
<div class="tw-w-full tw-h-full tw-box-border tw-flex tw-flex-col tw-items-center tw-justify-center">
|
|
64
|
-
<div class="tw-m-4 tw-text-xl tw-font-medium">
|
|
65
|
-
{{ $t(`${localizationPrefix}.PAGES.LIST.NOT_FOUND.EMPTY`) }}
|
|
66
|
-
</div>
|
|
67
|
-
<VcButton
|
|
68
|
-
v-if="isFilterVisible"
|
|
69
|
-
@click="resetSearch"
|
|
70
|
-
>{{ $t(`${localizationPrefix}.PAGES.LIST.NOT_FOUND.RESET`) }}</VcButton
|
|
71
|
-
>
|
|
72
|
-
</div>
|
|
73
|
-
</template>
|
|
39
|
+
<!-- Not found template -->
|
|
40
|
+
<template #notfound>
|
|
41
|
+
<template v-if="tableTemplates?.notFound">
|
|
42
|
+
<component
|
|
43
|
+
:is="tableTemplates.notFound"
|
|
44
|
+
:context="bladeContext"
|
|
45
|
+
@reset="resetSearch"
|
|
46
|
+
></component>
|
|
74
47
|
</template>
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
<component
|
|
80
|
-
:is="tableTemplates.empty"
|
|
81
|
-
:class="{
|
|
82
|
-
'tw-py-6': isWidgetView,
|
|
83
|
-
}"
|
|
84
|
-
:context="bladeContext"
|
|
85
|
-
@add="openDetailsBlade"
|
|
86
|
-
></component>
|
|
87
|
-
</template>
|
|
88
|
-
<template v-else>
|
|
89
|
-
<div class="tw-w-full tw-h-full tw-box-border tw-flex tw-flex-col tw-items-center tw-justify-center">
|
|
90
|
-
<div class="tw-m-4 tw-text-xl tw-font-medium">
|
|
91
|
-
{{ $t(`${localizationPrefix}.PAGES.LIST.EMPTY.NO_ITEMS`) }}
|
|
92
|
-
</div>
|
|
48
|
+
<template v-else>
|
|
49
|
+
<div class="tw-w-full tw-h-full tw-box-border tw-flex tw-flex-col tw-items-center tw-justify-center">
|
|
50
|
+
<div class="tw-m-4 tw-text-xl tw-font-medium">
|
|
51
|
+
{{ $t(`${localizationPrefix}.PAGES.LIST.NOT_FOUND.EMPTY`) }}
|
|
93
52
|
</div>
|
|
94
|
-
|
|
53
|
+
<VcButton
|
|
54
|
+
v-if="isFilterVisible"
|
|
55
|
+
@click="resetSearch"
|
|
56
|
+
>{{ $t(`${localizationPrefix}.PAGES.LIST.NOT_FOUND.RESET`) }}</VcButton
|
|
57
|
+
>
|
|
58
|
+
</div>
|
|
95
59
|
</template>
|
|
60
|
+
</template>
|
|
96
61
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
#[`item_${key}`]="itemData"
|
|
101
|
-
:key="`template_override_${index}`"
|
|
102
|
-
>
|
|
62
|
+
<!-- Empty template -->
|
|
63
|
+
<template #empty>
|
|
64
|
+
<template v-if="tableTemplates?.empty">
|
|
103
65
|
<component
|
|
104
|
-
:is="
|
|
105
|
-
:context="
|
|
106
|
-
|
|
107
|
-
/>
|
|
108
|
-
</template>
|
|
109
|
-
|
|
110
|
-
<!-- Override header -->
|
|
111
|
-
<template
|
|
112
|
-
v-if="tableTemplates?.header && !isWidgetView"
|
|
113
|
-
#header="headerData"
|
|
114
|
-
>
|
|
115
|
-
<component
|
|
116
|
-
:is="tableTemplates.header"
|
|
117
|
-
:context="headerData"
|
|
118
|
-
:blade-context="bladeContext"
|
|
66
|
+
:is="tableTemplates.empty"
|
|
67
|
+
:context="bladeContext"
|
|
68
|
+
@add="openDetailsBlade"
|
|
119
69
|
></component>
|
|
120
70
|
</template>
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
<component
|
|
128
|
-
:is="tableTemplates.footer"
|
|
129
|
-
:context="footerData"
|
|
130
|
-
:blade-context="bladeContext"
|
|
131
|
-
></component>
|
|
71
|
+
<template v-else>
|
|
72
|
+
<div class="tw-w-full tw-h-full tw-box-border tw-flex tw-flex-col tw-items-center tw-justify-center">
|
|
73
|
+
<div class="tw-m-4 tw-text-xl tw-font-medium">
|
|
74
|
+
{{ $t(`${localizationPrefix}.PAGES.LIST.EMPTY.NO_ITEMS`) }}
|
|
75
|
+
</div>
|
|
76
|
+
</div>
|
|
132
77
|
</template>
|
|
78
|
+
</template>
|
|
133
79
|
|
|
134
|
-
|
|
80
|
+
<!-- Override table templates-->
|
|
81
|
+
<template
|
|
82
|
+
v-for="(component, key, index) in tableTemplates?.templateOverrideComponents"
|
|
83
|
+
#[`item_${key}`]="itemData"
|
|
84
|
+
:key="`template_override_${index}`"
|
|
85
|
+
>
|
|
86
|
+
<component
|
|
87
|
+
:is="component"
|
|
88
|
+
:context="itemData"
|
|
89
|
+
:blade-context="bladeContext"
|
|
90
|
+
/>
|
|
91
|
+
</template>
|
|
135
92
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
</
|
|
147
|
-
|
|
148
|
-
|
|
93
|
+
<!-- Override header -->
|
|
94
|
+
<template
|
|
95
|
+
v-if="tableTemplates?.header"
|
|
96
|
+
#header="headerData"
|
|
97
|
+
>
|
|
98
|
+
<component
|
|
99
|
+
:is="tableTemplates.header"
|
|
100
|
+
:context="headerData"
|
|
101
|
+
:blade-context="bladeContext"
|
|
102
|
+
></component>
|
|
103
|
+
</template>
|
|
104
|
+
|
|
105
|
+
<!-- Override footer -->
|
|
106
|
+
<template
|
|
107
|
+
v-if="tableTemplates?.footer"
|
|
108
|
+
#footer="footerData"
|
|
109
|
+
>
|
|
110
|
+
<component
|
|
111
|
+
:is="tableTemplates.footer"
|
|
112
|
+
:context="footerData"
|
|
113
|
+
:blade-context="bladeContext"
|
|
114
|
+
></component>
|
|
115
|
+
</template>
|
|
116
|
+
|
|
117
|
+
<!-- Override table mobile view -->
|
|
118
|
+
|
|
119
|
+
<template
|
|
120
|
+
v-if="tableTemplates?.mobileView"
|
|
121
|
+
#mobile-item="itemData"
|
|
122
|
+
>
|
|
123
|
+
<component
|
|
124
|
+
:is="tableTemplates.mobileView"
|
|
125
|
+
:context="itemData"
|
|
126
|
+
:blade-context="bladeContext"
|
|
127
|
+
></component>
|
|
128
|
+
</template>
|
|
129
|
+
</VcTable>
|
|
130
|
+
</VcBlade>
|
|
149
131
|
</template>
|
|
150
132
|
<script setup lang="ts">
|
|
151
133
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
@@ -168,10 +150,10 @@ import {
|
|
|
168
150
|
import { useI18n } from "vue-i18n";
|
|
169
151
|
import { DynamicGridSchema, ListContentSchema, SettingsSchema } from "../types";
|
|
170
152
|
import { useFilterBuilder, useTableTemplates } from "../composables";
|
|
171
|
-
import { useFunctions
|
|
153
|
+
import { useFunctions } from "../../../../core/composables";
|
|
172
154
|
import { IActionBuilderResult, ITableColumns } from "../../../../core/types";
|
|
173
155
|
import { useToolbarReducer } from "../composables/useToolbarReducer";
|
|
174
|
-
import {
|
|
156
|
+
import { useBladeNavigation, usePopup } from "../../../components";
|
|
175
157
|
import { ListBaseBladeScope, ListBladeContext, UseList } from "../factories/types";
|
|
176
158
|
import { IParentCallArgs } from "../../../index";
|
|
177
159
|
import { reactiveComputed, toReactive, useMounted } from "@vueuse/core";
|
|
@@ -186,7 +168,6 @@ export interface Props {
|
|
|
186
168
|
options?: unknown;
|
|
187
169
|
model?: DynamicGridSchema;
|
|
188
170
|
composables?: Record<string, (...args: any[]) => Record<string, any>>;
|
|
189
|
-
isWidgetView?: boolean;
|
|
190
171
|
mixinFn?: ((...args: any[]) => any)[];
|
|
191
172
|
}
|
|
192
173
|
|
|
@@ -196,8 +177,6 @@ export interface Emits {
|
|
|
196
177
|
(event: "collapse:blade"): void;
|
|
197
178
|
(event: "expand:blade"): void;
|
|
198
179
|
(event: "close:children"): void;
|
|
199
|
-
(event: "item-click", args: { param: string | undefined }): void;
|
|
200
|
-
(event: "add"): void;
|
|
201
180
|
}
|
|
202
181
|
|
|
203
182
|
const props = withDefaults(defineProps<Props>(), {
|
|
@@ -240,7 +219,7 @@ const stateKey =
|
|
|
240
219
|
props.composables &&
|
|
241
220
|
computed(() => {
|
|
242
221
|
if (tableData?.value?.id) {
|
|
243
|
-
return tableData.value?.id
|
|
222
|
+
return tableData.value?.id;
|
|
244
223
|
}
|
|
245
224
|
|
|
246
225
|
throw new Error('Table id is not defined. Please provide "id" property in table schema');
|
|
@@ -256,7 +235,6 @@ let { load, remove, items, loading, pagination, query, scope } = props.composabl
|
|
|
256
235
|
emit,
|
|
257
236
|
props,
|
|
258
237
|
mounted: useMounted(),
|
|
259
|
-
isWidgetView: props.isWidgetView,
|
|
260
238
|
}) as UseList<Record<string, any>[], Record<string, any>, ListBaseBladeScope>)
|
|
261
239
|
: ({
|
|
262
240
|
load: ref(true),
|
|
@@ -302,10 +280,6 @@ const selection = computed(() => {
|
|
|
302
280
|
return [];
|
|
303
281
|
});
|
|
304
282
|
|
|
305
|
-
if (props.isWidgetView) {
|
|
306
|
-
query.value.take = 5;
|
|
307
|
-
}
|
|
308
|
-
|
|
309
283
|
sort.value = query.value.sort ?? "createdDate:DESC";
|
|
310
284
|
|
|
311
285
|
const unreffedScope = reactiveComputed(() => toValue(scope) ?? {});
|
|
@@ -421,7 +395,7 @@ onBeforeMount(async () => {
|
|
|
421
395
|
await load({
|
|
422
396
|
sort: sort.value,
|
|
423
397
|
...query.value,
|
|
424
|
-
...
|
|
398
|
+
...getNavigationQuery(),
|
|
425
399
|
});
|
|
426
400
|
});
|
|
427
401
|
|
|
@@ -472,54 +446,46 @@ const onCellBlur = async (data: { row: number | undefined; field: string }) => {
|
|
|
472
446
|
};
|
|
473
447
|
|
|
474
448
|
const openDetailsBlade = async () => {
|
|
475
|
-
if (
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
)
|
|
482
|
-
await toValue(unreffedScope).openDetailsBlade?.();
|
|
483
|
-
}
|
|
484
|
-
} else {
|
|
485
|
-
emit("add");
|
|
449
|
+
if (
|
|
450
|
+
scope &&
|
|
451
|
+
"openDetailsBlade" in toValue(unreffedScope) &&
|
|
452
|
+
toValue(unreffedScope).openDetailsBlade &&
|
|
453
|
+
typeof toValue(unreffedScope).openDetailsBlade === "function"
|
|
454
|
+
) {
|
|
455
|
+
await toValue(unreffedScope).openDetailsBlade?.();
|
|
486
456
|
}
|
|
487
457
|
};
|
|
488
458
|
|
|
489
459
|
const onItemClick = (item: { [x: string]: any; id?: string }) => {
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
)
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
)
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
});
|
|
520
|
-
}
|
|
521
|
-
} else {
|
|
522
|
-
emit("item-click", { param: item.id });
|
|
460
|
+
// TODO Add to docs
|
|
461
|
+
if (
|
|
462
|
+
scope &&
|
|
463
|
+
safeIn("onListItemClick", toValue(unreffedScope)) &&
|
|
464
|
+
typeof toValue(unreffedScope).onListItemClick === "function"
|
|
465
|
+
) {
|
|
466
|
+
toValue(unreffedScope).onListItemClick?.({
|
|
467
|
+
item,
|
|
468
|
+
onOpen() {
|
|
469
|
+
selectedItemId.value = item.id;
|
|
470
|
+
},
|
|
471
|
+
onClose() {
|
|
472
|
+
selectedItemId.value = undefined;
|
|
473
|
+
},
|
|
474
|
+
});
|
|
475
|
+
} else if (
|
|
476
|
+
scope &&
|
|
477
|
+
safeIn("openDetailsBlade", toValue(unreffedScope)) &&
|
|
478
|
+
typeof toValue(unreffedScope).openDetailsBlade === "function"
|
|
479
|
+
) {
|
|
480
|
+
toValue(unreffedScope).openDetailsBlade?.({
|
|
481
|
+
param: item.id,
|
|
482
|
+
onOpen() {
|
|
483
|
+
selectedItemId.value = item.id;
|
|
484
|
+
},
|
|
485
|
+
onClose() {
|
|
486
|
+
selectedItemId.value = undefined;
|
|
487
|
+
},
|
|
488
|
+
});
|
|
523
489
|
}
|
|
524
490
|
};
|
|
525
491
|
|
|
@@ -722,20 +688,20 @@ const tableConfig = computed(() => {
|
|
|
722
688
|
columns: tableColsWithLocales ?? [],
|
|
723
689
|
stateKey: stateKey?.value ?? "",
|
|
724
690
|
items: itemsProxy.value ?? [],
|
|
725
|
-
multiselect:
|
|
726
|
-
header:
|
|
691
|
+
multiselect: tableData?.value?.multiselect,
|
|
692
|
+
header: tableData?.value?.header,
|
|
727
693
|
itemActionBuilder: actionBuilder,
|
|
728
|
-
editing:
|
|
729
|
-
enableItemActions: !!tableData?.value?.actions
|
|
730
|
-
footer:
|
|
694
|
+
editing: isBladeEditable.value,
|
|
695
|
+
enableItemActions: !!tableData?.value?.actions,
|
|
696
|
+
footer: tableData?.value?.footer,
|
|
731
697
|
sort: sort.value,
|
|
732
698
|
pages: pagination.value?.pages,
|
|
733
699
|
currentPage: pagination.value?.currentPage,
|
|
734
700
|
searchValue: searchValue.value,
|
|
735
701
|
selectedItemId: selectedItemId.value,
|
|
736
702
|
totalCount: pagination.value?.totalCount,
|
|
737
|
-
reorderableRows:
|
|
738
|
-
pullToReload:
|
|
703
|
+
reorderableRows: tableData?.value?.reorderableRows,
|
|
704
|
+
pullToReload: true,
|
|
739
705
|
selectAll: tableData?.value?.selectAll,
|
|
740
706
|
paginationVariant: tableData?.value?.paginationVariant,
|
|
741
707
|
selectionItems: selection.value,
|