@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vc-shell/framework",
3
- "version": "1.1.9",
3
+ "version": "1.1.11",
4
4
  "type": "module",
5
5
  "main": "./dist/framework.js",
6
6
  "types": "./dist/index.d.ts",
@@ -70,9 +70,9 @@
70
70
  "devDependencies": {
71
71
  "@fullhuman/postcss-purgecss": "^7.0.2",
72
72
  "@types/dompurify": "^3.0.5",
73
- "@vc-shell/api-client-generator": "^1.1.9",
74
- "@vc-shell/config-generator": "^1.1.9",
75
- "@vc-shell/ts-config": "^1.1.9",
73
+ "@vc-shell/api-client-generator": "^1.1.11",
74
+ "@vc-shell/config-generator": "^1.1.11",
75
+ "@vc-shell/ts-config": "^1.1.11",
76
76
  "@vitejs/plugin-vue": "^5.2.3",
77
77
  "@vue/test-utils": "^2.4.5",
78
78
  "cypress-signalr-mock": "^1.5.0",
@@ -112,7 +112,7 @@ export const VcBladeView = defineComponent({
112
112
  provide(
113
113
  BladeInstance,
114
114
  computed<IBladeInstance>(() => ({
115
- id: bl.value?.type.name ?? FALLBACK_BLADE_ID,
115
+ id: (bl.value?.type.name ?? FALLBACK_BLADE_ID).toLowerCase(),
116
116
  param: bl.value?.props?.param,
117
117
  options: bl.value?.props?.options,
118
118
  expandable: props.expandable ?? false,
@@ -59,7 +59,8 @@ const imageHandler = computed(() => {
59
59
  }
60
60
 
61
61
  .vc-user-info {
62
- @apply tw-flex tw-items-center tw-gap-3 tw-truncate;
62
+ @apply tw-flex tw-items-center tw-gap-3 tw-truncate tw-w-full;
63
+ @apply tw-overflow-visible #{!important};
63
64
 
64
65
  &__avatar {
65
66
  @apply tw-rounded-full tw-overflow-hidden tw-w-[var(--user-info-avatar-width)] tw-h-[var(--user-info-avatar-height)] tw-bg-[color:var(--user-dropdown-account-info-role-color)]
@@ -79,7 +80,7 @@ const imageHandler = computed(() => {
79
80
  }
80
81
 
81
82
  &__role {
82
- @apply tw-text-sm tw-text-[color:var(--user-dropdown-account-info-role-color)] tw-truncate tw-text-left;
83
+ @apply tw-text-sm tw-text-[color:var(--user-dropdown-account-info-role-color)] tw-truncate tw-text-left tw-w-full tw-max-w-[250px];
83
84
  }
84
85
  }
85
86
 
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div>
2
+ <div class="vc-user-dropdown-button-container">
3
3
  <button
4
4
  type="button"
5
5
  class="vc-user-dropdown-button"
@@ -87,8 +87,12 @@ function handleClick() {
87
87
  --user-dropdown-wrap-padding-left: 18px;
88
88
  }
89
89
 
90
+ .vc-user-dropdown-button-container {
91
+ @apply tw-flex tw-flex-col;
92
+ }
93
+
90
94
  .vc-user-dropdown-button {
91
- @apply tw-w-full tw-cursor-pointer tw-relative tw-flex tw-h-[var(--user-dropdown-height)] tw-flex-col tw-select-none tw-overflow-hidden tw-border-solid tw-border-t tw-border-t-[var(--user-dropdown-border-color)];
95
+ @apply tw-w-full tw-cursor-pointer tw-relative tw-flex tw-h-[var(--user-dropdown-height)] tw-flex-col tw-select-none tw-overflow-hidden tw-border-solid tw-border-t tw-border-t-[var(--user-dropdown-border-color)] tw-pl-[var(--user-dropdown-wrap-padding-left)];
92
96
 
93
97
  &:hover {
94
98
  .vc-user-dropdown-button__trigger {
@@ -108,7 +112,7 @@ function handleClick() {
108
112
  }
109
113
 
110
114
  &__wrap {
111
- @apply tw-flex tw-justify-between tw-items-center tw-flex-auto tw-pl-[var(--user-dropdown-wrap-padding-left)] tw-bg-[--user-dropdown-wrap-bg] tw-gap-3;
115
+ @apply tw-flex tw-justify-between tw-items-center tw-flex-auto tw-bg-[--user-dropdown-wrap-bg] tw-gap-3;
112
116
  }
113
117
 
114
118
  &--collapsed {
@@ -13,7 +13,6 @@ export * from "./vc-progress";
13
13
  export * from "./vc-row";
14
14
  export * from "./vc-status";
15
15
  export * from "./vc-status-icon";
16
- export * from "./vc-switch";
17
16
  export * from "./vc-video";
18
17
  export * from "./vc-widget";
19
18
  export * from "./vc-tooltip";
@@ -15,3 +15,4 @@ export * from "./vc-field";
15
15
  export * from "./vc-radio-button";
16
16
  export * from "./vc-checkbox";
17
17
  export * from "./vc-input-dropdown";
18
+ export * from "./vc-switch";
@@ -256,18 +256,9 @@
256
256
  ref="root"
257
257
  :no-padding="true"
258
258
  >
259
- <div v-if="listLoading"></div>
260
- <div
261
- v-else-if="!(optionsList && optionsList.length)"
262
- class="vc-select__no-options"
263
- >
264
- <slot name="no-options">
265
- <span class="vc-select__no-options-text">No options</span>
266
- </slot>
267
- </div>
259
+ <!-- Render existing options -->
268
260
  <div
269
261
  v-for="(item, i) in optionScope"
270
- v-else
271
262
  :key="i"
272
263
  class="vc-select__option"
273
264
  data-test-id="option"
@@ -284,9 +275,41 @@
284
275
  >{{ item.label }}</slot
285
276
  >
286
277
  </div>
278
+
279
+ <!-- Loading Indicator (Initial or More) -->
280
+ <div
281
+ v-if="listLoading"
282
+ class="vc-select__list-loading-indicator"
283
+ >
284
+ <VcIcon
285
+ icon="lucide-loader"
286
+ class="tw-animate-spin"
287
+ size="m"
288
+ />
289
+ <span>
290
+ {{
291
+ optionsList.length > 0
292
+ ? t("COMPONENTS.MOLECULES.VC_SELECT.LOADING_MORE")
293
+ : t("COMPONENTS.MOLECULES.VC_SELECT.LOADING")
294
+ }}
295
+ </span>
296
+ </div>
297
+
298
+ <!-- Show "No options" message -->
299
+ <div
300
+ v-if="!listLoading && !(optionsList && optionsList.length)"
301
+ class="vc-select__no-options"
302
+ >
303
+ <slot name="no-options">
304
+ <span class="vc-select__no-options-text">{{ t("COMPONENTS.MOLECULES.VC_SELECT.NO_OPTIONS") }}</span>
305
+ </slot>
306
+ </div>
307
+
308
+ <!-- Intersection observer target for loading more -->
287
309
  <span
288
- v-if="hasNextPage"
310
+ v-if="hasNextPage && !listLoading"
289
311
  ref="el"
312
+ class="vc-select__load-more-trigger"
290
313
  ></span>
291
314
  </VcContainer>
292
315
  </div>
@@ -315,7 +338,7 @@ import { VcLabel, VcContainer, VcHint, VcIcon } from "./../../";
315
338
  import { useI18n } from "vue-i18n";
316
339
  import { useKeyboardNavigation } from "../../../../core/composables/useKeyboardNavigation";
317
340
 
318
- export type OptionProp<T> = ((option: T) => string) | string | undefined;
341
+ type OptionProp<T> = ((option: T) => string) | string | undefined;
319
342
  type MaybeArray<T> = T | T[];
320
343
  type FloatingInstanceType = UseFloatingReturn & {
321
344
  middlewareData: {
@@ -327,7 +350,7 @@ type FloatingInstanceType = UseFloatingReturn & {
327
350
  };
328
351
  };
329
352
  };
330
- type ArrayElementType<T> = T extends Array<infer U> ? U : never;
353
+ type ArrayElementType<U> = U extends Array<infer V> ? V : never;
331
354
  type Option = T & ArrayElementType<Required<P>["results"]>;
332
355
 
333
356
  defineSlots<{
@@ -1225,6 +1248,18 @@ const keyboardNavigation = useKeyboardNavigation({
1225
1248
  }
1226
1249
  }
1227
1250
 
1251
+ &__list-loading-indicator {
1252
+ @apply tw-flex tw-items-center tw-justify-center tw-p-2 tw-text-sm tw-text-[color:var(--select-text-color)];
1253
+
1254
+ span {
1255
+ @apply tw-mr-2;
1256
+ }
1257
+ }
1258
+
1259
+ &__load-more-trigger {
1260
+ @apply tw-block tw-h-[1px]; /* Ensures it's in layout flow for intersection observer */
1261
+ }
1262
+
1228
1263
  &.vc-select_opened &__chevron {
1229
1264
  @apply tw-rotate-180;
1230
1265
  }
@@ -9,7 +9,7 @@ import VcHint from "../../atoms/vc-hint/vc-hint.vue";
9
9
  * and other binary choices in forms and configuration interfaces.
10
10
  */
11
11
  const meta = {
12
- title: "Atoms/VcSwitch",
12
+ title: "Molecules/VcSwitch",
13
13
  component: VcSwitch,
14
14
  tags: ["autodocs"],
15
15
  argTypes: {
@@ -57,7 +57,7 @@ const blade = inject<ComputedRef<IBladeInstance>>(
57
57
  })),
58
58
  );
59
59
 
60
- const bladeId = computed(() => blade.value?.id ?? FALLBACK_BLADE_ID);
60
+ const bladeId = computed(() => (blade.value?.id ?? FALLBACK_BLADE_ID).toLowerCase());
61
61
 
62
62
  const isMobile = inject<ComputedRef<boolean>>(
63
63
  "isMobile",
@@ -50,9 +50,11 @@ import { VcIcon, ChevronDownIcon } from "../../../../..";
50
50
 
51
51
  interface Props {
52
52
  widgets: IWidget[];
53
+ bladeId: string;
53
54
  }
54
55
 
55
56
  const props = defineProps<Props>();
57
+ const normalizedBladeId = computed(() => props.bladeId?.toLowerCase() || "");
56
58
  const showToolbar = ref(false);
57
59
 
58
60
  const displayedItems = computed(() => props.widgets.slice(0, 3));
@@ -66,6 +66,7 @@ interface Props {
66
66
  }
67
67
 
68
68
  const props = defineProps<Props>();
69
+ const normalizedBladeId = computed(() => props.bladeId.toLowerCase());
69
70
  const containerRef = ref<HTMLElement | null>(null);
70
71
  const showToolbar = ref(false);
71
72
  const bladeInstance = inject<IBladeInstance>(BladeInstance);
@@ -3,12 +3,12 @@
3
3
  <WidgetContainerMobile
4
4
  v-if="$isMobile.value"
5
5
  :widgets="visibleWidgets"
6
- :blade-id="bladeId"
6
+ :blade-id="normalizedBladeId"
7
7
  />
8
8
  <WidgetContainerDesktop
9
9
  v-else
10
10
  :widgets="visibleWidgets"
11
- :blade-id="bladeId"
11
+ :blade-id="normalizedBladeId"
12
12
  />
13
13
  </template>
14
14
  </template>
@@ -25,8 +25,9 @@ interface Props {
25
25
  }
26
26
 
27
27
  const props = defineProps<Props>();
28
+ const normalizedBladeId = computed(() => props.bladeId.toLowerCase());
28
29
  const widgetService = useWidgets();
29
- const widgets = computed(() => widgetService.getWidgets(props.bladeId));
30
+ const widgets = computed(() => widgetService.getWidgets(normalizedBladeId.value));
30
31
  const bladeInstance = inject<IBladeInstance>(BladeInstance);
31
32
 
32
33
  const visibleWidgets = computed(() =>
@@ -243,8 +243,6 @@ const { open } = usePopup({
243
243
  }),
244
244
  },
245
245
  });
246
-
247
- console.log(getCurrentInstance());
248
246
  </script>
249
247
 
250
248
  <style lang="scss">
@@ -1,76 +0,0 @@
1
- var l = {
2
- "+": ["conjugate", "add"],
3
- "−": ["negate", "subtract"],
4
- "×": ["signOf", "multiply"],
5
- "÷": ["reciprocal", "divide"],
6
- "⌈": ["ceiling", "greaterOf"],
7
- "⌊": ["floor", "lesserOf"],
8
- "∣": ["absolute", "residue"],
9
- "⍳": ["indexGenerate", "indexOf"],
10
- "?": ["roll", "deal"],
11
- "⋆": ["exponentiate", "toThePowerOf"],
12
- "⍟": ["naturalLog", "logToTheBase"],
13
- "○": ["piTimes", "circularFuncs"],
14
- "!": ["factorial", "binomial"],
15
- "⌹": ["matrixInverse", "matrixDivide"],
16
- "<": [null, "lessThan"],
17
- "≤": [null, "lessThanOrEqual"],
18
- "=": [null, "equals"],
19
- ">": [null, "greaterThan"],
20
- "≥": [null, "greaterThanOrEqual"],
21
- "≠": [null, "notEqual"],
22
- "≡": ["depth", "match"],
23
- "≢": [null, "notMatch"],
24
- "∈": ["enlist", "membership"],
25
- "⍷": [null, "find"],
26
- "∪": ["unique", "union"],
27
- "∩": [null, "intersection"],
28
- "∼": ["not", "without"],
29
- "∨": [null, "or"],
30
- "∧": [null, "and"],
31
- "⍱": [null, "nor"],
32
- "⍲": [null, "nand"],
33
- "⍴": ["shapeOf", "reshape"],
34
- ",": ["ravel", "catenate"],
35
- "⍪": [null, "firstAxisCatenate"],
36
- "⌽": ["reverse", "rotate"],
37
- "⊖": ["axis1Reverse", "axis1Rotate"],
38
- "⍉": ["transpose", null],
39
- "↑": ["first", "take"],
40
- "↓": [null, "drop"],
41
- "⊂": ["enclose", "partitionWithAxis"],
42
- "⊃": ["diclose", "pick"],
43
- "⌷": [null, "index"],
44
- "⍋": ["gradeUp", null],
45
- "⍒": ["gradeDown", null],
46
- "⊤": ["encode", null],
47
- "⊥": ["decode", null],
48
- "⍕": ["format", "formatByExample"],
49
- "⍎": ["execute", null],
50
- "⊣": ["stop", "left"],
51
- "⊢": ["pass", "right"]
52
- }, t = /[\.\/⌿⍀¨⍣]/, a = /⍬/, i = /[\+−×÷⌈⌊∣⍳\?⋆⍟○!⌹<≤=>≥≠≡≢∈⍷∪∩∼∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢]/, u = /←/, o = /[⍝#].*$/, s = function(r) {
53
- var n;
54
- return n = !1, function(e) {
55
- return n = e, e === r ? n === "\\" : !0;
56
- };
57
- };
58
- const f = {
59
- name: "apl",
60
- startState: function() {
61
- return {
62
- prev: !1,
63
- func: !1,
64
- op: !1,
65
- string: !1,
66
- escape: !1
67
- };
68
- },
69
- token: function(r, n) {
70
- var e;
71
- return r.eatSpace() ? null : (e = r.next(), e === '"' || e === "'" ? (r.eatWhile(s(e)), r.next(), n.prev = !0, "string") : /[\[{\(]/.test(e) ? (n.prev = !1, null) : /[\]}\)]/.test(e) ? (n.prev = !0, null) : a.test(e) ? (n.prev = !1, "atom") : /[¯\d]/.test(e) ? (n.func ? (n.func = !1, n.prev = !1) : n.prev = !0, r.eatWhile(/[\w\.]/), "number") : t.test(e) || u.test(e) ? "operator" : i.test(e) ? (n.func = !0, n.prev = !1, l[e] ? "variableName.function.standard" : "variableName.function") : o.test(e) ? (r.skipToEnd(), "comment") : e === "∘" && r.peek() === "." ? (r.next(), "variableName.function") : (r.eatWhile(/[\w\$_]/), n.prev = !0, "keyword"));
72
- }
73
- };
74
- export {
75
- f as apl
76
- };
@@ -1,34 +0,0 @@
1
- function t(e) {
2
- var r = e.match(/^\s*\S/);
3
- return e.skipToEnd(), r ? "error" : null;
4
- }
5
- const i = {
6
- name: "asciiarmor",
7
- token: function(e, r) {
8
- var n;
9
- if (r.state == "top")
10
- return e.sol() && (n = e.match(/^-----BEGIN (.*)?-----\s*$/)) ? (r.state = "headers", r.type = n[1], "tag") : t(e);
11
- if (r.state == "headers") {
12
- if (e.sol() && e.match(/^\w+:/))
13
- return r.state = "header", "atom";
14
- var o = t(e);
15
- return o && (r.state = "body"), o;
16
- } else {
17
- if (r.state == "header")
18
- return e.skipToEnd(), r.state = "headers", "string";
19
- if (r.state == "body")
20
- return e.sol() && (n = e.match(/^-----END (.*)?-----\s*$/)) ? n[1] != r.type ? "error" : (r.state = "end", "tag") : e.eatWhile(/[A-Za-z0-9+\/=]/) ? null : (e.next(), "error");
21
- if (r.state == "end")
22
- return t(e);
23
- }
24
- },
25
- blankLine: function(e) {
26
- e.state == "headers" && (e.state = "body");
27
- },
28
- startState: function() {
29
- return { state: "top", type: null };
30
- }
31
- };
32
- export {
33
- i as asciiArmor
34
- };
@@ -1,95 +0,0 @@
1
- function u(i) {
2
- for (var s = {}, c = i.split(" "), T = 0; T < c.length; ++T) s[c[T]] = !0;
3
- return s;
4
- }
5
- const o = {
6
- keywords: u("DEFINITIONS OBJECTS IF DERIVED INFORMATION ACTION REPLY ANY NAMED CHARACTERIZED BEHAVIOUR REGISTERED WITH AS IDENTIFIED CONSTRAINED BY PRESENT BEGIN IMPORTS FROM UNITS SYNTAX MIN-ACCESS MAX-ACCESS MINACCESS MAXACCESS REVISION STATUS DESCRIPTION SEQUENCE SET COMPONENTS OF CHOICE DistinguishedName ENUMERATED SIZE MODULE END INDEX AUGMENTS EXTENSIBILITY IMPLIED EXPORTS"),
7
- cmipVerbs: u("ACTIONS ADD GET NOTIFICATIONS REPLACE REMOVE"),
8
- compareTypes: u("OPTIONAL DEFAULT MANAGED MODULE-TYPE MODULE_IDENTITY MODULE-COMPLIANCE OBJECT-TYPE OBJECT-IDENTITY OBJECT-COMPLIANCE MODE CONFIRMED CONDITIONAL SUBORDINATE SUPERIOR CLASS TRUE FALSE NULL TEXTUAL-CONVENTION"),
9
- status: u("current deprecated mandatory obsolete"),
10
- tags: u("APPLICATION AUTOMATIC EXPLICIT IMPLICIT PRIVATE TAGS UNIVERSAL"),
11
- storage: u("BOOLEAN INTEGER OBJECT IDENTIFIER BIT OCTET STRING UTCTime InterfaceIndex IANAifType CMIP-Attribute REAL PACKAGE PACKAGES IpAddress PhysAddress NetworkAddress BITS BMPString TimeStamp TimeTicks TruthValue RowStatus DisplayString GeneralString GraphicString IA5String NumericString PrintableString SnmpAdminString TeletexString UTF8String VideotexString VisibleString StringStore ISO646String T61String UniversalString Unsigned32 Integer32 Gauge Gauge32 Counter Counter32 Counter64"),
12
- modifier: u("ATTRIBUTE ATTRIBUTES MANDATORY-GROUP MANDATORY-GROUPS GROUP GROUPS ELEMENTS EQUALITY ORDERING SUBSTRINGS DEFINED"),
13
- accessTypes: u("not-accessible accessible-for-notify read-only read-create read-write"),
14
- multiLineStrings: !0
15
- };
16
- function g(i) {
17
- var s = i.keywords || o.keywords, c = i.cmipVerbs || o.cmipVerbs, T = i.compareTypes || o.compareTypes, N = i.status || o.status, d = i.tags || o.tags, f = i.storage || o.storage, m = i.modifier || o.modifier, C = i.accessTypes || o.accessTypes;
18
- i.multiLineStrings || o.multiLineStrings;
19
- var R = i.indentStatements !== !1, A = /[\|\^]/, E;
20
- function y(e, n) {
21
- var t = e.next();
22
- if (t == '"' || t == "'")
23
- return n.tokenize = D(t), n.tokenize(e, n);
24
- if (/[\[\]\(\){}:=,;]/.test(t))
25
- return E = t, "punctuation";
26
- if (t == "-" && e.eat("-"))
27
- return e.skipToEnd(), "comment";
28
- if (/\d/.test(t))
29
- return e.eatWhile(/[\w\.]/), "number";
30
- if (A.test(t))
31
- return e.eatWhile(A), "operator";
32
- e.eatWhile(/[\w\-]/);
33
- var r = e.current();
34
- return s.propertyIsEnumerable(r) ? "keyword" : c.propertyIsEnumerable(r) ? "variableName" : T.propertyIsEnumerable(r) ? "atom" : N.propertyIsEnumerable(r) ? "comment" : d.propertyIsEnumerable(r) ? "typeName" : f.propertyIsEnumerable(r) || m.propertyIsEnumerable(r) || C.propertyIsEnumerable(r) ? "modifier" : "variableName";
35
- }
36
- function D(e) {
37
- return function(n, t) {
38
- for (var r = !1, S, O = !1; (S = n.next()) != null; ) {
39
- if (S == e && !r) {
40
- var I = n.peek();
41
- I && (I = I.toLowerCase(), (I == "b" || I == "h" || I == "o") && n.next()), O = !0;
42
- break;
43
- }
44
- r = !r && S == "\\";
45
- }
46
- return O && (t.tokenize = null), "string";
47
- };
48
- }
49
- function p(e, n, t, r, S) {
50
- this.indented = e, this.column = n, this.type = t, this.align = r, this.prev = S;
51
- }
52
- function a(e, n, t) {
53
- var r = e.indented;
54
- return e.context && e.context.type == "statement" && (r = e.context.indented), e.context = new p(r, n, t, null, e.context);
55
- }
56
- function l(e) {
57
- var n = e.context.type;
58
- return (n == ")" || n == "]" || n == "}") && (e.indented = e.context.indented), e.context = e.context.prev;
59
- }
60
- return {
61
- name: "asn1",
62
- startState: function() {
63
- return {
64
- tokenize: null,
65
- context: new p(-2, 0, "top", !1),
66
- indented: 0,
67
- startOfLine: !0
68
- };
69
- },
70
- token: function(e, n) {
71
- var t = n.context;
72
- if (e.sol() && (t.align == null && (t.align = !1), n.indented = e.indentation(), n.startOfLine = !0), e.eatSpace()) return null;
73
- E = null;
74
- var r = (n.tokenize || y)(e, n);
75
- if (r == "comment") return r;
76
- if (t.align == null && (t.align = !0), (E == ";" || E == ":" || E == ",") && t.type == "statement")
77
- l(n);
78
- else if (E == "{") a(n, e.column(), "}");
79
- else if (E == "[") a(n, e.column(), "]");
80
- else if (E == "(") a(n, e.column(), ")");
81
- else if (E == "}") {
82
- for (; t.type == "statement"; ) t = l(n);
83
- for (t.type == "}" && (t = l(n)); t.type == "statement"; ) t = l(n);
84
- } else E == t.type ? l(n) : R && ((t.type == "}" || t.type == "top") && E != ";" || t.type == "statement" && E == "newstatement") && a(n, e.column(), "statement");
85
- return n.startOfLine = !1, r;
86
- },
87
- languageData: {
88
- indentOnInput: /^\s*[{}]$/,
89
- commentTokens: { line: "--" }
90
- }
91
- };
92
- }
93
- export {
94
- g as asn1
95
- };