@vc-shell/framework 1.1.6 → 1.1.8

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 (214) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/core/services/widget-service.ts +2 -1
  3. package/core/types/index.ts +6 -1
  4. package/dist/apl-B2DGVGxc.js +76 -0
  5. package/dist/asciiarmor-2LVJmxlE.js +34 -0
  6. package/dist/asn1-jKiBa2Ya.js +95 -0
  7. package/dist/asterisk-DS281yxp.js +271 -0
  8. package/dist/brainfuck-C_p9pTT8.js +34 -0
  9. package/dist/clike-BUuHEmgZ.js +620 -0
  10. package/dist/clojure-CCKyeQKf.js +800 -0
  11. package/dist/cmake-CuaCgAKt.js +28 -0
  12. package/dist/cobol-BlTKFDRj.js +72 -0
  13. package/dist/coffeescript-BVCvwO8I.js +179 -0
  14. package/dist/commonlisp-D_kxz07b.js +75 -0
  15. package/dist/core/services/widget-service.d.ts +2 -1
  16. package/dist/core/services/widget-service.d.ts.map +1 -1
  17. package/dist/core/types/index.d.ts +2 -1
  18. package/dist/core/types/index.d.ts.map +1 -1
  19. package/dist/crystal-D309uH6_.js +217 -0
  20. package/dist/css-bIlmDBTK.js +1560 -0
  21. package/dist/cypher-BMq4Fwjl.js +68 -0
  22. package/dist/d-BZcgY6La.js +127 -0
  23. package/dist/diff-Cg9d_RX2.js +18 -0
  24. package/dist/dockerfile-DIy8NleC.js +194 -0
  25. package/dist/dtd-CtLokQ-U.js +84 -0
  26. package/dist/dylan-QYeExnWK.js +234 -0
  27. package/dist/ebnf-DUPDuY4r.js +78 -0
  28. package/dist/ecl-CiXN-g_D.js +121 -0
  29. package/dist/eiffel-yQhjl4T1.js +110 -0
  30. package/dist/elm-CNT9vbN0.js +108 -0
  31. package/dist/erlang-CFOYdy9e.js +487 -0
  32. package/dist/factor-DDOC7X6P.js +65 -0
  33. package/dist/fcl-CPC2WYrI.js +103 -0
  34. package/dist/forth-BmxRyE9S.js +60 -0
  35. package/dist/fortran-9bvPyrOW.js +442 -0
  36. package/dist/framework.js +289 -0
  37. package/dist/gas-BdfkXJT_.js +183 -0
  38. package/dist/gherkin-CJuwpceU.js +34 -0
  39. package/dist/groovy-DZeT_VM-.js +146 -0
  40. package/dist/haskell-Bvt3Qq1t.js +375 -0
  41. package/dist/haxe-70NVW1pR.js +359 -0
  42. package/dist/http-D9LttvKF.js +44 -0
  43. package/dist/idl-B6TRFYjl.js +947 -0
  44. package/dist/index-83AS8awQ.js +147093 -0
  45. package/dist/index-BRzLUR4F.js +71 -0
  46. package/dist/index-BSMDwAsD.js +58 -0
  47. package/dist/index-BcE8cPQ1.js +611 -0
  48. package/dist/index-BdXB4Rc2.js +98 -0
  49. package/dist/index-BeE65IDG.js +75 -0
  50. package/dist/index-BjulAuhE.js +156 -0
  51. package/dist/index-C1julODM.js +288 -0
  52. package/dist/index-CCh6DcPw.js +93 -0
  53. package/dist/index-CM-cQwyJ.js +265 -0
  54. package/dist/index-CcUXsEpB.js +134 -0
  55. package/dist/index-D77dHT9M.js +538 -0
  56. package/dist/index-DjGE0Oe5.js +341 -0
  57. package/dist/index-DkbufypA.js +299 -0
  58. package/dist/index-VBkCq_SK.js +137 -0
  59. package/dist/index-cAxs8v2c.js +249 -0
  60. package/dist/index-nY-vksAs.js +308 -0
  61. package/dist/index.css +9 -0
  62. package/dist/javascript-WMWNx-Vj.js +690 -0
  63. package/dist/jinja2-DnB6dQmV.js +154 -0
  64. package/dist/julia-DpvXAuO6.js +241 -0
  65. package/dist/livescript-CanGTf8u.js +272 -0
  66. package/dist/lua-XplVlWi_.js +217 -0
  67. package/dist/mathematica-jaRHnSxC.js +35 -0
  68. package/dist/mbox-BctzC1hL.js +76 -0
  69. package/dist/mirc-CFBPAOaF.js +72 -0
  70. package/dist/mllike-BSnXJBGA.js +272 -0
  71. package/dist/modelica-vUgVs--1.js +93 -0
  72. package/dist/mscgen-Cpl0NYLN.js +104 -0
  73. package/dist/mumps-CQoS1kWX.js +25 -0
  74. package/dist/nginx-zDPm3Z74.js +89 -0
  75. package/dist/nsis-fePjrhq7.js +62 -0
  76. package/dist/ntriples-CsNjv2QF.js +79 -0
  77. package/dist/octave-C8PmmSRH.js +143 -0
  78. package/dist/oz-Ce8aN8oE.js +151 -0
  79. package/dist/pascal-De0D6mP7.js +77 -0
  80. package/dist/perl-B4bSCe1C.js +915 -0
  81. package/dist/pig-D24Z8EXi.js +54 -0
  82. package/dist/powershell-DkYVfTzP.js +249 -0
  83. package/dist/properties-Dn9wna3M.js +26 -0
  84. package/dist/protobuf-BPIjwpzm.js +49 -0
  85. package/dist/pug-BqUR2bBq.js +248 -0
  86. package/dist/puppet-nyd4dhjf.js +45 -0
  87. package/dist/python-B5QdSKoL.js +313 -0
  88. package/dist/q-DXjKs-tC.js +83 -0
  89. package/dist/r-LKEuhEGI.js +104 -0
  90. package/dist/rpm-IznJm2Xc.js +57 -0
  91. package/dist/ruby-CcYfvIk6.js +228 -0
  92. package/dist/sas-7E8yHoCW.js +105 -0
  93. package/dist/scheme-DjibxsNh.js +124 -0
  94. package/dist/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.d.ts +15 -37
  95. package/dist/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.d.ts.map +1 -1
  96. package/dist/shared/components/blade-navigation/types/index.d.ts +3 -0
  97. package/dist/shared/components/blade-navigation/types/index.d.ts.map +1 -1
  98. package/dist/shared/components/draggable-dashboard/composables/useDashboardDragAndDrop.d.ts +4 -4
  99. package/dist/shared/components/notifications/components/notification-container/index.d.ts +6 -6
  100. package/dist/shared/components/notifications/components/notification-container/index.d.ts.map +1 -1
  101. package/dist/shared/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts +2 -2
  102. package/dist/shared/modules/dynamic/components/fields/storybook/pages/DynamicRender.d.ts +1 -1
  103. package/dist/shared/modules/dynamic/components/fields/storybook/pages/DynamicRender.d.ts.map +1 -1
  104. package/dist/shared/modules/dynamic/factories/types/index.d.ts +0 -1
  105. package/dist/shared/modules/dynamic/factories/types/index.d.ts.map +1 -1
  106. package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts +4 -4
  107. package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts.map +1 -1
  108. package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts +4 -4
  109. package/dist/shared/modules/dynamic/types/index.d.ts +6 -1
  110. package/dist/shared/modules/dynamic/types/index.d.ts.map +1 -1
  111. package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts +1 -1
  112. package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts.map +1 -1
  113. package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts +1 -1
  114. package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts.map +1 -1
  115. package/dist/shell-C0C2sNA_.js +182 -0
  116. package/dist/sieve-Bwz7vjP5.js +72 -0
  117. package/dist/simple-mode-B0dvCdAA.js +89 -0
  118. package/dist/smalltalk-Bhddl2pB.js +48 -0
  119. package/dist/solr-BNlsLglM.js +41 -0
  120. package/dist/sparql-FarWu_Gb.js +197 -0
  121. package/dist/spreadsheet-C-cy4P5N.js +49 -0
  122. package/dist/sql-mMre1Bo3.js +282 -0
  123. package/dist/stex-92raWT1r.js +129 -0
  124. package/dist/stylus-CAdqWld3.js +250 -0
  125. package/dist/swift-DSxqR9R6.js +230 -0
  126. package/dist/tcl-xfoLljhY.js +81 -0
  127. package/dist/textile-D1AWE-pc.js +295 -0
  128. package/dist/tiddlywiki-5wqsXtSk.js +155 -0
  129. package/dist/tiki-__Kn3CeS.js +181 -0
  130. package/dist/toml-BHiuTcfn.js +49 -0
  131. package/dist/troff-D2UO-fKf.js +35 -0
  132. package/dist/tsconfig.tsbuildinfo +1 -1
  133. package/dist/ttcn-Bsa4sfRm.js +123 -0
  134. package/dist/ttcn-cfg-Bac_acMi.js +88 -0
  135. package/dist/turtle-xwJUxoPV.js +80 -0
  136. package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts +1 -1
  137. package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts.map +1 -1
  138. package/dist/ui/components/atoms/vc-container/vc-container.vue.d.ts +2 -2
  139. package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts +1 -1
  140. package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts.map +1 -1
  141. package/dist/ui/components/atoms/vc-icon/vc-material-icon.vue.d.ts +1 -1
  142. package/dist/ui/components/atoms/vc-icon/vc-material-icon.vue.d.ts.map +1 -1
  143. package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts +1 -1
  144. package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts.map +1 -1
  145. package/dist/ui/components/index.d.ts +0 -1
  146. package/dist/ui/components/index.d.ts.map +1 -1
  147. package/dist/ui/components/molecules/index.d.ts +1 -0
  148. package/dist/ui/components/molecules/index.d.ts.map +1 -1
  149. package/dist/ui/components/molecules/vc-editor/vc-editor.vue.d.ts +2 -2
  150. package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts +2 -2
  151. package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts.map +1 -1
  152. package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts +4 -4
  153. package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts.map +1 -1
  154. package/dist/ui/components/molecules/vc-input-currency/vc-input-currency.vue.d.ts.map +1 -1
  155. package/dist/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.vue.d.ts +10 -10
  156. package/dist/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.vue.d.ts.map +1 -1
  157. package/dist/ui/components/molecules/vc-pagination/vc-pagination.vue.d.ts +1 -1
  158. package/dist/ui/components/molecules/vc-pagination/vc-pagination.vue.d.ts.map +1 -1
  159. package/dist/ui/components/molecules/vc-rating/vc-rating.vue.d.ts +1 -1
  160. package/dist/ui/components/molecules/vc-rating/vc-rating.vue.d.ts.map +1 -1
  161. package/dist/ui/components/molecules/vc-select/vc-select.vue.d.ts +3 -3
  162. package/dist/ui/components/molecules/vc-select/vc-select.vue.d.ts.map +1 -1
  163. package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue.d.ts +1 -1
  164. package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue.d.ts.map +1 -1
  165. package/dist/ui/components/organisms/vc-app/vc-app.backupsb.d.ts +50 -0
  166. package/dist/ui/components/organisms/vc-app/vc-app.backupsb.d.ts.map +1 -0
  167. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/vc-blade-toolbar-base-button.vue.d.ts +1 -1
  168. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/vc-blade-toolbar-button.vue.d.ts +1 -1
  169. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/vc-blade-toolbar-button.vue.d.ts.map +1 -1
  170. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/vc-blade-toolbar-circle-button.vue.d.ts +1 -1
  171. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/vc-blade-toolbar-circle-button.vue.d.ts.map +1 -1
  172. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue.d.ts.map +1 -1
  173. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-widget-container/_internal/vc-widget-container-mobile.vue.d.ts +1 -0
  174. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-widget-container/_internal/vc-widget-container-mobile.vue.d.ts.map +1 -1
  175. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-widget-container/vc-widget-container.vue.d.ts.map +1 -1
  176. package/dist/ui/components/organisms/vc-blade/vc-blade.backupsb.d.ts +89 -0
  177. package/dist/ui/components/organisms/vc-blade/vc-blade.backupsb.d.ts.map +1 -0
  178. package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts +1 -1
  179. package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts.map +1 -1
  180. package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue.d.ts +2 -2
  181. package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts +1 -1
  182. package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts.map +1 -1
  183. package/dist/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts +3 -3
  184. package/dist/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts.map +1 -1
  185. package/dist/ui/components/organisms/vc-popup/vc-popup.vue.d.ts +1 -1
  186. package/dist/ui/components/organisms/vc-popup/vc-popup.vue.d.ts.map +1 -1
  187. package/dist/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts +1 -1
  188. package/dist/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts.map +1 -1
  189. package/dist/vb-c2kQGd6-.js +74 -0
  190. package/dist/vbscript-Dz1TtKsy.js +324 -0
  191. package/dist/velocity-DJd0pTTC.js +96 -0
  192. package/dist/verilog-C4VGD9n1.js +263 -0
  193. package/dist/vhdl-T9HkrbI2.js +106 -0
  194. package/dist/webidl-CjfDENEo.js +155 -0
  195. package/dist/xquery-BUQdORAS.js +422 -0
  196. package/dist/yacas-C0absKBh.js +73 -0
  197. package/dist/z80-C8rPtw-0.js +61 -0
  198. package/package.json +5 -5
  199. package/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.ts +119 -56
  200. package/shared/components/blade-navigation/types/index.ts +3 -0
  201. package/shared/modules/dynamic/factories/types/index.ts +228 -229
  202. package/shared/modules/dynamic/types/index.ts +4 -1
  203. package/ui/components/atoms/vc-badge/vc-badge.stories.ts +2 -2
  204. package/ui/components/atoms/vc-badge/vc-badge.vue +1 -1
  205. package/ui/components/index.ts +0 -2
  206. package/ui/components/molecules/index.ts +1 -0
  207. package/ui/components/molecules/vc-input-currency/vc-input-currency.vue +6 -4
  208. package/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.vue +7 -7
  209. package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue +3 -1
  210. package/ui/components/organisms/vc-blade/_internal/vc-blade-widget-container/_internal/vc-widget-container-mobile.vue +15 -2
  211. package/ui/components/organisms/vc-blade/_internal/vc-blade-widget-container/vc-widget-container.vue +5 -2
  212. package/ui/components/organisms/vc-blade/vc-blade.vue +5 -1
  213. /package/ui/components/organisms/vc-app/{vc-app.stories.ts → vc-app.backupsb.ts} +0 -0
  214. /package/ui/components/organisms/vc-blade/{vc-blade.stories.ts → vc-blade.backupsb.ts} +0 -0
