@umbraco-cms/backoffice 15.0.0-rc1 → 15.0.0-rc2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-cms/apps/backoffice/components/backoffice-header-logo.element.js +1 -6
- package/dist-cms/assets/lang/ar.d.ts +3 -0
- package/dist-cms/assets/lang/ar.js +2342 -0
- package/dist-cms/assets/lang/ar.ts +2394 -0
- package/dist-cms/assets/lang/bs.js +2 -2
- package/dist-cms/assets/lang/bs.ts +2 -2
- package/dist-cms/assets/lang/cs-cz.js +2 -2
- package/dist-cms/assets/lang/cs-cz.ts +2 -2
- package/dist-cms/assets/lang/cy-gb.js +2 -2
- package/dist-cms/assets/lang/cy-gb.ts +2 -2
- package/dist-cms/assets/lang/da-dk.js +6 -3
- package/dist-cms/assets/lang/da-dk.ts +6 -3
- package/dist-cms/assets/lang/de-de.js +2 -2
- package/dist-cms/assets/lang/de-de.ts +2 -2
- package/dist-cms/assets/lang/en-us.js +20 -7
- package/dist-cms/assets/lang/en-us.ts +20 -7
- package/dist-cms/assets/lang/en.js +30 -5
- package/dist-cms/assets/lang/en.ts +30 -5
- package/dist-cms/assets/lang/es-es.js +3 -3
- package/dist-cms/assets/lang/es-es.ts +3 -3
- package/dist-cms/assets/lang/fr-fr.js +2 -2
- package/dist-cms/assets/lang/fr-fr.ts +2 -3
- package/dist-cms/assets/lang/he-il.js +1 -1
- package/dist-cms/assets/lang/he-il.ts +1 -1
- package/dist-cms/assets/lang/hr-hr.js +2 -2
- package/dist-cms/assets/lang/hr-hr.ts +2 -2
- package/dist-cms/assets/lang/it-it.js +1 -1
- package/dist-cms/assets/lang/it-it.ts +1 -1
- package/dist-cms/assets/lang/ja-jp.js +1 -1
- package/dist-cms/assets/lang/ja-jp.ts +1 -1
- package/dist-cms/assets/lang/ko-kr.js +1 -1
- package/dist-cms/assets/lang/ko-kr.ts +1 -1
- package/dist-cms/assets/lang/nb-no.js +3 -1
- package/dist-cms/assets/lang/nb-no.ts +3 -1
- package/dist-cms/assets/lang/nl-nl.js +2 -2
- package/dist-cms/assets/lang/nl-nl.ts +2 -2
- package/dist-cms/assets/lang/pl-pl.js +2 -2
- package/dist-cms/assets/lang/pl-pl.ts +2 -2
- package/dist-cms/assets/lang/pt-br.js +1 -1
- package/dist-cms/assets/lang/pt-br.ts +1 -1
- package/dist-cms/assets/lang/ru-ru.js +2 -2
- package/dist-cms/assets/lang/ru-ru.ts +2 -2
- package/dist-cms/assets/lang/tr-tr.js +2 -2
- package/dist-cms/assets/lang/tr-tr.ts +2 -2
- package/dist-cms/assets/lang/uk-ua.js +2 -2
- package/dist-cms/assets/lang/uk-ua.ts +2 -2
- package/dist-cms/assets/lang/zh-cn.js +2 -2
- package/dist-cms/assets/lang/zh-cn.ts +2 -2
- package/dist-cms/assets/lang/zh-tw.js +1 -1
- package/dist-cms/assets/lang/zh-tw.ts +1 -2
- package/dist-cms/assets/login.jpg +0 -0
- package/dist-cms/custom-elements.json +4 -4
- package/dist-cms/external/monaco-editor/{cssMode-CDJQLEXE.js → cssMode-DA72DEEy.js} +1 -1
- package/dist-cms/external/monaco-editor/{freemarker2-BtohW-RX.js → freemarker2-Cl3U_XXG.js} +1 -1
- package/dist-cms/external/monaco-editor/{handlebars-Wz3s8HqG.js → handlebars-DSroMiE1.js} +1 -1
- package/dist-cms/external/monaco-editor/{html-MlXP3Eno.js → html-CkfQ3Tez.js} +1 -1
- package/dist-cms/external/monaco-editor/{htmlMode-Ds-h6y_M.js → htmlMode-D-n07ZL6.js} +1 -1
- package/dist-cms/external/monaco-editor/{index-BsCYch8u.js → index-QOjL-QlL.js} +181 -182
- package/dist-cms/external/monaco-editor/index.js +1 -1
- package/dist-cms/external/monaco-editor/{javascript-Dejz0u77.js → javascript-CPYBePIj.js} +1 -1
- package/dist-cms/external/monaco-editor/{jsonMode-CQ2qSm4x.js → jsonMode-xglY6Smp.js} +1 -1
- package/dist-cms/external/monaco-editor/{liquid-BhEdJewW.js → liquid-BcU1huVG.js} +1 -1
- package/dist-cms/external/monaco-editor/{mdx-C292GrsL.js → mdx-BngkqVPl.js} +1 -1
- package/dist-cms/external/monaco-editor/{python-CTKihC4R.js → python-Da-YVbMh.js} +1 -1
- package/dist-cms/external/monaco-editor/{razor-aZ9MyDfI.js → razor-C_XA8ptN.js} +1 -1
- package/dist-cms/external/monaco-editor/{tsMode-D1lPHHTW.js → tsMode-CsqUs61y.js} +1 -1
- package/dist-cms/external/monaco-editor/{typescript-DodsUUWq.js → typescript-DmWQ3leM.js} +1 -1
- package/dist-cms/external/monaco-editor/{xml-CnOKc87p.js → xml-CmhlGeEt.js} +1 -1
- package/dist-cms/external/monaco-editor/{yaml-BGcRgHu1.js → yaml-DDN00dBJ.js} +1 -1
- package/dist-cms/external/tinymce/index.js +1 -1
- package/dist-cms/external/uui/index.js +302 -278
- package/dist-cms/libs/extension-api/types/condition.types.d.ts +5 -5
- package/dist-cms/packages/block/block/conditions/types.d.ts +1 -1
- package/dist-cms/packages/block/block/context/block-entry.context.d.ts +1 -0
- package/dist-cms/packages/block/block/context/block-entry.context.js +9 -4
- package/dist-cms/packages/block/block/context/block-manager.context.d.ts +8 -7
- package/dist-cms/packages/block/block/context/block-manager.context.js +28 -9
- package/dist-cms/packages/block/block/workspace/block-workspace.context.d.ts +1 -0
- package/dist-cms/packages/block/block/workspace/block-workspace.context.js +14 -13
- package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-content-no-router.element.d.ts +3 -1
- package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-content-no-router.element.js +50 -12
- package/dist-cms/packages/block/block-custom-view/types.d.ts +1 -1
- package/dist-cms/packages/block/block-grid/components/block-grid-block/block-grid-block.element.js +3 -1
- package/dist-cms/packages/block/block-grid/components/block-grid-block-inline/block-grid-block-inline.element.js +3 -1
- package/dist-cms/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.d.ts +2 -1
- package/dist-cms/packages/block/block-grid/components/block-grid-entries/block-grid-entries.element.js +13 -5
- package/dist-cms/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.js +2 -0
- package/dist-cms/packages/block/block-grid/context/block-grid-entries.context.d.ts +4 -2
- package/dist-cms/packages/block/block-grid/context/block-grid-entries.context.js +26 -17
- package/dist-cms/packages/block/block-grid/context/block-grid-entry.context.d.ts +1 -0
- package/dist-cms/packages/block/block-grid/context/block-grid-entry.context.js +3 -2
- package/dist-cms/packages/block/block-grid/context/block-grid-manager.context.d.ts +3 -0
- package/dist-cms/packages/block/block-grid/context/block-grid-manager.context.js +12 -2
- package/dist-cms/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.js +2 -0
- package/dist-cms/packages/block/block-grid/types.d.ts +1 -0
- package/dist-cms/packages/block/block-list/context/block-list-entries.context.d.ts +1 -1
- package/dist-cms/packages/block/block-list/context/block-list-entries.context.js +8 -4
- package/dist-cms/packages/block/block-list/context/block-list-entry.context.d.ts +1 -1
- package/dist-cms/packages/block/block-list/context/block-list-entry.context.js +3 -3
- package/dist-cms/packages/block/block-list/context/block-list-manager.context.d.ts +1 -1
- package/dist-cms/packages/block/block-list/context/block-list-manager.context.js +5 -2
- package/dist-cms/packages/block/block-rte/context/block-rte-entries.context.d.ts +2 -2
- package/dist-cms/packages/block/block-rte/context/block-rte-entries.context.js +5 -5
- package/dist-cms/packages/block/block-rte/context/block-rte-entry.context.d.ts +1 -1
- package/dist-cms/packages/block/block-rte/context/block-rte-entry.context.js +5 -3
- package/dist-cms/packages/block/block-rte/context/block-rte-manager.context.d.ts +3 -2
- package/dist-cms/packages/block/block-rte/context/block-rte-manager.context.js +6 -3
- package/dist-cms/packages/core/collection/extensions/collection-action.extension.d.ts +1 -1
- package/dist-cms/packages/core/collection/extensions/collection-view.extension.d.ts +1 -1
- package/dist-cms/packages/core/collection/extensions/collection.extension.d.ts +1 -1
- package/dist-cms/packages/core/content-type/structure/content-type-structure-manager.class.d.ts +1 -0
- package/dist-cms/packages/core/content-type/structure/content-type-structure-manager.class.js +3 -2
- package/dist-cms/packages/core/culture/manifests.d.ts +1 -1
- package/dist-cms/packages/core/dashboard/dashboard.extension.d.ts +1 -1
- package/dist-cms/packages/core/entity-action/entity-action.extension.d.ts +1 -1
- package/dist-cms/packages/core/extension-registry/conditions/index.d.ts +1 -1
- package/dist-cms/packages/core/extension-registry/conditions/types.d.ts +10 -6
- package/dist-cms/packages/core/extension-registry/extensions/entity-bulk-action.extension.d.ts +1 -1
- package/dist-cms/packages/core/extension-registry/extensions/repository.extension.d.ts +1 -1
- package/dist-cms/packages/core/icon-registry/icon-dictionary.json +68 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-3d.d.ts +2 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-3d.js +17 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-chart-bar.d.ts +2 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-chart-bar.js +18 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-chart-graph.d.ts +2 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-chart-graph.js +16 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-command.d.ts +2 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-command.js +17 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-font.d.ts +2 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-font.js +18 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-html.d.ts +2 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-html.js +17 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-image.d.ts +2 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-image.js +17 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-js.d.ts +2 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-js.js +17 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-key.d.ts +2 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-key.js +17 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-medal.d.ts +2 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-medal.js +17 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-play.d.ts +2 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-play.js +16 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-search.d.ts +2 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-search.js +17 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-settings.d.ts +2 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-settings.js +19 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-spreadsheet.d.ts +2 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-spreadsheet.js +19 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-user.d.ts +2 -0
- package/dist-cms/packages/core/icon-registry/icons/icon-document-user.js +17 -0
- package/dist-cms/packages/core/icon-registry/icons.d.ts +56 -0
- package/dist-cms/packages/core/icon-registry/icons.js +51 -0
- package/dist-cms/packages/core/localization/manifests.js +11 -1
- package/dist-cms/packages/core/menu/menu-item.extension.d.ts +1 -1
- package/dist-cms/packages/core/property/manifests.d.ts +1 -1
- package/dist-cms/packages/core/property-action/extensions/property-action.extension.d.ts +1 -1
- package/dist-cms/packages/core/section/conditions/types.d.ts +1 -1
- package/dist-cms/packages/core/section/extensions/section-sidebar-app.extension.d.ts +1 -1
- package/dist-cms/packages/core/section/extensions/section-view.extension.d.ts +1 -1
- package/dist-cms/packages/core/section/extensions/section.extension.d.ts +1 -1
- package/dist-cms/packages/core/temporary-file/temporary-file-manager.class.js +3 -2
- package/dist-cms/packages/core/themes/manifests.d.ts +1 -1
- package/dist-cms/packages/core/tree/extensions/tree.extension.d.ts +1 -1
- package/dist-cms/packages/core/utils/index.d.ts +1 -0
- package/dist-cms/packages/core/utils/index.js +1 -0
- package/dist-cms/packages/core/utils/sanitize/sanitize-html.function.d.ts +6 -0
- package/dist-cms/packages/core/utils/sanitize/sanitize-html.function.js +9 -0
- package/dist-cms/packages/core/workspace/conditions/types.d.ts +1 -1
- package/dist-cms/packages/core/workspace/conditions/workspace-alias.condition.d.ts +2 -2
- package/dist-cms/packages/core/workspace/conditions/workspace-content-type-alias.condition.d.ts +2 -2
- package/dist-cms/packages/core/workspace/conditions/workspace-entity-is-new.condition.d.ts +2 -2
- package/dist-cms/packages/core/workspace/conditions/workspace-entity-type.condition.d.ts +2 -2
- package/dist-cms/packages/core/workspace/conditions/workspace-has-collection.condition.d.ts +2 -2
- package/dist-cms/packages/core/workspace/extensions/workspace-action-menu-item.model.d.ts +1 -1
- package/dist-cms/packages/core/workspace/extensions/workspace-action.model.d.ts +1 -1
- package/dist-cms/packages/core/workspace/extensions/workspace-context.model.d.ts +1 -1
- package/dist-cms/packages/core/workspace/extensions/workspace-footer-app.model.d.ts +1 -1
- package/dist-cms/packages/core/workspace/extensions/workspace-view.model.d.ts +1 -1
- package/dist-cms/packages/dictionary/workspace/views/workspace-view-dictionary-editor.element.js +9 -5
- package/dist-cms/packages/documents/document-types/entity-actions/create/modal/document-type-create-options-modal.element.js +1 -1
- package/dist-cms/packages/documents/document-types/paths.js +1 -1
- package/dist-cms/packages/documents/document-types/workspace/document-type-workspace.context.js +1 -1
- package/dist-cms/packages/documents/documents/user-permissions/conditions/types.d.ts +1 -1
- package/dist-cms/packages/documents/documents/workspace/document-workspace.context.d.ts +4 -0
- package/dist-cms/packages/documents/documents/workspace/document-workspace.context.js +13 -2
- package/dist-cms/packages/documents/documents/workspace/views/info/document-workspace-view-info.element.js +1 -1
- package/dist-cms/packages/extension-types/index.d.ts +118 -0
- package/dist-cms/packages/markdown-editor/components/input-markdown-editor/input-markdown.element.js +2 -2
- package/dist-cms/packages/multi-url-picker/tiny-mce-plugin/tiny-mce-multi-url-picker.plugin.d.ts +2 -1
- package/dist-cms/packages/multi-url-picker/tiny-mce-plugin/tiny-mce-multi-url-picker.plugin.js +28 -48
- package/dist-cms/packages/packages/package-builder/workspace/workspace-package-builder.element.js +4 -4
- package/dist-cms/packages/sysinfo/components/sysinfo.element.d.ts +1 -1
- package/dist-cms/packages/sysinfo/components/sysinfo.element.js +29 -11
- package/dist-cms/packages/templating/partial-views/entity-actions/create/options-modal/partial-view-create-options-modal.element.js +2 -2
- package/dist-cms/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.js +1 -1
- package/dist-cms/packages/templating/partial-views/tree/partial-view-tree.server.data-source.js +1 -1
- package/dist-cms/packages/templating/scripts/entity-actions/create/options-modal/script-create-options-modal.element.js +1 -1
- package/dist-cms/packages/templating/scripts/tree/script-tree.server.data-source.js +1 -1
- package/dist-cms/packages/templating/stylesheets/entity-actions/create/options-modal/stylesheet-create-options-modal.element.js +2 -2
- package/dist-cms/packages/templating/stylesheets/tree/stylesheet-tree.server.data-source.js +1 -1
- package/dist-cms/packages/templating/templates/global-components/template-card/template-card.element.js +1 -1
- package/dist-cms/packages/templating/templates/tree/template-tree.server.data-source.js +1 -1
- package/dist-cms/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.defaults.js +1 -1
- package/dist-cms/packages/tiny-mce/plugins/tiny-mce-code-editor.plugin.js +5 -4
- package/dist-cms/packages/tiptap/components/input-tiptap/input-tiptap.element.d.ts +1 -1
- package/dist-cms/packages/tiptap/components/input-tiptap/tiptap-toolbar.element.d.ts +1 -1
- package/dist-cms/packages/tiptap/components/types.d.ts +1 -0
- package/dist-cms/packages/tiptap/components/types.js +1 -0
- package/dist-cms/packages/tiptap/extensions/core/media-upload.extension.js +6 -0
- package/dist-cms/packages/tiptap/extensions/manifests.js +142 -154
- package/dist-cms/packages/tiptap/extensions/tiptap-toolbar-extension.d.ts +1 -0
- package/dist-cms/packages/tiptap/extensions/types.d.ts +0 -1
- package/dist-cms/packages/tiptap/plugins/manifests.js +1 -1
- package/dist-cms/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-extensions-configuration.element.d.ts +7 -5
- package/dist-cms/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-extensions-configuration.element.js +112 -109
- package/dist-cms/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-toolbar-configuration.element.d.ts +6 -6
- package/dist-cms/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-toolbar-configuration.element.js +304 -198
- package/dist-cms/packages/tiptap/property-editors/tiptap/contexts/tiptap-toolbar-configuration.context.d.ts +27 -0
- package/dist-cms/packages/tiptap/property-editors/tiptap/contexts/tiptap-toolbar-configuration.context.js +185 -0
- package/dist-cms/packages/tiptap/property-editors/tiptap/manifests.js +13 -9
- package/dist-cms/packages/tiptap/property-editors/tiptap/types.d.ts +12 -0
- package/dist-cms/packages/tiptap/property-editors/tiptap/types.js +1 -0
- package/dist-cms/packages/user/current-user/current-user-action.extension.d.ts +1 -1
- package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
- package/dist-cms/umbraco-package-schema.json +18 -6
- package/dist-cms/umbraco-package.json +1 -1
- package/dist-cms/vscode-html-custom-data.json +4 -4
- package/package.json +5 -4
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { umbExtensionsRegistry } from '../../../../core/extension-registry/index.js';
|
|
2
|
+
import { UmbArrayState, UmbBooleanState } from '../../../../../libs/observable-api/index.js';
|
|
3
|
+
import { UmbContextBase } from '../../../../../libs/class-api/index.js';
|
|
4
|
+
import { UmbContextToken } from '../../../../../libs/context-api/index.js';
|
|
5
|
+
import { UmbId } from '../../../../core/id/index.js';
|
|
6
|
+
import { UMB_PROPERTY_DATASET_CONTEXT } from '../../../../core/property/index.js';
|
|
7
|
+
export class UmbTiptapToolbarConfigurationContext extends UmbContextBase {
|
|
8
|
+
#extensions;
|
|
9
|
+
#reload;
|
|
10
|
+
#extensionsEnabled;
|
|
11
|
+
#extensionsInUse;
|
|
12
|
+
#lookup;
|
|
13
|
+
#toolbar;
|
|
14
|
+
constructor(host) {
|
|
15
|
+
super(host, UMB_TIPTAP_TOOLBAR_CONFIGURATION_CONTEXT);
|
|
16
|
+
this.#extensions = new UmbArrayState([], (x) => x.alias);
|
|
17
|
+
this.extensions = this.#extensions.asObservable();
|
|
18
|
+
this.#reload = new UmbBooleanState(false);
|
|
19
|
+
this.reload = this.#reload.asObservable();
|
|
20
|
+
this.#extensionsEnabled = new Set();
|
|
21
|
+
this.#extensionsInUse = new Set();
|
|
22
|
+
this.#toolbar = new UmbArrayState([], (x) => x.unique);
|
|
23
|
+
this.toolbar = this.#toolbar.asObservable();
|
|
24
|
+
this.observe(umbExtensionsRegistry.byType('tiptapToolbarExtension'), (extensions) => {
|
|
25
|
+
const _extensions = extensions.map((ext) => ({
|
|
26
|
+
alias: ext.alias,
|
|
27
|
+
label: ext.meta.label,
|
|
28
|
+
icon: ext.meta.icon,
|
|
29
|
+
dependencies: ext.forExtensions,
|
|
30
|
+
}));
|
|
31
|
+
this.#extensions.setValue(_extensions);
|
|
32
|
+
this.#lookup = new Map(_extensions.map((ext) => [ext.alias, ext]));
|
|
33
|
+
});
|
|
34
|
+
this.consumeContext(UMB_PROPERTY_DATASET_CONTEXT, async (dataset) => {
|
|
35
|
+
this.observe(await dataset.propertyValueByAlias('extensions'), (extensions) => {
|
|
36
|
+
if (extensions) {
|
|
37
|
+
this.#extensionsEnabled.clear();
|
|
38
|
+
this.#reload.setValue(false);
|
|
39
|
+
this.#extensions
|
|
40
|
+
.getValue()
|
|
41
|
+
.filter((x) => !x.dependencies || x.dependencies.every((z) => extensions.includes(z)))
|
|
42
|
+
.map((x) => x.alias)
|
|
43
|
+
.forEach((alias) => this.#extensionsEnabled.add(alias));
|
|
44
|
+
this.#reload.setValue(true);
|
|
45
|
+
}
|
|
46
|
+
}, '_observeExtensions');
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
filterExtensions(query) {
|
|
50
|
+
return this.#extensions
|
|
51
|
+
.getValue()
|
|
52
|
+
.filter((ext) => ext.alias?.toLowerCase().includes(query) || ext.label?.toLowerCase().includes(query));
|
|
53
|
+
}
|
|
54
|
+
getExtensionByAlias(alias) {
|
|
55
|
+
return this.#lookup?.get(alias);
|
|
56
|
+
}
|
|
57
|
+
isExtensionEnabled(alias) {
|
|
58
|
+
return this.#extensionsEnabled.has(alias);
|
|
59
|
+
}
|
|
60
|
+
isExtensionInUse(alias) {
|
|
61
|
+
return this.#extensionsInUse.has(alias);
|
|
62
|
+
}
|
|
63
|
+
isValidToolbarValue(value) {
|
|
64
|
+
if (!Array.isArray(value))
|
|
65
|
+
return false;
|
|
66
|
+
for (const row of value) {
|
|
67
|
+
if (!Array.isArray(row))
|
|
68
|
+
return false;
|
|
69
|
+
for (const group of row) {
|
|
70
|
+
if (!Array.isArray(group))
|
|
71
|
+
return false;
|
|
72
|
+
for (const alias of group) {
|
|
73
|
+
if (typeof alias !== 'string')
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
insertToolbarItem(alias, to) {
|
|
81
|
+
const toolbar = [...this.#toolbar.getValue()];
|
|
82
|
+
const [rowIndex, groupIndex, itemIndex] = to;
|
|
83
|
+
const row = toolbar[rowIndex];
|
|
84
|
+
const rowData = [...row.data];
|
|
85
|
+
const group = rowData[groupIndex];
|
|
86
|
+
const items = [...group.data];
|
|
87
|
+
items.splice(itemIndex, 0, alias);
|
|
88
|
+
this.#extensionsInUse.add(alias);
|
|
89
|
+
rowData[groupIndex] = { unique: group.unique, data: items };
|
|
90
|
+
toolbar[rowIndex] = { unique: row.unique, data: rowData };
|
|
91
|
+
this.#toolbar.setValue(toolbar);
|
|
92
|
+
}
|
|
93
|
+
insertToolbarGroup(rowIndex, groupIndex) {
|
|
94
|
+
const toolbar = [...this.#toolbar.getValue()];
|
|
95
|
+
const row = toolbar[rowIndex];
|
|
96
|
+
const groups = [...row.data];
|
|
97
|
+
groups.splice(groupIndex, 0, { unique: UmbId.new(), data: [] });
|
|
98
|
+
toolbar[rowIndex] = { unique: row.unique, data: groups };
|
|
99
|
+
this.#toolbar.setValue(toolbar);
|
|
100
|
+
}
|
|
101
|
+
insertToolbarRow(rowIndex) {
|
|
102
|
+
const toolbar = [...this.#toolbar.getValue()];
|
|
103
|
+
toolbar.splice(rowIndex, 0, { unique: UmbId.new(), data: [{ unique: UmbId.new(), data: [] }] });
|
|
104
|
+
this.#toolbar.setValue(toolbar);
|
|
105
|
+
}
|
|
106
|
+
moveToolbarItem(from, to) {
|
|
107
|
+
const [fromRowIndex, fromGroupIndex, fromItemIndex] = from;
|
|
108
|
+
const [toRowIndex, toGroupIndex, toItemIndex] = to;
|
|
109
|
+
const toolbar = [...this.#toolbar.getValue()];
|
|
110
|
+
const fromRow = toolbar[fromRowIndex];
|
|
111
|
+
const fromRowData = [...fromRow.data];
|
|
112
|
+
const fromGroup = fromRowData[fromGroupIndex];
|
|
113
|
+
const fromItems = [...fromGroup.data];
|
|
114
|
+
const toBeMoved = fromItems.splice(fromItemIndex, 1);
|
|
115
|
+
fromRowData[fromGroupIndex] = { unique: fromGroup.unique, data: fromItems };
|
|
116
|
+
toolbar[fromRowIndex] = { unique: fromRow.unique, data: fromRowData };
|
|
117
|
+
const toRow = toolbar[toRowIndex];
|
|
118
|
+
const toRowData = [...toRow.data];
|
|
119
|
+
const toGroup = toRowData[toGroupIndex];
|
|
120
|
+
const toItems = [...toGroup.data];
|
|
121
|
+
toItems.splice(toItemIndex, 0, toBeMoved[0]);
|
|
122
|
+
toRowData[toGroupIndex] = { unique: toGroup.unique, data: toItems };
|
|
123
|
+
toolbar[toRowIndex] = { unique: toRow.unique, data: toRowData };
|
|
124
|
+
this.#toolbar.setValue(toolbar);
|
|
125
|
+
}
|
|
126
|
+
removeToolbarItem(from) {
|
|
127
|
+
const [rowIndex, groupIndex, itemIndex] = from;
|
|
128
|
+
const toolbar = [...this.#toolbar.getValue()];
|
|
129
|
+
const row = toolbar[rowIndex];
|
|
130
|
+
const rowData = [...row.data];
|
|
131
|
+
const group = rowData[groupIndex];
|
|
132
|
+
const items = [...group.data];
|
|
133
|
+
const removed = items.splice(itemIndex, 1);
|
|
134
|
+
removed.forEach((alias) => this.#extensionsInUse.delete(alias));
|
|
135
|
+
rowData[groupIndex] = { unique: group.unique, data: items };
|
|
136
|
+
toolbar[rowIndex] = { unique: row.unique, data: rowData };
|
|
137
|
+
this.#toolbar.setValue(toolbar);
|
|
138
|
+
}
|
|
139
|
+
removeToolbarGroup(rowIndex, groupIndex) {
|
|
140
|
+
const toolbar = [...this.#toolbar.getValue()];
|
|
141
|
+
if (toolbar[rowIndex].data.length > groupIndex) {
|
|
142
|
+
const row = toolbar[rowIndex];
|
|
143
|
+
const groups = [...row.data];
|
|
144
|
+
const removed = groups.splice(groupIndex, 1);
|
|
145
|
+
removed.forEach((group) => group.data.forEach((alias) => this.#extensionsInUse.delete(alias)));
|
|
146
|
+
toolbar[rowIndex] = { unique: row.unique, data: groups };
|
|
147
|
+
}
|
|
148
|
+
// Prevent leaving an empty group
|
|
149
|
+
if (toolbar[rowIndex].data.length === 0) {
|
|
150
|
+
toolbar[rowIndex].data[0] = { unique: UmbId.new(), data: [] };
|
|
151
|
+
}
|
|
152
|
+
this.#toolbar.setValue(toolbar);
|
|
153
|
+
}
|
|
154
|
+
removeToolbarRow(rowIndex) {
|
|
155
|
+
const toolbar = [...this.#toolbar.getValue()];
|
|
156
|
+
if (toolbar.length > rowIndex) {
|
|
157
|
+
const removed = toolbar.splice(rowIndex, 1);
|
|
158
|
+
removed.forEach((row) => row.data.forEach((group) => group.data.forEach((alias) => this.#extensionsInUse.delete(alias))));
|
|
159
|
+
}
|
|
160
|
+
// Prevent leaving an empty row
|
|
161
|
+
if (toolbar.length === 0) {
|
|
162
|
+
toolbar[0] = { unique: UmbId.new(), data: [{ unique: UmbId.new(), data: [] }] };
|
|
163
|
+
}
|
|
164
|
+
this.#toolbar.setValue(toolbar);
|
|
165
|
+
}
|
|
166
|
+
setToolbar(value) {
|
|
167
|
+
if (!this.isValidToolbarValue(value)) {
|
|
168
|
+
value = [[[]]];
|
|
169
|
+
}
|
|
170
|
+
this.#extensionsInUse.clear();
|
|
171
|
+
value.forEach((row) => row.forEach((group) => group.forEach((alias) => this.#extensionsInUse.add(alias))));
|
|
172
|
+
const toolbar = value.map((row) => ({
|
|
173
|
+
unique: UmbId.new(),
|
|
174
|
+
data: row.map((group) => ({ unique: UmbId.new(), data: group })),
|
|
175
|
+
}));
|
|
176
|
+
this.#toolbar.setValue(toolbar);
|
|
177
|
+
}
|
|
178
|
+
updateToolbarRow(rowIndex, groups) {
|
|
179
|
+
const toolbar = [...this.#toolbar.getValue()];
|
|
180
|
+
const row = toolbar[rowIndex];
|
|
181
|
+
toolbar[rowIndex] = { unique: row.unique, data: groups };
|
|
182
|
+
this.#toolbar.setValue(toolbar);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
export const UMB_TIPTAP_TOOLBAR_CONFIGURATION_CONTEXT = new UmbContextToken('UmbTiptapToolbarConfigurationContext');
|
|
@@ -11,20 +11,24 @@ export const manifests = [
|
|
|
11
11
|
group: 'richContent',
|
|
12
12
|
settings: {
|
|
13
13
|
properties: [
|
|
14
|
-
{
|
|
15
|
-
alias: 'toolbar',
|
|
16
|
-
label: 'Toolbar',
|
|
17
|
-
description: 'Pick the toolbar items that should be available when editing',
|
|
18
|
-
propertyEditorUiAlias: 'Umb.PropertyEditorUi.Tiptap.ToolbarConfiguration',
|
|
19
|
-
weight: 5,
|
|
20
|
-
},
|
|
21
14
|
{
|
|
22
15
|
alias: 'extensions',
|
|
23
|
-
label: '
|
|
24
|
-
description:
|
|
16
|
+
label: 'Capabilities',
|
|
17
|
+
description: `Enable extensions enhance the capabilities of the Tiptap editor.
|
|
18
|
+
|
|
19
|
+
_Once enabled, the extensions will be available in the toolbar._`,
|
|
25
20
|
propertyEditorUiAlias: 'Umb.PropertyEditorUi.Tiptap.ExtensionsConfiguration',
|
|
26
21
|
weight: 10,
|
|
27
22
|
},
|
|
23
|
+
{
|
|
24
|
+
alias: 'toolbar',
|
|
25
|
+
label: 'Toolbar',
|
|
26
|
+
description: `Configure the toolbar for the intended editing experience.
|
|
27
|
+
|
|
28
|
+
_Drag and drop the available items onto the toolbar designer._`,
|
|
29
|
+
propertyEditorUiAlias: 'Umb.PropertyEditorUi.Tiptap.ToolbarConfiguration',
|
|
30
|
+
weight: 15,
|
|
31
|
+
},
|
|
28
32
|
{
|
|
29
33
|
alias: 'dimensions',
|
|
30
34
|
label: 'Dimensions',
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type UmbTiptapToolbarExtension = {
|
|
2
|
+
alias: string;
|
|
3
|
+
label: string;
|
|
4
|
+
icon: string;
|
|
5
|
+
dependencies?: Array<string>;
|
|
6
|
+
};
|
|
7
|
+
export type UmbTiptapToolbarSortableViewModel<T> = {
|
|
8
|
+
unique: string;
|
|
9
|
+
data: T;
|
|
10
|
+
};
|
|
11
|
+
export type UmbTiptapToolbarRowViewModel = UmbTiptapToolbarSortableViewModel<Array<UmbTiptapToolbarGroupViewModel>>;
|
|
12
|
+
export type UmbTiptapToolbarGroupViewModel = UmbTiptapToolbarSortableViewModel<Array<string>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -17,7 +17,7 @@ export interface UmbCurrentUserAction<ArgsMetaType = never> extends UmbAction<Um
|
|
|
17
17
|
*/
|
|
18
18
|
execute(): Promise<void>;
|
|
19
19
|
}
|
|
20
|
-
export interface ManifestCurrentUserAction<MetaType extends MetaCurrentUserAction = MetaCurrentUserAction> extends ManifestElementAndApi<UmbControllerHostElement, UmbCurrentUserAction<MetaType>>, ManifestWithDynamicConditions<
|
|
20
|
+
export interface ManifestCurrentUserAction<MetaType extends MetaCurrentUserAction = MetaCurrentUserAction> extends ManifestElementAndApi<UmbControllerHostElement, UmbCurrentUserAction<MetaType>>, ManifestWithDynamicConditions<UmbExtensionConditionConfig> {
|
|
21
21
|
type: 'currentUserAction';
|
|
22
22
|
meta: MetaType;
|
|
23
23
|
}
|