@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
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,27 +1,66 @@
|
|
|
1
1
|
# Web Components GovBR-DS
|
|
2
2
|
|
|
3
|
-
Biblioteca
|
|
3
|
+
Biblioteca de Web Components do [GovBR-DS](https://gov.br/ds).
|
|
4
|
+
|
|
5
|
+
## Objetivo
|
|
6
|
+
|
|
7
|
+
Disponibilizar uma biblioteca de componentes baseada no [GovBR-DS](https://gov.br/ds 'GovBR-DS') que possa ser consumida independente de frameworks ou tecnologias utilizadas.
|
|
8
|
+
|
|
9
|
+
## Demonstração
|
|
10
|
+
|
|
11
|
+
Acesse nossos sites e veja nossos componentes em ação:
|
|
12
|
+
|
|
13
|
+
- [Produção](https://gov.br/ds/webcomponents/)
|
|
14
|
+
- [Desenvolvimento](https://govbr-ds.gitlab.io/bibliotecas/wbc/govbr-ds-wbc/)
|
|
4
15
|
|
|
5
16
|
## Tecnologias
|
|
6
17
|
|
|
7
18
|
Esse projeto é desenvolvido usando:
|
|
8
19
|
|
|
9
20
|
1. [GovBR-DS](https://gov.br/ds/ 'GovBR-DS')
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
6. [Jest](https://jestjs.io/ 'Jest')
|
|
21
|
+
1. [Stencil](https://stenciljs.com/ 'Stencil')
|
|
22
|
+
1. [Font Awesome](https://fontawesome.com/ 'Font Awesome')
|
|
23
|
+
1. [Fonte Rawline](https://www.cdnfonts.com/rawline.font/ 'Fonte Rawline')
|
|
24
|
+
1. [NX Monorepo](https://nx.dev/ 'NX Monorepo')
|
|
15
25
|
|
|
16
|
-
|
|
26
|
+
## O que são Web Components?
|
|
17
27
|
|
|
18
|
-
|
|
28
|
+
São um conjunto de tecnologias que permitem aos desenvolvedores criar novos elementos HTML personalizados, reutilizáveis e encapsulados para uso em páginas e aplicativos da web. Eles se baseiam em padrões da web existentes e são suportados por todos os navegadores modernos.
|
|
29
|
+
|
|
30
|
+
O diagrama mostra os três componentes principais dos Web Components:
|
|
31
|
+
|
|
32
|
+
- Elementos HTML personalizados: tags HTML definidas usando JavaScript e podem ser usados como qualquer outro elemento HTML.
|
|
33
|
+
- Shadow DOM: é um espaço de nome encapsulado para cada elemento HTML personalizado. Isso significa que os estilos e o JavaScript do elemento não interferem no resto da página.
|
|
34
|
+
- Templates: são fragmentos de HTML que podem ser reutilizados em vários elementos.
|
|
35
|
+
- Slots: são áreas em um elemento HTML personalizado onde templates podem ser inseridos.
|
|
36
|
+
|
|
37
|
+
### Benefícios dos Web Components
|
|
38
|
+
|
|
39
|
+
1. Reusabilidade
|
|
40
|
+
1. Modularidade
|
|
41
|
+
1. Encapsulamento
|
|
42
|
+
1. Compatibilidade
|
|
43
|
+
1. Manutenibilidade
|
|
44
|
+
|
|
45
|
+
### Ciclo de Vida
|
|
46
|
+
|
|
47
|
+
Para entender melhor o ciclo de vida dos componentes, acesse a página [https://stenciljs.com/docs/component-lifecycle](https://stenciljs.com/docs/component-lifecycle).
|
|
48
|
+
|
|
49
|
+
## Integração com frameworks
|
|
50
|
+
|
|
51
|
+
A integração entre Web Components e frameworks pode não ser fácil em determinadas situações. Por isso nós criamos as bibliotecas de integração (wrappers). Basicamente eles encapsulam os Web Components em uma biblioteca de componentes na tecnologia nativa de algum framework. Isso facilita a integração com funcionalidades nativas dos frameworks, como por exemplo o binding.
|
|
52
|
+
|
|
53
|
+
Para mais detalhes sobre como o Stencil faz a integração consulte [a documentação do Stencil sobre integrações](https://stenciljs.com/docs/overview).
|
|
19
54
|
|
|
20
|
-
|
|
55
|
+
Note que determinadas situações pode não ser possível fazer essa integração. Isso depende muito da evolução da especificação de Web Components e do suporte dos frameworks.
|
|
21
56
|
|
|
22
|
-
##
|
|
57
|
+
## Font Awesome e Fonte Rawline
|
|
23
58
|
|
|
24
|
-
|
|
59
|
+
Nossos componentes usam a [Fonte Rawline](https://www.cdnfonts.com/rawline.font/ 'Fonte Rawline') juntamente com a [Font Awesome](https://fontawesome.com/ 'Font Awesome') padrão do DS.
|
|
60
|
+
|
|
61
|
+
Consulte a documentação no site do [GovBR-DS](https://www.gov.br/ds/como-comecar/instalacao 'GovBR-DS') para mais detalhes sobre como importá-los de seus respectivos CDNs.
|
|
62
|
+
|
|
63
|
+
## Instalação e Uso
|
|
25
64
|
|
|
26
65
|
- Pacote NPM
|
|
27
66
|
|
|
@@ -32,154 +71,211 @@ npm install --save @govbr-ds/webcomponents
|
|
|
32
71
|
Depois de instalada, importe a biblioteca de dentro da pasta *node_modules*:
|
|
33
72
|
|
|
34
73
|
```javascript
|
|
35
|
-
@import "node_modules/@govbr-ds/webcomponents/
|
|
74
|
+
@import "node_modules/@govbr-ds/webcomponents/loader"
|
|
36
75
|
```
|
|
37
76
|
|
|
38
|
-
- CDN
|
|
77
|
+
- CDN (não mantidos por nossa equipe)
|
|
39
78
|
|
|
40
79
|
```html
|
|
41
|
-
<script src="https://unpkg.com/@govbr-ds/webcomponents
|
|
80
|
+
<script src="https://unpkg.com/@govbr-ds/webcomponents@<VERSÃO>/loader/index.js"></script>
|
|
81
|
+
|
|
82
|
+
ou
|
|
83
|
+
|
|
84
|
+
<script src="https://cdn.jsdelivr.net/npm/@govbr-ds/webcomponents@<VERSÃO>/loader/index.js"></script>
|
|
42
85
|
```
|
|
43
86
|
|
|
44
|
-
|
|
87
|
+
**Importante**: Dependendo do seu projeto pode ser necessário importar diretamente o arquivo `/dist/webcomponents/webcomponents.esm.js`. Observe as necessidades do seu projeto e importe os arquivos de acordo.
|
|
45
88
|
|
|
46
|
-
|
|
89
|
+
E por último, importe o CSS com os tokens do `@govbr-ds/core`:
|
|
47
90
|
|
|
48
|
-
|
|
91
|
+
```html
|
|
92
|
+
<link rel="stylesheet" href="/assets/styles/core-tokens.min.css" />
|
|
93
|
+
```
|
|
49
94
|
|
|
50
|
-
|
|
95
|
+
## VSCODE
|
|
51
96
|
|
|
52
|
-
|
|
97
|
+
Ao criar nossos Web Components fazemos uso de custom elements. O VSCODE não conhece os componentes e por isso não consegue fazer sugestões inteligentes para usar no autocomplete. Para auxiliar com isso nós geramos um arquivo `vscode-data.json` com as definições dos componentes e disponibilizamos junto com o nosso pacote npm.
|
|
98
|
+
|
|
99
|
+
Para importar no seu VSCODE, adicione o campo abaixo alterando o local onde o seu projeto armazena o `node_modules`.
|
|
100
|
+
|
|
101
|
+
```json
|
|
102
|
+
{
|
|
103
|
+
"html.customData": ["./node_modules/@govbr-ds/webcomponents/vscode-data.json"]
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Build
|
|
108
|
+
|
|
109
|
+
Nesse projeto stencil ao gerar um `build` do projeto também são gerados automaticamente:
|
|
110
|
+
|
|
111
|
+
- Arquivo `readme.md` dentro da pasta de cada componente.
|
|
112
|
+
- Documentações dos componentes na pasta `apps/site/docs/stencil-generated-docs` para serem usadas e versionadas pelo site.
|
|
53
113
|
|
|
54
114
|
### Exemplos de uso
|
|
55
115
|
|
|
56
|
-
Disponibilizamos alguns exemplos de como usar esse projeto com algumas tecnologias. Consulte o [nosso grupo aqui no gitlab](https://gitlab.com/govbr-ds/
|
|
116
|
+
Disponibilizamos alguns exemplos de como usar esse projeto com algumas tecnologias. Consulte o [nosso grupo aqui no gitlab](https://gitlab.com/govbr-ds/bibliotecas/wc 'GovBR-DS/WC') e procure pelos projetos de 'Quickstart' para mais detalhes.
|
|
57
117
|
|
|
58
|
-
##
|
|
118
|
+
## Arquitetura do Projeto Stencil
|
|
59
119
|
|
|
60
|
-
|
|
120
|
+
### Estrutura do Projeto
|
|
61
121
|
|
|
62
122
|
```markdown
|
|
63
|
-
/
|
|
64
|
-
|
|
65
|
-
│
|
|
66
|
-
|
|
67
|
-
│
|
|
68
|
-
│
|
|
69
|
-
│ │
|
|
70
|
-
│
|
|
71
|
-
│ │
|
|
72
|
-
│ │
|
|
73
|
-
│ │
|
|
74
|
-
│ │
|
|
75
|
-
│
|
|
76
|
-
│
|
|
77
|
-
│
|
|
123
|
+
webcomponents/
|
|
124
|
+
├── src/
|
|
125
|
+
│ ├── components/
|
|
126
|
+
│ │ └── br-component/
|
|
127
|
+
│ │ ├── sections/
|
|
128
|
+
│ │ │ └── migrate.md
|
|
129
|
+
│ │ ├── tests/
|
|
130
|
+
│ │ │ ├── br-component.e2e.ts
|
|
131
|
+
│ │ │ └── br-component.spec.tsx
|
|
132
|
+
│ │ ├── br-component.scss
|
|
133
|
+
│ │ ├── br-component.tsx
|
|
134
|
+
│ │ └── readme.md
|
|
135
|
+
│ ├── pages/
|
|
136
|
+
│ │ └── components/
|
|
137
|
+
│ │ └── br-component/
|
|
138
|
+
│ │ └── index.js
|
|
139
|
+
│ │ └── exemplo.html
|
|
140
|
+
│ │ └── scripts/
|
|
141
|
+
│ └── utils/
|
|
142
|
+
│ └── index.html
|
|
143
|
+
├── stencil.config.ts
|
|
144
|
+
├── package.json
|
|
145
|
+
└── tsconfig.json
|
|
78
146
|
```
|
|
79
147
|
|
|
80
|
-
|
|
81
|
-
- **src**
|
|
82
|
-
- **App.vue** e **main.js**: arquivos da aplicação Vue.
|
|
83
|
-
- **library**
|
|
84
|
-
- **lib.js**: inicializa todos os custom elements e define o que faz parte da biblioteca. É usado para fazer o build final.
|
|
85
|
-
- **components**: pasta com os componentes da biblioteca, seus testes e stories do storybook.
|
|
86
|
-
- **mixins**: mixins que são usados em vários componentes.
|
|
87
|
-
- **util**: funções criadas para facilitar ações dentro dos componentes
|
|
88
|
-
- **pages**: páginas da aplicação Vue. São os exemplos que usamos para testar
|
|
89
|
-
- **router**: arquivo com as rotas apontando para as páginas (pages) da aplicação Vue
|
|
90
|
-
- **stories**: Arquivos com as stories gerais do storybook
|
|
148
|
+
#### Descrição dos Diretórios
|
|
91
149
|
|
|
92
|
-
|
|
150
|
+
- **src/**: Contém o código-fonte do projeto.
|
|
93
151
|
|
|
94
|
-
|
|
152
|
+
- **components/**: Contém os componentes Web que serão criados com Stencil. Cada componente tem sua própria pasta.
|
|
95
153
|
|
|
96
|
-
|
|
154
|
+
- **br-component/**: Uma pasta específica para o componente `br-component`.
|
|
97
155
|
|
|
98
|
-
|
|
99
|
-
git clone git@gitlab.com:govbr-ds/dev/wbc/govbr-ds-wbc.git
|
|
100
|
-
```
|
|
156
|
+
- **sections/**: Pasta com arquivos markdown para serem incluídos no site.
|
|
101
157
|
|
|
102
|
-
|
|
158
|
+
- **migrate.md**: Arquivo explicando 'como migrar' o componente da versão anterior para a nova.
|
|
103
159
|
|
|
104
|
-
|
|
105
|
-
cd govbr-ds-wbc
|
|
106
|
-
```
|
|
160
|
+
- **test/**: Pasta com os arquivos de teste.
|
|
107
161
|
|
|
108
|
-
|
|
162
|
+
- **br-component.e2e.ts**: Arquivo para testes end-to-end (E2E) do componente.
|
|
109
163
|
|
|
110
|
-
|
|
111
|
-
npm install
|
|
112
|
-
```
|
|
164
|
+
- **br-component.spec.tsx**: Arquivo para testes unitários (Unit) do componente.
|
|
113
165
|
|
|
114
|
-
|
|
166
|
+
- **br-component.tsx**: O arquivo principal do componente, que contém a lógica e a estrutura do componente.
|
|
115
167
|
|
|
116
|
-
|
|
168
|
+
- **br-component.scss**: O arquivo de estilo do componente.
|
|
117
169
|
|
|
118
|
-
|
|
170
|
+
- **readme.md**: Documentação gerada automaticamente do componente durante `build`.
|
|
119
171
|
|
|
120
|
-
|
|
121
|
-
npm run serve
|
|
122
|
-
```
|
|
172
|
+
- **pages/**: Contém os exemplos dos componentes Web que serão criados com Stencil. Cada componente tem sua própria pasta.
|
|
123
173
|
|
|
124
|
-
|
|
174
|
+
- **components/**: Pasta com os exemplos dos componentes.
|
|
125
175
|
|
|
126
|
-
|
|
176
|
+
- **scripts/**: Pasta com os scripts usados no ambiente de desenvolvimento.
|
|
127
177
|
|
|
128
|
-
|
|
178
|
+
- **br-component/**: Uma pasta específica para o componente `br-component`.
|
|
129
179
|
|
|
130
|
-
|
|
131
|
-
npm run storybook
|
|
132
|
-
```
|
|
180
|
+
- **index.js**: Arquivo com paga executar ações nos exemplos, como escutar por eventos.
|
|
133
181
|
|
|
134
|
-
|
|
182
|
+
- **exemplo.html**: Arquivos com o código de cada exemplo.
|
|
135
183
|
|
|
136
|
-
|
|
184
|
+
- **utils/**: Pasta para utilitários ou funções auxiliares que podem ser usadas em todo o projeto.
|
|
185
|
+
-
|
|
186
|
+
- **index.html**: Página inicial do servidor de desenvolvimento.
|
|
137
187
|
|
|
138
|
-
|
|
188
|
+
#### Arquivos de Configuração
|
|
139
189
|
|
|
140
|
-
|
|
190
|
+
- **stencil.config.ts**: O principal arquivo de configuração para um projeto Stencil. Nele, você define opções de configuração como saída do build, plugins, global scripts, e outras opções.
|
|
141
191
|
|
|
142
|
-
|
|
192
|
+
- **package.json**: Contém as dependências do projeto e scripts úteis para construir e desenvolver os componentes.
|
|
143
193
|
|
|
144
|
-
-
|
|
145
|
-
- Para facilitar a aprovação da sua contribuição, escolha um título curto, simples e explicativo para o MR, e siga os padrões da nossa [wiki](https://gov.br/ds/wiki/ 'Wiki').
|
|
146
|
-
- Quer contribuir com o projeto? Confira o nosso guia [como contribuir](./CONTRIBUTING.md 'Como contribuir?').
|
|
194
|
+
- **tsconfig.json**: Arquivo de configuração do TypeScript que especifica as opções do compilador TypeScript para o projeto.
|
|
147
195
|
|
|
148
|
-
|
|
196
|
+
#### Scripts Úteis
|
|
149
197
|
|
|
150
|
-
|
|
198
|
+
- `build`: Gera um build do projeto e gera as documentações atualizadas.
|
|
199
|
+
- `dev`: Executa o projeto em um servidor de desenvolvimento.
|
|
151
200
|
|
|
152
|
-
|
|
201
|
+
### Fluxo de Trabalho
|
|
153
202
|
|
|
154
|
-
|
|
203
|
+
1. **Criar Componente**: Adicione um novo componente no diretório `src/components/` e crie os arquivos necessários.
|
|
204
|
+
1. **Escrever Lógica**: Crie a lógica do componente.
|
|
205
|
+
1. Implemente a lógica do componente no arquivo `.tsx`.
|
|
206
|
+
1. Importe e sobrescreva o CSS necessário no arquivo `scss`.
|
|
207
|
+
1. Adicione informações relevantes no arquivo `readme.md`.
|
|
208
|
+
1. Coloque os exemplos de uso do componente dos arquivos da pasta `pages`.
|
|
209
|
+
1. Inclua o componente e seus exemplos no array de componentes e exemplos dentro do arquivo `src/index.html`.
|
|
210
|
+
1. **Pré-visualizar**: Use o script `dev` para visualizar suas alterações localmente.
|
|
211
|
+
1. **Testar Componentes**: Escreva e execute testes unitários e E2E para garantir a qualidade do componente.
|
|
212
|
+
1. **Construir**: Use o script `build` para testar se o processo de compilação está funcionando corretamente.
|
|
155
213
|
|
|
156
|
-
|
|
214
|
+
É possível usar o `plop`para criar vários arquivos automaticamente para poupar tempo. Consulte a documentação do monorepo para mais detalhes.
|
|
157
215
|
|
|
158
|
-
|
|
216
|
+
#### Componentes
|
|
217
|
+
|
|
218
|
+
Observe que os componentes **devem** seguir um padrão de escrita. Além das nomenclaturas (descritas na Wiki), devemos seguir os padrões de comentários/descrições, de validações e escrita geral dos componentes.
|
|
219
|
+
|
|
220
|
+
Por exemplo, sempre use os mesmos comentários para os métodos do ciclo de vida dos componentes uma vez que eles são os mesmos para todos os componentes.
|
|
221
|
+
|
|
222
|
+
#### Exemplos
|
|
223
|
+
|
|
224
|
+
Os exemplos também tem modelos de escrita para ficarem iguais. Observe como os exemplos anteriores foram escritos e usem como base para os novos.
|
|
159
225
|
|
|
160
|
-
|
|
226
|
+
## Regras de Versionamento e Releases
|
|
161
227
|
|
|
162
|
-
-
|
|
228
|
+
Utilizamos o **Semantic Release** para gerar versões automaticamente, baseando-nos nos tipos, escopos e mensagens dos commits para determinar o tipo de versão que será publicada (major, minor, ou patch). No entanto, em alguns casos, é necessário que certos commits sejam ignorados na avaliação para o lançamento de uma nova versão. Para esses casos, utilize os tipos e/ou escopos listados abaixo.
|
|
163
229
|
|
|
164
|
-
|
|
230
|
+
### Tipos de Commits que Não Geram Releases
|
|
165
231
|
|
|
166
|
-
|
|
232
|
+
Os seguintes tipos de commit são ignorados na criação de novas versões, pois representam alterações internas ou trabalhos em progresso que não afetam diretamente o comportamento externo do projeto:
|
|
167
233
|
|
|
168
|
-
|
|
234
|
+
- **`build`**: Atualizações no sistema de build ou nas dependências, sem impacto no código final.
|
|
235
|
+
- **`chore`**: Tarefas gerais de manutenção que não impactam o produto final ou sua funcionalidade.
|
|
236
|
+
- **`ci`**: Ajustes no pipeline de integração contínua (CI), sem alteração direta no comportamento do produto.
|
|
237
|
+
- **`test`**: Criação ou modificação de testes, sem alterações nas funcionalidades existentes.
|
|
238
|
+
- **`wip`**: Trabalhos em progresso, indicados como incompletos ou ainda não prontos para produção.
|
|
169
239
|
|
|
170
|
-
|
|
240
|
+
### Escopos de Commits que Não Geram Releases
|
|
171
241
|
|
|
172
|
-
|
|
242
|
+
Em alguns casos, o escopo das alterações deixa claro que o commit não deve gerar uma nova versão, mesmo que o tipo de commit seja relevante. Para isso, os escopos abaixo são configurados para ignorar essas alterações no processo de versionamento:
|
|
243
|
+
|
|
244
|
+
- **`site`**: Modificações no site de documentação, que não alteram o código do produto.
|
|
245
|
+
- **`monorepo`**: Alterações feitas especificamente no repositório monorepo, sem impacto direto no projeto ou na biblioteca de componentes.
|
|
246
|
+
- **`no-release`**: Qualquer commit marcado explicitamente para não gerar uma nova versão.
|
|
247
|
+
|
|
248
|
+
## Documentações Complementares
|
|
249
|
+
|
|
250
|
+
Consulte a seção sobre Web Componente na nossa [Wiki](https://gov.br/ds/wiki/desenvolvimento/web-components) para obter mais informações sobre esse projeto.
|
|
251
|
+
|
|
252
|
+
Para saber mais detalhes sobre a especificação Web Components sugerimos que consulte o [MDN](https://developer.mozilla.org/pt-BR/docs/Web/Web_Components 'Web Components | MDN').
|
|
173
253
|
|
|
174
254
|
### Polyfill
|
|
175
255
|
|
|
256
|
+
Acesse os seguintes links para entender mais sobre o suporte dos browsers a [Custom Elements](https://caniuse.com/custom-elementsv1) e a [Shadow Dom](https://caniuse.com/shadowdomv1).
|
|
257
|
+
|
|
176
258
|
Caso os requisitos do seu projeto incluam navegadores que não suportam completamente os Web Components, adicione os [polyfills](https://www.webcomponents.org/polyfills) ao seu projeto.
|
|
177
259
|
|
|
178
|
-
Para aprender com instalar, consulte a [documentação oficial](https://github.com/webcomponents/polyfills/tree/master/packages/webcomponentsjs 'Polyfills')
|
|
260
|
+
Para aprender com instalar, consulte a [documentação oficial](https://github.com/webcomponents/polyfills/tree/master/packages/webcomponentsjs 'Polyfills').
|
|
261
|
+
|
|
262
|
+
## Precisa de ajuda?
|
|
263
|
+
|
|
264
|
+
Por favor **não** crie issues para fazer perguntas.
|
|
265
|
+
|
|
266
|
+
Use nossos canais abaixo para obter tirar suas dúvidas:
|
|
267
|
+
|
|
268
|
+
- Site do GovBR-DS [http://gov.br/ds](http://gov.br/ds)
|
|
269
|
+
- Web Components [https://gov.br/ds/webcomponents](https://gov.br/ds/webcomponents)
|
|
270
|
+
- Usando nosso canal no discord [https://discord.gg/U5GwPfqhUP](https://discord.gg/U5GwPfqhUP)
|
|
271
|
+
|
|
272
|
+
### Recursos Adicionais
|
|
273
|
+
|
|
274
|
+
Para mais informações, consulte a [documentação oficial do Stencil](https://stenciljs.com/docs/introduction).
|
|
179
275
|
|
|
180
276
|
## Créditos
|
|
181
277
|
|
|
182
|
-
Os Web Components do [GovBR-DS](https://gov.br/ds/ 'GovBR-DS') são criados pelo [SERPRO](https://www.serpro.gov.br/ 'SERPRO | Serviço Federal de Processamento de Dados')
|
|
278
|
+
Os Web Components do [GovBR-DS](https://gov.br/ds/ 'GovBR-DS') são criados pelo [SERPRO](https://www.serpro.gov.br/ 'SERPRO | Serviço Federal de Processamento de Dados') juntamente com a comunidade.
|
|
183
279
|
|
|
184
280
|
## Licença
|
|
185
281
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"app-globals-77a217c6.js","mappings":";;;;;;AAAY,MAAC,aAAa,GAAG,MAAM;;;;","names":[],"sources":["@stencil/core/internal/app-globals"],"sourcesContent":["export const globalScripts = () => {};\n"],"version":3}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Construído com @govbr-ds/webcomponents
|
|
3
|
+
* Padrão Digital de Governo.
|
|
4
|
+
*/
|
|
5
|
+
'use strict';
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
8
|
+
|
|
9
|
+
const index = require('./index-86e7422e.js');
|
|
10
|
+
const inheritedAttributes = require('./inherited-attributes-16f7d388.js');
|
|
11
|
+
|
|
12
|
+
const avatarCss = "*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}html{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}a{background-color:transparent}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}[hidden]{display:none}.d-flex{display:-ms-flexbox !important;display:flex !important}.align-items-center{-ms-flex-align:center !important;align-items:center !important}.col,[class*=col-]{padding-left:calc(var(--grid-gutter) * 0.5);padding-right:calc(var(--grid-gutter) * 0.5);width:100%}.col{-ms-flex:1 0 0%;flex:1 0 0%;min-width:8.3333333333%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.container{--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:-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{--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))}}@media (min-width: 992px){.container{--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{--grid-margin:var(--grid-desktop-margin)}.row{--grid-gutter:var(--grid-desktop-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-lg) - var(--grid-desktop-margin))}}@media (min-width: 1600px){.container{--grid-margin:var(--grid-tv-margin)}.row{--grid-gutter:var(--grid-tv-gutter)}.container{--grid-maxwidth:calc(var(--grid-breakpoint-xl) - var(--grid-tv-margin))}}.mt-1{margin-top:var(--spacing-scale-half) !important}.mr-1{margin-right:var(--spacing-scale-half) !important}.mr-2{margin-right:var(--spacing-scale-base) !important}.mr-n2{margin-right:calc(var(--spacing-scale-base) * -1) !important}.mb-3{margin-bottom:var(--spacing-scale-2x) !important}.mr-auto{margin-right: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}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);color:var(--interactive);text-decoration:none}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)))}button{cursor:pointer}img{max-width:100%;vertical-align:middle}ul{margin-bottom:var(--spacing-scale-2x);margin-top:0;padding:0 0 0 var(--spacing-scale-5x)}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)}::-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}::-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}:-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}::-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}.text-primary-default{color:var(--color-primary-default) !important}.bg-support-01{--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:var(--color-support-01) !important}.text-nowrap{white-space:nowrap !important}.text-base{font-size:var(--font-size-scale-base) !important}.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)}.br-avatar{--avatar-size:var(--avatar-small);--avatar-icon-size:var(--avatar-icon-small);--avatar-text-size:var(--avatar-text-small);--avatar-small:40px;--avatar-medium:100px;--avatar-large:160px;--avatar-icon-small:var(--icon-size-2x);--avatar-icon-medium:var(--icon-size-5x);--avatar-icon-large:var(--icon-size-8x);--avatar-text-small:var(--font-size-scale-up-03);--avatar-text-medium:var(--font-size-scale-up-07);--avatar-text-large:var(--font-size-scale-up-11);-ms-flex-align:center;align-items:center;background-color:transparent;border:0;display:-ms-inline-flexbox;display:inline-flex;font-size:var(--avatar-text-size);font-weight:var(--font-weight-bold);-ms-flex-pack:center;justify-content:center;line-height:var(--avatar-size);vertical-align:middle}.br-avatar .content{-ms-flex-align:center;align-items:center;background-color:var(--blue-10);border-radius:50%;color:var(--blue-warm-20);display:-ms-inline-flexbox;display:inline-flex;font-size:var(--avatar-text-size);height:var(--avatar-size);-ms-flex-pack:center;justify-content:center;overflow:hidden;text-align:center;text-transform:uppercase;vertical-align:inherit;width:var(--avatar-size)}.br-avatar .content img{height:var(--avatar-size);vertical-align:inherit;width:var(--avatar-size)}.br-avatar.small,.br-avatar[small]{--avatar-size:var(--avatar-small);--avatar-icon-size:var(--avatar-icon-small);--avatar-text-size:var(--avatar-text-small)}.br-avatar.is-medium,.br-avatar.medium,.br-avatar[medium]{--avatar-size:var(--avatar-medium);--avatar-icon-size:var(--avatar-icon-medium);--avatar-text-size:var(--avatar-text-medium)}.br-avatar.large,.br-avatar[large]{--avatar-size:var(--avatar-large);--avatar-icon-size:var(--avatar-icon-large);--avatar-text-size:var(--avatar-text-large)}.br-avatar[data-toggle=dropdown]:focus{outline:none}.br-avatar[data-toggle=dropdown]:focus-visible{outline-color:var(--focus);outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}.br-avatar .image{-ms-flex-align:center;align-items:center;background-color:var(--blue-10);border-radius:50%;color:var(--blue-warm-20);display:-ms-inline-flexbox;display:inline-flex;font-size:var(--avatar-text-size);height:var(--avatar-size);-ms-flex-pack:center;justify-content:center;overflow:hidden;text-align:center;text-transform:uppercase;vertical-align:inherit;width:var(--avatar-size)}.br-avatar .image img{height:var(--avatar-size);vertical-align:inherit;width:var(--avatar-size)}:host{display:block}";
|
|
13
|
+
const BrAvatarStyle0 = avatarCss;
|
|
14
|
+
|
|
15
|
+
const Avatar = class {
|
|
16
|
+
constructor(hostRef) {
|
|
17
|
+
index.registerInstance(this, hostRef);
|
|
18
|
+
this.iconSizes = {
|
|
19
|
+
small: { height: '32px', width: '40px' },
|
|
20
|
+
medium: { height: '80px', width: '88px' },
|
|
21
|
+
large: { height: '128px', width: '136px' },
|
|
22
|
+
};
|
|
23
|
+
this.iconMarginTops = {
|
|
24
|
+
small: '0.7em',
|
|
25
|
+
medium: '1em',
|
|
26
|
+
large: '0.62em',
|
|
27
|
+
};
|
|
28
|
+
this.inheritedAttributes = {};
|
|
29
|
+
this.density = 'medium';
|
|
30
|
+
this.image = undefined;
|
|
31
|
+
this.imageAlt = 'Imagem do avatar';
|
|
32
|
+
this.isIconic = false;
|
|
33
|
+
this.text = undefined;
|
|
34
|
+
this.iconWidth = undefined;
|
|
35
|
+
this.iconHeight = undefined;
|
|
36
|
+
this.marginTop = undefined;
|
|
37
|
+
}
|
|
38
|
+
componentWillLoad() {
|
|
39
|
+
this.inheritedAttributes = inheritedAttributes.inheritAriaAttributes(this.el);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Gera um mapa de classes CSS com base nas propriedades do componente.
|
|
43
|
+
* O mapa de classes determina quais classes CSS devem ser aplicadas
|
|
44
|
+
* ao elemento host do componente, ajustando sua aparência.
|
|
45
|
+
*
|
|
46
|
+
* @returns {CssClassMap} Objeto contendo as classes CSS aplicadas.
|
|
47
|
+
*/
|
|
48
|
+
getCssClassMap() {
|
|
49
|
+
return {
|
|
50
|
+
'br-avatar': true,
|
|
51
|
+
small: this.density === 'small',
|
|
52
|
+
medium: this.density === 'medium',
|
|
53
|
+
large: this.density === 'large',
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
renderAvatar() {
|
|
57
|
+
var _a, _b, _c, _d, _e;
|
|
58
|
+
if (((_a = this.text) === null || _a === void 0 ? void 0 : _a.trim().length) > 0) {
|
|
59
|
+
return (index.h("span", { class: "content bg-support-01 text-pure-0", title: this.text }, this.text[0].toUpperCase()));
|
|
60
|
+
}
|
|
61
|
+
if (((_b = this.image) === null || _b === void 0 ? void 0 : _b.trim().length) > 0) {
|
|
62
|
+
return (index.h("span", { class: "content", title: this.imageAlt || this.text }, index.h("img", { src: this.image, alt: this.imageAlt, loading: "lazy" })));
|
|
63
|
+
}
|
|
64
|
+
if (this.isIconic) {
|
|
65
|
+
return (index.h("span", { class: "content", title: this.text }, index.h("br-icon", { "icon-name": "fa-solid:user", height: ((_c = this.iconHeight) === null || _c === void 0 ? void 0 : _c.length) > 0 ? this.iconHeight : this.iconSizes[this.density].height, width: ((_d = this.iconWidth) === null || _d === void 0 ? void 0 : _d.length) > 0 ? this.iconWidth : this.iconSizes[this.density].width, "aria-hidden": "true", style: { 'margin-top': ((_e = this.marginTop) === null || _e === void 0 ? void 0 : _e.length) > 0 ? this.marginTop : this.iconMarginTops[this.density] } })));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
render() {
|
|
69
|
+
return (index.h(index.Host, { key: '8e7d5a109467811e371dcfa56214f079b82970bb' }, index.h("span", Object.assign({ key: '63036c324a6be24469e6453a40af31e684973c1a', class: this.getCssClassMap() }, this.inheritedAttributes), this.renderAvatar())));
|
|
70
|
+
}
|
|
71
|
+
get el() { return index.getElement(this); }
|
|
72
|
+
};
|
|
73
|
+
Avatar.style = BrAvatarStyle0;
|
|
74
|
+
|
|
75
|
+
exports.br_avatar = Avatar;
|
|
76
|
+
|
|
77
|
+
//# sourceMappingURL=br-avatar.cjs.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"br-avatar.entry.cjs.js","mappings":";;;;;;;;;;;AAAA,MAAM,SAAS,GAAG,o0XAAo0X,CAAC;AACv1X,uBAAe,SAAS;;MCWX,MAAM;;;QAuEA,cAAS,GAAG;YAC3B,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YACxC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YACzC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;SAC3C,CAAA;QAEgB,mBAAc,GAAG;YAChC,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,QAAQ;SAChB,CAAA;QAEO,wBAAmB,GAAe,EAAE,CAAA;uBAzEI,QAAQ;;wBAYrC,kBAAkB;wBAMT,KAAK;;;;;;IAQjC,iBAAiB;QACf,IAAI,CAAC,mBAAmB,GAAGA,yCAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;KAC1D;;;;;;;;IAwBO,cAAc;QACpB,OAAO;YACL,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,OAAO;YAC/B,MAAM,EAAE,IAAI,CAAC,OAAO,KAAK,QAAQ;YACjC,KAAK,EAAE,IAAI,CAAC,OAAO,KAAK,OAAO;SAChC,CAAA;KACF;IAgBO,YAAY;;QAClB,IAAI,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,IAAI,GAAG,MAAM,IAAG,CAAC,EAAE;YAChC,QACEC,kBAAM,KAAK,EAAC,mCAAmC,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,IAC7D,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CACtB,EACR;SACF;QAED,IAAI,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,IAAI,GAAG,MAAM,IAAG,CAAC,EAAE;YACjC,QACEA,kBAAM,KAAK,EAAC,SAAS,EAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,IACrDA,iBAAK,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAC,MAAM,GAAG,CACtD,EACR;SACF;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,QACEA,kBAAM,KAAK,EAAC,SAAS,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,IACpCA,kCACY,eAAe,EACzB,MAAM,EAAE,CAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,IAAG,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAC3F,KAAK,EAAE,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,MAAM,IAAG,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,iBAC3E,MAAM,EAClB,KAAK,EAAE,EAAE,YAAY,EAAE,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,MAAM,IAAG,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAC/F,CACN,EACR;SACF;KACF;IAED,MAAM;QACJ,QACEA,QAACC,UAAI,uDACHD,iFAAM,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,IAAM,IAAI,CAAC,mBAAmB,GAC7D,IAAI,CAAC,YAAY,EAAE,CACf,CACF,EACR;KACF;;;;;;;","names":["inheritAriaAttributes","h","Host"],"sources":["src/components/avatar/avatar.scss?tag=br-avatar&encapsulation=shadow","src/components/avatar/avatar.tsx"],"sourcesContent":["@import \"../../../../../node_modules/@govbr-ds/core/src/components/avatar/avatar\";\n\n:host {\n display: block;\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\nimport { Attributes, inheritAriaAttributes } from '../../utils/inherited-attributes'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/avatar?tab=designer).\n */\n@Component({\n tag: 'br-avatar',\n styleUrl: 'avatar.scss',\n shadow: true,\n})\nexport class Avatar {\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: HTMLBrAvatarElement\n\n /**\n * Ajusta a densidade, alterando o espaçamento interno para um visual mais compacto ou mais expandido.\n */\n @Prop() density: 'small' | 'medium' | 'large' = 'medium'\n\n /**\n * URL da imagem a ser exibida no avatar do tipo 'fotográfico'.\n * Deve ser uma URL válida que aponta para a imagem desejada.\n */\n @Prop() image: string\n\n /**\n * Texto alternativo (alt) associado à imagem do avatar. Essencial para acessibilidade e SEO.\n * Deve descrever de forma clara e concisa o conteúdo da imagem, por exemplo: \"Foto de perfil de João Silva\".\n */\n @Prop() imageAlt = 'Imagem do avatar'\n\n /**\n * Indica se o avatar deve ser exibido como um ícone em vez de uma imagem fotográfica.\n * Se definido como verdadeiro, o avatar será exibido como um ícone.\n */\n @Prop() isIconic: boolean = false\n\n /**\n * Texto exibido no avatar do tipo 'letra'.\n * Esse texto será mostrado em vez de uma imagem e pode ser usado para representar iniciais ou outras informações textuais.\n */\n @Prop() text: string\n\n componentWillLoad() {\n this.inheritedAttributes = inheritAriaAttributes(this.el)\n }\n\n /**\n * Largura do ícone no avatar do tipo icônico\n * */\n @Prop() iconWidth: string\n\n /**\n * Altura do ícone no avatar do tipo icônico\n */\n @Prop() iconHeight: string\n\n /**\n * Ajuste para a margem de cima do ícone no avatar do tipo icônico\n */\n @Prop() marginTop: string\n\n /**\n * Gera um mapa de classes CSS com base nas propriedades do componente.\n * O mapa de classes determina quais classes CSS devem ser aplicadas\n * ao elemento host do componente, ajustando sua aparência.\n *\n * @returns {CssClassMap} Objeto contendo as classes CSS aplicadas.\n */\n private getCssClassMap(): CssClassMap {\n return {\n 'br-avatar': true,\n small: this.density === 'small',\n medium: this.density === 'medium',\n large: this.density === 'large',\n }\n }\n\n private readonly iconSizes = {\n small: { height: '32px', width: '40px' },\n medium: { height: '80px', width: '88px' },\n large: { height: '128px', width: '136px' },\n }\n\n private readonly iconMarginTops = {\n small: '0.7em',\n medium: '1em',\n large: '0.62em',\n }\n\n private inheritedAttributes: Attributes = {}\n\n private renderAvatar() {\n if (this.text?.trim().length > 0) {\n return (\n <span class=\"content bg-support-01 text-pure-0\" title={this.text}>\n {this.text[0].toUpperCase()}\n </span>\n )\n }\n\n if (this.image?.trim().length > 0) {\n return (\n <span class=\"content\" title={this.imageAlt || this.text}>\n <img src={this.image} alt={this.imageAlt} loading=\"lazy\" />\n </span>\n )\n }\n\n if (this.isIconic) {\n return (\n <span class=\"content\" title={this.text}>\n <br-icon\n icon-name=\"fa-solid:user\"\n height={this.iconHeight?.length > 0 ? this.iconHeight : this.iconSizes[this.density].height}\n width={this.iconWidth?.length > 0 ? this.iconWidth : this.iconSizes[this.density].width}\n aria-hidden=\"true\"\n style={{ 'margin-top': this.marginTop?.length > 0 ? this.marginTop : this.iconMarginTops[this.density] }}\n ></br-icon>\n </span>\n )\n }\n }\n\n render() {\n return (\n <Host>\n <span class={this.getCssClassMap()} {...this.inheritedAttributes}>\n {this.renderAvatar()}\n </span>\n </Host>\n )\n }\n}\n"],"version":3}
|