@vc-shell/framework 1.1.9 → 1.1.11

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 (209) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/core/composables/index.ts +1 -0
  3. package/core/composables/useDynamicProperties/index.ts +344 -0
  4. package/core/services/toolbar-service.ts +28 -18
  5. package/core/services/widget-service.ts +28 -18
  6. package/dist/core/composables/index.d.ts +1 -0
  7. package/dist/core/composables/index.d.ts.map +1 -1
  8. package/dist/core/composables/useDynamicProperties/index.d.ts +54 -0
  9. package/dist/core/composables/useDynamicProperties/index.d.ts.map +1 -0
  10. package/dist/core/services/toolbar-service.d.ts.map +1 -1
  11. package/dist/core/services/widget-service.d.ts.map +1 -1
  12. package/dist/locales/de.json +3 -1
  13. package/dist/locales/en.json +3 -1
  14. package/dist/shared/components/draggable-dashboard/composables/useDashboardDragAndDrop.d.ts +4 -4
  15. package/dist/shared/components/notifications/components/notification-container/index.d.ts +6 -6
  16. package/dist/shared/components/notifications/components/notification-container/index.d.ts.map +1 -1
  17. package/dist/shared/components/user-dropdown-button/_internal/user-info.vue.d.ts.map +1 -1
  18. package/dist/shared/components/user-dropdown-button/user-dropdown-button.vue.d.ts.map +1 -1
  19. package/dist/shared/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts +2 -2
  20. package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts +2 -2
  21. package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts +2 -2
  22. package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts +1 -1
  23. package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts.map +1 -1
  24. package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts +1 -1
  25. package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts.map +1 -1
  26. package/dist/tsconfig.tsbuildinfo +1 -1
  27. package/dist/ui/components/atoms/index.d.ts +0 -1
  28. package/dist/ui/components/atoms/index.d.ts.map +1 -1
  29. package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts +1 -1
  30. package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts.map +1 -1
  31. package/dist/ui/components/atoms/vc-container/vc-container.vue.d.ts +2 -2
  32. package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts +1 -1
  33. package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts.map +1 -1
  34. package/dist/ui/components/atoms/vc-icon/vc-material-icon.vue.d.ts +1 -1
  35. package/dist/ui/components/atoms/vc-icon/vc-material-icon.vue.d.ts.map +1 -1
  36. package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts +1 -1
  37. package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts.map +1 -1
  38. package/dist/ui/components/molecules/index.d.ts +1 -0
  39. package/dist/ui/components/molecules/index.d.ts.map +1 -1
  40. package/dist/ui/components/molecules/vc-editor/vc-editor.vue.d.ts +2 -2
  41. package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts +2 -2
  42. package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts.map +1 -1
  43. package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts +4 -4
  44. package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts.map +1 -1
  45. package/dist/ui/components/molecules/vc-pagination/vc-pagination.vue.d.ts +1 -1
  46. package/dist/ui/components/molecules/vc-pagination/vc-pagination.vue.d.ts.map +1 -1
  47. package/dist/ui/components/molecules/vc-rating/vc-rating.vue.d.ts +1 -1
  48. package/dist/ui/components/molecules/vc-rating/vc-rating.vue.d.ts.map +1 -1
  49. package/dist/ui/components/molecules/vc-select/vc-select.vue.d.ts +7 -8
  50. package/dist/ui/components/molecules/vc-select/vc-select.vue.d.ts.map +1 -1
  51. package/dist/ui/components/molecules/vc-switch/index.d.ts.map +1 -0
  52. package/dist/ui/components/molecules/vc-switch/vc-switch.vue.d.ts.map +1 -0
  53. 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
  54. 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
  55. 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
  56. 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
  57. 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
  58. 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
  59. 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
  60. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-widget-container/_internal/vc-widget-container-desktop.vue.d.ts +1 -0
  61. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-widget-container/_internal/vc-widget-container-desktop.vue.d.ts.map +1 -1
  62. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-widget-container/_internal/vc-widget-container-mobile.vue.d.ts.map +1 -1
  63. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-widget-container/vc-widget-container.vue.d.ts.map +1 -1
  64. package/dist/ui/components/organisms/vc-blade/vc-blade.backupsb.d.ts +3 -3
  65. package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts +1 -1
  66. package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts.map +1 -1
  67. package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue.d.ts +2 -2
  68. package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts +1 -1
  69. package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts.map +1 -1
  70. package/dist/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts +3 -3
  71. package/dist/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts.map +1 -1
  72. package/dist/ui/components/organisms/vc-popup/vc-popup.vue.d.ts +1 -1
  73. package/dist/ui/components/organisms/vc-popup/vc-popup.vue.d.ts.map +1 -1
  74. package/dist/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts +1 -1
  75. package/dist/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts.map +1 -1
  76. package/package.json +4 -4
  77. package/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.ts +1 -1
  78. package/shared/components/user-dropdown-button/_internal/user-info.vue +3 -2
  79. package/shared/components/user-dropdown-button/user-dropdown-button.vue +7 -3
  80. package/ui/components/atoms/index.ts +0 -1
  81. package/ui/components/molecules/index.ts +1 -0
  82. package/ui/components/molecules/vc-select/vc-select.vue +48 -13
  83. package/ui/components/{atoms → molecules}/vc-switch/vc-switch.stories.ts +1 -1
  84. package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue +1 -1
  85. package/ui/components/organisms/vc-blade/_internal/vc-blade-widget-container/_internal/vc-widget-container-desktop.vue +2 -0
  86. package/ui/components/organisms/vc-blade/_internal/vc-blade-widget-container/_internal/vc-widget-container-mobile.vue +1 -0
  87. package/ui/components/organisms/vc-blade/_internal/vc-blade-widget-container/vc-widget-container.vue +4 -3
  88. package/ui/components/organisms/vc-blade/vc-blade.vue +0 -2
  89. package/dist/apl-B2DGVGxc.js +0 -76
  90. package/dist/asciiarmor-2LVJmxlE.js +0 -34
  91. package/dist/asn1-jKiBa2Ya.js +0 -95
  92. package/dist/asterisk-DS281yxp.js +0 -271
  93. package/dist/brainfuck-C_p9pTT8.js +0 -34
  94. package/dist/clike-BUuHEmgZ.js +0 -620
  95. package/dist/clojure-CCKyeQKf.js +0 -800
  96. package/dist/cmake-CuaCgAKt.js +0 -28
  97. package/dist/cobol-BlTKFDRj.js +0 -72
  98. package/dist/coffeescript-BVCvwO8I.js +0 -179
  99. package/dist/commonlisp-D_kxz07b.js +0 -75
  100. package/dist/crystal-D309uH6_.js +0 -217
  101. package/dist/css-bIlmDBTK.js +0 -1560
  102. package/dist/cypher-BMq4Fwjl.js +0 -68
  103. package/dist/d-BZcgY6La.js +0 -127
  104. package/dist/diff-Cg9d_RX2.js +0 -18
  105. package/dist/dockerfile-DIy8NleC.js +0 -194
  106. package/dist/dtd-CtLokQ-U.js +0 -84
  107. package/dist/dylan-QYeExnWK.js +0 -234
  108. package/dist/ebnf-DUPDuY4r.js +0 -78
  109. package/dist/ecl-CiXN-g_D.js +0 -121
  110. package/dist/eiffel-yQhjl4T1.js +0 -110
  111. package/dist/elm-CNT9vbN0.js +0 -108
  112. package/dist/erlang-CFOYdy9e.js +0 -487
  113. package/dist/factor-DDOC7X6P.js +0 -65
  114. package/dist/fcl-CPC2WYrI.js +0 -103
  115. package/dist/forth-BmxRyE9S.js +0 -60
  116. package/dist/fortran-9bvPyrOW.js +0 -442
  117. package/dist/framework.js +0 -289
  118. package/dist/gas-BdfkXJT_.js +0 -183
  119. package/dist/gherkin-CJuwpceU.js +0 -34
  120. package/dist/groovy-DZeT_VM-.js +0 -146
  121. package/dist/haskell-Bvt3Qq1t.js +0 -375
  122. package/dist/haxe-70NVW1pR.js +0 -359
  123. package/dist/http-D9LttvKF.js +0 -44
  124. package/dist/idl-B6TRFYjl.js +0 -947
  125. package/dist/index-83AS8awQ.js +0 -147093
  126. package/dist/index-BRzLUR4F.js +0 -71
  127. package/dist/index-BSMDwAsD.js +0 -58
  128. package/dist/index-BcE8cPQ1.js +0 -611
  129. package/dist/index-BdXB4Rc2.js +0 -98
  130. package/dist/index-BeE65IDG.js +0 -75
  131. package/dist/index-BjulAuhE.js +0 -156
  132. package/dist/index-C1julODM.js +0 -288
  133. package/dist/index-CCh6DcPw.js +0 -93
  134. package/dist/index-CM-cQwyJ.js +0 -265
  135. package/dist/index-CcUXsEpB.js +0 -134
  136. package/dist/index-D77dHT9M.js +0 -538
  137. package/dist/index-DjGE0Oe5.js +0 -341
  138. package/dist/index-DkbufypA.js +0 -299
  139. package/dist/index-VBkCq_SK.js +0 -137
  140. package/dist/index-cAxs8v2c.js +0 -249
  141. package/dist/index-nY-vksAs.js +0 -308
  142. package/dist/index.css +0 -9
  143. package/dist/javascript-WMWNx-Vj.js +0 -690
  144. package/dist/jinja2-DnB6dQmV.js +0 -154
  145. package/dist/julia-DpvXAuO6.js +0 -241
  146. package/dist/livescript-CanGTf8u.js +0 -272
  147. package/dist/lua-XplVlWi_.js +0 -217
  148. package/dist/mathematica-jaRHnSxC.js +0 -35
  149. package/dist/mbox-BctzC1hL.js +0 -76
  150. package/dist/mirc-CFBPAOaF.js +0 -72
  151. package/dist/mllike-BSnXJBGA.js +0 -272
  152. package/dist/modelica-vUgVs--1.js +0 -93
  153. package/dist/mscgen-Cpl0NYLN.js +0 -104
  154. package/dist/mumps-CQoS1kWX.js +0 -25
  155. package/dist/nginx-zDPm3Z74.js +0 -89
  156. package/dist/nsis-fePjrhq7.js +0 -62
  157. package/dist/ntriples-CsNjv2QF.js +0 -79
  158. package/dist/octave-C8PmmSRH.js +0 -143
  159. package/dist/oz-Ce8aN8oE.js +0 -151
  160. package/dist/pascal-De0D6mP7.js +0 -77
  161. package/dist/perl-B4bSCe1C.js +0 -915
  162. package/dist/pig-D24Z8EXi.js +0 -54
  163. package/dist/powershell-DkYVfTzP.js +0 -249
  164. package/dist/properties-Dn9wna3M.js +0 -26
  165. package/dist/protobuf-BPIjwpzm.js +0 -49
  166. package/dist/pug-BqUR2bBq.js +0 -248
  167. package/dist/puppet-nyd4dhjf.js +0 -45
  168. package/dist/python-B5QdSKoL.js +0 -313
  169. package/dist/q-DXjKs-tC.js +0 -83
  170. package/dist/r-LKEuhEGI.js +0 -104
  171. package/dist/rpm-IznJm2Xc.js +0 -57
  172. package/dist/ruby-CcYfvIk6.js +0 -228
  173. package/dist/sas-7E8yHoCW.js +0 -105
  174. package/dist/scheme-DjibxsNh.js +0 -124
  175. package/dist/shell-C0C2sNA_.js +0 -182
  176. package/dist/sieve-Bwz7vjP5.js +0 -72
  177. package/dist/simple-mode-B0dvCdAA.js +0 -89
  178. package/dist/smalltalk-Bhddl2pB.js +0 -48
  179. package/dist/solr-BNlsLglM.js +0 -41
  180. package/dist/sparql-FarWu_Gb.js +0 -197
  181. package/dist/spreadsheet-C-cy4P5N.js +0 -49
  182. package/dist/sql-mMre1Bo3.js +0 -282
  183. package/dist/stex-92raWT1r.js +0 -129
  184. package/dist/stylus-CAdqWld3.js +0 -250
  185. package/dist/swift-DSxqR9R6.js +0 -230
  186. package/dist/tcl-xfoLljhY.js +0 -81
  187. package/dist/textile-D1AWE-pc.js +0 -295
  188. package/dist/tiddlywiki-5wqsXtSk.js +0 -155
  189. package/dist/tiki-__Kn3CeS.js +0 -181
  190. package/dist/toml-BHiuTcfn.js +0 -49
  191. package/dist/troff-D2UO-fKf.js +0 -35
  192. package/dist/ttcn-Bsa4sfRm.js +0 -123
  193. package/dist/ttcn-cfg-Bac_acMi.js +0 -88
  194. package/dist/turtle-xwJUxoPV.js +0 -80
  195. package/dist/ui/components/atoms/vc-switch/index.d.ts.map +0 -1
  196. package/dist/ui/components/atoms/vc-switch/vc-switch.vue.d.ts.map +0 -1
  197. package/dist/vb-c2kQGd6-.js +0 -74
  198. package/dist/vbscript-Dz1TtKsy.js +0 -324
  199. package/dist/velocity-DJd0pTTC.js +0 -96
  200. package/dist/verilog-C4VGD9n1.js +0 -263
  201. package/dist/vhdl-T9HkrbI2.js +0 -106
  202. package/dist/webidl-CjfDENEo.js +0 -155
  203. package/dist/xquery-BUQdORAS.js +0 -422
  204. package/dist/yacas-C0absKBh.js +0 -73
  205. package/dist/z80-C8rPtw-0.js +0 -61
  206. /package/dist/ui/components/{atoms → molecules}/vc-switch/index.d.ts +0 -0
  207. /package/dist/ui/components/{atoms → molecules}/vc-switch/vc-switch.vue.d.ts +0 -0
  208. /package/ui/components/{atoms → molecules}/vc-switch/index.ts +0 -0
  209. /package/ui/components/{atoms → molecules}/vc-switch/vc-switch.vue +0 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,21 @@
