@govbr-ds/webcomponents 2.0.0-next.62 → 2.0.0-next.64
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/dist/cjs/br-checkbox.br-input.br-radio.entry.cjs.js.map +1 -1
- package/dist/cjs/br-checkbox_3.cjs.entry.js +17 -28
- package/dist/cjs/br-collapse.br-list.entry.cjs.js.map +1 -1
- package/dist/cjs/br-collapse_2.cjs.entry.js +10 -15
- package/dist/cjs/br-datetime-picker.cjs.entry.js +18 -31
- package/dist/cjs/br-datetime-picker.entry.cjs.js.map +1 -1
- package/dist/cjs/br-dropdown.br-select.entry.cjs.js.map +1 -1
- package/dist/cjs/br-dropdown_2.cjs.entry.js +73 -56
- package/dist/cjs/br-header-list.cjs.entry.js +6 -13
- package/dist/cjs/br-header-list.entry.cjs.js.map +1 -1
- package/dist/cjs/br-header.cjs.entry.js +2 -5
- package/dist/cjs/br-header.entry.cjs.js.map +1 -1
- package/dist/cjs/br-item.cjs.entry.js +3 -6
- package/dist/cjs/br-item.entry.cjs.js.map +1 -1
- package/dist/cjs/br-message.cjs.entry.js +13 -16
- package/dist/cjs/br-message.entry.cjs.js.map +1 -1
- package/dist/cjs/br-modal.cjs.entry.js +8 -13
- package/dist/cjs/br-modal.entry.cjs.js.map +1 -1
- package/dist/cjs/br-scrim.cjs.entry.js +40 -51
- package/dist/cjs/br-scrim.entry.cjs.js.map +1 -1
- package/dist/cjs/br-skip-link.cjs.entry.js +25 -30
- package/dist/cjs/br-skip-link.entry.cjs.js.map +1 -1
- package/dist/cjs/br-skiplink-item.cjs.entry.js +32 -37
- package/dist/cjs/br-skiplink-item.entry.cjs.js.map +1 -1
- package/dist/cjs/br-step.br-step-item.entry.cjs.js.map +1 -1
- package/dist/cjs/br-step_2.cjs.entry.js +33 -56
- package/dist/cjs/br-switch.cjs.entry.js +3 -6
- package/dist/cjs/br-switch.entry.cjs.js.map +1 -1
- package/dist/cjs/br-textarea.cjs.entry.js +5 -8
- package/dist/cjs/br-textarea.entry.cjs.js.map +1 -1
- package/dist/cjs/br-tooltip.cjs.entry.js +1 -2
- package/dist/cjs/br-tooltip.entry.cjs.js.map +1 -1
- package/dist/cjs/br-wizard-panel.cjs.entry.js +6 -13
- package/dist/cjs/br-wizard-panel.entry.cjs.js.map +1 -1
- package/dist/cjs/br-wizard.cjs.entry.js +147 -182
- package/dist/cjs/br-wizard.entry.cjs.js.map +1 -1
- package/dist/cjs/{floating-ui-D_WzFT9x.js → floating-ui-CkTJEp-y.js} +11 -15
- package/dist/{esm/floating-ui-DBIzWbO2.js.map → cjs/floating-ui-CkTJEp-y.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/webcomponents.cjs.js +1 -1
- package/dist/collection/components/checkbox/checkbox.js +9 -16
- package/dist/collection/components/checkbox/checkbox.js.map +1 -1
- package/dist/collection/components/collapse/collapse.js +10 -15
- package/dist/collection/components/collapse/collapse.js.map +1 -1
- package/dist/collection/components/datetime-picker/datetime-picker.js +18 -31
- package/dist/collection/components/datetime-picker/datetime-picker.js.map +1 -1
- package/dist/collection/components/dropdown/dropdown.js +13 -20
- package/dist/collection/components/dropdown/dropdown.js.map +1 -1
- package/dist/collection/components/header/header-list/header-list.js +6 -13
- package/dist/collection/components/header/header-list/header-list.js.map +1 -1
- package/dist/collection/components/header/header.js +2 -5
- package/dist/collection/components/header/header.js.map +1 -1
- package/dist/collection/components/item/item.js +3 -6
- package/dist/collection/components/item/item.js.map +1 -1
- package/dist/collection/components/message/message.js +13 -16
- package/dist/collection/components/message/message.js.map +1 -1
- package/dist/collection/components/modal/modal.js +8 -13
- package/dist/collection/components/modal/modal.js.map +1 -1
- package/dist/collection/components/radio/radio.js +8 -13
- package/dist/collection/components/radio/radio.js.map +1 -1
- package/dist/collection/components/scrim/scrim.js +40 -51
- package/dist/collection/components/scrim/scrim.js.map +1 -1
- package/dist/collection/components/select/select.js +79 -36
- package/dist/collection/components/select/select.js.map +1 -1
- package/dist/collection/components/skip-link/skip-link-item/skip-link-item.js +32 -37
- package/dist/collection/components/skip-link/skip-link-item/skip-link-item.js.map +1 -1
- package/dist/collection/components/skip-link/skip-link.js +25 -30
- package/dist/collection/components/skip-link/skip-link.js.map +1 -1
- package/dist/collection/components/step/step-item/step-item.js +13 -26
- package/dist/collection/components/step/step-item/step-item.js.map +1 -1
- package/dist/collection/components/step/step.js +20 -31
- package/dist/collection/components/step/step.js.map +1 -1
- package/dist/collection/components/switch/switch.js +3 -6
- package/dist/collection/components/switch/switch.js.map +1 -1
- package/dist/collection/components/textarea/textarea.js +5 -8
- package/dist/collection/components/textarea/textarea.js.map +1 -1
- package/dist/collection/components/wizard/wizard-panel/wizard-panel.js +6 -13
- package/dist/collection/components/wizard/wizard-panel/wizard-panel.js.map +1 -1
- package/dist/collection/components/wizard/wizard.js +147 -182
- package/dist/collection/components/wizard/wizard.js.map +1 -1
- package/dist/collection/utils/floating-ui.js +9 -12
- package/dist/collection/utils/floating-ui.js.map +1 -1
- package/dist/components/br-breadcrumb.js +3 -3
- package/dist/components/br-checkbox.js +4 -4
- package/dist/components/br-checkgroup.js +1 -1
- package/dist/components/br-collapse.js +4 -4
- package/dist/components/br-datetime-picker.js +1981 -1995
- package/dist/components/br-datetime-picker.js.map +1 -1
- package/dist/components/br-dropdown.js +1 -1
- package/dist/components/br-footer-category.js +3 -3
- package/dist/components/br-footer-item.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 +31 -39
- package/dist/components/br-header-list.js.map +1 -1
- package/dist/components/br-header.js +63 -67
- package/dist/components/br-header.js.map +1 -1
- package/dist/components/br-item.js +1 -1
- package/dist/components/br-list.js +3 -3
- package/dist/components/br-message.js +28 -32
- package/dist/components/br-message.js.map +1 -1
- package/dist/components/br-modal.js +21 -27
- package/dist/components/br-modal.js.map +1 -1
- package/dist/components/br-pagination.js +7 -7
- package/dist/components/br-radio.js +1 -1
- package/dist/components/br-scrim.js +49 -61
- package/dist/components/br-scrim.js.map +1 -1
- package/dist/components/br-select.js +3 -3
- package/dist/components/br-skip-link.js +42 -49
- package/dist/components/br-skip-link.js.map +1 -1
- package/dist/components/br-skiplink-item.js +55 -61
- package/dist/components/br-skiplink-item.js.map +1 -1
- package/dist/components/br-step-item.js +4 -4
- package/dist/components/br-step.js +4 -4
- package/dist/components/br-switch.js +12 -16
- package/dist/components/br-switch.js.map +1 -1
- package/dist/components/br-textarea.js +14 -18
- package/dist/components/br-textarea.js.map +1 -1
- package/dist/components/br-tooltip.js +1 -1
- package/dist/components/br-wizard-panel.js +13 -21
- package/dist/components/br-wizard-panel.js.map +1 -1
- package/dist/components/br-wizard.js +190 -228
- package/dist/components/br-wizard.js.map +1 -1
- package/dist/components/{p-Cc75U9ZX.js → p-B_YesJM8.js} +26 -34
- package/dist/components/{p-Cc75U9ZX.js.map → p-B_YesJM8.js.map} +1 -1
- package/dist/components/{p-xFn46pdm.js → p-Bc03PTAW.js} +27 -39
- package/dist/components/{p-xFn46pdm.js.map → p-Bc03PTAW.js.map} +1 -1
- package/dist/components/{p-DzKEfDGA.js → p-Bri6ECVa.js} +27 -33
- package/dist/components/{p-DzKEfDGA.js.map → p-Bri6ECVa.js.map} +1 -1
- package/dist/components/{p-BZ8BetvD.js → p-CJSXIVVe.js} +17 -23
- package/dist/components/{p-BZ8BetvD.js.map → p-CJSXIVVe.js.map} +1 -1
- package/dist/components/{p-D9c7NikS.js → p-CWRBs6PD.js} +24 -38
- package/dist/components/{p-D9c7NikS.js.map → p-CWRBs6PD.js.map} +1 -1
- package/dist/components/{p-D0dPo1K5.js → p-CwtLw60M.js} +12 -16
- package/dist/components/{p-D0dPo1K5.js.map → p-CwtLw60M.js.map} +1 -1
- package/dist/components/{p-z1PVVVFI.js → p-DW63EY0U.js} +27 -35
- package/dist/components/{p-z1PVVVFI.js.map → p-DW63EY0U.js.map} +1 -1
- package/dist/components/{p-7kxAU6Gr.js → p-DdjKNpU3.js} +92 -72
- package/dist/components/p-DdjKNpU3.js.map +1 -0
- package/dist/{webcomponents/p-B4au_byv.js → components/p-k0WZfTfL.js} +121 -124
- package/dist/components/{p-B4au_byv.js.map → p-k0WZfTfL.js.map} +1 -1
- package/dist/components/{p-OKkBxn1z.js → p-lIb35q2K.js} +3 -3
- package/dist/custom-elements.json +19459 -0
- package/dist/esm/br-checkbox.br-input.br-radio.entry.js.map +1 -1
- package/dist/esm/br-checkbox_3.entry.js +17 -28
- package/dist/esm/br-collapse.br-list.entry.js.map +1 -1
- package/dist/esm/br-collapse_2.entry.js +10 -15
- package/dist/esm/br-datetime-picker.entry.js +18 -31
- package/dist/esm/br-datetime-picker.entry.js.map +1 -1
- package/dist/esm/br-dropdown.br-select.entry.js.map +1 -1
- package/dist/esm/br-dropdown_2.entry.js +73 -56
- package/dist/esm/br-header-list.entry.js +6 -13
- package/dist/esm/br-header-list.entry.js.map +1 -1
- package/dist/esm/br-header.entry.js +2 -5
- package/dist/esm/br-header.entry.js.map +1 -1
- package/dist/esm/br-item.entry.js +3 -6
- package/dist/esm/br-item.entry.js.map +1 -1
- package/dist/esm/br-message.entry.js +13 -16
- package/dist/esm/br-message.entry.js.map +1 -1
- package/dist/esm/br-modal.entry.js +8 -13
- package/dist/esm/br-modal.entry.js.map +1 -1
- package/dist/esm/br-scrim.entry.js +40 -51
- package/dist/esm/br-scrim.entry.js.map +1 -1
- package/dist/esm/br-skip-link.entry.js +25 -30
- package/dist/esm/br-skip-link.entry.js.map +1 -1
- package/dist/esm/br-skiplink-item.entry.js +32 -37
- package/dist/esm/br-skiplink-item.entry.js.map +1 -1
- package/dist/esm/br-step.br-step-item.entry.js.map +1 -1
- package/dist/esm/br-step_2.entry.js +33 -56
- package/dist/esm/br-switch.entry.js +3 -6
- package/dist/esm/br-switch.entry.js.map +1 -1
- package/dist/esm/br-textarea.entry.js +5 -8
- package/dist/esm/br-textarea.entry.js.map +1 -1
- package/dist/esm/br-tooltip.entry.js +1 -2
- package/dist/esm/br-tooltip.entry.js.map +1 -1
- package/dist/esm/br-wizard-panel.entry.js +6 -13
- package/dist/esm/br-wizard-panel.entry.js.map +1 -1
- package/dist/esm/br-wizard.entry.js +147 -182
- package/dist/esm/br-wizard.entry.js.map +1 -1
- package/dist/esm/{floating-ui-DBIzWbO2.js → floating-ui-k0WZfTfL.js} +11 -15
- package/dist/{cjs/floating-ui-D_WzFT9x.js.map → esm/floating-ui-k0WZfTfL.js.map} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/webcomponents.js +1 -1
- package/dist/hydrate/index.js +451 -592
- package/dist/hydrate/index.mjs +451 -592
- package/dist/types/components/select/select.d.ts +5 -0
- package/dist/types/components.d.ts +10 -0
- package/dist/webcomponents/br-checkbox.br-input.br-radio.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-collapse.br-list.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-datetime-picker.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-dropdown.br-select.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-header-list.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-header.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-item.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-message.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-modal.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-scrim.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-skip-link.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-skiplink-item.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-step.br-step-item.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-switch.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-textarea.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-tooltip.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-wizard-panel.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-wizard.entry.esm.js.map +1 -1
- package/dist/webcomponents/{p-2fe329d6.entry.js → p-10e25a32.entry.js} +28 -34
- package/dist/webcomponents/p-10e25a32.entry.js.map +1 -0
- package/dist/webcomponents/{p-61e5421b.entry.js → p-27eb10f9.entry.js} +57 -61
- package/dist/webcomponents/p-27eb10f9.entry.js.map +1 -0
- package/dist/webcomponents/{p-097912c2.entry.js → p-2be1c309.entry.js} +34 -41
- package/dist/webcomponents/p-2be1c309.entry.js.map +1 -0
- package/dist/webcomponents/{p-5070161f.entry.js → p-30af66b3.entry.js} +45 -51
- package/dist/webcomponents/p-30af66b3.entry.js.map +1 -0
- package/dist/webcomponents/{p-9464b692.entry.js → p-336071a5.entry.js} +2 -4
- package/dist/webcomponents/p-336071a5.entry.js.map +1 -0
- package/dist/webcomponents/{p-8a034433.entry.js → p-462c5647.entry.js} +20 -24
- package/dist/webcomponents/p-462c5647.entry.js.map +1 -0
- package/dist/webcomponents/{p-d674cee3.entry.js → p-46dfc3ee.entry.js} +12 -16
- package/dist/webcomponents/p-46dfc3ee.entry.js.map +1 -0
- package/dist/webcomponents/{p-821b896c.entry.js → p-56aabe89.entry.js} +36 -44
- package/dist/webcomponents/p-56aabe89.entry.js.map +1 -0
- package/dist/webcomponents/{p-a615baaa.entry.js → p-5710a3e9.entry.js} +41 -65
- package/dist/webcomponents/p-5710a3e9.entry.js.map +1 -0
- package/dist/webcomponents/{p-1799a082.entry.js → p-6a9d2a0b.entry.js} +1996 -2010
- package/dist/webcomponents/p-6a9d2a0b.entry.js.map +1 -0
- package/dist/webcomponents/{p-8ad1f003.entry.js → p-83001853.entry.js} +175 -213
- package/dist/webcomponents/p-83001853.entry.js.map +1 -0
- package/dist/webcomponents/{p-463b06a4.entry.js → p-90401ecd.entry.js} +32 -38
- package/dist/webcomponents/p-90401ecd.entry.js.map +1 -0
- package/dist/webcomponents/{p-216dc111.entry.js → p-a2eec4fb.entry.js} +49 -61
- package/dist/webcomponents/p-a2eec4fb.entry.js.map +1 -0
- package/dist/webcomponents/{p-d6475852.entry.js → p-c1b0a116.entry.js} +11 -19
- package/dist/webcomponents/p-c1b0a116.entry.js.map +1 -0
- package/dist/webcomponents/{p-c90a089a.entry.js → p-ca2d95f7.entry.js} +96 -83
- package/dist/webcomponents/p-ca2d95f7.entry.js.map +1 -0
- package/dist/webcomponents/{p-7ff6698f.entry.js → p-cfa86a23.entry.js} +10 -14
- package/dist/webcomponents/p-cfa86a23.entry.js.map +1 -0
- package/dist/webcomponents/{p-abc0ecbe.entry.js → p-e5875d3d.entry.js} +10 -14
- package/dist/webcomponents/p-e5875d3d.entry.js.map +1 -0
- package/dist/webcomponents/{p-0bfb0edf.entry.js → p-f2ea0d7e.entry.js} +133 -145
- package/dist/webcomponents/p-f2ea0d7e.entry.js.map +1 -0
- package/dist/{components/p-B4au_byv.js → webcomponents/p-k0WZfTfL.js} +121 -124
- package/dist/webcomponents/{p-B4au_byv.js.map → p-k0WZfTfL.js.map} +1 -1
- package/dist/webcomponents/webcomponents.esm.js +1 -1
- package/dist/webcomponents.html-custom-data.json +2573 -0
- package/package.json +1 -1
- package/dist/cjs/tslib.es6-CF44W9Bn.js +0 -42
- package/dist/cjs/tslib.es6-CF44W9Bn.js.map +0 -1
- package/dist/components/p-7kxAU6Gr.js.map +0 -1
- package/dist/components/p-DIPMDb5E.js +0 -55
- package/dist/components/p-DIPMDb5E.js.map +0 -1
- package/dist/esm/tslib.es6-DIPMDb5E.js +0 -40
- package/dist/esm/tslib.es6-DIPMDb5E.js.map +0 -1
- package/dist/webcomponents/p-097912c2.entry.js.map +0 -1
- package/dist/webcomponents/p-0bfb0edf.entry.js.map +0 -1
- package/dist/webcomponents/p-1799a082.entry.js.map +0 -1
- package/dist/webcomponents/p-216dc111.entry.js.map +0 -1
- package/dist/webcomponents/p-2fe329d6.entry.js.map +0 -1
- package/dist/webcomponents/p-463b06a4.entry.js.map +0 -1
- package/dist/webcomponents/p-5070161f.entry.js.map +0 -1
- package/dist/webcomponents/p-61e5421b.entry.js.map +0 -1
- package/dist/webcomponents/p-7ff6698f.entry.js.map +0 -1
- package/dist/webcomponents/p-821b896c.entry.js.map +0 -1
- package/dist/webcomponents/p-8a034433.entry.js.map +0 -1
- package/dist/webcomponents/p-8ad1f003.entry.js.map +0 -1
- package/dist/webcomponents/p-9464b692.entry.js.map +0 -1
- package/dist/webcomponents/p-DIPMDb5E.js +0 -55
- package/dist/webcomponents/p-DIPMDb5E.js.map +0 -1
- package/dist/webcomponents/p-a615baaa.entry.js.map +0 -1
- package/dist/webcomponents/p-abc0ecbe.entry.js.map +0 -1
- package/dist/webcomponents/p-c90a089a.entry.js.map +0 -1
- package/dist/webcomponents/p-d6475852.entry.js.map +0 -1
- package/dist/webcomponents/p-d674cee3.entry.js.map +0 -1
- /package/dist/components/{p-OKkBxn1z.js.map → p-lIb35q2K.js.map} +0 -0
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* © https://serpro.gov.br/ - MIT License.
|
|
4
4
|
*/
|
|
5
5
|
import { r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-ByGJPTh2.js';
|
|
6
|
-
import { _ as __awaiter } from './tslib.es6-DIPMDb5E.js';
|
|
7
6
|
import { B as BreakpointObserver, a as BREAKPOINTS } from './breakpoint-observer-CqgyNPQx.js';
|
|
8
7
|
import { H as Helpers } from './helpers-D4N4PPot.js';
|
|
9
8
|
|
|
@@ -144,27 +143,21 @@ const HeaderList = class {
|
|
|
144
143
|
/**
|
|
145
144
|
* Fecha a lista.
|
|
146
145
|
*/
|
|
147
|
-
closeList() {
|
|
148
|
-
|
|
149
|
-
this.showList = false;
|
|
150
|
-
});
|
|
146
|
+
async closeList() {
|
|
147
|
+
this.showList = false;
|
|
151
148
|
}
|
|
152
149
|
/**
|
|
153
150
|
* Verifica se a lista está aberta.
|
|
154
151
|
* @returns Um booleano indicando se a lista está aberta.
|
|
155
152
|
*/
|
|
156
|
-
isListOpen() {
|
|
157
|
-
return
|
|
158
|
-
return this.showList;
|
|
159
|
-
});
|
|
153
|
+
async isListOpen() {
|
|
154
|
+
return this.showList;
|
|
160
155
|
}
|
|
161
156
|
/**
|
|
162
157
|
* Abre a lista.
|
|
163
158
|
*/
|
|
164
|
-
openList() {
|
|
165
|
-
|
|
166
|
-
this.showList = true;
|
|
167
|
-
});
|
|
159
|
+
async openList() {
|
|
160
|
+
this.showList = true;
|
|
168
161
|
}
|
|
169
162
|
/**
|
|
170
163
|
* Adiciona os listeners ao botão de disparo.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"br-header-list.entry.js","sources":["../../packages/webcomponents/src/components/header/header-list/header-list.scss?tag=br-header-list&encapsulation=shadow","../../packages/webcomponents/src/components/header/header-list/header-list.tsx"],"sourcesContent":["// @import \"~@govbr-ds/core/src/components/header-list/header-list\";\n\n:host {\n display: block;\n}\n\n.br-header-list {\n br-list {\n display: none;\n position: absolute;\n top: 64px;\n left: 0;\n right: 0;\n min-width: max-content;\n box-shadow: var(--surface-shadow-sm);\n z-index: var(--z-index-layer-3);\n\n &[is-visible] {\n display: block;\n }\n }\n}\n\n@media (width >= 576px) {\n .br-header-list {\n br-list {\n top: 48px;\n right: auto;\n left: auto;\n }\n }\n}\n\n@media (width >= 1280px) {\n .br-header-list {\n br-list {\n &[is-horizontal] {\n position: static;\n box-shadow: none;\n min-width: auto;\n }\n }\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop, State } from '@stencil/core'\n\nimport { Breakpoint, BreakpointObserver, BREAKPOINTS } from '../../../utils/breakpoint-observer'\nimport Helpers from '../../../utils/helpers'\nimport { CssClassMap } from '../../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/header?tab=designer).\n *\n * @slot default - Slot para o conteúdo da lista de navegação no cabeçalho.\n */\n@Component({\n tag: 'br-header-list',\n styleUrl: 'header-list.scss',\n shadow: true,\n})\nexport class HeaderList {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrHeaderListElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Título da lista.\n */\n @Prop({ reflect: true }) readonly listTitle: string = null\n\n /**\n * Área atual.\n */\n @State() slotReference: string = null\n\n /**\n * Indica o breakpoint atual.\n */\n @State() currentBreakpoint: Breakpoint\n\n /**\n * Indica se o cabeçalho está encolhido.\n */\n @State() isShrunk: boolean = false\n\n /**\n * Indica se a lista está visível.\n */\n @State() showList: boolean = false\n\n /**\n * Evento disparado para indicar qual lista deve encolher primeiro.\n * O evento envia o ID do componente pai e o nome da lista.\n * @event headerWidthChange\n */\n @Event({\n eventName: 'headerListUpdate',\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n headerListUpdate: EventEmitter<{ id: string; listName: string }>\n\n /**\n * Evento disparado quando a lista recebe foco.\n * O evento envia o ID do componente.\n * @event headerListFocused\n */\n @Event({\n eventName: 'headerListFocused',\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n headerListFocused: EventEmitter<{ id: string }>\n\n /**\n * Observador de mudanças de breakpoint.\n */\n private breakpointObserver: BreakpointObserver\n\n /**\n * Referência ao elemento de lista.\n */\n private listElement: HTMLBrListElement\n\n /**\n * Referência ao botão de disparo.\n */\n private triggerButton: HTMLBrButtonElement\n\n /**\n * Indica se o botão de disparo foi clicado.\n */\n private triggerClicked: boolean = false\n\n /**\n * Listener para o evento 'headerWidthChange', disparado pelo componente pai 'br-header'.\n * O evento contém o ID do pai e o nome da lista.\n * Se o ID do pai corresponder ao ID do cabeçalho atual, o evento será tratado.\n * @param event O evento customizado contendo o ID do pai e o nome da lista.\n */\n @Listen('headerWidthChange', { target: 'document', passive: true })\n private handleHeaderWidthChange(event: CustomEvent<{ id: string; listNames: string[]; shrink: boolean }>) {\n if (event.detail.id === this.el.parentElement.shadowRoot.querySelector('.br-header').id) {\n if (event.detail.listNames.includes(this.slotReference)) {\n this.isShrunk = event.detail.shrink\n this.headerListUpdate.emit({ id: event.detail.id, listName: this.slotReference })\n }\n }\n }\n\n /**\n * Listener para o evento 'headerListFocused', disparado por outras listas.\n * O evento contém o ID da lista que recebeu foco.\n * Se o ID não corresponder ao ID da lista atual, a lista será ocultada.\n * @param event O evento customizado contendo o ID da lista que recebeu foco.\n */\n @Listen('headerListFocused', { target: 'document', passive: true })\n private handleHeaderListFocused(event: CustomEvent<{ id: string }>) {\n if (event.detail.id !== this.customId) {\n this.showList = false\n }\n }\n\n /**\n * Ciclo de vida do componente.\n * Executado quando o componente é conectado ao DOM.\n */\n connectedCallback() {\n this.setBreakpointObserver()\n this.slotReference = this.el.getAttribute('slot')\n }\n\n /**\n * Ciclo de vida do componente.\n * Executado uma vez após o componente ser totalmente carregado no DOM.\n */\n componentDidLoad() {\n document.addEventListener('mousedown', this.handleClickOutsideList)\n\n if (this.triggerButton !== null) {\n this.addTriggerListeners()\n }\n\n void this.handleHeaderWidthChange\n void this.handleHeaderListFocused\n }\n\n /**\n * Ciclo de vida do componente.\n * Executado logo após o componente ser atualizado.\n */\n componentDidUpdate() {\n if (this.triggerButton !== null) {\n this.removeTriggerListeners()\n this.addTriggerListeners()\n }\n }\n\n /**\n * Ciclo de vida do componente.\n * Executado quando o componente é desconectado do DOM.\n */\n disconnectedCallback() {\n document.removeEventListener('mousedown', this.handleClickOutsideList)\n this.removeTriggerListeners()\n }\n\n /**\n * Fecha a lista.\n */\n @Method()\n async closeList() {\n this.showList = false\n }\n\n /**\n * Verifica se a lista está aberta.\n * @returns Um booleano indicando se a lista está aberta.\n */\n @Method()\n async isListOpen(): Promise<boolean> {\n return this.showList\n }\n\n /**\n * Abre a lista.\n */\n @Method()\n async openList(): Promise<void> {\n this.showList = true\n }\n\n /**\n * Manipula as mudanças de breakpoint.\n * @param breakpoint O breakpoint ativo.\n */\n private handleBreakpointChange = (breakpoint: Breakpoint) => {\n this.currentBreakpoint = breakpoint\n if (BreakpointObserver.getBreakpoints('from', BREAKPOINTS.LARGE).includes(breakpoint)) {\n this.showList = false\n }\n }\n\n /**\n * Manipula o clique no botão dropdown.\n */\n private handleDropdownButtonClick = () => {\n this.showList = !this.showList\n }\n\n /**\n * Manipula o clique fora da lista.\n * @param event O evento de Mouse\n */\n private handleClickOutsideList = (event: MouseEvent) => {\n const path = event.composedPath()\n const listClicked = this.listElement && path.includes(this.listElement)\n\n if (this.showList && !this.triggerClicked && !listClicked) {\n this.showList = false\n }\n\n this.triggerClicked = false\n }\n\n /**\n * Manipula o foco no botão de disparo.\n */\n private handleTriggerFocus = () => {\n this.headerListFocused.emit({ id: this.customId })\n }\n\n /**\n * Manipula o evento mousedown no botão de disparo.\n */\n private handleTriggerMouseDown = () => {\n this.triggerClicked = true\n }\n\n /**\n * Adiciona os listeners ao botão de disparo.\n */\n private addTriggerListeners() {\n this.triggerButton?.addEventListener('mousedown', this.handleTriggerMouseDown)\n this.triggerButton?.addEventListener('click', this.handleDropdownButtonClick)\n this.triggerButton?.addEventListener('focus', this.handleTriggerFocus)\n }\n\n /**\n * Define as classes CSS a serem aplicadas ao componente.\n * @returns Um objeto contendo as classes CSS a serem aplicadas ao componente.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-header-list': true,\n }\n }\n\n /**\n * Remove os listeners do botão de disparo.\n */\n private removeTriggerListeners() {\n this.triggerButton?.removeEventListener('mousedown', this.handleTriggerMouseDown)\n this.triggerButton?.removeEventListener('click', this.handleDropdownButtonClick)\n this.triggerButton?.removeEventListener('focus', this.handleTriggerFocus)\n }\n\n /**\n * Configura o observador de mudanças de breakpoint.\n */\n private setBreakpointObserver() {\n this.breakpointObserver = new BreakpointObserver()\n this.breakpointObserver.subscribe(this.handleBreakpointChange)\n }\n\n /**\n * Renderiza o componente de lista.\n * @returns JSX do componente de lista.\n */\n private renderList() {\n return (\n <br-list\n ref={(element) => (this.listElement = element)}\n slot={\n BreakpointObserver.getBreakpoints('until', BREAKPOINTS.MEDIUM).includes(this.currentBreakpoint) ||\n this.isShrunk\n ? 'target'\n : null\n }\n is-horizontal={\n BreakpointObserver.getBreakpoints('from', BREAKPOINTS.LARGE).includes(this.currentBreakpoint) &&\n !this.isShrunk\n ? 'true'\n : null\n }\n header={\n BreakpointObserver.getBreakpoints('until', BREAKPOINTS.MEDIUM).includes(this.currentBreakpoint) ||\n this.isShrunk\n ? this.listTitle\n : null\n }\n is-visible={\n BreakpointObserver.getBreakpoints('from', BREAKPOINTS.LARGE).includes(this.currentBreakpoint) &&\n !this.isShrunk\n ? 'true'\n : this.showList\n ? 'true'\n : null\n }\n hide-header-divider\n >\n <slot></slot>\n </br-list>\n )\n }\n\n /**\n * Renderiza o botão dropdown.\n * @returns JSX do botão dropdown.\n */\n private renderDropdownButton() {\n return (\n <br-button\n ref={(element) => (this.triggerButton = element)}\n slot=\"trigger\"\n shape=\"circle\"\n emphasis=\"tertiary\"\n density=\"small\"\n aria-label={this.listTitle || `Abrir lista de ${this.slotReference}`}\n >\n <br-icon\n icon-name={this.slotReference === 'links' ? 'fa7-solid:ellipsis-vertical' : 'fa7-solid:grid-vertical'}\n ></br-icon>\n </br-button>\n )\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX do componente.\n */\n render() {\n return (\n <Host>\n <div class={this.getCssClassMap()}>\n {BreakpointObserver.getBreakpoints('until', BREAKPOINTS.MEDIUM).includes(this.currentBreakpoint) ||\n this.isShrunk\n ? this.renderDropdownButton()\n : null}\n {this.renderList()}\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"br-header-list.entry.js","sources":["../../packages/webcomponents/src/components/header/header-list/header-list.scss?tag=br-header-list&encapsulation=shadow","../../packages/webcomponents/src/components/header/header-list/header-list.tsx"],"sourcesContent":["// @import \"~@govbr-ds/core/src/components/header-list/header-list\";\n\n:host {\n display: block;\n}\n\n.br-header-list {\n br-list {\n display: none;\n position: absolute;\n top: 64px;\n left: 0;\n right: 0;\n min-width: max-content;\n box-shadow: var(--surface-shadow-sm);\n z-index: var(--z-index-layer-3);\n\n &[is-visible] {\n display: block;\n }\n }\n}\n\n@media (width >= 576px) {\n .br-header-list {\n br-list {\n top: 48px;\n right: auto;\n left: auto;\n }\n }\n}\n\n@media (width >= 1280px) {\n .br-header-list {\n br-list {\n &[is-horizontal] {\n position: static;\n box-shadow: none;\n min-width: auto;\n }\n }\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop, State } from '@stencil/core'\n\nimport { Breakpoint, BreakpointObserver, BREAKPOINTS } from '../../../utils/breakpoint-observer'\nimport Helpers from '../../../utils/helpers'\nimport { CssClassMap } from '../../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/header?tab=designer).\n *\n * @slot default - Slot para o conteúdo da lista de navegação no cabeçalho.\n */\n@Component({\n tag: 'br-header-list',\n styleUrl: 'header-list.scss',\n shadow: true,\n})\nexport class HeaderList {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrHeaderListElement\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Título da lista.\n */\n @Prop({ reflect: true }) readonly listTitle: string = null\n\n /**\n * Área atual.\n */\n @State() slotReference: string = null\n\n /**\n * Indica o breakpoint atual.\n */\n @State() currentBreakpoint: Breakpoint\n\n /**\n * Indica se o cabeçalho está encolhido.\n */\n @State() isShrunk: boolean = false\n\n /**\n * Indica se a lista está visível.\n */\n @State() showList: boolean = false\n\n /**\n * Evento disparado para indicar qual lista deve encolher primeiro.\n * O evento envia o ID do componente pai e o nome da lista.\n * @event headerWidthChange\n */\n @Event({\n eventName: 'headerListUpdate',\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n headerListUpdate: EventEmitter<{ id: string; listName: string }>\n\n /**\n * Evento disparado quando a lista recebe foco.\n * O evento envia o ID do componente.\n * @event headerListFocused\n */\n @Event({\n eventName: 'headerListFocused',\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n headerListFocused: EventEmitter<{ id: string }>\n\n /**\n * Observador de mudanças de breakpoint.\n */\n private breakpointObserver: BreakpointObserver\n\n /**\n * Referência ao elemento de lista.\n */\n private listElement: HTMLBrListElement\n\n /**\n * Referência ao botão de disparo.\n */\n private triggerButton: HTMLBrButtonElement\n\n /**\n * Indica se o botão de disparo foi clicado.\n */\n private triggerClicked: boolean = false\n\n /**\n * Listener para o evento 'headerWidthChange', disparado pelo componente pai 'br-header'.\n * O evento contém o ID do pai e o nome da lista.\n * Se o ID do pai corresponder ao ID do cabeçalho atual, o evento será tratado.\n * @param event O evento customizado contendo o ID do pai e o nome da lista.\n */\n @Listen('headerWidthChange', { target: 'document', passive: true })\n private handleHeaderWidthChange(event: CustomEvent<{ id: string; listNames: string[]; shrink: boolean }>) {\n if (event.detail.id === this.el.parentElement.shadowRoot.querySelector('.br-header').id) {\n if (event.detail.listNames.includes(this.slotReference)) {\n this.isShrunk = event.detail.shrink\n this.headerListUpdate.emit({ id: event.detail.id, listName: this.slotReference })\n }\n }\n }\n\n /**\n * Listener para o evento 'headerListFocused', disparado por outras listas.\n * O evento contém o ID da lista que recebeu foco.\n * Se o ID não corresponder ao ID da lista atual, a lista será ocultada.\n * @param event O evento customizado contendo o ID da lista que recebeu foco.\n */\n @Listen('headerListFocused', { target: 'document', passive: true })\n private handleHeaderListFocused(event: CustomEvent<{ id: string }>) {\n if (event.detail.id !== this.customId) {\n this.showList = false\n }\n }\n\n /**\n * Ciclo de vida do componente.\n * Executado quando o componente é conectado ao DOM.\n */\n connectedCallback() {\n this.setBreakpointObserver()\n this.slotReference = this.el.getAttribute('slot')\n }\n\n /**\n * Ciclo de vida do componente.\n * Executado uma vez após o componente ser totalmente carregado no DOM.\n */\n componentDidLoad() {\n document.addEventListener('mousedown', this.handleClickOutsideList)\n\n if (this.triggerButton !== null) {\n this.addTriggerListeners()\n }\n\n void this.handleHeaderWidthChange\n void this.handleHeaderListFocused\n }\n\n /**\n * Ciclo de vida do componente.\n * Executado logo após o componente ser atualizado.\n */\n componentDidUpdate() {\n if (this.triggerButton !== null) {\n this.removeTriggerListeners()\n this.addTriggerListeners()\n }\n }\n\n /**\n * Ciclo de vida do componente.\n * Executado quando o componente é desconectado do DOM.\n */\n disconnectedCallback() {\n document.removeEventListener('mousedown', this.handleClickOutsideList)\n this.removeTriggerListeners()\n }\n\n /**\n * Fecha a lista.\n */\n @Method()\n async closeList() {\n this.showList = false\n }\n\n /**\n * Verifica se a lista está aberta.\n * @returns Um booleano indicando se a lista está aberta.\n */\n @Method()\n async isListOpen(): Promise<boolean> {\n return this.showList\n }\n\n /**\n * Abre a lista.\n */\n @Method()\n async openList(): Promise<void> {\n this.showList = true\n }\n\n /**\n * Manipula as mudanças de breakpoint.\n * @param breakpoint O breakpoint ativo.\n */\n private handleBreakpointChange = (breakpoint: Breakpoint) => {\n this.currentBreakpoint = breakpoint\n if (BreakpointObserver.getBreakpoints('from', BREAKPOINTS.LARGE).includes(breakpoint)) {\n this.showList = false\n }\n }\n\n /**\n * Manipula o clique no botão dropdown.\n */\n private handleDropdownButtonClick = () => {\n this.showList = !this.showList\n }\n\n /**\n * Manipula o clique fora da lista.\n * @param event O evento de Mouse\n */\n private handleClickOutsideList = (event: MouseEvent) => {\n const path = event.composedPath()\n const listClicked = this.listElement && path.includes(this.listElement)\n\n if (this.showList && !this.triggerClicked && !listClicked) {\n this.showList = false\n }\n\n this.triggerClicked = false\n }\n\n /**\n * Manipula o foco no botão de disparo.\n */\n private handleTriggerFocus = () => {\n this.headerListFocused.emit({ id: this.customId })\n }\n\n /**\n * Manipula o evento mousedown no botão de disparo.\n */\n private handleTriggerMouseDown = () => {\n this.triggerClicked = true\n }\n\n /**\n * Adiciona os listeners ao botão de disparo.\n */\n private addTriggerListeners() {\n this.triggerButton?.addEventListener('mousedown', this.handleTriggerMouseDown)\n this.triggerButton?.addEventListener('click', this.handleDropdownButtonClick)\n this.triggerButton?.addEventListener('focus', this.handleTriggerFocus)\n }\n\n /**\n * Define as classes CSS a serem aplicadas ao componente.\n * @returns Um objeto contendo as classes CSS a serem aplicadas ao componente.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-header-list': true,\n }\n }\n\n /**\n * Remove os listeners do botão de disparo.\n */\n private removeTriggerListeners() {\n this.triggerButton?.removeEventListener('mousedown', this.handleTriggerMouseDown)\n this.triggerButton?.removeEventListener('click', this.handleDropdownButtonClick)\n this.triggerButton?.removeEventListener('focus', this.handleTriggerFocus)\n }\n\n /**\n * Configura o observador de mudanças de breakpoint.\n */\n private setBreakpointObserver() {\n this.breakpointObserver = new BreakpointObserver()\n this.breakpointObserver.subscribe(this.handleBreakpointChange)\n }\n\n /**\n * Renderiza o componente de lista.\n * @returns JSX do componente de lista.\n */\n private renderList() {\n return (\n <br-list\n ref={(element) => (this.listElement = element)}\n slot={\n BreakpointObserver.getBreakpoints('until', BREAKPOINTS.MEDIUM).includes(this.currentBreakpoint) ||\n this.isShrunk\n ? 'target'\n : null\n }\n is-horizontal={\n BreakpointObserver.getBreakpoints('from', BREAKPOINTS.LARGE).includes(this.currentBreakpoint) &&\n !this.isShrunk\n ? 'true'\n : null\n }\n header={\n BreakpointObserver.getBreakpoints('until', BREAKPOINTS.MEDIUM).includes(this.currentBreakpoint) ||\n this.isShrunk\n ? this.listTitle\n : null\n }\n is-visible={\n BreakpointObserver.getBreakpoints('from', BREAKPOINTS.LARGE).includes(this.currentBreakpoint) &&\n !this.isShrunk\n ? 'true'\n : this.showList\n ? 'true'\n : null\n }\n hide-header-divider\n >\n <slot></slot>\n </br-list>\n )\n }\n\n /**\n * Renderiza o botão dropdown.\n * @returns JSX do botão dropdown.\n */\n private renderDropdownButton() {\n return (\n <br-button\n ref={(element) => (this.triggerButton = element)}\n slot=\"trigger\"\n shape=\"circle\"\n emphasis=\"tertiary\"\n density=\"small\"\n aria-label={this.listTitle || `Abrir lista de ${this.slotReference}`}\n >\n <br-icon\n icon-name={this.slotReference === 'links' ? 'fa7-solid:ellipsis-vertical' : 'fa7-solid:grid-vertical'}\n ></br-icon>\n </br-button>\n )\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX do componente.\n */\n render() {\n return (\n <Host>\n <div class={this.getCssClassMap()}>\n {BreakpointObserver.getBreakpoints('until', BREAKPOINTS.MEDIUM).includes(this.currentBreakpoint) ||\n this.isShrunk\n ? this.renderDropdownButton()\n : null}\n {this.renderList()}\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* © https://serpro.gov.br/ - MIT License.
|
|
4
4
|
*/
|
|
5
5
|
import { r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-ByGJPTh2.js';
|
|
6
|
-
import { _ as __awaiter } from './tslib.es6-DIPMDb5E.js';
|
|
7
6
|
import { B as BreakpointObserver, a as BREAKPOINTS } from './breakpoint-observer-CqgyNPQx.js';
|
|
8
7
|
import { H as Helpers } from './helpers-D4N4PPot.js';
|
|
9
8
|
|
|
@@ -294,10 +293,8 @@ const Header = class {
|
|
|
294
293
|
* Reinicializa o estado das listas do cabeçalho, disparando o evento de redimensionamento.
|
|
295
294
|
* Pode ser chamado externamente para forçar a atualização das listas.
|
|
296
295
|
*/
|
|
297
|
-
resetHeaderList() {
|
|
298
|
-
|
|
299
|
-
this.handleListResize();
|
|
300
|
-
});
|
|
296
|
+
async resetHeaderList() {
|
|
297
|
+
this.handleListResize();
|
|
301
298
|
}
|
|
302
299
|
/**
|
|
303
300
|
* Manipula as mudanças de breakpoint.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"br-header.entry.js","sources":["../../packages/webcomponents/src/components/header/header.scss?tag=br-header&encapsulation=shadow","../../packages/webcomponents/src/components/header/header.tsx"],"sourcesContent":[":host {\n --header-padding: var(--header-padding-medium);\n --header-padding-small: var(--spacing-scale-base);\n --header-padding-medium: var(--spacing-scale-2x);\n --header-padding-large: var(--spacing-scale-3x);\n\n --header-logo-size: var(--header-logo-medium);\n --header-logo-small: 16px;\n --header-logo-medium: 24px;\n --header-logo-large: 40px;\n\n --header-title-size: var(--font-size-scale-base);\n\n --header-subtitle-size: var(--font-size-scale-down-01);\n\n --header-logo-desktop-width: 120px;\n --header-logo-desktop-height: 48px;\n --header-logo-compact: 60px;\n --header-logo-compact-height: 32px;\n --header-logo-mobile-width: 80px;\n --header-logo-mobile-height: 40px;\n\n display: block;\n width: 100%;\n}\n\n:host([is-sticky]) {\n transition: all 0.15s ease;\n position: sticky;\n top: 0;\n z-index: var(--z-index-layer-2);\n}\n\n.br-header {\n display: flex;\n flex-direction: column;\n background: var(--background);\n box-shadow: var(--surface-shadow-sm);\n padding: var(--header-padding) 0;\n position: relative;\n\n br-divider {\n &::part(hr) {\n margin: 0 var(--spacing-scale-base);\n }\n }\n\n &.compact {\n --header-padding: var(--header-padding-small);\n\n .header-bottom-left {\n flex: 0 0 auto;\n }\n }\n\n &.small {\n --header-padding: var(--header-padding-small);\n }\n\n &.large {\n --header-padding: var(--header-padding-large);\n }\n\n .header-top {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n\n .header-top-left,\n .header-top-right {\n display: flex;\n }\n\n .header-top-left {\n flex: 0 0 auto;\n\n .header-logo {\n align-self: center;\n }\n\n .header-signature {\n align-self: center;\n font-weight: 500;\n overflow: hidden;\n }\n }\n\n .header-top-right {\n flex: 1 0 auto;\n justify-content: flex-end;\n\n .header-links {\n align-self: center;\n }\n\n .header-functions {\n align-self: center;\n }\n\n .header-search-icon {\n align-self: center;\n }\n\n .header-access {\n align-self: center;\n }\n }\n }\n\n .header-bottom {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n margin-top: var(--header-padding-small);\n\n .header-bottom-left {\n display: flex;\n\n .header-caption-wrapper {\n margin-left: var(--spacing-scale-2x);\n }\n\n .header-caption {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: var(--header-title-size);\n margin-top: 2px;\n }\n\n .header-subcaption {\n font-size: var(--header-subtitle-size);\n font-weight: 500;\n margin-top: var(--spacing-scale-half);\n }\n }\n\n .header-bottom-right {\n display: none;\n min-width: 268px;\n flex: 0 0 auto;\n\n &.is-active {\n display: flex;\n }\n }\n }\n\n .header-access {\n margin-left: var(--spacing-scale-3x);\n }\n\n .header-menu-trigger {\n margin-right: var(--spacing-scale-half);\n }\n\n .header-search {\n &[is-active] {\n align-items: center;\n background: var(--background);\n inset: 0;\n display: flex;\n padding: 0 var(--spacing-scale-2x);\n position: absolute;\n\n ::slotted(br-input) {\n width: 100%;\n }\n\n .search-close {\n margin-left: var(--spacing-scale-base);\n }\n }\n }\n}\n\n@media (width >= 576px) {\n .br-header {\n .header-top {\n .header-top-right {\n position: relative;\n }\n }\n\n .header-bottom {\n .header-bottom-left {\n .header-caption {\n --header-title-size: var(--font-size-scale-up-02);\n\n margin-top: 0;\n }\n\n .header-subcaption {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &.compact {\n .container-lg {\n position: relative;\n }\n\n .header-top {\n display: block;\n }\n\n .header-top-left {\n float: left;\n }\n\n .header-top-right {\n float: right;\n margin-top: var(--spacing-scale-2xh);\n position: relative;\n }\n\n .header-bottom {\n clear: left;\n }\n }\n }\n}\n\n@media (width >= 1280px) {\n .br-header {\n .header-bottom {\n .header-bottom-right {\n display: flex;\n }\n\n ::slotted([slot=\"search\"]) {\n width: 385px;\n }\n }\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop, State, Watch } from '@stencil/core'\n\nimport { Breakpoint, BreakpointObserver, BREAKPOINTS } from '../../utils/breakpoint-observer'\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Nomes das áreas do cabeçalho.\n */\nconst HeaderSlotNames = {\n LOGO: 'logo',\n SIGNATURE: 'signature',\n LINKS: 'links',\n FUNCTIONS: 'functions',\n SEARCH_ICON: 'search-icon',\n SEARCH: 'search',\n ACCESS: 'access',\n MENU_TRIGGER: 'menu-trigger',\n CAPTION: 'caption',\n SUBCAPTION: 'subcaption',\n} as const\n\n/**\n * Tipo que representa os nomes das áreas do cabeçalho.\n */\ntype HeaderSlotName = (typeof HeaderSlotNames)[keyof typeof HeaderSlotNames]\n\n/**\n * Tipo que representa as configurações de uma área do cabeçalho.\n */\ntype HeaderAreaConfig = {\n cssClassMap: CssClassMap\n breakpoints: { loose: Breakpoint[]; compact: Breakpoint[] }\n hasContent: boolean\n isVisible: boolean\n isActive?: boolean\n event?: { click?: (event: MouseEvent) => void; focus?: (event: FocusEvent) => void }\n}\n\n/**\n * Tipo que representa as áreas do cabeçalho.\n */\ntype HeaderArea = {\n [K in HeaderSlotName]: HeaderAreaConfig\n}\n\n/**\n * Tipo que representa as densidades do cabeçalho.\n */\ntype HeaderDensity = 'small' | 'medium' | 'large'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/header?tab=designer).\n *\n * @slot logo - Slot para a logo do cabeçalho.\n * @slot signature - Slot para a assinatura visual da organização.\n * @slot links - Slot para links de navegação principais.\n * @slot functions - Slot para botões de ação no cabeçalho.\n * @slot search - Slot para o campo de busca.\n * @slot access - Slot para o botão de acesso ou autenticação.\n * @slot menu-trigger - Slot para o botão que abre o menu.\n * @slot caption - Slot para o título do cabeçalho.\n * @slot subcaption - Slot para o subtítulo do cabeçalho.\n */\n@Component({\n tag: 'br-header',\n styleUrl: 'header.scss',\n shadow: true,\n})\nexport class Header {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrHeaderElement\n\n /**\n * Texto exibido como título do cabeçalho.\n */\n @Prop({ reflect: true }) readonly caption: string = null\n\n /**\n * URL associada ao título do cabeçalho.\n */\n @Prop({ reflect: true }) readonly captionUrl: string = null\n\n /**\n * Identificador único do cabeçalho; gerado automaticamente quando omitido.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Densidade do cabeçalho: controla espaçamento e proporções.\n */\n @Prop({ reflect: true }) readonly density: HeaderDensity = 'medium'\n\n /**\n * Ativa o modo compacto do cabeçalho.\n */\n @Prop({ reflect: true, mutable: true }) isCompact: boolean = false\n\n /**\n * Fixa o cabeçalho no topo durante a rolagem.\n */\n @Prop({ reflect: true }) readonly isSticky: boolean = false\n\n /**\n * Texto da assinatura exibida ao lado da logo.\n */\n @Prop({ reflect: true }) readonly signature: string = null\n\n /**\n * Define qual lista encolhe primeiro quando o espaço é limitado.\n */\n @Prop({ reflect: true }) readonly shrinkFirst: 'links' | 'functions' = 'functions'\n\n /**\n * Texto exibido como subtítulo do cabeçalho.\n */\n @Prop({ reflect: true }) readonly subcaption: string = null\n\n /**\n * URL associada ao subtítulo do cabeçalho.\n */\n @Prop({ reflect: true }) readonly subcaptionUrl: string = null\n\n /**\n * Representa as configurações da área do cabeçalho.\n */\n @State() headerArea: HeaderArea = {\n [HeaderSlotNames.LOGO]: {\n cssClassMap: {\n 'header-logo': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n [HeaderSlotNames.SIGNATURE]: {\n cssClassMap: {\n 'header-signature': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.SMALL)],\n compact: [],\n },\n hasContent: Boolean(this.signature && this.signature.trim().length > 0),\n isVisible: Boolean(this.signature && this.signature.trim().length > 0),\n },\n [HeaderSlotNames.LINKS]: {\n cssClassMap: {\n 'header-links': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n [HeaderSlotNames.FUNCTIONS]: {\n cssClassMap: {\n 'header-functions': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n [HeaderSlotNames.SEARCH_ICON]: {\n cssClassMap: {\n 'header-search-icon': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('until', BREAKPOINTS.MEDIUM)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n event: {\n click: this.handleSearchIconClick.bind(this),\n focus: this.handleSearchIconFocus.bind(this),\n },\n },\n [HeaderSlotNames.SEARCH]: {\n cssClassMap: {\n 'header-search': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.LARGE)],\n compact: [],\n },\n hasContent: false,\n isVisible: false,\n isActive: false,\n },\n [HeaderSlotNames.ACCESS]: {\n cssClassMap: {\n 'header-access': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n [HeaderSlotNames.MENU_TRIGGER]: {\n cssClassMap: {\n 'header-menu-trigger': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n [HeaderSlotNames.CAPTION]: {\n cssClassMap: {\n 'header-caption': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n [HeaderSlotNames.SUBCAPTION]: {\n cssClassMap: {\n 'header-subcaption': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n }\n\n /**\n * Evento disparado quando o cabeçalho entra ou sai do modo compacto.\n * O evento contém os detalhes do estado compacto e o ID do componente pai.\n * @event headerCompactChange\n */\n @Event({\n eventName: 'headerCompactChange',\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n headerCompactChange: EventEmitter<{ parentId: string; isCompact: boolean }>\n\n /**\n * Evento disparado para indicar qual lista deve encolher primeiro.\n * O evento contém os detalhes do ID do componente pai e o nome da lista.\n * @event headerWidthChange\n */\n @Event({\n eventName: 'headerWidthChange',\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n headerWidthChange: EventEmitter<{ id: string; listNames: ('links' | 'functions')[]; shrink: boolean }>\n\n /**\n * Observa mudanças na propriedade isCompact.\n * @param newValue O novo valor de isCompact.\n */\n @Watch('isCompact')\n watchIsCompact(newValue: boolean) {\n this.headerCompactChange.emit({ parentId: this.customId, isCompact: newValue })\n this.verifyListSpace(this.shrinkFirst)\n }\n\n /**\n * Observador de mudanças de breakpoint.\n */\n private breakpointObserver: BreakpointObserver\n\n /**\n * Indica o breakpoint atual.\n */\n private currentBreakpoint: Breakpoint\n\n /**\n * Armazena a posição de scroll do elemento pai.\n */\n private parentScrollTop = 0\n\n /**\n * Timeout para o evento de redimensionamento.\n */\n private resizeTimeout: number = null\n\n /**\n * Listener para o evento 'headerListUpdate', disparado pelos componentes filhos 'br-header-list'.\n * O evento contém o ID do componente pai e o nome da lista.\n */\n @Listen('headerListUpdate', { target: 'document', passive: true })\n private handleHeaderListUpdate(event: CustomEvent<{ id: string; listName: string }>) {\n if (event.detail.id === this.customId) {\n requestAnimationFrame(() => {\n switch (event.detail.listName) {\n case 'functions':\n this.verifyListSpace('links')\n break\n case 'links':\n this.verifyListSpace('functions')\n break\n }\n })\n }\n }\n\n /**\n * Listener para o evento 'resize' da janela.\n * Dispara o evento de redimensionamento do cabeçalho após um breve atraso de 100ms\n */\n @Listen('resize', { target: 'window', passive: true })\n private handleListResize() {\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(() => {\n this.headerWidthChange.emit({ id: this.customId, listNames: ['links', 'functions'], shrink: false })\n }, 100)\n }\n\n /**\n * Ciclo de vida do componente.\n * Executado quando o componente é conectado ao DOM.\n */\n connectedCallback() {\n this.setBreakpointObserver()\n this.syncHeaderAreaStates()\n this.setScrollOnParent()\n }\n\n /**\n * Ciclo de vida do componente.\n * Executado uma vez após o componente ser totalmente carregado ao DOM.\n */\n componentDidLoad() {\n this.monitorSlotContent()\n this.headerCompactChange.emit({ parentId: this.customId, isCompact: this.isCompact })\n this.verifyListSpace(this.shrinkFirst)\n\n void this.handleHeaderListUpdate\n void this.handleListResize\n }\n\n /**\n * Ciclo de vida do componente.\n * Executado quando o componente é desconectado do DOM.\n */\n disconnectedCallback() {\n this.unsetScrollOnParent()\n this.breakpointObserver.unsubscribe(this.handleBreakpointChange.bind(this))\n this.breakpointObserver.destroy()\n clearTimeout(this.resizeTimeout)\n }\n\n /**\n * Reinicializa o estado das listas do cabeçalho, disparando o evento de redimensionamento.\n * Pode ser chamado externamente para forçar a atualização das listas.\n */\n @Method()\n async resetHeaderList() {\n this.handleListResize()\n }\n\n /**\n * Manipula as mudanças de breakpoint.\n * @param breakpoint O breakpoint ativo.\n */\n private handleBreakpointChange(breakpoint: Breakpoint) {\n this.currentBreakpoint = breakpoint\n Object.keys(this.headerArea).forEach((area) => {\n const name = area as HeaderSlotName\n this.controlHeaderAreaUpdateStates(name)\n })\n }\n\n /**\n * Manipula o evento de scroll no elemento pai.\n */\n private handleParentScroll = () => {\n const parent = this.el.parentElement\n if (parent == null) return\n\n const atTop = parent.scrollTop === 0\n const shouldBeCompact = this.isSticky && !atTop\n\n if (this.isCompact !== shouldBeCompact) {\n this.parentScrollTop = parent.scrollTop\n this.isCompact = shouldBeCompact\n requestAnimationFrame(() => {\n parent.scrollTop = this.parentScrollTop\n })\n this.handleBreakpointChange(this.currentBreakpoint)\n }\n }\n\n /**\n * Manipula o clique no botão de fechar busca.\n */\n private handleSearchCloseClick = () => {\n this.updateHeaderArea(HeaderSlotNames.SEARCH, {\n isActive: false,\n isVisible: this.headerArea[HeaderSlotNames.SEARCH]?.breakpoints[\n `${this.isCompact ? 'compact' : 'loose'}`\n ]?.includes(this.currentBreakpoint),\n })\n }\n\n /**\n * Manipula o clique no ícone de busca.\n */\n private handleSearchIconClick() {\n this.updateHeaderArea(HeaderSlotNames.SEARCH, {\n isVisible: true,\n isActive: true,\n })\n }\n\n /**\n * Manipula o foco no ícone de busca.\n */\n private handleSearchIconFocus() {\n this.el.shadowRoot.querySelectorAll('slot[name=\"links\"], slot[name=\"functions\"]').forEach((slot: Element) => {\n const brHeaderList = (slot as HTMLSlotElement)\n .assignedElements()\n .find((el) => el.tagName.toLowerCase() === 'br-header-list')\n if (brHeaderList != null) {\n ;(brHeaderList as HTMLBrHeaderListElement).closeList()\n }\n })\n }\n\n /**\n *\n * Controla a atualização dos estados da área do cabeçalho.\n * @param name O nome da área do cabeçalho.\n */\n private controlHeaderAreaUpdateStates(name: HeaderSlotName) {\n const state = this.headerArea[name]?.breakpoints[`${this.isCompact ? 'compact' : 'loose'}`]?.includes(\n this.currentBreakpoint\n )\n switch (name) {\n case HeaderSlotNames.SEARCH:\n this.updateHeaderArea(name, {\n isVisible: state,\n isActive: state ? null : this.headerArea[name]?.isActive,\n })\n break\n default:\n this.updateHeaderArea(name, {\n isVisible: state,\n })\n }\n }\n\n /**\n * Retorna um mapa de classes CSS para o componente.\n * @returns Um objeto contendo as classes CSS a serem aplicadas.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-header': true,\n compact: this.isCompact,\n small: this.density === 'small' && !this.isCompact,\n large: this.density === 'large' && !this.isCompact,\n }\n }\n\n /**\n * Verifica se um valor é um nome de slot de cabeçalho válido.\n * @param value O valor a ser verificado.\n * @returns Um valor booleano indicando se o valor é um nome de slot de cabeçalho válido.\n */\n private isHeaderSlotName(value: string): value is HeaderSlotName {\n return Object.values(HeaderSlotNames).includes(value as HeaderSlotName)\n }\n\n /**\n * Monitora as mudanças de conteúdo dos slots.\n */\n private monitorSlotContent() {\n this.el.shadowRoot.querySelectorAll('slot').forEach((slot) => {\n slot.addEventListener('slotchange', () => {\n const slotName = slot.name\n if (this.isHeaderSlotName(slotName)) {\n this.updateHeaderArea(slotName, { hasContent: slot.assignedNodes().length > 0 })\n }\n })\n })\n }\n\n /**\n * Configura o observador de mudanças de breakpoint.\n */\n private setBreakpointObserver() {\n this.breakpointObserver = new BreakpointObserver()\n this.breakpointObserver.subscribe(this.handleBreakpointChange.bind(this))\n }\n\n /**\n * Configura o evento de scroll no elemento pai.\n */\n private setScrollOnParent() {\n const parent = this.el.parentElement\n if (this.isSticky && parent !== null) {\n parent.addEventListener('scroll', this.handleParentScroll)\n this.handleParentScroll()\n }\n }\n\n /**\n * Atualiza o estado da área do cabeçalho com base no conteúdo dos slots.\n */\n private syncHeaderAreaStates() {\n this.el.querySelectorAll('[slot]').forEach((element) => {\n const slotName = element.slot\n if (this.isHeaderSlotName(slotName)) {\n this.headerArea[slotName].hasContent = true\n this.headerArea[slotName].isVisible = this.headerArea[slotName]?.breakpoints[\n `${this.isCompact ? 'compact' : 'loose'}`\n ]?.includes(this.currentBreakpoint)\n }\n })\n }\n\n /**\n * Remove scroll event listener from parent element.\n */\n private unsetScrollOnParent() {\n const parent = this.el.parentElement\n if (this.isSticky && parent !== null) {\n parent.removeEventListener('scroll', this.handleParentScroll)\n }\n }\n\n /**\n * Atualiza a área do cabeçalho.\n * @param name O nome da área do cabeçalho.\n * @param updates As atualizações a serem aplicadas.\n */\n private updateHeaderArea(name: HeaderSlotName, updates: Partial<HeaderAreaConfig>) {\n this.headerArea = {\n ...this.headerArea,\n [name]: { ...this.headerArea[name], ...updates },\n }\n }\n\n /**\n * Verifica o espaço disponível para uma lista específica no cabeçalho.\n * @param listName O nome da lista a ser verificada.\n */\n private verifyListSpace(listName: 'links' | 'functions') {\n let style, paddingLeft, paddingRight, totalWidth, bottomLeftWidth, topLeftWidth, topRightWidth, availableWidth\n if (this.isCompact) {\n style = window.getComputedStyle(this.el)\n paddingLeft = parseFloat(style.paddingLeft) || 0\n paddingRight = parseFloat(style.paddingRight) || 0\n totalWidth = this.el.clientWidth - paddingLeft - paddingRight\n bottomLeftWidth = this.el.shadowRoot.querySelector('.header-bottom-left')?.clientWidth || 0\n topRightWidth = this.el.shadowRoot.querySelector('.header-top-right')?.clientWidth || 0\n availableWidth = totalWidth - bottomLeftWidth\n } else {\n totalWidth = this.el.shadowRoot.querySelector('.header-top')?.clientWidth || 0\n topLeftWidth = this.el.shadowRoot.querySelector('.header-top-left')?.clientWidth || 0\n topRightWidth = this.el.shadowRoot.querySelector('.header-top-right')?.clientWidth || 0\n availableWidth = totalWidth - topLeftWidth\n }\n\n const isOverflowing = topRightWidth > availableWidth\n if (isOverflowing) {\n this.headerWidthChange.emit({ id: this.customId, listNames: [listName], shrink: true })\n }\n }\n\n /**\n * Renderiza o conteúdo padrão do título.\n * @returns Um elemento JSX representando o conteúdo padrão do título.\n */\n private renderDefaultCaptionContent() {\n return typeof this.caption === 'string' && this.caption.trim().length > 0 ? (\n typeof this.captionUrl === 'string' && this.captionUrl.trim().length > 0 ? (\n <a href={this.captionUrl} class=\"caption-link\">\n {this.caption}\n </a>\n ) : (\n <span class=\"caption-text\">{this.caption}</span>\n )\n ) : null\n }\n\n /**\n * Renderiza o conteúdo padrão da assinatura.\n * @returns Um elemento JSX representando o conteúdo padrão da assinatura.\n */\n private renderDefaultSignatureContent() {\n return typeof this.signature === 'string' && this.signature.trim().length > 0 ? (\n <span class=\"signature-text\">{this.signature}</span>\n ) : null\n }\n\n /**\n * Renderiza o conteúdo padrão do subtítulo.\n * @returns Um elemento JSX representando o conteúdo padrão do subtítulo.\n */\n private renderDefaultSubcaptionContent() {\n return typeof this.subcaption === 'string' && this.subcaption.trim().length > 0 ? (\n typeof this.subcaptionUrl === 'string' && this.subcaptionUrl.trim().length > 0 ? (\n <a href={this.subcaptionUrl} class=\"subcaption-link\">\n {this.subcaption}\n </a>\n ) : (\n <span class=\"subcaption-text\">{this.subcaption}</span>\n )\n ) : null\n }\n\n /**\n * Renderiza o divisor entre as áreas do cabeçalho.\n * @param mainArea A área principal do cabeçalho.\n * @param secondaryAreas As áreas secundárias do cabeçalho.\n * @returns Um elemento JSX representando o divisor entre as áreas do cabeçalho.\n */\n private renderDivider(mainArea: HeaderSlotName, secondaryAreas: HeaderSlotName[] = []) {\n const isVisible =\n this.headerArea[mainArea]?.hasContent &&\n this.headerArea[mainArea]?.isVisible &&\n secondaryAreas.some((area) => this.headerArea[area]?.hasContent && this.headerArea[area]?.isVisible)\n return <br-divider orientation=\"vertical\" class=\"header-divider\" hidden={!isVisible}></br-divider>\n }\n\n /**\n * Renderiza a área do cabeçalho.\n * @param name O nome da área do cabeçalho.\n * @returns Um elemento JSX representando a área do cabeçalho.\n */\n private renderHeaderArea(name: HeaderSlotName) {\n return (\n <div\n class={this.headerArea[name]?.cssClassMap}\n hidden={!this.headerArea[name]?.isVisible && !this.headerArea[name]?.isActive}\n is-active={this.headerArea[name]?.isActive}\n onClick={this.headerArea[name]?.event?.click}\n onFocusin={this.headerArea[name]?.event?.focus}\n >\n <slot name={name}>{this.renderSlotDefaultContent(name)}</slot>\n {name === HeaderSlotNames.SEARCH && this.headerArea[name]?.isActive && this.renderSearchCloseButton()}\n </div>\n )\n }\n\n /**\n * Renderiza o botão de fechar busca.\n * @returns Um elemento JSX representando o botão de fechar busca.\n */\n private renderSearchCloseButton() {\n return (\n <br-button\n class=\"search-close\"\n shape=\"circle\"\n density=\"small\"\n emphasis=\"tertiary\"\n onClick={this.handleSearchCloseClick}\n aria-label=\"Fechar busca\"\n >\n <br-icon iconName=\"fa7-solid:close\"></br-icon>\n </br-button>\n )\n }\n\n /**\n * Renderiza o conteúdo padrão do slot.\n * @param name O nome do slot.\n * @returns Um elemento JSX representando o conteúdo padrão do slot.\n */\n private renderSlotDefaultContent(name: HeaderSlotName) {\n switch (name) {\n case HeaderSlotNames.CAPTION:\n return this.renderDefaultCaptionContent()\n case HeaderSlotNames.SUBCAPTION:\n return this.renderDefaultSubcaptionContent()\n case HeaderSlotNames.SIGNATURE:\n return this.renderDefaultSignatureContent()\n default:\n return null\n }\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX.Element\n */\n render() {\n return (\n <Host>\n <header id={this.customId} class={this.getCssClassMap()}>\n <div class=\"container-lg\">\n <div class=\"header-top\">\n <div class=\"header-top-left\">\n {this.renderHeaderArea(HeaderSlotNames.LOGO)}\n {this.renderDivider(HeaderSlotNames.LOGO, [HeaderSlotNames.SIGNATURE])}\n {this.renderHeaderArea(HeaderSlotNames.SIGNATURE)}\n </div>\n <div class=\"header-top-right\">\n {this.renderHeaderArea(HeaderSlotNames.LINKS)}\n {this.renderDivider(HeaderSlotNames.LINKS, [HeaderSlotNames.FUNCTIONS, HeaderSlotNames.SEARCH_ICON])}\n {this.renderHeaderArea(HeaderSlotNames.FUNCTIONS)}\n {this.renderDivider(HeaderSlotNames.FUNCTIONS, [HeaderSlotNames.SEARCH_ICON])}\n {this.renderHeaderArea(HeaderSlotNames.SEARCH_ICON)}\n {this.renderHeaderArea(HeaderSlotNames.ACCESS)}\n </div>\n </div>\n <div class=\"header-bottom\">\n <div class=\"header-bottom-left\">\n {this.renderHeaderArea(HeaderSlotNames.MENU_TRIGGER)}\n <div class=\"header-caption-wrapper\">\n {this.renderHeaderArea(HeaderSlotNames.CAPTION)}\n {this.renderHeaderArea(HeaderSlotNames.SUBCAPTION)}\n </div>\n </div>\n <div\n class={{\n 'header-bottom-right': true,\n 'is-active': this.headerArea[HeaderSlotNames.SEARCH]?.isActive,\n }}\n >\n {this.renderHeaderArea(HeaderSlotNames.SEARCH)}\n </div>\n </div>\n </div>\n </header>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"br-header.entry.js","sources":["../../packages/webcomponents/src/components/header/header.scss?tag=br-header&encapsulation=shadow","../../packages/webcomponents/src/components/header/header.tsx"],"sourcesContent":[":host {\n --header-padding: var(--header-padding-medium);\n --header-padding-small: var(--spacing-scale-base);\n --header-padding-medium: var(--spacing-scale-2x);\n --header-padding-large: var(--spacing-scale-3x);\n\n --header-logo-size: var(--header-logo-medium);\n --header-logo-small: 16px;\n --header-logo-medium: 24px;\n --header-logo-large: 40px;\n\n --header-title-size: var(--font-size-scale-base);\n\n --header-subtitle-size: var(--font-size-scale-down-01);\n\n --header-logo-desktop-width: 120px;\n --header-logo-desktop-height: 48px;\n --header-logo-compact: 60px;\n --header-logo-compact-height: 32px;\n --header-logo-mobile-width: 80px;\n --header-logo-mobile-height: 40px;\n\n display: block;\n width: 100%;\n}\n\n:host([is-sticky]) {\n transition: all 0.15s ease;\n position: sticky;\n top: 0;\n z-index: var(--z-index-layer-2);\n}\n\n.br-header {\n display: flex;\n flex-direction: column;\n background: var(--background);\n box-shadow: var(--surface-shadow-sm);\n padding: var(--header-padding) 0;\n position: relative;\n\n br-divider {\n &::part(hr) {\n margin: 0 var(--spacing-scale-base);\n }\n }\n\n &.compact {\n --header-padding: var(--header-padding-small);\n\n .header-bottom-left {\n flex: 0 0 auto;\n }\n }\n\n &.small {\n --header-padding: var(--header-padding-small);\n }\n\n &.large {\n --header-padding: var(--header-padding-large);\n }\n\n .header-top {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n\n .header-top-left,\n .header-top-right {\n display: flex;\n }\n\n .header-top-left {\n flex: 0 0 auto;\n\n .header-logo {\n align-self: center;\n }\n\n .header-signature {\n align-self: center;\n font-weight: 500;\n overflow: hidden;\n }\n }\n\n .header-top-right {\n flex: 1 0 auto;\n justify-content: flex-end;\n\n .header-links {\n align-self: center;\n }\n\n .header-functions {\n align-self: center;\n }\n\n .header-search-icon {\n align-self: center;\n }\n\n .header-access {\n align-self: center;\n }\n }\n }\n\n .header-bottom {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n margin-top: var(--header-padding-small);\n\n .header-bottom-left {\n display: flex;\n\n .header-caption-wrapper {\n margin-left: var(--spacing-scale-2x);\n }\n\n .header-caption {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: var(--header-title-size);\n margin-top: 2px;\n }\n\n .header-subcaption {\n font-size: var(--header-subtitle-size);\n font-weight: 500;\n margin-top: var(--spacing-scale-half);\n }\n }\n\n .header-bottom-right {\n display: none;\n min-width: 268px;\n flex: 0 0 auto;\n\n &.is-active {\n display: flex;\n }\n }\n }\n\n .header-access {\n margin-left: var(--spacing-scale-3x);\n }\n\n .header-menu-trigger {\n margin-right: var(--spacing-scale-half);\n }\n\n .header-search {\n &[is-active] {\n align-items: center;\n background: var(--background);\n inset: 0;\n display: flex;\n padding: 0 var(--spacing-scale-2x);\n position: absolute;\n\n ::slotted(br-input) {\n width: 100%;\n }\n\n .search-close {\n margin-left: var(--spacing-scale-base);\n }\n }\n }\n}\n\n@media (width >= 576px) {\n .br-header {\n .header-top {\n .header-top-right {\n position: relative;\n }\n }\n\n .header-bottom {\n .header-bottom-left {\n .header-caption {\n --header-title-size: var(--font-size-scale-up-02);\n\n margin-top: 0;\n }\n\n .header-subcaption {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &.compact {\n .container-lg {\n position: relative;\n }\n\n .header-top {\n display: block;\n }\n\n .header-top-left {\n float: left;\n }\n\n .header-top-right {\n float: right;\n margin-top: var(--spacing-scale-2xh);\n position: relative;\n }\n\n .header-bottom {\n clear: left;\n }\n }\n }\n}\n\n@media (width >= 1280px) {\n .br-header {\n .header-bottom {\n .header-bottom-right {\n display: flex;\n }\n\n ::slotted([slot=\"search\"]) {\n width: 385px;\n }\n }\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop, State, Watch } from '@stencil/core'\n\nimport { Breakpoint, BreakpointObserver, BREAKPOINTS } from '../../utils/breakpoint-observer'\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Nomes das áreas do cabeçalho.\n */\nconst HeaderSlotNames = {\n LOGO: 'logo',\n SIGNATURE: 'signature',\n LINKS: 'links',\n FUNCTIONS: 'functions',\n SEARCH_ICON: 'search-icon',\n SEARCH: 'search',\n ACCESS: 'access',\n MENU_TRIGGER: 'menu-trigger',\n CAPTION: 'caption',\n SUBCAPTION: 'subcaption',\n} as const\n\n/**\n * Tipo que representa os nomes das áreas do cabeçalho.\n */\ntype HeaderSlotName = (typeof HeaderSlotNames)[keyof typeof HeaderSlotNames]\n\n/**\n * Tipo que representa as configurações de uma área do cabeçalho.\n */\ntype HeaderAreaConfig = {\n cssClassMap: CssClassMap\n breakpoints: { loose: Breakpoint[]; compact: Breakpoint[] }\n hasContent: boolean\n isVisible: boolean\n isActive?: boolean\n event?: { click?: (event: MouseEvent) => void; focus?: (event: FocusEvent) => void }\n}\n\n/**\n * Tipo que representa as áreas do cabeçalho.\n */\ntype HeaderArea = {\n [K in HeaderSlotName]: HeaderAreaConfig\n}\n\n/**\n * Tipo que representa as densidades do cabeçalho.\n */\ntype HeaderDensity = 'small' | 'medium' | 'large'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/header?tab=designer).\n *\n * @slot logo - Slot para a logo do cabeçalho.\n * @slot signature - Slot para a assinatura visual da organização.\n * @slot links - Slot para links de navegação principais.\n * @slot functions - Slot para botões de ação no cabeçalho.\n * @slot search - Slot para o campo de busca.\n * @slot access - Slot para o botão de acesso ou autenticação.\n * @slot menu-trigger - Slot para o botão que abre o menu.\n * @slot caption - Slot para o título do cabeçalho.\n * @slot subcaption - Slot para o subtítulo do cabeçalho.\n */\n@Component({\n tag: 'br-header',\n styleUrl: 'header.scss',\n shadow: true,\n})\nexport class Header {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrHeaderElement\n\n /**\n * Texto exibido como título do cabeçalho.\n */\n @Prop({ reflect: true }) readonly caption: string = null\n\n /**\n * URL associada ao título do cabeçalho.\n */\n @Prop({ reflect: true }) readonly captionUrl: string = null\n\n /**\n * Identificador único do cabeçalho; gerado automaticamente quando omitido.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Densidade do cabeçalho: controla espaçamento e proporções.\n */\n @Prop({ reflect: true }) readonly density: HeaderDensity = 'medium'\n\n /**\n * Ativa o modo compacto do cabeçalho.\n */\n @Prop({ reflect: true, mutable: true }) isCompact: boolean = false\n\n /**\n * Fixa o cabeçalho no topo durante a rolagem.\n */\n @Prop({ reflect: true }) readonly isSticky: boolean = false\n\n /**\n * Texto da assinatura exibida ao lado da logo.\n */\n @Prop({ reflect: true }) readonly signature: string = null\n\n /**\n * Define qual lista encolhe primeiro quando o espaço é limitado.\n */\n @Prop({ reflect: true }) readonly shrinkFirst: 'links' | 'functions' = 'functions'\n\n /**\n * Texto exibido como subtítulo do cabeçalho.\n */\n @Prop({ reflect: true }) readonly subcaption: string = null\n\n /**\n * URL associada ao subtítulo do cabeçalho.\n */\n @Prop({ reflect: true }) readonly subcaptionUrl: string = null\n\n /**\n * Representa as configurações da área do cabeçalho.\n */\n @State() headerArea: HeaderArea = {\n [HeaderSlotNames.LOGO]: {\n cssClassMap: {\n 'header-logo': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n [HeaderSlotNames.SIGNATURE]: {\n cssClassMap: {\n 'header-signature': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.SMALL)],\n compact: [],\n },\n hasContent: Boolean(this.signature && this.signature.trim().length > 0),\n isVisible: Boolean(this.signature && this.signature.trim().length > 0),\n },\n [HeaderSlotNames.LINKS]: {\n cssClassMap: {\n 'header-links': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n [HeaderSlotNames.FUNCTIONS]: {\n cssClassMap: {\n 'header-functions': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n [HeaderSlotNames.SEARCH_ICON]: {\n cssClassMap: {\n 'header-search-icon': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('until', BREAKPOINTS.MEDIUM)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n event: {\n click: this.handleSearchIconClick.bind(this),\n focus: this.handleSearchIconFocus.bind(this),\n },\n },\n [HeaderSlotNames.SEARCH]: {\n cssClassMap: {\n 'header-search': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.LARGE)],\n compact: [],\n },\n hasContent: false,\n isVisible: false,\n isActive: false,\n },\n [HeaderSlotNames.ACCESS]: {\n cssClassMap: {\n 'header-access': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n [HeaderSlotNames.MENU_TRIGGER]: {\n cssClassMap: {\n 'header-menu-trigger': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n [HeaderSlotNames.CAPTION]: {\n cssClassMap: {\n 'header-caption': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.X_SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n [HeaderSlotNames.SUBCAPTION]: {\n cssClassMap: {\n 'header-subcaption': true,\n },\n breakpoints: {\n loose: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.SMALL)],\n compact: [...BreakpointObserver.getBreakpoints('from', BREAKPOINTS.SMALL)],\n },\n hasContent: false,\n isVisible: false,\n },\n }\n\n /**\n * Evento disparado quando o cabeçalho entra ou sai do modo compacto.\n * O evento contém os detalhes do estado compacto e o ID do componente pai.\n * @event headerCompactChange\n */\n @Event({\n eventName: 'headerCompactChange',\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n headerCompactChange: EventEmitter<{ parentId: string; isCompact: boolean }>\n\n /**\n * Evento disparado para indicar qual lista deve encolher primeiro.\n * O evento contém os detalhes do ID do componente pai e o nome da lista.\n * @event headerWidthChange\n */\n @Event({\n eventName: 'headerWidthChange',\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n headerWidthChange: EventEmitter<{ id: string; listNames: ('links' | 'functions')[]; shrink: boolean }>\n\n /**\n * Observa mudanças na propriedade isCompact.\n * @param newValue O novo valor de isCompact.\n */\n @Watch('isCompact')\n watchIsCompact(newValue: boolean) {\n this.headerCompactChange.emit({ parentId: this.customId, isCompact: newValue })\n this.verifyListSpace(this.shrinkFirst)\n }\n\n /**\n * Observador de mudanças de breakpoint.\n */\n private breakpointObserver: BreakpointObserver\n\n /**\n * Indica o breakpoint atual.\n */\n private currentBreakpoint: Breakpoint\n\n /**\n * Armazena a posição de scroll do elemento pai.\n */\n private parentScrollTop = 0\n\n /**\n * Timeout para o evento de redimensionamento.\n */\n private resizeTimeout: number = null\n\n /**\n * Listener para o evento 'headerListUpdate', disparado pelos componentes filhos 'br-header-list'.\n * O evento contém o ID do componente pai e o nome da lista.\n */\n @Listen('headerListUpdate', { target: 'document', passive: true })\n private handleHeaderListUpdate(event: CustomEvent<{ id: string; listName: string }>) {\n if (event.detail.id === this.customId) {\n requestAnimationFrame(() => {\n switch (event.detail.listName) {\n case 'functions':\n this.verifyListSpace('links')\n break\n case 'links':\n this.verifyListSpace('functions')\n break\n }\n })\n }\n }\n\n /**\n * Listener para o evento 'resize' da janela.\n * Dispara o evento de redimensionamento do cabeçalho após um breve atraso de 100ms\n */\n @Listen('resize', { target: 'window', passive: true })\n private handleListResize() {\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(() => {\n this.headerWidthChange.emit({ id: this.customId, listNames: ['links', 'functions'], shrink: false })\n }, 100)\n }\n\n /**\n * Ciclo de vida do componente.\n * Executado quando o componente é conectado ao DOM.\n */\n connectedCallback() {\n this.setBreakpointObserver()\n this.syncHeaderAreaStates()\n this.setScrollOnParent()\n }\n\n /**\n * Ciclo de vida do componente.\n * Executado uma vez após o componente ser totalmente carregado ao DOM.\n */\n componentDidLoad() {\n this.monitorSlotContent()\n this.headerCompactChange.emit({ parentId: this.customId, isCompact: this.isCompact })\n this.verifyListSpace(this.shrinkFirst)\n\n void this.handleHeaderListUpdate\n void this.handleListResize\n }\n\n /**\n * Ciclo de vida do componente.\n * Executado quando o componente é desconectado do DOM.\n */\n disconnectedCallback() {\n this.unsetScrollOnParent()\n this.breakpointObserver.unsubscribe(this.handleBreakpointChange.bind(this))\n this.breakpointObserver.destroy()\n clearTimeout(this.resizeTimeout)\n }\n\n /**\n * Reinicializa o estado das listas do cabeçalho, disparando o evento de redimensionamento.\n * Pode ser chamado externamente para forçar a atualização das listas.\n */\n @Method()\n async resetHeaderList() {\n this.handleListResize()\n }\n\n /**\n * Manipula as mudanças de breakpoint.\n * @param breakpoint O breakpoint ativo.\n */\n private handleBreakpointChange(breakpoint: Breakpoint) {\n this.currentBreakpoint = breakpoint\n Object.keys(this.headerArea).forEach((area) => {\n const name = area as HeaderSlotName\n this.controlHeaderAreaUpdateStates(name)\n })\n }\n\n /**\n * Manipula o evento de scroll no elemento pai.\n */\n private handleParentScroll = () => {\n const parent = this.el.parentElement\n if (parent == null) return\n\n const atTop = parent.scrollTop === 0\n const shouldBeCompact = this.isSticky && !atTop\n\n if (this.isCompact !== shouldBeCompact) {\n this.parentScrollTop = parent.scrollTop\n this.isCompact = shouldBeCompact\n requestAnimationFrame(() => {\n parent.scrollTop = this.parentScrollTop\n })\n this.handleBreakpointChange(this.currentBreakpoint)\n }\n }\n\n /**\n * Manipula o clique no botão de fechar busca.\n */\n private handleSearchCloseClick = () => {\n this.updateHeaderArea(HeaderSlotNames.SEARCH, {\n isActive: false,\n isVisible: this.headerArea[HeaderSlotNames.SEARCH]?.breakpoints[\n `${this.isCompact ? 'compact' : 'loose'}`\n ]?.includes(this.currentBreakpoint),\n })\n }\n\n /**\n * Manipula o clique no ícone de busca.\n */\n private handleSearchIconClick() {\n this.updateHeaderArea(HeaderSlotNames.SEARCH, {\n isVisible: true,\n isActive: true,\n })\n }\n\n /**\n * Manipula o foco no ícone de busca.\n */\n private handleSearchIconFocus() {\n this.el.shadowRoot.querySelectorAll('slot[name=\"links\"], slot[name=\"functions\"]').forEach((slot: Element) => {\n const brHeaderList = (slot as HTMLSlotElement)\n .assignedElements()\n .find((el) => el.tagName.toLowerCase() === 'br-header-list')\n if (brHeaderList != null) {\n ;(brHeaderList as HTMLBrHeaderListElement).closeList()\n }\n })\n }\n\n /**\n *\n * Controla a atualização dos estados da área do cabeçalho.\n * @param name O nome da área do cabeçalho.\n */\n private controlHeaderAreaUpdateStates(name: HeaderSlotName) {\n const state = this.headerArea[name]?.breakpoints[`${this.isCompact ? 'compact' : 'loose'}`]?.includes(\n this.currentBreakpoint\n )\n switch (name) {\n case HeaderSlotNames.SEARCH:\n this.updateHeaderArea(name, {\n isVisible: state,\n isActive: state ? null : this.headerArea[name]?.isActive,\n })\n break\n default:\n this.updateHeaderArea(name, {\n isVisible: state,\n })\n }\n }\n\n /**\n * Retorna um mapa de classes CSS para o componente.\n * @returns Um objeto contendo as classes CSS a serem aplicadas.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-header': true,\n compact: this.isCompact,\n small: this.density === 'small' && !this.isCompact,\n large: this.density === 'large' && !this.isCompact,\n }\n }\n\n /**\n * Verifica se um valor é um nome de slot de cabeçalho válido.\n * @param value O valor a ser verificado.\n * @returns Um valor booleano indicando se o valor é um nome de slot de cabeçalho válido.\n */\n private isHeaderSlotName(value: string): value is HeaderSlotName {\n return Object.values(HeaderSlotNames).includes(value as HeaderSlotName)\n }\n\n /**\n * Monitora as mudanças de conteúdo dos slots.\n */\n private monitorSlotContent() {\n this.el.shadowRoot.querySelectorAll('slot').forEach((slot) => {\n slot.addEventListener('slotchange', () => {\n const slotName = slot.name\n if (this.isHeaderSlotName(slotName)) {\n this.updateHeaderArea(slotName, { hasContent: slot.assignedNodes().length > 0 })\n }\n })\n })\n }\n\n /**\n * Configura o observador de mudanças de breakpoint.\n */\n private setBreakpointObserver() {\n this.breakpointObserver = new BreakpointObserver()\n this.breakpointObserver.subscribe(this.handleBreakpointChange.bind(this))\n }\n\n /**\n * Configura o evento de scroll no elemento pai.\n */\n private setScrollOnParent() {\n const parent = this.el.parentElement\n if (this.isSticky && parent !== null) {\n parent.addEventListener('scroll', this.handleParentScroll)\n this.handleParentScroll()\n }\n }\n\n /**\n * Atualiza o estado da área do cabeçalho com base no conteúdo dos slots.\n */\n private syncHeaderAreaStates() {\n this.el.querySelectorAll('[slot]').forEach((element) => {\n const slotName = element.slot\n if (this.isHeaderSlotName(slotName)) {\n this.headerArea[slotName].hasContent = true\n this.headerArea[slotName].isVisible = this.headerArea[slotName]?.breakpoints[\n `${this.isCompact ? 'compact' : 'loose'}`\n ]?.includes(this.currentBreakpoint)\n }\n })\n }\n\n /**\n * Remove scroll event listener from parent element.\n */\n private unsetScrollOnParent() {\n const parent = this.el.parentElement\n if (this.isSticky && parent !== null) {\n parent.removeEventListener('scroll', this.handleParentScroll)\n }\n }\n\n /**\n * Atualiza a área do cabeçalho.\n * @param name O nome da área do cabeçalho.\n * @param updates As atualizações a serem aplicadas.\n */\n private updateHeaderArea(name: HeaderSlotName, updates: Partial<HeaderAreaConfig>) {\n this.headerArea = {\n ...this.headerArea,\n [name]: { ...this.headerArea[name], ...updates },\n }\n }\n\n /**\n * Verifica o espaço disponível para uma lista específica no cabeçalho.\n * @param listName O nome da lista a ser verificada.\n */\n private verifyListSpace(listName: 'links' | 'functions') {\n let style, paddingLeft, paddingRight, totalWidth, bottomLeftWidth, topLeftWidth, topRightWidth, availableWidth\n if (this.isCompact) {\n style = window.getComputedStyle(this.el)\n paddingLeft = parseFloat(style.paddingLeft) || 0\n paddingRight = parseFloat(style.paddingRight) || 0\n totalWidth = this.el.clientWidth - paddingLeft - paddingRight\n bottomLeftWidth = this.el.shadowRoot.querySelector('.header-bottom-left')?.clientWidth || 0\n topRightWidth = this.el.shadowRoot.querySelector('.header-top-right')?.clientWidth || 0\n availableWidth = totalWidth - bottomLeftWidth\n } else {\n totalWidth = this.el.shadowRoot.querySelector('.header-top')?.clientWidth || 0\n topLeftWidth = this.el.shadowRoot.querySelector('.header-top-left')?.clientWidth || 0\n topRightWidth = this.el.shadowRoot.querySelector('.header-top-right')?.clientWidth || 0\n availableWidth = totalWidth - topLeftWidth\n }\n\n const isOverflowing = topRightWidth > availableWidth\n if (isOverflowing) {\n this.headerWidthChange.emit({ id: this.customId, listNames: [listName], shrink: true })\n }\n }\n\n /**\n * Renderiza o conteúdo padrão do título.\n * @returns Um elemento JSX representando o conteúdo padrão do título.\n */\n private renderDefaultCaptionContent() {\n return typeof this.caption === 'string' && this.caption.trim().length > 0 ? (\n typeof this.captionUrl === 'string' && this.captionUrl.trim().length > 0 ? (\n <a href={this.captionUrl} class=\"caption-link\">\n {this.caption}\n </a>\n ) : (\n <span class=\"caption-text\">{this.caption}</span>\n )\n ) : null\n }\n\n /**\n * Renderiza o conteúdo padrão da assinatura.\n * @returns Um elemento JSX representando o conteúdo padrão da assinatura.\n */\n private renderDefaultSignatureContent() {\n return typeof this.signature === 'string' && this.signature.trim().length > 0 ? (\n <span class=\"signature-text\">{this.signature}</span>\n ) : null\n }\n\n /**\n * Renderiza o conteúdo padrão do subtítulo.\n * @returns Um elemento JSX representando o conteúdo padrão do subtítulo.\n */\n private renderDefaultSubcaptionContent() {\n return typeof this.subcaption === 'string' && this.subcaption.trim().length > 0 ? (\n typeof this.subcaptionUrl === 'string' && this.subcaptionUrl.trim().length > 0 ? (\n <a href={this.subcaptionUrl} class=\"subcaption-link\">\n {this.subcaption}\n </a>\n ) : (\n <span class=\"subcaption-text\">{this.subcaption}</span>\n )\n ) : null\n }\n\n /**\n * Renderiza o divisor entre as áreas do cabeçalho.\n * @param mainArea A área principal do cabeçalho.\n * @param secondaryAreas As áreas secundárias do cabeçalho.\n * @returns Um elemento JSX representando o divisor entre as áreas do cabeçalho.\n */\n private renderDivider(mainArea: HeaderSlotName, secondaryAreas: HeaderSlotName[] = []) {\n const isVisible =\n this.headerArea[mainArea]?.hasContent &&\n this.headerArea[mainArea]?.isVisible &&\n secondaryAreas.some((area) => this.headerArea[area]?.hasContent && this.headerArea[area]?.isVisible)\n return <br-divider orientation=\"vertical\" class=\"header-divider\" hidden={!isVisible}></br-divider>\n }\n\n /**\n * Renderiza a área do cabeçalho.\n * @param name O nome da área do cabeçalho.\n * @returns Um elemento JSX representando a área do cabeçalho.\n */\n private renderHeaderArea(name: HeaderSlotName) {\n return (\n <div\n class={this.headerArea[name]?.cssClassMap}\n hidden={!this.headerArea[name]?.isVisible && !this.headerArea[name]?.isActive}\n is-active={this.headerArea[name]?.isActive}\n onClick={this.headerArea[name]?.event?.click}\n onFocusin={this.headerArea[name]?.event?.focus}\n >\n <slot name={name}>{this.renderSlotDefaultContent(name)}</slot>\n {name === HeaderSlotNames.SEARCH && this.headerArea[name]?.isActive && this.renderSearchCloseButton()}\n </div>\n )\n }\n\n /**\n * Renderiza o botão de fechar busca.\n * @returns Um elemento JSX representando o botão de fechar busca.\n */\n private renderSearchCloseButton() {\n return (\n <br-button\n class=\"search-close\"\n shape=\"circle\"\n density=\"small\"\n emphasis=\"tertiary\"\n onClick={this.handleSearchCloseClick}\n aria-label=\"Fechar busca\"\n >\n <br-icon iconName=\"fa7-solid:close\"></br-icon>\n </br-button>\n )\n }\n\n /**\n * Renderiza o conteúdo padrão do slot.\n * @param name O nome do slot.\n * @returns Um elemento JSX representando o conteúdo padrão do slot.\n */\n private renderSlotDefaultContent(name: HeaderSlotName) {\n switch (name) {\n case HeaderSlotNames.CAPTION:\n return this.renderDefaultCaptionContent()\n case HeaderSlotNames.SUBCAPTION:\n return this.renderDefaultSubcaptionContent()\n case HeaderSlotNames.SIGNATURE:\n return this.renderDefaultSignatureContent()\n default:\n return null\n }\n }\n\n /**\n * Renderiza o componente.\n * @returns JSX.Element\n */\n render() {\n return (\n <Host>\n <header id={this.customId} class={this.getCssClassMap()}>\n <div class=\"container-lg\">\n <div class=\"header-top\">\n <div class=\"header-top-left\">\n {this.renderHeaderArea(HeaderSlotNames.LOGO)}\n {this.renderDivider(HeaderSlotNames.LOGO, [HeaderSlotNames.SIGNATURE])}\n {this.renderHeaderArea(HeaderSlotNames.SIGNATURE)}\n </div>\n <div class=\"header-top-right\">\n {this.renderHeaderArea(HeaderSlotNames.LINKS)}\n {this.renderDivider(HeaderSlotNames.LINKS, [HeaderSlotNames.FUNCTIONS, HeaderSlotNames.SEARCH_ICON])}\n {this.renderHeaderArea(HeaderSlotNames.FUNCTIONS)}\n {this.renderDivider(HeaderSlotNames.FUNCTIONS, [HeaderSlotNames.SEARCH_ICON])}\n {this.renderHeaderArea(HeaderSlotNames.SEARCH_ICON)}\n {this.renderHeaderArea(HeaderSlotNames.ACCESS)}\n </div>\n </div>\n <div class=\"header-bottom\">\n <div class=\"header-bottom-left\">\n {this.renderHeaderArea(HeaderSlotNames.MENU_TRIGGER)}\n <div class=\"header-caption-wrapper\">\n {this.renderHeaderArea(HeaderSlotNames.CAPTION)}\n {this.renderHeaderArea(HeaderSlotNames.SUBCAPTION)}\n </div>\n </div>\n <div\n class={{\n 'header-bottom-right': true,\n 'is-active': this.headerArea[HeaderSlotNames.SEARCH]?.isActive,\n }}\n >\n {this.renderHeaderArea(HeaderSlotNames.SEARCH)}\n </div>\n </div>\n </div>\n </header>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* © https://serpro.gov.br/ - MIT License.
|
|
4
4
|
*/
|
|
5
5
|
import { r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-ByGJPTh2.js';
|
|
6
|
-
import { _ as __awaiter } from './tslib.es6-DIPMDb5E.js';
|
|
7
6
|
|
|
8
7
|
const itemCss = "*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host{line-height:var(--font-line-height-medium);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body{margin:0}main{display:block}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}a{background-color:rgba(0,0,0,0)}b,strong{font-weight:bolder}small{font-size:80%}img{border-style:none}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:var(--font-line-height-medium);margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.d-none{display:none !important}.d-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}@media (min-width: 576px){.d-sm-block{display:block !important}.d-sm-flex{display:-webkit-box !important;display:-ms-flexbox !important;display:flex !important}}.justify-content-start{-webkit-box-pack:start !important;-ms-flex-pack:start !important;justify-content:flex-start !important}.justify-content-end{-webkit-box-pack:end !important;-ms-flex-pack:end !important;justify-content:flex-end !important}.justify-content-center{-webkit-box-pack:center !important;-ms-flex-pack:center !important;justify-content:center !important}.align-items-center{-webkit-box-align:center !important;-ms-flex-align:center !important;align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter)*.5);padding-right:calc(var(--grid-gutter)*.5);width:100%}.col{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;min-width:8.3333333333%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-2{-ms-flex-preferred-size:16.6666666667%;flex-basis:16.6666666667%;max-width:16.6666666667%}.container,.container-lg{--grid-margin:var(--grid-portrait-margin);--grid-maxwidth:var(--grid-portrait-maxwidth);margin-left:auto;margin-right:auto;max-width:var(--grid-maxwidth);padding-left:var(--grid-margin);padding-right:var(--grid-margin);width:100%}.row{--grid-gutter:var(--grid-portrait-gutter);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:calc(var(--grid-gutter)*-0.5);margin-right:calc(var(--grid-gutter)*-0.5)}@media (min-width: 576px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-sm) - var(--grid-tablet-margin))}.col-sm-4{-ms-flex-preferred-size:33.3333333333%;flex-basis:33.3333333333%;max-width:33.3333333333%}}@media (min-width: 992px){.container,.container-lg{--grid-margin:var(--grid-tablet-margin)}.row{--grid-gutter:var(--grid-tablet-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-md) - var(--grid-tablet-margin))}}@media (min-width: 1280px){.container,.container-lg{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}.col-lg-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}}@media (min-width: 1600px){.container,.container-lg{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container,.container-lg{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.mr-1{margin-right:var(--spacing-scale-half) !important}.mb-1{margin-bottom:var(--spacing-scale-half) !important}.ml-1{margin-left:var(--spacing-scale-half) !important}.mr-n2{margin-right:calc(var(--spacing-scale-base)*-1) !important}.ml-2{margin-left:var(--spacing-scale-base) !important}.mx-3{margin-left:var(--spacing-scale-2x) !important;margin-right:var(--spacing-scale-2x) !important}.mr-auto{margin-right:auto !important}.ml-auto{margin-left:auto !important}.pt-half{padding-top:var(--spacing-scale-half) !important}.py-3{padding-bottom:var(--spacing-scale-2x) !important;padding-top:var(--spacing-scale-2x) !important}.py-4{padding-bottom:var(--spacing-scale-3x) !important;padding-top:var(--spacing-scale-3x) !important}@media (min-width: 576px){.ml-sm-0{margin-left:var(--spacing-scale-default) !important}}body{--bg-color:var(--background);--bg-color-rgb:var(--background-rgb);--bg-color-hsl:var(--background-hsl);--font-size:var(--font-size-scale-base);--font-weight:var(--font-weight-regular);--link-color:var(--interactive);--link-color-rgb:var(--interactive-rgb);--link-color-hsl:var(--interactive-hsl);--line-height:var(--font-line-height-medium);--text-color:var(--color);--text-color-rgb:var(--color-rgb);--text-color-hsl:var(--color-hsl);background:var(--bg-color);color:var(--text-color);font-family:var(--font-family-base);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height)}p{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-2x);margin-top:0}p a{text-decoration:underline}@media (min-width: 576px){p{font-size:var(--font-size-scale-up-01)}}a{--focus-offset:var(--spacing-scale-half)}a:focus{outline:none}a:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}a:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a:not(:disabled):active{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--pressed))), to(rgba(var(--interactive-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}a{color:var(--interactive);text-decoration:none}button{cursor:pointer}img{max-width:100%;vertical-align:middle}h2,.h2{color:var(--color);font-size:var(--font-size-scale-up-03);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-2xh);margin-top:var(--spacing-scale-3xh);padding-bottom:var(--spacing-scale-2xh)}@media (min-width: 576px){.h2,h2{font-size:var(--font-size-scale-up-05);font-weight:var(--font-weight-regular)}}ul,ol{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}table{--table-background:var(--background);--table-color:var(--color);--table-border-color:var(--gray-20);--table-border-style:solid;--table-border-width:1px;--table-hover:var(--color-rgb);--table-padding:var(--spacing-scale-3x);--table-font-weight:var(--font-weight-medium);--table-th-background:var(--background-alternative);--table-th-font-weight:var(--font-weight-semi-bold);--table-row-size:var(--spacing-scale-2x);border-collapse:collapse;width:100%}label,.label{color:var(--color);font-size:var(--font-size-scale-base);font-weight:var(--font-weight-semi-bold);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half)}::-webkit-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-moz-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::-ms-input-placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}::placeholder,.placeholder{color:var(--color-light);font-size:var(--font-size-scale-base);font-style:italic;font-weight:var(--font-weight-regular);line-height:var(--font-line-height-medium);margin-bottom:var(--spacing-scale-half);margin-top:var(--spacing-scale-half);opacity:1}input,textarea,.input{color:var(--color-light);font-size:var(--font-size-scale-up-01);font-weight:var(--font-weight-medium);line-height:var(--font-line-height-low);margin-bottom:var(--spacing-scale-half)}.text-pure-0{color:var(--pure-0) !important}.bg-interactive{--background:var(--interactive);background:var(--interactive) !important}.text-primary-default{color:var(--color-primary-default) !important}.text-center{text-align:center !important}.text-right{text-align:right !important}.text-nowrap{white-space:nowrap !important}.text-uppercase{text-transform:uppercase !important}.text-medium{font-weight:500 !important}.text-bold{font-weight:700 !important}.text-down-01{font-size:var(--font-size-scale-down-01) !important}@media (min-width: 576px){.text-sm-center{text-align:center !important}.text-sm-left{text-align:left !important}.text-sm-right{text-align:right !important}}.ease{-webkit-animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1);animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1)}.ease-in-out{-webkit-animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1);animation-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}.fab{--icon-size:var(--icon-size-base);display:inline-block;font-size:var(--icon-size);text-align:center;width:calc(var(--icon-size) + 8px)}.highlight{background:var(--status-highlight-background) -webkit-gradient(linear, left top, left bottom, from(var(--status-highlight-overlay)), to(var(--status-highlight-overlay)));background:var(--status-highlight-background) linear-gradient(var(--status-highlight-overlay), var(--status-highlight-overlay));color:var(--status-highlight-text);padding:0 var(--spacing-scale-half)}[disabled],.disabled{cursor:not-allowed;opacity:var(--disabled)}[disabled] *,.disabled *{pointer-events:none}[data-toggle=dropdown]+*{position:absolute}.dropdown{position:relative}.dropdown [data-toggle=dropdown]+*{-webkit-box-shadow:var(--surface-shadow-sm);box-shadow:var(--surface-shadow-sm);left:0;position:absolute;top:100%}.dropdown .br-item{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--color-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);--item-padding-y:var(--spacing-scale-2x);background-color:var(--background-light);color:var(--color)}.dropdown .br-item:not(:last-child){border-bottom:1px solid var(--border-color)}.dropdown .br-item.selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}*[data-toggle=collapse]:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}*[data-toggle=collapse]:focus{outline:none}*[data-toggle=collapse]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}.br-item{background:var(--background);--item-padding-x:var(--spacing-scale-2x);--item-padding-y:var(--spacing-scale-base);--item-padding:var(--item-padding-y) var(--item-padding-x);--focus-offset:calc(var(--focus-width) * -1);border:0;color:var(--color);display:block;font-weight:var(--font-weight);padding:var(--item-padding);text-align:left;width:100%}.br-item .row{margin-left:calc(-1*var(--spacing-scale-base));margin-right:calc(-1*var(--spacing-scale-base))}.br-item .row .col,.br-item .row [class*=col-]{padding-left:var(--spacing-scale-base);padding-right:var(--spacing-scale-base)}.br-item::after{clear:both;content:\"\";display:block}.br-item[data-toggle]{cursor:pointer}.br-item[data-toggle=selection]:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--color-rgb), var(--hover))), to(rgba(var(--color-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--color-rgb), var(--hover)), rgba(var(--color-rgb), var(--hover)))}.br-item>.br-checkbox:not(.hidden-label),.br-item>.br-radio:not(.hidden-label){margin-bottom:calc(var(--item-padding-y)*-1);margin-left:calc(var(--item-padding-x)*-1);margin-right:calc(var(--item-padding-x)*-1);margin-top:calc(var(--item-padding-y)*-1)}.br-item>.br-checkbox:not(.hidden-label) input+label,.br-item>.br-radio:not(.hidden-label) input+label{padding-bottom:var(--item-padding-y);padding-top:var(--item-padding-y);top:1px;width:100%}.br-item>.br-checkbox:not(.hidden-label) input+label::before,.br-item>.br-radio:not(.hidden-label) input+label::before{left:var(--item-padding-x);top:calc(var(--item-padding-y) - 1px)}.br-item>.br-checkbox:not(.hidden-label) input+label:empty,.br-item>.br-radio:not(.hidden-label) input+label:empty{left:0;top:1px}.br-item>.br-checkbox:not(.hidden-label) input:hover:not(:disabled)+label::before,.br-item>.br-radio:not(.hidden-label) input:hover:not(:disabled)+label::before{background-image:none}.br-item>.br-checkbox input:not(:indeterminate)+label{min-height:calc(var(--checkbox-size) + var(--item-padding-y)*2)}.br-item>.br-checkbox input:not(:indeterminate)+label:not(:empty){padding-left:calc(var(--checkbox-padding) + var(--checkbox-size) + var(--item-padding-x))}.br-item>.br-checkbox input:not(:indeterminate)+label::after{left:calc(var(--item-padding-x) + 8px);top:calc(var(--item-padding-y) + 4px)}.br-item>.br-checkbox input:not(:indeterminate)+label:empty{min-height:var(--checkbox-size)}.br-item>.br-checkbox input:not(:indeterminate)+label:empty::after{left:8px;top:4px}.br-item .br-radio input+label{min-height:calc(var(--radio-size) + var(--item-padding-y)*2);padding-left:calc(var(--spacing-scale-base) + var(--radio-size) + var(--item-padding-x))}.br-item .br-radio input+label::after{left:calc(var(--item-padding-x) + var(--radio-bullet-position));top:calc(var(--item-padding-y) + var(--radio-bullet-position) - 1px)}.br-item .br-radio input+label:empty{min-height:var(--radio-size)}.br-item .br-radio input+label:empty::after{left:var(--radio-bullet-position);top:var(--radio-bullet-position)}.br-item.highlight{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.br-item.selected{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark);background-color:var(--selected)}.br-item.active{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark);background-color:var(--active);color:var(--color)}.br-item.inverted,.br-item.dark-mode{--color:var(--color-dark);--color-rgb:var(--color-dark-rgb);--text-color:var(--color-dark);--interactive:var(--interactive-dark);--interactive-rgb:var(--interactive-dark-rgb);--visited:var(--visited-dark);--hover:var(--hover-dark);--pressed:var(--pressed-dark);--focus-color:var(--focus-color-dark);--focus:var(--focus-color-dark)}.br-item.inverted.active,.br-item.dark-mode.active{--color:var(--color-light);--color-rgb:var(--color-light-rgb);--text-color:var(--color-light);--interactive:var(--interactive-light);--interactive-rgb:var(--active-rgb);--visited:var(--visited-light);--hover:var(--hover-light);--pressed:var(--pressed-light);--focus-color:var(--focus-color-light);--focus:var(--focus-color-light);background-color:var(--background-light);color:var(--active)}.br-item[data-toggle]:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--color-rgb), var(--hover))), to(rgba(var(--color-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--color-rgb), var(--hover)), rgba(var(--color-rgb), var(--hover)))}.br-item[data-toggle] .content i{color:var(--interactive)}.br-item .content{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.br-item [class*=fa-]{height:16px;width:14px !important}a.br-item{color:var(--interactive)}a.br-item:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--hover))), to(rgba(var(--interactive-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--hover)), rgba(var(--interactive-rgb), var(--hover)))}a.br-item:not(:disabled):active{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--interactive-rgb), var(--pressed))), to(rgba(var(--interactive-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--interactive-rgb), var(--pressed)), rgba(var(--interactive-rgb), var(--pressed)))}button.br-item{background-color:rgba(0,0,0,0);color:var(--color)}button.br-item:focus{outline:none}button.br-item:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}button.br-item:not(:disabled):hover{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--color-rgb), var(--hover))), to(rgba(var(--color-rgb), var(--hover))));background-image:linear-gradient(rgba(var(--color-rgb), var(--hover)), rgba(var(--color-rgb), var(--hover)))}button.br-item:not(:disabled):active{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(var(--color-rgb), var(--pressed))), to(rgba(var(--color-rgb), var(--pressed))));background-image:linear-gradient(rgba(var(--color-rgb), var(--pressed)), rgba(var(--color-rgb), var(--pressed)))}:host{display:block}::slotted(br-checkbox){max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;max-height:-webkit-fit-content;max-height:-moz-fit-content;max-height:fit-content}::slotted(br-radio){max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;max-height:-webkit-fit-content;max-height:-moz-fit-content;max-height:fit-content}.br-item:focus{cursor:auto;outline:var(--focus) var(--focus-style) var(--focus-width);outline-offset:var(--focus-offset)}.no-text-selection{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}";
|
|
9
8
|
|
|
@@ -264,11 +263,9 @@ const Item = class {
|
|
|
264
263
|
* Define o foco no elemento interno do componente.
|
|
265
264
|
* Este método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto.
|
|
266
265
|
*/
|
|
267
|
-
setFocus() {
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
(_a = this.focusableElement) === null || _a === void 0 ? void 0 : _a.focus();
|
|
271
|
-
});
|
|
266
|
+
async setFocus() {
|
|
267
|
+
var _a;
|
|
268
|
+
(_a = this.focusableElement) === null || _a === void 0 ? void 0 : _a.focus();
|
|
272
269
|
}
|
|
273
270
|
render() {
|
|
274
271
|
const TagType = this.getTagType();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"br-item.entry.js","sources":["../../packages/webcomponents/src/components/item/item.scss?tag=br-item&encapsulation=shadow","../../packages/webcomponents/src/components/item/item.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/item/item\";\n\n:host {\n display: block;\n}\n\n::slotted(br-checkbox) {\n max-width: fit-content;\n max-height: fit-content;\n}\n\n::slotted(br-radio) {\n max-width: fit-content;\n max-height: fit-content;\n}\n\n.br-item:focus {\n cursor: auto;\n outline: var(--focus) var(--focus-style) var(--focus-width);\n outline-offset: var(--focus-offset);\n}\n\n.no-text-selection {\n user-select: none;\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n} from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/item?tab=designer).\n *\n * @slot default - Área de conteúdo, podendo conter qualquer componente, exceto botões primários e componentes relacionados à navegação (como carrosséis, paginações, abas, menus, etc.).\n *\n * @slot start - Área de recursos visuais, podendo conter elementos como ícones, avatares e mídias.\n *\n * @slot end - Área de recursos complementares, podendo conter componentes interativos, metadados e informações adicionais.\n */\n@Component({\n tag: 'br-item',\n styleUrl: 'item.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Item {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrItemElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Desativa o item, tornando-o não interativo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-item-${itemId++}`\n\n /**\n * Indica se o item está no estado ativo.\n * Se definido como verdadeiro, o item será exibido como ativo.\n */\n @Prop({ reflect: true }) readonly isActive: boolean = false\n\n /**\n * Indica se o item está no estado selecionado.\n * Se definido como verdadeiro, o item será exibido como selecionado.\n */\n @Prop({ reflect: true }) readonly isSelected: boolean = false\n\n /**\n * Marca o item como interativo, permitindo que toda a superfície do item seja clicável.\n */\n @Prop({ reflect: true }) readonly isInteractive: boolean = false\n\n /**\n * URL ou caminho para o qual o usuário será direcionado ao clicar no item. Quando definido, o item será renderizado como um link.\n */\n @Prop({ reflect: true }) readonly href?: string\n\n /**\n * Define o alvo do link quando `href` está presente. Pode ser:\n * - `_blank` para abrir em uma nova aba,\n * - `_self` para abrir na mesma aba,\n * - `_parent` para abrir na aba pai,\n * - `_top` para abrir na aba superior.\n */\n @Prop({ reflect: true }) readonly target?: '_blank' | '_self' | '_parent' | '_top'\n\n /**\n * Quando definido como `true`, o item será tratado como um botão.\n */\n @Prop({ reflect: true }) readonly isButton: boolean = false\n\n /**\n * Tipo do botão, aplicável apenas se `isButton` for `true`. Pode ser:\n * - `'submit'` para enviar um formulário,\n * - `'reset'` para redefinir um formulário,\n * - `'button'` para um botão padrão.\n */\n @Prop({ reflect: true, mutable: true }) type: 'submit' | 'reset' | 'button'\n\n /**\n * Define um valor associado ao br-item quando renderizado como um botão, utilizado em contextos de formulário.\n */\n @Prop({ reflect: true }) readonly value?: string\n\n /**\n * Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\n */\n @Prop({ reflect: true }) readonly density: 'large' | 'medium' | 'small' = 'medium'\n\n // Propriedade interna para verificar a presença de conteúdo no slot default\n @State() hasSlotDefault: boolean = false\n\n @State() hasSlotStart: boolean = false\n\n @State() hasSlotEnd: boolean = false\n\n // Propriedade interna para armazenar o valor selecionado\n @State() selectedValue: boolean = false\n\n // Propriedade para rastrear a presença de rádios dentro do item\n private hasRadios: boolean = false\n\n // Referência ao elemento interno que deve receber o foco\n private focusableElement?: HTMLElement\n\n @Listen('checkedChange', { target: 'document' })\n handleRadioChange() {\n requestAnimationFrame(() => {\n this.updateRadioSelectionState()\n })\n }\n\n @Listen('checkedChange', { target: 'document' })\n handleCheckboxChange(event: Event) {\n const target = event.target as HTMLElement\n\n if (this.el.contains(target)) {\n this.updateCheckboxSelectionState()\n }\n }\n\n /**\n * Evento customizado emitido quando o item é clicado, aplicável apenas se o item for um botão (`<button>`).\n * Pode ser utilizado para ações personalizadas, exceto quando o item está desativado.\n */\n @Event({ composed: true, cancelable: true, bubbles: true }) brDidClick: EventEmitter\n\n /**\n * Evento customizado aplicável para todos os tipos de elementos (`div`, `button`, `a`), emitido quando o item é selecionado e desde que a propriedade `isInteractive` esteja presente.\n */\n @Event({ bubbles: true, composed: true }) brDidSelect: EventEmitter<{ selected: boolean }>\n\n componentWillLoad() {\n this.hasSlotContentDefault()\n this.hasSlotStart = this.hasSlotContent('start')\n this.hasSlotEnd = this.hasSlotContent('end')\n this.selectedValue = this.isSelected\n if (this.isButton) {\n this.type = this.type || 'button'\n }\n const radios = Array.from(this.el.querySelectorAll('br-radio'))\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n this.hasRadios = radios.length > 0\n\n if (this.isSelected) {\n if (checkboxes.length > 0) {\n checkboxes.forEach((checkbox) => (checkbox.checked = true))\n }\n if (radios.length > 0) {\n radios[0].checked = true\n }\n }\n\n this.updateRadioSelectionState()\n this.updateCheckboxSelectionState()\n }\n\n private hasSlotContentDefault(): void {\n this.hasSlotDefault = this.el.innerHTML !== ''\n }\n\n private hasSlotContent(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-item': true,\n disabled: this.disabled,\n active: this.isActive,\n selected: this.selectedValue,\n 'py-3': this.density === 'medium',\n 'py-4': this.density === 'small',\n 'no-text-selection': this.isButton || (this.href !== undefined && this.href.length > 0) || this.disabled,\n }\n }\n\n private getTagType(): string {\n if (this.isButton) {\n return 'button'\n }\n if (this.href?.length > 0) {\n return 'a'\n }\n return 'div'\n }\n\n private getAttributes() {\n const TagType = this.getTagType()\n const baseAttributes =\n TagType === 'button' ? { type: this.type, value: this.value } : { href: this.href, target: this.target }\n\n return {\n ...baseAttributes,\n 'aria-disabled': this.disabled ? 'true' : null,\n 'aria-current': this.isActive ? 'true' : null,\n 'data-toggle': this.isInteractive ? 'selection' : null,\n 'is-selected': this.selectedValue ? true : null,\n }\n }\n\n private updateCheckboxSelectionState() {\n if (this.hasRadios) return\n\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n\n this.selectedValue = checkboxes.some((checkbox) => checkbox.checked)\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n private updateRadioSelectionState() {\n if (!this.hasRadios) return\n\n const radios = Array.from(this.el.querySelectorAll('br-radio'))\n\n this.selectedValue = radios.some((radio) => radio.checked)\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n /**\n * Gerencia o evento mousedown aplicando preventDefault() apenas nos casos necessários:\n * - quando o item é um link (href definido)\n * - quando o item está desabilitado\n * Isso permite a seleção de texto normal em botões ou itens de leitura.\n */\n private handleMouseDown = (event: MouseEvent) => {\n const shouldPreventDefault = (this.href !== undefined && this.href.length > 0) || this.disabled\n if (shouldPreventDefault) {\n event.preventDefault()\n }\n }\n\n // Função para verificar se o clique foi dentro do slot do item.\n private isClickInsideInteractiveElement(target: HTMLElement): boolean {\n const interactiveSelectors = 'br-checkbox, br-radio, br-input, br-button, br-select, br-textarea'\n const interactiveElements = this.el.querySelectorAll(interactiveSelectors)\n return Array.from(interactiveElements).some((el) => el.contains(target) || target === el)\n }\n\n private updateCheckboxes() {\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n\n checkboxes.forEach((checkbox) => {\n checkbox.checked = this.selectedValue\n })\n }\n\n private readonly handleClick = (event: MouseEvent) => {\n if (this.disabled) {\n event.preventDefault()\n event.stopPropagation()\n return\n }\n\n const clickedElement = event.target as HTMLElement\n\n if (this.hasRadios) {\n return\n }\n\n if (this.isButton) {\n this.brDidClick.emit()\n } else if (this.isInteractive && !this.isClickInsideInteractiveElement(clickedElement)) {\n // Armazena o estado anterior para emitir o evento apenas se houver mudança.\n const previousSelectedValue = this.selectedValue\n this.selectedValue = !this.selectedValue\n\n if (previousSelectedValue !== this.selectedValue) {\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n this.updateCheckboxes()\n }\n\n event.stopPropagation()\n }\n\n /**\n * Método usado para associar ao evento onKeyDown no JSX\n * Evita problemas de lint com arrow functions ou bind() no JSX\n */\n private readonly handleKeydownEvent = (event: KeyboardEvent) => {\n this.handleKeydown(event)\n }\n\n /**\n * Manipula o evento keydown internamente\n */\n private handleKeydown(event: KeyboardEvent) {\n if (this.disabled) {\n console.log(`[br-item ${this.customId}] Item desativado, ignorando tecla pressionada(keydown).`)\n return\n }\n\n const listContainer = this.el.closest('br-list')\n if (listContainer === null || listContainer === undefined) {\n console.error(`[br-item ${this.customId}] Não foi possível encontrar o container pai <br-list>.`)\n return\n }\n\n const listItems = Array.from(listContainer.querySelectorAll('br-item:not([disabled])')) as HTMLBrItemElement[]\n if (listItems.length === 0) {\n console.warn(`[br-item ${this.customId}] Nenhum item navegável encontrado no container da lista.`)\n return\n }\n\n const currentIndex = listItems.indexOf(this.el)\n\n if (currentIndex === -1) {\n console.error(`[br-item ${this.customId}] Item atual não encontrado nos itens navegáveis.`)\n return // O item atual não está na lista (talvez desabilitado ou erro)\n }\n\n let targetItem: HTMLBrItemElement | null = null\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault()\n if (currentIndex < listItems.length - 1) {\n targetItem = listItems[currentIndex + 1]\n } else {\n console.log(`[br-item ${this.customId}] ArrowDown: Último item já selecionado.`)\n }\n break\n\n case 'ArrowUp':\n event.preventDefault()\n if (currentIndex > 0) {\n targetItem = listItems[currentIndex - 1]\n } else {\n console.log(`[br-item ${this.customId}] ArrowUp: Usuário já está no primeiro item da lista.`)\n }\n break\n\n case 'Enter':\n case ' ':\n event.preventDefault()\n this.handleClick(new MouseEvent('click'))\n break\n\n case 'Home':\n event.preventDefault()\n targetItem = listItems[0]\n break\n\n case 'End':\n event.preventDefault()\n targetItem = listItems[listItems.length - 1]\n break\n\n default:\n return\n }\n\n if (targetItem && targetItem !== this.el) {\n if ('setFocus' in targetItem) {\n // Se o item alvo tiver o método setFocus, chama-o\n ;(targetItem as { setFocus: () => void }).setFocus()\n }\n // Caso contrário, apenas defina o foco no elemento alvo\n targetItem.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n\n /**\n * Define o foco no elemento interno do componente.\n * Este método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto.\n */\n @Method()\n async setFocus() {\n this.focusableElement?.focus()\n }\n\n render() {\n const TagType = this.getTagType()\n const attributes = this.getAttributes()\n const classList = this.getCssClassMap()\n return (\n <Host>\n <TagType\n class={classList}\n {...attributes}\n onClick={this.handleClick}\n id={this.customId}\n ref={(el) => (this.focusableElement = el as HTMLElement)}\n onKeyDown={this.handleKeydownEvent}\n onMouseDown={this.handleMouseDown}\n >\n {this.hasSlotStart || this.hasSlotEnd ? (\n <div class=\"row align-items-center\">\n {this.hasSlotStart && (\n <div class=\"col-auto\">\n <slot name=\"start\"></slot>\n </div>\n )}\n\n <div class=\"col\">\n <slot></slot>\n </div>\n\n {this.hasSlotEnd && (\n <div class=\"col-auto\">\n <slot name=\"end\"></slot>\n </div>\n )}\n </div>\n ) : (\n <slot></slot>\n )}\n </TagType>\n </Host>\n )\n }\n}\n\nlet itemId = 0\n"],"names":[],"mappings":";;;;;;;AAAA,MAAM,OAAO,GAAG,k2nBAAk2nB;;MCiCr2nB,IAAI,GAAA,MAAA;AANjB,IAAA,WAAA,CAAA,OAAA,EAAA;;;;;;;;;;;AAeE;;AAEG;AAC+B,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAE3D;;;AAGG;AAC+B,QAAA,IAAA,CAAA,QAAQ,GAAW,WAAW,MAAM,EAAE,EAAE;AAE1E;;;AAGG;AAC+B,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAE3D;;;AAGG;AAC+B,QAAA,IAAU,CAAA,UAAA,GAAY,KAAK;AAE7D;;AAEG;AAC+B,QAAA,IAAa,CAAA,aAAA,GAAY,KAAK;AAgBhE;;AAEG;AAC+B,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAe3D;;AAEG;AAC+B,QAAA,IAAO,CAAA,OAAA,GAAiC,QAAQ;;AAGzE,QAAA,IAAc,CAAA,cAAA,GAAY,KAAK;AAE/B,QAAA,IAAY,CAAA,YAAA,GAAY,KAAK;AAE7B,QAAA,IAAU,CAAA,UAAA,GAAY,KAAK;;AAG3B,QAAA,IAAa,CAAA,aAAA,GAAY,KAAK;;AAG/B,QAAA,IAAS,CAAA,SAAA,GAAY,KAAK;AAuHlC;;;;;AAKG;AACK,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,KAAiB,KAAI;YAC9C,MAAM,oBAAoB,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,IAAI,CAAC,QAAQ;YAC/F,IAAI,oBAAoB,EAAE;gBACxB,KAAK,CAAC,cAAc,EAAE;;AAE1B,SAAC;AAiBgB,QAAA,IAAA,CAAA,WAAW,GAAG,CAAC,KAAiB,KAAI;AACnD,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,KAAK,CAAC,cAAc,EAAE;gBACtB,KAAK,CAAC,eAAe,EAAE;gBACvB;;AAGF,YAAA,MAAM,cAAc,GAAG,KAAK,CAAC,MAAqB;AAElD,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB;;AAGF,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;;AACjB,iBAAA,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,cAAc,CAAC,EAAE;;AAEtF,gBAAA,MAAM,qBAAqB,GAAG,IAAI,CAAC,aAAa;AAChD,gBAAA,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa;AAExC,gBAAA,IAAI,qBAAqB,KAAK,IAAI,CAAC,aAAa,EAAE;AAChD,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;;gBAGzD,IAAI,CAAC,gBAAgB,EAAE;;YAGzB,KAAK,CAAC,eAAe,EAAE;AACzB,SAAC;AAED;;;AAGG;AACc,QAAA,IAAA,CAAA,kBAAkB,GAAG,CAAC,KAAoB,KAAI;AAC7D,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AAC3B,SAAC;AAkIF;IAnTC,iBAAiB,GAAA;QACf,qBAAqB,CAAC,MAAK;YACzB,IAAI,CAAC,yBAAyB,EAAE;AAClC,SAAC,CAAC;;AAIJ,IAAA,oBAAoB,CAAC,KAAY,EAAA;AAC/B,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB;QAE1C,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC5B,IAAI,CAAC,4BAA4B,EAAE;;;IAevC,iBAAiB,GAAA;QACf,IAAI,CAAC,qBAAqB,EAAE;QAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;AAC5C,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU;AACpC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,QAAQ;;AAEnC,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;AAC/D,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACtE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;AAElC,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,gBAAA,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,MAAM,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;;AAE7D,YAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,gBAAA,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI;;;QAI5B,IAAI,CAAC,yBAAyB,EAAE;QAChC,IAAI,CAAC,4BAA4B,EAAE;;IAG7B,qBAAqB,GAAA;QAC3B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,KAAK,EAAE;;AAGxC,IAAA,cAAc,CAAC,QAAgB,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAU,OAAA,EAAA,QAAQ,CAAI,EAAA,CAAA,CAAC,KAAK,IAAI;;IAGvD,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,QAAQ;YACrB,QAAQ,EAAE,IAAI,CAAC,aAAa;AAC5B,YAAA,MAAM,EAAE,IAAI,CAAC,OAAO,KAAK,QAAQ;AACjC,YAAA,MAAM,EAAE,IAAI,CAAC,OAAO,KAAK,OAAO;YAChC,mBAAmB,EAAE,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ;SACzG;;IAGK,UAAU,GAAA;;AAChB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,OAAO,QAAQ;;AAEjB,QAAA,IAAI,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,IAAG,CAAC,EAAE;AACzB,YAAA,OAAO,GAAG;;AAEZ,QAAA,OAAO,KAAK;;IAGN,aAAa,GAAA;AACnB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE;AACjC,QAAA,MAAM,cAAc,GAClB,OAAO,KAAK,QAAQ,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;AAE1G,QAAA,OACK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,cAAc,CACjB,EAAA,EAAA,eAAe,EAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,IAAI,EAC9C,cAAc,EAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,IAAI,EAC7C,aAAa,EAAE,IAAI,CAAC,aAAa,GAAG,WAAW,GAAG,IAAI,EACtD,aAAa,EAAE,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,IAAI,EAChD,CAAA;;IAGK,4BAA4B,GAAA;QAClC,IAAI,IAAI,CAAC,SAAS;YAAE;AAEpB,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AAEtE,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,OAAO,CAAC;AACpE,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;;IAGjD,yBAAyB,GAAA;QAC/B,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE;AAErB,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;AAE/D,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,CAAC;AAC1D,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;;;AAiBjD,IAAA,+BAA+B,CAAC,MAAmB,EAAA;QACzD,MAAM,oBAAoB,GAAG,oEAAoE;QACjG,MAAM,mBAAmB,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;QAC1E,OAAO,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,EAAE,CAAC;;IAGnF,gBAAgB,GAAA;AACtB,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AAEtE,QAAA,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AAC9B,YAAA,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa;AACvC,SAAC,CAAC;;AAyCJ;;AAEG;AACK,IAAA,aAAa,CAAC,KAAoB,EAAA;AACxC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO,CAAC,GAAG,CAAC,CAAA,SAAA,EAAY,IAAI,CAAC,QAAQ,CAA0D,wDAAA,CAAA,CAAC;YAChG;;QAGF,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;QAChD,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,SAAS,EAAE;YACzD,OAAO,CAAC,KAAK,CAAC,CAAA,SAAA,EAAY,IAAI,CAAC,QAAQ,CAAyD,uDAAA,CAAA,CAAC;YACjG;;AAGF,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,CAAwB;AAC9G,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAA,SAAA,EAAY,IAAI,CAAC,QAAQ,CAA2D,yDAAA,CAAA,CAAC;YAClG;;QAGF,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AAE/C,QAAA,IAAI,YAAY,KAAK,EAAE,EAAE;YACvB,OAAO,CAAC,KAAK,CAAC,CAAA,SAAA,EAAY,IAAI,CAAC,QAAQ,CAAmD,iDAAA,CAAA,CAAC;AAC3F,YAAA,OAAM;;QAGR,IAAI,UAAU,GAA6B,IAAI;AAE/C,QAAA,QAAQ,KAAK,CAAC,GAAG;AACf,YAAA,KAAK,WAAW;gBACd,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,oBAAA,UAAU,GAAG,SAAS,CAAC,YAAY,GAAG,CAAC,CAAC;;qBACnC;oBACL,OAAO,CAAC,GAAG,CAAC,CAAA,SAAA,EAAY,IAAI,CAAC,QAAQ,CAA0C,wCAAA,CAAA,CAAC;;gBAElF;AAEF,YAAA,KAAK,SAAS;gBACZ,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,YAAY,GAAG,CAAC,EAAE;AACpB,oBAAA,UAAU,GAAG,SAAS,CAAC,YAAY,GAAG,CAAC,CAAC;;qBACnC;oBACL,OAAO,CAAC,GAAG,CAAC,CAAA,SAAA,EAAY,IAAI,CAAC,QAAQ,CAAuD,qDAAA,CAAA,CAAC;;gBAE/F;AAEF,YAAA,KAAK,OAAO;AACZ,YAAA,KAAK,GAAG;gBACN,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,WAAW,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;gBACzC;AAEF,YAAA,KAAK,MAAM;gBACT,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC;gBACzB;AAEF,YAAA,KAAK,KAAK;gBACR,KAAK,CAAC,cAAc,EAAE;gBACtB,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC5C;AAEF,YAAA;gBACE;;QAGJ,IAAI,UAAU,IAAI,UAAU,KAAK,IAAI,CAAC,EAAE,EAAE;AACxC,YAAA,IAAI,UAAU,IAAI,UAAU,EAAE;gBAE1B,UAAuC,CAAC,QAAQ,EAAE;;;AAGtD,YAAA,UAAU,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;;;AAI1F;;;AAGG;IAEG,QAAQ,GAAA;;;YACZ,CAAA,EAAA,GAAA,IAAI,CAAC,gBAAgB,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,KAAK,EAAE;AAChC,SAAC,CAAA;;IAED,MAAM,GAAA;AACJ,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE;AACjC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE;AACvC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE;AACvC,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAC,OAAO,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,GAAA,EAAA,0CAAA,EACN,KAAK,EAAE,SAAS,EAAA,EACZ,UAAU,EAAA,EACd,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,gBAAgB,GAAG,EAAiB,CAAC,EACxD,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAClC,WAAW,EAAE,IAAI,CAAC,eAAe,EAEhC,CAAA,EAAA,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,IACnC,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,wBAAwB,EAAA,EAChC,IAAI,CAAC,YAAY,KAChB,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,UAAU,EAAA,EACnB,CAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAC,OAAO,EAAA,CAAQ,CACtB,CACP,EAED,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,KAAK,EAAA,EACd,CAAA,CAAA,MAAA,EAAA,IAAA,CAAa,CACT,EAEL,IAAI,CAAC,UAAU,KACd,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,UAAU,EAAA,EACnB,CAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAC,KAAK,EAAQ,CAAA,CACpB,CACP,CACG,KAEN,CAAA,CAAA,MAAA,EAAA,IAAA,CAAa,CACd,CACO,CACL;;;;;AAKb,IAAI,MAAM,GAAG,CAAC;;;;;"}
|
|
1
|
+
{"version":3,"file":"br-item.entry.js","sources":["../../packages/webcomponents/src/components/item/item.scss?tag=br-item&encapsulation=shadow","../../packages/webcomponents/src/components/item/item.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/item/item\";\n\n:host {\n display: block;\n}\n\n::slotted(br-checkbox) {\n max-width: fit-content;\n max-height: fit-content;\n}\n\n::slotted(br-radio) {\n max-width: fit-content;\n max-height: fit-content;\n}\n\n.br-item:focus {\n cursor: auto;\n outline: var(--focus) var(--focus-style) var(--focus-width);\n outline-offset: var(--focus-offset);\n}\n\n.no-text-selection {\n user-select: none;\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n} from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * ## Design System\n *\n * Para a documentação completa de design, incluindo diretrizes de uso, acessibilidade e exemplos visuais, consulte o [Design System do GovBR](https://www.gov.br/ds/components/item?tab=designer).\n *\n * @slot default - Área de conteúdo, podendo conter qualquer componente, exceto botões primários e componentes relacionados à navegação (como carrosséis, paginações, abas, menus, etc.).\n *\n * @slot start - Área de recursos visuais, podendo conter elementos como ícones, avatares e mídias.\n *\n * @slot end - Área de recursos complementares, podendo conter componentes interativos, metadados e informações adicionais.\n */\n@Component({\n tag: 'br-item',\n styleUrl: 'item.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Item {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrItemElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Desativa o item, tornando-o não interativo.\n */\n @Prop({ reflect: true }) readonly disabled: boolean = false\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-item-${itemId++}`\n\n /**\n * Indica se o item está no estado ativo.\n * Se definido como verdadeiro, o item será exibido como ativo.\n */\n @Prop({ reflect: true }) readonly isActive: boolean = false\n\n /**\n * Indica se o item está no estado selecionado.\n * Se definido como verdadeiro, o item será exibido como selecionado.\n */\n @Prop({ reflect: true }) readonly isSelected: boolean = false\n\n /**\n * Marca o item como interativo, permitindo que toda a superfície do item seja clicável.\n */\n @Prop({ reflect: true }) readonly isInteractive: boolean = false\n\n /**\n * URL ou caminho para o qual o usuário será direcionado ao clicar no item. Quando definido, o item será renderizado como um link.\n */\n @Prop({ reflect: true }) readonly href?: string\n\n /**\n * Define o alvo do link quando `href` está presente. Pode ser:\n * - `_blank` para abrir em uma nova aba,\n * - `_self` para abrir na mesma aba,\n * - `_parent` para abrir na aba pai,\n * - `_top` para abrir na aba superior.\n */\n @Prop({ reflect: true }) readonly target?: '_blank' | '_self' | '_parent' | '_top'\n\n /**\n * Quando definido como `true`, o item será tratado como um botão.\n */\n @Prop({ reflect: true }) readonly isButton: boolean = false\n\n /**\n * Tipo do botão, aplicável apenas se `isButton` for `true`. Pode ser:\n * - `'submit'` para enviar um formulário,\n * - `'reset'` para redefinir um formulário,\n * - `'button'` para um botão padrão.\n */\n @Prop({ reflect: true, mutable: true }) type: 'submit' | 'reset' | 'button'\n\n /**\n * Define um valor associado ao br-item quando renderizado como um botão, utilizado em contextos de formulário.\n */\n @Prop({ reflect: true }) readonly value?: string\n\n /**\n * Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\n */\n @Prop({ reflect: true }) readonly density: 'large' | 'medium' | 'small' = 'medium'\n\n // Propriedade interna para verificar a presença de conteúdo no slot default\n @State() hasSlotDefault: boolean = false\n\n @State() hasSlotStart: boolean = false\n\n @State() hasSlotEnd: boolean = false\n\n // Propriedade interna para armazenar o valor selecionado\n @State() selectedValue: boolean = false\n\n // Propriedade para rastrear a presença de rádios dentro do item\n private hasRadios: boolean = false\n\n // Referência ao elemento interno que deve receber o foco\n private focusableElement?: HTMLElement\n\n @Listen('checkedChange', { target: 'document' })\n handleRadioChange() {\n requestAnimationFrame(() => {\n this.updateRadioSelectionState()\n })\n }\n\n @Listen('checkedChange', { target: 'document' })\n handleCheckboxChange(event: Event) {\n const target = event.target as HTMLElement\n\n if (this.el.contains(target)) {\n this.updateCheckboxSelectionState()\n }\n }\n\n /**\n * Evento customizado emitido quando o item é clicado, aplicável apenas se o item for um botão (`<button>`).\n * Pode ser utilizado para ações personalizadas, exceto quando o item está desativado.\n */\n @Event({ composed: true, cancelable: true, bubbles: true }) brDidClick: EventEmitter\n\n /**\n * Evento customizado aplicável para todos os tipos de elementos (`div`, `button`, `a`), emitido quando o item é selecionado e desde que a propriedade `isInteractive` esteja presente.\n */\n @Event({ bubbles: true, composed: true }) brDidSelect: EventEmitter<{ selected: boolean }>\n\n componentWillLoad() {\n this.hasSlotContentDefault()\n this.hasSlotStart = this.hasSlotContent('start')\n this.hasSlotEnd = this.hasSlotContent('end')\n this.selectedValue = this.isSelected\n if (this.isButton) {\n this.type = this.type || 'button'\n }\n const radios = Array.from(this.el.querySelectorAll('br-radio'))\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n this.hasRadios = radios.length > 0\n\n if (this.isSelected) {\n if (checkboxes.length > 0) {\n checkboxes.forEach((checkbox) => (checkbox.checked = true))\n }\n if (radios.length > 0) {\n radios[0].checked = true\n }\n }\n\n this.updateRadioSelectionState()\n this.updateCheckboxSelectionState()\n }\n\n private hasSlotContentDefault(): void {\n this.hasSlotDefault = this.el.innerHTML !== ''\n }\n\n private hasSlotContent(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-item': true,\n disabled: this.disabled,\n active: this.isActive,\n selected: this.selectedValue,\n 'py-3': this.density === 'medium',\n 'py-4': this.density === 'small',\n 'no-text-selection': this.isButton || (this.href !== undefined && this.href.length > 0) || this.disabled,\n }\n }\n\n private getTagType(): string {\n if (this.isButton) {\n return 'button'\n }\n if (this.href?.length > 0) {\n return 'a'\n }\n return 'div'\n }\n\n private getAttributes() {\n const TagType = this.getTagType()\n const baseAttributes =\n TagType === 'button' ? { type: this.type, value: this.value } : { href: this.href, target: this.target }\n\n return {\n ...baseAttributes,\n 'aria-disabled': this.disabled ? 'true' : null,\n 'aria-current': this.isActive ? 'true' : null,\n 'data-toggle': this.isInteractive ? 'selection' : null,\n 'is-selected': this.selectedValue ? true : null,\n }\n }\n\n private updateCheckboxSelectionState() {\n if (this.hasRadios) return\n\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n\n this.selectedValue = checkboxes.some((checkbox) => checkbox.checked)\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n private updateRadioSelectionState() {\n if (!this.hasRadios) return\n\n const radios = Array.from(this.el.querySelectorAll('br-radio'))\n\n this.selectedValue = radios.some((radio) => radio.checked)\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n /**\n * Gerencia o evento mousedown aplicando preventDefault() apenas nos casos necessários:\n * - quando o item é um link (href definido)\n * - quando o item está desabilitado\n * Isso permite a seleção de texto normal em botões ou itens de leitura.\n */\n private handleMouseDown = (event: MouseEvent) => {\n const shouldPreventDefault = (this.href !== undefined && this.href.length > 0) || this.disabled\n if (shouldPreventDefault) {\n event.preventDefault()\n }\n }\n\n // Função para verificar se o clique foi dentro do slot do item.\n private isClickInsideInteractiveElement(target: HTMLElement): boolean {\n const interactiveSelectors = 'br-checkbox, br-radio, br-input, br-button, br-select, br-textarea'\n const interactiveElements = this.el.querySelectorAll(interactiveSelectors)\n return Array.from(interactiveElements).some((el) => el.contains(target) || target === el)\n }\n\n private updateCheckboxes() {\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n\n checkboxes.forEach((checkbox) => {\n checkbox.checked = this.selectedValue\n })\n }\n\n private readonly handleClick = (event: MouseEvent) => {\n if (this.disabled) {\n event.preventDefault()\n event.stopPropagation()\n return\n }\n\n const clickedElement = event.target as HTMLElement\n\n if (this.hasRadios) {\n return\n }\n\n if (this.isButton) {\n this.brDidClick.emit()\n } else if (this.isInteractive && !this.isClickInsideInteractiveElement(clickedElement)) {\n // Armazena o estado anterior para emitir o evento apenas se houver mudança.\n const previousSelectedValue = this.selectedValue\n this.selectedValue = !this.selectedValue\n\n if (previousSelectedValue !== this.selectedValue) {\n this.brDidSelect.emit({ selected: this.selectedValue })\n }\n\n this.updateCheckboxes()\n }\n\n event.stopPropagation()\n }\n\n /**\n * Método usado para associar ao evento onKeyDown no JSX\n * Evita problemas de lint com arrow functions ou bind() no JSX\n */\n private readonly handleKeydownEvent = (event: KeyboardEvent) => {\n this.handleKeydown(event)\n }\n\n /**\n * Manipula o evento keydown internamente\n */\n private handleKeydown(event: KeyboardEvent) {\n if (this.disabled) {\n console.log(`[br-item ${this.customId}] Item desativado, ignorando tecla pressionada(keydown).`)\n return\n }\n\n const listContainer = this.el.closest('br-list')\n if (listContainer === null || listContainer === undefined) {\n console.error(`[br-item ${this.customId}] Não foi possível encontrar o container pai <br-list>.`)\n return\n }\n\n const listItems = Array.from(listContainer.querySelectorAll('br-item:not([disabled])')) as HTMLBrItemElement[]\n if (listItems.length === 0) {\n console.warn(`[br-item ${this.customId}] Nenhum item navegável encontrado no container da lista.`)\n return\n }\n\n const currentIndex = listItems.indexOf(this.el)\n\n if (currentIndex === -1) {\n console.error(`[br-item ${this.customId}] Item atual não encontrado nos itens navegáveis.`)\n return // O item atual não está na lista (talvez desabilitado ou erro)\n }\n\n let targetItem: HTMLBrItemElement | null = null\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault()\n if (currentIndex < listItems.length - 1) {\n targetItem = listItems[currentIndex + 1]\n } else {\n console.log(`[br-item ${this.customId}] ArrowDown: Último item já selecionado.`)\n }\n break\n\n case 'ArrowUp':\n event.preventDefault()\n if (currentIndex > 0) {\n targetItem = listItems[currentIndex - 1]\n } else {\n console.log(`[br-item ${this.customId}] ArrowUp: Usuário já está no primeiro item da lista.`)\n }\n break\n\n case 'Enter':\n case ' ':\n event.preventDefault()\n this.handleClick(new MouseEvent('click'))\n break\n\n case 'Home':\n event.preventDefault()\n targetItem = listItems[0]\n break\n\n case 'End':\n event.preventDefault()\n targetItem = listItems[listItems.length - 1]\n break\n\n default:\n return\n }\n\n if (targetItem && targetItem !== this.el) {\n if ('setFocus' in targetItem) {\n // Se o item alvo tiver o método setFocus, chama-o\n ;(targetItem as { setFocus: () => void }).setFocus()\n }\n // Caso contrário, apenas defina o foco no elemento alvo\n targetItem.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' })\n }\n }\n\n /**\n * Define o foco no elemento interno do componente.\n * Este método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto.\n */\n @Method()\n async setFocus() {\n this.focusableElement?.focus()\n }\n\n render() {\n const TagType = this.getTagType()\n const attributes = this.getAttributes()\n const classList = this.getCssClassMap()\n return (\n <Host>\n <TagType\n class={classList}\n {...attributes}\n onClick={this.handleClick}\n id={this.customId}\n ref={(el) => (this.focusableElement = el as HTMLElement)}\n onKeyDown={this.handleKeydownEvent}\n onMouseDown={this.handleMouseDown}\n >\n {this.hasSlotStart || this.hasSlotEnd ? (\n <div class=\"row align-items-center\">\n {this.hasSlotStart && (\n <div class=\"col-auto\">\n <slot name=\"start\"></slot>\n </div>\n )}\n\n <div class=\"col\">\n <slot></slot>\n </div>\n\n {this.hasSlotEnd && (\n <div class=\"col-auto\">\n <slot name=\"end\"></slot>\n </div>\n )}\n </div>\n ) : (\n <slot></slot>\n )}\n </TagType>\n </Host>\n )\n }\n}\n\nlet itemId = 0\n"],"names":[],"mappings":"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"}
|