@umbraco-cms/backoffice 14.0.0-d87d656d → 14.0.0-d9a74398

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 (577) hide show
  1. package/README.md +12 -6
  2. package/dist-cms/apps/app/app.element.d.ts +0 -1
  3. package/dist-cms/apps/app/app.element.js +21 -1
  4. package/dist-cms/apps/backoffice/backoffice.context.d.ts +5 -1
  5. package/dist-cms/apps/backoffice/backoffice.context.js +13 -5
  6. package/dist-cms/apps/backoffice/backoffice.element.d.ts +0 -1
  7. package/dist-cms/apps/backoffice/backoffice.element.js +4 -5
  8. package/dist-cms/apps/backoffice/components/backoffice-header-sections.element.d.ts +0 -2
  9. package/dist-cms/apps/backoffice/components/backoffice-header-sections.element.js +6 -13
  10. package/dist-cms/apps/backoffice/components/backoffice-main.element.js +11 -9
  11. package/dist-cms/apps/backoffice/{extension.controller.js → extension-initializer.controller.js} +2 -0
  12. package/dist-cms/assets/lang/da-dk.d.ts +3 -0
  13. package/dist-cms/assets/lang/da-dk.js +2989 -0
  14. package/dist-cms/assets/lang/da-dk.ts +3246 -0
  15. package/dist-cms/assets/lang/en-us.d.ts +3 -0
  16. package/dist-cms/assets/lang/en-us.js +2966 -0
  17. package/dist-cms/assets/lang/en-us.ts +3219 -0
  18. package/dist-cms/css/uui-css.css +13 -5
  19. package/dist-cms/custom-elements.json +115 -68
  20. package/dist-cms/external/backend-api/index.js +1 -1
  21. package/dist-cms/external/lit/index.js +27 -27
  22. package/dist-cms/external/monaco-editor/{abap-7ad4f8f0.js → abap-b029dff1.js} +1 -1
  23. package/dist-cms/external/monaco-editor/{apex-30597c49.js → apex-039bfc5f.js} +1 -1
  24. package/dist-cms/external/monaco-editor/assets/{bundle-a4f90d1d.css → bundle-b9e43664.css} +25 -13
  25. package/dist-cms/external/monaco-editor/{azcli-67c34a04.js → azcli-f1f7c576.js} +1 -1
  26. package/dist-cms/external/monaco-editor/{bat-b8f4738b.js → bat-86aea46a.js} +1 -1
  27. package/dist-cms/external/monaco-editor/{bicep-b104b38b.js → bicep-75c0c4d5.js} +1 -1
  28. package/dist-cms/external/monaco-editor/{cameligo-001d1ded.js → cameligo-8043f913.js} +1 -1
  29. package/dist-cms/external/monaco-editor/{clojure-fa9652a1.js → clojure-73642b02.js} +1 -1
  30. package/dist-cms/external/monaco-editor/{coffee-b69a8315.js → coffee-a18badcf.js} +1 -1
  31. package/dist-cms/external/monaco-editor/{cpp-8053752f.js → cpp-4034161e.js} +1 -1
  32. package/dist-cms/external/monaco-editor/{csharp-886041a3.js → csharp-49cbf0d2.js} +1 -1
  33. package/dist-cms/external/monaco-editor/{csp-e846bce6.js → csp-d207cac4.js} +1 -1
  34. package/dist-cms/external/monaco-editor/{css-50032e5e.js → css-74326df0.js} +1 -1
  35. package/dist-cms/external/monaco-editor/{cssMode-c0406684.js → cssMode-57ec49ea.js} +2 -2
  36. package/dist-cms/external/monaco-editor/{cypher-6f93a845.js → cypher-49f5f839.js} +1 -1
  37. package/dist-cms/external/monaco-editor/{dart-14284236.js → dart-84b7c6b4.js} +1 -1
  38. package/dist-cms/external/monaco-editor/{dockerfile-e9935eb4.js → dockerfile-bbf114b2.js} +1 -1
  39. package/dist-cms/external/monaco-editor/{ecl-9c89f204.js → ecl-15840f49.js} +1 -1
  40. package/dist-cms/external/monaco-editor/{elixir-ca8bf661.js → elixir-e479e18e.js} +2 -2
  41. package/dist-cms/external/monaco-editor/{flow9-ac147227.js → flow9-42a61225.js} +1 -1
  42. package/dist-cms/external/monaco-editor/{freemarker2-793b7402.js → freemarker2-a72b9c0e.js} +2 -2
  43. package/dist-cms/external/monaco-editor/{fsharp-8eaad024.js → fsharp-8abe6da0.js} +1 -1
  44. package/dist-cms/external/monaco-editor/{go-05529e2e.js → go-8759e9f7.js} +1 -1
  45. package/dist-cms/external/monaco-editor/{graphql-8f5b3fdd.js → graphql-387d549c.js} +1 -1
  46. package/dist-cms/external/monaco-editor/{handlebars-aaa2fd96.js → handlebars-8fc61d07.js} +2 -2
  47. package/dist-cms/external/monaco-editor/{hcl-9e201a51.js → hcl-a88f331a.js} +1 -1
  48. package/dist-cms/external/monaco-editor/{html-1194c0aa.js → html-4320ed19.js} +2 -2
  49. package/dist-cms/external/monaco-editor/{htmlMode-36df69c6.js → htmlMode-95c2e58e.js} +2 -2
  50. package/dist-cms/external/monaco-editor/{index-7368f3e3.js → index-e4ee5993.js} +359 -354
  51. package/dist-cms/external/monaco-editor/index.js +1 -1
  52. package/dist-cms/external/monaco-editor/{ini-31a5619d.js → ini-18bf1153.js} +1 -1
  53. package/dist-cms/external/monaco-editor/{java-8c6e1ae8.js → java-000a6283.js} +1 -1
  54. package/dist-cms/external/monaco-editor/{javascript-86205709.js → javascript-13505434.js} +2 -2
  55. package/dist-cms/external/monaco-editor/{jsonMode-f663e935.js → jsonMode-1d541b8e.js} +2 -2
  56. package/dist-cms/external/monaco-editor/{julia-fbb2af47.js → julia-9a5df632.js} +1 -1
  57. package/dist-cms/external/monaco-editor/{kotlin-bfa96180.js → kotlin-06ee8898.js} +1 -1
  58. package/dist-cms/external/monaco-editor/{less-0b6a8ff1.js → less-dd86a68c.js} +1 -1
  59. package/dist-cms/external/monaco-editor/{lexon-585e5248.js → lexon-8d4b0444.js} +1 -1
  60. package/dist-cms/external/monaco-editor/{liquid-37adc07a.js → liquid-7aa20dd8.js} +2 -2
  61. package/dist-cms/external/monaco-editor/{lua-f6c17885.js → lua-9adddcd9.js} +1 -1
  62. package/dist-cms/external/monaco-editor/{m3-1b6456c5.js → m3-aa2dcf72.js} +1 -1
  63. package/dist-cms/external/monaco-editor/{markdown-7bc251f9.js → markdown-0f073a3a.js} +1 -1
  64. package/dist-cms/external/monaco-editor/mdx-8a1e4ae9.js +6 -0
  65. package/dist-cms/external/monaco-editor/{mips-2df76781.js → mips-bdd96c5a.js} +1 -1
  66. package/dist-cms/external/monaco-editor/{msdax-8c38e8b4.js → msdax-1ac55115.js} +1 -1
  67. package/dist-cms/external/monaco-editor/{mysql-abbb9ca3.js → mysql-b530c105.js} +1 -1
  68. package/dist-cms/external/monaco-editor/{objective-c-efbfd08b.js → objective-c-951ded7b.js} +1 -1
  69. package/dist-cms/external/monaco-editor/{pascal-08abee72.js → pascal-7442fd46.js} +1 -1
  70. package/dist-cms/external/monaco-editor/{pascaligo-200db0cf.js → pascaligo-385edc0e.js} +1 -1
  71. package/dist-cms/external/monaco-editor/{perl-079789ee.js → perl-d5fb326c.js} +1 -1
  72. package/dist-cms/external/monaco-editor/{pgsql-efd093d4.js → pgsql-2d7db25a.js} +1 -1
  73. package/dist-cms/external/monaco-editor/{php-75c530f2.js → php-1daff147.js} +1 -1
  74. package/dist-cms/external/monaco-editor/{pla-a55a2765.js → pla-1b3e1614.js} +1 -1
  75. package/dist-cms/external/monaco-editor/{postiats-6098f37b.js → postiats-9db13649.js} +1 -1
  76. package/dist-cms/external/monaco-editor/{powerquery-949bb7fe.js → powerquery-4c428232.js} +1 -1
  77. package/dist-cms/external/monaco-editor/{powershell-7e550b21.js → powershell-d3380668.js} +1 -1
  78. package/dist-cms/external/monaco-editor/{protobuf-25a4d695.js → protobuf-941cf3e8.js} +1 -1
  79. package/dist-cms/external/monaco-editor/{pug-f8c9f493.js → pug-cfe384ef.js} +1 -1
  80. package/dist-cms/external/monaco-editor/{python-78a47148.js → python-b84d078b.js} +2 -2
  81. package/dist-cms/external/monaco-editor/{qsharp-c4b94317.js → qsharp-e125d03f.js} +1 -1
  82. package/dist-cms/external/monaco-editor/{r-614353db.js → r-e0a01d4f.js} +1 -1
  83. package/dist-cms/external/monaco-editor/{razor-5de9ce12.js → razor-96e08c0a.js} +2 -2
  84. package/dist-cms/external/monaco-editor/{redis-fb089f4d.js → redis-d0a12fea.js} +1 -1
  85. package/dist-cms/external/monaco-editor/{redshift-a620fcb0.js → redshift-a163b94a.js} +1 -1
  86. package/dist-cms/external/monaco-editor/{restructuredtext-7ab09fcf.js → restructuredtext-5a906e1a.js} +1 -1
  87. package/dist-cms/external/monaco-editor/{ruby-922be722.js → ruby-05b021bf.js} +1 -1
  88. package/dist-cms/external/monaco-editor/{rust-23e08578.js → rust-3d80982c.js} +1 -1
  89. package/dist-cms/external/monaco-editor/{sb-ccceec0f.js → sb-2020a5af.js} +1 -1
  90. package/dist-cms/external/monaco-editor/{scala-0535664d.js → scala-54469b4b.js} +1 -1
  91. package/dist-cms/external/monaco-editor/{scheme-dba621eb.js → scheme-ff6e5671.js} +1 -1
  92. package/dist-cms/external/monaco-editor/{scss-28539a11.js → scss-77902feb.js} +1 -1
  93. package/dist-cms/external/monaco-editor/{shell-5b92a834.js → shell-3c06def6.js} +1 -1
  94. package/dist-cms/external/monaco-editor/{solidity-f63d6049.js → solidity-3d59d6a7.js} +1 -1
  95. package/dist-cms/external/monaco-editor/{sophia-12e9ad90.js → sophia-12eb7ba8.js} +1 -1
  96. package/dist-cms/external/monaco-editor/{sparql-dedb74aa.js → sparql-e42fb28a.js} +1 -1
  97. package/dist-cms/external/monaco-editor/{sql-975a69d7.js → sql-d30fd9fd.js} +1 -1
  98. package/dist-cms/external/monaco-editor/{st-1904ae33.js → st-ba2e774a.js} +2 -2
  99. package/dist-cms/external/monaco-editor/{swift-e180a143.js → swift-f0a706dd.js} +1 -1
  100. package/dist-cms/external/monaco-editor/{systemverilog-c5592fac.js → systemverilog-0cfd4211.js} +1 -1
  101. package/dist-cms/external/monaco-editor/{tcl-996f4ac7.js → tcl-7df3c0c5.js} +1 -1
  102. package/dist-cms/external/monaco-editor/{tsMode-f4618e87.js → tsMode-4e2b13b8.js} +2 -2
  103. package/dist-cms/external/monaco-editor/twig-f894aab2.js +6 -0
  104. package/dist-cms/external/monaco-editor/{typescript-efea739f.js → typescript-6571f86d.js} +2 -2
  105. package/dist-cms/external/monaco-editor/{vb-ad68fa9a.js → vb-39a025f4.js} +1 -1
  106. package/dist-cms/external/monaco-editor/{wgsl-5ee7b1ca.js → wgsl-ea93d538.js} +1 -1
  107. package/dist-cms/external/monaco-editor/{xml-12b9ace3.js → xml-265c28d1.js} +2 -2
  108. package/dist-cms/external/monaco-editor/{yaml-65e08cff.js → yaml-cbd1aab5.js} +2 -2
  109. package/dist-cms/external/rxjs/index.js +2 -2
  110. package/dist-cms/external/tinymce/index.js +22 -22
  111. package/dist-cms/external/uui/index.js +470 -292
  112. package/dist-cms/libs/class-api/class.mixin.js +1 -1
  113. package/dist-cms/libs/context-api/consume/context-consumer.controller.js +1 -3
  114. package/dist-cms/libs/context-api/consume/context-consumer.d.ts +0 -1
  115. package/dist-cms/libs/context-api/consume/context-consumer.js +36 -6
  116. package/dist-cms/libs/context-api/provide/context-provide.event.d.ts +21 -0
  117. package/dist-cms/libs/context-api/provide/context-provide.event.js +17 -0
  118. package/dist-cms/libs/context-api/provide/context-provider.controller.js +1 -1
  119. package/dist-cms/libs/context-api/provide/context-provider.d.ts +0 -6
  120. package/dist-cms/libs/context-api/provide/context-provider.js +18 -6
  121. package/dist-cms/libs/controller-api/controller-host-base.mixin.js +1 -0
  122. package/dist-cms/libs/controller-api/controller-host-element.mixin.d.ts +9 -3
  123. package/dist-cms/libs/element-api/element.mixin.d.ts +9 -2
  124. package/dist-cms/libs/element-api/element.mixin.js +6 -1
  125. package/dist-cms/libs/extension-api/condition/condition-controller-arguments.type.d.ts +7 -0
  126. package/dist-cms/libs/extension-api/condition/condition-controller-arguments.type.js +1 -0
  127. package/dist-cms/libs/extension-api/condition/extension-condition.interface.d.ts +6 -0
  128. package/dist-cms/libs/extension-api/condition/extension-condition.interface.js +1 -0
  129. package/dist-cms/libs/extension-api/condition/index.d.ts +2 -0
  130. package/dist-cms/libs/extension-api/condition/index.js +2 -0
  131. package/dist-cms/libs/extension-api/controller/base-extension-controller.d.ts +19 -0
  132. package/dist-cms/libs/extension-api/controller/base-extension-controller.js +178 -0
  133. package/dist-cms/libs/extension-api/controller/base-extensions-controller.d.ts +19 -0
  134. package/dist-cms/libs/extension-api/controller/base-extensions-controller.js +112 -0
  135. package/dist-cms/libs/extension-api/controller/extension-element-controller.d.ts +20 -0
  136. package/dist-cms/libs/extension-api/controller/extension-element-controller.js +82 -0
  137. package/dist-cms/libs/extension-api/controller/extension-manifest-controller.d.ts +9 -0
  138. package/dist-cms/libs/extension-api/controller/extension-manifest-controller.js +13 -0
  139. package/dist-cms/libs/extension-api/controller/extensions-element-controller.d.ts +13 -0
  140. package/dist-cms/libs/extension-api/controller/extensions-element-controller.js +29 -0
  141. package/dist-cms/libs/extension-api/controller/extensions-manifest-controller.d.ts +11 -0
  142. package/dist-cms/libs/extension-api/controller/extensions-manifest-controller.js +16 -0
  143. package/dist-cms/libs/extension-api/controller/index.d.ts +6 -0
  144. package/dist-cms/libs/extension-api/controller/index.js +6 -0
  145. package/dist-cms/libs/extension-api/index.d.ts +3 -1
  146. package/dist-cms/libs/extension-api/index.js +3 -1
  147. package/dist-cms/libs/extension-api/registry/extension.registry.d.ts +3 -0
  148. package/dist-cms/libs/extension-api/registry/extension.registry.js +82 -14
  149. package/dist-cms/libs/extension-api/types.d.ts +45 -8
  150. package/dist-cms/libs/localization-api/index.d.ts +3 -0
  151. package/dist-cms/libs/localization-api/index.js +3 -0
  152. package/dist-cms/libs/localization-api/localize.controller.d.ts +47 -0
  153. package/dist-cms/libs/localization-api/localize.controller.js +123 -0
  154. package/dist-cms/libs/localization-api/manager.d.ts +18 -0
  155. package/dist-cms/libs/localization-api/manager.js +40 -0
  156. package/dist-cms/libs/localization-api/types/translation.d.ts +3 -0
  157. package/dist-cms/libs/localization-api/types/translation.js +1 -0
  158. package/dist-cms/libs/observable-api/class-state.d.ts +2 -3
  159. package/dist-cms/libs/observable-api/observer.controller.d.ts +4 -3
  160. package/dist-cms/libs/observable-api/observer.controller.js +9 -2
  161. package/dist-cms/libs/observable-api/observer.d.ts +13 -2
  162. package/dist-cms/libs/observable-api/observer.js +32 -4
  163. package/dist-cms/mocks/data/data-type.data.js +1 -28
  164. package/dist-cms/mocks/data/document-type.data.js +2 -59
  165. package/dist-cms/mocks/data/log-viewer.data.d.ts +4 -4
  166. package/dist-cms/mocks/data/log-viewer.data.js +4 -4
  167. package/dist-cms/mocks/handlers/manifests.handlers.js +1 -1
  168. package/dist-cms/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.js +1 -1
  169. package/dist-cms/packages/core/components/extension-slot/extension-slot.element.d.ts +38 -14
  170. package/dist-cms/packages/core/components/extension-slot/extension-slot.element.js +81 -71
  171. package/dist-cms/packages/core/components/property-type-based-property/property-type-based-property.element.js +2 -2
  172. package/dist-cms/packages/core/content-type/content-type-structure-manager.class.js +2 -2
  173. package/dist-cms/packages/core/entity-action/entity-action-list.element.d.ts +5 -5
  174. package/dist-cms/packages/core/entity-action/entity-action-list.element.js +17 -21
  175. package/dist-cms/packages/core/extension-registry/conditions/index.d.ts +1 -0
  176. package/dist-cms/packages/core/extension-registry/conditions/index.js +4 -0
  177. package/dist-cms/packages/core/extension-registry/conditions/manifests.d.ts +1 -0
  178. package/dist-cms/packages/core/extension-registry/conditions/manifests.js +3 -0
  179. package/dist-cms/packages/core/extension-registry/conditions/menu-alias.condition.d.ts +12 -0
  180. package/dist-cms/packages/core/extension-registry/conditions/menu-alias.condition.js +23 -0
  181. package/dist-cms/packages/core/extension-registry/conditions/section-alias.condition.d.ts +18 -0
  182. package/dist-cms/packages/core/extension-registry/conditions/section-alias.condition.js +23 -0
  183. package/dist-cms/packages/core/extension-registry/conditions/switch.condition.d.ts +19 -0
  184. package/dist-cms/packages/core/extension-registry/conditions/switch.condition.js +38 -0
  185. package/dist-cms/packages/core/extension-registry/conditions/types.d.ts +5 -0
  186. package/dist-cms/packages/core/extension-registry/conditions/types.js +1 -0
  187. package/dist-cms/packages/core/extension-registry/index.d.ts +3 -2
  188. package/dist-cms/packages/core/extension-registry/index.js +3 -2
  189. package/dist-cms/packages/core/extension-registry/models/dashboard.model.d.ts +3 -16
  190. package/dist-cms/packages/core/extension-registry/models/dashboard.model.js +5 -0
  191. package/dist-cms/packages/core/extension-registry/models/entity-action.model.d.ts +2 -5
  192. package/dist-cms/packages/core/extension-registry/models/index.d.ts +4 -2
  193. package/dist-cms/packages/core/extension-registry/models/index.js +1 -0
  194. package/dist-cms/packages/core/extension-registry/models/menu-item.model.d.ts +1 -7
  195. package/dist-cms/packages/core/extension-registry/models/property-action.model.d.ts +5 -3
  196. package/dist-cms/packages/core/extension-registry/models/property-editor.model.d.ts +21 -2
  197. package/dist-cms/packages/core/extension-registry/models/section-sidebar-app.model.d.ts +3 -6
  198. package/dist-cms/packages/core/extension-registry/models/section-view.model.d.ts +3 -5
  199. package/dist-cms/packages/core/extension-registry/models/section.model.d.ts +2 -2
  200. package/dist-cms/packages/core/extension-registry/models/translations.model.d.ts +40 -0
  201. package/dist-cms/packages/core/extension-registry/models/translations.model.js +1 -0
  202. package/dist-cms/packages/core/extension-registry/models/tree-item.model.d.ts +2 -2
  203. package/dist-cms/packages/core/extension-registry/models/workspace-action.model.d.ts +4 -7
  204. package/dist-cms/packages/core/extension-registry/models/workspace-editor-view.model.d.ts +3 -6
  205. package/dist-cms/packages/core/extension-registry/models/workspace-view-collection.model.d.ts +3 -29
  206. package/dist-cms/packages/core/extension-registry/{class-extensions-initializer.d.ts → multi-extensions-class-initializer.d.ts} +2 -2
  207. package/dist-cms/packages/core/extension-registry/{class-extensions-initializer.js → multi-extensions-class-initializer.js} +10 -2
  208. package/dist-cms/packages/core/index.d.ts +1 -0
  209. package/dist-cms/packages/core/index.js +7 -2
  210. package/dist-cms/packages/core/localization/index.d.ts +2 -0
  211. package/dist-cms/packages/core/localization/index.js +2 -0
  212. package/dist-cms/packages/core/localization/localize.element.d.ts +34 -0
  213. package/dist-cms/packages/core/localization/localize.element.js +64 -0
  214. package/dist-cms/packages/core/localization/manifests.d.ts +2 -0
  215. package/dist-cms/packages/core/localization/manifests.js +23 -0
  216. package/dist-cms/packages/core/localization/registry/translation.registry.d.ts +17 -0
  217. package/dist-cms/packages/core/localization/registry/translation.registry.js +79 -0
  218. package/dist-cms/packages/core/menu/index.d.ts +1 -0
  219. package/dist-cms/packages/core/menu/index.js +1 -0
  220. package/dist-cms/packages/core/menu/menu.context.d.ts +9 -0
  221. package/dist-cms/packages/core/menu/menu.context.js +14 -0
  222. package/dist-cms/packages/core/menu/menu.element.d.ts +1 -0
  223. package/dist-cms/packages/core/menu/menu.element.js +6 -2
  224. package/dist-cms/packages/core/modal/common/folder/folder-modal.element.d.ts +2 -2
  225. package/dist-cms/packages/core/modal/common/property-settings/property-settings-modal.element.js +1 -0
  226. package/dist-cms/packages/core/modal/token/folder-modal.token.d.ts +2 -2
  227. package/dist-cms/packages/core/property-action/manifests.js +2 -2
  228. package/dist-cms/packages/core/property-action/shared/property-action-menu/property-action-menu.element.js +2 -1
  229. package/dist-cms/packages/core/property-editor/index.d.ts +1 -1
  230. package/dist-cms/packages/core/property-editor/index.js +1 -1
  231. package/dist-cms/packages/core/property-editor/manifests.d.ts +1 -1
  232. package/dist-cms/packages/core/property-editor/schemas/manifests.js +0 -2
  233. package/dist-cms/packages/core/property-editor/uis/icon-picker/manifests.js +1 -1
  234. package/dist-cms/packages/core/property-editor/uis/value-type/manifests.js +0 -1
  235. package/dist-cms/packages/core/section/index.d.ts +1 -1
  236. package/dist-cms/packages/core/section/index.js +1 -1
  237. package/dist-cms/packages/core/section/section-default.element.d.ts +1 -1
  238. package/dist-cms/packages/core/section/section-default.element.js +13 -21
  239. package/dist-cms/packages/core/section/section-main-views/index.d.ts +1 -0
  240. package/dist-cms/packages/core/section/section-main-views/index.js +1 -0
  241. package/dist-cms/packages/core/section/section-main-views/section-main-views.element.d.ts +19 -0
  242. package/dist-cms/packages/core/section/{section-views/section-views.element.js → section-main-views/section-main-views.element.js} +20 -48
  243. package/dist-cms/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.js +18 -5
  244. package/dist-cms/packages/core/section/section-sidebar-menu/section-sidebar-menu.element.js +3 -4
  245. package/dist-cms/packages/core/section/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.js +2 -2
  246. package/dist-cms/packages/core/sorter/sorter.controller.js +6 -6
  247. package/dist-cms/packages/core/sorter/stories/test-sorter-controller.element.d.ts +13 -0
  248. package/dist-cms/packages/core/sorter/stories/test-sorter-controller.element.js +92 -0
  249. package/dist-cms/packages/core/tree/tree-item/tree-item.context.interface.d.ts +0 -2
  250. package/dist-cms/packages/core/tree/tree-item/tree-item.element.js +1 -1
  251. package/dist-cms/packages/core/tree/tree-item-base/tree-item-base.context.d.ts +3 -4
  252. package/dist-cms/packages/core/tree/tree-item-base/tree-item-base.context.js +26 -30
  253. package/dist-cms/packages/core/workspace/index.d.ts +1 -0
  254. package/dist-cms/packages/core/workspace/index.js +1 -0
  255. package/dist-cms/packages/core/workspace/manifests.d.ts +1 -1
  256. package/dist-cms/packages/core/workspace/manifests.js +2 -1
  257. package/dist-cms/packages/core/workspace/workspace-action/workspace-action-base.js +2 -2
  258. package/dist-cms/packages/core/workspace/workspace-action-menu/workspace-action-menu.element.js +8 -4
  259. package/dist-cms/packages/core/workspace/workspace-alias.condition.d.ts +18 -0
  260. package/dist-cms/packages/core/workspace/workspace-alias.condition.js +21 -0
  261. package/dist-cms/packages/core/workspace/workspace-content/views/collection/workspace-view-collection.element.js +2 -2
  262. package/dist-cms/packages/core/workspace/workspace-context/index.d.ts +1 -1
  263. package/dist-cms/packages/core/workspace/workspace-context/index.js +1 -1
  264. package/dist-cms/packages/core/workspace/workspace-context/workspace-context.d.ts +2 -1
  265. package/dist-cms/packages/core/workspace/workspace-context/workspace-context.interface.d.ts +2 -2
  266. package/dist-cms/packages/core/workspace/workspace-context/workspace-context.js +4 -3
  267. package/dist-cms/packages/core/workspace/workspace-context/workspace-context.token.d.ts +4 -0
  268. package/dist-cms/packages/core/workspace/workspace-context/workspace-context.token.js +2 -0
  269. package/dist-cms/packages/core/workspace/workspace-context/workspace-entity-context.interface.d.ts +0 -1
  270. package/dist-cms/packages/core/workspace/workspace-editor/workspace-editor.element.d.ts +4 -8
  271. package/dist-cms/packages/core/workspace/workspace-editor/workspace-editor.element.js +11 -39
  272. package/dist-cms/packages/core/workspace/workspace-footer/workspace-footer.element.d.ts +0 -10
  273. package/dist-cms/packages/core/workspace/workspace-footer/workspace-footer.element.js +1 -23
  274. package/dist-cms/packages/core/workspace/workspace-property/workspace-property.context.js +2 -2
  275. package/dist-cms/packages/core/workspace/workspace-property/workspace-property.element.js +4 -0
  276. package/dist-cms/packages/core/workspace/workspace-variant/workspace-variant.context.js +2 -2
  277. package/dist-cms/packages/dictionary/dashboards/dictionary/dashboard-translation-dictionary.element.js +2 -2
  278. package/dist-cms/packages/dictionary/dictionary/entity-actions/create/create.action.js +1 -1
  279. package/dist-cms/packages/dictionary/dictionary/entity-actions/export/export.action.d.ts +0 -1
  280. package/dist-cms/packages/dictionary/dictionary/entity-actions/export/export.action.js +0 -1
  281. package/dist-cms/packages/dictionary/dictionary/entity-actions/import/import.action.d.ts +0 -1
  282. package/dist-cms/packages/dictionary/dictionary/entity-actions/import/import.action.js +0 -1
  283. package/dist-cms/packages/dictionary/dictionary/entity-actions/manifests.d.ts +1 -1
  284. package/dist-cms/packages/dictionary/dictionary/entity-actions/manifests.js +0 -12
  285. package/dist-cms/packages/dictionary/dictionary/manifests.d.ts +1 -1
  286. package/dist-cms/packages/dictionary/dictionary/menu-item/manifests.js +0 -2
  287. package/dist-cms/packages/dictionary/dictionary/tree/manifests.js +1 -1
  288. package/dist-cms/packages/dictionary/dictionary/workspace/dictionary-workspace-editor.element.js +3 -3
  289. package/dist-cms/packages/dictionary/dictionary/workspace/dictionary-workspace.context.js +1 -1
  290. package/dist-cms/packages/dictionary/dictionary/workspace/manifests.js +13 -8
  291. package/dist-cms/packages/dictionary/dictionary/workspace/views/editor/workspace-view-dictionary-editor.element.js +2 -2
  292. package/dist-cms/packages/dictionary/manifests.d.ts +1 -1
  293. package/dist-cms/packages/dictionary/section.manifest.d.ts +1 -1
  294. package/dist-cms/packages/dictionary/section.manifest.js +12 -6
  295. package/dist-cms/packages/documents/dashboards/manifests.js +6 -3
  296. package/dist-cms/packages/documents/document-blueprints/menu-item/manifests.js +0 -2
  297. package/dist-cms/packages/documents/document-types/entity-actions/create/manifests.js +0 -2
  298. package/dist-cms/packages/documents/document-types/entity-actions/manifests.js +0 -8
  299. package/dist-cms/packages/documents/document-types/menu-item/manifests.js +0 -2
  300. package/dist-cms/packages/documents/document-types/tree/manifests.js +1 -1
  301. package/dist-cms/packages/documents/document-types/workspace/document-type-workspace-editor.element.js +7 -6
  302. package/dist-cms/packages/documents/document-types/workspace/document-type-workspace.context.js +1 -1
  303. package/dist-cms/packages/documents/document-types/workspace/manifests.js +30 -15
  304. package/dist-cms/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-properties.element.js +9 -7
  305. package/dist-cms/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-property.element.js +10 -5
  306. package/dist-cms/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-tab.element.js +12 -6
  307. package/dist-cms/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.d.ts +3 -0
  308. package/dist-cms/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.js +143 -45
  309. package/dist-cms/packages/documents/document-types/workspace/views/settings/document-type-workspace-view-settings.element.js +2 -2
  310. package/dist-cms/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.js +6 -6
  311. package/dist-cms/packages/documents/document-types/workspace/views/templates/document-type-workspace-view-templates.element.js +2 -2
  312. package/dist-cms/packages/documents/documents/entity-actions/manifests.d.ts +1 -1
  313. package/dist-cms/packages/documents/documents/entity-actions/manifests.js +0 -24
  314. package/dist-cms/packages/documents/documents/menu-item/manifests.js +0 -2
  315. package/dist-cms/packages/documents/documents/tree/manifests.js +1 -1
  316. package/dist-cms/packages/documents/documents/tree/tree-item/document-tree-item.context.d.ts +3 -3
  317. package/dist-cms/packages/documents/documents/workspace/document-workspace-editor.element.js +2 -2
  318. package/dist-cms/packages/documents/documents/workspace/document-workspace-split-view.element.js +2 -2
  319. package/dist-cms/packages/documents/documents/workspace/document-workspace.context.js +1 -1
  320. package/dist-cms/packages/documents/documents/workspace/manifests.js +36 -21
  321. package/dist-cms/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-properties.element.js +2 -2
  322. package/dist-cms/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-tab.element.js +2 -2
  323. package/dist-cms/packages/documents/documents/workspace/views/edit/document-workspace-view-edit.element.js +3 -3
  324. package/dist-cms/packages/documents/documents/workspace/views/info/document-info-workspace-view.element.js +2 -2
  325. package/dist-cms/packages/documents/section.manifests.js +6 -3
  326. package/dist-cms/packages/media/manifests.d.ts +1 -1
  327. package/dist-cms/packages/media/media/entity-actions/manifests.js +0 -2
  328. package/dist-cms/packages/media/media/manifests.d.ts +1 -1
  329. package/dist-cms/packages/media/media/menu-item/manifests.js +0 -2
  330. package/dist-cms/packages/media/media/tree/manifests.js +1 -1
  331. package/dist-cms/packages/media/media/workspace/manifests.js +24 -12
  332. package/dist-cms/packages/media/media/workspace/media-workspace-editor.element.js +2 -2
  333. package/dist-cms/packages/media/media/workspace/media-workspace.context.js +1 -1
  334. package/dist-cms/packages/media/media/workspace/media-workspace.element.d.ts +1 -0
  335. package/dist-cms/packages/media/media/workspace/media-workspace.element.js +1 -0
  336. package/dist-cms/packages/media/media-types/entity-actions/manifests.js +0 -10
  337. package/dist-cms/packages/media/media-types/manifests.d.ts +1 -1
  338. package/dist-cms/packages/media/media-types/menu-item/manifests.js +0 -2
  339. package/dist-cms/packages/media/media-types/tree/manifests.js +1 -1
  340. package/dist-cms/packages/media/media-types/workspace/media-type-workspace-editor.element.js +2 -2
  341. package/dist-cms/packages/media/media-types/workspace/media-type-workspace.context.js +1 -1
  342. package/dist-cms/packages/media/section.manifests.d.ts +1 -1
  343. package/dist-cms/packages/media/section.manifests.js +7 -3
  344. package/dist-cms/packages/members/manifests.d.ts +1 -1
  345. package/dist-cms/packages/members/member-groups/entity-actions/manifests.js +0 -2
  346. package/dist-cms/packages/members/member-groups/manifests.d.ts +1 -1
  347. package/dist-cms/packages/members/member-groups/menu-item/manifests.js +0 -2
  348. package/dist-cms/packages/members/member-groups/tree/manifests.js +1 -1
  349. package/dist-cms/packages/members/member-groups/workspace/manifests.js +12 -6
  350. package/dist-cms/packages/members/member-groups/workspace/member-group-workspace-editor.element.js +2 -2
  351. package/dist-cms/packages/members/member-groups/workspace/member-group-workspace.context.js +1 -1
  352. package/dist-cms/packages/members/member-groups/workspace/views/info/workspace-view-member-group-info.element.js +2 -2
  353. package/dist-cms/packages/members/member-types/entity-actions/manifests.js +0 -2
  354. package/dist-cms/packages/members/member-types/manifests.d.ts +1 -1
  355. package/dist-cms/packages/members/member-types/menu-item/manifests.js +0 -2
  356. package/dist-cms/packages/members/member-types/tree/manifests.js +1 -1
  357. package/dist-cms/packages/members/member-types/workspace/member-type-workspace.context.js +1 -1
  358. package/dist-cms/packages/members/member-types/workspace/member-type-workspace.element.d.ts +1 -0
  359. package/dist-cms/packages/members/member-types/workspace/member-type-workspace.element.js +1 -0
  360. package/dist-cms/packages/members/members/entity-actions/manifests.js +0 -2
  361. package/dist-cms/packages/members/members/manifests.d.ts +1 -1
  362. package/dist-cms/packages/members/members/menu-item/manifests.js +0 -2
  363. package/dist-cms/packages/members/members/tree/manifests.js +1 -1
  364. package/dist-cms/packages/members/members/workspace/member-workspace.context.js +1 -1
  365. package/dist-cms/packages/members/section.manifests.d.ts +1 -1
  366. package/dist-cms/packages/members/section.manifests.js +12 -6
  367. package/dist-cms/packages/packages/package-section/manifests.js +18 -9
  368. package/dist-cms/packages/packages/package-section/views/created/created-packages-section-view.element.d.ts +0 -1
  369. package/dist-cms/packages/packages/package-section/views/created/created-packages-section-view.element.js +0 -1
  370. package/dist-cms/packages/search/examine-management-dashboard/views/section-view-examine-indexers.d.ts +1 -0
  371. package/dist-cms/packages/search/examine-management-dashboard/views/section-view-examine-indexers.js +3 -0
  372. package/dist-cms/packages/search/manifests.js +6 -3
  373. package/dist-cms/packages/settings/dashboards/manifests.js +37 -18
  374. package/dist-cms/packages/settings/data-types/entity-actions/copy/manifests.js +0 -2
  375. package/dist-cms/packages/settings/data-types/entity-actions/create/manifests.js +0 -2
  376. package/dist-cms/packages/settings/data-types/entity-actions/manifests.js +0 -6
  377. package/dist-cms/packages/settings/data-types/entity-actions/move/manifests.js +0 -2
  378. package/dist-cms/packages/settings/data-types/menu-item/manifests.js +0 -2
  379. package/dist-cms/packages/settings/data-types/modals/data-type-picker-flow/data-type-picker-flow-modal.element.js +2 -1
  380. package/dist-cms/packages/settings/data-types/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.js +3 -2
  381. package/dist-cms/packages/settings/data-types/repository/data-type.repository.d.ts +2 -2
  382. package/dist-cms/packages/settings/data-types/repository/manifests.d.ts +1 -1
  383. package/dist-cms/packages/settings/data-types/repository/sources/data-type-folder.server.data.d.ts +3 -3
  384. package/dist-cms/packages/settings/data-types/tree/manifests.js +1 -1
  385. package/dist-cms/packages/settings/data-types/workspace/data-type-workspace-editor.element.js +2 -2
  386. package/dist-cms/packages/settings/data-types/workspace/data-type-workspace.context.js +1 -1
  387. package/dist-cms/packages/settings/data-types/workspace/manifests.js +18 -9
  388. package/dist-cms/packages/settings/data-types/workspace/views/details/data-type-details-workspace-view.element.js +2 -2
  389. package/dist-cms/packages/settings/data-types/workspace/views/info/workspace-view-data-type-info.element.js +2 -2
  390. package/dist-cms/packages/settings/extensions/menu-item/manifests.js +0 -2
  391. package/dist-cms/packages/settings/languages/app-language-select/app-language-select.element.js +1 -5
  392. package/dist-cms/packages/settings/languages/app-language-select/manifests.js +6 -3
  393. package/dist-cms/packages/settings/languages/entity-actions/manifests.js +0 -4
  394. package/dist-cms/packages/settings/languages/menu-item/manifests.js +0 -2
  395. package/dist-cms/packages/settings/languages/workspace/language/language-workspace-editor.element.js +2 -2
  396. package/dist-cms/packages/settings/languages/workspace/language/language-workspace.context.js +1 -1
  397. package/dist-cms/packages/settings/languages/workspace/language/language-workspace.element.d.ts +0 -1
  398. package/dist-cms/packages/settings/languages/workspace/language/language-workspace.element.js +0 -1
  399. package/dist-cms/packages/settings/languages/workspace/language/manifests.js +12 -6
  400. package/dist-cms/packages/settings/languages/workspace/language/views/details/language-details-workspace-view.element.js +2 -2
  401. package/dist-cms/packages/settings/logviewer/manifests.d.ts +1 -1
  402. package/dist-cms/packages/settings/logviewer/menu-item/manifests.js +0 -2
  403. package/dist-cms/packages/settings/logviewer/workspace/{logviewer-root/logviewer-root-workspace.element.d.ts → logviewer/logviewer-workspace.element.d.ts} +0 -9
  404. package/dist-cms/packages/settings/logviewer/workspace/logviewer/logviewer-workspace.element.js +65 -0
  405. package/dist-cms/packages/settings/logviewer/workspace/{logviewer-root → logviewer}/manifests.js +16 -10
  406. package/dist-cms/packages/settings/logviewer/workspace/logviewer.context.d.ts +28 -15
  407. package/dist-cms/packages/settings/logviewer/workspace/logviewer.context.js +33 -5
  408. package/dist-cms/packages/settings/logviewer/workspace/manifests.js +2 -2
  409. package/dist-cms/packages/settings/relation-types/manifests.d.ts +1 -1
  410. package/dist-cms/packages/settings/relation-types/menu-item/manifests.js +0 -2
  411. package/dist-cms/packages/settings/relation-types/tree/manifests.js +1 -1
  412. package/dist-cms/packages/settings/relation-types/workspace/manifests.js +18 -9
  413. package/dist-cms/packages/settings/relation-types/workspace/relation-type-workspace-editor.element.js +2 -2
  414. package/dist-cms/packages/settings/relation-types/workspace/relation-type-workspace.context.js +1 -1
  415. package/dist-cms/packages/settings/relation-types/workspace/views/relation-type/relation-type-workspace-view-relation-type.element.js +2 -2
  416. package/dist-cms/packages/settings/section.manifests.d.ts +1 -1
  417. package/dist-cms/packages/settings/section.manifests.js +6 -3
  418. package/dist-cms/packages/templating/components/insert-menu/templating-insert-menu.element.js +1 -1
  419. package/dist-cms/packages/templating/manifests.d.ts +1 -1
  420. package/dist-cms/packages/templating/menu.manifests.d.ts +1 -1
  421. package/dist-cms/packages/templating/menu.manifests.js +7 -3
  422. package/dist-cms/packages/templating/partial-views/entity-actions/manifests.js +0 -10
  423. package/dist-cms/packages/templating/partial-views/manifests.d.ts +1 -1
  424. package/dist-cms/packages/templating/partial-views/menu-item/manifests.js +0 -2
  425. package/dist-cms/packages/templating/partial-views/repository/partial-views.repository.d.ts +2 -2
  426. package/dist-cms/packages/templating/partial-views/repository/sources/partial-views.folder.server.data.d.ts +2 -2
  427. package/dist-cms/packages/templating/partial-views/tree/manifests.js +1 -1
  428. package/dist-cms/packages/templating/partial-views/workspace/manifests.js +6 -3
  429. package/dist-cms/packages/templating/partial-views/workspace/partial-views-workspace-edit.element.js +2 -1
  430. package/dist-cms/packages/templating/partial-views/workspace/partial-views-workspace.context.js +2 -1
  431. package/dist-cms/packages/templating/stylesheets/manifests.d.ts +1 -1
  432. package/dist-cms/packages/templating/stylesheets/menu-item/manifests.js +0 -2
  433. package/dist-cms/packages/templating/stylesheets/tree/manifests.js +1 -1
  434. package/dist-cms/packages/templating/stylesheets/workspace/stylesheet-workspace.context.js +1 -1
  435. package/dist-cms/packages/templating/templates/entity-actions/manifests.js +0 -4
  436. package/dist-cms/packages/templating/templates/manifests.d.ts +1 -1
  437. package/dist-cms/packages/templating/templates/menu-item/manifests.js +0 -2
  438. package/dist-cms/packages/templating/templates/repository/manifests.d.ts +1 -1
  439. package/dist-cms/packages/templating/templates/tree/manifests.js +1 -1
  440. package/dist-cms/packages/templating/templates/workspace/manifests.js +6 -3
  441. package/dist-cms/packages/templating/templates/workspace/template-workspace-editor.element.js +2 -1
  442. package/dist-cms/packages/templating/templates/workspace/template-workspace.context.js +1 -1
  443. package/dist-cms/packages/umbraco-news/manifests.js +6 -3
  444. package/dist-cms/packages/umbraco-news/umbraco-news-dashboard.element.js +1 -1
  445. package/dist-cms/packages/users/current-user/modals/current-user/current-user-modal.element.js +10 -6
  446. package/dist-cms/packages/users/current-user/user-profile-apps/user-profile-app-profile.element.js +7 -5
  447. package/dist-cms/packages/users/user-groups/manifests.d.ts +1 -1
  448. package/dist-cms/packages/users/user-groups/repository/manifests.d.ts +1 -1
  449. package/dist-cms/packages/users/user-groups/section-view/manifests.js +6 -3
  450. package/dist-cms/packages/users/user-groups/workspace/actions/workspace-action-user-group-save.element.js +2 -2
  451. package/dist-cms/packages/users/user-groups/workspace/manifests.js +6 -3
  452. package/dist-cms/packages/users/user-groups/workspace/user-group-workspace-editor.element.js +2 -2
  453. package/dist-cms/packages/users/user-groups/workspace/user-group-workspace.context.js +1 -1
  454. package/dist-cms/packages/users/users/manifests.d.ts +1 -1
  455. package/dist-cms/packages/users/users/repository/manifests.d.ts +1 -1
  456. package/dist-cms/packages/users/users/repository/user.repository.js +5 -1
  457. package/dist-cms/packages/users/users/section-view/manifests.js +6 -3
  458. package/dist-cms/packages/users/users/workspace/actions/user-workspace-action-save.element.js +2 -2
  459. package/dist-cms/packages/users/users/workspace/manifests.js +6 -3
  460. package/dist-cms/packages/users/users/workspace/user-workspace-editor.element.d.ts +1 -0
  461. package/dist-cms/packages/users/users/workspace/user-workspace-editor.element.js +53 -8
  462. package/dist-cms/packages/users/users/workspace/user-workspace.context.d.ts +1 -1
  463. package/dist-cms/packages/users/users/workspace/user-workspace.context.js +18 -1
  464. package/dist-cms/shared/auth/auth.context.d.ts +1 -0
  465. package/dist-cms/shared/auth/auth.context.js +1 -2
  466. package/dist-cms/shared/auth/auth.interface.d.ts +4 -0
  467. package/dist-cms/shared/lit-element/lit-element.element.d.ts +25 -0
  468. package/dist-cms/shared/lit-element/lit-element.element.js +42 -1
  469. package/dist-cms/shared/repository/data-source/folder-data-source.interface.d.ts +3 -3
  470. package/dist-cms/shared/repository/folder-repository.interface.d.ts +3 -3
  471. package/dist-cms/shared/resources/resource.controller.js +2 -2
  472. package/dist-cms/shared/utils/component-has-manifest-property.function.d.ts +4 -0
  473. package/dist-cms/shared/utils/component-has-manifest-property.function.js +3 -0
  474. package/dist-cms/shared/utils/index.d.ts +1 -0
  475. package/dist-cms/shared/utils/index.js +1 -0
  476. package/dist-cms/shared/utils/media-helper.service.js +1 -0
  477. package/dist-cms/tinymce/CHANGELOG.md +23 -0
  478. package/dist-cms/tinymce/composer.json +1 -1
  479. package/dist-cms/tinymce/langs/hy.js +2 -2
  480. package/dist-cms/tinymce/langs/id.js +19 -19
  481. package/dist-cms/tinymce/langs/it.js +2 -2
  482. package/dist-cms/tinymce/langs/ka_GE.js +132 -132
  483. package/dist-cms/tinymce/langs/ru.js +4 -4
  484. package/dist-cms/tinymce/langs/sk.js +7 -7
  485. package/dist-cms/tinymce/models/dom/model.js +1 -1
  486. package/dist-cms/tinymce/models/dom/model.min.js +1 -1
  487. package/dist-cms/tinymce/package.json +1 -1
  488. package/dist-cms/tinymce/plugins/accordion/plugin.js +1 -1
  489. package/dist-cms/tinymce/plugins/accordion/plugin.min.js +1 -1
  490. package/dist-cms/tinymce/plugins/advlist/plugin.js +1 -1
  491. package/dist-cms/tinymce/plugins/advlist/plugin.min.js +1 -1
  492. package/dist-cms/tinymce/plugins/anchor/plugin.js +1 -1
  493. package/dist-cms/tinymce/plugins/anchor/plugin.min.js +1 -1
  494. package/dist-cms/tinymce/plugins/autolink/plugin.js +1 -1
  495. package/dist-cms/tinymce/plugins/autolink/plugin.min.js +1 -1
  496. package/dist-cms/tinymce/plugins/autoresize/plugin.js +1 -1
  497. package/dist-cms/tinymce/plugins/autoresize/plugin.min.js +1 -1
  498. package/dist-cms/tinymce/plugins/autosave/plugin.js +1 -1
  499. package/dist-cms/tinymce/plugins/autosave/plugin.min.js +1 -1
  500. package/dist-cms/tinymce/plugins/charmap/plugin.js +1 -1
  501. package/dist-cms/tinymce/plugins/charmap/plugin.min.js +1 -1
  502. package/dist-cms/tinymce/plugins/code/plugin.js +1 -1
  503. package/dist-cms/tinymce/plugins/code/plugin.min.js +1 -1
  504. package/dist-cms/tinymce/plugins/codesample/plugin.js +1 -1
  505. package/dist-cms/tinymce/plugins/codesample/plugin.min.js +1 -1
  506. package/dist-cms/tinymce/plugins/directionality/plugin.js +1 -1
  507. package/dist-cms/tinymce/plugins/directionality/plugin.min.js +1 -1
  508. package/dist-cms/tinymce/plugins/emoticons/plugin.js +1 -1
  509. package/dist-cms/tinymce/plugins/emoticons/plugin.min.js +1 -1
  510. package/dist-cms/tinymce/plugins/fullscreen/plugin.js +1 -1
  511. package/dist-cms/tinymce/plugins/fullscreen/plugin.min.js +1 -1
  512. package/dist-cms/tinymce/plugins/help/plugin.js +1 -1
  513. package/dist-cms/tinymce/plugins/help/plugin.min.js +1 -1
  514. package/dist-cms/tinymce/plugins/image/plugin.js +2 -2
  515. package/dist-cms/tinymce/plugins/image/plugin.min.js +2 -2
  516. package/dist-cms/tinymce/plugins/importcss/plugin.js +1 -1
  517. package/dist-cms/tinymce/plugins/importcss/plugin.min.js +1 -1
  518. package/dist-cms/tinymce/plugins/insertdatetime/plugin.js +1 -1
  519. package/dist-cms/tinymce/plugins/insertdatetime/plugin.min.js +1 -1
  520. package/dist-cms/tinymce/plugins/link/plugin.js +1 -1
  521. package/dist-cms/tinymce/plugins/link/plugin.min.js +1 -1
  522. package/dist-cms/tinymce/plugins/lists/plugin.js +2 -2
  523. package/dist-cms/tinymce/plugins/lists/plugin.min.js +2 -2
  524. package/dist-cms/tinymce/plugins/media/plugin.js +1 -1
  525. package/dist-cms/tinymce/plugins/media/plugin.min.js +1 -1
  526. package/dist-cms/tinymce/plugins/nonbreaking/plugin.js +1 -1
  527. package/dist-cms/tinymce/plugins/nonbreaking/plugin.min.js +1 -1
  528. package/dist-cms/tinymce/plugins/pagebreak/plugin.js +1 -1
  529. package/dist-cms/tinymce/plugins/pagebreak/plugin.min.js +1 -1
  530. package/dist-cms/tinymce/plugins/preview/plugin.js +1 -1
  531. package/dist-cms/tinymce/plugins/preview/plugin.min.js +1 -1
  532. package/dist-cms/tinymce/plugins/quickbars/plugin.js +1 -1
  533. package/dist-cms/tinymce/plugins/quickbars/plugin.min.js +1 -1
  534. package/dist-cms/tinymce/plugins/save/plugin.js +1 -1
  535. package/dist-cms/tinymce/plugins/save/plugin.min.js +1 -1
  536. package/dist-cms/tinymce/plugins/searchreplace/plugin.js +1 -1
  537. package/dist-cms/tinymce/plugins/searchreplace/plugin.min.js +1 -1
  538. package/dist-cms/tinymce/plugins/table/plugin.js +1 -1
  539. package/dist-cms/tinymce/plugins/table/plugin.min.js +1 -1
  540. package/dist-cms/tinymce/plugins/template/plugin.js +1 -1
  541. package/dist-cms/tinymce/plugins/template/plugin.min.js +1 -1
  542. package/dist-cms/tinymce/plugins/visualblocks/plugin.js +1 -1
  543. package/dist-cms/tinymce/plugins/visualblocks/plugin.min.js +1 -1
  544. package/dist-cms/tinymce/plugins/visualchars/plugin.js +1 -1
  545. package/dist-cms/tinymce/plugins/visualchars/plugin.min.js +1 -1
  546. package/dist-cms/tinymce/plugins/wordcount/plugin.js +1 -1
  547. package/dist-cms/tinymce/plugins/wordcount/plugin.min.js +1 -1
  548. package/dist-cms/tinymce/skins/ui/oxide/skin.css +15 -2
  549. package/dist-cms/tinymce/skins/ui/oxide/skin.min.css +1 -1
  550. package/dist-cms/tinymce/skins/ui/oxide-dark/skin.css +15 -2
  551. package/dist-cms/tinymce/skins/ui/oxide-dark/skin.min.css +1 -1
  552. package/dist-cms/tinymce/skins/ui/tinymce-5/skin.css +15 -2
  553. package/dist-cms/tinymce/skins/ui/tinymce-5/skin.min.css +1 -1
  554. package/dist-cms/tinymce/skins/ui/tinymce-5-dark/skin.css +15 -2
  555. package/dist-cms/tinymce/skins/ui/tinymce-5-dark/skin.min.css +1 -1
  556. package/dist-cms/tinymce/themes/silver/theme.js +181 -108
  557. package/dist-cms/tinymce/themes/silver/theme.min.js +2 -2
  558. package/dist-cms/tinymce/tinymce.d.ts +3 -0
  559. package/dist-cms/tinymce/tinymce.js +23 -15
  560. package/dist-cms/tinymce/tinymce.min.js +2 -2
  561. package/dist-cms/tsconfig.build.json +15 -0
  562. package/dist-cms/tsconfig.build.tsbuildinfo +1 -0
  563. package/dist-cms/umbraco-package-schema.json +536 -236
  564. package/dist-cms/vscode-html-custom-data.json +58 -58
  565. package/package.json +14 -12
  566. package/dist-cms/external/monaco-editor/twig-4859b551.js +0 -6
  567. package/dist-cms/packages/core/property-editor/schemas/Umbraco.JSON.d.ts +0 -2
  568. package/dist-cms/packages/core/property-editor/schemas/Umbraco.JSON.js +0 -8
  569. package/dist-cms/packages/core/section/section-views/index.d.ts +0 -1
  570. package/dist-cms/packages/core/section/section-views/index.js +0 -1
  571. package/dist-cms/packages/core/section/section-views/section-views.element.d.ts +0 -26
  572. package/dist-cms/packages/core/workspace/workspace-context/entity-workspace-context.token.d.ts +0 -4
  573. package/dist-cms/packages/core/workspace/workspace-context/entity-workspace-context.token.js +0 -2
  574. package/dist-cms/packages/settings/logviewer/workspace/logviewer-root/logviewer-root-workspace.element.js +0 -166
  575. package/dist-cms/tsconfig.tsbuildinfo +0 -1
  576. /package/dist-cms/apps/backoffice/{extension.controller.d.ts → extension-initializer.controller.d.ts} +0 -0
  577. /package/dist-cms/packages/settings/logviewer/workspace/{logviewer-root → logviewer}/manifests.d.ts +0 -0