1
+ ## [1.1.11](https://github.com/VirtoCommerce/vc-shell/compare/v1.1.10...v1.1.11) (2025-05-23)
2
+
3
+
4
+ ### Features
5
+
6
+ * **vc-select:** add loading and no options messages for improved user experience ([aa65256](https://github.com/VirtoCommerce/vc-shell/commit/aa65256b99238e6d7feae24177c4304eb25d1153))
7
+
8
+
9
+
10
+ ## [1.1.10](https://github.com/VirtoCommerce/vc-shell/compare/v1.1.9...v1.1.10) (2025-05-22)
11
+
12
+
13
+ ### Features
14
+
15
+ * **dynamic-properties:** add useDynamicProperties composable for managing dynamic property values and dictionaries ([5af9e0b](https://github.com/VirtoCommerce/vc-shell/commit/5af9e0bd27dd9930589166e17ef234fd8dae5998))
16
+
17
+
18
+
1
19
  ## [1.1.9](https://github.com/VirtoCommerce/vc-shell/compare/v1.1.8...v1.1.9) (2025-05-15)
2
20
 
3
21
 
@@ -19,3 +19,4 @@ export * from "./useDashboard";
19
19
  export * from "./useAppBarWidget";
20
20
  export * from "./useSettingsMenu";
21
21
  export * from "./useToolbar";
22
+ export * from "./useDynamicProperties";
@@ -0,0 +1,344 @@
1
+ import { useLoading } from "../useLoading";
2
+ import { useAsync } from "../useAsync";
3
+ import * as _ from "lodash-es";
4
+ import { ComputedRef } from "vue";
5
+
6
+ // Base interfaces that can be extended by specific API client types
7
+ export interface IBaseProperty<TPropertyValue> {
8
+ id?: string | null;
9
+ name?: string | null;
10
+ values?: TPropertyValue[] | null;
11
+ multilanguage?: boolean | null;
12
+ multivalue?: boolean | null;
13
+ dictionary?: boolean | null;
14
+ valueType?: string | null; // Consider using a more specific enum if possible
15
+ }
16
+
17
+ export interface IBasePropertyValue {
18
+ propertyName?: string | null;
19
+ propertyId?: string | null;
20
+ languageCode?: string | null;
21
+ alias?: string | null;
22
+ valueType?: string | null;
23
+ value?: any; // eslint-disable-line @typescript-eslint/no-explicit-any
24
+ valueId?: string | null;
25
+ isInherited?: boolean;
26
+ }
27
+
28
+ export interface IBasePropertyDictionaryItem {
29
+ id?: string | null;
30
+ propertyId?: string | null;
31
+ alias?: string | null;
32
+ localizedValues?: { languageCode?: string | null; value?: string | null }[] | null;
33
+ value?: string;
34
+ }
35
+
36
+ export interface IBasePropertyDictionaryItemSearchCriteria {
37
+ propertyIds?: string[] | null;
38
+ keyword?: string | null;
39
+ skip?: number | null;
40
+ take?: number | null;
41
+ }
42
+
43
+ export interface IUseDynamicProperties<
44
+ TProperty extends IBaseProperty<TPropertyValue>,
45
+ TPropertyValue extends IBasePropertyValue,
46
+ TPropertyDictionaryItem extends IBasePropertyDictionaryItem,
47
+ TPropertyDictionaryItemSearchCriteria extends IBasePropertyDictionaryItemSearchCriteria,
48
+ > {
49
+ loading: ComputedRef<boolean>;
50
+ loadDictionaries: (
51
+ propertyId: string,
52
+ keyword?: string,
53
+ locale?: string,
54
+ ) => Promise<TPropertyDictionaryItem[] | undefined>;
55
+ getPropertyValue: (
56
+ property: TProperty,
57
+ locale: string,
58
+ ) => string | TPropertyValue[] | (TPropertyDictionaryItem & { value: string })[];
59
+ setPropertyValue: (data: {
60
+ property: TProperty;
61
+ value: string | TPropertyValue[] | (TPropertyDictionaryItem & { value: string })[];
62
+ dictionary?: TPropertyDictionaryItem[];
63
+ locale?: string;
64
+ initialProp?: TProperty;
65
+ }) => void;
66
+ }
67
+
68
+ function isEmptyValues(value: unknown) {
69
+ return (
70
+ value === undefined ||
71
+ value === null ||
72
+ (typeof value === "number" && isNaN(value)) ||
73
+ (typeof value === "object" && Object.keys(value).length === 0) ||
74
+ (typeof value === "string" && value.trim().length === 0)
75
+ );
76
+ }
77
+
78
+ export const useDynamicProperties = <
79
+ TProperty extends IBaseProperty<TPropertyValue>,
80
+ TPropertyValue extends IBasePropertyValue,
81
+ TPropertyDictionaryItem extends IBasePropertyDictionaryItem,
82
+ TPropertyDictionaryItemSearchCriteria extends IBasePropertyDictionaryItemSearchCriteria,
83
+ >(
84
+ searchDictionaryItemsFunction: (
85
+ criteria: TPropertyDictionaryItemSearchCriteria,
86
+ ) => Promise<TPropertyDictionaryItem[] | undefined>,
87
+ PropertyValueConstructor: new (data?: Partial<TPropertyValue>) => TPropertyValue,
88
+ PropertyDictionaryItemConstructor: new (data?: Partial<TPropertyDictionaryItem>) => TPropertyDictionaryItem,
89
+ ): IUseDynamicProperties<TProperty, TPropertyValue, TPropertyDictionaryItem, TPropertyDictionaryItemSearchCriteria> => {
90
+ const { loading: dictionaryItemsLoading, action: searchDictionaryItems } = useAsync<
91
+ TPropertyDictionaryItemSearchCriteria,
92
+ TPropertyDictionaryItem[] | undefined
93
+ >(async (args: TPropertyDictionaryItemSearchCriteria | undefined) => {
94
+ if (args === undefined) {
95
+ return undefined;
96
+ }
97
+ return await searchDictionaryItemsFunction(args);
98
+ });
99
+
100
+ function getPropertyValue(property: TProperty, locale: string) {
101
+ if (property.multilanguage) {
102
+ const propValue = property.values?.find((x) => x.languageCode == locale);
103
+
104
+ if (property.multivalue) {
105
+ return property.values?.filter((x) => x.languageCode === locale) as TPropertyValue[];
106
+ } else if (!propValue) {
107
+ const aliasProp = property.values?.find((x) => x.propertyId === property.id);
108
+
109
+ if (aliasProp) {
110
+ property.values?.push(
111
+ new PropertyValueConstructor({
112
+ propertyName: property.name,
113
+ propertyId: property.id,
114
+ languageCode: locale,
115
+ alias: aliasProp?.alias,
116
+ valueType: property.valueType,
117
+ valueId: aliasProp?.valueId,
118
+ } as unknown as Partial<TPropertyValue>),
119
+ );
120
+ }
121
+ }
122
+
123
+ if (property.dictionary) {
124
+ return (propValue && propValue?.valueId) as string;
125
+ }
126
+ return propValue?.value as string;
127
+ } else {
128
+ if (property.multivalue) {
129
+ return property.values as TPropertyValue[];
130
+ }
131
+ if (property.dictionary) {
132
+ return property.values?.[0]?.valueId as string;
133
+ }
134
+ return property.values?.[0]?.value as string;
135
+ }
136
+ }
137
+
138
+ async function loadDictionaries(propertyId: string, keyword?: string, locale?: string) {
139
+ if (propertyId) {
140
+ let dictionaryItems = await searchDictionaryItems({
141
+ propertyIds: [propertyId],
142
+ keyword,
143
+ skip: 0,
144
+ } as TPropertyDictionaryItemSearchCriteria);
145
+ if (locale) {
146
+ dictionaryItems = dictionaryItems?.map((x: TPropertyDictionaryItem) => {
147
+ const localizedValue = x.localizedValues?.find(
148
+ (v: { languageCode?: string | null; value?: string | null }) => v.languageCode == locale,
149
+ )?.value;
150
+ return Object.assign(new PropertyDictionaryItemConstructor(x), {
151
+ value: localizedValue ?? x.alias,
152
+ });
153
+ });
154
+ }
155
+ return dictionaryItems;
156
+ }
157
+ }
158
+
159
+ function setPropertyValue(data: {
160
+ property: TProperty;
161
+ value: string | TPropertyValue[] | (TPropertyDictionaryItem & { value: string })[];
162
+ dictionary?: TPropertyDictionaryItem[];
163
+ locale?: string;
164
+ initialProp?: TProperty;
165
+ }) {
166
+ const { property, value, dictionary, locale } = data;
167
+
168
+ if (dictionary && dictionary.length > 0) {
169
+ const dict = dictionary.map((x) => new PropertyDictionaryItemConstructor(x));
170
+ if (property.multilanguage) {
171
+ // Multivalue Dictionary Multilanguage
172
+ if (Array.isArray(value)) {
173
+ property.values = (value as (TPropertyDictionaryItem & { value: string })[]).flatMap((item) => {
174
+ const dictItem = dict.find((x) => x.id === (item as unknown as TPropertyValue).valueId || x.id === item.id);
175
+ if (dictItem?.localizedValues?.length) {
176
+ return dictItem.localizedValues.map(
177
+ (x) =>
178
+ new PropertyValueConstructor({
179
+ propertyId: dictItem.propertyId,
180
+ alias: dictItem.alias,
181
+ languageCode: x.languageCode,
182
+ value: x.value ?? dictItem.alias,
183
+ valueId: dictItem.id,
184
+ } as unknown as Partial<TPropertyValue>),
185
+ );
186
+ }
187
+ return new PropertyValueConstructor(item as unknown as Partial<TPropertyValue>);
188
+ });
189
+ }
190
+ // Single value Dictionary Multilanguage
191
+ else {
192
+ const dictionaryItem = dictionary.find((x) => x.id === (value as string));
193
+ if (dictionaryItem) {
194
+ property.values = dictionaryItem?.localizedValues?.map(
195
+ (x) =>
196
+ new PropertyValueConstructor({
197
+ propertyId: dictionaryItem.propertyId,
198
+ alias: dictionaryItem.alias,
199
+ languageCode: x.languageCode,
200
+ value: x.value ?? dictionaryItem.alias,
201
+ valueId: dictionaryItem.id,
202
+ } as unknown as Partial<TPropertyValue>),
203
+ );
204
+ } else {
205
+ property.values = [];
206
+ }
207
+ }
208
+ } else {
209
+ // Multivalue Dictionary
210
+ if (Array.isArray(value)) {
211
+ property.values = (value as (TPropertyDictionaryItem & { value: string })[]).flatMap((item) => {
212
+ const dictItem = dict.find((x) => x.id === (item as unknown as TPropertyValue).valueId || x.id === item.id);
213
+ if (dictItem) {
214
+ return new PropertyValueConstructor({
215
+ propertyId: dictItem.propertyId,
216
+ alias: dictItem.alias,
217
+ value: item.value ?? dictItem.alias,
218
+ valueId: dictItem.id,
219
+ } as unknown as Partial<TPropertyValue>);
220
+ }
221
+ return new PropertyValueConstructor(item as unknown as Partial<TPropertyValue>);
222
+ });
223
+ }
224
+ // Single value Dictionary
225
+ else {
226
+ const dictionaryItem = dictionary.find((x) => x.id === (value as string));
227
+
228
+ if (isEmptyValues(value)) {
229
+ property.values = [];
230
+ } else {
231
+ property.values = [
232
+ new PropertyValueConstructor({
233
+ propertyId: dictionaryItem?.propertyId,
234
+ alias: dictionaryItem?.alias,
235
+ value: (dictionaryItem as TPropertyDictionaryItem & { value: string })?.value ?? dictionaryItem?.alias,
236
+ valueId: value as string,
237
+ } as unknown as Partial<TPropertyValue>),
238
+ ];
239
+ }
240
+ }
241
+ }
242
+ } else {
243
+ if (property.multilanguage) {
244
+ // Multivalue Multilanguage
245
+ if (Array.isArray(value)) {
246
+ property.values =
247
+ property.values &&
248
+ ([
249
+ ...property.values.filter((x) => x.languageCode !== locale),
250
+ ...(value as TPropertyValue[]).map(
251
+ (item) =>
252
+ new PropertyValueConstructor({ ...item, languageCode: locale } as unknown as Partial<TPropertyValue>),
253
+ ),
254
+ ] as TPropertyValue[]);
255
+ }
256
+ // Single value Multilanguage
257
+ else {
258
+ const propValue = property.values?.find((x) => x.languageCode == locale);
259
+ if (propValue) {
260
+ propValue.value = value as string;
261
+ } else {
262
+ property.values = [
263
+ new PropertyValueConstructor({
264
+ value: value as string,
265
+ isInherited: false,
266
+ languageCode: locale,
267
+ } as unknown as Partial<TPropertyValue>),
268
+ ];
269
+ }
270
+ }
271
+ } else {
272
+ // Multivalue
273
+ if (Array.isArray(value)) {
274
+ property.values = (value as TPropertyValue[]).map(
275
+ (item) => new PropertyValueConstructor(item as unknown as Partial<TPropertyValue>),
276
+ );
277
+ }
278
+ // Single value
279
+ else {
280
+ if (typeof value === "boolean") {
281
+ if (data.initialProp?.values?.length) {
282
+ property.values = [
283
+ property.values?.[0]
284
+ ? Object.assign(property.values[0], { value })
285
+ : new PropertyValueConstructor({
286
+ value: value,
287
+ isInherited: false,
288
+ } as unknown as Partial<TPropertyValue>),
289
+ ];
290
+ } else {
291
+ if (value) {
292
+ property.values = [
293
+ new PropertyValueConstructor({
294
+ value: value,
295
+ isInherited: false,
296
+ } as unknown as Partial<TPropertyValue>),
297
+ ];
298
+ } else {
299
+ property.values = [];
300
+ }
301
+ }
302
+ } else if (isEmptyValues(value)) {
303
+ // Ensure we create an empty PropertyValue if the original value was also empty, to signify an explicit clear.
304
+ // Otherwise, if there was a value and now it's empty, we clear the values array.
305
+ const hadOriginalValue = data.initialProp?.values?.find((v) =>
306
+ property.multilanguage ? v.languageCode === locale : true,
307
+ )?.value;
308
+ const originalValueWasEmpty = isEmptyValues(hadOriginalValue);
309
+
310
+ if (originalValueWasEmpty) {
311
+ property.values = [
312
+ new PropertyValueConstructor({
313
+ value: value as string,
314
+ isInherited: false,
315
+ languageCode: property.multilanguage ? locale : undefined,
316
+ } as unknown as Partial<TPropertyValue>),
317
+ ];
318
+ } else {
319
+ property.values = [];
320
+ }
321
+ } else {
322
+ property.values = property.values?.[0]
323
+ ? [Object.assign(property.values[0], { value: value as string })]
324
+ : [
325
+ new PropertyValueConstructor({
326
+ value: value as string,
327
+ isInherited: false,
328
+ } as unknown as Partial<TPropertyValue>),
329
+ ];
330
+ }
331
+ }
332
+ }
333
+ }
334
+ }
335
+
336
+ const loading = useLoading(dictionaryItemsLoading);
337
+
338
+ return {
339
+ loading,
340
+ loadDictionaries,
341
+ getPropertyValue,
342
+ setPropertyValue,
343
+ };
344
+ };
@@ -38,7 +38,8 @@ const preregisteredIds = new Set<string>();
38
38
  * Registers a toolbar button before the service is initialized
39
39
  */
40
40
  export function registerToolbarItem(toolbarItem: IToolbarItem, bladeId: string): void {
41
- preregisteredToolbarItems.push({ bladeId, toolbarItem });
41
+ const normalizedBladeId = bladeId.toLowerCase();
42
+ preregisteredToolbarItems.push({ bladeId: normalizedBladeId, toolbarItem });
42
43
  preregisteredIds.add(toolbarItem.id);
43
44
  }
44
45
 
@@ -48,14 +49,16 @@ export function createToolbarService(): IToolbarService {
48
49
  const registeredIds = reactive(new Set<string>());
49
50
 
50
51
  const registerToolbarItem = (toolbarItem: IToolbarItem, bladeId: string): void => {
51
- if (!toolbarRegistry[bladeId]) {
52
- toolbarRegistry[bladeId] = [];
52
+ const normalizedBladeId = bladeId.toLowerCase();
53
+
54
+ if (!toolbarRegistry[normalizedBladeId]) {
55
+ toolbarRegistry[normalizedBladeId] = [];
53
56
  }
54
57
 
55
- const existingIndex = toolbarRegistry[bladeId].findIndex((t) => t.id === toolbarItem.id);
58
+ const existingIndex = toolbarRegistry[normalizedBladeId].findIndex((t) => t.id === toolbarItem.id);
56
59
  if (existingIndex === -1) {
57
- toolbarRegistry[bladeId].push(reactive(toolbarItem));
58
- registeredToolbarItems.push({ bladeId, toolbarItem: reactive(toolbarItem) });
60
+ toolbarRegistry[normalizedBladeId].push(reactive(toolbarItem));
61
+ registeredToolbarItems.push({ bladeId: normalizedBladeId, toolbarItem: reactive(toolbarItem) });
59
62
  registeredIds.add(toolbarItem.id);
60
63
  }
61
64
  };
@@ -69,25 +72,29 @@ export function createToolbarService(): IToolbarService {
69
72
  bladeId: string;
70
73
  toolbarItem: Partial<IToolbarItem>;
71
74
  }): void => {
72
- if (toolbarRegistry[bladeId]) {
73
- const index = toolbarRegistry[bladeId].findIndex((t) => t.id === id);
75
+ const normalizedBladeId = bladeId.toLowerCase();
76
+
77
+ if (toolbarRegistry[normalizedBladeId]) {
78
+ const index = toolbarRegistry[normalizedBladeId].findIndex((t) => t.id === id);
74
79
  if (index !== -1) {
75
- toolbarRegistry[bladeId][index] = { ...toolbarRegistry[bladeId][index], ...toolbarItem };
80
+ toolbarRegistry[normalizedBladeId][index] = { ...toolbarRegistry[normalizedBladeId][index], ...toolbarItem };
76
81
  }
77
82
  }
78
83
  };
79
84
 
80
85
  const unregisterToolbarItem = (toolbarItemId: string, bladeId: string): void => {
81
- if (toolbarRegistry[bladeId]) {
82
- const index = toolbarRegistry[bladeId].findIndex((t) => t.id === toolbarItemId);
86
+ const normalizedBladeId = bladeId.toLowerCase();
87
+
88
+ if (toolbarRegistry[normalizedBladeId]) {
89
+ const index = toolbarRegistry[normalizedBladeId].findIndex((t) => t.id === toolbarItemId);
83
90
  if (index !== -1) {
84
- toolbarRegistry[bladeId].splice(index, 1);
91
+ toolbarRegistry[normalizedBladeId].splice(index, 1);
85
92
  registeredIds.delete(toolbarItemId);
86
93
  }
87
94
  }
88
95
 
89
96
  const regIndex = registeredToolbarItems.findIndex(
90
- (t) => t.bladeId === bladeId && t.toolbarItem.id === toolbarItemId,
97
+ (t) => t.bladeId === normalizedBladeId && t.toolbarItem.id === toolbarItemId,
91
98
  );
92
99
  if (regIndex !== -1) {
93
100
  registeredToolbarItems.splice(regIndex, 1);
@@ -95,19 +102,22 @@ export function createToolbarService(): IToolbarService {
95
102
  };
96
103
 
97
104
  const getToolbarItems = (bladeId: string): IToolbarItem[] => {
98
- return toolbarRegistry[bladeId] || [];
105
+ const normalizedBladeId = bladeId ? bladeId.toLowerCase() : "";
106
+ return toolbarRegistry[normalizedBladeId] || [];
99
107
  };
100
108
 
101
109
  const clearBladeToolbarItems = (bladeId: string): void => {
102
- if (toolbarRegistry[bladeId]) {
103
- toolbarRegistry[bladeId].forEach((toolbarItem) => {
110
+ const normalizedBladeId = bladeId.toLowerCase();
111
+
112
+ if (toolbarRegistry[normalizedBladeId]) {
113
+ toolbarRegistry[normalizedBladeId].forEach((toolbarItem) => {
104
114
  registeredIds.delete(toolbarItem.id);
105
115
  });
106
- delete toolbarRegistry[bladeId];
116
+ delete toolbarRegistry[normalizedBladeId];
107
117
  }
108
118
 
109
119
  const indices = registeredToolbarItems
110
- .map((t, i) => (t.bladeId === bladeId ? i : -1))
120
+ .map((t, i) => (t.bladeId === normalizedBladeId ? i : -1))
111
121
  .filter((i) => i !== -1)
112
122
  .reverse();
113
123
 
@@ -44,7 +44,8 @@ const preregisteredIds = new Set<string>();
44
44
  * Registers a widget before the service is initialized
45
45
  */
46
46
  export function registerWidget(widget: IWidget, bladeId: string): void {
47
- preregisteredWidgets.push({ bladeId, widget });
47
+ const normalizedBladeId = bladeId.toLowerCase();
48
+ preregisteredWidgets.push({ bladeId: normalizedBladeId, widget });
48
49
  preregisteredIds.add(widget.id);
49
50
  }
50
51
 
@@ -55,56 +56,65 @@ export function createWidgetService(): IWidgetService {
55
56
  const registeredIds = reactive(new Set<string>());
56
57
 
57
58
  const registerWidget = (widget: IWidget, bladeId: string): void => {
58
- if (!widgetRegistry[bladeId]) {
59
- widgetRegistry[bladeId] = [];
59
+ const normalizedBladeId = bladeId.toLowerCase();
60
+
61
+ if (!widgetRegistry[normalizedBladeId]) {
62
+ widgetRegistry[normalizedBladeId] = [];
60
63
  }
61
64
 
62
- const existingIndex = widgetRegistry[bladeId].findIndex((w) => w.id === widget.id);
65
+ const existingIndex = widgetRegistry[normalizedBladeId].findIndex((w) => w.id === widget.id);
63
66
  if (existingIndex === -1) {
64
- widgetRegistry[bladeId].push(reactive(widget));
65
- registeredWidgets.push({ bladeId, widget: reactive(widget) });
67
+ widgetRegistry[normalizedBladeId].push(reactive(widget));
68
+ registeredWidgets.push({ bladeId: normalizedBladeId, widget: reactive(widget) });
66
69
  registeredIds.add(widget.id);
67
70
  }
68
71
  };
69
72
 
70
73
  const updateWidget = ({ id, bladeId, widget }: { id: string; bladeId: string; widget: Partial<IWidget> }): void => {
71
- if (widgetRegistry[bladeId]) {
72
- const index = widgetRegistry[bladeId].findIndex((w) => w.id === id);
74
+ const normalizedBladeId = bladeId.toLowerCase();
75
+
76
+ if (widgetRegistry[normalizedBladeId]) {
77
+ const index = widgetRegistry[normalizedBladeId].findIndex((w) => w.id === id);
73
78
  if (index !== -1) {
74
- widgetRegistry[bladeId][index] = { ...widgetRegistry[bladeId][index], ...widget };
79
+ widgetRegistry[normalizedBladeId][index] = { ...widgetRegistry[normalizedBladeId][index], ...widget };
75
80
  }
76
81
  }
77
82
  };
78
83
 
79
84
  const unregisterWidget = (widgetId: string, bladeId: string): void => {
80
- if (widgetRegistry[bladeId]) {
81
- const index = widgetRegistry[bladeId].findIndex((w) => w.id === widgetId);
85
+ const normalizedBladeId = bladeId.toLowerCase();
86
+
87
+ if (widgetRegistry[normalizedBladeId]) {
88
+ const index = widgetRegistry[normalizedBladeId].findIndex((w) => w.id === widgetId);
82
89
  if (index !== -1) {
83
- widgetRegistry[bladeId].splice(index, 1);
90
+ widgetRegistry[normalizedBladeId].splice(index, 1);
84
91
  registeredIds.delete(widgetId);
85
92
  }
86
93
  }
87
94
 
88
- const regIndex = registeredWidgets.findIndex((w) => w.bladeId === bladeId && w.widget.id === widgetId);
95
+ const regIndex = registeredWidgets.findIndex((w) => w.bladeId === normalizedBladeId && w.widget.id === widgetId);
89
96
  if (regIndex !== -1) {
90
97
  registeredWidgets.splice(regIndex, 1);
91
98
  }
92
99
  };
93
100
 
94
101
  const getWidgets = (bladeId: string): IWidget[] => {
95
- return widgetRegistry[bladeId] || [];
102
+ const normalizedBladeId = bladeId ? bladeId.toLowerCase() : "";
103
+ return widgetRegistry[normalizedBladeId] || [];
96
104
  };
97
105
 
98
106
  const clearBladeWidgets = (bladeId: string): void => {
99
- if (widgetRegistry[bladeId]) {
100
- widgetRegistry[bladeId].forEach((widget) => {
107
+ const normalizedBladeId = bladeId.toLowerCase();
108
+
109
+ if (widgetRegistry[normalizedBladeId]) {
110
+ widgetRegistry[normalizedBladeId].forEach((widget) => {
101
111
  registeredIds.delete(widget.id);
102
112
  });
103
- delete widgetRegistry[bladeId];
113
+ delete widgetRegistry[normalizedBladeId];
104
114
  }
105
115
 
106
116
  const indices = registeredWidgets
107
- .map((w, i) => (w.bladeId === bladeId ? i : -1))
117
+ .map((w, i) => (w.bladeId === normalizedBladeId ? i : -1))
108
118
  .filter((i) => i !== -1)
109
119
  .reverse();
110
120
 
@@ -19,4 +19,5 @@ export * from "./useDashboard";
19
19
  export * from "./useAppBarWidget";
20
20
  export * from "./useSettingsMenu";
21
21
  export * from "./useToolbar";
22
+ export * from "./useDynamicProperties";
22
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/composables/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/composables/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { ComputedRef } from "vue";
2
+ export interface IBaseProperty<TPropertyValue> {
3
+ id?: string | null;
4
+ name?: string | null;
5
+ values?: TPropertyValue[] | null;
6
+ multilanguage?: boolean | null;
7
+ multivalue?: boolean | null;
8
+ dictionary?: boolean | null;
9
+ valueType?: string | null;
10
+ }
11
+ export interface IBasePropertyValue {
12
+ propertyName?: string | null;
13
+ propertyId?: string | null;
14
+ languageCode?: string | null;
15
+ alias?: string | null;
16
+ valueType?: string | null;
17
+ value?: any;
18
+ valueId?: string | null;
19
+ isInherited?: boolean;
20
+ }
21
+ export interface IBasePropertyDictionaryItem {
22
+ id?: string | null;
23
+ propertyId?: string | null;
24
+ alias?: string | null;
25
+ localizedValues?: {
26
+ languageCode?: string | null;
27
+ value?: string | null;
28
+ }[] | null;
29
+ value?: string;
30
+ }
31
+ export interface IBasePropertyDictionaryItemSearchCriteria {
32
+ propertyIds?: string[] | null;
33
+ keyword?: string | null;
34
+ skip?: number | null;
35
+ take?: number | null;
36
+ }
37
+ export interface IUseDynamicProperties<TProperty extends IBaseProperty<TPropertyValue>, TPropertyValue extends IBasePropertyValue, TPropertyDictionaryItem extends IBasePropertyDictionaryItem, TPropertyDictionaryItemSearchCriteria extends IBasePropertyDictionaryItemSearchCriteria> {
38
+ loading: ComputedRef<boolean>;
39
+ loadDictionaries: (propertyId: string, keyword?: string, locale?: string) => Promise<TPropertyDictionaryItem[] | undefined>;
40
+ getPropertyValue: (property: TProperty, locale: string) => string | TPropertyValue[] | (TPropertyDictionaryItem & {
41
+ value: string;
42
+ })[];
43
+ setPropertyValue: (data: {
44
+ property: TProperty;
45
+ value: string | TPropertyValue[] | (TPropertyDictionaryItem & {
46
+ value: string;
47
+ })[];
48
+ dictionary?: TPropertyDictionaryItem[];
49
+ locale?: string;
50
+ initialProp?: TProperty;
51
+ }) => void;
52
+ }
53
+ export declare const useDynamicProperties: <TProperty extends IBaseProperty<TPropertyValue>, TPropertyValue extends IBasePropertyValue, TPropertyDictionaryItem extends IBasePropertyDictionaryItem, TPropertyDictionaryItemSearchCriteria extends IBasePropertyDictionaryItemSearchCriteria>(searchDictionaryItemsFunction: (criteria: TPropertyDictionaryItemSearchCriteria) => Promise<TPropertyDictionaryItem[] | undefined>, PropertyValueConstructor: new (data?: Partial<TPropertyValue>) => TPropertyValue, PropertyDictionaryItemConstructor: new (data?: Partial<TPropertyDictionaryItem>) => TPropertyDictionaryItem) => IUseDynamicProperties<TProperty, TPropertyValue, TPropertyDictionaryItem, TPropertyDictionaryItemSearchCriteria>;
54
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../core/composables/useDynamicProperties/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar-service.d.ts","sourceRoot":"","sources":["../../../core/services/toolbar-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,YAAY,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,mBAAmB,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1E,qBAAqB,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxE,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,YAAY,EAAE,CAAC;IACrD,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,sBAAsB,EAAE,oBAAoB,EAAE,CAAC;IAC/C,uBAAuB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACjD,iBAAiB,EAAE,CAAC,EAClB,EAAE,EACF,OAAO,EACP,WAAW,GACZ,EAAE;QACD,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;KACpC,KAAK,IAAI,CAAC;CACZ;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAGpF;AAED,wBAAgB,oBAAoB,IAAI,eAAe,CAgGtD"}
1
+ {"version":3,"file":"toolbar-service.d.ts","sourceRoot":"","sources":["../../../core/services/toolbar-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,YAAY,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,mBAAmB,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1E,qBAAqB,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxE,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,YAAY,EAAE,CAAC;IACrD,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,sBAAsB,EAAE,oBAAoB,EAAE,CAAC;IAC/C,uBAAuB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACjD,iBAAiB,EAAE,CAAC,EAClB,EAAE,EACF,OAAO,EACP,WAAW,GACZ,EAAE;QACD,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;KACpC,KAAK,IAAI,CAAC;CACZ;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAIpF;AAED,wBAAgB,oBAAoB,IAAI,eAAe,CAyGtD"}
@@ -1 +1 @@
1
- {"version":3,"file":"widget-service.d.ts","sourceRoot":"","sources":["../../../core/services/widget-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAiB,yBAAyB,EAAE,WAAW,EAAE,GAAG,EAAsB,MAAM,KAAK,CAAC;AAChH,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAEhF,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,kBAAkB,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC;IAClG,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,EAAE,CAAC;IAC3C,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,iBAAiB,EAAE,mBAAmB,EAAE,CAAC;IACzC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,eAAe,EAAE,CAAC,GAAG,EAAE,yBAAyB,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IACrE,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5C,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,KAAK,IAAI,CAAC;CAC5G;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAGrE;AAED,wBAAgB,mBAAmB,IAAI,cAAc,CA6GpD"}
1
+ {"version":3,"file":"widget-service.d.ts","sourceRoot":"","sources":["../../../core/services/widget-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAiB,yBAAyB,EAAE,WAAW,EAAE,GAAG,EAAsB,MAAM,KAAK,CAAC;AAChH,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAEhF,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,kBAAkB,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC;IAClG,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,EAAE,CAAC;IAC3C,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,iBAAiB,EAAE,mBAAmB,EAAE,CAAC;IACzC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,eAAe,EAAE,CAAC,GAAG,EAAE,yBAAyB,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IACrE,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5C,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,KAAK,IAAI,CAAC;CAC5G;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAIrE;AAED,wBAAgB,mBAAmB,IAAI,cAAc,CAsHpD"}
@@ -26,7 +26,9 @@
26
26
  "MOLECULES": {
27
27
  "VC_SELECT": {
28
28
  "CLICK_TO_SELECT": "Zum Auswählen klicken...",
29
- "LOADING": "Wird geladen..."
29
+ "LOADING": "Wird geladen...",
30
+ "LOADING_MORE": "Mehr laden...",
31
+ "NO_OPTIONS": "Keine Optionen"
30
32
  },
31
33
  "VC_FILE_UPLOAD": {
32
34
  "DRAG_HERE": "Datei hier ablegen oder",