@govbr-ds/webcomponents 2.0.0-next.2 → 2.0.0-next.21
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/LICENSE +1 -1
- package/README.md +193 -97
- package/dist/cjs/app-globals-77a217c6.js +11 -0
- package/dist/cjs/app-globals-77a217c6.js.map +1 -0
- package/dist/cjs/br-avatar.cjs.entry.js +77 -0
- package/dist/cjs/br-avatar.cjs.entry.js.map +1 -0
- package/dist/cjs/br-button_2.cjs.entry.js +2491 -0
- package/dist/cjs/br-button_2.cjs.entry.js.map +1 -0
- package/dist/cjs/br-checkbox_4.cjs.entry.js +346 -0
- package/dist/cjs/br-checkbox_4.cjs.entry.js.map +1 -0
- package/dist/cjs/br-dropdown.cjs.entry.js +100 -0
- package/dist/cjs/br-dropdown.cjs.entry.js.map +1 -0
- package/dist/cjs/br-item.cjs.entry.js +146 -0
- package/dist/cjs/br-item.cjs.entry.js.map +1 -0
- package/dist/cjs/br-loading.cjs.entry.js +43 -0
- package/dist/cjs/br-loading.cjs.entry.js.map +1 -0
- package/dist/cjs/br-message.cjs.entry.js +68 -0
- package/dist/cjs/br-message.cjs.entry.js.map +1 -0
- package/dist/cjs/br-select.cjs.entry.js +281 -0
- package/dist/cjs/br-select.cjs.entry.js.map +1 -0
- package/dist/cjs/br-switch.cjs.entry.js +81 -0
- package/dist/cjs/br-switch.cjs.entry.js.map +1 -0
- package/dist/cjs/br-tag.cjs.entry.js +88 -0
- package/dist/cjs/br-tag.cjs.entry.js.map +1 -0
- package/dist/cjs/br-textarea.cjs.entry.js +102 -0
- package/dist/cjs/br-textarea.cjs.entry.js.map +1 -0
- package/dist/cjs/br-upload.cjs.entry.js +168 -0
- package/dist/cjs/br-upload.cjs.entry.js.map +1 -0
- package/dist/cjs/index-86e7422e.js +1856 -0
- package/dist/cjs/index-86e7422e.js.map +1 -0
- package/dist/cjs/index.cjs.js +8 -0
- package/dist/cjs/index.cjs.js.map +1 -0
- package/dist/cjs/inherited-attributes-16f7d388.js +107 -0
- package/dist/cjs/inherited-attributes-16f7d388.js.map +1 -0
- package/dist/cjs/loader.cjs.js +21 -0
- package/dist/cjs/loader.cjs.js.map +1 -0
- package/dist/cjs/v4-2a0fe526.js +74 -0
- package/dist/cjs/v4-2a0fe526.js.map +1 -0
- package/dist/cjs/webcomponents.cjs.js +52 -0
- package/dist/cjs/webcomponents.cjs.js.map +1 -0
- package/dist/collection/collection-manifest.json +27 -0
- package/dist/collection/components/avatar/avatar.css +540 -0
- package/dist/collection/components/avatar/avatar.js +222 -0
- package/dist/collection/components/avatar/avatar.js.map +1 -0
- package/dist/collection/components/button/button.css +802 -0
- package/dist/collection/components/button/button.js +236 -0
- package/dist/collection/components/button/button.js.map +1 -0
- package/dist/collection/components/checkbox/checkbox.css +597 -0
- package/dist/collection/components/checkbox/checkbox.js +279 -0
- package/dist/collection/components/checkbox/checkbox.js.map +1 -0
- package/dist/collection/components/dropdown/dropdown.css +467 -0
- package/dist/collection/components/dropdown/dropdown.js +185 -0
- package/dist/collection/components/dropdown/dropdown.js.map +1 -0
- package/dist/collection/components/icon/icon.css +452 -0
- package/dist/collection/components/icon/icon.js +176 -0
- package/dist/collection/components/icon/icon.js.map +1 -0
- package/dist/collection/components/input/input.css +673 -0
- package/dist/collection/components/input/input.js +580 -0
- package/dist/collection/components/input/input.js.map +1 -0
- package/dist/collection/components/item/item.css +662 -0
- package/dist/collection/components/item/item.js +376 -0
- package/dist/collection/components/item/item.js.map +1 -0
- package/dist/collection/components/list/list.css +564 -0
- package/dist/collection/components/list/list.js +138 -0
- package/dist/collection/components/list/list.js.map +1 -0
- package/dist/collection/components/loading/loading.css +653 -0
- package/dist/collection/components/loading/loading.js +119 -0
- package/dist/collection/components/loading/loading.js.map +1 -0
- package/dist/collection/components/message/message.css +600 -0
- package/dist/collection/components/message/message.js +211 -0
- package/dist/collection/components/message/message.js.map +1 -0
- package/dist/collection/components/radio/radio.css +552 -0
- package/dist/collection/components/radio/radio.js +247 -0
- package/dist/collection/components/radio/radio.js.map +1 -0
- package/dist/collection/components/select/select.css +857 -0
- package/dist/collection/components/select/select.js +491 -0
- package/dist/collection/components/select/select.js.map +1 -0
- package/dist/collection/components/switch/switch.css +623 -0
- package/dist/collection/components/switch/switch.js +320 -0
- package/dist/collection/components/switch/switch.js.map +1 -0
- package/dist/collection/components/tag/tag.css +645 -0
- package/dist/collection/components/tag/tag.js +256 -0
- package/dist/collection/components/tag/tag.js.map +1 -0
- package/dist/collection/components/textarea/textarea.css +518 -0
- package/dist/collection/components/textarea/textarea.js +298 -0
- package/dist/collection/components/textarea/textarea.js.map +1 -0
- package/dist/collection/components/upload/upload.css +562 -0
- package/dist/collection/components/upload/upload.js +469 -0
- package/dist/collection/components/upload/upload.js.map +1 -0
- package/dist/collection/index.js +2 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/collection/pages/components/button/index.js +18 -0
- package/dist/collection/pages/components/checkbox/index.js +18 -0
- package/dist/collection/pages/components/dropdown/index.js +18 -0
- package/dist/collection/pages/components/icon/index.js +18 -0
- package/dist/collection/pages/components/input/index.js +27 -0
- package/dist/collection/pages/components/item/index.js +18 -0
- package/dist/collection/pages/components/list/index.js +19 -0
- package/dist/collection/pages/components/message/index.js +18 -0
- package/dist/collection/pages/components/radio/index.js +18 -0
- package/dist/collection/pages/components/select/index.js +18 -0
- package/dist/collection/pages/components/switch/index.js +18 -0
- package/dist/collection/pages/components/tag/index.js +18 -0
- package/dist/collection/pages/components/textarea/index.js +19 -0
- package/dist/collection/pages/components/upload/index.js +19 -0
- package/dist/collection/pages/scripts/menu.js +226 -0
- package/dist/collection/pages/scripts/pageLoader.js +180 -0
- package/dist/collection/scripts/menu.js +151 -0
- package/dist/collection/utils/inherited-attributes.js +102 -0
- package/dist/collection/utils/inherited-attributes.js.map +1 -0
- package/dist/collection/utils/interfaces.js +2 -0
- package/dist/collection/utils/interfaces.js.map +1 -0
- package/dist/collection/utils/unique-id-generator.js +13 -0
- package/dist/collection/utils/unique-id-generator.js.map +1 -0
- package/dist/components/br-avatar.d.ts +11 -0
- package/dist/components/br-avatar.js +6 -0
- package/dist/components/br-avatar.js.map +1 -0
- package/dist/components/br-button.d.ts +11 -0
- package/dist/components/br-button.js +6 -0
- package/dist/components/br-button.js.map +1 -0
- package/dist/components/br-checkbox.d.ts +11 -0
- package/dist/components/br-checkbox.js +6 -0
- package/dist/components/br-checkbox.js.map +1 -0
- package/dist/components/br-dropdown.d.ts +11 -0
- package/dist/components/br-dropdown.js +6 -0
- package/dist/components/br-dropdown.js.map +1 -0
- package/dist/components/br-icon.d.ts +11 -0
- package/dist/components/br-icon.js +6 -0
- package/dist/components/br-icon.js.map +1 -0
- package/dist/components/br-input.d.ts +11 -0
- package/dist/components/br-input.js +6 -0
- package/dist/components/br-input.js.map +1 -0
- package/dist/components/br-item.d.ts +11 -0
- package/dist/components/br-item.js +6 -0
- package/dist/components/br-item.js.map +1 -0
- package/dist/components/br-list.d.ts +11 -0
- package/dist/components/br-list.js +6 -0
- package/dist/components/br-list.js.map +1 -0
- package/dist/components/br-loading.d.ts +11 -0
- package/dist/components/br-loading.js +6 -0
- package/dist/components/br-loading.js.map +1 -0
- package/dist/components/br-message.d.ts +11 -0
- package/dist/components/br-message.js +6 -0
- package/dist/components/br-message.js.map +1 -0
- package/dist/components/br-radio.d.ts +11 -0
- package/dist/components/br-radio.js +6 -0
- package/dist/components/br-radio.js.map +1 -0
- package/dist/components/br-select.d.ts +11 -0
- package/dist/components/br-select.js +6 -0
- package/dist/components/br-select.js.map +1 -0
- package/dist/components/br-switch.d.ts +11 -0
- package/dist/components/br-switch.js +6 -0
- package/dist/components/br-switch.js.map +1 -0
- package/dist/components/br-tag.d.ts +11 -0
- package/dist/components/br-tag.js +6 -0
- package/dist/components/br-tag.js.map +1 -0
- package/dist/components/br-textarea.d.ts +11 -0
- package/dist/components/br-textarea.js +6 -0
- package/dist/components/br-textarea.js.map +1 -0
- package/dist/components/br-upload.d.ts +11 -0
- package/dist/components/br-upload.js +6 -0
- package/dist/components/br-upload.js.map +1 -0
- package/dist/components/index.d.ts +33 -0
- package/dist/components/index.js +6 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/p-22068d3c.js +6 -0
- package/dist/components/p-22068d3c.js.map +1 -0
- package/dist/components/p-62776355.js +6 -0
- package/dist/components/p-62776355.js.map +1 -0
- package/dist/components/p-67617725.js +6 -0
- package/dist/components/p-67617725.js.map +1 -0
- package/dist/components/p-74a4eb38.js +6 -0
- package/dist/components/p-74a4eb38.js.map +1 -0
- package/dist/components/p-7882cb21.js +6 -0
- package/dist/components/p-7882cb21.js.map +1 -0
- package/dist/components/p-7aca304a.js +6 -0
- package/dist/components/p-7aca304a.js.map +1 -0
- package/dist/components/p-b4b55ab7.js +17 -0
- package/dist/components/p-b4b55ab7.js.map +1 -0
- package/dist/components/p-d5a8d30c.js +6 -0
- package/dist/components/p-d5a8d30c.js.map +1 -0
- package/dist/components/p-fabd9bdd.js +7 -0
- package/dist/components/p-fabd9bdd.js.map +1 -0
- package/dist/esm/app-globals-72548b13.js +9 -0
- package/dist/esm/app-globals-72548b13.js.map +1 -0
- package/dist/esm/br-avatar.entry.js +73 -0
- package/dist/esm/br-avatar.entry.js.map +1 -0
- package/dist/esm/br-button_2.entry.js +2486 -0
- package/dist/esm/br-button_2.entry.js.map +1 -0
- package/dist/esm/br-checkbox_4.entry.js +339 -0
- package/dist/esm/br-checkbox_4.entry.js.map +1 -0
- package/dist/esm/br-dropdown.entry.js +96 -0
- package/dist/esm/br-dropdown.entry.js.map +1 -0
- package/dist/esm/br-item.entry.js +142 -0
- package/dist/esm/br-item.entry.js.map +1 -0
- package/dist/esm/br-loading.entry.js +39 -0
- package/dist/esm/br-loading.entry.js.map +1 -0
- package/dist/esm/br-message.entry.js +64 -0
- package/dist/esm/br-message.entry.js.map +1 -0
- package/dist/esm/br-select.entry.js +277 -0
- package/dist/esm/br-select.entry.js.map +1 -0
- package/dist/esm/br-switch.entry.js +77 -0
- package/dist/esm/br-switch.entry.js.map +1 -0
- package/dist/esm/br-tag.entry.js +84 -0
- package/dist/esm/br-tag.entry.js.map +1 -0
- package/dist/esm/br-textarea.entry.js +98 -0
- package/dist/esm/br-textarea.entry.js.map +1 -0
- package/dist/esm/br-upload.entry.js +164 -0
- package/dist/esm/br-upload.entry.js.map +1 -0
- package/dist/esm/index-14721f44.js +1826 -0
- package/dist/esm/index-14721f44.js.map +1 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/inherited-attributes-553a7c36.js +105 -0
- package/dist/esm/inherited-attributes-553a7c36.js.map +1 -0
- package/dist/esm/loader.js +17 -0
- package/dist/esm/loader.js.map +1 -0
- package/dist/esm/polyfills/core-js.js +11 -0
- package/dist/esm/polyfills/dom.js +79 -0
- package/dist/esm/polyfills/es5-html-element.js +1 -0
- package/dist/esm/polyfills/index.js +34 -0
- package/dist/esm/polyfills/system.js +6 -0
- package/dist/esm/v4-c99c1585.js +72 -0
- package/dist/esm/v4-c99c1585.js.map +1 -0
- package/dist/esm/webcomponents.js +47 -0
- package/dist/esm/webcomponents.js.map +1 -0
- package/dist/esm-es5/app-globals-72548b13.js +6 -0
- package/dist/esm-es5/app-globals-72548b13.js.map +1 -0
- package/dist/esm-es5/br-avatar.entry.js +6 -0
- package/dist/esm-es5/br-avatar.entry.js.map +1 -0
- package/dist/esm-es5/br-button_2.entry.js +17 -0
- package/dist/esm-es5/br-button_2.entry.js.map +1 -0
- package/dist/esm-es5/br-checkbox_4.entry.js +6 -0
- package/dist/esm-es5/br-checkbox_4.entry.js.map +1 -0
- package/dist/esm-es5/br-dropdown.entry.js +6 -0
- package/dist/esm-es5/br-dropdown.entry.js.map +1 -0
- package/dist/esm-es5/br-item.entry.js +6 -0
- package/dist/esm-es5/br-item.entry.js.map +1 -0
- package/dist/esm-es5/br-loading.entry.js +6 -0
- package/dist/esm-es5/br-loading.entry.js.map +1 -0
- package/dist/esm-es5/br-message.entry.js +6 -0
- package/dist/esm-es5/br-message.entry.js.map +1 -0
- package/dist/esm-es5/br-select.entry.js +6 -0
- package/dist/esm-es5/br-select.entry.js.map +1 -0
- package/dist/esm-es5/br-switch.entry.js +6 -0
- package/dist/esm-es5/br-switch.entry.js.map +1 -0
- package/dist/esm-es5/br-tag.entry.js +6 -0
- package/dist/esm-es5/br-tag.entry.js.map +1 -0
- package/dist/esm-es5/br-textarea.entry.js +6 -0
- package/dist/esm-es5/br-textarea.entry.js.map +1 -0
- package/dist/esm-es5/br-upload.entry.js +6 -0
- package/dist/esm-es5/br-upload.entry.js.map +1 -0
- package/dist/esm-es5/index-14721f44.js +6 -0
- package/dist/esm-es5/index-14721f44.js.map +1 -0
- package/dist/esm-es5/index.js +5 -0
- package/dist/esm-es5/index.js.map +1 -0
- package/dist/esm-es5/inherited-attributes-553a7c36.js +6 -0
- package/dist/esm-es5/inherited-attributes-553a7c36.js.map +1 -0
- package/dist/esm-es5/loader.js +6 -0
- package/dist/esm-es5/loader.js.map +1 -0
- package/dist/esm-es5/v4-c99c1585.js +6 -0
- package/dist/esm-es5/v4-c99c1585.js.map +1 -0
- package/dist/esm-es5/webcomponents.js +6 -0
- package/dist/esm-es5/webcomponents.js.map +1 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.js +1 -0
- package/dist/playwright.config.js +39 -0
- package/dist/playwright.config.js.map +1 -0
- package/dist/types/builds/govbr-ds/bibliotecas/wbc/govbr-ds-wbc/packages/webcomponents/.stencil/playwright.config.d.ts +5 -0
- package/dist/types/components/avatar/avatar.d.ts +60 -0
- package/dist/types/components/button/button.d.ts +64 -0
- package/dist/types/components/checkbox/checkbox.d.ts +78 -0
- package/dist/types/components/dropdown/dropdown.d.ts +64 -0
- package/dist/types/components/icon/icon.d.ts +58 -0
- package/dist/types/components/input/input.d.ts +151 -0
- package/dist/types/components/item/item.d.ts +96 -0
- package/dist/types/components/list/list.d.ts +34 -0
- package/dist/types/components/loading/loading.d.ts +34 -0
- package/dist/types/components/message/message.d.ts +62 -0
- package/dist/types/components/radio/radio.d.ts +75 -0
- package/dist/types/components/select/select.d.ts +98 -0
- package/dist/types/components/switch/switch.d.ts +78 -0
- package/dist/types/components/tag/tag.d.ts +73 -0
- package/dist/types/components/textarea/textarea.d.ts +66 -0
- package/dist/types/components/upload/upload.d.ts +160 -0
- package/dist/types/components.d.ts +1790 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/stencil-public-runtime.d.ts +1680 -0
- package/dist/types/utils/inherited-attributes.d.ts +20 -0
- package/dist/types/utils/interfaces.d.ts +3 -0
- package/dist/types/utils/unique-id-generator.d.ts +1 -0
- package/dist/webcomponents/index.esm.js +6 -0
- package/dist/webcomponents/index.esm.js.map +1 -0
- package/dist/webcomponents/p-11e8c72f.entry.js +6 -0
- package/dist/webcomponents/p-11e8c72f.entry.js.map +1 -0
- package/dist/webcomponents/p-1accc2ab.system.entry.js +6 -0
- package/dist/webcomponents/p-1accc2ab.system.entry.js.map +1 -0
- package/dist/webcomponents/p-254a2b7c.js +6 -0
- package/dist/webcomponents/p-254a2b7c.js.map +1 -0
- package/dist/webcomponents/p-36e48582.system.entry.js +6 -0
- package/dist/webcomponents/p-36e48582.system.entry.js.map +1 -0
- package/dist/webcomponents/p-37440256.entry.js +6 -0
- package/dist/webcomponents/p-37440256.entry.js.map +1 -0
- package/dist/webcomponents/p-44554246.system.entry.js +6 -0
- package/dist/webcomponents/p-44554246.system.entry.js.map +1 -0
- package/dist/webcomponents/p-55f80a96.system.entry.js +6 -0
- package/dist/webcomponents/p-55f80a96.system.entry.js.map +1 -0
- package/dist/webcomponents/p-563bea26.entry.js +6 -0
- package/dist/webcomponents/p-563bea26.entry.js.map +1 -0
- package/dist/webcomponents/p-58d37ac2.entry.js +6 -0
- package/dist/webcomponents/p-58d37ac2.entry.js.map +1 -0
- package/dist/webcomponents/p-64f4ecea.system.entry.js +6 -0
- package/dist/webcomponents/p-64f4ecea.system.entry.js.map +1 -0
- package/dist/webcomponents/p-6e286eba.system.js +6 -0
- package/dist/webcomponents/p-6e286eba.system.js.map +1 -0
- package/dist/webcomponents/p-703a633a.system.js +6 -0
- package/dist/webcomponents/p-703a633a.system.js.map +1 -0
- package/dist/webcomponents/p-74a4eb38.js +6 -0
- package/dist/webcomponents/p-74a4eb38.js.map +1 -0
- package/dist/webcomponents/p-76326737.system.entry.js +6 -0
- package/dist/webcomponents/p-76326737.system.entry.js.map +1 -0
- package/dist/webcomponents/p-797376a2.system.entry.js +17 -0
- package/dist/webcomponents/p-797376a2.system.entry.js.map +1 -0
- package/dist/webcomponents/p-7f8c5016.entry.js +6 -0
- package/dist/webcomponents/p-7f8c5016.entry.js.map +1 -0
- package/dist/webcomponents/p-90e2e623.system.js +6 -0
- package/dist/webcomponents/p-90e2e623.system.js.map +1 -0
- package/dist/webcomponents/p-a44ad074.entry.js +6 -0
- package/dist/webcomponents/p-a44ad074.entry.js.map +1 -0
- package/dist/webcomponents/p-a71689a5.system.js +6 -0
- package/dist/webcomponents/p-a71689a5.system.js.map +1 -0
- package/dist/webcomponents/p-aaa17439.entry.js +6 -0
- package/dist/webcomponents/p-aaa17439.entry.js.map +1 -0
- package/dist/webcomponents/p-aaca726d.system.js +7 -0
- package/dist/webcomponents/p-aaca726d.system.js.map +1 -0
- package/dist/webcomponents/p-aec894fa.system.entry.js +6 -0
- package/dist/webcomponents/p-aec894fa.system.entry.js.map +1 -0
- package/dist/webcomponents/p-b16b1de5.entry.js +6 -0
- package/dist/webcomponents/p-b16b1de5.entry.js.map +1 -0
- package/dist/webcomponents/p-b6af61ad.entry.js +6 -0
- package/dist/webcomponents/p-b6af61ad.entry.js.map +1 -0
- package/dist/webcomponents/p-c696c385.entry.js +17 -0
- package/dist/webcomponents/p-c696c385.entry.js.map +1 -0
- package/dist/webcomponents/p-d1e0a8ff.entry.js +6 -0
- package/dist/webcomponents/p-d1e0a8ff.entry.js.map +1 -0
- package/dist/webcomponents/p-d31732da.system.entry.js +6 -0
- package/dist/webcomponents/p-d31732da.system.entry.js.map +1 -0
- package/dist/webcomponents/p-d5a8d30c.js +6 -0
- package/dist/webcomponents/p-d5a8d30c.js.map +1 -0
- package/dist/webcomponents/p-db4b272c.system.entry.js +6 -0
- package/dist/webcomponents/p-db4b272c.system.entry.js.map +1 -0
- package/dist/webcomponents/p-dbd35139.js +7 -0
- package/dist/webcomponents/p-dbd35139.js.map +1 -0
- package/dist/webcomponents/p-e751c991.system.js +6 -0
- package/dist/webcomponents/p-e751c991.system.js.map +1 -0
- package/dist/webcomponents/p-e76f7113.system.entry.js +6 -0
- package/dist/webcomponents/p-e76f7113.system.entry.js.map +1 -0
- package/dist/webcomponents/p-f05d11f7.entry.js +6 -0
- package/dist/webcomponents/p-f05d11f7.entry.js.map +1 -0
- package/dist/webcomponents/p-f5412db6.system.entry.js +6 -0
- package/dist/webcomponents/p-f5412db6.system.entry.js.map +1 -0
- package/dist/webcomponents/webcomponents.esm.js +6 -0
- package/dist/webcomponents/webcomponents.esm.js.map +1 -0
- package/dist/webcomponents/webcomponents.js +127 -0
- package/hydrate/index.d.ts +242 -0
- package/hydrate/index.js +22414 -0
- package/hydrate/index.mjs +22406 -0
- package/hydrate/package.json +12 -0
- package/loader/cdn.js +6 -0
- package/loader/index.cjs.js +6 -0
- package/loader/index.d.ts +24 -0
- package/loader/index.es2017.js +6 -0
- package/loader/index.js +7 -0
- package/loader/package.json +11 -0
- package/package.json +54 -89
- package/vscode-data.json +960 -0
- package/dist/webcomponents.common.js +0 -23958
- package/dist/webcomponents.common.js.map +0 -1
- package/dist/webcomponents.umd.js +0 -23969
- package/dist/webcomponents.umd.js.map +0 -1
- package/dist/webcomponents.umd.min.js +0 -8
- package/dist/webcomponents.umd.min.js.map +0 -1
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Construído com @govbr-ds/webcomponents
|
|
3
|
+
* Padrão Digital de Governo.
|
|
4
|
+
*/
|
|
5
|
+
import { Host, h } from "@stencil/core";
|
|
6
|
+
/**
|
|
7
|
+
* Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/item?tab=designer).
|
|
8
|
+
*
|
|
9
|
+
* @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.).
|
|
10
|
+
*
|
|
11
|
+
* @slot start - Área de recursos visuais, podendo conter elementos como ícones, avatares e mídias.
|
|
12
|
+
*
|
|
13
|
+
* @slot end - Área de recursos complementares, podendo conter componentes interativos, metadados e informações adicionais.
|
|
14
|
+
*/
|
|
15
|
+
export class Item {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.inheritedAttributes = {};
|
|
18
|
+
this.handleClick = (event) => {
|
|
19
|
+
const clickedElement = event.target;
|
|
20
|
+
if (this.disabled) {
|
|
21
|
+
event.preventDefault();
|
|
22
|
+
event.stopPropagation();
|
|
23
|
+
}
|
|
24
|
+
if (this.isButton) {
|
|
25
|
+
this.brDidClick.emit();
|
|
26
|
+
}
|
|
27
|
+
else if (this.isInteractive && !this.isClickInsideInteractiveElement(clickedElement)) {
|
|
28
|
+
this.selectedValue = !this.selectedValue;
|
|
29
|
+
this.brDidSelect.emit({ selected: this.selectedValue });
|
|
30
|
+
this.updateCheckboxes();
|
|
31
|
+
}
|
|
32
|
+
event.stopPropagation();
|
|
33
|
+
};
|
|
34
|
+
this.disabled = false;
|
|
35
|
+
this.isActive = false;
|
|
36
|
+
this.isSelected = false;
|
|
37
|
+
this.isInteractive = false;
|
|
38
|
+
this.href = undefined;
|
|
39
|
+
this.target = undefined;
|
|
40
|
+
this.isButton = false;
|
|
41
|
+
this.type = undefined;
|
|
42
|
+
this.value = undefined;
|
|
43
|
+
this.density = 'medium';
|
|
44
|
+
this.hasSlotDefault = false;
|
|
45
|
+
this.hasSlotStart = false;
|
|
46
|
+
this.hasSlotEnd = false;
|
|
47
|
+
this.selectedValue = false;
|
|
48
|
+
}
|
|
49
|
+
handleChange(event) {
|
|
50
|
+
const target = event.target;
|
|
51
|
+
if (this.el.contains(target)) {
|
|
52
|
+
this.updateItemSelectionState();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
componentWillLoad() {
|
|
56
|
+
this.hasSlotContentDefault();
|
|
57
|
+
this.hasSlotStart = this.hasSlotContent('start');
|
|
58
|
+
this.hasSlotEnd = this.hasSlotContent('end');
|
|
59
|
+
this.selectedValue = this.isSelected;
|
|
60
|
+
if (this.isButton) {
|
|
61
|
+
this.type = this.type || 'button';
|
|
62
|
+
}
|
|
63
|
+
this.updateItemSelectionState();
|
|
64
|
+
}
|
|
65
|
+
componentDidLoad() {
|
|
66
|
+
this.updateCheckboxes();
|
|
67
|
+
}
|
|
68
|
+
hasSlotContentDefault() {
|
|
69
|
+
this.hasSlotDefault = this.el.innerHTML !== '';
|
|
70
|
+
}
|
|
71
|
+
hasSlotContent(slotName) {
|
|
72
|
+
return this.el.querySelector(`[slot="${slotName}"]`) !== null;
|
|
73
|
+
}
|
|
74
|
+
getCssClassMap() {
|
|
75
|
+
return {
|
|
76
|
+
'br-item': true,
|
|
77
|
+
disabled: this.disabled,
|
|
78
|
+
active: this.isActive,
|
|
79
|
+
selected: this.selectedValue,
|
|
80
|
+
'py-3': this.density === 'medium',
|
|
81
|
+
'py-4': this.density === 'small',
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
getTagType() {
|
|
85
|
+
var _a;
|
|
86
|
+
if (this.isButton) {
|
|
87
|
+
return 'button';
|
|
88
|
+
}
|
|
89
|
+
if (((_a = this.href) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
90
|
+
return 'a';
|
|
91
|
+
}
|
|
92
|
+
return 'div';
|
|
93
|
+
}
|
|
94
|
+
getAttributes() {
|
|
95
|
+
const TagType = this.getTagType();
|
|
96
|
+
const baseAttributes = TagType === 'button' ? { type: this.type, value: this.value } : { href: this.href, target: this.target };
|
|
97
|
+
return Object.assign(Object.assign(Object.assign({}, baseAttributes), { 'aria-disabled': this.disabled ? 'true' : null, 'aria-current': this.isActive ? 'true' : null, 'data-toggle': this.isInteractive ? 'selection' : null }), this.inheritedAttributes);
|
|
98
|
+
}
|
|
99
|
+
updateItemSelectionState() {
|
|
100
|
+
const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'));
|
|
101
|
+
const radios = Array.from(this.el.querySelectorAll('br-radio'));
|
|
102
|
+
let isAnyCheckboxChecked = false;
|
|
103
|
+
let isAnyRadioSelected = false;
|
|
104
|
+
if (checkboxes.length > 0) {
|
|
105
|
+
isAnyCheckboxChecked = checkboxes.some((cb) => cb.checked);
|
|
106
|
+
}
|
|
107
|
+
if (radios.length > 0) {
|
|
108
|
+
isAnyRadioSelected = radios.some((radio) => radio.checked);
|
|
109
|
+
}
|
|
110
|
+
this.selectedValue = isAnyCheckboxChecked || isAnyRadioSelected;
|
|
111
|
+
}
|
|
112
|
+
// Função para verificar se o clique foi dentro do slot do item.
|
|
113
|
+
isClickInsideInteractiveElement(target) {
|
|
114
|
+
const interactiveSelectors = 'br-checkbox, br-radio, br-input, br-button, br-select, br-textarea';
|
|
115
|
+
const interactiveElements = this.el.querySelectorAll(interactiveSelectors);
|
|
116
|
+
return Array.from(interactiveElements).some((el) => el.contains(target) || target === el);
|
|
117
|
+
}
|
|
118
|
+
updateCheckboxes() {
|
|
119
|
+
const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'));
|
|
120
|
+
checkboxes.forEach((checkbox) => {
|
|
121
|
+
checkbox.checked = this.selectedValue;
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
render() {
|
|
125
|
+
const TagType = this.getTagType();
|
|
126
|
+
const attributes = this.getAttributes();
|
|
127
|
+
const classList = this.getCssClassMap();
|
|
128
|
+
return (h(Host, { key: 'cd5aaacd053d2a3dcce81f2be4948a499b8165a2' }, h(TagType, Object.assign({ key: 'f6987c1b45458255f4008568cbeececc8d2f5548', class: classList }, attributes, { onClick: this.handleClick }), this.hasSlotStart || this.hasSlotEnd ? (h("div", { class: "row align-items-center" }, this.hasSlotStart && (h("div", { class: "col-auto" }, h("slot", { name: "start" }))), h("div", { class: "col" }, h("slot", null)), this.hasSlotEnd && (h("div", { class: "col-auto" }, h("slot", { name: "end" }))))) : (h("slot", null)))));
|
|
129
|
+
}
|
|
130
|
+
static get is() { return "br-item"; }
|
|
131
|
+
static get encapsulation() { return "shadow"; }
|
|
132
|
+
static get formAssociated() { return true; }
|
|
133
|
+
static get originalStyleUrls() {
|
|
134
|
+
return {
|
|
135
|
+
"$": ["item.scss"]
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
static get styleUrls() {
|
|
139
|
+
return {
|
|
140
|
+
"$": ["item.css"]
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
static get properties() {
|
|
144
|
+
return {
|
|
145
|
+
"disabled": {
|
|
146
|
+
"type": "boolean",
|
|
147
|
+
"mutable": false,
|
|
148
|
+
"complexType": {
|
|
149
|
+
"original": "boolean",
|
|
150
|
+
"resolved": "boolean",
|
|
151
|
+
"references": {}
|
|
152
|
+
},
|
|
153
|
+
"required": false,
|
|
154
|
+
"optional": false,
|
|
155
|
+
"docs": {
|
|
156
|
+
"tags": [],
|
|
157
|
+
"text": "Desativa o item, tornando-o n\u00E3o interativo."
|
|
158
|
+
},
|
|
159
|
+
"attribute": "disabled",
|
|
160
|
+
"reflect": true,
|
|
161
|
+
"defaultValue": "false"
|
|
162
|
+
},
|
|
163
|
+
"isActive": {
|
|
164
|
+
"type": "boolean",
|
|
165
|
+
"mutable": false,
|
|
166
|
+
"complexType": {
|
|
167
|
+
"original": "boolean",
|
|
168
|
+
"resolved": "boolean",
|
|
169
|
+
"references": {}
|
|
170
|
+
},
|
|
171
|
+
"required": false,
|
|
172
|
+
"optional": false,
|
|
173
|
+
"docs": {
|
|
174
|
+
"tags": [],
|
|
175
|
+
"text": "Indica se o item est\u00E1 no estado ativo.\nSe definido como verdadeiro, o item ser\u00E1 exibido como ativo."
|
|
176
|
+
},
|
|
177
|
+
"attribute": "is-active",
|
|
178
|
+
"reflect": true,
|
|
179
|
+
"defaultValue": "false"
|
|
180
|
+
},
|
|
181
|
+
"isSelected": {
|
|
182
|
+
"type": "boolean",
|
|
183
|
+
"mutable": false,
|
|
184
|
+
"complexType": {
|
|
185
|
+
"original": "boolean",
|
|
186
|
+
"resolved": "boolean",
|
|
187
|
+
"references": {}
|
|
188
|
+
},
|
|
189
|
+
"required": false,
|
|
190
|
+
"optional": false,
|
|
191
|
+
"docs": {
|
|
192
|
+
"tags": [],
|
|
193
|
+
"text": "Indica se o item est\u00E1 no estado selecionado.\nSe definido como verdadeiro, o item ser\u00E1 exibido como selecionado."
|
|
194
|
+
},
|
|
195
|
+
"attribute": "is-selected",
|
|
196
|
+
"reflect": true,
|
|
197
|
+
"defaultValue": "false"
|
|
198
|
+
},
|
|
199
|
+
"isInteractive": {
|
|
200
|
+
"type": "boolean",
|
|
201
|
+
"mutable": false,
|
|
202
|
+
"complexType": {
|
|
203
|
+
"original": "boolean",
|
|
204
|
+
"resolved": "boolean",
|
|
205
|
+
"references": {}
|
|
206
|
+
},
|
|
207
|
+
"required": false,
|
|
208
|
+
"optional": false,
|
|
209
|
+
"docs": {
|
|
210
|
+
"tags": [],
|
|
211
|
+
"text": "Marca o item como interativo, permitindo que toda a superf\u00EDcie do item seja clic\u00E1vel."
|
|
212
|
+
},
|
|
213
|
+
"attribute": "is-interactive",
|
|
214
|
+
"reflect": true,
|
|
215
|
+
"defaultValue": "false"
|
|
216
|
+
},
|
|
217
|
+
"href": {
|
|
218
|
+
"type": "string",
|
|
219
|
+
"mutable": false,
|
|
220
|
+
"complexType": {
|
|
221
|
+
"original": "string",
|
|
222
|
+
"resolved": "string",
|
|
223
|
+
"references": {}
|
|
224
|
+
},
|
|
225
|
+
"required": false,
|
|
226
|
+
"optional": true,
|
|
227
|
+
"docs": {
|
|
228
|
+
"tags": [],
|
|
229
|
+
"text": "URL ou caminho para o qual o usu\u00E1rio ser\u00E1 direcionado ao clicar no item. Quando definido, o item ser\u00E1 renderizado como um link."
|
|
230
|
+
},
|
|
231
|
+
"attribute": "href",
|
|
232
|
+
"reflect": true
|
|
233
|
+
},
|
|
234
|
+
"target": {
|
|
235
|
+
"type": "string",
|
|
236
|
+
"mutable": false,
|
|
237
|
+
"complexType": {
|
|
238
|
+
"original": "'_blank' | '_self' | '_parent' | '_top'",
|
|
239
|
+
"resolved": "\"_blank\" | \"_parent\" | \"_self\" | \"_top\"",
|
|
240
|
+
"references": {}
|
|
241
|
+
},
|
|
242
|
+
"required": false,
|
|
243
|
+
"optional": true,
|
|
244
|
+
"docs": {
|
|
245
|
+
"tags": [],
|
|
246
|
+
"text": "Define o alvo do link quando `href` est\u00E1 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."
|
|
247
|
+
},
|
|
248
|
+
"attribute": "target",
|
|
249
|
+
"reflect": true
|
|
250
|
+
},
|
|
251
|
+
"isButton": {
|
|
252
|
+
"type": "boolean",
|
|
253
|
+
"mutable": false,
|
|
254
|
+
"complexType": {
|
|
255
|
+
"original": "boolean",
|
|
256
|
+
"resolved": "boolean",
|
|
257
|
+
"references": {}
|
|
258
|
+
},
|
|
259
|
+
"required": false,
|
|
260
|
+
"optional": false,
|
|
261
|
+
"docs": {
|
|
262
|
+
"tags": [],
|
|
263
|
+
"text": "Quando definido como `true`, o item ser\u00E1 tratado como um bot\u00E3o."
|
|
264
|
+
},
|
|
265
|
+
"attribute": "is-button",
|
|
266
|
+
"reflect": true,
|
|
267
|
+
"defaultValue": "false"
|
|
268
|
+
},
|
|
269
|
+
"type": {
|
|
270
|
+
"type": "string",
|
|
271
|
+
"mutable": true,
|
|
272
|
+
"complexType": {
|
|
273
|
+
"original": "'submit' | 'reset' | 'button'",
|
|
274
|
+
"resolved": "\"button\" | \"reset\" | \"submit\"",
|
|
275
|
+
"references": {}
|
|
276
|
+
},
|
|
277
|
+
"required": false,
|
|
278
|
+
"optional": false,
|
|
279
|
+
"docs": {
|
|
280
|
+
"tags": [],
|
|
281
|
+
"text": "Tipo do bot\u00E3o, aplic\u00E1vel apenas se `isButton` for `true`. Pode ser:\n- `'submit'` para enviar um formul\u00E1rio,\n- `'reset'` para redefinir um formul\u00E1rio,\n- `'button'` para um bot\u00E3o padr\u00E3o."
|
|
282
|
+
},
|
|
283
|
+
"attribute": "type",
|
|
284
|
+
"reflect": true
|
|
285
|
+
},
|
|
286
|
+
"value": {
|
|
287
|
+
"type": "string",
|
|
288
|
+
"mutable": false,
|
|
289
|
+
"complexType": {
|
|
290
|
+
"original": "string",
|
|
291
|
+
"resolved": "string",
|
|
292
|
+
"references": {}
|
|
293
|
+
},
|
|
294
|
+
"required": false,
|
|
295
|
+
"optional": true,
|
|
296
|
+
"docs": {
|
|
297
|
+
"tags": [],
|
|
298
|
+
"text": "Define um valor associado ao br-item quando renderizado como um bot\u00E3o, utilizado em contextos de formul\u00E1rio."
|
|
299
|
+
},
|
|
300
|
+
"attribute": "value",
|
|
301
|
+
"reflect": true
|
|
302
|
+
},
|
|
303
|
+
"density": {
|
|
304
|
+
"type": "string",
|
|
305
|
+
"mutable": false,
|
|
306
|
+
"complexType": {
|
|
307
|
+
"original": "'large' | 'medium' | 'small'",
|
|
308
|
+
"resolved": "\"large\" | \"medium\" | \"small\"",
|
|
309
|
+
"references": {}
|
|
310
|
+
},
|
|
311
|
+
"required": false,
|
|
312
|
+
"optional": false,
|
|
313
|
+
"docs": {
|
|
314
|
+
"tags": [],
|
|
315
|
+
"text": "Ajusta a densidade, alterando o espa\u00E7amento interno para um visual mais compacto ou mais expandido."
|
|
316
|
+
},
|
|
317
|
+
"attribute": "density",
|
|
318
|
+
"reflect": true,
|
|
319
|
+
"defaultValue": "'medium'"
|
|
320
|
+
}
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
static get states() {
|
|
324
|
+
return {
|
|
325
|
+
"hasSlotDefault": {},
|
|
326
|
+
"hasSlotStart": {},
|
|
327
|
+
"hasSlotEnd": {},
|
|
328
|
+
"selectedValue": {}
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
static get events() {
|
|
332
|
+
return [{
|
|
333
|
+
"method": "brDidClick",
|
|
334
|
+
"name": "brDidClick",
|
|
335
|
+
"bubbles": true,
|
|
336
|
+
"cancelable": true,
|
|
337
|
+
"composed": true,
|
|
338
|
+
"docs": {
|
|
339
|
+
"tags": [],
|
|
340
|
+
"text": "Evento customizado emitido quando o item \u00E9 clicado, aplic\u00E1vel apenas se o item for um bot\u00E3o (`<button>`).\nPode ser utilizado para a\u00E7\u00F5es personalizadas, exceto quando o item est\u00E1 desativado."
|
|
341
|
+
},
|
|
342
|
+
"complexType": {
|
|
343
|
+
"original": "any",
|
|
344
|
+
"resolved": "any",
|
|
345
|
+
"references": {}
|
|
346
|
+
}
|
|
347
|
+
}, {
|
|
348
|
+
"method": "brDidSelect",
|
|
349
|
+
"name": "brDidSelect",
|
|
350
|
+
"bubbles": true,
|
|
351
|
+
"cancelable": true,
|
|
352
|
+
"composed": true,
|
|
353
|
+
"docs": {
|
|
354
|
+
"tags": [],
|
|
355
|
+
"text": "Evento customizado aplic\u00E1vel para todos os tipos de elementos (`div`, `button`, `a`), emitido quando o item \u00E9 selecionado e desde que a propriedade `isInteractive` esteja presente."
|
|
356
|
+
},
|
|
357
|
+
"complexType": {
|
|
358
|
+
"original": "{ selected: boolean }",
|
|
359
|
+
"resolved": "{ selected: boolean; }",
|
|
360
|
+
"references": {}
|
|
361
|
+
}
|
|
362
|
+
}];
|
|
363
|
+
}
|
|
364
|
+
static get elementRef() { return "el"; }
|
|
365
|
+
static get listeners() {
|
|
366
|
+
return [{
|
|
367
|
+
"name": "brDidCheckedChange",
|
|
368
|
+
"method": "handleChange",
|
|
369
|
+
"target": "document",
|
|
370
|
+
"capture": false,
|
|
371
|
+
"passive": false
|
|
372
|
+
}];
|
|
373
|
+
}
|
|
374
|
+
static get attachInternalsMemberName() { return "elementInternals"; }
|
|
375
|
+
}
|
|
376
|
+
//# sourceMappingURL=item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item.js","sourceRoot":"","sources":["../../../../src/components/item/item.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AttachInternals, Component, Element, Event, EventEmitter, Host, Listen, Prop, State, h } from '@stencil/core'\nimport { Attributes } from '../../utils/inherited-attributes'\nimport { CssClassMap } from '../../utils/interfaces'\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](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 }) disabled: boolean = false\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 }) 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 }) 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 }) 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 }) 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 }) 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 }) 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 }) 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 }) 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 @Listen('brDidCheckedChange', { target: 'document' })\n handleChange(event: Event) {\n const target = event.target as HTMLElement\n\n if (this.el.contains(target)) {\n this.updateItemSelectionState()\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 this.updateItemSelectionState()\n }\n\n componentDidLoad() {\n this.updateCheckboxes()\n }\n\n private hasSlotContentDefault(): any {\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 }\n }\n\n private readonly inheritedAttributes: Attributes = {}\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 ...this.inheritedAttributes,\n }\n }\n\n private updateItemSelectionState() {\n const checkboxes = Array.from(this.el.querySelectorAll('br-checkbox'))\n const radios = Array.from(this.el.querySelectorAll('br-radio'))\n\n let isAnyCheckboxChecked = false\n let isAnyRadioSelected = false\n\n if (checkboxes.length > 0) {\n isAnyCheckboxChecked = checkboxes.some((cb) => cb.checked)\n }\n if (radios.length > 0) {\n isAnyRadioSelected = radios.some((radio) => radio.checked)\n }\n\n this.selectedValue = isAnyCheckboxChecked || isAnyRadioSelected\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 const clickedElement = event.target as HTMLElement\n\n if (this.disabled) {\n event.preventDefault()\n event.stopPropagation()\n }\n\n if (this.isButton) {\n this.brDidClick.emit()\n } else if (this.isInteractive && !this.isClickInsideInteractiveElement(clickedElement)) {\n this.selectedValue = !this.selectedValue\n this.brDidSelect.emit({ selected: this.selectedValue })\n this.updateCheckboxes()\n }\n event.stopPropagation()\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 class={classList} {...attributes} onClick={this.handleClick}>\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"]}
|