Merge branch 'main' into v14/feature/block-custom-views

This commit is contained in:
Jacob Overgaard
2024-07-05 08:51:37 +02:00
committed by GitHub
180 changed files with 395 additions and 384 deletions

View File

@@ -1,11 +1,11 @@
import js from "@eslint/js";
import globals from "globals";
import importPlugin from "eslint-plugin-import";
import localRules from "eslint-plugin-local-rules";
import wcPlugin from "eslint-plugin-wc";
import litPlugin from "eslint-plugin-lit";
import litA11yPlugin from "eslint-plugin-lit-a11y";
import storybookPlugin from "eslint-plugin-storybook";
import js from '@eslint/js';
import globals from 'globals';
import importPlugin from 'eslint-plugin-import';
import localRules from 'eslint-plugin-local-rules';
import wcPlugin from 'eslint-plugin-wc';
import litPlugin from 'eslint-plugin-lit';
import litA11yPlugin from 'eslint-plugin-lit-a11y';
import storybookPlugin from 'eslint-plugin-storybook';
import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended';
import tseslint from 'typescript-eslint';
@@ -18,11 +18,11 @@ export default [
// Global ignores
{
ignores: [
"**/rollup.config.js",
"**/vite.config.ts",
"src/external",
"src/packages/core/icon-registry/icons",
"src/packages/core/icon-registry/icons.ts"
'**/rollup.config.js',
'**/vite.config.ts',
'src/external',
'src/packages/core/icon-registry/icons',
'src/packages/core/icon-registry/icons.ts',
],
},
@@ -35,52 +35,52 @@ export default [
},
globals: {
...globals.browser,
}
},
},
plugins: {
import: importPlugin,
"local-rules": localRules,
"wc": wcPlugin,
"lit": litPlugin,
"lit-a11y": litA11yPlugin,
"storybook": storybookPlugin
'local-rules': localRules,
wc: wcPlugin,
lit: litPlugin,
'lit-a11y': litA11yPlugin,
storybook: storybookPlugin,
},
rules: {
semi: ["warn", "always"],
"no-unused-vars": "warn",
"no-var": "error",
"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 }],
"local-rules/bad-type-import": "error",
"local-rules/enforce-element-suffix-on-element-class-name": "error",
"local-rules/enforce-umb-prefix-on-element-name": "error",
"local-rules/ensure-relative-import-use-js-extension": "error",
"local-rules/no-direct-api-import": "warn",
"local-rules/prefer-import-aliases": "error",
"local-rules/prefer-static-styles-last": "warn",
"local-rules/umb-class-prefix": "error",
"local-rules/no-relative-import-to-import-map-module": "error",
"local-rules/enforce-umbraco-external-imports": [
"error",
semi: ['warn', 'always'],
'no-unused-vars': 'off', //Let '@typescript-eslint/no-unused-vars' catch the errors to allow unused function parameters (ex: in interfaces)
'no-var': 'error',
'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 }],
'local-rules/bad-type-import': 'error',
'local-rules/enforce-element-suffix-on-element-class-name': 'error',
'local-rules/enforce-umb-prefix-on-element-name': 'error',
'local-rules/ensure-relative-import-use-js-extension': 'error',
'local-rules/no-direct-api-import': 'warn',
'local-rules/prefer-import-aliases': 'error',
'local-rules/prefer-static-styles-last': 'warn',
'local-rules/umb-class-prefix': 'error',
'local-rules/no-relative-import-to-import-map-module': 'error',
'local-rules/enforce-umbraco-external-imports': [
'error',
{
"exceptions": ["@umbraco-cms", "@open-wc/testing", "@storybook", "msw", ".", "vite"]
}
exceptions: ['@umbraco-cms', '@open-wc/testing', '@storybook', 'msw', '.', 'vite'],
},
],
"local-rules/exported-string-constant-naming": [
"error",
'local-rules/exported-string-constant-naming': [
'error',
{
"excludedFileNames": ["umbraco-package", "input-tiny-mce.defaults"] // TODO: what to do about the tiny mce defaults?
}
excludedFileNames: ['umbraco-package', 'input-tiny-mce.defaults'], // TODO: what to do about the tiny mce defaults?
},
],
"@typescript-eslint/no-non-null-assertion": "off",
"@typescript-eslint/no-explicit-any": "warn",
"@typescript-eslint/no-unused-vars": "warn",
"@typescript-eslint/consistent-type-exports": "error",
"@typescript-eslint/consistent-type-imports": "error",
"@typescript-eslint/no-import-type-side-effects": "warn"
}
'@typescript-eslint/no-non-null-assertion': 'off',
'@typescript-eslint/no-explicit-any': 'warn',
'@typescript-eslint/no-unused-vars': 'error',
'@typescript-eslint/consistent-type-exports': 'error',
'@typescript-eslint/consistent-type-imports': 'error',
'@typescript-eslint/no-import-type-side-effects': 'warn',
},
},
// Pattern-specific overrides
@@ -90,7 +90,7 @@ export default [
languageOptions: {
globals: {
...globals.node,
}
}
},
},
},
];

View File

