flowbite-angular 1.0.0-alpha.4 → 1.0.0-alpha.6
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/accordion/accordion-content.component.d.ts +17 -0
- package/accordion/accordion-content.theme.d.ts +12 -0
- package/accordion/accordion-content.theme.service.d.ts +11 -0
- package/accordion/accordion-panel.component.d.ts +33 -0
- package/accordion/accordion-panel.theme.d.ts +12 -0
- package/accordion/accordion-panel.theme.service.d.ts +11 -0
- package/accordion/accordion-title.component.d.ts +26 -0
- package/accordion/accordion-title.theme.d.ts +12 -0
- package/accordion/accordion-title.theme.service.d.ts +11 -0
- package/accordion/accordion.component.d.ts +30 -0
- package/accordion/accordion.theme.d.ts +15 -0
- package/accordion/accordion.theme.service.d.ts +11 -0
- package/alert/alert.component.d.ts +53 -0
- package/alert/alert.theme.d.ts +15 -0
- package/alert/alert.theme.service.d.ts +11 -0
- package/badge/badge.component.d.ts +29 -0
- package/badge/badge.theme.d.ts +18 -0
- package/badge/badge.theme.service.d.ts +11 -0
- package/base-component.directive.d.ts +36 -0
- package/breadcrumb/breadcrumb-item.component.d.ts +26 -0
- package/breadcrumb/breadcrumb-item.theme.d.ts +12 -0
- package/breadcrumb/breadcrumb-item.theme.service.d.ts +11 -0
- package/breadcrumb/breadcrumb.component.d.ts +14 -0
- package/breadcrumb/breadcrumb.theme.d.ts +15 -0
- package/breadcrumb/breadcrumb.theme.service.d.ts +11 -0
- package/button/button.component.d.ts +41 -0
- package/button/button.theme.d.ts +30 -0
- package/button/button.theme.service.d.ts +11 -0
- package/dark-theme-toggle/dark-theme-toggle.component.d.ts +32 -0
- package/dark-theme-toggle/dark-theme-toggle.theme.d.ts +12 -0
- package/dark-theme-toggle/dark-theme-toggle.theme.service.d.ts +11 -0
- package/dropdown/dropdown-divider.component.d.ts +12 -0
- package/dropdown/dropdown-divider.theme.d.ts +12 -0
- package/dropdown/dropdown-divider.theme.service.d.ts +11 -0
- package/dropdown/dropdown-header.component.d.ts +12 -0
- package/dropdown/dropdown-header.theme.d.ts +12 -0
- package/dropdown/dropdown-header.theme.service.d.ts +11 -0
- package/dropdown/dropdown-item.component.d.ts +12 -0
- package/dropdown/dropdown-item.theme.d.ts +12 -0
- package/dropdown/dropdown-item.theme.service.d.ts +11 -0
- package/dropdown/dropdown.component.d.ts +39 -0
- package/dropdown/dropdown.theme.d.ts +15 -0
- package/dropdown/dropdown.theme.service.d.ts +11 -0
- package/esm2022/accordion/accordion-content.component.mjs +18 -1
- package/esm2022/accordion/accordion-content.theme.mjs +4 -1
- package/esm2022/accordion/accordion-content.theme.service.mjs +19 -2
- package/esm2022/accordion/accordion-panel.component.mjs +34 -1
- package/esm2022/accordion/accordion-panel.theme.mjs +4 -1
- package/esm2022/accordion/accordion-panel.theme.service.mjs +19 -2
- package/esm2022/accordion/accordion-title.component.mjs +27 -1
- package/esm2022/accordion/accordion-title.theme.mjs +4 -1
- package/esm2022/accordion/accordion-title.theme.service.mjs +19 -2
- package/esm2022/accordion/accordion.component.mjs +31 -1
- package/esm2022/accordion/accordion.theme.mjs +4 -1
- package/esm2022/accordion/accordion.theme.service.mjs +19 -2
- package/esm2022/alert/alert.component.mjs +54 -1
- package/esm2022/alert/alert.theme.mjs +4 -1
- package/esm2022/alert/alert.theme.service.mjs +19 -2
- package/esm2022/badge/badge.component.mjs +30 -1
- package/esm2022/badge/badge.theme.mjs +4 -1
- package/esm2022/badge/badge.theme.service.mjs +19 -2
- package/esm2022/base-component.directive.mjs +37 -1
- package/esm2022/breadcrumb/breadcrumb-item.component.mjs +27 -1
- package/esm2022/breadcrumb/breadcrumb-item.theme.mjs +4 -1
- package/esm2022/breadcrumb/breadcrumb-item.theme.service.mjs +19 -2
- package/esm2022/breadcrumb/breadcrumb.component.mjs +15 -1
- package/esm2022/breadcrumb/breadcrumb.theme.mjs +4 -1
- package/esm2022/breadcrumb/breadcrumb.theme.service.mjs +19 -2
- package/esm2022/button/button.component.mjs +42 -1
- package/esm2022/button/button.theme.mjs +4 -1
- package/esm2022/button/button.theme.service.mjs +19 -2
- package/esm2022/core/flowbite.theme.init.mjs +3 -3
- package/esm2022/dark-theme-toggle/dark-theme-toggle.component.mjs +33 -1
- package/esm2022/dark-theme-toggle/dark-theme-toggle.theme.mjs +4 -1
- package/esm2022/dark-theme-toggle/dark-theme-toggle.theme.service.mjs +19 -2
- package/esm2022/dropdown/dropdown-divider.component.mjs +13 -1
- package/esm2022/dropdown/dropdown-divider.theme.mjs +4 -1
- package/esm2022/dropdown/dropdown-divider.theme.service.mjs +19 -2
- package/esm2022/dropdown/dropdown-header.component.mjs +13 -1
- package/esm2022/dropdown/dropdown-header.theme.mjs +4 -1
- package/esm2022/dropdown/dropdown-header.theme.service.mjs +19 -2
- package/esm2022/dropdown/dropdown-item.component.mjs +13 -1
- package/esm2022/dropdown/dropdown-item.theme.mjs +4 -1
- package/esm2022/dropdown/dropdown-item.theme.service.mjs +19 -2
- package/esm2022/dropdown/dropdown.component.mjs +40 -1
- package/esm2022/dropdown/dropdown.theme.mjs +4 -1
- package/esm2022/dropdown/dropdown.theme.service.mjs +19 -2
- package/esm2022/flowbite.theme.service.mjs +2 -12
- package/esm2022/indicator/indicators.component.mjs +52 -1
- package/esm2022/indicator/indicators.theme.mjs +4 -1
- package/esm2022/indicator/indicators.theme.service.mjs +19 -2
- package/esm2022/modal/modal-body.component.mjs +13 -1
- package/esm2022/modal/modal-body.theme.mjs +4 -1
- package/esm2022/modal/modal-body.theme.service.mjs +19 -2
- package/esm2022/modal/modal-footer.component.mjs +13 -1
- package/esm2022/modal/modal-footer.theme.mjs +4 -1
- package/esm2022/modal/modal-footer.theme.service.mjs +19 -2
- package/esm2022/modal/modal-header.component.mjs +19 -1
- package/esm2022/modal/modal-header.theme.mjs +4 -1
- package/esm2022/modal/modal-header.theme.service.mjs +19 -2
- package/esm2022/modal/modal.component.mjs +36 -1
- package/esm2022/modal/modal.theme.service.mjs +19 -2
- package/esm2022/navbar/index.mjs +2 -2
- package/esm2022/navbar/navbar-brand.component.mjs +13 -1
- package/esm2022/navbar/navbar-brand.theme.mjs +4 -1
- package/esm2022/navbar/navbar-brand.theme.service.mjs +19 -2
- package/esm2022/navbar/navbar-content.component.mjs +15 -1
- package/esm2022/navbar/navbar-content.theme.mjs +4 -1
- package/esm2022/navbar/navbar-content.theme.service.mjs +19 -2
- package/esm2022/navbar/navbar-icon-button.component.mjs +22 -1
- package/esm2022/navbar/navbar-icon-button.theme.mjs +4 -1
- package/esm2022/navbar/navbar-icon-button.theme.service.mjs +20 -3
- package/esm2022/navbar/navbar-item.component.mjs +27 -1
- package/esm2022/navbar/navbar-item.theme.mjs +4 -1
- package/esm2022/navbar/navbar-item.theme.service.mjs +19 -2
- package/esm2022/navbar/navbar-toggle.component.mjs +22 -1
- package/esm2022/navbar/navbar-toggle.theme.mjs +5 -2
- package/esm2022/navbar/navbar-toggle.theme.service.mjs +19 -2
- package/esm2022/navbar/navbar.component.mjs +46 -1
- package/esm2022/navbar/navbar.theme.service.mjs +19 -2
- package/esm2022/router-link/flowbite-router-link.directive.mjs +13 -1
- package/esm2022/router-link-active/flowbite-router-link-active.directive.mjs +13 -1
- package/esm2022/sanitize-html/sanitize-html.pipe.mjs +3 -3
- package/esm2022/scroll-top/scroll-top.component.mjs +29 -1
- package/esm2022/scroll-top/scroll-top.theme.mjs +4 -1
- package/esm2022/scroll-top/scroll-top.theme.service.mjs +19 -2
- package/esm2022/sidebar/sidebar-item-group.component.mjs +43 -6
- package/esm2022/sidebar/sidebar-item-group.theme.mjs +4 -1
- package/esm2022/sidebar/sidebar-item-group.theme.service.mjs +19 -2
- package/esm2022/sidebar/sidebar-item.component.mjs +43 -5
- package/esm2022/sidebar/sidebar-item.theme.mjs +4 -1
- package/esm2022/sidebar/sidebar-item.theme.service.mjs +19 -2
- package/esm2022/sidebar/sidebar-menu.component.mjs +27 -1
- package/esm2022/sidebar/sidebar-menu.theme.mjs +4 -1
- package/esm2022/sidebar/sidebar-menu.theme.service.mjs +19 -2
- package/esm2022/sidebar/sidebar-page-content.component.mjs +13 -1
- package/esm2022/sidebar/sidebar-page-content.theme.mjs +4 -1
- package/esm2022/sidebar/sidebar-page-content.theme.service.mjs +19 -2
- package/esm2022/sidebar/sidebar-toggle.component.mjs +34 -1
- package/esm2022/sidebar/sidebar-toggle.theme.mjs +4 -1
- package/esm2022/sidebar/sidebar-toggle.theme.service.mjs +19 -2
- package/esm2022/sidebar/sidebar.component.mjs +38 -1
- package/esm2022/sidebar/sidebar.theme.service.mjs +19 -2
- package/esm2022/type-definitions/colors/flowbite.gradient-colors.mjs +1 -1
- package/fesm2022/flowbite-angular-accordion.mjs +183 -1
- package/fesm2022/flowbite-angular-accordion.mjs.map +1 -1
- package/fesm2022/flowbite-angular-alert.mjs +73 -1
- package/fesm2022/flowbite-angular-alert.mjs.map +1 -1
- package/fesm2022/flowbite-angular-badge.mjs +49 -1
- package/fesm2022/flowbite-angular-badge.mjs.map +1 -1
- package/fesm2022/flowbite-angular-breadcrumb.mjs +79 -1
- package/fesm2022/flowbite-angular-breadcrumb.mjs.map +1 -1
- package/fesm2022/flowbite-angular-button.mjs +61 -1
- package/fesm2022/flowbite-angular-button.mjs.map +1 -1
- package/fesm2022/flowbite-angular-core.mjs +2 -2
- package/fesm2022/flowbite-angular-core.mjs.map +1 -1
- package/fesm2022/flowbite-angular-dark-theme-toggle.mjs +52 -1
- package/fesm2022/flowbite-angular-dark-theme-toggle.mjs.map +1 -1
- package/fesm2022/flowbite-angular-dropdown.mjs +152 -1
- package/fesm2022/flowbite-angular-dropdown.mjs.map +1 -1
- package/fesm2022/flowbite-angular-indicator.mjs +71 -1
- package/fesm2022/flowbite-angular-indicator.mjs.map +1 -1
- package/fesm2022/flowbite-angular-modal.mjs +151 -1
- package/fesm2022/flowbite-angular-modal.mjs.map +1 -1
- package/fesm2022/flowbite-angular-navbar.mjs +254 -4
- package/fesm2022/flowbite-angular-navbar.mjs.map +1 -1
- package/fesm2022/flowbite-angular-router-link-active.mjs +12 -0
- package/fesm2022/flowbite-angular-router-link-active.mjs.map +1 -1
- package/fesm2022/flowbite-angular-router-link.mjs +12 -0
- package/fesm2022/flowbite-angular-router-link.mjs.map +1 -1
- package/fesm2022/flowbite-angular-sanitize-html.mjs +2 -2
- package/fesm2022/flowbite-angular-sanitize-html.mjs.map +1 -1
- package/fesm2022/flowbite-angular-scroll-top.mjs +48 -1
- package/fesm2022/flowbite-angular-scroll-top.mjs.map +1 -1
- package/fesm2022/flowbite-angular-sidebar.mjs +304 -10
- package/fesm2022/flowbite-angular-sidebar.mjs.map +1 -1
- package/fesm2022/flowbite-angular.mjs +39 -11
- package/fesm2022/flowbite-angular.mjs.map +1 -1
- package/flowbite.theme.service.d.ts +6 -4
- package/indicator/indicators.component.d.ts +51 -0
- package/indicator/indicators.theme.d.ts +21 -0
- package/indicator/indicators.theme.service.d.ts +11 -0
- package/modal/modal-body.component.d.ts +12 -0
- package/modal/modal-body.theme.d.ts +12 -0
- package/modal/modal-body.theme.service.d.ts +11 -0
- package/modal/modal-footer.component.d.ts +12 -0
- package/modal/modal-footer.theme.d.ts +12 -0
- package/modal/modal-footer.theme.service.d.ts +11 -0
- package/modal/modal-header.component.d.ts +18 -0
- package/modal/modal-header.theme.d.ts +12 -0
- package/modal/modal-header.theme.service.d.ts +11 -0
- package/modal/modal.component.d.ts +35 -0
- package/modal/modal.theme.service.d.ts +11 -0
- package/navbar/index.d.ts +1 -1
- package/navbar/navbar-brand.component.d.ts +12 -0
- package/navbar/navbar-brand.theme.d.ts +12 -0
- package/navbar/navbar-brand.theme.service.d.ts +11 -0
- package/navbar/navbar-content.component.d.ts +14 -0
- package/navbar/navbar-content.theme.d.ts +12 -0
- package/navbar/navbar-content.theme.service.d.ts +11 -0
- package/navbar/navbar-icon-button.component.d.ts +21 -0
- package/navbar/navbar-icon-button.theme.d.ts +12 -0
- package/navbar/navbar-icon-button.theme.service.d.ts +11 -0
- package/navbar/navbar-item.component.d.ts +26 -0
- package/navbar/navbar-item.theme.d.ts +12 -0
- package/navbar/navbar-item.theme.service.d.ts +11 -0
- package/navbar/navbar-toggle.component.d.ts +21 -0
- package/navbar/navbar-toggle.theme.d.ts +13 -1
- package/navbar/navbar-toggle.theme.service.d.ts +11 -0
- package/navbar/navbar.component.d.ts +45 -0
- package/navbar/navbar.theme.service.d.ts +11 -0
- package/package.json +8 -3
- package/router-link/flowbite-router-link.directive.d.ts +12 -0
- package/router-link-active/flowbite-router-link-active.directive.d.ts +12 -0
- package/sanitize-html/sanitize-html.pipe.d.ts +2 -2
- package/scroll-top/scroll-top.component.d.ts +28 -0
- package/scroll-top/scroll-top.theme.d.ts +19 -1
- package/scroll-top/scroll-top.theme.service.d.ts +11 -0
- package/sidebar/sidebar-item-group.component.d.ts +41 -3
- package/sidebar/sidebar-item-group.theme.d.ts +12 -0
- package/sidebar/sidebar-item-group.theme.service.d.ts +11 -0
- package/sidebar/sidebar-item.component.d.ts +42 -2
- package/sidebar/sidebar-item.theme.d.ts +12 -0
- package/sidebar/sidebar-item.theme.service.d.ts +11 -0
- package/sidebar/sidebar-menu.component.d.ts +26 -0
- package/sidebar/sidebar-menu.theme.d.ts +12 -0
- package/sidebar/sidebar-menu.theme.service.d.ts +11 -0
- package/sidebar/sidebar-page-content.component.d.ts +12 -0
- package/sidebar/sidebar-page-content.theme.d.ts +12 -0
- package/sidebar/sidebar-page-content.theme.service.d.ts +11 -0
- package/sidebar/sidebar-toggle.component.d.ts +33 -0
- package/sidebar/sidebar-toggle.theme.d.ts +15 -0
- package/sidebar/sidebar-toggle.theme.service.d.ts +11 -0
- package/sidebar/sidebar.component.d.ts +37 -0
- package/sidebar/sidebar.theme.service.d.ts +11 -0
- package/tailwind.config.js +0 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowbite-angular-alert.mjs","sources":["../../../../libs/flowbite-angular/alert/alert.theme.service.ts","../../../../libs/flowbite-angular/alert/alert.component.ts","../../../../libs/flowbite-angular/alert/alert.theme.ts","../../../../libs/flowbite-angular/alert/flowbite-angular-alert.ts"],"sourcesContent":["import type { AlertClass, AlertProperties, AlertTheme } from './alert.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_ALERT_THEME_TOKEN = new InjectionToken<AlertTheme>(\n 'FLOWBITE_ALERT_THEME_TOKEN'\n);\n\nexport class AlertThemeService implements FlowbiteThemeService<AlertProperties> {\n private readonly baseTheme = inject(FLOWBITE_ALERT_THEME_TOKEN);\n\n public getClasses(properties: AlertProperties): AlertClass {\n const theme: AlertTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: AlertClass = {\n rootClass: twMerge(\n theme.root.base,\n theme.root.color[properties.color],\n theme.root.hasBorder[properties.hasBorder],\n theme.root.hasBorderAccent[properties.hasBorderAccent]\n ),\n closeButtonClass: twMerge(theme.closeButton.base, theme.closeButton.color[properties.color]),\n };\n\n return output;\n }\n}\n","import type { AlertClass, AlertColors, AlertTheme } from './alert.theme';\nimport { AlertThemeService } from './alert.theme.service';\n\nimport { BaseComponent, booleanToFlowbiteBoolean } from 'flowbite-angular';\nimport type { DeepPartial } from 'flowbite-angular';\nimport { ButtonComponent } from 'flowbite-angular/button';\nimport { IconComponent, IconRegistry } from 'flowbite-angular/icon';\nimport { CLOSE_SVG_ICON } from 'flowbite-angular/utils';\n\nimport { NgClass, NgIf, NgTemplateOutlet } from '@angular/common';\nimport type { OnInit, TemplateRef } from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n model,\n ViewEncapsulation,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n standalone: true,\n imports: [NgIf, NgClass, NgTemplateOutlet, IconComponent, ButtonComponent],\n selector: 'flowbite-alert',\n template: `\n <div class=\"flex items-center\">\n <ng-container [ngTemplateOutlet]=\"icon()\"></ng-container>\n <div>\n <ng-content />\n </div>\n <button\n type=\"button\"\n [ngClass]=\"contentClasses()!.closeButtonClass\"\n *ngIf=\"isDismissable()\"\n aria-label=\"Close\"\n (click)=\"onDismissClick()\">\n <span class=\"sr-only\">Close</span>\n <flowbite-icon svgIcon=\"flowbite-angular:close\" class=\"h-5 w-5\" />\n </button>\n </div>\n <ng-container [ngTemplateOutlet]=\"additionalContent()\"></ng-container>\n `,\n host: {\n '[attr.role]': 'alert',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AlertComponent extends BaseComponent<AlertClass> implements OnInit {\n public readonly themeService = inject(AlertThemeService);\n public readonly iconRegistry = inject(IconRegistry);\n public readonly domSanitizer = inject(DomSanitizer);\n\n //#region properties\n public color = model<keyof AlertColors>('primary');\n public hasBorder = model<boolean>(false);\n public hasBorderAccent = model<boolean>(false);\n public customStyle = model<DeepPartial<AlertTheme>>({});\n public icon = model<TemplateRef<unknown> | null>(null);\n public additionalContent = model<TemplateRef<unknown> | null>(null);\n public isDismissable = model<boolean>(false);\n public onDismiss = model<() => void | undefined>();\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): AlertClass {\n return this.themeService.getClasses({\n color: this.color(),\n hasBorder: booleanToFlowbiteBoolean(this.hasBorder()),\n hasBorderAccent: booleanToFlowbiteBoolean(this.hasBorderAccent()),\n customStyle: this.customStyle(),\n });\n }\n\n public override init(): void {\n this.iconRegistry.addRawSvgIconInNamepsace(\n 'flowbite-angular',\n 'close',\n this.domSanitizer.bypassSecurityTrustHtml(CLOSE_SVG_ICON)\n );\n }\n //#endregion\n\n public onDismissClick() {\n const func = this.onDismiss();\n\n if (func) func();\n }\n}\n","import type { DeepPartial, FlowbiteBoolean, FlowbiteClass, FlowbiteColors } from 'flowbite-angular';\nimport { createTheme } from 'flowbite-angular/utils';\n\n//#region Component theme option\nexport type AlertColors = Pick<\n FlowbiteColors,\n 'primary' | 'dark' | 'blue' | 'red' | 'green' | 'yellow'\n>;\n//#endregion\n\nexport interface AlertProperties {\n color: keyof AlertColors;\n hasBorder: keyof FlowbiteBoolean;\n hasBorderAccent: keyof FlowbiteBoolean;\n customStyle: DeepPartial<AlertTheme>;\n}\n\nexport interface AlertTheme {\n root: {\n base: string;\n color: AlertColors;\n hasBorder: FlowbiteBoolean;\n hasBorderAccent: FlowbiteBoolean;\n };\n closeButton: {\n base: string;\n color: AlertColors;\n };\n}\n\nexport const alertTheme: AlertTheme = createTheme({\n root: {\n base: 'flex flex-col gap-2 p-4 text-sm rounded-lg',\n color: {\n primary:\n 'text-primary-800 dark:text-primary-400 bg-primary-50 dark:bg-gray-800 border-primary-300 dark:border-primary-800',\n dark: 'text-gray-800 dark:text-gray-300 bg-gray-100 dark:bg-gray-800 border-gray-300 dark:border-gray-600',\n blue: 'text-blue-800 dark:text-blue-400 bg-blue-50 dark:bg-gray-800 border-blue-300 dark:border-blue-800',\n red: 'text-red-800 dark:text-red-400 bg-red-100 dark:bg-gray-800 border-red-300 dark:border-red-800',\n green:\n 'text-green-800 dark:text-green-400 bg-green-100 dark:bg-gray-800 border-green-300 dark:border-green-800',\n yellow:\n 'text-yellow-800 dark:text-yellow-300 bg-yellow-100 dark:bg-gray-800 border-yellow-300 dark:border-yellow-800',\n },\n hasBorder: {\n enabled: 'border',\n disabled: 'border-0',\n },\n hasBorderAccent: {\n enabled: 'border-t-4',\n disabled: '',\n },\n },\n closeButton: {\n base: '-mx-1.5 -my-1.5 ml-auto inline-flex h-8 w-8 rounded-lg p-1.5 focus:ring-2',\n color: {\n primary:\n 'text-primary-500 dark:text-primary-600 hover:bg-primary-200 dark:hover:bg-primary-300',\n dark: 'text-gray-500 dark:text-gray-600 hover:bg-gray-200 dark:hover:bg-gray-300',\n blue: 'text-blue-500 dark:text-blue-600 hover:bg-blue-200 dark:hover:bg-blue-300',\n red: 'text-red-500 dark:text-red-600 hover:bg-red-200 dark:hover:bg-red-300',\n green: 'text-green-500 dark:text-green-600 hover:bg-green-200 dark:hover:bg-green-300',\n yellow: 'text-yellow-500 dark:text-yellow-600 hover:bg-yellow-200 dark:hover:bg-yellow-300',\n },\n },\n});\n\nexport interface AlertClass extends FlowbiteClass {\n closeButtonClass: string;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"flowbite-angular-alert.mjs","sources":["../../../../libs/flowbite-angular/alert/alert.theme.service.ts","../../../../libs/flowbite-angular/alert/alert.component.ts","../../../../libs/flowbite-angular/alert/alert.theme.ts","../../../../libs/flowbite-angular/alert/flowbite-angular-alert.ts"],"sourcesContent":["import type { AlertClass, AlertProperties, AlertTheme } from './alert.theme';\n\nimport type { FlowbiteThemeService } from 'flowbite-angular';\nimport { mergeTheme } from 'flowbite-angular/utils';\n\nimport { inject, Injectable, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\n/**\n * `InjectionToken` used to import `AlertTheme` value\n *\n * @example\n * ```\n * var theme = inject(FLOWBITE_ALERT_THEME_TOKEN)\n * ```\n */\nexport const FLOWBITE_ALERT_THEME_TOKEN = new InjectionToken<AlertTheme>(\n 'FLOWBITE_ALERT_THEME_TOKEN'\n);\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AlertThemeService implements FlowbiteThemeService<AlertProperties> {\n private readonly baseTheme = inject(FLOWBITE_ALERT_THEME_TOKEN);\n\n public getClasses(properties: AlertProperties): AlertClass {\n const theme: AlertTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: AlertClass = {\n rootClass: twMerge(\n theme.root.base,\n theme.root.color[properties.color],\n theme.root.hasBorder[properties.hasBorder],\n theme.root.hasBorderAccent[properties.hasBorderAccent]\n ),\n closeButtonClass: twMerge(theme.closeButton.base, theme.closeButton.color[properties.color]),\n };\n\n return output;\n }\n}\n","import type { AlertClass, AlertColors, AlertTheme } from './alert.theme';\nimport { AlertThemeService } from './alert.theme.service';\n\nimport { BaseComponent, booleanToFlowbiteBoolean } from 'flowbite-angular';\nimport type { DeepPartial } from 'flowbite-angular';\nimport { ButtonComponent } from 'flowbite-angular/button';\nimport { IconComponent, IconRegistry } from 'flowbite-angular/icon';\nimport { CLOSE_SVG_ICON } from 'flowbite-angular/utils';\n\nimport { NgClass, NgIf, NgTemplateOutlet } from '@angular/common';\nimport type { OnInit, TemplateRef } from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n model,\n ViewEncapsulation,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n/**\n * @see https://flowbite.com/docs/components/alerts/\n */\n@Component({\n standalone: true,\n imports: [NgIf, NgClass, NgTemplateOutlet, IconComponent, ButtonComponent],\n selector: 'flowbite-alert',\n template: `\n <div class=\"flex items-center\">\n <ng-container [ngTemplateOutlet]=\"icon()\"></ng-container>\n <div>\n <ng-content />\n </div>\n <button\n type=\"button\"\n [ngClass]=\"contentClasses()!.closeButtonClass\"\n *ngIf=\"isDismissable()\"\n aria-label=\"Close\"\n (click)=\"onDismissClick()\">\n <span class=\"sr-only\">Close</span>\n <flowbite-icon svgIcon=\"flowbite-angular:close\" class=\"h-5 w-5\" />\n </button>\n </div>\n <ng-container [ngTemplateOutlet]=\"additionalContent()\"></ng-container>\n `,\n host: {\n '[attr.role]': 'alert',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AlertComponent extends BaseComponent<AlertClass> implements OnInit {\n /**\n * Service injected used to generate class\n */\n public readonly themeService = inject(AlertThemeService);\n /**\n * `IcoRegistry` service\n */\n public readonly iconRegistry = inject(IconRegistry);\n /**\n * `DomSanitizer` service\n */\n public readonly domSanitizer = inject(DomSanitizer);\n\n //#region properties\n /**\n * Set the indicator color\n *\n * @default primary\n */\n public color = model<keyof AlertColors>('primary');\n /**\n * Set if the alert has border\n *\n * @default false\n */\n public hasBorder = model<boolean>(false);\n /**\n * Set if the alert has border accent\n *\n * @default false\n */\n public hasBorderAccent = model<boolean>(false);\n /**\n * Set the custom style for this alert\n */\n public customStyle = model<DeepPartial<AlertTheme>>({});\n /**\n * Set the custom icon\n *\n * @default null\n */\n public icon = model<TemplateRef<unknown> | null>(null);\n /**\n * Set the additional content\n *\n * @default null\n */\n public additionalContent = model<TemplateRef<unknown> | null>(null);\n /**\n * Set if the alert is dismissable\n *\n * @default false\n */\n public isDismissable = model<boolean>(false);\n /**\n * Set the function called when the alert is dismissed\n *\n * @default undefined\n */\n public onDismiss = model<() => void | undefined>();\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): AlertClass {\n return this.themeService.getClasses({\n color: this.color(),\n hasBorder: booleanToFlowbiteBoolean(this.hasBorder()),\n hasBorderAccent: booleanToFlowbiteBoolean(this.hasBorderAccent()),\n customStyle: this.customStyle(),\n });\n }\n\n public override init(): void {\n this.iconRegistry.addRawSvgIconInNamepsace(\n 'flowbite-angular',\n 'close',\n this.domSanitizer.bypassSecurityTrustHtml(CLOSE_SVG_ICON)\n );\n }\n //#endregion\n\n /**\n * Call the onDismiss function if it's not undefined\n */\n public onDismissClick() {\n const func = this.onDismiss();\n\n if (func) func();\n }\n}\n","import type { DeepPartial, FlowbiteBoolean, FlowbiteClass, FlowbiteColors } from 'flowbite-angular';\nimport { createTheme } from 'flowbite-angular/utils';\n\n//#region Component theme option\n/**\n * Available colors for `AlertComponent`\n */\nexport type AlertColors = Pick<\n FlowbiteColors,\n 'primary' | 'dark' | 'blue' | 'red' | 'green' | 'yellow'\n>;\n//#endregion\n\n/**\n * Required properties for the class generation of `AlertComponent`\n */\nexport interface AlertProperties {\n color: keyof AlertColors;\n hasBorder: keyof FlowbiteBoolean;\n hasBorderAccent: keyof FlowbiteBoolean;\n customStyle: DeepPartial<AlertTheme>;\n}\n\n/**\n * Theme definition for `AlertComponent`\n */\nexport interface AlertTheme {\n root: {\n base: string;\n color: AlertColors;\n hasBorder: FlowbiteBoolean;\n hasBorderAccent: FlowbiteBoolean;\n };\n closeButton: {\n base: string;\n color: AlertColors;\n };\n}\n\n/**\n * Default theme for `AlertComponent`\n */\nexport const alertTheme: AlertTheme = createTheme({\n root: {\n base: 'flex flex-col gap-2 p-4 text-sm rounded-lg',\n color: {\n primary:\n 'text-primary-800 dark:text-primary-400 bg-primary-50 dark:bg-gray-800 border-primary-300 dark:border-primary-800',\n dark: 'text-gray-800 dark:text-gray-300 bg-gray-100 dark:bg-gray-800 border-gray-300 dark:border-gray-600',\n blue: 'text-blue-800 dark:text-blue-400 bg-blue-50 dark:bg-gray-800 border-blue-300 dark:border-blue-800',\n red: 'text-red-800 dark:text-red-400 bg-red-100 dark:bg-gray-800 border-red-300 dark:border-red-800',\n green:\n 'text-green-800 dark:text-green-400 bg-green-100 dark:bg-gray-800 border-green-300 dark:border-green-800',\n yellow:\n 'text-yellow-800 dark:text-yellow-300 bg-yellow-100 dark:bg-gray-800 border-yellow-300 dark:border-yellow-800',\n },\n hasBorder: {\n enabled: 'border',\n disabled: 'border-0',\n },\n hasBorderAccent: {\n enabled: 'border-t-4',\n disabled: '',\n },\n },\n closeButton: {\n base: '-mx-1.5 -my-1.5 ml-auto inline-flex h-8 w-8 rounded-lg p-1.5 focus:ring-2',\n color: {\n primary:\n 'text-primary-500 dark:text-primary-600 hover:bg-primary-200 dark:hover:bg-primary-300',\n dark: 'text-gray-500 dark:text-gray-600 hover:bg-gray-200 dark:hover:bg-gray-300',\n blue: 'text-blue-500 dark:text-blue-600 hover:bg-blue-200 dark:hover:bg-blue-300',\n red: 'text-red-500 dark:text-red-600 hover:bg-red-200 dark:hover:bg-red-300',\n green: 'text-green-500 dark:text-green-600 hover:bg-green-200 dark:hover:bg-green-300',\n yellow: 'text-yellow-500 dark:text-yellow-600 hover:bg-yellow-200 dark:hover:bg-yellow-300',\n },\n },\n});\n\n/**\n * Generated class definition for `AlertComponent`\n */\nexport interface AlertClass extends FlowbiteClass {\n closeButtonClass: string;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAQA;;;;;;;AAOG;MACU,0BAA0B,GAAG,IAAI,cAAc,CAC1D,4BAA4B,EAC5B;MAKW,iBAAiB,CAAA;AAH9B,IAAA,WAAA,GAAA;AAImB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAiBjE,KAAA;AAfQ,IAAA,UAAU,CAAC,UAA2B,EAAA;AAC3C,QAAA,MAAM,KAAK,GAAe,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAE7E,QAAA,MAAM,MAAM,GAAe;AACzB,YAAA,SAAS,EAAE,OAAO,CAChB,KAAK,CAAC,IAAI,CAAC,IAAI,EACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAClC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EAC1C,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,eAAe,CAAC,CACvD;AACD,YAAA,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SAC7F,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;8GAjBU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACFD;;AAEG;AA6BG,MAAO,cAAe,SAAQ,aAAyB,CAAA;AA5B7D,IAAA,WAAA,GAAA;;AA6BE;;AAEG;AACa,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACzD;;AAEG;AACa,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACpD;;AAEG;AACa,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;;AAGpD;;;;AAIG;AACI,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAoB,SAAS,CAAC,CAAC;AACnD;;;;AAIG;AACI,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AACzC;;;;AAIG;AACI,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAC/C;;AAEG;AACI,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAA0B,EAAE,CAAC,CAAC;AACxD;;;;AAIG;AACI,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAA8B,IAAI,CAAC,CAAC;AACvD;;;;AAIG;AACI,QAAA,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAA8B,IAAI,CAAC,CAAC;AACpE;;;;AAIG;AACI,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAC7C;;;;AAIG;QACI,IAAS,CAAA,SAAA,GAAG,KAAK,EAA0B,CAAC;AA8BpD,KAAA;;;IA1BiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,SAAS,EAAE,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;AACrD,YAAA,eAAe,EAAE,wBAAwB,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;AACjE,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;IAEe,IAAI,GAAA;AAClB,QAAA,IAAI,CAAC,YAAY,CAAC,wBAAwB,CACxC,kBAAkB,EAClB,OAAO,EACP,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAC1D,CAAC;KACH;;AAGD;;AAEG;IACI,cAAc,GAAA;AACnB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AAE9B,QAAA,IAAI,IAAI;AAAE,YAAA,IAAI,EAAE,CAAC;KAClB;8GAzFU,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,EAxBf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,OAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;AAiBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAnBS,IAAI,EAAE,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,EAAE,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,oJAAE,aAAa,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FA0B7C,cAAc,EAAA,UAAA,EAAA,CAAA;kBA5B1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,CAAC;AAC1E,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;AAiBT,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,aAAa,EAAE,OAAO;AACvB,qBAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA,CAAA;;;ACXD;;AAEG;AACI,MAAM,UAAU,GAAe,WAAW,CAAC;AAChD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,4CAA4C;AAClD,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EACL,kHAAkH;AACpH,YAAA,IAAI,EAAE,oGAAoG;AAC1G,YAAA,IAAI,EAAE,mGAAmG;AACzG,YAAA,GAAG,EAAE,+FAA+F;AACpG,YAAA,KAAK,EACH,yGAAyG;AAC3G,YAAA,MAAM,EACJ,8GAA8G;AACjH,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,UAAU;AACrB,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,OAAO,EAAE,YAAY;AACrB,YAAA,QAAQ,EAAE,EAAE;AACb,SAAA;AACF,KAAA;AACD,IAAA,WAAW,EAAE;AACX,QAAA,IAAI,EAAE,2EAA2E;AACjF,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EACL,uFAAuF;AACzF,YAAA,IAAI,EAAE,2EAA2E;AACjF,YAAA,IAAI,EAAE,2EAA2E;AACjF,YAAA,GAAG,EAAE,uEAAuE;AAC5E,YAAA,KAAK,EAAE,+EAA+E;AACtF,YAAA,MAAM,EAAE,mFAAmF;AAC5F,SAAA;AACF,KAAA;AACF,CAAA;;AC7ED;;AAEG;;;;"}
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
import { mergeTheme, createTheme } from 'flowbite-angular/utils';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { InjectionToken, inject, model, Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';
|
|
3
|
+
import { InjectionToken, inject, Injectable, model, Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';
|
|
4
4
|
import { twMerge } from 'tailwind-merge';
|
|
5
5
|
import { BaseComponent, booleanToFlowbiteBoolean } from 'flowbite-angular';
|
|
6
6
|
import { FlowbiteRouterLinkDirective } from 'flowbite-angular/router-link';
|
|
7
7
|
import { NgClass } from '@angular/common';
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* `InjectionToken` used to import `BadgeTheme` value
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```
|
|
14
|
+
* var theme = inject(FLOWBITE_BADGE_THEME_TOKEN)
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
9
17
|
const FLOWBITE_BADGE_THEME_TOKEN = new InjectionToken('FLOWBITE_BADGE_THEME_TOKEN');
|
|
10
18
|
class BadgeThemeService {
|
|
11
19
|
constructor() {
|
|
@@ -20,7 +28,15 @@ class BadgeThemeService {
|
|
|
20
28
|
};
|
|
21
29
|
return output;
|
|
22
30
|
}
|
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BadgeThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
32
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BadgeThemeService, providedIn: 'root' }); }
|
|
23
33
|
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BadgeThemeService, decorators: [{
|
|
35
|
+
type: Injectable,
|
|
36
|
+
args: [{
|
|
37
|
+
providedIn: 'root',
|
|
38
|
+
}]
|
|
39
|
+
}] });
|
|
24
40
|
|
|
25
41
|
/**
|
|
26
42
|
* @see https://flowbite.com/docs/components/badge/
|
|
@@ -28,13 +44,42 @@ class BadgeThemeService {
|
|
|
28
44
|
class BadgeComponent extends BaseComponent {
|
|
29
45
|
constructor() {
|
|
30
46
|
super(...arguments);
|
|
47
|
+
/**
|
|
48
|
+
* Optional `FlowbiteRouterLinkDirective` injected
|
|
49
|
+
*/
|
|
31
50
|
this.flowbiteRouterLink = inject(FlowbiteRouterLinkDirective, { optional: true });
|
|
51
|
+
/**
|
|
52
|
+
* Service injected used to generate class
|
|
53
|
+
*/
|
|
32
54
|
this.themeService = inject(BadgeThemeService);
|
|
33
55
|
//#region properties
|
|
56
|
+
/**
|
|
57
|
+
* Set the badge color
|
|
58
|
+
*
|
|
59
|
+
* @default primary
|
|
60
|
+
*/
|
|
34
61
|
this.color = model('primary');
|
|
62
|
+
/**
|
|
63
|
+
* Set the badge size
|
|
64
|
+
*
|
|
65
|
+
* @default xs
|
|
66
|
+
*/
|
|
35
67
|
this.size = model('xs');
|
|
68
|
+
/**
|
|
69
|
+
* Set if the badge is icon only
|
|
70
|
+
*
|
|
71
|
+
* @default false
|
|
72
|
+
*/
|
|
36
73
|
this.isIconOnly = model(false);
|
|
74
|
+
/**
|
|
75
|
+
* Set if the badge is pill
|
|
76
|
+
*
|
|
77
|
+
* @default false
|
|
78
|
+
*/
|
|
37
79
|
this.isPill = model(false);
|
|
80
|
+
/**
|
|
81
|
+
* Set the custom style for this badge
|
|
82
|
+
*/
|
|
38
83
|
this.customStyle = model({});
|
|
39
84
|
}
|
|
40
85
|
//#endregion
|
|
@@ -64,6 +109,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
64
109
|
}]
|
|
65
110
|
}] });
|
|
66
111
|
|
|
112
|
+
/**
|
|
113
|
+
* Default theme for `BadgeComponent`
|
|
114
|
+
*/
|
|
67
115
|
const badgeTheme = createTheme({
|
|
68
116
|
root: {
|
|
69
117
|
base: 'flex h-fit items-center gap-1 font-semibold',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowbite-angular-badge.mjs","sources":["../../../../libs/flowbite-angular/badge/badge.theme.service.ts","../../../../libs/flowbite-angular/badge/badge.component.ts","../../../../libs/flowbite-angular/badge/badge.theme.ts","../../../../libs/flowbite-angular/badge/flowbite-angular-badge.ts"],"sourcesContent":["import type { BadgeClass, BadgeProperties, BadgeTheme } from './badge.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_BADGE_THEME_TOKEN = new InjectionToken<BadgeTheme>(\n 'FLOWBITE_BADGE_THEME_TOKEN'\n);\n\nexport class BadgeThemeService implements FlowbiteThemeService<BadgeProperties> {\n private readonly baseTheme = inject(FLOWBITE_BADGE_THEME_TOKEN);\n\n public getClasses(properties: BadgeProperties): BadgeClass {\n const theme: BadgeTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: BadgeClass = {\n rootClass: twMerge(\n theme.root.base,\n theme.root.color[properties.color],\n theme.root.size[properties.size],\n theme.root.isPill[\n properties.isPill == 'enabled' || properties.isIconOnly == 'enabled'\n ? 'enabled'\n : properties.isPill\n ],\n theme.root.isIconOnly[properties.isIconOnly],\n theme.root.link[properties.link ? 'enabled' : 'disabled']\n ),\n };\n\n return output;\n }\n}\n","import type { BadgeClass, BadgeColors, BadgeSizes, BadgeTheme } from './badge.theme';\nimport { BadgeThemeService } from './badge.theme.service';\n\nimport type { DeepPartial } from 'flowbite-angular';\nimport { BaseComponent, booleanToFlowbiteBoolean } from 'flowbite-angular';\nimport { FlowbiteRouterLinkDirective } from 'flowbite-angular/router-link';\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/badge/\n */\n@Component({\n standalone: true,\n imports: [NgClass],\n selector: 'flowbite-badge',\n template: `<ng-content />`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BadgeComponent extends BaseComponent<BadgeClass> {\n public readonly flowbiteRouterLink = inject(FlowbiteRouterLinkDirective, { optional: true });\n public readonly themeService = inject(BadgeThemeService);\n\n //#region properties\n public color = model<keyof BadgeColors>('primary');\n public size = model<keyof BadgeSizes>('xs');\n public isIconOnly = model<boolean>(false);\n public isPill = model<boolean>(false);\n public customStyle = model<DeepPartial<BadgeTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): BadgeClass {\n return this.themeService.getClasses({\n color: this.color(),\n size: this.size(),\n isIconOnly: booleanToFlowbiteBoolean(this.isIconOnly()),\n isPill: booleanToFlowbiteBoolean(this.isPill()),\n link: this.flowbiteRouterLink?.routerLink.urlTree ?? null,\n customStyle: this.customStyle(),\n });\n }\n //#endregion\n}\n","import type {\n DeepPartial,\n FlowbiteBoolean,\n FlowbiteClass,\n FlowbiteColors,\n FlowbiteSizes,\n RouterLinkParameter,\n} from 'flowbite-angular';\nimport { createTheme } from 'flowbite-angular/utils';\n\n//#region Component theme option\nexport interface BadgeColors\n extends Pick<\n FlowbiteColors,\n 'primary' | 'dark' | 'blue' | 'red' | 'green' | 'yellow' | 'indigo' | 'purple' | 'pink'\n > {\n [key: string]: string;\n}\n\nexport interface BadgeSizes extends Pick<FlowbiteSizes, 'xs' | 'sm'> {\n [key: string]: string;\n}\n//#endregion\n\nexport interface BadgeProperties {\n color: keyof BadgeColors;\n size: keyof BadgeSizes;\n isIconOnly: keyof FlowbiteBoolean;\n isPill: keyof FlowbiteBoolean;\n link: RouterLinkParameter;\n customStyle: DeepPartial<BadgeTheme>;\n}\n\nexport interface BadgeTheme {\n root: {\n base: string;\n color: BadgeColors;\n size: BadgeSizes;\n isPill: FlowbiteBoolean;\n isIconOnly: FlowbiteBoolean;\n link: FlowbiteBoolean;\n };\n}\n\nexport const badgeTheme: BadgeTheme = createTheme({\n root: {\n base: 'flex h-fit items-center gap-1 font-semibold',\n color: {\n primary:\n 'bg-primary-100 dark:bg-primary-700 text-primary-800 dark:text-primary-300 group-hover:bg-primary-200 dark:group-hover:bg-primary-600',\n dark: 'bg-gray-100 dark:bg-gray-700 text-gray-800 dark:text-gray-300 group-hover:bg-gray-200 dark:group-hover:bg-gray-600',\n blue: 'bg-blue-100 dark:bg-blue-200 text-blue-800 dark:text-blue-800 group-hover:bg-blue-200 dark:group-hover:bg-blue-300',\n red: 'bg-red-100 dark:bg-red-200 text-red-800 dark:text-red-900 group-hover:bg-red-200 dark:group-hover:bg-red-300',\n green:\n 'bg-green-100 dark:bg-green-200 text-green-800 dark:text-green-900 group-hover:bg-green-200 dark:group-hover:bg-green-300',\n yellow:\n 'bg-yellow-100 dark:bg-yellow-200 text-yellow-800 dark:text-yellow-900 group-hover:bg-yellow-200 dark:group-hover:bg-yellow-300',\n indigo:\n 'bg-indigo-100 dark:bg-indigo-200 text-indigo-800 dark:text-indigo-900 group-hover:bg-indigo-200 dark:group-hover:bg-indigo-300',\n purple:\n 'bg-purple-100 dark:bg-purple-200 text-purple-800 dark:text-purple-900 group-hover:bg-purple-200 dark:group-hover:bg-purple-300',\n pink: 'bg-pink-100 dark:bg-pink-200 text-pink-800 dark:text-pink-900 group-hover:bg-pink-200 dark:group-hover:bg-pink-300',\n },\n size: {\n xs: 'text-xs p-1',\n sm: 'text-sm p-1.5',\n },\n isPill: {\n enabled: 'rounded-full',\n disabled: 'rounded',\n },\n link: {\n enabled: 'group cursor-pointer',\n disabled: '',\n },\n isIconOnly: {\n enabled: '',\n disabled: 'px-2 py-0.5',\n },\n },\n});\n\nexport type BadgeClass = FlowbiteClass;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;MAQa,0BAA0B,GAAG,IAAI,cAAc,CAC1D,4BAA4B,EAC5B;MAEW,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;KAsBjE;AApBQ,IAAA,UAAU,CAAC,UAA2B,EAAA;AAC3C,QAAA,MAAM,KAAK,GAAe,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;AAE7E,QAAA,MAAM,MAAM,GAAe;YACzB,SAAS,EAAE,OAAO,CAChB,KAAK,CAAC,IAAI,CAAC,IAAI,EACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAChC,KAAK,CAAC,IAAI,CAAC,MAAM,CACf,UAAU,CAAC,MAAM,IAAI,SAAS,IAAI,UAAU,CAAC,UAAU,IAAI,SAAS;AAClE,kBAAE,SAAS;AACX,kBAAE,UAAU,CAAC,MAAM,CACtB,EACD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,EAC5C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,SAAS,GAAG,UAAU,CAAC,CAC1D;SACF,CAAC;AAEF,QAAA,OAAO,MAAM,CAAC;KACf;AACF;;ACnBD;;AAEG;AASG,MAAO,cAAe,SAAQ,aAAyB,CAAA;AAR7D,IAAA,WAAA,GAAA;;QASkB,IAAkB,CAAA,kBAAA,GAAG,MAAM,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7E,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;;AAGlD,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAoB,SAAS,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAmB,IAAI,CAAC,CAAC;AACrC,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AACnC,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAA0B,EAAE,CAAC,CAAC;AAezD,KAAA;;;IAXiB,UAAU,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAClC,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjB,YAAA,UAAU,EAAE,wBAAwB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;AACvD,YAAA,MAAM,EAAE,wBAAwB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/C,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,OAAO,IAAI,IAAI;AACzD,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAChC,SAAA,CAAC,CAAC;KACJ;8GAtBU,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,u3BAJf,CAAgB,cAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAIf,cAAc,EAAA,UAAA,EAAA,CAAA;kBAR1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,OAAO,CAAC;AAClB,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,CAAgB,cAAA,CAAA;oBAC1B,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA,CAAA;;;ACkBM,MAAM,UAAU,GAAe,WAAW,CAAC;AAChD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,6CAA6C;AACnD,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EACL,sIAAsI;AACxI,YAAA,IAAI,EAAE,oHAAoH;AAC1H,YAAA,IAAI,EAAE,oHAAoH;AAC1H,YAAA,GAAG,EAAE,8GAA8G;AACnH,YAAA,KAAK,EACH,0HAA0H;AAC5H,YAAA,MAAM,EACJ,gIAAgI;AAClI,YAAA,MAAM,EACJ,gIAAgI;AAClI,YAAA,MAAM,EACJ,gIAAgI;AAClI,YAAA,IAAI,EAAE,oHAAoH;AAC3H,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,aAAa;AACjB,YAAA,EAAE,EAAE,eAAe;AACpB,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,cAAc;AACvB,YAAA,QAAQ,EAAE,SAAS;AACpB,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,OAAO,EAAE,sBAAsB;AAC/B,YAAA,QAAQ,EAAE,EAAE;AACb,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,QAAQ,EAAE,aAAa;AACxB,SAAA;AACF,KAAA;AACF,CAAA;;AChFD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"flowbite-angular-badge.mjs","sources":["../../../../libs/flowbite-angular/badge/badge.theme.service.ts","../../../../libs/flowbite-angular/badge/badge.component.ts","../../../../libs/flowbite-angular/badge/badge.theme.ts","../../../../libs/flowbite-angular/badge/flowbite-angular-badge.ts"],"sourcesContent":["import type { BadgeClass, BadgeProperties, BadgeTheme } from './badge.theme';\n\nimport type { FlowbiteThemeService } from 'flowbite-angular';\nimport { mergeTheme } from 'flowbite-angular/utils';\n\nimport { inject, Injectable, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\n/**\n * `InjectionToken` used to import `BadgeTheme` value\n *\n * @example\n * ```\n * var theme = inject(FLOWBITE_BADGE_THEME_TOKEN)\n * ```\n */\nexport const FLOWBITE_BADGE_THEME_TOKEN = new InjectionToken<BadgeTheme>(\n 'FLOWBITE_BADGE_THEME_TOKEN'\n);\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BadgeThemeService implements FlowbiteThemeService<BadgeProperties> {\n private readonly baseTheme = inject(FLOWBITE_BADGE_THEME_TOKEN);\n\n public getClasses(properties: BadgeProperties): BadgeClass {\n const theme: BadgeTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: BadgeClass = {\n rootClass: twMerge(\n theme.root.base,\n theme.root.color[properties.color],\n theme.root.size[properties.size],\n theme.root.isPill[\n properties.isPill == 'enabled' || properties.isIconOnly == 'enabled'\n ? 'enabled'\n : properties.isPill\n ],\n theme.root.isIconOnly[properties.isIconOnly],\n theme.root.link[properties.link ? 'enabled' : 'disabled']\n ),\n };\n\n return output;\n }\n}\n","import type { BadgeClass, BadgeColors, BadgeSizes, BadgeTheme } from './badge.theme';\nimport { BadgeThemeService } from './badge.theme.service';\n\nimport type { DeepPartial } from 'flowbite-angular';\nimport { BaseComponent, booleanToFlowbiteBoolean } from 'flowbite-angular';\nimport { FlowbiteRouterLinkDirective } from 'flowbite-angular/router-link';\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/badge/\n */\n@Component({\n standalone: true,\n imports: [NgClass],\n selector: 'flowbite-badge',\n template: `<ng-content />`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BadgeComponent extends BaseComponent<BadgeClass> {\n /**\n * Optional `FlowbiteRouterLinkDirective` injected\n */\n public readonly flowbiteRouterLink = inject(FlowbiteRouterLinkDirective, { optional: true });\n /**\n * Service injected used to generate class\n */\n public readonly themeService = inject(BadgeThemeService);\n\n //#region properties\n /**\n * Set the badge color\n *\n * @default primary\n */\n public color = model<keyof BadgeColors>('primary');\n /**\n * Set the badge size\n *\n * @default xs\n */\n public size = model<keyof BadgeSizes>('xs');\n /**\n * Set if the badge is icon only\n *\n * @default false\n */\n public isIconOnly = model<boolean>(false);\n /**\n * Set if the badge is pill\n *\n * @default false\n */\n public isPill = model<boolean>(false);\n /**\n * Set the custom style for this badge\n */\n public customStyle = model<DeepPartial<BadgeTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): BadgeClass {\n return this.themeService.getClasses({\n color: this.color(),\n size: this.size(),\n isIconOnly: booleanToFlowbiteBoolean(this.isIconOnly()),\n isPill: booleanToFlowbiteBoolean(this.isPill()),\n link: this.flowbiteRouterLink?.routerLink.urlTree ?? null,\n customStyle: this.customStyle(),\n });\n }\n //#endregion\n}\n","import type {\n DeepPartial,\n FlowbiteBoolean,\n FlowbiteClass,\n FlowbiteColors,\n FlowbiteSizes,\n RouterLinkParameter,\n} from 'flowbite-angular';\nimport { createTheme } from 'flowbite-angular/utils';\n\n//#region Component theme option\n/**\n * Available colors for `BadgeComponent`\n */\nexport interface BadgeColors\n extends Pick<\n FlowbiteColors,\n 'primary' | 'dark' | 'blue' | 'red' | 'green' | 'yellow' | 'indigo' | 'purple' | 'pink'\n > {\n [key: string]: string;\n}\n\n/**\n * Available sizes for `BadgeComponent`\n */\nexport interface BadgeSizes extends Pick<FlowbiteSizes, 'xs' | 'sm'> {\n [key: string]: string;\n}\n//#endregion\n\n/**\n * Required properties for the class generation of `BadgeComponent`\n */\nexport interface BadgeProperties {\n color: keyof BadgeColors;\n size: keyof BadgeSizes;\n isIconOnly: keyof FlowbiteBoolean;\n isPill: keyof FlowbiteBoolean;\n link: RouterLinkParameter;\n customStyle: DeepPartial<BadgeTheme>;\n}\n\n/**\n * Theme definition for `BadgeComponent`\n */\nexport interface BadgeTheme {\n root: {\n base: string;\n color: BadgeColors;\n size: BadgeSizes;\n isPill: FlowbiteBoolean;\n isIconOnly: FlowbiteBoolean;\n link: FlowbiteBoolean;\n };\n}\n\n/**\n * Default theme for `BadgeComponent`\n */\nexport const badgeTheme: BadgeTheme = createTheme({\n root: {\n base: 'flex h-fit items-center gap-1 font-semibold',\n color: {\n primary:\n 'bg-primary-100 dark:bg-primary-700 text-primary-800 dark:text-primary-300 group-hover:bg-primary-200 dark:group-hover:bg-primary-600',\n dark: 'bg-gray-100 dark:bg-gray-700 text-gray-800 dark:text-gray-300 group-hover:bg-gray-200 dark:group-hover:bg-gray-600',\n blue: 'bg-blue-100 dark:bg-blue-200 text-blue-800 dark:text-blue-800 group-hover:bg-blue-200 dark:group-hover:bg-blue-300',\n red: 'bg-red-100 dark:bg-red-200 text-red-800 dark:text-red-900 group-hover:bg-red-200 dark:group-hover:bg-red-300',\n green:\n 'bg-green-100 dark:bg-green-200 text-green-800 dark:text-green-900 group-hover:bg-green-200 dark:group-hover:bg-green-300',\n yellow:\n 'bg-yellow-100 dark:bg-yellow-200 text-yellow-800 dark:text-yellow-900 group-hover:bg-yellow-200 dark:group-hover:bg-yellow-300',\n indigo:\n 'bg-indigo-100 dark:bg-indigo-200 text-indigo-800 dark:text-indigo-900 group-hover:bg-indigo-200 dark:group-hover:bg-indigo-300',\n purple:\n 'bg-purple-100 dark:bg-purple-200 text-purple-800 dark:text-purple-900 group-hover:bg-purple-200 dark:group-hover:bg-purple-300',\n pink: 'bg-pink-100 dark:bg-pink-200 text-pink-800 dark:text-pink-900 group-hover:bg-pink-200 dark:group-hover:bg-pink-300',\n },\n size: {\n xs: 'text-xs p-1',\n sm: 'text-sm p-1.5',\n },\n isPill: {\n enabled: 'rounded-full',\n disabled: 'rounded',\n },\n link: {\n enabled: 'group cursor-pointer',\n disabled: '',\n },\n isIconOnly: {\n enabled: '',\n disabled: 'px-2 py-0.5',\n },\n },\n});\n\n/**\n * Generated class definition for `BadgeComponent`\n */\nexport type BadgeClass = FlowbiteClass;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { mergeTheme, CHEVRON_RIGHT_SVG_ICON, createTheme } from 'flowbite-angular/utils';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { InjectionToken, inject, model, Component, ViewEncapsulation, ChangeDetectionStrategy, contentChildren } from '@angular/core';
|
|
3
|
+
import { InjectionToken, inject, Injectable, model, Component, ViewEncapsulation, ChangeDetectionStrategy, contentChildren } from '@angular/core';
|
|
4
4
|
import { twMerge } from 'tailwind-merge';
|
|
5
5
|
import { BaseComponent } from 'flowbite-angular';
|
|
6
6
|
import { IconRegistry, IconComponent } from 'flowbite-angular/icon';
|
|
@@ -8,6 +8,14 @@ import { FlowbiteRouterLinkDirective } from 'flowbite-angular/router-link';
|
|
|
8
8
|
import { NgClass, NgIf, NgTemplateOutlet } from '@angular/common';
|
|
9
9
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* `InjectionToken` used to import `BreadcrumbItemTheme` value
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```
|
|
16
|
+
* var theme = inject(FLOWBITE_BREADCRUMB_ITEM_THEME_TOKEN)
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
11
19
|
const FLOWBITE_BREADCRUMB_ITEM_THEME_TOKEN = new InjectionToken('FLOWBITE_BREADCRUMB_ITEM_THEME_TOKEN');
|
|
12
20
|
class BreadcrumbItemThemeService {
|
|
13
21
|
constructor() {
|
|
@@ -21,18 +29,52 @@ class BreadcrumbItemThemeService {
|
|
|
21
29
|
};
|
|
22
30
|
return output;
|
|
23
31
|
}
|
|
32
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BreadcrumbItemThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
33
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BreadcrumbItemThemeService, providedIn: 'root' }); }
|
|
24
34
|
}
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BreadcrumbItemThemeService, decorators: [{
|
|
36
|
+
type: Injectable,
|
|
37
|
+
args: [{
|
|
38
|
+
providedIn: 'root',
|
|
39
|
+
}]
|
|
40
|
+
}] });
|
|
25
41
|
|
|
42
|
+
/**
|
|
43
|
+
* @see https://flowbite.com/docs/components/breadcrumb/
|
|
44
|
+
*/
|
|
26
45
|
class BreadcrumbItemComponent extends BaseComponent {
|
|
27
46
|
constructor() {
|
|
28
47
|
super(...arguments);
|
|
48
|
+
/**
|
|
49
|
+
* Service injected used to generate class
|
|
50
|
+
*/
|
|
29
51
|
this.themeService = inject(BreadcrumbItemThemeService);
|
|
52
|
+
/**
|
|
53
|
+
* The parent `BreadcrumbComponent`
|
|
54
|
+
*/
|
|
30
55
|
this.breadcrumbComponent = inject(BreadcrumbComponent);
|
|
56
|
+
/**
|
|
57
|
+
* Optional `FlowbiteRouterLinkDirective` injected
|
|
58
|
+
*/
|
|
31
59
|
this.flowbiteRouterLink = inject(FlowbiteRouterLinkDirective, { optional: true });
|
|
60
|
+
/**
|
|
61
|
+
* `IconRegistry` service
|
|
62
|
+
*/
|
|
32
63
|
this.iconRegistry = inject(IconRegistry);
|
|
64
|
+
/**
|
|
65
|
+
* `DomSanitizer` service
|
|
66
|
+
*/
|
|
33
67
|
this.domSanitizer = inject(DomSanitizer);
|
|
34
68
|
//#region properties
|
|
69
|
+
/**
|
|
70
|
+
* Set the breadcrumb item color
|
|
71
|
+
*
|
|
72
|
+
* @default `BreadcrumbComponent`'s color
|
|
73
|
+
*/
|
|
35
74
|
this.color = model(this.breadcrumbComponent.color());
|
|
75
|
+
/**
|
|
76
|
+
* Set the custom style for this breadcrumb item
|
|
77
|
+
*/
|
|
36
78
|
this.customStyle = model({});
|
|
37
79
|
}
|
|
38
80
|
//#endregion
|
|
@@ -72,6 +114,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
72
114
|
}]
|
|
73
115
|
}] });
|
|
74
116
|
|
|
117
|
+
/**
|
|
118
|
+
* `InjectionToken` used to import `BreadcrumbTheme` value
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* ```
|
|
122
|
+
* var theme = inject(FLOWBITE_BREADCRUMB_THEME_TOKEN)
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
75
125
|
const FLOWBITE_BREADCRUMB_THEME_TOKEN = new InjectionToken('FLOWBITE_BREADCRUMB_THEME_TOKEN');
|
|
76
126
|
class BreadcrumbThemeService {
|
|
77
127
|
constructor() {
|
|
@@ -84,7 +134,15 @@ class BreadcrumbThemeService {
|
|
|
84
134
|
};
|
|
85
135
|
return output;
|
|
86
136
|
}
|
|
137
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BreadcrumbThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
138
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BreadcrumbThemeService, providedIn: 'root' }); }
|
|
87
139
|
}
|
|
140
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: BreadcrumbThemeService, decorators: [{
|
|
141
|
+
type: Injectable,
|
|
142
|
+
args: [{
|
|
143
|
+
providedIn: 'root',
|
|
144
|
+
}]
|
|
145
|
+
}] });
|
|
88
146
|
|
|
89
147
|
/**
|
|
90
148
|
* @see https://flowbite.com/docs/components/breadcrumb/
|
|
@@ -92,10 +150,24 @@ class BreadcrumbThemeService {
|
|
|
92
150
|
class BreadcrumbComponent extends BaseComponent {
|
|
93
151
|
constructor() {
|
|
94
152
|
super(...arguments);
|
|
153
|
+
/**
|
|
154
|
+
* Service injected used to generate class
|
|
155
|
+
*/
|
|
95
156
|
this.themeService = inject(BreadcrumbThemeService);
|
|
157
|
+
/**
|
|
158
|
+
* List of `BreadcrumbItemComponent`
|
|
159
|
+
*/
|
|
96
160
|
this.breadcrumbItemChildren = contentChildren(BreadcrumbItemComponent);
|
|
97
161
|
//#region properties
|
|
162
|
+
/**
|
|
163
|
+
* Set the breacrumb color
|
|
164
|
+
*
|
|
165
|
+
* @default primary
|
|
166
|
+
*/
|
|
98
167
|
this.color = model('primary');
|
|
168
|
+
/**
|
|
169
|
+
* Set the custom style for this breadcrumb
|
|
170
|
+
*/
|
|
99
171
|
this.customStyle = model({});
|
|
100
172
|
}
|
|
101
173
|
//#endregion
|
|
@@ -128,12 +200,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
128
200
|
}]
|
|
129
201
|
}] });
|
|
130
202
|
|
|
203
|
+
/**
|
|
204
|
+
* Default theme for `BreadcrumbComponent`
|
|
205
|
+
*/
|
|
131
206
|
const breadcrumbTheme = createTheme({
|
|
132
207
|
root: {
|
|
133
208
|
base: 'flex items-center',
|
|
134
209
|
},
|
|
135
210
|
});
|
|
136
211
|
|
|
212
|
+
/**
|
|
213
|
+
* Default theme for `BreadcrumbItemComponent`
|
|
214
|
+
*/
|
|
137
215
|
const breadcrumbItemTheme = createTheme({
|
|
138
216
|
root: {
|
|
139
217
|
base: 'group flex items-center text-sm font-medium cursor-pointer',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowbite-angular-breadcrumb.mjs","sources":["../../../../libs/flowbite-angular/breadcrumb/breadcrumb-item.theme.service.ts","../../../../libs/flowbite-angular/breadcrumb/breadcrumb-item.component.ts","../../../../libs/flowbite-angular/breadcrumb/breadcrumb.theme.service.ts","../../../../libs/flowbite-angular/breadcrumb/breadcrumb.component.ts","../../../../libs/flowbite-angular/breadcrumb/breadcrumb.theme.ts","../../../../libs/flowbite-angular/breadcrumb/breadcrumb-item.theme.ts","../../../../libs/flowbite-angular/breadcrumb/flowbite-angular-breadcrumb.ts"],"sourcesContent":["import type {\n BreadcrumbItemClass,\n BreadcrumbItemProperties,\n BreadcrumbItemTheme,\n} from './breadcrumb-item.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_BREADCRUMB_ITEM_THEME_TOKEN = new InjectionToken<BreadcrumbItemTheme>(\n 'FLOWBITE_BREADCRUMB_ITEM_THEME_TOKEN'\n);\n\nexport class BreadcrumbItemThemeService implements FlowbiteThemeService<BreadcrumbItemProperties> {\n private readonly baseTheme = inject(FLOWBITE_BREADCRUMB_ITEM_THEME_TOKEN);\n\n public getClasses(properties: BreadcrumbItemProperties): BreadcrumbItemClass {\n const theme: BreadcrumbItemTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: BreadcrumbItemClass = {\n rootClass: twMerge(theme.root.base, theme.root.color[properties.color]),\n breadcrumbIconClass: twMerge(theme.icon.base),\n };\n\n return output;\n }\n}\n","import type { BreadcrumbItemClass, BreadcrumbItemTheme } from './breadcrumb-item.theme';\nimport { BreadcrumbItemThemeService } from './breadcrumb-item.theme.service';\nimport { BreadcrumbComponent } from './breadcrumb.component';\nimport type { BreadcrumbColors } from './breadcrumb.theme';\n\nimport type { DeepPartial } from 'flowbite-angular';\nimport { BaseComponent } from 'flowbite-angular';\nimport { IconComponent, IconRegistry } from 'flowbite-angular/icon';\nimport { FlowbiteRouterLinkDirective } from 'flowbite-angular/router-link';\nimport { CHEVRON_RIGHT_SVG_ICON } from 'flowbite-angular/utils';\n\nimport { NgClass, NgIf, NgTemplateOutlet } from '@angular/common';\nimport type { OnInit } from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n model,\n ViewEncapsulation,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n standalone: true,\n imports: [NgIf, NgClass, NgTemplateOutlet, IconComponent],\n selector: 'flowbite-breadcrumb-item',\n template: `\n <flowbite-icon\n [ngClass]=\"contentClasses().breadcrumbIconClass\"\n svgIcon=\"flowbite-angular:chevron-right\" />\n <ng-content />\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BreadcrumbItemComponent extends BaseComponent<BreadcrumbItemClass> implements OnInit {\n public readonly themeService = inject(BreadcrumbItemThemeService);\n public readonly breadcrumbComponent = inject(BreadcrumbComponent);\n public readonly flowbiteRouterLink = inject(FlowbiteRouterLinkDirective, { optional: true });\n public readonly iconRegistry = inject(IconRegistry);\n public readonly domSanitizer = inject(DomSanitizer);\n\n //#region properties\n public color = model<keyof BreadcrumbColors>(this.breadcrumbComponent.color());\n public customStyle = model<DeepPartial<BreadcrumbItemTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): BreadcrumbItemClass {\n return this.themeService.getClasses({\n color: this.color(),\n link: this.flowbiteRouterLink?.routerLink.urlTree ?? null,\n customStyle: this.customStyle(),\n });\n }\n\n public override init(): void {\n this.iconRegistry.addRawSvgIconInNamepsace(\n 'flowbite-angular',\n 'chevron-right',\n this.domSanitizer.bypassSecurityTrustHtml(CHEVRON_RIGHT_SVG_ICON)\n );\n }\n //#endregion\n}\n","import type { BreadcrumbClass, BreadcrumbProperties, BreadcrumbTheme } from './breadcrumb.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_BREADCRUMB_THEME_TOKEN = new InjectionToken<BreadcrumbTheme>(\n 'FLOWBITE_BREADCRUMB_THEME_TOKEN'\n);\n\nexport class BreadcrumbThemeService implements FlowbiteThemeService<BreadcrumbProperties> {\n private readonly baseTheme = inject(FLOWBITE_BREADCRUMB_THEME_TOKEN);\n\n public getClasses(properties: BreadcrumbProperties): BreadcrumbClass {\n const theme: BreadcrumbTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: BreadcrumbClass = {\n rootClass: twMerge(theme.root.base),\n };\n\n return output;\n }\n}\n","import { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport type { BreadcrumbClass, BreadcrumbColors, BreadcrumbTheme } from './breadcrumb.theme';\nimport { BreadcrumbThemeService } from './breadcrumb.theme.service';\n\nimport type { DeepPartial } from 'flowbite-angular';\nimport { BaseComponent } from 'flowbite-angular';\n\nimport { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n inject,\n model,\n ViewEncapsulation,\n} from '@angular/core';\n\n/**\n * @see https://flowbite.com/docs/components/breadcrumb/\n */\n@Component({\n standalone: true,\n imports: [NgClass],\n selector: 'flowbite-breadcrumb',\n template: `<ng-content />`,\n host: {\n '[attr.aria-label]': 'breadcrumb',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BreadcrumbComponent extends BaseComponent<BreadcrumbClass> {\n public readonly themeService = inject(BreadcrumbThemeService);\n public readonly breadcrumbItemChildren = contentChildren(BreadcrumbItemComponent);\n\n //#region properties\n public color = model<keyof BreadcrumbColors>('primary');\n public customStyle = model<DeepPartial<BreadcrumbTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): BreadcrumbClass {\n return this.themeService.getClasses({\n customStyle: this.customStyle(),\n });\n }\n\n public override verify(): void {\n if (this.breadcrumbItemChildren().length === 0) {\n throw new Error('No BreadcrumbItemComponent available');\n }\n }\n //#endregion\n}\n","import type { DeepPartial, FlowbiteClass, FlowbiteColors } from 'flowbite-angular';\nimport { createTheme } from 'flowbite-angular/utils';\n\nexport interface BreadcrumbColors\n extends Pick<FlowbiteColors, 'primary' | 'dark' | 'blue' | 'red' | 'green' | 'yellow'> {\n [key: string]: string;\n}\n\nexport interface BreadcrumbProperties {\n customStyle: DeepPartial<BreadcrumbTheme>;\n}\n\nexport interface BreadcrumbTheme {\n root: {\n base: string;\n };\n}\n\nexport const breadcrumbTheme: BreadcrumbTheme = createTheme({\n root: {\n base: 'flex items-center',\n },\n});\n\nexport type BreadcrumbClass = FlowbiteClass;\n","import type { BreadcrumbColors } from './breadcrumb.theme';\n\nimport type { DeepPartial, FlowbiteClass } from 'flowbite-angular';\nimport { createTheme } from 'flowbite-angular/utils';\n\nimport type { UrlTree } from '@angular/router';\n\nexport interface BreadcrumbItemProperties {\n color: keyof BreadcrumbColors;\n link: UrlTree | null;\n customStyle: DeepPartial<BreadcrumbItemTheme>;\n}\n\nexport interface BreadcrumbItemTheme {\n root: {\n base: string;\n color: BreadcrumbColors;\n };\n icon: {\n base: string;\n };\n}\n\nexport const breadcrumbItemTheme: BreadcrumbItemTheme = createTheme({\n root: {\n base: 'group flex items-center text-sm font-medium cursor-pointer',\n color: {\n primary:\n 'text-primary-700 dark:text-primary-400 hover:text-primary-900 dark:hover:text-primary-500',\n dark: 'text-gray-700 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white',\n blue: 'text-blue-700 dark:text-blue-400 hover:text-blue-900 dark:hover:text-blue-500',\n red: 'text-red-700 dark:text-red-400 hover:text-red-900 dark:hover:text-red-500',\n green: 'text-green-700 dark:text-green-400 hover:text-green-900 dark:hover:text-green-500',\n yellow:\n 'text-yellow-700 dark:text-yellow-400 hover:text-yellow-900 dark:hover:text-yellow-500',\n },\n },\n icon: {\n base: 'mx-1 h-6 w-6 md:mx-2 group-first:hidden',\n },\n});\n\nexport interface BreadcrumbItemClass extends FlowbiteClass {\n breadcrumbIconClass: string;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"flowbite-angular-breadcrumb.mjs","sources":["../../../../libs/flowbite-angular/breadcrumb/breadcrumb-item.theme.service.ts","../../../../libs/flowbite-angular/breadcrumb/breadcrumb-item.component.ts","../../../../libs/flowbite-angular/breadcrumb/breadcrumb.theme.service.ts","../../../../libs/flowbite-angular/breadcrumb/breadcrumb.component.ts","../../../../libs/flowbite-angular/breadcrumb/breadcrumb.theme.ts","../../../../libs/flowbite-angular/breadcrumb/breadcrumb-item.theme.ts","../../../../libs/flowbite-angular/breadcrumb/flowbite-angular-breadcrumb.ts"],"sourcesContent":["import type {\n BreadcrumbItemClass,\n BreadcrumbItemProperties,\n BreadcrumbItemTheme,\n} from './breadcrumb-item.theme';\n\nimport type { FlowbiteThemeService } from 'flowbite-angular';\nimport { mergeTheme } from 'flowbite-angular/utils';\n\nimport { inject, Injectable, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\n/**\n * `InjectionToken` used to import `BreadcrumbItemTheme` value\n *\n * @example\n * ```\n * var theme = inject(FLOWBITE_BREADCRUMB_ITEM_THEME_TOKEN)\n * ```\n */\nexport const FLOWBITE_BREADCRUMB_ITEM_THEME_TOKEN = new InjectionToken<BreadcrumbItemTheme>(\n 'FLOWBITE_BREADCRUMB_ITEM_THEME_TOKEN'\n);\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BreadcrumbItemThemeService implements FlowbiteThemeService<BreadcrumbItemProperties> {\n private readonly baseTheme = inject(FLOWBITE_BREADCRUMB_ITEM_THEME_TOKEN);\n\n public getClasses(properties: BreadcrumbItemProperties): BreadcrumbItemClass {\n const theme: BreadcrumbItemTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: BreadcrumbItemClass = {\n rootClass: twMerge(theme.root.base, theme.root.color[properties.color]),\n breadcrumbIconClass: twMerge(theme.icon.base),\n };\n\n return output;\n }\n}\n","import type { BreadcrumbItemClass, BreadcrumbItemTheme } from './breadcrumb-item.theme';\nimport { BreadcrumbItemThemeService } from './breadcrumb-item.theme.service';\nimport { BreadcrumbComponent } from './breadcrumb.component';\nimport type { BreadcrumbColors } from './breadcrumb.theme';\n\nimport type { DeepPartial } from 'flowbite-angular';\nimport { BaseComponent } from 'flowbite-angular';\nimport { IconComponent, IconRegistry } from 'flowbite-angular/icon';\nimport { FlowbiteRouterLinkDirective } from 'flowbite-angular/router-link';\nimport { CHEVRON_RIGHT_SVG_ICON } from 'flowbite-angular/utils';\n\nimport { NgClass, NgIf, NgTemplateOutlet } from '@angular/common';\nimport type { OnInit } from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n model,\n ViewEncapsulation,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n/**\n * @see https://flowbite.com/docs/components/breadcrumb/\n */\n@Component({\n standalone: true,\n imports: [NgIf, NgClass, NgTemplateOutlet, IconComponent],\n selector: 'flowbite-breadcrumb-item',\n template: `\n <flowbite-icon\n [ngClass]=\"contentClasses().breadcrumbIconClass\"\n svgIcon=\"flowbite-angular:chevron-right\" />\n <ng-content />\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BreadcrumbItemComponent extends BaseComponent<BreadcrumbItemClass> implements OnInit {\n /**\n * Service injected used to generate class\n */\n public readonly themeService = inject(BreadcrumbItemThemeService);\n /**\n * The parent `BreadcrumbComponent`\n */\n public readonly breadcrumbComponent = inject(BreadcrumbComponent);\n /**\n * Optional `FlowbiteRouterLinkDirective` injected\n */\n public readonly flowbiteRouterLink = inject(FlowbiteRouterLinkDirective, { optional: true });\n /**\n * `IconRegistry` service\n */\n public readonly iconRegistry = inject(IconRegistry);\n /**\n * `DomSanitizer` service\n */\n public readonly domSanitizer = inject(DomSanitizer);\n\n //#region properties\n /**\n * Set the breadcrumb item color\n *\n * @default `BreadcrumbComponent`'s color\n */\n public color = model<keyof BreadcrumbColors>(this.breadcrumbComponent.color());\n /**\n * Set the custom style for this breadcrumb item\n */\n public customStyle = model<DeepPartial<BreadcrumbItemTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): BreadcrumbItemClass {\n return this.themeService.getClasses({\n color: this.color(),\n link: this.flowbiteRouterLink?.routerLink.urlTree ?? null,\n customStyle: this.customStyle(),\n });\n }\n\n public override init(): void {\n this.iconRegistry.addRawSvgIconInNamepsace(\n 'flowbite-angular',\n 'chevron-right',\n this.domSanitizer.bypassSecurityTrustHtml(CHEVRON_RIGHT_SVG_ICON)\n );\n }\n //#endregion\n}\n","import type { BreadcrumbClass, BreadcrumbProperties, BreadcrumbTheme } from './breadcrumb.theme';\n\nimport type { FlowbiteThemeService } from 'flowbite-angular';\nimport { mergeTheme } from 'flowbite-angular/utils';\n\nimport { inject, Injectable, InjectionToken } from '@angular/core';\nimport { twMerge } from 'tailwind-merge';\n\n/**\n * `InjectionToken` used to import `BreadcrumbTheme` value\n *\n * @example\n * ```\n * var theme = inject(FLOWBITE_BREADCRUMB_THEME_TOKEN)\n * ```\n */\nexport const FLOWBITE_BREADCRUMB_THEME_TOKEN = new InjectionToken<BreadcrumbTheme>(\n 'FLOWBITE_BREADCRUMB_THEME_TOKEN'\n);\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BreadcrumbThemeService implements FlowbiteThemeService<BreadcrumbProperties> {\n private readonly baseTheme = inject(FLOWBITE_BREADCRUMB_THEME_TOKEN);\n\n public getClasses(properties: BreadcrumbProperties): BreadcrumbClass {\n const theme: BreadcrumbTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: BreadcrumbClass = {\n rootClass: twMerge(theme.root.base),\n };\n\n return output;\n }\n}\n","import { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport type { BreadcrumbClass, BreadcrumbColors, BreadcrumbTheme } from './breadcrumb.theme';\nimport { BreadcrumbThemeService } from './breadcrumb.theme.service';\n\nimport type { DeepPartial } from 'flowbite-angular';\nimport { BaseComponent } from 'flowbite-angular';\n\nimport { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n inject,\n model,\n ViewEncapsulation,\n} from '@angular/core';\n\n/**\n * @see https://flowbite.com/docs/components/breadcrumb/\n */\n@Component({\n standalone: true,\n imports: [NgClass],\n selector: 'flowbite-breadcrumb',\n template: `<ng-content />`,\n host: {\n '[attr.aria-label]': 'breadcrumb',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BreadcrumbComponent extends BaseComponent<BreadcrumbClass> {\n /**\n * Service injected used to generate class\n */\n public readonly themeService = inject(BreadcrumbThemeService);\n /**\n * List of `BreadcrumbItemComponent`\n */\n public readonly breadcrumbItemChildren = contentChildren(BreadcrumbItemComponent);\n\n //#region properties\n /**\n * Set the breacrumb color\n *\n * @default primary\n */\n public color = model<keyof BreadcrumbColors>('primary');\n /**\n * Set the custom style for this breadcrumb\n */\n public customStyle = model<DeepPartial<BreadcrumbTheme>>({});\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): BreadcrumbClass {\n return this.themeService.getClasses({\n customStyle: this.customStyle(),\n });\n }\n\n public override verify(): void {\n if (this.breadcrumbItemChildren().length === 0) {\n throw new Error('No BreadcrumbItemComponent available');\n }\n }\n //#endregion\n}\n","import type { DeepPartial, FlowbiteClass, FlowbiteColors } from 'flowbite-angular';\nimport { createTheme } from 'flowbite-angular/utils';\n\n//#region Component theme option\n/**\n * Available colors for `BreadcrumbComponent`\n */\nexport interface BreadcrumbColors\n extends Pick<FlowbiteColors, 'primary' | 'dark' | 'blue' | 'red' | 'green' | 'yellow'> {\n [key: string]: string;\n}\n//#endregion\n\n/**\n * Required properties for the class generation of `BreadcrumbComponent`\n */\nexport interface BreadcrumbProperties {\n customStyle: DeepPartial<BreadcrumbTheme>;\n}\n\n/**\n * Theme definition for `BreadcrumbComponent`\n */\nexport interface BreadcrumbTheme {\n root: {\n base: string;\n };\n}\n\n/**\n * Default theme for `BreadcrumbComponent`\n */\nexport const breadcrumbTheme: BreadcrumbTheme = createTheme({\n root: {\n base: 'flex items-center',\n },\n});\n\n/**\n * Generated class definition for `BreadcrumbComponent`\n */\nexport type BreadcrumbClass = FlowbiteClass;\n","import type { BreadcrumbColors } from './breadcrumb.theme';\n\nimport type { DeepPartial, FlowbiteClass } from 'flowbite-angular';\nimport { createTheme } from 'flowbite-angular/utils';\n\nimport type { UrlTree } from '@angular/router';\n\n/**\n * Required properties for the class generation of `BreadcrumbItemComponent`\n */\nexport interface BreadcrumbItemProperties {\n color: keyof BreadcrumbColors;\n link: UrlTree | null;\n customStyle: DeepPartial<BreadcrumbItemTheme>;\n}\n\n/**\n * Theme definition for `BreadcrumbItemComponent`\n */\nexport interface BreadcrumbItemTheme {\n root: {\n base: string;\n color: BreadcrumbColors;\n };\n icon: {\n base: string;\n };\n}\n\n/**\n * Default theme for `BreadcrumbItemComponent`\n */\nexport const breadcrumbItemTheme: BreadcrumbItemTheme = createTheme({\n root: {\n base: 'group flex items-center text-sm font-medium cursor-pointer',\n color: {\n primary:\n 'text-primary-700 dark:text-primary-400 hover:text-primary-900 dark:hover:text-primary-500',\n dark: 'text-gray-700 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white',\n blue: 'text-blue-700 dark:text-blue-400 hover:text-blue-900 dark:hover:text-blue-500',\n red: 'text-red-700 dark:text-red-400 hover:text-red-900 dark:hover:text-red-500',\n green: 'text-green-700 dark:text-green-400 hover:text-green-900 dark:hover:text-green-500',\n yellow:\n 'text-yellow-700 dark:text-yellow-400 hover:text-yellow-900 dark:hover:text-yellow-500',\n },\n },\n icon: {\n base: 'mx-1 h-6 w-6 md:mx-2 group-first:hidden',\n },\n});\n\n/**\n * Generated class definition for `BreadcrumbItemComponent`\n */\nexport interface BreadcrumbItemClass extends FlowbiteClass {\n breadcrumbIconClass: string;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import { mergeTheme, createTheme } from 'flowbite-angular/utils';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { InjectionToken, inject, model, Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';
|
|
3
|
+
import { InjectionToken, inject, Injectable, model, Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';
|
|
4
4
|
import { twMerge } from 'tailwind-merge';
|
|
5
5
|
import { BaseComponent, booleanToFlowbiteBoolean } from 'flowbite-angular';
|
|
6
6
|
import { NgIf, NgClass, NgTemplateOutlet } from '@angular/common';
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* `InjectionToken` used to import `ButtonTheme` value
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```
|
|
13
|
+
* var theme = inject(FLOWBITE_BUTTON_THEME_TOKEN)
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
8
16
|
const FLOWBITE_BUTTON_THEME_TOKEN = new InjectionToken('FLOWBITE_BUTTON_THEME_TOKEN');
|
|
9
17
|
class ButtonThemeService {
|
|
10
18
|
constructor() {
|
|
@@ -24,7 +32,15 @@ class ButtonThemeService {
|
|
|
24
32
|
};
|
|
25
33
|
return output;
|
|
26
34
|
}
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ButtonThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
36
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ButtonThemeService, providedIn: 'root' }); }
|
|
27
37
|
}
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ButtonThemeService, decorators: [{
|
|
39
|
+
type: Injectable,
|
|
40
|
+
args: [{
|
|
41
|
+
providedIn: 'root',
|
|
42
|
+
}]
|
|
43
|
+
}] });
|
|
28
44
|
|
|
29
45
|
/**
|
|
30
46
|
* @see https://flowbite.com/docs/components/buttons/
|
|
@@ -32,15 +48,56 @@ class ButtonThemeService {
|
|
|
32
48
|
class ButtonComponent extends BaseComponent {
|
|
33
49
|
constructor() {
|
|
34
50
|
super(...arguments);
|
|
51
|
+
/**
|
|
52
|
+
* Service injected used to generate class
|
|
53
|
+
*/
|
|
35
54
|
this.themeService = inject(ButtonThemeService);
|
|
36
55
|
//#region properties
|
|
56
|
+
/**
|
|
57
|
+
* Set the button color
|
|
58
|
+
*
|
|
59
|
+
* @default primary
|
|
60
|
+
*/
|
|
37
61
|
this.color = model('primary');
|
|
62
|
+
/**
|
|
63
|
+
* Set the button size
|
|
64
|
+
*
|
|
65
|
+
* @default md
|
|
66
|
+
*/
|
|
38
67
|
this.size = model('md');
|
|
68
|
+
/**
|
|
69
|
+
* Set if the button is pill
|
|
70
|
+
*
|
|
71
|
+
* @default false
|
|
72
|
+
*/
|
|
39
73
|
this.isPill = model(false);
|
|
74
|
+
/**
|
|
75
|
+
* Set the button fill
|
|
76
|
+
*
|
|
77
|
+
* @default solid
|
|
78
|
+
*/
|
|
40
79
|
this.fill = model('solid');
|
|
80
|
+
/**
|
|
81
|
+
* Set if the button is disabled
|
|
82
|
+
*
|
|
83
|
+
* @default false
|
|
84
|
+
*/
|
|
41
85
|
this.isDisabled = model(false);
|
|
86
|
+
/**
|
|
87
|
+
* Set the button gradient monochrome
|
|
88
|
+
*
|
|
89
|
+
* @default undefined
|
|
90
|
+
*/
|
|
42
91
|
this.gradientMonochrome = model(undefined);
|
|
92
|
+
/**
|
|
93
|
+
* Set the button gradient duotone
|
|
94
|
+
*
|
|
95
|
+
* @default undefined
|
|
96
|
+
*/
|
|
43
97
|
this.gradientDuoTone = model(undefined);
|
|
98
|
+
/**
|
|
99
|
+
* Set the custom style for this button
|
|
100
|
+
*/
|
|
44
101
|
this.customStyle = model({});
|
|
45
102
|
}
|
|
46
103
|
//#endregion
|
|
@@ -103,6 +160,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
103
160
|
}]
|
|
104
161
|
}] });
|
|
105
162
|
|
|
163
|
+
/**
|
|
164
|
+
* Default theme for `ButtonComponent`
|
|
165
|
+
*/
|
|
106
166
|
const buttonTheme = createTheme({
|
|
107
167
|
root: {
|
|
108
168
|
base: {
|