flowbite-angular 1.0.0-alpha.2 → 1.0.0-alpha.4
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 +21 -0
- package/README.md +376 -0
- package/accordion/README.md +3 -0
- package/{lib/components/accordion → accordion}/accordion-content.component.d.ts +1 -1
- package/{lib/components/accordion → accordion}/accordion-content.theme.d.ts +1 -1
- package/{lib/components/accordion → accordion}/accordion-content.theme.service.d.ts +1 -1
- package/{lib/components/accordion → accordion}/accordion-panel.component.d.ts +1 -1
- package/{lib/components/accordion → accordion}/accordion-panel.theme.d.ts +1 -1
- package/{lib/components/accordion → accordion}/accordion-panel.theme.service.d.ts +1 -1
- package/{lib/components/accordion → accordion}/accordion-title.component.d.ts +2 -2
- package/{lib/components/accordion → accordion}/accordion-title.theme.d.ts +1 -2
- package/{lib/components/accordion → accordion}/accordion-title.theme.service.d.ts +1 -1
- package/{lib/components/accordion → accordion}/accordion.component.d.ts +1 -1
- package/{lib/components/accordion → accordion}/accordion.theme.d.ts +1 -4
- package/{lib/components/accordion → accordion}/accordion.theme.service.d.ts +1 -1
- package/alert/README.md +3 -0
- package/{lib/components/alert → alert}/alert.component.d.ts +5 -5
- package/{lib/components/alert → alert}/alert.theme.d.ts +1 -4
- package/{lib/components/alert → alert}/alert.theme.service.d.ts +1 -1
- package/badge/README.md +3 -0
- package/{lib/components/badge → badge}/badge.component.d.ts +4 -4
- package/{lib/components/badge → badge}/badge.theme.d.ts +1 -6
- package/{lib/components/badge → badge}/badge.theme.service.d.ts +1 -1
- package/{lib/components/base-component.directive.d.ts → base-component.directive.d.ts} +2 -2
- package/breadcrumb/README.md +3 -0
- package/{lib/components/breadcrumb → breadcrumb}/breadcrumb-item.component.d.ts +4 -4
- package/{lib/components/breadcrumb → breadcrumb}/breadcrumb-item.theme.d.ts +1 -2
- package/{lib/components/breadcrumb → breadcrumb}/breadcrumb-item.theme.service.d.ts +1 -1
- package/{lib/components/breadcrumb → breadcrumb}/breadcrumb.component.d.ts +1 -1
- package/{lib/components/breadcrumb → breadcrumb}/breadcrumb.theme.d.ts +1 -1
- package/{lib/components/breadcrumb → breadcrumb}/breadcrumb.theme.service.d.ts +1 -1
- package/button/README.md +3 -0
- package/{lib/components/button → button}/button.component.d.ts +2 -2
- package/{lib/components/button → button}/button.theme.d.ts +1 -8
- package/{lib/components/button → button}/button.theme.service.d.ts +1 -1
- package/core/README.md +3 -0
- package/core/index.d.ts +1 -0
- package/dark-theme-toggle/README.md +3 -0
- package/{lib/components/dark-theme-toggle → dark-theme-toggle}/dark-theme-toggle.component.d.ts +2 -2
- package/{lib/components/dark-theme-toggle → dark-theme-toggle}/dark-theme-toggle.theme.d.ts +1 -1
- package/{lib/components/dark-theme-toggle → dark-theme-toggle}/dark-theme-toggle.theme.service.d.ts +1 -1
- package/{lib/components/dark-theme-toggle → dark-theme-toggle}/index.d.ts +1 -2
- package/dropdown/README.md +3 -0
- package/{lib/components/dropdown → dropdown}/dropdown-divider.component.d.ts +1 -1
- package/{lib/components/dropdown → dropdown}/dropdown-divider.theme.d.ts +1 -1
- package/{lib/components/dropdown → dropdown}/dropdown-divider.theme.service.d.ts +1 -1
- package/{lib/components/dropdown → dropdown}/dropdown-header.component.d.ts +1 -1
- package/{lib/components/dropdown → dropdown}/dropdown-header.theme.d.ts +1 -1
- package/{lib/components/dropdown → dropdown}/dropdown-header.theme.service.d.ts +1 -1
- package/{lib/components/dropdown → dropdown}/dropdown-item.component.d.ts +1 -1
- package/{lib/components/dropdown → dropdown}/dropdown-item.theme.d.ts +1 -1
- package/{lib/components/dropdown → dropdown}/dropdown-item.theme.service.d.ts +1 -1
- package/{lib/components/dropdown → dropdown}/dropdown.component.d.ts +2 -2
- package/{lib/components/dropdown → dropdown}/dropdown.theme.d.ts +1 -4
- package/{lib/components/dropdown → dropdown}/dropdown.theme.service.d.ts +1 -1
- package/esm2022/accordion/accordion-content.component.mjs +47 -0
- package/esm2022/accordion/accordion-content.theme.mjs +19 -0
- package/esm2022/accordion/accordion-content.theme.service.mjs +17 -0
- package/esm2022/accordion/accordion-panel.component.mjs +59 -0
- package/esm2022/accordion/accordion-panel.theme.mjs +7 -0
- package/esm2022/accordion/accordion-panel.theme.service.mjs +17 -0
- package/esm2022/accordion/accordion-title.component.mjs +71 -0
- package/esm2022/accordion/accordion-title.theme.mjs +26 -0
- package/esm2022/accordion/accordion-title.theme.service.mjs +18 -0
- package/esm2022/accordion/accordion.component.mjs +50 -0
- package/esm2022/accordion/accordion.theme.mjs +19 -0
- package/esm2022/accordion/accordion.theme.service.mjs +17 -0
- package/esm2022/accordion/flowbite-angular-accordion.mjs +5 -0
- package/esm2022/accordion/index.mjs +13 -0
- package/esm2022/alert/alert.component.mjs +96 -0
- package/esm2022/alert/alert.theme.mjs +34 -0
- package/esm2022/alert/alert.theme.service.mjs +18 -0
- package/esm2022/alert/flowbite-angular-alert.mjs +5 -0
- package/esm2022/alert/index.mjs +4 -0
- package/esm2022/badge/badge.component.mjs +48 -0
- package/esm2022/badge/badge.theme.mjs +34 -0
- package/esm2022/badge/badge.theme.service.mjs +19 -0
- package/esm2022/badge/flowbite-angular-badge.mjs +5 -0
- package/esm2022/badge/index.mjs +4 -0
- package/esm2022/base-component.directive.mjs +34 -0
- package/esm2022/breadcrumb/breadcrumb-item.component.mjs +59 -0
- package/esm2022/breadcrumb/breadcrumb-item.theme.mjs +18 -0
- package/esm2022/breadcrumb/breadcrumb-item.theme.service.mjs +18 -0
- package/esm2022/breadcrumb/breadcrumb.component.mjs +48 -0
- package/esm2022/breadcrumb/breadcrumb.theme.mjs +7 -0
- package/esm2022/breadcrumb/breadcrumb.theme.service.mjs +17 -0
- package/esm2022/breadcrumb/flowbite-angular-breadcrumb.mjs +5 -0
- package/esm2022/breadcrumb/index.mjs +7 -0
- package/esm2022/{lib/components/button → button}/button.component.mjs +6 -5
- package/esm2022/button/button.theme.mjs +113 -0
- package/esm2022/button/button.theme.service.mjs +24 -0
- package/esm2022/button/flowbite-angular-button.mjs +5 -0
- package/esm2022/button/index.mjs +4 -0
- package/esm2022/core/flowbite-angular-core.mjs +5 -0
- package/esm2022/core/flowbite.theme.init.mjs +281 -0
- package/esm2022/core/index.mjs +2 -0
- package/esm2022/{lib/components/dark-theme-toggle → dark-theme-toggle}/dark-theme-toggle.component.mjs +8 -6
- package/esm2022/dark-theme-toggle/dark-theme-toggle.theme.mjs +7 -0
- package/esm2022/dark-theme-toggle/dark-theme-toggle.theme.service.mjs +17 -0
- package/esm2022/dark-theme-toggle/flowbite-angular-dark-theme-toggle.mjs +5 -0
- package/esm2022/dark-theme-toggle/index.mjs +4 -0
- package/esm2022/dropdown/dropdown-divider.component.mjs +36 -0
- package/esm2022/dropdown/dropdown-divider.theme.mjs +7 -0
- package/esm2022/dropdown/dropdown-divider.theme.service.mjs +17 -0
- package/esm2022/dropdown/dropdown-header.component.mjs +46 -0
- package/esm2022/dropdown/dropdown-header.theme.mjs +10 -0
- package/esm2022/dropdown/dropdown-header.theme.service.mjs +18 -0
- package/esm2022/dropdown/dropdown-item.component.mjs +36 -0
- package/esm2022/dropdown/dropdown-item.theme.mjs +6 -0
- package/esm2022/dropdown/dropdown-item.theme.service.mjs +17 -0
- package/esm2022/dropdown/dropdown.component.mjs +150 -0
- package/esm2022/dropdown/dropdown.theme.mjs +32 -0
- package/esm2022/dropdown/dropdown.theme.service.mjs +22 -0
- package/esm2022/dropdown/flowbite-angular-dropdown.mjs +5 -0
- package/esm2022/dropdown/index.mjs +13 -0
- package/esm2022/flowbite-angular.mjs +2 -2
- package/esm2022/flowbite.theme.service.mjs +16 -0
- package/esm2022/icon/flowbite-angular-icon.mjs +5 -0
- package/esm2022/icon/icon-registry.mjs +159 -0
- package/esm2022/icon/icon.component.mjs +72 -0
- package/esm2022/icon/index.mjs +4 -0
- package/esm2022/icon/trusted-types.mjs +21 -0
- package/esm2022/index.mjs +4 -0
- package/esm2022/indicator/flowbite-angular-indicator.mjs +5 -0
- package/esm2022/indicator/index.mjs +4 -0
- package/esm2022/indicator/indicators.component.mjs +55 -0
- package/esm2022/indicator/indicators.theme.mjs +68 -0
- package/esm2022/indicator/indicators.theme.service.mjs +19 -0
- package/esm2022/modal/flowbite-angular-modal.mjs +5 -0
- package/esm2022/modal/index.mjs +13 -0
- package/esm2022/modal/modal-body.component.mjs +36 -0
- package/esm2022/modal/modal-body.theme.mjs +7 -0
- package/esm2022/modal/modal-body.theme.service.mjs +17 -0
- package/esm2022/modal/modal-footer.component.mjs +36 -0
- package/esm2022/modal/modal-footer.theme.mjs +7 -0
- package/esm2022/modal/modal-footer.theme.service.mjs +17 -0
- package/esm2022/modal/modal-header.component.mjs +68 -0
- package/esm2022/modal/modal-header.theme.mjs +13 -0
- package/esm2022/modal/modal-header.theme.service.mjs +19 -0
- package/esm2022/modal/modal.component.mjs +143 -0
- package/esm2022/modal/modal.theme.mjs +33 -0
- package/esm2022/modal/modal.theme.service.mjs +20 -0
- package/esm2022/navbar/flowbite-angular-navbar.mjs +5 -0
- package/esm2022/navbar/index.mjs +19 -0
- package/esm2022/navbar/navbar-brand.component.mjs +36 -0
- package/esm2022/navbar/navbar-brand.theme.mjs +7 -0
- package/esm2022/navbar/navbar-brand.theme.service.mjs +17 -0
- package/esm2022/navbar/navbar-content.component.mjs +46 -0
- package/esm2022/navbar/navbar-content.theme.mjs +14 -0
- package/esm2022/navbar/navbar-content.theme.service.mjs +18 -0
- package/esm2022/navbar/navbar-icon-button.component.mjs +44 -0
- package/esm2022/navbar/navbar-icon-button.theme.mjs +15 -0
- package/esm2022/navbar/navbar-icon-button.theme.service.mjs +17 -0
- package/esm2022/navbar/navbar-item.component.mjs +51 -0
- package/esm2022/{lib/components/navbar → navbar}/navbar-item.theme.mjs +2 -2
- package/esm2022/navbar/navbar-item.theme.service.mjs +17 -0
- package/esm2022/navbar/navbar-toggle.component.mjs +52 -0
- package/esm2022/navbar/navbar-toggle.theme.mjs +7 -0
- package/esm2022/navbar/navbar-toggle.theme.service.mjs +17 -0
- package/esm2022/navbar/navbar.component.mjs +63 -0
- package/esm2022/navbar/navbar.theme.mjs +23 -0
- package/esm2022/navbar/navbar.theme.service.mjs +17 -0
- package/esm2022/router-link/flowbite-angular-router-link.mjs +5 -0
- package/esm2022/router-link/flowbite-router-link.directive.mjs +54 -0
- package/esm2022/router-link/index.mjs +2 -0
- package/esm2022/router-link-active/flowbite-angular-router-link-active.mjs +5 -0
- package/esm2022/router-link-active/flowbite-router-link-active.directive.mjs +49 -0
- package/esm2022/router-link-active/index.mjs +2 -0
- package/esm2022/sanitize-html/flowbite-angular-sanitize-html.mjs +5 -0
- package/esm2022/sanitize-html/index.mjs +2 -0
- package/esm2022/sanitize-html/sanitize-html.pipe.mjs +32 -0
- package/esm2022/scroll-top/flowbite-angular-scroll-top.mjs +5 -0
- package/esm2022/scroll-top/index.mjs +4 -0
- package/esm2022/scroll-top/scroll-top.component.mjs +52 -0
- package/esm2022/scroll-top/scroll-top.theme.mjs +27 -0
- package/esm2022/scroll-top/scroll-top.theme.service.mjs +17 -0
- package/esm2022/sidebar/flowbite-angular-sidebar.mjs +5 -0
- package/esm2022/sidebar/index.mjs +19 -0
- package/esm2022/sidebar/sidebar-item-group.component.mjs +83 -0
- package/esm2022/sidebar/sidebar-item-group.theme.mjs +18 -0
- package/esm2022/sidebar/sidebar-item-group.theme.service.mjs +18 -0
- package/esm2022/sidebar/sidebar-item.component.mjs +79 -0
- package/esm2022/sidebar/sidebar-item.theme.mjs +18 -0
- package/esm2022/sidebar/sidebar-item.theme.service.mjs +18 -0
- package/esm2022/sidebar/sidebar-menu.component.mjs +50 -0
- package/esm2022/sidebar/sidebar-menu.theme.mjs +24 -0
- package/esm2022/sidebar/sidebar-menu.theme.service.mjs +17 -0
- package/esm2022/sidebar/sidebar-page-content.component.mjs +37 -0
- package/esm2022/sidebar/sidebar-page-content.theme.mjs +12 -0
- package/esm2022/sidebar/sidebar-page-content.theme.service.mjs +17 -0
- package/esm2022/sidebar/sidebar-toggle.component.mjs +55 -0
- package/esm2022/sidebar/sidebar-toggle.theme.mjs +18 -0
- package/esm2022/sidebar/sidebar-toggle.theme.service.mjs +17 -0
- package/esm2022/sidebar/sidebar.component.mjs +62 -0
- package/esm2022/sidebar/sidebar.theme.mjs +11 -0
- package/esm2022/sidebar/sidebar.theme.service.mjs +17 -0
- package/esm2022/type-definitions/colors/flowbite.colors.mjs +2 -0
- package/esm2022/type-definitions/colors/flowbite.gradient-colors.mjs +2 -0
- package/esm2022/type-definitions/colors/flowbite.gradient-duo-tone-colors.mjs +2 -0
- package/esm2022/type-definitions/colors/index.mjs +2 -0
- package/esm2022/type-definitions/flowbite.boolean.mjs +10 -0
- package/esm2022/type-definitions/flowbite.class.mjs +2 -0
- package/esm2022/type-definitions/flowbite.combination.mjs +5 -0
- package/esm2022/type-definitions/flowbite.content-positions.mjs +2 -0
- package/esm2022/type-definitions/flowbite.deep-partial.mjs +2 -0
- package/esm2022/type-definitions/flowbite.heading-levels.mjs +2 -0
- package/esm2022/type-definitions/flowbite.positions.mjs +2 -0
- package/esm2022/type-definitions/flowbite.router-link-parameter.mjs +2 -0
- package/esm2022/type-definitions/flowbite.sizes.mjs +2 -0
- package/esm2022/type-definitions/flowbite.themes.mjs +2 -0
- package/esm2022/type-definitions/index.mjs +3 -0
- package/esm2022/utils/flowbite-angular-utils.mjs +5 -0
- package/esm2022/utils/icon.list.mjs +39 -0
- package/esm2022/utils/id.generator.mjs +81 -0
- package/esm2022/utils/index.mjs +9 -0
- package/esm2022/utils/theme/clone-deep.mjs +18 -0
- package/esm2022/utils/theme/create-class.mjs +10 -0
- package/esm2022/utils/theme/create-theme.mjs +10 -0
- package/esm2022/utils/theme/is-object.mjs +10 -0
- package/esm2022/utils/theme/merge-theme.mjs +29 -0
- package/esm2022/utils/theme/to-string.mjs +10 -0
- package/fesm2022/flowbite-angular-accordion.mjs +338 -0
- package/fesm2022/flowbite-angular-accordion.mjs.map +1 -0
- package/fesm2022/flowbite-angular-alert.mjs +151 -0
- package/fesm2022/flowbite-angular-alert.mjs.map +1 -0
- package/fesm2022/flowbite-angular-badge.mjs +105 -0
- package/fesm2022/flowbite-angular-badge.mjs.map +1 -0
- package/fesm2022/flowbite-angular-breadcrumb.mjs +159 -0
- package/fesm2022/flowbite-angular-breadcrumb.mjs.map +1 -0
- package/fesm2022/flowbite-angular-button.mjs +223 -0
- package/fesm2022/flowbite-angular-button.mjs.map +1 -0
- package/fesm2022/flowbite-angular-core.mjs +288 -0
- package/fesm2022/flowbite-angular-core.mjs.map +1 -0
- package/fesm2022/flowbite-angular-dark-theme-toggle.mjs +105 -0
- package/fesm2022/flowbite-angular-dark-theme-toggle.mjs.map +1 -0
- package/fesm2022/flowbite-angular-dropdown.mjs +368 -0
- package/fesm2022/flowbite-angular-dropdown.mjs.map +1 -0
- package/fesm2022/flowbite-angular-icon.mjs +254 -0
- package/fesm2022/flowbite-angular-icon.mjs.map +1 -0
- package/fesm2022/flowbite-angular-indicator.mjs +146 -0
- package/fesm2022/flowbite-angular-indicator.mjs.map +1 -0
- package/fesm2022/flowbite-angular-modal.mjs +386 -0
- package/fesm2022/flowbite-angular-modal.mjs.map +1 -0
- package/fesm2022/flowbite-angular-navbar.mjs +422 -0
- package/fesm2022/flowbite-angular-navbar.mjs.map +1 -0
- package/fesm2022/flowbite-angular-router-link-active.mjs +56 -0
- package/fesm2022/flowbite-angular-router-link-active.mjs.map +1 -0
- package/fesm2022/flowbite-angular-router-link.mjs +61 -0
- package/fesm2022/flowbite-angular-router-link.mjs.map +1 -0
- package/fesm2022/flowbite-angular-sanitize-html.mjs +39 -0
- package/fesm2022/flowbite-angular-sanitize-html.mjs.map +1 -0
- package/fesm2022/flowbite-angular-scroll-top.mjs +99 -0
- package/fesm2022/flowbite-angular-scroll-top.mjs.map +1 -0
- package/fesm2022/flowbite-angular-sidebar.mjs +518 -0
- package/fesm2022/flowbite-angular-sidebar.mjs.map +1 -0
- package/fesm2022/flowbite-angular-utils.mjs +210 -0
- package/fesm2022/flowbite-angular-utils.mjs.map +1 -0
- package/fesm2022/flowbite-angular.mjs +13 -4176
- package/fesm2022/flowbite-angular.mjs.map +1 -1
- package/{lib/services/flowbite.theme.service.d.ts → flowbite.theme.service.d.ts} +1 -1
- package/icon/README.md +3 -0
- package/{lib/components/icon → icon}/icon.component.d.ts +2 -2
- package/index.d.ts +3 -5
- package/indicator/README.md +3 -0
- package/{lib/components/indicators → indicator}/indicators.component.d.ts +14 -14
- package/{lib/components/indicators → indicator}/indicators.theme.d.ts +1 -6
- package/{lib/components/indicators → indicator}/indicators.theme.service.d.ts +1 -1
- package/modal/README.md +3 -0
- package/{lib/components/modal → modal}/modal-body.component.d.ts +1 -1
- package/{lib/components/modal → modal}/modal-body.theme.d.ts +1 -1
- package/{lib/components/modal → modal}/modal-body.theme.service.d.ts +1 -1
- package/{lib/components/modal → modal}/modal-footer.component.d.ts +1 -1
- package/{lib/components/modal → modal}/modal-footer.theme.d.ts +1 -1
- package/{lib/components/modal → modal}/modal-footer.theme.service.d.ts +1 -1
- package/{lib/components/modal → modal}/modal-header.component.d.ts +2 -2
- package/{lib/components/modal → modal}/modal-header.theme.d.ts +1 -1
- package/{lib/components/modal → modal}/modal-header.theme.service.d.ts +1 -1
- package/{lib/components/modal → modal}/modal.component.d.ts +6 -6
- package/{lib/components/modal → modal}/modal.theme.d.ts +1 -5
- package/{lib/components/modal → modal}/modal.theme.service.d.ts +1 -1
- package/navbar/README.md +3 -0
- package/{lib/components/navbar → navbar}/navbar-brand.component.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar-brand.theme.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar-brand.theme.service.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar-content.component.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar-content.theme.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar-content.theme.service.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar-icon-button.component.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar-icon-button.theme.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar-icon-button.theme.service.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar-item.component.d.ts +3 -3
- package/{lib/components/navbar → navbar}/navbar-item.theme.d.ts +1 -2
- package/{lib/components/navbar → navbar}/navbar-item.theme.service.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar-toggle.component.d.ts +2 -2
- package/{lib/components/navbar → navbar}/navbar-toggle.theme.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar-toggle.theme.service.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar.component.d.ts +1 -1
- package/{lib/components/navbar → navbar}/navbar.theme.d.ts +1 -4
- package/{lib/components/navbar → navbar}/navbar.theme.service.d.ts +1 -1
- package/package.json +110 -2
- package/router-link/README.md +3 -0
- package/router-link/index.d.ts +1 -0
- package/router-link-active/README.md +3 -0
- package/{lib/directives → router-link-active}/index.d.ts +0 -1
- package/sanitize-html/README.md +3 -0
- package/scroll-top/README.md +3 -0
- package/{lib/components/scroll-top → scroll-top}/scroll-top.component.d.ts +7 -7
- package/{lib/components/scroll-top → scroll-top}/scroll-top.theme.d.ts +1 -1
- package/{lib/components/scroll-top → scroll-top}/scroll-top.theme.service.d.ts +1 -1
- package/sidebar/README.md +3 -0
- package/{lib/components/sidebar → sidebar}/sidebar-item-group.component.d.ts +3 -3
- package/{lib/components/sidebar → sidebar}/sidebar-item-group.theme.d.ts +1 -1
- package/{lib/components/sidebar → sidebar}/sidebar-item-group.theme.service.d.ts +1 -1
- package/{lib/components/sidebar → sidebar}/sidebar-item.component.d.ts +4 -4
- package/{lib/components/sidebar → sidebar}/sidebar-item.theme.d.ts +1 -2
- package/{lib/components/sidebar → sidebar}/sidebar-item.theme.service.d.ts +1 -1
- package/{lib/components/sidebar → sidebar}/sidebar-menu.component.d.ts +2 -2
- package/{lib/components/sidebar → sidebar}/sidebar-menu.theme.d.ts +1 -1
- package/{lib/components/sidebar → sidebar}/sidebar-menu.theme.service.d.ts +1 -1
- package/{lib/components/sidebar → sidebar}/sidebar-page-content.component.d.ts +1 -1
- package/{lib/components/sidebar → sidebar}/sidebar-page-content.theme.d.ts +1 -1
- package/{lib/components/sidebar → sidebar}/sidebar-page-content.theme.service.d.ts +1 -1
- package/{lib/components/sidebar → sidebar}/sidebar-toggle.component.d.ts +3 -3
- package/{lib/components/sidebar → sidebar}/sidebar-toggle.theme.d.ts +1 -1
- package/{lib/components/sidebar → sidebar}/sidebar-toggle.theme.service.d.ts +1 -1
- package/{lib/components/sidebar → sidebar}/sidebar.component.d.ts +1 -1
- package/{lib/components/sidebar → sidebar}/sidebar.theme.d.ts +1 -4
- package/{lib/components/sidebar → sidebar}/sidebar.theme.service.d.ts +1 -1
- package/tailwind.config.js +306 -0
- package/{lib/utils/boolean.util.d.ts → type-definitions/flowbite.boolean.d.ts} +7 -1
- package/{lib/common/type-definitions → type-definitions}/index.d.ts +1 -0
- package/utils/README.md +3 -0
- package/{lib/utils → utils}/index.d.ts +1 -1
- package/esm2022/lib/common/flowbite.theme.init.mjs +0 -318
- package/esm2022/lib/common/index.mjs +0 -3
- package/esm2022/lib/common/type-definitions/colors/flowbite.colors.mjs +0 -2
- package/esm2022/lib/common/type-definitions/colors/flowbite.gradient-colors.mjs +0 -2
- package/esm2022/lib/common/type-definitions/colors/flowbite.gradient-duo-tone-colors.mjs +0 -2
- package/esm2022/lib/common/type-definitions/colors/index.mjs +0 -2
- package/esm2022/lib/common/type-definitions/flowbite.boolean.mjs +0 -2
- package/esm2022/lib/common/type-definitions/flowbite.class.mjs +0 -2
- package/esm2022/lib/common/type-definitions/flowbite.combination.mjs +0 -5
- package/esm2022/lib/common/type-definitions/flowbite.content-positions.mjs +0 -2
- package/esm2022/lib/common/type-definitions/flowbite.deep-partial.mjs +0 -2
- package/esm2022/lib/common/type-definitions/flowbite.heading-levels.mjs +0 -2
- package/esm2022/lib/common/type-definitions/flowbite.positions.mjs +0 -2
- package/esm2022/lib/common/type-definitions/flowbite.router-link-parameter.mjs +0 -2
- package/esm2022/lib/common/type-definitions/flowbite.sizes.mjs +0 -2
- package/esm2022/lib/common/type-definitions/flowbite.themes.mjs +0 -2
- package/esm2022/lib/common/type-definitions/index.mjs +0 -2
- package/esm2022/lib/components/accordion/accordion-content.component.mjs +0 -46
- package/esm2022/lib/components/accordion/accordion-content.theme.mjs +0 -19
- package/esm2022/lib/components/accordion/accordion-content.theme.service.mjs +0 -17
- package/esm2022/lib/components/accordion/accordion-panel.component.mjs +0 -57
- package/esm2022/lib/components/accordion/accordion-panel.theme.mjs +0 -7
- package/esm2022/lib/components/accordion/accordion-panel.theme.service.mjs +0 -17
- package/esm2022/lib/components/accordion/accordion-title.component.mjs +0 -70
- package/esm2022/lib/components/accordion/accordion-title.theme.mjs +0 -26
- package/esm2022/lib/components/accordion/accordion-title.theme.service.mjs +0 -18
- package/esm2022/lib/components/accordion/accordion.component.mjs +0 -49
- package/esm2022/lib/components/accordion/accordion.theme.mjs +0 -19
- package/esm2022/lib/components/accordion/accordion.theme.service.mjs +0 -17
- package/esm2022/lib/components/accordion/index.mjs +0 -13
- package/esm2022/lib/components/alert/alert.component.mjs +0 -95
- package/esm2022/lib/components/alert/alert.theme.mjs +0 -34
- package/esm2022/lib/components/alert/alert.theme.service.mjs +0 -18
- package/esm2022/lib/components/alert/index.mjs +0 -4
- package/esm2022/lib/components/badge/badge.component.mjs +0 -47
- package/esm2022/lib/components/badge/badge.theme.mjs +0 -34
- package/esm2022/lib/components/badge/badge.theme.service.mjs +0 -19
- package/esm2022/lib/components/badge/index.mjs +0 -4
- package/esm2022/lib/components/base-component.directive.mjs +0 -34
- package/esm2022/lib/components/breadcrumb/breadcrumb-item.component.mjs +0 -57
- package/esm2022/lib/components/breadcrumb/breadcrumb-item.theme.mjs +0 -18
- package/esm2022/lib/components/breadcrumb/breadcrumb-item.theme.service.mjs +0 -18
- package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +0 -46
- package/esm2022/lib/components/breadcrumb/breadcrumb.theme.mjs +0 -7
- package/esm2022/lib/components/breadcrumb/breadcrumb.theme.service.mjs +0 -17
- package/esm2022/lib/components/breadcrumb/index.mjs +0 -7
- package/esm2022/lib/components/button/button.theme.mjs +0 -113
- package/esm2022/lib/components/button/button.theme.service.mjs +0 -24
- package/esm2022/lib/components/button/index.mjs +0 -4
- package/esm2022/lib/components/dark-theme-toggle/dark-theme-toggle.theme.mjs +0 -7
- package/esm2022/lib/components/dark-theme-toggle/dark-theme-toggle.theme.service.mjs +0 -17
- package/esm2022/lib/components/dark-theme-toggle/index.mjs +0 -4
- package/esm2022/lib/components/dropdown/dropdown-divider.component.mjs +0 -34
- package/esm2022/lib/components/dropdown/dropdown-divider.theme.mjs +0 -7
- package/esm2022/lib/components/dropdown/dropdown-divider.theme.service.mjs +0 -17
- package/esm2022/lib/components/dropdown/dropdown-header.component.mjs +0 -44
- package/esm2022/lib/components/dropdown/dropdown-header.theme.mjs +0 -10
- package/esm2022/lib/components/dropdown/dropdown-header.theme.service.mjs +0 -18
- package/esm2022/lib/components/dropdown/dropdown-item.component.mjs +0 -34
- package/esm2022/lib/components/dropdown/dropdown-item.theme.mjs +0 -6
- package/esm2022/lib/components/dropdown/dropdown-item.theme.service.mjs +0 -17
- package/esm2022/lib/components/dropdown/dropdown.component.mjs +0 -149
- package/esm2022/lib/components/dropdown/dropdown.theme.mjs +0 -32
- package/esm2022/lib/components/dropdown/dropdown.theme.service.mjs +0 -22
- package/esm2022/lib/components/dropdown/index.mjs +0 -13
- package/esm2022/lib/components/form-field/directives/addon.directive.mjs +0 -32
- package/esm2022/lib/components/form-field/directives/addon.directive.theme.mjs +0 -8
- package/esm2022/lib/components/form-field/directives/addon.directive.theme.service.mjs +0 -17
- package/esm2022/lib/components/form-field/directives/base-input.directive.mjs +0 -26
- package/esm2022/lib/components/form-field/directives/helper.directive.mjs +0 -34
- package/esm2022/lib/components/form-field/directives/helper.directive.theme.mjs +0 -12
- package/esm2022/lib/components/form-field/directives/helper.directive.theme.service.mjs +0 -17
- package/esm2022/lib/components/form-field/directives/icon.directive.mjs +0 -32
- package/esm2022/lib/components/form-field/directives/icon.directive.theme.mjs +0 -8
- package/esm2022/lib/components/form-field/directives/icon.directive.theme.service.mjs +0 -17
- package/esm2022/lib/components/form-field/directives/index.mjs +0 -17
- package/esm2022/lib/components/form-field/directives/input.directive.mjs +0 -41
- package/esm2022/lib/components/form-field/directives/input.directive.theme.mjs +0 -79
- package/esm2022/lib/components/form-field/directives/input.directive.theme.service.mjs +0 -32
- package/esm2022/lib/components/form-field/directives/label.directive.mjs +0 -41
- package/esm2022/lib/components/form-field/directives/label.directive.theme.mjs +0 -51
- package/esm2022/lib/components/form-field/directives/label.directive.theme.service.mjs +0 -23
- package/esm2022/lib/components/form-field/form-field.component.mjs +0 -40
- package/esm2022/lib/components/form-field/form-field.theme.mjs +0 -8
- package/esm2022/lib/components/form-field/form-field.theme.service.mjs +0 -17
- package/esm2022/lib/components/form-field/index.mjs +0 -5
- package/esm2022/lib/components/icon/icon-registry.mjs +0 -159
- package/esm2022/lib/components/icon/icon.component.mjs +0 -67
- package/esm2022/lib/components/icon/index.mjs +0 -4
- package/esm2022/lib/components/icon/trusted-types.mjs +0 -21
- package/esm2022/lib/components/index.mjs +0 -16
- package/esm2022/lib/components/indicators/index.mjs +0 -4
- package/esm2022/lib/components/indicators/indicators.component.mjs +0 -54
- package/esm2022/lib/components/indicators/indicators.theme.mjs +0 -68
- package/esm2022/lib/components/indicators/indicators.theme.service.mjs +0 -19
- package/esm2022/lib/components/modal/index.mjs +0 -13
- package/esm2022/lib/components/modal/modal-body.component.mjs +0 -34
- package/esm2022/lib/components/modal/modal-body.theme.mjs +0 -7
- package/esm2022/lib/components/modal/modal-body.theme.service.mjs +0 -17
- package/esm2022/lib/components/modal/modal-footer.component.mjs +0 -34
- package/esm2022/lib/components/modal/modal-footer.theme.mjs +0 -7
- package/esm2022/lib/components/modal/modal-footer.theme.service.mjs +0 -17
- package/esm2022/lib/components/modal/modal-header.component.mjs +0 -66
- package/esm2022/lib/components/modal/modal-header.theme.mjs +0 -13
- package/esm2022/lib/components/modal/modal-header.theme.service.mjs +0 -19
- package/esm2022/lib/components/modal/modal.component.mjs +0 -142
- package/esm2022/lib/components/modal/modal.theme.mjs +0 -33
- package/esm2022/lib/components/modal/modal.theme.service.mjs +0 -20
- package/esm2022/lib/components/navbar/index.mjs +0 -19
- package/esm2022/lib/components/navbar/navbar-brand.component.mjs +0 -34
- package/esm2022/lib/components/navbar/navbar-brand.theme.mjs +0 -7
- package/esm2022/lib/components/navbar/navbar-brand.theme.service.mjs +0 -17
- package/esm2022/lib/components/navbar/navbar-content.component.mjs +0 -45
- package/esm2022/lib/components/navbar/navbar-content.theme.mjs +0 -14
- package/esm2022/lib/components/navbar/navbar-content.theme.service.mjs +0 -18
- package/esm2022/lib/components/navbar/navbar-icon-button.component.mjs +0 -42
- package/esm2022/lib/components/navbar/navbar-icon-button.theme.mjs +0 -15
- package/esm2022/lib/components/navbar/navbar-icon-button.theme.service.mjs +0 -17
- package/esm2022/lib/components/navbar/navbar-item.component.mjs +0 -49
- package/esm2022/lib/components/navbar/navbar-item.theme.service.mjs +0 -17
- package/esm2022/lib/components/navbar/navbar-toggle.component.mjs +0 -50
- package/esm2022/lib/components/navbar/navbar-toggle.theme.mjs +0 -7
- package/esm2022/lib/components/navbar/navbar-toggle.theme.service.mjs +0 -17
- package/esm2022/lib/components/navbar/navbar.component.mjs +0 -62
- package/esm2022/lib/components/navbar/navbar.theme.mjs +0 -23
- package/esm2022/lib/components/navbar/navbar.theme.service.mjs +0 -17
- package/esm2022/lib/components/scroll-top/index.mjs +0 -4
- package/esm2022/lib/components/scroll-top/scroll-top.component.mjs +0 -50
- package/esm2022/lib/components/scroll-top/scroll-top.theme.mjs +0 -27
- package/esm2022/lib/components/scroll-top/scroll-top.theme.service.mjs +0 -17
- package/esm2022/lib/components/sidebar/index.mjs +0 -19
- package/esm2022/lib/components/sidebar/sidebar-item-group.component.mjs +0 -81
- package/esm2022/lib/components/sidebar/sidebar-item-group.theme.mjs +0 -18
- package/esm2022/lib/components/sidebar/sidebar-item-group.theme.service.mjs +0 -18
- package/esm2022/lib/components/sidebar/sidebar-item.component.mjs +0 -77
- package/esm2022/lib/components/sidebar/sidebar-item.theme.mjs +0 -18
- package/esm2022/lib/components/sidebar/sidebar-item.theme.service.mjs +0 -18
- package/esm2022/lib/components/sidebar/sidebar-menu.component.mjs +0 -49
- package/esm2022/lib/components/sidebar/sidebar-menu.theme.mjs +0 -24
- package/esm2022/lib/components/sidebar/sidebar-menu.theme.service.mjs +0 -17
- package/esm2022/lib/components/sidebar/sidebar-page-content.component.mjs +0 -36
- package/esm2022/lib/components/sidebar/sidebar-page-content.theme.mjs +0 -12
- package/esm2022/lib/components/sidebar/sidebar-page-content.theme.service.mjs +0 -17
- package/esm2022/lib/components/sidebar/sidebar-toggle.component.mjs +0 -53
- package/esm2022/lib/components/sidebar/sidebar-toggle.theme.mjs +0 -18
- package/esm2022/lib/components/sidebar/sidebar-toggle.theme.service.mjs +0 -17
- package/esm2022/lib/components/sidebar/sidebar.component.mjs +0 -61
- package/esm2022/lib/components/sidebar/sidebar.theme.mjs +0 -11
- package/esm2022/lib/components/sidebar/sidebar.theme.service.mjs +0 -17
- package/esm2022/lib/directives/flowbite-router-link-active.directive.mjs +0 -51
- package/esm2022/lib/directives/flowbite-router-link.directive.mjs +0 -44
- package/esm2022/lib/directives/index.mjs +0 -3
- package/esm2022/lib/pipes/index.mjs +0 -2
- package/esm2022/lib/pipes/sanitize-html/index.mjs +0 -2
- package/esm2022/lib/pipes/sanitize-html/sanitize-html.pipe.mjs +0 -32
- package/esm2022/lib/services/flowbite.theme.service.mjs +0 -16
- package/esm2022/lib/services/index.mjs +0 -2
- package/esm2022/lib/utils/boolean.util.mjs +0 -10
- package/esm2022/lib/utils/directives/index.mjs +0 -3
- package/esm2022/lib/utils/directives/inputs/index.mjs +0 -3
- package/esm2022/lib/utils/directives/inputs/router-link-active.input.mjs +0 -8
- package/esm2022/lib/utils/directives/inputs/router-link.inputs.mjs +0 -20
- package/esm2022/lib/utils/directives/outputs/index.mjs +0 -3
- package/esm2022/lib/utils/directives/outputs/router-link-active.output.mjs +0 -8
- package/esm2022/lib/utils/directives/outputs/router-link.output.mjs +0 -8
- package/esm2022/lib/utils/icon.list.mjs +0 -39
- package/esm2022/lib/utils/id.generator.mjs +0 -81
- package/esm2022/lib/utils/index.mjs +0 -9
- package/esm2022/lib/utils/theme/clone-deep.mjs +0 -18
- package/esm2022/lib/utils/theme/create-class.mjs +0 -10
- package/esm2022/lib/utils/theme/create-theme.mjs +0 -10
- package/esm2022/lib/utils/theme/is-object.mjs +0 -10
- package/esm2022/lib/utils/theme/merge-theme.mjs +0 -29
- package/esm2022/lib/utils/theme/to-string.mjs +0 -10
- package/esm2022/public-api.mjs +0 -7
- package/lib/common/index.d.ts +0 -2
- package/lib/common/type-definitions/flowbite.boolean.d.ts +0 -7
- package/lib/components/form-field/directives/addon.directive.d.ts +0 -13
- package/lib/components/form-field/directives/addon.directive.theme.d.ts +0 -10
- package/lib/components/form-field/directives/addon.directive.theme.service.d.ts +0 -8
- package/lib/components/form-field/directives/base-input.directive.d.ts +0 -14
- package/lib/components/form-field/directives/helper.directive.d.ts +0 -18
- package/lib/components/form-field/directives/helper.directive.theme.d.ts +0 -13
- package/lib/components/form-field/directives/helper.directive.theme.service.d.ts +0 -8
- package/lib/components/form-field/directives/icon.directive.d.ts +0 -13
- package/lib/components/form-field/directives/icon.directive.theme.d.ts +0 -10
- package/lib/components/form-field/directives/icon.directive.theme.service.d.ts +0 -8
- package/lib/components/form-field/directives/index.d.ts +0 -21
- package/lib/components/form-field/directives/input.directive.d.ts +0 -100
- package/lib/components/form-field/directives/input.directive.theme.d.ts +0 -24
- package/lib/components/form-field/directives/input.directive.theme.service.d.ts +0 -8
- package/lib/components/form-field/directives/label.directive.d.ts +0 -62
- package/lib/components/form-field/directives/label.directive.theme.d.ts +0 -20
- package/lib/components/form-field/directives/label.directive.theme.service.d.ts +0 -8
- package/lib/components/form-field/form-field.component.d.ts +0 -20
- package/lib/components/form-field/form-field.theme.d.ts +0 -45
- package/lib/components/form-field/form-field.theme.service.d.ts +0 -8
- package/lib/components/form-field/index.d.ts +0 -5
- package/lib/components/index.d.ts +0 -15
- package/lib/pipes/index.d.ts +0 -1
- package/lib/services/index.d.ts +0 -1
- package/lib/utils/directives/index.d.ts +0 -2
- package/lib/utils/directives/inputs/index.d.ts +0 -2
- package/lib/utils/directives/inputs/router-link-active.input.d.ts +0 -8
- package/lib/utils/directives/inputs/router-link.inputs.d.ts +0 -8
- package/lib/utils/directives/outputs/index.d.ts +0 -2
- package/lib/utils/directives/outputs/router-link-active.output.d.ts +0 -8
- package/lib/utils/directives/outputs/router-link.output.d.ts +0 -8
- package/public-api.d.ts +0 -6
- /package/{lib/components/accordion → accordion}/index.d.ts +0 -0
- /package/{lib/components/alert → alert}/index.d.ts +0 -0
- /package/{lib/components/badge → badge}/index.d.ts +0 -0
- /package/{lib/components/breadcrumb → breadcrumb}/index.d.ts +0 -0
- /package/{lib/components/button → button}/index.d.ts +0 -0
- /package/{lib/common → core}/flowbite.theme.init.d.ts +0 -0
- /package/{lib/components/dropdown → dropdown}/index.d.ts +0 -0
- /package/{lib/components/icon → icon}/icon-registry.d.ts +0 -0
- /package/{lib/components/icon → icon}/index.d.ts +0 -0
- /package/{lib/components/icon → icon}/trusted-types.d.ts +0 -0
- /package/{lib/components/indicators → indicator}/index.d.ts +0 -0
- /package/{lib/components/modal → modal}/index.d.ts +0 -0
- /package/{lib/components/navbar → navbar}/index.d.ts +0 -0
- /package/{lib/directives → router-link}/flowbite-router-link.directive.d.ts +0 -0
- /package/{lib/directives → router-link-active}/flowbite-router-link-active.directive.d.ts +0 -0
- /package/{lib/pipes/sanitize-html → sanitize-html}/index.d.ts +0 -0
- /package/{lib/pipes/sanitize-html → sanitize-html}/sanitize-html.pipe.d.ts +0 -0
- /package/{lib/components/scroll-top → scroll-top}/index.d.ts +0 -0
- /package/{lib/components/sidebar → sidebar}/index.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/colors/flowbite.colors.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/colors/flowbite.gradient-colors.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/colors/flowbite.gradient-duo-tone-colors.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/colors/index.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/flowbite.class.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/flowbite.combination.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/flowbite.content-positions.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/flowbite.deep-partial.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/flowbite.heading-levels.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/flowbite.positions.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/flowbite.router-link-parameter.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/flowbite.sizes.d.ts +0 -0
- /package/{lib/common/type-definitions → type-definitions}/flowbite.themes.d.ts +0 -0
- /package/{lib/utils → utils}/icon.list.d.ts +0 -0
- /package/{lib/utils → utils}/id.generator.d.ts +0 -0
- /package/{lib/utils → utils}/theme/clone-deep.d.ts +0 -0
- /package/{lib/utils → utils}/theme/create-class.d.ts +0 -0
- /package/{lib/utils → utils}/theme/create-theme.d.ts +0 -0
- /package/{lib/utils → utils}/theme/is-object.d.ts +0 -0
- /package/{lib/utils → utils}/theme/merge-theme.d.ts +0 -0
- /package/{lib/utils → utils}/theme/to-string.d.ts +0 -0
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
import { DOCUMENT, isPlatformBrowser } from '@angular/common';
|
|
2
|
+
import { HttpClient } from '@angular/common/http';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { inject, PLATFORM_ID, SecurityContext, Injectable, ElementRef, model, effect, Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';
|
|
5
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
6
|
+
import { of, throwError, map, tap, finalize, share, take } from 'rxjs';
|
|
7
|
+
import { BaseComponent } from 'flowbite-angular';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Thanks to Angular Material for Icon part of this library : https://github.com/angular/components
|
|
11
|
+
*/
|
|
12
|
+
let policy;
|
|
13
|
+
function getPolicy() {
|
|
14
|
+
if (!policy) {
|
|
15
|
+
if (typeof window !== 'undefined') {
|
|
16
|
+
const tWindow = window;
|
|
17
|
+
if (tWindow.trustedTypes !== undefined) {
|
|
18
|
+
policy = tWindow.trustedTypes.createPolicy('angular#components', {
|
|
19
|
+
createHTML: (s) => s,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return policy;
|
|
25
|
+
}
|
|
26
|
+
function trustedHTMLFromString(raw) {
|
|
27
|
+
return getPolicy()?.createHTML(raw) || raw;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Thanks to Angular Material for Icon part of this library : https://github.com/angular/components
|
|
32
|
+
*/
|
|
33
|
+
function getSvgIconFromNamedError(iconName) {
|
|
34
|
+
return Error(`Unable to find icon with name ${iconName}`);
|
|
35
|
+
}
|
|
36
|
+
function getSvgIconFailedToSanitizeRawError(raw) {
|
|
37
|
+
return Error(`The raw provided to IconRegistry was not trusted as safe HTML by ANGULAR's DOMSanitizer. Attempted raw was : ${raw}`);
|
|
38
|
+
}
|
|
39
|
+
function getSvgIconFailedToSanitizeUrlError(url) {
|
|
40
|
+
return Error(`The URL provided to IconRegistry was not trusted as a resource URL via Angular's DOMSanitizer. Attempted URL was : ${url}`);
|
|
41
|
+
}
|
|
42
|
+
function getSvgIconNoHttpClientProvidedError() {
|
|
43
|
+
return Error(`Could not fid HttpClient provider for use with flowbite-angular icons. Please include the HttpClientModule from @angular/common/http in your app imports`);
|
|
44
|
+
}
|
|
45
|
+
class SvgIconConfig {
|
|
46
|
+
constructor(url, svgText, options) {
|
|
47
|
+
this.url = url;
|
|
48
|
+
this.svgText = svgText;
|
|
49
|
+
this.options = options;
|
|
50
|
+
this.svgElement = null;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
class IconRegistry {
|
|
54
|
+
constructor() {
|
|
55
|
+
this.platformId = inject(PLATFORM_ID);
|
|
56
|
+
this._httpClient = inject(HttpClient, { optional: true });
|
|
57
|
+
this._sanitizer = inject(DomSanitizer);
|
|
58
|
+
this._document = inject(DOCUMENT);
|
|
59
|
+
this._svgIconConfig = new Map();
|
|
60
|
+
this._cachedSvgIconByUrl = new Map();
|
|
61
|
+
this._inProgressSvgIconFetch = new Map();
|
|
62
|
+
}
|
|
63
|
+
addSvgIcon(iconName, url, options) {
|
|
64
|
+
return this.addSvgIconInNamespace('', iconName, url, options);
|
|
65
|
+
}
|
|
66
|
+
addRawSvgIcon(iconName, raw, options) {
|
|
67
|
+
return this.addRawSvgIconInNamepsace('', iconName, raw, options);
|
|
68
|
+
}
|
|
69
|
+
addSvgIconInNamespace(namespace, iconName, url, options) {
|
|
70
|
+
return this._addSvgIconConfig(namespace, iconName, new SvgIconConfig(url, undefined, options));
|
|
71
|
+
}
|
|
72
|
+
addRawSvgIconInNamepsace(namespace, iconName, raw, options) {
|
|
73
|
+
const cleanRaw = this._sanitizer.sanitize(SecurityContext.HTML, raw);
|
|
74
|
+
if (!cleanRaw) {
|
|
75
|
+
throw getSvgIconFailedToSanitizeRawError(raw);
|
|
76
|
+
}
|
|
77
|
+
const trustedRaw = trustedHTMLFromString(cleanRaw);
|
|
78
|
+
return this._addSvgIconConfig(namespace, iconName, new SvgIconConfig('', trustedRaw, options));
|
|
79
|
+
}
|
|
80
|
+
getSvgIconFromUrl(safeUrl) {
|
|
81
|
+
const url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, safeUrl);
|
|
82
|
+
if (!url) {
|
|
83
|
+
throw getSvgIconFailedToSanitizeUrlError(safeUrl);
|
|
84
|
+
}
|
|
85
|
+
const cachedIcon = this._cachedSvgIconByUrl.get(url);
|
|
86
|
+
if (cachedIcon) {
|
|
87
|
+
return of(cloneSvg(cachedIcon));
|
|
88
|
+
}
|
|
89
|
+
return this._loadSvgIconFromConfig(new SvgIconConfig(safeUrl, undefined));
|
|
90
|
+
}
|
|
91
|
+
getSvgIconFromName(iconName, namespace) {
|
|
92
|
+
const key = iconKey(namespace, iconName);
|
|
93
|
+
const config = this._svgIconConfig.get(key);
|
|
94
|
+
if (config) {
|
|
95
|
+
return this._getSvgIconFromConfig(config);
|
|
96
|
+
}
|
|
97
|
+
return throwError(() => getSvgIconFromNamedError(key));
|
|
98
|
+
}
|
|
99
|
+
ngOnDestroy() {
|
|
100
|
+
this._svgIconConfig.clear();
|
|
101
|
+
this._cachedSvgIconByUrl.clear();
|
|
102
|
+
}
|
|
103
|
+
_addSvgIconConfig(namespace, iconName, config) {
|
|
104
|
+
this._svgIconConfig.set(iconKey(namespace, iconName), config);
|
|
105
|
+
return this;
|
|
106
|
+
}
|
|
107
|
+
_getSvgIconFromConfig(config) {
|
|
108
|
+
if (config.svgText) {
|
|
109
|
+
return of(cloneSvg(this._svgElementFromConfig(config)));
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
return this._loadSvgIconFromConfig(config).pipe(map((svg) => cloneSvg(svg)));
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
_loadSvgIconFromConfig(config) {
|
|
116
|
+
return this._fetchIcon(config).pipe(tap((svgText) => (config.svgText = svgText)), map(() => this._svgElementFromConfig(config)));
|
|
117
|
+
}
|
|
118
|
+
_setSvgAttributes(svg, options) {
|
|
119
|
+
svg.setAttribute('fit', '');
|
|
120
|
+
svg.setAttribute('height', '100%');
|
|
121
|
+
svg.setAttribute('width', '100%');
|
|
122
|
+
svg.setAttribute('preserveAspectRatio', 'xMidYMid meet');
|
|
123
|
+
svg.setAttribute('focusable', 'false');
|
|
124
|
+
if (options?.viewBox) {
|
|
125
|
+
svg.setAttribute('viewBox', options.viewBox);
|
|
126
|
+
}
|
|
127
|
+
return svg;
|
|
128
|
+
}
|
|
129
|
+
_svgElementFromConfig(config) {
|
|
130
|
+
if (!config.svgElement) {
|
|
131
|
+
const svg = this._svgElementFromString(config.svgText);
|
|
132
|
+
this._setSvgAttributes(svg, config.options);
|
|
133
|
+
config.svgElement = svg;
|
|
134
|
+
}
|
|
135
|
+
return config.svgElement;
|
|
136
|
+
}
|
|
137
|
+
_svgElementFromString(str) {
|
|
138
|
+
const div = this._document.createElement('div');
|
|
139
|
+
div.innerHTML = str;
|
|
140
|
+
const svg = div.querySelector('svg');
|
|
141
|
+
return svg;
|
|
142
|
+
}
|
|
143
|
+
_fetchIcon(iconConfig) {
|
|
144
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
145
|
+
if (!this._httpClient) {
|
|
146
|
+
throw getSvgIconNoHttpClientProvidedError();
|
|
147
|
+
}
|
|
148
|
+
const url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, iconConfig.url);
|
|
149
|
+
if (!url) {
|
|
150
|
+
throw getSvgIconFailedToSanitizeUrlError(iconConfig.url);
|
|
151
|
+
}
|
|
152
|
+
const inProgressFetch = this._inProgressSvgIconFetch.get(url);
|
|
153
|
+
if (inProgressFetch) {
|
|
154
|
+
return inProgressFetch;
|
|
155
|
+
}
|
|
156
|
+
const req = this._httpClient.get(url, { responseType: 'text' }).pipe(map((svg) => {
|
|
157
|
+
return trustedHTMLFromString(svg);
|
|
158
|
+
}), finalize(() => this._inProgressSvgIconFetch.delete(url)), share());
|
|
159
|
+
this._inProgressSvgIconFetch.set(url, req);
|
|
160
|
+
return req;
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
return of(trustedHTMLFromString('<svg></svg>'));
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: IconRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
167
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: IconRegistry, providedIn: 'root' }); }
|
|
168
|
+
}
|
|
169
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: IconRegistry, decorators: [{
|
|
170
|
+
type: Injectable,
|
|
171
|
+
args: [{
|
|
172
|
+
providedIn: 'root',
|
|
173
|
+
}]
|
|
174
|
+
}] });
|
|
175
|
+
function cloneSvg(svg) {
|
|
176
|
+
return svg.cloneNode(true);
|
|
177
|
+
}
|
|
178
|
+
function iconKey(namespace, iconName) {
|
|
179
|
+
return `${namespace}:${iconName}`;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Thanks to Angular Material for Icon part of this library : https://github.com/angular/components
|
|
184
|
+
*/
|
|
185
|
+
class IconComponent extends BaseComponent {
|
|
186
|
+
constructor() {
|
|
187
|
+
super(...arguments);
|
|
188
|
+
this._elementRef = inject((ElementRef));
|
|
189
|
+
this._iconRegistry = inject(IconRegistry);
|
|
190
|
+
this.svgIcon = model.required();
|
|
191
|
+
}
|
|
192
|
+
init() {
|
|
193
|
+
effect(() => {
|
|
194
|
+
this._updateSvgIcon();
|
|
195
|
+
}, { injector: this.injector });
|
|
196
|
+
}
|
|
197
|
+
fetchClass() {
|
|
198
|
+
return { rootClass: '' };
|
|
199
|
+
}
|
|
200
|
+
_splitIconName(iconName) {
|
|
201
|
+
if (!iconName) {
|
|
202
|
+
return ['', ''];
|
|
203
|
+
}
|
|
204
|
+
const parts = iconName.split(':');
|
|
205
|
+
switch (parts.length) {
|
|
206
|
+
case 1:
|
|
207
|
+
return ['', parts[0]];
|
|
208
|
+
case 2:
|
|
209
|
+
return parts;
|
|
210
|
+
default:
|
|
211
|
+
throw Error(`Invalid icon name: "${iconName}"`);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
_updateSvgIcon() {
|
|
215
|
+
const [namespace, iconName] = this._splitIconName(this.svgIcon());
|
|
216
|
+
this._iconRegistry
|
|
217
|
+
.getSvgIconFromName(iconName, namespace)
|
|
218
|
+
.pipe(take(1))
|
|
219
|
+
.subscribe((svg) => this._setSvgElement(svg));
|
|
220
|
+
}
|
|
221
|
+
_setSvgElement(svg) {
|
|
222
|
+
this._clearSvgElements();
|
|
223
|
+
this._elementRef.nativeElement.appendChild(svg);
|
|
224
|
+
}
|
|
225
|
+
_clearSvgElements() {
|
|
226
|
+
const layoutElement = this._elementRef.nativeElement;
|
|
227
|
+
let childCount = layoutElement.childNodes.length;
|
|
228
|
+
while (childCount--) {
|
|
229
|
+
const child = layoutElement.childNodes[childCount];
|
|
230
|
+
if (child.nodeType !== 1 || child.nodeName.toLowerCase() === 'svg') {
|
|
231
|
+
child.remove();
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: IconComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
236
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.0", type: IconComponent, isStandalone: true, selector: "flowbite-icon", inputs: { svgIcon: { classPropertyName: "svgIcon", publicName: "svgIcon", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { svgIcon: "svgIconChange" }, usesInheritance: true, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
237
|
+
}
|
|
238
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: IconComponent, decorators: [{
|
|
239
|
+
type: Component,
|
|
240
|
+
args: [{
|
|
241
|
+
selector: 'flowbite-icon',
|
|
242
|
+
standalone: true,
|
|
243
|
+
template: `<ng-content />`,
|
|
244
|
+
encapsulation: ViewEncapsulation.None,
|
|
245
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
246
|
+
}]
|
|
247
|
+
}] });
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Generated bundle index. Do not edit.
|
|
251
|
+
*/
|
|
252
|
+
|
|
253
|
+
export { IconComponent, IconRegistry, SvgIconConfig, getSvgIconFailedToSanitizeRawError, getSvgIconFailedToSanitizeUrlError, getSvgIconFromNamedError, getSvgIconNoHttpClientProvidedError, trustedHTMLFromString };
|
|
254
|
+
//# sourceMappingURL=flowbite-angular-icon.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flowbite-angular-icon.mjs","sources":["../../../../libs/flowbite-angular/icon/trusted-types.ts","../../../../libs/flowbite-angular/icon/icon-registry.ts","../../../../libs/flowbite-angular/icon/icon.component.ts","../../../../libs/flowbite-angular/icon/flowbite-angular-icon.ts"],"sourcesContent":["/**\n * Thanks to Angular Material for Icon part of this library : https://github.com/angular/components\n */\n\nexport declare interface TrustedHTML {\n __brand__: 'TrustedHTML';\n}\n\nexport declare interface TrustedTypePolicyFactory {\n createPolicy(\n policyName: string,\n policyOptions: {\n createHTML?: (input: string) => string;\n }\n ): TrustedTypePolicy;\n}\n\nexport declare interface TrustedTypePolicy {\n createHTML(input: string): TrustedHTML;\n}\n\nlet policy: TrustedTypePolicy | undefined;\n\nfunction getPolicy(): TrustedTypePolicy | undefined {\n if (!policy) {\n if (typeof window !== 'undefined') {\n const tWindow = window as unknown as { trustedTypes?: TrustedTypePolicyFactory };\n\n if (tWindow.trustedTypes !== undefined) {\n policy = tWindow.trustedTypes.createPolicy('angular#components', {\n createHTML: (s: string) => s,\n });\n }\n }\n }\n\n return policy;\n}\n\nexport function trustedHTMLFromString(raw: string): TrustedHTML {\n return getPolicy()?.createHTML(raw) || (raw as unknown as TrustedHTML);\n}\n","/**\n * Thanks to Angular Material for Icon part of this library : https://github.com/angular/components\n */\n\nimport { trustedHTMLFromString } from './trusted-types';\nimport type { TrustedHTML } from './trusted-types';\n\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport type { OnDestroy } from '@angular/core';\nimport { inject, Injectable, PLATFORM_ID, SecurityContext } from '@angular/core';\nimport type { SafeHtml } from '@angular/platform-browser';\nimport { DomSanitizer, type SafeResourceUrl } from '@angular/platform-browser';\nimport { finalize, map, of, share, tap, throwError, type Observable } from 'rxjs';\n\nexport function getSvgIconFromNamedError(iconName: string): Error {\n return Error(`Unable to find icon with name ${iconName}`);\n}\n\nexport function getSvgIconFailedToSanitizeRawError(raw: SafeHtml): Error {\n return Error(\n `The raw provided to IconRegistry was not trusted as safe HTML by ANGULAR's DOMSanitizer. Attempted raw was : ${raw as string}`\n );\n}\n\nexport function getSvgIconFailedToSanitizeUrlError(url: SafeResourceUrl): Error {\n return Error(\n `The URL provided to IconRegistry was not trusted as a resource URL via Angular's DOMSanitizer. Attempted URL was : ${url as string}`\n );\n}\n\nexport function getSvgIconNoHttpClientProvidedError(): Error {\n return Error(\n `Could not fid HttpClient provider for use with flowbite-angular icons. Please include the HttpClientModule from @angular/common/http in your app imports`\n );\n}\n\nexport interface SvgIconOptions {\n viewBox: string;\n}\n\nexport class SvgIconConfig {\n svgElement: SVGElement | null = null;\n\n constructor(\n public url: SafeResourceUrl,\n public svgText: TrustedHTML | undefined,\n public options?: SvgIconOptions\n ) {}\n}\n\ntype LoadedSvgIconConfig = SvgIconConfig & { svgText: TrustedHTML };\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IconRegistry implements OnDestroy {\n private platformId = inject(PLATFORM_ID);\n\n private _httpClient = inject(HttpClient, { optional: true });\n private _sanitizer = inject(DomSanitizer);\n private _document = inject(DOCUMENT);\n\n private _svgIconConfig = new Map<string, SvgIconConfig>();\n private _cachedSvgIconByUrl = new Map<string, SVGElement>();\n private _inProgressSvgIconFetch = new Map<string, Observable<TrustedHTML>>();\n\n public addSvgIcon(iconName: string, url: SafeResourceUrl, options?: SvgIconOptions): this {\n return this.addSvgIconInNamespace('', iconName, url, options);\n }\n\n public addRawSvgIcon(iconName: string, raw: SafeHtml, options?: SvgIconOptions): this {\n return this.addRawSvgIconInNamepsace('', iconName, raw, options);\n }\n\n public addSvgIconInNamespace(\n namespace: string,\n iconName: string,\n url: SafeResourceUrl,\n options?: SvgIconOptions\n ): this {\n return this._addSvgIconConfig(namespace, iconName, new SvgIconConfig(url, undefined, options));\n }\n\n public addRawSvgIconInNamepsace(\n namespace: string,\n iconName: string,\n raw: SafeHtml,\n options?: SvgIconOptions\n ): this {\n const cleanRaw = this._sanitizer.sanitize(SecurityContext.HTML, raw);\n\n if (!cleanRaw) {\n throw getSvgIconFailedToSanitizeRawError(raw);\n }\n\n const trustedRaw = trustedHTMLFromString(cleanRaw);\n return this._addSvgIconConfig(namespace, iconName, new SvgIconConfig('', trustedRaw, options));\n }\n\n public getSvgIconFromUrl(safeUrl: SafeResourceUrl): Observable<SVGElement> {\n const url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, safeUrl);\n\n if (!url) {\n throw getSvgIconFailedToSanitizeUrlError(safeUrl);\n }\n\n const cachedIcon = this._cachedSvgIconByUrl.get(url);\n\n if (cachedIcon) {\n return of(cloneSvg(cachedIcon));\n }\n\n return this._loadSvgIconFromConfig(new SvgIconConfig(safeUrl, undefined));\n }\n\n public getSvgIconFromName(iconName: string, namespace: string): Observable<SVGElement> {\n const key = iconKey(namespace, iconName);\n const config = this._svgIconConfig.get(key);\n\n if (config) {\n return this._getSvgIconFromConfig(config);\n }\n\n return throwError(() => getSvgIconFromNamedError(key));\n }\n\n public ngOnDestroy(): void {\n this._svgIconConfig.clear();\n this._cachedSvgIconByUrl.clear();\n }\n\n private _addSvgIconConfig(namespace: string, iconName: string, config: SvgIconConfig): this {\n this._svgIconConfig.set(iconKey(namespace, iconName), config);\n\n return this;\n }\n\n private _getSvgIconFromConfig(config: SvgIconConfig): Observable<SVGElement> {\n if (config.svgText) {\n return of(cloneSvg(this._svgElementFromConfig(config as LoadedSvgIconConfig)));\n } else {\n return this._loadSvgIconFromConfig(config).pipe(map((svg) => cloneSvg(svg)));\n }\n }\n\n private _loadSvgIconFromConfig(config: SvgIconConfig): Observable<SVGElement> {\n return this._fetchIcon(config).pipe(\n tap((svgText) => (config.svgText = svgText)),\n map(() => this._svgElementFromConfig(config as LoadedSvgIconConfig))\n );\n }\n\n private _setSvgAttributes(svg: SVGElement, options?: SvgIconOptions): SVGElement {\n svg.setAttribute('fit', '');\n svg.setAttribute('height', '100%');\n svg.setAttribute('width', '100%');\n svg.setAttribute('preserveAspectRatio', 'xMidYMid meet');\n svg.setAttribute('focusable', 'false');\n\n if (options?.viewBox) {\n svg.setAttribute('viewBox', options.viewBox);\n }\n\n return svg;\n }\n\n private _svgElementFromConfig(config: LoadedSvgIconConfig): SVGElement {\n if (!config.svgElement) {\n const svg = this._svgElementFromString(config.svgText);\n\n this._setSvgAttributes(svg, config.options);\n config.svgElement = svg;\n }\n\n return config.svgElement;\n }\n\n private _svgElementFromString(str: TrustedHTML): SVGElement {\n const div = this._document.createElement('div');\n div.innerHTML = str as unknown as string;\n\n const svg = div.querySelector('svg') as SVGElement;\n\n return svg;\n }\n\n private _fetchIcon(iconConfig: SvgIconConfig): Observable<TrustedHTML> {\n if (isPlatformBrowser(this.platformId)) {\n if (!this._httpClient) {\n throw getSvgIconNoHttpClientProvidedError();\n }\n\n const url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, iconConfig.url);\n\n if (!url) {\n throw getSvgIconFailedToSanitizeUrlError(iconConfig.url);\n }\n\n const inProgressFetch = this._inProgressSvgIconFetch.get(url);\n\n if (inProgressFetch) {\n return inProgressFetch;\n }\n\n const req = this._httpClient.get(url, { responseType: 'text' }).pipe(\n map((svg) => {\n return trustedHTMLFromString(svg);\n }),\n finalize(() => this._inProgressSvgIconFetch.delete(url)),\n share()\n );\n\n this._inProgressSvgIconFetch.set(url, req);\n return req;\n } else {\n return of(trustedHTMLFromString('<svg></svg>'));\n }\n }\n}\n\nfunction cloneSvg(svg: SVGElement): SVGElement {\n return svg.cloneNode(true) as SVGElement;\n}\n\nfunction iconKey(namespace: string, iconName: string): string {\n return `${namespace}:${iconName}`;\n}\n","/**\n * Thanks to Angular Material for Icon part of this library : https://github.com/angular/components\n */\n\nimport { IconRegistry } from './icon-registry';\n\nimport type { FlowbiteClass } from 'flowbite-angular';\nimport { BaseComponent } from 'flowbite-angular';\n\nimport type { OnInit } from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n inject,\n model,\n ViewEncapsulation,\n} from '@angular/core';\nimport { take } from 'rxjs';\n\n@Component({\n selector: 'flowbite-icon',\n standalone: true,\n template: `<ng-content />`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconComponent extends BaseComponent<FlowbiteClass> implements OnInit {\n public _elementRef = inject<ElementRef<HTMLElement>>(ElementRef<HTMLElement>);\n public _iconRegistry = inject(IconRegistry);\n\n public svgIcon = model.required<string>();\n\n public override init(): void {\n effect(\n () => {\n this._updateSvgIcon();\n },\n { injector: this.injector }\n );\n }\n\n public override fetchClass(): FlowbiteClass {\n return { rootClass: '' };\n }\n\n private _splitIconName(iconName: string): [string, string] {\n if (!iconName) {\n return ['', ''];\n }\n\n const parts = iconName.split(':');\n switch (parts.length) {\n case 1:\n return ['', parts[0]];\n case 2:\n return <[string, string]>parts;\n default:\n throw Error(`Invalid icon name: \"${iconName}\"`);\n }\n }\n\n private _updateSvgIcon() {\n const [namespace, iconName] = this._splitIconName(this.svgIcon());\n\n this._iconRegistry\n .getSvgIconFromName(iconName, namespace)\n .pipe(take(1))\n .subscribe((svg) => this._setSvgElement(svg));\n }\n\n private _setSvgElement(svg: SVGElement) {\n this._clearSvgElements();\n\n this._elementRef.nativeElement.appendChild(svg);\n }\n\n private _clearSvgElements() {\n const layoutElement: HTMLElement = this._elementRef.nativeElement;\n let childCount = layoutElement.childNodes.length;\n\n while (childCount--) {\n const child = layoutElement.childNodes[childCount];\n\n if (child.nodeType !== 1 || child.nodeName.toLowerCase() === 'svg') {\n child.remove();\n }\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { mergeTheme, createTheme } from 'flowbite-angular/utils';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { InjectionToken, inject, model, Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';
|
|
4
|
+
import { twMerge } from 'tailwind-merge';
|
|
5
|
+
import { BaseComponent, booleanToFlowbiteBoolean } from 'flowbite-angular';
|
|
6
|
+
import { NgClass } from '@angular/common';
|
|
7
|
+
|
|
8
|
+
const FLOWBITE_INDICATOR_THEME_TOKEN = new InjectionToken('FLOWBITE_INDICATOR_THEME_TOKEN');
|
|
9
|
+
class IndicatorThemeService {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.baseTheme = inject(FLOWBITE_INDICATOR_THEME_TOKEN);
|
|
12
|
+
}
|
|
13
|
+
getClasses(properties) {
|
|
14
|
+
const theme = mergeTheme(this.baseTheme, properties.customStyle);
|
|
15
|
+
const output = {
|
|
16
|
+
rootClass: twMerge(theme.root.base, theme.root.hasBorder[properties.hasBorder], theme.root.color[properties.color], theme.root.isDisabled[properties.isDisabled], properties.placement &&
|
|
17
|
+
properties.hasOffset == 'enabled' &&
|
|
18
|
+
theme.root.hasOffset[properties.placement], theme.root.isOutline[properties.isOutline], theme.root.isPill[properties.isPill], properties.placement && 'absolute ' + theme.root.placement[properties.placement], theme.root.isRounded[properties.isRounded], theme.root.size[properties.size]),
|
|
19
|
+
};
|
|
20
|
+
return output;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @see https://flowbite.com/docs/components/indicators/
|
|
26
|
+
*/
|
|
27
|
+
class IndicatorComponent extends BaseComponent {
|
|
28
|
+
constructor() {
|
|
29
|
+
super(...arguments);
|
|
30
|
+
this.themeService = inject(IndicatorThemeService);
|
|
31
|
+
//#region properties
|
|
32
|
+
this.isPill = model(false);
|
|
33
|
+
this.isOutline = model(false);
|
|
34
|
+
this.isDisabled = model(false);
|
|
35
|
+
this.hasOffset = model(false);
|
|
36
|
+
this.isRounded = model(false);
|
|
37
|
+
this.hasBorder = model(false);
|
|
38
|
+
this.color = model('primary');
|
|
39
|
+
this.size = model('md');
|
|
40
|
+
this.placement = model(undefined);
|
|
41
|
+
this.customStyle = model({});
|
|
42
|
+
}
|
|
43
|
+
//#endregion
|
|
44
|
+
//#region BaseComponent implementation
|
|
45
|
+
fetchClass() {
|
|
46
|
+
return this.themeService.getClasses({
|
|
47
|
+
hasBorder: booleanToFlowbiteBoolean(this.hasBorder()),
|
|
48
|
+
color: this.color(),
|
|
49
|
+
isDisabled: booleanToFlowbiteBoolean(this.isDisabled()),
|
|
50
|
+
hasOffset: booleanToFlowbiteBoolean(this.hasOffset()),
|
|
51
|
+
isOutline: booleanToFlowbiteBoolean(this.isOutline()),
|
|
52
|
+
isPill: booleanToFlowbiteBoolean(this.isPill()),
|
|
53
|
+
isRounded: booleanToFlowbiteBoolean(this.isRounded()),
|
|
54
|
+
size: this.size(),
|
|
55
|
+
placement: this.placement(),
|
|
56
|
+
customStyle: this.customStyle(),
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: IndicatorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
60
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.0", type: IndicatorComponent, isStandalone: true, selector: "flowbite-indicator", inputs: { isPill: { classPropertyName: "isPill", publicName: "isPill", isSignal: true, isRequired: false, transformFunction: null }, isOutline: { classPropertyName: "isOutline", publicName: "isOutline", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, hasOffset: { classPropertyName: "hasOffset", publicName: "hasOffset", isSignal: true, isRequired: false, transformFunction: null }, isRounded: { classPropertyName: "isRounded", publicName: "isRounded", isSignal: true, isRequired: false, transformFunction: null }, hasBorder: { classPropertyName: "hasBorder", publicName: "hasBorder", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, customStyle: { classPropertyName: "customStyle", publicName: "customStyle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isPill: "isPillChange", isOutline: "isOutlineChange", isDisabled: "isDisabledChange", hasOffset: "hasOffsetChange", isRounded: "isRoundedChange", hasBorder: "hasBorderChange", color: "colorChange", size: "sizeChange", placement: "placementChange", customStyle: "customStyleChange" }, usesInheritance: true, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
61
|
+
}
|
|
62
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: IndicatorComponent, decorators: [{
|
|
63
|
+
type: Component,
|
|
64
|
+
args: [{
|
|
65
|
+
standalone: true,
|
|
66
|
+
imports: [NgClass],
|
|
67
|
+
selector: 'flowbite-indicator',
|
|
68
|
+
template: `<ng-content />`,
|
|
69
|
+
encapsulation: ViewEncapsulation.None,
|
|
70
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
71
|
+
}]
|
|
72
|
+
}] });
|
|
73
|
+
|
|
74
|
+
const indicatorTheme = createTheme({
|
|
75
|
+
root: {
|
|
76
|
+
base: 'inline-flex items-center justify-center shrink-0 font-bold',
|
|
77
|
+
hasBorder: {
|
|
78
|
+
enabled: 'border-2',
|
|
79
|
+
disabled: '',
|
|
80
|
+
},
|
|
81
|
+
color: {
|
|
82
|
+
dark: 'bg-gray-900 dark:bg-gray-700 border-white dark:border-gray-800 text-white',
|
|
83
|
+
primary: 'bg-primary-500 border-white dark:border-gray-800 text-white',
|
|
84
|
+
gray: 'bg-gray-200 border-white dark:border-gray-800 text-gray-900',
|
|
85
|
+
blue: 'bg-blue-600 border-white dark:border-gray-800 text-white',
|
|
86
|
+
green: 'bg-green-500 border-white dark:border-gray-800 text-white',
|
|
87
|
+
red: 'bg-red-500 border-white dark:border-gray-800 text-white',
|
|
88
|
+
purple: 'bg-purple-500 border-white dark:border-gray-800 text-white',
|
|
89
|
+
indigo: 'bg-indigo-500 border-white dark:border-gray-800 text-white',
|
|
90
|
+
yellow: 'bg-yellow-300 border-white dark:border-gray-800 text-gray-900',
|
|
91
|
+
teal: 'bg-teal-500 border-white dark:border-gray-800 text-white',
|
|
92
|
+
},
|
|
93
|
+
isDisabled: {
|
|
94
|
+
enabled: 'opacity-50',
|
|
95
|
+
disabled: '',
|
|
96
|
+
},
|
|
97
|
+
hasOffset: {
|
|
98
|
+
'top-left': '-translate-x-1/3 -translate-y-1/3',
|
|
99
|
+
'top-center': '-translate-y-1/3',
|
|
100
|
+
'top-right': 'translate-x-1/3 -translate-y-1/3',
|
|
101
|
+
'center-left': '-translate-x-1/3',
|
|
102
|
+
center: '',
|
|
103
|
+
'center-right': 'translate-x-1/3',
|
|
104
|
+
'bottom-left': '-translate-x-1/3 translate-y-1/3',
|
|
105
|
+
'bottom-center': 'translate-y-1/3',
|
|
106
|
+
'bottom-right': 'translate-x-1/3 translate-y-1/3',
|
|
107
|
+
},
|
|
108
|
+
placement: {
|
|
109
|
+
'top-left': 'top-0 left-0',
|
|
110
|
+
'top-center': 'top-0 left-1/2 -translate-x-1/2',
|
|
111
|
+
'top-right': 'top-0 right-0',
|
|
112
|
+
'center-left': 'top-1/2 -translate-y-1/2 left-0',
|
|
113
|
+
center: 'top-1/2 -translate-y-1/2 left-1/2 -translate-x-1/2',
|
|
114
|
+
'center-right': 'top-1/2 -translate-y-1/2 right-0',
|
|
115
|
+
'bottom-left': 'bottom-0 left-0',
|
|
116
|
+
'bottom-center': 'bottom-0 left-1/2 -translate-x-1/2',
|
|
117
|
+
'bottom-right': 'bottom-0 right-0',
|
|
118
|
+
},
|
|
119
|
+
isOutline: {
|
|
120
|
+
enabled: '',
|
|
121
|
+
disabled: '',
|
|
122
|
+
},
|
|
123
|
+
isPill: {
|
|
124
|
+
enabled: '',
|
|
125
|
+
disabled: '',
|
|
126
|
+
},
|
|
127
|
+
isRounded: {
|
|
128
|
+
enabled: 'rounded',
|
|
129
|
+
disabled: 'rounded-full',
|
|
130
|
+
},
|
|
131
|
+
size: {
|
|
132
|
+
xs: 'w-2 h-2 text-xs',
|
|
133
|
+
sm: 'w-2.5 h-2.5 text-sm',
|
|
134
|
+
md: 'w-3 h-3 text-sm',
|
|
135
|
+
lg: 'w-3.5 h-3.5 text-sm',
|
|
136
|
+
xl: 'w-6 h-6 text-sm',
|
|
137
|
+
},
|
|
138
|
+
},
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Generated bundle index. Do not edit.
|
|
143
|
+
*/
|
|
144
|
+
|
|
145
|
+
export { FLOWBITE_INDICATOR_THEME_TOKEN, IndicatorComponent, IndicatorThemeService, indicatorTheme };
|
|
146
|
+
//# sourceMappingURL=flowbite-angular-indicator.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flowbite-angular-indicator.mjs","sources":["../../../../libs/flowbite-angular/indicator/indicators.theme.service.ts","../../../../libs/flowbite-angular/indicator/indicators.component.ts","../../../../libs/flowbite-angular/indicator/indicators.theme.ts","../../../../libs/flowbite-angular/indicator/flowbite-angular-indicator.ts"],"sourcesContent":["import type { indicatorClass, IndicatorProperties, IndicatorTheme } from './indicators.theme';\n\nimport type { FlowbiteThemeService } from 'flowbite-angular';\nimport { mergeTheme } from 'flowbite-angular/utils';\n\nimport { inject, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\nexport const FLOWBITE_INDICATOR_THEME_TOKEN = new InjectionToken<IndicatorTheme>(\n 'FLOWBITE_INDICATOR_THEME_TOKEN'\n);\n\nexport class IndicatorThemeService implements FlowbiteThemeService<IndicatorProperties> {\n private readonly baseTheme = inject(FLOWBITE_INDICATOR_THEME_TOKEN);\n\n public getClasses(properties: IndicatorProperties): indicatorClass {\n const theme: IndicatorTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: indicatorClass = {\n rootClass: twMerge(\n theme.root.base,\n theme.root.hasBorder[properties.hasBorder],\n theme.root.color[properties.color],\n theme.root.isDisabled[properties.isDisabled],\n properties.placement &&\n properties.hasOffset == 'enabled' &&\n theme.root.hasOffset[properties.placement],\n theme.root.isOutline[properties.isOutline],\n theme.root.isPill[properties.isPill],\n properties.placement && 'absolute ' + theme.root.placement[properties.placement],\n theme.root.isRounded[properties.isRounded],\n theme.root.size[properties.size]\n ),\n };\n\n return output;\n }\n}\n","import type {\n indicatorClass,\n IndicatorColors,\n IndicatorPositions,\n IndicatorSizes,\n IndicatorTheme,\n} from './indicators.theme';\nimport { IndicatorThemeService } from './indicators.theme.service';\n\nimport type { DeepPartial } from 'flowbite-angular';\nimport { BaseComponent, booleanToFlowbiteBoolean } from 'flowbite-angular';\n\nimport { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n model,\n ViewEncapsulation,\n} from '@angular/core';\n\n/**\n * @see https://flowbite.com/docs/components/indicators/\n */\n@Component({\n standalone: true,\n imports: [NgClass],\n selector: 'flowbite-indicator',\n template: `<ng-content />`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IndicatorComponent extends BaseComponent<indicatorClass> {\n public readonly themeService = inject(IndicatorThemeService);\n\n //#region properties\n public isPill = model<boolean>(false);\n public isOutline = model<boolean>(false);\n public isDisabled = model<boolean>(false);\n public hasOffset = model<boolean>(false);\n public isRounded = model<boolean>(false);\n public hasBorder = model<boolean>(false);\n public color = model<keyof IndicatorColors>('primary');\n public size = model<keyof IndicatorSizes>('md');\n public placement = model<keyof IndicatorPositions | undefined>(undefined);\n public customStyle = model<DeepPartial<IndicatorTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): indicatorClass {\n return this.themeService.getClasses({\n hasBorder: booleanToFlowbiteBoolean(this.hasBorder()),\n color: this.color(),\n isDisabled: booleanToFlowbiteBoolean(this.isDisabled()),\n hasOffset: booleanToFlowbiteBoolean(this.hasOffset()),\n isOutline: booleanToFlowbiteBoolean(this.isOutline()),\n isPill: booleanToFlowbiteBoolean(this.isPill()),\n isRounded: booleanToFlowbiteBoolean(this.isRounded()),\n size: this.size(),\n placement: this.placement(),\n customStyle: this.customStyle(),\n });\n }\n //#endregion\n}\n","import type {\n DeepPartial,\n FlowbiteBoolean,\n FlowbiteClass,\n FlowbiteColors,\n FlowbitePositions,\n FlowbiteSizes,\n} from 'flowbite-angular';\nimport { createTheme } from 'flowbite-angular/utils';\n\n//#region Component theme option\nexport interface IndicatorColors\n extends Pick<\n FlowbiteColors,\n 'primary' | 'dark' | 'gray' | 'blue' | 'green' | 'red' | 'purple' | 'indigo' | 'yellow' | 'teal'\n > {\n [key: string]: string;\n}\n\nexport interface IndicatorSizes extends Pick<FlowbiteSizes, 'xs' | 'sm' | 'md' | 'lg' | 'xl'> {\n [key: string]: string;\n}\n\nexport interface IndicatorPositions\n extends Pick<\n FlowbitePositions,\n | 'top-left'\n | 'top-center'\n | 'top-right'\n | 'center-left'\n | 'center'\n | 'center-right'\n | 'bottom-left'\n | 'bottom-center'\n | 'bottom-right'\n > {\n [key: string]: string;\n}\n//#endregion\n\nexport interface IndicatorProperties {\n isPill: keyof FlowbiteBoolean;\n isOutline: keyof FlowbiteBoolean;\n isDisabled: keyof FlowbiteBoolean;\n hasOffset: keyof FlowbiteBoolean;\n isRounded: keyof FlowbiteBoolean;\n hasBorder: keyof FlowbiteBoolean;\n color: keyof IndicatorColors;\n size: keyof IndicatorSizes;\n placement?: keyof IndicatorPositions;\n customStyle: DeepPartial<IndicatorTheme>;\n}\n\nexport interface IndicatorTheme {\n root: {\n base: string;\n isPill: FlowbiteBoolean;\n isOutline: FlowbiteBoolean;\n isDisabled: FlowbiteBoolean;\n hasOffset: IndicatorPositions;\n isRounded: FlowbiteBoolean;\n hasBorder: FlowbiteBoolean;\n color: IndicatorColors;\n size: IndicatorSizes;\n placement: IndicatorPositions;\n };\n}\n\nexport const indicatorTheme: IndicatorTheme = createTheme({\n root: {\n base: 'inline-flex items-center justify-center shrink-0 font-bold',\n hasBorder: {\n enabled: 'border-2',\n disabled: '',\n },\n color: {\n dark: 'bg-gray-900 dark:bg-gray-700 border-white dark:border-gray-800 text-white',\n primary: 'bg-primary-500 border-white dark:border-gray-800 text-white',\n gray: 'bg-gray-200 border-white dark:border-gray-800 text-gray-900',\n blue: 'bg-blue-600 border-white dark:border-gray-800 text-white',\n green: 'bg-green-500 border-white dark:border-gray-800 text-white',\n red: 'bg-red-500 border-white dark:border-gray-800 text-white',\n purple: 'bg-purple-500 border-white dark:border-gray-800 text-white',\n indigo: 'bg-indigo-500 border-white dark:border-gray-800 text-white',\n yellow: 'bg-yellow-300 border-white dark:border-gray-800 text-gray-900',\n teal: 'bg-teal-500 border-white dark:border-gray-800 text-white',\n },\n isDisabled: {\n enabled: 'opacity-50',\n disabled: '',\n },\n hasOffset: {\n 'top-left': '-translate-x-1/3 -translate-y-1/3',\n 'top-center': '-translate-y-1/3',\n 'top-right': 'translate-x-1/3 -translate-y-1/3',\n 'center-left': '-translate-x-1/3',\n center: '',\n 'center-right': 'translate-x-1/3',\n 'bottom-left': '-translate-x-1/3 translate-y-1/3',\n 'bottom-center': 'translate-y-1/3',\n 'bottom-right': 'translate-x-1/3 translate-y-1/3',\n },\n placement: {\n 'top-left': 'top-0 left-0',\n 'top-center': 'top-0 left-1/2 -translate-x-1/2',\n 'top-right': 'top-0 right-0',\n 'center-left': 'top-1/2 -translate-y-1/2 left-0',\n center: 'top-1/2 -translate-y-1/2 left-1/2 -translate-x-1/2',\n 'center-right': 'top-1/2 -translate-y-1/2 right-0',\n 'bottom-left': 'bottom-0 left-0',\n 'bottom-center': 'bottom-0 left-1/2 -translate-x-1/2',\n 'bottom-right': 'bottom-0 right-0',\n },\n isOutline: {\n enabled: '',\n disabled: '',\n },\n isPill: {\n enabled: '',\n disabled: '',\n },\n isRounded: {\n enabled: 'rounded',\n disabled: 'rounded-full',\n },\n size: {\n xs: 'w-2 h-2 text-xs',\n sm: 'w-2.5 h-2.5 text-sm',\n md: 'w-3 h-3 text-sm',\n lg: 'w-3.5 h-3.5 text-sm',\n xl: 'w-6 h-6 text-sm',\n },\n },\n});\n\nexport type indicatorClass = FlowbiteClass;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|