@@ -22,7 +22,7 @@ export const UmbClassMixin = (superClass) => {
22
22
  * @memberof UmbElementMixin
23
23
  */
24
24
  observe(source, callback, controllerAlias) {
25
- return new UmbObserverController(this, source.asObservable ? source.asObservable() : source, callback, controllerAlias);
25
+ return new UmbObserverController(this, source, callback, controllerAlias);
26
26
  }
27
27
  /**
28
28
  * @description Provide a context API for this or child elements.
@@ -12,8 +12,6 @@ export class UmbContextConsumerController extends UmbContextConsumer {
12
12
  }
13
13
  destroy() {
14
14
  super.destroy();
15
- if (this.#host) {
16
- this.#host.removeController(this);
17
- }
15
+ this.#host.removeController(this);
18
16
  }
19
17
  }
@@ -24,6 +24,5 @@ export declare class UmbContextConsumer<T = unknown> {
24
24
  request(): void;
25
25
  hostConnected(): void;
26
26
  hostDisconnected(): void;
27
- private _handleNewProvider;
28
27
  destroy(): void;
29
28
  }
@@ -1,4 +1,8 @@
1
- import { isUmbContextProvideEventType, umbContextProvideEventType } from '../provide/context-provide.event.js';
1
+ import { isUmbContextProvideEventType,
2
+ //isUmbContextUnprovidedEventType,
3
+ umbContextProvideEventType,
4
+ //umbContextUnprovidedEventType,
5
+ } from '../provide/context-provide.event.js';
2
6
  import { UmbContextRequestEventImplementation } from './context-request.event.js';
3
7
  /**
4
8
  * @export
@@ -22,15 +26,20 @@ export class UmbContextConsumer {
22
26
  */
23
27
  constructor(hostElement, contextAlias, callback) {
24
28
  this.hostElement = hostElement;
29
+ /* Idea: Niels: If we need to filter for specific contexts, we could make the response method return true/false. If false, the event should then then not be stopped. Alternatively parse the event it self on to the response-callback. This will enable the event to continue to bubble up finding a context that matches. The reason for such would be to have some who are more specific than others. For example, some might just need the current workspace-context, others might need the closest handling a certain entityType. As I'm writting this is not relevant, but I wanted to keep the idea as we have had some circumstance that might be solved with this approach.*/
25
30
  this._onResponse = (instance) => {
26
31
  if (this.#instance === instance) {
27
32
  return;
28
33
  }
29
34
  this.#instance = instance;
30
35
  this.#callback?.(instance);
31
- this.#promiseResolver?.(instance);
36
+ if (instance !== undefined) {
37
+ this.#promiseResolver?.(instance);
38
+ this.#promise = undefined;
39
+ }
32
40
  };
33
- this._handleNewProvider = (event) => {
41
+ this.#handleNewProvider = (event) => {
42
+ // Does seem a bit unnecessary, we could just assume the type via type casting...
34
43
  if (!isUmbContextProvideEventType(event))
35
44
  return;
36
45
  if (this.#contextAlias === event.contextAlias) {
@@ -41,7 +50,7 @@ export class UmbContextConsumer {
41
50
  this.#callback = callback;
42
51
  }
43
52
  asPromise() {
44
- return (this.#promise ||
53
+ return (this.#promise ??
45
54
  (this.#promise = new Promise((resolve) => {
46
55
  this.#instance ? resolve(this.#instance) : (this.#promiseResolver = resolve);
47
56
  })));
@@ -55,13 +64,34 @@ export class UmbContextConsumer {
55
64
  }
56
65
  hostConnected() {
57
66
  // TODO: We need to use closets application element. We need this in order to have separate Backoffice running within or next to each other.
58
- window.addEventListener(umbContextProvideEventType, this._handleNewProvider);
67
+ window.addEventListener(umbContextProvideEventType, this.#handleNewProvider);
68
+ //window.addEventListener(umbContextUnprovidedEventType, this.#handleRemovedProvider);
59
69
  this.request();
60
70
  }
61
71
  hostDisconnected() {
62
72
  // TODO: We need to use closets application element. We need this in order to have separate Backoffice running within or next to each other.
63
- window.removeEventListener(umbContextProvideEventType, this._handleNewProvider);
73
+ window.removeEventListener(umbContextProvideEventType, this.#handleNewProvider);
74
+ //window.removeEventListener(umbContextUnprovidedEventType, this.#handleRemovedProvider);
75
+ }
76
+ #handleNewProvider;
77
+ //Niels: I'm keeping this code around as it might be relevant, but I wanted to try to see if leaving this feature out for now could work for us.
78
+ /*
79
+ #handleRemovedProvider = (event: Event) => {
80
+ // Does seem a bit unnecessary, we could just assume the type via type casting...
81
+ if (!isUmbContextUnprovidedEventType(event)) return;
82
+
83
+ if (this.#contextAlias === event.contextAlias && event.instance === this.#instance) {
84
+ this.#unProvide();
85
+ }
86
+ };
87
+
88
+ #unProvide() {
89
+ if (this.#instance !== undefined) {
90
+ this.#instance = undefined;
91
+ this.#callback?.(undefined);
92
+ }
64
93
  }
94
+ */
65
95
  // TODO: Test destroy scenarios:
66
96
  destroy() {
67
97
  this.hostDisconnected();
@@ -18,3 +18,24 @@ export declare class UmbContextProvideEventImplementation extends Event implemen
18
18
  constructor(contextAlias: string | UmbContextToken);
19
19
  }
20
20
  export declare const isUmbContextProvideEventType: (event: Event) => event is UmbContextProvideEventImplementation;
21
+ export declare const umbContextUnprovidedEventType = "umb:context-unprovided";
22
+ /**
23
+ * @export
24
+ * @interface UmbContextProvideEvent
25
+ */
26
+ export interface UmbContextUnprovidedEvent extends Event {
27
+ readonly contextAlias: string | UmbContextToken;
28
+ readonly instance: unknown;
29
+ }
30
+ /**
31
+ * @export
32
+ * @class UmbContextUnprovidedEventImplementation
33
+ * @extends {Event}
34
+ * @implements {UmbContextUnprovidedEvent}
35
+ */
36
+ export declare class UmbContextUnprovidedEventImplementation extends Event implements UmbContextUnprovidedEvent {
37
+ readonly contextAlias: string | UmbContextToken;
38
+ readonly instance: unknown;
39
+ constructor(contextAlias: string | UmbContextToken, instance: unknown);
40
+ }
41
+ export declare const isUmbContextUnprovidedEventType: (event: Event) => event is UmbContextUnprovidedEventImplementation;
@@ -14,3 +14,20 @@ export class UmbContextProvideEventImplementation extends Event {
14
14
  export const isUmbContextProvideEventType = (event) => {
15
15
  return event.type === umbContextProvideEventType;
16
16
  };
17
+ export const umbContextUnprovidedEventType = 'umb:context-unprovided';
18
+ /**
19
+ * @export
20
+ * @class UmbContextUnprovidedEventImplementation
21
+ * @extends {Event}
22
+ * @implements {UmbContextUnprovidedEvent}
23
+ */
24
+ export class UmbContextUnprovidedEventImplementation extends Event {
25
+ constructor(contextAlias, instance) {
26
+ super(umbContextUnprovidedEventType, { bubbles: true, composed: true });
27
+ this.contextAlias = contextAlias;
28
+ this.instance = instance;
29
+ }
30
+ }
31
+ export const isUmbContextUnprovidedEventType = (event) => {
32
+ return event.type === umbContextUnprovidedEventType;
33
+ };
@@ -19,9 +19,9 @@ export class UmbContextProviderController extends UmbContextProvider {
19
19
  }
20
20
  }
21
21
  destroy() {
22
- super.destroy();
23
22
  if (this.#host) {
24
23
  this.#host.removeController(this);
25
24
  }
25
+ super.destroy();
26
26
  }
27
27
  }
@@ -29,12 +29,6 @@ export declare class UmbContextProvider {
29
29
  * @memberof UmbContextProvider
30
30
  */
31
31
  hostDisconnected(): void;
32
- /**
33
- * @private
34
- * @param {UmbContextRequestEvent} event
35
- * @memberof UmbContextProvider
36
- */
37
- private _handleContextRequest;
38
32
  private _handleDebugContextRequest;
39
33
  destroy(): void;
40
34
  }
@@ -1,5 +1,7 @@
1
1
  import { umbContextRequestEventType, isUmbContextRequestEvent, umbDebugContextEventType, } from '../consume/context-request.event.js';
2
- import { UmbContextProvideEventImplementation } from './context-provide.event.js';
2
+ import { UmbContextProvideEventImplementation,
3
+ //UmbContextUnprovidedEventImplementation,
4
+ } from './context-provide.event.js';
3
5
  /**
4
6
  * @export
5
7
  * @class UmbContextProvider
@@ -27,7 +29,7 @@ export class UmbContextProvider {
27
29
  * @param {UmbContextRequestEvent} event
28
30
  * @memberof UmbContextProvider
29
31
  */
30
- this._handleContextRequest = (event) => {
32
+ this.#handleContextRequest = (event) => {
31
33
  if (!isUmbContextRequestEvent(event))
32
34
  return;
33
35
  if (event.contextAlias !== this._contextAlias)
@@ -51,11 +53,17 @@ export class UmbContextProvider {
51
53
  this._contextAlias = contextAlias.toString();
52
54
  this.#instance = instance;
53
55
  }
56
+ /**
57
+ * @private
58
+ * @param {UmbContextRequestEvent} event
59
+ * @memberof UmbContextProvider
60
+ */
61
+ #handleContextRequest;
54
62
  /**
55
63
  * @memberof UmbContextProvider
56
64
  */
57
65
  hostConnected() {
58
- this.hostElement.addEventListener(umbContextRequestEventType, this._handleContextRequest);
66
+ this.hostElement.addEventListener(umbContextRequestEventType, this.#handleContextRequest);
59
67
  this.hostElement.dispatchEvent(new UmbContextProvideEventImplementation(this._contextAlias));
60
68
  // Listen to our debug event 'umb:debug-contexts'
61
69
  this.hostElement.addEventListener(umbDebugContextEventType, this._handleDebugContextRequest);
@@ -64,11 +72,15 @@ export class UmbContextProvider {
64
72
  * @memberof UmbContextProvider
65
73
  */
66
74
  hostDisconnected() {
67
- this.hostElement.removeEventListener(umbContextRequestEventType, this._handleContextRequest);
68
- // TODO: fire unprovided event.
75
+ this.hostElement.removeEventListener(umbContextRequestEventType, this.#handleContextRequest);
76
+ // Out-commented for now, but kept if we like to reintroduce this:
77
+ //window.dispatchEvent(new UmbContextUnprovidedEventImplementation(this._contextAlias, this.#instance));
78
+ // Stop listen to our debug event 'umb:debug-contexts'
79
+ this.hostElement.removeEventListener(umbDebugContextEventType, this._handleDebugContextRequest);
69
80
  }
70
81
  destroy() {
71
- // I want to make sure to call this, but for now it was too overwhelming to require the destroy method on context instances.
82
+ // We want to call a destroy method on the instance, if it has one.
72
83
  this.#instance?.destroy?.();
84
+ this.#instance = undefined;
73
85
  }
74
86
  }
@@ -80,6 +80,7 @@ export const UmbControllerHostBaseMixin = (superClass) => {
80
80
  }
81
81
  destroy() {
82
82
  this.#controllers.forEach((ctrl) => ctrl.destroy());
83
+ this.#controllers.length = 0;
83
84
  }
84
85
  }
85
86
  return UmbControllerHostBaseClass;
@@ -1,8 +1,14 @@
1
- import { HTMLElementConstructor } from '../extension-api/types.js';
2
- import { UmbControllerAlias } from './controller-alias.type.js';
3
- import { UmbControllerHost } from './controller-host.interface.js';
1
+ import type { HTMLElementConstructor } from '../extension-api/types.js';
2
+ import type { UmbControllerAlias } from './controller-alias.type.js';
3
+ import type { UmbControllerHost } from './controller-host.interface.js';
4
4
  import type { UmbController } from './controller.interface.js';
5
+ import type { UmbLocalizeController } from '../localization-api/index.js';
5
6
  export declare class UmbControllerHostElement extends HTMLElement implements UmbControllerHost {
7
+ /**
8
+ * Use the UmbLocalizeController to localize your element.
9
+ * @see UmbLocalizeController
10
+ */
11
+ localize: UmbLocalizeController;
6
12
  hasController(controller: UmbController): boolean;
7
13
  getControllers(filterMethod: (ctrl: UmbController) => boolean): UmbController[];
8
14
  addController(controller: UmbController): void;
@@ -2,11 +2,18 @@ import type { Observable } from '../../external/rxjs/index.js';
2
2
  import type { HTMLElementConstructor } from '../extension-api/index.js';
3
3
  import type { UmbControllerHostElement } from '../controller-api/index.js';
4
4
  import { UmbContextToken, UmbContextCallback, UmbContextConsumerController, UmbContextProviderController } from '../context-api/index.js';
5
- import { UmbObserverController } from '../observable-api/index.js';
5
+ import { ObserverCallback, UmbObserverController } from '../observable-api/index.js';
6
6
  export declare class UmbElement extends UmbControllerHostElement {
7
+ /**
8
+ * @description Observe a RxJS source of choice.
9
+ * @param {Observable<T>} source RxJS source
10
+ * @param {method} callback Callback method called when data is changed.
11
+ * @return {UmbObserverController} Reference to a Observer Controller instance
12
+ * @memberof UmbElementMixin
13
+ */
7
14
  observe<T>(source: Observable<T> | {
8
15
  asObservable: () => Observable<T>;
9
- }, callback: (_value: T) => void, unique?: string): UmbObserverController<T>;
16
+ }, callback: ObserverCallback<T>, unique?: string): UmbObserverController<T>;
10
17
  provideContext<R = unknown>(alias: string | UmbContextToken<R>, instance: R): UmbContextProviderController<R>;
11
18
  consumeContext<R = unknown>(alias: string | UmbContextToken<R>, callback: UmbContextCallback<R>): UmbContextConsumerController<R>;
12
19
  }
@@ -1,8 +1,13 @@
1
+ import { UmbLocalizeController } from '../localization-api/index.js';
1
2
  import { UmbControllerHostElementMixin } from '../controller-api/index.js';
2
3
  import { UmbContextConsumerController, UmbContextProviderController, } from '../context-api/index.js';
3
4
  import { UmbObserverController } from '../observable-api/index.js';
4
5
  export const UmbElementMixin = (superClass) => {
5
6
  class UmbElementMixinClass extends UmbControllerHostElementMixin(superClass) {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.localize = new UmbLocalizeController(this);
10
+ }
6
11
  /**
7
12
  * @description Observe a RxJS source of choice.
8
13
  * @param {Observable<T>} source RxJS source
@@ -11,7 +16,7 @@ export const UmbElementMixin = (superClass) => {
11
16
  * @memberof UmbElementMixin
12
17
  */
13
18
  observe(source, callback, unique) {
14
- return new UmbObserverController(this, source.asObservable ? source.asObservable() : source, callback, unique);
19
+ return new UmbObserverController(this, source, callback, unique);
15
20
  }
16
21
  /**
17
22
  * @description Provide a context API for this or child elements.
@@ -0,0 +1,7 @@
1
+ import type { UmbConditionConfigBase } from '../types.js';
2
+ import type { UmbControllerHost } from '../../controller-api/index.js';
3
+ export type UmbConditionControllerArguments<ConditionConfigType extends UmbConditionConfigBase = UmbConditionConfigBase> = {
4
+ host: UmbControllerHost;
5
+ config: ConditionConfigType;
6
+ onChange: () => void;
7
+ };
@@ -0,0 +1,6 @@
1
+ import type { UmbConditionConfigBase } from '../types.js';
2
+ import { UmbController } from '../../controller-api/index.js';
3
+ export interface UmbExtensionCondition extends UmbController {
4
+ readonly permitted: boolean;
5
+ readonly config: UmbConditionConfigBase;
6
+ }
@@ -0,0 +1,2 @@
1
+ export * from './extension-condition.interface.js';
2
+ export * from './condition-controller-arguments.type.js';
@@ -0,0 +1,2 @@
1
+ export * from './extension-condition.interface.js';
2
+ export * from './condition-controller-arguments.type.js';
@@ -0,0 +1,19 @@
1
+ import { UmbBaseController, type UmbControllerHost } from '../../controller-api/index.js';
2
+ import { type ManifestCondition, type ManifestWithDynamicConditions, type UmbExtensionRegistry } from '../index.js';
3
+ export declare abstract class UmbBaseExtensionController<ManifestType extends ManifestWithDynamicConditions = ManifestWithDynamicConditions, SubClassType = never> extends UmbBaseController {
4
+ #private;
5
+ protected _positive?: boolean;
6
+ get weight(): number;
7
+ get permitted(): boolean;
8
+ get manifest(): ManifestType | undefined;
9
+ get alias(): string;
10
+ get overwrites(): string[];
11
+ hasConditions: () => Promise<boolean>;
12
+ constructor(host: UmbControllerHost, extensionRegistry: UmbExtensionRegistry<ManifestCondition>, alias: string, onPermissionChanged: (isPermitted: boolean, controller: SubClassType) => void);
13
+ protected _init(): void;
14
+ asPromise(): Promise<void>;
15
+ protected abstract _conditionsAreGood(): Promise<boolean>;
16
+ protected abstract _conditionsAreBad(): Promise<void>;
17
+ equal(otherClass: UmbBaseExtensionController | undefined): boolean;
18
+ destroy(): void;
19
+ }
@@ -0,0 +1,178 @@
1
+ import { UmbBaseController } from '../../controller-api/index.js';
2
+ import { createExtensionClass, } from '../index.js';
3
+ export class UmbBaseExtensionController extends UmbBaseController {
4
+ #promiseResolvers;
5
+ #manifestObserver;
6
+ #extensionRegistry;
7
+ #alias;
8
+ #overwrites;
9
+ #manifest;
10
+ #conditionControllers;
11
+ #onPermissionChanged;
12
+ #isPermitted;
13
+ get weight() {
14
+ return this.#manifest?.weight ?? 0;
15
+ }
16
+ get permitted() {
17
+ return this.#isPermitted ?? false;
18
+ }
19
+ get manifest() {
20
+ return this.#manifest;
21
+ }
22
+ get alias() {
23
+ return this.#alias;
24
+ }
25
+ get overwrites() {
26
+ return this.#overwrites;
27
+ }
28
+ constructor(host, extensionRegistry, alias, onPermissionChanged) {
29
+ super(host, alias);
30
+ this.#promiseResolvers = [];
31
+ this.#overwrites = [];
32
+ this.#conditionControllers = [];
33
+ this.hasConditions = async () => {
34
+ await this.#manifestObserver.asPromise();
35
+ return (this.#manifest?.conditions ?? []).length > 0;
36
+ };
37
+ this.#onConditionsChangedCallback = async () => {
38
+ const oldValue = this.#isPermitted ?? false;
39
+ // Find a condition that is not permitted (Notice how no conditions, means that this extension is permitted)
40
+ const isPositive = this.#conditionsAreInitialized() &&
41
+ this.#conditionControllers.find((condition) => condition.permitted === false) === undefined;
42
+ this._positive = isPositive;
43
+ if (isPositive) {
44
+ if (this.#isPermitted !== true) {
45
+ this.#isPermitted = await this._conditionsAreGood();
46
+ }
47
+ }
48
+ else if (this.#isPermitted !== false) {
49
+ await this._conditionsAreBad();
50
+ this.#isPermitted = false;
51
+ }
52
+ if (oldValue !== this.#isPermitted) {
53
+ if (this.#isPermitted) {
54
+ this.#promiseResolvers.forEach((x) => x());
55
+ this.#promiseResolvers = [];
56
+ }
57
+ this.#onPermissionChanged(this.#isPermitted, this);
58
+ }
59
+ };
60
+ this.#extensionRegistry = extensionRegistry;
61
+ this.#alias = alias;
62
+ this.#onPermissionChanged = onPermissionChanged;
63
+ }
64
+ _init() {
65
+ this.#manifestObserver = this.observe(this.#extensionRegistry.getByAlias(this.#alias), async (extensionManifest) => {
66
+ this.#isPermitted = undefined;
67
+ this.#manifest = extensionManifest;
68
+ if (extensionManifest) {
69
+ if (extensionManifest.overwrites) {
70
+ if (typeof extensionManifest.overwrites === 'string') {
71
+ this.#overwrites = [extensionManifest.overwrites];
72
+ }
73
+ else if (Array.isArray(extensionManifest.overwrites)) {
74
+ this.#overwrites = extensionManifest.overwrites;
75
+ }
76
+ }
77
+ this.#gotConditions();
78
+ }
79
+ else {
80
+ this.#overwrites = [];
81
+ this.#cleanConditions();
82
+ }
83
+ });
84
+ }
85
+ asPromise() {
86
+ return new Promise((resolve) => {
87
+ this.#isPermitted === true ? resolve() : this.#promiseResolvers.push(resolve);
88
+ });
89
+ }
90
+ #cleanConditions() {
91
+ this.#conditionControllers.forEach((controller) => controller.destroy());
92
+ this.#conditionControllers = [];
93
+ this.removeControllerByAlias('_observeConditions');
94
+ }
95
+ #gotConditions() {
96
+ const conditionConfigs = this.#manifest?.conditions ?? [];
97
+ // As conditionConfigs might have been configured as something else than an array, then we ignorer them.
98
+ if (conditionConfigs.length === undefined || conditionConfigs.length === 0) {
99
+ this.#cleanConditions();
100
+ this.#onConditionsChangedCallback();
101
+ return;
102
+ }
103
+ const conditionAliases = conditionConfigs
104
+ .map((condition) => condition.alias)
105
+ .filter((value, index, array) => array.indexOf(value) === index);
106
+ const oldAmountOfControllers = this.#conditionControllers.length;
107
+ // Clean up conditions controllers based on keepers:
108
+ this.#conditionControllers = this.#conditionControllers.filter((current) => {
109
+ const continueExistence = conditionConfigs.find((config) => config === current.config);
110
+ if (!continueExistence) {
111
+ // Destroy condition that is no longer needed.
112
+ current.destroy();
113
+ }
114
+ return continueExistence;
115
+ });
116
+ // Check if there was no change in conditions:
117
+ // First check if any got removed(old amount equal controllers after clean-up)
118
+ // && check if any new is about to be added(old equal new amount):
119
+ const noChangeInConditions = oldAmountOfControllers === this.#conditionControllers.length &&
120
+ oldAmountOfControllers === conditionConfigs.length;
121
+ if (conditionConfigs.length > 0) {
122
+ // Observes the conditions and initialize as they come in.
123
+ this.observe(this.#extensionRegistry.getByTypeAndAliases('condition', conditionAliases), async (manifests) => {
124
+ // New comers:
125
+ manifests.forEach((conditionManifest) => {
126
+ const configsOfThisType = conditionConfigs.filter((conditionConfig) => conditionConfig.alias === conditionManifest.alias);
127
+ // Spin up conditions, based of condition configs:
128
+ configsOfThisType.forEach(async (conditionConfig) => {
129
+ // Check if we already have a controller for this config:
130
+ const existing = this.#conditionControllers.find((controller) => controller.config === conditionConfig);
131
+ if (!existing) {
132
+ const conditionController = await createExtensionClass(conditionManifest, [
133
+ {
134
+ host: this,
135
+ manifest: conditionManifest,
136
+ config: conditionConfig,
137
+ onChange: this.#onConditionsChangedCallback,
138
+ },
139
+ ]);
140
+ if (conditionController) {
141
+ // Some how listen to it? callback/event/onChange something.
142
+ // then call this one: this.#onConditionsChanged();
143
+ this.#conditionControllers.push(conditionController);
144
+ this.#onConditionsChangedCallback();
145
+ }
146
+ }
147
+ });
148
+ });
149
+ }, '_observeConditions');
150
+ }
151
+ else {
152
+ this.removeControllerByAlias('_observeConditions');
153
+ }
154
+ if (noChangeInConditions) {
155
+ // There was not change in the amount of conditions, but the manifest was changed, this means this.#isPermitted is set to undefined and this will always fire the callback:
156
+ this.#onConditionsChangedCallback();
157
+ }
158
+ }
159
+ #conditionsAreInitialized() {
160
+ // Not good if we don't have a manifest.
161
+ // Only good if conditions of manifest is equal to the amount of condition controllers (one for each condition).
162
+ return (this.#manifest !== undefined && this.#conditionControllers.length === (this.#manifest.conditions ?? []).length);
163
+ }
164
+ #onConditionsChangedCallback;
165
+ equal(otherClass) {
166
+ return otherClass?.manifest === this.manifest;
167
+ }
168
+ destroy() {
169
+ this.#promiseResolvers = [];
170
+ if (this.#isPermitted === true) {
171
+ this.#isPermitted = undefined;
172
+ this._conditionsAreBad();
173
+ this.#onPermissionChanged(false, this);
174
+ }
175
+ super.destroy();
176
+ // Destroy the conditions controllers, are begin destroyed cause they are controllers.
177
+ }
178
+ }
@@ -0,0 +1,19 @@
1
+ import type { ManifestBase, ManifestTypeMap, SpecificManifestTypeOrManifestBase, UmbBaseExtensionController, UmbExtensionRegistry } from '../index.js';
2
+ import { UmbBaseController, UmbControllerHost } from '../../controller-api/index.js';
3
+ export type PermittedControllerType<ControllerType extends {
4
+ manifest: any;
5
+ }> = ControllerType & {
6
+ manifest: Required<Pick<ControllerType, 'manifest'>>;
7
+ };
8
+ /**
9
+ */
10
+ export declare abstract class UmbBaseExtensionsController<ManifestTypes extends ManifestBase, ManifestTypeName extends keyof ManifestTypeMap<ManifestTypes> | string, ManifestType extends ManifestBase = SpecificManifestTypeOrManifestBase<ManifestTypes, ManifestTypeName>, ControllerType extends UmbBaseExtensionController<ManifestType> = UmbBaseExtensionController<ManifestType>, MyPermittedControllerType extends ControllerType = PermittedControllerType<ControllerType>> extends UmbBaseController {
11
+ #private;
12
+ protected _extensions: Array<ControllerType>;
13
+ private _permittedExts;
14
+ constructor(host: UmbControllerHost, extensionRegistry: UmbExtensionRegistry<ManifestType>, type: ManifestTypeName | Array<ManifestTypeName>, filter: undefined | null | ((manifest: ManifestType) => boolean), onChange: (permittedManifests: Array<MyPermittedControllerType>, controller: MyPermittedControllerType) => void);
15
+ protected _init(): void;
16
+ protected abstract _createController(manifest: ManifestType): ControllerType;
17
+ protected _extensionChanged: (isPermitted: boolean, controller: UmbBaseExtensionController<ManifestType>) => void;
18
+ destroy(): void;
19
+ }