@umbraco-cms/backoffice 16.0.0-rc → 16.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/preview/apps/manifests.js +7 -0
- package/dist-cms/apps/preview/apps/preview-segment.element.d.ts +16 -0
- package/dist-cms/apps/preview/apps/preview-segment.element.js +96 -0
- package/dist-cms/apps/preview/preview.context.d.ts +9 -6
- package/dist-cms/apps/preview/preview.context.js +61 -24
- package/dist-cms/assets/lang/{da-dk.js → da.js} +3 -2
- package/dist-cms/assets/lang/{da-dk.ts → da.ts} +3 -2
- package/dist-cms/assets/lang/en-us.js +19 -2354
- package/dist-cms/assets/lang/en-us.ts +22 -2548
- package/dist-cms/assets/lang/en.js +244 -198
- package/dist-cms/assets/lang/en.ts +250 -216
- package/dist-cms/assets/lang/pt-br.d.ts +2 -2
- package/dist-cms/assets/lang/pt-br.ts +2 -2
- package/dist-cms/assets/lang/pt.d.ts +13 -0
- package/dist-cms/assets/lang/pt.js +1 -0
- package/dist-cms/assets/lang/pt.ts +12 -0
- package/dist-cms/custom-elements.json +36 -16
- package/dist-cms/libs/observable-api/states/array-state.d.ts +6 -6
- package/dist-cms/libs/observable-api/states/array-state.js +3 -3
- package/dist-cms/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.js +6 -0
- package/dist-cms/packages/block/block-grid/property-editors/block-grid-area-type-permission/block-grid-area-type-permission.element.d.ts +2 -3
- package/dist-cms/packages/block/block-grid/property-editors/block-grid-area-type-permission/block-grid-area-type-permission.element.js +8 -3
- package/dist-cms/packages/block/block-list/components/block-list-entry/block-list-entry.element.js +6 -0
- package/dist-cms/packages/block/block-rte/components/block-rte-entry/block-rte-entry.element.js +7 -0
- package/dist-cms/packages/block/block-type/components/input-block-type/input-block-type.element.js +6 -0
- package/dist-cms/packages/clipboard/clipboard-entry/picker/clipboard-entry-picker.element.js +1 -1
- package/dist-cms/packages/content/content/workspace/content-detail-workspace-base.d.ts +8 -2
- package/dist-cms/packages/content/content/workspace/content-detail-workspace-base.js +16 -13
- package/dist-cms/packages/content/content-type/global-components/content-type-workspace-editor-header.element.js +4 -1
- package/dist-cms/packages/content/content-type/modals/composition-picker/composition-picker-modal.element.d.ts +1 -0
- package/dist-cms/packages/content/content-type/modals/composition-picker/composition-picker-modal.element.js +18 -2
- package/dist-cms/packages/content/content-type/modals/composition-picker/composition-picker-modal.token.d.ts +1 -0
- package/dist-cms/packages/content/content-type/structure/content-type-structure-manager.class.d.ts +21 -3
- package/dist-cms/packages/content/content-type/structure/content-type-structure-manager.class.js +62 -43
- package/dist-cms/packages/content/content-type/workspace/content-type-workspace-context-base.js +1 -1
- package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor-properties.element.js +36 -3
- package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor-tab.element.js +25 -1
- package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor.element.js +17 -6
- package/dist-cms/packages/core/auth/auth.context.js +1 -1
- package/dist-cms/packages/core/auth/modals/umb-app-auth-modal.element.js +5 -5
- package/dist-cms/packages/core/collection/default/collection-default.context.d.ts +1 -0
- package/dist-cms/packages/core/collection/default/collection-default.context.js +19 -1
- package/dist-cms/packages/core/collection/default/collection-default.element.d.ts +1 -0
- package/dist-cms/packages/core/collection/default/collection-default.element.js +9 -1
- package/dist-cms/packages/core/collection/extensions/collection.extension.d.ts +1 -0
- package/dist-cms/packages/core/collection/types.d.ts +1 -0
- package/dist-cms/packages/core/components/body-layout/body-layout.element.js +7 -8
- package/dist-cms/packages/core/components/dropdown/dropdown.element.d.ts +4 -2
- package/dist-cms/packages/core/components/dropdown/dropdown.element.js +19 -13
- package/dist-cms/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.d.ts +1 -1
- package/dist-cms/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.js +12 -11
- package/dist-cms/packages/core/culture/manifests.d.ts +1 -1
- package/dist-cms/packages/core/entity/constants.d.ts +1 -0
- package/dist-cms/packages/core/entity/constants.js +1 -0
- package/dist-cms/packages/core/entity/contexts/parent/constants.d.ts +1 -0
- package/dist-cms/packages/core/entity/contexts/parent/constants.js +1 -0
- package/dist-cms/packages/core/entity/contexts/parent/index.d.ts +1 -0
- package/dist-cms/packages/core/entity/contexts/parent/index.js +1 -0
- package/dist-cms/packages/core/entity/contexts/parent/parent.entity-context-token.d.ts +3 -0
- package/dist-cms/packages/core/entity/contexts/parent/parent.entity-context-token.js +2 -0
- package/dist-cms/packages/core/entity/contexts/parent/parent.entity-context.d.ts +26 -0
- package/dist-cms/packages/core/entity/contexts/parent/parent.entity-context.js +33 -0
- package/dist-cms/packages/core/entity/index.d.ts +1 -0
- package/dist-cms/packages/core/entity/index.js +1 -0
- package/dist-cms/packages/core/entity-action/default/entity-action.element.d.ts +2 -1
- package/dist-cms/packages/core/entity-action/default/entity-action.element.js +5 -4
- package/dist-cms/packages/core/entity-action/global-components/entity-actions-table-column-view/entity-actions-table-column-view.element.d.ts +2 -2
- package/dist-cms/packages/core/entity-action/global-components/entity-actions-table-column-view/entity-actions-table-column-view.element.js +4 -1
- package/dist-cms/packages/core/entity-item/index.d.ts +1 -0
- package/dist-cms/packages/core/entity-item/index.js +1 -0
- package/dist-cms/packages/core/entity-item/item-data-api-get-request-controller/index.d.ts +1 -0
- package/dist-cms/packages/core/entity-item/item-data-api-get-request-controller/index.js +1 -0
- package/dist-cms/packages/core/entity-item/item-data-api-get-request-controller/item-data-api-get-request.controller.d.ts +12 -0
- package/dist-cms/packages/core/entity-item/item-data-api-get-request-controller/item-data-api-get-request.controller.js +46 -0
- package/dist-cms/packages/core/entity-item/item-data-api-get-request-controller/types.d.ts +7 -0
- package/dist-cms/packages/core/entity-item/item-data-api-get-request-controller/types.js +1 -0
- package/dist-cms/packages/core/entity-item/types.d.ts +1 -0
- package/dist-cms/packages/core/localization/components/ui-culture-input/ui-culture-input.element.d.ts +5 -6
- package/dist-cms/packages/core/localization/components/ui-culture-input/ui-culture-input.element.js +57 -39
- package/dist-cms/packages/core/localization/manifests.js +99 -119
- package/dist-cms/packages/core/menu/components/menu-item-layout/menu-item-layout.element.js +8 -3
- package/dist-cms/packages/core/menu/index.d.ts +2 -0
- package/dist-cms/packages/core/menu/index.js +2 -0
- package/dist-cms/packages/core/menu/menu-structure-workspace-context.context-token.d.ts +3 -0
- package/dist-cms/packages/core/menu/menu-structure-workspace-context.context-token.js +2 -0
- package/dist-cms/packages/core/menu/menu-tree-structure-workspace-context-base.d.ts +3 -0
- package/dist-cms/packages/core/menu/menu-tree-structure-workspace-context-base.js +53 -10
- package/dist-cms/packages/core/menu/menu-variant-structure-workspace-context.context-token.d.ts +3 -0
- package/dist-cms/packages/core/menu/menu-variant-structure-workspace-context.context-token.js +2 -0
- package/dist-cms/packages/core/menu/menu-variant-structure-workspace-context.interface.d.ts +6 -0
- package/dist-cms/packages/core/menu/menu-variant-structure-workspace-context.interface.js +1 -0
- package/dist-cms/packages/core/menu/menu-variant-tree-structure-workspace-context-base.d.ts +4 -0
- package/dist-cms/packages/core/menu/menu-variant-tree-structure-workspace-context-base.js +55 -21
- package/dist-cms/packages/core/menu/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.d.ts +5 -0
- package/dist-cms/packages/core/menu/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.js +22 -3
- package/dist-cms/packages/core/picker/search/picker-search-result.element.d.ts +3 -0
- package/dist-cms/packages/core/picker/search/picker-search-result.element.js +14 -6
- package/dist-cms/packages/core/picker/search/result-item/default/default-picker-search-result-item.element.js +2 -1
- package/dist-cms/packages/core/picker/search/result-item/picker-search-result-item-element-base.d.ts +1 -0
- package/dist-cms/packages/core/picker/search/result-item/picker-search-result-item-element-base.js +5 -1
- package/dist-cms/packages/core/property/manifests.d.ts +1 -1
- package/dist-cms/packages/core/property-action/components/property-action-menu/property-action-menu.element.js +6 -1
- package/dist-cms/packages/core/repository/item/item-server-data-source-base.d.ts +5 -6
- package/dist-cms/packages/core/repository/item/item-server-data-source-base.js +14 -9
- package/dist-cms/packages/core/repository/repository-details.manager.d.ts +1 -1
- package/dist-cms/packages/core/repository/repository-details.manager.js +6 -3
- package/dist-cms/packages/core/resources/api-interceptor.controller.d.ts +6 -0
- package/dist-cms/packages/core/resources/api-interceptor.controller.js +16 -0
- package/dist-cms/packages/core/resources/data-api/types.d.ts +7 -0
- package/dist-cms/packages/core/resources/data-api/types.js +1 -0
- package/dist-cms/packages/core/resources/index.d.ts +4 -7
- package/dist-cms/packages/core/resources/index.js +4 -7
- package/dist-cms/packages/core/resources/try-execute/batch-try-execute.function.d.ts +9 -0
- package/dist-cms/packages/core/resources/try-execute/batch-try-execute.function.js +11 -0
- package/dist-cms/packages/core/resources/try-execute/index.d.ts +5 -0
- package/dist-cms/packages/core/resources/try-execute/index.js +5 -0
- package/dist-cms/packages/core/resources/{try-execute.controller.d.ts → try-execute/try-execute.controller.d.ts} +2 -2
- package/dist-cms/packages/core/resources/{try-execute.controller.js → try-execute/try-execute.controller.js} +3 -3
- package/dist-cms/packages/core/resources/{tryExecute.function.d.ts → try-execute/tryExecute.function.d.ts} +1 -1
- package/dist-cms/packages/core/resources/{tryExecuteAndNotify.function.d.ts → try-execute/tryExecuteAndNotify.function.d.ts} +1 -1
- package/dist-cms/packages/core/resources/{tryXhrRequest.function.d.ts → try-execute/tryXhrRequest.function.d.ts} +1 -1
- package/dist-cms/packages/core/resources/{tryXhrRequest.function.js → try-execute/tryXhrRequest.function.js} +3 -3
- package/dist-cms/packages/core/resources/types.d.ts +1 -0
- package/dist-cms/packages/core/sorter/sorter.controller.d.ts +23 -6
- package/dist-cms/packages/core/sorter/sorter.controller.js +224 -81
- package/dist-cms/packages/core/temporary-file/manifests.d.ts +1 -1
- package/dist-cms/packages/core/themes/manifests.d.ts +1 -1
- package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.d.ts +1 -1
- package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.js +17 -3
- package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.d.ts +1 -0
- package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.js +7 -4
- package/dist-cms/packages/core/tree/tree-picker-modal/tree-picker-modal.element.js +1 -1
- package/dist-cms/packages/core/utils/array/batch-array.d.ts +7 -0
- package/dist-cms/packages/core/utils/array/batch-array.js +13 -0
- package/dist-cms/packages/core/utils/array/index.d.ts +1 -0
- package/dist-cms/packages/core/utils/array/index.js +1 -0
- 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/workspace/components/workspace-action/common/index.d.ts +1 -0
- package/dist-cms/packages/core/workspace/components/workspace-action/common/index.js +1 -0
- package/dist-cms/packages/core/workspace/components/workspace-action/common/save/index.d.ts +2 -0
- package/dist-cms/packages/core/workspace/components/workspace-action/common/save/index.js +1 -0
- package/dist-cms/packages/core/workspace/components/workspace-action/common/save/save.action.d.ts +13 -0
- package/dist-cms/packages/core/workspace/components/workspace-action/common/save/save.action.js +31 -0
- package/dist-cms/packages/core/workspace/components/workspace-action/common/save/types.d.ts +6 -0
- package/dist-cms/packages/core/workspace/components/workspace-action/common/save/types.js +1 -0
- package/dist-cms/packages/core/workspace/components/workspace-action/common/submit/submit.action.d.ts +0 -1
- package/dist-cms/packages/core/workspace/components/workspace-action/common/submit/submit.action.js +0 -4
- package/dist-cms/packages/core/workspace/components/workspace-breadcrumb/workspace-menu-breadcrumb/workspace-menu-breadcrumb.element.d.ts +1 -1
- package/dist-cms/packages/core/workspace/components/workspace-breadcrumb/workspace-menu-breadcrumb/workspace-menu-breadcrumb.element.js +3 -6
- package/dist-cms/packages/core/workspace/components/workspace-breadcrumb/workspace-variant-menu-breadcrumb/workspace-variant-menu-breadcrumb.element.d.ts +1 -1
- package/dist-cms/packages/core/workspace/components/workspace-breadcrumb/workspace-variant-menu-breadcrumb/workspace-variant-menu-breadcrumb.element.js +3 -5
- package/dist-cms/packages/core/workspace/components/workspace-editor/workspace-editor.element.js +1 -2
- package/dist-cms/packages/core/workspace/components/workspace-entity-action-menu/workspace-entity-action-menu.element.js +3 -3
- package/dist-cms/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.js +1 -0
- package/dist-cms/packages/core/workspace/contexts/tokens/index.d.ts +5 -1
- package/dist-cms/packages/core/workspace/contexts/tokens/index.js +2 -0
- package/dist-cms/packages/core/workspace/contexts/tokens/saveable-workspace-context.interface.d.ts +4 -0
- package/dist-cms/packages/core/workspace/contexts/tokens/saveable-workspace-context.interface.js +1 -0
- package/dist-cms/packages/core/workspace/contexts/tokens/saveable-workspace.context-token.d.ts +4 -0
- package/dist-cms/packages/core/workspace/contexts/tokens/saveable-workspace.context-token.js +2 -0
- package/dist-cms/packages/core/workspace/contexts/tokens/submittable-tree-entity-workspace-context.interface.d.ts +36 -0
- package/dist-cms/packages/core/workspace/contexts/tokens/submittable-tree-entity-workspace-context.interface.js +1 -0
- package/dist-cms/packages/core/workspace/contexts/tokens/submittable-tree-entity-workspace.context-token.d.ts +4 -0
- package/dist-cms/packages/core/workspace/contexts/tokens/submittable-tree-entity-workspace.context-token.js +2 -0
- package/dist-cms/packages/core/workspace/entity-detail/entity-detail-workspace-base.d.ts +33 -1
- package/dist-cms/packages/core/workspace/entity-detail/entity-detail-workspace-base.js +46 -9
- package/dist-cms/packages/core/workspace/submittable/submittable-workspace-context-base.d.ts +1 -0
- package/dist-cms/packages/core/workspace/submittable/submittable-workspace-context-base.js +8 -3
- package/dist-cms/packages/data-type/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.js +1 -1
- package/dist-cms/packages/data-type/repository/item/data-type-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/data-type/repository/item/data-type-item.server.data-source.js +12 -3
- package/dist-cms/packages/data-type/tree/tree-item-children/collection/views/data-type-tree-item-table-collection-view.element.js +1 -0
- package/dist-cms/packages/dictionary/repository/item/dictionary-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/dictionary/repository/item/dictionary-item.server.data-source.js +12 -3
- package/dist-cms/packages/documents/document-blueprints/entity-actions/create/manifests.js +1 -1
- package/dist-cms/packages/documents/document-blueprints/repository/item/document-blueprint-item.server.data-source.d.ts +4 -1
- package/dist-cms/packages/documents/document-blueprints/repository/item/document-blueprint-item.server.data-source.js +13 -6
- package/dist-cms/packages/documents/document-types/components/input-document-type/input-document-type.element.js +4 -1
- package/dist-cms/packages/documents/document-types/picker/document-type-picker-search-result-item.element.js +2 -1
- package/dist-cms/packages/documents/document-types/repository/item/document-type-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/documents/document-types/repository/item/document-type-item.server.data-source.js +13 -3
- package/dist-cms/packages/documents/document-types/tree/tree-item-children/collection/views/document-type-tree-item-table-collection-view.element.js +1 -0
- package/dist-cms/packages/documents/documents/collection/views/table/column-layouts/document-entity-actions-table-column-view.element.js +1 -0
- package/dist-cms/packages/documents/documents/entity-actions/duplicate/repository/document-duplicate.server.data-source.js +1 -1
- package/dist-cms/packages/documents/documents/entity-actions/move-to/repository/document-move.server.data-source.js +1 -1
- package/dist-cms/packages/documents/documents/item/repository/document-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/documents/documents/item/repository/document-item.server.data-source.js +12 -3
- package/dist-cms/packages/documents/documents/modals/save-modal/document-save-modal.element.js +1 -5
- package/dist-cms/packages/documents/documents/picker/document-picker-search-result-item.element.js +2 -1
- package/dist-cms/packages/documents/documents/property-dataset-context/document-property-dataset.context.d.ts +5 -1
- package/dist-cms/packages/documents/documents/property-dataset-context/document-property-dataset.context.js +45 -0
- package/dist-cms/packages/documents/documents/publishing/publish/modal/document-publish-modal.element.js +9 -13
- package/dist-cms/packages/documents/documents/publishing/publish/modal/document-publish-modal.token.d.ts +1 -0
- package/dist-cms/packages/documents/documents/publishing/schedule-publish/modal/document-schedule-modal.element.js +0 -10
- package/dist-cms/packages/documents/documents/publishing/unpublish/entity-action/unpublish.action.js +5 -19
- package/dist-cms/packages/documents/documents/publishing/unpublish/modal/document-unpublish-modal.element.js +3 -12
- package/dist-cms/packages/documents/documents/publishing/workspace-context/document-publishing.workspace-context.js +3 -7
- package/dist-cms/packages/documents/documents/url/repository/document-url.server.data-source.d.ts +4 -0
- package/dist-cms/packages/documents/documents/url/repository/document-url.server.data-source.js +13 -3
- package/dist-cms/packages/documents/documents/workspace/actions/save.action.d.ts +3 -3
- package/dist-cms/packages/documents/documents/workspace/actions/save.action.js +2 -2
- package/dist-cms/packages/documents/documents/workspace/document-workspace.context-token.d.ts +2 -2
- package/dist-cms/packages/documents/documents/workspace/document-workspace.context.d.ts +1 -5
- package/dist-cms/packages/documents/documents/workspace/document-workspace.context.js +18 -61
- package/dist-cms/packages/extension-insights/collection/views/table/extension-table-collection-view.element.js +1 -0
- package/dist-cms/packages/language/app-language-select/app-language-select.element.js +7 -2
- package/dist-cms/packages/language/collection/views/table/language-table-collection-view.element.js +1 -0
- package/dist-cms/packages/language/menu/language-menu-structure.context.d.ts +1 -1
- package/dist-cms/packages/language/menu/language-menu-structure.context.js +4 -2
- package/dist-cms/packages/language/repository/item/language-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/language/repository/item/language-item.server.data-source.js +12 -3
- package/dist-cms/packages/media/media/collection/media-collection.element.js +1 -0
- package/dist-cms/packages/media/media/collection/views/table/media-table-collection-view.element.js +1 -0
- package/dist-cms/packages/media/media/repository/item/media-item.server.data-source.d.ts +4 -1
- package/dist-cms/packages/media/media/repository/item/media-item.server.data-source.js +13 -6
- package/dist-cms/packages/media/media/url/repository/media-url.server.data-source.d.ts +4 -0
- package/dist-cms/packages/media/media/url/repository/media-url.server.data-source.js +12 -3
- package/dist-cms/packages/media/media-types/repository/item/media-type-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/media/media-types/repository/item/media-type-item.server.data-source.js +12 -3
- package/dist-cms/packages/media/media-types/tree/tree-item-children/collection/views/media-type-tree-item-table-collection-view.element.js +1 -0
- package/dist-cms/packages/members/member/collection/views/table/member-table-collection-view.element.js +1 -0
- package/dist-cms/packages/members/member/item/repository/member-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/members/member/item/repository/member-item.server.data-source.js +12 -3
- package/dist-cms/packages/members/member/picker/member-picker-search-result-item.element.js +2 -1
- package/dist-cms/packages/members/member-group/collection/views/table/member-group-table-collection-view.element.js +1 -0
- package/dist-cms/packages/members/member-group/repository/item/member-group-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/members/member-group/repository/item/member-group-item.server.data-source.js +12 -3
- package/dist-cms/packages/members/member-type/repository/item/member-type-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/members/member-type/repository/item/member-type-item.server.data-source.js +12 -3
- package/dist-cms/packages/multi-url-picker/link-picker-modal/link-picker-modal.element.d.ts +1 -0
- package/dist-cms/packages/multi-url-picker/link-picker-modal/link-picker-modal.element.js +37 -8
- package/dist-cms/packages/packages/package-section/views/installed/installed-packages-section-view-item.element.js +1 -1
- package/dist-cms/packages/static-file/repository/item/static-file-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/static-file/repository/item/static-file-item.server.data-source.js +14 -7
- package/dist-cms/packages/templating/templates/repository/item/template-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/templating/templates/repository/item/template-item.server.data-source.js +12 -3
- package/dist-cms/packages/user/user/collection/views/table/user-table-collection-view.element.js +1 -0
- package/dist-cms/packages/user/user/repository/item/user-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/user/user/repository/item/user-item.server.data-source.js +12 -3
- package/dist-cms/packages/user/user/workspace/user/components/user-workspace-profile-settings/user-workspace-profile-settings.element.js +25 -22
- package/dist-cms/packages/user/user-group/collection/views/user-group-table-collection-view.element.js +1 -0
- package/dist-cms/packages/user/user-group/repository/item/user-group-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/user/user-group/repository/item/user-group-item.server.data-source.js +12 -3
- package/dist-cms/packages/webhook/webhook/collection/views/table/webhook-table-collection-view.element.js +1 -0
- package/dist-cms/packages/webhook/webhook/repository/item/webhook-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/webhook/webhook/repository/item/webhook-item.server.data-source.js +12 -3
- package/dist-cms/packages/webhook/webhook/workspace/webhook-workspace-editor.element.js +2 -0
- package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
- package/dist-cms/umbraco-package-schema.json +151 -0
- package/dist-cms/umbraco-package.json +1 -1
- package/dist-cms/vscode-html-custom-data.json +23 -12
- package/examples/block-custom-view/block-custom-view.ts +8 -0
- package/package.json +1 -1
- package/dist-cms/assets/lang/de-ch.d.ts +0 -3
- package/dist-cms/assets/lang/de-ch.js +0 -15
- package/dist-cms/assets/lang/de-ch.ts +0 -17
- package/dist-cms/assets/lang/fr-ch.d.ts +0 -3
- package/dist-cms/assets/lang/fr-ch.js +0 -15
- package/dist-cms/assets/lang/fr-ch.ts +0 -17
- package/dist-cms/assets/lang/it-ch.d.ts +0 -3
- package/dist-cms/assets/lang/it-ch.js +0 -15
- package/dist-cms/assets/lang/it-ch.ts +0 -17
- /package/dist-cms/assets/lang/{cs-cz.d.ts → cs.d.ts} +0 -0
- /package/dist-cms/assets/lang/{cs-cz.js → cs.js} +0 -0
- /package/dist-cms/assets/lang/{cs-cz.ts → cs.ts} +0 -0
- /package/dist-cms/assets/lang/{cy-gb.d.ts → cy.d.ts} +0 -0
- /package/dist-cms/assets/lang/{cy-gb.js → cy.js} +0 -0
- /package/dist-cms/assets/lang/{cy-gb.ts → cy.ts} +0 -0
- /package/dist-cms/assets/lang/{da-dk.d.ts → da.d.ts} +0 -0
- /package/dist-cms/assets/lang/{de-de.d.ts → de.d.ts} +0 -0
- /package/dist-cms/assets/lang/{de-de.js → de.js} +0 -0
- /package/dist-cms/assets/lang/{de-de.ts → de.ts} +0 -0
- /package/dist-cms/assets/lang/{es-es.d.ts → es.d.ts} +0 -0
- /package/dist-cms/assets/lang/{es-es.js → es.js} +0 -0
- /package/dist-cms/assets/lang/{es-es.ts → es.ts} +0 -0
- /package/dist-cms/assets/lang/{fr-fr.d.ts → fr.d.ts} +0 -0
- /package/dist-cms/assets/lang/{fr-fr.js → fr.js} +0 -0
- /package/dist-cms/assets/lang/{fr-fr.ts → fr.ts} +0 -0
- /package/dist-cms/assets/lang/{he-il.d.ts → he.d.ts} +0 -0
- /package/dist-cms/assets/lang/{he-il.js → he.js} +0 -0
- /package/dist-cms/assets/lang/{he-il.ts → he.ts} +0 -0
- /package/dist-cms/assets/lang/{hr-hr.d.ts → hr.d.ts} +0 -0
- /package/dist-cms/assets/lang/{hr-hr.js → hr.js} +0 -0
- /package/dist-cms/assets/lang/{hr-hr.ts → hr.ts} +0 -0
- /package/dist-cms/assets/lang/{it-it.d.ts → it.d.ts} +0 -0
- /package/dist-cms/assets/lang/{it-it.js → it.js} +0 -0
- /package/dist-cms/assets/lang/{it-it.ts → it.ts} +0 -0
- /package/dist-cms/assets/lang/{ja-jp.d.ts → ja.d.ts} +0 -0
- /package/dist-cms/assets/lang/{ja-jp.js → ja.js} +0 -0
- /package/dist-cms/assets/lang/{ja-jp.ts → ja.ts} +0 -0
- /package/dist-cms/assets/lang/{ko-kr.d.ts → ko.d.ts} +0 -0
- /package/dist-cms/assets/lang/{ko-kr.js → ko.js} +0 -0
- /package/dist-cms/assets/lang/{ko-kr.ts → ko.ts} +0 -0
- /package/dist-cms/assets/lang/{nb-no.d.ts → nb.d.ts} +0 -0
- /package/dist-cms/assets/lang/{nb-no.js → nb.js} +0 -0
- /package/dist-cms/assets/lang/{nb-no.ts → nb.ts} +0 -0
- /package/dist-cms/assets/lang/{nl-nl.d.ts → nl.d.ts} +0 -0
- /package/dist-cms/assets/lang/{nl-nl.js → nl.js} +0 -0
- /package/dist-cms/assets/lang/{nl-nl.ts → nl.ts} +0 -0
- /package/dist-cms/assets/lang/{pl-pl.d.ts → pl.d.ts} +0 -0
- /package/dist-cms/assets/lang/{pl-pl.js → pl.js} +0 -0
- /package/dist-cms/assets/lang/{pl-pl.ts → pl.ts} +0 -0
- /package/dist-cms/assets/lang/{ro-ro.d.ts → ro.d.ts} +0 -0
- /package/dist-cms/assets/lang/{ro-ro.js → ro.js} +0 -0
- /package/dist-cms/assets/lang/{ro-ro.ts → ro.ts} +0 -0
- /package/dist-cms/assets/lang/{ru-ru.d.ts → ru.d.ts} +0 -0
- /package/dist-cms/assets/lang/{ru-ru.js → ru.js} +0 -0
- /package/dist-cms/assets/lang/{ru-ru.ts → ru.ts} +0 -0
- /package/dist-cms/assets/lang/{sv-se.d.ts → sv.d.ts} +0 -0
- /package/dist-cms/assets/lang/{sv-se.js → sv.js} +0 -0
- /package/dist-cms/assets/lang/{sv-se.ts → sv.ts} +0 -0
- /package/dist-cms/assets/lang/{tr-tr.d.ts → tr.d.ts} +0 -0
- /package/dist-cms/assets/lang/{tr-tr.js → tr.js} +0 -0
- /package/dist-cms/assets/lang/{tr-tr.ts → tr.ts} +0 -0
- /package/dist-cms/assets/lang/{uk-ua.d.ts → uk.d.ts} +0 -0
- /package/dist-cms/assets/lang/{uk-ua.js → uk.js} +0 -0
- /package/dist-cms/assets/lang/{uk-ua.ts → uk.ts} +0 -0
- /package/dist-cms/assets/lang/{zh-cn.d.ts → zh.d.ts} +0 -0
- /package/dist-cms/assets/lang/{zh-cn.js → zh.js} +0 -0
- /package/dist-cms/assets/lang/{zh-cn.ts → zh.ts} +0 -0
- /package/dist-cms/packages/core/resources/{tryExecute.function.js → try-execute/tryExecute.function.js} +0 -0
- /package/dist-cms/packages/core/resources/{tryExecuteAndNotify.function.js → try-execute/tryExecuteAndNotify.function.js} +0 -0
|
@@ -13,6 +13,13 @@ export const manifests = [
|
|
|
13
13
|
element: () => import('./preview-culture.element.js'),
|
|
14
14
|
weight: 300,
|
|
15
15
|
},
|
|
16
|
+
{
|
|
17
|
+
type: 'previewApp',
|
|
18
|
+
alias: 'Umb.PreviewApps.Segment',
|
|
19
|
+
name: 'Preview: Segment Switcher',
|
|
20
|
+
element: () => import('./preview-segment.element.js'),
|
|
21
|
+
weight: 290,
|
|
22
|
+
},
|
|
16
23
|
{
|
|
17
24
|
type: 'previewApp',
|
|
18
25
|
alias: 'Umb.PreviewApps.OpenWebsite',
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { nothing, type PropertyValues } from '@umbraco-cms/backoffice/external/lit';
|
|
2
|
+
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
|
3
|
+
export declare class UmbPreviewSegmentElement extends UmbLitElement {
|
|
4
|
+
#private;
|
|
5
|
+
private _segment?;
|
|
6
|
+
private _segments;
|
|
7
|
+
protected firstUpdated(_changedProperties: PropertyValues): void;
|
|
8
|
+
render(): typeof nothing | import("lit-html").TemplateResult<1>;
|
|
9
|
+
static styles: import("lit").CSSResult[];
|
|
10
|
+
}
|
|
11
|
+
export { UmbPreviewSegmentElement as element };
|
|
12
|
+
declare global {
|
|
13
|
+
interface HTMLElementTagNameMap {
|
|
14
|
+
'umb-preview-segment': UmbPreviewSegmentElement;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
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 { UMB_PREVIEW_CONTEXT } from '../preview.context.js';
|
|
8
|
+
import { css, customElement, html, nothing, repeat, state, } from '@umbraco-cms/backoffice/external/lit';
|
|
9
|
+
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
|
|
10
|
+
import { UmbSegmentCollectionRepository } from '@umbraco-cms/backoffice/segment';
|
|
11
|
+
let UmbPreviewSegmentElement = class UmbPreviewSegmentElement extends UmbLitElement {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.#segmentRepository = new UmbSegmentCollectionRepository(this);
|
|
15
|
+
this._segments = [];
|
|
16
|
+
}
|
|
17
|
+
#segmentRepository;
|
|
18
|
+
firstUpdated(_changedProperties) {
|
|
19
|
+
super.firstUpdated(_changedProperties);
|
|
20
|
+
this.#loadSegments();
|
|
21
|
+
}
|
|
22
|
+
async #loadSegments() {
|
|
23
|
+
const { data } = await this.#segmentRepository.requestCollection({ skip: 0, take: 100 });
|
|
24
|
+
this._segments = data?.items ?? [];
|
|
25
|
+
const searchParams = new URLSearchParams(window.location.search);
|
|
26
|
+
const segment = searchParams.get('segment');
|
|
27
|
+
if (segment && segment !== this._segment?.unique) {
|
|
28
|
+
this._segment = this._segments.find((c) => c.unique === segment);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
async #onClick(segment) {
|
|
32
|
+
if (this._segment === segment)
|
|
33
|
+
return;
|
|
34
|
+
this._segment = segment;
|
|
35
|
+
const previewContext = await this.getContext(UMB_PREVIEW_CONTEXT);
|
|
36
|
+
previewContext?.updateIFrame({ segment: segment?.unique });
|
|
37
|
+
}
|
|
38
|
+
render() {
|
|
39
|
+
if (this._segments.length <= 1)
|
|
40
|
+
return nothing;
|
|
41
|
+
return html `
|
|
42
|
+
<uui-button look="primary" popovertarget="segments-popover">
|
|
43
|
+
<div>
|
|
44
|
+
<uui-icon name="icon-filter"></uui-icon>
|
|
45
|
+
<span>${this._segment?.name ?? 'Segments'}</span>
|
|
46
|
+
</div>
|
|
47
|
+
</uui-button>
|
|
48
|
+
<uui-popover-container id="segments-popover" placement="top-end">
|
|
49
|
+
<umb-popover-layout>
|
|
50
|
+
<uui-menu-item label="Default" ?active=${!this._segment} @click=${() => this.#onClick()}></uui-menu-item>
|
|
51
|
+
${repeat(this._segments, (item) => item.unique, (item) => html `
|
|
52
|
+
<uui-menu-item
|
|
53
|
+
label=${item.name}
|
|
54
|
+
?active=${item.unique === this._segment?.unique}
|
|
55
|
+
@click=${() => this.#onClick(item)}>
|
|
56
|
+
</uui-menu-item>
|
|
57
|
+
`)}
|
|
58
|
+
</umb-popover-layout>
|
|
59
|
+
</uui-popover-container>
|
|
60
|
+
`;
|
|
61
|
+
}
|
|
62
|
+
static { this.styles = [
|
|
63
|
+
css `
|
|
64
|
+
:host {
|
|
65
|
+
display: flex;
|
|
66
|
+
border-left: 1px solid var(--uui-color-header-contrast);
|
|
67
|
+
--uui-button-font-weight: 400;
|
|
68
|
+
--uui-button-padding-left-factor: 3;
|
|
69
|
+
--uui-button-padding-right-factor: 3;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
uui-button > div {
|
|
73
|
+
display: flex;
|
|
74
|
+
align-items: center;
|
|
75
|
+
gap: 5px;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
umb-popover-layout {
|
|
79
|
+
--uui-color-surface: var(--uui-color-header-surface);
|
|
80
|
+
--uui-color-border: var(--uui-color-header-surface);
|
|
81
|
+
color: var(--uui-color-header-contrast);
|
|
82
|
+
}
|
|
83
|
+
`,
|
|
84
|
+
]; }
|
|
85
|
+
};
|
|
86
|
+
__decorate([
|
|
87
|
+
state()
|
|
88
|
+
], UmbPreviewSegmentElement.prototype, "_segment", void 0);
|
|
89
|
+
__decorate([
|
|
90
|
+
state()
|
|
91
|
+
], UmbPreviewSegmentElement.prototype, "_segments", void 0);
|
|
92
|
+
UmbPreviewSegmentElement = __decorate([
|
|
93
|
+
customElement('umb-preview-segment')
|
|
94
|
+
], UmbPreviewSegmentElement);
|
|
95
|
+
export { UmbPreviewSegmentElement };
|
|
96
|
+
export { UmbPreviewSegmentElement as element };
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { UmbContextBase } from '@umbraco-cms/backoffice/class-api';
|
|
2
2
|
import { UmbContextToken } from '@umbraco-cms/backoffice/context-api';
|
|
3
3
|
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
|
4
|
+
interface UmbPreviewIframeArgs {
|
|
5
|
+
className?: string;
|
|
6
|
+
culture?: string;
|
|
7
|
+
height?: string;
|
|
8
|
+
segment?: string;
|
|
9
|
+
width?: string;
|
|
10
|
+
}
|
|
4
11
|
export declare class UmbPreviewContext extends UmbContextBase {
|
|
5
12
|
#private;
|
|
6
13
|
readonly iframeReady: import("rxjs").Observable<boolean>;
|
|
@@ -15,11 +22,7 @@ export declare class UmbPreviewContext extends UmbContextBase {
|
|
|
15
22
|
reloadIFrame(iframe: HTMLIFrameElement): void;
|
|
16
23
|
restartSession(): Promise<void>;
|
|
17
24
|
startSession(): void;
|
|
18
|
-
updateIFrame(args?:
|
|
19
|
-
culture?: string;
|
|
20
|
-
className?: string;
|
|
21
|
-
height?: string;
|
|
22
|
-
width?: string;
|
|
23
|
-
}): Promise<void>;
|
|
25
|
+
updateIFrame(args?: UmbPreviewIframeArgs): Promise<void>;
|
|
24
26
|
}
|
|
25
27
|
export declare const UMB_PREVIEW_CONTEXT: UmbContextToken<UmbPreviewContext, UmbPreviewContext>;
|
|
28
|
+
export {};
|
|
@@ -6,10 +6,11 @@ import { UmbDocumentPreviewRepository } from '@umbraco-cms/backoffice/document';
|
|
|
6
6
|
import { UMB_SERVER_CONTEXT } from '@umbraco-cms/backoffice/server';
|
|
7
7
|
const UMB_LOCALSTORAGE_SESSION_KEY = 'umb:previewSessions';
|
|
8
8
|
export class UmbPreviewContext extends UmbContextBase {
|
|
9
|
+
#unique;
|
|
9
10
|
#culture;
|
|
11
|
+
#segment;
|
|
10
12
|
#serverUrl;
|
|
11
13
|
#webSocket;
|
|
12
|
-
#unique;
|
|
13
14
|
#iframeReady;
|
|
14
15
|
#previewUrl;
|
|
15
16
|
#documentPreviewRepository;
|
|
@@ -21,11 +22,13 @@ export class UmbPreviewContext extends UmbContextBase {
|
|
|
21
22
|
this.#previewUrl = new UmbStringState(undefined);
|
|
22
23
|
this.previewUrl = this.#previewUrl.asObservable();
|
|
23
24
|
this.#documentPreviewRepository = new UmbDocumentPreviewRepository(this);
|
|
25
|
+
this.#currentArgs = {};
|
|
24
26
|
this.consumeContext(UMB_SERVER_CONTEXT, (instance) => {
|
|
25
27
|
this.#serverUrl = instance?.getServerUrl() ?? '';
|
|
26
28
|
const params = new URLSearchParams(window.location.search);
|
|
27
|
-
this.#culture = params.get('culture');
|
|
28
29
|
this.#unique = params.get('id');
|
|
30
|
+
this.#culture = params.get('culture');
|
|
31
|
+
this.#segment = params.get('segment');
|
|
29
32
|
if (!this.#unique) {
|
|
30
33
|
console.error('No unique ID found in query string.');
|
|
31
34
|
return;
|
|
@@ -62,14 +65,38 @@ export class UmbPreviewContext extends UmbContextBase {
|
|
|
62
65
|
}
|
|
63
66
|
#setPreviewUrl(args) {
|
|
64
67
|
const host = args?.serverUrl || this.#serverUrl;
|
|
65
|
-
const
|
|
66
|
-
|
|
68
|
+
const unique = args?.unique || this.#unique;
|
|
69
|
+
if (!unique) {
|
|
70
|
+
throw new Error('No unique ID found in query string.');
|
|
71
|
+
}
|
|
72
|
+
const url = new URL(unique, host);
|
|
73
|
+
const params = new URLSearchParams(url.search);
|
|
67
74
|
const culture = args?.culture || this.#culture;
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
75
|
+
const segment = args?.segment || this.#segment;
|
|
76
|
+
const cultureParam = 'culture';
|
|
77
|
+
const rndParam = 'rnd';
|
|
78
|
+
const segmentParam = 'segment';
|
|
79
|
+
if (culture) {
|
|
80
|
+
params.set(cultureParam, culture);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
params.delete(cultureParam);
|
|
84
|
+
}
|
|
85
|
+
if (args?.rnd) {
|
|
86
|
+
params.set(rndParam, args.rnd.toString());
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
params.delete(rndParam);
|
|
90
|
+
}
|
|
91
|
+
if (segment) {
|
|
92
|
+
params.set(segmentParam, segment);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
params.delete(segmentParam);
|
|
96
|
+
}
|
|
97
|
+
const previewUrl = new URL(url.pathname + '?' + params.toString(), host);
|
|
98
|
+
const previewUrlString = previewUrl.toString();
|
|
99
|
+
this.#previewUrl.setValue(previewUrlString);
|
|
73
100
|
}
|
|
74
101
|
#setSessionCount(sessions) {
|
|
75
102
|
localStorage.setItem(UMB_LOCALSTORAGE_SESSION_KEY, sessions.toString());
|
|
@@ -137,9 +164,9 @@ export class UmbPreviewContext extends UmbContextBase {
|
|
|
137
164
|
sessions++;
|
|
138
165
|
this.#setSessionCount(sessions);
|
|
139
166
|
}
|
|
167
|
+
#currentArgs;
|
|
140
168
|
async updateIFrame(args) {
|
|
141
|
-
|
|
142
|
-
return;
|
|
169
|
+
const mergedArgs = { ...this.#currentArgs, ...args };
|
|
143
170
|
const wrapper = this.getIFrameWrapper();
|
|
144
171
|
if (!wrapper)
|
|
145
172
|
return;
|
|
@@ -156,20 +183,30 @@ export class UmbPreviewContext extends UmbContextBase {
|
|
|
156
183
|
};
|
|
157
184
|
window.addEventListener('resize', scaleIFrame);
|
|
158
185
|
wrapper.addEventListener('transitionend', scaleIFrame);
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
params.set('culture',
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
186
|
+
this.#iframeReady.setValue(false);
|
|
187
|
+
const params = new URLSearchParams(window.location.search);
|
|
188
|
+
if (mergedArgs.culture) {
|
|
189
|
+
params.set('culture', mergedArgs.culture);
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
params.delete('culture');
|
|
193
|
+
}
|
|
194
|
+
if (mergedArgs.segment) {
|
|
195
|
+
params.set('segment', mergedArgs.segment);
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
params.delete('segment');
|
|
166
199
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
if (
|
|
172
|
-
wrapper.
|
|
200
|
+
const newRelativePathQuery = window.location.pathname + '?' + params.toString();
|
|
201
|
+
history.pushState(null, '', newRelativePathQuery);
|
|
202
|
+
this.#currentArgs = mergedArgs;
|
|
203
|
+
this.#setPreviewUrl({ culture: mergedArgs.culture, segment: mergedArgs.segment });
|
|
204
|
+
if (mergedArgs.className)
|
|
205
|
+
wrapper.className = mergedArgs.className;
|
|
206
|
+
if (mergedArgs.height)
|
|
207
|
+
wrapper.style.height = mergedArgs.height;
|
|
208
|
+
if (mergedArgs.width)
|
|
209
|
+
wrapper.style.width = mergedArgs.width;
|
|
173
210
|
}
|
|
174
211
|
}
|
|
175
212
|
export const UMB_PREVIEW_CONTEXT = new UmbContextToken('UmbPreviewContext');
|
|
@@ -50,8 +50,9 @@ export default {
|
|
|
50
50
|
unlock: 'Lås op',
|
|
51
51
|
createblueprint: 'Opret indholdsskabelon',
|
|
52
52
|
resendInvite: 'Gensend Invitation',
|
|
53
|
-
editContent: '
|
|
54
|
-
chooseWhereToImport: '
|
|
53
|
+
editContent: 'Rediger indhold',
|
|
54
|
+
chooseWhereToImport: 'Vælg hvor du vil importere',
|
|
55
|
+
viewActionsFor: (name) => (name ? `Se handlinger for '${name}'` : 'Se handlinger'),
|
|
55
56
|
},
|
|
56
57
|
actionCategories: {
|
|
57
58
|
content: 'Indhold',
|
|
@@ -62,8 +62,9 @@ export default {
|
|
|
62
62
|
unlock: 'Lås op',
|
|
63
63
|
createblueprint: 'Opret indholdsskabelon',
|
|
64
64
|
resendInvite: 'Gensend Invitation',
|
|
65
|
-
editContent: '
|
|
66
|
-
chooseWhereToImport: '
|
|
65
|
+
editContent: 'Rediger indhold',
|
|
66
|
+
chooseWhereToImport: 'Vælg hvor du vil importere',
|
|
67
|
+
viewActionsFor: (name) => (name ? `Se handlinger for '${name}'` : 'Se handlinger'),
|
|
67
68
|
},
|
|
68
69
|
actionCategories: {
|
|
69
70
|
content: 'Indhold',
|