@govbr-ds/webcomponents 2.1.1 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -11
- package/cem/custom-elements.json +209 -8
- package/dist/cjs/br-cookiebar-link.cjs.entry.js +2 -1
- package/dist/cjs/br-date-picker_3.cjs.entry.js +2 -1
- package/dist/cjs/br-datetime-picker.cjs.entry.js +1 -2
- package/dist/cjs/br-dropdown_2.cjs.entry.js +252 -108
- package/dist/cjs/br-header-logo.cjs.entry.js +2 -1
- package/dist/cjs/br-icon.cjs.entry.js +1 -1
- package/dist/cjs/br-item.cjs.entry.js +25 -14
- package/dist/cjs/br-link.cjs.entry.js +2 -1
- package/dist/cjs/br-magic-button.cjs.entry.js +2 -1
- package/dist/cjs/br-menu-link.cjs.entry.js +2 -1
- package/dist/cjs/br-select-input_3.cjs.entry.js +45 -11
- package/dist/cjs/br-sign-in.cjs.entry.js +2 -1
- package/dist/cjs/br-slider.cjs.entry.js +1 -2
- package/dist/cjs/br-tag.cjs.entry.js +2 -3
- package/dist/cjs/br-upload.cjs.entry.js +2 -3
- package/dist/cjs/index-CRdcutym.js +4 -4
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/webcomponents.cjs.js +1 -1
- package/dist/collection/components/cookiebar/cookiebar-link/cookiebar-link.js +2 -1
- package/dist/collection/components/datetime-picker/datetime-input/datetime-input.js +2 -1
- package/dist/collection/components/datetime-picker/datetime-picker.js +1 -2
- package/dist/collection/components/header/header-logo/header-logo.js +2 -1
- package/dist/collection/components/icon/icon.js +1 -1
- package/dist/collection/components/item/item.js +25 -14
- package/dist/collection/components/link/link.js +2 -1
- package/dist/collection/components/magic-button/magic-button.js +2 -1
- package/dist/collection/components/menu/menu-link/menu-link.js +2 -1
- package/dist/collection/components/select/select-input/select-input.js +2 -1
- package/dist/collection/components/select/select-list/select-list.js +17 -5
- package/dist/collection/components/select/select-option/select-option.js +28 -7
- package/dist/collection/components/select/select.js +226 -109
- package/dist/collection/components/select/select.utils.js +34 -0
- package/dist/collection/components/sign-in/sign-in.js +2 -1
- package/dist/collection/components/slider/slider.js +1 -2
- package/dist/collection/components/tag/tag.js +2 -3
- package/dist/collection/components/upload/upload.js +2 -3
- package/dist/collection/pages/scripts/component-controls.js +13 -4
- package/dist/collection/pages/scripts/menu.js +11 -2
- package/dist/collection/pages/scripts/pageLoader.js +3 -1
- package/dist/components/br-avatar.js +1 -1
- package/dist/components/br-breadcrumb.js +1 -1
- package/dist/components/br-carousel.js +1 -1
- package/dist/components/br-checkbox-group.js +1 -1
- package/dist/components/br-checkbox.js +1 -1
- package/dist/components/br-checkgroup.js +1 -1
- package/dist/components/br-collapse.js +1 -1
- package/dist/components/br-cookiebar-cookie.js +1 -1
- package/dist/components/br-cookiebar-group.js +1 -1
- package/dist/components/br-cookiebar-link.js +1 -1
- package/dist/components/br-cookiebar-note-group.js +1 -1
- package/dist/components/br-cookiebar.js +1 -1
- package/dist/components/br-date-picker.js +1 -1
- package/dist/components/br-datetime-input.js +1 -1
- package/dist/components/br-datetime-picker.js +1 -1
- package/dist/components/br-dropdown.js +1 -1
- package/dist/components/br-footer-category.js +1 -1
- package/dist/components/br-footer-item.js +1 -1
- package/dist/components/br-footer-social.js +1 -1
- package/dist/components/br-header-function.js +1 -1
- package/dist/components/br-header-link.js +1 -1
- package/dist/components/br-header-list.js +1 -1
- package/dist/components/br-header-logo.js +1 -1
- package/dist/components/br-header.js +1 -1
- package/dist/components/br-icon.js +1 -1
- package/dist/components/br-input.js +1 -1
- package/dist/components/br-item.js +1 -1
- package/dist/components/br-link.js +1 -1
- package/dist/components/br-list.js +1 -1
- package/dist/components/br-magic-button.js +1 -1
- package/dist/components/br-menu-header.js +1 -1
- package/dist/components/br-menu-item.js +1 -1
- package/dist/components/br-menu-link.js +1 -1
- package/dist/components/br-menu-list.js +1 -1
- package/dist/components/br-menu-social.js +1 -1
- package/dist/components/br-menu.js +1 -1
- package/dist/components/br-message.js +1 -1
- package/dist/components/br-modal.js +1 -1
- package/dist/components/br-notification-header.js +1 -1
- package/dist/components/br-notification-item.js +1 -1
- package/dist/components/br-pagination.js +1 -1
- package/dist/components/br-radio-group.js +1 -1
- package/dist/components/br-radio.js +1 -1
- package/dist/components/br-select-input.js +1 -1
- package/dist/components/br-select-list.js +1 -1
- package/dist/components/br-select-option.js +1 -1
- package/dist/components/br-select.js +1 -1
- package/dist/components/br-sign-in.js +1 -1
- package/dist/components/br-skip-link-item.js +1 -1
- package/dist/components/br-skip-link.js +1 -1
- package/dist/components/br-skiplink-item.js +1 -1
- package/dist/components/br-slider.js +1 -1
- package/dist/components/br-step-item.js +1 -1
- package/dist/components/br-switch.js +1 -1
- package/dist/components/br-tab.js +1 -1
- package/dist/components/br-table-cell.js +1 -1
- package/dist/components/br-table-header-cell.js +1 -1
- package/dist/components/br-tag.js +1 -1
- package/dist/components/br-textarea.js +1 -1
- package/dist/components/br-time-picker.js +1 -1
- package/dist/components/br-tooltip.js +1 -1
- package/dist/components/br-upload.js +1 -1
- package/dist/components/br-wizard.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/{p-0IYmyaTi.js → p-34Jfn-U-.js} +1 -1
- package/dist/components/{p-41XwlWiS.js → p-B7Amgxkp.js} +1 -1
- package/dist/components/p-BKuMQJrQ.js +5 -0
- package/dist/components/{p-LmeJrLxH.js → p-BeE7R9nu.js} +1 -1
- package/dist/components/{p-C98-mHmV.js → p-Bo0QYHJO.js} +1 -1
- package/dist/components/{p-DYnkGWii.js → p-C2i2c_io.js} +1 -1
- package/dist/components/p-C7v0lVlX.js +5 -0
- package/dist/components/{p-D_CSvOY9.js → p-CMBsvswx.js} +1 -1
- package/dist/components/{p-Dkg2scYZ.js → p-CRrimdz6.js} +1 -1
- package/dist/components/{p-Bm0ECvfB.js → p-CWORw84-.js} +1 -1
- package/dist/components/p-CvUMXJCl.js +5 -0
- package/dist/components/{p-nJOJGpyl.js → p-DFUKDNck.js} +1 -1
- package/dist/components/p-DHicj0By.js +5 -0
- package/dist/components/{p-B-sbd1_h.js → p-DXjQyH6s.js} +1 -1
- package/dist/components/p-DmCxdB9P.js +5 -0
- package/dist/components/{p-DoXNfcTT.js → p-Dp0xy_3n.js} +1 -1
- package/dist/components/{p-DaeGwqw0.js → p-JAkkThgf.js} +1 -1
- package/dist/components/{p-aF8bGN3t.js → p-Ud-WB0hx.js} +1 -1
- package/dist/components/p-fpMNttbg.js +5 -0
- package/dist/components/{p-D9SpD3Ay.js → p-qYONSNcf.js} +1 -1
- package/dist/components/{p-CDZFuUlU.js → p-qhhHGJY1.js} +1 -1
- package/dist/components/p-ukNmfGNP.js +5 -0
- package/dist/components/p-xa8e1kSW.js +5 -0
- package/dist/esm/br-cookiebar-link.entry.js +2 -1
- package/dist/esm/br-date-picker_3.entry.js +2 -1
- package/dist/esm/br-datetime-picker.entry.js +1 -2
- package/dist/esm/br-dropdown_2.entry.js +252 -108
- package/dist/esm/br-header-logo.entry.js +2 -1
- package/dist/esm/br-icon.entry.js +1 -1
- package/dist/esm/br-item.entry.js +25 -14
- package/dist/esm/br-link.entry.js +2 -1
- package/dist/esm/br-magic-button.entry.js +2 -1
- package/dist/esm/br-menu-link.entry.js +2 -1
- package/dist/esm/br-select-input_3.entry.js +45 -11
- package/dist/esm/br-sign-in.entry.js +2 -1
- package/dist/esm/br-slider.entry.js +1 -2
- package/dist/esm/br-tag.entry.js +2 -3
- package/dist/esm/br-upload.entry.js +2 -3
- package/dist/esm/index-C2RBydfd.js +4 -4
- package/dist/esm/loader.js +1 -1
- package/dist/esm/webcomponents.js +1 -1
- package/dist/hydrate/index.js +356 -163
- package/dist/hydrate/index.mjs +356 -163
- package/dist/types/components/item/item.d.ts +1 -0
- package/dist/types/components/select/select-list/select-list.d.ts +1 -0
- package/dist/types/components/select/select-option/select-option.d.ts +1 -0
- package/dist/types/components/select/select.d.ts +14 -0
- package/dist/types/components/select/select.types.d.ts +2 -0
- package/dist/types/components/select/select.utils.d.ts +13 -0
- package/dist/webcomponents/p-0777c7b1.entry.js +5 -0
- package/dist/webcomponents/p-18ee6175.entry.js +5 -0
- package/dist/webcomponents/p-1c303a4e.entry.js +5 -0
- package/dist/webcomponents/{p-60cc820c.entry.js → p-4c13221a.entry.js} +1 -1
- package/dist/webcomponents/p-51ce2c31.entry.js +5 -0
- package/dist/webcomponents/p-83ff4579.entry.js +5 -0
- package/dist/webcomponents/p-8e819355.entry.js +5 -0
- package/dist/webcomponents/p-92a9b9c4.entry.js +5 -0
- package/dist/webcomponents/p-a4ae72e3.entry.js +5 -0
- package/dist/webcomponents/p-a994c190.entry.js +5 -0
- package/dist/webcomponents/p-c949d993.entry.js +5 -0
- package/dist/webcomponents/p-f26038e2.entry.js +5 -0
- package/dist/webcomponents/{p-4fe12a72.entry.js → p-f303f6b3.entry.js} +1 -1
- package/dist/webcomponents/p-f85ee01c.entry.js +5 -0
- package/dist/webcomponents/{p-5b257a4b.entry.js → p-ffe0241e.entry.js} +1 -1
- package/dist/webcomponents/webcomponents.esm.js +1 -1
- package/package.json +3 -7
- package/dist/components/p-BW0_ORNA.js +0 -5
- package/dist/components/p-C3LQSQpc.js +0 -5
- package/dist/components/p-CRfi23Rd.js +0 -5
- package/dist/components/p-CUI5zWGf.js +0 -5
- package/dist/components/p-CxviDiCr.js +0 -5
- package/dist/components/p-DvrdmqoQ.js +0 -5
- package/dist/components/p-TFWd_UBV.js +0 -5
- package/dist/components/p-cfPt-vKA.js +0 -5
- package/dist/webcomponents/p-059c3d6c.entry.js +0 -5
- package/dist/webcomponents/p-0b8f39bc.entry.js +0 -5
- package/dist/webcomponents/p-1b138f1c.entry.js +0 -5
- package/dist/webcomponents/p-22443c08.entry.js +0 -5
- package/dist/webcomponents/p-6c5f6cb6.entry.js +0 -5
- package/dist/webcomponents/p-6f1c4425.entry.js +0 -5
- package/dist/webcomponents/p-7cf9f4e5.entry.js +0 -5
- package/dist/webcomponents/p-7e1856e4.entry.js +0 -5
- package/dist/webcomponents/p-bba9fc09.entry.js +0 -5
- package/dist/webcomponents/p-cedb8eea.entry.js +0 -5
- package/dist/webcomponents/p-dba376cb.entry.js +0 -5
- package/dist/webcomponents/p-e80a1eb0.entry.js +0 -5
|
@@ -116,6 +116,8 @@ export class SelectList {
|
|
|
116
116
|
this.options = this.syncSelectAllOption(this.options);
|
|
117
117
|
}
|
|
118
118
|
handleOptionStateChange(event) {
|
|
119
|
+
if (this.isControlledBySelect)
|
|
120
|
+
return;
|
|
119
121
|
const detail = event.detail;
|
|
120
122
|
if (!detail?.value)
|
|
121
123
|
return;
|
|
@@ -216,9 +218,15 @@ export class SelectList {
|
|
|
216
218
|
*/
|
|
217
219
|
async setMultiple(isMultiple) {
|
|
218
220
|
this.isMultiple = isMultiple;
|
|
219
|
-
|
|
221
|
+
if (!this.isControlledBySelect)
|
|
222
|
+
this.options = this.normalizeOptionsForMode(this.options, isMultiple);
|
|
220
223
|
this.scheduleMeasureItemHeight();
|
|
221
224
|
}
|
|
225
|
+
get isControlledBySelect() {
|
|
226
|
+
const root = this.el.getRootNode();
|
|
227
|
+
const host = root.host;
|
|
228
|
+
return host?.tagName?.toLowerCase() === 'br-select';
|
|
229
|
+
}
|
|
222
230
|
/**
|
|
223
231
|
* Retorna uma cópia das opções atualmente controladas pela lista.
|
|
224
232
|
*
|
|
@@ -539,14 +547,18 @@ export class SelectList {
|
|
|
539
547
|
renderOption(option, index) {
|
|
540
548
|
const rowHeight = this.getRowHeight();
|
|
541
549
|
const optionPart = this.isSelectAllOption(option) ? 'option select-all' : 'option';
|
|
542
|
-
return (h("br-select-option", { part: optionPart, active: index === this.activeOptionIndex, "data-option-index": index, disabled: option.disabled, id: `${this.el.id || 'br-select-list'}-option-${index}`, indeterminate: option.indeterminate,
|
|
550
|
+
return (h("br-select-option", { part: optionPart, active: index === this.activeOptionIndex, "data-option-index": index, disabled: option.disabled, id: `${this.el.id || 'br-select-list'}-option-${index}`, indeterminate: option.indeterminate,
|
|
551
|
+
// A seleção faz parte da identidade visual renderizada. Incluir o estado
|
|
552
|
+
// na chave evita que uma opção virtual reutilizada retenha o snapshot
|
|
553
|
+
// interno anterior do br-select-option/br-item.
|
|
554
|
+
key: `${option.value}:${option.selected ? 'selected' : 'unselected'}`, label: option.label, selected: option.selected, "show-checkbox": this.isMultiple, style: {
|
|
543
555
|
boxSizing: 'border-box',
|
|
544
556
|
height: `${rowHeight}px`,
|
|
545
557
|
position: 'absolute',
|
|
546
558
|
top: `${index * rowHeight}px`,
|
|
547
559
|
left: '0',
|
|
548
560
|
right: '0',
|
|
549
|
-
}, value: option.value }, option.label ?? option.value));
|
|
561
|
+
}, value: option.value }, option.content ? h("span", { innerHTML: option.content }) : (option.label ?? option.value)));
|
|
550
562
|
}
|
|
551
563
|
getVirtualScrollStyle() {
|
|
552
564
|
return {
|
|
@@ -580,7 +592,7 @@ export class SelectList {
|
|
|
580
592
|
return (h("div", { part: "loading", role: "status", "aria-live": "polite" }, h("slot", { name: "loading" }, h("br-loading", { size: "small", label: "Buscando op\u00E7\u00F5es" }))));
|
|
581
593
|
}
|
|
582
594
|
render() {
|
|
583
|
-
return (h(Host, { key: '
|
|
595
|
+
return (h(Host, { key: '537c7f312573570953b24e27fed7188a052c4bd5' }, h("div", { key: 'aac978e5664c9dee21ba7a6763125fe7daf915d3', class: this.getCssClassMap(), part: "list", ref: (el) => (this.listElement = el), onScroll: this.handleScroll, style: this.getVirtualScrollStyle() }, this.loading ? this.renderLoading() : this.renderVirtualOptions())));
|
|
584
596
|
}
|
|
585
597
|
static get is() { return "br-select-list"; }
|
|
586
598
|
static get encapsulation() { return "shadow"; }
|
|
@@ -904,7 +916,7 @@ export class SelectList {
|
|
|
904
916
|
"signature": "(option: SelectOptionData) => Promise<void>",
|
|
905
917
|
"parameters": [{
|
|
906
918
|
"name": "option",
|
|
907
|
-
"type": "{ disabled?: boolean; indeterminate?: boolean; label?: string; selected?: boolean; value: string; }",
|
|
919
|
+
"type": "{ content?: string; disabled?: boolean; indeterminate?: boolean; label?: string; selected?: boolean; value: string; }",
|
|
908
920
|
"docs": "Op\u00E7\u00E3o que deve ser persistida na lista."
|
|
909
921
|
}],
|
|
910
922
|
"references": {
|
|
@@ -79,7 +79,10 @@ export class SelectOption {
|
|
|
79
79
|
if (this.isRedundantCheckboxReflection(event, current)) {
|
|
80
80
|
return;
|
|
81
81
|
}
|
|
82
|
-
this.
|
|
82
|
+
if (this.isControlledBySelect)
|
|
83
|
+
this.emitStateChange(current);
|
|
84
|
+
else
|
|
85
|
+
this.applySelection(current);
|
|
83
86
|
};
|
|
84
87
|
}
|
|
85
88
|
componentDidLoad() {
|
|
@@ -117,7 +120,11 @@ export class SelectOption {
|
|
|
117
120
|
async setSelectedState(selected) {
|
|
118
121
|
if (this.disabled)
|
|
119
122
|
return;
|
|
120
|
-
|
|
123
|
+
const nextSelected = typeof selected === 'boolean' ? selected : !this.selected;
|
|
124
|
+
if (this.isControlledBySelect)
|
|
125
|
+
this.emitStateChange(nextSelected);
|
|
126
|
+
else
|
|
127
|
+
this.applySelection(nextSelected);
|
|
121
128
|
}
|
|
122
129
|
isRedundantCheckboxReflection(event, nextSelected) {
|
|
123
130
|
if (!event)
|
|
@@ -129,11 +136,11 @@ export class SelectOption {
|
|
|
129
136
|
return false;
|
|
130
137
|
return Boolean(nextSelected) === Boolean(this.selected);
|
|
131
138
|
}
|
|
132
|
-
emitStateChange() {
|
|
139
|
+
emitStateChange(selected = this.selected) {
|
|
133
140
|
const detail = {
|
|
134
141
|
disabled: this.disabled,
|
|
135
142
|
indeterminate: this.indeterminate,
|
|
136
|
-
selected
|
|
143
|
+
selected,
|
|
137
144
|
value: this.getResolvedValue(),
|
|
138
145
|
label: this.getResolvedLabel(),
|
|
139
146
|
};
|
|
@@ -143,6 +150,20 @@ export class SelectOption {
|
|
|
143
150
|
this.lastStateChangeKey = nextKey;
|
|
144
151
|
this.brSelectOptionStateChange.emit(detail);
|
|
145
152
|
}
|
|
153
|
+
get isControlledBySelect() {
|
|
154
|
+
if (this.el.closest('br-select'))
|
|
155
|
+
return true;
|
|
156
|
+
let node = this.el;
|
|
157
|
+
for (;;) {
|
|
158
|
+
const root = node.getRootNode();
|
|
159
|
+
const host = root.host;
|
|
160
|
+
if (!host)
|
|
161
|
+
return false;
|
|
162
|
+
if (host.tagName.toLowerCase() === 'br-select')
|
|
163
|
+
return true;
|
|
164
|
+
node = host;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
146
167
|
/**
|
|
147
168
|
* Centraliza a transição de seleção para manter emissão e limpeza de estado consistentes.
|
|
148
169
|
*
|
|
@@ -209,7 +230,7 @@ export class SelectOption {
|
|
|
209
230
|
return this.normalizeText(this.el.textContent || '');
|
|
210
231
|
}
|
|
211
232
|
render() {
|
|
212
|
-
return (h(Host, { key: '
|
|
233
|
+
return (h(Host, { key: '3b20b8766d73d6a862765fb890028e6ff7374d96', part: "option", exportparts: "checkbox:checkbox, checkbox:option-checkbox", "aria-disabled": this.disabled ? 'true' : 'false', "aria-selected": this.selected ? 'true' : 'false', role: "option", onMouseEnter: () => {
|
|
213
234
|
this.el.dispatchEvent(new CustomEvent('brInternalSelectOptionHover', {
|
|
214
235
|
bubbles: true,
|
|
215
236
|
composed: true,
|
|
@@ -221,7 +242,7 @@ export class SelectOption {
|
|
|
221
242
|
composed: true,
|
|
222
243
|
detail: { label: this.getResolvedLabel(), value: this.getResolvedValue() },
|
|
223
244
|
}));
|
|
224
|
-
} }, h("br-item", { key: '
|
|
245
|
+
} }, h("br-item", { key: '7b32b68bbc5541090e24d81e55602045bdbbba47', class: this.getCssClassMap(), disabled: this.disabled, active: this.active, selected: this.selected, "is-interactive": true, ref: (el) => (this.itemElement = el), onBrItemSelect: this.handleSelect }, this.showCheckbox && (h("br-checkbox", { key: 'fd5426e02e229eaaa8b22d457329cce6acf59e51', exportparts: "input:checkbox, input:option-checkbox", slot: "start", checked: this.selected, disabled: this.disabled, indeterminate: this.indeterminate, name: this.getResolvedValue(), onCheckedChange: this.handleSelect })), h("span", { key: '6185b2e6b60bf65059c321d4118d675859f9940e', class: "br-select-option-label" }, h("slot", { key: 'c78020a423fe1ed34ef39f46301f71baf5b0cbd8' }, this.getResolvedLabel())))));
|
|
225
246
|
}
|
|
226
247
|
static get is() { return "br-select-option"; }
|
|
227
248
|
static get encapsulation() { return "shadow"; }
|
|
@@ -422,7 +443,7 @@ export class SelectOption {
|
|
|
422
443
|
},
|
|
423
444
|
"complexType": {
|
|
424
445
|
"original": "SelectOptionData",
|
|
425
|
-
"resolved": "{ disabled?: boolean; indeterminate?: boolean; label?: string; selected?: boolean; value: string; }",
|
|
446
|
+
"resolved": "{ content?: string; disabled?: boolean; indeterminate?: boolean; label?: string; selected?: boolean; value: string; }",
|
|
426
447
|
"references": {
|
|
427
448
|
"SelectOptionData": {
|
|
428
449
|
"location": "import",
|