From c949bf335d3f2479cc86726c2db9026be341c044 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 11:38:59 +0200
Subject: [PATCH 01/49] build(eslint): replace local rules with naming
conventions
---
.../enforce-umb-prefix-on-element-name.cjs | 43 ---------
...nsure-relative-import-use-js-extension.cjs | 91 ------------------
.../rules/exported-string-constant-naming.cjs | 54 -----------
.../devops/eslint/rules/umb-class-prefix.cjs | 28 ------
.../eslint-local-rules.cjs | 10 --
src/Umbraco.Web.UI.Client/eslint.config.js | 92 +++++++++++++++++--
6 files changed, 86 insertions(+), 232 deletions(-)
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/ensure-relative-import-use-js-extension.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
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 e290422e6299..000000000000
--- 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/ensure-relative-import-use-js-extension.cjs b/src/Umbraco.Web.UI.Client/devops/eslint/rules/ensure-relative-import-use-js-extension.cjs
deleted file mode 100644
index ee53dab5fcbf..000000000000
--- a/src/Umbraco.Web.UI.Client/devops/eslint/rules/ensure-relative-import-use-js-extension.cjs
+++ /dev/null
@@ -1,91 +0,0 @@
-/** @type {import('eslint').Rule.RuleModule}*/
-module.exports = {
- meta: {
- type: 'problem',
- docs: {
- description: 'Ensures relative imports use the ".js" file extension.',
- category: 'Best Practices',
- recommended: true,
- },
- fixable: 'code',
- schema: [],
- },
- create: (context) => {
- function correctImport(value) {
- if (value === '.') {
- return './index.js';
- }
-
- if (
- value &&
- value.startsWith('.') &&
- !value.endsWith('.js') &&
- !value.endsWith('.css') &&
- !value.endsWith('.json') &&
- !value.endsWith('.svg') &&
- !value.endsWith('.jpg') &&
- !value.endsWith('.png')
- ) {
- return (value.endsWith('/') ? value + 'index' : value) + '.js';
- }
-
- return null;
- }
-
- return {
- ImportDeclaration: (node) => {
- const { source } = node;
- const { value } = source;
-
- const fixedValue = correctImport(value);
- if (fixedValue) {
- context.report({
- node,
- message: 'Relative imports should use the ".js" file extension.',
- fix: (fixer) => fixer.replaceText(source, `'${fixedValue}'`),
- });
- }
- },
- ImportExpression: (node) => {
- const { source } = node;
- const { value } = source;
-
- const fixedSource = correctImport(value);
- if (fixedSource) {
- context.report({
- node: source,
- message: 'Relative imports should use the ".js" file extension.',
- fix: (fixer) => fixer.replaceText(source, `'${fixedSource}'`),
- });
- }
- },
- ExportAllDeclaration: (node) => {
- const { source } = node;
- const { value } = source;
-
- const fixedSource = correctImport(value);
- if (fixedSource) {
- context.report({
- node: source,
- message: 'Relative exports should use the ".js" file extension.',
- fix: (fixer) => fixer.replaceText(source, `'${fixedSource}'`),
- });
- }
- },
- ExportNamedDeclaration: (node) => {
- const { source } = node;
- if (!source) return;
- const { value } = source;
-
- const fixedSource = correctImport(value);
- if (fixedSource) {
- context.report({
- node: source,
- message: 'Relative exports should use the ".js" file extension.',
- fix: (fixer) => fixer.replaceText(source, `'${fixedSource}'`),
- });
- }
- },
- };
- },
-};
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 8118a54ab1b9..000000000000
--- 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 7856aec4606f..000000000000
--- 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 ed3c3364ff81..8408bf20df59 100644
--- a/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs
+++ b/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs
@@ -1,27 +1,17 @@
'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 2bcbbb5b5183..4eb8a72f1635 100644
--- a/src/Umbraco.Web.UI.Client/eslint.config.js
+++ b/src/Umbraco.Web.UI.Client/eslint.config.js
@@ -62,12 +62,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',
{
@@ -98,6 +92,92 @@ 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'],
+ format: ['camelCase'],
+ leadingUnderscore: 'forbid',
+ trailingUnderscore: 'forbid',
+ },
+ // All #private members and variables should be camelCase without leading underscore
+ // Example: #myPublicVariable, #myPublicMethod
+ {
+ selector: ['variableLike', 'memberLike'],
+ modifiers: ['private'],
+ format: ['camelCase'],
+ leadingUnderscore: 'forbid',
+ trailingUnderscore: 'forbid',
+ },
+ // All protected members and variables should be camelCase without leading underscore
+ // Example: protected myPublicVariable, protected myPublicMethod
+ {
+ selector: ['variableLike', 'memberLike'],
+ modifiers: ['protected'],
+ format: ['camelCase'],
+ leadingUnderscore: 'forbid',
+ 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', 'Example']
+ },
+ // All exported constants should be UPPER_CASE with leading 'UMB_'
+ // Example: UMB_EXAMPLE_CONSTANT
+ {
+ selector: 'variable',
+ modifiers: ['exported', 'const'],
+ format: ['UPPER_CASE'],
+ filter: {
+ // Exclude variables that are not manifest(s)
+ regex: '^manifests?$',
+ match: false,
+ },
+ prefix: ['UMB_'],
+ },
+ // All boolean variables should be camelCase with leading 'is', 'should', 'has', 'can', 'did', 'will'
+ // Example: isActive, shouldUpdate, hasPermission, canEdit, didSave, willSubmit
+ {
+ selector: "variable",
+ types: ["boolean"],
+ format: ["PascalCase"],
+ prefix: ["is", "should", "has", "can", "did", "will"]
+ },
+ // Allow destructured variables to be named as they are in the object
+ {
+ selector: "variable",
+ modifiers: ["destructured"],
+ format: null,
+ },
+ ],
},
},
{
From cf47838efd242ca85a281dcda11bb6c501967bfa Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 11:56:05 +0200
Subject: [PATCH 02/49] revert relative js extension imports
---
...nsure-relative-import-use-js-extension.cjs | 91 +++++++++++++++++++
.../eslint-local-rules.cjs | 2 +
2 files changed, 93 insertions(+)
create mode 100644 src/Umbraco.Web.UI.Client/devops/eslint/rules/ensure-relative-import-use-js-extension.cjs
diff --git a/src/Umbraco.Web.UI.Client/devops/eslint/rules/ensure-relative-import-use-js-extension.cjs b/src/Umbraco.Web.UI.Client/devops/eslint/rules/ensure-relative-import-use-js-extension.cjs
new file mode 100644
index 000000000000..ee53dab5fcbf
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/devops/eslint/rules/ensure-relative-import-use-js-extension.cjs
@@ -0,0 +1,91 @@
+/** @type {import('eslint').Rule.RuleModule}*/
+module.exports = {
+ meta: {
+ type: 'problem',
+ docs: {
+ description: 'Ensures relative imports use the ".js" file extension.',
+ category: 'Best Practices',
+ recommended: true,
+ },
+ fixable: 'code',
+ schema: [],
+ },
+ create: (context) => {
+ function correctImport(value) {
+ if (value === '.') {
+ return './index.js';
+ }
+
+ if (
+ value &&
+ value.startsWith('.') &&
+ !value.endsWith('.js') &&
+ !value.endsWith('.css') &&
+ !value.endsWith('.json') &&
+ !value.endsWith('.svg') &&
+ !value.endsWith('.jpg') &&
+ !value.endsWith('.png')
+ ) {
+ return (value.endsWith('/') ? value + 'index' : value) + '.js';
+ }
+
+ return null;
+ }
+
+ return {
+ ImportDeclaration: (node) => {
+ const { source } = node;
+ const { value } = source;
+
+ const fixedValue = correctImport(value);
+ if (fixedValue) {
+ context.report({
+ node,
+ message: 'Relative imports should use the ".js" file extension.',
+ fix: (fixer) => fixer.replaceText(source, `'${fixedValue}'`),
+ });
+ }
+ },
+ ImportExpression: (node) => {
+ const { source } = node;
+ const { value } = source;
+
+ const fixedSource = correctImport(value);
+ if (fixedSource) {
+ context.report({
+ node: source,
+ message: 'Relative imports should use the ".js" file extension.',
+ fix: (fixer) => fixer.replaceText(source, `'${fixedSource}'`),
+ });
+ }
+ },
+ ExportAllDeclaration: (node) => {
+ const { source } = node;
+ const { value } = source;
+
+ const fixedSource = correctImport(value);
+ if (fixedSource) {
+ context.report({
+ node: source,
+ message: 'Relative exports should use the ".js" file extension.',
+ fix: (fixer) => fixer.replaceText(source, `'${fixedSource}'`),
+ });
+ }
+ },
+ ExportNamedDeclaration: (node) => {
+ const { source } = node;
+ if (!source) return;
+ const { value } = source;
+
+ const fixedSource = correctImport(value);
+ if (fixedSource) {
+ context.report({
+ node: source,
+ message: 'Relative exports should use the ".js" file extension.',
+ fix: (fixer) => fixer.replaceText(source, `'${fixedSource}'`),
+ });
+ }
+ },
+ };
+ },
+};
diff --git a/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs b/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs
index 8408bf20df59..94e82feafc1c 100644
--- a/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs
+++ b/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs
@@ -2,6 +2,7 @@
const enforceElementSuffixOnElementClassNameRule = require('./devops/eslint/rules/enforce-element-suffix-on-element-class-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 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');
@@ -10,6 +11,7 @@ const noRelativeImportToImportMapModule = require('./devops/eslint/rules/no-rela
module.exports = {
'enforce-element-suffix-on-element-class-name': enforceElementSuffixOnElementClassNameRule,
'enforce-umbraco-external-imports': enforceUmbracoExternalImportsRule,
+ 'ensure-relative-import-use-js-extension': ensureRelativeImportUseJsExtensionRule,
'no-direct-api-import': noDirectApiImportRule,
'prefer-import-aliases': preferImportAliasesRule,
'prefer-static-styles-last': preferStaticStylesLastRule,
From 8337192cffc8c7d3f19dd40f393d1e0f65556f13 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 11:56:24 +0200
Subject: [PATCH 03/49] remove unused local rule
---
.../devops/eslint/rules/bad-type-import.cjs | 31 -------------------
1 file changed, 31 deletions(-)
delete mode 100644 src/Umbraco.Web.UI.Client/devops/eslint/rules/bad-type-import.cjs
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 eebdca6c7567..000000000000
--- 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
From 10e75cf52ee2d543f0d605663bdb9bf3b7fc688a Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 11:56:45 +0200
Subject: [PATCH 04/49] build(eslint): uses recommended setup for import plugin
---
src/Umbraco.Web.UI.Client/eslint.config.js | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/eslint.config.js b/src/Umbraco.Web.UI.Client/eslint.config.js
index 4eb8a72f1635..44ca6741e841 100644
--- a/src/Umbraco.Web.UI.Client/eslint.config.js
+++ b/src/Umbraco.Web.UI.Client/eslint.config.js
@@ -14,6 +14,7 @@ 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.
@@ -39,22 +40,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',
@@ -84,7 +80,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',
From b298101ac6050ed1d40b6c72e2a1e5c53270c240 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 11:57:02 +0200
Subject: [PATCH 05/49] chore(eslint): conver const to function to follow
naming conventions
---
.../src/packages/user/user/utils/is-user.function.ts | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
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 0488050afcfd..03613d8741a5 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;
-};
+}
From dc59dddfce4f945205b02966e5c9fff90783f003 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 12:41:15 +0200
Subject: [PATCH 06/49] chore: removes old file
---
src/Umbraco.Web.UI.Docs/.nvmrc | 1 -
1 file changed, 1 deletion(-)
delete mode 100644 src/Umbraco.Web.UI.Docs/.nvmrc
diff --git a/src/Umbraco.Web.UI.Docs/.nvmrc b/src/Umbraco.Web.UI.Docs/.nvmrc
deleted file mode 100644
index ec3053c8dcb4..000000000000
--- a/src/Umbraco.Web.UI.Docs/.nvmrc
+++ /dev/null
@@ -1 +0,0 @@
-10.15
From dc73dac44aa2003313deb92fbc7f8023ff0eb886 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 12:45:13 +0200
Subject: [PATCH 07/49] build(eslint): allows Ufm as prefix
---
src/Umbraco.Web.UI.Client/eslint.config.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Umbraco.Web.UI.Client/eslint.config.js b/src/Umbraco.Web.UI.Client/eslint.config.js
index 44ca6741e841..3f79f92f3c07 100644
--- a/src/Umbraco.Web.UI.Client/eslint.config.js
+++ b/src/Umbraco.Web.UI.Client/eslint.config.js
@@ -147,7 +147,7 @@ export default [
selector: 'typeLike',
modifiers: ['exported'],
format: ['PascalCase'],
- prefix: ['Umb', 'Example']
+ prefix: ['Umb', 'Ufm', 'Example']
},
// All exported constants should be UPPER_CASE with leading 'UMB_'
// Example: UMB_EXAMPLE_CONSTANT
From 5c4ad314397353f77dce03530da103e78fc96b98 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 12:45:35 +0200
Subject: [PATCH 08/49] build(eslint): allows 'name' and 'extensions' as
exports (umbraco-package.ts)
---
src/Umbraco.Web.UI.Client/eslint.config.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Umbraco.Web.UI.Client/eslint.config.js b/src/Umbraco.Web.UI.Client/eslint.config.js
index 3f79f92f3c07..e4a14719d52f 100644
--- a/src/Umbraco.Web.UI.Client/eslint.config.js
+++ b/src/Umbraco.Web.UI.Client/eslint.config.js
@@ -157,7 +157,7 @@ export default [
format: ['UPPER_CASE'],
filter: {
// Exclude variables that are not manifest(s)
- regex: '^manifests?$',
+ regex: '^(manifests?|name|extensions)$',
match: false,
},
prefix: ['UMB_'],
From 813f366e17f88c87422e179d3fb73a3521ec4075 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 13:36:04 +0200
Subject: [PATCH 09/49] build(eslint): typescript rules should ignore storybook
---
src/Umbraco.Web.UI.Client/eslint.config.js | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/Umbraco.Web.UI.Client/eslint.config.js b/src/Umbraco.Web.UI.Client/eslint.config.js
index e4a14719d52f..7b6f287c1776 100644
--- a/src/Umbraco.Web.UI.Client/eslint.config.js
+++ b/src/Umbraco.Web.UI.Client/eslint.config.js
@@ -19,6 +19,7 @@ export default [
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,
@@ -71,6 +72,7 @@ export default [
// Pattern-specific overrides
{
files: ['**/*.ts'],
+ ignores: ['.storybook', '**/*.stories.ts'],
languageOptions: {
parserOptions: {
project: true,
@@ -188,5 +190,4 @@ export default [
},
},
},
- ...storybook.configs['flat/recommended'],
];
From 62c35ed9a8ec06d1db41a6ad3c2cd4cd33d557bf Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 13:43:52 +0200
Subject: [PATCH 10/49] chore(eslint): ignores eslint for vite definitions
---
src/Umbraco.Web.UI.Client/src/vite-env.d.ts | 1 +
1 file changed, 1 insertion(+)
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 ff0a27896b65..b5151abd8174 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 {
From f74bd3b1c85354f7fedc694cfe5b6ecf797c7358 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 13:44:05 +0200
Subject: [PATCH 11/49] build(eslint): allows UPPER_CASE for properties
---
src/Umbraco.Web.UI.Client/eslint.config.js | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/eslint.config.js b/src/Umbraco.Web.UI.Client/eslint.config.js
index 7b6f287c1776..60e9768c33a8 100644
--- a/src/Umbraco.Web.UI.Client/eslint.config.js
+++ b/src/Umbraco.Web.UI.Client/eslint.config.js
@@ -112,7 +112,7 @@ export default [
{
selector: ['variableLike', 'memberLike'],
modifiers: ['public'],
- format: ['camelCase'],
+ format: ['camelCase', 'UPPER_CASE'],
leadingUnderscore: 'forbid',
trailingUnderscore: 'forbid',
},
@@ -156,12 +156,8 @@ export default [
{
selector: 'variable',
modifiers: ['exported', 'const'],
+ types: ['string', 'number', 'boolean'],
format: ['UPPER_CASE'],
- filter: {
- // Exclude variables that are not manifest(s)
- regex: '^(manifests?|name|extensions)$',
- match: false,
- },
prefix: ['UMB_'],
},
// All boolean variables should be camelCase with leading 'is', 'should', 'has', 'can', 'did', 'will'
From 3d610ed831eec49758e1f7bf053d0b03ad95da64 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 13:47:56 +0200
Subject: [PATCH 12/49] build(eslint): ignores umbraco-package.ts files
(unconventional exports)
---
src/Umbraco.Web.UI.Client/eslint.config.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Umbraco.Web.UI.Client/eslint.config.js b/src/Umbraco.Web.UI.Client/eslint.config.js
index 60e9768c33a8..6005a1ba6460 100644
--- a/src/Umbraco.Web.UI.Client/eslint.config.js
+++ b/src/Umbraco.Web.UI.Client/eslint.config.js
@@ -72,7 +72,7 @@ export default [
// Pattern-specific overrides
{
files: ['**/*.ts'],
- ignores: ['.storybook', '**/*.stories.ts'],
+ ignores: ['.storybook', '**/*.stories.ts', '**/umbraco-package.ts'],
languageOptions: {
parserOptions: {
project: true,
From 411685ffa5ce0039512b90187b8772933468a237 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 13:51:25 +0200
Subject: [PATCH 13/49] chore(storybook): fixes property editor stylesheet
picker
---
...rty-editor-ui-stylesheet-picker.stories.ts | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
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 5304fcd1a803..c0ed33c86f75 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;
+ args: {
+ value: dataTypeData?.values?.find((x) => x.alias === 'stylesheets')?.value ?? [],
+ },
+};
-export const Docs = ({ value }: any) =>
- html` `;
+export default meta;
+type Story = StoryObj;
-Docs.args = {
- value: dataTypeData?.values?.find((x) => x.alias === 'stylesheets')?.value ?? [],
-};
+export const Docs: Story = {};
From e19007a3144f7fda9e73a8f737ed396659b29a9a Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 13:52:03 +0200
Subject: [PATCH 14/49] build(eslint): allows Manifest as prefix on interfaces
---
src/Umbraco.Web.UI.Client/eslint.config.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Umbraco.Web.UI.Client/eslint.config.js b/src/Umbraco.Web.UI.Client/eslint.config.js
index 6005a1ba6460..c23fe3021a2e 100644
--- a/src/Umbraco.Web.UI.Client/eslint.config.js
+++ b/src/Umbraco.Web.UI.Client/eslint.config.js
@@ -149,7 +149,7 @@ export default [
selector: 'typeLike',
modifiers: ['exported'],
format: ['PascalCase'],
- prefix: ['Umb', 'Ufm', 'Example']
+ prefix: ['Umb', 'Ufm', 'Manifest', 'Example']
},
// All exported constants should be UPPER_CASE with leading 'UMB_'
// Example: UMB_EXAMPLE_CONSTANT
From 6f5247cbaabb30979c1cca9099423487de7d0128 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 13:56:38 +0200
Subject: [PATCH 15/49] build(eslint): allows underscore on protected members
---
src/Umbraco.Web.UI.Client/eslint.config.js | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/eslint.config.js b/src/Umbraco.Web.UI.Client/eslint.config.js
index c23fe3021a2e..a9b241123f1e 100644
--- a/src/Umbraco.Web.UI.Client/eslint.config.js
+++ b/src/Umbraco.Web.UI.Client/eslint.config.js
@@ -125,13 +125,13 @@ export default [
leadingUnderscore: 'forbid',
trailingUnderscore: 'forbid',
},
- // All protected members and variables should be camelCase without leading underscore
- // Example: protected myPublicVariable, protected myPublicMethod
+ // 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: 'forbid',
+ leadingUnderscore: 'allow',
trailingUnderscore: 'forbid',
},
// Allow quoted properties, as they are often used in JSON or when the property name is not a valid identifier
From d0fae4b3a5b91d0a01fbc6632a09e39f4c322c80 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 13:57:10 +0200
Subject: [PATCH 16/49] build(eslint): allows Meta as prefix on interfaces
---
src/Umbraco.Web.UI.Client/eslint.config.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Umbraco.Web.UI.Client/eslint.config.js b/src/Umbraco.Web.UI.Client/eslint.config.js
index a9b241123f1e..f63498cd4266 100644
--- a/src/Umbraco.Web.UI.Client/eslint.config.js
+++ b/src/Umbraco.Web.UI.Client/eslint.config.js
@@ -149,7 +149,7 @@ export default [
selector: 'typeLike',
modifiers: ['exported'],
format: ['PascalCase'],
- prefix: ['Umb', 'Ufm', 'Manifest', 'Example']
+ prefix: ['Umb', 'Ufm', 'Manifest', 'Meta', 'Example']
},
// All exported constants should be UPPER_CASE with leading 'UMB_'
// Example: UMB_EXAMPLE_CONSTANT
From b7ba94a8a11b3f9f586f83e4ff9a0198c6af96b2 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 14:01:36 +0200
Subject: [PATCH 17/49] build(eslint): allows PascalCase for public members
---
src/Umbraco.Web.UI.Client/eslint.config.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/eslint.config.js b/src/Umbraco.Web.UI.Client/eslint.config.js
index f63498cd4266..e768b3b719dc 100644
--- a/src/Umbraco.Web.UI.Client/eslint.config.js
+++ b/src/Umbraco.Web.UI.Client/eslint.config.js
@@ -112,7 +112,7 @@ export default [
{
selector: ['variableLike', 'memberLike'],
modifiers: ['public'],
- format: ['camelCase', 'UPPER_CASE'],
+ format: ['camelCase', 'UPPER_CASE', 'PascalCase'],
leadingUnderscore: 'forbid',
trailingUnderscore: 'forbid',
},
@@ -151,7 +151,7 @@ export default [
format: ['PascalCase'],
prefix: ['Umb', 'Ufm', 'Manifest', 'Meta', 'Example']
},
- // All exported constants should be UPPER_CASE with leading 'UMB_'
+ // All exported string constants should be UPPER_CASE with leading 'UMB_'
// Example: UMB_EXAMPLE_CONSTANT
{
selector: 'variable',
From d15e8a388de8f6a57bda742bbb9eb9cb57b9c1c8 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 14:04:29 +0200
Subject: [PATCH 18/49] build(eslint): disables enforcement of booleans with
verbs for now as it is too harsh
---
src/Umbraco.Web.UI.Client/eslint.config.js | 8 --------
1 file changed, 8 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/eslint.config.js b/src/Umbraco.Web.UI.Client/eslint.config.js
index e768b3b719dc..e30d197bd641 100644
--- a/src/Umbraco.Web.UI.Client/eslint.config.js
+++ b/src/Umbraco.Web.UI.Client/eslint.config.js
@@ -160,14 +160,6 @@ export default [
format: ['UPPER_CASE'],
prefix: ['UMB_'],
},
- // All boolean variables should be camelCase with leading 'is', 'should', 'has', 'can', 'did', 'will'
- // Example: isActive, shouldUpdate, hasPermission, canEdit, didSave, willSubmit
- {
- selector: "variable",
- types: ["boolean"],
- format: ["PascalCase"],
- prefix: ["is", "should", "has", "can", "did", "will"]
- },
// Allow destructured variables to be named as they are in the object
{
selector: "variable",
From d9c89b1ec895c5aa32e1360571670898722c3b21 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 14:16:19 +0200
Subject: [PATCH 19/49] chore(eslint): add private modifiers as required
---
.../models-builder-dashboard.element.ts | 4 +-
...property-editor-ui-number-range.element.ts | 6 +-
.../property-editor-ui-toggle.element.ts | 8 +-
...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 +-
.../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 | 112 +++++++++---------
.../search-modal/search-modal.element.ts | 4 +-
.../tags-input/tags-input.element.ts | 10 +-
.../create-from-snippet-modal.ts | 2 +-
.../input-template/input-template.element.ts | 23 ++--
.../template-card/template-card.element.ts | 7 +-
.../src/packages/templating/types.ts | 2 +
.../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-workspace-avatar.element.ts | 2 +-
.../modal/webhook-events-modal.element.ts | 2 +-
.../webhook-workspace-editor.element.ts | 6 +-
45 files changed, 159 insertions(+), 160 deletions(-)
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 70569835fcfc..80660ee69cd6 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/property-editors/number-range/property-editor-ui-number-range.element.ts b/src/Umbraco.Web.UI.Client/src/packages/property-editors/number-range/property-editor-ui-number-range.element.ts
index 21b12acd2ee7..aaeeb1a5aef6 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/property-editors/number-range/property-editor-ui-number-range.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/property-editors/number-range/property-editor-ui-number-range.element.ts
@@ -18,13 +18,13 @@ export class UmbPropertyEditorUINumberRangeElement
implements UmbPropertyEditorUiElement
{
@state()
- _minValue?: number;
+ private _minValue?: number;
@state()
- _maxValue?: number;
+ private _maxValue?: number;
@state()
- _validationRange?: UmbNumberRangeValueType;
+ private _validationRange?: UmbNumberRangeValueType;
@property({ type: Object })
public override set value(value: UmbNumberRangeValueType | undefined) {
diff --git a/src/Umbraco.Web.UI.Client/src/packages/property-editors/toggle/property-editor-ui-toggle.element.ts b/src/Umbraco.Web.UI.Client/src/packages/property-editors/toggle/property-editor-ui-toggle.element.ts
index 3d18b7dd79c0..5c71b27a5e9e 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/property-editors/toggle/property-editor-ui-toggle.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/property-editors/toggle/property-editor-ui-toggle.element.ts
@@ -35,16 +35,16 @@ export class UmbPropertyEditorUIToggleElement
mandatoryMessage = UMB_VALIDATION_FALSE_LOCALIZATION_KEY;
@state()
- _ariaLabel?: string;
+ private _ariaLabel?: string;
@state()
- _labelOff?: string;
+ private _labelOff?: string;
@state()
- _labelOn?: string;
+ private _labelOn?: string;
@state()
- _showLabels = false;
+ private _showLabels = false;
public set config(config: UmbPropertyEditorConfigCollection | undefined) {
if (!config) return;
diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type/views/relation-type-detail-workspace-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type/views/relation-type-detail-workspace-view.element.ts
index 511fa35408c6..48c38941f589 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type/views/relation-type-detail-workspace-view.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relation-types/workspace/relation-type/views/relation-type-detail-workspace-view.element.ts
@@ -14,28 +14,28 @@ import type { UUIPaginationEvent } from '@umbraco-cms/backoffice/external/uui';
@customElement('umb-relation-type-detail-workspace-view')
export class UmbRelationTypeDetailWorkspaceViewElement extends UmbLitElement implements UmbWorkspaceViewElement {
@state()
- _relations: Array = [];
+ private _relations: Array = [];
@state()
- _parent?: UmbRelationTypeDetailModel['parent'];
+ private _parent?: UmbRelationTypeDetailModel['parent'];
@state()
- _child?: UmbRelationTypeDetailModel['child'];
+ private _child?: UmbRelationTypeDetailModel['child'];
@state()
- _isBidirectional?: UmbRelationTypeDetailModel['isBidirectional'];
+ private _isBidirectional?: UmbRelationTypeDetailModel['isBidirectional'];
@state()
- _isDependency?: UmbRelationTypeDetailModel['isDependency'];
+ private _isDependency?: UmbRelationTypeDetailModel['isDependency'];
@state()
- _currentPageNumber = 1;
+ private _currentPageNumber = 1;
@state()
- _totalPages = 1;
+ private _totalPages = 1;
@state()
- _loading = false;
+ private _loading = false;
#workspaceContext?: typeof UMB_RELATION_TYPE_WORKSPACE_CONTEXT.TYPE;
#relationCollectionRepository = new UmbRelationCollectionRepository(this);
@@ -181,9 +181,9 @@ export class UmbRelationTypeDetailWorkspaceViewElement extends UmbLitElement imp
.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/relations/relations/entity-actions/bulk-delete/bulk-delete-with-relation.action.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/bulk-delete/bulk-delete-with-relation.action.ts
index c93f35e1e211..98b1c6c3f3a8 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/bulk-delete/bulk-delete-with-relation.action.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/bulk-delete/bulk-delete-with-relation.action.ts
@@ -4,7 +4,7 @@ import { UmbDeleteEntityBulkAction } from '@umbraco-cms/backoffice/entity-bulk-a
import { umbOpenModal } from '@umbraco-cms/backoffice/modal';
export class UmbBulkDeleteWithRelationEntityAction extends UmbDeleteEntityBulkAction {
- override async _confirmDelete() {
+ protected override async _confirmDelete() {
await umbOpenModal(this, UMB_BULK_DELETE_WITH_RELATION_CONFIRM_MODAL, {
data: {
uniques: this.selection,
diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/bulk-delete/modal/bulk-delete-with-relation-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/bulk-delete/modal/bulk-delete-with-relation-modal.element.ts
index a6fb98481858..bb9dcd6d444a 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/bulk-delete/modal/bulk-delete-with-relation-modal.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/bulk-delete/modal/bulk-delete-with-relation-modal.element.ts
@@ -22,7 +22,7 @@ export class UmbBulkDeleteWithRelationConfirmModalElement extends UmbModalBaseEl
UmbBulkDeleteWithRelationConfirmModalValue
> {
@state()
- _referencesConfig?: UmbConfirmBulkActionModalEntityReferencesConfig;
+ private _referencesConfig?: UmbConfirmBulkActionModalEntityReferencesConfig;
protected override firstUpdated(_changedProperties: PropertyValues): void {
super.firstUpdated(_changedProperties);
diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/bulk-trash/bulk-trash-with-relation.action.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/bulk-trash/bulk-trash-with-relation.action.ts
index 6e7b1a170595..79a49e4668a7 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/bulk-trash/bulk-trash-with-relation.action.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/bulk-trash/bulk-trash-with-relation.action.ts
@@ -4,7 +4,7 @@ import { umbOpenModal } from '@umbraco-cms/backoffice/modal';
import { UmbTrashEntityBulkAction } from '@umbraco-cms/backoffice/recycle-bin';
export class UmbBulkTrashWithRelationEntityAction extends UmbTrashEntityBulkAction {
- override async _confirmTrash() {
+ protected override async _confirmTrash() {
await umbOpenModal(this, UMB_BULK_TRASH_WITH_RELATION_CONFIRM_MODAL, {
data: {
uniques: this.selection,
diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/delete/modal/delete-with-relation-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/delete/modal/delete-with-relation-modal.element.ts
index 9df34a33b061..2b4e9e0c20ae 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/delete/modal/delete-with-relation-modal.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/delete/modal/delete-with-relation-modal.element.ts
@@ -24,10 +24,10 @@ export class UmbDeleteWithRelationConfirmModalElement extends UmbModalBaseElemen
UmbDeleteWithRelationConfirmModalValue
> {
@state()
- _name?: string;
+ private _name?: string;
@state()
- _referencesConfig?: UmbConfirmActionModalEntityReferencesConfig;
+ private _referencesConfig?: UmbConfirmActionModalEntityReferencesConfig;
#itemRepository?: UmbItemRepository;
diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/trash/modal/trash-with-relation-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/trash/modal/trash-with-relation-modal.element.ts
index e6f3e21a4278..d68a75cbb0af 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/trash/modal/trash-with-relation-modal.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/trash/modal/trash-with-relation-modal.element.ts
@@ -24,10 +24,10 @@ export class UmbTrashWithRelationConfirmModalElement extends UmbModalBaseElement
UmbTrashWithRelationConfirmModalValue
> {
@state()
- _name?: string;
+ private _name?: string;
@state()
- _referencesConfig?: UmbConfirmActionModalEntityReferencesConfig;
+ private _referencesConfig?: UmbConfirmActionModalEntityReferencesConfig;
#itemRepository?: UmbItemRepository;
diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/trash/trash-with-relation.action.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/trash/trash-with-relation.action.ts
index 90e97deef213..3d9754f1eddd 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/trash/trash-with-relation.action.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/trash/trash-with-relation.action.ts
@@ -9,7 +9,7 @@ import { UmbTrashEntityAction } from '@umbraco-cms/backoffice/recycle-bin';
* @augments {UmbEntityActionBase}
*/
export class UmbTrashWithRelationEntityAction extends UmbTrashEntityAction {
- override async _confirmTrash(item: any) {
+ protected override async _confirmTrash(item: any) {
await umbOpenModal(this, UMB_TRASH_WITH_RELATION_CONFIRM_MODAL, {
data: {
unique: item.unique,
diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/global-components/confirm-action-modal-entity-references.element.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/global-components/confirm-action-modal-entity-references.element.ts
index 37cac2a5f26f..c56ed774857a 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/global-components/confirm-action-modal-entity-references.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/global-components/confirm-action-modal-entity-references.element.ts
@@ -26,16 +26,16 @@ export class UmbConfirmActionModalEntityReferencesElement extends UmbLitElement
config?: UmbConfirmActionModalEntityReferencesConfig;
@state()
- _referencedByItems: Array = [];
+ private _referencedByItems: Array = [];
@state()
- _totalReferencedByItems: number = 0;
+ private _totalReferencedByItems: number = 0;
@state()
- _totalDescendantsWithReferences: number = 0;
+ private _totalDescendantsWithReferences: number = 0;
@state()
- _descendantsWithReferences: Array = [];
+ private _descendantsWithReferences: Array = [];
#itemRepository?: UmbItemRepository;
#referenceRepository?: UmbEntityReferenceRepository;
diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/global-components/confirm-bulk-action-modal-entity-references.element.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/global-components/confirm-bulk-action-modal-entity-references.element.ts
index 4c7f4f75b4aa..251f78314637 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/global-components/confirm-bulk-action-modal-entity-references.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/global-components/confirm-bulk-action-modal-entity-references.element.ts
@@ -29,10 +29,10 @@ export class UmbConfirmBulkActionModalEntityReferencesElement extends UmbLitElem
};
@state()
- _items: Array = [];
+ private _items: Array = [];
@state()
- _totalItems: number = 0;
+ private _totalItems: number = 0;
#itemRepository?: UmbItemRepository;
#referenceRepository?: UmbEntityReferenceRepository;
diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-indexers.ts b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-indexers.ts
index adce05d05bd7..68880c2dba15 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-indexers.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-indexers.ts
@@ -120,17 +120,17 @@ export class UmbDashboardExamineIndexElement extends UmbLitElement {
${this.#renderHealthStatus(this._indexData.healthStatus)}
- ${this.renderIndexSearch()} ${this.renderPropertyList()} ${this.renderTools()}
+ ${this.#renderIndexSearch()} ${this.#renderPropertyList()} ${this.#renderTools()}
`;
}
- private renderIndexSearch() {
+ #renderIndexSearch() {
// Do we want to show the search while rebuilding?
if (!this._indexData || this._indexData.healthStatus.status === HealthStatusModel.REBUILDING) return nothing;
return html` `;
}
- private renderPropertyList() {
+ #renderPropertyList() {
if (!this._indexData) return nothing;
return html`
@@ -160,7 +160,7 @@ export class UmbDashboardExamineIndexElement extends UmbLitElement {
`;
}
- private renderTools() {
+ #renderTools() {
return html`
Tools to manage the ${this.indexName}
Allows you to view the details of each index and provides some tools for managing the indexes
- ${this.renderIndexersList()}
+ ${this.#renderIndexersList()}
@@ -74,12 +74,12 @@ export class UmbDashboardExamineOverviewElement extends UmbLitElement {
>Shows properties and tools for any configured Searcher (i.e. such as a multi-index searcher)
- ${this.renderSearchersList()}
+ ${this.#renderSearchersList()}
`;
}
- private renderIndexersList() {
+ #renderIndexersList() {
if (this._loadingIndexers) return html` `;
if (!this._indexers) return nothing;
return html`
@@ -96,7 +96,7 @@ export class UmbDashboardExamineOverviewElement extends UmbLitElement {
`;
}
- private renderSearchersList() {
+ #renderSearchersList() {
if (this._loadingSearchers) return html` `;
if (!this._searchers) return nothing;
return html`
diff --git a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-searchers.ts b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-searchers.ts
index 684bc19d31ee..ff77c8d9ff1f 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-searchers.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/search/examine-management-dashboard/views/section-view-examine-searchers.ts
@@ -37,13 +37,13 @@ export class UmbDashboardExamineSearcherElement extends UmbLitElement {
private _workspacePath = 'aa';
@state()
- _totalPages = 1;
+ private _totalPages = 1;
@state()
- _currentPage = 1;
+ private _currentPage = 1;
@state()
- _totalNumberOfResults = 0;
+ private _totalNumberOfResults = 0;
#paginationManager = new UmbPaginationManager();
@@ -132,7 +132,7 @@ export class UmbDashboardExamineSearcherElement extends UmbLitElement {
type: 'sidebar',
size: 'medium',
},
- data: { searchResult: rowData, name: this.getSearchResultNodeName(rowData) },
+ data: { searchResult: rowData, name: this.#getSearchResultNodeName(rowData) },
}).catch(() => undefined);
}
@@ -159,13 +159,13 @@ export class UmbDashboardExamineSearcherElement extends UmbLitElement {
label=${this.localize.term('general_search')}
@click="${this._onSearch}">
- ${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(', ') ?? '';
-
- 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) : ''}
- `;
- })}
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ 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) : ''}
+ `;
+ })}
+
+
+
+
+
+
+
+
+
+
= [];
@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 b56d24500743..9efb1b6962ff 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 2229bb8409a7..978b78f79054 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/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 4350494327ed..e1ba049486dc 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 10b94475bd66..3fbcc03cff20 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 46069918b59a..e5ecfafc790e 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/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 daef3e32a4f6..5f8d2bbc35e0 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 2d2cce5d468e..dd93ee911c02 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 7c7fa88ced0e..5df228dfceb6 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 9b5fa4d0f601..6f43b9ae1f5a 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 6891f4ab14bd..3721b899855a 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 f1c60d67af74..43fc5040bf87 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 c18ac77d4bcb..bed79f981377 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 2dec9fc4a308..6e861a6bc8a9 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 84fe60e2da3e..9e07c269c247 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 2ed6c18da995..7c5494fd2d02 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 3bde4033af54..ca95bfdebbc6 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 208accbab725..11edd44bc366 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 e44449d2878e..1e651137f67c 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 517bd0c12d13..5757109778cb 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 086e72c181fd..bb657db5d6a4 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 14157b73940e..00c545516530 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 017e980c6ab8..1c6d27023afb 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 f61cc1bec984..87866d755da8 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 b43fb0d359c4..3d22900b058c 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/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 932d6327025f..bdb74636720f 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 ff77e8d511f8..163eadd65ca8 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 c5cef0767e12..8d746a3b8f18 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();
From a40a1e09b78e160931f35ac8b6f8c8a4803b96fd Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 14:20:22 +0200
Subject: [PATCH 20/49] deprecates invalid constant name to replace with Umb
prefix
---
.../src/mocks/handlers/manifests.handlers.ts | 18 +++++++++---------
.../src/packages/packages/types.ts | 13 ++++++++++++-
2 files changed, 21 insertions(+), 10 deletions(-)
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 d37caf6bb0dc..e75253ceafc8 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/packages/types.ts b/src/Umbraco.Web.UI.Client/src/packages/packages/types.ts
index b3eb720c5255..b0b8c774202e 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;
From 2ac08a9f5bf9d2ab7ec95f833ab7f56ac400c4cb Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 14:23:53 +0200
Subject: [PATCH 21/49] renames MediaValueType to comply with naming
conventions
---
.../input-upload-field.element.ts | 6 +++---
.../property-editor-ui-upload-field.element.ts | 4 ++--
.../media/property-editors/upload-field/types.ts | 13 ++++++++++++-
3 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
index f4203b0ce5dd..10ec9ab097c2 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-upload-field/input-upload-field.element.ts
@@ -1,4 +1,4 @@
-import type { MediaValueType } from '../../property-editors/upload-field/types.js';
+import type { UmbMediaValueType } from '../../property-editors/upload-field/types.js';
import type { ManifestFileUploadPreview } from './file-upload-preview.extension.js';
import { getMimeTypeFromExtension } from './utils.js';
import { css, customElement, html, ifDefined, nothing, property, state } from '@umbraco-cms/backoffice/external/lit';
@@ -20,11 +20,11 @@ import { UMB_SERVER_CONTEXT } from '@umbraco-cms/backoffice/server';
@customElement('umb-input-upload-field')
export class UmbInputUploadFieldElement extends UmbLitElement {
@property({ type: Object, attribute: false })
- set value(value: MediaValueType) {
+ set value(value: UmbMediaValueType) {
this.#src = value?.src ?? '';
this.#setPreviewAlias();
}
- get value(): MediaValueType {
+ get value(): UmbMediaValueType {
return {
src: this.#src,
temporaryFileId: this.temporaryFile?.temporaryUnique,
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 168b2b0fc206..3390df20626b 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 dd44a880f744..da498b54ffd0 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
+}
From 10bbb49a15eec19ebed61cd6138cc92fc0aa7a5b Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 14:53:33 +0200
Subject: [PATCH 22/49] chore(eslint): disable naming conventions for local
router-slot package
---
.../core/router/generate-route-path-builder.function.ts | 4 ++--
.../modal-registration/modal-route-registration.controller.ts | 1 +
.../modal-registration/modal-route-registration.interface.ts | 1 +
.../src/packages/core/router/route/route.context.ts | 1 +
.../src/packages/core/router/router-slot/config.ts | 2 +-
.../src/packages/core/router/router-slot/model.ts | 1 +
.../src/packages/core/router/router-slot/router-slot.ts | 3 ++-
7 files changed, 9 insertions(+), 4 deletions(-)
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 d14780544cd8..36bf0121ef0a 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 b8fe83766a35..5886dccdd4a3 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 df8b77a55590..d3dbbf09b98b 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 fd2e9daeb89f..ecbe3ad29d08 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 9d1a16a76d48..571e9dee72ad 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 4b9892946a31..963868ab1d3e 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 de09de1d2a4b..d0d982c51fa7 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.
From ad8cc75f0192abb4ac619e08108716cc56e4a0b7 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 14:53:41 +0200
Subject: [PATCH 23/49] chore(eslint): follow naming conventions
---
.../restore-from-recycle-bin-modal.element.ts | 6 +--
.../bulk-trash/bulk-trash.action.ts | 8 ++--
.../core/resources/cancelable-promise.ts | 6 +--
.../src/packages/core/resources/types.ts | 2 +
.../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 | 4 +-
.../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 +-
.../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 ++--
.../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-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 | 19 +++++----
.../log-viewer-search-input.element.ts | 10 ++---
.../input-dropzone/input-dropzone.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 ++++----
.../media/dropzone/dropzone-media.element.ts | 4 +-
.../media/item/media-item-ref.element.ts | 4 +-
.../media-picker-modal.element.ts | 8 ++--
...y-editor-ui-media-entity-picker.element.ts | 4 +-
.../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-workspace-split-view.element.ts | 6 +--
.../input-multi-url.element.ts | 4 +-
.../workspace/workspace-package.element.ts | 2 +-
.../repository/sources/package.server.data.ts | 22 +++++-----
...dashboard-performance-profiling.element.ts | 6 ++-
.../input-content-picker-source.element.ts | 2 +-
...r-ui-content-picker-source-type.element.ts | 10 ++---
94 files changed, 347 insertions(+), 311 deletions(-)
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 c299d944ad54..8370cc78b0dd 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 384e111ed5eb..996de8b45523 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,7 @@ export class UmbTrashEntityBulkAction<
MetaKindType extends MetaEntityBulkActionTrashKind = MetaEntityBulkActionTrashKind,
> extends UmbEntityBulkActionBase {
#localize = new UmbLocalizationController(this);
- _items: Array = [];
+ #items: Array = [];
override async execute() {
if (this.selection?.length === 0) {
@@ -27,7 +27,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 +52,7 @@ export class UmbTrashEntityBulkAction<
const { data } = await itemRepository.requestItems(this.selection);
- this._items = data ?? [];
+ this.#items = data ?? [];
}
async #requestBulkTrash(uniques: Array) {
@@ -106,7 +106,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 a3454d7c6adf..74c58c211fbc 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 bd685f00892d..60e415e0d5b0 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/section/conditions/section-alias/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/section/conditions/section-alias/types.ts
index 5ef40e419d40..dac6d0e2385e 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 7161de8a2ac0..9b3d6fc293bf 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 66a597b1b315..75f51d9a1893 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 8b7546a4fcea..2961604efb23 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 821a770766df..9c5af3f492f7 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 6689f250f73e..941bd38ee070 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 57ef96988f68..14faaf5d2dac 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 d5e4a787c8d0..60eeaca3fae2 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 6d55666c21b2..823969c9b24e 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 4879f2865ca9..b325590d1ffa 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 90ab9c2cdc08..bd85ac906864 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 b2e6c660845e..43bd74613646 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 d4c8fa242958..af449fb4e288 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 9b200c97855b..8ff2829f6da1 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,4 @@
-export type UrlParametersRecord = Record string } | null>;
+export type UmbUrlParametersRecord = Record string } | null>;
const PARAM_IDENTIFIER = /:([^/]+)/g;
@@ -7,7 +7,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 699ea2524f57..197c63bdb4bb 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 3f776ed25df8..f161fbe6711f 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 8094fab6649e..93fd02d32609 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 019657e5d7a5..00666645e847 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 4160be3e0bfa..c23a374acd0d 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 05a7d9c44904..994c17993885 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 912b4f3f65e4..789994afc5c4 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 3ee0a82c3302..cc06cf5222f1 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 af930a9cdd23..1dc1c622e756 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 8294ef15fb32..d1d305f5115b 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 89a5df4e5ced..1604124d993b 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 a47776c2ab22..2af26a1bb7f7 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 e365c08b3edd..2c40f645e5b8 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 30fbf2019ecc..333c00a22830 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 6c6d1e4b738f..038da49fbb5a 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 b54f387944d4..89060c90efcc 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 e6814696a8e3..fb9188218bfd 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 875b5b00d255..49845d193977 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 afb717dd2db6..5977605c71c0 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 a841c162c983..9a64800ee576 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 8c9a66f575ff..7a2086245887 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 f8cc6fc29735..ebaa889b1e1d 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 e7d2c56c2d89..ced42c55b973 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 03869a8cab11..a465242dcc62 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/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 aa2f39cceb61..6eebcb0c707c 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 f8fd8b58702c..43f0f0c23d7a 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 56509ca26340..75340bdaa0c0 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 b59254f4c0a8..755a366b4fb8 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 d356a82072a3..a264efa61149 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 1574e85a4922..d392378130d4 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 56fa6371a355..1ce732fdba54 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 b7dc6c2395ba..b7cb75bbbd6e 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 d9c8e9b90c48..81ab5cfb79c8 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 cccfe38107a7..d5c836d5c09f 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 f2548a45b7b8..a0adc8968cc5 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 bacebca22708..dfbf95e05d07 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 c17c8b7e6617..bae7c347a3d3 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 b05120a59795..40697df02b4a 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.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view.element.ts
index b84adc1175ec..bd82b1d110d3 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 94c81fe4901d..ebf8e5435b43 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 01835d490965..94455ed6fdfc 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 6780414d12d3..22d8155cf140 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 00bae1f180bd..225c77c17d09 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 6149ff5cc69d..91acaa5cdb75 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 3a20d16cc805..db639c2800d3 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/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 b5e2674a886c..ae8ec3e5da3a 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 4fb4e3bbb467..095b60c80edc 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 5333f3a7c1c3..a776f4499c0a 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 1af46a0c81f0..347bd229d3c7 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 fd47bf682fff..27dfae37b8ec 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 030360d083cf..e765508dd202 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 ecf92c1b217d..fbc61d9b126f 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 2254811beda4..5bef958d4504 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;
+ private _dropdownElement?: UmbDropdownElement;
+
@state()
- private _poolingConfig: PoolingCOnfig = { enabled: false, interval: 0 };
+ private _poolingConfig: UmbPoolingConfig = { enabled: false, interval: 0 };
- #pollingIntervals: PoolingInterval[] = [2000, 5000, 10000, 20000, 30000];
+ #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 710871a541c6..da8bdd722c8f 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
@@ -30,7 +30,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;
@@ -42,7 +42,7 @@ export class UmbLogViewerSearchInputElement extends UmbLitElement {
this.#logViewerContext?.getSavedSearches();
});
- this.inputQuery$
+ this.#inputQuery$
.pipe(
tap(() => (this._showLoader = true)),
debounceTime(250),
@@ -70,11 +70,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;
}
@@ -90,7 +90,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 2d3bd8012455..bb65f2579e7a 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
@@ -93,11 +93,11 @@ export class UmbInputDropzoneElement extends UmbFormControlMixin {
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 1b8808a1b31a..4071b604dcd6 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 76bb1176a5b3..443cd0b777f0 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 8b55dd976a1b..a728e44c10ff 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 7e18a63effd2..2ba70071d146 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 c3f454648785..a68e95e20a08 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 d69c9262a7d9..a492c79ac7c0 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/workspace/media-workspace-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace-editor.element.ts
index 172e15774b31..93e71be46fcc 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 6c0d04026292..ba25bcaf1d2d 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 2ec6cce2a2a7..7c52689ce334 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 e55489b82a60..c9a9b76e78c9 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/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 1bd458c98e5a..0fce5fc05a94 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/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 5b9116e45d00..b3a6e4a93224 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 b9bb4815761f..43af53825566 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 9458a605cdc3..e4af26be4832 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/performance-profiling/dashboard-performance-profiling.element.ts b/src/Umbraco.Web.UI.Client/src/packages/performance-profiling/dashboard-performance-profiling.element.ts
index b850464cb9cf..84cb99311371 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 9ae2b22d530e..ce42a1c62831 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 = [
+ private _options: Array = [
{ value: 'content', name: 'Content' },
{ value: 'media', name: 'Media' },
{ value: 'member', name: 'Members' },
diff --git a/src/Umbraco.Web.UI.Client/src/packages/property-editors/content-picker/config/source-type/property-editor-ui-content-picker-source-type.element.ts b/src/Umbraco.Web.UI.Client/src/packages/property-editors/content-picker/config/source-type/property-editor-ui-content-picker-source-type.element.ts
index f20639cff211..b82fea2c8c21 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/property-editors/content-picker/config/source-type/property-editor-ui-content-picker-source-type.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/property-editors/content-picker/config/source-type/property-editor-ui-content-picker-source-type.element.ts
@@ -31,7 +31,7 @@ export class UmbPropertyEditorUIContentPickerSourceTypeElement
}
@state()
- private sourceType: string = 'content';
+ private _sourceType: string = 'content';
#initialized: boolean = false;
@@ -55,11 +55,11 @@ export class UmbPropertyEditorUIContentPickerSourceTypeElement
if (startNode?.type) {
// If we had a sourceType before, we can see this as a change and not the initial value,
// so let's reset the value, so we don't carry over content-types to the new source type.
- if (this.#initialized && this.sourceType !== startNode.type) {
+ if (this.#initialized && this._sourceType !== startNode.type) {
this.#setValue([]);
}
- this.sourceType = startNode.type;
+ this._sourceType = startNode.type;
if (!this.#initialized) {
this.#initialized = true;
@@ -71,7 +71,7 @@ export class UmbPropertyEditorUIContentPickerSourceTypeElement
}
#onChange(event: CustomEvent) {
- switch (this.sourceType) {
+ switch (this._sourceType) {
case 'content':
this.#setValue((event.target).selection);
break;
@@ -98,7 +98,7 @@ export class UmbPropertyEditorUIContentPickerSourceTypeElement
}
#renderType() {
- switch (this.sourceType) {
+ switch (this._sourceType) {
case 'content':
return this.#renderTypeContent();
case 'media':
From ecdfa89b9ea9a4829212f977e5d0226062316971 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 14:54:23 +0200
Subject: [PATCH 24/49] chore(eslint): disable naming conventions for property
editor interfaces
---
.../property-editor/extensions/property-editor.extension.ts | 3 +++
1 file changed, 3 insertions(+)
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 2ef67d3fa90c..708b590b56b8 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;
From 25ca728b285591716b27047d73e73615705cc96f Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 14:54:41 +0200
Subject: [PATCH 25/49] chore(eslint): follow naming conventions
---
.../property-action/kinds/default/property-action.element.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-action/kinds/default/property-action.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-action/kinds/default/property-action.element.ts
index d57abc563da8..b5c74ecfa9a3 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/property-action/kinds/default/property-action.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-action/kinds/default/property-action.element.ts
@@ -16,7 +16,7 @@ export class UmbPropertyActionElement<
#api?: ApiType;
@state()
- _href?: string;
+ private _href?: string;
@property({ attribute: false })
public manifest?: ManifestPropertyActionDefaultKind;
From 7ce7af8c94b9bfb9230c37caaff20c5cbcb33411 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 15:06:02 +0200
Subject: [PATCH 26/49] chore(storybook): fix story
---
.../common/confirm/confirm-modal.stories.ts | 38 ++++++++++++-------
1 file changed, 24 insertions(+), 14 deletions(-)
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 b9a249babefa..68a2a64907fd 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,
+ },
+};
From d281cc24ccc5536b1efdcf3951b155b3c1037cd7 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 15:06:10 +0200
Subject: [PATCH 27/49] chore(eslint): follow naming conventions
---
.../src/mocks/handlers/config.handlers.ts | 4 ++--
.../core/entity-action/common/delete/delete.action.ts | 2 +-
.../common/error-viewer/error-viewer-modal.element.ts | 4 ++--
.../src/packages/core/modal/context/modal.context.ts | 2 ++
.../src/packages/core/models/index.ts | 2 +-
.../core/object-type/input-object-type.element.ts | 6 +++---
.../core/picker/search/picker-search-field.element.ts | 6 +++---
.../core/picker/search/picker-search-result.element.ts | 8 ++++----
.../result-item/picker-search-result-item-element-base.ts | 2 +-
...ument-workspace-split-view-variant-selector.element.ts | 2 +-
.../language/language-workspace-editor.element.ts | 2 +-
.../components/input-dropzone/input-dropzone.element.ts | 4 ++--
.../media/media/dropzone/dropzone-media.element.ts | 2 +-
.../members/member/item/member-item-ref.element.ts | 4 ++--
.../workspace/member/member-workspace-editor.element.ts | 6 +++---
.../modal/bulk-trash-with-relation-modal.element.ts | 2 +-
.../entity-actions/delete/delete-with-relation.action.ts | 2 +-
.../conditions/group-id/group-id.condition.ts | 4 ++--
18 files changed, 33 insertions(+), 31 deletions(-)
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 99f9ba5b2cb2..0729df34a5e1 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/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 e4c1342c6ce4..bd6f2fd1587f 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/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 71f500401f87..a5315b9a6a15 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 7280645d0acd..3271d035d437 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 804ef8093476..df910c6f2834 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 fbb301429d7e..49cec769d60b 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 22287a8ff353..0e6cf8be7cf4 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 fa3a4b8751ec..4fcbe790dea7 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 07969e0aa09e..9a0e8a126800 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/media/media/dropzone/dropzone-media.element.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/dropzone/dropzone-media.element.ts
index a0595f7f9021..e559da45e553 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/dropzone/dropzone-media.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/dropzone/dropzone-media.element.ts
@@ -43,7 +43,7 @@ export class UmbDropzoneMediaElement extends UmbInputDropzoneElement {
// TODO: Revisit this. I am not sure why it is needed to call these methods here when they are already called in the constructor of the parent class.
// If we do not call them here, the observer will use the wrong instance of the dropzone manager (UmbDropZoneManager instead of UmbMediaDropzoneManager).
- this.#observeProgress();
+ this._observeProgress();
this._observeProgressItems();
}
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 a097ea138e0e..e28ad24ee8da 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 51d3b2a18a85..b75d75576ada 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/relations/relations/entity-actions/bulk-trash/modal/bulk-trash-with-relation-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/bulk-trash/modal/bulk-trash-with-relation-modal.element.ts
index 646818929624..d3a8e5d88de4 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/bulk-trash/modal/bulk-trash-with-relation-modal.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/bulk-trash/modal/bulk-trash-with-relation-modal.element.ts
@@ -22,7 +22,7 @@ export class UmbBulkTrashWithRelationConfirmModalElement extends UmbModalBaseEle
UmbBulkTrashWithRelationConfirmModalValue
> {
@state()
- _referencesConfig?: UmbConfirmBulkActionModalEntityReferencesConfig;
+ private _referencesConfig?: UmbConfirmBulkActionModalEntityReferencesConfig;
protected override firstUpdated(_changedProperties: PropertyValues): void {
super.firstUpdated(_changedProperties);
diff --git a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/delete/delete-with-relation.action.ts b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/delete/delete-with-relation.action.ts
index 5a89f91b4606..c42ee1774e8f 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/delete/delete-with-relation.action.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/relations/relations/entity-actions/delete/delete-with-relation.action.ts
@@ -9,7 +9,7 @@ import { UmbDeleteEntityAction } from '@umbraco-cms/backoffice/entity-action';
* @augments {UmbEntityActionBase}
*/
export class UmbDeleteWithRelationEntityAction extends UmbDeleteEntityAction {
- override async _confirmDelete() {
+ protected override async _confirmDelete() {
if (!this.args.unique) throw new Error('Cannot delete an item without a unique identifier.');
await umbOpenModal(this, UMB_DELETE_WITH_RELATION_CONFIRM_MODAL, {
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 7e3c38db4b6c..1518cdc4aab9 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;
From 5a8b855f6c7969cbfe0cf88053f6511cee6644d8 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 15:29:20 +0200
Subject: [PATCH 28/49] build(eslint): allows `_host` as public variable
---
src/Umbraco.Web.UI.Client/eslint.config.js | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/Umbraco.Web.UI.Client/eslint.config.js b/src/Umbraco.Web.UI.Client/eslint.config.js
index e30d197bd641..c7de7f247200 100644
--- a/src/Umbraco.Web.UI.Client/eslint.config.js
+++ b/src/Umbraco.Web.UI.Client/eslint.config.js
@@ -112,6 +112,10 @@ export default [
{
selector: ['variableLike', 'memberLike'],
modifiers: ['public'],
+ filter: {
+ regex: '^_host$',
+ match: false,
+ },
format: ['camelCase', 'UPPER_CASE', 'PascalCase'],
leadingUnderscore: 'forbid',
trailingUnderscore: 'forbid',
From d042c6a3e02a566254a28fda46d80074e44a78dc Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 15:32:58 +0200
Subject: [PATCH 29/49] chore(eslint): follow naming conventions
---
.../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 +
.../handlers/data-type/filter.handlers.ts | 4 +-
.../block-grid-area-config-entry.element.ts | 6 +--
.../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 | 50 +++++++++++--------
.../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 | 22 ++++----
.../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 | 3 ++
.../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 +-
.../default/entity-action.element.ts | 2 +-
.../entity-action-list.element.ts | 6 +--
.../common/bulk-delete/bulk-delete.action.ts | 8 +--
.../entity-item-ref.element.ts | 2 +-
.../conditions/switch.condition.ts | 1 +
.../extension-registry/conditions/types.ts | 5 --
...nsion-element-and-api-slot-element-base.ts | 16 +++---
.../packages/core/menu/conditions/types.ts | 1 +
...idebar-menu-with-entity-actions.element.ts | 4 +-
73 files changed, 220 insertions(+), 186 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/observer.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/observer.ts
index c6ffd407b185..cb64100f5e5d 100644
--- a/src/Umbraco.Web.UI.Client/src/libs/observable-api/observer.ts
+++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/observer.ts
@@ -1,6 +1,7 @@
import type { Observable, Subscription } from '@umbraco-cms/backoffice/external/rxjs';
export type { Observable } from '@umbraco-cms/backoffice/external/rxjs';
+// eslint-disable-next-line @typescript-eslint/naming-convention
export type ObserverCallback = (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 1b843ecff4d6..eb5a1b0e7462 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 1d43da86eaf4..22f2b3e6e75c 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 3b613716d2cf..6f011fd44c15 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 d07d69f1b69c..3737b2060a62 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/data-type/filter.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/data-type/filter.handlers.ts
index 0a212404ef4d..c48f8334b463 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/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 d0f47ea8919c..7614d755dc75 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/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 a29ce7fc8907..773ba309c690 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 d38ee79c25d0..09c5dac83a93 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 f4e5747bca58..f1dc58534248 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 59ede425845e..aca05d1ea2e3 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 d4b38c13e888..931d195b5979 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;
+ private _createBeforePath?: string;
+
@state()
- _createAfterPath?: string;
+ private _createAfterPath?: string;
@state()
- _label = '';
+ private _label = '';
@state()
- _icon?: string;
+ private _icon?: string;
@state()
- _exposed?: boolean;
+ 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 d969f6e914d4..e6b7746a1aec 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 2549a7f18489..a36e0f56587a 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 ea43807b9d48..69e407416b35 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 ac5ffb2eb0a6..be8013a4688a 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 d0ecf50f9781..b4a19250c35f 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 b20e72711c9a..8e9f274c53b3 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 25283f8065f9..ab211a2433b9 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 1930897f52ac..afc6867b330e 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 e8b4b4ed8d36..baeba6c44f0b 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 f1a2209417f1..92129a97f28f 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 002b82272abe..3f0dc522fc93 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 a80a4a3ee5a5..2237af050453 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 d97744471b0d..2a3f91dc7828 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 1bbecd25353a..da0963dbc7c4 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 96e6ef211019..1a60f07dea0e 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 c3892ab1e8f8..50d8af1e36bc 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;
+ private _manager?: BlockManagerContextType;
+ private _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 39e759107063..18b55b91077c 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,7 +276,7 @@ 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,
);
#settingsValuesObservable?: Observable;
@@ -366,7 +366,7 @@ export abstract class UmbBlockEntryContext<
null,
);
this.observe(
- this.settingsDataContentTypeKey,
+ this._settingsDataContentTypeKey,
(settingsElementTypeKey) => {
if (!settingsElementTypeKey) return;
this.#getSettingsStructure(settingsElementTypeKey);
@@ -386,7 +386,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 +503,7 @@ export abstract class UmbBlockEntryContext<
this.#observeReadOnlyState();
}
- abstract _gotManager(): void;
+ protected abstract _gotManager(): void;
#gotEntries() {
this.#updateCreatePaths();
@@ -518,7 +518,7 @@ export abstract class UmbBlockEntryContext<
);
}
- abstract _gotEntries(): void;
+ protected abstract _gotEntries(): void;
#observeContentData() {
if (!this._manager || !this.#contentKey) return;
@@ -555,7 +555,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 ef818637f29a..08d3760117dd 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 f0112b2ed9e7..c03949aee156 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 282755fff584..9c2e1b9a38bd 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 89c0388d5a54..949a4312c61d 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 e35d81977188..06108fe2c6eb 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 1ce6295ebc13..3b6f4d4e1588 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 fb592580eb16..ad6d83ca8ae3 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 fbfc307945f3..8bbd9cec4d13 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 e9ce9d3152ab..de633b326bec 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 3c35e82667f8..b8644d21885d 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 862464334455..4567e178a103 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 04c68d2e5c6b..94d29324ac53 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.
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 e892e9cc31d7..2e6aedc4c06d 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 bbc93cf00f27..4661ae1b41f1 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 95f1b9a12792..2745074f6283 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 a8f86836337c..49adf60673d2 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 78a74aa86f79..051f6caffce6 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 5497acc11346..90048ce9dfb6 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 f742fa0738bb..f033663468bf 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 451be57c5a81..7398f0276419 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 c9d011257d9d..fffc7743a0fa 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 611ccc724117..517d7427f670 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 ce875f7b56d1..8c10231db6ad 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 9d518bd362de..b21375a67e67 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 ff3117613dd9..58ed9e6f36ac 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 0fc06dc13ebf..c9e115dc9302 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 989b889406f2..a2a983b482c1 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 6727375a9e8e..3908b6c95a84 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 87927eb1bee5..c2b4cd654d99 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 1295413273bf..59bd6f1bac1b 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 b78188b73b80..3a33449755e8 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 b2c1a7133599..9ed435e8980e 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 22960a90f27c..8137a605bca7 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 ad36835d1dd7..babc2991709b 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 3df6311c7797..e2918650afce 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/default/entity-action.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/default/entity-action.element.ts
index c3ac0d406fa2..eba6470ca100 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 83e181f67e4d..17b15475c1a8 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 8da90bffc561..41e4bc9d47fe 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,7 @@ export class UmbDeleteEntityBulkAction<
MetaKindType extends MetaEntityBulkActionDeleteKind = MetaEntityBulkActionDeleteKind,
> extends UmbEntityBulkActionBase {
#localize = new UmbLocalizationController(this);
- _items: Array = [];
+ #items: Array = [];
override async execute() {
if (this.selection?.length === 0) {
@@ -26,7 +26,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 +51,7 @@ export class UmbDeleteEntityBulkAction<
const { data } = await itemRepository.requestItems(this.selection);
- this._items = data ?? [];
+ this.#items = data ?? [];
}
async #requestBulkDelete(uniques: Array) {
@@ -105,7 +105,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 275fdf48fe22..17d1721051b2 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 2ecf1307afbe..454ca4bdaf10 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 ee46b35085c2..5b08b30c8888 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
@@ -3,11 +3,6 @@ import type { UmbConditionConfigBase } from '@umbraco-cms/backoffice/extension-a
export type UmbCoreConditionConfigs = SwitchConditionConfig | UmbConditionConfigBase;
-/**
- * @deprecated instead use global UmbExtensionConditionConfig
- */
-export type ConditionTypes = UmbCoreConditionConfigs;
-
type UnionOfProperties = T extends object ? T[keyof T] : never;
declare global {
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 8837c0ea38c8..a08b131ea3ec 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;
+ private _api: ManifestType['API_TYPE'] | undefined;
@state()
- _element: ManifestType['ELEMENT_TYPE'] | undefined;
+ private _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 b2d40d3bdb8e..9647f1684782 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 84d46fe2a3e7..adce5916467c 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);
From 58c144f90584d14c9a093cbaa30d1d075dc77f14 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 15:37:59 +0200
Subject: [PATCH 30/49] build(eslint): allows double leading underscore on
public members
---
src/Umbraco.Web.UI.Client/eslint.config.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/eslint.config.js b/src/Umbraco.Web.UI.Client/eslint.config.js
index c7de7f247200..dbcf76e3dae6 100644
--- a/src/Umbraco.Web.UI.Client/eslint.config.js
+++ b/src/Umbraco.Web.UI.Client/eslint.config.js
@@ -117,14 +117,14 @@ export default [
match: false,
},
format: ['camelCase', 'UPPER_CASE', 'PascalCase'],
- leadingUnderscore: 'forbid',
+ leadingUnderscore: 'allowDouble',
trailingUnderscore: 'forbid',
},
// All #private members and variables should be camelCase without leading underscore
// Example: #myPublicVariable, #myPublicMethod
{
selector: ['variableLike', 'memberLike'],
- modifiers: ['private'],
+ modifiers: ['#private'],
format: ['camelCase'],
leadingUnderscore: 'forbid',
trailingUnderscore: 'forbid',
From 6e098a5a75ec059fbeccff3430e982035af34ac8 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 15:39:31 +0200
Subject: [PATCH 31/49] build(eslint): matches #private and public modifiers
---
src/Umbraco.Web.UI.Client/eslint.config.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/eslint.config.js b/src/Umbraco.Web.UI.Client/eslint.config.js
index dbcf76e3dae6..1f0a7f2fc1cd 100644
--- a/src/Umbraco.Web.UI.Client/eslint.config.js
+++ b/src/Umbraco.Web.UI.Client/eslint.config.js
@@ -125,8 +125,8 @@ export default [
{
selector: ['variableLike', 'memberLike'],
modifiers: ['#private'],
- format: ['camelCase'],
- leadingUnderscore: 'forbid',
+ 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)
From ca32cdb4cfbb793bdd9c881969f074abf9f01e70 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 15:45:58 +0200
Subject: [PATCH 32/49] build(eslint): ignores language files
---
src/Umbraco.Web.UI.Client/eslint.config.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Umbraco.Web.UI.Client/eslint.config.js b/src/Umbraco.Web.UI.Client/eslint.config.js
index 1f0a7f2fc1cd..123cbed40435 100644
--- a/src/Umbraco.Web.UI.Client/eslint.config.js
+++ b/src/Umbraco.Web.UI.Client/eslint.config.js
@@ -72,7 +72,7 @@ export default [
// Pattern-specific overrides
{
files: ['**/*.ts'],
- ignores: ['.storybook', '**/*.stories.ts', '**/umbraco-package.ts'],
+ ignores: ['.storybook', '**/*.stories.ts', '**/umbraco-package.ts', 'src/assets/lang/*.ts'],
languageOptions: {
parserOptions: {
project: true,
From 1d4ca5f11cc96233c91bc8380463c9b4c0ef5d5c Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 15:46:11 +0200
Subject: [PATCH 33/49] chore(eslint): ignores umbraco package file
---
.../src/json-schema/umbraco-package-schema.ts | 1 +
1 file changed, 1 insertion(+)
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 fae9b07e6599..a001c52d513a 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';
/**
From 6f77b26196bc4e10f824430611c2465d57dc0d92 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 15:48:08 +0200
Subject: [PATCH 34/49] chore(eslint): follow naming conventions
---
.../error/installer-error.element.ts | 2 +-
.../apps/upgrader/upgrader-view.element.ts | 4 +--
.../src/apps/upgrader/upgrader.element.ts | 32 +++++++++----------
.../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 +
...grid-area-type-workspace-editor.element.ts | 2 +-
.../code-editor/models/code-editor.model.ts | 1 +
.../document-configuration.context.ts | 4 +--
.../modal/media-type-import-modal.element.ts | 4 +--
13 files changed, 33 insertions(+), 26 deletions(-)
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 a7aad8e47003..968c4fda7087 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 1b1f78132dd2..21fc60d6db91 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 6b959d1f9d69..6d25f9528100 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`
`;
}
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) => {
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/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 48bdd603526e..6a51e24d3f7e 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 581cec28b517..1d1e594d635c 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 255621e28f05..ac09a9c46b80 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 bf6ad39b2583..67534655a4f0 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 9ed63a986c3e..018ffe8921d2 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;
+ 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/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 2ebb3c35e779..50c521c4cd0a 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();
}
From 87d8908fe3a71700e1a9af1207db3b94bc09412e Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 15:52:55 +0200
Subject: [PATCH 35/49] storybook lang
---
src/Umbraco.Web.UI.Client/.storybook/preview.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/.storybook/preview.js b/src/Umbraco.Web.UI.Client/.storybook/preview.js
index 4ed958e32cae..98c8ab65b5e8 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
});
}
From 48140930157b83a6c6d843e93bb692bf82e81536 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 15:56:08 +0200
Subject: [PATCH 36/49] chore(eslint): follow naming conventions
---
.../src/apps/upgrader/upgrader.element.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
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 6d25f9528100..fa1b105c484c 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
@@ -36,7 +36,7 @@ export class UmbUpgraderElement extends UmbLitElement {
.upgrading=${this._upgrading}
.settings=${this._upgradeSettings}
.errorMessage=${this._errorMessage}
- @onAuthorizeUpgrade=${this._handleSubmit}>
+ @onAuthorizeUpgrade=${this.#handleSubmit}>
`;
}
@@ -56,7 +56,7 @@ export class UmbUpgraderElement extends UmbLitElement {
this._fetching = false;
}
- _handleSubmit = async (e: CustomEvent) => {
+ #handleSubmit = async (e: CustomEvent) => {
e.stopPropagation();
this._errorMessage = '';
this._upgrading = true;
From 7786e34dca29e83ce781c4f08fc44427a6386639 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 16:00:13 +0200
Subject: [PATCH 37/49] chore(eslint): follow naming conventions
---
.../utils/property-editor-test-utils.ts | 94 ++++++++++---------
1 file changed, 49 insertions(+), 45 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/property-editors/utils/property-editor-test-utils.ts b/src/Umbraco.Web.UI.Client/src/packages/property-editors/utils/property-editor-test-utils.ts
index 6798205d3f20..3c021856d0ea 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/property-editors/utils/property-editor-test-utils.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/property-editors/utils/property-editor-test-utils.ts
@@ -7,154 +7,158 @@ import { expect } from '@open-wc/testing';
/**
* Type definitions for better domain modeling
*/
-export type PropertyEditorElement = { config?: unknown };
-export type ShadowDOMElement = { shadowRoot?: ShadowRoot | null };
-export type SingleSelectElement = { value: string } & ShadowDOMElement;
-export type MultiSelectElement = { value: string[] } & ShadowDOMElement;
+export type UmbPropertyEditorElement = { config?: unknown };
+export type UmbShadowDOMElement = { shadowRoot?: ShadowRoot | null };
+export type UmbSingleSelectElement = { value: string } & UmbShadowDOMElement;
+export type UmbMultiSelectElement = { value: string[] } & UmbShadowDOMElement;
-export interface ConfigItem {
+export interface UmbConfigItem {
name: string;
value: string;
}
-export interface TestDataEntry {
+export interface UmbTestDataEntry {
value: T;
expected: T;
}
-export type ConfigAlias = 'items' | 'multiple';
-export type CSSSelector = 'uui-select' | 'umb-input-checkbox-list' | 'umb-input-dropdown-list';
+export type UmbConfigAlias = 'items' | 'multiple';
+export type UmbCSSSelector = 'uui-select' | 'umb-input-checkbox-list' | 'umb-input-dropdown-list';
/**
* Helper function to setup basic string array configuration
- * @param {PropertyEditorElement} element - The property editor element to configure
+ * @param {UmbPropertyEditorElement} element - The property editor element to configure
* @param {string[]} items - Array of string items for configuration
*/
-export function setupBasicStringConfig(element: PropertyEditorElement, items: string[] = ['Red', 'Green', 'Blue']) {
+export function setupBasicStringConfig(element: UmbPropertyEditorElement, items: string[] = ['Red', 'Green', 'Blue']) {
element.config = {
- getValueByAlias: (alias: ConfigAlias) => {
+ getValueByAlias: (alias: UmbConfigAlias) => {
if (alias === 'items') {
return items;
}
return undefined;
},
- } as { getValueByAlias: (alias: ConfigAlias) => unknown };
+ } as { getValueByAlias: (alias: UmbConfigAlias) => unknown };
}
/**
* Helper function to setup object array configuration
- * @param {PropertyEditorElement} element - The property editor element to configure
- * @param {ConfigItem[]} items - Array of object items for configuration
+ * @param {UmbPropertyEditorElement} element - The property editor element to configure
+ * @param {UmbConfigItem[]} items - Array of object items for configuration
*/
export function setupObjectConfig(
- element: PropertyEditorElement,
- items: ConfigItem[] = [
+ element: UmbPropertyEditorElement,
+ items: UmbConfigItem[] = [
{ name: 'Red Color', value: 'red' },
{ name: 'Green Color', value: 'green' },
{ name: 'Blue Color', value: 'blue' },
],
) {
element.config = {
- getValueByAlias: (alias: ConfigAlias) => {
+ getValueByAlias: (alias: UmbConfigAlias) => {
if (alias === 'items') {
return items;
}
return undefined;
},
- } as { getValueByAlias: (alias: ConfigAlias) => unknown };
+ } as { getValueByAlias: (alias: UmbConfigAlias) => unknown };
}
/**
* Helper function to setup empty configuration
- * @param {PropertyEditorElement} element - The property editor element to configure
+ * @param {UmbPropertyEditorElement} element - The property editor element to configure
*/
-export function setupEmptyConfig(element: PropertyEditorElement) {
+export function setupEmptyConfig(element: UmbPropertyEditorElement) {
element.config = {
getValueByAlias: () => undefined,
- } as { getValueByAlias: (alias: ConfigAlias) => unknown };
+ } as { getValueByAlias: (alias: UmbConfigAlias) => unknown };
}
/**
* Helper function to get select element from shadow DOM
- * @param {ShadowDOMElement} element - The property editor element
+ * @param {UmbShadowDOMElement} element - The property editor element
* @returns {Element | null} The UUI select element or null
*/
-export function getSelectElement(element: ShadowDOMElement) {
- return element.shadowRoot?.querySelector('uui-select' as CSSSelector);
+export function getSelectElement(element: UmbShadowDOMElement) {
+ return element.shadowRoot?.querySelector('uui-select' as UmbCSSSelector);
}
/**
* Helper function to get checkbox list element from shadow DOM
- * @param {ShadowDOMElement} element - The property editor element
+ * @param {UmbShadowDOMElement} element - The property editor element
* @returns {Element | null} The checkbox list element or null
*/
-export function getCheckboxListElement(element: ShadowDOMElement) {
- return element.shadowRoot?.querySelector('umb-input-checkbox-list' as CSSSelector);
+export function getCheckboxListElement(element: UmbShadowDOMElement) {
+ return element.shadowRoot?.querySelector('umb-input-checkbox-list' as UmbCSSSelector);
}
/**
* Helper function to get dropdown element from shadow DOM
- * @param {ShadowDOMElement} element - The property editor element
+ * @param {UmbShadowDOMElement} element - The property editor element
* @returns {Element | null} The dropdown element or null
*/
-export function getDropdownElement(element: ShadowDOMElement) {
- return element.shadowRoot?.querySelector('umb-input-dropdown-list' as CSSSelector);
+export function getDropdownElement(element: UmbShadowDOMElement) {
+ return element.shadowRoot?.querySelector('umb-input-dropdown-list' as UmbCSSSelector);
}
/**
* Helper function to get selected value from select DOM
- * @param {ShadowDOMElement} element - The property editor element
+ * @param {UmbShadowDOMElement} element - The property editor element
* @returns {string} The selected value string
*/
-export function getSelectedValue(element: ShadowDOMElement): string {
+export function getSelectedValue(element: UmbShadowDOMElement): string {
const selectElement = getSelectElement(element) as { value?: string } | null;
return selectElement?.value || '';
}
/**
* Helper function to get selection from checkbox list DOM
- * @param {ShadowDOMElement} element - The property editor element
+ * @param {UmbShadowDOMElement} element - The property editor element
* @returns {string[]} Array of selected values
*/
-export function getCheckboxSelection(element: ShadowDOMElement): string[] {
+export function getCheckboxSelection(element: UmbShadowDOMElement): string[] {
const checkboxElement = getCheckboxListElement(element) as { selection?: string[] } | null;
return checkboxElement?.selection || [];
}
/**
* Helper function to get selection from dropdown DOM
- * @param {ShadowDOMElement} element - The property editor element
+ * @param {UmbShadowDOMElement} element - The property editor element
* @returns {string[]} Array of selected values
*/
-export function getDropdownSelection(element: ShadowDOMElement): string[] {
+export function getDropdownSelection(element: UmbShadowDOMElement): string[] {
const dropdownElement = getDropdownElement(element) as { value?: string; selection?: string[] } | null;
// Prefer selection array if available, fallback to parsing value string
if (dropdownElement?.selection) {
return dropdownElement.selection;
}
// Fallback: parse comma-separated string (note: assumes values don't contain commas)
- return dropdownElement?.value ? dropdownElement.value.split(', ').filter(v => v.trim().length > 0) : [];
+ return dropdownElement?.value ? dropdownElement.value.split(', ').filter((v) => v.trim().length > 0) : [];
}
/**
* Helper function to verify both value and DOM state for single select
- * @param {SingleSelectElement} element - The property editor element
+ * @param {UmbSingleSelectElement} element - The property editor element
* @param {string} expectedValue - Expected element value
* @param {string} expectedSelected - Expected selected value in DOM
*/
-export function verifySelectValueAndDOM(element: SingleSelectElement, expectedValue: string, expectedSelected: string) {
+export function verifySelectValueAndDOM(
+ element: UmbSingleSelectElement,
+ expectedValue: string,
+ expectedSelected: string,
+) {
expect(element.value).to.equal(expectedValue);
expect(getSelectedValue(element)).to.equal(expectedSelected);
}
/**
* Helper function to verify both value and DOM state for multi-select
- * @param {MultiSelectElement} element - The property editor element
+ * @param {UmbMultiSelectElement} element - The property editor element
* @param {string[]} expectedValue - Expected element value array
* @param {string[]} expectedSelection - Expected selection array in DOM
*/
export function verifyMultiSelectValueAndDOM(
- element: MultiSelectElement,
+ element: UmbMultiSelectElement,
expectedValue: string[],
expectedSelection: string[],
) {
@@ -164,12 +168,12 @@ export function verifyMultiSelectValueAndDOM(
/**
* Helper function to verify both value and DOM state for dropdown
- * @param {MultiSelectElement} element - The property editor element
+ * @param {UmbMultiSelectElement} element - The property editor element
* @param {string[]} expectedValue - Expected element value array
* @param {string[]} expectedSelection - Expected selection array in DOM
*/
export function verifyDropdownValueAndDOM(
- element: MultiSelectElement,
+ element: UmbMultiSelectElement,
expectedValue: string[],
expectedSelection: string[],
) {
@@ -180,14 +184,14 @@ export function verifyDropdownValueAndDOM(
/**
* Common test data for multiple updates
*/
-export const SINGLE_SELECT_TEST_DATA: TestDataEntry[] = [
+export const SINGLE_SELECT_TEST_DATA: UmbTestDataEntry[] = [
{ value: 'Red', expected: 'Red' },
{ value: 'Green', expected: 'Green' },
{ value: 'Blue', expected: 'Blue' },
{ value: '', expected: '' },
];
-export const MULTI_SELECT_TEST_DATA: TestDataEntry[] = [
+export const MULTI_SELECT_TEST_DATA: UmbTestDataEntry[] = [
{ value: ['Red'], expected: ['Red'] },
{ value: ['Red', 'Blue'], expected: ['Red', 'Blue'] },
{ value: ['Green'], expected: ['Green'] },
From 0d4defdfcf32c30be256f23e7e5374a13ec8b53d Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 16:03:31 +0200
Subject: [PATCH 38/49] chore(eslint): make _manager a little more open
---
.../src/packages/block/block/context/block-entries.context.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
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 50d8af1e36bc..d6d1ef44f41d 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 {
//
- private _manager?: BlockManagerContextType;
- private _retrieveManager;
+ protected _manager?: BlockManagerContextType;
+ protected _retrieveManager;
protected _catalogueRouteBuilderState = new UmbBasicState(undefined);
readonly catalogueRouteBuilder = this._catalogueRouteBuilderState.asObservable();
From 34cf1f48a7ee1466c96af87ff293aebbc6c5ae30 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 16:05:32 +0200
Subject: [PATCH 39/49] chore(eslint): some properties should be protected
---
.../extension-element-and-api-slot-element-base.ts | 4 ++--
.../result-item/picker-search-result-item-element-base.ts | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
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 a08b131ea3ec..95f219131ab8 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
@@ -34,10 +34,10 @@ export abstract class UmbExtensionElementAndApiSlotElementBase<
#extensionController?: UmbExtensionElementAndApiInitializer;
@state()
- private _api: ManifestType['API_TYPE'] | undefined;
+ protected _api: ManifestType['API_TYPE'] | undefined;
@state()
- private _element: ManifestType['ELEMENT_TYPE'] | undefined;
+ protected _element: ManifestType['ELEMENT_TYPE'] | undefined;
abstract getExtensionType(): string;
abstract getDefaultElementName(): string;
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 9a0e8a126800..93fccfe64e02 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
Date: Thu, 7 Aug 2025 16:24:03 +0200
Subject: [PATCH 40/49] 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>
---
.../components/input-image-cropper/image-cropper.element.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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 a68e95e20a08..6bb8a6d2dcfa 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
@@ -178,7 +178,7 @@ 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) {
From a7b14c94c014f9e7fe427ef503515f6b7b63e5c5 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 16:24:09 +0200
Subject: [PATCH 41/49] 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>
---
.../components/input-image-cropper/image-cropper.element.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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 6bb8a6d2dcfa..e0223597e76d 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
@@ -183,7 +183,7 @@ export class UmbImageCropperElement extends UmbLitElement {
#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();
From d2dec761b5750719a171f957168277dcd2f0a2bd Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Thu, 7 Aug 2025 16:25:22 +0200
Subject: [PATCH 42/49] 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>
---
.../components/input-image-cropper/image-cropper.element.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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 e0223597e76d..1bce83938316 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
@@ -40,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() {
From 07a1b4c5198e9b2b3c9e9be7776ec39aa8a6a163 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20Lyngs=C3=B8?=
Date: Fri, 8 Aug 2025 09:32:21 +0200
Subject: [PATCH 43/49] proxy type for UrlParametersRecord
---
.../core/utils/path/url-pattern-to-string.function.ts | 4 ++++
1 file changed, 4 insertions(+)
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 8ff2829f6da1..781e57a91a43 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,8 @@
export type UmbUrlParametersRecord = Record string } | null>;
+/**
+ * @deprecated Use `UmbUrlParametersRecord` instead. Will be removed in v.18
+ */
+export type UrlParametersRecord = UmbUrlParametersRecord;
const PARAM_IDENTIFIER = /:([^/]+)/g;
From 3ee209b312710a0d2235b29536f3167612447839 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20Lyngs=C3=B8?=
Date: Fri, 8 Aug 2025 09:42:42 +0200
Subject: [PATCH 44/49] _items deprecated property
---
.../common/bulk-delete/bulk-delete.action.ts | 12 ++++++++++++
1 file changed, 12 insertions(+)
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 41e4bc9d47fe..a9e6fcf4b5f0 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
@@ -18,6 +18,18 @@ export class UmbDeleteEntityBulkAction<
> extends UmbEntityBulkActionBase {
#localize = new UmbLocalizationController(this);
#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) {
From 5b0e8425faabf9bd0c43ba3bd58febbac55e907c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20Lyngs=C3=B8?=
Date: Fri, 8 Aug 2025 09:44:01 +0200
Subject: [PATCH 45/49] bring back ConditionTypes type
---
.../src/packages/core/extension-registry/conditions/types.ts | 5 +++++
1 file changed, 5 insertions(+)
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 5b08b30c8888..9304cf893e92 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
@@ -3,6 +3,11 @@ import type { UmbConditionConfigBase } from '@umbraco-cms/backoffice/extension-a
export type UmbCoreConditionConfigs = SwitchConditionConfig | UmbConditionConfigBase;
+/**
+ * @deprecated instead use global UmbExtensionConditionConfig, will be removed in v.17
+ */
+export type ConditionTypes = UmbCoreConditionConfigs;
+
type UnionOfProperties = T extends object ? T[keyof T] : never;
declare global {
From 53208a308d0e071e7905379f517f690fd5c45430 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20Lyngs=C3=B8?=
Date: Fri, 8 Aug 2025 09:46:28 +0200
Subject: [PATCH 46/49] bring back _items for trash bulk action
---
.../bulk-trash/bulk-trash.action.ts | 12 ++++++++++++
1 file changed, 12 insertions(+)
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 996de8b45523..01fee70f9812 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
@@ -19,6 +19,18 @@ export class UmbTrashEntityBulkAction<
> extends UmbEntityBulkActionBase {
#localize = new UmbLocalizationController(this);
#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) {
From 86eee33363ea568beecfaedbbcdd3ee22ec8ae7b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20Lyngs=C3=B8?=
Date: Fri, 8 Aug 2025 09:48:37 +0200
Subject: [PATCH 47/49] ignorer deprecated proxies
---
.../src/packages/core/extension-registry/conditions/types.ts | 1 +
.../packages/core/utils/path/url-pattern-to-string.function.ts | 1 +
2 files changed, 2 insertions(+)
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 9304cf893e92..6a8ab30e6eab 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
@@ -6,6 +6,7 @@ export type UmbCoreConditionConfigs = SwitchConditionConfig | UmbConditionConfig
/**
* @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/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 781e57a91a43..e7175e73082b 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
@@ -2,6 +2,7 @@ export type UmbUrlParametersRecord = Record
Date: Fri, 8 Aug 2025 10:05:41 +0200
Subject: [PATCH 48/49] keep settingsDataContentTypeKey for satefy
---
.../src/packages/block/block/context/block-entry.context.ts | 6 ++++++
1 file changed, 6 insertions(+)
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 18b55b91077c..31e4241e7a86 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
@@ -279,6 +279,12 @@ export abstract class UmbBlockEntryContext<
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 @typescript-eslint/naming-convention @typescript-eslint/no-unused-vars
+ private readonly settingsDataContentTypeKey = this._settingsDataContentTypeKey;
+
#settingsValuesObservable?: Observable;
public async settingsValues() {
await this.#settingsStructurePromise;
From 5d0742242c1b5351dd41c3e3f060e8d46cf35463 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20Lyngs=C3=B8?=
Date: Fri, 8 Aug 2025 10:15:22 +0200
Subject: [PATCH 49/49] fix disable line
---
.../src/packages/block/block/context/block-entry.context.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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 31e4241e7a86..8df8e0297385 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
@@ -282,7 +282,7 @@ export abstract class UmbBlockEntryContext<
/**
* @deprecated Use {@link _settingsDataContentTypeKey} instead. This will be removed in Umbraco 18.
*/
- // eslint-disable-next-line @typescript-eslint/naming-convention @typescript-eslint/no-unused-vars
+ // eslint-disable-next-line
private readonly settingsDataContentTypeKey = this._settingsDataContentTypeKey;
#settingsValuesObservable?: Observable;