From 2def046ea3ce54b27d459275839442e179bfa616 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Fri, 8 Aug 2025 10:52:14 +0200 Subject: [PATCH] Eslint naming conventions (#19880) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(eslint): replace local rules with naming conventions * revert relative js extension imports * remove unused local rule * build(eslint): uses recommended setup for import plugin * chore(eslint): conver const to function to follow naming conventions * chore: removes old file * build(eslint): allows Ufm as prefix * build(eslint): allows 'name' and 'extensions' as exports (umbraco-package.ts) * build(eslint): typescript rules should ignore storybook * chore(eslint): ignores eslint for vite definitions * build(eslint): allows UPPER_CASE for properties * build(eslint): ignores umbraco-package.ts files (unconventional exports) * chore(storybook): fixes property editor stylesheet picker * build(eslint): allows Manifest as prefix on interfaces * build(eslint): allows underscore on protected members * build(eslint): allows Meta as prefix on interfaces * build(eslint): allows PascalCase for public members * build(eslint): disables enforcement of booleans with verbs for now as it is too harsh * chore(eslint): add private modifiers as required * deprecates invalid constant name to replace with Umb prefix * renames MediaValueType to comply with naming conventions * chore(eslint): disable naming conventions for local router-slot package * chore(eslint): follow naming conventions * chore(eslint): disable naming conventions for property editor interfaces * chore(eslint): follow naming conventions * chore(storybook): fix story * chore(eslint): follow naming conventions * build(eslint): allows `_host` as public variable * chore(eslint): follow naming conventions * build(eslint): allows double leading underscore on public members * build(eslint): matches #private and public modifiers * build(eslint): ignores language files * chore(eslint): ignores umbraco package file * chore(eslint): follow naming conventions * storybook lang * chore(eslint): follow naming conventions * chore(eslint): follow naming conventions * chore(eslint): make _manager a little more open * chore(eslint): some properties should be protected * Update src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper.element.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper.element.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper.element.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * proxy type for UrlParametersRecord * _items deprecated property * bring back ConditionTypes type * bring back _items for trash bulk action * ignorer deprecated proxies * keep settingsDataContentTypeKey for satefy --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Niels Lyngsø Co-authored-by: Niels Lyngsø --- .../.storybook/preview.js | 4 +- .../devops/eslint/rules/bad-type-import.cjs | 31 ----- .../enforce-umb-prefix-on-element-name.cjs | 43 ------- .../rules/exported-string-constant-naming.cjs | 54 --------- .../devops/eslint/rules/umb-class-prefix.cjs | 28 ----- .../eslint-local-rules.cjs | 8 -- src/Umbraco.Web.UI.Client/eslint.config.js | 96 +++++++++++++-- .../error/installer-error.element.ts | 2 +- .../apps/upgrader/upgrader-view.element.ts | 4 +- .../src/apps/upgrader/upgrader.element.ts | 36 +++--- .../src/json-schema/umbraco-package-schema.ts | 1 + .../base-extensions-initializer.controller.ts | 1 + .../extension-api/types/condition.types.ts | 2 + .../src/libs/extension-api/types/map.types.ts | 1 + .../src/libs/extension-api/types/utils.ts | 1 + .../localization.controller.ts | 4 +- .../localization-api/localization.manager.ts | 1 + .../src/libs/observable-api/observer.ts | 1 + .../types/mapping-function.type.ts | 1 + .../types/memoization-function.type.ts | 1 + .../src/mocks/data/data-type/data-type.db.ts | 10 +- .../src/mocks/data/utils/file-system/types.ts | 1 + .../src/mocks/handlers/config.handlers.ts | 4 +- .../handlers/data-type/filter.handlers.ts | 4 +- .../src/mocks/handlers/manifests.handlers.ts | 18 +-- .../block-grid-area-config-entry.element.ts | 6 +- ...grid-area-type-workspace-editor.element.ts | 2 +- .../workspace/views/settings.element.ts | 5 +- .../block-grid-areas-container.element.ts | 6 +- .../block-grid-block-inline.element.ts | 4 +- .../block-grid-entry.context.ts | 6 +- .../block-grid-entry.element.ts | 52 +++++---- .../block-grid-scale-manager.controller.ts | 2 +- .../property-editor-ui-block-grid.element.ts | 2 +- ...i-block-grid-type-configuration.element.ts | 2 +- ...property-value-cloner-block-grid.cloner.ts | 2 +- ...-grid-type-workspace-view-areas.element.ts | 4 +- .../block-list-entry.element.ts | 30 ++--- .../inline-list-block.element.ts | 2 +- .../context/block-list-entry.context.ts | 6 +- .../property-editor-ui-block-list.element.ts | 2 +- .../block-rte-entry.element.ts | 24 ++-- .../ref-rte-block/ref-rte-block.element.ts | 2 +- .../context/block-rte-entry.context.ts | 6 +- .../block-type-card.element.ts | 6 +- .../block-type-workspace-editor.element.ts | 2 +- .../packages/block/block/conditions/types.ts | 3 + .../block/context/block-entries.context.ts | 4 +- .../block/context/block-entry.context.ts | 28 +++-- .../block-catalogue-modal.element.ts | 4 +- ...-layout-block-property-value-cloner.api.ts | 2 +- .../block-workspace-editor.element.ts | 2 +- .../block/block/workspace/manifests.ts | 1 + ...ace-view-edit-content-no-router.element.ts | 2 +- ...-workspace-view-edit-properties.element.ts | 6 +- ...ck-workspace-view-edit-property.element.ts | 4 +- .../block-workspace-view-edit-tab.element.ts | 4 +- .../edit/block-workspace-view-edit.element.ts | 2 +- .../code-editor-modal.element.ts | 2 +- .../components/code-editor.element.ts | 8 +- .../code-editor/models/code-editor.model.ts | 4 + .../content/content-type/conditions/types.ts | 1 + .../content-type-workspace-context-base.ts | 4 +- ...ontent-type-design-editor-group.element.ts | 16 +-- ...ent-type-design-editor-property.element.ts | 3 + .../content-type-design-editor-tab.element.ts | 8 +- .../workspace-has-content-collection/types.ts | 1 + .../content-workspace-property.element.ts | 12 +- .../edit/content-editor-properties.element.ts | 4 +- .../views/edit/content-editor-tab.element.ts | 4 +- .../property-type-workspace-editor.element.ts | 4 +- .../src/packages/core/auth/auth-flow.ts | 1 + .../auth/modals/umb-app-auth-modal.element.ts | 4 +- .../collection-create-action.element.ts | 2 +- .../collection-view-bundle.element.ts | 4 +- .../collection-pagination.element.ts | 10 +- .../core/collection/conditions/types.ts | 2 + .../extensions/collection-view.extension.ts | 8 +- .../backoffice-modal-container.element.ts | 2 +- .../input-date/input-date.element.ts | 1 + .../input-number-range.element.ts | 6 +- .../input-toggle/input-toggle.element.ts | 2 +- .../split-panel/split-panel.element.ts | 4 +- ...create-option-action-list-modal.element.ts | 2 +- .../common/delete/delete.action.ts | 2 +- .../default/entity-action.element.ts | 2 +- .../entity-action-list.element.ts | 6 +- .../common/bulk-delete/bulk-delete.action.ts | 20 +++- .../entity-item-ref.element.ts | 2 +- .../conditions/switch.condition.ts | 1 + .../extension-registry/conditions/types.ts | 3 +- ...nsion-element-and-api-slot-element-base.ts | 16 +-- .../packages/core/menu/conditions/types.ts | 1 + ...idebar-menu-with-entity-actions.element.ts | 4 +- .../common/confirm/confirm-modal.stories.ts | 38 +++--- .../error-viewer-modal.element.ts | 4 +- .../core/modal/context/modal.context.ts | 2 + .../src/packages/core/models/index.ts | 2 +- .../object-type/input-object-type.element.ts | 6 +- .../search/picker-search-field.element.ts | 6 +- .../search/picker-search-result.element.ts | 8 +- .../picker-search-result-item-element-base.ts | 2 +- .../kinds/default/property-action.element.ts | 2 +- .../extensions/property-editor.extension.ts | 3 + .../restore-from-recycle-bin-modal.element.ts | 6 +- .../bulk-trash/bulk-trash.action.ts | 20 +++- .../core/resources/cancelable-promise.ts | 6 +- .../src/packages/core/resources/types.ts | 2 + .../generate-route-path-builder.function.ts | 4 +- .../modal-route-registration.controller.ts | 1 + .../modal-route-registration.interface.ts | 1 + .../core/router/route/route.context.ts | 1 + .../core/router/router-slot/config.ts | 2 +- .../packages/core/router/router-slot/model.ts | 1 + .../core/router/router-slot/router-slot.ts | 3 +- .../section/conditions/section-alias/types.ts | 2 + .../core/section/section-default.element.ts | 2 +- .../modal/rename-server-file-modal.element.ts | 2 +- .../packages/core/sorter/sorter.controller.ts | 17 +-- .../src/packages/core/temporary-file/types.ts | 2 + .../modal/duplicate-to-modal.element.ts | 2 +- .../modal/sort-children-of-modal.element.ts | 4 +- .../modal/folder-create-modal.element.ts | 2 +- .../folder/modal/folder-modal-element-base.ts | 2 +- .../tree-item-base/tree-item-element-base.ts | 2 +- .../core/tree/tree-item/tree-item.element.ts | 12 +- .../tree-picker-modal.element.ts | 10 +- .../core/utils/bytes/bytes.function.ts | 1 + .../path/url-pattern-to-string.function.ts | 9 +- .../src/packages/core/utils/type/diff.type.ts | 1 + .../workspace-action-menu-item.element.ts | 2 +- .../workspace-action-menu.element.ts | 7 +- .../workspace-action-default-kind.element.ts | 4 +- .../workspace-menu-breadcrumb.element.ts | 4 +- ...rkspace-variant-menu-breadcrumb.element.ts | 8 +- .../workspace-footer.element.ts | 6 +- ...ace-split-view-variant-selector.element.ts | 2 +- .../conditions/workspace-alias/types.ts | 2 + .../workspace-entity-is-new/types.ts | 2 +- .../conditions/workspace-entity-type/types.ts | 1 + ...tree-entity-workspace-context.interface.ts | 1 + ...workspace-split-view-manager.controller.ts | 10 +- .../entity-detail-workspace-base.ts | 7 +- .../routable/routable-workspace.element.ts | 2 +- .../core/workspace/workspace.element.ts | 2 +- .../workspace-view-data-type-info.element.ts | 6 +- ...ment-blueprint-workspace-editor.element.ts | 8 +- ...-blueprint-workspace-split-view.element.ts | 4 +- ...ent-type-property-type-item-ref.element.ts | 2 +- .../document-type-workspace.context.ts | 2 +- .../document-table-column-name.element.ts | 2 +- .../document-table-column-state.element.ts | 2 +- .../modal/duplicate-document-modal.element.ts | 2 +- .../document-configuration.context.ts | 4 +- .../save-modal/document-save-modal.element.ts | 2 +- ...ocument-variant-language-picker.element.ts | 4 +- ...-publish-with-descendants-modal.element.ts | 4 +- .../modal/document-publish-modal.element.ts | 8 +- .../modal/document-unpublish-modal.element.ts | 12 +- .../document-reference-table.element.ts | 6 +- .../rollback/modal/rollback-modal.element.ts | 12 +- .../document-search-result-item.element.ts | 6 +- ...rty-value-permission-flow-modal.element.ts | 2 +- .../property-type-modal.element.ts | 4 +- ...-property-value-user-permission.element.ts | 14 +-- ...cument-granular-user-permission.element.ts | 14 +-- .../workspace/actions/save.action.ts | 2 +- .../document-workspace-editor.element.ts | 8 +- ...ace-split-view-variant-selector.element.ts | 2 +- .../document-workspace-split-view.element.ts | 6 +- .../modal/embedded-media-modal.stories.ts | 29 ++--- .../health-check/health-check.extension.ts | 13 ++- ...health-check-group-box-overview.element.ts | 8 +- .../views/health-check-group.element.ts | 8 +- .../app-language-select.element.ts | 41 ++++--- .../item/langauge-item-ref.element.ts | 2 +- .../language-workspace-editor.element.ts | 2 +- ...language-details-workspace-view.element.ts | 6 +- .../donut-chart/donut-chart.element.ts | 18 +-- .../log-viewer-date-range-selector.element.ts | 4 +- .../log-viewer/repository/sources/index.ts | 4 +- .../sources/log-viewer.server.data.ts | 8 +- .../workspace/logviewer-workspace.context.ts | 20 ++-- .../log-viewer-log-types-chart.element.ts | 18 +-- .../log-viewer-messages-list.element.ts | 16 +-- .../log-viewer-polling-button.element.ts | 21 ++-- .../log-viewer-search-input.element.ts | 10 +- .../input-dropzone/input-dropzone.element.ts | 2 +- .../modal/media-type-import-modal.element.ts | 4 +- ...rty-editor-ui-media-type-picker.element.ts | 4 +- ...dia-type-property-type-item-ref.element.ts | 2 +- ...edia-history-workspace-info-app.element.ts | 10 +- .../image-cropper-focus-setter.element.ts | 26 ++--- .../image-cropper.element.ts | 17 ++- .../input-upload-field.element.ts | 6 +- .../media/dropzone/dropzone-media.element.ts | 2 +- .../media/item/media-item-ref.element.ts | 4 +- .../media-picker-modal.element.ts | 8 +- ...y-editor-ui-media-entity-picker.element.ts | 4 +- ...property-editor-ui-upload-field.element.ts | 4 +- .../property-editors/upload-field/types.ts | 13 ++- .../media-workspace-editor.element.ts | 8 +- .../media-workspace-split-view.element.ts | 6 +- ...y-editor-ui-member-group-picker.element.ts | 4 +- ...ber-type-property-type-item-ref.element.ts | 2 +- .../member/item/member-item-ref.element.ts | 4 +- .../member/member-workspace-editor.element.ts | 6 +- .../member-workspace-split-view.element.ts | 6 +- .../models-builder-dashboard.element.ts | 4 +- .../input-multi-url.element.ts | 4 +- .../workspace/workspace-package.element.ts | 2 +- .../repository/sources/package.server.data.ts | 22 ++-- .../src/packages/packages/types.ts | 13 ++- ...dashboard-performance-profiling.element.ts | 6 +- .../input-content-picker-source.element.ts | 2 +- ...r-ui-content-picker-source-type.element.ts | 10 +- ...property-editor-ui-number-range.element.ts | 6 +- .../property-editor-ui-toggle.element.ts | 8 +- .../utils/property-editor-test-utils.ts | 94 ++++++++------- ...tion-type-detail-workspace-view.element.ts | 22 ++-- .../bulk-delete-with-relation.action.ts | 2 +- ...bulk-delete-with-relation-modal.element.ts | 2 +- .../bulk-trash-with-relation.action.ts | 2 +- .../bulk-trash-with-relation-modal.element.ts | 2 +- .../delete/delete-with-relation.action.ts | 2 +- .../delete-with-relation-modal.element.ts | 4 +- .../trash-with-relation-modal.element.ts | 4 +- .../trash/trash-with-relation.action.ts | 2 +- ...-action-modal-entity-references.element.ts | 8 +- ...-action-modal-entity-references.element.ts | 4 +- .../views/section-view-examine-indexers.ts | 8 +- .../views/section-view-examine-overview.ts | 8 +- .../views/section-view-examine-searchers.ts | 110 +++++++++--------- .../search-modal/search-modal.element.ts | 4 +- .../tags-input/tags-input.element.ts | 10 +- .../create-from-snippet-modal.ts | 2 +- ...rty-editor-ui-stylesheet-picker.stories.ts | 21 ++-- .../input-template/input-template.element.ts | 23 ++-- .../template-card/template-card.element.ts | 7 +- .../src/packages/templating/types.ts | 2 + .../conditions/group-id/group-id.condition.ts | 4 +- .../modals/external-login-modal.element.ts | 2 +- .../current-user-mfa-disable-modal.element.ts | 4 +- .../current-user-mfa-modal.element.ts | 2 +- ...up-table-sections-column-layout.element.ts | 4 +- ...-group-granular-permission-list.element.ts | 4 +- ...-user-permission-settings-modal.element.ts | 6 +- ...te-user-client-credential-modal.element.ts | 5 +- .../user-collection-header.element.ts | 2 +- .../user-avatar/user-avatar.element.ts | 8 +- .../user-document-start-node.element.ts | 2 +- .../user-media-start-node.element.ts | 2 +- .../user-allow-delete-action.condition.ts | 2 +- .../user-allow-disable-action.condition.ts | 2 +- .../user-allow-enable-action.condition.ts | 2 +- .../user-allow-unlock-action.condition.ts | 2 +- .../user-is-default-kind.condition.ts | 2 +- .../create/modal/create-user-modal.element.ts | 2 +- .../create-user-success-modal.element.ts | 4 +- .../resend-invite.action.condition.ts | 2 +- .../user/user/item/user-item-ref.element.ts | 4 +- .../modals/user-mfa/user-mfa-modal.element.ts | 2 +- .../user/user/utils/is-user.function.ts | 10 +- .../user-workspace-avatar.element.ts | 2 +- .../modal/webhook-events-modal.element.ts | 2 +- .../webhook-workspace-editor.element.ts | 6 +- src/Umbraco.Web.UI.Client/src/vite-env.d.ts | 1 + src/Umbraco.Web.UI.Docs/.nvmrc | 1 - 268 files changed, 1055 insertions(+), 982 deletions(-) delete mode 100644 src/Umbraco.Web.UI.Client/devops/eslint/rules/bad-type-import.cjs delete mode 100644 src/Umbraco.Web.UI.Client/devops/eslint/rules/enforce-umb-prefix-on-element-name.cjs delete mode 100644 src/Umbraco.Web.UI.Client/devops/eslint/rules/exported-string-constant-naming.cjs delete mode 100644 src/Umbraco.Web.UI.Client/devops/eslint/rules/umb-class-prefix.cjs delete mode 100644 src/Umbraco.Web.UI.Docs/.nvmrc diff --git a/src/Umbraco.Web.UI.Client/.storybook/preview.js b/src/Umbraco.Web.UI.Client/.storybook/preview.js index 4ed958e32c..98c8ab65b5 100644 --- a/src/Umbraco.Web.UI.Client/.storybook/preview.js +++ b/src/Umbraco.Web.UI.Client/.storybook/preview.js @@ -140,10 +140,10 @@ class UmbStoryBookElement extends UmbLitElement { new UmbModalManagerContext(this); new UmbNotificationContext(this); - umbLocalizationRegistry.loadLanguage('en-us'); // register default language + umbLocalizationRegistry.loadLanguage('en'); // register default language this.consumeContext(UMB_APP_LANGUAGE_CONTEXT, (appLanguageContext) => { - appLanguageContext.setLanguage('en-us'); // set default language + appLanguageContext?.setLanguage('en'); // set default language }); } diff --git a/src/Umbraco.Web.UI.Client/devops/eslint/rules/bad-type-import.cjs b/src/Umbraco.Web.UI.Client/devops/eslint/rules/bad-type-import.cjs deleted file mode 100644 index eebdca6c75..0000000000 --- a/src/Umbraco.Web.UI.Client/devops/eslint/rules/bad-type-import.cjs +++ /dev/null @@ -1,31 +0,0 @@ - /** @type {import('eslint').Rule.RuleModule} */ -module.exports = { - meta: { - type: 'problem', - docs: { - description: 'Ensures the use of the `import type` operator from the `src/core/models/index.ts` file.', - category: 'Best Practices', - recommended: true, - }, - fixable: 'code', - schema: [], - }, - create: function (context) { - return { - ImportDeclaration: function (node) { - if ( - node.source.parent.importKind !== 'type' && - (node.source.value.endsWith('/models') || node.source.value === 'router-slot/model') - ) { - const sourceCode = context.getSourceCode(); - const nodeSource = sourceCode.getText(node); - context.report({ - node, - message: 'Use `import type` instead of `import`.', - fix: (fixer) => fixer.replaceText(node, nodeSource.replace('import', 'import type')), - }); - } - }, - }; - }, -}; \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/devops/eslint/rules/enforce-umb-prefix-on-element-name.cjs b/src/Umbraco.Web.UI.Client/devops/eslint/rules/enforce-umb-prefix-on-element-name.cjs deleted file mode 100644 index e290422e62..0000000000 --- a/src/Umbraco.Web.UI.Client/devops/eslint/rules/enforce-umb-prefix-on-element-name.cjs +++ /dev/null @@ -1,43 +0,0 @@ -const ALLOWED_PREFIXES = ['umb-', 'ufm-', 'test-', 'example-']; - -/** @type {import('eslint').Rule.RuleModule} */ -module.exports = { - meta: { - type: 'suggestion', - docs: { - description: 'Enforce Custom Element names to start with "umb-".', - category: 'Naming', - recommended: true, - }, - schema: [], - }, - create: function (context) { - return { - CallExpression(node) { - // check if the expression is @customElement decorator - const isCustomElementDecorator = - node.callee.type === 'Identifier' && - node.callee.name === 'customElement' && - node.arguments.length === 1 && - node.arguments[0].type === 'Literal' && - typeof node.arguments[0].value === 'string'; - - if (isCustomElementDecorator) { - const elementName = node.arguments[0].value; - - // check if the element name starts with an allowed prefix: - const isElementNameValid = ALLOWED_PREFIXES.some((prefix) => elementName.startsWith(prefix)); - - if (!isElementNameValid) { - context.report({ - node, - message: 'Custom Element name should start with "umb-" or "ufm-".', - // There is no fixer on purpose because it's not safe to automatically rename the element name. - // Renaming should be done manually with consideration of potential impacts. - }); - } - } - }, - }; - }, -}; diff --git a/src/Umbraco.Web.UI.Client/devops/eslint/rules/exported-string-constant-naming.cjs b/src/Umbraco.Web.UI.Client/devops/eslint/rules/exported-string-constant-naming.cjs deleted file mode 100644 index 8118a54ab1..0000000000 --- a/src/Umbraco.Web.UI.Client/devops/eslint/rules/exported-string-constant-naming.cjs +++ /dev/null @@ -1,54 +0,0 @@ -/** @type {import('eslint').Rule.RuleModule}*/ -module.exports = { - meta: { - type: 'problem', - docs: { - description: - 'Ensure all exported string constants should be in uppercase with words separated by underscores and prefixed with UMB_', - }, - schema: [ - { - type: 'object', - properties: { - excludedFileNames: { - type: 'array', - items: { - type: 'string', - }, - }, - }, - additionalProperties: false, - }, - ], - }, - create: function (context) { - const excludedFileNames = context.options[0]?.excludedFileNames || []; - return { - ExportNamedDeclaration(node) { - const fileName = context.filename; - - if (excludedFileNames.some((excludedFileName) => fileName.includes(excludedFileName))) { - // Skip the rule check for files in the excluded list - return; - } - - if (node.declaration && node.declaration.type === 'VariableDeclaration') { - const declaration = node.declaration.declarations[0]; - const { id, init } = declaration; - - if (id && id.type === 'Identifier' && init && init.type === 'Literal' && typeof init.value === 'string') { - const isValidName = /^[A-Z]+(_[A-Z]+)*$/.test(id.name); - - if (!isValidName || !id.name.startsWith('UMB_')) { - context.report({ - node: id, - message: - 'Exported string constant should be in uppercase with words separated by underscores and prefixed with UMB_', - }); - } - } - } - }, - }; - }, -}; diff --git a/src/Umbraco.Web.UI.Client/devops/eslint/rules/umb-class-prefix.cjs b/src/Umbraco.Web.UI.Client/devops/eslint/rules/umb-class-prefix.cjs deleted file mode 100644 index 7856aec460..0000000000 --- a/src/Umbraco.Web.UI.Client/devops/eslint/rules/umb-class-prefix.cjs +++ /dev/null @@ -1,28 +0,0 @@ -const ALLOWED_PREFIXES = ['Umb', 'Example']; - -/** @type {import('eslint').Rule.RuleModule} */ -module.exports = { - meta: { - type: 'problem', - docs: { - description: 'Ensure that all class declarations are prefixed with "Umb"', - category: 'Best Practices', - recommended: true, - }, - schema: [], - }, - create: function (context) { - function checkClassName(node) { - if (node.id && node.id.name && !ALLOWED_PREFIXES.some((prefix) => node.id.name.startsWith(prefix))) { - context.report({ - node: node.id, - message: `Class declaration should be prefixed with one of the following prefixes: ${ALLOWED_PREFIXES.join(', ')}`, - }); - } - } - - return { - ClassDeclaration: checkClassName, - }; - }, -}; diff --git a/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs b/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs index ed3c3364ff..94e82feafc 100644 --- a/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs +++ b/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs @@ -1,27 +1,19 @@ 'use strict'; -const badTypeImportRule = require('./devops/eslint/rules/bad-type-import.cjs'); const enforceElementSuffixOnElementClassNameRule = require('./devops/eslint/rules/enforce-element-suffix-on-element-class-name.cjs'); -const enforceUmbPrefixOnElementNameRule = require('./devops/eslint/rules/enforce-umb-prefix-on-element-name.cjs'); const enforceUmbracoExternalImportsRule = require('./devops/eslint/rules/enforce-umbraco-external-imports.cjs'); const ensureRelativeImportUseJsExtensionRule = require('./devops/eslint/rules/ensure-relative-import-use-js-extension.cjs'); -const exportedStringConstantNaming = require('./devops/eslint/rules/exported-string-constant-naming.cjs'); const noDirectApiImportRule = require('./devops/eslint/rules/no-direct-api-import.cjs'); const preferImportAliasesRule = require('./devops/eslint/rules/prefer-import-aliases.cjs'); const preferStaticStylesLastRule = require('./devops/eslint/rules/prefer-static-styles-last.cjs'); -const umbClassPrefixRule = require('./devops/eslint/rules/umb-class-prefix.cjs'); const noRelativeImportToImportMapModule = require('./devops/eslint/rules/no-relative-import-to-import-map-module.cjs'); module.exports = { - 'bad-type-import': badTypeImportRule, 'enforce-element-suffix-on-element-class-name': enforceElementSuffixOnElementClassNameRule, - 'enforce-umb-prefix-on-element-name': enforceUmbPrefixOnElementNameRule, 'enforce-umbraco-external-imports': enforceUmbracoExternalImportsRule, 'ensure-relative-import-use-js-extension': ensureRelativeImportUseJsExtensionRule, - 'exported-string-constant-naming': exportedStringConstantNaming, 'no-direct-api-import': noDirectApiImportRule, 'prefer-import-aliases': preferImportAliasesRule, 'prefer-static-styles-last': preferStaticStylesLastRule, - 'umb-class-prefix': umbClassPrefixRule, 'no-relative-import-to-import-map-module': noRelativeImportToImportMapModule, }; diff --git a/src/Umbraco.Web.UI.Client/eslint.config.js b/src/Umbraco.Web.UI.Client/eslint.config.js index 2bcbbb5b51..123cbed404 100644 --- a/src/Umbraco.Web.UI.Client/eslint.config.js +++ b/src/Umbraco.Web.UI.Client/eslint.config.js @@ -14,10 +14,12 @@ import jsdoc from 'eslint-plugin-jsdoc'; export default [ // Recommended config applied to all files js.configs.recommended, + importPlugin.flatConfigs.recommended, ...tseslint.configs.recommended, wcPlugin.configs['flat/recommended'], litPlugin.configs['flat/recommended'], // We use the non typescript version to allow types to be defined in the jsdoc comments. This will allow js docs as an alternative to typescript types. jsdoc.configs['flat/recommended'], + ...storybook.configs['flat/recommended'], localRules.configs.all, eslintPluginPrettierRecommended, @@ -39,22 +41,17 @@ export default [ // Global config { plugins: { - import: importPlugin, 'local-rules': localRules, }, rules: { semi: ['warn', 'always'], 'prettier/prettier': ['warn', { endOfLine: 'auto' }], - 'no-unused-vars': 'off', //Let '@typescript-eslint/no-unused-vars' catch the errors to allow unused function parameters (ex: in interfaces) 'no-var': 'error', - ...importPlugin.configs.recommended.rules, 'import/namespace': 'off', 'import/no-unresolved': 'off', 'import/order': ['warn', { groups: ['builtin', 'parent', 'sibling', 'index', 'external'] }], 'import/no-self-import': 'error', 'import/no-cycle': ['error', { maxDepth: 6, allowUnsafeDynamicCyclicDependency: true }], - 'import/no-named-as-default': 'off', // Does not work with eslint 9 - 'import/no-named-as-default-member': 'off', // Does not work with eslint 9 'local-rules/prefer-static-styles-last': 'warn', 'local-rules/enforce-umbraco-external-imports': [ 'error', @@ -62,12 +59,6 @@ export default [ exceptions: ['@umbraco-cms', '@open-wc/testing', '@storybook', 'msw', '.', 'vite', 'uuid', 'diff'], }, ], - 'local-rules/exported-string-constant-naming': [ - 'error', - { - excludedFileNames: ['umbraco-package'], - }, - ], 'jsdoc/check-tag-names': [ 'warn', { @@ -81,6 +72,7 @@ export default [ // Pattern-specific overrides { files: ['**/*.ts'], + ignores: ['.storybook', '**/*.stories.ts', '**/umbraco-package.ts', 'src/assets/lang/*.ts'], languageOptions: { parserOptions: { project: true, @@ -90,7 +82,10 @@ export default [ ...globals.browser, }, }, + ...importPlugin.flatConfigs.typescript, rules: { + 'no-unused-vars': 'off', //Let '@typescript-eslint/no-unused-vars' catch the errors to allow unused function parameters (ex: in interfaces) + '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_', varsIgnorePattern: '^_' }], '@typescript-eslint/no-non-null-assertion': 'off', '@typescript-eslint/no-explicit-any': 'warn', '@typescript-eslint/no-unused-vars': 'error', @@ -98,6 +93,84 @@ export default [ '@typescript-eslint/consistent-type-imports': 'error', '@typescript-eslint/no-import-type-side-effects': 'warn', '@typescript-eslint/no-deprecated': 'warn', + '@typescript-eslint/naming-convention': [ + 'error', + // All private members should be camelCase with leading underscore + // This is to ensure that private members are not used outside the class, as they + // are not part of the public API. + // Example NOT OK: private myPrivateVariable + // Example OK: private _myPrivateVariable + { + selector: 'memberLike', + modifiers: ['private'], + format: ['camelCase'], + leadingUnderscore: 'require', + trailingUnderscore: 'forbid', + }, + // All public members and variables should be camelCase without leading underscore + // Example: myPublicVariable, myPublicMethod + { + selector: ['variableLike', 'memberLike'], + modifiers: ['public'], + filter: { + regex: '^_host$', + match: false, + }, + format: ['camelCase', 'UPPER_CASE', 'PascalCase'], + leadingUnderscore: 'allowDouble', + trailingUnderscore: 'forbid', + }, + // All #private members and variables should be camelCase without leading underscore + // Example: #myPublicVariable, #myPublicMethod + { + selector: ['variableLike', 'memberLike'], + modifiers: ['#private'], + format: ['camelCase', 'UPPER_CASE', 'PascalCase'], + leadingUnderscore: 'allowDouble', + trailingUnderscore: 'forbid', + }, + // All protected members and variables should be camelCase with optional leading underscore (if needed to be pseudo-private) + // Example: protected myPublicVariable, protected _myPublicMethod + { + selector: ['variableLike', 'memberLike'], + modifiers: ['protected'], + format: ['camelCase'], + leadingUnderscore: 'allow', + trailingUnderscore: 'forbid', + }, + // Allow quoted properties, as they are often used in JSON or when the property name is not a valid identifier + // This is to ensure that properties can be used in JSON or when the property name + // is not a valid identifier (e.g. contains spaces or special characters) + // Example: { "umb-some-component": UmbSomeComponent } + { + selector: ['objectLiteralProperty', 'typeProperty', 'enumMember'], + modifiers: ['requiresQuotes'], + format: null, + }, + // All (exported) types should be PascalCase with leading 'Umb' or 'Example' + // Example: UmbExampleType, ExampleTypeLike + { + selector: 'typeLike', + modifiers: ['exported'], + format: ['PascalCase'], + prefix: ['Umb', 'Ufm', 'Manifest', 'Meta', 'Example'] + }, + // All exported string constants should be UPPER_CASE with leading 'UMB_' + // Example: UMB_EXAMPLE_CONSTANT + { + selector: 'variable', + modifiers: ['exported', 'const'], + types: ['string', 'number', 'boolean'], + format: ['UPPER_CASE'], + prefix: ['UMB_'], + }, + // Allow destructured variables to be named as they are in the object + { + selector: "variable", + modifiers: ["destructured"], + format: null, + }, + ], }, }, { @@ -109,5 +182,4 @@ export default [ }, }, }, - ...storybook.configs['flat/recommended'], ]; diff --git a/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.element.ts b/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.element.ts index a7aad8e470..968c4fda70 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/installer/error/installer-error.element.ts @@ -8,7 +8,7 @@ import type { UmbProblemDetails } from '@umbraco-cms/backoffice/resources'; @customElement('umb-installer-error') export class UmbInstallerErrorElement extends UmbLitElement { @state() - _error?: UmbProblemDetails; + private _error?: UmbProblemDetails; private _installerContext?: UmbInstallerContext; diff --git a/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader-view.element.ts b/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader-view.element.ts index 1b1f78132d..21fc60d6db 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader-view.element.ts @@ -52,7 +52,7 @@ export class UmbUpgraderViewElement extends LitElement {

Simply click continue below to be guided through the rest of the upgrade.

-
+

` : this._renderLayout()} `; } - _handleSubmit = async (e: SubmitEvent) => { + #handleSubmit = async (e: SubmitEvent) => { e.preventDefault(); this.dispatchEvent(new CustomEvent('onAuthorizeUpgrade', { detail: e, bubbles: true })); }; diff --git a/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader.element.ts b/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader.element.ts index 6b959d1f9d..fa1b105c48 100644 --- a/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader.element.ts +++ b/src/Umbraco.Web.UI.Client/src/apps/upgrader/upgrader.element.ts @@ -13,16 +13,16 @@ import './upgrader-view.element.js'; @customElement('umb-upgrader') export class UmbUpgraderElement extends UmbLitElement { @state() - private upgradeSettings?: UpgradeSettingsResponseModelReadable; + private _upgradeSettings?: UpgradeSettingsResponseModelReadable; @state() - private fetching = true; + private _fetching = true; @state() - private upgrading = false; + private _upgrading = false; @state() - private errorMessage = ''; + private _errorMessage = ''; constructor() { super(); @@ -32,46 +32,46 @@ export class UmbUpgraderElement extends UmbLitElement { override render() { return html` + .fetching=${this._fetching} + .upgrading=${this._upgrading} + .settings=${this._upgradeSettings} + .errorMessage=${this._errorMessage} + @onAuthorizeUpgrade=${this.#handleSubmit}> `; } private async _setup() { - this.fetching = true; + this._fetching = true; const { data, error } = await tryExecute(this, UpgradeService.getUpgradeSettings(), { disableNotifications: true }); if (data) { - this.upgradeSettings = data; + this._upgradeSettings = data; } else if (error) { - this.errorMessage = UmbApiError.isUmbApiError(error) + this._errorMessage = UmbApiError.isUmbApiError(error) ? (error.problemDetails.detail ?? 'Unknown error, please try again') : error.message; } - this.fetching = false; + this._fetching = false; } - _handleSubmit = async (e: CustomEvent) => { + #handleSubmit = async (e: CustomEvent) => { e.stopPropagation(); - this.errorMessage = ''; - this.upgrading = true; + this._errorMessage = ''; + this._upgrading = true; const { error } = await tryExecute(this, UpgradeService.postUpgradeAuthorize()); if (error) { - this.errorMessage = UmbApiError.isUmbApiError(error) + this._errorMessage = UmbApiError.isUmbApiError(error) ? (error.problemDetails.detail ?? 'Unknown error, please try again') : (error.message ?? 'Unknown error, please try again'); } else { history.pushState(null, '', 'section/content'); } - this.upgrading = false; + this._upgrading = false; }; } diff --git a/src/Umbraco.Web.UI.Client/src/json-schema/umbraco-package-schema.ts b/src/Umbraco.Web.UI.Client/src/json-schema/umbraco-package-schema.ts index fae9b07e65..a001c52d51 100644 --- a/src/Umbraco.Web.UI.Client/src/json-schema/umbraco-package-schema.ts +++ b/src/Umbraco.Web.UI.Client/src/json-schema/umbraco-package-schema.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/naming-convention */ import '@umbraco-cms/backoffice/extension-registry'; /** diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts index 48bdd60352..6a51e24d3f 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/base-extensions-initializer.controller.ts @@ -5,6 +5,7 @@ import type { UmbBaseExtensionInitializer } from './base-extension-initializer.c import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +// eslint-disable-next-line @typescript-eslint/naming-convention export type PermittedControllerType = ControllerType & { manifest: Required>; }; diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/types/condition.types.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/types/condition.types.ts index 581cec28b5..1d1e594d63 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/types/condition.types.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/types/condition.types.ts @@ -4,12 +4,14 @@ export interface UmbConditionConfigBase { alias: AliasType; } +// eslint-disable-next-line @typescript-eslint/naming-convention export type ConditionTypeMap = { [Condition in ConditionConfigs as Condition['alias']]: Condition; } & { [key: string]: UmbConditionConfigBase; }; +// eslint-disable-next-line @typescript-eslint/naming-convention export type SpecificConditionTypeOrUmbConditionConfigBase< ConditionConfigs extends UmbConditionConfigBase, T extends keyof ConditionTypeMap | string, diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/types/map.types.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/types/map.types.ts index 255621e28f..ac09a9c46b 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/types/map.types.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/types/map.types.ts @@ -6,6 +6,7 @@ type ManifestTypeMapGenerator = { [key: string]: ManifestBase; }; +// eslint-disable-next-line @typescript-eslint/naming-convention export type SpecificManifestTypeOrManifestBase< ManifestTypes extends ManifestBase, T extends string, diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/types/utils.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/types/utils.ts index bf6ad39b25..67534655a4 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/types/utils.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/types/utils.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/naming-convention */ import type { UmbApi } from '../models/index.js'; // eslint-disable-next-line @typescript-eslint/no-explicit-any diff --git a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.ts index 9ed63a986c..018ffe8921 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/localization-api/localization.controller.ts @@ -97,7 +97,7 @@ export class UmbLocalizationController = (value: T) => void; export class UmbObserver { diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/types/mapping-function.type.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/types/mapping-function.type.ts index 1b843ecff4..eb5a1b0e74 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/observable-api/types/mapping-function.type.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/types/mapping-function.type.ts @@ -1 +1,2 @@ +// eslint-disable-next-line @typescript-eslint/naming-convention export type MappingFunction = (mappable: T) => R; diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/types/memoization-function.type.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/types/memoization-function.type.ts index 1d43da86ea..22f2b3e6e7 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/observable-api/types/memoization-function.type.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/types/memoization-function.type.ts @@ -1 +1,2 @@ +// eslint-disable-next-line @typescript-eslint/naming-convention export type MemoizationFunction = (previousResult: R, currentResult: R) => boolean; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.db.ts index 3b613716d2..6f011fd44c 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/data-type/data-type.db.ts @@ -16,7 +16,7 @@ import type { PagedDataTypeItemResponseModel, } from '@umbraco-cms/backoffice/external/backend-api'; -export interface DataTypeFilterOptions { +export interface UmbDataTypeFilterOptions { skip: number; take: number; orderBy: string; @@ -25,10 +25,10 @@ export interface DataTypeFilterOptions { filter?: string; } -const editorUiAliasFilter = (filterOptions: DataTypeFilterOptions, item: UmbMockDataTypeModel) => +const editorUiAliasFilter = (filterOptions: UmbDataTypeFilterOptions, item: UmbMockDataTypeModel) => item.editorUiAlias === filterOptions.editorUiAlias; -const dataQueryFilter = (filterOptions: DataTypeFilterOptions, item: UmbMockDataTypeModel) => +const dataQueryFilter = (filterOptions: UmbDataTypeFilterOptions, item: UmbMockDataTypeModel) => queryFilter(filterOptions.filter ?? '', item.name); class UmbDataTypeMockDB extends UmbEntityMockDbBase { @@ -41,10 +41,10 @@ class UmbDataTypeMockDB extends UmbEntityMockDbBase { super(data); } - filter(options: DataTypeFilterOptions): PagedDataTypeItemResponseModel { + filter(options: UmbDataTypeFilterOptions): PagedDataTypeItemResponseModel { const allItems = this.getAll(); - const filterOptions: DataTypeFilterOptions = { + const filterOptions: UmbDataTypeFilterOptions = { skip: options.skip || 0, take: options.take || 25, orderBy: options.orderBy || 'name', diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/utils/file-system/types.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/utils/file-system/types.ts index d07d69f1b6..3737b2060a 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/utils/file-system/types.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/utils/file-system/types.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/naming-convention */ import type { FileSystemFolderModel } from '@umbraco-cms/backoffice/external/backend-api'; // Temp mock model until they are moved to msw diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/config.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/config.handlers.ts index 99f9ba5b2c..0729df34a5 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/config.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/config.handlers.ts @@ -1,13 +1,13 @@ const { rest } = window.MockServiceWorker; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; -import type { ServertimeOffset } from '@umbraco-cms/backoffice/models'; +import type { UmbServertimeOffset } from '@umbraco-cms/backoffice/models'; export const handlers = [ rest.get(umbracoPath('/config/servertimeoffset'), (_req, res, ctx) => { return res( // Respond with a 200 status code ctx.status(200), - ctx.json({ offset: -120 }), + ctx.json({ offset: -120 }), ); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/filter.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/filter.handlers.ts index 0a212404ef..c48f8334b4 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/filter.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/filter.handlers.ts @@ -1,5 +1,5 @@ const { rest } = window.MockServiceWorker; -import { umbDataTypeMockDb, type DataTypeFilterOptions } from '../../data/data-type/data-type.db.js'; +import { umbDataTypeMockDb, type UmbDataTypeFilterOptions } from '../../data/data-type/data-type.db.js'; import { UMB_SLUG } from './slug.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; @@ -12,7 +12,7 @@ export const filterHandlers = [ const editorUiAlias = req.url.searchParams.get('editorUiAlias'); const filter = req.url.searchParams.get('filter'); - const options: DataTypeFilterOptions = { + const options: UmbDataTypeFilterOptions = { skip: skip || 0, take: take || 10, orderBy: orderBy || 'name', diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/manifests.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/manifests.handlers.ts index d37caf6bb0..e75253ceaf 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/manifests.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/manifests.handlers.ts @@ -1,9 +1,9 @@ const { rest } = window.MockServiceWorker; -import type { PackageManifestResponse } from '../../packages/packages/types.js'; +import type { UmbPackageManifestResponse } from '../../packages/packages/types.js'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; -const privateManifests: PackageManifestResponse = [ +const privateManifests: UmbPackageManifestResponse = [ { name: 'My Package Name', version: '1.0.0', @@ -103,7 +103,7 @@ const privateManifests: PackageManifestResponse = [ }, ]; -const publicManifests: PackageManifestResponse = [ +const publicManifests: UmbPackageManifestResponse = [ { name: 'My Auth Package', extensions: [ @@ -148,25 +148,25 @@ export const manifestDevelopmentHandlers = [ return res( // Respond with a 200 status code ctx.status(200), - ctx.json(privateManifests), + ctx.json(privateManifests), ); }), rest.get(umbracoPath('/manifest/manifest/public'), (_req, res, ctx) => { - return res(ctx.status(200), ctx.json(publicManifests)); + return res(ctx.status(200), ctx.json(publicManifests)); }), rest.get(umbracoPath('/manifest/manifest'), (_req, res, ctx) => { - return res(ctx.status(200), ctx.json([...privateManifests, ...publicManifests])); + return res(ctx.status(200), ctx.json([...privateManifests, ...publicManifests])); }), ]; export const manifestEmptyHandlers = [ rest.get(umbracoPath('/manifest/manifest/private'), (_req, res, ctx) => { - return res(ctx.status(200), ctx.json([])); + return res(ctx.status(200), ctx.json([])); }), rest.get(umbracoPath('/manifest/manifest/public'), (_req, res, ctx) => { - return res(ctx.status(200), ctx.json([])); + return res(ctx.status(200), ctx.json([])); }), rest.get(umbracoPath('/manifest/manifest'), (_req, res, ctx) => { - return res(ctx.status(200), ctx.json([])); + return res(ctx.status(200), ctx.json([])); }), ]; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/block-grid-area-config-entry.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/block-grid-area-config-entry.element.ts index d0f47ea891..7614d755dc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/block-grid-area-config-entry.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/block-grid-area-config-entry.element.ts @@ -30,13 +30,13 @@ export class UmbBlockGridAreaConfigEntryElement extends UmbLitElement implements #context = new UmbBlockGridAreaConfigEntryContext(this); @state() - _columnSpan?: number; + private _columnSpan?: number; @state() - _rowSpan?: number; + private _rowSpan?: number; @state() - _alias = ''; + private _alias = ''; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/block-grid-area-type-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/block-grid-area-type-workspace-editor.element.ts index 7383ed3f5e..715a6d737f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/block-grid-area-type-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/block-grid-area-type-workspace-editor.element.ts @@ -8,7 +8,7 @@ export class UmbBlockGridAreaTypeWorkspaceEditorElement extends UmbLitElement { #workspaceContext?: typeof UMB_BLOCK_GRID_AREA_TYPE_WORKSPACE_CONTEXT.TYPE; @state() - _name?: string; + private _name?: string; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/views/settings.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/views/settings.element.ts index a29ce7fc89..773ba309c6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/views/settings.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-area-config-entry/workspace/views/settings.element.ts @@ -14,9 +14,10 @@ export class UmbBlockGridAreaTypeWorkspaceViewSettingsElement extends UmbLitElem #dataset?: typeof UMB_PROPERTY_DATASET_CONTEXT.TYPE; @state() - _minValue?: number; + private _minValue?: number; + @state() - _maxValue?: number; + private _maxValue?: number; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-areas-container/block-grid-areas-container.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-areas-container/block-grid-areas-container.element.ts index d38ee79c25..09c5dac83a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-areas-container/block-grid-areas-container.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-areas-container/block-grid-areas-container.element.ts @@ -12,13 +12,13 @@ import { css, customElement, html, repeat, state } from '@umbraco-cms/backoffice export class UmbBlockGridAreasContainerElement extends UmbLitElement { // @state() - _styleElement?: HTMLLinkElement; + private _styleElement?: HTMLLinkElement; @state() - _areas?: Array = []; + private _areas?: Array = []; @state() - _areaGridColumns?: number; + private _areaGridColumns?: number; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-block-inline/block-grid-block-inline.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-block-inline/block-grid-block-inline.element.ts index f4e5747bca..f1dc585342 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-block-inline/block-grid-block-inline.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-block-inline/block-grid-block-inline.element.ts @@ -48,10 +48,10 @@ export class UmbBlockGridBlockInlineElement extends UmbLitElement { settings?: UmbBlockDataType; @state() - _inlineProperty?: UmbPropertyTypeModel; + private _inlineProperty?: UmbPropertyTypeModel; @state() - _inlinePropertyDataPath?: string; + private _inlinePropertyDataPath?: string; @state() private _ownerContentTypeName?: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entry/block-grid-entry.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entry/block-grid-entry.context.ts index 59ede42584..aca05d1ea2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entry/block-grid-entry.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entry/block-grid-entry.context.ts @@ -153,11 +153,11 @@ export class UmbBlockGridEntryContext return this._layout.getValue()?.rowSpan; } - _gotManager() { + protected override _gotManager() { this.#gotEntriesAndManager(); } - _gotEntries() { + protected override _gotEntries() { this.scaleManager.setEntriesContext(this._entries); if (!this._entries) return; @@ -272,7 +272,7 @@ export class UmbBlockGridEntryContext ); } - _gotContentType() {} + protected override _gotContentType() {} #calcColumnSpan(columnSpan: number, relevantColumnSpanOptions: number[], layoutColumns: number) { if (relevantColumnSpanOptions.length > 0) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.ts index d4b38c13e8..931d195b59 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.ts @@ -57,76 +57,84 @@ export class UmbBlockGridEntryElement extends UmbLitElement implements UmbProper #renderTimeout: number | undefined; @state() - _contentTypeAlias?: string; + private _contentTypeAlias?: string; @state() - _contentTypeName?: string; + private _contentTypeName?: string; @state() - _columnSpan?: number; + private _columnSpan?: number; @state() - _rowSpan?: number; + private _rowSpan?: number; @state() - _showContentEdit = false; + private _showContentEdit = false; + @state() - _hasSettings = false; + private _hasSettings = false; // If _createPath is undefined, its because no blocks are allowed to be created here[NL] @state() - _createBeforePath?: string; - @state() - _createAfterPath?: string; + private _createBeforePath?: string; @state() - _label = ''; + private _createAfterPath?: string; @state() - _icon?: string; + private _label = ''; @state() - _exposed?: boolean; + private _icon?: string; + + @state() + private _exposed?: boolean; // Unuspported is triggerede if the Block Type is not reconized, it can also be triggerede by the Content Element Type not existing any longer. [NL] @state() - _unsupported?: boolean; + private _unsupported?: boolean; @state() - _showActions?: boolean; + private _showActions?: boolean; @state() - _workspaceEditContentPath?: string; + private _workspaceEditContentPath?: string; @state() - _workspaceEditSettingsPath?: string; + private _workspaceEditSettingsPath?: string; @state() - _inlineEditingMode?: boolean; + private _inlineEditingMode?: boolean; @state() - _canScale?: boolean; + private _canScale?: boolean; + @state() - _showInlineCreateBefore?: boolean; + private _showInlineCreateBefore?: boolean; + @state() - _showInlineCreateAfter?: boolean; + private _showInlineCreateAfter?: boolean; + @state() - _inlineCreateAboveWidth?: string; + private _inlineCreateAboveWidth?: string; // If the Block Type is disallowed in this location then it become a invalid Block Type. Notice not supported blocks are determined via the unsupported property. [NL] @property({ type: Boolean, attribute: 'location-invalid', reflect: true }) + // eslint-disable-next-line @typescript-eslint/naming-convention _invalidLocation?: boolean; // 'content-invalid' attribute is used for styling purpose. @property({ type: Boolean, attribute: 'content-invalid', reflect: true }) + // eslint-disable-next-line @typescript-eslint/naming-convention _contentInvalid?: boolean; // 'settings-invalid' attribute is used for styling purpose. @property({ type: Boolean, attribute: 'settings-invalid', reflect: true }) + // eslint-disable-next-line @typescript-eslint/naming-convention _settingsInvalid?: boolean; @state() - _blockViewProps: UmbBlockEditorCustomViewProperties = { + private _blockViewProps: UmbBlockEditorCustomViewProperties = { contentKey: undefined!, config: { showContentEdit: false, showSettingsEdit: false }, }; // Set to undefined cause it will be set before we render. diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-scale-manager/block-grid-scale-manager.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-scale-manager/block-grid-scale-manager.controller.ts index d969f6e914..e6b7746a1a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-scale-manager/block-grid-scale-manager.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/context/block-grid-scale-manager/block-grid-scale-manager.controller.ts @@ -26,7 +26,7 @@ export class UmbBlockGridScaleManager extends UmbControllerBase { #lockedGridRows = 0; // override _host: UmbBlockGridScalableContext; - _entries?: UmbBlockGridScalableContainerContext; + protected _entries?: UmbBlockGridScalableContainerContext; constructor(host: UmbBlockGridScalableContext) { super(host, 'blockGridScaleManager'); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts index 2549a7f184..a36e0f5658 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts @@ -107,7 +107,7 @@ export class UmbPropertyEditorUIBlockGridElement } @state() - _notSupportedVariantSetting?: boolean; + private _notSupportedVariantSetting?: boolean; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts index ea43807b9d..69e407416b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-type-configuration/property-editor-ui-block-grid-type-configuration.element.ts @@ -79,7 +79,7 @@ export class UmbPropertyEditorUIBlockGridTypeConfigurationElement } @state() - public _alias?: string; + private _alias?: string; @property({ type: Object, attribute: false }) public config?: UmbPropertyEditorConfigCollection; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-value-cloner/property-value-cloner-block-grid.cloner.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-value-cloner/property-value-cloner-block-grid.cloner.ts index ac5ffb2eb0..be8013a468 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-value-cloner/property-value-cloner-block-grid.cloner.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-value-cloner/property-value-cloner-block-grid.cloner.ts @@ -10,7 +10,7 @@ export class UmbBlockGridPropertyValueCloner extends UmbBlockPropertyValueCloner super(UMB_BLOCK_GRID_PROPERTY_EDITOR_SCHEMA_ALIAS, args); } - _cloneLayout( + protected override _cloneLayout( layouts: Array | undefined, ): Promise | undefined> | undefined { return layouts ? Promise.all(layouts.map(this.#cloneLayoutEntry)) : undefined; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/block-grid-type-workspace-view-areas.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/block-grid-type-workspace-view-areas.element.ts index d0ecf50f97..b4a19250c3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/block-grid-type-workspace-view-areas.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/workspace/views/block-grid-type-workspace-view-areas.element.ts @@ -9,10 +9,10 @@ import { UMB_DATA_TYPE_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/data-ty export class UmbBlockGridTypeWorkspaceViewAreasElement extends UmbLitElement implements UmbWorkspaceViewElement { // @state() - _areaColumnsConfigurationObject?: UmbPropertyEditorConfig; + private _areaColumnsConfigurationObject?: UmbPropertyEditorConfig; @state() - _areaConfigConfigurationObject?: UmbPropertyEditorConfig; + private _areaConfigConfigurationObject?: UmbPropertyEditorConfig; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-entry/block-list-entry.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-entry/block-list-entry.element.ts index b20e72711c..8e9f274c53 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-entry/block-list-entry.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-entry/block-list-entry.element.ts @@ -61,51 +61,51 @@ export class UmbBlockListEntryElement extends UmbLitElement implements UmbProper #context = new UmbBlockListEntryContext(this); @state() - _contentTypeAlias?: string; + private _contentTypeAlias?: string; @state() - _contentTypeName?: string; + private _contentTypeName?: string; @state() - _showContentEdit = false; + private _showContentEdit = false; @state() - _hasSettings = false; + private _hasSettings = false; @state() - _label = ''; + private _label = ''; @state() - _icon?: string; + private _icon?: string; @state() - _exposed?: boolean; + private _exposed?: boolean; @state() - _unsupported?: boolean; + private _unsupported?: boolean; @state() - _showActions?: boolean; + private _showActions?: boolean; @state() - _workspaceEditContentPath?: string; + private _workspaceEditContentPath?: string; @state() - _workspaceEditSettingsPath?: string; + private _workspaceEditSettingsPath?: string; @state() - _inlineEditingMode?: boolean; + private _inlineEditingMode?: boolean; // 'content-invalid' attribute is used for styling purpose. @property({ type: Boolean, attribute: 'content-invalid', reflect: true }) - _contentInvalid?: boolean; + private _contentInvalid?: boolean; // 'settings-invalid' attribute is used for styling purpose. @property({ type: Boolean, attribute: 'settings-invalid', reflect: true }) - _settingsInvalid?: boolean; + private _settingsInvalid?: boolean; @state() - _blockViewProps: UmbBlockEditorCustomViewProperties = { + private _blockViewProps: UmbBlockEditorCustomViewProperties = { contentKey: undefined!, config: { showContentEdit: false, showSettingsEdit: false }, }; // Set to undefined cause it will be set before we render. diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/inline-list-block/inline-list-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/inline-list-block/inline-list-block.element.ts index 25283f8065..ab211a2433 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/inline-list-block/inline-list-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/inline-list-block/inline-list-block.element.ts @@ -43,7 +43,7 @@ export class UmbInlineListBlockElement extends UmbLitElement { private _exposed?: boolean; @state() - _isOpen = false; + private _isOpen = false; @state() private _ownerContentTypeName?: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/context/block-list-entry.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/context/block-list-entry.context.ts index 1930897f52..afc6867b33 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/context/block-list-entry.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/context/block-list-entry.context.ts @@ -26,7 +26,7 @@ export class UmbBlockListEntryContext extends UmbBlockEntryContext< super(host, UMB_BLOCK_LIST_MANAGER_CONTEXT, UMB_BLOCK_LIST_ENTRIES_CONTEXT); } - _gotManager() { + protected override _gotManager() { this.observe( this._manager?.inlineEditingMode, (inlineEditingMode) => { @@ -36,7 +36,7 @@ export class UmbBlockListEntryContext extends UmbBlockEntryContext< ); } - _gotEntries() {} + protected override _gotEntries() {} - _gotContentType() {} + protected override _gotContentType() {} } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts index e8b4b4ed8d..baeba6c44f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts @@ -162,7 +162,7 @@ export class UmbPropertyEditorUIBlockListElement readonly #entriesContext = new UmbBlockListEntriesContext(this); @state() - _notSupportedVariantSetting?: boolean; + private _notSupportedVariantSetting?: boolean; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/components/block-rte-entry/block-rte-entry.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/components/block-rte-entry/block-rte-entry.element.ts index f1a2209417..92129a97f2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/components/block-rte-entry/block-rte-entry.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/components/block-rte-entry/block-rte-entry.element.ts @@ -45,47 +45,49 @@ export class UmbBlockRteEntryElement extends UmbLitElement implements UmbPropert #context = new UmbBlockRteEntryContext(this); @state() - _showContentEdit = false; + private _showContentEdit = false; @state() - _hasSettings = false; + private _hasSettings = false; @state() - _label = ''; + private _label = ''; @state() - _icon?: string; + private _icon?: string; @state() - _exposed?: boolean; + private _exposed?: boolean; @state() - _showActions?: boolean; + private _showActions?: boolean; @state() - _workspaceEditContentPath?: string; + private _workspaceEditContentPath?: string; @state() - _workspaceEditSettingsPath?: string; + private _workspaceEditSettingsPath?: string; @state() - _contentTypeAlias?: string; + private _contentTypeAlias?: string; @state() - _contentTypeName?: string; + private _contentTypeName?: string; @state() - _blockViewProps: UmbBlockEditorCustomViewProperties = { + private _blockViewProps: UmbBlockEditorCustomViewProperties = { contentKey: undefined!, config: { showContentEdit: false, showSettingsEdit: false }, }; // Set to undefined cause it will be set before we render. // 'content-invalid' attribute is used for styling purpose. @property({ type: Boolean, attribute: 'content-invalid', reflect: true }) + // eslint-disable-next-line @typescript-eslint/naming-convention _contentInvalid?: boolean; // 'settings-invalid' attribute is used for styling purpose. @property({ type: Boolean, attribute: 'settings-invalid', reflect: true }) + // eslint-disable-next-line @typescript-eslint/naming-convention _settingsInvalid?: boolean; #updateBlockViewProps(incoming: Partial>) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/components/ref-rte-block/ref-rte-block.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/components/ref-rte-block/ref-rte-block.element.ts index 002b82272a..3f0dc522fc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/components/ref-rte-block/ref-rte-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/components/ref-rte-block/ref-rte-block.element.ts @@ -26,7 +26,7 @@ export class UmbRefRteBlockElement extends UmbLitElement { settings?: UmbBlockDataType; @state() - _workspaceEditPath?: string; + private _workspaceEditPath?: string; @property({ attribute: false }) config?: UmbBlockEditorCustomViewConfiguration; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/context/block-rte-entry.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/context/block-rte-entry.context.ts index a80a4a3ee5..2237af0504 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/context/block-rte-entry.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/context/block-rte-entry.context.ts @@ -30,9 +30,9 @@ export class UmbBlockRteEntryContext extends UmbBlockEntryContext< super(host, UMB_BLOCK_RTE_MANAGER_CONTEXT, UMB_BLOCK_RTE_ENTRIES_CONTEXT); } - _gotManager() {} + protected override _gotManager() {} - _gotEntries() { + protected override _gotEntries() { // Secure displayInline fits configuration: this.observe( observeMultiple([this.displayInline, this.displayInlineConfig]), @@ -50,5 +50,5 @@ export class UmbBlockRteEntryContext extends UmbBlockEntryContext< ); } - _gotContentType() {} + protected override _gotContentType() {} } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/block-type-card/block-type-card.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/block-type-card/block-type-card.element.ts index d97744471b..2a3f91dc78 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/block-type-card/block-type-card.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/components/block-type-card/block-type-card.element.ts @@ -65,13 +65,13 @@ export class UmbBlockTypeCardElement extends UmbLitElement { private _elementTypeKey?: string; @state() - _name = ''; + private _name = ''; @state() - _description?: string; + private _description?: string; @state() - _fallbackIcon?: string | null; + private _fallbackIcon?: string | null; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace-editor.element.ts index 1bbecd2535..da0963dbc7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-type/workspace/block-type-workspace-editor.element.ts @@ -13,7 +13,7 @@ export class UmbBlockTypeWorkspaceEditorElement extends UmbLitElement { #workspaceContext?: typeof UMB_BLOCK_TYPE_WORKSPACE_CONTEXT.TYPE; @state() - _name?: string; + private _name?: string; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/types.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/types.ts index 96e6ef2110..1a60f07dea 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/conditions/types.ts @@ -1,11 +1,14 @@ import type { UmbConditionConfigBase } from '@umbraco-cms/backoffice/extension-api'; +// eslint-disable-next-line @typescript-eslint/naming-convention export type BlockWorkspaceHasSettingsConditionConfig = UmbConditionConfigBase<'Umb.Condition.BlockWorkspaceHasSettings'>; +// eslint-disable-next-line @typescript-eslint/naming-convention export type BlockEntryShowContentEditConditionConfig = UmbConditionConfigBase<'Umb.Condition.BlockEntryShowContentEdit'>; +// eslint-disable-next-line @typescript-eslint/naming-convention export interface BlockEntryIsExposedConditionConfig extends UmbConditionConfigBase<'Umb.Condition.BlockWorkspaceIsExposed'> { match?: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entries.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entries.context.ts index c3892ab1e8..d6d1ef44f4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entries.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entries.context.ts @@ -17,8 +17,8 @@ export abstract class UmbBlockEntriesContext< BlockOriginData extends UmbBlockWorkspaceOriginData, > extends UmbContextBase { // - _manager?: BlockManagerContextType; - _retrieveManager; + protected _manager?: BlockManagerContextType; + protected _retrieveManager; protected _catalogueRouteBuilderState = new UmbBasicState(undefined); readonly catalogueRouteBuilder = this._catalogueRouteBuilderState.asObservable(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entry.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entry.context.ts index 39e7591070..8df8e02973 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entry.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entry.context.ts @@ -49,8 +49,8 @@ export abstract class UmbBlockEntryContext< BlockOriginData extends UmbBlockWorkspaceOriginData = UmbBlockWorkspaceOriginData, > extends UmbContextBase { // - _manager?: BlockManagerContextType; - _entries?: BlockEntriesContextType; + protected _manager?: BlockManagerContextType; + protected _entries?: BlockEntriesContextType; #contentKey?: string; #unsupported = new UmbBooleanState(undefined); @@ -129,14 +129,14 @@ export abstract class UmbBlockEntryContext< return this.#contentElementType.getValue()?.icon; } - _blockType = new UmbObjectState(undefined); + protected _blockType = new UmbObjectState(undefined); public readonly blockType = this._blockType.asObservable(); public readonly contentElementTypeKey = this._blockType.asObservablePart((x) => x?.contentElementTypeKey); public readonly settingsElementTypeKey = this._blockType.asObservablePart((x) => x ? (x.settingsElementTypeKey ?? undefined) : null, ); - _layout = new UmbObjectState(undefined); + protected _layout = new UmbObjectState(undefined); public readonly layout = this._layout.asObservable(); public readonly contentKey = this._layout.asObservablePart((x) => x?.contentKey); public readonly settingsKey = this._layout.asObservablePart((x) => (x ? (x.settingsKey ?? null) : undefined)); @@ -185,7 +185,7 @@ export abstract class UmbBlockEntryContext< }); #contentStructureHasProperties = new UmbBooleanState(undefined); - _contentStructureHasProperties = this.#contentStructureHasProperties.asObservable(); + protected _contentStructureHasProperties = this.#contentStructureHasProperties.asObservable(); #settingsStructure?: UmbContentTypeStructureManager; #settingsStructurePromiseResolve?: () => void; @@ -276,9 +276,15 @@ export abstract class UmbBlockEntryContext< #settings = new UmbObjectState(undefined); //public readonly settings = this.#settings.asObservable(); protected readonly _settingsValueArray = this.#settings.asObservablePart((x) => x?.values); - private readonly settingsDataContentTypeKey = this.#settings.asObservablePart((x) => + private readonly _settingsDataContentTypeKey = this.#settings.asObservablePart((x) => x ? (x.contentTypeKey ?? undefined) : null, ); + /** + * @deprecated Use {@link _settingsDataContentTypeKey} instead. This will be removed in Umbraco 18. + */ + // eslint-disable-next-line + private readonly settingsDataContentTypeKey = this._settingsDataContentTypeKey; + #settingsValuesObservable?: Observable; public async settingsValues() { await this.#settingsStructurePromise; @@ -366,7 +372,7 @@ export abstract class UmbBlockEntryContext< null, ); this.observe( - this.settingsDataContentTypeKey, + this._settingsDataContentTypeKey, (settingsElementTypeKey) => { if (!settingsElementTypeKey) return; this.#getSettingsStructure(settingsElementTypeKey); @@ -386,7 +392,7 @@ export abstract class UmbBlockEntryContext< // Correct settings data, accordingly to configuration of the BlockType: [NL] this.observe( - observeMultiple([this.settingsElementTypeKey, this.settingsDataContentTypeKey]), + observeMultiple([this.settingsElementTypeKey, this._settingsDataContentTypeKey]), ([settingsElementTypeKey, settingsDataContentTypeKey]) => { // Notice the values are only undefined while we are missing the source of these observables. [NL] if (settingsElementTypeKey === undefined || settingsDataContentTypeKey === undefined) return; @@ -503,7 +509,7 @@ export abstract class UmbBlockEntryContext< this.#observeReadOnlyState(); } - abstract _gotManager(): void; + protected abstract _gotManager(): void; #gotEntries() { this.#updateCreatePaths(); @@ -518,7 +524,7 @@ export abstract class UmbBlockEntryContext< ); } - abstract _gotEntries(): void; + protected abstract _gotEntries(): void; #observeContentData() { if (!this._manager || !this.#contentKey) return; @@ -555,7 +561,7 @@ export abstract class UmbBlockEntryContext< ); } - abstract _gotContentType(contentType: UmbContentTypeModel | undefined): void; + protected abstract _gotContentType(contentType: UmbContentTypeModel | undefined): void; async #observeVariantId() { if (!this._manager) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts index ef818637f2..08d3760117 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/modals/block-catalogue/block-catalogue-modal.element.ts @@ -50,10 +50,10 @@ export class UmbBlockCatalogueModalElement extends UmbModalBaseElement< private _filtered: Array<{ name?: string; blocks: Array }> = []; @state() - _manager?: typeof UMB_BLOCK_MANAGER_CONTEXT.TYPE; + private _manager?: typeof UMB_BLOCK_MANAGER_CONTEXT.TYPE; @state() - _loading = true; + private _loading = true; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/property-value-cloner/flat-layout-block-property-value-cloner.api.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/property-value-cloner/flat-layout-block-property-value-cloner.api.ts index f0112b2ed9..c03949aee1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/property-value-cloner/flat-layout-block-property-value-cloner.api.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/property-value-cloner/flat-layout-block-property-value-cloner.api.ts @@ -4,7 +4,7 @@ export class UmbFlatLayoutBlockPropertyValueCloner< ValueType extends UmbBlockValueType = UmbBlockValueType, > extends UmbBlockPropertyValueCloner { // - _cloneLayout( + protected override _cloneLayout( layouts: Array | undefined, ): Promise | undefined> | undefined { return layouts ? Promise.all(layouts.map((layout) => this._cloneBlock(layout))) : undefined; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace-editor.element.ts index 282755fff5..9c2e1b9a38 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace-editor.element.ts @@ -28,7 +28,7 @@ export class UmbBlockWorkspaceEditorElement extends UmbLitElement { } @state() - _headline: string = ''; + private _headline: string = ''; override render() { return html` `; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts index 89c0388d5a..949a4312c6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/manifests.ts @@ -73,6 +73,7 @@ export const manifests: Array = [ match: UMB_BLOCK_WORKSPACE_ALIAS, }, ], + // eslint-disable-next-line @typescript-eslint/naming-convention TODO_conditions: [ { alias: 'Umb.Condition.BlockEntryShowContentEdit', diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-content-no-router.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-content-no-router.element.ts index e35d819771..06108fe2c6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-content-no-router.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-content-no-router.element.ts @@ -20,7 +20,7 @@ export class UmbBlockWorkspaceViewEditContentNoRouterElement extends UmbLitEleme private _hasRootGroups = false; @state() - _tabs?: Array; + private _tabs?: Array; @state() private _activeTabId?: string | null | undefined; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts index 1ce6295ebc..3b6f4d4e15 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.ts @@ -36,13 +36,13 @@ export class UmbBlockWorkspaceViewEditPropertiesElement extends UmbLitElement { } @state() - _dataOwner?: UmbBlockElementManager; + private _dataOwner?: UmbBlockElementManager; @state() - _workspaceVariantId?: UmbVariantId; + private _workspaceVariantId?: UmbVariantId; @state() - _visibleProperties?: Array; + private _visibleProperties?: Array; @state() private _ownerEntityType?: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-property.element.ts index fb592580eb..ad6d83ca8a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-property.element.ts @@ -15,10 +15,10 @@ export class UmbBlockWorkspaceViewEditPropertyElement extends UmbLitElement { property?: UmbPropertyTypeModel; @state() - _dataPath?: string; + private _dataPath?: string; @state() - _writeable?: boolean; + private _writeable?: boolean; @property({ attribute: false }) ownerContext?: UmbBlockElementManager; diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.ts index fbfc307945..8bbd9cec4d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-tab.element.ts @@ -42,10 +42,10 @@ export class UmbBlockWorkspaceViewEditTabElement extends UmbLitElement { hideSingleGroup = false; @state() - _groups: Array = []; + private _groups: Array = []; @state() - _hasProperties = false; + private _hasProperties = false; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts index e9ce9d3152..de633b326b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts @@ -34,7 +34,7 @@ export class UmbBlockWorkspaceViewEditElement extends UmbLitElement implements U private _routes: UmbRoute[] = []; @state() - _tabs?: Array; + private _tabs?: Array; @state() private _routerPath?: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/code-editor/code-editor-modal/code-editor-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/code-editor/code-editor-modal/code-editor-modal.element.ts index 3c35e82667..b8644d2188 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/code-editor/code-editor-modal/code-editor-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/code-editor/code-editor-modal/code-editor-modal.element.ts @@ -6,7 +6,7 @@ import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; @customElement('umb-code-editor-modal') export class UmbCodeEditorModalElement extends UmbModalBaseElement { @query('umb-code-editor') - _codeEditor?: UmbCodeEditorElement; + private _codeEditor?: UmbCodeEditorElement; #handleConfirm() { this.value = { content: this._codeEditor?.editor?.monacoEditor?.getValue() ?? '' }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/code-editor/components/code-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/code-editor/components/code-editor.element.ts index 8624643344..4567e178a1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/code-editor/components/code-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/code-editor/components/code-editor.element.ts @@ -38,11 +38,11 @@ const elementName = 'umb-code-editor'; */ @customElement(elementName) export class UmbCodeEditorElement extends UmbLitElement implements UmbCodeEditorHost { - private containerRef: Ref = createRef(); + #containerRef: Ref = createRef(); get container() { - if (!this.containerRef?.value) throw new Error('Container not found'); - return this.containerRef!.value; + if (!this.#containerRef?.value) throw new Error('Container not found'); + return this.#containerRef!.value; } #editor?: UmbCodeEditorController; @@ -231,7 +231,7 @@ export class UmbCodeEditorElement extends UmbLitElement implements UmbCodeEditor return html` ${this.#renderStyles()} ${when(this._loading, () => html`

`)} -
+
`; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/code-editor/models/code-editor.model.ts b/src/Umbraco.Web.UI.Client/src/packages/code-editor/models/code-editor.model.ts index 04c68d2e5c..8bbd1c21a4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/code-editor/models/code-editor.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/code-editor/models/code-editor.model.ts @@ -1,5 +1,6 @@ import type { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; +// eslint-disable-next-line @typescript-eslint/naming-convention export type CodeEditorLanguage = | 'csharp' | 'razor' @@ -10,6 +11,7 @@ export type CodeEditorLanguage = | 'json' | 'html'; +// eslint-disable-next-line @typescript-eslint/naming-convention export enum CodeEditorTheme { Light = 'umb-light', Dark = 'umb-dark', @@ -59,6 +61,7 @@ export interface UmbCodeEditorCursorSelectionChangedEvent { secondarySelections: UmbCodeEditorSelection[]; } +// eslint-disable-next-line @typescript-eslint/naming-convention export interface CodeEditorConstructorOptions { /** * The initial value of the auto created model in the editor. @@ -200,6 +203,7 @@ export interface CodeEditorConstructorOptions { letterSpacing?: number; } +// eslint-disable-next-line @typescript-eslint/naming-convention export interface CodeEditorSearchOptions { /** * Limit the searching to only search inside the editable range of the model. diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/types.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/types.ts index e892e9cc31..2e6aedc4c0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/conditions/types.ts @@ -20,6 +20,7 @@ export type UmbWorkspaceContentTypeAliasConditionConfig = UmbConditionConfigBase /** * @deprecated Use `UmbWorkspaceContentTypeAliasConditionConfig` instead. This will be removed in Umbraco 17. */ +// eslint-disable-next-line @typescript-eslint/naming-convention export type WorkspaceContentTypeAliasConditionConfig = UmbWorkspaceContentTypeAliasConditionConfig; declare global { diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/content-type-workspace-context-base.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/content-type-workspace-context-base.ts index bbc93cf00f..4661ae1b41 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/content-type-workspace-context-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/content-type-workspace-context-base.ts @@ -152,7 +152,7 @@ export abstract class UmbContentTypeWorkspaceContextBase< * @param { UmbEntityModel } parent The parent entity * @memberof UmbContentTypeWorkspaceContextBase */ - override async _create(currentData: DetailModelType, parent: UmbEntityModel) { + protected override async _create(currentData: DetailModelType, parent: UmbEntityModel) { try { await this.structure.create(parent?.unique); @@ -178,7 +178,7 @@ export abstract class UmbContentTypeWorkspaceContextBase< * Updates the content type for the workspace * @memberof UmbContentTypeWorkspaceContextBase */ - override async _update() { + protected override async _update() { try { await this.structure.save(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/views/design/content-type-design-editor-group.element.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/views/design/content-type-design-editor-group.element.ts index 95f1b9a127..2745074f62 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/views/design/content-type-design-editor-group.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/views/design/content-type-design-editor-group.element.ts @@ -40,16 +40,16 @@ export class UmbContentTypeWorkspaceViewEditGroupElement extends UmbLitElement { editContentTypePath?: string; @state() - _groupId?: string; + private _groupId?: string; @state() - _hasOwnerContainer?: boolean; + private _hasOwnerContainer?: boolean; @state() - _inherited?: boolean; + private _inherited?: boolean; @state() - _inheritedFrom?: Array; + private _inheritedFrom?: Array; #checkInherited() { if (this.groupStructureHelper && this.group) { @@ -81,7 +81,7 @@ export class UmbContentTypeWorkspaceViewEditGroupElement extends UmbLitElement { } } - _singleValueUpdate(propertyName: string, value: string | number | boolean | null | undefined) { + #singleValueUpdate(propertyName: string, value: string | number | boolean | null | undefined) { if (!this._groupStructureHelper || !this.group) return; const partialObject = {} as any; @@ -99,7 +99,7 @@ export class UmbContentTypeWorkspaceViewEditGroupElement extends UmbLitElement { if (changedName) { newName = changedName; } - this._singleValueUpdate('name', newName); + this.#singleValueUpdate('name', newName); (e.target as HTMLInputElement).value = newName; } @@ -110,7 +110,7 @@ export class UmbContentTypeWorkspaceViewEditGroupElement extends UmbLitElement { const changedName = this.groupStructureHelper .getStructureManager()! .makeEmptyContainerName(this._group.id, 'Group', this._group.parent?.id ?? null); - this._singleValueUpdate('name', changedName); + this.#singleValueUpdate('name', changedName); (e.target as HTMLInputElement).value = changedName; } } @@ -202,7 +202,7 @@ export class UmbContentTypeWorkspaceViewEditGroupElement extends UmbLitElement { .value=${this.group!.sortOrder.toString()} ?disabled=${!this._hasOwnerContainer} @change=${(e: UUIInputEvent) => - this._singleValueUpdate('sortOrder', parseInt(e.target.value as string) ?? 0)}> + this.#singleValueUpdate('sortOrder', parseInt(e.target.value as string) ?? 0)}> `, )} diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/views/design/content-type-design-editor-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/views/design/content-type-design-editor-property.element.ts index a8f8683633..49adf60673 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/views/design/content-type-design-editor-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/views/design/content-type-design-editor-property.element.ts @@ -69,12 +69,15 @@ export class UmbContentTypeDesignEditorPropertyElement extends UmbLitElement { public ownerVariesBySegment?: boolean; @property({ type: Boolean, reflect: true, attribute: '_inherited' }) + // eslint-disable-next-line @typescript-eslint/naming-convention public _inherited?: boolean; @state() + // eslint-disable-next-line @typescript-eslint/naming-convention public _inheritedContentTypeId?: string; @state() + // eslint-disable-next-line @typescript-eslint/naming-convention public _inheritedContentTypeName?: string; @property({ type: String, reflect: false }) diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/views/design/content-type-design-editor-tab.element.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/views/design/content-type-design-editor-tab.element.ts index 78a74aa86f..051f6caffc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/views/design/content-type-design-editor-tab.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/content/content-type/workspace/views/design/content-type-design-editor-tab.element.ts @@ -122,16 +122,16 @@ export class UmbContentTypeDesignEditorTabElement extends UmbLitElement { } @state() - _groups: Array = []; + private _groups: Array = []; @state() - _hasProperties = false; + private _hasProperties = false; @state() - _sortModeActive?: boolean; + private _sortModeActive?: boolean; @state() - _editContentTypePath?: string; + private _editContentTypePath?: string; #groupStructureHelper = new UmbContentTypeContainerStructureHelper(this); diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content/collection/workspace-has-content-collection/types.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content/collection/workspace-has-content-collection/types.ts index 5497acc113..90048ce9df 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/content/content/collection/workspace-has-content-collection/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/content/content/collection/workspace-has-content-collection/types.ts @@ -7,6 +7,7 @@ export type UmbWorkspaceHasContentCollectionConditionConfig = UmbConditionConfig /** * @deprecated Use `UmbWorkspaceHasContentCollectionConditionConfig` instead. This will be removed in Umbraco 17. */ +// eslint-disable-next-line @typescript-eslint/naming-convention export type WorkspaceHasCollectionConditionConfig = UmbWorkspaceHasContentCollectionConditionConfig; declare global { diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content/global-components/content-workspace-property.element.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content/global-components/content-workspace-property.element.ts index f742fa0738..f033663468 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/content/content/global-components/content-workspace-property.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/content/content/global-components/content-workspace-property.element.ts @@ -21,22 +21,22 @@ export class UmbContentWorkspacePropertyElement extends UmbLitElement { } @state() - _datasetVariantId?: UmbVariantId; + private _datasetVariantId?: UmbVariantId; @state() - _dataPath?: string; + private _dataPath?: string; @state() - _viewable?: boolean; + private _viewable?: boolean; @state() - _writeable?: boolean; + private _writeable?: boolean; @state() - _workspaceContext?: typeof UMB_CONTENT_WORKSPACE_CONTEXT.TYPE; + private _workspaceContext?: typeof UMB_CONTENT_WORKSPACE_CONTEXT.TYPE; @state() - _propertyType?: UmbPropertyTypeModel; + private _propertyType?: UmbPropertyTypeModel; @state() private _hasAccessToSensitiveData = false; diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content/workspace/views/edit/content-editor-properties.element.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content/workspace/views/edit/content-editor-properties.element.ts index 451be57c5a..7398f02764 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/content/content/workspace/views/edit/content-editor-properties.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/content/content/workspace/views/edit/content-editor-properties.element.ts @@ -22,10 +22,10 @@ export class UmbContentWorkspaceViewEditPropertiesElement extends UmbLitElement } @state() - _properties: Array = []; + private _properties: Array = []; @state() - _visibleProperties?: Array; + private _visibleProperties?: Array; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/content/workspace/views/edit/content-editor-tab.element.ts b/src/Umbraco.Web.UI.Client/src/packages/content/content/workspace/views/edit/content-editor-tab.element.ts index c9d011257d..fffc7743a0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/content/content/workspace/views/edit/content-editor-tab.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/content/content/workspace/views/edit/content-editor-tab.element.ts @@ -28,10 +28,10 @@ export class UmbContentWorkspaceViewEditTabElement extends UmbLitElement { #groupStructureHelper = new UmbContentTypeContainerStructureHelper(this); @state() - _groups: Array = []; + private _groups: Array = []; @state() - _hasProperties = false; + private _hasProperties = false; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/content/property-type/workspace/property-type-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/content/property-type/workspace/property-type-workspace-editor.element.ts index 611ccc7241..517d7427f6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/content/property-type/workspace/property-type-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/content/property-type/workspace/property-type-workspace-editor.element.ts @@ -7,10 +7,10 @@ export class UmbPropertyTypeWorkspaceEditorElement extends UmbLitElement { #workspaceContext?: typeof UMB_PROPERTY_TYPE_WORKSPACE_CONTEXT.TYPE; @state() - _isNew?: boolean; + private _isNew?: boolean; @state() - _name?: string; + private _name?: string; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth-flow.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth-flow.ts index ce875f7b56..8c10231db6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth-flow.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/auth-flow.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/naming-convention */ /* * Copyright 2017 Google Inc. * diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts index 9d518bd362..b21375a67e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/auth/modals/umb-app-auth-modal.element.ts @@ -24,7 +24,7 @@ export class UmbAppAuthModalElement extends UmbModalBaseElement { + #onSubmit = async (providerOrManifest: string | ManifestAuthProvider, loginHint?: string) => { try { const authContext = await this.getContext(UMB_AUTH_CONTEXT); if (!authContext) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/action/create/collection-create-action.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/action/create/collection-create-action.element.ts index ff3117613d..58ed9e6f36 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/action/create/collection-create-action.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/action/create/collection-create-action.element.ts @@ -20,7 +20,7 @@ export class UmbCollectionCreateActionButtonElement extends UmbLitElement { private _apiControllers: Array> = []; @state() - _hrefList: Array = []; + private _hrefList: Array = []; #createLabel = this.localize.term('general_create'); #entityContext?: typeof UMB_ENTITY_CONTEXT.TYPE; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/collection-view-bundle.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/collection-view-bundle.element.ts index 0fc06dc13e..c9e115dc93 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/collection-view-bundle.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/collection-view-bundle.element.ts @@ -19,10 +19,10 @@ interface UmbCollectionViewLayout { @customElement('umb-collection-view-bundle') export class UmbCollectionViewBundleElement extends UmbLitElement { @state() - _views: Array = []; + private _views: Array = []; @state() - _currentView?: UmbCollectionViewLayout; + private _currentView?: UmbCollectionViewLayout; @state() private _collectionRootPathName?: string; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/pagination/collection-pagination.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/pagination/collection-pagination.element.ts index 989b889406..a2a983b482 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/pagination/collection-pagination.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/components/pagination/collection-pagination.element.ts @@ -7,10 +7,10 @@ import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @customElement('umb-collection-pagination') export class UmbCollectionPaginationElement extends UmbLitElement { @state() - _totalPages = 1; + private _totalPages = 1; @state() - _currentPage = 1; + private _currentPage = 1; private _collectionContext?: UmbDefaultCollectionContext; @@ -56,9 +56,9 @@ export class UmbCollectionPaginationElement extends UmbLitElement { .current=${this._currentPage} .total=${this._totalPages} firstlabel=${this.localize.term('general_first')} - previouslabel=${this.localize.term('general_previous')} - nextlabel=${this.localize.term('general_next')} - lastlabel=${this.localize.term('general_last')} + previouslabel=${this.localize.term('general_previous')} + nextlabel=${this.localize.term('general_next')} + lastlabel=${this.localize.term('general_last')} @change=${this.#onChange}>`; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/conditions/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/conditions/types.ts index 6727375a9e..3908b6c95a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/conditions/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/conditions/types.ts @@ -3,12 +3,14 @@ import type { UMB_COLLECTION_ALIAS_CONDITION, UMB_COLLECTION_BULK_ACTION_PERMISS import type { UmbConditionConfigBase } from '@umbraco-cms/backoffice/extension-api'; /** @deprecated No longer used internally. This will be removed in Umbraco 17. [LK] */ +// eslint-disable-next-line @typescript-eslint/naming-convention export type CollectionBulkActionPermissionConditionConfig = UmbConditionConfigBase< typeof UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION > & { match: (permissions: UmbCollectionBulkActionPermissions) => boolean; }; +// eslint-disable-next-line @typescript-eslint/naming-convention export type CollectionAliasConditionConfig = UmbConditionConfigBase & { /** * The collection that this extension should be available in diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/collection/extensions/collection-view.extension.ts b/src/Umbraco.Web.UI.Client/src/packages/core/collection/extensions/collection-view.extension.ts index 87927eb1be..c2b4cd654d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/collection/extensions/collection-view.extension.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/collection/extensions/collection-view.extension.ts @@ -31,7 +31,7 @@ export interface MetaCollectionView { /** * Condition for when this collection view should be available */ -export interface ConditionsCollectionView { +export interface UmbConditionsCollectionView { /** * Type of entity this collection view should be available for * @examples ["media"] @@ -39,6 +39,12 @@ export interface ConditionsCollectionView { entityType: string; } +/** + * @deprecated Use {@link UmbConditionsCollectionView} instead. This will be removed in Umbraco 18. + */ +// eslint-disable-next-line @typescript-eslint/no-empty-object-type, @typescript-eslint/naming-convention +export interface ConditionsCollectionView extends UmbConditionsCollectionView {} + declare global { interface UmbExtensionManifestMap { umbCollectionView: ManifestCollectionView; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-modal-container/backoffice-modal-container.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-modal-container/backoffice-modal-container.element.ts index 1295413273..59bd6f1bac 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-modal-container/backoffice-modal-container.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/backoffice-modal-container/backoffice-modal-container.element.ts @@ -11,7 +11,7 @@ export class UmbBackofficeModalContainerElement extends UmbLitElement { private _modalElementMap: Map = new Map(); @state() - _modals: Array = []; + private _modals: Array = []; @property({ type: Boolean, reflect: true, attribute: 'fill-background' }) fillBackground = false; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-date/input-date.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-date/input-date.element.ts index b78188b73b..3a33449755 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-date/input-date.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-date/input-date.element.ts @@ -1,6 +1,7 @@ import { customElement, css } from '@umbraco-cms/backoffice/external/lit'; import { UUIInputElement } from '@umbraco-cms/backoffice/external/uui'; +// eslint-disable-next-line @typescript-eslint/naming-convention export type InputDateType = 'date' | 'time' | 'datetime-local'; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/input-number-range.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/input-number-range.element.ts index b2c1a71335..9ed435e898 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/input-number-range.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-number-range/input-number-range.element.ts @@ -28,7 +28,7 @@ export class UmbInputNumberRangeElement extends UmbFormControlMixin(UmbLitElemen @property({ type: Number }) public set minValue(value: number | undefined) { this._minValue = value; - this.updateValue(); + this.#updateValue(); } public get minValue() { return this._minValue; @@ -40,7 +40,7 @@ export class UmbInputNumberRangeElement extends UmbFormControlMixin(UmbLitElemen @property({ type: Number }) public set maxValue(value: number | undefined) { this._maxValue = value; - this.updateValue(); + this.#updateValue(); } public get maxValue() { return this._maxValue; @@ -63,7 +63,7 @@ export class UmbInputNumberRangeElement extends UmbFormControlMixin(UmbLitElemen @state() private _maxPlaceholder: string = ''; - private updateValue() { + #updateValue() { const newValue = this._minValue || this._maxValue ? (this._minValue ?? '') + ',' + (this._maxValue ?? '') : undefined; if (super.value !== newValue) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-toggle/input-toggle.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-toggle/input-toggle.element.ts index 22960a90f2..8137a605bc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-toggle/input-toggle.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-toggle/input-toggle.element.ts @@ -47,7 +47,7 @@ export class UmbInputToggleElement extends UmbFormControlMixin(UmbLitElement, '' readonly = false; @state() - _currentLabel?: string; + private _currentLabel?: string; protected override firstUpdated(): void { this.addFormControlElement(this.shadowRoot!.querySelector('uui-toggle')!); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/split-panel/split-panel.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/split-panel/split-panel.element.ts index ad36835d1d..babc299170 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/split-panel/split-panel.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/split-panel/split-panel.element.ts @@ -54,8 +54,8 @@ export class UmbSplitPanelElement extends LitElement { /** Pixel value for the snap threshold. Determines how close the divider needs to be to a snap point to snap to it. */ readonly #SNAP_THRESHOLD = 25 as const; - @state() _hasStartPanel = false; - @state() _hasEndPanel = false; + @state() private _hasStartPanel = false; + @state() private _hasEndPanel = false; get #hasBothPanels() { return this._hasStartPanel && this._hasEndPanel; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create/modal/entity-create-option-action-list-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create/modal/entity-create-option-action-list-modal.element.ts index 3df6311c77..e2918650af 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create/modal/entity-create-option-action-list-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create/modal/entity-create-option-action-list-modal.element.ts @@ -28,7 +28,7 @@ export class UmbEntityCreateOptionActionListModalElement extends UmbModalBaseEle private _apiControllers: Array> = []; @state() - _hrefList: Array = []; + private _hrefList: Array = []; protected override updated(_changedProperties: PropertyValues): void { super.updated(_changedProperties); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts index e4c1342c6c..bd6f2fd158 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/delete/delete.action.ts @@ -33,7 +33,7 @@ export class UmbDeleteEntityAction< await this.#notify(); } - async _confirmDelete(item: any) { + protected async _confirmDelete(item: any) { const headline = this.args.meta.confirm?.headline ?? '#actions_delete'; const message = this.args.meta.confirm?.message ?? '#defaultdialogs_confirmdelete'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/default/entity-action.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/default/entity-action.element.ts index c3ac0d406f..eba6470ca1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/default/entity-action.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/default/entity-action.element.ts @@ -39,7 +39,7 @@ export class UmbEntityActionDefaultElement< } @state() - _href?: string; + private _href?: string; override async focus() { await this.updateComplete; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action-list.element.ts index 83e181f67e..17b15475c1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/entity-action-list.element.ts @@ -23,7 +23,7 @@ export class UmbEntityActionListElement extends UmbLitElement { } @state() - _filter?: (extension: ManifestEntityAction) => boolean; + private _filter?: (extension: ManifestEntityAction) => boolean; @property({ type: String }) public get unique(): string | null | undefined { @@ -37,10 +37,10 @@ export class UmbEntityActionListElement extends UmbLitElement { } @state() - _props: Partial> = {}; + private _props: Partial> = {}; @state() - _apiArgs?: UmbApiConstructorArgumentsMethodType< + private _apiArgs?: UmbApiConstructorArgumentsMethodType< ManifestEntityAction, [UmbEntityActionArgs] >; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-bulk-action/common/bulk-delete/bulk-delete.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-bulk-action/common/bulk-delete/bulk-delete.action.ts index 8da90bffc5..a9e6fcf4b5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-bulk-action/common/bulk-delete/bulk-delete.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-bulk-action/common/bulk-delete/bulk-delete.action.ts @@ -17,7 +17,19 @@ export class UmbDeleteEntityBulkAction< MetaKindType extends MetaEntityBulkActionDeleteKind = MetaEntityBulkActionDeleteKind, > extends UmbEntityBulkActionBase { #localize = new UmbLocalizationController(this); - _items: Array = []; + #items: Array = []; + /** + * @deprecated this has been turned into a private property and cannot be used from v.18. Will be removed in v.18 + * */ + protected get _items() { + return this.#items; + } + /** + * @deprecated this has been turned into a private property and cannot be used from v.18. Will be removed in v.18 + * */ + protected set _items(value: Array) { + this.#items = value; + } override async execute() { if (this.selection?.length === 0) { @@ -26,7 +38,7 @@ export class UmbDeleteEntityBulkAction< // TODO: Move item look up to a future bulk action context await this.#requestItems(); - await this._confirmDelete(this._items); + await this._confirmDelete(this.#items); await this.#requestBulkDelete(this.selection); } @@ -51,7 +63,7 @@ export class UmbDeleteEntityBulkAction< const { data } = await itemRepository.requestItems(this.selection); - this._items = data ?? []; + this.#items = data ?? []; } async #requestBulkDelete(uniques: Array) { @@ -105,7 +117,7 @@ export class UmbDeleteEntityBulkAction< eventContext.dispatchEvent(reloadStructure); } - const succeededItems = this._items.filter((item) => succeeded.includes(item.unique)); + const succeededItems = this.#items.filter((item) => succeeded.includes(item.unique)); succeededItems.forEach((item) => { const deletedEvent = new UmbEntityDeletedEvent({ diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-item/entity-item-ref/entity-item-ref.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-item/entity-item-ref/entity-item-ref.element.ts index 275fdf48fe..17d1721051 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-item/entity-item-ref/entity-item-ref.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-item/entity-item-ref/entity-item-ref.element.ts @@ -16,7 +16,7 @@ export class UmbEntityItemRefElement extends UmbLitElement { #item?: UmbEntityModel; @state() - _component?: any; // TODO: Add type + private _component?: any; // TODO: Add type @property({ type: Object, attribute: false }) public get item(): UmbEntityModel | undefined { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/switch.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/switch.condition.ts index 2ecf1307af..454ca4bdaf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/switch.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/switch.condition.ts @@ -44,6 +44,7 @@ export const manifest: ManifestCondition = { api: UmbSwitchCondition, }; +// eslint-disable-next-line @typescript-eslint/naming-convention export type SwitchConditionConfig = UmbConditionConfigBase<'Umb.Condition.Switch'> & { frequency: string; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/types.ts index ee46b35085..6a8ab30e6e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/conditions/types.ts @@ -4,8 +4,9 @@ import type { UmbConditionConfigBase } from '@umbraco-cms/backoffice/extension-a export type UmbCoreConditionConfigs = SwitchConditionConfig | UmbConditionConfigBase; /** - * @deprecated instead use global UmbExtensionConditionConfig + * @deprecated instead use global UmbExtensionConditionConfig, will be removed in v.17 */ +// eslint-disable-next-line @typescript-eslint/naming-convention export type ConditionTypes = UmbCoreConditionConfigs; type UnionOfProperties = T extends object ? T[keyof T] : never; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/extension-element-and-api-slot-element-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/extension-element-and-api-slot-element-base.ts index 8837c0ea38..95f219131a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/extension-element-and-api-slot-element-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/extension-element-and-api-slot-element-base.ts @@ -7,15 +7,15 @@ import { UmbExtensionElementAndApiInitializer } from '@umbraco-cms/backoffice/ex export abstract class UmbExtensionElementAndApiSlotElementBase< ManifestType extends ManifestElementAndApi, > extends UmbLitElement { - _alias?: string; @property({ type: String, reflect: true }) get alias() { - return this._alias; + return this.#alias; } set alias(newVal) { - this._alias = newVal; + this.#alias = newVal; this.#observeManifest(); } + #alias?: string; @property({ type: Object, attribute: false }) set props(newVal: Record | undefined) { @@ -34,26 +34,26 @@ export abstract class UmbExtensionElementAndApiSlotElementBase< #extensionController?: UmbExtensionElementAndApiInitializer; @state() - _api: ManifestType['API_TYPE'] | undefined; + protected _api: ManifestType['API_TYPE'] | undefined; @state() - _element: ManifestType['ELEMENT_TYPE'] | undefined; + protected _element: ManifestType['ELEMENT_TYPE'] | undefined; abstract getExtensionType(): string; abstract getDefaultElementName(): string; #observeManifest() { - if (!this._alias) return; + if (!this.alias) return; this.#extensionController = new UmbExtensionElementAndApiInitializer( this, umbExtensionsRegistry, - this._alias, + this.alias, [this], this.#extensionChanged, this.getDefaultElementName(), ); - this.#extensionController.elementProps = this.#props; + this.#extensionController.elementProps = this.props; } #extensionChanged = (isPermitted: boolean, controller: UmbExtensionElementAndApiInitializer) => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/conditions/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/conditions/types.ts index b2d40d3bdb..9647f16847 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/menu/conditions/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/conditions/types.ts @@ -1,5 +1,6 @@ import type { UmbConditionConfigBase } from '@umbraco-cms/backoffice/extension-api'; +// eslint-disable-next-line @typescript-eslint/naming-convention export type MenuAliasConditionConfig = UmbConditionConfigBase & { match: string; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.ts index 84d46fe2a3..adce591646 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/menu/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.ts @@ -20,10 +20,10 @@ umbExtensionsRegistry.register(manifestWithEntityActions); @customElement('umb-section-sidebar-menu-with-entity-actions') export class UmbSectionSidebarMenuWithEntityActionsElement extends UmbSectionSidebarMenuElement { @state() - _unique = null; + private _unique = null; @state() - _entityType?: string | null; + private _entityType?: string | null; #parentContext = new UmbParentEntityContext(this); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.stories.ts index b9a249babe..68a2a64907 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.stories.ts @@ -1,17 +1,29 @@ import './confirm-modal.element.js'; import type { UmbConfirmModalElement } from './confirm-modal.element.js'; -import type { Meta, StoryFn } from '@storybook/web-components-vite'; +import type { Meta, StoryObj } from '@storybook/web-components-vite'; import { html } from '@umbraco-cms/backoffice/external/lit'; import type { UmbConfirmModalData } from '@umbraco-cms/backoffice/modal'; -export default { +const meta: Meta = { title: 'Extension Type/Modal/Confirm', component: 'umb-confirm-modal', id: 'umb-confirm-modal', + args: { + data: { + headline: '[Headline]', + content: html`[Content]`, + color: 'positive', + cancelLabel: '[Cancel button]', + confirmLabel: '[Confirm button]', + }, + }, } as Meta; +export default meta; +type Story = StoryObj; + const positiveData: UmbConfirmModalData = { headline: 'Publish with descendants', content: html`Publish This example and all content items underneath and thereby making their content publicly @@ -19,12 +31,11 @@ const positiveData: UmbConfirmModalData = { confirmLabel: 'Publish', }; -export const Positive: StoryFn = () => html` - - -`; +export const Positive: Story = { + args: { + data: positiveData, + }, +}; const dangerData: UmbConfirmModalData = { color: 'danger', @@ -33,9 +44,8 @@ const dangerData: UmbConfirmModalData = { confirmLabel: 'Delete', }; -export const Danger: StoryFn = () => html` - - -`; +export const Danger: Story = { + args: { + data: dangerData, + }, +}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/error-viewer/error-viewer-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/error-viewer/error-viewer-modal.element.ts index 71f500401f..a5315b9a6a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/error-viewer/error-viewer-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/error-viewer/error-viewer-modal.element.ts @@ -5,10 +5,10 @@ import { css, customElement, html, nothing, state } from '@umbraco-cms/backoffic @customElement('umb-error-viewer-modal') export class UmbErrorViewerModalElement extends UmbModalBaseElement { @state() - _displayError?: string; + private _displayError?: string; @state() - _displayLang?: string; + private _displayLang?: string; // Code adapted from https://stackoverflow.com/a/57668208/12787 // Licensed under the permissions of the CC BY-SA 4.0 DEED diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal.context.ts index 7280645d0a..3271d035d4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/context/modal.context.ts @@ -109,10 +109,12 @@ export class UmbModalContext< #activeModalPath?: string; + // eslint-disable-next-line @typescript-eslint/naming-convention _internal_setCurrentModalPath(path: string) { this.#activeModalPath = path; } + // eslint-disable-next-line @typescript-eslint/naming-convention async _internal_removeCurrentModal() { const routeContext = await this.getContext(UMB_ROUTE_CONTEXT); routeContext?._internal_removeModalPath(this.#activeModalPath); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/models/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/models/index.ts index 804ef80934..df910c6f28 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/models/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/models/index.ts @@ -2,7 +2,7 @@ export interface UmbSwatchDetails { label: string; value: string; } -export interface ServertimeOffset { +export interface UmbServertimeOffset { /** * offset in minutes relative to UTC */ diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/object-type/input-object-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/object-type/input-object-type.element.ts index fbb301429d..49cec769d6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/object-type/input-object-type.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/object-type/input-object-type.element.ts @@ -7,14 +7,14 @@ import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @customElement('umb-input-object-type') export class UmbInputObjectTypeElement extends UUIFormControlMixin(UmbLitElement, '') { @query('uui-select') - private select!: UUISelectElement; + private _select!: UUISelectElement; @property() public override set value(value: UUISelectElement['value']) { - this.select.value = value; + this._select.value = value; } public override get value(): UUISelectElement['value'] { - return this.select.value; + return this._select.value; } @state() diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/picker/search/picker-search-field.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/picker/search/picker-search-field.element.ts index 22287a8ff3..0e6cf8be7c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/picker/search/picker-search-field.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/picker/search/picker-search-field.element.ts @@ -8,13 +8,13 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; @customElement('umb-picker-search-field') export class UmbPickerSearchFieldElement extends UmbLitElement { @state() - _query: string = ''; + private _query: string = ''; @state() - _searching: boolean = false; + private _searching: boolean = false; @state() - _isSearchable: boolean = false; + private _isSearchable: boolean = false; #pickerContext?: UmbPickerContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/picker/search/picker-search-result.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/picker/search/picker-search-result.element.ts index fa3a4b8751..4fcbe790de 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/picker/search/picker-search-result.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/picker/search/picker-search-result.element.ts @@ -11,16 +11,16 @@ type PickableFilterMethodType = (item @customElement('umb-picker-search-result') export class UmbPickerSearchResultElement extends UmbLitElement { @state() - _query?: UmbSearchRequestArgs; + private _query?: UmbSearchRequestArgs; @state() - _searching: boolean = false; + private _searching: boolean = false; @state() - _items: UmbEntityModel[] = []; + private _items: UmbEntityModel[] = []; @state() - _isSearchable: boolean = false; + private _isSearchable: boolean = false; @property({ attribute: false }) pickableFilter: PickableFilterMethodType = () => true; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/picker/search/result-item/picker-search-result-item-element-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/picker/search/result-item/picker-search-result-item-element-base.ts index 07969e0aa0..93fccfe64e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/picker/search/result-item/picker-search-result-item-element-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/picker/search/result-item/picker-search-result-item-element-base.ts @@ -22,7 +22,7 @@ export abstract class UmbPickerSearchResultItemElementBase; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/extensions/property-editor.extension.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/extensions/property-editor.extension.ts index 2ef67d3fa9..708b590b56 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/extensions/property-editor.extension.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/extensions/property-editor.extension.ts @@ -39,6 +39,7 @@ export interface MetaPropertyEditorSchema { } // Config +// eslint-disable-next-line @typescript-eslint/naming-convention export interface PropertyEditorSettings { properties: PropertyEditorSettingsProperty[]; // default data is kept separate from the properties, to give the ability for Property Editor UI to overwrite default values for the property editor settings. @@ -46,6 +47,7 @@ export interface PropertyEditorSettings { defaultData?: PropertyEditorSettingsDefaultData[]; } +// eslint-disable-next-line @typescript-eslint/naming-convention export interface PropertyEditorSettingsProperty { label: string; description?: string; @@ -55,6 +57,7 @@ export interface PropertyEditorSettingsProperty { weight?: number; } +// eslint-disable-next-line @typescript-eslint/naming-convention export interface PropertyEditorSettingsDefaultData { alias: string; value: unknown; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts index c299d944ad..8370cc78b0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-action/restore-from-recycle-bin/modal/restore-from-recycle-bin-modal.element.ts @@ -18,13 +18,13 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement< UmbRestoreFromRecycleBinModalValue > { @state() - _isAutomaticRestore = false; + private _isAutomaticRestore = false; @state() - _restoreItem?: any; + private _restoreItem?: any; @state() - _destinationItem?: any; + private _destinationItem?: any; #recycleBinRepository?: UmbRecycleBinRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-bulk-action/bulk-trash/bulk-trash.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-bulk-action/bulk-trash/bulk-trash.action.ts index 384e111ed5..01fee70f98 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-bulk-action/bulk-trash/bulk-trash.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/recycle-bin/entity-bulk-action/bulk-trash/bulk-trash.action.ts @@ -18,7 +18,19 @@ export class UmbTrashEntityBulkAction< MetaKindType extends MetaEntityBulkActionTrashKind = MetaEntityBulkActionTrashKind, > extends UmbEntityBulkActionBase { #localize = new UmbLocalizationController(this); - _items: Array = []; + #items: Array = []; + /** + * @deprecated this has been turned into a private property and cannot be used from v.18. Will be removed in v.18 + * */ + protected get _items() { + return this.#items; + } + /** + * @deprecated this has been turned into a private property and cannot be used from v.18. Will be removed in v.18 + * */ + protected set _items(value: Array) { + this.#items = value; + } override async execute() { if (this.selection?.length === 0) { @@ -27,7 +39,7 @@ export class UmbTrashEntityBulkAction< // TODO: Move item look up to a future bulk action context await this.#requestItems(); - await this._confirmTrash(this._items); + await this._confirmTrash(this.#items); await this.#requestBulkTrash(this.selection); } @@ -52,7 +64,7 @@ export class UmbTrashEntityBulkAction< const { data } = await itemRepository.requestItems(this.selection); - this._items = data ?? []; + this.#items = data ?? []; } async #requestBulkTrash(uniques: Array) { @@ -106,7 +118,7 @@ export class UmbTrashEntityBulkAction< eventContext.dispatchEvent(reloadStructure); } - const succeededItems = this._items.filter((item) => succeeded.includes(item.unique)); + const succeededItems = this.#items.filter((item) => succeeded.includes(item.unique)); succeededItems.forEach((item) => { const trashedEvent = new UmbEntityTrashedEvent({ diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/resources/cancelable-promise.ts b/src/Umbraco.Web.UI.Client/src/packages/core/resources/cancelable-promise.ts index a3454d7c6a..74c58c211f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/resources/cancelable-promise.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/resources/cancelable-promise.ts @@ -1,6 +1,6 @@ import { UmbCancelError } from './umb-error.js'; -export interface OnCancel { +export interface UmbOnCancel { readonly isResolved: boolean; readonly isRejected: boolean; readonly isCancelled: boolean; @@ -21,7 +21,7 @@ export class UmbCancelablePromise implements Promise { executor: ( resolve: (value: T | PromiseLike) => void, reject: (reason?: unknown) => void, - onCancel: OnCancel, + onCancel: UmbOnCancel, ) => void, ) { this._isResolved = false; @@ -67,7 +67,7 @@ export class UmbCancelablePromise implements Promise { get: (): boolean => this._isCancelled, }); - return executor(onResolve, onReject, onCancel as OnCancel); + return executor(onResolve, onReject, onCancel as UmbOnCancel); }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/resources/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/resources/types.ts index bd685f0089..60e415e0d5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/resources/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/resources/types.ts @@ -1,6 +1,8 @@ import type { UmbApiError, UmbCancelError } from './umb-error.js'; export type * from './data-api/types.js'; +// TODO: Rename this to `UmbXhrRequestOptions` in a future version. +// eslint-disable-next-line @typescript-eslint/naming-convention export interface XhrRequestOptions extends UmbTryExecuteOptions { baseUrl?: string; method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/router/generate-route-path-builder.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/generate-route-path-builder.function.ts index d14780544c..36bf0121ef 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/router/generate-route-path-builder.function.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/generate-route-path-builder.function.ts @@ -1,12 +1,12 @@ import { stripSlash } from './router-slot/util.js'; -import { umbUrlPatternToString, type UrlParametersRecord } from '@umbraco-cms/backoffice/utils'; +import { umbUrlPatternToString, type UmbUrlParametersRecord } from '@umbraco-cms/backoffice/utils'; /** * * @param path */ export function umbGenerateRoutePathBuilder(path: string) { - return (params: UrlParametersRecord | null) => { + return (params: UmbUrlParametersRecord | null) => { return '/' + stripSlash(umbUrlPatternToString(path, params)) + '/'; }; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/router/modal-registration/modal-route-registration.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/modal-registration/modal-route-registration.controller.ts index b8fe83766a..5886dccdd4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/router/modal-registration/modal-route-registration.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/modal-registration/modal-route-registration.controller.ts @@ -291,6 +291,7 @@ export class UmbModalRouteRegistrationController< this.#urlBuilderCallback = callback; return this; } + // eslint-disable-next-line @typescript-eslint/naming-convention public _internal_setRouteBuilder(urlBuilder: UmbModalRouteBuilder) { if (!this.#routeContext) return; this.#routeBuilder = urlBuilder; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/router/modal-registration/modal-route-registration.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/modal-registration/modal-route-registration.interface.ts index df8b77a555..d3dbbf09b9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/router/modal-registration/modal-route-registration.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/modal-registration/modal-route-registration.interface.ts @@ -20,5 +20,6 @@ export interface UmbModalRouteRegistration< params: Params, ): Promise>; + // eslint-disable-next-line @typescript-eslint/naming-convention _internal_setRouteBuilder(builder: UmbModalRouteBuilder): void; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/router/route/route.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/route/route.context.ts index fd2e9daeb8..ecbe3ad29d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/router/route/route.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/route/route.context.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/naming-convention */ import type { IRouterSlot } from '../router-slot/index.js'; import type { UmbModalRouteRegistration } from '../modal-registration/modal-route-registration.interface.js'; import { umbGenerateRoutePathBuilder } from '../generate-route-path-builder.function.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/config.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/config.ts index 9d1a16a76d..571e9dee72 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/config.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/config.ts @@ -1,6 +1,6 @@ +/* eslint-disable @typescript-eslint/naming-convention */ import type { PathMatch } from './model.js'; -/* eslint-disable local-rules/exported-string-constant-naming */ export const CATCH_ALL_WILDCARD: string = '**'; export const TRAVERSE_FLAG: string = '\\.\\.\\/'; export const PARAM_IDENTIFIER: RegExp = /:([^\\/]+)/g; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/model.ts index 4b9892946a..963868ab1d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/model.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/naming-convention */ export interface IRouterSlot extends HTMLElement { readonly route: IRoute | null; readonly isRoot: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/router-slot.ts b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/router-slot.ts index de09de1d2a..d0d982c51f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/router-slot.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/router-slot.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/naming-convention */ import { GLOBAL_ROUTER_EVENTS_TARGET, ROUTER_SLOT_TAG_NAME } from './config.js'; import type { Cancel, @@ -44,7 +45,7 @@ ensureAnchorHistory(); * @slot - Default content. * @event changestate - Dispatched when the router slot state changes. */ -// eslint-disable-next-line local-rules/enforce-element-suffix-on-element-class-name, local-rules/umb-class-prefix +// eslint-disable-next-line local-rules/enforce-element-suffix-on-element-class-name export class RouterSlot extends HTMLElement implements IRouterSlot { /** * Method to cancel navigation if changed. diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/conditions/section-alias/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/conditions/section-alias/types.ts index 5ef40e419d..dac6d0e238 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/conditions/section-alias/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/conditions/section-alias/types.ts @@ -1,6 +1,8 @@ import type { UMB_SECTION_ALIAS_CONDITION_ALIAS } from './constants.js'; import type { UmbConditionConfigBase } from '@umbraco-cms/backoffice/extension-api'; +// TODO: Rename this to `UmbSectionAliasConditionConfig` in a future version. +// eslint-disable-next-line @typescript-eslint/naming-convention export type SectionAliasConditionConfig = UmbConditionConfigBase & { /** * Define the section that this extension should be available in diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts index 7161de8a2a..9b3d6fc293 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/section/section-default.element.ts @@ -43,7 +43,7 @@ export class UmbSectionDefaultElement extends UmbLitElement implements UmbSectio private _sidebarApps?: Array>; @state() - _splitPanelPosition = '300px'; + private _splitPanelPosition = '300px'; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/rename/modal/rename-server-file-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/rename/modal/rename-server-file-modal.element.ts index 66a597b1b3..75f51d9a18 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/rename/modal/rename-server-file-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/server-file-system/rename/modal/rename-server-file-modal.element.ts @@ -17,7 +17,7 @@ export class UmbRenameModalElement extends UmbModalBaseElement; @state() - _name = ''; + private _name = ''; override connectedCallback(): void { super.connectedCallback(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts index 8b7546a4fc..2961604efb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/sorter/sorter.controller.ts @@ -113,6 +113,7 @@ export type UmbSorterResolvePlacementArgs = UmbSorterResolvePlacementArgs< T, ElementType @@ -934,7 +935,7 @@ export class UmbSorterController { - this.#autoScrollEl!.scrollLeft += this.autoScrollX * autoScrollSpeed; - this.#autoScrollEl!.scrollTop += this.autoScrollY * autoScrollSpeed; + this.#autoScrollEl!.scrollLeft += this._autoScrollX * autoScrollSpeed; + this.#autoScrollEl!.scrollTop += this._autoScrollY * autoScrollSpeed; this.#autoScrollRAF = requestAnimationFrame(this.#performAutoScroll); }; #stopAutoScroll() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/types.ts index 821a770766..9c5af3f492 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/temporary-file/types.ts @@ -1,5 +1,7 @@ import type { TemporaryFileConfigurationResponseModel } from '@umbraco-cms/backoffice/external/backend-api'; +// TODO: Rename this to `UmbTemporaryFileStatus` in a future version. +// eslint-disable-next-line @typescript-eslint/naming-convention export enum TemporaryFileStatus { SUCCESS = 'success', WAITING = 'waiting', diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-actions/duplicate-to/modal/duplicate-to-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-actions/duplicate-to/modal/duplicate-to-modal.element.ts index 6689f250f7..941bd38ee0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-actions/duplicate-to/modal/duplicate-to-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-actions/duplicate-to/modal/duplicate-to-modal.element.ts @@ -9,7 +9,7 @@ const elementName = 'umb-duplicate-to-modal'; @customElement(elementName) export class UmbDuplicateToModalElement extends UmbModalBaseElement { @state() - _destinationUnique?: string | null; + private _destinationUnique?: string | null; #onTreeSelectionChange(event: UmbSelectionChangeEvent) { const target = event.target as UmbTreeElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-actions/sort-children-of/modal/sort-children-of-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-actions/sort-children-of/modal/sort-children-of-modal.element.ts index 57ef96988f..14faaf5d2d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-actions/sort-children-of/modal/sort-children-of-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/entity-actions/sort-children-of/modal/sort-children-of-modal.element.ts @@ -27,10 +27,10 @@ export class UmbSortChildrenOfModalElement< protected _children: Array = []; @state() - _currentPage = 1; + private _currentPage = 1; @state() - _totalPages = 1; + private _totalPages = 1; @state() protected _tableColumns: Array = []; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.element.ts index d5e4a787c8..60eeaca3fa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-create-modal.element.ts @@ -9,7 +9,7 @@ export class UmbFolderCreateModalElement extends UmbFolderModalElementBase< UmbFolderCreateModalValue > { @state() - _folderScaffold?: UmbFolderModel; + private _folderScaffold?: UmbFolderModel; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-modal-element-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-modal-element-base.ts index 6d55666c21..823969c9b2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-modal-element-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/folder/modal/folder-modal-element-base.ts @@ -12,7 +12,7 @@ export abstract class UmbFolderModalElementBase< FolderModalValueType extends { folder: UmbFolderModel }, > extends UmbModalBaseElement { @state() - _isNew = false; + protected _isNew = false; folderRepository?: UmbDetailRepository; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.ts index 4879f2865c..b325590d1f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.ts @@ -23,7 +23,7 @@ export abstract class UmbTreeItemElementBase< protected _item?: TreeItemModelType; @state() - _label?: string; + private _label?: string; @property({ type: Object, attribute: false }) public set api(value: TreeItemContextType | undefined) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item.element.ts index 90ab9c2cdc..bd85ac9068 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item.element.ts @@ -8,22 +8,22 @@ import { createObservablePart } from '@umbraco-cms/backoffice/observable-api'; @customElement('umb-tree-item') export class UmbTreeItemElement extends UmbExtensionElementAndApiSlotElementBase { - _entityType?: string; @property({ type: String, reflect: true }) get entityType() { - return this._entityType; + return this.#entityType; } set entityType(newVal) { - this._entityType = newVal; + this.#entityType = newVal; this.#observeEntityType(); } + #entityType?: string; #observeEntityType() { - if (!this._entityType) return; + if (!this.#entityType) return; const filterByEntityType = (manifest: ManifestTreeItem) => { - if (!this._entityType) return false; - return manifest.forEntityTypes.includes(this._entityType); + if (!this.#entityType) return false; + return manifest.forEntityTypes.includes(this.#entityType); }; this.observe( diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-picker-modal/tree-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-picker-modal/tree-picker-modal.element.ts index b2e6c66084..43bd746136 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-picker-modal/tree-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-picker-modal/tree-picker-modal.element.ts @@ -14,23 +14,23 @@ export class UmbTreePickerModalElement { @state() - _selectionConfiguration: UmbTreeSelectionConfiguration = { + private _selectionConfiguration: UmbTreeSelectionConfiguration = { multiple: false, selectable: true, selection: [], }; @state() - _hasSelection: boolean = false; + private _hasSelection: boolean = false; @state() - _createPath?: string; + private _createPath?: string; @state() - _createLabel?: string; + private _createLabel?: string; @state() - _searchQuery?: string; + private _searchQuery?: string; #pickerContext = new UmbTreeItemPickerContext(this); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/utils/bytes/bytes.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/bytes/bytes.function.ts index d4c8fa2429..af449fb4e2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/utils/bytes/bytes.function.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/utils/bytes/bytes.function.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/naming-convention */ /* * This Source Code has been derived from Contentment. * https://github.com/leekelleher/umbraco-contentment/blob/develop/src/Umbraco.Community.Contentment/DataEditors/Bytes/bytes.js diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/utils/path/url-pattern-to-string.function.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/path/url-pattern-to-string.function.ts index 9b200c9785..e7175e7308 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/utils/path/url-pattern-to-string.function.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/utils/path/url-pattern-to-string.function.ts @@ -1,4 +1,9 @@ -export type UrlParametersRecord = Record string } | null>; +export type UmbUrlParametersRecord = Record string } | null>; +/** + * @deprecated Use `UmbUrlParametersRecord` instead. Will be removed in v.18 + */ +// eslint-disable-next-line @typescript-eslint/naming-convention +export type UrlParametersRecord = UmbUrlParametersRecord; const PARAM_IDENTIFIER = /:([^/]+)/g; @@ -7,7 +12,7 @@ const PARAM_IDENTIFIER = /:([^/]+)/g; * @param pattern * @param params */ -export function umbUrlPatternToString(pattern: string, params: UrlParametersRecord | null): string { +export function umbUrlPatternToString(pattern: string, params: UmbUrlParametersRecord | null): string { return params ? pattern.replace(PARAM_IDENTIFIER, (_substring: string, ...args: string[]) => { const segmentValue = params![args[0]]; // (segmentValue is the value to replace the parameter) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/utils/type/diff.type.ts b/src/Umbraco.Web.UI.Client/src/packages/core/utils/type/diff.type.ts index 699ea2524f..197c63bdb4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/utils/type/diff.type.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/utils/type/diff.type.ts @@ -2,4 +2,5 @@ type _FilterKeys = { [K in keyof T]: K extends keyof U ? never : K; }; +// eslint-disable-next-line @typescript-eslint/naming-convention export type Diff = Pick[keyof T]>; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action-menu-item/default/workspace-action-menu-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action-menu-item/default/workspace-action-menu-item.element.ts index 3f776ed25d..f161fbe671 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action-menu-item/default/workspace-action-menu-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action-menu-item/default/workspace-action-menu-item.element.ts @@ -16,7 +16,7 @@ export class UmbWorkspaceActionMenuItemElement< #api?: ApiType; @state() - _href?: string; + private _href?: string; @property({ attribute: false }) public manifest?: ManifestWorkspaceActionMenuItemDefaultKind; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action-menu/workspace-action-menu.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action-menu/workspace-action-menu.element.ts index 8094fab664..93fd02d326 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action-menu/workspace-action-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action-menu/workspace-action-menu.element.ts @@ -17,7 +17,7 @@ export class UmbWorkspaceActionMenuElement extends UmbLitElement { items: Array> = []; @state() - _popoverOpen = false; + private _popoverOpen = false; #onPopoverToggle(event: ToggleEvent) { // TODO: This ignorer is just neede for JSON SCHEMA TO WORK, As its not updated with latest TS jet. @@ -73,7 +73,6 @@ export class UmbWorkspaceActionMenuElement extends UmbLitElement { #workspace-action-popover { min-width: 200px; - } #popover-trigger { @@ -82,8 +81,8 @@ export class UmbWorkspaceActionMenuElement extends UmbLitElement { } #workspace-action-popover-layout { - overflow: visible; - } + overflow: visible; + } `, ]; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/default/workspace-action-default-kind.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/default/workspace-action-default-kind.element.ts index 019657e5d7..00666645e8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/default/workspace-action-default-kind.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-action/default/workspace-action-default-kind.element.ts @@ -73,7 +73,7 @@ export class UmbWorkspaceActionElement< private _href?: string; @state() - _isDisabled = false; + private _isDisabled = false; @state() private _items: Array> = []; @@ -141,7 +141,7 @@ export class UmbWorkspaceActionElement< } #initButtonStateReset() { - /* When the button has additional options, we do not show the waiting state. + /* When the button has additional options, we do not show the waiting state. Therefore, we need to ensure the button state is reset, so we are able to show the success state again. */ this.#clearButtonStateResetTimeout(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-breadcrumb/workspace-menu-breadcrumb/workspace-menu-breadcrumb.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-breadcrumb/workspace-menu-breadcrumb/workspace-menu-breadcrumb.element.ts index 4160be3e0b..c23a374acd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-breadcrumb/workspace-menu-breadcrumb/workspace-menu-breadcrumb.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-breadcrumb/workspace-menu-breadcrumb/workspace-menu-breadcrumb.element.ts @@ -9,10 +9,10 @@ import type { UmbMenuStructureWorkspaceContext, UmbStructureItemModel } from '@u @customElement('umb-workspace-breadcrumb') export class UmbWorkspaceBreadcrumbElement extends UmbLitElement { @state() - _name: string = ''; + private _name: string = ''; @state() - _structure: UmbStructureItemModel[] = []; + private _structure: UmbStructureItemModel[] = []; // TODO: figure out the correct context type #workspaceContext?: any; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-breadcrumb/workspace-variant-menu-breadcrumb/workspace-variant-menu-breadcrumb.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-breadcrumb/workspace-variant-menu-breadcrumb/workspace-variant-menu-breadcrumb.element.ts index 05a7d9c449..994c179938 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-breadcrumb/workspace-variant-menu-breadcrumb/workspace-variant-menu-breadcrumb.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-breadcrumb/workspace-variant-menu-breadcrumb/workspace-variant-menu-breadcrumb.element.ts @@ -13,16 +13,16 @@ import type { UmbVariantStructureItemModel } from '@umbraco-cms/backoffice/menu' @customElement('umb-workspace-variant-menu-breadcrumb') export class UmbWorkspaceVariantMenuBreadcrumbElement extends UmbLitElement { @state() - _name: string = ''; + private _name: string = ''; @state() - _structure: Array = []; + private _structure: Array = []; @state() - _workspaceActiveVariantId?: UmbVariantId; + private _workspaceActiveVariantId?: UmbVariantId; @state() - _appDefaultCulture?: string; + private _appDefaultCulture?: string; #sectionContext?: typeof UMB_SECTION_CONTEXT.TYPE; #workspaceContext?: UmbVariantDatasetWorkspaceContext; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-footer/workspace-footer.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-footer/workspace-footer.element.ts index 912b4f3f65..789994afc5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-footer/workspace-footer.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-footer/workspace-footer.element.ts @@ -29,13 +29,13 @@ function ExtensionApiArgsMethod( @customElement('umb-workspace-footer') export class UmbWorkspaceFooterLayoutElement extends UmbLitElement { @state() - _withinModal = false; + private _withinModal = false; @state() - _modalContext?: UmbModalContext; + private _modalContext?: UmbModalContext; @state() - _isNew?: boolean; + private _isNew?: boolean; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.ts index 3ee0a82c33..cc06cf5222 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.ts @@ -26,7 +26,7 @@ export class UmbWorkspaceSplitViewVariantSelectorElement< private _cultureVariantOptions: Array = []; @state() - _activeVariants: Array = []; + private _activeVariants: Array = []; #splitViewContext?: typeof UMB_WORKSPACE_SPLIT_VIEW_CONTEXT.TYPE; #datasetContext?: typeof UMB_PROPERTY_DATASET_CONTEXT.TYPE; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/conditions/workspace-alias/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/conditions/workspace-alias/types.ts index af930a9cdd..1dc1c622e7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/conditions/workspace-alias/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/conditions/workspace-alias/types.ts @@ -1,6 +1,8 @@ import type { UMB_WORKSPACE_CONDITION_ALIAS } from './constants.js'; import type { UmbConditionConfigBase } from '@umbraco-cms/backoffice/extension-api'; +// TODO: Rename this to `UmbWorkspaceAliasConditionConfig` in a future version. +// eslint-disable-next-line @typescript-eslint/naming-convention export interface WorkspaceAliasConditionConfig extends UmbConditionConfigBase { /** * Define the workspace that this extension should be available in diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/conditions/workspace-entity-is-new/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/conditions/workspace-entity-is-new/types.ts index 8294ef15fb..d1d305f511 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/conditions/workspace-entity-is-new/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/conditions/workspace-entity-is-new/types.ts @@ -9,7 +9,7 @@ export interface UmbWorkspaceEntityIsNewConditionConfig /** * @deprecated Use `UmbWorkspaceEntityIsNewConditionConfig` instead. This will be removed in Umbraco 17. */ -// eslint-disable-next-line @typescript-eslint/no-empty-object-type +// eslint-disable-next-line @typescript-eslint/no-empty-object-type, @typescript-eslint/naming-convention export interface WorkspaceEntityIsNewConditionConfig extends UmbWorkspaceEntityIsNewConditionConfig {} declare global { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/conditions/workspace-entity-type/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/conditions/workspace-entity-type/types.ts index 89a5df4e5c..1604124d99 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/conditions/workspace-entity-type/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/conditions/workspace-entity-type/types.ts @@ -14,6 +14,7 @@ export type UmbWorkspaceEntityTypeConditionConfig = UmbConditionConfigBase< /** * @deprecated Use `UmbWorkspaceEntityTypeConditionConfig` instead. This will be removed in Umbraco 17. */ +// eslint-disable-next-line @typescript-eslint/naming-convention export type WorkspaceEntityTypeConditionConfig = UmbWorkspaceEntityTypeConditionConfig; declare global { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/contexts/tokens/submittable-tree-entity-workspace-context.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/contexts/tokens/submittable-tree-entity-workspace-context.interface.ts index a47776c2ab..2af26a1bb7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/contexts/tokens/submittable-tree-entity-workspace-context.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/contexts/tokens/submittable-tree-entity-workspace-context.interface.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/naming-convention */ import type { UmbSubmittableWorkspaceContext } from './submittable-workspace-context.interface.js'; import type { UmbEntityModel, UmbEntityUnique } from '@umbraco-cms/backoffice/entity'; import type { Observable } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/controllers/workspace-split-view-manager.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/controllers/workspace-split-view-manager.controller.ts index e365c08b3e..2c40f645e5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/controllers/workspace-split-view-manager.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/controllers/workspace-split-view-manager.controller.ts @@ -1,18 +1,24 @@ import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbVariantId } from '@umbraco-cms/backoffice/variant'; -export type ActiveVariant = { +export type UmbActiveVariant = { index: number; culture: string | null; segment: string | null; }; +/** + * @deprecated Use {@link UmbActiveVariant} instead. This will be removed in Umbraco 18. + */ +// eslint-disable-next-line @typescript-eslint/naming-convention +export type ActiveVariant = UmbActiveVariant; + /** * @class UmbWorkspaceSplitViewManager * @description - Class managing the split view state for a workspace context. */ export class UmbWorkspaceSplitViewManager { - #activeVariantsInfo = new UmbArrayState([], (x) => x.index).sortBy( + #activeVariantsInfo = new UmbArrayState([], (x) => x.index).sortBy( (a, b) => (a.index || 0) - (b.index || 0), ); public readonly activeVariantsInfo = this.#activeVariantsInfo.asObservable(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/entity-detail/entity-detail-workspace-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/entity-detail/entity-detail-workspace-base.ts index 30fbf2019e..333c00a228 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/entity-detail/entity-detail-workspace-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/entity-detail/entity-detail-workspace-base.ts @@ -63,12 +63,15 @@ export abstract class UmbEntityDetailWorkspaceContextBase< #eventContext?: typeof UMB_ACTION_EVENT_CONTEXT.TYPE; #createUnderParent = new UmbObjectState(undefined); - _internal_createUnderParent = this.#createUnderParent.asObservable(); + // eslint-disable-next-line @typescript-eslint/naming-convention + public readonly _internal_createUnderParent = this.#createUnderParent.asObservable(); + // eslint-disable-next-line @typescript-eslint/naming-convention public readonly _internal_createUnderParentEntityUnique = this.#createUnderParent.asObservablePart((parent) => parent ? parent.unique : undefined, ); + // eslint-disable-next-line @typescript-eslint/naming-convention public readonly _internal_createUnderParentEntityType = this.#createUnderParent.asObservablePart((parent) => parent ? parent.entityType : undefined, ); @@ -177,6 +180,7 @@ export abstract class UmbEntityDetailWorkspaceContextBase< * Gets the parent that a new entity will be created under. * @returns { UmbEntityModel | undefined } The parent entity */ + // eslint-disable-next-line @typescript-eslint/naming-convention _internal_getCreateUnderParent(): UmbEntityModel | undefined { return this.#createUnderParent.getValue(); } @@ -185,6 +189,7 @@ export abstract class UmbEntityDetailWorkspaceContextBase< * Sets the parent that a new entity will be created under. * @param {UmbEntityModel} parent The parent entity */ + // eslint-disable-next-line @typescript-eslint/naming-convention _internal_setCreateUnderParent(parent: UmbEntityModel): void { this.#createUnderParent.setValue(parent); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/kinds/routable/routable-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/kinds/routable/routable-workspace.element.ts index 6c6d1e4b73..038da49fbb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/kinds/routable/routable-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/kinds/routable/routable-workspace.element.ts @@ -6,7 +6,7 @@ import type { UmbRoute } from '@umbraco-cms/backoffice/router'; @customElement('umb-routable-workspace') export class UmbRoutableWorkspaceElement extends UmbLitElement { @state() - _routes: UmbRoute[] = []; + private _routes: UmbRoute[] = []; public set api(api: UmbRoutableWorkspaceContext) { this.observe(api.routes.routes, (routes) => (this._routes = routes)); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace.element.ts index b54f387944..89060c90ef 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace.element.ts @@ -19,7 +19,7 @@ export class UmbWorkspaceElement extends UmbLitElement { #entityType?: string; @state() - _component?: HTMLElement; + private _component?: HTMLElement; @property({ type: String, attribute: 'entity-type' }) public get entityType(): string | undefined { diff --git a/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/views/info/workspace-view-data-type-info.element.ts b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/views/info/workspace-view-data-type-info.element.ts index e6814696a8..fb9188218b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/views/info/workspace-view-data-type-info.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/data-type/workspace/views/info/workspace-view-data-type-info.element.ts @@ -7,13 +7,13 @@ import type { UmbWorkspaceViewElement } from '@umbraco-cms/backoffice/workspace' @customElement('umb-workspace-view-data-type-info') export class UmbWorkspaceViewDataTypeInfoElement extends UmbLitElement implements UmbWorkspaceViewElement { @state() - _unique: string = ''; + private _unique: string = ''; @state() - _schemaAlias?: string; + private _schemaAlias?: string; @state() - _uiAlias?: string | null; + private _uiAlias?: string | null; private _workspaceContext?: typeof UMB_DATA_TYPE_WORKSPACE_CONTEXT.TYPE; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts index 875b5b00d2..49845d1939 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.ts @@ -10,14 +10,14 @@ import type { UmbRoute, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/r export class UmbDocumentBlueprintWorkspaceEditorElement extends UmbLitElement { // // TODO: Refactor: when having a split view/variants context token, we can rename the split view/variants component to a generic and make this component generic as well. [NL] - private splitViewElement = new UmbDocumentBlueprintWorkspaceSplitViewElement(); + private _splitViewElement = new UmbDocumentBlueprintWorkspaceSplitViewElement(); #workspaceContext?: typeof UMB_DOCUMENT_BLUEPRINT_WORKSPACE_CONTEXT.TYPE; #variants?: Array; #isForbidden = false; @state() - _routes?: Array; + private _routes?: Array; constructor() { super(); @@ -68,7 +68,7 @@ export class UmbDocumentBlueprintWorkspaceEditorElement extends UmbLitElement { routes.push({ // TODO: When implementing Segments, be aware if using the unique is URL Safe... [NL] path: variantA.unique + '_&_' + variantB.unique, - component: this.splitViewElement, + component: this._splitViewElement, setup: (_component, info) => { // Set split view/active info.. const variantSplit = info.match.fragments.consumed.split('_&_'); @@ -85,7 +85,7 @@ export class UmbDocumentBlueprintWorkspaceEditorElement extends UmbLitElement { routes.push({ // TODO: When implementing Segments, be aware if using the unique is URL Safe... [NL] path: variant.unique, - component: this.splitViewElement, + component: this._splitViewElement, setup: (_component, info) => { // cause we might come from a split-view, we need to reset index 1. this.#workspaceContext?.splitView.removeActiveVariant(1); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-split-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-split-view.element.ts index afb717dd2d..5977605c71 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-split-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/workspace/document-blueprint-workspace-split-view.element.ts @@ -1,7 +1,7 @@ import { UMB_DOCUMENT_BLUEPRINT_WORKSPACE_ALIAS, UMB_DOCUMENT_BLUEPRINT_WORKSPACE_CONTEXT } from './constants.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, nothing, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit'; -import type { ActiveVariant } from '@umbraco-cms/backoffice/workspace'; +import type { UmbActiveVariant } from '@umbraco-cms/backoffice/workspace'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @customElement('umb-document-blueprint-workspace-split-view') @@ -10,7 +10,7 @@ export class UmbDocumentBlueprintWorkspaceSplitViewElement extends UmbLitElement private _workspaceContext?: typeof UMB_DOCUMENT_BLUEPRINT_WORKSPACE_CONTEXT.TYPE; @state() - _variants?: Array; + private _variants?: Array; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/property-type/document-type-property-type-item-ref.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/property-type/document-type-property-type-item-ref.element.ts index a841c162c9..9a64800ee5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/property-type/document-type-property-type-item-ref.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/property-type/document-type-property-type-item-ref.element.ts @@ -18,7 +18,7 @@ export class UmbDocumentTypePropertyTypeItemRefElement extends UmbLitElement { standalone = false; @state() - _editPath = ''; + private _editPath = ''; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type/document-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type/document-type-workspace.context.ts index 8c9a66f575..7a20862458 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type/document-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type/document-type-workspace.context.ts @@ -166,7 +166,7 @@ export class UmbDocumentTypeWorkspaceContext this.createScaffold({ parent, preset }); } - override async _create(currentData: DetailModelType, parent: UmbEntityModel) { + protected override async _create(currentData: DetailModelType, parent: UmbEntityModel) { // TODO: move this responsibility to the template package if (this.createTemplateMode) { await this.#createAndAssignTemplate(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/column-layouts/document-table-column-name.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/column-layouts/document-table-column-name.element.ts index f8cc6fc297..ebaa889b1e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/column-layouts/document-table-column-name.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/column-layouts/document-table-column-name.element.ts @@ -23,7 +23,7 @@ export class UmbDocumentTableColumnNameElement extends UmbLitElement implements } @state() - _name = ''; + private _name = ''; #item = new UmbDocumentItemDataResolver(this); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/column-layouts/document-table-column-state.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/column-layouts/document-table-column-state.element.ts index e7d2c56c2d..ced42c55b9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/column-layouts/document-table-column-state.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/collection/views/table/column-layouts/document-table-column-state.element.ts @@ -24,7 +24,7 @@ export class UmbDocumentTableColumnStateElement extends UmbLitElement implements } @state() - _state = ''; + private _state = ''; #item = new UmbDocumentItemDataResolver(this); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/duplicate/modal/duplicate-document-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/duplicate/modal/duplicate-document-modal.element.ts index 03869a8cab..a465242dcc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/duplicate/modal/duplicate-document-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/duplicate/modal/duplicate-document-modal.element.ts @@ -18,7 +18,7 @@ export class UmbDocumentDuplicateToModalElement extends UmbModalBaseElement< UmbDuplicateDocumentModalValue > { @state() - _destinationUnique?: string | null; + private _destinationUnique?: string | null; #onTreeSelectionChange(event: UmbSelectionChangeEvent) { const target = event.target as UmbTreeElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/global-contexts/document-configuration.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/global-contexts/document-configuration.context.ts index 3bb91266f1..296bbd8f5c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/global-contexts/document-configuration.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/global-contexts/document-configuration.context.ts @@ -14,7 +14,7 @@ export class UmbDocumentConfigurationContext extends UmbContextBase implements U /** * The cached document configuration. */ - static #DocumentConfiguration: Promise; + static #documentConfiguration: Promise; constructor(host: UmbControllerHost) { super(host, UMB_DOCUMENT_CONFIGURATION_CONTEXT); @@ -25,7 +25,7 @@ export class UmbDocumentConfigurationContext extends UmbContextBase implements U * @returns A promise that resolves to the document configuration, or null if the configuration could not be fetched. */ getDocumentConfiguration(): Promise { - return (UmbDocumentConfigurationContext.#DocumentConfiguration ??= this.fetchDocumentConfiguration()); + return (UmbDocumentConfigurationContext.#documentConfiguration ??= this.fetchDocumentConfiguration()); } /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/save-modal/document-save-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/save-modal/document-save-modal.element.ts index aa2f39cceb..6eebcb0c70 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/save-modal/document-save-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/save-modal/document-save-modal.element.ts @@ -15,7 +15,7 @@ export class UmbDocumentSaveModalElement extends UmbModalBaseElement< #selectionManager = new UmbSelectionManager(this); @state() - _options: Array = []; + private _options: Array = []; #pickableFilter = (option: UmbDocumentVariantOptionModel) => { if (!option.variant) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/shared/document-variant-language-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/shared/document-variant-language-picker.element.ts index f8fd8b5870..43f0f0c23d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/shared/document-variant-language-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/modals/shared/document-variant-language-picker.element.ts @@ -38,10 +38,10 @@ export class UmbDocumentVariantLanguagePickerElement extends UmbLitElement { } @state() - _selection: Array = []; + private _selection: Array = []; @state() - _isAllSelected: boolean = false; + private _isAllSelected: boolean = false; /** * A filter function that determines if an item is pickableFilter or not. diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/publish-with-descendants/modal/document-publish-with-descendants-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/publish-with-descendants/modal/document-publish-with-descendants-modal.element.ts index 56509ca263..75340bdaa0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/publish-with-descendants/modal/document-publish-with-descendants-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/publish-with-descendants/modal/document-publish-with-descendants-modal.element.ts @@ -20,10 +20,10 @@ export class UmbDocumentPublishWithDescendantsModalElement extends UmbModalBaseE #includeUnpublishedDescendants = false; @state() - _options: Array = []; + private _options: Array = []; @state() - _hasNotSelectedMandatory?: boolean; + private _hasNotSelectedMandatory?: boolean; #pickableFilter = (option: UmbDocumentVariantOptionModel) => { if (!option.variant) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/publish/modal/document-publish-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/publish/modal/document-publish-modal.element.ts index b59254f4c0..755a366b4f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/publish/modal/document-publish-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/publish/modal/document-publish-modal.element.ts @@ -16,16 +16,16 @@ export class UmbDocumentPublishModalElement extends UmbModalBaseElement< #selectionManager = new UmbSelectionManager(this); @state() - _options: Array = []; + private _options: Array = []; @state() - _hasNotSelectedMandatory?: boolean; + private _hasNotSelectedMandatory?: boolean; @state() - _hasInvalidSelection = true; + private _hasInvalidSelection = true; @state() - _isInvariant = false; + private _isInvariant = false; #pickableFilter = (option: UmbDocumentVariantOptionModel) => { if (!option.variant || option.variant.state === UmbDocumentVariantState.NOT_CREATED) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/unpublish/modal/document-unpublish-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/unpublish/modal/document-unpublish-modal.element.ts index d356a82072..a264efa611 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/unpublish/modal/document-unpublish-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/unpublish/modal/document-unpublish-modal.element.ts @@ -37,22 +37,22 @@ export class UmbDocumentUnpublishModalElement extends UmbModalBaseElement< protected readonly _selectionManager = new UmbSelectionManager(this); @state() - _options: Array = []; + private _options: Array = []; @state() - _selection: Array = []; + private _selection: Array = []; @state() - _canUnpublish = true; + private _canUnpublish = true; @state() - _hasInvalidSelection = true; + private _hasInvalidSelection = true; @state() - _isInvariant = false; + private _isInvariant = false; @state() - _referencesConfig?: UmbConfirmActionModalEntityReferencesConfig; + private _referencesConfig?: UmbConfirmActionModalEntityReferencesConfig; #pickableFilter = (option: UmbDocumentVariantOptionModel) => { if (!option.variant) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/reference/components/document-reference-table.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/reference/components/document-reference-table.element.ts index 1574e85a49..d392378130 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/reference/components/document-reference-table.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/reference/components/document-reference-table.element.ts @@ -24,17 +24,17 @@ export class UmbDocumentReferenceTableElement extends UmbLitElement { unique = ''; @state() - _items: Array = []; + private _items: Array = []; /** * Indicates if there are more references to load, i.e. if the server has more references to return. * This is used to determine if the "...and X more references" text should be displayed. */ @state() - _hasMoreReferences = 0; + private _hasMoreReferences = 0; @state() - _errorMessage = ''; + private _errorMessage = ''; override firstUpdated() { new UmbDeprecation({ diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/rollback/modal/rollback-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/rollback/modal/rollback-modal.element.ts index 56fa6371a3..1ce732fdba 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/rollback/modal/rollback-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/rollback/modal/rollback-modal.element.ts @@ -29,10 +29,10 @@ type DocumentVersion = { @customElement('umb-rollback-modal') export class UmbRollbackModalElement extends UmbModalBaseElement { @state() - _versions: DocumentVersion[] = []; + private _versions: DocumentVersion[] = []; @state() - _selectedVersion?: { + private _selectedVersion?: { date: string; name: string; user: string; @@ -44,16 +44,16 @@ export class UmbRollbackModalElement extends UmbModalBaseElement = []; + private _diffs: Array<{ alias: string; diff: UmbDiffChange[] }> = []; #rollbackRepository = new UmbRollbackRepository(this); #userItemRepository = new UmbUserItemRepository(this); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/search/document-search-result-item.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/search/document-search-result-item.element.ts index b7dc6c2395..b7cb75bbbd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/search/document-search-result-item.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/search/document-search-result-item.element.ts @@ -19,13 +19,13 @@ export class UmbDocumentSearchResultItemElement extends UmbLitElement { item?: UmbSearchResultItemModel & UmbDocumentItemModel; @state() - _currentCulture?: string; + private _currentCulture?: string; @state() - _defaultCulture?: string; + private _defaultCulture?: string; @state() - _variant?: UmbDocumentItemVariantModel; + private _variant?: UmbDocumentItemVariantModel; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/document-property-value/document-property-value-permission-flow-modal/document-property-value-permission-flow-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/document-property-value/document-property-value-permission-flow-modal/document-property-value-permission-flow-modal.element.ts index d9c8e9b90c..81ab5cfb79 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/document-property-value/document-property-value-permission-flow-modal/document-property-value-permission-flow-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/document-property-value/document-property-value-permission-flow-modal/document-property-value-permission-flow-modal.element.ts @@ -15,7 +15,7 @@ export class UmbDocumentPropertyValueUserPermissionFlowModalElement extends UmbM UmbDocumentPropertyValueUserPermissionFlowModalValue > { @state() - _selection: Array = []; + private _selection: Array = []; async #next() { if (this._selection.length === 0) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/document-property-value/document-property-value-permission-flow-modal/property-type-modal/property-type-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/document-property-value/document-property-value-permission-flow-modal/property-type-modal/property-type-modal.element.ts index cccfe38107..d5c836d5c0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/document-property-value/document-property-value-permission-flow-modal/property-type-modal/property-type-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/document-property-value/document-property-value-permission-flow-modal/property-type-modal/property-type-modal.element.ts @@ -21,10 +21,10 @@ export class UmbDocumentPropertyValueUserPermissionFlowPropertyTypeModalElement private _documentTypeName?: string; @state() - _selectedItem: UmbPropertyTypeModel | null = null; + private _selectedItem: UmbPropertyTypeModel | null = null; @state() - _pickableFilter: (propertyType: UmbPropertyTypeModel) => boolean = () => true; + private _pickableFilter: (propertyType: UmbPropertyTypeModel) => boolean = () => true; #detailRepository = new UmbDocumentTypeDetailRepository(this); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/document-property-value/input-document-property-value-user-permission/input-document-property-value-user-permission.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/document-property-value/input-document-property-value-user-permission/input-document-property-value-user-permission.element.ts index f2548a45b7..a0adc8968c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/document-property-value/input-document-property-value-user-permission/input-document-property-value-user-permission.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/document-property-value/input-document-property-value-user-permission/input-document-property-value-user-permission.element.ts @@ -28,12 +28,12 @@ import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; @customElement('umb-input-document-property-value-user-permission') export class UmbInputDocumentPropertyValueUserPermissionElement extends UUIFormControlMixin(UmbLitElement, '') { - _permissions: Array = []; + #permissions: Array = []; public get permissions(): Array { - return this._permissions; + return this.#permissions; } public set permissions(value: Array) { - this._permissions = value; + this.#permissions = value; const uniques = value.map((item) => item.documentType.unique); this.#observePickedDocumentTypes(uniques); } @@ -73,7 +73,7 @@ export class UmbInputDocumentPropertyValueUserPermissionElement extends UUIFormC verbs: this.#getFallbackPermissionVerbsForEntityType(UMB_DOCUMENT_PROPERTY_VALUE_ENTITY_TYPE), }, pickablePropertyTypeFilter: (propertyType) => - !this._permissions.some((permission) => permission.propertyType.unique === propertyType.unique), + !this.#permissions.some((permission) => permission.propertyType.unique === propertyType.unique), }, }); @@ -89,7 +89,7 @@ export class UmbInputDocumentPropertyValueUserPermissionElement extends UUIFormC verbs: value.verbs, }; - this.permissions = [...this._permissions, permissionItem]; + this.permissions = [...this.#permissions, permissionItem]; this.dispatchEvent(new UmbChangeEvent()); } catch (error) { console.error(error); @@ -132,7 +132,7 @@ export class UmbInputDocumentPropertyValueUserPermissionElement extends UUIFormC if (JSON.stringify(value.allowedVerbs) === JSON.stringify(currentPermission.verbs)) return; // update permission with new verbs - this.permissions = this._permissions.map((permission) => { + this.permissions = this.#permissions.map((permission) => { if (permission.propertyType.unique === currentPermission.propertyType.unique) { return { ...permission, @@ -149,7 +149,7 @@ export class UmbInputDocumentPropertyValueUserPermissionElement extends UUIFormC } #removePermission(permission: UmbDocumentPropertyValueUserPermissionModel) { - this.permissions = this._permissions.filter((v) => JSON.stringify(v) !== JSON.stringify(permission)); + this.permissions = this.#permissions.filter((v) => JSON.stringify(v) !== JSON.stringify(permission)); this.dispatchEvent(new UmbChangeEvent()); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/document/input-document-granular-user-permission/input-document-granular-user-permission.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/document/input-document-granular-user-permission/input-document-granular-user-permission.element.ts index bacebca227..dfbf95e05d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/document/input-document-granular-user-permission/input-document-granular-user-permission.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/user-permissions/document/input-document-granular-user-permission/input-document-granular-user-permission.element.ts @@ -17,12 +17,12 @@ import { @customElement('umb-input-document-granular-user-permission') export class UmbInputDocumentGranularUserPermissionElement extends UUIFormControlMixin(UmbLitElement, '') { - _permissions: Array = []; + #permissions: Array = []; public get permissions(): Array { - return this._permissions; + return this.#permissions; } public set permissions(value: Array) { - this._permissions = value; + this.#permissions = value; const uniques = value.map((item) => item.document.id); this.#observePickedDocuments(uniques); } @@ -60,7 +60,7 @@ export class UmbInputDocumentGranularUserPermissionElement extends UUIFormContro if (JSON.stringify(result) === JSON.stringify(currentPermissionVerbs)) return; // update permission with new verbs - this.permissions = this._permissions.map((permission) => { + this.permissions = this.#permissions.map((permission) => { if (permission.document.id === item.unique) { return { ...permission, @@ -101,7 +101,7 @@ export class UmbInputDocumentGranularUserPermissionElement extends UUIFormContro verbs: result, }; - this.permissions = [...this._permissions, permissionItem]; + this.permissions = [...this.#permissions, permissionItem]; this.dispatchEvent(new UmbChangeEvent()); }, () => { @@ -153,7 +153,7 @@ export class UmbInputDocumentGranularUserPermissionElement extends UUIFormContro const permission = this.#getPermissionForDocument(item.unique); if (!permission) return; - this.permissions = this._permissions.filter((v) => JSON.stringify(v) !== JSON.stringify(permission)); + this.permissions = this.#permissions.filter((v) => JSON.stringify(v) !== JSON.stringify(permission)); this.dispatchEvent(new UmbChangeEvent()); } @@ -223,7 +223,7 @@ export class UmbInputDocumentGranularUserPermissionElement extends UUIFormContro } #getPermissionForDocument(unique: string) { - return this._permissions?.find((permission) => permission.document.id === unique); + return this.#permissions?.find((permission) => permission.document.id === unique); } #getPermissionNamesForDocument(unique: string) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save.action.ts index c17c8b7e66..bae7c347a3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/actions/save.action.ts @@ -32,7 +32,7 @@ export class UmbDocumentSaveWorkspaceAction return cultureVariantOptions ? cultureVariantOptions?.length > 1 : false; } - override _gotWorkspaceContext() { + protected override _gotWorkspaceContext() { super._gotWorkspaceContext(); this.#observeVariants(); this.#observeReadOnlyGuardRules(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts index b05120a597..40697df02b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-editor.element.ts @@ -12,7 +12,7 @@ import { UMB_APP_LANGUAGE_CONTEXT } from '@umbraco-cms/backoffice/language'; export class UmbDocumentWorkspaceEditorElement extends UmbLitElement { // // TODO: Refactor: when having a split view/variants context token, we can rename the split view/variants component to a generic and make this component generic as well. [NL] - private splitViewElement = new UmbDocumentWorkspaceSplitViewElement(); + private _splitViewElement = new UmbDocumentWorkspaceSplitViewElement(); #appLanguage?: typeof UMB_APP_LANGUAGE_CONTEXT.TYPE; #workspaceContext?: typeof UMB_DOCUMENT_WORKSPACE_CONTEXT.TYPE; @@ -23,7 +23,7 @@ export class UmbDocumentWorkspaceEditorElement extends UmbLitElement { #isForbidden = false; @state() - _routes?: Array; + private _routes?: Array; constructor() { super(); @@ -80,7 +80,7 @@ export class UmbDocumentWorkspaceEditorElement extends UmbLitElement { routes.push({ // TODO: When implementing Segments, be aware if using the unique still is URL Safe, cause its most likely not... [NL] path: variantA.unique + '_&_' + variantB.unique, - component: this.splitViewElement, + component: this._splitViewElement, setup: (_component, info) => { // Set split view/active info.. const variantSplit = info.match.fragments.consumed.split('_&_'); @@ -97,7 +97,7 @@ export class UmbDocumentWorkspaceEditorElement extends UmbLitElement { routes.push({ // TODO: When implementing Segments, be aware if using the unique still is URL Safe, cause its most likely not... [NL] path: variant.unique, - component: this.splitViewElement, + component: this._splitViewElement, setup: (_component, info) => { // cause we might come from a split-view, we need to reset index 1. this.#workspaceContext?.splitView.removeActiveVariant(1); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view-variant-selector.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view-variant-selector.element.ts index 155dd1ce81..ead2224586 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view-variant-selector.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view-variant-selector.element.ts @@ -61,7 +61,7 @@ export class UmbDocumentWorkspaceSplitViewVariantSelectorElement extends UmbWork return this.localize.term(term); } - override _renderVariantDetails(variantOption: UmbDocumentVariantOptionModel) { + protected override _renderVariantDetails(variantOption: UmbDocumentVariantOptionModel) { return html` ${this.#getVariantState(variantOption)}`; } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts index b84adc1175..bd82b1d110 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts @@ -1,7 +1,7 @@ import { UMB_DOCUMENT_WORKSPACE_CONTEXT } from './document-workspace.context-token.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, nothing, customElement, state, repeat, ifDefined } from '@umbraco-cms/backoffice/external/lit'; -import type { ActiveVariant } from '@umbraco-cms/backoffice/workspace'; +import type { UmbActiveVariant } from '@umbraco-cms/backoffice/workspace'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import './document-workspace-split-view-variant-selector.element.js'; @@ -12,10 +12,10 @@ export class UmbDocumentWorkspaceSplitViewElement extends UmbLitElement { private _workspaceContext?: typeof UMB_DOCUMENT_WORKSPACE_CONTEXT.TYPE; @state() - _variants?: Array; + private _variants?: Array; @state() - _icon?: string; + private _icon?: string; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/embedded-media/modal/embedded-media-modal.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/embedded-media/modal/embedded-media-modal.stories.ts index 94c81fe490..ebf8e5435b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/embedded-media/modal/embedded-media-modal.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/embedded-media/modal/embedded-media-modal.stories.ts @@ -1,14 +1,8 @@ import './embedded-media-modal.element.js'; +import type UmbEmbeddedMediaModalElement from './embedded-media-modal.element.js'; import type { UmbEmbeddedMediaModalData } from './embedded-media-modal.token.js'; -import type { Meta } from '@storybook/web-components-vite'; -import { html } from '@umbraco-cms/backoffice/external/lit'; - -export default { - title: 'Extension Type/Modal/Embedded Media', - component: 'umb-embedded-media-modal', - id: 'umb-embedded-media-modal', -} as Meta; +import type { Meta, StoryObj } from '@storybook/web-components-vite'; const data: UmbEmbeddedMediaModalData = { url: 'https://youtu.be/wJNbtYdr-Hg', @@ -17,9 +11,16 @@ const data: UmbEmbeddedMediaModalData = { constrain: true, }; -export const Docs = () => html` - - -`; +const meta: Meta = { + title: 'Extension Type/Modal/Embedded Media', + component: 'umb-embedded-media-modal', + id: 'umb-embedded-media-modal', + args: { + data, + }, +}; + +export default meta; +type Story = StoryObj; + +export const Docs: Story = {}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check.extension.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check.extension.ts index 01835d4909..94455ed6fd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check.extension.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/health-check.extension.ts @@ -13,12 +13,23 @@ export interface MetaHealthCheck { label: string; } -export interface HealthCheck { +/** + * Represents a health check. + */ +export interface UmbHealthCheck { alias: string; name: string; description: string; } +/** + * @deprecated Use `UmbHealthCheck` instead. This will be removed in Umbraco 18. + */ +// eslint-disable-next-line @typescript-eslint/no-empty-object-type, @typescript-eslint/naming-convention +export interface HealthCheck extends UmbHealthCheck { + // Left empty +} + declare global { interface UmbExtensionManifestMap { umbHealthCheck: ManifestHealthCheck; diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group-box-overview.element.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group-box-overview.element.ts index 6780414d12..22d8155cf1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group-box-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group-box-overview.element.ts @@ -46,11 +46,11 @@ export class UmbHealthCheckGroupBoxOverviewElement extends UmbLitElement { override render() { return html` - ${this.manifest?.meta.label} ${this._renderStatus()} + ${this.manifest?.meta.label} ${this.#renderStatus()} `; } - _renderStatus() { + #renderStatus() { const res: StatusResultTypeModel[] = []; this._keyResults?.checks?.forEach((item) => { item?.results?.forEach((result) => { @@ -58,10 +58,10 @@ export class UmbHealthCheckGroupBoxOverviewElement extends UmbLitElement { }); }); this._tagResults = res; - return html`
${this._renderCheckResults(this.filterResults(this._tagResults))}
`; + return html`
${this.#renderCheckResults(this.filterResults(this._tagResults))}
`; } - _renderCheckResults(resultObject: any) { + #renderCheckResults(resultObject: any) { return html`${resultObject.success > 0 ? html` diff --git a/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group.element.ts b/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group.element.ts index 00bae1f180..225c77c17d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/health-check/views/health-check-group.element.ts @@ -102,11 +102,11 @@ export class UmbDashboardHealthCheckGroupElement extends UmbLitElement { ${checkResults.results?.map((result) => { return html`
- ${this.renderIcon(result.resultType)} + ${this.#renderIcon(result.resultType)}

${unsafeHTML(result.message)}

- ${result.actions ? this.renderActions(result.actions) : nothing} + ${result.actions ? this.#renderActions(result.actions) : nothing} ${result.readMoreLink ? html``; } - private renderIcon(type?: StatusResultTypeModel) { + #renderIcon(type?: StatusResultTypeModel) { switch (type) { case StatusResultTypeModel.SUCCESS: return html``; @@ -139,7 +139,7 @@ export class UmbDashboardHealthCheckGroupElement extends UmbLitElement { } } - private renderActions(actions: HealthCheckActionRequestModel[]) { + #renderActions(actions: HealthCheckActionRequestModel[]) { if (actions.length) return html`
${actions.map( diff --git a/src/Umbraco.Web.UI.Client/src/packages/language/app-language-select/app-language-select.element.ts b/src/Umbraco.Web.UI.Client/src/packages/language/app-language-select/app-language-select.element.ts index 6149ff5cc6..91acaa5cdb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/language/app-language-select/app-language-select.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/language/app-language-select/app-language-select.element.ts @@ -33,6 +33,9 @@ export class UmbAppLanguageSelectElement extends UmbLitElement { @state() private _isOpen = false; + @state() + private _disallowedLanguages: Array = []; + #collectionRepository = new UmbLanguageCollectionRepository(this); #appLanguageContext?: UmbAppLanguageContext; #languagesObserver?: any; @@ -41,9 +44,6 @@ export class UmbAppLanguageSelectElement extends UmbLitElement { #currentUserAllowedLanguages?: Array; #currentUserHasAccessToAllLanguages?: boolean; - @state() - _disallowedLanguages: Array = []; - constructor() { super(); @@ -138,24 +138,23 @@ export class UmbAppLanguageSelectElement extends UmbLitElement { id="dropdown-popover" data-mark="app-language-menu" @beforetoggle=${this.#onPopoverToggle}> - - - ${repeat( - this._languages, - (language) => language.unique, - (language) => html` - this.#chooseLanguage(language.unique)}> - ${this.#isLanguageReadOnly(language.unique) ? this.#renderReadOnlyTag(language.unique) : nothing} - - `, - )} + + + ${repeat( + this._languages, + (language) => language.unique, + (language) => html` + this.#chooseLanguage(language.unique)}> + ${this.#isLanguageReadOnly(language.unique) ? this.#renderReadOnlyTag(language.unique) : nothing} + + `, + )} - - + `; } @@ -200,7 +199,7 @@ export class UmbAppLanguageSelectElement extends UmbLitElement { uui-menu-item { color: var(--uui-color-text); - + width: auto; } `, diff --git a/src/Umbraco.Web.UI.Client/src/packages/language/item/langauge-item-ref.element.ts b/src/Umbraco.Web.UI.Client/src/packages/language/item/langauge-item-ref.element.ts index 3a20d16cc8..db639c2800 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/language/item/langauge-item-ref.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/language/item/langauge-item-ref.element.ts @@ -18,7 +18,7 @@ export class UmbLanguageItemRefElement extends UmbLitElement { standalone = false; @state() - _editPath = ''; + private _editPath = ''; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/language-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/language-workspace-editor.element.ts index 8604fb5b4e..60cd13dc28 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/language-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/language-workspace-editor.element.ts @@ -6,7 +6,7 @@ import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; @customElement('umb-language-workspace-editor') export class UmbLanguageWorkspaceEditorElement extends UmbLitElement { @state() - _isNew?: boolean; + private _isNew?: boolean; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/views/language-details-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/views/language-details-workspace-view.element.ts index b5e2674a88..ae8ec3e5da 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/views/language-details-workspace-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/views/language-details-workspace-view.element.ts @@ -14,13 +14,13 @@ import '@umbraco-cms/backoffice/culture'; @customElement('umb-language-details-workspace-view') export class UmbLanguageDetailsWorkspaceViewElement extends UmbLitElement implements UmbWorkspaceViewElement { @state() - _language?: UmbLanguageDetailModel; + private _language?: UmbLanguageDetailModel; @state() - _isDefaultLanguage = false; + private _isDefaultLanguage = false; @state() - _isNew?: boolean; + private _isNew?: boolean; #languageWorkspaceContext?: typeof UMB_LANGUAGE_WORKSPACE_CONTEXT.TYPE; diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/donut-chart/donut-chart.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/donut-chart/donut-chart.element.ts index 4fb4e3bbb4..095b60c80e 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/donut-chart/donut-chart.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/donut-chart/donut-chart.element.ts @@ -13,7 +13,7 @@ import { } from '@umbraco-cms/backoffice/external/lit'; import { clamp } from '@umbraco-cms/backoffice/utils'; -export interface Circle { +interface Circle { color: string; name: string; percent: number; @@ -82,10 +82,10 @@ export class UmbDonutChartElement extends LitElement { private _detailsBox!: HTMLDivElement; @state() - private circles: CircleWithCommands[] = []; + private _circles: CircleWithCommands[] = []; @state() - private viewBox = 100; + private _viewBox = 100; @state() private _posY = 0; @@ -133,7 +133,7 @@ export class UmbDonutChartElement extends LitElement { #printCircles(event: Event | null = null) { this._totalAmount = this._slices.reduce((acc, slice) => acc + slice.amount, 0); event?.stopPropagation(); - this.circles = this.#addCommands( + this._circles = this.#addCommands( this._slices.map((slice) => { return { percent: this.#calculatePercentage(slice.amount), @@ -190,7 +190,7 @@ export class UmbDonutChartElement extends LitElement { #setDetailsBoxData(event: MouseEvent) { const target = event.target as SVGPathElement; const index = target.dataset.index as unknown as number; - const circle = this.circles[index]; + const circle = this._circles[index]; this._detailName = circle.name; this._detailAmount = circle.number; this._detailColor = circle.color; @@ -231,7 +231,7 @@ export class UmbDonutChartElement extends LitElement { ${this.description} - ${this.circles.map( + ${this._circles.map( (circle, i) => svg` + transform="rotate(${circle.offset} ${this._viewBox / 2} ${this._viewBox / 2})"> + transform="rotate(${circle.offset} ${this._viewBox / 2} ${this._viewBox / 2})"> `, )} @@ -259,7 +259,7 @@ export class UmbDonutChartElement extends LitElement { override render() { return html`
- ${this.#renderCircles()} + ${this.#renderCircles()}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/log-viewer-date-range-selector.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/log-viewer-date-range-selector.element.ts index 5333f3a7c1..a776f4499c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/log-viewer-date-range-selector.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/components/log-viewer-date-range-selector.element.ts @@ -1,4 +1,4 @@ -import type { LogViewerDateRange, UmbLogViewerWorkspaceContext } from '../workspace/logviewer-workspace.context.js'; +import type { UmbLogViewerDateRange, UmbLogViewerWorkspaceContext } from '../workspace/logviewer-workspace.context.js'; import { UMB_APP_LOG_VIEWER_CONTEXT } from '../workspace/logviewer-workspace.context-token.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; @@ -31,7 +31,7 @@ export class UmbLogViewerDateRangeSelectorElement extends UmbLitElement { if (!this.#logViewerContext) return; this.observe( this.#logViewerContext.dateRange, - (dateRange: LogViewerDateRange) => { + (dateRange: UmbLogViewerDateRange) => { this._startDate = dateRange.startDate; this._endDate = dateRange.endDate; }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/repository/sources/index.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/repository/sources/index.ts index 1af46a0c81..347bd229d3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/repository/sources/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/repository/sources/index.ts @@ -10,7 +10,7 @@ import type { } from '@umbraco-cms/backoffice/external/backend-api'; import type { UmbDataSourceResponse } from '@umbraco-cms/backoffice/repository'; -export interface LogSearchDataSource { +export interface UmbLogSearchDataSource { getAllSavedSearches({ skip, take, @@ -23,7 +23,7 @@ export interface LogSearchDataSource { postLogViewerSavedSearch({ name, query }: SavedLogSearchResponseModel): Promise>; } -export interface LogMessagesDataSource { +export interface UmbLogMessagesDataSource { getLogViewerLevel({ skip, take, diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/repository/sources/log-viewer.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/repository/sources/log-viewer.server.data.ts index fd47bf682f..27dfae37b8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/repository/sources/log-viewer.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/repository/sources/log-viewer.server.data.ts @@ -1,4 +1,4 @@ -import type { LogMessagesDataSource, LogSearchDataSource } from './index.js'; +import type { UmbLogMessagesDataSource, UmbLogSearchDataSource } from './index.js'; import type { DirectionModel, LogLevelModel, @@ -13,7 +13,7 @@ import { tryExecute } from '@umbraco-cms/backoffice/resources'; * @class UmbLogSearchesServerDataSource * @implements {TemplateDetailDataSource} */ -export class UmbLogSearchesServerDataSource implements LogSearchDataSource { +export class UmbLogSearchesServerDataSource implements UmbLogSearchDataSource { #host: UmbControllerHost; /** @@ -66,9 +66,9 @@ export class UmbLogSearchesServerDataSource implements LogSearchDataSource { /** * A data source for the log messages and levels * @class UmbLogMessagesServerDataSource - * @implements {LogMessagesDataSource} + * @implements {UmbLogMessagesDataSource} */ -export class UmbLogMessagesServerDataSource implements LogMessagesDataSource { +export class UmbLogMessagesServerDataSource implements UmbLogMessagesDataSource { #host: UmbControllerHost; /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/logviewer-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/logviewer-workspace.context.ts index 030360d083..e765508dd2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/logviewer-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/logviewer-workspace.context.ts @@ -16,12 +16,12 @@ import { query } from '@umbraco-cms/backoffice/router'; import type { UmbWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace'; -export type PoolingInterval = 0 | 2000 | 5000 | 10000 | 20000 | 30000; -export interface PoolingCOnfig { +export type UmbPoolingInterval = 0 | 2000 | 5000 | 10000 | 20000 | 30000; +export interface UmbPoolingConfig { enabled: boolean; - interval: PoolingInterval; + interval: UmbPoolingInterval; } -export interface LogViewerDateRange { +export interface UmbLogViewerDateRange { startDate: string; endDate: string; } @@ -57,7 +57,7 @@ export class UmbLogViewerWorkspaceContext extends UmbContextBase implements UmbW return yyyy + '-' + mm + '-' + dd; } - defaultDateRange: LogViewerDateRange = { + defaultDateRange: UmbLogViewerDateRange = { startDate: this.yesterday, endDate: this.today, }; @@ -68,7 +68,7 @@ export class UmbLogViewerWorkspaceContext extends UmbContextBase implements UmbW #logCount = new UmbObjectState(null); logCount = this.#logCount.asObservable(); - #dateRange = new UmbObjectState(this.defaultDateRange); + #dateRange = new UmbObjectState(this.defaultDateRange); dateRange = this.#dateRange.asObservable(); #loggers = new UmbObjectState(null); @@ -93,7 +93,7 @@ export class UmbLogViewerWorkspaceContext extends UmbContextBase implements UmbW logs = this.#logs.asObservablePart((data) => data?.items); logsTotal = this.#logs.asObservablePart((data) => data?.total); - #polling = new UmbObjectState({ enabled: false, interval: 2000 }); + #polling = new UmbObjectState({ enabled: false, interval: 2000 }); polling = this.#polling.asObservable(); #sortingDirection = new UmbBasicState(DirectionModel.DESCENDING); @@ -136,7 +136,7 @@ export class UmbLogViewerWorkspaceContext extends UmbContextBase implements UmbW } this.setLogLevelsFilter(validLogLevels); - const dateRange: LogViewerDateRange = this.getDateRange() as LogViewerDateRange; + const dateRange: UmbLogViewerDateRange = this.getDateRange() as UmbLogViewerDateRange; this.setDateRange({ startDate: searchQuery.startDate || dateRange.startDate, @@ -148,7 +148,7 @@ export class UmbLogViewerWorkspaceContext extends UmbContextBase implements UmbW this.getLogs(); }; - setDateRange(dateRange: Partial) { + setDateRange(dateRange: Partial) { let { startDate, endDate } = dateRange; if (!startDate) startDate = this.defaultDateRange.startDate; @@ -318,7 +318,7 @@ export class UmbLogViewerWorkspaceContext extends UmbContextBase implements UmbW clearInterval(this.#intervalID as number); } - setPollingInterval(interval: PoolingInterval) { + setPollingInterval(interval: UmbPoolingInterval) { this.#polling.update({ interval }); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-log-types-chart.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-log-types-chart.element.ts index ecf92c1b21..fbc61d9b12 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-log-types-chart.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/overview/components/log-viewer-log-types-chart.element.ts @@ -17,10 +17,10 @@ export class UmbLogViewerLogTypesChartElement extends UmbLitElement { } @state() - private _logLevelCount: LogLevelCountsReponseModel | null = null; + private _logLevelCountResponse: LogLevelCountsReponseModel | null = null; @state() - private logLevelCount: [string, number][] = []; + private _logLevelCount: [string, number][] = []; @state() private _logLevelCountFilter: string[] = []; @@ -41,15 +41,15 @@ export class UmbLogViewerLogTypesChartElement extends UmbLitElement { } setLogLevelCount() { - this.logLevelCount = this._logLevelCount - ? Object.entries(this._logLevelCount).filter(([level]) => !this._logLevelCountFilter.includes(level)) + this._logLevelCount = this._logLevelCountResponse + ? Object.entries(this._logLevelCountResponse).filter(([level]) => !this._logLevelCountFilter.includes(level)) : []; } #observeStuff() { if (!this.#logViewerContext) return; this.observe(this.#logViewerContext.logCount, (logLevel) => { - this._logLevelCount = logLevel ?? null; + this._logLevelCountResponse = logLevel ?? null; this.setLogLevelCount(); }); } @@ -61,8 +61,8 @@ export class UmbLogViewerLogTypesChartElement extends UmbLitElement {
    - ${this._logLevelCount - ? Object.keys(this._logLevelCount).map( + ${this._logLevelCountResponse + ? Object.keys(this._logLevelCountResponse).map( (level) => html`
- ${this._logLevelCount - ? this.logLevelCount.map( + ${this._logLevelCountResponse + ? this._logLevelCount.map( ([level, number]) => html` - +
`; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-polling-button.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-polling-button.element.ts index 2254811bed..5bef958d45 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-polling-button.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-polling-button.element.ts @@ -1,6 +1,6 @@ import type { - PoolingCOnfig, - PoolingInterval, + UmbPoolingConfig, + UmbPoolingInterval, UmbLogViewerWorkspaceContext, } from '../../../logviewer-workspace.context.js'; import { UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer-workspace.context-token.js'; @@ -11,11 +11,12 @@ import type { UmbDropdownElement } from '@umbraco-cms/backoffice/components'; @customElement('umb-log-viewer-polling-button') export class UmbLogViewerPollingButtonElement extends UmbLitElement { @query('#polling-rate-dropdown') - private dropdownElement?: UmbDropdownElement; - @state() - private _poolingConfig: PoolingCOnfig = { enabled: false, interval: 0 }; + private _dropdownElement?: UmbDropdownElement; - #pollingIntervals: PoolingInterval[] = [2000, 5000, 10000, 20000, 30000]; + @state() + private _poolingConfig: UmbPoolingConfig = { enabled: false, interval: 0 }; + + #pollingIntervals: UmbPoolingInterval[] = [2000, 5000, 10000, 20000, 30000]; #logViewerContext?: UmbLogViewerWorkspaceContext; @@ -39,15 +40,15 @@ export class UmbLogViewerPollingButtonElement extends UmbLitElement { this.#logViewerContext?.togglePolling(); } - #setPolingInterval = (interval: PoolingInterval) => { + #setPolingInterval = (interval: UmbPoolingInterval) => { this.#logViewerContext?.setPollingInterval(interval); this.#closePoolingPopover(); }; #closePoolingPopover() { - if (this.dropdownElement) { - this.dropdownElement.open = false; + if (this._dropdownElement) { + this._dropdownElement.open = false; } this.#togglePolling(); @@ -65,7 +66,7 @@ export class UmbLogViewerPollingButtonElement extends UmbLitElement { ${this.#pollingIntervals.map( - (interval: PoolingInterval) => + (interval: UmbPoolingInterval) => html` this.#setPolingInterval(interval)}>`, diff --git a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-search-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-search-input.element.ts index 0afb108d8a..55ad9b74e7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-search-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/log-viewer/workspace/views/search/components/log-viewer-search-input.element.ts @@ -31,7 +31,7 @@ export class UmbLogViewerSearchInputElement extends UmbLitElement { private _isQuerySaved = false; // TODO: Revisit this code, to not use RxJS directly: - private inputQuery$ = new Subject(); + #inputQuery$ = new Subject(); #logViewerContext?: UmbLogViewerWorkspaceContext; @@ -43,7 +43,7 @@ export class UmbLogViewerSearchInputElement extends UmbLitElement { this.#logViewerContext?.getSavedSearches(); }); - this.inputQuery$ + this.#inputQuery$ .pipe( tap(() => (this._showLoader = true)), debounceTime(250), @@ -71,11 +71,11 @@ export class UmbLogViewerSearchInputElement extends UmbLitElement { #setQuery(event: Event) { const target = event.target as UUIInputElement; - this.inputQuery$.next(target.value as string); + this.#inputQuery$.next(target.value as string); } #setQueryFromSavedSearch(query: string) { - this.inputQuery$.next(query); + this.#inputQuery$.next(query); this._searchDropdownElement.open = false; } @@ -91,7 +91,7 @@ export class UmbLogViewerSearchInputElement extends UmbLitElement { } #clearQuery() { - this.inputQuery$.next(''); + this.#inputQuery$.next(''); this.#logViewerContext?.setFilterExpression(''); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/dropzone/components/input-dropzone/input-dropzone.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/dropzone/components/input-dropzone/input-dropzone.element.ts index 2d3bd80124..02cf6f90b7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/dropzone/components/input-dropzone/input-dropzone.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/dropzone/components/input-dropzone/input-dropzone.element.ts @@ -97,7 +97,7 @@ export class UmbInputDropzoneElement extends UmbFormControlMixin { diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/import/modal/media-type-import-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/import/modal/media-type-import-modal.element.ts index 2ebb3c35e7..50c521c4cd 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/import/modal/media-type-import-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/entity-actions/import/modal/media-type-import-modal.element.ts @@ -18,7 +18,7 @@ export class UmbMediaTypeImportModalLayout extends UmbModalBaseElement< UmbMediaTypeImportModalData, UmbMediaTypeImportModalValue > { - #MediaTypeImportRepository = new UmbMediaTypeImportRepository(this); + #mediaTypeImportRepository = new UmbMediaTypeImportRepository(this); #temporaryUnique?: string; #fileReader; @@ -54,7 +54,7 @@ export class UmbMediaTypeImportModalLayout extends UmbModalBaseElement< async #onFileImport() { if (!this.#temporaryUnique) return; - const { error } = await this.#MediaTypeImportRepository.requestImport(this.#temporaryUnique); + const { error } = await this.#mediaTypeImportRepository.requestImport(this.#temporaryUnique); if (error) return; this._submitModal(); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/property-editors/media-type-picker/property-editor-ui-media-type-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/property-editors/media-type-picker/property-editor-ui-media-type-picker.element.ts index 1b8808a1b3..4071b604dc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/property-editors/media-type-picker/property-editor-ui-media-type-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/property-editors/media-type-picker/property-editor-ui-media-type-picker.element.ts @@ -22,10 +22,10 @@ export class UmbPropertyEditorUIMediaTypePickerElement extends UmbLitElement imp } @state() - _min = 0; + private _min = 0; @state() - _max = Infinity; + private _max = Infinity; #onChange(event: CustomEvent & { target: UmbInputMediaTypeElement }) { this.value = event.target.value; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/property-type/media-type-property-type-item-ref.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/property-type/media-type-property-type-item-ref.element.ts index 76bb1176a5..443cd0b777 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/property-type/media-type-property-type-item-ref.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/property-type/media-type-property-type-item-ref.element.ts @@ -18,7 +18,7 @@ export class UmbMediaTypePropertyTypeItemRefElement extends UmbLitElement { standalone = false; @state() - _editPath = ''; + private _editPath = ''; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/audit-log/info-app/media-history-workspace-info-app.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/audit-log/info-app/media-history-workspace-info-app.element.ts index 8b55dd976a..a728e44c10 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/audit-log/info-app/media-history-workspace-info-app.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/audit-log/info-app/media-history-workspace-info-app.element.ts @@ -13,10 +13,10 @@ import { UmbUserItemRepository } from '@umbraco-cms/backoffice/user'; @customElement('umb-media-history-workspace-info-app') export class UmbMediaHistoryWorkspaceInfoAppElement extends UmbLitElement { @state() - _currentPageNumber = 1; + private _currentPageNumber = 1; @state() - _totalPages = 1; + private _totalPages = 1; @state() private _items: Array = []; @@ -144,9 +144,9 @@ export class UmbMediaHistoryWorkspaceInfoAppElement extends UmbLitElement { .current=${this._currentPageNumber} .total=${this._totalPages} firstlabel=${this.localize.term('general_first')} - previouslabel=${this.localize.term('general_previous')} - nextlabel=${this.localize.term('general_next')} - lastlabel=${this.localize.term('general_last')} + previouslabel=${this.localize.term('general_previous')} + nextlabel=${this.localize.term('general_next')} + lastlabel=${this.localize.term('general_last')} @change=${this.#onPageChange}> ` : nothing} diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper-focus-setter.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper-focus-setter.element.ts index 7e18a63eff..2ba70071d1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper-focus-setter.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper-focus-setter.element.ts @@ -33,7 +33,7 @@ export class UmbImageCropperFocusSetterElement extends UmbLitElement { private _isDraggingGridHandle = false; @state() - private coords = { x: 0, y: 0 }; + private _coords = { x: 0, y: 0 }; @property({ attribute: false }) set focalPoint(value) { @@ -133,8 +133,8 @@ export class UmbImageCropperFocusSetterElement extends UmbLitElement { if (!this.imageElement) return; // Init x and y coords from half of rendered image size, which is equavalient to focal point { left: 0.5, top: 0.5 }. - this.coords.x = this.imageElement?.clientWidth / 2; - this.coords.y = this.imageElement.clientHeight / 2; + this._coords.x = this.imageElement?.clientWidth / 2; + this._coords.y = this.imageElement.clientHeight / 2; } #handleGridDrag(event: PointerEvent) { @@ -162,8 +162,8 @@ export class UmbImageCropperFocusSetterElement extends UmbLitElement { // check if coordinates are not NaN (can happen when dragging outside of the grid) if (isNaN(x) || isNaN(y)) return; - this.coords.x = x; - this.coords.y = y; + this._coords.x = x; + this._coords.y = y; this.#setFocalPoint(x, y, width, height); }, @@ -209,26 +209,26 @@ export class UmbImageCropperFocusSetterElement extends UmbLitElement { if (event.key === 'ArrowLeft') { event.preventDefault(); - this.coords.x = clamp(this.coords.x - increment, 0, width); - this.#setFocalPoint(this.coords.x, this.coords.y, width, height); + this._coords.x = clamp(this._coords.x - increment, 0, width); + this.#setFocalPoint(this._coords.x, this._coords.y, width, height); } if (event.key === 'ArrowRight') { event.preventDefault(); - this.coords.x = clamp(this.coords.x + increment, 0, width); - this.#setFocalPoint(this.coords.x, this.coords.y, width, height); + this._coords.x = clamp(this._coords.x + increment, 0, width); + this.#setFocalPoint(this._coords.x, this._coords.y, width, height); } if (event.key === 'ArrowUp') { event.preventDefault(); - this.coords.y = clamp(this.coords.y - increment, 0, height); - this.#setFocalPoint(this.coords.x, this.coords.y, width, height); + this._coords.y = clamp(this._coords.y - increment, 0, height); + this.#setFocalPoint(this._coords.x, this._coords.y, width, height); } if (event.key === 'ArrowDown') { event.preventDefault(); - this.coords.y = clamp(this.coords.y + increment, 0, height); - this.#setFocalPoint(this.coords.x, this.coords.y, width, height); + this._coords.y = clamp(this._coords.y + increment, 0, height); + this.#setFocalPoint(this._coords.x, this._coords.y, width, height); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper.element.ts index c3f4546487..1bce839383 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-image-cropper/image-cropper.element.ts @@ -2,7 +2,7 @@ import type { UmbImageCropperCrop, UmbImageCropperFocalPoint } from './types.js' import { UmbImageCropChangeEvent } from './crop-change.event.js'; import { calculateExtrapolatedValue, clamp, inverseLerp, lerp } from '@umbraco-cms/backoffice/utils'; import type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit'; -import { customElement, property, query, state, css, html } from '@umbraco-cms/backoffice/external/lit'; +import { customElement, property, query, css, html } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @customElement('umb-image-cropper') @@ -19,15 +19,14 @@ export class UmbImageCropperElement extends UmbLitElement { }; @property({ type: Number }) get zoom() { - return this._zoom; + return this.#zoom; } set zoom(value) { // Calculate the delta value - the value the zoom has changed b - const delta = value - this._zoom; + const delta = value - this.#zoom; this.#updateImageScale(delta); } - - @state() _zoom = 0; + #zoom = 0; #VIEWPORT_PADDING = 50 as const; #MAX_SCALE_FACTOR = 4 as const; @@ -41,7 +40,7 @@ export class UmbImageCropperElement extends UmbLitElement { #mouseOffsetY = 0; get #getImageScale() { - return lerp(this.#minImageScale, this.#maxImageScale, this._zoom); + return lerp(this.#minImageScale, this.#maxImageScale, this.#zoom); } override connectedCallback() { @@ -179,12 +178,12 @@ export class UmbImageCropperElement extends UmbLitElement { const currentScale = Math.max(currentScaleX, currentScaleY); // Calculate the zoom level based on the current scale // This finds the alpha value in the range of min and max scale. - this._zoom = inverseLerp(this.#minImageScale, this.#maxImageScale, currentScale); + this.#zoom = inverseLerp(this.#minImageScale, this.#maxImageScale, currentScale); } #updateImageScale(amount: number, mouseX?: number, mouseY?: number) { this.#oldImageScale = this.#getImageScale; - this._zoom = clamp(this._zoom + amount, 0, 1); + this.#zoom = clamp(this.zoom + amount, 0, 1); const newImageScale = this.#getImageScale; const mask = this.maskElement.getBoundingClientRect(); @@ -325,7 +324,7 @@ export class UmbImageCropperElement extends UmbLitElement {
` : nothing}`} `; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-entity-picker/property-editor-ui-media-entity-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-entity-picker/property-editor-ui-media-entity-picker.element.ts index d69c9262a7..a492c79ac7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-entity-picker/property-editor-ui-media-entity-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/media-entity-picker/property-editor-ui-media-entity-picker.element.ts @@ -31,10 +31,10 @@ export class UmbPropertyEditorUIMediaEntityPickerElement extends UmbLitElement i readonly = false; @state() - _min: number = 0; + private _min: number = 0; @state() - _max: number = Infinity; + private _max: number = Infinity; #onChange(event: CustomEvent & { target: UmbInputMediaElement }) { this.value = event.target.value; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/upload-field/property-editor-ui-upload-field.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/upload-field/property-editor-ui-upload-field.element.ts index 168b2b0fc2..3390df2062 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/upload-field/property-editor-ui-upload-field.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/upload-field/property-editor-ui-upload-field.element.ts @@ -1,5 +1,5 @@ import type { UmbInputUploadFieldElement } from '../../components/input-upload-field/input-upload-field.element.js'; -import type { MediaValueType } from './types.js'; +import type { UmbMediaValueType } from './types.js'; import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; import type { UmbPropertyEditorUiElement, @@ -14,7 +14,7 @@ import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; @customElement('umb-property-editor-ui-upload-field') export class UmbPropertyEditorUIUploadFieldElement extends UmbLitElement implements UmbPropertyEditorUiElement { @property({ type: Object }) - value: MediaValueType = {}; + value: UmbMediaValueType = {}; @state() private _fileExtensions?: Array; diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/upload-field/types.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/upload-field/types.ts index dd44a880f7..da498b54ff 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/upload-field/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/property-editors/upload-field/types.ts @@ -1,4 +1,15 @@ -export interface MediaValueType { +/** + * Defines the structure of a media value type in Umbraco. + */ +export interface UmbMediaValueType { temporaryFileId?: string | null; src?: string; } + +/** + * @deprecated Use `UmbMediaValueType` instead. This will be removed in Umbraco 18. + */ +// eslint-disable-next-line @typescript-eslint/no-empty-object-type, @typescript-eslint/naming-convention +export interface MediaValueType extends UmbMediaValueType { + // Left empty +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts index 172e15774b..93e71be46f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts @@ -10,14 +10,14 @@ import type { UmbRoute, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/r export class UmbMediaWorkspaceEditorElement extends UmbLitElement { // // TODO: Refactor: when having a split view/variants context token, we can rename the split view/variants component to a generic and make this component generic as well. [NL] - private splitViewElement = new UmbMediaWorkspaceSplitViewElement(); + private _splitViewElement = new UmbMediaWorkspaceSplitViewElement(); #workspaceContext?: typeof UMB_MEDIA_WORKSPACE_CONTEXT.TYPE; #variants?: Array; #isForbidden = false; @state() - _routes?: Array; + private _routes?: Array; constructor() { super(); @@ -68,7 +68,7 @@ export class UmbMediaWorkspaceEditorElement extends UmbLitElement { routes.push({ // TODO: When implementing Segments, be aware if using the unique is URL Safe... [NL] path: variantA.unique + '_&_' + variantB.unique, - component: this.splitViewElement, + component: this._splitViewElement, setup: (_component, info) => { // Set split view/active info.. const variantSplit = info.match.fragments.consumed.split('_&_'); @@ -85,7 +85,7 @@ export class UmbMediaWorkspaceEditorElement extends UmbLitElement { routes.push({ // TODO: When implementing Segments, be aware if using the unique is URL Safe... [NL] path: variant.unique, - component: this.splitViewElement, + component: this._splitViewElement, setup: (_component, info) => { // cause we might come from a split-view, we need to reset index 1. this.#workspaceContext?.splitView.removeActiveVariant(1); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-split-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-split-view.element.ts index 6c0d040262..ba25bcaf1d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-split-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-split-view.element.ts @@ -1,7 +1,7 @@ import { UMB_MEDIA_WORKSPACE_CONTEXT } from './media-workspace.context-token.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, nothing, customElement, state, repeat, ifDefined } from '@umbraco-cms/backoffice/external/lit'; -import type { ActiveVariant } from '@umbraco-cms/backoffice/workspace'; +import type { UmbActiveVariant } from '@umbraco-cms/backoffice/workspace'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @customElement('umb-media-workspace-split-view') @@ -10,10 +10,10 @@ export class UmbMediaWorkspaceSplitViewElement extends UmbLitElement { private _workspaceContext?: typeof UMB_MEDIA_WORKSPACE_CONTEXT.TYPE; @state() - _variants?: Array; + private _variants?: Array; @state() - _icon?: string; + private _icon?: string; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/property-editor/member-group-picker/property-editor-ui-member-group-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/property-editor/member-group-picker/property-editor-ui-member-group-picker.element.ts index 2ec6cce2a2..7c52689ce3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/property-editor/member-group-picker/property-editor-ui-member-group-picker.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/property-editor/member-group-picker/property-editor-ui-member-group-picker.element.ts @@ -34,10 +34,10 @@ export class UmbPropertyEditorUIMemberGroupPickerElement extends UmbLitElement i readonly = false; @state() - _min = 0; + private _min = 0; @state() - _max = Infinity; + private _max = Infinity; #onChange(event: CustomEvent & { target: UmbInputMemberGroupElement }) { this.value = event.target.value; diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/property-type/member-type-property-type-item-ref.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/property-type/member-type-property-type-item-ref.element.ts index e55489b82a..c9a9b76e78 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-type/property-type/member-type-property-type-item-ref.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-type/property-type/member-type-property-type-item-ref.element.ts @@ -18,7 +18,7 @@ export class UmbMemberTypePropertyTypeItemRefElement extends UmbLitElement { standalone = false; @state() - _editPath = ''; + private _editPath = ''; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/item/member-item-ref.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/item/member-item-ref.element.ts index a097ea138e..e28ad24ee8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/item/member-item-ref.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/item/member-item-ref.element.ts @@ -28,10 +28,10 @@ export class UmbMemberItemRefElement extends UmbLitElement { standalone = false; @state() - _editPath = ''; + private _editPath = ''; @state() - _userHasSectionAccess = false; + private _userHasSectionAccess = false; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member/member-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member/member-workspace-editor.element.ts index 51d3b2a18a..b75d75576a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member/member-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member/member-workspace-editor.element.ts @@ -10,7 +10,7 @@ import type { UmbRoute, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/r export class UmbMemberWorkspaceEditorElement extends UmbLitElement { // // TODO: Refactor: when having a split view/variants context token, we can rename the split view/variants component to a generic and make this component generic as well. [NL] - private splitViewElement = new UmbMemberWorkspaceSplitViewElement(); + private _splitViewElement = new UmbMemberWorkspaceSplitViewElement(); #workspaceContext?: typeof UMB_MEMBER_WORKSPACE_CONTEXT.TYPE; @@ -64,7 +64,7 @@ export class UmbMemberWorkspaceEditorElement extends UmbLitElement { routes.push({ // TODO: When implementing Segments, be aware if using the unique is URL Safe... [NL] path: variantA.unique + '_&_' + variantB.unique, - component: this.splitViewElement, + component: this._splitViewElement, setup: (_component, info) => { // Set split view/active info.. const variantSplit = info.match.fragments.consumed.split('_&_'); @@ -81,7 +81,7 @@ export class UmbMemberWorkspaceEditorElement extends UmbLitElement { routes.push({ // TODO: When implementing Segments, be aware if using the unique is URL Safe... [NL] path: variant.unique, - component: this.splitViewElement, + component: this._splitViewElement, setup: (_component, info) => { // cause we might come from a split-view, we need to reset index 1. this.#workspaceContext?.splitView.removeActiveVariant(1); diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member/member-workspace-split-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member/member-workspace-split-view.element.ts index 1bd458c98e..0fce5fc05a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member/member-workspace-split-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/workspace/member/member-workspace-split-view.element.ts @@ -2,7 +2,7 @@ import { UMB_MEMBER_ROOT_WORKSPACE_PATH } from '../../paths.js'; import { UMB_MEMBER_WORKSPACE_CONTEXT } from './member-workspace.context-token.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, nothing, customElement, state, repeat, ifDefined } from '@umbraco-cms/backoffice/external/lit'; -import type { ActiveVariant } from '@umbraco-cms/backoffice/workspace'; +import type { UmbActiveVariant } from '@umbraco-cms/backoffice/workspace'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @customElement('umb-member-workspace-split-view') @@ -11,10 +11,10 @@ export class UmbMemberWorkspaceSplitViewElement extends UmbLitElement { private _workspaceContext?: typeof UMB_MEMBER_WORKSPACE_CONTEXT.TYPE; @state() - _variants?: Array; + private _variants?: Array; @state() - _icon?: string; + private _icon?: string; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/models-builder/models-builder-dashboard.element.ts b/src/Umbraco.Web.UI.Client/src/packages/models-builder/models-builder-dashboard.element.ts index 70569835fc..80660ee69c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/models-builder/models-builder-dashboard.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/models-builder/models-builder-dashboard.element.ts @@ -74,7 +74,7 @@ export class UmbModelsBuilderDashboardElement extends UmbLitElement { The ModelsMode is '${this._modelsBuilder.mode}'. ${this.renderModelsMode()} ` : nothing} - ${this.renderList()} + ${this._renderList()}

@@ -99,7 +99,7 @@ export class UmbModelsBuilderDashboardElement extends UmbLitElement { `; } - private renderList() { + private _renderList() { if (this._modelsBuilder?.mode !== ModelsModeModel.NOTHING) { return html`${this._modelsBuilder?.modelsNamespace ? html`

  • The models namespace is ${this._modelsBuilder.modelsNamespace}.
  • ` diff --git a/src/Umbraco.Web.UI.Client/src/packages/multi-url-picker/components/input-multi-url/input-multi-url.element.ts b/src/Umbraco.Web.UI.Client/src/packages/multi-url-picker/components/input-multi-url/input-multi-url.element.ts index 5b9116e45d..b3a6e4a932 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/multi-url-picker/components/input-multi-url/input-multi-url.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/multi-url-picker/components/input-multi-url/input-multi-url.element.ts @@ -174,10 +174,10 @@ export class UmbInputMultiUrlElement extends UUIFormControlMixin(UmbLitElement, private _modalRoute?: UmbModalRouteBuilder; @state() - _resolvedLinkNames: Array<{ unique: string; name: string }> = []; + private _resolvedLinkNames: Array<{ unique: string; name: string }> = []; @state() - _resolvedLinkUrls: Array<{ unique: string; url: string }> = []; + private _resolvedLinkUrls: Array<{ unique: string; url: string }> = []; #linkPickerModal; diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package-repo/workspace/workspace-package.element.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package-repo/workspace/workspace-package.element.ts index b9bb481576..43af538255 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package-repo/workspace/workspace-package.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package-repo/workspace/workspace-package.element.ts @@ -8,7 +8,7 @@ export class UmbWorkspacePackageElement extends UmbLitElement { entityId?: string; @state() - _package?: any; + private _package?: any; override connectedCallback(): void { super.connectedCallback(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/sources/package.server.data.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/sources/package.server.data.ts index 9458a605cd..e4af26be48 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/sources/package.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/package/repository/sources/package.server.data.ts @@ -8,25 +8,25 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; /** * Data source for packages from the server - + */ export class UmbPackageServerDataSource { - constructor(private readonly host: UmbControllerHost) {} + constructor(private readonly _host: UmbControllerHost) {} async deleteCreatedPackage(unique: string) { - return await tryExecute(this.host, PackageService.deletePackageCreatedById({ path: { id: unique } })); + return await tryExecute(this._host, PackageService.deletePackageCreatedById({ path: { id: unique } })); } getCreatedPackage(unique: string) { - return tryExecute(this.host, PackageService.getPackageCreatedById({ path: { id: unique } })); + return tryExecute(this._host, PackageService.getPackageCreatedById({ path: { id: unique } })); } getCreatedPackages({ skip, take }: { skip: number; take: number }) { - return tryExecute(this.host, PackageService.getPackageCreated({ query: { skip, take } })); + return tryExecute(this._host, PackageService.getPackageCreated({ query: { skip, take } })); } getCreatePackageDownload(unique: string) { - return tryExecute(this.host, PackageService.getPackageCreatedByIdDownload({ path: { id: unique } })); + return tryExecute(this._host, PackageService.getPackageCreatedByIdDownload({ path: { id: unique } })); } /** @@ -34,7 +34,7 @@ export class UmbPackageServerDataSource { * @memberof UmbPackageServerDataSource */ getRootItems() { - return tryExecute(this.host, ManifestService.getManifestManifest()); + return tryExecute(this._host, ManifestService.getManifestManifest()); } /** @@ -42,7 +42,7 @@ export class UmbPackageServerDataSource { * @memberof UmbPackageServerDataSource */ getPackageConfiguration() { - return tryExecute(this.host, PackageService.getPackageConfiguration()); + return tryExecute(this._host, PackageService.getPackageConfiguration()); } /** @@ -50,14 +50,14 @@ export class UmbPackageServerDataSource { * @memberof UmbPackageServerDataSource */ getPackageMigrations() { - return tryExecute(this.host, PackageService.getPackageMigrationStatus({ query: { skip: 0, take: 9999 } })); + return tryExecute(this._host, PackageService.getPackageMigrationStatus({ query: { skip: 0, take: 9999 } })); } async saveCreatedPackage(body: CreatePackageRequestModel) { - return await tryExecute(this.host, PackageService.postPackageCreated({ body })); + return await tryExecute(this._host, PackageService.postPackageCreated({ body })); } async updateCreatedPackage(id: string, body: UpdatePackageRequestModelWritable) { - return await tryExecute(this.host, PackageService.putPackageCreatedById({ path: { id }, body })); + return await tryExecute(this._host, PackageService.putPackageCreatedById({ path: { id }, body })); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/packages/types.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/types.ts index b3eb720c52..b0b8c77420 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/packages/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/packages/types.ts @@ -2,7 +2,18 @@ import type { ManifestResponseModel } from '@umbraco-cms/backoffice/external/bac export type UmbPackage = ManifestResponseModel; -export type PackageManifestResponse = UmbPackage[]; +/** + * Represents the response from the package manifest endpoint. + * This type is used to define the structure of the package manifest response. + */ +export type UmbPackageManifestResponse = UmbPackage[]; + +/** + * Represents the response from the package manifest endpoint. + * @deprecated Use `UmbPackageManifestResponse` instead. This will be removed in Umbraco 18. + */ +// eslint-disable-next-line @typescript-eslint/naming-convention +export type PackageManifestResponse = UmbPackageManifestResponse; export type UmbPackageWithMigrationStatus = UmbPackage & { hasPendingMigrations: boolean; diff --git a/src/Umbraco.Web.UI.Client/src/packages/performance-profiling/dashboard-performance-profiling.element.ts b/src/Umbraco.Web.UI.Client/src/packages/performance-profiling/dashboard-performance-profiling.element.ts index b850464cb9..84cb993113 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/performance-profiling/dashboard-performance-profiling.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/performance-profiling/dashboard-performance-profiling.element.ts @@ -45,7 +45,7 @@ export class UmbDashboardPerformanceProfilingElement extends UmbLitElement { } } - private renderProfilingStatus() { + #renderProfilingStatus() { return this._isDebugMode ? html` ${unsafeHTML(this.localize.term('profiling_performanceProfilingDescription'))} @@ -67,7 +67,9 @@ export class UmbDashboardPerformanceProfilingElement extends UmbLitElement { override render() { return html` - ${typeof this._profilingStatus === 'undefined' ? html`` : this.renderProfilingStatus()} + ${typeof this._profilingStatus === 'undefined' + ? html`` + : this.#renderProfilingStatus()} `; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/property-editors/content-picker/config/source-content/input-content-picker-source.element.ts b/src/Umbraco.Web.UI.Client/src/packages/property-editors/content-picker/config/source-content/input-content-picker-source.element.ts index 9ae2b22d53..ce42a1c628 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/property-editors/content-picker/config/source-content/input-content-picker-source.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/property-editors/content-picker/config/source-content/input-content-picker-source.element.ts @@ -43,7 +43,7 @@ export class UmbInputContentPickerSourceElement extends UUIFormControlMixin(UmbL dynamicRoot?: UmbContentPickerDynamicRoot; @state() - _options: Array
    - ${this.renderSearchResults()} + ${this.#renderSearchResults()} `; } // Find the field named 'nodeName' and return its value if it exists in the fields array - private getSearchResultNodeName(searchResult: UmbSearchResultModel): string { + #getSearchResultNodeName(searchResult: UmbSearchResultModel): string { const nodeNameField = searchResult.fields?.find((field) => field.name?.toUpperCase() === 'NODENAME'); return nodeNameField?.values?.join(', ') ?? ''; } @@ -184,7 +184,7 @@ export class UmbDashboardExamineSearcherElement extends UmbLitElement { this._onSearch(); } - private renderSearchResults() { + #renderSearchResults() { if (this._searchLoading) return html``; if (!this._searchResults) return nothing; if (!this._searchResults.length) { @@ -201,55 +201,55 @@ export class UmbDashboardExamineSearcherElement extends UmbLitElement { this._totalPages, )}
    -
    - - - - Score - ${this.localize.term('general_id')} - ${this.localize.term('general_name')} - ${this.localize.term('examineManagement_fields')} - ${this.renderHeadCells()} - - ${this._searchResults?.map((rowData) => { - const indexType = rowData.fields?.find((field) => field.name === '__IndexType')?.values?.join(', ') ?? ''; - this.#entityType = this.#getEntityTypeFromIndexType(indexType); - const unique = rowData.fields?.find((field) => field.name === '__Key')?.values?.join(', ') ?? ''; +
    + + + + Score + ${this.localize.term('general_id')} + ${this.localize.term('general_name')} + ${this.localize.term('examineManagement_fields')} + ${this.renderHeadCells()} + + ${this._searchResults?.map((rowData) => { + const indexType = rowData.fields?.find((field) => field.name === '__IndexType')?.values?.join(', ') ?? ''; + this.#entityType = this.#getEntityTypeFromIndexType(indexType); + const unique = rowData.fields?.find((field) => field.name === '__Key')?.values?.join(', ') ?? ''; - return html` - ${rowData.score} - ${rowData.id} - - - ${this.getSearchResultNodeName(rowData)} - - - - this.#onFieldViewClick(rowData)}> - ${rowData.fields ? Object.keys(rowData.fields).length : ''} - ${this.localize.term('examineManagement_fields')} - - - ${rowData.fields ? this.renderBodyCells(rowData.fields) : ''} - `; - })} - - - -
    + return html` + ${rowData.score} + ${rowData.id} + + + ${this.#getSearchResultNodeName(rowData)} + + + + this.#onFieldViewClick(rowData)}> + ${rowData.fields ? Object.keys(rowData.fields).length : ''} + ${this.localize.term('examineManagement_fields')} + + + ${rowData.fields ? this.renderBodyCells(rowData.fields) : ''} + `; + })} +
    +
    + +
    = []; @state() - _currentGlobalSearcher?: GlobalSearchers; + private _currentGlobalSearcher?: GlobalSearchers; @state() - _loading: boolean = false; + private _loading: boolean = false; #searchItemNavIndex = 0; diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/components/tags-input/tags-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/components/tags-input/tags-input.element.ts index b56d245007..9efb1b6962 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/components/tags-input/tags-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/components/tags-input/tags-input.element.ts @@ -23,16 +23,16 @@ export class UmbTagsInputElement extends UUIFormControlMixin(UmbLitElement, '') @property({ type: String }) culture?: string | null; - _items: string[] = []; @property({ type: Array }) public set items(newTags: string[]) { const newItems = newTags.filter((x) => x !== ''); - this._items = newItems; - super.value = this._items.join(','); + this.#items = newItems; + super.value = this.#items.join(','); } public get items(): string[] { - return this._items; + return this.#items; } + #items: string[] = []; /** * Sets the input to readonly mode, meaning value cannot be changed but still able to read and select its content. @@ -220,7 +220,7 @@ export class UmbTagsInputElement extends UUIFormControlMixin(UmbLitElement, '') #renderTagOptions() { if (!this._currentInput.length || !this._matches.length) return nothing; - const matchfilter = this._matches.filter((tag) => tag.text !== this._items.find((x) => x === tag.text)); + const matchfilter = this._matches.filter((tag) => tag.text !== this.#items.find((x) => x === tag.text)); if (!matchfilter.length) return; return html`
    diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts index 2229bb8409..978b78f790 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/entity-actions/create/snippet-modal/create-from-snippet-modal.ts @@ -16,7 +16,7 @@ export class UmbPartialViewCreateFromSnippetModalElement extends UmbModalBaseEle string > { @state() - _snippets: Array = []; + private _snippets: Array = []; #getCreateHref(snippet: PartialViewSnippetItemResponseModel) { return `section/settings/workspace/partial-view/create/parent/${this.data?.parent.entityType}/${ diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/property-editors/stylesheet-picker/property-editor-ui-stylesheet-picker.stories.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/property-editors/stylesheet-picker/property-editor-ui-stylesheet-picker.stories.ts index 5304fcd1a8..c0ed33c86f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/property-editors/stylesheet-picker/property-editor-ui-stylesheet-picker.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/property-editors/stylesheet-picker/property-editor-ui-stylesheet-picker.stories.ts @@ -1,21 +1,22 @@ import { umbDataTypeMockDb } from '../../../../../mocks/data/data-type/data-type.db.js'; -import { html } from '@umbraco-cms/backoffice/external/lit'; -import type { Meta } from '@storybook/web-components-vite'; +import type UmbPropertyEditorUIStylesheetPickerElement from './property-editor-ui-stylesheet-picker.element.js'; +import type { Meta, StoryObj } from '@storybook/web-components-vite'; import type { UmbDataTypeDetailModel } from '@umbraco-cms/backoffice/data-type'; import './property-editor-ui-stylesheet-picker.element.js'; const dataTypeData = umbDataTypeMockDb.read('dt-richTextEditor') as unknown as UmbDataTypeDetailModel; -export default { +const meta: Meta = { title: 'Extension Type/Property Editor UI/Stylesheet Picker', component: 'umb-property-editor-ui-stylesheet-picker', id: 'umb-property-editor-ui-stylesheet-picker', -} as Meta; - -export const Docs = ({ value }: any) => - html``; - -Docs.args = { - value: dataTypeData?.values?.find((x) => x.alias === 'stylesheets')?.value ?? [], + args: { + value: dataTypeData?.values?.find((x) => x.alias === 'stylesheets')?.value ?? [], + }, }; + +export default meta; +type Story = StoryObj; + +export const Docs: Story = {}; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/global-components/input-template/input-template.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/global-components/input-template/input-template.element.ts index 4350494327..e1ba049486 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/global-components/input-template/input-template.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/global-components/input-template/input-template.element.ts @@ -51,29 +51,28 @@ export class UmbInputTemplateElement extends UUIFormControlMixin(UmbLitElement, @property({ type: Array }) public set selection(newKeys: Array | undefined) { - this._selection = newKeys ?? []; + this.#selection = newKeys ?? []; this.#observePickedTemplates(); } public get selection() { - return this._selection; + return this.#selection; } - _selection: Array = []; + #selection: Array = []; - _defaultUnique = ''; @property({ type: String }) public set defaultUnique(newId: string) { - this._defaultUnique = newId; + this.#defaultUnique = newId; super.value = newId; } public get defaultUnique(): string { - return this._defaultUnique; + return this.#defaultUnique; } - - private _templateItemRepository = new UmbTemplateItemRepository(this); + #defaultUnique = ''; @state() - _pickedTemplates: UmbTemplateItemModel[] = []; + private _pickedTemplates: UmbTemplateItemModel[] = []; + #templateItemRepository = new UmbTemplateItemRepository(this); #templatePath = ''; constructor() { @@ -91,7 +90,7 @@ export class UmbInputTemplateElement extends UUIFormControlMixin(UmbLitElement, async #observePickedTemplates() { this.observe( - (await this._templateItemRepository?.requestItems(this._selection))?.asObservable?.(), + (await this.#templateItemRepository?.requestItems(this.#selection))?.asObservable?.(), (data) => { const oldValue = this._pickedTemplates; this._pickedTemplates = data ?? []; @@ -127,7 +126,7 @@ export class UmbInputTemplateElement extends UUIFormControlMixin(UmbLitElement, const value = await umbOpenModal(this, UMB_TEMPLATE_PICKER_MODAL, { data: { multiple: true, - pickableFilter: (template) => template.unique !== null && !this._selection.includes(template.unique), + pickableFilter: (template) => template.unique !== null && !this.#selection.includes(template.unique), }, }).catch(() => undefined); @@ -151,7 +150,7 @@ export class UmbInputTemplateElement extends UUIFormControlMixin(UmbLitElement, In current backoffice we just prevent deleting a default when there are other templates. But if its the only one its okay. This is a weird experience, so we should make something that makes more sense. BTW. its weird cause the damage of removing the default template is equally bad when there is one or more templates. */ - this.selection = this._selection.filter((x) => x !== unique); + this.selection = this.#selection.filter((x) => x !== unique); // If the default template is removed, set the first picked template as default or reset defaultUnique. if (unique === this.defaultUnique) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/global-components/template-card/template-card.element.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/global-components/template-card/template-card.element.ts index 10b94475bd..3fbcc03cff 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/global-components/template-card/template-card.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/global-components/template-card/template-card.element.ts @@ -18,14 +18,15 @@ export class UmbTemplateCardElement extends UUIFormControlMixin(UmbLitElement, ' @property({ type: Boolean, reflect: true }) default = false; - _id = ''; + #id = ''; + @property({ type: String }) public override set id(newId: string) { - this._id = newId; + this.#id = newId; super.value = newId; } public override get id() { - return this._id; + return this.#id; } protected override getFormElement() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/types.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/types.ts index 46069918b5..e5ecfafc79 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/types.ts @@ -1,9 +1,11 @@ +// eslint-disable-next-line @typescript-eslint/naming-convention export enum CodeSnippetType { partialView = 'partialView', dictionaryItem = 'dictionaryItem', pageField = 'pageField', } +// eslint-disable-next-line @typescript-eslint/naming-convention export enum TemplatingSectionType { renderChildTemplate = 'RenderChildTemplate', renderANamedSection = 'RenderANamedSection', diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/conditions/group-id/group-id.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/conditions/group-id/group-id.condition.ts index 7e3c38db4b..1518cdc4aa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/conditions/group-id/group-id.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/conditions/group-id/group-id.condition.ts @@ -13,11 +13,11 @@ export class UmbCurrentUserGroupCondition super(host, args); this.consumeContext(UMB_CURRENT_USER_CONTEXT, (context) => { - this.observe(context?.currentUser, this.observeCurrentUser, 'umbCurrentUserGroupConditionObserver'); + this.observe(context?.currentUser, this.#observeCurrentUser, 'umbCurrentUserGroupConditionObserver'); }); } - private observeCurrentUser = async (currentUser: UmbCurrentUserModel) => { + #observeCurrentUser = async (currentUser: UmbCurrentUserModel) => { // Idea: This part could be refactored to become a shared util, to align these matching feature across conditions. [NL] // Notice doing so it would be interesting to invistigate if it makes sense to combine some of these properties, to enable more specific matching. (But maybe it is only relevant for the combination of match + oneOf) [NL] const { match, oneOf, allOf, noneOf } = this.config; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/external-login/modals/external-login-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/external-login/modals/external-login-modal.element.ts index daef3e32a4..5f8d2bbc35 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/external-login/modals/external-login-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/external-login/modals/external-login-modal.element.ts @@ -22,7 +22,7 @@ export class UmbCurrentUserExternalLoginModalElement extends UmbLitElement { modalContext?: UmbModalContext; @state() - _items: Array = []; + private _items: Array = []; #currentUserRepository = new UmbCurrentUserRepository(this); #notificationContext?: typeof UMB_NOTIFICATION_CONTEXT.TYPE; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/modals/current-user-mfa-disable/current-user-mfa-disable-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/modals/current-user-mfa-disable/current-user-mfa-disable-modal.element.ts index 2d2cce5d46..dd93ee911c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/modals/current-user-mfa-disable/current-user-mfa-disable-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/modals/current-user-mfa-disable/current-user-mfa-disable-modal.element.ts @@ -16,10 +16,10 @@ export class UmbCurrentUserMfaDisableModalElement extends UmbModalBaseElement< #notificationContext?: typeof UMB_NOTIFICATION_CONTEXT.TYPE; @state() - _buttonState?: UUIButtonState; + private _buttonState?: UUIButtonState; @query('#code') - _codeInput!: HTMLInputElement; + private _codeInput!: HTMLInputElement; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/modals/current-user-mfa/current-user-mfa-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/modals/current-user-mfa/current-user-mfa-modal.element.ts index 7c7fa88ced..5df228dfce 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/modals/current-user-mfa/current-user-mfa-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/modals/current-user-mfa/current-user-mfa-modal.element.ts @@ -20,7 +20,7 @@ export class UmbCurrentUserMfaModalElement extends UmbLitElement { modalContext?: UmbModalContext; @state() - _items: Array = []; + private _items: Array = []; #currentUserRepository = new UmbCurrentUserRepository(this); diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/components/user-group-table-sections-column-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/components/user-group-table-sections-column-layout.element.ts index 9b5fa4d0f6..6f43b9ae1f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/components/user-group-table-sections-column-layout.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/collection/components/user-group-table-sections-column-layout.element.ts @@ -16,11 +16,11 @@ export class UmbUserGroupTableSectionsColumnLayoutElement extends UmbLitElement override updated(changedProperties: Map) { if (changedProperties.has('value')) { - this.observeSectionNames(); + this._observeSectionNames(); } } - private observeSectionNames() { + private _observeSectionNames() { this.observe( umbExtensionsRegistry.byType('section'), (sections) => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group/components/user-group-granular-permission-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group/components/user-group-granular-permission-list.element.ts index 6891f4ab14..3721b89985 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group/components/user-group-granular-permission-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group/components/user-group-granular-permission-list.element.ts @@ -9,10 +9,10 @@ import { filterFrozenArray } from '@umbraco-cms/backoffice/observable-api'; @customElement('umb-user-group-granular-permission-list') export class UmbUserGroupGranularPermissionListElement extends UmbLitElement { @state() - _userGroupPermissions?: Array; + private _userGroupPermissions?: Array; @state() - _userGroupFallbackPermissions?: Array; + private _userGroupFallbackPermissions?: Array; #workspaceContext?: typeof UMB_USER_GROUP_WORKSPACE_CONTEXT.TYPE; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/modals/settings/entity-user-permission-settings-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/modals/settings/entity-user-permission-settings-modal.element.ts index f1c60d67af..43fc5040bf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/modals/settings/entity-user-permission-settings-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-permission/modals/settings/entity-user-permission-settings-modal.element.ts @@ -20,13 +20,13 @@ export class UmbEntityUserPermissionSettingsModalElement extends UmbModalBaseEle } @state() - _headline: string = 'Set permissions'; + private _headline: string = 'Set permissions'; @state() - _entityType?: string; + private _entityType?: string; @state() - _preset?: UmbEntityUserPermissionSettingsModalValue; + private _preset?: UmbEntityUserPermissionSettingsModalValue; override connectedCallback(): void { super.connectedCallback(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/client-credential/create/modal/create-user-client-credential-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/client-credential/create/modal/create-user-client-credential-modal.element.ts index c18ac77d4b..bed79f9813 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/client-credential/create/modal/create-user-client-credential-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/client-credential/create/modal/create-user-client-credential-modal.element.ts @@ -15,11 +15,8 @@ export class UmbCreateUserModalElement extends UmbModalBaseElement< UmbCreateUserClientCredentialModalData, UmbCreateUserClientCredentialModalValue > { - @query('#CreateUserClientCredentialForm') - _form?: HTMLFormElement; - @query('#unique') - _inputUniqueElement?: UUIInputElement; + private _inputUniqueElement?: UUIInputElement; #userClientCredentialRepository = new UmbUserClientCredentialRepository(this); diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/user-collection-header.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/user-collection-header.element.ts index 2dec9fc4a3..6e861a6bc8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/user-collection-header.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/collection/user-collection-header.element.ts @@ -27,7 +27,7 @@ export class UmbUserCollectionHeaderElement extends UmbLitElement { private _orderByOptions: Array = []; @state() - _activeOrderByOption?: UmbUserOrderByOption; + private _activeOrderByOption?: UmbUserOrderByOption; #collectionContext?: typeof UMB_USER_COLLECTION_CONTEXT.TYPE; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-avatar/user-avatar.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-avatar/user-avatar.element.ts index 84fe60e2da..9e07c269c2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-avatar/user-avatar.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-avatar/user-avatar.element.ts @@ -28,7 +28,7 @@ export class UmbUserAvatarElement extends UmbLitElement { } public set imgUrls(value: Array) { this.#imgUrls = value; - this.hasImgUrls = value.length > 0; + this._hasImgUrls = value.length > 0; this.#setImgSrcSizes(); } #imgUrls: Array = []; @@ -40,7 +40,7 @@ export class UmbUserAvatarElement extends UmbLitElement { private _imgSrc = ''; @state() - private hasImgUrls = false; + private _hasImgUrls = false; @query('uui-avatar') avatarElement!: UUIAvatarElement; @@ -82,7 +82,7 @@ export class UmbUserAvatarElement extends UmbLitElement { } async #setImgSrc() { - if (!this.hasImgUrls) return; + if (!this._hasImgUrls) return; if (!this.avatarElement) return; setTimeout(() => { @@ -104,7 +104,7 @@ export class UmbUserAvatarElement extends UmbLitElement { const classes = { default: this.kind === UmbUserKind.API, api: this.kind === UmbUserKind.API, - 'has-image': this.hasImgUrls, + 'has-image': this._hasImgUrls, }; return html` = []; + private _displayValue: Array = []; async #observeItems() { // TODO: get back to this when documents have been decoupled from users. diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts index 2ed6c18da9..7c5494fd2d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/components/user-media-start-node/user-media-start-node.element.ts @@ -22,7 +22,7 @@ export class UmbUserMediaStartNodeElement extends UmbLitElement { readonly = false; @state() - _displayValue: Array = []; + private _displayValue: Array = []; async #observeItems() { // TODO: get back to this when documents have been decoupled from users. diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/allow-delete/user-allow-delete-action.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/allow-delete/user-allow-delete-action.condition.ts index 3bde4033af..ca95bfdebb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/allow-delete/user-allow-delete-action.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/allow-delete/user-allow-delete-action.condition.ts @@ -1,7 +1,7 @@ import { UmbUserActionConditionBase } from '../user-allow-action-base.condition.js'; export class UmbUserAllowDeleteActionCondition extends UmbUserActionConditionBase { - async _onUserDataChange() { + protected override async _onUserDataChange() { // don't allow the current user to delete themselves if (!this.userUnique || (await this.isCurrentUser())) { this.permitted = false; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/allow-disable/user-allow-disable-action.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/allow-disable/user-allow-disable-action.condition.ts index 208accbab7..11edd44bc3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/allow-disable/user-allow-disable-action.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/allow-disable/user-allow-disable-action.condition.ts @@ -2,7 +2,7 @@ import { UmbUserStateEnum } from '../../types.js'; import { UmbUserActionConditionBase } from '../user-allow-action-base.condition.js'; export class UmbUserAllowDisableActionCondition extends UmbUserActionConditionBase { - async _onUserDataChange() { + protected override async _onUserDataChange() { // don't allow the current user to disable themselves if (!this.userUnique || (await this.isCurrentUser())) { this.permitted = false; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/allow-enable/user-allow-enable-action.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/allow-enable/user-allow-enable-action.condition.ts index e44449d287..1e651137f6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/allow-enable/user-allow-enable-action.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/allow-enable/user-allow-enable-action.condition.ts @@ -2,7 +2,7 @@ import { UmbUserStateEnum } from '../../types.js'; import { UmbUserActionConditionBase } from '../user-allow-action-base.condition.js'; export class UmbUserAllowEnableActionCondition extends UmbUserActionConditionBase { - async _onUserDataChange() { + protected override async _onUserDataChange() { // don't allow the current user to enable themselves if (!this.userUnique || (await this.isCurrentUser())) { this.permitted = false; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/allow-unlock/user-allow-unlock-action.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/allow-unlock/user-allow-unlock-action.condition.ts index 517bd0c12d..5757109778 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/allow-unlock/user-allow-unlock-action.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/allow-unlock/user-allow-unlock-action.condition.ts @@ -2,7 +2,7 @@ import { UmbUserStateEnum } from '../../types.js'; import { UmbUserActionConditionBase } from '../user-allow-action-base.condition.js'; export class UmbUserAllowUnlockActionCondition extends UmbUserActionConditionBase { - async _onUserDataChange() { + protected override async _onUserDataChange() { // don't allow the current user to unlock themselves if (!this.userUnique || (await this.isCurrentUser())) { this.permitted = false; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/is-default-kind/user-is-default-kind.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/is-default-kind/user-is-default-kind.condition.ts index 086e72c181..bb657db5d6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/is-default-kind/user-is-default-kind.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/is-default-kind/user-is-default-kind.condition.ts @@ -2,7 +2,7 @@ import { UmbUserKind } from '../../utils/index.js'; import { UmbUserActionConditionBase } from '../user-allow-action-base.condition.js'; export class UmbUserIsDefaultKindCondition extends UmbUserActionConditionBase { - async _onUserDataChange() { + protected override async _onUserDataChange() { // don't allow the current user to delete themselves if (this.userKind === UmbUserKind.DEFAULT) { this.permitted = true; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/create/modal/create-user-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/create/modal/create-user-modal.element.ts index 14157b7394..00c5455165 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/create/modal/create-user-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/create/modal/create-user-modal.element.ts @@ -13,7 +13,7 @@ export class UmbCreateUserModalElement extends UmbModalBaseElement { @state() - _userItem?: UmbUserItemModel; + private _userItem?: UmbUserItemModel; @state() - _initialPassword: string = ''; + private _initialPassword: string = ''; #userItemRepository = new UmbUserItemRepository(this); #userNewPasswordRepository = new UmbNewUserPasswordRepository(this); diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/entity-action/resend-invite/resend-invite.action.condition.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/entity-action/resend-invite/resend-invite.action.condition.ts index 017e980c6a..1c6d27023a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/entity-action/resend-invite/resend-invite.action.condition.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/invite/entity-action/resend-invite/resend-invite.action.condition.ts @@ -2,7 +2,7 @@ import { UmbUserActionConditionBase } from '../../../conditions/user-allow-actio import { UserStateModel } from '@umbraco-cms/backoffice/external/backend-api'; export class UmbUserAllowResendInviteActionCondition extends UmbUserActionConditionBase { - async _onUserDataChange() { + protected override async _onUserDataChange() { if (!this.userUnique) { this.permitted = false; return; diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/item/user-item-ref.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/item/user-item-ref.element.ts index f61cc1bec9..87866d755d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/item/user-item-ref.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/item/user-item-ref.element.ts @@ -28,10 +28,10 @@ export class UmbUserItemRefElement extends UmbLitElement { standalone = false; @state() - _editPath = ''; + private _editPath = ''; @state() - _userHasSectionAccess = false; + private _userHasSectionAccess = false; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/user-mfa/user-mfa-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/user-mfa/user-mfa-modal.element.ts index b43fb0d359..3d22900b05 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/user-mfa/user-mfa-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/user-mfa/user-mfa-modal.element.ts @@ -19,7 +19,7 @@ export class UmbUserMfaModalElement extends UmbLitElement { modalContext?: UmbModalContext; @state() - _items: Array = []; + private _items: Array = []; #unique = ''; #userRepository = new UmbUserRepository(this); diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/utils/is-user.function.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/utils/is-user.function.ts index 0488050afc..03613d8741 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/utils/is-user.function.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/utils/is-user.function.ts @@ -3,13 +3,13 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; /** * Check if the user is an admin - * @param {UmbControllerHost} host - The controller host - * @param {string} userUnique - The user unique identifier - * @returns {Promise} - The result + * @param host - The controller host + * @param userUnique - The user unique identifier + * @returns Promise resolving to true if user is admin */ -export const isUserAdmin = async (host: UmbControllerHost, userUnique: string) => { +export async function isUserAdmin(host: UmbControllerHost, userUnique: string): Promise { const repository = new UmbUserDetailRepository(host); const { data: user } = await repository.requestByUnique(userUnique); return user?.isAdmin ?? false; -}; +} diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/user/components/user-workspace-avatar/user-workspace-avatar.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/user/components/user-workspace-avatar/user-workspace-avatar.element.ts index 932d632702..bdb7463672 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/user/components/user-workspace-avatar/user-workspace-avatar.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/workspace/user/components/user-workspace-avatar/user-workspace-avatar.element.ts @@ -13,7 +13,7 @@ export class UmbUserAvatarElement extends UmbLitElement { private _allowedFileTypes = 'image/*'; @query('#AvatarFileField') - _avatarFileField?: HTMLInputElement; + private _avatarFileField?: HTMLInputElement; @query('uui-combobox') private _selectElement!: HTMLInputElement; diff --git a/src/Umbraco.Web.UI.Client/src/packages/webhook/webhook-event/modal/webhook-events-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/webhook/webhook-event/modal/webhook-events-modal.element.ts index ff77e8d511..163eadd65c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/webhook/webhook-event/modal/webhook-events-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/webhook/webhook-event/modal/webhook-events-modal.element.ts @@ -11,7 +11,7 @@ export class UmbWebhookEventsModalElement extends UmbModalBaseElement< UmbWebhookPickerModalValue > { @state() - _events: Array = []; + private _events: Array = []; #repository = new UmbWebhookEventRepository(this); diff --git a/src/Umbraco.Web.UI.Client/src/packages/webhook/webhook/workspace/webhook-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/webhook/webhook/workspace/webhook-workspace-editor.element.ts index c5cef0767e..8d746a3b8f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/webhook/webhook/workspace/webhook-workspace-editor.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/webhook/webhook/workspace/webhook-workspace-editor.element.ts @@ -10,13 +10,13 @@ export class UmbWebhookWorkspaceEditorElement extends UmbLitElement { #workspaceContext?: typeof UMB_WEBHOOK_WORKSPACE_CONTEXT.TYPE; @state() - _url: string = ''; + private _url: string = ''; @state() - _name = ''; + private _name = ''; @state() - _description = ''; + private _description = ''; constructor() { super(); diff --git a/src/Umbraco.Web.UI.Client/src/vite-env.d.ts b/src/Umbraco.Web.UI.Client/src/vite-env.d.ts index ff0a27896b..b5151abd81 100644 --- a/src/Umbraco.Web.UI.Client/src/vite-env.d.ts +++ b/src/Umbraco.Web.UI.Client/src/vite-env.d.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/naming-convention */ /// interface ImportMetaEnv { diff --git a/src/Umbraco.Web.UI.Docs/.nvmrc b/src/Umbraco.Web.UI.Docs/.nvmrc deleted file mode 100644 index ec3053c8dc..0000000000 --- a/src/Umbraco.Web.UI.Docs/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -10.15