From ae835173ad1880721b703839d2e5782a14d7f9cb Mon Sep 17 00:00:00 2001 From: Nayden Naydenov Date: Fri, 10 May 2024 23:09:40 +0300 Subject: [PATCH] wip: remove cloneNode from valueStateMessage --- packages/main/src/ComboBox.ts | 8 ++--- packages/main/src/ComboBoxPopover.hbs | 34 +++++++++---------- packages/main/src/FileUploader.ts | 4 --- packages/main/src/FileUploaderPopover.hbs | 8 ++--- packages/main/src/MultiComboBox.ts | 6 +--- packages/main/src/MultiComboBoxPopover.hbs | 36 ++++++++++----------- packages/main/src/Select.ts | 4 +-- packages/main/src/SelectPopover.hbs | 31 +++++++++--------- packages/main/src/TextArea.ts | 6 +--- packages/main/src/TextAreaPopover.hbs | 8 ++--- packages/main/test/pages/MultiComboBox.html | 1 + 11 files changed, 64 insertions(+), 82 deletions(-) diff --git a/packages/main/src/ComboBox.ts b/packages/main/src/ComboBox.ts index ae20e94989de..e6888817f933 100644 --- a/packages/main/src/ComboBox.ts +++ b/packages/main/src/ComboBox.ts @@ -1105,7 +1105,7 @@ class ComboBox extends UI5Element { } _announceValueStateText() { - const valueStateText = this.shouldDisplayDefaultValueStateMessage ? this.valueStateDefaultText : this.valueStateMessageText.map(el => el.textContent).join(" "); + const valueStateText = this.shouldDisplayDefaultValueStateMessage ? this.valueStateDefaultText : this.valueStateMessage.map(el => el.textContent).join(" "); if (valueStateText) { announce(valueStateText, InvisibleMessageMode.Polite); @@ -1158,7 +1158,7 @@ class ComboBox extends UI5Element { return `${text} ${this.valueStateDefaultText || ""}`; } - return `${text}`.concat(" ", this.valueStateMessageText.map(el => el.textContent).join(" ")); + return `${text}`.concat(" ", this.valueStateMessage.map(el => el.textContent).join(" ")); } get valueStateDefaultText(): string | undefined { @@ -1169,10 +1169,6 @@ class ComboBox extends UI5Element { return this.valueStateTextMappings[this.valueState]; } - get valueStateMessageText(): Array { - return this.getSlottedNodes("valueStateMessage").map(el => el.cloneNode(true)); - } - get valueStateTextMappings(): ValueStateAnnouncement { return { [ValueState.Positive]: ComboBox.i18nBundle.getText(VALUE_STATE_SUCCESS), diff --git a/packages/main/src/ComboBoxPopover.hbs b/packages/main/src/ComboBoxPopover.hbs index de90747e0444..51d8cddf0b0c 100644 --- a/packages/main/src/ComboBoxPopover.hbs +++ b/packages/main/src/ComboBoxPopover.hbs @@ -44,21 +44,23 @@ {{#if hasValueStateText}} -
- - {{> valueStateMessage}} -
+ {{#unless shouldOpenValueStateMessagePopover}} +
+ + {{> valueStateMessageContent}} +
+ {{/unless}} {{/if}} - {{/if}} - - {{#unless _isPhone}} + {{else}} {{#if hasValueStateText}} -
- - {{> valueStateMessage}} -
+ {{#unless shouldOpenValueStateMessagePopover}} +
+ + {{> valueStateMessageContent}} +
+ {{/unless}} {{/if}} - {{/unless}} + {{/if}}
- {{> valueStateMessage}} + {{> valueStateMessageContent}}
{{/if}} -{{#*inline "valueStateMessage"}} +{{#*inline "valueStateMessageContent"}} {{#if shouldDisplayDefaultValueStateMessage}} {{valueStateDefaultText}} {{else}} - {{#each valueStateMessageText}} - {{this}} - {{/each}} + {{/if}} {{/inline}} diff --git a/packages/main/src/FileUploader.ts b/packages/main/src/FileUploader.ts index 95309495ee2a..4edd4c4f0ed9 100644 --- a/packages/main/src/FileUploader.ts +++ b/packages/main/src/FileUploader.ts @@ -433,10 +433,6 @@ class FileUploader extends UI5Element implements IFormElement { return this.hasValueState && this.valueState !== ValueState.Positive; } - get valueStateMessageText() { - return this.getSlottedNodes("valueStateMessage").map(el => el.cloneNode(true)); - } - get shouldDisplayDefaultValueStateMessage(): boolean { return !this.valueStateMessage.length && this.hasValueStateText; } diff --git a/packages/main/src/FileUploaderPopover.hbs b/packages/main/src/FileUploaderPopover.hbs index 57543b0adb7a..0b2d4289d308 100644 --- a/packages/main/src/FileUploaderPopover.hbs +++ b/packages/main/src/FileUploaderPopover.hbs @@ -11,16 +11,14 @@ {{#if _valueStateMessageInputIcon}} {{/if}} - {{> valueStateMessage}} + {{> valueStateMessageContent}} -{{#*inline "valueStateMessage"}} +{{#*inline "valueStateMessageContent"}} {{#if shouldDisplayDefaultValueStateMessage}} {{valueStateText}} {{else}} - {{#each valueStateMessageText}} - {{this}} - {{/each}} + {{/if}} {{/inline}} \ No newline at end of file diff --git a/packages/main/src/MultiComboBox.ts b/packages/main/src/MultiComboBox.ts index 9dbf65b7d02d..2dbe538f80c3 100644 --- a/packages/main/src/MultiComboBox.ts +++ b/packages/main/src/MultiComboBox.ts @@ -1738,7 +1738,7 @@ class MultiComboBox extends UI5Element { return `${text} ${this.valueStateDefaultText || ""}`; } - return `${text}`.concat(" ", this.valueStateMessageText.map(el => el.textContent).join(" ")); + return `${text}`.concat(" ", this.valueStateMessage.map(el => el.textContent).join(" ")); } get valueStateDefaultText(): string { @@ -1759,10 +1759,6 @@ class MultiComboBox extends UI5Element { return this.hasValueState ? `ui5-multi-combobox-valueStateDesc` : undefined; } - get valueStateMessageText() { - return this.getSlottedNodes("valueStateMessage").map(el => el.cloneNode(true)); - } - get ariaLabelText() { return getEffectiveAriaLabelText(this); } diff --git a/packages/main/src/MultiComboBoxPopover.hbs b/packages/main/src/MultiComboBoxPopover.hbs index 30d6d809b9dd..2fdc8a87aa74 100644 --- a/packages/main/src/MultiComboBoxPopover.hbs +++ b/packages/main/src/MultiComboBoxPopover.hbs @@ -47,25 +47,27 @@ {{#if hasValueStateMessage}} -
- - {{> valueStateMessage}} -
+ {{#unless shouldDisplayOnlyValueStateMessage}} +
+ + {{> valueStateMessageContent}} +
+ {{/unless}} {{/if}} {{> selectAllWrapper}} - {{/if}} - - {{#unless _isPhone}} + {{else}} {{#if hasValueStateMessage}} -
- - {{> valueStateMessage}} -
+ {{#unless shouldDisplayOnlyValueStateMessage}} +
+ + {{> valueStateMessageContent}} +
+ {{/unless}} {{/if}} {{> selectAllWrapper}} - {{/unless}} + {{/if}} {{#if filterSelected}} @@ -99,7 +101,7 @@ {{/if}} -{{#if hasValueStateMessage}} +{{#if shouldDisplayOnlyValueStateMessage}}
- {{> valueStateMessage}} + {{> valueStateMessageContent}}
{{/if}} -{{#*inline "valueStateMessage"}} +{{#*inline "valueStateMessageContent"}} {{#if shouldDisplayDefaultValueStateMessage}} {{valueStateDefaultText}} {{else}} - {{#each valueStateMessageText}} - {{this}} - {{/each}} + {{/if}} {{/inline}} diff --git a/packages/main/src/Select.ts b/packages/main/src/Select.ts index 3c4b14b3b009..d8f0a4f31431 100644 --- a/packages/main/src/Select.ts +++ b/packages/main/src/Select.ts @@ -973,7 +973,7 @@ class Select extends UI5Element implements IFormElement { if (this.shouldDisplayDefaultValueStateMessage) { valueStateText = this.valueStateDefaultText; } else { - valueStateText = this.valueStateMessageText.map(el => el.textContent).join(" "); + valueStateText = this.valueStateMessage.map(el => el.textContent).join(" "); } return `${this.valueStateTypeText} ${valueStateText}`; @@ -1070,7 +1070,7 @@ class Select extends UI5Element implements IFormElement { } get shouldDisplayDefaultValueStateMessage() { - return !this.valueStateMessageText.length && this.hasValueStateText; + return !this.valueStateMessage.length && this.hasValueStateText; } get hasValueStateText() { diff --git a/packages/main/src/SelectPopover.hbs b/packages/main/src/SelectPopover.hbs index ec8c6368be7c..056bba001f94 100644 --- a/packages/main/src/SelectPopover.hbs +++ b/packages/main/src/SelectPopover.hbs @@ -24,20 +24,23 @@ {{#if hasValueStateText}} -
- {{> valueStateMessage}} -
+ {{#unless shouldOpenValueStateMessagePopover}} +
+ {{> valueStateMessageContent}} +
+ {{/unless}} {{/if}} - {{/if}} - {{#unless _isPhone}} + {{else}} {{#if hasValueStateText}} -
- - {{> valueStateMessage}} -
+ {{#unless shouldOpenValueStateMessagePopover}} +
+ + {{> valueStateMessageContent}} +
+ {{/unless}} {{/if}} - {{/unless}} + {{/if}}
- {{> valueStateMessage}} + {{> valueStateMessageContent}}
{{/if}} -{{#*inline "valueStateMessage"}} +{{#*inline "valueStateMessageContent"}} {{#if shouldDisplayDefaultValueStateMessage}} {{valueStateText}} {{else}} - {{#each valueStateMessageText}} - {{this}} - {{/each}} + {{/if}} {{/inline}} \ No newline at end of file diff --git a/packages/main/src/TextArea.ts b/packages/main/src/TextArea.ts index 0e147f4ae2de..c234dd1256cc 100644 --- a/packages/main/src/TextArea.ts +++ b/packages/main/src/TextArea.ts @@ -577,7 +577,7 @@ class TextArea extends UI5Element implements IFormElement { } if (this.hasCustomValueState) { - return `${this.valueStateTypeMappings[this.valueState]}`.concat(" ", this.valueStateMessageText.map(el => el.textContent).join(" ")); + return `${this.valueStateTypeMappings[this.valueState]}`.concat(" ", this.valueStateMessage.map(el => el.textContent).join(" ")); } return `${this.valueStateTypeMappings[this.valueState]} ${this.valueStateDefaultText}`; @@ -611,10 +611,6 @@ class TextArea extends UI5Element implements IFormElement { return this.valueState === ValueState.Negative || this.valueState === ValueState.Critical || this.valueState === ValueState.Information; } - get valueStateMessageText() { - return this.valueStateMessage.map(x => x.cloneNode(true)); - } - get _valueStatePopoverHorizontalAlign(): `${PopoverHorizontalAlign}` { return this.effectiveDir !== "rtl" ? "Start" : "End"; } diff --git a/packages/main/src/TextAreaPopover.hbs b/packages/main/src/TextAreaPopover.hbs index 10763b37a906..53a34563863c 100644 --- a/packages/main/src/TextAreaPopover.hbs +++ b/packages/main/src/TextAreaPopover.hbs @@ -11,16 +11,14 @@ >
- {{> valueStateMessage}} + {{> valueStateMessageContent}}
{{/if}} -{{#*inline "valueStateMessage"}} +{{#*inline "valueStateMessageContent"}} {{#if hasCustomValueState}} - {{#each valueStateMessageText}} - {{this}} - {{/each}} + {{else}} {{valueStateDefaultText}} {{/if}} diff --git a/packages/main/test/pages/MultiComboBox.html b/packages/main/test/pages/MultiComboBox.html index 5763e4fd01fa..8129583f05aa 100644 --- a/packages/main/test/pages/MultiComboBox.html +++ b/packages/main/test/pages/MultiComboBox.html @@ -172,6 +172,7 @@ +
Test