@@ -1,229 +1,228 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { ComputedRef, MaybeRef, Ref, UnwrapNestedRefs } from "vue";
3
- import { AsyncAction } from "../../../../../core/composables";
4
- import { SettingsDetails, SettingsGrid, SettingsSchema } from "../../types";
5
- import {
6
- AssetsHandler,
7
- IActionBuilderResult,
8
- IBladeToolbar,
9
- ICommonAsset,
10
- ITableColumns,
11
- } from "../../../../../core/types";
12
- import { useBladeNavigation } from "../../../../components";
13
- import { FormContext } from "vee-validate";
14
- import { Breadcrumbs } from "../../../../../ui/types";
15
- import { DynamicBladeForm, DynamicBladeList } from "../../pages";
16
-
17
- export type ItemId = { id: string };
18
-
19
- export interface IPagination {
20
- currentPage: number;
21
- totalCount: number;
22
- pageSize: number;
23
- pages: number;
24
- }
25
-
26
- export interface IValidationState<Item> {
27
- valid: boolean;
28
- /**
29
- * @deprecated `dirty` - use `modified` instead
30
- */
31
- dirty: boolean;
32
- disabled: boolean;
33
- modified: boolean;
34
- validated: boolean;
35
- cachedValue: Item | undefined;
36
- setFieldError: FormContext["setFieldError"];
37
- setFieldValue: FormContext["setFieldValue"];
38
- setValues: FormContext["setValues"];
39
- setErrors: FormContext["setErrors"];
40
- resetModified: (
41
- data: MaybeRef<Item | undefined> | ComputedRef<Item | undefined>,
42
- updateInitial?: MaybeRef<boolean>,
43
- ) => void;
44
- resetValidationState: () => void;
45
- validate: FormContext["validate"];
46
- errorBag: Partial<Record<string, string[]>>;
47
- setModifiedState: (value: boolean) => void;
48
- }
49
-
50
- export type CustomQuery = { ids: string[] | null; allSelected?: boolean };
51
-
52
- export interface UseDetails<Item, Scope extends DetailsBaseBladeScope = DetailsBaseBladeScope> {
53
- load: AsyncAction<ItemId>;
54
- saveChanges: AsyncAction<Item, Item | void>;
55
- remove?: AsyncAction<ItemId | Item>;
56
- loading: ComputedRef<boolean>;
57
- item: Ref<Item | undefined>;
58
- validationState: ComputedRef<IValidationState<Item>>;
59
- scope?: Scope;
60
- bladeTitle?: ComputedRef<string>;
61
- }
62
-
63
- export interface UseList<
64
- Items extends Record<string, any>[],
65
- Query,
66
- Scope extends ListBaseBladeScope<Items[number]> = ListBaseBladeScope<Items[number]>,
67
- > {
68
- items: ComputedRef<Items>;
69
- query: Ref<Query>;
70
- loading: ComputedRef<boolean>;
71
- pagination: ComputedRef<{
72
- currentPage: number;
73
- totalCount: number;
74
- pageSize: number;
75
- pages: number;
76
- }>;
77
- load: AsyncAction<Query>;
78
- remove?: AsyncAction<CustomQuery>;
79
- scope?: Scope;
80
- }
81
-
82
- export interface ITableConfig {
83
- loading?: boolean;
84
- columns?: ITableColumns[];
85
- stateKey?: string;
86
- items?: Record<string, any>[];
87
- multiselect?: boolean;
88
- header?: boolean;
89
- itemActionBuilder?: (item: Record<string, any>) => IActionBuilderResult[] | undefined;
90
- editing?: boolean;
91
- enableItemActions?: boolean;
92
- footer?: boolean;
93
- sort?: string;
94
- pages?: number;
95
- currentPage?: number;
96
- searchValue?: string;
97
- selectedItemId?: string | undefined;
98
- totalCount?: number;
99
- reorderableRows?: boolean;
100
- pullToReload?: boolean;
101
- selectAll?: boolean;
102
- paginationVariant?: "default" | "minimal" | undefined;
103
- selectionItems?: Record<string, any>[];
104
- onItemClick?: (item: Record<string, any>) => void;
105
- onPaginationClick?: (page: number) => void;
106
- onSelectionChanged?: (items: Record<string, any>[]) => void;
107
- onHeaderClick?: (item: ITableColumns) => void;
108
- "onScroll:ptr"?: () => void;
109
- "onSearch:change"?: (keyword: string | undefined) => void;
110
- "onRow:reorder"?: (event: { dragIndex: number; dropIndex: number; value: any[] }) => void;
111
- "onSelect:all"?: (all: boolean) => void;
112
- onEditComplete?: (data: { event: { field: string; value: any }; index: number }) => void;
113
- onCellBlur?: (data: { row: number | undefined; field: string }) => void;
114
- disableItemCheckbox?: (item: Record<string, any> | undefined) => boolean;
115
- columnSelector?: "auto" | "defined" | MaybeRef<ITableColumns[]> | (() => ITableColumns[]);
116
- }
117
-
118
- export interface BaseBladeScope {
119
- [x: string]: any;
120
- toolbarOverrides?:
121
- | MaybeRef<{ [x: string]: IBladeToolbar | IBladeToolbar[] | MaybeRef<IBladeToolbar> | MaybeRef<IBladeToolbar[]> }>
122
- | ((...args: any[]) => any)
123
- | MaybeRef<IBladeToolbar[]>;
124
- }
125
-
126
- export interface ListBaseBladeScope<Item = Record<string, any>, Query = Record<string, any>> extends BaseBladeScope {
127
- openDetailsBlade?: (
128
- args?: Omit<Parameters<ReturnType<typeof useBladeNavigation>["openBlade"]>["0"], "blade">,
129
- ) => Promise<void> | void;
130
- onListItemClick?: (
131
- args: { item?: Item } & Omit<
132
- Parameters<ReturnType<typeof useBladeNavigation>["openBlade"]>["0"],
133
- "blade" | "param" | "options"
134
- >,
135
- ) => void;
136
- onPaginationClick?: (query: Query) => void;
137
- breadcrumbs?: ComputedRef<Breadcrumbs[]>;
138
- modified?: ComputedRef<boolean> | Ref<boolean> | boolean;
139
- tableConfig?: (initialTableConfig: ITableConfig) => ITableConfig;
140
- }
141
-
142
- export type TOpenBladeArgs = Omit<Parameters<ReturnType<typeof useBladeNavigation>["openBlade"]>["0"], "blade">;
143
- export type TListItemClickArgs<Item extends Record<string, any> = Record<string, any>> = Omit<
144
- Parameters<ReturnType<typeof useBladeNavigation>["openBlade"]>["0"],
145
- "blade" | "param" | "options"
146
- > & { item?: Item | undefined };
147
-
148
- export interface DetailsBaseBladeScope<Item = Record<string, any>> extends BaseBladeScope {
149
- disabled?: ComputedRef<boolean | undefined> | Ref<boolean | undefined> | boolean;
150
- multilanguage?: {
151
- loading: ComputedRef<boolean>;
152
- currentLocale: Ref<string>;
153
- languages: Ref<string[]>;
154
- setLocale: (locale: string) => void;
155
- localesOptions: Ref<{ label: string | undefined; value: string }[]>;
156
- getLanguages: AsyncAction<void, void>;
157
- };
158
- dynamicProperties?: {
159
- loading: ComputedRef<boolean>;
160
- loadDictionaries: (
161
- propertyId: string,
162
- keyword?: string,
163
- locale?: string,
164
- ) => Promise<Record<string, any>[] | undefined>;
165
- getPropertyValue: (property: Record<string, any>, locale: string) => any;
166
- setPropertyValue: (data: {
167
- property: Record<string, any>;
168
- value: string | Record<string, any>[];
169
- dictionary?: Record<string, any>[];
170
- locale?: string;
171
- initialProp?: Record<string, any>;
172
- }) => void;
173
- };
174
- assetsHandler?: {
175
- assets?: AssetsHandler<ICommonAsset>;
176
- images?: AssetsHandler<ICommonAsset>;
177
- };
178
- selection?: Item[];
179
- }
180
-
181
- export interface DetailsBladeContext<
182
- Item extends Record<string, any> = Record<string, any>,
183
- Scope extends DetailsBaseBladeScope = DetailsBaseBladeScope,
184
- > extends UseDetails<Item, Scope> {
185
- settings: ComputedRef<SettingsSchema>;
186
- }
187
-
188
- export interface ListBladeContext<
189
- Items extends Record<string, any>[] = Record<string, any>[],
190
- Query = Record<string, any>,
191
- Scope extends ListBaseBladeScope = ListBaseBladeScope,
192
- > extends UseList<Items, Query, Scope> {
193
- settings: ComputedRef<SettingsSchema>;
194
- selectedIds: ComputedRef<string[]>;
195
- }
196
-
197
- export interface BaseBladeExposed {
198
- updateActiveWidgetCount: () => void;
199
- readonly title: MaybeRef<string>;
200
- }
201
-
202
- export type ListBladeExposed<Scope extends ListBaseBladeScope> = BaseBladeExposed & {
203
- readonly selectedIds: string[];
204
- reload: () => void;
205
- readonly settings: SettingsGrid;
206
- } & UnwrapNestedRefs<Scope>;
207
-
208
- export type DetailsBladeExposed<Scope extends DetailsBaseBladeScope> = BaseBladeExposed & {
209
- readonly settings: SettingsDetails;
210
- readonly item: Record<string, any>;
211
- readonly validationState: IValidationState<Record<string, any>>;
212
- } & UnwrapNestedRefs<Scope>;
213
-
214
- export type DetailsComposableArgs<
215
- Props extends Omit<InstanceType<typeof DynamicBladeForm>["$props"], "composables"> = Record<string, any>,
216
- > = {
217
- props: InstanceType<typeof DynamicBladeForm>["$props"] & Props;
218
- emit: InstanceType<typeof DynamicBladeForm>["$emit"];
219
- mounted: Ref<boolean>;
220
- };
221
-
222
- export type ListComposableArgs<
223
- Props extends Omit<InstanceType<typeof DynamicBladeList>["$props"], "composables"> = Record<string, any>,
224
- > = {
225
- readonly props: InstanceType<typeof DynamicBladeList>["$props"] & Props;
226
- readonly emit: InstanceType<typeof DynamicBladeList>["$emit"];
227
- readonly mounted: Ref<boolean>;
228
- readonly isWidgetView: boolean;
229
- };
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { ComputedRef, MaybeRef, Ref, UnwrapNestedRefs } from "vue";
3
+ import { AsyncAction } from "../../../../../core/composables";
4
+ import { SettingsDetails, SettingsGrid, SettingsSchema } from "../../types";
5
+ import {
6
+ AssetsHandler,
7
+ IActionBuilderResult,
8
+ IBladeToolbar,
9
+ ICommonAsset,
10
+ ITableColumns,
11
+ } from "../../../../../core/types";
12
+ import { useBladeNavigation } from "../../../../components";
13
+ import { FormContext } from "vee-validate";
14
+ import { Breadcrumbs } from "../../../../../ui/types";
15
+ import { DynamicBladeForm, DynamicBladeList } from "../../pages";
16
+
17
+ export type ItemId = { id: string };
18
+
19
+ export interface IPagination {
20
+ currentPage: number;
21
+ totalCount: number;
22
+ pageSize: number;
23
+ pages: number;
24
+ }
25
+
26
+ export interface IValidationState<Item> {
27
+ valid: boolean;
28
+ /**
29
+ * @deprecated `dirty` - use `modified` instead
30
+ */
31
+ dirty: boolean;
32
+ disabled: boolean;
33
+ modified: boolean;
34
+ validated: boolean;
35
+ cachedValue: Item | undefined;
36
+ setFieldError: FormContext["setFieldError"];
37
+ setFieldValue: FormContext["setFieldValue"];
38
+ setValues: FormContext["setValues"];
39
+ setErrors: FormContext["setErrors"];
40
+ resetModified: (
41
+ data: MaybeRef<Item | undefined> | ComputedRef<Item | undefined>,
42
+ updateInitial?: MaybeRef<boolean>,
43
+ ) => void;
44
+ resetValidationState: () => void;
45
+ validate: FormContext["validate"];
46
+ errorBag: Partial<Record<string, string[]>>;
47
+ setModifiedState: (value: boolean) => void;
48
+ }
49
+
50
+ export type CustomQuery = { ids: string[] | null; allSelected?: boolean };
51
+
52
+ export interface UseDetails<Item, Scope extends DetailsBaseBladeScope = DetailsBaseBladeScope> {
53
+ load: AsyncAction<ItemId>;
54
+ saveChanges: AsyncAction<Item, Item | void>;
55
+ remove?: AsyncAction<ItemId | Item>;
56
+ loading: ComputedRef<boolean>;
57
+ item: Ref<Item | undefined>;
58
+ validationState: ComputedRef<IValidationState<Item>>;
59
+ scope?: Scope;
60
+ bladeTitle?: ComputedRef<string>;
61
+ }
62
+
63
+ export interface UseList<
64
+ Items extends Record<string, any>[],
65
+ Query,
66
+ Scope extends ListBaseBladeScope<Items[number]> = ListBaseBladeScope<Items[number]>,
67
+ > {
68
+ items: ComputedRef<Items>;
69
+ query: Ref<Query>;
70
+ loading: ComputedRef<boolean>;
71
+ pagination: ComputedRef<{
72
+ currentPage: number;
73
+ totalCount: number;
74
+ pageSize: number;
75
+ pages: number;
76
+ }>;
77
+ load: AsyncAction<Query>;
78
+ remove?: AsyncAction<CustomQuery>;
79
+ scope?: Scope;
80
+ }
81
+
82
+ export interface ITableConfig {
83
+ loading?: boolean;
84
+ columns?: ITableColumns[];
85
+ stateKey?: string;
86
+ items?: Record<string, any>[];
87
+ multiselect?: boolean;
88
+ header?: boolean;
89
+ itemActionBuilder?: (item: Record<string, any>) => IActionBuilderResult[] | undefined;
90
+ editing?: boolean;
91
+ enableItemActions?: boolean;
92
+ footer?: boolean;
93
+ sort?: string;
94
+ pages?: number;
95
+ currentPage?: number;
96
+ searchValue?: string;
97
+ selectedItemId?: string | undefined;
98
+ totalCount?: number;
99
+ reorderableRows?: boolean;
100
+ pullToReload?: boolean;
101
+ selectAll?: boolean;
102
+ paginationVariant?: "default" | "minimal" | undefined;
103
+ selectionItems?: Record<string, any>[];
104
+ onItemClick?: (item: Record<string, any>) => void;
105
+ onPaginationClick?: (page: number) => void;
106
+ onSelectionChanged?: (items: Record<string, any>[]) => void;
107
+ onHeaderClick?: (item: ITableColumns) => void;
108
+ "onScroll:ptr"?: () => void;
109
+ "onSearch:change"?: (keyword: string | undefined) => void;
110
+ "onRow:reorder"?: (event: { dragIndex: number; dropIndex: number; value: any[] }) => void;
111
+ "onSelect:all"?: (all: boolean) => void;
112
+ onEditComplete?: (data: { event: { field: string; value: any }; index: number }) => void;
113
+ onCellBlur?: (data: { row: number | undefined; field: string }) => void;
114
+ disableItemCheckbox?: (item: Record<string, any> | undefined) => boolean;
115
+ columnSelector?: "auto" | "defined" | MaybeRef<ITableColumns[]> | (() => ITableColumns[]);
116
+ }
117
+
118
+ export interface BaseBladeScope {
119
+ [x: string]: any;
120
+ toolbarOverrides?:
121
+ | MaybeRef<{ [x: string]: IBladeToolbar | IBladeToolbar[] | MaybeRef<IBladeToolbar> | MaybeRef<IBladeToolbar[]> }>
122
+ | ((...args: any[]) => any)
123
+ | MaybeRef<IBladeToolbar[]>;
124
+ }
125
+
126
+ export interface ListBaseBladeScope<Item = Record<string, any>, Query = Record<string, any>> extends BaseBladeScope {
127
+ openDetailsBlade?: (
128
+ args?: Omit<Parameters<ReturnType<typeof useBladeNavigation>["openBlade"]>["0"], "blade">,
129
+ ) => Promise<void> | void;
130
+ onListItemClick?: (
131
+ args: { item?: Item } & Omit<
132
+ Parameters<ReturnType<typeof useBladeNavigation>["openBlade"]>["0"],
133
+ "blade" | "param" | "options"
134
+ >,
135
+ ) => void;
136
+ onPaginationClick?: (query: Query) => void;
137
+ breadcrumbs?: ComputedRef<Breadcrumbs[]>;
138
+ modified?: ComputedRef<boolean> | Ref<boolean> | boolean;
139
+ tableConfig?: (initialTableConfig: ITableConfig) => ITableConfig;
140
+ }
141
+
142
+ export type TOpenBladeArgs = Omit<Parameters<ReturnType<typeof useBladeNavigation>["openBlade"]>["0"], "blade">;
143
+ export type TListItemClickArgs<Item extends Record<string, any> = Record<string, any>> = Omit<
144
+ Parameters<ReturnType<typeof useBladeNavigation>["openBlade"]>["0"],
145
+ "blade" | "param" | "options"
146
+ > & { item?: Item | undefined };
147
+
148
+ export interface DetailsBaseBladeScope<Item = Record<string, any>> extends BaseBladeScope {
149
+ disabled?: ComputedRef<boolean | undefined> | Ref<boolean | undefined> | boolean;
150
+ multilanguage?: {
151
+ loading: ComputedRef<boolean>;
152
+ currentLocale: Ref<string>;
153
+ languages: Ref<string[]>;
154
+ setLocale: (locale: string) => void;
155
+ localesOptions: Ref<{ label: string | undefined; value: string }[]>;
156
+ getLanguages: AsyncAction<void, void>;
157
+ };
158
+ dynamicProperties?: {
159
+ loading: ComputedRef<boolean>;
160
+ loadDictionaries: (
161
+ propertyId: string,
162
+ keyword?: string,
163
+ locale?: string,
164
+ ) => Promise<Record<string, any>[] | undefined>;
165
+ getPropertyValue: (property: Record<string, any>, locale: string) => any;
166
+ setPropertyValue: (data: {
167
+ property: Record<string, any>;
168
+ value: string | Record<string, any>[];
169
+ dictionary?: Record<string, any>[];
170
+ locale?: string;
171
+ initialProp?: Record<string, any>;
172
+ }) => void;
173
+ };
174
+ assetsHandler?: {
175
+ assets?: AssetsHandler<ICommonAsset>;
176
+ images?: AssetsHandler<ICommonAsset>;
177
+ };
178
+ selection?: Item[];
179
+ }
180
+
181
+ export interface DetailsBladeContext<
182
+ Item extends Record<string, any> = Record<string, any>,
183
+ Scope extends DetailsBaseBladeScope = DetailsBaseBladeScope,
184
+ > extends UseDetails<Item, Scope> {
185
+ settings: ComputedRef<SettingsSchema>;
186
+ }
187
+
188
+ export interface ListBladeContext<
189
+ Items extends Record<string, any>[] = Record<string, any>[],
190
+ Query = Record<string, any>,
191
+ Scope extends ListBaseBladeScope = ListBaseBladeScope,
192
+ > extends UseList<Items, Query, Scope> {
193
+ settings: ComputedRef<SettingsSchema>;
194
+ selectedIds: ComputedRef<string[]>;
195
+ }
196
+
197
+ export interface BaseBladeExposed {
198
+ updateActiveWidgetCount: () => void;
199
+ readonly title: MaybeRef<string>;
200
+ }
201
+
202
+ export type ListBladeExposed<Scope extends ListBaseBladeScope> = BaseBladeExposed & {
203
+ readonly selectedIds: string[];
204
+ reload: () => void;
205
+ readonly settings: SettingsGrid;
206
+ } & UnwrapNestedRefs<Scope>;
207
+
208
+ export type DetailsBladeExposed<Scope extends DetailsBaseBladeScope> = BaseBladeExposed & {
209
+ readonly settings: SettingsDetails;
210
+ readonly item: Record<string, any>;
211
+ readonly validationState: IValidationState<Record<string, any>>;
212
+ } & UnwrapNestedRefs<Scope>;
213
+
214
+ export type DetailsComposableArgs<
215
+ Props extends Omit<InstanceType<typeof DynamicBladeForm>["$props"], "composables"> = Record<string, any>,
216
+ > = {
217
+ props: InstanceType<typeof DynamicBladeForm>["$props"] & Props;
218
+ emit: InstanceType<typeof DynamicBladeForm>["$emit"];
219
+ mounted: Ref<boolean>;
220
+ };
221
+
222
+ export type ListComposableArgs<
223
+ Props extends Omit<InstanceType<typeof DynamicBladeList>["$props"], "composables"> = Record<string, any>,
224
+ > = {
225
+ readonly props: InstanceType<typeof DynamicBladeList>["$props"] & Props;
226
+ readonly emit: InstanceType<typeof DynamicBladeList>["$emit"];
227
+ readonly mounted: Ref<boolean>;
228
+ };
@@ -843,7 +843,10 @@ export interface CardSchema
843
843
 
