Skip to content

Commit 415f75c

Browse files
Merge branch 'main' into v14/chore/bundle-core-package
2 parents fc01aea + 2b6b31f commit 415f75c

File tree

71 files changed

+405
-242
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+405
-242
lines changed

src/apps/installer/user/installer-user.element.ts

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,28 +9,35 @@ export class UmbInstallerUserElement extends UmbLitElement {
99
@state()
1010
private _userFormData?: { name: string; password: string; email: string; subscribeToNewsletter: boolean };
1111

12-
private _installerContext?: UmbInstallerContext;
12+
@state()
13+
private _minimumPasswordLength = 10;
14+
15+
#installerContext?: UmbInstallerContext;
1316

1417
constructor() {
1518
super();
1619

1720
this.consumeContext(UMB_INSTALLER_CONTEXT, (installerContext) => {
18-
this._installerContext = installerContext;
21+
this.#installerContext = installerContext;
1922
this._observeInstallerData();
2023
});
2124
}
2225

2326
private _observeInstallerData() {
24-
if (!this._installerContext) return;
27+
if (!this.#installerContext) return;
2528

26-
this.observe(this._installerContext.data, ({ user }) => {
29+
this.observe(this.#installerContext.data, ({ user }) => {
2730
this._userFormData = {
2831
name: user.name,
2932
password: user.password,
3033
email: user.email,
3134
subscribeToNewsletter: user.subscribeToNewsletter ?? false,
3235
};
3336
});
37+
38+
this.observe(this.#installerContext.settings, (settings) => {
39+
this._minimumPasswordLength = settings?.user.minCharLength ?? this._minimumPasswordLength;
40+
});
3441
}
3542

3643
private _handleSubmit = (e: SubmitEvent) => {
@@ -48,8 +55,8 @@ export class UmbInstallerUserElement extends UmbLitElement {
4855
const email = formData.get('email') as string;
4956
const subscribeToNewsletter = formData.has('subscribeToNewsletter');
5057

51-
this._installerContext?.appendData({ user: { name, password, email, subscribeToNewsletter } });
52-
this._installerContext?.nextStep();
58+
this.#installerContext?.appendData({ user: { name, password, email, subscribeToNewsletter } });
59+
this.#installerContext?.nextStep();
5360
};
5461

5562
override render() {
@@ -87,6 +94,7 @@ export class UmbInstallerUserElement extends UmbLitElement {
8794
id="password"
8895
name="password"
8996
label="password"
97+
minlength=${this._minimumPasswordLength}
9098
.value=${this._userFormData?.password}
9199
required
92100
required-message="Password is required"></uui-input-password>

src/packages/block/block-type/components/input-block-type/input-block-type.element.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import type { UmbBlockTypeCardElement } from '../block-type-card/index.js';
2-
import type { UmbBlockTypeBaseModel, UmbBlockTypeWithGroupKey } from '../../types.js';
31
import { umbConfirmModal } from '@umbraco-cms/backoffice/modal';
42
import { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/router';
53
import { css, html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit';
@@ -12,6 +10,8 @@ import {
1210
UMB_DOCUMENT_TYPE_PICKER_MODAL,
1311
} from '@umbraco-cms/backoffice/document-type';
1412
import { UmbSorterController } from '@umbraco-cms/backoffice/sorter';
13+
import type { UmbBlockTypeBaseModel, UmbBlockTypeWithGroupKey } from '../../types.js';
14+
import type { UmbBlockTypeCardElement } from '../block-type-card/index.js';
1515

1616
import '../block-type-card/index.js';
1717

@@ -123,10 +123,6 @@ export class UmbInputBlockTypeElement<
123123
this.dispatchEvent(new UmbDeleteEvent());
124124
}
125125

126-
protected getFormElement() {
127-
return undefined;
128-
}
129-
130126
async #onRequestDelete(item: BlockType) {
131127
const store = await this.getContext(UMB_DOCUMENT_TYPE_ITEM_STORE_CONTEXT);
132128
const contentType = store.getItems([item.contentElementTypeKey]);

src/packages/core/components/input-collection-configuration/input-collection-configuration.element.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/rou
1010
import { UmbFormControlMixin } from '@umbraco-cms/backoffice/validation';
1111

1212
@customElement('umb-input-collection-configuration')
13-
export class UmbInputCollectionConfigurationElement extends UmbFormControlMixin(UmbLitElement) {
13+
export class UmbInputCollectionConfigurationElement extends UmbFormControlMixin<string, typeof UmbLitElement>(UmbLitElement) {
1414
protected override getFormElement() {
1515
return undefined;
1616
}
@@ -25,7 +25,7 @@ export class UmbInputCollectionConfigurationElement extends UmbFormControlMixin(
2525
@property({ attribute: 'default-value' })
2626
defaultValue?: string;
2727

28-
#setValue(value: string) {
28+
#setValue(value: string | undefined) {
2929
this.value = value;
3030
this.dispatchEvent(new UmbChangeEvent());
3131
}
@@ -65,7 +65,7 @@ export class UmbInputCollectionConfigurationElement extends UmbFormControlMixin(
6565
}
6666

6767
#clearDataType() {
68-
this.#setValue('');
68+
this.#setValue(undefined);
6969
}
7070

7171
#createDataType() {
@@ -99,7 +99,7 @@ export class UmbInputCollectionConfigurationElement extends UmbFormControlMixin(
9999
if (!this.value || !this._dataTypePickerModalPath) return nothing;
100100
return html`
101101
<uui-ref-list>
102-
<umb-ref-data-type standalone data-type-id=${this.value as string} @open=${this.#editDataType}>
102+
<umb-ref-data-type standalone data-type-id=${this.value} @open=${this.#editDataType}>
103103
<uui-action-bar slot="actions">
104104
<uui-button
105105
label=${this.localize.term('general_choose')}

src/packages/core/components/input-color/input-color.element.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import type { UUIColorSwatchesEvent } from '@umbraco-cms/backoffice/external/uui
1111
*/
1212
@customElement('umb-input-color')
1313
export class UmbInputColorElement extends UUIFormControlMixin(UmbLitElement, '') {
14-
protected getFormElement() {
14+
protected override getFormElement() {
1515
return undefined;
1616
}
1717

src/packages/core/components/input-date/input-date.element.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import type { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui';
1515
*/
1616
@customElement('umb-input-date')
1717
export class UmbInputDateElement extends UUIFormControlMixin(UmbLitElement, '') {
18-
protected getFormElement() {
18+
protected override getFormElement() {
1919
return undefined;
2020
}
2121

src/packages/core/components/input-dropdown/input-dropdown-list.element.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export class UmbInputDropdownListElement extends UUIFormControlMixin(UmbLitEleme
1919
@query('uui-select')
2020
private selectEle!: HTMLInputElement;
2121

22-
protected getFormElement() {
22+
protected override getFormElement() {
2323
return this.selectEle;
2424
}
2525

src/packages/core/components/input-entity/input-entity.element.ts

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@ import { splitStringToArray } from '@umbraco-cms/backoffice/utils';
33
import { UmbChangeEvent } from '@umbraco-cms/backoffice/event';
44
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
55
import { UmbSorterController } from '@umbraco-cms/backoffice/sorter';
6-
import { UUIFormControlMixin } from '@umbraco-cms/backoffice/external/uui';
76
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
87
import type { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input';
98
import type { UmbUniqueItemModel } from '@umbraco-cms/backoffice/models';
9+
import { UmbFormControlMixin } from '@umbraco-cms/backoffice/validation';
1010

1111
@customElement('umb-input-entity')
12-
export class UmbInputEntityElement extends UUIFormControlMixin(UmbLitElement, '') {
12+
export class UmbInputEntityElement extends UmbFormControlMixin<string | undefined, typeof UmbLitElement>(
13+
UmbLitElement,
14+
) {
1315
#sorter = new UmbSorterController<string>(this, {
1416
getUniqueOfElement: (element) => {
1517
return element.id;
@@ -26,7 +28,7 @@ export class UmbInputEntityElement extends UUIFormControlMixin(UmbLitElement, ''
2628
},
2729
});
2830

29-
protected getFormElement() {
31+
protected override getFormElement() {
3032
return undefined;
3133
}
3234

@@ -68,20 +70,20 @@ export class UmbInputEntityElement extends UUIFormControlMixin(UmbLitElement, ''
6870
this.#pickerContext?.setSelection(uniques);
6971
this.#sorter.setModel(uniques);
7072
}
71-
public get selection(): Array<string> | undefined {
72-
return this.#pickerContext?.getSelection();
73+
public get selection(): Array<string> {
74+
return this.#pickerContext?.getSelection() ?? [];
7375
}
7476

75-
@property()
76-
public override set value(uniques: string) {
77-
this.selection = splitStringToArray(uniques);
77+
@property({ type: String })
78+
public override set value(selectionString: string | undefined) {
79+
this.selection = splitStringToArray(selectionString);
7880
}
79-
public override get value(): string {
80-
return this.selection?.join(',') ?? '';
81+
public override get value(): string | undefined {
82+
return this.selection.length > 0 ? this.selection.join(',') : undefined;
8183
}
8284

8385
@property({ attribute: false })
84-
public set pickerContext(ctor: new (host: UmbControllerHost) => UmbPickerInputContext<any>) {
86+
public set pickerContext(ctor: new (host: UmbControllerHost) => UmbPickerInputContext<any, any, any, any>) {
8587
if (this.#pickerContext) return;
8688
this.#pickerContext = new ctor(this);
8789
this.#observePickerContext();
@@ -90,7 +92,7 @@ export class UmbInputEntityElement extends UUIFormControlMixin(UmbLitElement, ''
9092
@state()
9193
private _items?: Array<UmbUniqueItemModel>;
9294

93-
#pickerContext?: UmbPickerInputContext<any>;
95+
#pickerContext?: UmbPickerInputContext;
9496

9597
constructor() {
9698
super();

src/packages/core/components/input-eye-dropper/input-eye-dropper.element.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import type { UUIColorPickerChangeEvent } from '@umbraco-cms/backoffice/external
66

77
@customElement('umb-input-eye-dropper')
88
export class UmbInputEyeDropperElement extends UUIFormControlMixin(UmbLitElement, '') {
9-
protected getFormElement() {
9+
protected override getFormElement() {
1010
return undefined;
1111
}
1212

src/packages/core/components/input-radio-button-list/input-radio-button-list.element.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export class UmbInputRadioButtonListElement extends UUIFormControlMixin(UmbLitEl
2121
@property({ type: Array })
2222
public list: Array<UmbRadioButtonItem> = [];
2323

24-
protected getFormElement() {
24+
protected override getFormElement() {
2525
return undefined;
2626
}
2727

src/packages/core/components/input-slider/input-slider.element.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export class UmbInputSliderElement extends UUIFormControlMixin(UmbLitElement, ''
2424
@property({ type: Boolean, attribute: 'enable-range' })
2525
enableRange = false;
2626

27-
protected getFormElement() {
27+
protected override getFormElement() {
2828
return undefined;
2929
}
3030

0 commit comments

Comments
 (0)