@@ -22,7 +22,8 @@
"./src/packages/health-check",
"./src/packages/tags",
"./src/packages/templating",
"./src/packages/property-editors"
"./src/packages/property-editors",
"./src/packages/media"
],
"dependencies": {
"@types/diff": "^5.2.1",
@@ -48,7 +49,7 @@
"@hey-api/openapi-ts": "^0.48.1",
"@mdx-js/react": "^3.0.0",
"@open-wc/testing": "^4.0.0",
"@playwright/test": "^1.41.1",
"@playwright/test": "^1.45.1",
"@rollup/plugin-commonjs": "^25.0.7",
"@rollup/plugin-json": "^6.1.0",
"@rollup/plugin-node-resolve": "^15.2.3",
@@ -3384,12 +3385,12 @@
}
},
"node_modules/@playwright/test": {
"version": "1.45.0",
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.45.0.tgz",
"integrity": "sha512-TVYsfMlGAaxeUllNkywbwek67Ncf8FRGn8ZlRdO291OL3NjG9oMbfVhyP82HQF0CZLMrYsvesqoUekxdWuF9Qw==",
"version": "1.45.1",
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.45.1.tgz",
"integrity": "sha512-Wo1bWTzQvGA7LyKGIZc8nFSTFf2TkthGIFBR+QVNilvwouGzFd4PYukZe3rvf5PSqjHi1+1NyKSDZKcQWETzaA==",
"dev": true,
"dependencies": {
"playwright": "1.45.0"
"playwright": "1.45.1"
},
"bin": {
"playwright": "cli.js"
@@ -5043,9 +5044,9 @@
]
},
"node_modules/@shikijs/core": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.10.0.tgz",
"integrity": "sha512-BZcr6FCmPfP6TXaekvujZcnkFmJHZ/Yglu97r/9VjzVndQA56/F4WjUKtJRQUnK59Wi7p/UTAOekMfCJv7jnYg==",
"version": "1.10.1",
"resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.10.1.tgz",
"integrity": "sha512-qdiJS5a/QGCff7VUFIqd0hDdWly9rDp8lhVmXVrS11aazX8LOTRLHAXkkEeONNsS43EcCd7gax9LLoOz4vlFQA==",
"dev": true
},
"node_modules/@sinclair/typebox": {
@@ -7665,6 +7666,10 @@
"resolved": "src/packages/language",
"link": true
},
"node_modules/@umbraco-backoffice/media": {
"resolved": "src/packages/media",
"link": true
},
"node_modules/@umbraco-backoffice/property-editors": {
"resolved": "src/packages/property-editors",
"link": true
@@ -9320,9 +9325,9 @@
}
},
"node_modules/acorn": {
"version": "8.12.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz",
"integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==",
"version": "8.12.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
"integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
"dev": true,
"bin": {
"acorn": "bin/acorn"
@@ -10420,9 +10425,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001639",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001639.tgz",
"integrity": "sha512-eFHflNTBIlFwP2AIKaYuBQN/apnUoKNhBdza8ZnW/h2di4LCZ4xFqYlxUxo+LQ76KFI1PGcC1QDxMbxTZpSCAg==",
"version": "1.0.30001640",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001640.tgz",
"integrity": "sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==",
"dev": true,
"funding": [
{
@@ -17875,9 +17880,9 @@
}
},
"node_modules/pkg-types": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.2.tgz",
"integrity": "sha512-VEGf1he2DR5yowYRl0XJhWJq5ktm9gYIsH+y8sNJpHlxch7JPDaufgrsl4vYjd9hMUY8QVjoNncKbow9I7exyA==",
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.3.tgz",
"integrity": "sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==",
"dev": true,
"dependencies": {
"confbox": "^0.1.7",
@@ -17886,12 +17891,12 @@
}
},
"node_modules/playwright": {
"version": "1.45.0",
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.45.0.tgz",
"integrity": "sha512-4z3ac3plDfYzGB6r0Q3LF8POPR20Z8D0aXcxbJvmfMgSSq1hkcgvFRXJk9rUq5H/MJ0Ktal869hhOdI/zUTeLA==",
"version": "1.45.1",
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.45.1.tgz",
"integrity": "sha512-Hjrgae4kpSQBr98nhCj3IScxVeVUixqj+5oyif8TdIn2opTCPEzqAqNMeK42i3cWDCVu9MI+ZsGWw+gVR4ISBg==",
"dev": true,
"dependencies": {
"playwright-core": "1.45.0"
"playwright-core": "1.45.1"
},
"bin": {
"playwright": "cli.js"
@@ -17904,9 +17909,9 @@
}
},
"node_modules/playwright-core": {
"version": "1.45.0",
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.45.0.tgz",
"integrity": "sha512-lZmHlFQ0VYSpAs43dRq1/nJ9G/6SiTI7VPqidld9TDefL9tX87bTKExWZZUF5PeRyqtXqd8fQi2qmfIedkwsNQ==",
"version": "1.45.1",
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.45.1.tgz",
"integrity": "sha512-LF4CUUtrUu2TCpDw4mcrAIuYrEjVDfT1cHbJMfwnE2+1b8PZcFzPNgvZCvq2JfQ4aTjRCCHw5EJ2tmr2NSzdPg==",
"dev": true,
"bin": {
"playwright-core": "cli.js"
@@ -19346,12 +19351,12 @@
}
},
"node_modules/shiki": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/shiki/-/shiki-1.10.0.tgz",
"integrity": "sha512-YD2sXQ+TMD/F9BimV9Jn0wj35pqOvywvOG/3PB6hGHyGKlM7TJ9tyJ02jOb2kF8F0HfJwKNYrh3sW7jEcuRlXA==",
"version": "1.10.1",
"resolved": "https://registry.npmjs.org/shiki/-/shiki-1.10.1.tgz",
"integrity": "sha512-uafV7WCgN4YYrccH6yxpnps6k38sSTlFRrwc4jycWmhWxJIm9dPrk+XkY1hZ2t0I7jmacMNb15Lf2fspa/Y3lg==",
"dev": true,
"dependencies": {
"@shikijs/core": "1.10.0"
"@shikijs/core": "1.10.1"
}
},
"node_modules/side-channel": {
@@ -21073,9 +21078,9 @@
}
},
"node_modules/update-browserslist-db": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz",
"integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==",
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz",
"integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==",
"dev": true,
"funding": [
{
@@ -21310,13 +21315,13 @@
}
},
"node_modules/vite": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/vite/-/vite-5.3.2.tgz",
"integrity": "sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==",
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/vite/-/vite-5.3.3.tgz",
"integrity": "sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==",
"dev": true,
"dependencies": {
"esbuild": "^0.21.3",
"postcss": "^8.4.38",
"postcss": "^8.4.39",
"rollup": "^4.13.0"
},
"bin": {
@@ -22285,6 +22290,9 @@
"src/packages/language": {
"name": "@umbraco-backoffice/language"
},
"src/packages/media": {
"name": "@umbraco-backoffice/media"
},
"src/packages/property-editors": {
"name": "@umbraco-backoffice/property-editors"
},

View File

@@ -140,7 +140,8 @@
"./src/packages/health-check",
"./src/packages/tags",
"./src/packages/templating",
"./src/packages/property-editors"
"./src/packages/property-editors",
"./src/packages/media"
],
"scripts": {
"backoffice:test:e2e": "npx playwright test",
@@ -179,7 +180,7 @@
"test:dev": "web-test-runner --config ./web-test-runner.dev.config.mjs",
"test:dev-watch": "web-test-runner --watch --config ./web-test-runner.dev.config.mjs",
"test:watch": "web-test-runner --watch",
"test": "web-test-runner --coverage",
"test": "web-test-runner",
"wc-analyze:vscode": "wca **/*.element.ts --format vscode --outFile dist-cms/vscode-html-custom-data.json",
"wc-analyze": "wca **/*.element.ts --outFile dist-cms/custom-elements.json",
"generate:tsconfig": "node ./devops/tsconfig/index.js",
@@ -215,7 +216,7 @@
"@hey-api/openapi-ts": "^0.48.1",
"@mdx-js/react": "^3.0.0",
"@open-wc/testing": "^4.0.0",
"@playwright/test": "^1.41.1",
"@playwright/test": "^1.45.1",
"@rollup/plugin-commonjs": "^25.0.7",
"@rollup/plugin-json": "^6.1.0",
"@rollup/plugin-node-resolve": "^15.2.3",

View File

@@ -51,7 +51,7 @@ describe('UmbController', () => {
let hostElement: UmbControllerHostElement;
beforeEach(() => {
hostElement = document.createElement('test-my-controller-host') as UmbControllerHostElement;
hostElement = new UmbTestControllerHostElement();
});
describe('Controller Host Public API', () => {

View File

@@ -152,6 +152,7 @@ describe('UmbElementMixin', () => {
expect(hostElement.hasUmbController(ctrl)).to.be.true;
const ctrl2 = hostElement.observe(myObservable, (value) => {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const a = value + 'bla';
});
@@ -172,6 +173,7 @@ describe('UmbElementMixin', () => {
const ctrl2 = hostElement.observe(
undefined,
() => {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const a = 1;
},
'observer',

View File

@@ -16,6 +16,8 @@ import { UmbSwitchCondition } from '@umbraco-cms/backoffice/extension-registry';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
@customElement('umb-test-controller-host')
// Element is used in tests
// eslint-disable-next-line @typescript-eslint/no-unused-vars
class UmbTestControllerHostElement extends UmbControllerHostElementMixin(HTMLElement) {}
class UmbTestExtensionController extends UmbBaseExtensionInitializer {
@@ -57,12 +59,12 @@ class UmbTestConditionAlwaysInvalid extends UmbControllerBase implements UmbExte
describe('UmbBaseExtensionController', () => {
describe('Manifest without conditions', () => {
let hostElement: UmbControllerHostElement;
//let hostElement: UmbControllerHostElement;
let extensionRegistry: UmbExtensionRegistry<ManifestWithDynamicConditions>;
let manifest: ManifestWithDynamicConditions;
beforeEach(async () => {
hostElement = await fixture(html`<umb-test-controller-host></umb-test-controller-host>`);
//hostElement = await fixture(html`<umb-test-controller-host></umb-test-controller-host>`);
extensionRegistry = new UmbExtensionRegistry();
manifest = {
type: 'section',
@@ -94,12 +96,12 @@ describe('UmbBaseExtensionController', () => {
});
describe('Manifest with empty conditions', () => {
let hostElement: UmbControllerHostElement;
//let hostElement: UmbControllerHostElement;
let extensionRegistry: UmbExtensionRegistry<ManifestWithDynamicConditions>;
let manifest: ManifestWithDynamicConditions;
beforeEach(async () => {
hostElement = await fixture(html`<umb-test-controller-host></umb-test-controller-host>`);
//hostElement = await fixture(html`<umb-test-controller-host></umb-test-controller-host>`);
extensionRegistry = new UmbExtensionRegistry();
manifest = {
type: 'section',

View File

@@ -9,6 +9,8 @@ import { customElement, html } from '@umbraco-cms/backoffice/external/lit';
import { type ManifestSection, UmbSwitchCondition } from '@umbraco-cms/backoffice/extension-registry';
@customElement('umb-test-controller-host')
// Element is used in tests
// eslint-disable-next-line @typescript-eslint/no-unused-vars
class UmbTestControllerHostElement extends UmbControllerHostElementMixin(HTMLElement) {}
class UmbTestApiController extends UmbControllerBase {

View File

@@ -1,10 +1,10 @@
import { UmbExtensionRegistry } from '../registry/extension.registry.js';
import type { ManifestElementAndApi, ManifestWithDynamicConditions, UmbApi } from '../index.js';
import { UmbExtensionElementAndApiInitializer } from './extension-element-and-api-initializer.controller.js';
import { expect, fixture } from '@open-wc/testing';
import { expect } from '@open-wc/testing';
import type { UmbControllerHost, UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api';
import { UmbControllerHostElementMixin } from '@umbraco-cms/backoffice/controller-api';
import { customElement, html } from '@umbraco-cms/backoffice/external/lit';
import { customElement } from '@umbraco-cms/backoffice/external/lit';
import { UmbSwitchCondition } from '@umbraco-cms/backoffice/extension-registry';
import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
@@ -12,6 +12,8 @@ import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
class UmbTestControllerHostElement extends UmbControllerHostElementMixin(HTMLElement) {}
@customElement('umb-test-extension-element')
// Ignoring eslint rule. Element name is used for testing.
// eslint-disable-next-line @typescript-eslint/no-unused-vars
class UmbTestExtensionElement extends UmbControllerHostElementMixin(HTMLElement) {}
class UmbTestApiController extends UmbControllerBase implements UmbApi {
@@ -35,7 +37,7 @@ describe('UmbExtensionElementAndApiController', () => {
let manifest: TestManifest;
beforeEach(async () => {
hostElement = await fixture(html`<umb-test-controller-host></umb-test-controller-host>`);
hostElement = new UmbTestControllerHostElement();
extensionRegistry = new UmbExtensionRegistry();
manifest = {
type: 'test-type',
@@ -105,7 +107,7 @@ describe('UmbExtensionElementAndApiController', () => {
let manifest: TestManifest;
beforeEach(async () => {
hostElement = await fixture(html`<umb-test-controller-host></umb-test-controller-host>`);
hostElement = new UmbTestControllerHostElement();
extensionRegistry = new UmbExtensionRegistry();
manifest = {
@@ -175,7 +177,7 @@ describe('UmbExtensionElementAndApiController', () => {
let manifest: TestManifest;
beforeEach(async () => {
hostElement = await fixture(html`<umb-test-controller-host></umb-test-controller-host>`);
hostElement = new UmbTestControllerHostElement();
extensionRegistry = new UmbExtensionRegistry();
manifest = {
type: 'test-type',
@@ -238,7 +240,7 @@ describe('UmbExtensionElementAndApiController', () => {
let manifest: TestManifest;
beforeEach(async () => {
hostElement = await fixture(html`<umb-test-controller-host></umb-test-controller-host>`);
hostElement = new UmbTestControllerHostElement();
extensionRegistry = new UmbExtensionRegistry();
manifest = {

View File

@@ -15,7 +15,7 @@ describe('UmbExtensionElementController', () => {
let manifest: ManifestSection;
beforeEach(async () => {
hostElement = await fixture(html`<umb-test-controller-host></umb-test-controller-host>`);
hostElement = new UmbTestControllerHostElement();
extensionRegistry = new UmbExtensionRegistry();
manifest = {
type: 'section',

View File

@@ -20,7 +20,7 @@ describe('UmbObserverController', () => {
const state = new UmbObjectState(undefined);
const observable = state.asObservable();
const callbackMethod = (state: unknown) => {};
const callbackMethod = () => {};
const firstCtrl = new UmbObserverController(hostElement, observable, callbackMethod, 'my-test-alias');
const secondCtrl = new UmbObserverController(hostElement, observable, callbackMethod, 'my-test-alias');
@@ -33,7 +33,7 @@ describe('UmbObserverController', () => {
const state = new UmbObjectState(undefined);
const observable = state.asObservable();
const callbackMethod = (state: unknown) => {};
const callbackMethod = () => {};
const mySymbol = Symbol();
const firstCtrl = new UmbObserverController(hostElement, observable, callbackMethod, mySymbol);
@@ -47,7 +47,7 @@ describe('UmbObserverController', () => {
const state = new UmbObjectState(undefined);
const observable = state.asObservable();
const callbackMethod = (state: unknown) => {};
const callbackMethod = () => {};
// Imitates the behavior of the observe method in the UmbClassMixin
let controllerAlias1 = null;

View File

@@ -10,7 +10,6 @@ import { handlers as healthCheckHandlers } from './handlers/health-check.handler
import { handlers as installHandlers } from './handlers/install.handlers.js';
import { handlers as languageHandlers } from './handlers/language/index.js';
import { handlers as logViewerHandlers } from './handlers/log-viewer.handlers.js';
import { handlers as webhookHandlers } from './handlers/webhook.handlers.js';
import { handlers as mediaHandlers } from './handlers/media/index.js';
import { handlers as mediaTypeHandlers } from './handlers/media-type/index.js';
import { handlers as memberGroupHandlers } from './handlers/member-group/index.js';
@@ -50,7 +49,6 @@ const handlers = [
...installHandlers,
...languageHandlers,
...logViewerHandlers,
...webhookHandlers,
...mediaHandlers,
...mediaTypeHandlers,
...memberGroupHandlers,

View File

@@ -17,11 +17,6 @@ export class UmbMockDocumentCollectionManager {
getCollectionDocumentById({
id,
dataTypeId,
orderBy,
orderCulture,
orderDirection,
filter,
skip = 0,
take = 100,
}: {

View File

@@ -33,11 +33,11 @@ export class UmbDocumentMockDB extends UmbEntityMockDbBase<UmbMockDocumentModel>
}
// permissions
getUserPermissionsForDocument(id: string): Array<any> {
getUserPermissionsForDocument(): Array<any> {
return [];
}
getDomainsForDocument(id: string): DomainsResponseModel {
getDomainsForDocument(): DomainsResponseModel {
return { defaultIsoCode: 'en-us', domains: [] };
}

View File

@@ -14,10 +14,6 @@ export class UmbMockMediaCollectionManager {
getCollectionMedia({
id,
dataTypeId,
orderBy,
orderDirection,
filter,
skip = 0,
take = 100,
}: {

View File

@@ -1,4 +1,4 @@
import { templateQueryResult, templateQuerySettings, type UmbMockTemplateModel } from './template.data.js';
import { templateQueryResult, templateQuerySettings } from './template.data.js';
export class UmbMockTemplateQueryManager {
constructor() {}

View File

@@ -1,5 +1,5 @@
import { umbUserGroupMockDb } from '../user-group/user-group.db.js';
import { arrayFilter, stringFilter, queryFilter, objectArrayFilter } from '../utils.js';
import { stringFilter, queryFilter, objectArrayFilter } from '../utils.js';
import { UmbEntityMockDbBase } from '../utils/entity/entity-base.js';
import { UmbMockEntityItemManager } from '../utils/entity/entity-item.manager.js';
import { UmbMockEntityDetailManager } from '../utils/entity/entity-detail.manager.js';

View File

@@ -1,8 +1,7 @@
import { queryFilter } from '../../utils.js';
import type { UmbMockDBBase } from '../mock-db-base.js';
import { pagedResult } from '../paged-result.js';
const contentQueryFilter = (filterOptions: any, item: any) => {
const contentQueryFilter = () => {
return true;
console.log('implement filter logic for content items');
//queryFilter(filterOptions.filter, item.name);

View File

@@ -1,14 +0,0 @@
import { UmbMockDBBase } from './utils/mock-db-base.js';
//import {
// WebhooksResponseModel,
//} from '@umbraco-cms/backoffice/backend-api';
class UmbWebhooksData extends UmbMockDBBase<any> {
constructor(data: any[]) {
super(data);
}
}
export const umbWebhooksData = {
//webhooks: new UmbWebhooksData(webhooks),
};

View File

@@ -1,9 +1,10 @@
const { rest } = window.MockServiceWorker;
import type { UmbMockDictionaryModel } from '../../data/dictionary/dictionary.data.js';
//import type { UmbMockDictionaryModel } from '../../data/dictionary/dictionary.data.js';
import { umbDictionaryMockDb } from '../../data/dictionary/dictionary.db.js';
import { UMB_SLUG } from './slug.js';
import { umbracoPath } from '@umbraco-cms/backoffice/utils';
/*
const importResponse: UmbMockDictionaryModel = {
parent: null,
name: 'Uploaded dictionary',
@@ -21,6 +22,7 @@ const importResponse: UmbMockDictionaryModel = {
},
],
};
*/
export const importExportHandlers = [
rest.post(umbracoPath(`${UMB_SLUG}/import`), async (req, res, ctx) => {

View File

@@ -8,7 +8,7 @@ export const domainHandlers = [
rest.get(umbracoPath(`${UMB_SLUG}/:id/domains`), (req, res, ctx) => {
const id = req.params.id as string;
if (!id) return;
const response = umbDocumentMockDb.getDomainsForDocument(id);
const response = umbDocumentMockDb.getDomainsForDocument();
return res(ctx.status(200), ctx.json(response));
}),
];

View File

@@ -8,7 +8,7 @@ export const permissionHandlers = [
rest.get(umbracoPath(`${UMB_SLUG}/:id/permissions`), (req, res, ctx) => {
const id = req.params.id as string;
if (!id) return;
const response = umbDocumentMockDb.getUserPermissionsForDocument(id);
const response = umbDocumentMockDb.getUserPermissionsForDocument();
return res(ctx.status(200), ctx.json(response));
}),
];

View File

@@ -57,7 +57,6 @@ export const handlers = [
rest.get(umbracoPath('/searcher/:searcherName/query'), (_req, res, ctx) => {
const query = _req.url.searchParams.get('term');
const take = _req.url.searchParams.get('take');
const searcherName = _req.params.searcherName as string;

View File

@@ -1,4 +0,0 @@
const { rest } = window.MockServiceWorker;
//import { umbracoPath } from '@umbraco-cms/backoffice/utils';
export const handlers = [];

View File

@@ -106,6 +106,9 @@ export class UmbBlockGridAreaTypeWorkspaceContext
getName() {
return this.#data.getValue()?.alias;
}
// TODO: [v15] ignoring unused name parameter to avoid breaking changes
// eslint-disable-next-line @typescript-eslint/no-unused-vars
setName(name: string | undefined) {
throw new Error('You cannot set a name of a area-type.');
}

View File

@@ -63,6 +63,8 @@ export class UmbBlockGridManagerContext<
create(
contentElementTypeKey: string,
partialLayoutEntry?: Omit<BlockLayoutType, 'contentUdi'>,
// TODO: [v15] Ignore unused parameter to avoid breaking changes
// eslint-disable-next-line @typescript-eslint/no-unused-vars
modalData?: UmbBlockGridWorkspaceData,
) {
return super.createBlockData(contentElementTypeKey, partialLayoutEntry);

View File

@@ -21,6 +21,8 @@ export class UmbBlockListManagerContext<
create(
contentElementTypeKey: string,
partialLayoutEntry?: Omit<BlockLayoutType, 'contentUdi'>,
// TODO: [v15] ignoring unused modalData parameter to avoid breaking changes
// eslint-disable-next-line @typescript-eslint/no-unused-vars
modalData?: UmbBlockListWorkspaceData,
) {
return super.createBlockData(contentElementTypeKey, partialLayoutEntry);

View File

@@ -34,6 +34,8 @@ export class UmbBlockRteManagerContext<
create(
contentElementTypeKey: string,
partialLayoutEntry?: Omit<BlockLayoutType, 'contentUdi'>,
// TODO: [v15] ignoring unused modalData parameter to avoid breaking changes
// eslint-disable-next-line @typescript-eslint/no-unused-vars
modalData?: UmbBlockRteWorkspaceData,
) {
const data = super.createBlockData(contentElementTypeKey, partialLayoutEntry);

View File

@@ -43,7 +43,7 @@ export default class UmbTinyMceMultiUrlPickerPlugin extends UmbTinyMcePluginBase
}
async showDialog() {
const blockEl = this.editor.selection.getNode();
//const blockEl = this.editor.selection.getNode();
/*if (blockEl.nodeName === 'UMB-RTE-BLOCK' || blockEl.nodeName === 'UMB-RTE-BLOCK-INLINE') {
const blockUdi = blockEl.getAttribute('data-content-udi') ?? undefined;

View File

@@ -137,6 +137,9 @@ export class UmbBlockTypeWorkspaceContext<BlockTypeData extends UmbBlockTypeWith
getName() {
return 'block name content element type here...';
}
// TODO: [v15] ignoring unused name parameter to avoid breaking changes
// eslint-disable-next-line @typescript-eslint/no-unused-vars
setName(name: string | undefined) {
console.warn('You cannot set a name of a block type.');
}

View File

@@ -166,7 +166,8 @@ export abstract class UmbBlockManagerContext<
getContentOf(contentUdi: string) {
return this.#contents.value.find((x) => x.udi === contentUdi);
}
// TODO: [v15]: ignoring unused var here here to prevent a breaking change
// eslint-disable-next-line @typescript-eslint/no-unused-vars
setOneLayout(layoutData: BlockLayoutType, modalData?: UmbBlockWorkspaceData) {
this._layouts.appendOne(layoutData);
}
@@ -264,6 +265,8 @@ export abstract class UmbBlockManagerContext<
layoutEntry: BlockLayoutType,
content: UmbBlockDataType,
settings: UmbBlockDataType | undefined,
// TODO: [v15]: ignoring unused var here here to prevent a breaking change
// eslint-disable-next-line @typescript-eslint/no-unused-vars
modalData: ModalDataType,
) {
// Create content entry:

View File

@@ -1,14 +1,5 @@
import type { UmbMultipleColorPickerItemInputElement } from './multiple-color-picker-item-input.element.js';
import {
css,
customElement,
html,
ifDefined,
nothing,
repeat,
property,
state,
} from '@umbraco-cms/backoffice/external/lit';
import { css, customElement, html, nothing, repeat, property, state } from '@umbraco-cms/backoffice/external/lit';
import { UUIFormControlMixin } from '@umbraco-cms/backoffice/external/uui';
import { UmbChangeEvent } from '@umbraco-cms/backoffice/event';
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';

View File

@@ -1,8 +1,9 @@
import type { UmbTableElement, UmbTableColumn, UmbTableItem } from './table.element.js';
import type { Meta, StoryObj } from '@storybook/web-components';
import './table.element.js';
import type { UmbTableElement, UmbTableColumn, UmbTableConfig, UmbTableItem } from './table.element.js';
import { UmbId } from '@umbraco-cms/backoffice/id';
import './table.element.js';
const meta: Meta<UmbTableElement> = {
title: 'Components/Table',
component: 'umb-table',

View File

@@ -1,7 +1,4 @@
import {
UMB_PROPERTY_TYPE_WORKSPACE_ALIAS,
UmbPropertyTypeWorkspaceContext,
} from './property-type-settings-modal.context.js';
import { UMB_PROPERTY_TYPE_WORKSPACE_ALIAS } from './property-type-settings-modal.context.js';
import type {
UmbPropertyTypeSettingsModalData,
UmbPropertyTypeSettingsModalValue,

View File

@@ -1,6 +1,5 @@
import type { ManifestApi } from '../../../../libs/extension-api/types/index.js';
import type { UmbApi } from '../../../../libs/extension-api/models/api.interface.js';
import { createExtensionApiByAlias } from './create-extension-api-by-alias.function.js';
import type { ManifestApi, UmbApi } from '@umbraco-cms/backoffice/extension-api';
import { expect, fixture } from '@open-wc/testing';
import { customElement, html } from '@umbraco-cms/backoffice/external/lit';
import { UmbControllerHostElementMixin } from '@umbraco-cms/backoffice/controller-api';
@@ -54,15 +53,16 @@ describe('Create Extension Api By Alias Method', () => {
};
umbExtensionsRegistry.register(manifest);
createExtensionApiByAlias<UmbExtensionApiBoolTestClass>(hostElement, manifest.alias, []).then(() => {
umbExtensionsRegistry.unregister(manifest.alias);
done(new Error('Should not resolve'));
});
setTimeout(() => {
umbExtensionsRegistry.unregister(manifest.alias);
done();
}, 10);
createExtensionApiByAlias<UmbExtensionApiBoolTestClass>(hostElement, manifest.alias, []).then(
() => {
umbExtensionsRegistry.unregister(manifest.alias);
done(new Error('Should not resolve'));
},
() => {
umbExtensionsRegistry.unregister(manifest.alias);
done();
},
);
});
it('Handles when `api` property contains a class constructor', async () => {

View File

@@ -1,5 +1,5 @@
import type { UmbVariantStructureItemModel } from './types.js';
import type { UmbTreeItemModel, UmbTreeRepository, UmbTreeRootModel } from '@umbraco-cms/backoffice/tree';
import type { UmbTreeRepository, UmbTreeRootModel } from '@umbraco-cms/backoffice/tree';
import { createExtensionApiByAlias } from '@umbraco-cms/backoffice/extension-registry';
import { UmbContextBase } from '@umbraco-cms/backoffice/class-api';
import { UMB_VARIANT_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace';

View File

@@ -1,11 +1,7 @@
import type { UmbPropertyActionArgs } from '../property-action/types.js';
import { css, customElement, html, nothing, property, repeat, state } from '@umbraco-cms/backoffice/external/lit';
import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
import type {
ManifestPropertyAction,
ManifestTypes,
MetaPropertyAction,
} from '@umbraco-cms/backoffice/extension-registry';
import type { ManifestPropertyAction, MetaPropertyAction } from '@umbraco-cms/backoffice/extension-registry';
import { UmbExtensionsElementAndApiInitializer } from '@umbraco-cms/backoffice/extension-api';
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';

View File

@@ -1,4 +1,3 @@
import { expect, fixture, html } from '@open-wc/testing';
//TODO: Test has been commented out while we figure out how to setup import maps for the test environment
// import { UmbPickerSectionElement } from './picker-section.element.js';
// import { type UmbTestRunnerWindow, defaultA11yConfig } from '@umbraco-cms/internal/test-utils';

View File

@@ -5,7 +5,6 @@ import { css, html, nothing, customElement, state } from '@umbraco-cms/backoffic
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
import { observeMultiple } from '@umbraco-cms/backoffice/observable-api';
import type { UmbContextRequestEvent } from '@umbraco-cms/backoffice/context-api';
import { UMB_CONTENT_REQUEST_EVENT_TYPE } from '@umbraco-cms/backoffice/context-api';
@customElement('umb-section-sidebar-context-menu')
export class UmbSectionSidebarContextMenuElement extends UmbLitElement {

View File

@@ -3,7 +3,7 @@ import { UMB_VALIDATION_CONTEXT } from '../context/validation.context-token.js';
import type { UmbFormControlMixinInterface } from '../mixins/form-control.mixin.js';
import { jsonStringComparison } from '@umbraco-cms/backoffice/observable-api';
import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
import type { UmbControllerAlias, UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
const ctrlSymbol = Symbol();
const observeSymbol = Symbol();

View File

@@ -4,7 +4,7 @@ import type { UmbFormControlMixinInterface } from '../mixins/form-control.mixin.
import { UmbValidationInvalidEvent } from '../events/validation-invalid.event.js';
import { UmbValidationValidEvent } from '../events/validation-valid.event.js';
import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
import type { UmbControllerAlias, UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
export class UmbFormControlValidator extends UmbControllerBase implements UmbValidator {
// The path to the data that this validator is validating.

View File

@@ -12,7 +12,7 @@ export default {
component: 'umb-data-type-workspace-view-edit',
id: 'umb-data-type-workspace-view-edit',
decorators: [
(story) => {
() => {
return html`TODO: make use of mocked workspace context??`;
/*html` <umb-context-provider key="umbDataTypeContext" .value=${new UmbDataTypeWorkspaceContext(data[0])}>
${story()}

View File

@@ -12,7 +12,7 @@ export default {
component: 'umb-workspace-view-data-type-info',
id: 'umb-workspace-view-data-type-info',
decorators: [
(story) => {
() => {
return html`TODO: make use of mocked workspace context??`;
/*html` <umb-context-provider key="umbDataTypeContext" .value=${new UmbDataTypeWorkspaceContext(data[0])}>
${story()}

View File

@@ -1,10 +1,7 @@
import { UMB_DICTIONARY_ENTITY_TYPE } from '../../entity.js';
import type { UmbDictionaryItemModel } from './types.js';
import { UmbItemServerDataSourceBase } from '@umbraco-cms/backoffice/repository';
import type {
DictionaryItemItemResponseModel,
DictionaryItemResponseModel,
} from '@umbraco-cms/backoffice/external/backend-api';
import type { DictionaryItemItemResponseModel } from '@umbraco-cms/backoffice/external/backend-api';
import { DictionaryService } from '@umbraco-cms/backoffice/external/backend-api';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';

View File

@@ -4,7 +4,6 @@ import {
UMB_DICTIONARY_TREE_REPOSITORY_ALIAS,
UMB_DICTIONARY_TREE_STORE_ALIAS,
} from './constants.js';
import { UmbDictionaryTreeStore } from './dictionary-tree.store.js';
import { manifests as reloadTreeItemChildrenManifests } from './reload-tree-item-children/manifests.js';
import type {
ManifestRepository,

View File

@@ -10,7 +10,7 @@ export default {
component: 'umb-workspace-view-dictionary-editor',
id: 'umb-workspace-view-dictionary-editor',
decorators: [
(story) => {
() => {
return html`TODO: make use of mocked workspace context??`;
/*html` <umb-context-provider key="umbDataTypeContext" .value=${new UmbWorkspaceDictionaryContext(data[0])}>
${story()}

View File

@@ -8,11 +8,7 @@ import { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree';
import { DocumentBlueprintService } from '@umbraco-cms/backoffice/external/backend-api';
import type { DocumentBlueprintTreeItemResponseModel } from '@umbraco-cms/backoffice/external/backend-api';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import type {
UmbTreeAncestorsOfRequestArgs,
UmbTreeChildrenOfRequestArgs,
UmbTreeRootItemsRequestArgs,
} from '@umbraco-cms/backoffice/tree';
import type { UmbTreeChildrenOfRequestArgs, UmbTreeRootItemsRequestArgs } from '@umbraco-cms/backoffice/tree';
/**
* A data source for a data type tree that fetches data from the server
@@ -59,7 +55,7 @@ const getChildrenOf = (args: UmbTreeChildrenOfRequestArgs) => {
}
};
const getAncestorsOf = (args: UmbTreeAncestorsOfRequestArgs) => {
const getAncestorsOf = () => {
throw new Error('Not implemented');
/** TODO: Implement when endpoint becomes available... */
};

View File

@@ -16,7 +16,6 @@ import {
import {
UmbSubmittableWorkspaceContextBase,
UmbWorkspaceIsNewRedirectController,
UmbWorkspaceRouteManager,
UmbWorkspaceSplitViewManager,
} from '@umbraco-cms/backoffice/workspace';
import { UmbContentTypeStructureManager } from '@umbraco-cms/backoffice/content-type';

View File

@@ -3,7 +3,6 @@ import type { UmbCreateBlueprintModalData, UmbCreateBlueprintModalValue } from '
import { html, customElement, css, state } from '@umbraco-cms/backoffice/external/lit';
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal';
import type { UmbDocumentDetailModel } from '@umbraco-cms/backoffice/document';
import type { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui';
@customElement('umb-create-blueprint-modal')

View File

@@ -2,8 +2,6 @@ import { UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS, UMB_DOCUMENT_ITEM_REPOSITORY_ALIA
import { UMB_DOCUMENT_ENTITY_TYPE } from '../entity.js';
import {
UMB_USER_PERMISSION_DOCUMENT_DELETE,
UMB_USER_PERMISSION_DOCUMENT_NOTIFICATIONS,
UMB_USER_PERMISSION_DOCUMENT_PERMISSIONS,
UMB_USER_PERMISSION_DOCUMENT_PUBLISH,
UMB_USER_PERMISSION_DOCUMENT_UNPUBLISH,
} from '../user-permissions/constants.js';

View File

@@ -1,10 +1,5 @@
import { UMB_DOCUMENT_COLLECTION_ALIAS } from '../collection/index.js';
import { UMB_DOCUMENT_ENTITY_TYPE } from '../entity.js';
import { UmbDocumentDuplicateEntityBulkAction } from './duplicate/duplicate.action.js';
import { UmbDocumentDeleteEntityBulkAction } from './delete/delete.action.js';
import { UmbMoveDocumentEntityBulkAction } from './move/move.action.js';
import { UmbDocumentPublishEntityBulkAction } from './publish/publish.action.js';
import { UmbDocumentUnpublishEntityBulkAction } from './unpublish/unpublish.action.js';
import type { UmbCollectionBulkActionPermissions } from '@umbraco-cms/backoffice/collection';
import type { ManifestEntityBulkAction } from '@umbraco-cms/backoffice/extension-registry';
import {

View File

@@ -1,4 +1,4 @@
import type { UmbDocumentDetailModel, UmbDocumentVariantModel } from '../../types.js';
import type { UmbDocumentDetailModel } from '../../types.js';
import { UMB_DOCUMENT_ENTITY_TYPE } from '../../entity.js';
import { UmbId } from '@umbraco-cms/backoffice/id';
import type { UmbDetailDataSource } from '@umbraco-cms/backoffice/repository';

View File

@@ -21,6 +21,8 @@ export class UmbDocumentValidationServerDataSource {
* @param {UmbControllerHost} host
* @memberof UmbDocumentPublishingServerDataSource
*/
// TODO: [v15]: ignoring unused var here here to prevent a breaking change
// eslint-disable-next-line @typescript-eslint/no-unused-vars
constructor(host: UmbControllerHost) {
//this.#host = host;
}

View File

@@ -1,5 +1,4 @@
import { UMB_DOCUMENT_TREE_STORE_CONTEXT } from './document-tree.store.context-token.js';
import { UmbContextToken } from '@umbraco-cms/backoffice/context-api';
import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';

View File

@@ -1,6 +1,5 @@
import { UMB_DOCUMENT_ENTITY_TYPE, UMB_DOCUMENT_ROOT_ENTITY_TYPE } from '../entity.js';
import { manifests as reloadTreeItemChildrenManifests } from './reload-tree-item-children/manifests.js';
import { UmbDocumentTreeItemContext } from './tree-item/document-tree-item.context.js';
import type {
ManifestRepository,
ManifestTree,

View File

@@ -34,7 +34,6 @@ import {
type UmbPublishableWorkspaceContext,
UmbSubmittableWorkspaceContextBase,
UmbWorkspaceIsNewRedirectController,
UmbWorkspaceRouteManager,
UmbWorkspaceSplitViewManager,
} from '@umbraco-cms/backoffice/workspace';
import {
@@ -53,10 +52,7 @@ import {
UmbRequestReloadStructureForEntityEvent,
} from '@umbraco-cms/backoffice/entity-action';
import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal';
import {
UmbServerModelValidationContext,
UmbVariantValuesValidationMessageTranslator,
} from '@umbraco-cms/backoffice/validation';
import { UmbServerModelValidationContext } from '@umbraco-cms/backoffice/validation';
import { UmbDocumentBlueprintDetailRepository } from '@umbraco-cms/backoffice/document-blueprint';
import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification';
import type { UmbContentWorkspaceContext } from '@umbraco-cms/backoffice/content';

View File

@@ -12,7 +12,7 @@ export default {
component: 'umb-document-workspace-view-info',
id: 'umb-document-workspace-view-info',
decorators: [
(story) => {
() => {
return html`TODO: make use of mocked workspace context??`;
/*html` <umb-context-provider key="workspaceContext" .value=${new UmbDataTypeWorkspaceContext(data[0])}>
${story()}

View File

@@ -1,8 +1,5 @@
import { UmbLogMessagesServerDataSource, UmbLogSearchesServerDataSource } from './sources/log-viewer.server.data.js';
import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import type { UmbNotificationContext } from '@umbraco-cms/backoffice/notification';
import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification';
import type {
DirectionModel,
LogLevelModel,

View File

@@ -42,7 +42,7 @@ export class UmbLogViewerLogTypesChartElement extends UmbLitElement {
setLogLevelCount() {
this.logLevelCount = this._logLevelCount
? Object.entries(this._logLevelCount).filter(([level, number]) => !this._logLevelCountFilter.includes(level))
? Object.entries(this._logLevelCount).filter(([level]) => !this._logLevelCountFilter.includes(level))
: [];
}

View File

@@ -3,10 +3,7 @@ import { UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer-workspace.context
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
import { css, html, customElement, state, nothing } from '@umbraco-cms/backoffice/external/lit';
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
import type {
LogTemplateResponseModel,
SavedLogSearchResponseModel,
} from '@umbraco-cms/backoffice/external/backend-api';
import type { LogTemplateResponseModel } from '@umbraco-cms/backoffice/external/backend-api';
import type { UUIPaginationEvent } from '@umbraco-cms/backoffice/external/uui';
@customElement('umb-log-viewer-message-templates-overview')

View File

@@ -1,5 +1,3 @@
import type { UmbLogViewerWorkspaceContext } from '../../../logviewer-workspace.context.js';
import { UMB_APP_LOG_VIEWER_CONTEXT } from '../../../logviewer-workspace.context-token.js';
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
import type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit';
import { css, html, customElement, property, query, state } from '@umbraco-cms/backoffice/external/lit';

View File

@@ -0,0 +1 @@
export const UMB_IMAGING_REPOSITORY_ALIAS = 'Umb.Repository.Imaging';

View File

@@ -40,3 +40,5 @@ export class UmbImagingRepository extends UmbControllerBase implements UmbApi {
return await this.requestResizedItems(uniques, imagingModel);
}
}
export { UmbImagingRepository as api };

View File

@@ -1,2 +1,2 @@
export { UmbImagingRepository } from './imaging.repository.js';
export { UMB_IMAGING_REPOSITORY_ALIAS } from './manifests.js';
export { UMB_IMAGING_REPOSITORY_ALIAS } from './constants.js';

View File

@@ -1,13 +1,11 @@
import { UmbImagingRepository } from './imaging.repository.js';
import { UMB_IMAGING_REPOSITORY_ALIAS } from './constants.js';
import type { ManifestRepository, ManifestTypes } from '@umbraco-cms/backoffice/extension-registry';
export const UMB_IMAGING_REPOSITORY_ALIAS = 'Umb.Repository.Imaging';
const repository: ManifestRepository = {
type: 'repository',
alias: UMB_IMAGING_REPOSITORY_ALIAS,
name: 'Imaging Repository',
api: UmbImagingRepository,
api: () => import('./imaging.repository.js'),
};
export const manifests: Array<ManifestTypes> = [repository];

View File

@@ -1,5 +1,5 @@
import { manifests as mediaManifests } from './media/manifests.js';
import { manifests as mediaSectionManifests } from './section.manifests.js';
import { manifests as mediaSectionManifests } from './media-section/manifests.js';
import { manifests as mediaTypesManifests } from './media-types/manifests.js';
import { manifests as imagingManifests } from './imaging/manifests.js';
import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry';

View File

@@ -0,0 +1 @@
export const UMB_MEDIA_SECTION_ALIAS = 'Umb.Section.Media';

View File

@@ -1,4 +1,4 @@
import { UMB_MEDIA_ROOT_ENTITY_TYPE, UMB_MEDIA_MENU_ALIAS } from './media/index.js';
import { UMB_MEDIA_ROOT_ENTITY_TYPE, UMB_MEDIA_MENU_ALIAS } from '../media/index.js';
import type {
ManifestSection,
ManifestSectionSidebarApp,

View File

@@ -23,3 +23,5 @@ export class UmbCreateMediaTypeEntityAction extends UmbEntityActionBase<never> {
await modalContext.onSubmit();
}
}
export { UmbCreateMediaTypeEntityAction as api };

View File

@@ -3,7 +3,6 @@ import {
UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE,
UMB_MEDIA_TYPE_ROOT_ENTITY_TYPE,
} from '../../entity.js';
import { UmbCreateMediaTypeEntityAction } from './create.action.js';
import type { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry';
const entityActions: Array<ManifestTypes> = [
@@ -13,7 +12,7 @@ const entityActions: Array<ManifestTypes> = [
alias: 'Umb.EntityAction.MediaType.Create',
name: 'Create Media Type Entity Action',
weight: 1200,
api: UmbCreateMediaTypeEntityAction,
api: () => import('./create.action.js'),
forEntityTypes: [UMB_MEDIA_TYPE_ENTITY_TYPE, UMB_MEDIA_TYPE_ROOT_ENTITY_TYPE, UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE],
meta: {
icon: 'icon-add',

View File

@@ -1,12 +1,11 @@
import { UMB_DUPLICATE_MEDIA_TYPE_REPOSITORY_ALIAS } from './constants.js';
import { UmbDuplicateMediaTypeRepository } from './media-type-duplicate.repository.js';
import type { ManifestRepository, ManifestTypes } from '@umbraco-cms/backoffice/extension-registry';
const duplicateRepository: ManifestRepository = {
type: 'repository',
alias: UMB_DUPLICATE_MEDIA_TYPE_REPOSITORY_ALIAS,
name: 'Duplicate Media Type Repository',
api: UmbDuplicateMediaTypeRepository,
api: () => import('./media-type-duplicate.repository.js'),
};
export const manifests: Array<ManifestTypes> = [duplicateRepository];

View File

@@ -18,3 +18,5 @@ export class UmbDuplicateMediaTypeRepository extends UmbRepositoryBase implement
return { error };
}
}
export { UmbDuplicateMediaTypeRepository as api };

View File

@@ -1,12 +1,11 @@
import { UMB_MOVE_MEDIA_TYPE_REPOSITORY_ALIAS } from './constants.js';
import { UmbMoveMediaTypeRepository } from './media-type-move.repository.js';
import type { ManifestRepository, ManifestTypes } from '@umbraco-cms/backoffice/extension-registry';
const moveRepository: ManifestRepository = {
type: 'repository',
alias: UMB_MOVE_MEDIA_TYPE_REPOSITORY_ALIAS,
name: 'Move Media Type Repository',
api: UmbMoveMediaTypeRepository,
api: () => import('./media-type-move.repository.js'),
};
export const manifests: Array<ManifestTypes> = [moveRepository];

View File

@@ -18,3 +18,5 @@ export class UmbMoveMediaTypeRepository extends UmbRepositoryBase implements Umb
return { error };
}
}
export { UmbMoveMediaTypeRepository as api };

View File

@@ -0,0 +1,2 @@
export const UMB_MEDIA_TYPE_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.MediaType.Detail';
export const UMB_MEDIA_TYPE_DETAIL_STORE_ALIAS = 'Umb.Store.MediaType.Detail';

View File

@@ -1,3 +1,3 @@
export { UmbMediaTypeDetailRepository } from './media-type-detail.repository.js';
export { UMB_MEDIA_TYPE_DETAIL_REPOSITORY_ALIAS, UMB_MEDIA_TYPE_DETAIL_STORE_ALIAS } from './manifests.js';
export { UMB_MEDIA_TYPE_DETAIL_STORE_CONTEXT } from './media-type-detail.store.js';
export { UMB_MEDIA_TYPE_DETAIL_REPOSITORY_ALIAS, UMB_MEDIA_TYPE_DETAIL_STORE_ALIAS } from './constants.js';
export { UMB_MEDIA_TYPE_DETAIL_STORE_CONTEXT } from './media-type-detail.store.context-token.js';

View File

@@ -1,8 +1,6 @@
import { UMB_MEDIA_TYPE_DETAIL_REPOSITORY_ALIAS, UMB_MEDIA_TYPE_DETAIL_STORE_ALIAS } from './constants.js';
import type { ManifestRepository, ManifestStore, ManifestTypes } from '@umbraco-cms/backoffice/extension-registry';
export const UMB_MEDIA_TYPE_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.MediaType.Detail';
export const UMB_MEDIA_TYPE_DETAIL_STORE_ALIAS = 'Umb.Store.MediaType.Detail';
const detailRepository: ManifestRepository = {
type: 'repository',
alias: UMB_MEDIA_TYPE_DETAIL_REPOSITORY_ALIAS,

View File

@@ -1,6 +1,6 @@
import type { UmbMediaTypeDetailModel } from '../../types.js';
import { UmbMediaTypeServerDataSource } from './media-type-detail.server.data-source.js';
import { UMB_MEDIA_TYPE_DETAIL_STORE_CONTEXT } from './media-type-detail.store.js';
import { UMB_MEDIA_TYPE_DETAIL_STORE_CONTEXT } from './media-type-detail.store.context-token.js';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { UmbDetailRepositoryBase } from '@umbraco-cms/backoffice/repository';
export class UmbMediaTypeDetailRepository extends UmbDetailRepositoryBase<UmbMediaTypeDetailModel> {

View File

@@ -9,7 +9,7 @@ import type {
import { MediaTypeService } from '@umbraco-cms/backoffice/external/backend-api';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources';
import type { UmbPropertyContainerTypes, UmbPropertyTypeContainerModel } from '@umbraco-cms/backoffice/content-type';
import type { UmbPropertyContainerTypes } from '@umbraco-cms/backoffice/content-type';
/**
* A data source for the Media Type that fetches data from the server

View File

@@ -0,0 +1,6 @@
import type UmbMediaTypeDetailStore from './media-type-detail.store.js';
import { UmbContextToken } from '@umbraco-cms/backoffice/context-api';
export const UMB_MEDIA_TYPE_DETAIL_STORE_CONTEXT = new UmbContextToken<UmbMediaTypeDetailStore>(
'UmbMediaTypeDetailStore',
);

View File

@@ -1,5 +1,5 @@
import type { UmbMediaTypeDetailModel } from '../../types.js';
import { UmbContextToken } from '@umbraco-cms/backoffice/context-api';
import { UMB_MEDIA_TYPE_DETAIL_STORE_CONTEXT } from './media-type-detail.store.context-token.js';
import { UmbDetailStoreBase } from '@umbraco-cms/backoffice/store';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
@@ -21,7 +21,3 @@ export class UmbMediaTypeDetailStore extends UmbDetailStoreBase<UmbMediaTypeDeta
}
export default UmbMediaTypeDetailStore;
export const UMB_MEDIA_TYPE_DETAIL_STORE_CONTEXT = new UmbContextToken<UmbMediaTypeDetailStore>(
'UmbMediaTypeDetailStore',
);

View File

@@ -0,0 +1,2 @@
export const UMB_MEDIA_TYPE_ITEM_REPOSITORY_ALIAS = 'Umb.Repository.MediaType.Item';
export const UMB_MEDIA_TYPE_ITEM_STORE_ALIAS = 'Umb.Store.MediaType.Item';

View File

@@ -1,4 +1,4 @@
export { UmbMediaTypeItemRepository } from './media-type-item.repository.js';
export { UMB_MEDIA_TYPE_ITEM_REPOSITORY_ALIAS, UMB_MEDIA_TYPE_ITEM_STORE_ALIAS } from './manifests.js';
export { UMB_MEDIA_TYPE_ITEM_STORE_CONTEXT } from './media-type-item.store.js';
export { UMB_MEDIA_TYPE_ITEM_REPOSITORY_ALIAS, UMB_MEDIA_TYPE_ITEM_STORE_ALIAS } from './constants.js';
export { UMB_MEDIA_TYPE_ITEM_STORE_CONTEXT } from './media-type-item.store.context-token.js';
export type { UmbMediaTypeItemModel } from './types.js';

View File

@@ -1,8 +1,6 @@
import { UMB_MEDIA_TYPE_ITEM_REPOSITORY_ALIAS, UMB_MEDIA_TYPE_ITEM_STORE_ALIAS } from './constants.js';
import type { ManifestItemStore, ManifestRepository, ManifestTypes } from '@umbraco-cms/backoffice/extension-registry';
export const UMB_MEDIA_TYPE_ITEM_REPOSITORY_ALIAS = 'Umb.Repository.MediaType.Item';
export const UMB_MEDIA_TYPE_ITEM_STORE_ALIAS = 'Umb.Store.MediaType.Item';
const itemRepository: ManifestRepository = {
type: 'repository',
alias: UMB_MEDIA_TYPE_ITEM_REPOSITORY_ALIAS,

View File

@@ -1,6 +1,6 @@
import type { UmbMediaTypeItemModel } from './types.js';
import { UmbMediaTypeItemServerDataSource } from './media-type-item.server.data-source.js';
import { UMB_MEDIA_TYPE_ITEM_STORE_CONTEXT } from './media-type-item.store.js';
import { UMB_MEDIA_TYPE_ITEM_STORE_CONTEXT } from './media-type-item.store.context-token.js';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { UmbItemRepositoryBase } from '@umbraco-cms/backoffice/repository';

View File

@@ -0,0 +1,4 @@
import type UmbMediaTypeItemStore from './media-type-item.store.js';
import { UmbContextToken } from '@umbraco-cms/backoffice/context-api';
export const UMB_MEDIA_TYPE_ITEM_STORE_CONTEXT = new UmbContextToken<UmbMediaTypeItemStore>('UmbMediaTypeItemStore');

View File

@@ -1,5 +1,5 @@
import { UMB_MEDIA_TYPE_ITEM_STORE_CONTEXT } from './media-type-item.store.context-token.js';
import type { UmbMediaTypeItemModel } from './index.js';
import { UmbContextToken } from '@umbraco-cms/backoffice/context-api';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { UmbItemStoreBase } from '@umbraco-cms/backoffice/store';
@@ -22,5 +22,3 @@ export class UmbMediaTypeItemStore extends UmbItemStoreBase<UmbMediaTypeItemMode
}
export default UmbMediaTypeItemStore;
export const UMB_MEDIA_TYPE_ITEM_STORE_CONTEXT = new UmbContextToken<UmbMediaTypeItemStore>('UmbMediaTypeItemStore');

View File

@@ -0,0 +1 @@
export const UMB_MEDIA_TYPE_STRUCTURE_REPOSITORY_ALIAS = 'Umb.Repository.MediaType.Structure';

View File

@@ -1,3 +1,3 @@
export { UmbMediaTypeStructureRepository } from './media-type-structure.repository.js';
export { UMB_MEDIA_TYPE_STRUCTURE_REPOSITORY_ALIAS } from './manifests.js';
export { UMB_MEDIA_TYPE_STRUCTURE_REPOSITORY_ALIAS } from './constants.js';
export * from './types.js';

View File

@@ -1,7 +1,6 @@
import { UMB_MEDIA_TYPE_STRUCTURE_REPOSITORY_ALIAS } from './constants.js';
import type { ManifestRepository, ManifestTypes } from '@umbraco-cms/backoffice/extension-registry';
export const UMB_MEDIA_TYPE_STRUCTURE_REPOSITORY_ALIAS = 'Umb.Repository.MediaType.Structure';
const structureRepository: ManifestRepository = {
type: 'repository',
alias: UMB_MEDIA_TYPE_STRUCTURE_REPOSITORY_ALIAS,

View File

@@ -0,0 +1,3 @@
export const UMB_MEDIA_TYPE_TREE_REPOSITORY_ALIAS = 'Umb.Repository.MediaType.Tree';
export const UMB_MEDIA_TYPE_TREE_STORE_ALIAS = 'Umb.Store.MediaType.Tree';
export const UMB_MEDIA_TYPE_TREE_ALIAS = 'Umb.Tree.MediaType';

View File

@@ -0,0 +1 @@
export const UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS = 'Umb.Repository.MediaType.Folder';

View File

@@ -1,2 +1,2 @@
export { UmbMediaTypeFolderRepository } from './media-type-folder.repository.js';
export { UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS } from './manifests.js';
export { UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS } from './constants.js';

View File

@@ -1,12 +1,11 @@
import { UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js';
import { UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS } from './constants.js';
import type {
ManifestEntityAction,
ManifestRepository,
ManifestTypes,
} from '@umbraco-cms/backoffice/extension-registry';
export const UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS = 'Umb.Repository.MediaType.Folder';
const folderRepository: ManifestRepository = {
type: 'repository',
alias: UMB_MEDIA_TYPE_FOLDER_REPOSITORY_ALIAS,

View File

@@ -2,10 +2,10 @@ export {
UMB_MEDIA_TYPE_TREE_ALIAS,
UMB_MEDIA_TYPE_TREE_STORE_ALIAS,
UMB_MEDIA_TYPE_TREE_REPOSITORY_ALIAS,
} from './manifests.js';
} from './constants.js';
export * from './folder/index.js';
export { UmbMediaTypeTreeRepository } from './media-type-tree.repository.js';
export { UMB_MEDIA_TYPE_TREE_STORE_CONTEXT } from './media-type-tree.store.js';
export { UMB_MEDIA_TYPE_TREE_STORE_CONTEXT } from './media-type-tree.store.context-token.js';
export { UMB_MEDIA_TYPE_PICKER_MODAL } from './media-type-picker-modal.token.js';
export type { UmbMediaTypeTreeItemModel, UmbMediaTypeTreeRootModel } from './types.js';

View File

@@ -3,6 +3,11 @@ import {
UMB_MEDIA_TYPE_ROOT_ENTITY_TYPE,
UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE,
} from '../entity.js';
import {
UMB_MEDIA_TYPE_TREE_ALIAS,
UMB_MEDIA_TYPE_TREE_REPOSITORY_ALIAS,
UMB_MEDIA_TYPE_TREE_STORE_ALIAS,
} from './constants.js';
import { manifests as folderManifests } from './folder/manifests.js';
import { manifests as reloadTreeItemChildrenManifest } from './reload-tree-item-children/manifests.js';
import type {
@@ -13,10 +18,6 @@ import type {
ManifestTypes,
} from '@umbraco-cms/backoffice/extension-registry';
export const UMB_MEDIA_TYPE_TREE_REPOSITORY_ALIAS = 'Umb.Repository.MediaType.Tree';
export const UMB_MEDIA_TYPE_TREE_STORE_ALIAS = 'Umb.Store.MediaType.Tree';
export const UMB_MEDIA_TYPE_TREE_ALIAS = 'Umb.Tree.MediaType';
const treeRepository: ManifestRepository = {
type: 'repository',
alias: UMB_MEDIA_TYPE_TREE_REPOSITORY_ALIAS,

View File

@@ -1,6 +1,6 @@
import { UMB_MEDIA_TYPE_ROOT_ENTITY_TYPE } from '../entity.js';
import { UmbMediaTypeTreeServerDataSource } from './media-type-tree.server.data-source.js';
import { UMB_MEDIA_TYPE_TREE_STORE_CONTEXT } from './media-type-tree.store.js';
import { UMB_MEDIA_TYPE_TREE_STORE_CONTEXT } from './media-type-tree.store.context-token.js';
import type { UmbMediaTypeTreeItemModel, UmbMediaTypeTreeRootModel } from './types.js';
import { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';

View File

@@ -0,0 +1,4 @@
import type UmbMediaTypeTreeStore from './media-type-tree.store.js';
import { UmbContextToken } from '@umbraco-cms/backoffice/context-api';
export const UMB_MEDIA_TYPE_TREE_STORE_CONTEXT = new UmbContextToken<UmbMediaTypeTreeStore>('UmbMediaTypeTreeStore');

View File

@@ -1,4 +1,4 @@
import { UmbContextToken } from '@umbraco-cms/backoffice/context-api';
import { UMB_MEDIA_TYPE_TREE_STORE_CONTEXT } from './media-type-tree.store.context-token.js';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { UmbUniqueTreeStore } from '@umbraco-cms/backoffice/tree';
@@ -20,5 +20,3 @@ export class UmbMediaTypeTreeStore extends UmbUniqueTreeStore {
}
export default UmbMediaTypeTreeStore;
export const UMB_MEDIA_TYPE_TREE_STORE_CONTEXT = new UmbContextToken<UmbMediaTypeTreeStore>('UmbMediaTypeTreeStore');

View File

@@ -0,0 +1 @@
export const UMB_MEDIA_TYPE_WORKSPACE_ALIAS = 'Umb.Workspace.MediaType';

Some files were not shown because too many files have changed in this diff Show More