844
844
  export interface WidgetsSchema extends Pick<SchemaBase, "id" | "horizontalSeparator" | "permissions"> {
845
845
  component: "vc-widgets";
846
- children: string[] | { id: string; visibility?: { method: string } }[];
846
+ children:
847
+ | string[]
848
+ | { id: string; visibility?: { method: string } }[]
849
+ | (string | { id: string; visibility?: { method: string } })[];
847
850
  }
848
851
 
849
852
  export interface CheckboxSchema extends Omit<SchemaBase, "multilanguage" | "placeholder" | "onBlur"> {
@@ -249,7 +249,7 @@ export const DotIndicator: Story = {
249
249
  <div class="tw-flex tw-gap-4">
250
250
  <div v-for="variant in variants" :key="variant" class="tw-flex tw-flex-col tw-items-center tw-gap-2">
251
251
  <VcBadge :isDot="true" :variant="variant">
252
- <div class="tw-w-10 tw-h-10 tw-bg-gray-200 tw-rounded tw-flex tw-items-center tw-justify-center">
252
+ <div class="tw-w-5 tw-h-5 tw-bg-gray-200 tw-rounded tw-flex tw-items-center tw-justify-center">
253
253
  <svg xmlns="http://www.w3.org/2000/svg" class="tw-h-5 tw-w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
254
254
  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 8h10M7 12h4m1 8l-4-4H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-3l-4 4z" />
255
255
  </svg>
@@ -463,7 +463,7 @@ export const UseCases: Story = {
463
463
  :variant="example.variant"
464
464
  :isDot="example.isDot"
465
465
  >
466
- <div class="tw-w-12 tw-h-12 tw-bg-gray-200 tw-rounded tw-flex tw-items-center tw-justify-center">
466
+ <div class="tw-w-8 tw-h-8 tw-bg-gray-200 tw-rounded tw-flex tw-items-center tw-justify-center">
467
467
  <svg xmlns="http://www.w3.org/2000/svg" class="tw-h-6 tw-w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
468
468
  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" :d="example.icon" />
469
469
  </svg>
@@ -11,7 +11,7 @@
11
11
  <slot name="default"></slot>
12
12
 
13
13
  <div
14
- v-if="typeof content !== 'undefined'"
14
+ v-if="typeof content !== 'undefined' || isDot"
15
15
  ref="badge"
16
16
  class="vc-badge__badge"
17
17
  :class="[
@@ -6,5 +6,3 @@ export * from "./molecules";
6
6
 
7
7
  /* Organisms */
8
8
  export * from "./organisms";
9
-
10
- export { default as VcSkeleton } from './atoms/vc-skeleton/vc-skeleton.vue';
@@ -14,3 +14,4 @@ export * from "./vc-multivalue";
14
14
  export * from "./vc-field";
15
15
  export * from "./vc-radio-button";
16
16
  export * from "./vc-checkbox";
17
+ export * from "./vc-input-dropdown";
@@ -47,7 +47,7 @@
47
47
  <script lang="ts" setup>
48
48
  import { useCurrencyInput, CurrencyDisplay } from "vue-currency-input";
49
49
  import { unref, watch } from "vue";
50
- import { VcInputDropdown } from "./../../";
50
+ import { VcInputDropdown } from "./../../molecules/vc-input-dropdown";
51
51
  import { OptionProp } from "../vc-select/vc-select.vue";
52
52
 
53
53
  export interface Props {
@@ -214,9 +214,11 @@ watch(numberValue, (value) => {
214
214
  });
215
215
 
216
216
  function updateModel(value: string | number | Date | null | undefined) {
217
- inputRef.value.value = value as string;
218
- numberValue.value = value as number | null;
219
- emit("update:model-value", value as number);
217
+ if (inputRef.value) {
218
+ inputRef.value.value = value as string;
219
+ }
220
+ numberValue.value = typeof value === "number" ? value : value === null ? null : parseFloat(String(value)) || null;
221
+ emit("update:model-value", numberValue.value);
220
222
  }
221
223
 
222
224
  function handleBlur(event: Event) {
@@ -96,7 +96,7 @@ export interface Props {
96
96
  /**
97
97
  * Model of the input component
98
98
  */
99
- modelValue: unknown;
99
+ modelValue: string | number | Date | null | undefined;
100
100
  /**
101
101
  * Input label text
102
102
  */
@@ -195,11 +195,11 @@ export interface Props {
195
195
  * Type of the input field
196
196
  * Default: text
197
197
  */
198
- inputType?: string;
198
+ inputType?: "text" | "password" | "email" | "tel" | "number" | "integer" | "url" | "time" | "date" | "datetime-local";
199
199
  }
200
200
 
201
201
  export interface Emits {
202
- (event: "update:model-value", value: unknown): void;
202
+ (event: "update:model-value", value: string | number | Date | null | undefined): void;
203
203
  (event: "update:option", value: unknown): void;
204
204
  (event: "change", value: unknown): void;
205
205
  (event: "blur", value: Event): void;
@@ -241,10 +241,10 @@ defineSlots<{
241
241
  * Slot for custom input control
242
242
  */
243
243
  control: (scope: {
244
- placeholder: string;
245
- focused: boolean;
246
- modelValue: unknown;
247
- emitValue: (value: unknown) => void;
244
+ placeholder?: string;
245
+ focused?: boolean;
246
+ modelValue: string | number | Date | null | undefined;
247
+ emitValue: (value: string | number | Date | null) => void;
248
248
  }) => unknown;
249
249
  }>();
250
250
 
@@ -130,7 +130,9 @@ const visibleItems = computed(() => {
130
130
  .filter(
131
131
  (item) =>
132
132
  hasAccess(item.permissions) &&
133
- (item.isVisible === undefined || item.isVisible) &&
133
+ (typeof item.isVisible === "function"
134
+ ? item.isVisible(blade.value)
135
+ : item.isVisible === undefined || item.isVisible) &&
134
136
  (isMobile.value ? !item.disabled : true),
135
137
  )
136
138
  .sort((a, b) => {
@@ -51,22 +51,35 @@
51
51
  </template>
52
52
 
53
53
  <script setup lang="ts">
54
- import { ref, computed } from "vue";
54
+ import { ref, computed, inject } from "vue";
55
55
  import { useAdaptiveItems } from "../../../../../../composables/useAdaptiveItems";
56
56
 
57
57
  import { GenericDropdown } from "../../../../../../../shared/components/generic-dropdown";
58
58
  import { VcIcon, ChevronUpIcon } from "../../../../..";
59
59
  import { IWidget } from "../../../../../../../core/services";
60
+ import { BladeInstance } from "../../../../../../../injection-keys";
61
+ import { IBladeInstance } from "../../../../../../../shared/components/blade-navigation/types";
60
62
 
61
63
  interface Props {
62
64
  widgets: IWidget[];
65
+ bladeId: string;
63
66
  }
64
67
 
65
68
  const props = defineProps<Props>();
66
69
  const containerRef = ref<HTMLElement | null>(null);
67
70
  const showToolbar = ref(false);
71
+ const bladeInstance = inject<IBladeInstance>(BladeInstance);
68
72
 
69
- const isAnyVisible = computed(() => props.widgets.some((widget) => widget.isVisible));
73
+ const isAnyVisible = computed(() =>
74
+ props.widgets.some((widget) => {
75
+ if (typeof widget.isVisible === "function") {
76
+ return widget.isVisible(bladeInstance);
77
+ } else if (typeof widget.isVisible === "boolean") {
78
+ return widget.isVisible;
79
+ }
80
+ return widget.isVisible;
81
+ }),
82
+ );
70
83
 
71
84
  const { visibleItems, showMoreButton, recalculate, hiddenItems, updateObserver } = useAdaptiveItems<IWidget>({
72
85
  containerRef,
@@ -14,9 +14,11 @@
14
14
  </template>
15
15
 
16
16
  <script setup lang="ts">
17
- import { computed, toValue } from "vue";
17
+ import { computed, toValue, inject } from "vue";
18
18
  import { useWidgets } from "../../../../../../core/composables/useWidgets";
19
19
  import { WidgetContainerDesktop, WidgetContainerMobile } from "./_internal";
20
+ import { BladeInstance } from "../../../../../../injection-keys";
21
+ import { IBladeInstance } from "../../../../../../shared/components/blade-navigation/types";
20
22
 
21
23
  interface Props {
22
24
  bladeId: string;
@@ -25,11 +27,12 @@ interface Props {
25
27
  const props = defineProps<Props>();
26
28
  const widgetService = useWidgets();
27
29
  const widgets = computed(() => widgetService.getWidgets(props.bladeId));
30
+ const bladeInstance = inject<IBladeInstance>(BladeInstance);
28
31
 
29
32
  const visibleWidgets = computed(() =>
30
33
  widgets.value.filter((widget) => {
31
34
  if (typeof widget.isVisible === "function") {
32
- return widget.isVisible();
35
+ return widget.isVisible(bladeInstance);
33
36
  } else if (typeof widget.isVisible === "boolean") {
34
37
  return widget.isVisible;
35
38
  }