@umbraco-cms/backoffice 1.0.0-next.92acfa89 → 1.0.0-next.93ea2ba6
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-main.element.js +1 -1
- package/dist-cms/css/umb-css.css +1 -0
- package/dist-cms/custom-elements.json +49 -47
- package/dist-cms/mocks/data/data-type.data.js +36 -37
- package/dist-cms/mocks/data/document-type.data.js +19 -0
- package/dist-cms/mocks/data/template.data.d.ts +26 -2
- package/dist-cms/mocks/data/template.data.js +82 -5
- package/dist-cms/mocks/handlers/manifests.handlers.js +1 -1
- package/dist-cms/mocks/handlers/template.handlers.js +24 -4
- package/dist-cms/packages/core/collection/collection.element.js +1 -1
- package/dist-cms/packages/core/components/body-layout/body-layout.element.d.ts +3 -2
- package/dist-cms/packages/core/components/body-layout/body-layout.element.js +26 -6
- package/dist-cms/packages/core/components/code-editor/code-editor.element.d.ts +2 -2
- package/dist-cms/packages/core/components/code-editor/code-editor.element.js +3 -3
- package/dist-cms/packages/core/components/code-editor/code-editor.model.d.ts +5 -5
- package/dist-cms/packages/core/components/data-type/data-type-property-collection.class.d.ts +1 -0
- package/dist-cms/packages/core/components/data-type/data-type-property-collection.class.js +3 -0
- package/dist-cms/packages/core/components/footer-layout/footer-layout.element.js +1 -1
- package/dist-cms/packages/core/components/index.js +1 -2
- package/dist-cms/packages/core/components/property-editor-config/property-editor-config.element.d.ts +2 -2
- package/dist-cms/packages/core/components/property-editor-config/property-editor-config.element.js +16 -13
- package/dist-cms/packages/core/components/property-type-based-property/property-type-based-property.element.js +12 -1
- package/dist-cms/packages/core/components/table/table.element.js +1 -2
- package/dist-cms/packages/core/extension-registry/models/index.d.ts +2 -2
- package/dist-cms/packages/core/extension-registry/models/property-editor.model.d.ts +13 -10
- package/dist-cms/packages/core/modal/common/tree-picker/tree-picker-modal.element.js +0 -4
- package/dist-cms/packages/core/modal/token/allowed-document-types-modal.token.d.ts +2 -1
- package/dist-cms/packages/core/modal/token/dictionary-item-picker-modal.token.d.ts +5 -9
- package/dist-cms/packages/core/modal/token/dictionary-item-picker-modal.token.js +3 -1
- package/dist-cms/packages/core/property-actions/manifests.js +2 -2
- package/dist-cms/packages/core/property-editors/manifests.d.ts +1 -1
- package/dist-cms/packages/core/property-editors/models/Umbraco.BlockGrid.js +7 -6
- package/dist-cms/packages/core/property-editors/models/Umbraco.BlockList.js +4 -3
- package/dist-cms/packages/core/property-editors/models/Umbraco.CheckboxList.js +3 -1
- package/dist-cms/packages/core/property-editors/models/Umbraco.ColorPicker.EyeDropper.js +3 -1
- package/dist-cms/packages/core/property-editors/models/Umbraco.ColorPicker.js +4 -3
- package/dist-cms/packages/core/property-editors/models/Umbraco.DateTime.js +17 -2
- package/dist-cms/packages/core/property-editors/models/Umbraco.Decimal.js +5 -4
- package/dist-cms/packages/core/property-editors/models/Umbraco.Dropdown.Flexible.js +3 -1
- package/dist-cms/packages/core/property-editors/models/Umbraco.EmailAddress.js +3 -1
- package/dist-cms/packages/core/property-editors/models/Umbraco.IconPicker.d.ts +2 -0
- package/dist-cms/packages/core/property-editors/models/Umbraco.IconPicker.js +8 -0
- package/dist-cms/packages/core/property-editors/models/Umbraco.ImageCropper.js +3 -2
- package/dist-cms/packages/core/property-editors/models/Umbraco.Integer.js +5 -4
- package/dist-cms/packages/core/property-editors/models/Umbraco.JSON.js +3 -1
- package/dist-cms/packages/core/property-editors/models/Umbraco.Label.js +3 -2
- package/dist-cms/packages/core/property-editors/models/Umbraco.ListView.js +7 -6
- package/dist-cms/packages/core/property-editors/models/Umbraco.MarkdownEditor.js +3 -1
- package/dist-cms/packages/core/property-editors/models/Umbraco.MediaPicker3.js +9 -8
- package/dist-cms/packages/core/property-editors/models/Umbraco.MemberGroupPicker.js +3 -1
- package/dist-cms/packages/core/property-editors/models/Umbraco.MemberPicker.js +3 -1
- package/dist-cms/packages/core/property-editors/models/Umbraco.MultiNodeTreePicker.js +5 -4
- package/dist-cms/packages/core/property-editors/models/Umbraco.MultiUrlPicker.js +5 -4
- package/dist-cms/packages/core/property-editors/models/Umbraco.MultipleTextString.js +4 -3
- package/dist-cms/packages/core/property-editors/models/Umbraco.RadioButtonList.js +3 -1
- package/dist-cms/packages/core/property-editors/models/Umbraco.Slider.js +4 -3
- package/dist-cms/packages/core/property-editors/models/Umbraco.Tags.js +4 -3
- package/dist-cms/packages/core/property-editors/models/Umbraco.TextArea.js +3 -2
- package/dist-cms/packages/core/property-editors/models/Umbraco.TextBox.js +3 -2
- package/dist-cms/packages/core/property-editors/models/Umbraco.TinyMCE.js +4 -3
- package/dist-cms/packages/core/property-editors/models/Umbraco.TrueFalse.js +3 -1
- package/dist-cms/packages/core/property-editors/models/Umbraco.UploadField.js +3 -2
- package/dist-cms/packages/core/property-editors/models/Umbraco.UserPicker.js +3 -1
- package/dist-cms/packages/core/property-editors/models/manifests.js +43 -47
- package/dist-cms/packages/core/property-editors/uis/block-grid/config/block-configuration/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/block-grid/config/block-configuration/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/block-grid/config/group-configuration/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/block-grid/config/group-configuration/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/block-grid/config/stylesheet-picker/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/block-grid/config/stylesheet-picker/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/block-grid/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/block-grid/manifests.js +7 -7
- package/dist-cms/packages/core/property-editors/uis/block-list/config/block-configuration/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/block-list/config/block-configuration/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/block-list/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/block-list/manifests.js +8 -8
- package/dist-cms/packages/core/property-editors/uis/checkbox-list/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/checkbox-list/manifests.js +5 -5
- package/dist-cms/packages/core/property-editors/uis/collection-view/config/bulk-action-permissions/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/collection-view/config/bulk-action-permissions/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/collection-view/config/column-configuration/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/collection-view/config/column-configuration/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/collection-view/config/layout-configuration/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/collection-view/config/layout-configuration/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/collection-view/config/order-by/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/collection-view/config/order-by/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/collection-view/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/collection-view/manifests.js +9 -9
- package/dist-cms/packages/core/property-editors/uis/color-picker/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/color-picker/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/date-picker/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/date-picker/manifests.js +5 -15
- package/dist-cms/packages/core/property-editors/uis/dropdown/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/dropdown/manifests.js +6 -6
- package/dist-cms/packages/core/property-editors/uis/eye-dropper/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/eye-dropper/manifests.js +6 -6
- package/dist-cms/packages/core/property-editors/uis/icon-picker/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/icon-picker/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/image-cropper/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/image-cropper/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/image-crops-configuration/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/image-crops-configuration/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/label/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/label/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/markdown-editor/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/markdown-editor/manifests.js +7 -7
- package/dist-cms/packages/core/property-editors/uis/media-picker/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/media-picker/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/member-group-picker/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/member-group-picker/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/member-picker/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/member-picker/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/multi-url-picker/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/multi-url-picker/manifests.js +6 -6
- package/dist-cms/packages/core/property-editors/uis/multiple-text-string/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/multiple-text-string/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/number/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/number/manifests.js +9 -9
- package/dist-cms/packages/core/property-editors/uis/number-range/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/number-range/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/order-direction/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/order-direction/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/overlay-size/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/overlay-size/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/radio-button-list/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/radio-button-list/manifests.js +5 -5
- package/dist-cms/packages/core/property-editors/uis/slider/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/slider/manifests.js +8 -8
- package/dist-cms/packages/core/property-editors/uis/text-box/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/text-box/manifests.js +9 -9
- package/dist-cms/packages/core/property-editors/uis/textarea/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/textarea/manifests.js +7 -7
- package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/configuration/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/tiny-mce/config/configuration/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/tiny-mce/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/tiny-mce/manifests.js +7 -7
- package/dist-cms/packages/core/property-editors/uis/toggle/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/toggle/manifests.js +8 -8
- package/dist-cms/packages/core/property-editors/uis/tree-picker/config/start-node/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/tree-picker/config/start-node/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/tree-picker/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/tree-picker/manifests.js +7 -7
- package/dist-cms/packages/core/property-editors/uis/upload-field/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/upload-field/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/user-picker/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/user-picker/manifests.js +3 -3
- package/dist-cms/packages/core/property-editors/uis/value-type/manifests.d.ts +2 -2
- package/dist-cms/packages/core/property-editors/uis/value-type/manifests.js +3 -3
- package/dist-cms/packages/core/section/section-main/section-main.element.js +2 -2
- package/dist-cms/packages/core/section/section-sidebar/section-sidebar.element.js +1 -1
- package/dist-cms/packages/core/section/section-sidebar-context-menu/section-sidebar-context-menu.element.js +11 -2
- package/dist-cms/packages/core/section/section-views/section-views.element.js +15 -6
- package/dist-cms/packages/core/tree/index.d.ts +0 -1
- package/dist-cms/packages/core/tree/index.js +0 -1
- package/dist-cms/packages/core/tree/tree.element.d.ts +0 -2
- package/dist-cms/packages/core/tree/tree.element.js +0 -2
- package/dist-cms/packages/core/workspace/index.d.ts +1 -0
- package/dist-cms/packages/core/workspace/index.js +1 -0
- package/dist-cms/packages/core/workspace/workspace-editor/workspace-editor.element.js +2 -2
- package/dist-cms/packages/core/workspace/workspace-footer/index.d.ts +1 -0
- package/dist-cms/packages/core/workspace/workspace-footer/index.js +1 -0
- package/dist-cms/packages/core/workspace/workspace-property/workspace-property.context.d.ts +1 -1
- package/dist-cms/packages/core/workspace/workspace-property/workspace-property.element.d.ts +1 -1
- package/dist-cms/packages/core/workspace/workspace-property/workspace-property.element.js +1 -1
- package/dist-cms/packages/core/workspace/workspace-variant/index.d.ts +1 -0
- package/dist-cms/packages/core/workspace/workspace-variant/index.js +1 -0
- package/dist-cms/packages/documents/dashboards/redirect-management/dashboard-redirect-management.element.js +2 -2
- package/dist-cms/packages/documents/document-types/modals/allowed-document-types/allowed-document-types-modal.element.d.ts +3 -1
- package/dist-cms/packages/documents/document-types/modals/allowed-document-types/allowed-document-types-modal.element.js +21 -7
- package/dist-cms/packages/documents/document-types/workspace/document-type-workspace-editor.element.js +1 -1
- package/dist-cms/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit-tab.element.js +4 -2
- package/dist-cms/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.js +11 -7
- package/dist-cms/packages/documents/document-types/workspace/views/details/document-type-workspace-view-details.element.js +3 -2
- package/dist-cms/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.js +3 -3
- package/dist-cms/packages/documents/document-types/workspace/views/templates/document-type-workspace-view-templates.element.js +1 -1
- package/dist-cms/packages/documents/documents/entity-actions/create/create.action.d.ts +1 -0
- package/dist-cms/packages/documents/documents/entity-actions/create/create.action.js +14 -9
- package/dist-cms/packages/documents/documents/property-editors/Umbraco.ContentPicker.js +3 -2
- package/dist-cms/packages/documents/documents/property-editors/document-picker/manifests.d.ts +2 -2
- package/dist-cms/packages/documents/documents/property-editors/document-picker/manifests.js +7 -7
- package/dist-cms/packages/documents/documents/workspace/manifests.js +4 -4
- package/dist-cms/packages/documents/documents/workspace/views/edit/document-workspace-view-edit-tab.element.js +3 -2
- package/dist-cms/packages/documents/documents/workspace/views/info/document-info-workspace-view.element.js +1 -1
- package/dist-cms/packages/media/media/workspace/{media-workspace-edit.element.d.ts → media-workspace-editor.element.d.ts} +3 -3
- package/dist-cms/packages/media/media/workspace/{media-workspace-edit.element.js → media-workspace-editor.element.js} +7 -7
- package/dist-cms/packages/media/media/workspace/media-workspace.element.js +2 -2
- package/dist-cms/packages/media/media-types/workspace/{media-type-workspace-edit.element.d.ts → media-type-workspace-editor.element.d.ts} +3 -3
- package/dist-cms/packages/media/media-types/workspace/{media-type-workspace-edit.element.js → media-type-workspace-editor.element.js} +7 -7
- package/dist-cms/packages/media/media-types/workspace/media-type-workspace.element.js +2 -2
- package/dist-cms/packages/members/dashboards/welcome/dashboard-members-welcome.element.js +1 -1
- package/dist-cms/packages/members/member-groups/workspace/{member-group-workspace-edit.element.d.ts → member-group-workspace-editor.element.d.ts} +3 -3
- package/dist-cms/packages/members/member-groups/workspace/{member-group-workspace-edit.element.js → member-group-workspace-editor.element.js} +7 -7
- package/dist-cms/packages/members/member-groups/workspace/member-group-workspace.element.js +2 -2
- package/dist-cms/packages/members/member-types/workspace/{member-type-workspace-edit.element.d.ts → member-type-workspace-editor.element.d.ts} +3 -3
- package/dist-cms/packages/members/member-types/workspace/{member-type-workspace-edit.element.js → member-type-workspace-editor.element.js} +6 -6
- package/dist-cms/packages/members/member-types/workspace/member-type-workspace.element.js +2 -2
- package/dist-cms/packages/members/members/workspace/{member-workspace-edit.element.d.ts → member-workspace-editor.element.d.ts} +3 -3
- package/dist-cms/packages/members/members/workspace/{member-workspace-edit.element.js → member-workspace-editor.element.js} +6 -6
- package/dist-cms/packages/members/members/workspace/member-workspace.element.js +2 -2
- package/dist-cms/packages/packages/package-section/views/created/packages-created-overview.element.js +1 -1
- package/dist-cms/packages/packages/package-section/views/installed/installed-packages-section-view.element.js +1 -1
- package/dist-cms/packages/search/examine-management-dashboard/views/section-view-examine-overview.js +1 -1
- package/dist-cms/packages/settings/dashboards/health-check/views/health-check-overview.element.js +1 -1
- package/dist-cms/packages/settings/dashboards/models-builder/dashboard-models-builder.element.js +1 -1
- package/dist-cms/packages/settings/dashboards/performance-profiling/dashboard-performance-profiling.element.js +1 -1
- package/dist-cms/packages/settings/dashboards/published-status/dashboard-published-status.element.js +1 -1
- package/dist-cms/packages/settings/dashboards/settings-welcome/dashboard-settings-welcome.element.js +1 -1
- package/dist-cms/packages/settings/dashboards/telemetry/dashboard-telemetry.element.js +1 -1
- package/dist-cms/packages/settings/data-types/modals/data-type-picker-flow/data-type-picker-flow-modal.element.js +2 -2
- package/dist-cms/packages/settings/data-types/modals/property-editor-ui-picker/property-editor-ui-picker-modal.element.js +3 -3
- package/dist-cms/packages/settings/data-types/repository/data-type.repository.d.ts +1 -1
- package/dist-cms/packages/settings/data-types/repository/data-type.store.d.ts +2 -2
- package/dist-cms/packages/settings/data-types/workspace/{data-type-workspace-edit.element.d.ts → data-type-workspace-editor.element.d.ts} +4 -4
- package/dist-cms/packages/settings/data-types/workspace/{data-type-workspace-edit.element.js → data-type-workspace-editor.element.js} +9 -9
- package/dist-cms/packages/settings/data-types/workspace/data-type-workspace.element.d.ts +1 -1
- package/dist-cms/packages/settings/data-types/workspace/data-type-workspace.element.js +2 -2
- package/dist-cms/packages/settings/data-types/workspace/views/details/data-type-details-workspace-view.element.d.ts +5 -4
- package/dist-cms/packages/settings/data-types/workspace/views/details/data-type-details-workspace-view.element.js +41 -22
- package/dist-cms/packages/settings/data-types/workspace/views/info/workspace-view-data-type-info.element.js +1 -1
- package/dist-cms/packages/settings/languages/app-language-select/app-language-select.element.js +6 -3
- package/dist-cms/packages/settings/languages/workspace/language/{language-workspace-edit.element.d.ts → language-workspace-editor.element.d.ts} +3 -3
- package/dist-cms/packages/settings/languages/workspace/language/{language-workspace-edit.element.js → language-workspace-editor.element.js} +10 -10
- package/dist-cms/packages/settings/languages/workspace/language/language-workspace.element.d.ts +1 -1
- package/dist-cms/packages/settings/languages/workspace/language/language-workspace.element.js +2 -2
- package/dist-cms/packages/settings/logviewer/components/index.d.ts +1 -1
- package/dist-cms/packages/settings/logviewer/components/index.js +1 -1
- package/dist-cms/packages/settings/logviewer/workspace/logviewer-root/logviewer-root-workspace.element.d.ts +1 -0
- package/dist-cms/packages/settings/logviewer/workspace/logviewer-root/logviewer-root-workspace.element.js +1 -0
- package/dist-cms/packages/settings/relation-types/workspace/{relation-type-workspace-edit.element.d.ts → relation-type-workspace-editor.element.d.ts} +4 -4
- package/dist-cms/packages/settings/relation-types/workspace/{relation-type-workspace-edit.element.js → relation-type-workspace-editor.element.js} +8 -8
- package/dist-cms/packages/settings/relation-types/workspace/relation-type-workspace.element.d.ts +1 -1
- package/dist-cms/packages/settings/relation-types/workspace/relation-type-workspace.element.js +2 -2
- package/dist-cms/packages/tags/property-editors/tags/config/storage-type/manifests.d.ts +2 -2
- package/dist-cms/packages/tags/property-editors/tags/config/storage-type/manifests.js +3 -3
- package/dist-cms/packages/tags/property-editors/tags/manifests.d.ts +2 -2
- package/dist-cms/packages/tags/property-editors/tags/manifests.js +3 -3
- package/dist-cms/packages/templating/components/insert-menu/templating-insert-menu.element.js +29 -17
- package/dist-cms/packages/templating/index.d.ts +1 -1
- package/dist-cms/packages/templating/index.js +1 -1
- package/dist-cms/packages/templating/modals/insert-choose-type-sidebar.element.js +26 -24
- package/dist-cms/packages/templating/modals/insert-section-modal/insert-section-input.element.d.ts +3 -1
- package/dist-cms/packages/templating/modals/insert-section-modal/insert-section-input.element.js +9 -0
- package/dist-cms/packages/templating/modals/insert-section-modal/insert-section-modal.element.d.ts +4 -3
- package/dist-cms/packages/templating/modals/insert-section-modal/insert-section-modal.element.js +23 -8
- package/dist-cms/packages/templating/modals/insert-value-sidebar.element.js +1 -0
- package/dist-cms/packages/templating/modals/partial-view-picker-modal.element.js +1 -0
- package/dist-cms/packages/templating/stylesheets/menu-item/manifests.js +1 -1
- package/dist-cms/packages/templating/templates/components/alias-input/alias-input.d.ts +14 -0
- package/dist-cms/packages/templating/templates/components/alias-input/alias-input.js +82 -0
- package/dist-cms/packages/templating/templates/components/index.d.ts +1 -0
- package/dist-cms/packages/templating/templates/components/index.js +1 -0
- package/dist-cms/packages/templating/templates/entity-actions/manifests.js +3 -2
- package/dist-cms/packages/templating/templates/index.d.ts +4 -0
- package/dist-cms/packages/templating/templates/index.js +4 -0
- package/dist-cms/packages/templating/templates/repository/sources/template.detail.server.data.d.ts +11 -7
- package/dist-cms/packages/templating/templates/repository/sources/template.detail.server.data.js +19 -25
- package/dist-cms/packages/templating/templates/repository/template.repository.d.ts +18 -12
- package/dist-cms/packages/templating/templates/repository/template.repository.js +22 -14
- package/dist-cms/packages/templating/templates/repository/template.store.d.ts +1 -0
- package/dist-cms/packages/templating/templates/repository/template.store.js +3 -0
- package/dist-cms/packages/templating/templates/tree/manifests.js +2 -1
- package/dist-cms/packages/templating/templates/workspace/{template-workspace-edit.element.d.ts → template-workspace-editor.element.d.ts} +7 -3
- package/dist-cms/packages/templating/templates/workspace/template-workspace-editor.element.js +279 -0
- package/dist-cms/packages/templating/templates/workspace/template-workspace.context.d.ts +7 -1
- package/dist-cms/packages/templating/templates/workspace/template-workspace.context.js +84 -5
- package/dist-cms/packages/templating/templates/workspace/template-workspace.element.d.ts +1 -4
- package/dist-cms/packages/templating/templates/workspace/template-workspace.element.js +3 -38
- package/dist-cms/packages/translation/dashboards/dictionary/dashboard-translation-dictionary.element.js +2 -4
- package/dist-cms/packages/translation/dictionary/workspace/{dictionary-workspace-edit.element.d.ts → dictionary-workspace-editor.element.d.ts} +3 -3
- package/dist-cms/packages/translation/dictionary/workspace/{dictionary-workspace-edit.element.js → dictionary-workspace-editor.element.js} +7 -7
- package/dist-cms/packages/translation/dictionary/workspace/dictionary-workspace.element.js +2 -2
- package/dist-cms/packages/translation/dictionary/workspace/manifests.js +1 -1
- package/dist-cms/packages/translation/dictionary/workspace/views/{edit/workspace-view-dictionary-edit.element.d.ts → editor/workspace-view-dictionary-editor.element.d.ts} +3 -3
- package/dist-cms/packages/translation/dictionary/workspace/views/{edit/workspace-view-dictionary-edit.element.js → editor/workspace-view-dictionary-editor.element.js} +8 -8
- package/dist-cms/packages/translation/index.js +1 -2
- package/dist-cms/packages/umbraco-news/umbraco-news-dashboard.element.js +1 -1
- package/dist-cms/packages/users/user-groups/collection/user-group-collection.element.js +1 -10
- package/dist-cms/packages/users/user-groups/workspace/{user-group-workspace-edit.element.d.ts → user-group-workspace-editor.element.d.ts} +3 -3
- package/dist-cms/packages/users/user-groups/workspace/{user-group-workspace-edit.element.js → user-group-workspace-editor.element.js} +8 -8
- package/dist-cms/packages/users/user-groups/workspace/user-group-workspace.element.js +2 -2
- package/dist-cms/packages/users/users/workspace/{user-workspace-edit.element.d.ts → user-workspace-editor.element.d.ts} +3 -3
- package/dist-cms/packages/users/users/workspace/{user-workspace-edit.element.js → user-workspace-editor.element.js} +9 -9
- package/dist-cms/packages/users/users/workspace/user-workspace.element.js +2 -2
- package/dist-cms/shared/repository/detail-repository.interface.d.ts +2 -2
- package/dist-cms/shared/router/router-slot.element.js +1 -2
- package/dist-cms/tsconfig.tsbuildinfo +1 -1
- package/dist-cms/umbraco-package-schema.json +58 -40
- package/dist-cms/vscode-html-custom-data.json +23 -27
- package/package.json +5 -4
- package/dist-cms/packages/core/tree/context-menu/index.d.ts +0 -2
- package/dist-cms/packages/core/tree/context-menu/index.js +0 -2
- package/dist-cms/packages/core/tree/context-menu/tree-context-menu-page.service.d.ts +0 -23
- package/dist-cms/packages/core/tree/context-menu/tree-context-menu-page.service.js +0 -69
- package/dist-cms/packages/core/tree/context-menu/tree-context-menu.service.d.ts +0 -19
- package/dist-cms/packages/core/tree/context-menu/tree-context-menu.service.js +0 -100
- package/dist-cms/packages/tags/property-editors/Umbraco.Tags.d.ts +0 -2
- package/dist-cms/packages/tags/property-editors/Umbraco.Tags.js +0 -17
- package/dist-cms/packages/templating/templates/workspace/template-workspace-edit.element.js +0 -164
- package/dist-cms/packages/translation/modals/dictionary-item-picker/dictionary-item-picker-modal.element.d.ts +0 -17
- package/dist-cms/packages/translation/modals/dictionary-item-picker/dictionary-item-picker-modal.element.js +0 -85
- package/dist-cms/packages/translation/modals/manifests.d.ts +0 -2
- package/dist-cms/packages/translation/modals/manifests.js +0 -10
package/dist-cms/packages/templating/templates/repository/sources/template.detail.server.data.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { UmbId } from '../../../../core/id/index.js';
|
|
2
1
|
import { TemplateResource, } from '../../../../../external/backend-api/index.js';
|
|
3
2
|
import { tryExecuteAndNotify } from '../../../../../shared/resources/index.js';
|
|
4
3
|
/**
|
|
@@ -24,8 +23,21 @@ export class UmbTemplateDetailServerDataSource {
|
|
|
24
23
|
* @memberof UmbTemplateDetailServerDataSource
|
|
25
24
|
*/
|
|
26
25
|
get(id) {
|
|
26
|
+
if (!id)
|
|
27
|
+
throw new Error('Id is missing');
|
|
27
28
|
return tryExecuteAndNotify(this.#host, TemplateResource.getTemplateById({ id }));
|
|
28
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Gets template item - you can get name and id from that
|
|
32
|
+
* @param {string} id
|
|
33
|
+
* @return {*}
|
|
34
|
+
* @memberof UmbTemplateDetailServerDataSource
|
|
35
|
+
*/
|
|
36
|
+
async getItem(id) {
|
|
37
|
+
if (!id)
|
|
38
|
+
throw new Error('Id is missing');
|
|
39
|
+
return await tryExecuteAndNotify(this.#host, TemplateResource.getTemplateItem({ id: id }));
|
|
40
|
+
}
|
|
29
41
|
/**
|
|
30
42
|
* Creates a new Template scaffold
|
|
31
43
|
* @param {(string | null)} parentId
|
|
@@ -33,28 +45,10 @@ export class UmbTemplateDetailServerDataSource {
|
|
|
33
45
|
* @memberof UmbTemplateDetailServerDataSource
|
|
34
46
|
*/
|
|
35
47
|
async createScaffold() {
|
|
36
|
-
|
|
37
|
-
const data = {
|
|
38
|
-
$type: '',
|
|
39
|
-
id: UmbId.new(),
|
|
40
|
-
name: '',
|
|
41
|
-
alias: '',
|
|
42
|
-
content: '',
|
|
43
|
-
};
|
|
44
|
-
// TODO: update when backend is updated so we don't have to do two calls
|
|
45
|
-
/*
|
|
46
|
-
// TODO: Revisit template models, masterTemplateAlias is not here anymore?
|
|
47
|
-
const { data: scaffoldData, error: scaffoldError } = await tryExecuteAndNotify(
|
|
48
|
-
this.#host,
|
|
49
|
-
TemplateResource.getTemplateScaffold()
|
|
50
|
-
);
|
|
51
|
-
*/
|
|
52
|
-
//error = scaffoldError;
|
|
53
|
-
//data.content = scaffoldData?.content || '';
|
|
54
|
-
return { data, error };
|
|
48
|
+
return await tryExecuteAndNotify(this.#host, TemplateResource.getTemplateScaffold());
|
|
55
49
|
}
|
|
56
50
|
/**
|
|
57
|
-
*
|
|
51
|
+
* Creates a new Template on the server
|
|
58
52
|
* @param {Template} template
|
|
59
53
|
* @return {*}
|
|
60
54
|
* @memberof UmbTemplateDetailServerDataSource
|
|
@@ -62,7 +56,7 @@ export class UmbTemplateDetailServerDataSource {
|
|
|
62
56
|
async insert(template) {
|
|
63
57
|
if (!template)
|
|
64
58
|
throw new Error('Template is missing');
|
|
65
|
-
return
|
|
59
|
+
return await tryExecuteAndNotify(this.#host, TemplateResource.postTemplate({ requestBody: template }));
|
|
66
60
|
}
|
|
67
61
|
/**
|
|
68
62
|
* Updates a Template on the server
|
|
@@ -72,10 +66,10 @@ export class UmbTemplateDetailServerDataSource {
|
|
|
72
66
|
*/
|
|
73
67
|
async update(id, template) {
|
|
74
68
|
if (!id)
|
|
75
|
-
throw new Error('
|
|
69
|
+
throw new Error('You need to pass template id to update it');
|
|
76
70
|
if (!template)
|
|
77
71
|
throw new Error('Template is missing');
|
|
78
|
-
return tryExecuteAndNotify(this.#host, TemplateResource.putTemplateById({ id, requestBody: template }));
|
|
72
|
+
return await tryExecuteAndNotify(this.#host, TemplateResource.putTemplateById({ id, requestBody: template }));
|
|
79
73
|
}
|
|
80
74
|
/**
|
|
81
75
|
* Deletes a Template on the server
|
|
@@ -85,7 +79,7 @@ export class UmbTemplateDetailServerDataSource {
|
|
|
85
79
|
*/
|
|
86
80
|
async delete(id) {
|
|
87
81
|
if (!id)
|
|
88
|
-
throw new Error('
|
|
82
|
+
throw new Error('You need to pass template id to delete it');
|
|
89
83
|
return await tryExecuteAndNotify(this.#host, TemplateResource.deleteTemplateById({ id }));
|
|
90
84
|
}
|
|
91
85
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { UmbDetailRepository, UmbTreeRepository } from '../../../../shared/repository/index.js';
|
|
1
|
+
import type { UmbDetailRepository, UmbItemRepository, UmbTreeRepository } from '../../../../shared/repository/index.js';
|
|
2
2
|
import type { UmbControllerHostElement } from '../../../../libs/controller-api/index.js';
|
|
3
|
-
import { CreateTemplateRequestModel, EntityTreeItemResponseModel, TemplateResponseModel, UpdateTemplateRequestModel } from '../../../../external/backend-api/index.js';
|
|
4
|
-
|
|
3
|
+
import { CreateTemplateRequestModel, EntityTreeItemResponseModel, ItemResponseModelBaseModel, TemplateItemResponseModel, TemplateResponseModel, UpdateTemplateRequestModel } from '../../../../external/backend-api/index.js';
|
|
4
|
+
import { Observable } from 'rxjs';
|
|
5
|
+
export declare class UmbTemplateRepository implements UmbTreeRepository<EntityTreeItemResponseModel>, UmbDetailRepository<CreateTemplateRequestModel, string, UpdateTemplateRequestModel, TemplateResponseModel>, UmbItemRepository<TemplateItemResponseModel> {
|
|
5
6
|
#private;
|
|
6
7
|
constructor(host: UmbControllerHostElement);
|
|
7
8
|
requestTreeRoot(): Promise<{
|
|
@@ -16,28 +17,33 @@ export declare class UmbTemplateRepository implements UmbTreeRepository<EntityTr
|
|
|
16
17
|
requestRootTreeItems(): Promise<{
|
|
17
18
|
data: import("../../../../shared/repository/index.js").UmbPagedData<EntityTreeItemResponseModel> | undefined;
|
|
18
19
|
error: import("../../../../external/backend-api/index.js").ApiError | import("../../../../external/backend-api/index.js").CancelError | undefined;
|
|
19
|
-
asObservable: () =>
|
|
20
|
+
asObservable: () => Observable<EntityTreeItemResponseModel[]>;
|
|
20
21
|
}>;
|
|
21
22
|
requestTreeItemsOf(parentId: string | null): Promise<{
|
|
22
23
|
data: import("../../../../shared/repository/index.js").UmbPagedData<EntityTreeItemResponseModel> | undefined;
|
|
23
24
|
error: import("../../../../external/backend-api/index.js").ApiError | import("../../../../external/backend-api/index.js").CancelError | undefined;
|
|
24
|
-
asObservable: () =>
|
|
25
|
+
asObservable: () => Observable<EntityTreeItemResponseModel[]>;
|
|
25
26
|
}>;
|
|
26
27
|
requestItemsLegacy(ids: Array<string>): Promise<{
|
|
27
28
|
data: any[] | undefined;
|
|
28
29
|
error: import("../../../../external/backend-api/index.js").ApiError | import("../../../../external/backend-api/index.js").CancelError | undefined;
|
|
29
|
-
asObservable: () =>
|
|
30
|
+
asObservable: () => Observable<EntityTreeItemResponseModel[]>;
|
|
30
31
|
}>;
|
|
31
|
-
rootTreeItems(): Promise<
|
|
32
|
-
treeItemsOf(parentId: string | null): Promise<
|
|
33
|
-
itemsLegacy(ids: Array<string | null>): Promise<
|
|
34
|
-
createScaffold(
|
|
32
|
+
rootTreeItems(): Promise<Observable<EntityTreeItemResponseModel[]>>;
|
|
33
|
+
treeItemsOf(parentId: string | null): Promise<Observable<EntityTreeItemResponseModel[]>>;
|
|
34
|
+
itemsLegacy(ids: Array<string | null>): Promise<Observable<EntityTreeItemResponseModel[]>>;
|
|
35
|
+
createScaffold(): Promise<import("../../../../shared/repository/index.js").DataSourceResponse<import("../../../../external/backend-api/index.js").TemplateScaffoldResponseModel>>;
|
|
35
36
|
requestById(id: string): Promise<{
|
|
36
37
|
data: TemplateResponseModel | undefined;
|
|
37
38
|
error: import("../../../../external/backend-api/index.js").ApiError | import("../../../../external/backend-api/index.js").CancelError | undefined;
|
|
38
39
|
}>;
|
|
39
|
-
|
|
40
|
-
|
|
40
|
+
requestItems(id: string[]): Promise<{
|
|
41
|
+
data: ItemResponseModelBaseModel[] | undefined;
|
|
42
|
+
error: import("../../../../external/backend-api/index.js").ApiError | import("../../../../external/backend-api/index.js").CancelError | undefined;
|
|
43
|
+
}>;
|
|
44
|
+
items(uniques: string[]): Promise<Observable<ItemResponseModelBaseModel[]>>;
|
|
45
|
+
byId(id: string): Promise<Observable<any>>;
|
|
46
|
+
create(template: CreateTemplateRequestModel): Promise<{
|
|
41
47
|
error: import("../../../../external/backend-api/index.js").ApiError | import("../../../../external/backend-api/index.js").CancelError | undefined;
|
|
42
48
|
}>;
|
|
43
49
|
save(id: string, template: UpdateTemplateRequestModel): Promise<{
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { UmbTemplateDetailServerDataSource } from './sources/template.detail.server.data.js';
|
|
2
|
-
import { UmbTemplateTreeServerDataSource } from './sources/template.tree.server.data.js';
|
|
3
|
-
import { UMB_TEMPLATE_STORE_CONTEXT_TOKEN } from './template.store.js';
|
|
4
|
-
import { UMB_TEMPLATE_TREE_STORE_CONTEXT_TOKEN } from './template.tree.store.js';
|
|
5
1
|
import { UMB_NOTIFICATION_CONTEXT_TOKEN } from '../../../core/notification/index.js';
|
|
6
2
|
import { UmbContextConsumerController } from '../../../../libs/context-api/index.js';
|
|
3
|
+
import { UMB_TEMPLATE_TREE_STORE_CONTEXT_TOKEN } from './template.tree.store.js';
|
|
4
|
+
import { UMB_TEMPLATE_STORE_CONTEXT_TOKEN } from './template.store.js';
|
|
5
|
+
import { UmbTemplateTreeServerDataSource } from './sources/template.tree.server.data.js';
|
|
6
|
+
import { UmbTemplateDetailServerDataSource } from './sources/template.detail.server.data.js';
|
|
7
7
|
export class UmbTemplateRepository {
|
|
8
8
|
#init;
|
|
9
9
|
#host;
|
|
@@ -14,7 +14,6 @@ export class UmbTemplateRepository {
|
|
|
14
14
|
#notificationContext;
|
|
15
15
|
constructor(host) {
|
|
16
16
|
this.#host = host;
|
|
17
|
-
// TODO: figure out how spin up get the correct data source
|
|
18
17
|
this.#treeDataSource = new UmbTemplateTreeServerDataSource(this.#host);
|
|
19
18
|
this.#detailDataSource = new UmbTemplateDetailServerDataSource(this.#host);
|
|
20
19
|
this.#init = Promise.all([
|
|
@@ -29,7 +28,7 @@ export class UmbTemplateRepository {
|
|
|
29
28
|
}),
|
|
30
29
|
]);
|
|
31
30
|
}
|
|
32
|
-
|
|
31
|
+
//#region TREE:
|
|
33
32
|
async requestTreeRoot() {
|
|
34
33
|
await this.#init;
|
|
35
34
|
const data = {
|
|
@@ -79,12 +78,11 @@ export class UmbTemplateRepository {
|
|
|
79
78
|
await this.#init;
|
|
80
79
|
return this.#treeStore.items(ids);
|
|
81
80
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
throw new Error('Parent id is missing');
|
|
81
|
+
//#endregion
|
|
82
|
+
//#region DETAILS:
|
|
83
|
+
async createScaffold() {
|
|
86
84
|
await this.#init;
|
|
87
|
-
return this.#detailDataSource.createScaffold(
|
|
85
|
+
return this.#detailDataSource.createScaffold();
|
|
88
86
|
}
|
|
89
87
|
async requestById(id) {
|
|
90
88
|
await this.#init;
|
|
@@ -99,6 +97,17 @@ export class UmbTemplateRepository {
|
|
|
99
97
|
}
|
|
100
98
|
return { data, error };
|
|
101
99
|
}
|
|
100
|
+
async requestItems(id) {
|
|
101
|
+
await this.#init;
|
|
102
|
+
if (!id) {
|
|
103
|
+
throw new Error('Id is missing');
|
|
104
|
+
}
|
|
105
|
+
const { data, error } = await this.#detailDataSource.getItem(id);
|
|
106
|
+
return { data, error };
|
|
107
|
+
}
|
|
108
|
+
async items(uniques) {
|
|
109
|
+
throw new Error('items method is not implemented in UmbTemplateRepository');
|
|
110
|
+
}
|
|
102
111
|
async byId(id) {
|
|
103
112
|
if (!id)
|
|
104
113
|
throw new Error('Key is missing');
|
|
@@ -108,7 +117,7 @@ export class UmbTemplateRepository {
|
|
|
108
117
|
// Could potentially be general methods:
|
|
109
118
|
async create(template) {
|
|
110
119
|
await this.#init;
|
|
111
|
-
if (!template
|
|
120
|
+
if (!template) {
|
|
112
121
|
throw new Error('Template is missing');
|
|
113
122
|
}
|
|
114
123
|
const { error } = await this.#detailDataSource.insert(template);
|
|
@@ -118,7 +127,7 @@ export class UmbTemplateRepository {
|
|
|
118
127
|
}
|
|
119
128
|
// TODO: we currently don't use the detail store for anything.
|
|
120
129
|
// Consider to look up the data before fetching from the server
|
|
121
|
-
this.#store?.append(template);
|
|
130
|
+
//this.#store?.append({ ...template, $type: 'EntityTreeItemResponseModel' });
|
|
122
131
|
// TODO: Update tree store with the new item? or ask tree to request the new item?
|
|
123
132
|
return { error };
|
|
124
133
|
}
|
|
@@ -157,7 +166,6 @@ export class UmbTemplateRepository {
|
|
|
157
166
|
// Consider notify a workspace if a template is deleted from the store while someone is editing it.
|
|
158
167
|
this.#store?.remove([id]);
|
|
159
168
|
this.#treeStore?.removeItem(id);
|
|
160
|
-
// TODO: would be nice to align the stores on methods/methodNames.
|
|
161
169
|
return { error };
|
|
162
170
|
}
|
|
163
171
|
}
|
|
@@ -27,6 +27,7 @@ export declare class UmbTemplateStore extends UmbStoreBase {
|
|
|
27
27
|
* @memberof UmbTemplateStore
|
|
28
28
|
*/
|
|
29
29
|
byId(id: TemplateResponseModel['id']): import("rxjs").Observable<any>;
|
|
30
|
+
items(uniques: string[]): import("rxjs").Observable<any[]>;
|
|
30
31
|
/**
|
|
31
32
|
* Removes templates in the store with the given uniques
|
|
32
33
|
* @param {string[]} uniques
|
|
@@ -32,6 +32,9 @@ export class UmbTemplateStore extends UmbStoreBase {
|
|
|
32
32
|
byId(id) {
|
|
33
33
|
return this._data.getObservablePart((x) => x.find((y) => y.id === id));
|
|
34
34
|
}
|
|
35
|
+
items(uniques) {
|
|
36
|
+
return this._data.getObservablePart((x) => x.filter((y) => uniques.includes(y.id)));
|
|
37
|
+
}
|
|
35
38
|
/**
|
|
36
39
|
* Removes templates in the store with the given uniques
|
|
37
40
|
* @param {string[]} uniques
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TEMPLATE_ENTITY_TYPE, TEMPLATE_ROOT_ENTITY_TYPE } from '../index.js';
|
|
1
2
|
import { TEMPLATE_REPOSITORY_ALIAS } from '../repository/manifests.js';
|
|
2
3
|
const tree = {
|
|
3
4
|
type: 'tree',
|
|
@@ -13,7 +14,7 @@ const treeItem = {
|
|
|
13
14
|
alias: 'Umb.TreeItem.Template',
|
|
14
15
|
name: 'Template Tree Item',
|
|
15
16
|
conditions: {
|
|
16
|
-
entityTypes: [
|
|
17
|
+
entityTypes: [TEMPLATE_ROOT_ENTITY_TYPE, TEMPLATE_ENTITY_TYPE],
|
|
17
18
|
},
|
|
18
19
|
};
|
|
19
20
|
export const manifests = [tree, treeItem];
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import { UmbLitElement } from '../../../../shared/lit-element/index.js';
|
|
2
|
-
export declare class
|
|
2
|
+
export declare class UmbTemplateWorkspaceEditorElement extends UmbLitElement {
|
|
3
3
|
#private;
|
|
4
4
|
private _name?;
|
|
5
5
|
private _content?;
|
|
6
|
+
private _alias?;
|
|
7
|
+
private _ready?;
|
|
8
|
+
private _masterTemplateName?;
|
|
6
9
|
private _codeEditor?;
|
|
10
|
+
private inputQuery$;
|
|
7
11
|
constructor();
|
|
8
12
|
private _modalContext?;
|
|
9
13
|
render(): import("lit-html").TemplateResult<1>;
|
|
10
14
|
static styles: import("@lit/reactive-element/css-tag.js").CSSResult[];
|
|
11
15
|
}
|
|
12
|
-
export default
|
|
16
|
+
export default UmbTemplateWorkspaceEditorElement;
|
|
13
17
|
declare global {
|
|
14
18
|
interface HTMLElementTagNameMap {
|
|
15
|
-
'umb-template-workspace-
|
|
19
|
+
'umb-template-workspace-editor': UmbTemplateWorkspaceEditorElement;
|
|
16
20
|
}
|
|
17
21
|
}
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import camelCase from 'lodash-es/camelCase.js';
|
|
8
|
+
import { UMB_MODAL_TEMPLATING_INSERT_SECTION_MODAL } from '../../modals/insert-section-modal/insert-section-modal.element.js';
|
|
9
|
+
import { UUITextStyles } from '../../../../external/uui/index.js';
|
|
10
|
+
import { css, html, customElement, query, state, nothing } from '../../../../external/lit/index.js';
|
|
11
|
+
import { UMB_MODAL_CONTEXT_TOKEN, UMB_TEMPLATE_PICKER_MODAL } from '../../../core/modal/index.js';
|
|
12
|
+
import { UmbLitElement } from '../../../../shared/lit-element/index.js';
|
|
13
|
+
import { Subject, debounceTime } from '../../../../external/rxjs/index.js';
|
|
14
|
+
let UmbTemplateWorkspaceEditorElement = class UmbTemplateWorkspaceEditorElement extends UmbLitElement {
|
|
15
|
+
#templateWorkspaceContext;
|
|
16
|
+
#isNew;
|
|
17
|
+
#masterTemplateId;
|
|
18
|
+
constructor() {
|
|
19
|
+
super();
|
|
20
|
+
this._name = '';
|
|
21
|
+
this._content = '';
|
|
22
|
+
this._alias = '';
|
|
23
|
+
this._ready = false;
|
|
24
|
+
this._masterTemplateName = null;
|
|
25
|
+
this.#isNew = false;
|
|
26
|
+
this.#masterTemplateId = null;
|
|
27
|
+
this.inputQuery$ = new Subject();
|
|
28
|
+
this.consumeContext(UMB_MODAL_CONTEXT_TOKEN, (instance) => {
|
|
29
|
+
this._modalContext = instance;
|
|
30
|
+
});
|
|
31
|
+
this.consumeContext('UmbEntityWorkspaceContext', (workspaceContext) => {
|
|
32
|
+
this.#templateWorkspaceContext = workspaceContext;
|
|
33
|
+
this.observe(this.#templateWorkspaceContext.name, (name) => {
|
|
34
|
+
this._name = name;
|
|
35
|
+
});
|
|
36
|
+
this.observe(this.#templateWorkspaceContext.alias, (alias) => {
|
|
37
|
+
this._alias = alias;
|
|
38
|
+
});
|
|
39
|
+
this.observe(this.#templateWorkspaceContext.content, (content) => {
|
|
40
|
+
this._content = content;
|
|
41
|
+
});
|
|
42
|
+
this.observe(this.#templateWorkspaceContext.masterTemplate, (masterTemplate) => {
|
|
43
|
+
this.#masterTemplateId = masterTemplate?.id ?? null;
|
|
44
|
+
this._masterTemplateName = masterTemplate?.name ?? null;
|
|
45
|
+
});
|
|
46
|
+
this.observe(this.#templateWorkspaceContext.isNew, (isNew) => {
|
|
47
|
+
this.#isNew = !!isNew;
|
|
48
|
+
});
|
|
49
|
+
this.observe(this.#templateWorkspaceContext.isCodeEditorReady, (isReady) => {
|
|
50
|
+
this._ready = isReady;
|
|
51
|
+
});
|
|
52
|
+
this.inputQuery$.pipe(debounceTime(250)).subscribe((nameInputValue) => {
|
|
53
|
+
this.#templateWorkspaceContext?.setName(nameInputValue);
|
|
54
|
+
if (this.#isNew && !this._alias)
|
|
55
|
+
this.#templateWorkspaceContext?.setAlias(camelCase(nameInputValue));
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
#onNameInput(event) {
|
|
60
|
+
const target = event.target;
|
|
61
|
+
const value = target.value;
|
|
62
|
+
this.inputQuery$.next(value);
|
|
63
|
+
}
|
|
64
|
+
#onAliasInput(event) {
|
|
65
|
+
const target = event.target;
|
|
66
|
+
const value = target.value;
|
|
67
|
+
this.#templateWorkspaceContext?.setAlias(value);
|
|
68
|
+
}
|
|
69
|
+
#onCodeEditorInput(event) {
|
|
70
|
+
const target = event.target;
|
|
71
|
+
const value = target.code;
|
|
72
|
+
this.#templateWorkspaceContext?.setContent(value);
|
|
73
|
+
}
|
|
74
|
+
#insertSnippet(event) {
|
|
75
|
+
const target = event.target;
|
|
76
|
+
const value = target.value;
|
|
77
|
+
this._codeEditor?.insert(value);
|
|
78
|
+
}
|
|
79
|
+
#openInsertSectionModal() {
|
|
80
|
+
const sectionModal = this._modalContext?.open(UMB_MODAL_TEMPLATING_INSERT_SECTION_MODAL);
|
|
81
|
+
sectionModal?.onSubmit().then((insertSectionModalResult) => {
|
|
82
|
+
if (insertSectionModalResult.value)
|
|
83
|
+
this._codeEditor?.insert(insertSectionModalResult.value);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
#resetMasterTemplate() {
|
|
87
|
+
this.#setMasterTemplateId(null);
|
|
88
|
+
}
|
|
89
|
+
async #setMasterTemplateId(id) {
|
|
90
|
+
//root item selected
|
|
91
|
+
if (id === '')
|
|
92
|
+
return;
|
|
93
|
+
if (this._content === null || this._content === undefined)
|
|
94
|
+
return;
|
|
95
|
+
const layoutBlockRegex = /(@{[\s\S][^if]*?Layout\s*?=\s*?)("[^"]*?"|null)(;[\s\S]*?})/gi;
|
|
96
|
+
const masterTemplate = await this.#templateWorkspaceContext?.setMasterTemplate(id);
|
|
97
|
+
//Reset master template or is did not exist and the declaration exists
|
|
98
|
+
if (masterTemplate === null && layoutBlockRegex.test(this._content)) {
|
|
99
|
+
const string = this._content?.replace(layoutBlockRegex, `$1null$3`);
|
|
100
|
+
this.#templateWorkspaceContext?.setContent(string);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
//No declaration and no valid id - do nothing
|
|
104
|
+
if (masterTemplate === null)
|
|
105
|
+
return;
|
|
106
|
+
//if has master template in the content
|
|
107
|
+
if (layoutBlockRegex.test(this._content)) {
|
|
108
|
+
const string = this._content?.replace(layoutBlockRegex, `$1"${masterTemplate?.name}.cshtml"$3`);
|
|
109
|
+
this.#templateWorkspaceContext?.setContent(string);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
//if no master template in the content insert it at the beginning
|
|
113
|
+
const string = `@{
|
|
114
|
+
Layout = "${masterTemplate?.name}.cshtml";
|
|
115
|
+
}
|
|
116
|
+
${this._content}`;
|
|
117
|
+
this.#templateWorkspaceContext?.setContent(string);
|
|
118
|
+
}
|
|
119
|
+
#openMasterTemplatePicker() {
|
|
120
|
+
const modalHandler = this._modalContext?.open(UMB_TEMPLATE_PICKER_MODAL, {
|
|
121
|
+
selection: [this.#masterTemplateId],
|
|
122
|
+
pickableFilter: (item) => {
|
|
123
|
+
return item.id !== null && item.id !== this.#templateWorkspaceContext?.getEntityId();
|
|
124
|
+
},
|
|
125
|
+
});
|
|
126
|
+
modalHandler?.onSubmit().then((data) => {
|
|
127
|
+
if (!data.selection)
|
|
128
|
+
return;
|
|
129
|
+
this.#setMasterTemplateId(data.selection[0] ?? '');
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
#renderMasterTemplatePicker() {
|
|
133
|
+
return html `
|
|
134
|
+
<uui-button-group>
|
|
135
|
+
<uui-button
|
|
136
|
+
@click=${this.#openMasterTemplatePicker}
|
|
137
|
+
look="secondary"
|
|
138
|
+
id="master-template-button"
|
|
139
|
+
label="Change Master template"
|
|
140
|
+
>${this._masterTemplateName
|
|
141
|
+
? `Master template: ${this._masterTemplateName}`
|
|
142
|
+
: 'Set master template'}</uui-button
|
|
143
|
+
>
|
|
144
|
+
${this._masterTemplateName
|
|
145
|
+
? html ` <uui-button look="secondary" id="save-button" label="Remove master template" compact
|
|
146
|
+
><uui-icon name="umb:delete" @click=${this.#resetMasterTemplate}></uui-icon
|
|
147
|
+
></uui-button>`
|
|
148
|
+
: nothing}
|
|
149
|
+
</uui-button-group>
|
|
150
|
+
`;
|
|
151
|
+
}
|
|
152
|
+
#renderCodeEditor() {
|
|
153
|
+
return html `<umb-code-editor
|
|
154
|
+
language="razor"
|
|
155
|
+
id="content"
|
|
156
|
+
.code=${this._content ?? ''}
|
|
157
|
+
@input=${this.#onCodeEditorInput}></umb-code-editor>`;
|
|
158
|
+
}
|
|
159
|
+
render() {
|
|
160
|
+
// TODO: add correct UI elements
|
|
161
|
+
return html `<umb-workspace-editor alias="Umb.Workspace.Template">
|
|
162
|
+
<uui-input placeholder="Enter name..." slot="header" .value=${this._name} @input=${this.#onNameInput}
|
|
163
|
+
><umb-template-alias-input
|
|
164
|
+
slot="append"
|
|
165
|
+
.value=${this._alias}
|
|
166
|
+
@change=${this.#onAliasInput}></umb-template-alias-input
|
|
167
|
+
></uui-input>
|
|
168
|
+
<uui-box>
|
|
169
|
+
<div slot="header" id="code-editor-menu-container">
|
|
170
|
+
${this.#renderMasterTemplatePicker()}
|
|
171
|
+
<div>
|
|
172
|
+
<umb-templating-insert-menu @insert=${this.#insertSnippet}></umb-templating-insert-menu>
|
|
173
|
+
<!-- <uui-button look="secondary" id="query-builder-button" label="Query builder">
|
|
174
|
+
<uui-icon name="umb:wand"></uui-icon>Query builder
|
|
175
|
+
</uui-button> -->
|
|
176
|
+
<uui-button
|
|
177
|
+
look="secondary"
|
|
178
|
+
id="sections-button"
|
|
179
|
+
label="Query builder"
|
|
180
|
+
@click=${this.#openInsertSectionModal}>
|
|
181
|
+
<uui-icon name="umb:indent"></uui-icon>Sections
|
|
182
|
+
</uui-button>
|
|
183
|
+
</div>
|
|
184
|
+
</div>
|
|
185
|
+
${this._ready
|
|
186
|
+
? this.#renderCodeEditor()
|
|
187
|
+
: html `<div id="loader-container">
|
|
188
|
+
<uui-loader></uui-loader>
|
|
189
|
+
</div>`}
|
|
190
|
+
</uui-box>
|
|
191
|
+
</umb-workspace-editor>`;
|
|
192
|
+
}
|
|
193
|
+
static { this.styles = [
|
|
194
|
+
UUITextStyles,
|
|
195
|
+
css `
|
|
196
|
+
:host {
|
|
197
|
+
display: block;
|
|
198
|
+
width: 100%;
|
|
199
|
+
height: 100%;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
#loader-container {
|
|
203
|
+
display: grid;
|
|
204
|
+
place-items: center;
|
|
205
|
+
min-height: calc(100dvh - 360px);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
umb-code-editor {
|
|
209
|
+
--editor-height: calc(100dvh - 300px);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
uui-box {
|
|
213
|
+
min-height: calc(100dvh - 300px);
|
|
214
|
+
margin: var(--uui-size-layout-1);
|
|
215
|
+
--uui-box-default-padding: 0;
|
|
216
|
+
/* remove header border bottom as code editor looks better in this box */
|
|
217
|
+
--uui-color-divider-standalone: transparent;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
uui-input {
|
|
221
|
+
width: 100%;
|
|
222
|
+
margin: 1em;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
#code-editor-menu-container uui-icon:not([name='umb:delete']) {
|
|
226
|
+
margin-right: var(--uui-size-space-3);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
#insert-menu {
|
|
230
|
+
margin: 0;
|
|
231
|
+
padding: 0;
|
|
232
|
+
margin-top: var(--uui-size-space-3);
|
|
233
|
+
background-color: var(--uui-color-surface);
|
|
234
|
+
box-shadow: var(--uui-shadow-depth-3);
|
|
235
|
+
min-width: calc(100% + var(--uui-size-8, 24px));
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
#insert-menu > li,
|
|
239
|
+
ul {
|
|
240
|
+
padding: 0;
|
|
241
|
+
width: 100%;
|
|
242
|
+
list-style: none;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
.insert-menu-item {
|
|
246
|
+
width: 100%;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
#code-editor-menu-container {
|
|
250
|
+
display: flex;
|
|
251
|
+
justify-content: space-between;
|
|
252
|
+
gap: var(--uui-size-space-3);
|
|
253
|
+
}
|
|
254
|
+
`,
|
|
255
|
+
]; }
|
|
256
|
+
};
|
|
257
|
+
__decorate([
|
|
258
|
+
state()
|
|
259
|
+
], UmbTemplateWorkspaceEditorElement.prototype, "_name", void 0);
|
|
260
|
+
__decorate([
|
|
261
|
+
state()
|
|
262
|
+
], UmbTemplateWorkspaceEditorElement.prototype, "_content", void 0);
|
|
263
|
+
__decorate([
|
|
264
|
+
state()
|
|
265
|
+
], UmbTemplateWorkspaceEditorElement.prototype, "_alias", void 0);
|
|
266
|
+
__decorate([
|
|
267
|
+
state()
|
|
268
|
+
], UmbTemplateWorkspaceEditorElement.prototype, "_ready", void 0);
|
|
269
|
+
__decorate([
|
|
270
|
+
state()
|
|
271
|
+
], UmbTemplateWorkspaceEditorElement.prototype, "_masterTemplateName", void 0);
|
|
272
|
+
__decorate([
|
|
273
|
+
query('umb-code-editor')
|
|
274
|
+
], UmbTemplateWorkspaceEditorElement.prototype, "_codeEditor", void 0);
|
|
275
|
+
UmbTemplateWorkspaceEditorElement = __decorate([
|
|
276
|
+
customElement('umb-template-workspace-editor')
|
|
277
|
+
], UmbTemplateWorkspaceEditorElement);
|
|
278
|
+
export { UmbTemplateWorkspaceEditorElement };
|
|
279
|
+
export default UmbTemplateWorkspaceEditorElement;
|
|
@@ -5,16 +5,22 @@ import { UmbControllerHostElement } from '../../../../libs/controller-api/index.
|
|
|
5
5
|
export declare class UmbTemplateWorkspaceContext extends UmbWorkspaceContext<UmbTemplateRepository, TemplateResponseModel> {
|
|
6
6
|
#private;
|
|
7
7
|
data: import("rxjs").Observable<TemplateResponseModel | undefined>;
|
|
8
|
+
masterTemplate: import("rxjs").Observable<import("../../../../external/backend-api/index.js").ItemResponseModelBaseModel | null>;
|
|
8
9
|
name: import("rxjs").Observable<string | undefined>;
|
|
10
|
+
alias: import("rxjs").Observable<string | undefined>;
|
|
9
11
|
content: import("rxjs").Observable<string | null | undefined>;
|
|
12
|
+
id: import("rxjs").Observable<string | undefined>;
|
|
13
|
+
isCodeEditorReady: import("rxjs").Observable<boolean>;
|
|
10
14
|
constructor(host: UmbControllerHostElement);
|
|
11
15
|
getEntityType(): string;
|
|
12
16
|
getEntityId(): string;
|
|
13
17
|
getData(): TemplateResponseModel | undefined;
|
|
14
18
|
setName(value: string): void;
|
|
19
|
+
setAlias(value: string): void;
|
|
15
20
|
setContent(value: string): void;
|
|
16
21
|
load(entityId: string): Promise<void>;
|
|
22
|
+
setMasterTemplate(id: string | null): Promise<import("../../../../external/backend-api/index.js").ItemResponseModelBaseModel | null>;
|
|
17
23
|
save(): Promise<void>;
|
|
18
|
-
createScaffold(parentId
|
|
24
|
+
createScaffold(parentId?: string | null): Promise<void>;
|
|
19
25
|
destroy(): void;
|
|
20
26
|
}
|