diff --git a/src/Umbraco.Web.UI.Client/.eslintrc.json b/src/Umbraco.Web.UI.Client/.eslintrc.json index 88caa66773..5d886c4d8f 100644 --- a/src/Umbraco.Web.UI.Client/.eslintrc.json +++ b/src/Umbraco.Web.UI.Client/.eslintrc.json @@ -44,6 +44,7 @@ "local-rules/enforce-element-suffix-on-element-class-name": "error", "local-rules/prefer-umbraco-cms-imports": "error", "local-rules/no-external-imports": "error", + "local-rules/umb-class-prefix": "error", "@typescript-eslint/no-non-null-assertion": "off" }, "settings": { diff --git a/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs b/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs index ed1c5036cd..5d121e8cfb 100644 --- a/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs +++ b/src/Umbraco.Web.UI.Client/eslint-local-rules.cjs @@ -205,4 +205,31 @@ module.exports = { }; }, }, + + /** @type {import('eslint').Rule.RuleModule} */ + 'umb-class-prefix': { + 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 && !node.id.name.startsWith('Umb')) { + context.report({ + node: node.id, + message: 'Class declaration should be prefixed with "Umb"', + }); + } + } + + return { + ClassDeclaration: checkClassName, + }; + }, + }, }; diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-consumer.test.ts b/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-consumer.test.ts index bc0c5f2e1e..09a575938f 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-consumer.test.ts +++ b/src/Umbraco.Web.UI.Client/libs/context-api/consume/context-consumer.test.ts @@ -5,7 +5,7 @@ import { UmbContextRequestEventImplementation, umbContextRequestEventType } from const testContextAlias = 'my-test-context'; -class MyClass { +class UmbTestContextConsumerClass { prop = 'value from provider'; } @@ -39,16 +39,20 @@ describe('UmbContextConsumer', () => { }); it('works with UmbContextProvider', (done) => { - const provider = new UmbContextProvider(document.body, testContextAlias, new MyClass()); + const provider = new UmbContextProvider(document.body, testContextAlias, new UmbTestContextConsumerClass()); provider.hostConnected(); const element = document.createElement('div'); document.body.appendChild(element); - const localConsumer = new UmbContextConsumer(element, testContextAlias, (_instance: MyClass) => { - expect(_instance.prop).to.eq('value from provider'); - done(); - }); + const localConsumer = new UmbContextConsumer( + element, + testContextAlias, + (_instance: UmbTestContextConsumerClass) => { + expect(_instance.prop).to.eq('value from provider'); + done(); + } + ); localConsumer.hostConnected(); provider.hostDisconnected(); diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/debug/context-data.function.ts b/src/Umbraco.Web.UI.Client/libs/context-api/debug/context-data.function.ts index 1834d95002..a2a8179474 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/debug/context-data.function.ts +++ b/src/Umbraco.Web.UI.Client/libs/context-api/debug/context-data.function.ts @@ -1,3 +1,4 @@ +/* eslint-disable no-case-declarations */ /** * Change the collection of Contexts into a simplified array of data * @@ -39,10 +40,36 @@ function contextItemData(contextInstance:any):DebugContextItemData { } const value = contextInstance[key]; - if (typeof value === 'string' || typeof value === 'boolean') { - props.push({ key: key, value: value, type: typeof value }); - } else { - props.push({ key: key, type: typeof value }); + const valueType = typeof value; + + switch (valueType) { + case 'string': + case 'boolean': + case 'number': + props.push({ key: key, value: value, type: typeof value }); + break; + + case 'object': + + // Check if the object is an observable (by checking if it has a subscribe method/function) + const isSubscribeLike = 'subscribe' in value && typeof value['subscribe'] === 'function'; + const isWebComponent = value instanceof HTMLElement; + + let valueToDisplay = "Complex Object"; + if(isWebComponent){ + const tagName = value.tagName.toLowerCase(); + + valueToDisplay = `Web Component <${tagName}>`; + } else if(isSubscribeLike){ + valueToDisplay = "Subscribable"; + } + + props.push({ key: key, type: typeof value, value: valueToDisplay }); + break; + + default: + props.push({ key: key, type: typeof value }); + break; } } diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.controller.test.ts b/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.controller.test.ts index 7946d8b30b..d09e43fb44 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.controller.test.ts +++ b/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.controller.test.ts @@ -3,21 +3,21 @@ import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UmbContextConsumer } from '../consume/context-consumer'; import { UmbContextProviderController } from './context-provider.controller'; -class MyClass { +class UmbTestContextProviderControllerClass { prop = 'value from provider'; } -class ControllerHostElement extends UmbLitElement {} -const controllerHostElement = defineCE(ControllerHostElement); +class UmbTestControllerHostElement extends UmbLitElement {} +const controllerHostElement = defineCE(UmbTestControllerHostElement); describe('UmbContextProviderController', () => { - let instance: MyClass; + let instance: UmbTestContextProviderControllerClass; let provider: UmbContextProviderController; let element: UmbLitElement; beforeEach(async () => { element = await fixture(`<${controllerHostElement}>`); - instance = new MyClass(); + instance = new UmbTestContextProviderControllerClass(); provider = new UmbContextProviderController(element, 'my-test-context', instance); }); @@ -39,11 +39,15 @@ describe('UmbContextProviderController', () => { }); it('works with UmbContextConsumer', (done) => { - const localConsumer = new UmbContextConsumer(element, 'my-test-context', (_instance: MyClass) => { - expect(_instance.prop).to.eq('value from provider'); - done(); - localConsumer.hostDisconnected(); - }); + const localConsumer = new UmbContextConsumer( + element, + 'my-test-context', + (_instance: UmbTestContextProviderControllerClass) => { + expect(_instance.prop).to.eq('value from provider'); + done(); + localConsumer.hostDisconnected(); + } + ); localConsumer.hostConnected(); }); diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.test.ts b/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.test.ts index d39e026a2f..ce82bcb9b5 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.test.ts +++ b/src/Umbraco.Web.UI.Client/libs/context-api/provide/context-provider.test.ts @@ -3,16 +3,16 @@ import { UmbContextConsumer } from '../consume/context-consumer'; import { UmbContextRequestEventImplementation } from '../consume/context-request.event'; import { UmbContextProvider } from './context-provider'; -class MyClass { +class UmbTestContextProviderClass { prop = 'value from provider'; } describe('UmbContextProvider', () => { - let instance: MyClass; + let instance: UmbTestContextProviderClass; let provider: UmbContextProvider; beforeEach(() => { - instance = new MyClass(); + instance = new UmbTestContextProviderClass(); provider = new UmbContextProvider(document.body, 'my-test-context', instance); provider.hostConnected(); }); @@ -40,10 +40,13 @@ describe('UmbContextProvider', () => { }); it('handles context request events', (done) => { - const event = new UmbContextRequestEventImplementation('my-test-context', (_instance: MyClass) => { - expect(_instance.prop).to.eq('value from provider'); - done(); - }); + const event = new UmbContextRequestEventImplementation( + 'my-test-context', + (_instance: UmbTestContextProviderClass) => { + expect(_instance.prop).to.eq('value from provider'); + done(); + } + ); document.body.dispatchEvent(event); }); @@ -52,11 +55,15 @@ describe('UmbContextProvider', () => { const element = document.createElement('div'); document.body.appendChild(element); - const localConsumer = new UmbContextConsumer(element, 'my-test-context', (_instance: MyClass) => { - expect(_instance.prop).to.eq('value from provider'); - done(); - localConsumer.hostDisconnected(); - }); + const localConsumer = new UmbContextConsumer( + element, + 'my-test-context', + (_instance: UmbTestContextProviderClass) => { + expect(_instance.prop).to.eq('value from provider'); + done(); + localConsumer.hostDisconnected(); + } + ); localConsumer.hostConnected(); }); }); diff --git a/src/Umbraco.Web.UI.Client/libs/context-api/token/context-token.test.ts b/src/Umbraco.Web.UI.Client/libs/context-api/token/context-token.test.ts index f8b0a2046d..01cdf69427 100644 --- a/src/Umbraco.Web.UI.Client/libs/context-api/token/context-token.test.ts +++ b/src/Umbraco.Web.UI.Client/libs/context-api/token/context-token.test.ts @@ -5,13 +5,13 @@ import { UmbContextToken } from './context-token'; const testContextAlias = 'my-test-context'; -class MyClass { +class UmbTestContextTokenClass { prop = 'value from provider'; } describe('ContextAlias', () => { - const contextAlias = new UmbContextToken(testContextAlias); - const typedProvider = new UmbContextProvider(document.body, contextAlias, new MyClass()); + const contextAlias = new UmbContextToken(testContextAlias); + const typedProvider = new UmbContextProvider(document.body, contextAlias, new UmbTestContextTokenClass()); typedProvider.hostConnected(); after(() => { @@ -27,7 +27,7 @@ describe('ContextAlias', () => { document.body.appendChild(element); const localConsumer = new UmbContextConsumer(element, contextAlias, (_instance) => { - expect(_instance).to.be.instanceOf(MyClass); + expect(_instance).to.be.instanceOf(UmbTestContextTokenClass); expect(_instance.prop).to.eq('value from provider'); done(); }); @@ -39,8 +39,8 @@ describe('ContextAlias', () => { const element = document.createElement('div'); document.body.appendChild(element); - const localConsumer = new UmbContextConsumer(element, testContextAlias, (_instance: MyClass) => { - expect(_instance).to.be.instanceOf(MyClass); + const localConsumer = new UmbContextConsumer(element, testContextAlias, (_instance: UmbTestContextTokenClass) => { + expect(_instance).to.be.instanceOf(UmbTestContextTokenClass); expect(_instance.prop).to.eq('value from provider'); done(); }); diff --git a/src/Umbraco.Web.UI.Client/libs/controller/controller.test.ts b/src/Umbraco.Web.UI.Client/libs/controller/controller.test.ts index 993bc546ca..deda6a09e1 100644 --- a/src/Umbraco.Web.UI.Client/libs/controller/controller.test.ts +++ b/src/Umbraco.Web.UI.Client/libs/controller/controller.test.ts @@ -3,18 +3,18 @@ import { customElement } from 'lit/decorators.js'; import { UmbControllerHostElement, UmbControllerHostMixin } from './controller-host.mixin'; import { UmbContextProviderController } from '@umbraco-cms/backoffice/context-api'; -class MyClass { +class UmbTestContext { prop = 'value from provider'; } @customElement('test-my-controller-host') -export class MyHostElement extends UmbControllerHostMixin(HTMLElement) {} +export class UmbTestControllerHostElement extends UmbControllerHostMixin(HTMLElement) {} describe('UmbContextProvider', () => { type NewType = UmbControllerHostElement; let hostElement: NewType; - const contextInstance = new MyClass(); + const contextInstance = new UmbTestContext(); beforeEach(() => { hostElement = document.createElement('test-my-controller-host') as UmbControllerHostElement; @@ -35,7 +35,7 @@ describe('UmbContextProvider', () => { describe('Unique controllers replace each other', () => { it('has a host property', () => { const firstCtrl = new UmbContextProviderController(hostElement, 'my-test-context', contextInstance); - const secondCtrl = new UmbContextProviderController(hostElement, 'my-test-context', new MyClass()); + const secondCtrl = new UmbContextProviderController(hostElement, 'my-test-context', new UmbTestContext()); expect(hostElement.hasController(firstCtrl)).to.be.false; expect(hostElement.hasController(secondCtrl)).to.be.true; diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/append-to-frozen-array.function.ts b/src/Umbraco.Web.UI.Client/libs/observable-api/append-to-frozen-array.function.ts index 97ff56848c..23510e754c 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/append-to-frozen-array.function.ts +++ b/src/Umbraco.Web.UI.Client/libs/observable-api/append-to-frozen-array.function.ts @@ -5,7 +5,7 @@ * @param {(mappable: T) => R} mappingFunction - Method to return the part for this Observable to return. * @param {(previousResult: R, currentResult: R) => boolean} [memoizationFunction] - Method to Compare if the data has changed. Should return true when data is different. * @description - Creates a RxJS Observable from RxJS Subject. - * @example Example append new entry for a ArrayState or a part of DeepState/ObjectState it which is an array. Where the key is unique and the item will be updated if matched with existing. + * @example Example append new entry for a ArrayState or a part of UmbDeepState/UmbObjectState it which is an array. Where the key is unique and the item will be updated if matched with existing. * const entry = {id: 'myKey', value: 'myValue'}; * const newDataSet = appendToFrozenArray(mySubject.getValue(), entry, x => x.id === id); * mySubject.next(newDataSet); diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/array-state.test.ts b/src/Umbraco.Web.UI.Client/libs/observable-api/array-state.test.ts index 854ec3ee92..1a22dae157 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/array-state.test.ts +++ b/src/Umbraco.Web.UI.Client/libs/observable-api/array-state.test.ts @@ -1,11 +1,11 @@ import { expect } from '@open-wc/testing'; -import { ArrayState } from './array-state'; +import { UmbArrayState } from './array-state'; describe('ArrayState', () => { type ObjectType = { key: string; another: string }; type ArrayType = ObjectType[]; - let subject: ArrayState; + let subject: UmbArrayState; let initialData: ArrayType; beforeEach(() => { @@ -14,7 +14,7 @@ describe('ArrayState', () => { { key: '2', another: 'myValue2' }, { key: '3', another: 'myValue3' }, ]; - subject = new ArrayState(initialData, (x) => x.key); + subject = new UmbArrayState(initialData, (x) => x.key); }); it('replays latests, no matter the amount of subscriptions.', (done) => { diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/array-state.ts b/src/Umbraco.Web.UI.Client/libs/observable-api/array-state.ts index 7572f89d8b..a4f67b2708 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/array-state.ts +++ b/src/Umbraco.Web.UI.Client/libs/observable-api/array-state.ts @@ -1,17 +1,17 @@ -import { DeepState } from './deep-state'; +import { UmbDeepState } from './deep-state'; import { partialUpdateFrozenArray } from './partial-update-frozen-array.function'; import { pushToUniqueArray } from './push-to-unique-array.function'; /** * @export - * @class ArrayState - * @extends {DeepState} + * @class UmbArrayState + * @extends {UmbDeepState} * @description - A RxJS BehaviorSubject which deepFreezes the object-data to ensure its not manipulated from any implementations. * Additionally the Subject ensures the data is unique, not updating any Observes unless there is an actual change of the content. * * The ArrayState provides methods to append data when the data is an Object. */ -export class ArrayState extends DeepState { +export class UmbArrayState extends UmbDeepState { #getUnique?: (entry: T) => unknown; #sortMethod?: (a: T, b: T) => number; @@ -29,7 +29,7 @@ export class ArrayState extends DeepState { * { key: 1, value: 'foo'}, * { key: 2, value: 'bar'} * ]; - * const myState = new ArrayState(data, (x) => x.key); + * const myState = new UmbArrayState(data, (x) => x.key); * myState.sortBy((a, b) => (a.sortOrder || 0) - (b.sortOrder || 0)); */ sortBy(sortMethod?: (a: T, b: T) => number) { @@ -48,14 +48,14 @@ export class ArrayState extends DeepState { /** * @method remove * @param {unknown[]} uniques - The unique values to remove. - * @return {ArrayState} Reference to it self. + * @return {UmbArrayState} Reference to it self. * @description - Remove some new data of this Subject. * @example Example remove entry with id '1' and '2' * const data = [ * { id: 1, value: 'foo'}, * { id: 2, value: 'bar'} * ]; - * const myState = new ArrayState(data, (x) => x.id); + * const myState = new UmbArrayState(data, (x) => x.id); * myState.remove([1, 2]); */ remove(uniques: unknown[]) { @@ -77,14 +77,14 @@ export class ArrayState extends DeepState { /** * @method removeOne * @param {unknown} unique - The unique value to remove. - * @return {ArrayState} Reference to it self. + * @return {UmbArrayState} Reference to it self. * @description - Remove some new data of this Subject. * @example Example remove entry with id '1' * const data = [ * { id: 1, value: 'foo'}, * { id: 2, value: 'bar'} * ]; - * const myState = new ArrayState(data, (x) => x.id); + * const myState = new UmbArrayState(data, (x) => x.id); * myState.removeOne(1); */ removeOne(unique: unknown) { @@ -104,7 +104,7 @@ export class ArrayState extends DeepState { /** * @method filter * @param {unknown} filterMethod - The unique value to remove. - * @return {ArrayState} Reference to it self. + * @return {UmbArrayState} Reference to it self. * @description - Remove some new data of this Subject. * @example Example remove entry with key '1' * const data = [ @@ -112,7 +112,7 @@ export class ArrayState extends DeepState { * { key: 2, value: 'bar'}, * { key: 3, value: 'poo'} * ]; - * const myState = new ArrayState(data, (x) => x.key); + * const myState = new UmbArrayState(data, (x) => x.key); * myState.filter((entry) => entry.key !== 1); * * Result: @@ -130,14 +130,14 @@ export class ArrayState extends DeepState { /** * @method appendOne * @param {T} entry - new data to be added in this Subject. - * @return {ArrayState} Reference to it self. + * @return {UmbArrayState} Reference to it self. * @description - Append some new data to this Subject. * @example Example append some data. * const data = [ * { key: 1, value: 'foo'}, * { key: 2, value: 'bar'} * ]; - * const myState = new ArrayState(data); + * const myState = new UmbArrayState(data); * myState.append({ key: 1, value: 'replaced-foo'}); */ appendOne(entry: T) { @@ -154,14 +154,14 @@ export class ArrayState extends DeepState { /** * @method append * @param {T[]} entries - A array of new data to be added in this Subject. - * @return {ArrayState} Reference to it self. + * @return {UmbArrayState} Reference to it self. * @description - Append some new data to this Subject, if it compares to existing data it will replace it. * @example Example append some data. * const data = [ * { key: 1, value: 'foo'}, * { key: 2, value: 'bar'} * ]; - * const myState = new ArrayState(data); + * const myState = new UmbArrayState(data); * myState.append([ * { key: 1, value: 'replaced-foo'}, * { key: 3, value: 'another-bla'} @@ -184,14 +184,14 @@ export class ArrayState extends DeepState { * @method updateOne * @param {unknown} unique - Unique value to find entry to update. * @param {Partial} entry - new data to be added in this Subject. - * @return {ArrayState} Reference to it self. + * @return {UmbArrayState} Reference to it self. * @description - Update a item with some new data, requires the ArrayState to be constructed with a getUnique method. * @example Example append some data. * const data = [ * { key: 1, value: 'foo'}, * { key: 2, value: 'bar'} * ]; - * const myState = new ArrayState(data, (x) => x.key); + * const myState = new UmbArrayState(data, (x) => x.key); * myState.updateOne(2, {value: 'updated-bar'}); */ updateOne(unique: unknown, entry: Partial) { diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/basic-state.ts b/src/Umbraco.Web.UI.Client/libs/observable-api/basic-state.ts index 57d7f8581b..30972d0ef4 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/basic-state.ts +++ b/src/Umbraco.Web.UI.Client/libs/observable-api/basic-state.ts @@ -2,11 +2,11 @@ import { BehaviorSubject } from 'rxjs'; /** * @export - * @class BasicState + * @class UmbBasicState * @extends {BehaviorSubject} * @description - A RxJS BehaviorSubject this Subject ensures the data is unique, not updating any Observes unless there is an actual change of the value. */ -export class BasicState extends BehaviorSubject { +export class UmbBasicState extends BehaviorSubject { constructor(initialData: T) { super(initialData); } diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/boolean-state.ts b/src/Umbraco.Web.UI.Client/libs/observable-api/boolean-state.ts index 5404d43651..85a91d895d 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/boolean-state.ts +++ b/src/Umbraco.Web.UI.Client/libs/observable-api/boolean-state.ts @@ -1,12 +1,12 @@ -import { BasicState } from './basic-state'; +import { UmbBasicState } from './basic-state'; /** * @export - * @class BooleanState + * @class UmbBooleanState * @extends {BehaviorSubject} * @description - A RxJS BehaviorSubject this Subject ensures the data is unique, not updating any Observes unless there is an actual change of the value. */ -export class BooleanState extends BasicState { +export class UmbBooleanState extends UmbBasicState { constructor(initialData: T | boolean) { super(initialData); } diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/class-state.ts b/src/Umbraco.Web.UI.Client/libs/observable-api/class-state.ts index 11c38dc6b9..586710e38b 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/class-state.ts +++ b/src/Umbraco.Web.UI.Client/libs/observable-api/class-state.ts @@ -1,16 +1,16 @@ import { BehaviorSubject } from 'rxjs'; -interface ClassStateData { - equal(otherClass: ClassStateData): boolean; +interface UmbClassStateData { + equal(otherClass: UmbClassStateData): boolean; } /** * @export - * @class ClassState + * @class UmbClassState * @extends {BehaviorSubject} * @description - A RxJS BehaviorSubject which can hold class instance which has a equal method to compare in coming instances for changes. */ -export class ClassState extends BehaviorSubject { +export class UmbClassState extends BehaviorSubject { constructor(initialData: T) { super(initialData); } diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/deep-state.test.ts b/src/Umbraco.Web.UI.Client/libs/observable-api/deep-state.test.ts index f605564749..f1971dfa40 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/deep-state.test.ts +++ b/src/Umbraco.Web.UI.Client/libs/observable-api/deep-state.test.ts @@ -1,30 +1,27 @@ import { expect } from '@open-wc/testing'; -import { DeepState } from './deep-state'; +import { UmbDeepState } from './deep-state'; -describe('DeepState', () => { +describe('UmbDeepState', () => { + type ObjectType = { key: string; another: string }; - type ObjectType = {key: string, another: string}; - - let subject: DeepState; + let subject: UmbDeepState; let initialData: ObjectType; beforeEach(() => { - initialData = {key: 'some', another: 'myValue'}; - subject = new DeepState(initialData); + initialData = { key: 'some', another: 'myValue' }; + subject = new UmbDeepState(initialData); }); - it('getValue gives the initial data', () => { expect(subject.value.another).to.be.equal(initialData.another); }); it('update via next', () => { - subject.next({key: 'some', another: 'myNewValue'}); + subject.next({ key: 'some', another: 'myNewValue' }); expect(subject.value.another).to.be.equal('myNewValue'); }); it('replays latests, no matter the amount of subscriptions.', (done) => { - const observer = subject.asObservable(); observer.subscribe((value) => { expect(value).to.be.equal(initialData); @@ -33,28 +30,24 @@ describe('DeepState', () => { expect(value).to.be.equal(initialData); done(); }); - }); it('use gObservablePart, updates on its specific change.', (done) => { - let amountOfCallbacks = 0; - const subObserver = subject.getObservablePart(data => data.another); + const subObserver = subject.getObservablePart((data) => data.another); subObserver.subscribe((value) => { amountOfCallbacks++; - if(amountOfCallbacks === 1) { + if (amountOfCallbacks === 1) { expect(value).to.be.equal('myValue'); } - if(amountOfCallbacks === 2) { + if (amountOfCallbacks === 2) { expect(value).to.be.equal('myNewValue'); done(); } }); - subject.next({key: 'change_this_first_should_not_trigger_update', another: 'myValue'}); - subject.next({key: 'some', another: 'myNewValue'}); - + subject.next({ key: 'change_this_first_should_not_trigger_update', another: 'myValue' }); + subject.next({ key: 'some', another: 'myNewValue' }); }); - }); diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/deep-state.ts b/src/Umbraco.Web.UI.Client/libs/observable-api/deep-state.ts index 201ab479c8..c67daa927c 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/deep-state.ts +++ b/src/Umbraco.Web.UI.Client/libs/observable-api/deep-state.ts @@ -7,12 +7,12 @@ import { naiveObjectComparison } from './naive-object-comparison'; /** * @export - * @class DeepState + * @class UmbDeepState * @extends {BehaviorSubject} * @description - A RxJS BehaviorSubject which deepFreezes the data to ensure its not manipulated from any implementations. * Additionally the Subject ensures the data is unique, not updating any Observes unless there is an actual change of the content. */ -export class DeepState extends BehaviorSubject { +export class UmbDeepState extends BehaviorSubject { constructor(initialData: T) { super(deepFreeze(initialData)); } diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/number-state.ts b/src/Umbraco.Web.UI.Client/libs/observable-api/number-state.ts index ded3defeb9..5556d8956c 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/number-state.ts +++ b/src/Umbraco.Web.UI.Client/libs/observable-api/number-state.ts @@ -1,12 +1,12 @@ -import { BasicState } from './basic-state'; +import { UmbBasicState } from './basic-state'; /** * @export - * @class NumberState + * @class UmbNumberState * @extends {BehaviorSubject} * @description - A RxJS BehaviorSubject this Subject ensures the data is unique, not updating any Observes unless there is an actual change of the value. */ -export class NumberState extends BasicState { +export class UmbNumberState extends UmbBasicState { constructor(initialData: T | number) { super(initialData); } diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/object-state.test.ts b/src/Umbraco.Web.UI.Client/libs/observable-api/object-state.test.ts index 66b1e0deef..75b4d3bbe2 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/object-state.test.ts +++ b/src/Umbraco.Web.UI.Client/libs/observable-api/object-state.test.ts @@ -1,21 +1,18 @@ import { expect } from '@open-wc/testing'; -import { ObjectState } from './object-state'; +import { UmbObjectState } from './object-state'; -describe('ObjectState', () => { +describe('UmbObjectState', () => { + type ObjectType = { key: string; another: string }; - type ObjectType = {key: string, another: string}; - - let subject: ObjectState; + let subject: UmbObjectState; let initialData: ObjectType; beforeEach(() => { - initialData = {key: 'some', another: 'myValue'}; - subject = new ObjectState(initialData); + initialData = { key: 'some', another: 'myValue' }; + subject = new UmbObjectState(initialData); }); - it('replays latests, no matter the amount of subscriptions.', (done) => { - const observer = subject.asObservable(); observer.subscribe((value) => { expect(value).to.be.equal(initialData); @@ -24,28 +21,24 @@ describe('ObjectState', () => { expect(value).to.be.equal(initialData); done(); }); - }); it('use getObservablePart, updates on its specific change.', (done) => { - let amountOfCallbacks = 0; - const subObserver = subject.getObservablePart(data => data.another); + const subObserver = subject.getObservablePart((data) => data.another); subObserver.subscribe((value) => { amountOfCallbacks++; - if(amountOfCallbacks === 1) { + if (amountOfCallbacks === 1) { expect(value).to.be.equal('myValue'); } - if(amountOfCallbacks === 2) { + if (amountOfCallbacks === 2) { expect(value).to.be.equal('myNewValue'); done(); } }); - subject.update({key: 'change_this_first_should_not_trigger_update'}); - subject.update({another: 'myNewValue'}); - + subject.update({ key: 'change_this_first_should_not_trigger_update' }); + subject.update({ another: 'myNewValue' }); }); - }); diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/object-state.ts b/src/Umbraco.Web.UI.Client/libs/observable-api/object-state.ts index 04c72dd9b3..6c4b32a115 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/object-state.ts +++ b/src/Umbraco.Web.UI.Client/libs/observable-api/object-state.ts @@ -1,23 +1,23 @@ -import { DeepState } from './deep-state'; +import { UmbDeepState } from './deep-state'; /** * @export - * @class ObjectState - * @extends {DeepState} + * @class UmbObjectState + * @extends {UmbDeepState} * @description - A RxJS BehaviorSubject which deepFreezes the object-data to ensure its not manipulated from any implementations. * Additionally the Subject ensures the data is unique, not updating any Observes unless there is an actual change of the content. * - * The ObjectState provides methods to append data when the data is an Object. + * The UmbObjectState provides methods to append data when the data is an Object. */ -export class ObjectState extends DeepState { +export class UmbObjectState extends UmbDeepState { /** * @method update * @param {Partial} partialData - A object containing some of the data to update in this Subject. * @description - Append some new data to this Object. - * @return {ObjectState} Reference to it self. + * @return {UmbObjectState} Reference to it self. * @example Example append some data. * const data = {key: 'myKey', value: 'myInitialValue'}; - * const myState = new ObjectState(data); + * const myState = new UmbObjectState(data); * myState.update({value: 'myNewValue'}); */ update(partialData: Partial) { diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/partial-update-frozen-array.function.ts b/src/Umbraco.Web.UI.Client/libs/observable-api/partial-update-frozen-array.function.ts index 14a2e4c5b6..b19c322594 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/partial-update-frozen-array.function.ts +++ b/src/Umbraco.Web.UI.Client/libs/observable-api/partial-update-frozen-array.function.ts @@ -5,7 +5,7 @@ * @param {(mappable: T) => R} mappingFunction - Method to return the part for this Observable to return. * @param {(previousResult: R, currentResult: R) => boolean} [memoizationFunction] - Method to Compare if the data has changed. Should return true when data is different. * @description - Creates a RxJS Observable from RxJS Subject. - * @example Example append new entry for a ArrayState or a part of DeepState/ObjectState it which is an array. Where the key is unique and the item will be updated if matched with existing. + * @example Example append new entry for a ArrayState or a part of UmbDeepState/UmbObjectState it which is an array. Where the key is unique and the item will be updated if matched with existing. * const partialEntry = {value: 'myValue'}; * const newDataSet = partialUpdateFrozenArray(mySubject.getValue(), partialEntry, x => x.key === 'myKey'); * mySubject.next(newDataSet); diff --git a/src/Umbraco.Web.UI.Client/libs/observable-api/string-state.ts b/src/Umbraco.Web.UI.Client/libs/observable-api/string-state.ts index d3e9689a7b..632c28e1b1 100644 --- a/src/Umbraco.Web.UI.Client/libs/observable-api/string-state.ts +++ b/src/Umbraco.Web.UI.Client/libs/observable-api/string-state.ts @@ -1,12 +1,12 @@ -import { BasicState } from './basic-state'; +import { UmbBasicState } from './basic-state'; /** * @export - * @class StringState - * @extends {BasicState} + * @class UmbStringState + * @extends {UmbBasicState} * @description - A RxJS BehaviorSubject this Subject ensures the data is unique, not updating any Observes unless there is an actual change of the value. */ -export class StringState extends BasicState { +export class UmbStringState extends UmbBasicState { constructor(initialData: T | string) { super(initialData); } diff --git a/src/Umbraco.Web.UI.Client/libs/store/entity-tree-store.ts b/src/Umbraco.Web.UI.Client/libs/store/entity-tree-store.ts index ea94db043a..dfa6815a04 100644 --- a/src/Umbraco.Web.UI.Client/libs/store/entity-tree-store.ts +++ b/src/Umbraco.Web.UI.Client/libs/store/entity-tree-store.ts @@ -1,5 +1,5 @@ import { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { ArrayState, partialUpdateFrozenArray } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState, partialUpdateFrozenArray } from '@umbraco-cms/backoffice/observable-api'; import { UmbStoreBase, UmbTreeStore } from '@umbraco-cms/backoffice/store'; /** @@ -9,7 +9,7 @@ import { UmbStoreBase, UmbTreeStore } from '@umbraco-cms/backoffice/store'; * @description - General Tree Data Store */ export class UmbEntityTreeStore extends UmbStoreBase implements UmbTreeStore { - #data = new ArrayState([], (x) => x.id); + #data = new UmbArrayState([], (x) => x.id); /** * Appends items to the store diff --git a/src/Umbraco.Web.UI.Client/libs/store/file-system-tree.store.ts b/src/Umbraco.Web.UI.Client/libs/store/file-system-tree.store.ts index 8afa8ca62e..3bb024511a 100644 --- a/src/Umbraco.Web.UI.Client/libs/store/file-system-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/libs/store/file-system-tree.store.ts @@ -1,5 +1,5 @@ import { FileSystemTreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api'; -import { ArrayState, partialUpdateFrozenArray } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState, partialUpdateFrozenArray } from '@umbraco-cms/backoffice/observable-api'; import { UmbStoreBase, UmbTreeStore } from '@umbraco-cms/backoffice/store'; /** @@ -9,7 +9,7 @@ import { UmbStoreBase, UmbTreeStore } from '@umbraco-cms/backoffice/store'; * @description - General Tree Data Store */ export class UmbFileSystemTreeStore extends UmbStoreBase implements UmbTreeStore { - #data = new ArrayState([], (x) => x.path); + #data = new UmbArrayState([], (x) => x.path); /** * Appends items to the store diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 37edbdfc85..7a28616adb 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -9,8 +9,8 @@ "version": "0.0.0", "license": "MIT", "dependencies": { - "@umbraco-ui/uui": "^1.2.0-rc.2", - "@umbraco-ui/uui-css": "^1.2.0-rc.2", + "@umbraco-ui/uui": "^1.2.0-rc.3", + "@umbraco-ui/uui-css": "^1.2.0-rc.3", "element-internals-polyfill": "^1.1.19", "lit": "^2.7.0", "lodash-es": "4.17.21", @@ -5751,780 +5751,780 @@ } }, "node_modules/@umbraco-ui/uui": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.2.0-rc.2.tgz", - "integrity": "sha512-E8CrJYKLBcCnshV+nTVkfkL9I+0sJbBjKMHOVr/jCOj6Dw9mGytq0bmq8EIT0QcqZ6teZZplkwW2JPQauuv5JA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.2.0-rc.3.tgz", + "integrity": "sha512-40mfNOaZYJioMhnp7iPs68U9NlWbnkh3OuNCy5oztXq+OmEHLDVJY0YDiieUEFUnxIjgHN1SKPJplykjog6X0A==", "dependencies": { - "@umbraco-ui/uui-action-bar": "1.2.0-rc.2", - "@umbraco-ui/uui-avatar": "1.2.0-rc.2", - "@umbraco-ui/uui-avatar-group": "1.2.0-rc.2", - "@umbraco-ui/uui-badge": "1.2.0-rc.2", - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-boolean-input": "1.2.0-rc.2", - "@umbraco-ui/uui-box": "1.2.0-rc.2", - "@umbraco-ui/uui-breadcrumbs": "1.2.0-rc.2", - "@umbraco-ui/uui-button": "1.2.0-rc.2", - "@umbraco-ui/uui-button-group": "1.2.0-rc.2", - "@umbraco-ui/uui-button-inline-create": "1.2.0-rc.2", - "@umbraco-ui/uui-card": "1.2.0-rc.2", - "@umbraco-ui/uui-card-content-node": "1.2.0-rc.2", - "@umbraco-ui/uui-card-media": "1.2.0-rc.2", - "@umbraco-ui/uui-card-user": "1.2.0-rc.2", - "@umbraco-ui/uui-caret": "1.2.0-rc.2", - "@umbraco-ui/uui-checkbox": "1.2.0-rc.2", - "@umbraco-ui/uui-color-area": "1.2.0-rc.2", - "@umbraco-ui/uui-color-picker": "1.2.0-rc.2", - "@umbraco-ui/uui-color-slider": "1.2.0-rc.2", - "@umbraco-ui/uui-color-swatch": "1.2.0-rc.2", - "@umbraco-ui/uui-color-swatches": "1.2.0-rc.2", - "@umbraco-ui/uui-combobox": "1.2.0-rc.2", - "@umbraco-ui/uui-combobox-list": "1.2.0-rc.2", - "@umbraco-ui/uui-css": "1.2.0-rc.2", - "@umbraco-ui/uui-dialog": "1.2.0-rc.2", - "@umbraco-ui/uui-dialog-layout": "1.2.0-rc.2", - "@umbraco-ui/uui-file-dropzone": "1.2.0-rc.2", - "@umbraco-ui/uui-file-preview": "1.2.0-rc.2", - "@umbraco-ui/uui-form": "1.2.0-rc.2", - "@umbraco-ui/uui-form-layout-item": "1.2.0-rc.2", - "@umbraco-ui/uui-form-validation-message": "1.2.0-rc.2", - "@umbraco-ui/uui-icon": "1.2.0-rc.2", - "@umbraco-ui/uui-icon-registry": "1.2.0-rc.2", - "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.2", - "@umbraco-ui/uui-input": "1.2.0-rc.2", - "@umbraco-ui/uui-input-file": "1.2.0-rc.2", - "@umbraco-ui/uui-input-lock": "1.2.0-rc.2", - "@umbraco-ui/uui-input-password": "1.2.0-rc.2", - "@umbraco-ui/uui-keyboard-shortcut": "1.2.0-rc.2", - "@umbraco-ui/uui-label": "1.2.0-rc.2", - "@umbraco-ui/uui-loader": "1.2.0-rc.2", - "@umbraco-ui/uui-loader-bar": "1.2.0-rc.2", - "@umbraco-ui/uui-loader-circle": "1.2.0-rc.2", - "@umbraco-ui/uui-menu-item": "1.2.0-rc.2", - "@umbraco-ui/uui-modal": "1.2.0-rc.2", - "@umbraco-ui/uui-pagination": "1.2.0-rc.2", - "@umbraco-ui/uui-popover": "1.2.0-rc.2", - "@umbraco-ui/uui-progress-bar": "1.2.0-rc.2", - "@umbraco-ui/uui-radio": "1.2.0-rc.2", - "@umbraco-ui/uui-range-slider": "1.2.0-rc.2", - "@umbraco-ui/uui-ref": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-list": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node-data-type": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node-document-type": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node-form": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node-member": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node-package": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node-user": "1.2.0-rc.2", - "@umbraco-ui/uui-scroll-container": "1.2.0-rc.2", - "@umbraco-ui/uui-select": "1.2.0-rc.2", - "@umbraco-ui/uui-slider": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-expand": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-file": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-file-dropzone": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-file-thumbnail": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-folder": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-lock": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-more": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-sort": "1.2.0-rc.2", - "@umbraco-ui/uui-table": "1.2.0-rc.2", - "@umbraco-ui/uui-tabs": "1.2.0-rc.2", - "@umbraco-ui/uui-tag": "1.2.0-rc.2", - "@umbraco-ui/uui-textarea": "1.2.0-rc.2", - "@umbraco-ui/uui-toast-notification": "1.2.0-rc.2", - "@umbraco-ui/uui-toast-notification-container": "1.2.0-rc.2", - "@umbraco-ui/uui-toast-notification-layout": "1.2.0-rc.2", - "@umbraco-ui/uui-toggle": "1.2.0-rc.2" + "@umbraco-ui/uui-action-bar": "1.2.0-rc.3", + "@umbraco-ui/uui-avatar": "1.2.0-rc.3", + "@umbraco-ui/uui-avatar-group": "1.2.0-rc.3", + "@umbraco-ui/uui-badge": "1.2.0-rc.3", + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-boolean-input": "1.2.0-rc.3", + "@umbraco-ui/uui-box": "1.2.0-rc.3", + "@umbraco-ui/uui-breadcrumbs": "1.2.0-rc.3", + "@umbraco-ui/uui-button": "1.2.0-rc.3", + "@umbraco-ui/uui-button-group": "1.2.0-rc.3", + "@umbraco-ui/uui-button-inline-create": "1.2.0-rc.3", + "@umbraco-ui/uui-card": "1.2.0-rc.3", + "@umbraco-ui/uui-card-content-node": "1.2.0-rc.3", + "@umbraco-ui/uui-card-media": "1.2.0-rc.3", + "@umbraco-ui/uui-card-user": "1.2.0-rc.3", + "@umbraco-ui/uui-caret": "1.2.0-rc.3", + "@umbraco-ui/uui-checkbox": "1.2.0-rc.3", + "@umbraco-ui/uui-color-area": "1.2.0-rc.3", + "@umbraco-ui/uui-color-picker": "1.2.0-rc.3", + "@umbraco-ui/uui-color-slider": "1.2.0-rc.3", + "@umbraco-ui/uui-color-swatch": "1.2.0-rc.3", + "@umbraco-ui/uui-color-swatches": "1.2.0-rc.3", + "@umbraco-ui/uui-combobox": "1.2.0-rc.3", + "@umbraco-ui/uui-combobox-list": "1.2.0-rc.3", + "@umbraco-ui/uui-css": "1.2.0-rc.3", + "@umbraco-ui/uui-dialog": "1.2.0-rc.3", + "@umbraco-ui/uui-dialog-layout": "1.2.0-rc.3", + "@umbraco-ui/uui-file-dropzone": "1.2.0-rc.3", + "@umbraco-ui/uui-file-preview": "1.2.0-rc.3", + "@umbraco-ui/uui-form": "1.2.0-rc.3", + "@umbraco-ui/uui-form-layout-item": "1.2.0-rc.3", + "@umbraco-ui/uui-form-validation-message": "1.2.0-rc.3", + "@umbraco-ui/uui-icon": "1.2.0-rc.3", + "@umbraco-ui/uui-icon-registry": "1.2.0-rc.3", + "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.3", + "@umbraco-ui/uui-input": "1.2.0-rc.3", + "@umbraco-ui/uui-input-file": "1.2.0-rc.3", + "@umbraco-ui/uui-input-lock": "1.2.0-rc.3", + "@umbraco-ui/uui-input-password": "1.2.0-rc.3", + "@umbraco-ui/uui-keyboard-shortcut": "1.2.0-rc.3", + "@umbraco-ui/uui-label": "1.2.0-rc.3", + "@umbraco-ui/uui-loader": "1.2.0-rc.3", + "@umbraco-ui/uui-loader-bar": "1.2.0-rc.3", + "@umbraco-ui/uui-loader-circle": "1.2.0-rc.3", + "@umbraco-ui/uui-menu-item": "1.2.0-rc.3", + "@umbraco-ui/uui-modal": "1.2.0-rc.3", + "@umbraco-ui/uui-pagination": "1.2.0-rc.3", + "@umbraco-ui/uui-popover": "1.2.0-rc.3", + "@umbraco-ui/uui-progress-bar": "1.2.0-rc.3", + "@umbraco-ui/uui-radio": "1.2.0-rc.3", + "@umbraco-ui/uui-range-slider": "1.2.0-rc.3", + "@umbraco-ui/uui-ref": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-list": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node-data-type": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node-document-type": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node-form": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node-member": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node-package": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node-user": "1.2.0-rc.3", + "@umbraco-ui/uui-scroll-container": "1.2.0-rc.3", + "@umbraco-ui/uui-select": "1.2.0-rc.3", + "@umbraco-ui/uui-slider": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-expand": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-file": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-file-dropzone": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-file-thumbnail": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-folder": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-lock": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-more": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-sort": "1.2.0-rc.3", + "@umbraco-ui/uui-table": "1.2.0-rc.3", + "@umbraco-ui/uui-tabs": "1.2.0-rc.3", + "@umbraco-ui/uui-tag": "1.2.0-rc.3", + "@umbraco-ui/uui-textarea": "1.2.0-rc.3", + "@umbraco-ui/uui-toast-notification": "1.2.0-rc.3", + "@umbraco-ui/uui-toast-notification-container": "1.2.0-rc.3", + "@umbraco-ui/uui-toast-notification-layout": "1.2.0-rc.3", + "@umbraco-ui/uui-toggle": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-action-bar": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-action-bar/-/uui-action-bar-1.2.0-rc.2.tgz", - "integrity": "sha512-JI9n1/gB6cr+7k0+v+HVAnfXCkZIN3UYbC8BhC+YinMsKIIWiLgo/FmgClgHmJ9zPD9EhAVqUa8wViM03npyDg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-action-bar/-/uui-action-bar-1.2.0-rc.3.tgz", + "integrity": "sha512-kxMgIYNnE/2DGIuvdfWsY1zCU0zwbPxEQnhhGgqP6SjgxN+c01yid1w7R4hF1DwS5gtuZWJvfQEmdM7r5x3ctw==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-button-group": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-button-group": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-avatar": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar/-/uui-avatar-1.2.0-rc.2.tgz", - "integrity": "sha512-WnVicYfGExAKA7gXHjVk4dcANRrWYnXLlAWiRS9SOVDFUYezbNbX82Nt2rMGxZ5K3TJr+WWxBa0b2AYhz/pWpw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar/-/uui-avatar-1.2.0-rc.3.tgz", + "integrity": "sha512-ZlKyIaXxXZR7VXEKTHj5aNmw4UKxAdD4G5vb+5/rYzSKQ/yf37nVDtMjvDQIFRQiwMpxl9tQ3oEe3SlafCmLiw==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-avatar-group": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar-group/-/uui-avatar-group-1.2.0-rc.2.tgz", - "integrity": "sha512-bEtJzr4tC8oL4KszNxqu3ey1DPg9hZnaEND7p8RDXCknZLpi9flhpU73esvskiCRSJr5CTu0pTwJwOR+Bhwr9Q==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar-group/-/uui-avatar-group-1.2.0-rc.3.tgz", + "integrity": "sha512-7GLMnr3uAOsK8keZXITZTuNW8DqhqMhR5tknY1sWDJZ57vH5C+aJUDVvwcAs97W03Sjn2PRx5ZzNQbeV4s0SKg==", "dependencies": { - "@umbraco-ui/uui-avatar": "1.2.0-rc.2", - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-avatar": "1.2.0-rc.3", + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-badge": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-badge/-/uui-badge-1.2.0-rc.2.tgz", - "integrity": "sha512-Z/zxDmf5WbeXo+3CrB62TOHgg5cEcKNB4vc06NAllypzLBKdBPjRe3FtBtRL8ExwZmXoAlJmlItr6nEnfogKUQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-badge/-/uui-badge-1.2.0-rc.3.tgz", + "integrity": "sha512-nehPDh2nKW0JxtIjWAoUJ+Rj+8ZCBsPeaRgqRKetOxfmMhQHvq0Yw+r8DxgCU+5VXdR6TEpEojvTioln6zErgw==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-base": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-base/-/uui-base-1.2.0-rc.2.tgz", - "integrity": "sha512-rGHM+OgldohqNlq5B1BMcpVkZNMu8A0X5uN6cG74qGg+WXqXbX9XlRFxMMuoxCTgtqowGZMn7St+Tu3O8GQAiA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-base/-/uui-base-1.2.0-rc.3.tgz", + "integrity": "sha512-qM1dDv1nCEIQZw4licg+FTpS9O69TWRZ7zf2XS30Y8qhVtkibUSi+DbM6pimxYvdlCnGYgDpB59yDqAWdDxwTQ==", "dependencies": { "lit": "^2.3.1" } }, "node_modules/@umbraco-ui/uui-boolean-input": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-boolean-input/-/uui-boolean-input-1.2.0-rc.2.tgz", - "integrity": "sha512-W3qKtrH1c+nPe0yuz8sySf6hF7rOK9Hg3I2HZ5jRmoKnDmTLiZpXhDDyaYKy1oH5n/WdRlJx9aBaZG5TMmRqpg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-boolean-input/-/uui-boolean-input-1.2.0-rc.3.tgz", + "integrity": "sha512-IPiOtns6qGFTCRwAg7V1gVHJnAk+48bCRtxNo9MneHx2TefgRYnLAmpCx11KGDBryguQPr8w+ep93WE6/Wh7nw==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-box": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-box/-/uui-box-1.2.0-rc.2.tgz", - "integrity": "sha512-c3rqT0KdCnBqWv8Lbzpetj/MldQSTQ7/7uxTtHcS+Wclkvr+ktKeai45NebiKqDCb6l3scy2Va0TRoJBUNmofA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-box/-/uui-box-1.2.0-rc.3.tgz", + "integrity": "sha512-qBbWCzB7NhsAzK/7KkG1Au8x8fJeuYaD5YexIgSzfwwHoIAogRCj/0jY1aiJD1SCtatWzmi2iEJGD7XrxQ3a+w==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-css": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-css": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-breadcrumbs": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-breadcrumbs/-/uui-breadcrumbs-1.2.0-rc.2.tgz", - "integrity": "sha512-xX93r/n6dKY1D0wWRx2FKDVtJ2Yja91KPheHExSPuBuwUI0C0hBI02U+AhWjr/6+hUl+Kc0CWOdoYNkuum3RZg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-breadcrumbs/-/uui-breadcrumbs-1.2.0-rc.3.tgz", + "integrity": "sha512-kkjRYmmMviUHXDtITOLwtByZsNj3ZJRYCduoDsWNazNwkE77HGDre76yzWQZEIekGMxq4Jq3Ms5XfDROcvTzHg==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-button": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button/-/uui-button-1.2.0-rc.2.tgz", - "integrity": "sha512-IVtsxvRPT8on8vomxCWWRwhJbDl8dDmeUxSFxOPm/LrDZ8Y3sVf5Z248mBVCvX87E9AsBYkd7WX4KRDf3vubFQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button/-/uui-button-1.2.0-rc.3.tgz", + "integrity": "sha512-rd0ceJTO2oX+W0kJcMt+6qz7DKl/PI4XiKXkJ6p1O1Tz3aZoOiCnB1J+PZKZjduUMcoPlqSMdjzEwYu4rHYveA==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-button-group": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-group/-/uui-button-group-1.2.0-rc.2.tgz", - "integrity": "sha512-sNxAiZGCbjKE95hiCroBb5DBIiIncpojpS0ARWFHXQAbjPi99qP72cE/+D/LF61NZwDKyyP+GKrzOmzgI4BQMw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-group/-/uui-button-group-1.2.0-rc.3.tgz", + "integrity": "sha512-AjjDSLkwElHXzo9Zh36ogxgy0UbWe4ZvPpyF5OoCfPvmt7P7/5qiSM8MhoJ/wgCTvgclHL2Vw/JPtFmG1DaiIg==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-button-inline-create": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-inline-create/-/uui-button-inline-create-1.2.0-rc.2.tgz", - "integrity": "sha512-lNIFbBuiv113JyS8igqV7VhVppObRa34gpsflcmkCaCN2Khm6XVVsG4h226RNrhnQgjJ0J+r+/QTdaIUKLYX+w==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-inline-create/-/uui-button-inline-create-1.2.0-rc.3.tgz", + "integrity": "sha512-aWLjKobfXxuU4wltc6IRuFuiOHTPNa+3coajJ9FGs2JKXhgMZcAsva1k/qLd9x54yL2Z1dLQ02AOl5YmwIC3lw==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-card": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card/-/uui-card-1.2.0-rc.2.tgz", - "integrity": "sha512-7hlGuunANegwsC6R4N+ILxNMHwXzB6tJzO/enMnrAQA7SkuLDEJB1rHy2TOhUOjEP1hQREM+rc+srX1wT8ZkCw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card/-/uui-card-1.2.0-rc.3.tgz", + "integrity": "sha512-cy5kbKMkfpiDc7ZdFjlgMmxor98UMq8OKkhL8+M6fyYPCFQI4mEiWlN+ZHsIMtZSBclln4ToOeIRTo3hQPUfXQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-card-content-node": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-content-node/-/uui-card-content-node-1.2.0-rc.2.tgz", - "integrity": "sha512-RA4VK+XoJQpQmc3sfkw/ZnrMGCn1HDiFowanwrR8SEYOPiMbmGUhRMnnmsa8WSOlNJ4KLpgN8vyaa7cvu93ZuA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-content-node/-/uui-card-content-node-1.2.0-rc.3.tgz", + "integrity": "sha512-FSUloNf1plSH6dlostjLCq4UHbRV+jZY8pggD++CaAu8ULpfxKXmOFnKsq17v4pBKKLa+vKeYU1Li2MXW8agyA==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-card": "1.2.0-rc.2", - "@umbraco-ui/uui-icon": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-card": "1.2.0-rc.3", + "@umbraco-ui/uui-icon": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-card-media": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-media/-/uui-card-media-1.2.0-rc.2.tgz", - "integrity": "sha512-VDMbhevtLu0ucbhqVf17rKUrRfiNyyzttBFHX7NDUfeXGoqjTb98z6aproP5ujvqsWhECa5Q2iemTbxqVr/b7A==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-media/-/uui-card-media-1.2.0-rc.3.tgz", + "integrity": "sha512-KShrp9gkJyT2WTDwaRsVbwiuSchFwSNn/ihPHs0PI/sMGTuLIvgU08jUzSAKUny/uREAj2ttCeRgiLj18vCQ4A==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-card": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-file": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-folder": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-card": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-file": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-folder": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-card-user": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-user/-/uui-card-user-1.2.0-rc.2.tgz", - "integrity": "sha512-SVh2Rf1b/PL3WamMlSoLtm4bFLj9Ms33wS+94FVoEKikH/b/5OSHJyMnW4h6K/c2yyaMT7/y+tQhoc9oGcq5WQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-user/-/uui-card-user-1.2.0-rc.3.tgz", + "integrity": "sha512-+PqH5AMYnjPzRm7nLO9//4tJ74tOLyY0Fjlw2Z50QJ/m2EjCTQqf003XdSyeVHIZZA12wv/75GNwjiBEXqRbDg==", "dependencies": { - "@umbraco-ui/uui-avatar": "1.2.0-rc.2", - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-card": "1.2.0-rc.2" + "@umbraco-ui/uui-avatar": "1.2.0-rc.3", + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-card": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-caret": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-caret/-/uui-caret-1.2.0-rc.2.tgz", - "integrity": "sha512-/19J8MpMLkWT5u4QdGGmf7xqCZ0URB0YUq48rsn5y/efElWi1HG0ptJwGoqrW5hhKuLWEcZG4V1WVJxT4LgwZQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-caret/-/uui-caret-1.2.0-rc.3.tgz", + "integrity": "sha512-/M3gvU+Ub99RWCDvw7yn1CDKdoBZh3OjeuutGc9N5nDNhnFATam3BVyTXRcL02uGiFlxiCnsqphE3B3EUyBnOA==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-checkbox": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-checkbox/-/uui-checkbox-1.2.0-rc.2.tgz", - "integrity": "sha512-shjQWdFjjRnbXGaZa6BkSxC2Q1jfSh5q6xVjkDrcGToOW94q6PURF6Vm1aodsBVWZGuJUzmTdT41mhG/SjsIPg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-checkbox/-/uui-checkbox-1.2.0-rc.3.tgz", + "integrity": "sha512-6hnVO9CCaPntu7SUOEX95fKnry67l8EWC/J55N2nERCV6/9OY7YwIdQditKMZnJKfj3HOtdBh8IAIvNqSM3Wkw==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-boolean-input": "1.2.0-rc.2", - "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-boolean-input": "1.2.0-rc.3", + "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-color-area": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-area/-/uui-color-area-1.2.0-rc.2.tgz", - "integrity": "sha512-LwdmkwFu+3Ms9xm86sZovTItlWlHgVfHPOMnW+nxUkVMfwv1FjK4n4G7xVJ9nmpa8W4GjMwcENjvR0Qs2/JqqQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-area/-/uui-color-area-1.2.0-rc.3.tgz", + "integrity": "sha512-DPS54CIROx43c9JAXjhqDnv4IR2WQM5/MYN/4Xo+fL87nwpTnb7yfp7EmqBhX8uNRjSsb7TwILjGUs6YibBqBg==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", + "@umbraco-ui/uui-base": "1.2.0-rc.3", "colord": "^2.9.3" } }, "node_modules/@umbraco-ui/uui-color-picker": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-picker/-/uui-color-picker-1.2.0-rc.2.tgz", - "integrity": "sha512-Ibn3dRJn/N8E9mRi2EWEFxyL4BwEbraytGNq7jD+iJZ9cIaZTU/zuxYGxNFNBP3EDsdD10iLnyBA9hfyEDxRcQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-picker/-/uui-color-picker-1.2.0-rc.3.tgz", + "integrity": "sha512-TZ0yxENsS1EMYp+sIzKO3X+yq3QAtNr0172FzgdCgkzsTatVsxpIz2K8rNQbBPInDFtNMZ/MztFaBPdYf9jbwA==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", + "@umbraco-ui/uui-base": "1.2.0-rc.3", "colord": "^2.9.3" } }, "node_modules/@umbraco-ui/uui-color-slider": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-slider/-/uui-color-slider-1.2.0-rc.2.tgz", - "integrity": "sha512-aQTTizgH0oNHBFRXXr3tjhH456SRx7TVx797elcA9b0NtSFMuFwWZZI4qqppHTaVkVGZz/0coF973Xu8s5GSGg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-slider/-/uui-color-slider-1.2.0-rc.3.tgz", + "integrity": "sha512-CghdFKYDjCt6l6eHinRKNqFq//sZ2J5A/WOf6Cuz6poT+bCoSGT+AVqh/UbYtrbJtQ2ZsD06enIjOqbeoL+TpA==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-color-swatch": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatch/-/uui-color-swatch-1.2.0-rc.2.tgz", - "integrity": "sha512-A7G0kz/ZEOANizHNek6nsq41XrCbCBE5XTE5Y0afUEbL3RM37yZHsjNFM4H1iJs57plt4Mfb85TQqb3h5HnHJA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatch/-/uui-color-swatch-1.2.0-rc.3.tgz", + "integrity": "sha512-AxVefkwHVd/ngI4BkEjsLwEIUi5kTB4yg2y6w8t9kafZRZWxWi4jLgZrddw60h8iVMUvbzXM3kjOZ9gLim9gVA==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.2", + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.3", "colord": "^2.9.3" } }, "node_modules/@umbraco-ui/uui-color-swatches": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatches/-/uui-color-swatches-1.2.0-rc.2.tgz", - "integrity": "sha512-FskzxqYXCfi3gV0BOfoo5acDJEpiHF2ZIcjYxgrPNtG2phjVZ1Mk1BinfKRRibXqKGU/uhAQxbNIygxW/C9bJA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatches/-/uui-color-swatches-1.2.0-rc.3.tgz", + "integrity": "sha512-mvquxgmkrqi1p8R7HskdlSUGiZKnqOZaQCPtDBnZRF/h+0wv1VYEAWtFzhyglpUVFWl6+djvyLvTOnV19zS3pQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-color-swatch": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-color-swatch": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-combobox": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox/-/uui-combobox-1.2.0-rc.2.tgz", - "integrity": "sha512-8BctuzQ1hoiAkhV4XU6sOICoKWn4EMIesWiQavl44IILuldrJhBc9PJlSkBeaOs8raOXCwWb7yhDf0w68rlY/w==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox/-/uui-combobox-1.2.0-rc.3.tgz", + "integrity": "sha512-z8jOSwDk0TWTvXtn2DLd/YsH3Nsi2ruECTDjf8VWYHIuxNCTMqIJv49yrIM33qmJUtITFT8ZU8kUGHWLbNLQmA==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-button": "1.2.0-rc.2", - "@umbraco-ui/uui-combobox-list": "1.2.0-rc.2", - "@umbraco-ui/uui-icon": "1.2.0-rc.2", - "@umbraco-ui/uui-scroll-container": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-button": "1.2.0-rc.3", + "@umbraco-ui/uui-combobox-list": "1.2.0-rc.3", + "@umbraco-ui/uui-icon": "1.2.0-rc.3", + "@umbraco-ui/uui-scroll-container": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-combobox-list": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox-list/-/uui-combobox-list-1.2.0-rc.2.tgz", - "integrity": "sha512-hOnfyje4XzhPWgDlbfOlaJOIUlMvc0RmwpKmqFynZMo0wZ+zuPMQ34jjPRAkgDa7dHkkAmbhZczLHdPF6I9aFA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox-list/-/uui-combobox-list-1.2.0-rc.3.tgz", + "integrity": "sha512-wyunnv56FHVGkHm61a5I+zNYI4kdjqRllwqVjSo+BzxWhWwPIcTJguBHPlgd/3w7ir0GuhPJcLPb+1zoeB1PVw==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-css": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.2.0-rc.2.tgz", - "integrity": "sha512-yEHxeUFqRPhxHblR/jjkNLabMFZXZ3aMGVGgehBvsGM01D3yQq9wvFe+qtjr4TGXs7v62DIT4bOtP0f45KfRRg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.2.0-rc.3.tgz", + "integrity": "sha512-E3Ytd10emwCUs1g7ByZkENp/1fCQo9wMjm8HStHfq5YVzdayHkyyJj5sTNv3dMEXy0Cac9gQ4lHjmBDE8wwDlA==", "dependencies": { "lit": "^2.2.2" } }, "node_modules/@umbraco-ui/uui-dialog": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog/-/uui-dialog-1.2.0-rc.2.tgz", - "integrity": "sha512-Jw0YfP4WJMaSsdvUGPjOQtFUiAlno2knxt709V2IugdbnfjgSYllBzQGNHWmbBFS1kJtURAcCWJX74B9P/qRfQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog/-/uui-dialog-1.2.0-rc.3.tgz", + "integrity": "sha512-DxHRc4qFOWft7JXHn3YqpC4YnIDHAppJK0DUKssOMM+es3UsdLW1jYMQ8gKCcNUaWx/dwcfA3NCDok4giFc8CA==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-css": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-css": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-dialog-layout": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog-layout/-/uui-dialog-layout-1.2.0-rc.2.tgz", - "integrity": "sha512-gqFpO38XtYXQszCwUqt2jUqFHgcIIqf8+evlcGTXr1arFPpLfq2FWbEnXR83BjVRhHRCHhmLrbsoAZzwaJmToQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog-layout/-/uui-dialog-layout-1.2.0-rc.3.tgz", + "integrity": "sha512-QJIwo5eUtGZ36zOuURhMtTMezkqAh/Nl/O0p1xeawyun8sHh8rRSBCqC1goA7KIotKErD4eqrbvkENbR9Uhmfw==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-file-dropzone": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-dropzone/-/uui-file-dropzone-1.2.0-rc.2.tgz", - "integrity": "sha512-Pm07+UkQmp+SXuvynjlKlc+/NOHBVve3k6hoPX5Z0mHWUG0XBG0WgbrTJoqgQYytbndt6AaE6vrKKyPE/VvoHw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-dropzone/-/uui-file-dropzone-1.2.0-rc.3.tgz", + "integrity": "sha512-YxYF+daaAl0YeCNoYxpvNbSeE1GCu5rDcMkrMbq8zRdoQ3KCqOi5p1DqSdOpIeOuna2/tBPK8McsehXgS0xR/Q==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-file-dropzone": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-file-dropzone": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-file-preview": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-preview/-/uui-file-preview-1.2.0-rc.2.tgz", - "integrity": "sha512-eG+BtfA+22KmY+UoMBp8iJDTWUoy2Iq0jLahWmHADaQ+HWUMJ/CXYFquNVfk2nQ5SmYrJV+qPC0d+ikf4UXVmQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-preview/-/uui-file-preview-1.2.0-rc.3.tgz", + "integrity": "sha512-uQvE8HGOFrcl6OKzb/tgHXZ3LnZU8i/HfzxTx0nh6538wdTqK7VWvRN65jPB3aerKrfl+8XMS67hRNfo/saU3Q==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-file": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-file-thumbnail": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-folder": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-file": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-file-thumbnail": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-folder": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-form": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form/-/uui-form-1.2.0-rc.2.tgz", - "integrity": "sha512-9iCKrLzmjpUaaL7l3C50UL3iJOYxqEY3aFLx9hRbpFzyQvwMmt/hcKiUeSEVjEtAIxpk5wUTwD7WlxeRve0POA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form/-/uui-form-1.2.0-rc.3.tgz", + "integrity": "sha512-Iz2JLK7lAKdX1B6aEQaGXaFuYKKH4i/DvJRltfRCIK4rn0OYmSp4RgcKyub/IuQkE8q8qNiyV3yS1vgSZQ9aHw==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-form-layout-item": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-layout-item/-/uui-form-layout-item-1.2.0-rc.2.tgz", - "integrity": "sha512-jFmw83oA/ecFOItGc27oHUHa2c6gA0gpzS2qsyYs7pSYEqwUxxe5iWI4otl3Ioi/3GgJwp69qzmVaEYuBgy/Sw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-layout-item/-/uui-form-layout-item-1.2.0-rc.3.tgz", + "integrity": "sha512-SbFAAjzplF2RiufhFIESzvbQEsza/qvq3nbxaBBFVPsfW1QkfBsU1H55kf8yWyTFrTWVMrDbneUlu9o/Iq3XUQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-form-validation-message": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-form-validation-message": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-form-validation-message": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-validation-message/-/uui-form-validation-message-1.2.0-rc.2.tgz", - "integrity": "sha512-rbdJIO9uvSclc+8lRNcOv3ePp9Aa7wW7pZ6S8aY1bkV03vTAp7syKILNF70NIzxSq1yOKBE8xFXspHxDftdEVw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-validation-message/-/uui-form-validation-message-1.2.0-rc.3.tgz", + "integrity": "sha512-kVejule16/TGKFBxTIbR1DIrEXKQ0R+ssgdqJYBxBpYntimRlDS9Wmx895gWxrYkMzL4echSLx8S6S2Pht9Y9A==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-icon": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon/-/uui-icon-1.2.0-rc.2.tgz", - "integrity": "sha512-DKKco6oTG0XpwcYhLscRo22tF1R3Y/kQHn2tDi1T8IBez/AdknQPveYOGoUVC2jENngeNahuXNpWwgNvTpn4Zg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon/-/uui-icon-1.2.0-rc.3.tgz", + "integrity": "sha512-ajugRVP2leJLTVKuJoKE0Xm1tncaq/zrtCRbin9fPBkajOHlcUIX9D7G1U0/g/aVDR2ag24uhDZyDYP/MoSF1g==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-icon-registry": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry/-/uui-icon-registry-1.2.0-rc.2.tgz", - "integrity": "sha512-Tt9RiNBCsbsZo2uh1saw0V8Z0pIXOAvRr9UgBOdn0GJIYbKDtHV1yALyqcQ//qenwkkPB5a5ly0a3tJHzeej0w==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry/-/uui-icon-registry-1.2.0-rc.3.tgz", + "integrity": "sha512-d0r8v1PHog7TfZLECk5Jn9cIqO+KGn9YjWixGgexVzCTVyhDWYJ0zeGcOEZ14qcNLQkXGQXTkYccegVlrcSDUQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-icon": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-icon": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-icon-registry-essential": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry-essential/-/uui-icon-registry-essential-1.2.0-rc.2.tgz", - "integrity": "sha512-K93QxSybUhz7Q/UWZVqib2LGxlIQkTGF0fq7yDbGAYnx1OGJ7fKR0BjWok0G5Xz+7bCmjfNqTcb364XECUKpjw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry-essential/-/uui-icon-registry-essential-1.2.0-rc.3.tgz", + "integrity": "sha512-GaXUOIDg4mfRGvjlammUMLUaA/ksvCC4MIImgeYf3zAYXBzVX0XWbLatDlj7A2KwJkYOS/lWs2KJz17r11MA2A==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-icon-registry": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-icon-registry": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-input": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.2.0-rc.2.tgz", - "integrity": "sha512-+Spx/J0ofNL9Rozy05LdKBxDh8It32JzRjt3LCOuBPrN6Tme5HwCmcWtBK2Cn2HQ1zQJgnD+h1KItSyyYPXsnw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.2.0-rc.3.tgz", + "integrity": "sha512-/7qlTkn1se/RvXZ6PoFodyYWIOTtjgmdjCQ1r3y+DxjaelnhlJjymkQierpQY/S1VlPoqvJeJY3GfJipqpQHEQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-input-file": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-file/-/uui-input-file-1.2.0-rc.2.tgz", - "integrity": "sha512-zoFda6gYT1OSJDd9ObTzx4+xEL5/rBrzAZBniWJUQqrPPi3NfYrT+q4hY9c262F/HPbiyWYIH7xxMmr18EfNfw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-file/-/uui-input-file-1.2.0-rc.3.tgz", + "integrity": "sha512-BqVQs6HvGJxhNwDgQe002i6ToTxIpqhsuz9nWjh4BSh9i/6VqZkElyuNtlJEv9uMeyFJNlSids2GhhzpFv9Eaw==", "dependencies": { - "@umbraco-ui/uui-action-bar": "1.2.0-rc.2", - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-button": "1.2.0-rc.2", - "@umbraco-ui/uui-file-dropzone": "1.2.0-rc.2", - "@umbraco-ui/uui-icon": "1.2.0-rc.2", - "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.2" + "@umbraco-ui/uui-action-bar": "1.2.0-rc.3", + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-button": "1.2.0-rc.3", + "@umbraco-ui/uui-file-dropzone": "1.2.0-rc.3", + "@umbraco-ui/uui-icon": "1.2.0-rc.3", + "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-input-lock": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.2.0-rc.2.tgz", - "integrity": "sha512-jhWEm+qeJs4PZLEGNUs9DSTs3VAKe6IS70+i9fQQY0VQQgyDzMtAqf9A+93D6EgT6pLu7HdtfS1yZVIzAteEsg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.2.0-rc.3.tgz", + "integrity": "sha512-JscAOMp9jWkVXxBUAs5bcRw3DpGCZDqnIb8Av0BZdy/0jRSXTwKKtvvaiad+vCe+pGlQhbA6v+hRWVsuAbeszg==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-button": "1.2.0-rc.2", - "@umbraco-ui/uui-icon": "1.2.0-rc.2", - "@umbraco-ui/uui-input": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-button": "1.2.0-rc.3", + "@umbraco-ui/uui-icon": "1.2.0-rc.3", + "@umbraco-ui/uui-input": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-input-password": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.2.0-rc.2.tgz", - "integrity": "sha512-MafMMXrAof7YUKQy+hwKfwOADwRQV7xKkDjagyobVsBp2ccCRndZKTOAyBBDTqu+7w/k0SbHd9BvC4xCvVUwrA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.2.0-rc.3.tgz", + "integrity": "sha512-4zJMR+JUu4eGUUYwf5sX71sW9ABxtHRuO9ml8VVAGddh+4KRi/RRVOFQ2uZUWYiTNM9buLuLEWLGhy5vrTQ2YQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.2", - "@umbraco-ui/uui-input": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.3", + "@umbraco-ui/uui-input": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-keyboard-shortcut": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-keyboard-shortcut/-/uui-keyboard-shortcut-1.2.0-rc.2.tgz", - "integrity": "sha512-iMvqmDNwU9R0w3D4xRb9nNdoYOiXQJfE+6ojwld84XhfyfMYGIwmiIlCnIzW6g8yFPIDOkF91B+wKgyk5xBlqQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-keyboard-shortcut/-/uui-keyboard-shortcut-1.2.0-rc.3.tgz", + "integrity": "sha512-NB9EKMSpXkiOU1yQvbo+97TlfOqvZmTzIqPeWG8uamShINTBpfV7ppV1czRAaWsolNIO0GoplBflH489tmh50A==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-label": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-label/-/uui-label-1.2.0-rc.2.tgz", - "integrity": "sha512-eYY9e7cPGdwkw3JvM54fPpjn28bkKi3IVkfgDgvVP71vbuoBGCOk4rMP/H2XLElwKFTEM6EDRsXqrth02Ws0SA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-label/-/uui-label-1.2.0-rc.3.tgz", + "integrity": "sha512-11bn7NCgdefJjVhR8YSXWM/MF6UiNZzBBjW8G7vrQEMFxm/3lFQ3vyzGIK25sjpFCBE2RHkso1VR9PI0FamfBA==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-loader": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader/-/uui-loader-1.2.0-rc.2.tgz", - "integrity": "sha512-Vms+NrPH15BhhawaCIdTzC9vY/2oMwu4/3AdEzHznELx3OfZbrt57a+Cpaoq6ojJoynJdGHQ+Kl92cKcv2kk3A==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader/-/uui-loader-1.2.0-rc.3.tgz", + "integrity": "sha512-Icfkog5R6BXCFLO/xsqcOj4y1O+Tcm92iWGM5KR1xcpvQEVbHOEgxXpa1shLa2MqbdyB0q2ij5EYcCGhFPjM7A==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-loader-bar": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-bar/-/uui-loader-bar-1.2.0-rc.2.tgz", - "integrity": "sha512-dGXjMdWzndnWdbh6bNaeR3rP36Oi91l82Hx5mlByAKYVBG/q0J1nDn4gZhfczEx0ItaCq9uB8dfa3WolZKaMTw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-bar/-/uui-loader-bar-1.2.0-rc.3.tgz", + "integrity": "sha512-hi03ulGnY2M+N/uZgfENB2Yojg8M0b6CE8Kj9Uud65aWOxyQShKwTrCjGz0Bq1m/TPRhn0HQ7QEwedl2DMxDNA==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-loader-circle": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-circle/-/uui-loader-circle-1.2.0-rc.2.tgz", - "integrity": "sha512-Djp2Vikv8t7y4yw7hrAveyRe5ASN2ooRCKrN49F2Tn8fKhi5NfZ0NRKMtIU+QZNzLMRA1mjrnxB2mqcD/xGsug==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-circle/-/uui-loader-circle-1.2.0-rc.3.tgz", + "integrity": "sha512-LZc/EWFgE4MAmqU1YIVA+3dF08EciMxk7wLrQGDiDVKEFUNCIyaNt9zoHsIk0CdKCpgfZ82Mq+DNf+CSTs+YbQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-menu-item": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-menu-item/-/uui-menu-item-1.2.0-rc.2.tgz", - "integrity": "sha512-i2YRq6DtxhjjpvhdbG6AVSWGMfY1sxBtylMwyWPMWCY/l0ozQrS8wiE34CEopvQszfnxKABb9nZYM6de3ybbZA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-menu-item/-/uui-menu-item-1.2.0-rc.3.tgz", + "integrity": "sha512-+d6SbMMIDHEZWBiOytwT3YilhSAHMpl/D5HVCfbtr7I5UhDcTL4nMpTBcc6y53bvhdnQnGCRIkIOjcgRk3cpEg==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-loader-bar": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-expand": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-loader-bar": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-expand": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-modal": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-modal/-/uui-modal-1.2.0-rc.2.tgz", - "integrity": "sha512-mWGhjqb4xk4QJsflXByYy9wvKtUdSVyIQv4064zGSBWH9VgUkSmz3hHrBpjQU2MjCpj6XW96aeEIkg7mY9J0VA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-modal/-/uui-modal-1.2.0-rc.3.tgz", + "integrity": "sha512-1yzKLZl033YN7SPbxV8cyAg7g9gbv7jgblQWnvfM2m7YLT6Cut22H4uDU/ASYeLS6zDHMIvlzrpcqItoIwQcCw==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-pagination": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-pagination/-/uui-pagination-1.2.0-rc.2.tgz", - "integrity": "sha512-tk5aS8NyugAPl7Dh8g8Igakup2k4eNT5clGvJacRRHIPBOn0p1gV6vKL3NDiVCmHHGLtgZMVnQQN7uSfm/Xj5w==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-pagination/-/uui-pagination-1.2.0-rc.3.tgz", + "integrity": "sha512-QrFfumL3hC+WcD5/h1rZ6m3THd0EHgYdygNZ5+Hp5AU5NBkwqhl17W2bSAtUwosB/+ssW5dlb1UqD9gIBly1Mw==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-button": "1.2.0-rc.2", - "@umbraco-ui/uui-button-group": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-button": "1.2.0-rc.3", + "@umbraco-ui/uui-button-group": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-popover": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover/-/uui-popover-1.2.0-rc.2.tgz", - "integrity": "sha512-ecxT66ZrU/xTRs0vrpPIfr7YpykVtSEh/vwwo9DSkhaaIotPorMrRXi7LixS2mllslHvsETis6STCzsBylqB3w==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover/-/uui-popover-1.2.0-rc.3.tgz", + "integrity": "sha512-x1Hg/npbmbCsCvMKHAU6uxdQ9UTJJ6A1M2s2QxtySDlIYS8YzA/RM66QVuHxIxAx81eM+iS0nquHiVpQcu/c5A==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-progress-bar": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-progress-bar/-/uui-progress-bar-1.2.0-rc.2.tgz", - "integrity": "sha512-KaffpsaFfj/7w2gGziMoYLvcQLCaDFhhCvbOYZE2DyyagIcJMr59LQYbX0ma7cTtUKSaJTk4RB1SWzIEuDu9Mg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-progress-bar/-/uui-progress-bar-1.2.0-rc.3.tgz", + "integrity": "sha512-S4/KrmKR5GP5HYq/ILMuYT04n8x2hdMcdmfUPZGaOwW3V5q5nH3313Qp68q+iqegqErrZsYBrkE+DofsqS1pkQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-radio": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-radio/-/uui-radio-1.2.0-rc.2.tgz", - "integrity": "sha512-jfGK/wzXue9s/E026k9ZBThCodrzRbpw/xS8xX9YHq3NvJNjfPTMABuTM2VpW4sPZtkdpkjZKNreJAfpYJoPrA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-radio/-/uui-radio-1.2.0-rc.3.tgz", + "integrity": "sha512-RYZxGLL/VFiEVn2a5Fd298vA1G85BCmBg8VsxSql2GhawFzCNBMKnfXJzOkuV2uZORGDnnW5RFDPh1qqcwkjhw==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-range-slider": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-range-slider/-/uui-range-slider-1.2.0-rc.2.tgz", - "integrity": "sha512-5K//peXBIAsOh9uAcY/8U+qoRxTaHGwfYl5SYjD/NnfpHXPY8xxXtMDHZcPXnSZLyVsoL2DSroFXgTLSJLsYlg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-range-slider/-/uui-range-slider-1.2.0-rc.3.tgz", + "integrity": "sha512-A1fyvDQ+qY59Sm+HkMzo8BVCp6Ipoi+AE8IH/C7GJ3/o0k8UxCZ4iSMWHtaiNSRY3kPWVkGX/P7MPdle2y7qBw==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-ref": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref/-/uui-ref-1.2.0-rc.2.tgz", - "integrity": "sha512-Qdat4AxQt8neF1sIWvWDGoWkTDa3BHOhc8JUw7QxmcPwvv11Hvg62tAfRN7zbiVcTmpYIPoy6GV+tgAUn7TAIQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref/-/uui-ref-1.2.0-rc.3.tgz", + "integrity": "sha512-DXZSaofnpBl+tUEo7BB92M+oWjoJpHrjuf5y3BT0cVhKHNta/WW7xnC60yprfHNz1zdvwvhfuFioIPaoI1ljHA==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-ref-list": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-list/-/uui-ref-list-1.2.0-rc.2.tgz", - "integrity": "sha512-t0iriFiVPLepRgB4JbCu8YNKBycHHusev3SBGtAV1NJ6uBKVcNgoKk2UCcmy4H9nq+pMAafXm/HX/Oq5F4JfZA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-list/-/uui-ref-list-1.2.0-rc.3.tgz", + "integrity": "sha512-CdM44A1JGa22TAbUBpalDbjezbwKv6riD+4IvN4LEQp6gPIiu5K/8QZma4tweP2k1986xMhgmDXqUIONb58RCw==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-ref-node": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node/-/uui-ref-node-1.2.0-rc.2.tgz", - "integrity": "sha512-Ji90frchpuqcl/wro/Np4hRhQLa15pvb078UA+zOSpBLHO03Py/Bs6l3BzFYskfOntC3EFSHm6HxFntPjAKFzw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node/-/uui-ref-node-1.2.0-rc.3.tgz", + "integrity": "sha512-0UvQ7ycY57DImFTfXlYUKoEDdUIrTVMjfx1o7GIL1ZdZ1YM+0x/4wHZP1QGRk2ZQqj37AzTK/7Ps4zJZY4tTQA==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-icon": "1.2.0-rc.2", - "@umbraco-ui/uui-ref": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-icon": "1.2.0-rc.3", + "@umbraco-ui/uui-ref": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-ref-node-data-type": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-data-type/-/uui-ref-node-data-type-1.2.0-rc.2.tgz", - "integrity": "sha512-aNV5GORnxkPvu0HWKfc7xzRDGYKMzeAXPLjYpcArKKFDfI95GTTNMvR9P0M/8IBJWiGb8oXCjMe1+YsVUCBSfw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-data-type/-/uui-ref-node-data-type-1.2.0-rc.3.tgz", + "integrity": "sha512-F3uyKNVpdALhcI7A0WP7UAIx5e8+r9jOdOxJpxBvNRe3xCnZEHzp1fa0z7oAIIqolkXxmbqmv84eS8zf4PVT1A==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-ref-node-document-type": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-document-type/-/uui-ref-node-document-type-1.2.0-rc.2.tgz", - "integrity": "sha512-WC3aCJjVhDNFF0aSvMf/wZkRzQMmAvkRQzcresG0J20xzGyNh8HiDVTFp24luT7l8vYqAeAl9NlLYbCWZAEyvA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-document-type/-/uui-ref-node-document-type-1.2.0-rc.3.tgz", + "integrity": "sha512-ol0QlxGWCzoVlEVL8gHh/Uc8X8K4YZWLd9heL/iimlYRVHSrVV0f8X1PeoQH1MkwcNCarPMavw1D6qyGpkPv/w==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-ref-node-form": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-form/-/uui-ref-node-form-1.2.0-rc.2.tgz", - "integrity": "sha512-UxK8tKD9pYuMU6rYfBcT3zyf/NM6LtnXCN/p9/3CWDhAeHJ4gdf6fFoPzgehZlxHl22BUQ0+bjZ2VF5/4KKtbQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-form/-/uui-ref-node-form-1.2.0-rc.3.tgz", + "integrity": "sha512-j6aB2iorTlqIJ7xp7+FkeuOsKm3qdol58dyAdh6OHvU6XPW7tVXDteO/9aQpYIjkobfLgfvfodC3r7dk2amKGA==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-ref-node-member": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-member/-/uui-ref-node-member-1.2.0-rc.2.tgz", - "integrity": "sha512-I9RZAg0AZKLSlmJBu7iL9OHoNg5f+FLdDWv8cO060LRXGftjNdnjaLwlQFL5uxXvXwDI3E4i94XFThiju41fWw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-member/-/uui-ref-node-member-1.2.0-rc.3.tgz", + "integrity": "sha512-1rtjN/7tEak7pDmoEvUQwS7V8YEaPZE4ul1rviVRgUdrkdN0h0GPIdCbO5JJWqKk0k3UINbdS8eRr6u5jZZAfQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-ref-node-package": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-package/-/uui-ref-node-package-1.2.0-rc.2.tgz", - "integrity": "sha512-2tNl9S+J17uRSy6eSFJJ47b/zUuemm3UALaBII1+c5rWmUvtvs9ZYljX77VAkuwELKEMgExWjGQKaLQBTbvFMQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-package/-/uui-ref-node-package-1.2.0-rc.3.tgz", + "integrity": "sha512-Gt+pJcqO3SjK3Dw/dZ1/0FIsRfChXa/6NeUOYygQE0vCBNKCzMW3DbTa5HqOnjjLpnV+s0r6s2FtAqpsHVKCxA==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-ref-node-user": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-user/-/uui-ref-node-user-1.2.0-rc.2.tgz", - "integrity": "sha512-sTrz9xhHrcv9Il27NMMSKTm7A50gpRF9z3vDWiZ0Ottg37oUkGiitgk4XI3AJOSWqDzNJjwuwUk6tAlwc6D5TQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-user/-/uui-ref-node-user-1.2.0-rc.3.tgz", + "integrity": "sha512-rL1oyMEvR9yeCV7GI0GtH6uoGQJ3rNjxD+3nvX52iS0HUU212A23wCPXjTtBkJvKcumm3WXpcG0LYZXTdO87tA==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-scroll-container": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-scroll-container/-/uui-scroll-container-1.2.0-rc.2.tgz", - "integrity": "sha512-Aj2hiU05DFZ7eXab/zAXjitP9bM/TAM7HNVPOAl08BNpkemo0DYTtdFu4VmLIkqw6WtyxIVZ/N5pSJYMYovXYA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-scroll-container/-/uui-scroll-container-1.2.0-rc.3.tgz", + "integrity": "sha512-svSGFuPoTpJmq3raNjWuMIOQvYR6TrvzdtfDue2pQG725rNIKf5C32Vd/tr9pOo18JMtmWkk3G1tz17ZF6+VmA==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-select": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-select/-/uui-select-1.2.0-rc.2.tgz", - "integrity": "sha512-X17ciKmnrtEut6RTrHvsOSIfwimPc0gT6kQoQFgPcTmF14Zr6edFPd6YKhWtjQNG9rVpmW1HK5bBSyeyiw/P4w==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-select/-/uui-select-1.2.0-rc.3.tgz", + "integrity": "sha512-C8RjztMPuHBhd0X9Wwvmzifwz9ljEqqN+m0FQGuO+dEKNskDI6ASGjdfTAch/NtxdJLjSztzx1I8h/FGv/0REA==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-slider": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-slider/-/uui-slider-1.2.0-rc.2.tgz", - "integrity": "sha512-PRoKMCvGTejDg37dm5fGYxO7jFrHECPn20X3fv3bsVqnF5wH7RZ88dBW5oMNoYxoreph4SSQd5AsSQabuCpT4w==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-slider/-/uui-slider-1.2.0-rc.3.tgz", + "integrity": "sha512-HTNa+w9TNSA8IkZZxvNHrdjPbg6PirFo6GF1aC7R6nvJxkntEDBm2KyjmpyPT+bcLQ6aMKsYlLVY2q5o7M7C3A==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-symbol-expand": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-expand/-/uui-symbol-expand-1.2.0-rc.2.tgz", - "integrity": "sha512-i42zskMlDb7tivcFkFo5pXPo6Z+A2Sgu/MTChDzIEw3AK3/V2Lf8jNZtjL9Anjn1ZWg0Mq4GBjR5iv+pkjHZjw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-expand/-/uui-symbol-expand-1.2.0-rc.3.tgz", + "integrity": "sha512-UtGA0m6qtNEw6/6b57RSOZPzzgbdYlp4sz0z55lCpFbekQ16efMFIXNqaKAyeKjD9n0nRPdr4AhgLXARFgpLyg==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-symbol-file": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file/-/uui-symbol-file-1.2.0-rc.2.tgz", - "integrity": "sha512-jIKSrcsmYwQJDyDOSeu49LbqaB7r9xq62cHB5dq2V1SRX9CYQqnX6E6hwcj2KBXwvp6oeAVWg+RzHth/8nR66A==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file/-/uui-symbol-file-1.2.0-rc.3.tgz", + "integrity": "sha512-5Ks6lHXlB9/n8WW5qTLmR1AIXUT8gDjVFUFTBXdOWU59+Authq5As/lpzZiv/4V3oPkhb9PcASI64CD320D0cw==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-symbol-file-dropzone": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-dropzone/-/uui-symbol-file-dropzone-1.2.0-rc.2.tgz", - "integrity": "sha512-yy6Ay2q3MW5ntJxmT+bgcCzwfSvsX9/0Fp/W7sX7sSO3gwraWobZuOBCiULiUkMe8No1t7x2HecW4Xr1mHUNXQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-dropzone/-/uui-symbol-file-dropzone-1.2.0-rc.3.tgz", + "integrity": "sha512-1ObzFfd2GFvLj+CZEJuAmcfoTiO2TX/EAitV/SU2x/tsU6FmDLX/K9SdJooYGFImv+v4N2Bf3L1yXdfnA5RkCg==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-symbol-file-thumbnail": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-thumbnail/-/uui-symbol-file-thumbnail-1.2.0-rc.2.tgz", - "integrity": "sha512-hcpxQWHDfPDx8eqWz6O8hHR4C09BOZ/ukYpy5EOJ8I+nwgB6eR39Waml+rOmOoDdMue1B8qPxKUcBODzWomSJg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-thumbnail/-/uui-symbol-file-thumbnail-1.2.0-rc.3.tgz", + "integrity": "sha512-FY/iMl3j/7foYybwEYtkvtGit+GJucLcXbRQup0uBZsM0jCv9bdUyZM1HPKS0BCLuNyl0LFAI7sevB4nq+u27A==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-symbol-folder": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-folder/-/uui-symbol-folder-1.2.0-rc.2.tgz", - "integrity": "sha512-LdNRWeuE/If+v9N6/MH2rgTWlyBwgjynffmUw+Js29OUJFuCp3docdsB2KlVOsfoDVEyAJtlGbsdAXQvf718VQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-folder/-/uui-symbol-folder-1.2.0-rc.3.tgz", + "integrity": "sha512-0eV2BIdHJk7ir46HkjpVj5vKAEwCvgMSHxHs690ZWmchyqlJOBiDHGetUbkzQZLXyT51wseWfXn2iYerHNajMg==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-symbol-lock": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-lock/-/uui-symbol-lock-1.2.0-rc.2.tgz", - "integrity": "sha512-xJIf+T5VkOGEU6A62SINUlkRJjV8rAGp5bS1Buf2z8vxpe50yqLpOm4mXpJXTyvmyybGm0efrUhfX9ESXWWP2g==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-lock/-/uui-symbol-lock-1.2.0-rc.3.tgz", + "integrity": "sha512-5+9xz32fr+jAPoZtiPhPsS+DrmtSkdvrhLqAbiVwfi28T4VtwWpOLRk/9hFchBql8HloAuyTqhk0XS4sLyIjbw==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-symbol-more": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-more/-/uui-symbol-more-1.2.0-rc.2.tgz", - "integrity": "sha512-KSJ5JoAijccGBGk233ZSN0a2sz9EDf50oWOE8x10mQvTGRUwwAgEIoxkXN39d0oBgCeY6xrkFS1JL0SC6qD4qg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-more/-/uui-symbol-more-1.2.0-rc.3.tgz", + "integrity": "sha512-7qKWzoSoBL9rkEfoKKBnrTGjUWLXXL4DK9T7porGbcVWCcveBqywrGmKLIsKzMuMPI0buGSidiD/CSCTy+Nlow==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-symbol-sort": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-sort/-/uui-symbol-sort-1.2.0-rc.2.tgz", - "integrity": "sha512-LcUNh/yaKiG5Mli9f95SPcKufKLFFPFz2zaD/iR80kcem2niXfgNPzuhV145XaLpKrebktrDTYKUefsDI6xqrA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-sort/-/uui-symbol-sort-1.2.0-rc.3.tgz", + "integrity": "sha512-yHU43q840CBtzAs+Q9CSvPqf61KOu7pOArda94kmMd1Ct5IrF71/3rJ3a1rGQOa9GG2Gn/4bLD4G4e50zh4Y+A==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-table": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-table/-/uui-table-1.2.0-rc.2.tgz", - "integrity": "sha512-IhHnB5vr7l+8E2Ae/CCy1ZJMH7yWITTfn1zzN+5qcAvQn5M/mm0gCCVFSvHQSRmt9Bj4s9CYSN1rRVp6Nw6gow==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-table/-/uui-table-1.2.0-rc.3.tgz", + "integrity": "sha512-AGEN7RoQrRRA0ht72KtKCS+9Lkfridjl3K96gOPORBfNczxPtPvLC3mroUPolR36eCi1/NKq10uZ+G0Q+ovBJA==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-tabs": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tabs/-/uui-tabs-1.2.0-rc.2.tgz", - "integrity": "sha512-R7kK3j8zF9Em4sB85h//hwXh2tV5h6xuJ1DawqY+am0imdZlr/7rkdv89NTJlP5y8nGGKY1P2lfy3prajxcoqQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tabs/-/uui-tabs-1.2.0-rc.3.tgz", + "integrity": "sha512-qx5nqXlKhTpJVrIOBs5DG9lzbrxXh6HMQ0F+qCJ7wg20Sb3U+tUkr4TXGbrPXXYwQxZ1ERhYKdnLbpRNgFE8Hg==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-tag": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tag/-/uui-tag-1.2.0-rc.2.tgz", - "integrity": "sha512-8P9ejFdgy1LTwJIWAT90DDj1cKFNbnwo/6HiqmFIHL40h43oa5/xtAh8SlwF+VzzT3EyuIS2+kOQBIaUT5CGRA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tag/-/uui-tag-1.2.0-rc.3.tgz", + "integrity": "sha512-FWBzn/1OaxUtNCuCIrRXNenJy0GYn6hepGoqaEfDqo4uHdhNNi+xpjEanFwEQf7vRlhlIeEFJN7cSQwTi7ks9A==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-textarea": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-textarea/-/uui-textarea-1.2.0-rc.2.tgz", - "integrity": "sha512-VUbZ9ztkdJpv3bBPCmrrhCjLHiS3MMWVnZT5fnQlbd0v+efD+I09Z4ir8JcdP3lbhP1HbQTVbwx+OyiAHp3pfg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-textarea/-/uui-textarea-1.2.0-rc.3.tgz", + "integrity": "sha512-MX8pXgpSshx6ulGgoLqS+UkLfVKvERwmE0bV1MRCD8F+S27GjAHk+vMUQY2rYIihD3s87tPYRMwINjwRytWmCw==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-toast-notification": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification/-/uui-toast-notification-1.2.0-rc.2.tgz", - "integrity": "sha512-cWm/wUU3WRA5VfQGeLa3nrrmOYmpp78pFWa1QAZUFbCZv/NWEmm1wHLqySb9O9AH5zUz3TG7F1LH75ZXI7dv0g==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification/-/uui-toast-notification-1.2.0-rc.3.tgz", + "integrity": "sha512-xwSJY6zFIstyRElDVoALnx+b7IiauvcAp9QgAQaq7TDivOSy/Cfjb0juEl6vVwvOFRaKdeVMuGUbKFdSdPlBcQ==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-button": "1.2.0-rc.2", - "@umbraco-ui/uui-css": "1.2.0-rc.2", - "@umbraco-ui/uui-icon": "1.2.0-rc.2", - "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-button": "1.2.0-rc.3", + "@umbraco-ui/uui-css": "1.2.0-rc.3", + "@umbraco-ui/uui-icon": "1.2.0-rc.3", + "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-toast-notification-container": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-container/-/uui-toast-notification-container-1.2.0-rc.2.tgz", - "integrity": "sha512-3LPWk2mpCsYUOBiqeIdX/DDvQSM324rLMomXgxco+dmI1CvykkSJ2u3HclsmXk567d19h7+rt0k1Ap79him9+g==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-container/-/uui-toast-notification-container-1.2.0-rc.3.tgz", + "integrity": "sha512-T/wsWFqBA/NO++NkY6U550kr7lkU09eyX6OQR/e1jGWmTBbRqgxVS72fHxBDg+3j/Z3RY/jtsXfSy6UZOAc8lg==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-toast-notification": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-toast-notification": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-toast-notification-layout": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-layout/-/uui-toast-notification-layout-1.2.0-rc.2.tgz", - "integrity": "sha512-UagMXNgIoVzk+GyLI7S8nsskMtpADhOqcyO8mNLfppF2RVtZ7xmBUPiZ+9OsaiZFet0IcbPpg1ZtdsuNnHZydw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-layout/-/uui-toast-notification-layout-1.2.0-rc.3.tgz", + "integrity": "sha512-ZNODYxUy2W2I5FJxFjBdPTEICydTdIfk03l7oJDp6UEdsiNIcoWlHOwNjHv0knUm95pAF+RTp1ansO1v6YXpKA==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-css": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-css": "1.2.0-rc.3" } }, "node_modules/@umbraco-ui/uui-toggle": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toggle/-/uui-toggle-1.2.0-rc.2.tgz", - "integrity": "sha512-ypp8pFp3GRXk3WLitMJp7Cg/ducZlVDKQyTqwwHap2q6RfkTwvZcLl59Bf00hgkMeTV1vVzFCMSMqLextPabQQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toggle/-/uui-toggle-1.2.0-rc.3.tgz", + "integrity": "sha512-RbCTWGBja8+oMrWR7Y5DPYJpqeCrGgq88FZ8C83uKxNwdUXqjWHcG60zwiQfpL4enjmCiOWsqc/hWpP7t4Nb/g==", "dependencies": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-boolean-input": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-boolean-input": "1.2.0-rc.3" } }, "node_modules/@web/browser-logs": { @@ -22674,780 +22674,780 @@ } }, "@umbraco-ui/uui": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.2.0-rc.2.tgz", - "integrity": "sha512-E8CrJYKLBcCnshV+nTVkfkL9I+0sJbBjKMHOVr/jCOj6Dw9mGytq0bmq8EIT0QcqZ6teZZplkwW2JPQauuv5JA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.2.0-rc.3.tgz", + "integrity": "sha512-40mfNOaZYJioMhnp7iPs68U9NlWbnkh3OuNCy5oztXq+OmEHLDVJY0YDiieUEFUnxIjgHN1SKPJplykjog6X0A==", "requires": { - "@umbraco-ui/uui-action-bar": "1.2.0-rc.2", - "@umbraco-ui/uui-avatar": "1.2.0-rc.2", - "@umbraco-ui/uui-avatar-group": "1.2.0-rc.2", - "@umbraco-ui/uui-badge": "1.2.0-rc.2", - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-boolean-input": "1.2.0-rc.2", - "@umbraco-ui/uui-box": "1.2.0-rc.2", - "@umbraco-ui/uui-breadcrumbs": "1.2.0-rc.2", - "@umbraco-ui/uui-button": "1.2.0-rc.2", - "@umbraco-ui/uui-button-group": "1.2.0-rc.2", - "@umbraco-ui/uui-button-inline-create": "1.2.0-rc.2", - "@umbraco-ui/uui-card": "1.2.0-rc.2", - "@umbraco-ui/uui-card-content-node": "1.2.0-rc.2", - "@umbraco-ui/uui-card-media": "1.2.0-rc.2", - "@umbraco-ui/uui-card-user": "1.2.0-rc.2", - "@umbraco-ui/uui-caret": "1.2.0-rc.2", - "@umbraco-ui/uui-checkbox": "1.2.0-rc.2", - "@umbraco-ui/uui-color-area": "1.2.0-rc.2", - "@umbraco-ui/uui-color-picker": "1.2.0-rc.2", - "@umbraco-ui/uui-color-slider": "1.2.0-rc.2", - "@umbraco-ui/uui-color-swatch": "1.2.0-rc.2", - "@umbraco-ui/uui-color-swatches": "1.2.0-rc.2", - "@umbraco-ui/uui-combobox": "1.2.0-rc.2", - "@umbraco-ui/uui-combobox-list": "1.2.0-rc.2", - "@umbraco-ui/uui-css": "1.2.0-rc.2", - "@umbraco-ui/uui-dialog": "1.2.0-rc.2", - "@umbraco-ui/uui-dialog-layout": "1.2.0-rc.2", - "@umbraco-ui/uui-file-dropzone": "1.2.0-rc.2", - "@umbraco-ui/uui-file-preview": "1.2.0-rc.2", - "@umbraco-ui/uui-form": "1.2.0-rc.2", - "@umbraco-ui/uui-form-layout-item": "1.2.0-rc.2", - "@umbraco-ui/uui-form-validation-message": "1.2.0-rc.2", - "@umbraco-ui/uui-icon": "1.2.0-rc.2", - "@umbraco-ui/uui-icon-registry": "1.2.0-rc.2", - "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.2", - "@umbraco-ui/uui-input": "1.2.0-rc.2", - "@umbraco-ui/uui-input-file": "1.2.0-rc.2", - "@umbraco-ui/uui-input-lock": "1.2.0-rc.2", - "@umbraco-ui/uui-input-password": "1.2.0-rc.2", - "@umbraco-ui/uui-keyboard-shortcut": "1.2.0-rc.2", - "@umbraco-ui/uui-label": "1.2.0-rc.2", - "@umbraco-ui/uui-loader": "1.2.0-rc.2", - "@umbraco-ui/uui-loader-bar": "1.2.0-rc.2", - "@umbraco-ui/uui-loader-circle": "1.2.0-rc.2", - "@umbraco-ui/uui-menu-item": "1.2.0-rc.2", - "@umbraco-ui/uui-modal": "1.2.0-rc.2", - "@umbraco-ui/uui-pagination": "1.2.0-rc.2", - "@umbraco-ui/uui-popover": "1.2.0-rc.2", - "@umbraco-ui/uui-progress-bar": "1.2.0-rc.2", - "@umbraco-ui/uui-radio": "1.2.0-rc.2", - "@umbraco-ui/uui-range-slider": "1.2.0-rc.2", - "@umbraco-ui/uui-ref": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-list": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node-data-type": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node-document-type": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node-form": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node-member": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node-package": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node-user": "1.2.0-rc.2", - "@umbraco-ui/uui-scroll-container": "1.2.0-rc.2", - "@umbraco-ui/uui-select": "1.2.0-rc.2", - "@umbraco-ui/uui-slider": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-expand": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-file": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-file-dropzone": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-file-thumbnail": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-folder": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-lock": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-more": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-sort": "1.2.0-rc.2", - "@umbraco-ui/uui-table": "1.2.0-rc.2", - "@umbraco-ui/uui-tabs": "1.2.0-rc.2", - "@umbraco-ui/uui-tag": "1.2.0-rc.2", - "@umbraco-ui/uui-textarea": "1.2.0-rc.2", - "@umbraco-ui/uui-toast-notification": "1.2.0-rc.2", - "@umbraco-ui/uui-toast-notification-container": "1.2.0-rc.2", - "@umbraco-ui/uui-toast-notification-layout": "1.2.0-rc.2", - "@umbraco-ui/uui-toggle": "1.2.0-rc.2" + "@umbraco-ui/uui-action-bar": "1.2.0-rc.3", + "@umbraco-ui/uui-avatar": "1.2.0-rc.3", + "@umbraco-ui/uui-avatar-group": "1.2.0-rc.3", + "@umbraco-ui/uui-badge": "1.2.0-rc.3", + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-boolean-input": "1.2.0-rc.3", + "@umbraco-ui/uui-box": "1.2.0-rc.3", + "@umbraco-ui/uui-breadcrumbs": "1.2.0-rc.3", + "@umbraco-ui/uui-button": "1.2.0-rc.3", + "@umbraco-ui/uui-button-group": "1.2.0-rc.3", + "@umbraco-ui/uui-button-inline-create": "1.2.0-rc.3", + "@umbraco-ui/uui-card": "1.2.0-rc.3", + "@umbraco-ui/uui-card-content-node": "1.2.0-rc.3", + "@umbraco-ui/uui-card-media": "1.2.0-rc.3", + "@umbraco-ui/uui-card-user": "1.2.0-rc.3", + "@umbraco-ui/uui-caret": "1.2.0-rc.3", + "@umbraco-ui/uui-checkbox": "1.2.0-rc.3", + "@umbraco-ui/uui-color-area": "1.2.0-rc.3", + "@umbraco-ui/uui-color-picker": "1.2.0-rc.3", + "@umbraco-ui/uui-color-slider": "1.2.0-rc.3", + "@umbraco-ui/uui-color-swatch": "1.2.0-rc.3", + "@umbraco-ui/uui-color-swatches": "1.2.0-rc.3", + "@umbraco-ui/uui-combobox": "1.2.0-rc.3", + "@umbraco-ui/uui-combobox-list": "1.2.0-rc.3", + "@umbraco-ui/uui-css": "1.2.0-rc.3", + "@umbraco-ui/uui-dialog": "1.2.0-rc.3", + "@umbraco-ui/uui-dialog-layout": "1.2.0-rc.3", + "@umbraco-ui/uui-file-dropzone": "1.2.0-rc.3", + "@umbraco-ui/uui-file-preview": "1.2.0-rc.3", + "@umbraco-ui/uui-form": "1.2.0-rc.3", + "@umbraco-ui/uui-form-layout-item": "1.2.0-rc.3", + "@umbraco-ui/uui-form-validation-message": "1.2.0-rc.3", + "@umbraco-ui/uui-icon": "1.2.0-rc.3", + "@umbraco-ui/uui-icon-registry": "1.2.0-rc.3", + "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.3", + "@umbraco-ui/uui-input": "1.2.0-rc.3", + "@umbraco-ui/uui-input-file": "1.2.0-rc.3", + "@umbraco-ui/uui-input-lock": "1.2.0-rc.3", + "@umbraco-ui/uui-input-password": "1.2.0-rc.3", + "@umbraco-ui/uui-keyboard-shortcut": "1.2.0-rc.3", + "@umbraco-ui/uui-label": "1.2.0-rc.3", + "@umbraco-ui/uui-loader": "1.2.0-rc.3", + "@umbraco-ui/uui-loader-bar": "1.2.0-rc.3", + "@umbraco-ui/uui-loader-circle": "1.2.0-rc.3", + "@umbraco-ui/uui-menu-item": "1.2.0-rc.3", + "@umbraco-ui/uui-modal": "1.2.0-rc.3", + "@umbraco-ui/uui-pagination": "1.2.0-rc.3", + "@umbraco-ui/uui-popover": "1.2.0-rc.3", + "@umbraco-ui/uui-progress-bar": "1.2.0-rc.3", + "@umbraco-ui/uui-radio": "1.2.0-rc.3", + "@umbraco-ui/uui-range-slider": "1.2.0-rc.3", + "@umbraco-ui/uui-ref": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-list": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node-data-type": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node-document-type": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node-form": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node-member": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node-package": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node-user": "1.2.0-rc.3", + "@umbraco-ui/uui-scroll-container": "1.2.0-rc.3", + "@umbraco-ui/uui-select": "1.2.0-rc.3", + "@umbraco-ui/uui-slider": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-expand": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-file": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-file-dropzone": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-file-thumbnail": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-folder": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-lock": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-more": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-sort": "1.2.0-rc.3", + "@umbraco-ui/uui-table": "1.2.0-rc.3", + "@umbraco-ui/uui-tabs": "1.2.0-rc.3", + "@umbraco-ui/uui-tag": "1.2.0-rc.3", + "@umbraco-ui/uui-textarea": "1.2.0-rc.3", + "@umbraco-ui/uui-toast-notification": "1.2.0-rc.3", + "@umbraco-ui/uui-toast-notification-container": "1.2.0-rc.3", + "@umbraco-ui/uui-toast-notification-layout": "1.2.0-rc.3", + "@umbraco-ui/uui-toggle": "1.2.0-rc.3" } }, "@umbraco-ui/uui-action-bar": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-action-bar/-/uui-action-bar-1.2.0-rc.2.tgz", - "integrity": "sha512-JI9n1/gB6cr+7k0+v+HVAnfXCkZIN3UYbC8BhC+YinMsKIIWiLgo/FmgClgHmJ9zPD9EhAVqUa8wViM03npyDg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-action-bar/-/uui-action-bar-1.2.0-rc.3.tgz", + "integrity": "sha512-kxMgIYNnE/2DGIuvdfWsY1zCU0zwbPxEQnhhGgqP6SjgxN+c01yid1w7R4hF1DwS5gtuZWJvfQEmdM7r5x3ctw==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-button-group": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-button-group": "1.2.0-rc.3" } }, "@umbraco-ui/uui-avatar": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar/-/uui-avatar-1.2.0-rc.2.tgz", - "integrity": "sha512-WnVicYfGExAKA7gXHjVk4dcANRrWYnXLlAWiRS9SOVDFUYezbNbX82Nt2rMGxZ5K3TJr+WWxBa0b2AYhz/pWpw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar/-/uui-avatar-1.2.0-rc.3.tgz", + "integrity": "sha512-ZlKyIaXxXZR7VXEKTHj5aNmw4UKxAdD4G5vb+5/rYzSKQ/yf37nVDtMjvDQIFRQiwMpxl9tQ3oEe3SlafCmLiw==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-avatar-group": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar-group/-/uui-avatar-group-1.2.0-rc.2.tgz", - "integrity": "sha512-bEtJzr4tC8oL4KszNxqu3ey1DPg9hZnaEND7p8RDXCknZLpi9flhpU73esvskiCRSJr5CTu0pTwJwOR+Bhwr9Q==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-avatar-group/-/uui-avatar-group-1.2.0-rc.3.tgz", + "integrity": "sha512-7GLMnr3uAOsK8keZXITZTuNW8DqhqMhR5tknY1sWDJZ57vH5C+aJUDVvwcAs97W03Sjn2PRx5ZzNQbeV4s0SKg==", "requires": { - "@umbraco-ui/uui-avatar": "1.2.0-rc.2", - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-avatar": "1.2.0-rc.3", + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-badge": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-badge/-/uui-badge-1.2.0-rc.2.tgz", - "integrity": "sha512-Z/zxDmf5WbeXo+3CrB62TOHgg5cEcKNB4vc06NAllypzLBKdBPjRe3FtBtRL8ExwZmXoAlJmlItr6nEnfogKUQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-badge/-/uui-badge-1.2.0-rc.3.tgz", + "integrity": "sha512-nehPDh2nKW0JxtIjWAoUJ+Rj+8ZCBsPeaRgqRKetOxfmMhQHvq0Yw+r8DxgCU+5VXdR6TEpEojvTioln6zErgw==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-base": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-base/-/uui-base-1.2.0-rc.2.tgz", - "integrity": "sha512-rGHM+OgldohqNlq5B1BMcpVkZNMu8A0X5uN6cG74qGg+WXqXbX9XlRFxMMuoxCTgtqowGZMn7St+Tu3O8GQAiA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-base/-/uui-base-1.2.0-rc.3.tgz", + "integrity": "sha512-qM1dDv1nCEIQZw4licg+FTpS9O69TWRZ7zf2XS30Y8qhVtkibUSi+DbM6pimxYvdlCnGYgDpB59yDqAWdDxwTQ==", "requires": { "lit": "^2.3.1" } }, "@umbraco-ui/uui-boolean-input": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-boolean-input/-/uui-boolean-input-1.2.0-rc.2.tgz", - "integrity": "sha512-W3qKtrH1c+nPe0yuz8sySf6hF7rOK9Hg3I2HZ5jRmoKnDmTLiZpXhDDyaYKy1oH5n/WdRlJx9aBaZG5TMmRqpg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-boolean-input/-/uui-boolean-input-1.2.0-rc.3.tgz", + "integrity": "sha512-IPiOtns6qGFTCRwAg7V1gVHJnAk+48bCRtxNo9MneHx2TefgRYnLAmpCx11KGDBryguQPr8w+ep93WE6/Wh7nw==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-box": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-box/-/uui-box-1.2.0-rc.2.tgz", - "integrity": "sha512-c3rqT0KdCnBqWv8Lbzpetj/MldQSTQ7/7uxTtHcS+Wclkvr+ktKeai45NebiKqDCb6l3scy2Va0TRoJBUNmofA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-box/-/uui-box-1.2.0-rc.3.tgz", + "integrity": "sha512-qBbWCzB7NhsAzK/7KkG1Au8x8fJeuYaD5YexIgSzfwwHoIAogRCj/0jY1aiJD1SCtatWzmi2iEJGD7XrxQ3a+w==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-css": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-css": "1.2.0-rc.3" } }, "@umbraco-ui/uui-breadcrumbs": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-breadcrumbs/-/uui-breadcrumbs-1.2.0-rc.2.tgz", - "integrity": "sha512-xX93r/n6dKY1D0wWRx2FKDVtJ2Yja91KPheHExSPuBuwUI0C0hBI02U+AhWjr/6+hUl+Kc0CWOdoYNkuum3RZg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-breadcrumbs/-/uui-breadcrumbs-1.2.0-rc.3.tgz", + "integrity": "sha512-kkjRYmmMviUHXDtITOLwtByZsNj3ZJRYCduoDsWNazNwkE77HGDre76yzWQZEIekGMxq4Jq3Ms5XfDROcvTzHg==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-button": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button/-/uui-button-1.2.0-rc.2.tgz", - "integrity": "sha512-IVtsxvRPT8on8vomxCWWRwhJbDl8dDmeUxSFxOPm/LrDZ8Y3sVf5Z248mBVCvX87E9AsBYkd7WX4KRDf3vubFQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button/-/uui-button-1.2.0-rc.3.tgz", + "integrity": "sha512-rd0ceJTO2oX+W0kJcMt+6qz7DKl/PI4XiKXkJ6p1O1Tz3aZoOiCnB1J+PZKZjduUMcoPlqSMdjzEwYu4rHYveA==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.3" } }, "@umbraco-ui/uui-button-group": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-group/-/uui-button-group-1.2.0-rc.2.tgz", - "integrity": "sha512-sNxAiZGCbjKE95hiCroBb5DBIiIncpojpS0ARWFHXQAbjPi99qP72cE/+D/LF61NZwDKyyP+GKrzOmzgI4BQMw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-group/-/uui-button-group-1.2.0-rc.3.tgz", + "integrity": "sha512-AjjDSLkwElHXzo9Zh36ogxgy0UbWe4ZvPpyF5OoCfPvmt7P7/5qiSM8MhoJ/wgCTvgclHL2Vw/JPtFmG1DaiIg==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-button-inline-create": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-inline-create/-/uui-button-inline-create-1.2.0-rc.2.tgz", - "integrity": "sha512-lNIFbBuiv113JyS8igqV7VhVppObRa34gpsflcmkCaCN2Khm6XVVsG4h226RNrhnQgjJ0J+r+/QTdaIUKLYX+w==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-button-inline-create/-/uui-button-inline-create-1.2.0-rc.3.tgz", + "integrity": "sha512-aWLjKobfXxuU4wltc6IRuFuiOHTPNa+3coajJ9FGs2JKXhgMZcAsva1k/qLd9x54yL2Z1dLQ02AOl5YmwIC3lw==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-card": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card/-/uui-card-1.2.0-rc.2.tgz", - "integrity": "sha512-7hlGuunANegwsC6R4N+ILxNMHwXzB6tJzO/enMnrAQA7SkuLDEJB1rHy2TOhUOjEP1hQREM+rc+srX1wT8ZkCw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card/-/uui-card-1.2.0-rc.3.tgz", + "integrity": "sha512-cy5kbKMkfpiDc7ZdFjlgMmxor98UMq8OKkhL8+M6fyYPCFQI4mEiWlN+ZHsIMtZSBclln4ToOeIRTo3hQPUfXQ==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-card-content-node": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-content-node/-/uui-card-content-node-1.2.0-rc.2.tgz", - "integrity": "sha512-RA4VK+XoJQpQmc3sfkw/ZnrMGCn1HDiFowanwrR8SEYOPiMbmGUhRMnnmsa8WSOlNJ4KLpgN8vyaa7cvu93ZuA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-content-node/-/uui-card-content-node-1.2.0-rc.3.tgz", + "integrity": "sha512-FSUloNf1plSH6dlostjLCq4UHbRV+jZY8pggD++CaAu8ULpfxKXmOFnKsq17v4pBKKLa+vKeYU1Li2MXW8agyA==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-card": "1.2.0-rc.2", - "@umbraco-ui/uui-icon": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-card": "1.2.0-rc.3", + "@umbraco-ui/uui-icon": "1.2.0-rc.3" } }, "@umbraco-ui/uui-card-media": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-media/-/uui-card-media-1.2.0-rc.2.tgz", - "integrity": "sha512-VDMbhevtLu0ucbhqVf17rKUrRfiNyyzttBFHX7NDUfeXGoqjTb98z6aproP5ujvqsWhECa5Q2iemTbxqVr/b7A==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-media/-/uui-card-media-1.2.0-rc.3.tgz", + "integrity": "sha512-KShrp9gkJyT2WTDwaRsVbwiuSchFwSNn/ihPHs0PI/sMGTuLIvgU08jUzSAKUny/uREAj2ttCeRgiLj18vCQ4A==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-card": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-file": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-folder": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-card": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-file": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-folder": "1.2.0-rc.3" } }, "@umbraco-ui/uui-card-user": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-user/-/uui-card-user-1.2.0-rc.2.tgz", - "integrity": "sha512-SVh2Rf1b/PL3WamMlSoLtm4bFLj9Ms33wS+94FVoEKikH/b/5OSHJyMnW4h6K/c2yyaMT7/y+tQhoc9oGcq5WQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-card-user/-/uui-card-user-1.2.0-rc.3.tgz", + "integrity": "sha512-+PqH5AMYnjPzRm7nLO9//4tJ74tOLyY0Fjlw2Z50QJ/m2EjCTQqf003XdSyeVHIZZA12wv/75GNwjiBEXqRbDg==", "requires": { - "@umbraco-ui/uui-avatar": "1.2.0-rc.2", - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-card": "1.2.0-rc.2" + "@umbraco-ui/uui-avatar": "1.2.0-rc.3", + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-card": "1.2.0-rc.3" } }, "@umbraco-ui/uui-caret": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-caret/-/uui-caret-1.2.0-rc.2.tgz", - "integrity": "sha512-/19J8MpMLkWT5u4QdGGmf7xqCZ0URB0YUq48rsn5y/efElWi1HG0ptJwGoqrW5hhKuLWEcZG4V1WVJxT4LgwZQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-caret/-/uui-caret-1.2.0-rc.3.tgz", + "integrity": "sha512-/M3gvU+Ub99RWCDvw7yn1CDKdoBZh3OjeuutGc9N5nDNhnFATam3BVyTXRcL02uGiFlxiCnsqphE3B3EUyBnOA==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-checkbox": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-checkbox/-/uui-checkbox-1.2.0-rc.2.tgz", - "integrity": "sha512-shjQWdFjjRnbXGaZa6BkSxC2Q1jfSh5q6xVjkDrcGToOW94q6PURF6Vm1aodsBVWZGuJUzmTdT41mhG/SjsIPg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-checkbox/-/uui-checkbox-1.2.0-rc.3.tgz", + "integrity": "sha512-6hnVO9CCaPntu7SUOEX95fKnry67l8EWC/J55N2nERCV6/9OY7YwIdQditKMZnJKfj3HOtdBh8IAIvNqSM3Wkw==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-boolean-input": "1.2.0-rc.2", - "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-boolean-input": "1.2.0-rc.3", + "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.3" } }, "@umbraco-ui/uui-color-area": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-area/-/uui-color-area-1.2.0-rc.2.tgz", - "integrity": "sha512-LwdmkwFu+3Ms9xm86sZovTItlWlHgVfHPOMnW+nxUkVMfwv1FjK4n4G7xVJ9nmpa8W4GjMwcENjvR0Qs2/JqqQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-area/-/uui-color-area-1.2.0-rc.3.tgz", + "integrity": "sha512-DPS54CIROx43c9JAXjhqDnv4IR2WQM5/MYN/4Xo+fL87nwpTnb7yfp7EmqBhX8uNRjSsb7TwILjGUs6YibBqBg==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", + "@umbraco-ui/uui-base": "1.2.0-rc.3", "colord": "^2.9.3" } }, "@umbraco-ui/uui-color-picker": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-picker/-/uui-color-picker-1.2.0-rc.2.tgz", - "integrity": "sha512-Ibn3dRJn/N8E9mRi2EWEFxyL4BwEbraytGNq7jD+iJZ9cIaZTU/zuxYGxNFNBP3EDsdD10iLnyBA9hfyEDxRcQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-picker/-/uui-color-picker-1.2.0-rc.3.tgz", + "integrity": "sha512-TZ0yxENsS1EMYp+sIzKO3X+yq3QAtNr0172FzgdCgkzsTatVsxpIz2K8rNQbBPInDFtNMZ/MztFaBPdYf9jbwA==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", + "@umbraco-ui/uui-base": "1.2.0-rc.3", "colord": "^2.9.3" } }, "@umbraco-ui/uui-color-slider": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-slider/-/uui-color-slider-1.2.0-rc.2.tgz", - "integrity": "sha512-aQTTizgH0oNHBFRXXr3tjhH456SRx7TVx797elcA9b0NtSFMuFwWZZI4qqppHTaVkVGZz/0coF973Xu8s5GSGg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-slider/-/uui-color-slider-1.2.0-rc.3.tgz", + "integrity": "sha512-CghdFKYDjCt6l6eHinRKNqFq//sZ2J5A/WOf6Cuz6poT+bCoSGT+AVqh/UbYtrbJtQ2ZsD06enIjOqbeoL+TpA==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-color-swatch": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatch/-/uui-color-swatch-1.2.0-rc.2.tgz", - "integrity": "sha512-A7G0kz/ZEOANizHNek6nsq41XrCbCBE5XTE5Y0afUEbL3RM37yZHsjNFM4H1iJs57plt4Mfb85TQqb3h5HnHJA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatch/-/uui-color-swatch-1.2.0-rc.3.tgz", + "integrity": "sha512-AxVefkwHVd/ngI4BkEjsLwEIUi5kTB4yg2y6w8t9kafZRZWxWi4jLgZrddw60h8iVMUvbzXM3kjOZ9gLim9gVA==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.2", + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.3", "colord": "^2.9.3" } }, "@umbraco-ui/uui-color-swatches": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatches/-/uui-color-swatches-1.2.0-rc.2.tgz", - "integrity": "sha512-FskzxqYXCfi3gV0BOfoo5acDJEpiHF2ZIcjYxgrPNtG2phjVZ1Mk1BinfKRRibXqKGU/uhAQxbNIygxW/C9bJA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-color-swatches/-/uui-color-swatches-1.2.0-rc.3.tgz", + "integrity": "sha512-mvquxgmkrqi1p8R7HskdlSUGiZKnqOZaQCPtDBnZRF/h+0wv1VYEAWtFzhyglpUVFWl6+djvyLvTOnV19zS3pQ==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-color-swatch": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-color-swatch": "1.2.0-rc.3" } }, "@umbraco-ui/uui-combobox": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox/-/uui-combobox-1.2.0-rc.2.tgz", - "integrity": "sha512-8BctuzQ1hoiAkhV4XU6sOICoKWn4EMIesWiQavl44IILuldrJhBc9PJlSkBeaOs8raOXCwWb7yhDf0w68rlY/w==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox/-/uui-combobox-1.2.0-rc.3.tgz", + "integrity": "sha512-z8jOSwDk0TWTvXtn2DLd/YsH3Nsi2ruECTDjf8VWYHIuxNCTMqIJv49yrIM33qmJUtITFT8ZU8kUGHWLbNLQmA==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-button": "1.2.0-rc.2", - "@umbraco-ui/uui-combobox-list": "1.2.0-rc.2", - "@umbraco-ui/uui-icon": "1.2.0-rc.2", - "@umbraco-ui/uui-scroll-container": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-button": "1.2.0-rc.3", + "@umbraco-ui/uui-combobox-list": "1.2.0-rc.3", + "@umbraco-ui/uui-icon": "1.2.0-rc.3", + "@umbraco-ui/uui-scroll-container": "1.2.0-rc.3" } }, "@umbraco-ui/uui-combobox-list": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox-list/-/uui-combobox-list-1.2.0-rc.2.tgz", - "integrity": "sha512-hOnfyje4XzhPWgDlbfOlaJOIUlMvc0RmwpKmqFynZMo0wZ+zuPMQ34jjPRAkgDa7dHkkAmbhZczLHdPF6I9aFA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-combobox-list/-/uui-combobox-list-1.2.0-rc.3.tgz", + "integrity": "sha512-wyunnv56FHVGkHm61a5I+zNYI4kdjqRllwqVjSo+BzxWhWwPIcTJguBHPlgd/3w7ir0GuhPJcLPb+1zoeB1PVw==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-css": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.2.0-rc.2.tgz", - "integrity": "sha512-yEHxeUFqRPhxHblR/jjkNLabMFZXZ3aMGVGgehBvsGM01D3yQq9wvFe+qtjr4TGXs7v62DIT4bOtP0f45KfRRg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-css/-/uui-css-1.2.0-rc.3.tgz", + "integrity": "sha512-E3Ytd10emwCUs1g7ByZkENp/1fCQo9wMjm8HStHfq5YVzdayHkyyJj5sTNv3dMEXy0Cac9gQ4lHjmBDE8wwDlA==", "requires": { "lit": "^2.2.2" } }, "@umbraco-ui/uui-dialog": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog/-/uui-dialog-1.2.0-rc.2.tgz", - "integrity": "sha512-Jw0YfP4WJMaSsdvUGPjOQtFUiAlno2knxt709V2IugdbnfjgSYllBzQGNHWmbBFS1kJtURAcCWJX74B9P/qRfQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog/-/uui-dialog-1.2.0-rc.3.tgz", + "integrity": "sha512-DxHRc4qFOWft7JXHn3YqpC4YnIDHAppJK0DUKssOMM+es3UsdLW1jYMQ8gKCcNUaWx/dwcfA3NCDok4giFc8CA==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-css": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-css": "1.2.0-rc.3" } }, "@umbraco-ui/uui-dialog-layout": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog-layout/-/uui-dialog-layout-1.2.0-rc.2.tgz", - "integrity": "sha512-gqFpO38XtYXQszCwUqt2jUqFHgcIIqf8+evlcGTXr1arFPpLfq2FWbEnXR83BjVRhHRCHhmLrbsoAZzwaJmToQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-dialog-layout/-/uui-dialog-layout-1.2.0-rc.3.tgz", + "integrity": "sha512-QJIwo5eUtGZ36zOuURhMtTMezkqAh/Nl/O0p1xeawyun8sHh8rRSBCqC1goA7KIotKErD4eqrbvkENbR9Uhmfw==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-file-dropzone": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-dropzone/-/uui-file-dropzone-1.2.0-rc.2.tgz", - "integrity": "sha512-Pm07+UkQmp+SXuvynjlKlc+/NOHBVve3k6hoPX5Z0mHWUG0XBG0WgbrTJoqgQYytbndt6AaE6vrKKyPE/VvoHw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-dropzone/-/uui-file-dropzone-1.2.0-rc.3.tgz", + "integrity": "sha512-YxYF+daaAl0YeCNoYxpvNbSeE1GCu5rDcMkrMbq8zRdoQ3KCqOi5p1DqSdOpIeOuna2/tBPK8McsehXgS0xR/Q==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-file-dropzone": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-file-dropzone": "1.2.0-rc.3" } }, "@umbraco-ui/uui-file-preview": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-preview/-/uui-file-preview-1.2.0-rc.2.tgz", - "integrity": "sha512-eG+BtfA+22KmY+UoMBp8iJDTWUoy2Iq0jLahWmHADaQ+HWUMJ/CXYFquNVfk2nQ5SmYrJV+qPC0d+ikf4UXVmQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-file-preview/-/uui-file-preview-1.2.0-rc.3.tgz", + "integrity": "sha512-uQvE8HGOFrcl6OKzb/tgHXZ3LnZU8i/HfzxTx0nh6538wdTqK7VWvRN65jPB3aerKrfl+8XMS67hRNfo/saU3Q==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-file": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-file-thumbnail": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-folder": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-file": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-file-thumbnail": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-folder": "1.2.0-rc.3" } }, "@umbraco-ui/uui-form": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form/-/uui-form-1.2.0-rc.2.tgz", - "integrity": "sha512-9iCKrLzmjpUaaL7l3C50UL3iJOYxqEY3aFLx9hRbpFzyQvwMmt/hcKiUeSEVjEtAIxpk5wUTwD7WlxeRve0POA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form/-/uui-form-1.2.0-rc.3.tgz", + "integrity": "sha512-Iz2JLK7lAKdX1B6aEQaGXaFuYKKH4i/DvJRltfRCIK4rn0OYmSp4RgcKyub/IuQkE8q8qNiyV3yS1vgSZQ9aHw==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-form-layout-item": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-layout-item/-/uui-form-layout-item-1.2.0-rc.2.tgz", - "integrity": "sha512-jFmw83oA/ecFOItGc27oHUHa2c6gA0gpzS2qsyYs7pSYEqwUxxe5iWI4otl3Ioi/3GgJwp69qzmVaEYuBgy/Sw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-layout-item/-/uui-form-layout-item-1.2.0-rc.3.tgz", + "integrity": "sha512-SbFAAjzplF2RiufhFIESzvbQEsza/qvq3nbxaBBFVPsfW1QkfBsU1H55kf8yWyTFrTWVMrDbneUlu9o/Iq3XUQ==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-form-validation-message": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-form-validation-message": "1.2.0-rc.3" } }, "@umbraco-ui/uui-form-validation-message": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-validation-message/-/uui-form-validation-message-1.2.0-rc.2.tgz", - "integrity": "sha512-rbdJIO9uvSclc+8lRNcOv3ePp9Aa7wW7pZ6S8aY1bkV03vTAp7syKILNF70NIzxSq1yOKBE8xFXspHxDftdEVw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-form-validation-message/-/uui-form-validation-message-1.2.0-rc.3.tgz", + "integrity": "sha512-kVejule16/TGKFBxTIbR1DIrEXKQ0R+ssgdqJYBxBpYntimRlDS9Wmx895gWxrYkMzL4echSLx8S6S2Pht9Y9A==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-icon": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon/-/uui-icon-1.2.0-rc.2.tgz", - "integrity": "sha512-DKKco6oTG0XpwcYhLscRo22tF1R3Y/kQHn2tDi1T8IBez/AdknQPveYOGoUVC2jENngeNahuXNpWwgNvTpn4Zg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon/-/uui-icon-1.2.0-rc.3.tgz", + "integrity": "sha512-ajugRVP2leJLTVKuJoKE0Xm1tncaq/zrtCRbin9fPBkajOHlcUIX9D7G1U0/g/aVDR2ag24uhDZyDYP/MoSF1g==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-icon-registry": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry/-/uui-icon-registry-1.2.0-rc.2.tgz", - "integrity": "sha512-Tt9RiNBCsbsZo2uh1saw0V8Z0pIXOAvRr9UgBOdn0GJIYbKDtHV1yALyqcQ//qenwkkPB5a5ly0a3tJHzeej0w==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry/-/uui-icon-registry-1.2.0-rc.3.tgz", + "integrity": "sha512-d0r8v1PHog7TfZLECk5Jn9cIqO+KGn9YjWixGgexVzCTVyhDWYJ0zeGcOEZ14qcNLQkXGQXTkYccegVlrcSDUQ==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-icon": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-icon": "1.2.0-rc.3" } }, "@umbraco-ui/uui-icon-registry-essential": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry-essential/-/uui-icon-registry-essential-1.2.0-rc.2.tgz", - "integrity": "sha512-K93QxSybUhz7Q/UWZVqib2LGxlIQkTGF0fq7yDbGAYnx1OGJ7fKR0BjWok0G5Xz+7bCmjfNqTcb364XECUKpjw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-icon-registry-essential/-/uui-icon-registry-essential-1.2.0-rc.3.tgz", + "integrity": "sha512-GaXUOIDg4mfRGvjlammUMLUaA/ksvCC4MIImgeYf3zAYXBzVX0XWbLatDlj7A2KwJkYOS/lWs2KJz17r11MA2A==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-icon-registry": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-icon-registry": "1.2.0-rc.3" } }, "@umbraco-ui/uui-input": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.2.0-rc.2.tgz", - "integrity": "sha512-+Spx/J0ofNL9Rozy05LdKBxDh8It32JzRjt3LCOuBPrN6Tme5HwCmcWtBK2Cn2HQ1zQJgnD+h1KItSyyYPXsnw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input/-/uui-input-1.2.0-rc.3.tgz", + "integrity": "sha512-/7qlTkn1se/RvXZ6PoFodyYWIOTtjgmdjCQ1r3y+DxjaelnhlJjymkQierpQY/S1VlPoqvJeJY3GfJipqpQHEQ==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-input-file": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-file/-/uui-input-file-1.2.0-rc.2.tgz", - "integrity": "sha512-zoFda6gYT1OSJDd9ObTzx4+xEL5/rBrzAZBniWJUQqrPPi3NfYrT+q4hY9c262F/HPbiyWYIH7xxMmr18EfNfw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-file/-/uui-input-file-1.2.0-rc.3.tgz", + "integrity": "sha512-BqVQs6HvGJxhNwDgQe002i6ToTxIpqhsuz9nWjh4BSh9i/6VqZkElyuNtlJEv9uMeyFJNlSids2GhhzpFv9Eaw==", "requires": { - "@umbraco-ui/uui-action-bar": "1.2.0-rc.2", - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-button": "1.2.0-rc.2", - "@umbraco-ui/uui-file-dropzone": "1.2.0-rc.2", - "@umbraco-ui/uui-icon": "1.2.0-rc.2", - "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.2" + "@umbraco-ui/uui-action-bar": "1.2.0-rc.3", + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-button": "1.2.0-rc.3", + "@umbraco-ui/uui-file-dropzone": "1.2.0-rc.3", + "@umbraco-ui/uui-icon": "1.2.0-rc.3", + "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.3" } }, "@umbraco-ui/uui-input-lock": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.2.0-rc.2.tgz", - "integrity": "sha512-jhWEm+qeJs4PZLEGNUs9DSTs3VAKe6IS70+i9fQQY0VQQgyDzMtAqf9A+93D6EgT6pLu7HdtfS1yZVIzAteEsg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-lock/-/uui-input-lock-1.2.0-rc.3.tgz", + "integrity": "sha512-JscAOMp9jWkVXxBUAs5bcRw3DpGCZDqnIb8Av0BZdy/0jRSXTwKKtvvaiad+vCe+pGlQhbA6v+hRWVsuAbeszg==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-button": "1.2.0-rc.2", - "@umbraco-ui/uui-icon": "1.2.0-rc.2", - "@umbraco-ui/uui-input": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-button": "1.2.0-rc.3", + "@umbraco-ui/uui-icon": "1.2.0-rc.3", + "@umbraco-ui/uui-input": "1.2.0-rc.3" } }, "@umbraco-ui/uui-input-password": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.2.0-rc.2.tgz", - "integrity": "sha512-MafMMXrAof7YUKQy+hwKfwOADwRQV7xKkDjagyobVsBp2ccCRndZKTOAyBBDTqu+7w/k0SbHd9BvC4xCvVUwrA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-input-password/-/uui-input-password-1.2.0-rc.3.tgz", + "integrity": "sha512-4zJMR+JUu4eGUUYwf5sX71sW9ABxtHRuO9ml8VVAGddh+4KRi/RRVOFQ2uZUWYiTNM9buLuLEWLGhy5vrTQ2YQ==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.2", - "@umbraco-ui/uui-input": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.3", + "@umbraco-ui/uui-input": "1.2.0-rc.3" } }, "@umbraco-ui/uui-keyboard-shortcut": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-keyboard-shortcut/-/uui-keyboard-shortcut-1.2.0-rc.2.tgz", - "integrity": "sha512-iMvqmDNwU9R0w3D4xRb9nNdoYOiXQJfE+6ojwld84XhfyfMYGIwmiIlCnIzW6g8yFPIDOkF91B+wKgyk5xBlqQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-keyboard-shortcut/-/uui-keyboard-shortcut-1.2.0-rc.3.tgz", + "integrity": "sha512-NB9EKMSpXkiOU1yQvbo+97TlfOqvZmTzIqPeWG8uamShINTBpfV7ppV1czRAaWsolNIO0GoplBflH489tmh50A==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-label": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-label/-/uui-label-1.2.0-rc.2.tgz", - "integrity": "sha512-eYY9e7cPGdwkw3JvM54fPpjn28bkKi3IVkfgDgvVP71vbuoBGCOk4rMP/H2XLElwKFTEM6EDRsXqrth02Ws0SA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-label/-/uui-label-1.2.0-rc.3.tgz", + "integrity": "sha512-11bn7NCgdefJjVhR8YSXWM/MF6UiNZzBBjW8G7vrQEMFxm/3lFQ3vyzGIK25sjpFCBE2RHkso1VR9PI0FamfBA==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-loader": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader/-/uui-loader-1.2.0-rc.2.tgz", - "integrity": "sha512-Vms+NrPH15BhhawaCIdTzC9vY/2oMwu4/3AdEzHznELx3OfZbrt57a+Cpaoq6ojJoynJdGHQ+Kl92cKcv2kk3A==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader/-/uui-loader-1.2.0-rc.3.tgz", + "integrity": "sha512-Icfkog5R6BXCFLO/xsqcOj4y1O+Tcm92iWGM5KR1xcpvQEVbHOEgxXpa1shLa2MqbdyB0q2ij5EYcCGhFPjM7A==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-loader-bar": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-bar/-/uui-loader-bar-1.2.0-rc.2.tgz", - "integrity": "sha512-dGXjMdWzndnWdbh6bNaeR3rP36Oi91l82Hx5mlByAKYVBG/q0J1nDn4gZhfczEx0ItaCq9uB8dfa3WolZKaMTw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-bar/-/uui-loader-bar-1.2.0-rc.3.tgz", + "integrity": "sha512-hi03ulGnY2M+N/uZgfENB2Yojg8M0b6CE8Kj9Uud65aWOxyQShKwTrCjGz0Bq1m/TPRhn0HQ7QEwedl2DMxDNA==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-loader-circle": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-circle/-/uui-loader-circle-1.2.0-rc.2.tgz", - "integrity": "sha512-Djp2Vikv8t7y4yw7hrAveyRe5ASN2ooRCKrN49F2Tn8fKhi5NfZ0NRKMtIU+QZNzLMRA1mjrnxB2mqcD/xGsug==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-loader-circle/-/uui-loader-circle-1.2.0-rc.3.tgz", + "integrity": "sha512-LZc/EWFgE4MAmqU1YIVA+3dF08EciMxk7wLrQGDiDVKEFUNCIyaNt9zoHsIk0CdKCpgfZ82Mq+DNf+CSTs+YbQ==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-menu-item": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-menu-item/-/uui-menu-item-1.2.0-rc.2.tgz", - "integrity": "sha512-i2YRq6DtxhjjpvhdbG6AVSWGMfY1sxBtylMwyWPMWCY/l0ozQrS8wiE34CEopvQszfnxKABb9nZYM6de3ybbZA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-menu-item/-/uui-menu-item-1.2.0-rc.3.tgz", + "integrity": "sha512-+d6SbMMIDHEZWBiOytwT3YilhSAHMpl/D5HVCfbtr7I5UhDcTL4nMpTBcc6y53bvhdnQnGCRIkIOjcgRk3cpEg==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-loader-bar": "1.2.0-rc.2", - "@umbraco-ui/uui-symbol-expand": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-loader-bar": "1.2.0-rc.3", + "@umbraco-ui/uui-symbol-expand": "1.2.0-rc.3" } }, "@umbraco-ui/uui-modal": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-modal/-/uui-modal-1.2.0-rc.2.tgz", - "integrity": "sha512-mWGhjqb4xk4QJsflXByYy9wvKtUdSVyIQv4064zGSBWH9VgUkSmz3hHrBpjQU2MjCpj6XW96aeEIkg7mY9J0VA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-modal/-/uui-modal-1.2.0-rc.3.tgz", + "integrity": "sha512-1yzKLZl033YN7SPbxV8cyAg7g9gbv7jgblQWnvfM2m7YLT6Cut22H4uDU/ASYeLS6zDHMIvlzrpcqItoIwQcCw==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-pagination": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-pagination/-/uui-pagination-1.2.0-rc.2.tgz", - "integrity": "sha512-tk5aS8NyugAPl7Dh8g8Igakup2k4eNT5clGvJacRRHIPBOn0p1gV6vKL3NDiVCmHHGLtgZMVnQQN7uSfm/Xj5w==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-pagination/-/uui-pagination-1.2.0-rc.3.tgz", + "integrity": "sha512-QrFfumL3hC+WcD5/h1rZ6m3THd0EHgYdygNZ5+Hp5AU5NBkwqhl17W2bSAtUwosB/+ssW5dlb1UqD9gIBly1Mw==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-button": "1.2.0-rc.2", - "@umbraco-ui/uui-button-group": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-button": "1.2.0-rc.3", + "@umbraco-ui/uui-button-group": "1.2.0-rc.3" } }, "@umbraco-ui/uui-popover": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover/-/uui-popover-1.2.0-rc.2.tgz", - "integrity": "sha512-ecxT66ZrU/xTRs0vrpPIfr7YpykVtSEh/vwwo9DSkhaaIotPorMrRXi7LixS2mllslHvsETis6STCzsBylqB3w==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-popover/-/uui-popover-1.2.0-rc.3.tgz", + "integrity": "sha512-x1Hg/npbmbCsCvMKHAU6uxdQ9UTJJ6A1M2s2QxtySDlIYS8YzA/RM66QVuHxIxAx81eM+iS0nquHiVpQcu/c5A==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-progress-bar": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-progress-bar/-/uui-progress-bar-1.2.0-rc.2.tgz", - "integrity": "sha512-KaffpsaFfj/7w2gGziMoYLvcQLCaDFhhCvbOYZE2DyyagIcJMr59LQYbX0ma7cTtUKSaJTk4RB1SWzIEuDu9Mg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-progress-bar/-/uui-progress-bar-1.2.0-rc.3.tgz", + "integrity": "sha512-S4/KrmKR5GP5HYq/ILMuYT04n8x2hdMcdmfUPZGaOwW3V5q5nH3313Qp68q+iqegqErrZsYBrkE+DofsqS1pkQ==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-radio": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-radio/-/uui-radio-1.2.0-rc.2.tgz", - "integrity": "sha512-jfGK/wzXue9s/E026k9ZBThCodrzRbpw/xS8xX9YHq3NvJNjfPTMABuTM2VpW4sPZtkdpkjZKNreJAfpYJoPrA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-radio/-/uui-radio-1.2.0-rc.3.tgz", + "integrity": "sha512-RYZxGLL/VFiEVn2a5Fd298vA1G85BCmBg8VsxSql2GhawFzCNBMKnfXJzOkuV2uZORGDnnW5RFDPh1qqcwkjhw==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-range-slider": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-range-slider/-/uui-range-slider-1.2.0-rc.2.tgz", - "integrity": "sha512-5K//peXBIAsOh9uAcY/8U+qoRxTaHGwfYl5SYjD/NnfpHXPY8xxXtMDHZcPXnSZLyVsoL2DSroFXgTLSJLsYlg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-range-slider/-/uui-range-slider-1.2.0-rc.3.tgz", + "integrity": "sha512-A1fyvDQ+qY59Sm+HkMzo8BVCp6Ipoi+AE8IH/C7GJ3/o0k8UxCZ4iSMWHtaiNSRY3kPWVkGX/P7MPdle2y7qBw==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-ref": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref/-/uui-ref-1.2.0-rc.2.tgz", - "integrity": "sha512-Qdat4AxQt8neF1sIWvWDGoWkTDa3BHOhc8JUw7QxmcPwvv11Hvg62tAfRN7zbiVcTmpYIPoy6GV+tgAUn7TAIQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref/-/uui-ref-1.2.0-rc.3.tgz", + "integrity": "sha512-DXZSaofnpBl+tUEo7BB92M+oWjoJpHrjuf5y3BT0cVhKHNta/WW7xnC60yprfHNz1zdvwvhfuFioIPaoI1ljHA==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-ref-list": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-list/-/uui-ref-list-1.2.0-rc.2.tgz", - "integrity": "sha512-t0iriFiVPLepRgB4JbCu8YNKBycHHusev3SBGtAV1NJ6uBKVcNgoKk2UCcmy4H9nq+pMAafXm/HX/Oq5F4JfZA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-list/-/uui-ref-list-1.2.0-rc.3.tgz", + "integrity": "sha512-CdM44A1JGa22TAbUBpalDbjezbwKv6riD+4IvN4LEQp6gPIiu5K/8QZma4tweP2k1986xMhgmDXqUIONb58RCw==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-ref-node": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node/-/uui-ref-node-1.2.0-rc.2.tgz", - "integrity": "sha512-Ji90frchpuqcl/wro/Np4hRhQLa15pvb078UA+zOSpBLHO03Py/Bs6l3BzFYskfOntC3EFSHm6HxFntPjAKFzw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node/-/uui-ref-node-1.2.0-rc.3.tgz", + "integrity": "sha512-0UvQ7ycY57DImFTfXlYUKoEDdUIrTVMjfx1o7GIL1ZdZ1YM+0x/4wHZP1QGRk2ZQqj37AzTK/7Ps4zJZY4tTQA==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-icon": "1.2.0-rc.2", - "@umbraco-ui/uui-ref": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-icon": "1.2.0-rc.3", + "@umbraco-ui/uui-ref": "1.2.0-rc.3" } }, "@umbraco-ui/uui-ref-node-data-type": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-data-type/-/uui-ref-node-data-type-1.2.0-rc.2.tgz", - "integrity": "sha512-aNV5GORnxkPvu0HWKfc7xzRDGYKMzeAXPLjYpcArKKFDfI95GTTNMvR9P0M/8IBJWiGb8oXCjMe1+YsVUCBSfw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-data-type/-/uui-ref-node-data-type-1.2.0-rc.3.tgz", + "integrity": "sha512-F3uyKNVpdALhcI7A0WP7UAIx5e8+r9jOdOxJpxBvNRe3xCnZEHzp1fa0z7oAIIqolkXxmbqmv84eS8zf4PVT1A==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node": "1.2.0-rc.3" } }, "@umbraco-ui/uui-ref-node-document-type": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-document-type/-/uui-ref-node-document-type-1.2.0-rc.2.tgz", - "integrity": "sha512-WC3aCJjVhDNFF0aSvMf/wZkRzQMmAvkRQzcresG0J20xzGyNh8HiDVTFp24luT7l8vYqAeAl9NlLYbCWZAEyvA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-document-type/-/uui-ref-node-document-type-1.2.0-rc.3.tgz", + "integrity": "sha512-ol0QlxGWCzoVlEVL8gHh/Uc8X8K4YZWLd9heL/iimlYRVHSrVV0f8X1PeoQH1MkwcNCarPMavw1D6qyGpkPv/w==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node": "1.2.0-rc.3" } }, "@umbraco-ui/uui-ref-node-form": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-form/-/uui-ref-node-form-1.2.0-rc.2.tgz", - "integrity": "sha512-UxK8tKD9pYuMU6rYfBcT3zyf/NM6LtnXCN/p9/3CWDhAeHJ4gdf6fFoPzgehZlxHl22BUQ0+bjZ2VF5/4KKtbQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-form/-/uui-ref-node-form-1.2.0-rc.3.tgz", + "integrity": "sha512-j6aB2iorTlqIJ7xp7+FkeuOsKm3qdol58dyAdh6OHvU6XPW7tVXDteO/9aQpYIjkobfLgfvfodC3r7dk2amKGA==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node": "1.2.0-rc.3" } }, "@umbraco-ui/uui-ref-node-member": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-member/-/uui-ref-node-member-1.2.0-rc.2.tgz", - "integrity": "sha512-I9RZAg0AZKLSlmJBu7iL9OHoNg5f+FLdDWv8cO060LRXGftjNdnjaLwlQFL5uxXvXwDI3E4i94XFThiju41fWw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-member/-/uui-ref-node-member-1.2.0-rc.3.tgz", + "integrity": "sha512-1rtjN/7tEak7pDmoEvUQwS7V8YEaPZE4ul1rviVRgUdrkdN0h0GPIdCbO5JJWqKk0k3UINbdS8eRr6u5jZZAfQ==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node": "1.2.0-rc.3" } }, "@umbraco-ui/uui-ref-node-package": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-package/-/uui-ref-node-package-1.2.0-rc.2.tgz", - "integrity": "sha512-2tNl9S+J17uRSy6eSFJJ47b/zUuemm3UALaBII1+c5rWmUvtvs9ZYljX77VAkuwELKEMgExWjGQKaLQBTbvFMQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-package/-/uui-ref-node-package-1.2.0-rc.3.tgz", + "integrity": "sha512-Gt+pJcqO3SjK3Dw/dZ1/0FIsRfChXa/6NeUOYygQE0vCBNKCzMW3DbTa5HqOnjjLpnV+s0r6s2FtAqpsHVKCxA==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node": "1.2.0-rc.3" } }, "@umbraco-ui/uui-ref-node-user": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-user/-/uui-ref-node-user-1.2.0-rc.2.tgz", - "integrity": "sha512-sTrz9xhHrcv9Il27NMMSKTm7A50gpRF9z3vDWiZ0Ottg37oUkGiitgk4XI3AJOSWqDzNJjwuwUk6tAlwc6D5TQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-ref-node-user/-/uui-ref-node-user-1.2.0-rc.3.tgz", + "integrity": "sha512-rL1oyMEvR9yeCV7GI0GtH6uoGQJ3rNjxD+3nvX52iS0HUU212A23wCPXjTtBkJvKcumm3WXpcG0LYZXTdO87tA==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-ref-node": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-ref-node": "1.2.0-rc.3" } }, "@umbraco-ui/uui-scroll-container": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-scroll-container/-/uui-scroll-container-1.2.0-rc.2.tgz", - "integrity": "sha512-Aj2hiU05DFZ7eXab/zAXjitP9bM/TAM7HNVPOAl08BNpkemo0DYTtdFu4VmLIkqw6WtyxIVZ/N5pSJYMYovXYA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-scroll-container/-/uui-scroll-container-1.2.0-rc.3.tgz", + "integrity": "sha512-svSGFuPoTpJmq3raNjWuMIOQvYR6TrvzdtfDue2pQG725rNIKf5C32Vd/tr9pOo18JMtmWkk3G1tz17ZF6+VmA==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-select": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-select/-/uui-select-1.2.0-rc.2.tgz", - "integrity": "sha512-X17ciKmnrtEut6RTrHvsOSIfwimPc0gT6kQoQFgPcTmF14Zr6edFPd6YKhWtjQNG9rVpmW1HK5bBSyeyiw/P4w==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-select/-/uui-select-1.2.0-rc.3.tgz", + "integrity": "sha512-C8RjztMPuHBhd0X9Wwvmzifwz9ljEqqN+m0FQGuO+dEKNskDI6ASGjdfTAch/NtxdJLjSztzx1I8h/FGv/0REA==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-slider": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-slider/-/uui-slider-1.2.0-rc.2.tgz", - "integrity": "sha512-PRoKMCvGTejDg37dm5fGYxO7jFrHECPn20X3fv3bsVqnF5wH7RZ88dBW5oMNoYxoreph4SSQd5AsSQabuCpT4w==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-slider/-/uui-slider-1.2.0-rc.3.tgz", + "integrity": "sha512-HTNa+w9TNSA8IkZZxvNHrdjPbg6PirFo6GF1aC7R6nvJxkntEDBm2KyjmpyPT+bcLQ6aMKsYlLVY2q5o7M7C3A==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-symbol-expand": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-expand/-/uui-symbol-expand-1.2.0-rc.2.tgz", - "integrity": "sha512-i42zskMlDb7tivcFkFo5pXPo6Z+A2Sgu/MTChDzIEw3AK3/V2Lf8jNZtjL9Anjn1ZWg0Mq4GBjR5iv+pkjHZjw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-expand/-/uui-symbol-expand-1.2.0-rc.3.tgz", + "integrity": "sha512-UtGA0m6qtNEw6/6b57RSOZPzzgbdYlp4sz0z55lCpFbekQ16efMFIXNqaKAyeKjD9n0nRPdr4AhgLXARFgpLyg==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-symbol-file": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file/-/uui-symbol-file-1.2.0-rc.2.tgz", - "integrity": "sha512-jIKSrcsmYwQJDyDOSeu49LbqaB7r9xq62cHB5dq2V1SRX9CYQqnX6E6hwcj2KBXwvp6oeAVWg+RzHth/8nR66A==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file/-/uui-symbol-file-1.2.0-rc.3.tgz", + "integrity": "sha512-5Ks6lHXlB9/n8WW5qTLmR1AIXUT8gDjVFUFTBXdOWU59+Authq5As/lpzZiv/4V3oPkhb9PcASI64CD320D0cw==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-symbol-file-dropzone": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-dropzone/-/uui-symbol-file-dropzone-1.2.0-rc.2.tgz", - "integrity": "sha512-yy6Ay2q3MW5ntJxmT+bgcCzwfSvsX9/0Fp/W7sX7sSO3gwraWobZuOBCiULiUkMe8No1t7x2HecW4Xr1mHUNXQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-dropzone/-/uui-symbol-file-dropzone-1.2.0-rc.3.tgz", + "integrity": "sha512-1ObzFfd2GFvLj+CZEJuAmcfoTiO2TX/EAitV/SU2x/tsU6FmDLX/K9SdJooYGFImv+v4N2Bf3L1yXdfnA5RkCg==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-symbol-file-thumbnail": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-thumbnail/-/uui-symbol-file-thumbnail-1.2.0-rc.2.tgz", - "integrity": "sha512-hcpxQWHDfPDx8eqWz6O8hHR4C09BOZ/ukYpy5EOJ8I+nwgB6eR39Waml+rOmOoDdMue1B8qPxKUcBODzWomSJg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-file-thumbnail/-/uui-symbol-file-thumbnail-1.2.0-rc.3.tgz", + "integrity": "sha512-FY/iMl3j/7foYybwEYtkvtGit+GJucLcXbRQup0uBZsM0jCv9bdUyZM1HPKS0BCLuNyl0LFAI7sevB4nq+u27A==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-symbol-folder": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-folder/-/uui-symbol-folder-1.2.0-rc.2.tgz", - "integrity": "sha512-LdNRWeuE/If+v9N6/MH2rgTWlyBwgjynffmUw+Js29OUJFuCp3docdsB2KlVOsfoDVEyAJtlGbsdAXQvf718VQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-folder/-/uui-symbol-folder-1.2.0-rc.3.tgz", + "integrity": "sha512-0eV2BIdHJk7ir46HkjpVj5vKAEwCvgMSHxHs690ZWmchyqlJOBiDHGetUbkzQZLXyT51wseWfXn2iYerHNajMg==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-symbol-lock": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-lock/-/uui-symbol-lock-1.2.0-rc.2.tgz", - "integrity": "sha512-xJIf+T5VkOGEU6A62SINUlkRJjV8rAGp5bS1Buf2z8vxpe50yqLpOm4mXpJXTyvmyybGm0efrUhfX9ESXWWP2g==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-lock/-/uui-symbol-lock-1.2.0-rc.3.tgz", + "integrity": "sha512-5+9xz32fr+jAPoZtiPhPsS+DrmtSkdvrhLqAbiVwfi28T4VtwWpOLRk/9hFchBql8HloAuyTqhk0XS4sLyIjbw==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-symbol-more": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-more/-/uui-symbol-more-1.2.0-rc.2.tgz", - "integrity": "sha512-KSJ5JoAijccGBGk233ZSN0a2sz9EDf50oWOE8x10mQvTGRUwwAgEIoxkXN39d0oBgCeY6xrkFS1JL0SC6qD4qg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-more/-/uui-symbol-more-1.2.0-rc.3.tgz", + "integrity": "sha512-7qKWzoSoBL9rkEfoKKBnrTGjUWLXXL4DK9T7porGbcVWCcveBqywrGmKLIsKzMuMPI0buGSidiD/CSCTy+Nlow==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-symbol-sort": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-sort/-/uui-symbol-sort-1.2.0-rc.2.tgz", - "integrity": "sha512-LcUNh/yaKiG5Mli9f95SPcKufKLFFPFz2zaD/iR80kcem2niXfgNPzuhV145XaLpKrebktrDTYKUefsDI6xqrA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-symbol-sort/-/uui-symbol-sort-1.2.0-rc.3.tgz", + "integrity": "sha512-yHU43q840CBtzAs+Q9CSvPqf61KOu7pOArda94kmMd1Ct5IrF71/3rJ3a1rGQOa9GG2Gn/4bLD4G4e50zh4Y+A==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-table": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-table/-/uui-table-1.2.0-rc.2.tgz", - "integrity": "sha512-IhHnB5vr7l+8E2Ae/CCy1ZJMH7yWITTfn1zzN+5qcAvQn5M/mm0gCCVFSvHQSRmt9Bj4s9CYSN1rRVp6Nw6gow==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-table/-/uui-table-1.2.0-rc.3.tgz", + "integrity": "sha512-AGEN7RoQrRRA0ht72KtKCS+9Lkfridjl3K96gOPORBfNczxPtPvLC3mroUPolR36eCi1/NKq10uZ+G0Q+ovBJA==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-tabs": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tabs/-/uui-tabs-1.2.0-rc.2.tgz", - "integrity": "sha512-R7kK3j8zF9Em4sB85h//hwXh2tV5h6xuJ1DawqY+am0imdZlr/7rkdv89NTJlP5y8nGGKY1P2lfy3prajxcoqQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tabs/-/uui-tabs-1.2.0-rc.3.tgz", + "integrity": "sha512-qx5nqXlKhTpJVrIOBs5DG9lzbrxXh6HMQ0F+qCJ7wg20Sb3U+tUkr4TXGbrPXXYwQxZ1ERhYKdnLbpRNgFE8Hg==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-tag": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tag/-/uui-tag-1.2.0-rc.2.tgz", - "integrity": "sha512-8P9ejFdgy1LTwJIWAT90DDj1cKFNbnwo/6HiqmFIHL40h43oa5/xtAh8SlwF+VzzT3EyuIS2+kOQBIaUT5CGRA==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-tag/-/uui-tag-1.2.0-rc.3.tgz", + "integrity": "sha512-FWBzn/1OaxUtNCuCIrRXNenJy0GYn6hepGoqaEfDqo4uHdhNNi+xpjEanFwEQf7vRlhlIeEFJN7cSQwTi7ks9A==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-textarea": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-textarea/-/uui-textarea-1.2.0-rc.2.tgz", - "integrity": "sha512-VUbZ9ztkdJpv3bBPCmrrhCjLHiS3MMWVnZT5fnQlbd0v+efD+I09Z4ir8JcdP3lbhP1HbQTVbwx+OyiAHp3pfg==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-textarea/-/uui-textarea-1.2.0-rc.3.tgz", + "integrity": "sha512-MX8pXgpSshx6ulGgoLqS+UkLfVKvERwmE0bV1MRCD8F+S27GjAHk+vMUQY2rYIihD3s87tPYRMwINjwRytWmCw==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3" } }, "@umbraco-ui/uui-toast-notification": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification/-/uui-toast-notification-1.2.0-rc.2.tgz", - "integrity": "sha512-cWm/wUU3WRA5VfQGeLa3nrrmOYmpp78pFWa1QAZUFbCZv/NWEmm1wHLqySb9O9AH5zUz3TG7F1LH75ZXI7dv0g==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification/-/uui-toast-notification-1.2.0-rc.3.tgz", + "integrity": "sha512-xwSJY6zFIstyRElDVoALnx+b7IiauvcAp9QgAQaq7TDivOSy/Cfjb0juEl6vVwvOFRaKdeVMuGUbKFdSdPlBcQ==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-button": "1.2.0-rc.2", - "@umbraco-ui/uui-css": "1.2.0-rc.2", - "@umbraco-ui/uui-icon": "1.2.0-rc.2", - "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-button": "1.2.0-rc.3", + "@umbraco-ui/uui-css": "1.2.0-rc.3", + "@umbraco-ui/uui-icon": "1.2.0-rc.3", + "@umbraco-ui/uui-icon-registry-essential": "1.2.0-rc.3" } }, "@umbraco-ui/uui-toast-notification-container": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-container/-/uui-toast-notification-container-1.2.0-rc.2.tgz", - "integrity": "sha512-3LPWk2mpCsYUOBiqeIdX/DDvQSM324rLMomXgxco+dmI1CvykkSJ2u3HclsmXk567d19h7+rt0k1Ap79him9+g==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-container/-/uui-toast-notification-container-1.2.0-rc.3.tgz", + "integrity": "sha512-T/wsWFqBA/NO++NkY6U550kr7lkU09eyX6OQR/e1jGWmTBbRqgxVS72fHxBDg+3j/Z3RY/jtsXfSy6UZOAc8lg==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-toast-notification": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-toast-notification": "1.2.0-rc.3" } }, "@umbraco-ui/uui-toast-notification-layout": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-layout/-/uui-toast-notification-layout-1.2.0-rc.2.tgz", - "integrity": "sha512-UagMXNgIoVzk+GyLI7S8nsskMtpADhOqcyO8mNLfppF2RVtZ7xmBUPiZ+9OsaiZFet0IcbPpg1ZtdsuNnHZydw==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toast-notification-layout/-/uui-toast-notification-layout-1.2.0-rc.3.tgz", + "integrity": "sha512-ZNODYxUy2W2I5FJxFjBdPTEICydTdIfk03l7oJDp6UEdsiNIcoWlHOwNjHv0knUm95pAF+RTp1ansO1v6YXpKA==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-css": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-css": "1.2.0-rc.3" } }, "@umbraco-ui/uui-toggle": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toggle/-/uui-toggle-1.2.0-rc.2.tgz", - "integrity": "sha512-ypp8pFp3GRXk3WLitMJp7Cg/ducZlVDKQyTqwwHap2q6RfkTwvZcLl59Bf00hgkMeTV1vVzFCMSMqLextPabQQ==", + "version": "1.2.0-rc.3", + "resolved": "https://registry.npmjs.org/@umbraco-ui/uui-toggle/-/uui-toggle-1.2.0-rc.3.tgz", + "integrity": "sha512-RbCTWGBja8+oMrWR7Y5DPYJpqeCrGgq88FZ8C83uKxNwdUXqjWHcG60zwiQfpL4enjmCiOWsqc/hWpP7t4Nb/g==", "requires": { - "@umbraco-ui/uui-base": "1.2.0-rc.2", - "@umbraco-ui/uui-boolean-input": "1.2.0-rc.2" + "@umbraco-ui/uui-base": "1.2.0-rc.3", + "@umbraco-ui/uui-boolean-input": "1.2.0-rc.3" } }, "@web/browser-logs": { diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 786a79a8e7..5d2efff018 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -61,8 +61,8 @@ "npm": ">=9.5 < 10" }, "dependencies": { - "@umbraco-ui/uui": "^1.2.0-rc.2", - "@umbraco-ui/uui-css": "^1.2.0-rc.2", + "@umbraco-ui/uui": "^1.2.0-rc.3", + "@umbraco-ui/uui-css": "^1.2.0-rc.3", "element-internals-polyfill": "^1.1.19", "lit": "^2.7.0", "lodash-es": "4.17.21", diff --git a/src/Umbraco.Web.UI.Client/src/app.ts b/src/Umbraco.Web.UI.Client/src/app.ts index 5707e9ec4d..af690fdd6e 100644 --- a/src/Umbraco.Web.UI.Client/src/app.ts +++ b/src/Umbraco.Web.UI.Client/src/app.ts @@ -46,26 +46,23 @@ export class UmbAppElement extends UmbLitElement { { path: 'upgrade', component: () => import('./upgrader/upgrader.element'), - guards: [this._isAuthorizedGuard('/upgrade')], + guards: [this.#isAuthorizedGuard('/upgrade')], }, { path: '**', component: () => import('./backoffice/backoffice.element'), - guards: [this._isAuthorizedGuard()], + guards: [this.#isAuthorizedGuard()], }, ]; - private _umbIconRegistry = new UmbIconStore(); - - private _iconRegistry = new UUIIconRegistryEssential(); - private _runtimeLevel = RuntimeLevelModel.UNKNOWN; + #umbIconRegistry = new UmbIconStore(); + #uuiIconRegistry = new UUIIconRegistryEssential(); + #runtimeLevel = RuntimeLevelModel.UNKNOWN; constructor() { super(); - - this._umbIconRegistry.attach(this); - - this._setup(); + this.#umbIconRegistry.attach(this); + this.#uuiIconRegistry.attach(this); } connectedCallback() { @@ -78,8 +75,7 @@ export class UmbAppElement extends UmbLitElement { OpenAPI.WITH_CREDENTIALS = true; this.provideContext('UMBRACOBASE', OpenAPI.BASE); - - this._setInitStatus(); + this.#setInitStatus(); // Listen for the debug event from the component this.addEventListener(umbDebugContextEventType, (event: any) => { @@ -104,19 +100,14 @@ export class UmbAppElement extends UmbLitElement { }); } - private async _setup() { - await this._setInitStatus(); - this._iconRegistry.attach(this); - } - - private async _setInitStatus() { + async #setInitStatus() { const { data } = await tryExecuteAndNotify(this, ServerResource.getServerStatus()); - this._runtimeLevel = data?.serverStatus ?? RuntimeLevelModel.UNKNOWN; - this._redirect(); + this.#runtimeLevel = data?.serverStatus ?? RuntimeLevelModel.UNKNOWN; + this.#redirect(); } - private _redirect() { - switch (this._runtimeLevel) { + #redirect() { + switch (this.#runtimeLevel) { case RuntimeLevelModel.INSTALL: history.replaceState(null, '', 'install'); break; @@ -137,18 +128,18 @@ export class UmbAppElement extends UmbLitElement { } default: - throw new Error(`Unsupported runtime level: ${this._runtimeLevel}`); + throw new Error(`Unsupported runtime level: ${this.#runtimeLevel}`); } } - private _isAuthorized(): boolean { + #isAuthorized(): boolean { return true; // TODO: Return true for now, until new login page is up and running //return sessionStorage.getItem('is-authenticated') === 'true'; } - private _isAuthorizedGuard(redirectTo?: string): Guard { + #isAuthorizedGuard(redirectTo?: string): Guard { return () => { - if (this._isAuthorized()) { + if (this.#isAuthorized()) { return true; } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-blueprints/document-blueprint.detail.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-blueprints/document-blueprint.detail.store.ts index f60b478a36..054c05d1ec 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-blueprints/document-blueprint.detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-blueprints/document-blueprint.detail.store.ts @@ -1,6 +1,6 @@ import type { DocumentBlueprintDetails } from '@umbraco-cms/backoffice/models'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { ArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; @@ -12,7 +12,7 @@ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; */ export class UmbDocumentBlueprintStore extends UmbStoreBase { // TODO: use the right type: - #data = new ArrayState([], (x) => x.id); + #data = new UmbArrayState([], (x) => x.id); constructor(host: UmbControllerHostElement) { super(host, UMB_DOCUMENT_BLUEPRINT_STORE_CONTEXT_TOKEN.toString()); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/repository/document-type.repository.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/repository/document-type.repository.ts index 78c9ac203c..3ab4e56fd9 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/repository/document-type.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/repository/document-type.repository.ts @@ -1,4 +1,4 @@ -import { DocumentTypeTreeServerDataSource } from './sources/document-type.tree.server.data'; +import { UmbDocumentTypeTreeServerDataSource } from './sources/document-type.tree.server.data'; import { UmbDocumentTypeServerDataSource } from './sources/document-type.server.data'; import { UmbDocumentTypeTreeStore, UMB_DOCUMENT_TYPE_TREE_STORE_CONTEXT_TOKEN } from './document-type.tree.store'; import { UmbDocumentTypeStore, UMB_DOCUMENT_TYPE_STORE_CONTEXT_TOKEN } from './document-type.store'; @@ -27,7 +27,7 @@ export class UmbDocumentTypeRepository implements UmbTreeRepository, U this.#host = host; // TODO: figure out how spin up get the correct data source - this.#treeSource = new DocumentTypeTreeServerDataSource(this.#host); + this.#treeSource = new UmbDocumentTypeTreeServerDataSource(this.#host); this.#detailDataSource = new UmbDocumentTypeServerDataSource(this.#host); this.#init = Promise.all([ diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/repository/document-type.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/repository/document-type.store.ts index 23b64c0942..3ad9e8e4e2 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/repository/document-type.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/repository/document-type.store.ts @@ -1,6 +1,6 @@ import { DocumentTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { ArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; @@ -11,7 +11,7 @@ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; * @description - Data Store for Document Types */ export class UmbDocumentTypeStore extends UmbStoreBase { - #data = new ArrayState([], (x) => x.id); + #data = new UmbArrayState([], (x) => x.id); /** * Creates an instance of UmbDocumentTypeStore. diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/repository/sources/document-type.tree.server.data.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/repository/sources/document-type.tree.server.data.ts index fd3cee9ccb..33869d807f 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/repository/sources/document-type.tree.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/document-types/repository/sources/document-type.tree.server.data.ts @@ -6,10 +6,10 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; /** * A data source for the Document tree that fetches data from the server * @export - * @class DocumentTreeServerDataSource - * @implements {DocumentTreeDataSource} + * @class UmbDocumentTypeTreeServerDataSource + * @implements {UmbTreeDataSource} */ -export class DocumentTypeTreeServerDataSource implements UmbTreeDataSource { +export class UmbDocumentTypeTreeServerDataSource implements UmbTreeDataSource { #host: UmbControllerHostElement; // TODO: how do we handle trashed items? @@ -42,9 +42,9 @@ export class DocumentTypeTreeServerDataSource implements UmbTreeDataSource { } /** - * Creates an instance of DocumentTreeServerDataSource. + * Creates an instance of UmbDocumentTypeTreeServerDataSource. * @param {UmbControllerHostElement} host - * @memberof DocumentTreeServerDataSource + * @memberof UmbDocumentTypeTreeServerDataSource */ constructor(host: UmbControllerHostElement) { this.#host = host; @@ -53,7 +53,7 @@ export class DocumentTypeTreeServerDataSource implements UmbTreeDataSource { /** * Fetches the root items for the tree from the server * @return {*} - * @memberof DocumentTreeServerDataSource + * @memberof UmbDocumentTypeTreeServerDataSource */ async getRootItems() { return tryExecuteAndNotify(this.#host, DocumentTypeResource.getTreeDocumentTypeRoot({})); @@ -63,7 +63,7 @@ export class DocumentTypeTreeServerDataSource implements UmbTreeDataSource { * Fetches the children of a given parent id from the server * @param {(string | null)} parentId * @return {*} - * @memberof DocumentTreeServerDataSource + * @memberof UmbDocumentTypeTreeServerDataSource */ async getChildrenOf(parentId: string | null) { if (!parentId) { @@ -83,7 +83,7 @@ export class DocumentTypeTreeServerDataSource implements UmbTreeDataSource { * Fetches the items for the given ids from the server * @param {Array} ids * @return {*} - * @memberof DocumentTreeServerDataSource + * @memberof UmbDocumentTypeTreeServerDataSource */ async getItems(ids: Array) { if (ids) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/repository/document.repository.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/repository/document.repository.ts index 91d485f05c..b6ad80faaa 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/repository/document.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/repository/document.repository.ts @@ -1,7 +1,7 @@ import { UmbDocumentServerDataSource } from './sources/document.server.data'; import { UmbDocumentStore, UMB_DOCUMENT_STORE_CONTEXT_TOKEN } from './document.store'; import { UmbDocumentTreeStore, UMB_DOCUMENT_TREE_STORE_CONTEXT_TOKEN } from './document.tree.store'; -import { DocumentTreeServerDataSource } from './sources/document.tree.server.data'; +import { UmbDocumentTreeServerDataSource } from './sources/document.tree.server.data'; import type { UmbTreeDataSource, UmbTreeRepository, UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; @@ -32,7 +32,7 @@ export class UmbDocumentRepository implements UmbTreeRepository, UmbDe this.#host = host; // TODO: figure out how spin up get the correct data source - this.#treeSource = new DocumentTreeServerDataSource(this.#host); + this.#treeSource = new UmbDocumentTreeServerDataSource(this.#host); this.#detailDataSource = new UmbDocumentServerDataSource(this.#host); this.#init = Promise.all([ diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/repository/document.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/repository/document.store.ts index d53818f95e..5af98a68b8 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/repository/document.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/repository/document.store.ts @@ -1,6 +1,6 @@ import { DocumentResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { ArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; @@ -11,7 +11,7 @@ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; * @description - Data Store for Template Details */ export class UmbDocumentStore extends UmbStoreBase { - #data = new ArrayState([], (x) => x.id); + #data = new UmbArrayState([], (x) => x.id); /** * Creates an instance of UmbDocumentDetailStore. diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/repository/sources/document.tree.server.data.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/repository/sources/document.tree.server.data.ts index 076b707b0b..9d09c3bcc3 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/repository/sources/document.tree.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/repository/sources/document.tree.server.data.ts @@ -6,10 +6,10 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; /** * A data source for the Document tree that fetches data from the server * @export - * @class DocumentTreeServerDataSource - * @implements {DocumentTreeDataSource} + * @class UmbDocumentTreeServerDataSource + * @implements {UmbTreeDataSource} */ -export class DocumentTreeServerDataSource implements UmbTreeDataSource { +export class UmbDocumentTreeServerDataSource implements UmbTreeDataSource { #host: UmbControllerHostElement; // TODO: how do we handle trashed items? @@ -42,9 +42,9 @@ export class DocumentTreeServerDataSource implements UmbTreeDataSource { } /** - * Creates an instance of DocumentTreeServerDataSource. + * Creates an instance of UmbDocumentTreeServerDataSource. * @param {UmbControllerHostElement} host - * @memberof DocumentTreeServerDataSource + * @memberof UmbDocumentTreeServerDataSource */ constructor(host: UmbControllerHostElement) { this.#host = host; @@ -53,7 +53,7 @@ export class DocumentTreeServerDataSource implements UmbTreeDataSource { /** * Fetches the root items for the tree from the server * @return {*} - * @memberof DocumentTreeServerDataSource + * @memberof UmbDocumentTreeServerDataSource */ async getRootItems() { return tryExecuteAndNotify(this.#host, DocumentResource.getTreeDocumentRoot({})); @@ -63,7 +63,7 @@ export class DocumentTreeServerDataSource implements UmbTreeDataSource { * Fetches the children of a given parent id from the server * @param {(string | null)} parentId * @return {*} - * @memberof DocumentTreeServerDataSource + * @memberof UmbDocumentTreeServerDataSource */ async getChildrenOf(parentId: string | null) { if (!parentId) { @@ -83,7 +83,7 @@ export class DocumentTreeServerDataSource implements UmbTreeDataSource { * Fetches the items for the given ids from the server * @param {Array} ids * @return {*} - * @memberof DocumentTreeServerDataSource + * @memberof UmbDocumentTreeServerDataSource */ async getItems(ids: Array) { if (!ids) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/workspace/document-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/workspace/document-workspace.context.ts index e4d3f0b984..3b38145096 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/workspace/document-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/documents/documents/workspace/document-workspace.context.ts @@ -6,7 +6,11 @@ import { UmbVariantId } from '../../../shared/variants/variant-id.class'; import { UmbWorkspacePropertyStructureManager } from '../../../shared/components/workspace/workspace-context/workspace-structure-manager.class'; import { UmbWorkspaceSplitViewManager } from '../../../shared/components/workspace/workspace-context/workspace-split-view-manager.class'; import type { CreateDocumentRequestModel, DocumentResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { partialUpdateFrozenArray, ObjectState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; +import { + partialUpdateFrozenArray, + UmbObjectState, + UmbObserverController, +} from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; // TODO: should this context be called DocumentDraft instead of workspace? or should the draft be part of this? @@ -22,12 +26,12 @@ export class UmbDocumentWorkspaceContext * For now lets not share this publicly as it can become confusing. * TODO: Use this to compare, for variants with changes. */ - #document = new ObjectState(undefined); + #document = new UmbObjectState(undefined); /** * The document is the current state/draft version of the document. */ - #draft = new ObjectState(undefined); + #draft = new UmbObjectState(undefined); readonly unique = this.#draft.getObservablePart((data) => data?.id); readonly documentTypeKey = this.#draft.getObservablePart((data) => data?.contentTypeId); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media-types/repository/media-type.detail.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media-types/repository/media-type.detail.store.ts index d6ef9c0fa9..844b1f5a1e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media-types/repository/media-type.detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media-types/repository/media-type.detail.store.ts @@ -1,7 +1,7 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; -import { ArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import type { MediaTypeDetails } from '@umbraco-cms/backoffice/models'; /** @@ -11,7 +11,7 @@ import type { MediaTypeDetails } from '@umbraco-cms/backoffice/models'; * @description - Details Data Store for Media Types */ export class UmbMediaTypeStore extends UmbStoreBase { - #data = new ArrayState([], (x) => x.id); + #data = new UmbArrayState([], (x) => x.id); constructor(host: UmbControllerHostElement) { super(host, UMB_MEDIA_TYPE_STORE_CONTEXT_TOKEN.toString()); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media-types/repository/media-type.repository.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media-types/repository/media-type.repository.ts index 898e1ab966..56e3769a84 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media-types/repository/media-type.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media-types/repository/media-type.repository.ts @@ -1,7 +1,7 @@ import { UmbMediaTypeTreeStore, UMB_MEDIA_TYPE_TREE_STORE_CONTEXT_TOKEN } from './media-type.tree.store'; import { UmbMediaTypeDetailServerDataSource } from './sources/media-type.detail.server.data'; import { UmbMediaTypeStore, UMB_MEDIA_TYPE_STORE_CONTEXT_TOKEN } from './media-type.detail.store'; -import { MediaTypeTreeServerDataSource } from './sources/media-type.tree.server.data'; +import { UmbMediaTypeTreeServerDataSource } from './sources/media-type.tree.server.data'; import { ProblemDetailsModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; @@ -26,7 +26,7 @@ export class UmbMediaTypeRepository implements UmbTreeRepository { this.#host = host; // TODO: figure out how spin up get the correct data source - this.#treeSource = new MediaTypeTreeServerDataSource(this.#host); + this.#treeSource = new UmbMediaTypeTreeServerDataSource(this.#host); this.#detailSource = new UmbMediaTypeDetailServerDataSource(this.#host); this.#init = Promise.all([ diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media-types/repository/sources/media-type.tree.server.data.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media-types/repository/sources/media-type.tree.server.data.ts index 6d164599f4..12401f3fe9 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media-types/repository/sources/media-type.tree.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media-types/repository/sources/media-type.tree.server.data.ts @@ -6,10 +6,10 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; /** * A data source for the MediaType tree that fetches data from the server * @export - * @class MediaTypeTreeServerDataSource - * @implements {MediaTypeTreeDataSource} + * @class UmbMediaTypeTreeServerDataSource + * @implements {UmbTreeDataSource} */ -export class MediaTypeTreeServerDataSource implements UmbTreeDataSource { +export class UmbMediaTypeTreeServerDataSource implements UmbTreeDataSource { #host: UmbControllerHostElement; /** @@ -24,7 +24,7 @@ export class MediaTypeTreeServerDataSource implements UmbTreeDataSource { /** * Fetches the root items for the tree from the server * @return {*} - * @memberof MediaTypeTreeServerDataSource + * @memberof UmbMediaTypeTreeServerDataSource */ async getRootItems() { return tryExecuteAndNotify(this.#host, MediaTypeResource.getTreeMediaTypeRoot({})); @@ -34,7 +34,7 @@ export class MediaTypeTreeServerDataSource implements UmbTreeDataSource { * Fetches the children of a given parent id from the server * @param {(string | null)} parentId * @return {*} - * @memberof MediaTypeTreeServerDataSource + * @memberof UmbMediaTypeTreeServerDataSource */ async getChildrenOf(parentId: string | null) { if (!parentId) { @@ -54,7 +54,7 @@ export class MediaTypeTreeServerDataSource implements UmbTreeDataSource { * Fetches the items for the given ids from the server * @param {Array} ids * @return {*} - * @memberof MediaTypeTreeServerDataSource + * @memberof UmbMediaTypeTreeServerDataSource */ async getItems(ids: Array) { if (!ids || ids.length === 0) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media-types/workspace/media-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media-types/workspace/media-type-workspace.context.ts index 648c880015..921a41b6b1 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media-types/workspace/media-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media-types/workspace/media-type-workspace.context.ts @@ -2,7 +2,7 @@ import { UmbWorkspaceContext } from '../../../shared/components/workspace/worksp import { UmbMediaTypeRepository } from '../repository/media-type.repository'; import { UmbEntityWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; -import { ObjectState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import type { MediaTypeDetails } from '@umbraco-cms/backoffice/models'; type EntityType = MediaTypeDetails; @@ -10,7 +10,7 @@ export class UmbWorkspaceMediaTypeContext extends UmbWorkspaceContext implements UmbEntityWorkspaceContextInterface { - #data = new ObjectState(undefined); + #data = new UmbObjectState(undefined); data = this.#data.asObservable(); name = this.#data.getObservablePart((data) => data?.name); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/repository/media.repository.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/repository/media.repository.ts index 28e2aed79d..77554e0894 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/repository/media.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/repository/media.repository.ts @@ -1,5 +1,5 @@ import type { MediaDetails } from '../'; -import { MediaTreeServerDataSource } from './sources/media.tree.server.data'; +import { UmbMediaTreeServerDataSource } from './sources/media.tree.server.data'; import { UmbMediaTreeStore, UMB_MEDIA_TREE_STORE_CONTEXT_TOKEN } from './media.tree.store'; import { UmbMediaStore, UMB_MEDIA_STORE_CONTEXT_TOKEN } from './media.store'; import { UmbMediaDetailServerDataSource } from './sources/media.detail.server.data'; @@ -36,7 +36,7 @@ export class UmbMediaRepository this.#host = host; // TODO: figure out how spin up get the correct data source - this.#treeSource = new MediaTreeServerDataSource(this.#host); + this.#treeSource = new UmbMediaTreeServerDataSource(this.#host); this.#detailDataSource = new UmbMediaDetailServerDataSource(this.#host); new UmbContextConsumerController(this.#host, UMB_MEDIA_TREE_STORE_CONTEXT_TOKEN, (instance) => { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/repository/media.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/repository/media.store.ts index ddc1a8b5fc..c6eb6e22f7 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/repository/media.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/repository/media.store.ts @@ -1,6 +1,6 @@ import type { MediaDetails } from '../'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { ArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; @@ -11,7 +11,7 @@ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; * @description - Data Store for Template Details */ export class UmbMediaStore extends UmbStoreBase { - #data = new ArrayState([], (x) => x.id); + #data = new UmbArrayState([], (x) => x.id); /** * Creates an instance of UmbMediaStore. diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/repository/media.tree.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/repository/media.tree.store.ts index 9c63d9c946..babdf21049 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/repository/media.tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/repository/media.tree.store.ts @@ -1,6 +1,6 @@ import { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { ArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbEntityTreeStore } from '@umbraco-cms/backoffice/store'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; @@ -13,7 +13,7 @@ export const UMB_MEDIA_TREE_STORE_CONTEXT_TOKEN = new UmbContextToken([], (x) => x.id); + #data = new UmbArrayState([], (x) => x.id); /** * Creates an instance of UmbMediaTreeStore. diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/repository/sources/media.tree.server.data.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/repository/sources/media.tree.server.data.ts index 096d2b2814..ee50c0ce1d 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/repository/sources/media.tree.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/repository/sources/media.tree.server.data.ts @@ -6,10 +6,10 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; /** * A data source for the Media tree that fetches data from the server * @export - * @class MediaTreeServerDataSource - * @implements {MediaTreeDataSource} + * @class UmbMediaTreeServerDataSource + * @implements {UmbTreeDataSource} */ -export class MediaTreeServerDataSource implements UmbTreeDataSource { +export class UmbMediaTreeServerDataSource implements UmbTreeDataSource { #host: UmbControllerHostElement; // TODO: how do we handle trashed items? @@ -42,9 +42,9 @@ export class MediaTreeServerDataSource implements UmbTreeDataSource { } /** - * Creates an instance of MediaTreeServerDataSource. + * Creates an instance of UmbMediaTreeServerDataSource. * @param {UmbControllerHostElement} host - * @memberof MediaTreeServerDataSource + * @memberof UmbMediaTreeServerDataSource */ constructor(host: UmbControllerHostElement) { this.#host = host; @@ -53,7 +53,7 @@ export class MediaTreeServerDataSource implements UmbTreeDataSource { /** * Fetches the root items for the tree from the server * @return {*} - * @memberof MediaTreeServerDataSource + * @memberof UmbMediaTreeServerDataSource */ async getRootItems() { return tryExecuteAndNotify(this.#host, MediaResource.getTreeMediaRoot({})); @@ -63,7 +63,7 @@ export class MediaTreeServerDataSource implements UmbTreeDataSource { * Fetches the children of a given parent id from the server * @param {(string | null)} parentId * @return {*} - * @memberof MediaTreeServerDataSource + * @memberof UmbMediaTreeServerDataSource */ async getChildrenOf(parentId: string | null) { if (!parentId) { @@ -83,7 +83,7 @@ export class MediaTreeServerDataSource implements UmbTreeDataSource { * Fetches the items for the given ids from the server * @param {Array} ids * @return {*} - * @memberof MediaTreeServerDataSource + * @memberof UmbMediaTreeServerDataSource */ async getItems(ids: Array) { if (!ids) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/workspace/media-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/workspace/media-workspace.context.ts index 751b587560..9e50b63768 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/media/media/workspace/media-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/media/media/workspace/media-workspace.context.ts @@ -2,7 +2,7 @@ import { UmbWorkspaceContext } from '../../../shared/components/workspace/worksp import { UmbMediaRepository } from '../repository/media.repository'; import type { MediaDetails } from '../'; import type { UmbEntityWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; -import { appendToFrozenArray, ObjectState } from '@umbraco-cms/backoffice/observable-api'; +import { appendToFrozenArray, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; type EntityType = MediaDetails; @@ -10,7 +10,7 @@ export class UmbMediaWorkspaceContext extends UmbWorkspaceContext implements UmbEntityWorkspaceContextInterface { - #data = new ObjectState(undefined); + #data = new UmbObjectState(undefined); data = this.#data.asObservable(); name = this.#data.getObservablePart((data) => data?.name); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/members/member-groups/repository/member-group.repository.ts b/src/Umbraco.Web.UI.Client/src/backoffice/members/member-groups/repository/member-group.repository.ts index 572e6d7fd0..22f2dceff6 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/members/member-groups/repository/member-group.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/members/member-groups/repository/member-group.repository.ts @@ -1,7 +1,7 @@ import { UmbMemberGroupTreeStore, UMB_MEMBER_GROUP_TREE_STORE_CONTEXT_TOKEN } from './member-group.tree.store'; import { UmbMemberGroupDetailServerDataSource } from './sources/member-group.detail.server.data'; import { UmbMemberGroupStore, UMB_MEMBER_GROUP_STORE_CONTEXT_TOKEN } from './member-group.store'; -import { MemberGroupTreeServerDataSource } from './sources/member-group.tree.server.data'; +import { UmbMemberGroupTreeServerDataSource } from './sources/member-group.tree.server.data'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; @@ -26,7 +26,7 @@ export class UmbMemberGroupRepository implements UmbTreeRepository, UmbDetailRep constructor(host: UmbControllerHostElement) { this.#host = host; // TODO: figure out how spin up get the correct data source - this.#treeSource = new MemberGroupTreeServerDataSource(this.#host); + this.#treeSource = new UmbMemberGroupTreeServerDataSource(this.#host); this.#detailSource = new UmbMemberGroupDetailServerDataSource(this.#host); new UmbContextConsumerController(this.#host, UMB_MEMBER_GROUP_TREE_STORE_CONTEXT_TOKEN, (instance) => { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/members/member-groups/repository/member-group.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/members/member-groups/repository/member-group.store.ts index 38fd8ede11..44eff1edff 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/members/member-groups/repository/member-group.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/members/member-groups/repository/member-group.store.ts @@ -1,6 +1,6 @@ import type { MemberGroupDetails } from '@umbraco-cms/backoffice/models'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { ArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; @@ -11,7 +11,7 @@ import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; * @description - Data Store for Member Groups */ export class UmbMemberGroupStore extends UmbStoreBase { - #data = new ArrayState([], (x) => x.id); + #data = new UmbArrayState([], (x) => x.id); constructor(host: UmbControllerHostElement) { super(host, UMB_MEMBER_GROUP_STORE_CONTEXT_TOKEN.toString()); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/members/member-groups/repository/sources/member-group.tree.server.data.ts b/src/Umbraco.Web.UI.Client/src/backoffice/members/member-groups/repository/sources/member-group.tree.server.data.ts index bfb95a7473..7535e756ea 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/members/member-groups/repository/sources/member-group.tree.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/members/member-groups/repository/sources/member-group.tree.server.data.ts @@ -6,16 +6,16 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; /** * A data source for the Member Group tree that fetches data from the server * @export - * @class MemberGroupTreeServerDataSource - * @implements {MemberGroupTreeDataSource} + * @class UmbMemberGroupTreeServerDataSource + * @implements {UmbTreeDataSource} */ -export class MemberGroupTreeServerDataSource implements UmbTreeDataSource { +export class UmbMemberGroupTreeServerDataSource implements UmbTreeDataSource { #host: UmbControllerHostElement; /** - * Creates an instance of MemberGroupTreeServerDataSource. + * Creates an instance of UmbMemberGroupTreeServerDataSource. * @param {UmbControllerHostElement} host - * @memberof MemberGroupTreeServerDataSource + * @memberof UmbMemberGroupTreeServerDataSource */ constructor(host: UmbControllerHostElement) { this.#host = host; @@ -24,7 +24,7 @@ export class MemberGroupTreeServerDataSource implements UmbTreeDataSource { /** * Fetches the root items for the tree from the server * @return {*} - * @memberof MemberGroupTreeServerDataSource + * @memberof UmbMemberGroupTreeServerDataSource */ async getRootItems() { return tryExecuteAndNotify(this.#host, MemberGroupResource.getTreeMemberGroupRoot({})); @@ -34,7 +34,7 @@ export class MemberGroupTreeServerDataSource implements UmbTreeDataSource { * Fetches the children of a given parent id from the server * @param {(string | null)} parentId * @return {*} - * @memberof MemberGroupTreeServerDataSource + * @memberof UmbMemberGroupTreeServerDataSource */ async getChildrenOf(parentId: string | null) { // Not implemented for this tree @@ -45,7 +45,7 @@ export class MemberGroupTreeServerDataSource implements UmbTreeDataSource { * Fetches the items for the given ids from the server * @param {Array} ids * @return {*} - * @memberof MemberGroupTreeServerDataSource + * @memberof UmbMemberGroupTreeServerDataSource */ async getItems(ids: Array) { if (!ids || ids.length === 0) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/members/member-groups/workspace/member-group-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/members/member-groups/workspace/member-group-workspace.context.ts index ecf64222eb..bf8f38eb1e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/members/member-groups/workspace/member-group-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/members/member-groups/workspace/member-group-workspace.context.ts @@ -3,14 +3,14 @@ import { UmbMemberGroupRepository } from '../repository/member-group.repository' import { UmbEntityWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; import type { MemberGroupDetails } from '@umbraco-cms/backoffice/models'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; -import { ObjectState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; type EntityType = MemberGroupDetails; export class UmbWorkspaceMemberGroupContext extends UmbWorkspaceContext implements UmbEntityWorkspaceContextInterface { - #data = new ObjectState(undefined); + #data = new UmbObjectState(undefined); data = this.#data.asObservable(); name = this.#data.getObservablePart((data) => data?.name); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/members/member-types/repository/member-type.repository.ts b/src/Umbraco.Web.UI.Client/src/backoffice/members/member-types/repository/member-type.repository.ts index 620347e0b4..fe51a1c02c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/members/member-types/repository/member-type.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/members/member-types/repository/member-type.repository.ts @@ -1,4 +1,4 @@ -import { MemberTypeTreeServerDataSource } from './sources/member-type.tree.server.data'; +import { UmbMemberTypeTreeServerDataSource } from './sources/member-type.tree.server.data'; import { UmbMemberTypeTreeStore, UMB_MEMBER_TYPE_TREE_STORE_CONTEXT_TOKEN } from './member-type.tree.store'; import { UmbMemberTypeStore, UMB_MEMBER_TYPE_STORE_CONTEXT_TOKEN } from './member-type.store'; import { UmbMemberTypeDetailServerDataSource } from './sources/member-type.detail.server.data'; @@ -30,7 +30,7 @@ export class UmbMemberTypeRepository implements UmbTreeRepository, this.#host = host; // TODO: figure out how spin up get the correct data source - this.#treeSource = new MemberTypeTreeServerDataSource(this.#host); + this.#treeSource = new UmbMemberTypeTreeServerDataSource(this.#host); this.#detailSource = new UmbMemberTypeDetailServerDataSource(this.#host); this.#init = Promise.all([ diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/members/member-types/repository/member-type.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/members/member-types/repository/member-type.store.ts index b9afd506a2..c379a95620 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/members/member-types/repository/member-type.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/members/member-types/repository/member-type.store.ts @@ -1,7 +1,7 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; -import { ArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import type { MemberTypeDetails } from '@umbraco-cms/backoffice/models'; /** @@ -11,7 +11,7 @@ import type { MemberTypeDetails } from '@umbraco-cms/backoffice/models'; * @description - Data Store for Member Types */ export class UmbMemberTypeStore extends UmbStoreBase { - #data = new ArrayState([], (x) => x.id); + #data = new UmbArrayState([], (x) => x.id); constructor(host: UmbControllerHostElement) { super(host, UMB_MEMBER_TYPE_STORE_CONTEXT_TOKEN.toString()); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/members/member-types/repository/sources/member-type.tree.server.data.ts b/src/Umbraco.Web.UI.Client/src/backoffice/members/member-types/repository/sources/member-type.tree.server.data.ts index 0c1abf952a..40c09a25fc 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/members/member-types/repository/sources/member-type.tree.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/members/member-types/repository/sources/member-type.tree.server.data.ts @@ -6,10 +6,10 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; /** * A data source for the MemberType tree that fetches data from the server * @export - * @class MemberTypeTreeServerDataSource - * @implements {MemberTypeTreeDataSource} + * @class UmbMemberTypeTreeServerDataSource + * @implements {UmbTreeDataSource} */ -export class MemberTypeTreeServerDataSource implements UmbTreeDataSource { +export class UmbMemberTypeTreeServerDataSource implements UmbTreeDataSource { #host: UmbControllerHostElement; /** @@ -24,7 +24,7 @@ export class MemberTypeTreeServerDataSource implements UmbTreeDataSource { /** * Fetches the root items for the tree from the server * @return {*} - * @memberof MemberTypeTreeServerDataSource + * @memberof UmbMemberTypeTreeServerDataSource */ async getRootItems() { return tryExecuteAndNotify(this.#host, MemberTypeResource.getTreeMemberTypeRoot({})); @@ -34,7 +34,7 @@ export class MemberTypeTreeServerDataSource implements UmbTreeDataSource { * Fetches the children of a given parent id from the server * @param {(string | null)} parentId * @return {*} - * @memberof MemberTypeTreeServerDataSource + * @memberof UmbMemberTypeTreeServerDataSource */ async getChildrenOf(parentId: string | null) { const error: ProblemDetailsModel = { title: 'Not implemented for Member Type' }; @@ -45,7 +45,7 @@ export class MemberTypeTreeServerDataSource implements UmbTreeDataSource { * Fetches the items for the given ids from the server * @param {Array} ids * @return {*} - * @memberof MemberTypeTreeServerDataSource + * @memberof UmbMemberTypeTreeServerDataSource */ async getItems(ids: Array) { if (!ids || ids.length === 0) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/members/member-types/workspace/member-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/members/member-types/workspace/member-type-workspace.context.ts index 8274bec279..9acaa2b9f7 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/members/member-types/workspace/member-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/members/member-types/workspace/member-type-workspace.context.ts @@ -1,7 +1,7 @@ import { UmbWorkspaceContext } from '../../../shared/components/workspace/workspace-context/workspace-context'; import { UmbMemberTypeRepository } from '../repository/member-type.repository'; import { UmbEntityWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; -import { ObjectState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; // TODO => use correct tpye @@ -11,7 +11,7 @@ export class UmbMemberTypeWorkspaceContext extends UmbWorkspaceContext implements UmbEntityWorkspaceContextInterface { - #data = new ObjectState(undefined); + #data = new UmbObjectState(undefined); name = this.#data.getObservablePart((data) => data?.name); constructor(host: UmbControllerHostElement) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/members/members/member.detail.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/members/members/member.detail.store.ts index 973f79f5c4..a5b8248990 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/members/members/member.detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/members/members/member.detail.store.ts @@ -2,7 +2,7 @@ import { Observable } from 'rxjs'; import { umbMemberData } from '../../../core/mocks/data/member.data'; import type { MemberDetails, MemberGroupDetails } from '@umbraco-cms/backoffice/models'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { ArrayState, createObservablePart } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState, createObservablePart } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; import { UmbEntityDetailStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; @@ -13,7 +13,7 @@ import { UmbEntityDetailStore, UmbStoreBase } from '@umbraco-cms/backoffice/stor * @description - Data Store for Members */ export class UmbMemberStore extends UmbStoreBase implements UmbEntityDetailStore { - #data = new ArrayState([], (x) => x.id); + #data = new UmbArrayState([], (x) => x.id); public groups = this.#data.asObservable(); constructor(private host: UmbControllerHostElement) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/members/members/repository/member.repository.ts b/src/Umbraco.Web.UI.Client/src/backoffice/members/members/repository/member.repository.ts index cf91bf0bf9..39fbb84c35 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/members/members/repository/member.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/members/members/repository/member.repository.ts @@ -1,5 +1,5 @@ import { UmbMemberTreeStore, UMB_MEMBER_TREE_STORE_CONTEXT_TOKEN } from './member.tree.store'; -import { MemberTreeServerDataSource } from './sources/member.tree.server.data'; +import { UmbMemberTreeServerDataSource } from './sources/member.tree.server.data'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; @@ -8,7 +8,7 @@ import { ProblemDetailsModel } from '@umbraco-cms/backoffice/backend-api'; export class UmbMemberRepository implements UmbTreeRepository { #host: UmbControllerHostElement; - #dataSource: MemberTreeServerDataSource; + #dataSource: UmbMemberTreeServerDataSource; #treeStore?: UmbMemberTreeStore; #notificationContext?: UmbNotificationContext; #initResolver?: () => void; @@ -17,7 +17,7 @@ export class UmbMemberRepository implements UmbTreeRepository { constructor(host: UmbControllerHostElement) { this.#host = host; // TODO: figure out how spin up get the correct data source - this.#dataSource = new MemberTreeServerDataSource(this.#host); + this.#dataSource = new UmbMemberTreeServerDataSource(this.#host); new UmbContextConsumerController(this.#host, UMB_MEMBER_TREE_STORE_CONTEXT_TOKEN, (instance) => { this.#treeStore = instance; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/members/members/repository/member.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/members/members/repository/member.store.ts index 4b01b1a8d8..958cb319ab 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/members/members/repository/member.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/members/members/repository/member.store.ts @@ -1,7 +1,7 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; -import { ArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import type { MemberDetails } from '@umbraco-cms/backoffice/models'; /** @@ -11,7 +11,7 @@ import type { MemberDetails } from '@umbraco-cms/backoffice/models'; * @description - Data Store for Members */ export class UmbMemberStore extends UmbStoreBase { - #data = new ArrayState([], (x) => x.id); + #data = new UmbArrayState([], (x) => x.id); constructor(host: UmbControllerHostElement) { super(host, UMB_MEMBER_STORE_CONTEXT_TOKEN.toString()); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/members/members/repository/sources/member.tree.server.data.ts b/src/Umbraco.Web.UI.Client/src/backoffice/members/members/repository/sources/member.tree.server.data.ts index b386fb52e2..903c63ef9f 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/members/members/repository/sources/member.tree.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/members/members/repository/sources/member.tree.server.data.ts @@ -4,16 +4,16 @@ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; /** * A data source for the Member tree that fetches data from the server * @export - * @class MemberTreeServerDataSource + * @class UmbMemberTreeServerDataSource * @implements {MemberTreeDataSource} */ -export class MemberTreeServerDataSource implements MemberTreeDataSource { +export class UmbMemberTreeServerDataSource implements MemberTreeDataSource { #host: UmbControllerHostElement; /** - * Creates an instance of MemberTreeServerDataSource. + * Creates an instance of UmbMemberTreeServerDataSource. * @param {UmbControllerHostElement} host - * @memberof MemberTreeServerDataSource + * @memberof UmbMemberTreeServerDataSource */ constructor(host: UmbControllerHostElement) { this.#host = host; @@ -22,7 +22,7 @@ export class MemberTreeServerDataSource implements MemberTreeDataSource { /** * Fetches the root items for the tree from the server * @return {*} - * @memberof MemberTreeServerDataSource + * @memberof UmbMemberTreeServerDataSource */ async getRootItems() { const response = await fetch('/umbraco/management/api/v1/tree/member/root'); @@ -36,7 +36,7 @@ export class MemberTreeServerDataSource implements MemberTreeDataSource { * Fetches the items for the given ids from the server * @param {Array} ids * @return {*} - * @memberof MemberTreeServerDataSource + * @memberof UmbMemberTreeServerDataSource */ async getItems(ids: Array) { const response = await fetch('/umbraco/management/api/v1/tree/member/item'); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/packages/repository/package.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/packages/repository/package.store.ts index 8ed4792471..0d0a8440a0 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/packages/repository/package.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/packages/repository/package.store.ts @@ -5,7 +5,7 @@ import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import type { UmbPackage } from '@umbraco-cms/backoffice/models'; import type { PackageMigrationStatusResponseModel } from '@umbraco-cms/backoffice/backend-api'; import type { ManifestBase } from '@umbraco-cms/backoffice/extensions-registry'; -import { ArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; export const UMB_PACKAGE_STORE_TOKEN = new UmbContextToken('UmbPackageStore'); @@ -21,9 +21,9 @@ export class UmbPackageStore extends UmbStoreBase { */ #packages = new ReplaySubject>(1); - #extensions = new ArrayState([], (e) => e.alias); + #extensions = new UmbArrayState([], (e) => e.alias); - #migrations = new ArrayState([], (e) => e.packageName); + #migrations = new UmbArrayState([], (e) => e.packageName); /** * Observable of packages with extensions diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/models-builder/dashboard-models-builder.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/models-builder/dashboard-models-builder.element.ts index 249718f61e..34bc597c23 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/models-builder/dashboard-models-builder.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/dashboards/models-builder/dashboard-models-builder.element.ts @@ -135,7 +135,7 @@ export class UmbDashboardModelsBuilderElement extends UmbLitElement {

${this._modelsBuilder?.lastError ? html`

Last generation failed with the following error:

- ${this._modelsBuilder.lastError}` + ${this._modelsBuilder.lastError}` : nothing} `; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/repository/data-type.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/repository/data-type.store.ts index 71db9b0013..b3aea6ee17 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/repository/data-type.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/repository/data-type.store.ts @@ -1,6 +1,6 @@ import type { DataTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { ArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; @@ -13,7 +13,7 @@ export const UMB_DATA_TYPE_STORE_CONTEXT_TOKEN = new UmbContextToken([], (x) => x.id); + #data = new UmbArrayState([], (x) => x.id); /** * Creates an instance of UmbDataTypeStore. diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/workspace/data-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/workspace/data-type-workspace.context.ts index 127850dc1f..15a5714fc1 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/workspace/data-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/workspace/data-type-workspace.context.ts @@ -2,7 +2,7 @@ import { UmbWorkspaceContext } from '../../../shared/components/workspace/worksp import { UmbDataTypeRepository } from '../repository/data-type.repository'; import { UmbEntityWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; import type { CreateDataTypeRequestModel, DataTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { appendToFrozenArray, ObjectState } from '@umbraco-cms/backoffice/observable-api'; +import { appendToFrozenArray, UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; export class UmbDataTypeWorkspaceContext @@ -10,7 +10,7 @@ export class UmbDataTypeWorkspaceContext implements UmbEntityWorkspaceContextInterface { // TODO: revisit. temp solution because the create and response models are different. - #data = new ObjectState(undefined); + #data = new UmbObjectState(undefined); data = this.#data.asObservable(); name = this.#data.getObservablePart((data) => data?.name); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/app-language-select/app-language.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/app-language-select/app-language.context.ts index 6f85f5c271..4ed5119e48 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/app-language-select/app-language.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/app-language-select/app-language.context.ts @@ -1,5 +1,5 @@ import { UmbLanguageRepository } from '../repository/language.repository'; -import { ObjectState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; +import { UmbObjectState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; @@ -10,7 +10,7 @@ export class UmbAppLanguageContext { #languages: Array = []; - #appLanguage = new ObjectState(undefined); + #appLanguage = new UmbObjectState(undefined); appLanguage = this.#appLanguage.asObservable(); constructor(host: UmbControllerHostElement) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/repository/language.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/repository/language.store.ts index 820b66fc50..4844685cd7 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/repository/language.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/repository/language.store.ts @@ -1,7 +1,7 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; -import { ArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; export const UMB_LANGUAGE_STORE_CONTEXT_TOKEN = new UmbContextToken('UmbLanguageStore'); @@ -13,7 +13,7 @@ export const UMB_LANGUAGE_STORE_CONTEXT_TOKEN = new UmbContextToken([], (x) => x.isoCode); + #data = new UmbArrayState([], (x) => x.isoCode); data = this.#data.asObservable(); constructor(host: UmbControllerHostElement) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language/language-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language/language-workspace.context.ts index f51bfe3075..782f623ff0 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language/language-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/languages/workspace/language/language-workspace.context.ts @@ -2,18 +2,18 @@ import { UmbLanguageRepository } from '../../repository/language.repository'; import { UmbWorkspaceContext } from '../../../../shared/components/workspace/workspace-context/workspace-context'; import { UmbEntityWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; import type { LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { ObjectState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; export class UmbLanguageWorkspaceContext extends UmbWorkspaceContext implements UmbEntityWorkspaceContextInterface { - #data = new ObjectState(undefined); + #data = new UmbObjectState(undefined); data = this.#data.asObservable(); // TODO: this is a temp solution to bubble validation errors to the UI - #validationErrors = new ObjectState(undefined); + #validationErrors = new UmbObjectState(undefined); validationErrors = this.#validationErrors.asObservable(); constructor(host: UmbControllerHostElement) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/repository/log-viewer.repository.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/repository/log-viewer.repository.ts index 15ad25e1b0..81d0c80cac 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/repository/log-viewer.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/repository/log-viewer.repository.ts @@ -2,7 +2,7 @@ import { UmbLogMessagesServerDataSource, UmbLogSearchesServerDataSource } from ' import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/notification'; -import { DirectionModel, LogLevelModel } from '@umbraco-cms/backoffice/backend-api'; +import { DirectionModel, LogLevelModel, SavedLogSearchPresenationBaseModel } from '@umbraco-cms/backoffice/backend-api'; // Move to documentation / JSdoc /* We need to create a new instance of the repository from within the element context. We want the notifications to be displayed in the right context. */ @@ -47,10 +47,30 @@ export class UmbLogViewerRepository { return this.#searchDataSource.getAllSavedSearches({ skip, take }); } - async getMessageTemplates({ skip, take }: { skip: number; take: number }) { + async saveSearch({ name, query }: SavedLogSearchPresenationBaseModel) { + await this.#init(); + this.#searchDataSource.postLogViewerSavedSearch({ name, query }); + } + + async removeSearch({ name }: { name: string }) { + await this.#init(); + this.#searchDataSource.deleteSavedSearchByName({ name }); + } + + async getMessageTemplates({ + skip, + take, + startDate, + endDate, + }: { + skip: number; + take: number; + startDate?: string; + endDate?: string; + }) { await this.#init(); - return this.#messagesDataSource.getLogViewerMessageTemplate({ skip, take }); + return this.#messagesDataSource.getLogViewerMessageTemplate({ skip, take, startDate, endDate }); } async getLogCount({ startDate, endDate }: { startDate?: string; endDate?: string }) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/repository/sources/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/repository/sources/index.ts index 944990c6d9..9dd4491af0 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/repository/sources/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/repository/sources/index.ts @@ -20,11 +20,7 @@ export interface LogSearchDataSource { }): Promise>; getSavedSearchByName({ name }: { name: string }): Promise>; deleteSavedSearchByName({ name }: { name: string }): Promise>; - postLogViewerSavedSearch({ - requestBody, - }: { - requestBody?: SavedLogSearchResponseModel; - }): Promise>; + postLogViewerSavedSearch({ name, query }: SavedLogSearchResponseModel): Promise>; } export interface LogMessagesDataSource { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/repository/sources/log-viewer.server.data.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/repository/sources/log-viewer.server.data.ts index 660ab50056..fa069f9d2f 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/repository/sources/log-viewer.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/repository/sources/log-viewer.server.data.ts @@ -54,8 +54,11 @@ export class UmbLogSearchesServerDataSource implements LogSearchDataSource { * @return {*} * @memberof UmbLogSearchesServerDataSource */ - async postLogViewerSavedSearch({ requestBody }: { requestBody?: SavedLogSearchResponseModel }) { - return await tryExecuteAndNotify(this.#host, LogViewerResource.postLogViewerSavedSearch({ requestBody })); + async postLogViewerSavedSearch({ name, query }: SavedLogSearchResponseModel) { + return await tryExecuteAndNotify( + this.#host, + LogViewerResource.postLogViewerSavedSearch({ requestBody: { name, query } }) + ); } /** * Remove a log viewer saved search by name from the server diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/components/log-viewer-date-range-selector.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/components/log-viewer-date-range-selector.element.ts index cab197ce92..248825bad1 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/components/log-viewer-date-range-selector.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/components/log-viewer-date-range-selector.element.ts @@ -7,6 +7,7 @@ import { UMB_APP_LOG_VIEWER_CONTEXT_TOKEN, } from '../../logviewer.context'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { query as getQuery, path, toQueryString } from '@umbraco-cms/backoffice/router'; @customElement('umb-log-viewer-date-range-selector') export class UmbLogViewerDateRangeSelectorElement extends UmbLitElement { @@ -86,8 +87,15 @@ export class UmbLogViewerDateRangeSelectorElement extends UmbLitElement { this._endDate = input.value; } }); - const newDateRange: LogViewerDateRange = { startDate: this._startDate, endDate: this._endDate }; - this.#logViewerContext?.setDateRange(newDateRange); + + const query = getQuery(); + const qs = toQueryString({ + ...query, + startDate: this._startDate, + endDate: this._endDate, + }); + + window.history.pushState({}, '', `${path()}?${qs}`); } render() { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/components/log-viewer-level-tag.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/components/log-viewer-level-tag.element.ts index 4bf03dbf85..1807638292 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/components/log-viewer-level-tag.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/components/log-viewer-level-tag.element.ts @@ -27,7 +27,10 @@ export class UmbLogViewerLevelTagElement extends LitElement { Information: { look: 'primary', color: 'positive' }, Warning: { look: 'primary', color: 'warning' }, Error: { look: 'primary', color: 'danger' }, - Fatal: { look: 'primary' }, + Fatal: { + look: 'primary', + style: 'background-color: var(--umb-log-viewer-fatal-color); color: var(--uui-color-surface)', + }, }; render() { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/logviewer-root-workspace.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/logviewer-root-workspace.element.ts index 5a009a7deb..f5423593a8 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/logviewer-root-workspace.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/logviewer-root-workspace.element.ts @@ -1,6 +1,6 @@ import './components'; import { map } from 'rxjs'; -import { css, html, nothing } from 'lit'; +import { PropertyValueMap, css, html, nothing } from 'lit'; import { customElement, state } from 'lit/decorators.js'; import { UUITextStyles } from '@umbraco-ui/uui-css'; import { repeat } from 'lit/directives/repeat.js'; @@ -8,7 +8,7 @@ import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from ' import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { umbExtensionsRegistry, createExtensionElement } from '@umbraco-cms/backoffice/extensions-api'; import { ManifestWorkspaceView, ManifestWorkspaceViewCollection } from '@umbraco-cms/backoffice/extensions-registry'; -import { UmbRouterSlotInitEvent, UmbRouterSlotChangeEvent } from '@umbraco-cms/internal/router'; +import type { UmbRouterSlotInitEvent, UmbRouterSlotChangeEvent } from '@umbraco-cms/internal/router'; import type { IRoute } from '@umbraco-cms/backoffice/router'; //TODO make uui-input accept min and max values @@ -26,7 +26,7 @@ export class UmbLogViewerWorkspaceElement extends UmbLitElement { --umb-log-viewer-information-color: var(--uui-color-positive); --umb-log-viewer-warning-color: var(--uui-color-warning); --umb-log-viewer-error-color: var(--uui-color-danger); - --umb-log-viewer-fatal-color: var(--uui-color-default); + --umb-log-viewer-fatal-color: var(--uui-palette-black); --umb-log-viewer-verbose-color: var(--uui-color-current); } @@ -64,12 +64,24 @@ export class UmbLogViewerWorkspaceElement extends UmbLitElement { constructor() { super(); this.#logViewerContext.init(); + this.provideContext(UMB_APP_LOG_VIEWER_CONTEXT_TOKEN, this.#logViewerContext); + } + + firstUpdated(props: PropertyValueMap) { + super.firstUpdated(props); + + window.addEventListener('changestate', this.#logViewerContext.onChangeState); + this.#logViewerContext.onChangeState(); } connectedCallback() { super.connectedCallback(); this._observeWorkspaceViews(); - this.provideContext(UMB_APP_LOG_VIEWER_CONTEXT_TOKEN, this.#logViewerContext); + } + + disconnectedCallback(): void { + super.disconnectedCallback(); + window.removeEventListener('changestate', this.#logViewerContext.onChangeState); } load(): void { @@ -101,9 +113,7 @@ export class UmbLogViewerWorkspaceElement extends UmbLitElement { this._routes = this._workspaceViews.map((view) => { return { path: `${view.meta.pathname}`, - component: () => { - return createExtensionElement(view); - }, + component: () => createExtensionElement(view), setup: (component) => { (component as any).manifest = view; }, diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/manifests.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/manifests.ts index 1d6ee72173..83478e4b88 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer-root/manifests.ts @@ -1,4 +1,5 @@ import type { + ManifestModal, ManifestWorkspace, ManifestWorkspaceAction, ManifestWorkspaceView, @@ -51,4 +52,13 @@ const workspaceViews: Array = [ const workspaceActions: Array = []; -export const manifests = [workspace, ...workspaceViews, ...workspaceActions]; +const modals: Array = [ + { + type: 'modal', + alias: 'Umb.Modal.LogViewer.SaveSearch', + name: 'Saved Searches Modal', + loader: () => import('../views/search/components/log-viewer-search-input-modal.element'), + }, +]; + +export const manifests = [workspace, ...workspaceViews, ...workspaceActions, ...modals]; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer.context.ts index 22a4eeaeeb..73c793e4dd 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/logviewer.context.ts @@ -1,11 +1,11 @@ import { UmbLogViewerRepository } from '../repository/log-viewer.repository'; import { - BasicState, - ArrayState, + UmbBasicState, + UmbArrayState, createObservablePart, - DeepState, - ObjectState, - StringState, + UmbDeepState, + UmbObjectState, + UmbStringState, } from '@umbraco-cms/backoffice/observable-api'; import { DirectionModel, @@ -15,9 +15,11 @@ import { PagedLogMessageResponseModel, PagedLogTemplateResponseModel, PagedSavedLogSearchResponseModel, + SavedLogSearchPresenationBaseModel, } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; +import { query } from '@umbraco-cms/backoffice/router'; export type PoolingInterval = 0 | 2000 | 5000 | 10000 | 20000 | 30000; export interface PoolingCOnfig { @@ -56,38 +58,38 @@ export class UmbLogViewerWorkspaceContext { endDate: this.today, }; - #savedSearches = new DeepState(undefined); + #savedSearches = new UmbObjectState(undefined); savedSearches = createObservablePart(this.#savedSearches, (data) => data?.items); - #logCount = new DeepState(null); + #logCount = new UmbDeepState(null); logCount = createObservablePart(this.#logCount, (data) => data); - #dateRange = new DeepState(this.defaultDateRange); + #dateRange = new UmbDeepState(this.defaultDateRange); dateRange = createObservablePart(this.#dateRange, (data) => data); - #loggers = new DeepState(null); + #loggers = new UmbDeepState(null); loggers = createObservablePart(this.#loggers, (data) => data?.items); - #canShowLogs = new BasicState(null); + #canShowLogs = new UmbBasicState(null); canShowLogs = createObservablePart(this.#canShowLogs, (data) => data); - #filterExpression = new StringState(''); + #filterExpression = new UmbStringState(''); filterExpression = createObservablePart(this.#filterExpression, (data) => data); - #messageTemplates = new DeepState(null); + #messageTemplates = new UmbDeepState(null); messageTemplates = createObservablePart(this.#messageTemplates, (data) => data); - #logLevelsFilter = new ArrayState([]); + #logLevelsFilter = new UmbArrayState([]); logLevelsFilter = createObservablePart(this.#logLevelsFilter, (data) => data); - #logs = new DeepState(null); + #logs = new UmbDeepState(null); logs = createObservablePart(this.#logs, (data) => data?.items); logsTotal = createObservablePart(this.#logs, (data) => data?.total); - #polling = new ObjectState({ enabled: false, interval: 2000 }); + #polling = new UmbObjectState({ enabled: false, interval: 2000 }); polling = createObservablePart(this.#polling, (data) => data); - #sortingDirection = new BasicState(DirectionModel.ASCENDING); + #sortingDirection = new UmbBasicState(DirectionModel.ASCENDING); sortingDirection = createObservablePart(this.#sortingDirection, (data) => data); #intervalID: number | null = null; @@ -103,8 +105,54 @@ export class UmbLogViewerWorkspaceContext { this.validateLogSize(); } - setDateRange(dateRange: LogViewerDateRange) { - const { startDate, endDate } = dateRange; + reset() { + this.#logs.next({ items: [], total: 0 }); + this.setCurrentPage(1); + } + + onChangeState = () => { + this.reset(); + + const searchQuery = query(); + let sanitizedQuery = ''; + if (searchQuery.lq) { + sanitizedQuery = decodeURIComponent(searchQuery.lq); + } + this.setFilterExpression(sanitizedQuery); + + let validLogLevels: LogLevelModel[] = []; + if (searchQuery.loglevels) { + const loglevels = searchQuery.loglevels.split(',') as LogLevelModel[]; + + // Filter out invalid log levels that do not exist in LogLevelModel + validLogLevels = loglevels.filter((loglevel) => { + return Object.values(LogLevelModel).includes(loglevel); + }); + } + this.setLogLevelsFilter(validLogLevels); + + const dateRange: Partial = {}; + + if (searchQuery.startDate) { + dateRange.startDate = searchQuery.startDate; + } + + if (searchQuery.endDate) { + dateRange.endDate = searchQuery.endDate; + } + + this.setDateRange(dateRange); + + this.setCurrentPage(searchQuery.page ? Number(searchQuery.page) : 1); + + this.getLogs(); + }; + + setDateRange(dateRange: Partial) { + let { startDate, endDate } = dateRange; + + if (!startDate) startDate = this.defaultDateRange.startDate; + if (!endDate) endDate = this.defaultDateRange.endDate; const isAnyDateInTheFuture = new Date(startDate) > new Date() || new Date(endDate) > new Date(); const isStartDateBiggerThenEndDate = new Date(startDate) > new Date(endDate); @@ -112,9 +160,10 @@ export class UmbLogViewerWorkspaceContext { return; } - this.#dateRange.next(dateRange); + this.#dateRange.next({ startDate, endDate }); this.validateLogSize(); this.getLogCount(); + this.getMessageTemplates(0, 10); } async getSavedSearches() { @@ -122,7 +171,7 @@ export class UmbLogViewerWorkspaceContext { if (data) { this.#savedSearches.next(data); } else { - //falback to some default searches like in the old backoffice + //falback to some default searches resembling Umbraco <= 12 this.#savedSearches.next({ items: [ { @@ -155,6 +204,26 @@ export class UmbLogViewerWorkspaceContext { } } + async saveSearch({ name, query }: SavedLogSearchPresenationBaseModel) { + const previousSavedSearches = this.#savedSearches.getValue()?.items ?? []; + try { + this.#savedSearches.update({ items: [...previousSavedSearches, { name, query }] }); + await this.#repository.saveSearch({ name, query }); + } catch (err) { + this.#savedSearches.update({ items: previousSavedSearches }); + } + } + + async removeSearch({ name }: { name: string }) { + const previousSavedSearches = this.#savedSearches.getValue()?.items ?? []; + try { + this.#savedSearches.update({ items: previousSavedSearches.filter((search) => search.name !== name) }); + await this.#repository.removeSearch({ name }); + } catch (err) { + this.#savedSearches.update({ items: previousSavedSearches }); + } + } + async getLogCount() { const { data } = await this.#repository.getLogCount({ ...this.#dateRange.getValue() }); @@ -164,7 +233,7 @@ export class UmbLogViewerWorkspaceContext { } async getMessageTemplates(skip: number, take: number) { - const { data } = await this.#repository.getMessageTemplates({ skip, take }); + const { data } = await this.#repository.getMessageTemplates({ skip, take, ...this.#dateRange.getValue() }); if (data) { this.#messageTemplates.next(data); @@ -180,14 +249,12 @@ export class UmbLogViewerWorkspaceContext { } async validateLogSize() { - const { data, error } = await this.#repository.getLogViewerValidateLogsSize({ ...this.#dateRange.getValue() }); + const { error } = await this.#repository.getLogViewerValidateLogsSize({ ...this.#dateRange.getValue() }); if (error) { this.#canShowLogs.next(false); - console.info('LogViewer: ', error); return; } this.#canShowLogs.next(true); - console.info('LogViewer:showinfg logs'); } setCurrentPage(page: number) { @@ -244,7 +311,7 @@ export class UmbLogViewerWorkspaceContext { } setPollingInterval(interval: PoolingInterval) { - this.#polling.update({ interval, enabled: true }); + this.#polling.update({ interval }); } toggleSortOrder() { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/overview/components/log-viewer-log-level-overview.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/overview/components/log-viewer-log-level-overview.element.ts index bae9ab55f4..fecb77768c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/overview/components/log-viewer-log-level-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/overview/components/log-viewer-log-level-overview.element.ts @@ -1,4 +1,4 @@ -import { html } from 'lit'; +import { html, nothing } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @@ -37,7 +37,7 @@ export class UmbLogViewerLogLevelOverviewElement extends UmbLitElement { render() { return html`${this._loggers.length > 0 ? this._loggers.find((logger) => logger.name === this.loggerName)?.level - : ''}`; + : nothing}`; } } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/overview/components/log-viewer-message-templates-overview.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/overview/components/log-viewer-message-templates-overview.element.ts index d96280149b..1e10aff9bb 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/overview/components/log-viewer-message-templates-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/overview/components/log-viewer-message-templates-overview.element.ts @@ -66,14 +66,11 @@ export class UmbLogViewerMessageTemplatesOverviewElement extends UmbLitElement { #renderSearchItem = (searchListItem: SavedLogSearchResponseModel) => { return html`
  • { - this.#setCurrentQuery(searchListItem.query ?? ''); - }} label="${searchListItem.name ?? ''}" title="${searchListItem.name ?? ''}" - href=${'/section/settings/logviewer/search?lq=' + searchListItem.query} - >${searchListItem.name} + href=${`section/settings/workspace/logviewer/search/?lq=${searchListItem.query}`}> + ${searchListItem.name} +
  • `; }; @@ -90,13 +87,12 @@ export class UmbLogViewerMessageTemplatesOverviewElement extends UmbLitElement { ${this._messageTemplates ? this._messageTemplates.items.map( (template) => - html` + html` + { - this.#setCurrentQuery(`@MessageTemplate='${template.messageTemplate}'` ?? ''); - }} - href=${'/section/settings/logviewer/search?lg=@MessageTemplate%3D' + template.messageTemplate}> + href=${`section/settings/workspace/logviewer/search/?lq=${encodeURIComponent( + `@MessageTemplate='${template.messageTemplate}'` + )}`}> ${template.messageTemplate} ${template.count} @@ -109,9 +105,9 @@ export class UmbLogViewerMessageTemplatesOverviewElement extends UmbLitElement { id="show-more-templates-btn" look="primary" @click=${this.#getMessageTemplates} - label="Show more templates" - >Show more + label="Show more templates"> + Show more + `; } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/overview/components/log-viewer-saved-searches-overview.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/overview/components/log-viewer-saved-searches-overview.element.ts index 761f06c97b..a918939169 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/overview/components/log-viewer-saved-searches-overview.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/overview/components/log-viewer-saved-searches-overview.element.ts @@ -40,6 +40,7 @@ export class UmbLogViewerSavedSearchesOverviewElement extends UmbLitElement { private _savedSearches: SavedLogSearchResponseModel[] = []; #logViewerContext?: UmbLogViewerWorkspaceContext; + constructor() { super(); this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT_TOKEN, (instance) => { @@ -56,39 +57,21 @@ export class UmbLogViewerSavedSearchesOverviewElement extends UmbLitElement { }); } - #setCurrentQuery(query: string) { - this.#logViewerContext?.setFilterExpression(query); - } - #renderSearchItem = (searchListItem: SavedLogSearchResponseModel) => { return html`
  • { - this.#setCurrentQuery(searchListItem.query ?? ''); - }} label="${searchListItem.name ?? ''}" title="${searchListItem.name ?? ''}" - href=${'/section/settings/logviewer/search?lq=' + searchListItem.query} - >${searchListItem.name} + href=${`section/settings/workspace/logviewer/search/?lq=${encodeURIComponent(searchListItem.query ?? '')}`}> + ${searchListItem.name} +
  • `; }; render() { return html`
      -
    • - { - this.#setCurrentQuery(''); - }} - label="All logs" - title="All logs" - href="/section/settings/logviewer/search" - >All logs -
    • - ${this._savedSearches.map(this.#renderSearchItem)} + ${this.#renderSearchItem({ name: 'All logs', query: '' })} ${this._savedSearches.map(this.#renderSearchItem)}
    `; } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/overview/log-overview-view.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/overview/log-overview-view.element.ts index d4faca5e18..b8fba68f66 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/overview/log-overview-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/overview/log-overview-view.element.ts @@ -107,8 +107,8 @@ export class UmbLogViewerOverviewViewElement extends UmbLitElement { #observeErrorCount() { if (!this.#logViewerContext) return; - this.observe(this.#logViewerContext.logCount, () => { - this._errorCount = this._logLevelCount?.error ?? 0; + this.observe(this.#logViewerContext.logCount, (logLevelCount) => { + this._errorCount = logLevelCount?.error ?? 0; }); } @@ -128,7 +128,13 @@ export class UmbLogViewerOverviewViewElement extends UmbLitElement { -

    ${this._errorCount}

    + +

    ${this._errorCount}

    diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-log-level-filter-menu.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-log-level-filter-menu.element.ts index 78c554931e..ce2d6eee18 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-log-level-filter-menu.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-log-level-filter-menu.element.ts @@ -2,10 +2,11 @@ import { UUICheckboxElement } from '@umbraco-ui/uui'; import { UUITextStyles } from '@umbraco-ui/uui-css'; import { css, html } from 'lit'; import { customElement, queryAll, state } from 'lit/decorators.js'; -import _ from 'lodash'; +import { debounce } from 'lodash-es'; import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context'; import { LogLevelModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { path, query, toQueryString } from '@umbraco-cms/backoffice/router'; @customElement('umb-log-viewer-log-level-filter-menu') export class UmbLogViewerLogLevelFilterMenuElement extends UmbLitElement { @@ -58,16 +59,23 @@ export class UmbLogViewerLogLevelFilterMenuElement extends UmbLitElement { #setLogLevel() { if (!this.#logViewerContext) return; - this.#logViewerContext?.setCurrentPage(1); const logLevels = Array.from(this._logLevelSelectorCheckboxes) .filter((checkbox) => checkbox.checked) .map((checkbox) => checkbox.value as LogLevelModel); - this.#logViewerContext?.setLogLevelsFilter(logLevels); - this.#logViewerContext.getLogs(); + + let q = query(); + + if (logLevels.length) { + q = { ...q, loglevels: logLevels.join(',') }; + } else { + delete q.loglevels; + } + + window.history.pushState({}, '', `${path()}?${toQueryString(q)}`); } - setLogLevelDebounce = _.debounce(this.#setLogLevel, 300); + setLogLevelDebounce = debounce(this.#setLogLevel, 300); #selectAllLogLevels() { this._logLevelSelectorCheckboxes.forEach((checkbox) => (checkbox.checked = true)); @@ -84,9 +92,13 @@ export class UmbLogViewerLogLevelFilterMenuElement extends UmbLitElement {
    ${Object.values(LogLevelModel).map( (logLevel) => - html`` + html` + + ` )} Select allLog Level: + + Log Level: ${this._logLevelFilter.length > 0 ? this._logLevelFilter.map((level) => html`${level}`) : 'All'} diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-message.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-message.element.ts index 6669964aa3..36b885f34e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-message.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-message.element.ts @@ -4,6 +4,7 @@ import { customElement, property, query, state } from 'lit/decorators.js'; import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context'; import { LogLevelModel, LogMessagePropertyPresentationModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { query as getQuery, toQueryString } from '@umbraco-cms/backoffice/router'; //TODO: check how to display EventId field in the message properties @customElement('umb-log-viewer-message') @@ -211,18 +212,23 @@ export class UmbLogViewerMessageElement extends UmbLitElement { private _propertiesWithSearchMenu: Array = ['HttpRequestNumber', 'SourceContext', 'MachineName']; private _findLogsWithProperty({ name, value }: LogMessagePropertyPresentationModel) { - let queryString = ''; + if (!name) return ''; + + let query = getQuery(); + let sanitizedValue = value ?? ''; if (isNaN(+(value ?? ''))) { - queryString = name + "='" + value + "'"; - } else { - queryString = name + '=' + value; + sanitizedValue = "'" + value + "'"; } - this.#logViewerContext?.setFilterExpression(queryString); - this.#logViewerContext?.setCurrentPage(1); - this.details.removeAttribute('open'); - this.#logViewerContext?.getLogs(); + query = { + ...query, + lq: encodeURIComponent(`${name}=${sanitizedValue}`), + }; + + const queryString = toQueryString(query); + + return queryString; } #setOpen(event: Event) { @@ -259,14 +265,12 @@ export class UmbLogViewerMessageElement extends UmbLitElement { ${this._propertiesWithSearchMenu.includes(property.name ?? '') ? html` { - this._findLogsWithProperty(property); - }} look="secondary" label="Find logs with ${property.name}" title="Find logs with ${property.name}" - >` + href=${`section/settings/workspace/logviewer/search/?${this._findLogsWithProperty(property)}`}> + + ` : ''}
    ` diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-messages-list.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-messages-list.element.ts index 896fedc78c..b185f59144 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-messages-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-messages-list.element.ts @@ -11,6 +11,9 @@ export class UmbLogViewerMessagesListElement extends UmbLitElement { static styles = [ UUITextStyles, css` + :host { + display: block; + } #message-list-header { display: flex; font-weight: 600; @@ -129,23 +132,21 @@ export class UmbLogViewerMessagesListElement extends UmbLitElement {
    Machine name
    Message
    - - ${this._logs.length > 0 - ? html` ${this._logs.map( - (log) => html`` - )}` - : html` - Sorry, we cannot find what you are looking for. - `} - + ${this._logs.length > 0 + ? html` ${this._logs.map( + (log) => html`` + )}` + : html` + Sorry, we cannot find what you are looking for. + `} ${this._renderPagination()}
    `; } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-polling-button.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-polling-button.element.ts index 44b19b8cae..f32fa860eb 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-polling-button.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-polling-button.element.ts @@ -90,10 +90,11 @@ export class UmbLogViewerPollingButtonElement extends UmbLitElement { this.#logViewerContext?.togglePolling(); } - #setPolingInterval(interval: PoolingInterval) { + #setPolingInterval = (interval: PoolingInterval) => { this.#logViewerContext?.setPollingInterval(interval); + this.#closePoolingPopover(); - } + }; #openPoolingPopover() { this._pollingPopover.open = true; @@ -103,6 +104,7 @@ export class UmbLogViewerPollingButtonElement extends UmbLitElement { #closePoolingPopover() { this._pollingPopover.open = false; this._polingExpandSymbol.open = false; + this.#togglePolling(); } render() { @@ -111,7 +113,7 @@ export class UmbLogViewerPollingButtonElement extends UmbLitElement { >${this._poolingConfig.enabled ? html`Polling ${this._poolingConfig.interval / 1000} seconds` - : 'Pooling'} (this._polingExpandSymbol.open = false)}> diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-search-input-modal.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-search-input-modal.element.ts new file mode 100644 index 0000000000..7fc279c8eb --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-search-input-modal.element.ts @@ -0,0 +1,73 @@ +import { html, css } from 'lit'; +import { UUITextStyles } from '@umbraco-ui/uui-css/lib'; +import { customElement, query, state } from 'lit/decorators.js'; +import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; +import { SavedLogSearchPresenationBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import { UUIInputElement } from '@umbraco-ui/uui'; + +@customElement('umb-log-viewer-save-search-modal') +export default class UmbLogViewerSaveSearchModalElement extends UmbModalBaseElement< + { query: string }, + SavedLogSearchPresenationBaseModel +> { + static styles = [ + UUITextStyles, + css` + uui-input { + width: 100%; + } + `, + ]; + + @query('uui-input') + private _input!: UUIInputElement; + + private _handleClose() { + this.modalHandler?.reject(); + } + + private _handleSubmit() { + this.modalHandler?.submit({ name: this._input.value as string, query: this.data?.query }); + } + + @state() + private _hasValue = false; + + #validate(event: Event) { + const target = event.target as UUIInputElement; + this._hasValue = (target.value as string).length > 0; + } + + render() { + return html` + + Enter a friendly name for your search query + + Query: + ${this.data?.query} + + + Name: + + + + Close + Save + + `; + } +} + +declare global { + interface HTMLElementTagNameMap { + 'umb-log-viewer-save-search-modal': UmbLogViewerSaveSearchModalElement; + } +} diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-search-input.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-search-input.element.ts index 32ae06990d..f001b327e5 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-search-input.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/components/log-viewer-search-input.element.ts @@ -1,10 +1,31 @@ -import { UUIInputElement, UUIPopoverElement, UUISymbolExpandElement } from '@umbraco-ui/uui'; +import { UUIButtonElement, UUIInputElement, UUIPopoverElement, UUISymbolExpandElement } from '@umbraco-ui/uui'; import { UUITextStyles } from '@umbraco-ui/uui-css'; import { css, html } from 'lit'; import { customElement, query, state } from 'lit/decorators.js'; +import { Subject, debounceTime, tap } from 'rxjs'; import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../../logviewer.context'; import { SavedLogSearchResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import { query as getQuery, path, toQueryString } from '@umbraco-cms/backoffice/router'; +import { + UMB_MODAL_CONTEXT_TOKEN, + UmbModalContext, + UmbModalHandler, + UmbModalToken, +} from '@umbraco-cms/backoffice/modal'; + +import './log-viewer-search-input-modal.element'; +export interface UmbContextSaveSearchModalData { + query: string; +} + +export const UMB_LOG_VIEWER_SAVE_SEARCH_MODAL = new UmbModalToken( + 'Umb.Modal.LogViewer.SaveSearch', + { + type: 'dialog', + size: 'small', + } +); @customElement('umb-log-viewer-search-input') export class UmbLogViewerSearchInputElement extends UmbLitElement { @@ -37,6 +58,13 @@ export class UmbLogViewerSearchInputElement extends UmbLitElement { box-shadow: var(--uui-shadow-depth-1); } + #loader-container { + display: flex; + justify-content: center; + align-items: center; + margin: 0 var(--uui-size-space-4); + } + .saved-search-item { display: flex; justify-content: space-between; @@ -92,15 +120,38 @@ export class UmbLogViewerSearchInputElement extends UmbLitElement { @state() private _inputQuery = ''; + @state() + private _showLoader = false; + + private inputQuery$ = new Subject(); + #logViewerContext?: UmbLogViewerWorkspaceContext; + private _modalContext?: UmbModalContext; + constructor() { super(); this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT_TOKEN, (instance) => { this.#logViewerContext = instance; this.#observeStuff(); + this.#logViewerContext?.getSavedSearches(); this.#logViewerContext.getLogs(); }); + + this.consumeContext(UMB_MODAL_CONTEXT_TOKEN, (instance) => { + this._modalContext = instance; + }); + + this.inputQuery$ + .pipe( + tap(() => (this._showLoader = true)), + debounceTime(250) + ) + .subscribe((query) => { + this.#logViewerContext?.setFilterExpression(query); + this.#persist(query); + this._showLoader = false; + }); } #observeStuff() { @@ -129,36 +180,54 @@ export class UmbLogViewerSearchInputElement extends UmbLitElement { #setQuery(event: Event) { const target = event.target as UUIInputElement; - this._inputQuery = target.value as string; - this.#logViewerContext?.setFilterExpression(this._inputQuery); + this.inputQuery$.next(target.value as string); } #setQueryFromSavedSearch(query: string) { - this._inputQuery = query; - this.#logViewerContext?.setFilterExpression(query); - this.#logViewerContext?.setCurrentPage(1); - - this.#logViewerContext?.getLogs(); + this.inputQuery$.next(query); this._savedSearchesPopover.open = false; } + #persist(filter: string) { + let q = getQuery(); + + q = { + ...q, + lq: filter, + }; + + window.history.pushState({}, '', `${path()}?${toQueryString(q)}`); + } + #clearQuery() { - this._inputQuery = ''; + this.inputQuery$.next(''); this.#logViewerContext?.setFilterExpression(''); this.#logViewerContext?.getLogs(); } - #search() { - this.#logViewerContext?.setCurrentPage(1); + #modalHandler?: UmbModalHandler; - this.#logViewerContext?.getLogs(); + #saveSearch(savedSearch: SavedLogSearchResponseModel) { + this.#logViewerContext?.saveSearch(savedSearch); + } + + #removeSearch(event: Event) { + const target = event.target as UUIButtonElement; + this.#logViewerContext?.removeSearch({ name: target.id }); + } + + #openSaveSearchDialog() { + this.#modalHandler = this._modalContext?.open(UMB_LOG_VIEWER_SAVE_SEARCH_MODAL, { query: this._inputQuery }); + this.#modalHandler?.onSubmit().then((savedSearch) => { + if (savedSearch) { + this.#saveSearch(savedSearch); + } + }); } render() { - return html` + return html` + + ${this._showLoader + ? html`
    + +
    ` + : ''} ${this._inputQuery - ? html` this.#setQueryFromSavedSearch(search.query ?? '')}> ${search.name} ${search.query} ` )}
    - Search`; + `; } } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/log-search-view.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/log-search-view.element.ts index d936195362..79e8f9e216 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/log-search-view.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/logviewer/workspace/views/search/log-search-view.element.ts @@ -3,6 +3,7 @@ import { css, html } from 'lit'; import { customElement, state } from 'lit/decorators.js'; import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../../logviewer.context'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; +import type { UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; @customElement('umb-log-viewer-search-view') export class UmbLogViewerSearchViewElement extends UmbLitElement { @@ -11,6 +12,7 @@ export class UmbLogViewerSearchViewElement extends UmbLitElement { css` #layout { margin: 20px; + padding-bottom: 20px; } #levels-container, #input-container { @@ -44,6 +46,9 @@ export class UmbLogViewerSearchViewElement extends UmbLitElement { private _canShowLogs = false; #logViewerContext?: UmbLogViewerWorkspaceContext; + + #canShowLogsObserver?: UmbObserverController; + constructor() { super(); this.consumeContext(UMB_APP_LOG_VIEWER_CONTEXT_TOKEN, (instance) => { @@ -53,8 +58,10 @@ export class UmbLogViewerSearchViewElement extends UmbLitElement { } #observeCanShowLogs() { + if (this.#canShowLogsObserver) this.#canShowLogsObserver.destroy(); if (!this.#logViewerContext) return; - this.observe(this.#logViewerContext.canShowLogs, (canShowLogs) => { + + this.#canShowLogsObserver = this.observe(this.#logViewerContext.canShowLogs, (canShowLogs) => { this._canShowLogs = canShowLogs ?? false; }); } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/relation-type.repository.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/relation-type.repository.ts index 52249a2896..db6bfe9bcf 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/relation-type.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/relation-type.repository.ts @@ -1,8 +1,8 @@ import { UmbRelationTypeTreeStore, UMB_RELATION_TYPE_TREE_STORE_CONTEXT_TOKEN } from './relation-type.tree.store'; import { UmbRelationTypeServerDataSource } from './sources/relation-type.server.data'; import { UmbRelationTypeStore, UMB_RELATION_TYPE_STORE_CONTEXT_TOKEN } from './relation-type.store'; -import { RelationTypeTreeServerDataSource } from './sources/relation-type.tree.server.data'; -import { RelationTypeTreeDataSource } from './sources'; +import { UmbRelationTypeTreeServerDataSource } from './sources/relation-type.tree.server.data'; +import { UmbRelationTypeTreeDataSource } from './sources'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { @@ -23,7 +23,7 @@ export class UmbRelationTypeRepository #host: UmbControllerHostElement; - #treeSource: RelationTypeTreeDataSource; + #treeSource: UmbRelationTypeTreeDataSource; #treeStore?: UmbRelationTypeTreeStore; #detailDataSource: UmbRelationTypeServerDataSource; @@ -35,7 +35,7 @@ export class UmbRelationTypeRepository this.#host = host; // TODO: figure out how spin up get the correct data source - this.#treeSource = new RelationTypeTreeServerDataSource(this.#host); + this.#treeSource = new UmbRelationTypeTreeServerDataSource(this.#host); this.#detailDataSource = new UmbRelationTypeServerDataSource(this.#host); this.#init = Promise.all([ diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/relation-type.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/relation-type.store.ts index f8ac1dd072..71dac38ee3 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/relation-type.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/relation-type.store.ts @@ -1,6 +1,6 @@ import type { RelationTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { ArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; @@ -13,7 +13,7 @@ export const UMB_RELATION_TYPE_STORE_CONTEXT_TOKEN = new UmbContextToken([], (x) => x.id); + #data = new UmbArrayState([], (x) => x.id); /** * Creates an instance of UmbRelationTypeStore. diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/sources/index.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/sources/index.ts index f8ff932071..7acf297b3e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/sources/index.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/sources/index.ts @@ -1,7 +1,7 @@ import type { DataSourceResponse } from '@umbraco-cms/backoffice/repository'; import { ItemResponseModelBaseModel, PagedEntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; -export interface RelationTypeTreeDataSource { +export interface UmbRelationTypeTreeDataSource { getRootItems(): Promise>; getItems(ids: Array): Promise>; } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/sources/relation-type.tree.server.data.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/sources/relation-type.tree.server.data.ts index 1dc64b51b5..4529c77390 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/sources/relation-type.tree.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/repository/sources/relation-type.tree.server.data.ts @@ -1,4 +1,4 @@ -import { RelationTypeTreeDataSource } from '.'; +import { UmbRelationTypeTreeDataSource } from '.'; import { ProblemDetailsModel, RelationTypeResource } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; @@ -7,10 +7,10 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; /** * A data source for the RelationType tree that fetches data from the server * @export - * @class RelationTypeTreeServerDataSource - * @implements {RelationTypeTreeDataSource} + * @class UmbRelationTypeTreeServerDataSource + * @implements {UmbRelationTypeTreeDataSource} */ -export class RelationTypeTreeServerDataSource implements RelationTypeTreeDataSource { +export class UmbRelationTypeTreeServerDataSource implements UmbRelationTypeTreeDataSource { #host: UmbControllerHostElement; // TODO: how do we handle trashed items? @@ -47,9 +47,9 @@ export class RelationTypeTreeServerDataSource implements RelationTypeTreeDataSou } /** - * Creates an instance of RelationTypeTreeServerDataSource. + * Creates an instance of UmbRelationTypeTreeServerDataSource. * @param {UmbControllerHostElement} host - * @memberof RelationTypeTreeServerDataSource + * @memberof UmbRelationTypeTreeServerDataSource */ constructor(host: UmbControllerHostElement) { this.#host = host; @@ -58,7 +58,7 @@ export class RelationTypeTreeServerDataSource implements RelationTypeTreeDataSou /** * Fetches the root items for the tree from the server * @return {*} - * @memberof RelationTypeTreeServerDataSource + * @memberof UmbRelationTypeTreeServerDataSource */ async getRootItems() { return tryExecuteAndNotify(this.#host, RelationTypeResource.getTreeRelationTypeRoot({})); @@ -68,7 +68,7 @@ export class RelationTypeTreeServerDataSource implements RelationTypeTreeDataSou * Fetches the items for the given ids from the server * @param {Array} ids * @return {*} - * @memberof RelationTypeTreeServerDataSource + * @memberof UmbRelationTypeTreeServerDataSource */ async getItems(ids: Array) { if (ids) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/workspace/relation-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/workspace/relation-type-workspace.context.ts index 81abf8f66f..3c87efd4c2 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/workspace/relation-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/relation-types/workspace/relation-type-workspace.context.ts @@ -3,14 +3,14 @@ import { UmbRelationTypeRepository } from '../repository/relation-type.repositor import { UmbEntityWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; import type { RelationTypeBaseModel, RelationTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; -import { ObjectState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; export class UmbRelationTypeWorkspaceContext extends UmbWorkspaceContext implements UmbEntityWorkspaceContextInterface { - #data = new ObjectState(undefined); + #data = new UmbObjectState(undefined); data = this.#data.asObservable(); name = this.#data.getObservablePart((data) => data?.name); id = this.#data.getObservablePart((data) => data?.id); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/collection/collection.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/collection/collection.context.ts index 9668a51d68..4f2512206c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/collection/collection.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/collection/collection.context.ts @@ -2,7 +2,7 @@ import { Observable } from 'rxjs'; import type { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; import { UmbContextToken, UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import { ArrayState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; import { umbExtensionsRegistry, createExtensionClass } from '@umbraco-cms/backoffice/extensions-api'; import { UmbTreeRepository } from '@umbraco-cms/backoffice/repository'; @@ -17,15 +17,15 @@ export class UmbCollectionContext; - #data = new ArrayState(>[]); + #data = new UmbArrayState(>[]); public readonly data = this.#data.asObservable(); - #selection = new ArrayState(>[]); + #selection = new UmbArrayState(>[]); public readonly selection = this.#selection.asObservable(); /* TODO: - private _search = new StringState(''); + private _search = new UmbStringState(''); public readonly search = this._search.asObservable(); */ diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/backoffice-frame/backoffice.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/backoffice-frame/backoffice.context.ts index 9a5d46fcc1..f7562f6296 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/backoffice-frame/backoffice.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/backoffice-frame/backoffice.context.ts @@ -1,9 +1,9 @@ import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extensions-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { StringState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbStringState } from '@umbraco-cms/backoffice/observable-api'; export class UmbBackofficeContext { - #activeSectionAlias = new StringState(undefined); + #activeSectionAlias = new UmbStringState(undefined); public readonly activeSectionAlias = this.#activeSectionAlias.asObservable(); public getAllowedSections() { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/code-block/code-block.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/code-block/code-block.element.ts index 99833cbcce..11a4372905 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/code-block/code-block.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/code-block/code-block.element.ts @@ -7,8 +7,8 @@ import { customElement } from 'lit/decorators.js'; * @slot the full message * */ -@customElement('uui-code-block') -export class UUICodeBlockElement extends LitElement { +@customElement('umb-code-block') +export class UmbCodeBlockElement extends LitElement { static styles = [ UUITextStyles, css` @@ -54,6 +54,6 @@ export class UUICodeBlockElement extends LitElement { declare global { interface HTMLElementTagNameMap { - 'uui-code-block': UUICodeBlockElement; + 'umb-code-block': UmbCodeBlockElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/code-block/code-block.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/code-block/code-block.stories.ts index f3f2d6ca24..46edd57d43 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/code-block/code-block.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/code-block/code-block.stories.ts @@ -1,15 +1,15 @@ import { Meta, StoryObj } from '@storybook/web-components'; import { html } from 'lit'; import './code-block.element'; -import type { UUICodeBlockElement } from './code-block.element'; +import type { UmbCodeBlockElement } from './code-block.element'; -const meta: Meta = { +const meta: Meta = { title: 'Components/Code Block', - component: 'uui-code-block', + component: 'umb-code-block', }; export default meta; -type Story = StoryObj; +type Story = StoryObj; export const Overview: Story = { args: {}, @@ -17,5 +17,5 @@ export const Overview: Story = { export const WithCode: Story = { decorators: [], - render: () => html` // Lets write some javascript alert("Hello World"); `, + render: () => html` // Lets write some javascript alert("Hello World"); `, }; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/code-editor/code-editor.stories.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/code-editor/code-editor.stories.ts index e8d7805abe..d98d5faf77 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/code-editor/code-editor.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/code-editor/code-editor.stories.ts @@ -111,12 +111,12 @@ const codeSnippets: Record = { "Smartypants, double quotes" and 'single quotes'`, typescript: `import { UmbTemplateRepository } from '../repository/template.repository'; import { UmbWorkspaceContext } from '../../../shared/components/workspace/workspace-context/workspace-context'; - import { createObservablePart, DeepState } from '@umbraco-cms/observable-api'; + import { createObservablePart, UmbDeepState } from '@umbraco-cms/observable-api'; import { TemplateModel } from '@umbraco-cms/backend-api'; import { UmbControllerHostElement } from '@umbraco-cms/controller'; export class UmbTemplateWorkspaceContext extends UmbWorkspaceContext { - #data = new DeepState(undefined); + #data = new UmbDeepState(undefined); data = this.#data.asObservable(); name = createObservablePart(this.#data, (data) => data?.name); content = createObservablePart(this.#data, (data) => data?.content); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/debug.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/debug.element.ts index 33f35f8f52..c0161b597c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/debug.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/debug/debug.element.ts @@ -180,10 +180,17 @@ export class UmbDebugElement extends UmbLitElement { const props: TemplateResult[] = []; instance.properties?.forEach((property) => { - if (property.type === 'string') { - props.push(html`
  • ${property.key} = ${property.value}
  • `); - } else { - props.push(html`
  • ${property.key} (${property.type})
  • `); + switch(property.type){ + case 'string': + case 'number': + case 'boolean': + case 'object': + props.push(html`
  • ${property.key} (${property.type}) = ${property.value}
  • `); + break; + + default: + props.push(html`
  • ${property.key} (${property.type})
  • `); + break; } }); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/donut-chart/donut-chart.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/donut-chart/donut-chart.element.ts index fb3a7bfcd4..2f3f7892da 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/donut-chart/donut-chart.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/donut-chart/donut-chart.element.ts @@ -9,6 +9,7 @@ export interface Circle { name: string; percent: number; kind: string; + number: number; } interface CircleWithCommands extends Circle { @@ -195,6 +196,7 @@ export class UmbDonutChartElement extends LitElement { this._slices.map((slice) => { return { percent: this.#calculatePercentage(slice.amount), + number: slice.amount, color: slice.color, name: slice.name, kind: slice.kind, @@ -249,7 +251,7 @@ export class UmbDonutChartElement extends LitElement { const index = target.dataset.index as unknown as number; const circle = this.circles[index]; this._detailName = circle.name; - this._detailAmount = circle.percent; + this._detailAmount = circle.number; this._detailColor = circle.color; this._detailKind = circle.kind; } diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/extension-slot/extension-slot.test.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/extension-slot/extension-slot.test.ts index a61451b20b..3fba5e41f1 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/extension-slot/extension-slot.test.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/extension-slot/extension-slot.test.ts @@ -3,10 +3,9 @@ import { expect, fixture, html } from '@open-wc/testing'; import { InitializedExtension, UmbExtensionSlotElement } from './extension-slot.element'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extensions-api'; import { ManifestDashboard } from '@umbraco-cms/backoffice/extensions-registry'; -import { defaultA11yConfig } from '@umbraco-cms/internal/test-utils'; -@customElement('test-extension-slot-manifest-element') -class MyExtensionSlotManifestElement extends HTMLElement {} +@customElement('umb-test-extension-slot-manifest-element') +class UmbTestExtensionSlotManifestElement extends HTMLElement {} function sleep(ms: number) { return new Promise((resolve) => setTimeout(resolve, ms)); @@ -52,7 +51,7 @@ describe('UmbExtensionSlotElement', () => { type: 'dashboard', alias: 'unit-test-ext-slot-element-manifest', name: 'unit-test-extension', - elementName: 'test-extension-slot-manifest-element', + elementName: 'umb-test-extension-slot-manifest-element', meta: { pathname: 'test/test', }, @@ -75,7 +74,7 @@ describe('UmbExtensionSlotElement', () => { await sleep(0); - expect(element.shadowRoot!.firstElementChild).to.be.instanceOf(MyExtensionSlotManifestElement); + expect(element.shadowRoot!.firstElementChild).to.be.instanceOf(UmbTestExtensionSlotManifestElement); }); it('use the render method', async () => { @@ -90,7 +89,9 @@ describe('UmbExtensionSlotElement', () => { await sleep(0); expect(element.shadowRoot!.firstElementChild?.nodeName).to.be.equal('BLA'); - expect(element.shadowRoot!.firstElementChild?.firstElementChild).to.be.instanceOf(MyExtensionSlotManifestElement); + expect(element.shadowRoot!.firstElementChild?.firstElementChild).to.be.instanceOf( + UmbTestExtensionSlotManifestElement + ); }); }); }); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section-sidebar/section-sidebar.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section-sidebar/section-sidebar.context.ts index c3a4264b2a..8185a4f502 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section-sidebar/section-sidebar.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section-sidebar/section-sidebar.context.ts @@ -1,19 +1,19 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; -import { StringState, BooleanState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbStringState, UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; export class UmbSectionSidebarContext { #host: UmbControllerHostElement; - #contextMenuIsOpen = new BooleanState(false); + #contextMenuIsOpen = new UmbBooleanState(false); contextMenuIsOpen = this.#contextMenuIsOpen.asObservable(); - #entityType = new StringState(undefined); + #entityType = new UmbStringState(undefined); entityType = this.#entityType.asObservable(); - #unique = new StringState(undefined); + #unique = new UmbStringState(undefined); unique = this.#unique.asObservable(); - #headline = new StringState(undefined); + #headline = new UmbStringState(undefined); headline = this.#headline.asObservable(); constructor(host: UmbControllerHostElement) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section.context.ts index 2f90f58eca..628062ceb0 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/section/section.context.ts @@ -1,14 +1,14 @@ import type { ManifestSection } from '@umbraco-cms/backoffice/extensions-registry'; import type { Entity } from '@umbraco-cms/backoffice/models'; -import { ObjectState, StringState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbObjectState, UmbStringState } from '@umbraco-cms/backoffice/observable-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; export type ActiveTreeItemType = Entity | undefined; export class UmbSectionContext { - #manifestAlias = new StringState(undefined); - #manifestPathname = new StringState(undefined); - #manifestLabel = new StringState(undefined); + #manifestAlias = new UmbStringState(undefined); + #manifestPathname = new UmbStringState(undefined); + #manifestLabel = new UmbStringState(undefined); public readonly alias = this.#manifestAlias.asObservable(); public readonly pathname = this.#manifestPathname.asObservable(); public readonly label = this.#manifestLabel.asObservable(); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/context-menu/tree-context-menu-page.service.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/context-menu/tree-context-menu-page.service.ts index d82eb782bf..584b77456a 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/context-menu/tree-context-menu-page.service.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/context-menu/tree-context-menu-page.service.ts @@ -2,7 +2,7 @@ import { UUITextStyles } from '@umbraco-ui/uui-css'; import { css, nothing, PropertyValueMap } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { DeepState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbDeepState } from '@umbraco-cms/backoffice/observable-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; // TODO: Refactor this, its not a service and the data should be handled by a context api. @@ -13,7 +13,7 @@ export class UmbTreeContextMenuPageServiceElement extends UmbLitElement { @property({ type: Object }) public actionEntity: any = { key: '', name: '' }; - #entity = new DeepState({ key: '', name: '' } as any); + #entity = new UmbDeepState({ key: '', name: '' } as any); public readonly entity = this.#entity.asObservable(); @state() diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree-item-base/tree-item-base.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree-item-base/tree-item-base.context.ts index 0465630182..9c81962047 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree-item-base/tree-item-base.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree-item-base/tree-item-base.context.ts @@ -7,7 +7,12 @@ import { UmbSectionContext, UMB_SECTION_CONTEXT_TOKEN } from '../../section/sect import { UmbTreeContextBase } from '../tree.context'; import { UmbTreeItemContext } from '../tree-item.context.interface'; import { ManifestEntityAction } from '@umbraco-cms/backoffice/extensions-registry'; -import { BooleanState, DeepState, StringState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; +import { + UmbBooleanState, + UmbDeepState, + UmbStringState, + UmbObserverController, +} from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; import { UmbContextConsumerController, @@ -27,28 +32,28 @@ export class UmbTreeItemContextBase(undefined); + #treeItem = new UmbDeepState(undefined); treeItem = this.#treeItem.asObservable(); - #hasChildren = new BooleanState(false); + #hasChildren = new UmbBooleanState(false); hasChildren = this.#hasChildren.asObservable(); - #isLoading = new BooleanState(false); + #isLoading = new UmbBooleanState(false); isLoading = this.#isLoading.asObservable(); - #isSelectable = new BooleanState(false); + #isSelectable = new UmbBooleanState(false); isSelectable = this.#isSelectable.asObservable(); - #isSelected = new BooleanState(false); + #isSelected = new UmbBooleanState(false); isSelected = this.#isSelected.asObservable(); - #isActive = new BooleanState(false); + #isActive = new UmbBooleanState(false); isActive = this.#isActive.asObservable(); - #hasActions = new BooleanState(false); + #hasActions = new UmbBooleanState(false); hasActions = this.#hasActions.asObservable(); - #path = new StringState(''); + #path = new UmbStringState(''); path = this.#path.asObservable(); treeContext?: UmbTreeContextBase; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree.context.ts index 89020e9acd..cab623e4f8 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/tree/tree.context.ts @@ -1,7 +1,7 @@ import type { Observable } from 'rxjs'; import { UmbTreeRepository } from '@umbraco-cms/backoffice/repository'; import type { ManifestTree } from '@umbraco-cms/backoffice/extensions-registry'; -import { DeepState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; +import { UmbDeepState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; import { createExtensionClass, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extensions-api'; @@ -18,10 +18,10 @@ export class UmbTreeContextBase implements UmbTreeContext { host: UmbControllerHostElement; public tree: ManifestTree; - #selectable = new DeepState(false); + #selectable = new UmbDeepState(false); public readonly selectable = this.#selectable.asObservable(); - #selection = new DeepState(>[]); + #selection = new UmbDeepState(>[]); public readonly selection = this.#selection.asObservable(); repository?: UmbTreeRepository; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace-property/workspace-property.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace-property/workspace-property.context.ts index e069c2a5b5..5cad4cae04 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace-property/workspace-property.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace-property/workspace-property.context.ts @@ -3,7 +3,12 @@ import { UmbWorkspaceVariableEntityContextInterface } from '../workspace/workspa import { UMB_WORKSPACE_VARIANT_CONTEXT_TOKEN } from '../workspace/workspace-variant/workspace-variant.context'; import type { DataTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; -import { ClassState, ObjectState, StringState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; +import { + UmbClassState, + UmbObjectState, + UmbStringState, + UmbObserverController, +} from '@umbraco-cms/backoffice/observable-api'; import { UmbContextConsumerController, UmbContextProviderController, @@ -25,7 +30,7 @@ export class UmbWorkspacePropertyContext { private _providerController: UmbContextProviderController; - private _data = new ObjectState>({}); + private _data = new UmbObjectState>({}); public readonly alias = this._data.getObservablePart((data) => data.alias); public readonly label = this._data.getObservablePart((data) => data.label); @@ -35,10 +40,10 @@ export class UmbWorkspacePropertyContext { #workspaceVariantId?: UmbVariantId; - #variantId = new ClassState(undefined); + #variantId = new UmbClassState(undefined); public readonly variantId = this.#variantId.asObservable(); - private _variantDifference = new StringState(undefined); + private _variantDifference = new UmbStringState(undefined); public readonly variantDifference = this._variantDifference.asObservable(); private _workspaceContext?: UmbWorkspaceVariableEntityContextInterface; @@ -88,7 +93,7 @@ export class UmbWorkspacePropertyContext { this._data.update({ description }); } public setValue(value: WorkspacePropertyData['value']) { - // Note: Do not try to compare new / old value, as it can of any type. We trust the ObjectState in doing such. + // Note: Do not try to compare new / old value, as it can of any type. We trust the UmbObjectState in doing such. this._data.update({ value }); } public changeValue(value: WorkspacePropertyData['value']) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-context/entity-manager-controller.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-context/entity-manager-controller.ts index 9704ce80c2..9eb0f5400c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-context/entity-manager-controller.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-context/entity-manager-controller.ts @@ -6,7 +6,7 @@ import { UmbNotificationContext, UMB_NOTIFICATION_CONTEXT_TOKEN, } from '@umbraco-cms/backoffice/notification'; -import { ObjectState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; +import { UmbObjectState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; import type { EntityTreeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbEntityDetailStore } from '@umbraco-cms/backoffice/store'; @@ -18,7 +18,7 @@ export class UmbEntityWorkspaceManager< > { private _host; - state = new ObjectState(undefined); + state = new UmbObjectState(undefined); protected _storeSubscription?: UmbObserverController; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-context/workspace-container-structure-helper.class.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-context/workspace-container-structure-helper.class.ts index 25b756dfbf..ffaf4f118e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-context/workspace-container-structure-helper.class.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-context/workspace-container-structure-helper.class.ts @@ -3,7 +3,7 @@ import { PropertyContainerTypes } from './workspace-structure-manager.class'; import { PropertyTypeContainerResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; import { UmbContextConsumerController, UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; -import { ArrayState, BooleanState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState, UmbBooleanState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; export class UmbWorkspaceContainerStructureHelper { #host: UmbControllerHostElement; @@ -20,10 +20,10 @@ export class UmbWorkspaceContainerStructureHelper { private _ownerContainers: PropertyTypeContainerResponseModelBaseModel[] = []; // State containing the merged containers (only one pr. name): - #containers = new ArrayState([], (x) => x.id); + #containers = new UmbArrayState([], (x) => x.id); readonly containers = this.#containers.asObservable(); - #hasProperties = new BooleanState(false); + #hasProperties = new UmbBooleanState(false); readonly hasProperties = this.#hasProperties.asObservable(); constructor(host: UmbControllerHostElement) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-context/workspace-context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-context/workspace-context.ts index 796b258bd3..05d6a77a39 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-context/workspace-context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-context/workspace-context.ts @@ -1,7 +1,7 @@ import { UmbEntityWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; import { UmbContextProviderController, UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; -import { BooleanState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api'; import type { BaseEntity } from '@umbraco-cms/backoffice/models'; /* @@ -15,7 +15,7 @@ export abstract class UmbWorkspaceContext public host: UmbControllerHostElement; public repository: T; - #isNew = new BooleanState(undefined); + #isNew = new UmbBooleanState(undefined); isNew = this.#isNew.asObservable(); constructor(host: UmbControllerHostElement, repository: T) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-context/workspace-property-structure-helper.class.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-context/workspace-property-structure-helper.class.ts index 6941cd3daa..00bd8fb9db 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-context/workspace-property-structure-helper.class.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-context/workspace-property-structure-helper.class.ts @@ -3,7 +3,7 @@ import { PropertyContainerTypes } from './workspace-structure-manager.class'; import { DocumentTypePropertyTypeResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; import { UmbContextConsumerController, UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/context-api'; -import { ArrayState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; export class UmbWorkspacePropertyStructureHelper { #host: UmbControllerHostElement; @@ -14,7 +14,7 @@ export class UmbWorkspacePropertyStructureHelper { private _isRoot?: boolean; private _containerName?: string; - #propertyStructure = new ArrayState([], (x) => x.id); + #propertyStructure = new UmbArrayState([], (x) => x.id); readonly propertyStructure = this.#propertyStructure.asObservable(); constructor(host: UmbControllerHostElement) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-context/workspace-split-view-manager.class.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-context/workspace-split-view-manager.class.ts index 3c238c96b0..b300be5ebf 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-context/workspace-split-view-manager.class.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-context/workspace-split-view-manager.class.ts @@ -1,6 +1,6 @@ import { UmbVariantId } from '../../../variants/variant-id.class'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; -import { ArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; export type ActiveVariant = { index: number; @@ -16,7 +16,7 @@ export type ActiveVariant = { export class UmbWorkspaceSplitViewManager { #host: UmbControllerHostElement; - #activeVariantsInfo = new ArrayState([], (x) => x.index); + #activeVariantsInfo = new UmbArrayState([], (x) => x.index); public readonly activeVariantsInfo = this.#activeVariantsInfo.asObservable(); constructor(host: UmbControllerHostElement) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-context/workspace-structure-manager.class.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-context/workspace-structure-manager.class.ts index 8a7b24dc23..a5b15b4b1d 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-context/workspace-structure-manager.class.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-context/workspace-structure-manager.class.ts @@ -9,7 +9,7 @@ import { } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHostElement, UmbControllerInterface } from '@umbraco-cms/backoffice/controller'; import { - ArrayState, + UmbArrayState, UmbObserverController, MappingFunction, partialUpdateFrozenArray, @@ -29,13 +29,13 @@ export class UmbWorkspacePropertyStructureManager(); - #documentTypes = new ArrayState([], (x) => x.id); + #documentTypes = new UmbArrayState([], (x) => x.id); readonly documentTypes = this.#documentTypes.asObservable(); private readonly _documentTypeContainers = this.#documentTypes.getObservablePart((x) => x.flatMap((x) => x.containers ?? []) ); - #containers = new ArrayState([], (x) => x.id); + #containers = new UmbArrayState([], (x) => x.id); constructor(host: UmbControllerHostElement, typeRepository: R) { this.#host = host; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-variant/workspace-variant.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-variant/workspace-variant.context.ts index 0f621391b5..4364c6d3b8 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-variant/workspace-variant.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/workspace/workspace-variant/workspace-variant.context.ts @@ -9,7 +9,12 @@ import { UMB_ENTITY_WORKSPACE_CONTEXT, } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; -import { ClassState, NumberState, ObjectState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; +import { + UmbClassState, + UmbNumberState, + UmbObjectState, + UmbObserverController, +} from '@umbraco-cms/backoffice/observable-api'; import { DocumentVariantResponseModel } from '@umbraco-cms/backoffice/backend-api'; //type EntityType = DocumentModel; @@ -22,17 +27,17 @@ export class UmbWorkspaceVariantContext { return this.#workspaceContext; } - #index = new NumberState(undefined); + #index = new UmbNumberState(undefined); index = this.#index.asObservable(); - #currentVariant = new ObjectState(undefined); + #currentVariant = new UmbObjectState(undefined); currentVariant = this.#currentVariant.asObservable(); name = this.#currentVariant.getObservablePart((x) => x?.name); culture = this.#currentVariant.getObservablePart((x) => x?.culture); segment = this.#currentVariant.getObservablePart((x) => x?.segment); - #variantId = new ClassState(undefined); + #variantId = new UmbClassState(undefined); variantId = this.#variantId.asObservable(); private _currentVariantObserver?: UmbObserverController; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-actions/shared/property-action-menu/property-action-menu.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-actions/shared/property-action-menu/property-action-menu.context.ts index 3a8205847f..ef67ddc26c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-actions/shared/property-action-menu/property-action-menu.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/property-actions/shared/property-action-menu/property-action-menu.context.ts @@ -1,9 +1,9 @@ import { UmbContextProviderController } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; -import { DeepState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbDeepState } from '@umbraco-cms/backoffice/observable-api'; export class UmbPropertyActionMenuContext { - #isOpen = new DeepState(false); + #isOpen = new UmbDeepState(false); public readonly isOpen = this.#isOpen.asObservable(); constructor(host: UmbControllerHostElement) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/templating/stylesheets/workspace/stylesheet-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/templating/stylesheets/workspace/stylesheet-workspace.context.ts index a973a00a4b..e92b3f643f 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/templating/stylesheets/workspace/stylesheet-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/templating/stylesheets/workspace/stylesheet-workspace.context.ts @@ -2,10 +2,10 @@ import { UmbWorkspaceContext } from '../../../shared/components/workspace/worksp import { UmbStylesheetRepository } from '../repository/stylesheet.repository'; import { StylesheetDetails } from '..'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; -import { ObjectState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; export class UmbStylesheetWorkspaceContext extends UmbWorkspaceContext { - #data = new ObjectState(undefined); + #data = new UmbObjectState(undefined); data = this.#data.asObservable(); constructor(host: UmbControllerHostElement) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/templating/templates/repository/sources/template.tree.server.data.ts b/src/Umbraco.Web.UI.Client/src/backoffice/templating/templates/repository/sources/template.tree.server.data.ts index ed7be4b8d9..ee94417b50 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/templating/templates/repository/sources/template.tree.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/templating/templates/repository/sources/template.tree.server.data.ts @@ -6,16 +6,16 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; /** * A data source for the Template tree that fetches data from the server * @export - * @class TemplateTreeServerDataSource + * @class UmbTemplateTreeServerDataSource * @implements {TemplateTreeDataSource} */ -export class TemplateTreeServerDataSource implements TemplateTreeDataSource { +export class UmbTemplateTreeServerDataSource implements TemplateTreeDataSource { #host: UmbControllerHostElement; /** - * Creates an instance of TemplateTreeServerDataSource. + * Creates an instance of UmbTemplateTreeServerDataSource. * @param {UmbControllerHostElement} host - * @memberof TemplateTreeServerDataSource + * @memberof UmbTemplateTreeServerDataSource */ constructor(host: UmbControllerHostElement) { this.#host = host; @@ -24,7 +24,7 @@ export class TemplateTreeServerDataSource implements TemplateTreeDataSource { /** * Fetches the root items for the tree from the server * @return {*} - * @memberof TemplateTreeServerDataSource + * @memberof UmbTemplateTreeServerDataSource */ async getRootItems() { return tryExecuteAndNotify(this.#host, TemplateResource.getTreeTemplateRoot({})); @@ -34,7 +34,7 @@ export class TemplateTreeServerDataSource implements TemplateTreeDataSource { * Fetches the children of a given parent id from the server * @param {(string | null)} parentId * @return {*} - * @memberof TemplateTreeServerDataSource + * @memberof UmbTemplateTreeServerDataSource */ async getChildrenOf(parentId: string | null) { if (!parentId) { @@ -54,7 +54,7 @@ export class TemplateTreeServerDataSource implements TemplateTreeDataSource { * Fetches the items for the given ids from the server * @param {Array} id * @return {*} - * @memberof TemplateTreeServerDataSource + * @memberof UmbTemplateTreeServerDataSource */ async getItems(ids: Array) { if (!ids) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/templating/templates/repository/template.repository.ts b/src/Umbraco.Web.UI.Client/src/backoffice/templating/templates/repository/template.repository.ts index 0ec0c4baa7..2903994109 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/templating/templates/repository/template.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/templating/templates/repository/template.repository.ts @@ -1,5 +1,5 @@ import { UmbTemplateDetailServerDataSource } from './sources/template.detail.server.data'; -import { TemplateTreeServerDataSource } from './sources/template.tree.server.data'; +import { UmbTemplateTreeServerDataSource } from './sources/template.tree.server.data'; import { UmbTemplateStore, UMB_TEMPLATE_STORE_CONTEXT_TOKEN } from './template.store'; import { UmbTemplateTreeStore, UMB_TEMPLATE_TREE_STORE_CONTEXT_TOKEN } from './template.tree.store'; import type { UmbDetailRepository, UmbTreeRepository } from '@umbraco-cms/backoffice/repository'; @@ -21,7 +21,7 @@ export class UmbTemplateRepository #init; #host: UmbControllerHostElement; - #treeDataSource: TemplateTreeServerDataSource; + #treeDataSource: UmbTemplateTreeServerDataSource; #detailDataSource: UmbTemplateDetailServerDataSource; #treeStore?: UmbTemplateTreeStore; @@ -33,7 +33,7 @@ export class UmbTemplateRepository this.#host = host; // TODO: figure out how spin up get the correct data source - this.#treeDataSource = new TemplateTreeServerDataSource(this.#host); + this.#treeDataSource = new UmbTemplateTreeServerDataSource(this.#host); this.#detailDataSource = new UmbTemplateDetailServerDataSource(this.#host); this.#init = Promise.all([ diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/templating/templates/repository/template.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/templating/templates/repository/template.store.ts index edebf64d61..4ef41040e2 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/templating/templates/repository/template.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/templating/templates/repository/template.store.ts @@ -1,5 +1,5 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { ArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import type { TemplateResponseModel } from '@umbraco-cms/backoffice/backend-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; @@ -11,7 +11,7 @@ import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controlle * @description - Data Store for Templates */ export class UmbTemplateStore extends UmbStoreBase { - #data = new ArrayState([], (x) => x.id); + #data = new UmbArrayState([], (x) => x.id); /** * Creates an instance of UmbTemplateStore. diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/templating/templates/workspace/template-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/templating/templates/workspace/template-workspace.context.ts index d4f7541846..89983e09f5 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/templating/templates/workspace/template-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/templating/templates/workspace/template-workspace.context.ts @@ -1,11 +1,11 @@ import { UmbTemplateRepository } from '../repository/template.repository'; import { UmbWorkspaceContext } from '../../../shared/components/workspace/workspace-context/workspace-context'; -import { createObservablePart, DeepState } from '@umbraco-cms/backoffice/observable-api'; +import { createObservablePart, UmbDeepState } from '@umbraco-cms/backoffice/observable-api'; import { TemplateResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; export class UmbTemplateWorkspaceContext extends UmbWorkspaceContext { - #data = new DeepState(undefined); + #data = new UmbDeepState(undefined); data = this.#data.asObservable(); name = createObservablePart(this.#data, (data) => data?.name); content = createObservablePart(this.#data, (data) => data?.content); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/themes/theme.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/themes/theme.context.ts index 959c8f19ef..1d3829bf8a 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/themes/theme.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/themes/theme.context.ts @@ -1,7 +1,7 @@ import { map } from 'rxjs'; import { manifests } from './manifests'; import { UmbContextProviderController, UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { StringState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; +import { UmbStringState, UmbObserverController } from '@umbraco-cms/backoffice/observable-api'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extensions-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; import { ManifestTheme } from '@umbraco-cms/backoffice/extensions-registry'; @@ -11,7 +11,7 @@ const LOCAL_STORAGE_KEY = 'umb-theme-alias'; export class UmbThemeContext { private _host: UmbControllerHostElement; - #theme = new StringState('umb-light-theme'); + #theme = new UmbStringState('umb-light-theme'); public readonly theme = this.#theme.asObservable(); private themeSubscription?: UmbObserverController; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/repository/dictionary.repository.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/repository/dictionary.repository.ts index 0ce6e7db0f..d805833fe8 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/repository/dictionary.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/repository/dictionary.repository.ts @@ -1,7 +1,7 @@ import { UmbDictionaryStore, UMB_DICTIONARY_STORE_CONTEXT_TOKEN } from './dictionary.store'; import { UmbDictionaryDetailServerDataSource } from './sources/dictionary.detail.server.data'; import { UmbDictionaryTreeStore, UMB_DICTIONARY_TREE_STORE_CONTEXT_TOKEN } from './dictionary.tree.store'; -import { DictionaryTreeServerDataSource } from './sources/dictionary.tree.server.data'; +import { UmbDictionaryTreeServerDataSource } from './sources/dictionary.tree.server.data'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; import { UmbTreeDataSource, UmbDetailRepository, UmbTreeRepository } from '@umbraco-cms/backoffice/repository'; @@ -39,7 +39,7 @@ export class UmbDictionaryRepository this.#host = host; // TODO: figure out how spin up get the correct data source - this.#treeSource = new DictionaryTreeServerDataSource(this.#host); + this.#treeSource = new UmbDictionaryTreeServerDataSource(this.#host); this.#detailSource = new UmbDictionaryDetailServerDataSource(this.#host); this.#init = Promise.all([ diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/repository/dictionary.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/repository/dictionary.store.ts index c4b62e7c82..8090202a0d 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/repository/dictionary.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/repository/dictionary.store.ts @@ -1,7 +1,7 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; -import { ArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { DictionaryItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; /** @@ -11,7 +11,7 @@ import { DictionaryItemResponseModel } from '@umbraco-cms/backoffice/backend-api * @description - Data Store for Dictionary */ export class UmbDictionaryStore extends UmbStoreBase { - #data = new ArrayState([], (x) => x.id); + #data = new UmbArrayState([], (x) => x.id); constructor(host: UmbControllerHostElement) { super(host, UMB_DICTIONARY_STORE_CONTEXT_TOKEN.toString()); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/repository/sources/dictionary.tree.server.data.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/repository/sources/dictionary.tree.server.data.ts index a24572eb9f..e9d5ab9a40 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/repository/sources/dictionary.tree.server.data.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/repository/sources/dictionary.tree.server.data.ts @@ -6,10 +6,10 @@ import { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources'; /** * A data source for the Dictionary tree that fetches data from the server * @export - * @class DictionaryTreeServerDataSource + * @class UmbDictionaryTreeServerDataSource * @implements {DictionaryTreeDataSource} */ -export class DictionaryTreeServerDataSource implements UmbTreeDataSource { +export class UmbDictionaryTreeServerDataSource implements UmbTreeDataSource { #host: UmbControllerHostElement; /** @@ -24,7 +24,7 @@ export class DictionaryTreeServerDataSource implements UmbTreeDataSource { /** * Fetches the root items for the tree from the server * @return {*} - * @memberof DictionaryTreeServerDataSource + * @memberof UmbDictionaryTreeServerDataSource */ async getRootItems() { return tryExecuteAndNotify(this.#host, DictionaryResource.getTreeDictionaryRoot({})); @@ -34,7 +34,7 @@ export class DictionaryTreeServerDataSource implements UmbTreeDataSource { * Fetches the children of a given parent id from the server * @param {(string | null)} parentId * @return {*} - * @memberof DictionaryTreeServerDataSource + * @memberof UmbDictionaryTreeServerDataSource */ async getChildrenOf(parentId: string | null) { if (!parentId) { @@ -54,7 +54,7 @@ export class DictionaryTreeServerDataSource implements UmbTreeDataSource { * Fetches the items for the given ids from the server * @param {Array} ids * @return {*} - * @memberof DictionaryTreeServerDataSource + * @memberof UmbDictionaryTreeServerDataSource */ async getItems(ids: Array) { if (!ids || ids.length === 0) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/workspace/dictionary-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/workspace/dictionary-workspace.context.ts index 2d2eb3039d..3a1115d880 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/workspace/dictionary-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/translation/dictionary/workspace/dictionary-workspace.context.ts @@ -2,14 +2,14 @@ import { UmbDictionaryRepository } from '../repository/dictionary.repository'; import { UmbWorkspaceContext } from '../../../../backoffice/shared/components/workspace/workspace-context/workspace-context'; import { UmbEntityWorkspaceContextInterface } from '@umbraco-cms/backoffice/workspace'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; -import { ObjectState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import { DictionaryItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; export class UmbDictionaryWorkspaceContext extends UmbWorkspaceContext implements UmbEntityWorkspaceContextInterface { - #data = new ObjectState(undefined); + #data = new UmbObjectState(undefined); data = this.#data.asObservable(); name = this.#data.getObservablePart((data) => data?.name); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/current-user-history.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/current-user-history.store.ts index 2a5df8b61f..888278353b 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/current-user-history.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/current-user-history.store.ts @@ -1,5 +1,5 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { DeepState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbDeepState } from '@umbraco-cms/backoffice/observable-api'; export type UmbModelType = 'dialog' | 'sidebar'; @@ -10,7 +10,7 @@ export type UmbCurrentUserHistoryItem = { }; export class UmbCurrentUserHistoryStore { - #history = new DeepState(>[]); + #history = new UmbDeepState(>[]); public readonly history = this.#history.asObservable(); public readonly latestHistory = this.#history.getObservablePart((historyItems) => historyItems.slice(-10)); diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/current-user.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/current-user.store.ts index 70556528f1..cf4823147e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/current-user.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/current-user/current-user.store.ts @@ -2,13 +2,13 @@ import { umbUsersData } from '../../../core/mocks/data/users.data'; import { umbracoPath } from '@umbraco-cms/backoffice/utils'; import type { UserDetails } from '@umbraco-cms/backoffice/models'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { ObjectState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; export const UMB_CURRENT_USER_STORE_CONTEXT_TOKEN = new UmbContextToken('UmbCurrentUserStore'); export class UmbCurrentUserStore { //TODO: Temp solution to get a current user. Replace when we have a real user service - private _currentUser = new ObjectState(umbUsersData.getAll()[0]); + private _currentUser = new UmbObjectState(umbUsersData.getAll()[0]); public readonly currentUser = this._currentUser.asObservable(); /** diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/repository/user-group.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/repository/user-group.store.ts index 64197bb05b..87961ea266 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/repository/user-group.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/repository/user-group.store.ts @@ -1,7 +1,7 @@ import type { UserGroupDetails } from '@umbraco-cms/backoffice/models'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; -import { ArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; import { UmbEntityDetailStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; // TODO: get rid of this type addition & { ... }: @@ -16,7 +16,7 @@ export const UMB_USER_GROUP_STORE_CONTEXT_TOKEN = new UmbContextToken { - #groups = new ArrayState([], (x) => x.id); + #groups = new UmbArrayState([], (x) => x.id); public groups = this.#groups.asObservable(); constructor(host: UmbControllerHostElement) { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/section-view-users.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/section-view-users.element.ts index 2cebe636ce..64f9e96e23 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/section-view-users.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-section/views/users/section-view-users.element.ts @@ -11,7 +11,7 @@ import './workspace-view-users-selection.element'; import type { UserDetails } from '@umbraco-cms/backoffice/models'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -import { DeepState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbDeepState } from '@umbraco-cms/backoffice/observable-api'; import type { ManifestWorkspace } from '@umbraco-cms/backoffice/extensions-registry'; @customElement('umb-section-view-users') @@ -37,13 +37,13 @@ export class UmbSectionViewUsersElement extends UmbLitElement { // TODO: This must be turned into context api: Maybe its a Collection View (SectionView Collection View)? private _userStore?: UmbUserStore; - #selection = new DeepState(>[]); + #selection = new UmbDeepState(>[]); public readonly selection = this.#selection.asObservable(); - #users = new DeepState(>[]); + #users = new UmbDeepState(>[]); public readonly users = this.#users.asObservable(); - #search = new DeepState(''); + #search = new UmbDeepState(''); public readonly search = this.#search.asObservable(); constructor() { diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/repository/user.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/repository/user.store.ts index a52581484d..c074c2f3cb 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/users/repository/user.store.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/users/repository/user.store.ts @@ -1,5 +1,5 @@ import type { UserDetails } from '@umbraco-cms/backoffice/models'; -import { ArrayState, NumberState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbArrayState, UmbNumberState } from '@umbraco-cms/backoffice/observable-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbEntityDetailStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; @@ -15,10 +15,10 @@ export const UMB_USER_STORE_CONTEXT_TOKEN = new UmbContextToken('U * @description - Data Store for Users */ export class UmbUserStore extends UmbStoreBase implements UmbEntityDetailStore { - #users = new ArrayState([], (x) => x.id); + #users = new UmbArrayState([], (x) => x.id); public users = this.#users.asObservable(); - #totalUsers = new NumberState(0); + #totalUsers = new UmbNumberState(0); public readonly totalUsers = this.#totalUsers.asObservable(); constructor(host: UmbControllerHostElement) { diff --git a/src/Umbraco.Web.UI.Client/src/core/context-provider/context-provider.element.test.ts b/src/Umbraco.Web.UI.Client/src/core/context-provider/context-provider.element.test.ts index d64bd405c4..6ea4d15838 100644 --- a/src/Umbraco.Web.UI.Client/src/core/context-provider/context-provider.element.test.ts +++ b/src/Umbraco.Web.UI.Client/src/core/context-provider/context-provider.element.test.ts @@ -4,7 +4,7 @@ import { UmbContextProviderElement } from './context-provider.element'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; @customElement('umb-context-test') -export class ContextTestElement extends UmbLitElement { +export class UmbContextTestElement extends UmbLitElement { public value: string | null = null; constructor() { super(); @@ -16,7 +16,7 @@ export class ContextTestElement extends UmbLitElement { describe('UmbContextProvider', () => { let element: UmbContextProviderElement; - let consumer: ContextTestElement; + let consumer: UmbContextTestElement; const contextValue = 'test-value'; beforeEach(async () => { @@ -25,7 +25,7 @@ describe('UmbContextProvider', () => { ` ); - consumer = element.getElementsByTagName('umb-context-test')[0] as ContextTestElement; + consumer = element.getElementsByTagName('umb-context-test')[0] as UmbContextTestElement; }); it('is defined with its own instance', () => { diff --git a/src/Umbraco.Web.UI.Client/src/core/controller-host/controller-host-test.test.ts b/src/Umbraco.Web.UI.Client/src/core/controller-host/controller-host-test.test.ts index df0e1f3c42..322bb7246c 100644 --- a/src/Umbraco.Web.UI.Client/src/core/controller-host/controller-host-test.test.ts +++ b/src/Umbraco.Web.UI.Client/src/core/controller-host/controller-host-test.test.ts @@ -6,7 +6,7 @@ import { UmbContextProviderController } from '@umbraco-cms/backoffice/context-ap import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; @customElement('umb-controller-host-test-consumer') -export class ControllerHostTestConsumerElement extends UmbLitElement { +export class UmbControllerHostTestConsumerElement extends UmbLitElement { public value: string | null = null; constructor() { super(); @@ -18,7 +18,7 @@ export class ControllerHostTestConsumerElement extends UmbLitElement { describe('UmbControllerHostTestElement', () => { let element: UmbControllerHostTestElement; - let consumer: ControllerHostTestConsumerElement; + let consumer: UmbControllerHostTestConsumerElement; const contextValue = 'test-value'; beforeEach(async () => { @@ -31,7 +31,7 @@ describe('UmbControllerHostTestElement', () => { ); consumer = element.getElementsByTagName( 'umb-controller-host-test-consumer' - )[0] as ControllerHostTestConsumerElement; + )[0] as UmbControllerHostTestConsumerElement; }); it('element is defined with its own instance', () => { diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/stories/modal.stories.ts b/src/Umbraco.Web.UI.Client/src/core/modal/stories/modal.stories.ts index e1c4bb2daa..b80cd203b5 100644 --- a/src/Umbraco.Web.UI.Client/src/core/modal/stories/modal.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/core/modal/stories/modal.stories.ts @@ -15,7 +15,7 @@ export default { const Template: Story = (props) => { return html` Under construction - + `; }; diff --git a/src/Umbraco.Web.UI.Client/src/core/modal/stories/story-modal-service-example.element.ts b/src/Umbraco.Web.UI.Client/src/core/modal/stories/story-modal-service-example.element.ts index 42f97388b3..4e0580a122 100644 --- a/src/Umbraco.Web.UI.Client/src/core/modal/stories/story-modal-service-example.element.ts +++ b/src/Umbraco.Web.UI.Client/src/core/modal/stories/story-modal-service-example.element.ts @@ -3,8 +3,8 @@ import { customElement, property, state } from 'lit/decorators.js'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { UMB_MODAL_CONTEXT_TOKEN, UmbModalContext } from '@umbraco-cms/backoffice/modal'; -@customElement('story-modal-context-example') -export class StoryModalContextExampleElement extends UmbLitElement { +@customElement('umb-story-modal-context-example') +export class UmbStoryModalContextExampleElement extends UmbLitElement { @property() modalLayout = 'confirm'; diff --git a/src/Umbraco.Web.UI.Client/src/core/notification/stories/notification.stories.ts b/src/Umbraco.Web.UI.Client/src/core/notification/stories/notification.stories.ts index 3c8e401107..6928ff210a 100644 --- a/src/Umbraco.Web.UI.Client/src/core/notification/stories/notification.stories.ts +++ b/src/Umbraco.Web.UI.Client/src/core/notification/stories/notification.stories.ts @@ -15,7 +15,7 @@ export default { ], } as Meta; -const Template: Story = () => html``; +const Template: Story = () => html``; export const Default = Template.bind({}); Default.parameters = { diff --git a/src/Umbraco.Web.UI.Client/src/core/notification/stories/story-notification-default-example.element.ts b/src/Umbraco.Web.UI.Client/src/core/notification/stories/story-notification-default-example.element.ts index de78281ffb..fc29c90356 100644 --- a/src/Umbraco.Web.UI.Client/src/core/notification/stories/story-notification-default-example.element.ts +++ b/src/Umbraco.Web.UI.Client/src/core/notification/stories/story-notification-default-example.element.ts @@ -8,8 +8,8 @@ import { } from '@umbraco-cms/backoffice/notification'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; -@customElement('story-notification-default-example') -export class StoryNotificationDefaultExampleElement extends UmbLitElement { +@customElement('umb-story-notification-default-example') +export class UmbStoryNotificationDefaultExampleElement extends UmbLitElement { private _notificationContext?: UmbNotificationContext; connectedCallback(): void { @@ -56,6 +56,6 @@ export class StoryNotificationDefaultExampleElement extends UmbLitElement { declare global { interface HTMLElementTagNameMap { - 'story-notification-default-example': StoryNotificationDefaultExampleElement; + 'umb-story-notification-default-example': UmbStoryNotificationDefaultExampleElement; } } diff --git a/src/Umbraco.Web.UI.Client/src/installer/installer.context.ts b/src/Umbraco.Web.UI.Client/src/installer/installer.context.ts index 9e6b26b8cf..30b4c7350a 100644 --- a/src/Umbraco.Web.UI.Client/src/installer/installer.context.ts +++ b/src/Umbraco.Web.UI.Client/src/installer/installer.context.ts @@ -8,7 +8,7 @@ import { } from '@umbraco-cms/backoffice/backend-api'; import { tryExecute } from '@umbraco-cms/backoffice/resources'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; -import { ObjectState, NumberState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbObjectState, UmbNumberState } from '@umbraco-cms/backoffice/observable-api'; /** * Context API for the installer @@ -16,20 +16,20 @@ import { ObjectState, NumberState } from '@umbraco-cms/backoffice/observable-api * @class UmbInstallerContext */ export class UmbInstallerContext { - private _data = new ObjectState({ + private _data = new UmbObjectState({ user: { name: '', email: '', password: '', subscribeToNewsletter: false }, database: { id: '', providerName: '' }, telemetryLevel: TelemetryLevelModel.BASIC, }); public readonly data = this._data.asObservable(); - private _currentStep = new NumberState(1); + private _currentStep = new UmbNumberState(1); public readonly currentStep = this._currentStep.asObservable(); - private _settings = new ObjectState(undefined); + private _settings = new UmbObjectState(undefined); public readonly settings = this._settings.asObservable(); - private _installStatus = new ObjectState(null); + private _installStatus = new UmbObjectState(null); public readonly installStatus = this._installStatus.asObservable(); constructor() { diff --git a/src/Umbraco.Web.UI.Client/src/stories/store.mdx b/src/Umbraco.Web.UI.Client/src/stories/store.mdx index 1140ee8e40..9622967a0c 100644 --- a/src/Umbraco.Web.UI.Client/src/stories/store.mdx +++ b/src/Umbraco.Web.UI.Client/src/stories/store.mdx @@ -11,7 +11,7 @@ Generally a Store will be holding one or more RxJS Subjects, each Subject is mad ```typescript class MyProductStore { - #products = new ArrayState(>[], (product) => product.id); + #products = new UmbArrayState(>[], (product) => product.id); public readonly products = this.#products.asObservable(); @@ -118,7 +118,7 @@ This example give some inspiration to how fine grained this can become: ```typescript class MyProductStore { - #products = new ArrayState(>[]); + #products = new UmbArrayState(>[]); public readonly products = this.#products.asObservable(); public readonly amountOfProducts = this.#products.getObservablePart((products) => products.length); @@ -138,7 +138,7 @@ In the examples of this guide each product has a id, and we have clarified this ```typescript class MyProductStore { - #products = new ArrayState(>[], (product) => product.id); + #products = new UmbArrayState(>[], (product) => product.id); ... } ```