UNPKG

flowbite-angular

Version:

<div align="center"> <h1>:construction: flowbite-angular (unreleased) :construction:</h1> <p> <a href="https://flowbite.com"> <img alt="Flowbite - Tailwind CSS components" width="350" src="https://flowbite.s3.amazonaws.com/github/logo-github

1 lines 63.4 kB
{"version":3,"file":"flowbite-angular-sidebar.mjs","sources":["../../../../libs/flowbite-angular/sidebar/sidebar-item-group.theme.service.ts","../../../../libs/flowbite-angular/sidebar/sidebar-item.theme.service.ts","../../../../libs/flowbite-angular/sidebar/sidebar-item.component.ts","../../../../libs/flowbite-angular/sidebar/sidebar-item-group.component.ts","../../../../libs/flowbite-angular/sidebar/sidebar-menu.theme.service.ts","../../../../libs/flowbite-angular/sidebar/sidebar-menu.component.ts","../../../../libs/flowbite-angular/sidebar/sidebar-page-content.theme.service.ts","../../../../libs/flowbite-angular/sidebar/sidebar-page-content.component.ts","../../../../libs/flowbite-angular/sidebar/sidebar.theme.service.ts","../../../../libs/flowbite-angular/sidebar/sidebar.component.ts","../../../../libs/flowbite-angular/sidebar/sidebar.theme.ts","../../../../libs/flowbite-angular/sidebar/sidebar-item.theme.ts","../../../../libs/flowbite-angular/sidebar/sidebar-item-group.theme.ts","../../../../libs/flowbite-angular/sidebar/sidebar-toggle.theme.service.ts","../../../../libs/flowbite-angular/sidebar/sidebar-toggle.component.ts","../../../../libs/flowbite-angular/sidebar/sidebar-toggle.theme.ts","../../../../libs/flowbite-angular/sidebar/sidebar-page-content.theme.ts","../../../../libs/flowbite-angular/sidebar/sidebar-menu.theme.ts","../../../../libs/flowbite-angular/sidebar/flowbite-angular-sidebar.ts"],"sourcesContent":["import type {\n SidebarItemGroupClass,\n SidebarItemGroupProperties,\n SidebarItemGroupTheme,\n} from './sidebar-item-group.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 `SidebarItemGroupTheme` value\n *\n * @example\n * ```\n * var theme = inject(FLOWBITE_SIDEBAR_ITEM_GROUP_THEME_TOKEN)\n * ```\n */\nexport const FLOWBITE_SIDEBAR_ITEM_GROUP_THEME_TOKEN = new InjectionToken<SidebarItemGroupTheme>(\n 'FLOWBITE_SIDEBAR_ITEM_GROUP_THEME_TOKEN'\n);\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SidebarItemGroupThemeService\n implements FlowbiteThemeService<SidebarItemGroupProperties>\n{\n private readonly baseTheme = inject(FLOWBITE_SIDEBAR_ITEM_GROUP_THEME_TOKEN);\n\n public getClasses(properties: SidebarItemGroupProperties): SidebarItemGroupClass {\n const theme: SidebarItemGroupTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: SidebarItemGroupClass = {\n rootClass: twMerge(theme.root.base),\n spanClass: twMerge(theme.spanText.base, theme.spanText.color[properties.color]),\n };\n\n return output;\n }\n}\n","import type {\n SidebarItemClass,\n SidebarItemProperties,\n SidebarItemTheme,\n} from './sidebar-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 `SidebarItemTheme` value\n *\n * @example\n * ```\n * var theme = inject(FLOWBITE_SIDEBAR_ITEM_THEME_TOKEN)\n * ```\n */\nexport const FLOWBITE_SIDEBAR_ITEM_THEME_TOKEN = new InjectionToken<SidebarItemTheme>(\n 'FLOWBITE_SIDEBAR_ITEM_THEME_TOKEN'\n);\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SidebarItemThemeService implements FlowbiteThemeService<SidebarItemProperties> {\n private readonly baseTheme = inject(FLOWBITE_SIDEBAR_ITEM_THEME_TOKEN);\n\n public getClasses(properties: SidebarItemProperties): SidebarItemClass {\n const theme: SidebarItemTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: SidebarItemClass = {\n rootClass: twMerge(theme.root.base, theme.root.color[properties.color]),\n sidebarIconClass: twMerge(theme.icon.base),\n };\n\n return output;\n }\n}\n","import { SidebarItemGroupComponent } from './sidebar-item-group.component';\nimport type { SidebarItemClass, SidebarItemTheme } from './sidebar-item.theme';\nimport { SidebarItemThemeService } from './sidebar-item.theme.service';\nimport { SidebarMenuComponent } from './sidebar-menu.component';\nimport type { SidebarColors } from './sidebar.theme';\n\nimport type { DeepPartial } from 'flowbite-angular';\nimport { BaseComponent } from 'flowbite-angular';\nimport { BadgeComponent } from 'flowbite-angular/badge';\nimport { FlowbiteRouterLinkDirective } from 'flowbite-angular/router-link';\nimport { FlowbiteRouterLinkActiveDirective } from 'flowbite-angular/router-link-active';\nimport { SanitizeHtmlPipe } from 'flowbite-angular/sanitize-html';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n InjectionToken,\n makeEnvironmentProviders,\n model,\n ViewEncapsulation,\n} from '@angular/core';\n\nexport const FLOWBITE_SIDEBAR_ITEM_ICON_DEFAULT_VALUE = new InjectionToken<string | undefined>(\n 'FLOWBITE_SIDEBAR_ITEM_ICON_DEFAULT_VALUE'\n);\n\nexport const FLOWBITE_SIDEBAR_ITEM_LABEL_DEFAULT_VALUE = new InjectionToken<string | undefined>(\n 'FLOWBITE_SIDEBAR_ITEM_LABEL_DEFAULT_VALUE'\n);\n\nexport const FLOWBITE_SIDEBAR_ITEM_CUSTOM_STYLE_DEFAULT_VALUE = new InjectionToken<\n DeepPartial<SidebarItemTheme>\n>('FLOWBITE_SIDEBAR_ITEM_CUSTOM_STYLE_DEFAULT_VALUE');\n\nexport const sidebarItemDefaultValueProvider = makeEnvironmentProviders([\n {\n provide: FLOWBITE_SIDEBAR_ITEM_ICON_DEFAULT_VALUE,\n useValue: undefined,\n },\n {\n provide: FLOWBITE_SIDEBAR_ITEM_LABEL_DEFAULT_VALUE,\n useValue: undefined,\n },\n {\n provide: FLOWBITE_SIDEBAR_ITEM_CUSTOM_STYLE_DEFAULT_VALUE,\n useValue: {},\n },\n]);\n\n/**\n * @see https://flowbite.com/docs/components/sidebar/\n */\n@Component({\n standalone: true,\n imports: [SanitizeHtmlPipe, BadgeComponent],\n selector: 'flowbite-sidebar-item',\n template: `\n @if (icon()) {\n <span\n class=\"flex-shrink-0\"\n [innerHTML]=\"icon()! | sanitizeHtml\"></span>\n }\n\n <span\n [class]=\"contentClasses().sidebarIconClass\"\n [class.ml-3]=\"icon()\">\n <ng-content />\n </span>\n @if (label()) {\n <flowbite-badge>{{ label() }}</flowbite-badge>\n }\n `,\n host: {\n '(click)': 'onClick()',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SidebarItemComponent extends BaseComponent<SidebarItemClass> {\n /**\n * Optional `FlowbiteRouterLinkDirective` injected\n */\n public readonly flowbiteRouterLink = inject(FlowbiteRouterLinkDirective, { optional: true });\n /**\n * Optional `FlowbiteRouterLinkActiveDirective` injected\n */\n public readonly flowbiteRouterLinkActive = inject(FlowbiteRouterLinkActiveDirective, {\n optional: true,\n });\n /**\n * Service injected used to generate class\n */\n public readonly themeService = inject(SidebarItemThemeService);\n /**\n * The optional parent `SidebarItemGroupComponent`\n */\n public readonly sidebarItemGroupComponent = inject(SidebarItemGroupComponent, { optional: true });\n /**\n * The optional parent `SidebarMenuComponent`\n */\n public readonly sidebarMenuComponent = inject(SidebarMenuComponent, { optional: true });\n\n //#region properties\n /**\n * Set the sidebar item icon\n *\n * @default undefined\n */\n public icon = model(inject(FLOWBITE_SIDEBAR_ITEM_ICON_DEFAULT_VALUE));\n /**\n * Set the sidebar item color\n *\n * @default `SidebarItemGroupComponent`'s color\n * @default `SidebarMenuComponent`'s color\n */\n public color = model<keyof SidebarColors>(\n (this.sidebarItemGroupComponent ?? this.sidebarMenuComponent)!.color()\n );\n /**\n * Set the sidebar item label\n *\n * @default undefined\n */\n public label = model(inject(FLOWBITE_SIDEBAR_ITEM_LABEL_DEFAULT_VALUE));\n /**\n * Set the custom style for this sidebar item\n */\n public customStyle = model(inject(FLOWBITE_SIDEBAR_ITEM_CUSTOM_STYLE_DEFAULT_VALUE));\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): SidebarItemClass {\n return this.themeService.getClasses({\n icon: this.icon(),\n color: this.color(),\n label: this.label(),\n customStyle: this.customStyle(),\n });\n }\n //#endregion\n\n /**\n * Toggle sidebar menu visibility\n */\n onClick(): void {\n (this.sidebarMenuComponent || this.sidebarItemGroupComponent?.sidebarMenuComponent)?.closeAll();\n (\n this.sidebarMenuComponent || this.sidebarItemGroupComponent?.sidebarMenuComponent\n )?.sidebarComponent.toggleVisibility(false);\n }\n}\n","import type { SidebarItemGroupClass, SidebarItemGroupTheme } from './sidebar-item-group.theme';\nimport { SidebarItemGroupThemeService } from './sidebar-item-group.theme.service';\nimport { SidebarItemComponent } from './sidebar-item.component';\nimport { SidebarMenuComponent } from './sidebar-menu.component';\nimport type { SidebarColors } from './sidebar.theme';\n\nimport type { DeepPartial } from 'flowbite-angular';\nimport { BaseComponent } from 'flowbite-angular';\nimport { IconComponent, IconRegistry } from 'flowbite-angular/icon';\nimport { CHEVRON_DOWN_SVG_ICON } from 'flowbite-angular/utils';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n inject,\n InjectionToken,\n makeEnvironmentProviders,\n model,\n untracked,\n ViewEncapsulation,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nexport const FLOWBITE_SIDEBAR_ITEM_GROUP_CUSTOM_STYLE_DEFAULT_VALUE = new InjectionToken<\n DeepPartial<SidebarItemGroupTheme>\n>('FLOWBITE_SIDEBAR_ITEM_GROUP_CUSTOM_STYLE_DEFAULT_VALUE');\n\nexport const sidebarItemGroupDefaultValueProvider = makeEnvironmentProviders([\n {\n provide: FLOWBITE_SIDEBAR_ITEM_GROUP_CUSTOM_STYLE_DEFAULT_VALUE,\n useValue: {},\n },\n]);\n\n/**\n * @see https://flowbite.com/docs/components/sidebar/\n */\n@Component({\n standalone: true,\n imports: [IconComponent],\n selector: 'flowbite-sidebar-item-group',\n template: `\n <span\n [class]=\"contentClasses().spanClass\"\n (click)=\"toggleVisibility()\">\n <h4>{{ title() }}</h4>\n <flowbite-icon\n svgIcon=\"flowbite-angular:chevron-down\"\n class=\"h-6 w-6 shrink-0 duration-200\"\n [class.rotate-180]=\"!isOpen()\" />\n </span>\n @if (isOpen()) {\n <ng-content />\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SidebarItemGroupComponent extends BaseComponent<SidebarItemGroupClass> {\n /**\n * Service injecteed used to generate class\n */\n public readonly themeService = inject(SidebarItemGroupThemeService);\n /**\n * `IconRegistry` service\n */\n public readonly iconRegistry = inject(IconRegistry);\n /**\n * `DomSanitizer` service\n */\n public readonly domSanitizer = inject(DomSanitizer);\n /**\n * The parent `SidebarMenuComponent`\n */\n public readonly sidebarMenuComponent = inject(SidebarMenuComponent);\n /**\n * List of `SidebarItemComponent`\n */\n public readonly sidebarItemChildren = contentChildren(SidebarItemComponent);\n\n //#region properties\n /**\n * Set if the sidebar item group is open\n *\n * @default One of children is active\n * @default false\n */\n public isOpen = model<boolean>(\n this.sidebarItemChildren().some((x) => x.flowbiteRouterLinkActive?.isActive() ?? false)\n );\n /**\n * Set the sidebar item group color\n *\n * @default `SidebarMenuComponent`'s color\n */\n public color = model<keyof SidebarColors>(this.sidebarMenuComponent.color());\n /**\n * Set the sidebar item group title\n */\n public title = model.required<string>();\n /**\n * Set the custom style for this sidebar item group\n */\n public customStyle = model(inject(FLOWBITE_SIDEBAR_ITEM_GROUP_CUSTOM_STYLE_DEFAULT_VALUE));\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): SidebarItemGroupClass {\n return this.themeService.getClasses({\n color: this.color(),\n customStyle: this.customStyle(),\n });\n }\n\n public override init(): void {\n this.iconRegistry.addRawSvgIconInNamepsace(\n 'flowbite-angular',\n 'chevron-down',\n this.domSanitizer.bypassSecurityTrustHtml(CHEVRON_DOWN_SVG_ICON)\n );\n }\n //#endregion\n\n /**\n * Toggle isOpen value\n *\n * @param isOpen If provided force isOpen value\n */\n public toggleVisibility(isOpen?: boolean): void {\n if (isOpen === undefined) {\n isOpen = untracked(() => !this.isOpen());\n }\n\n this.isOpen.set(isOpen);\n }\n}\n","import type {\n SidebarMenuClass,\n SidebarMenuProperties,\n SidebarMenuTheme,\n} from './sidebar-menu.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 `SidebarMenuTheme` value\n *\n * @example\n * ```\n * var theme = inject(FLOWBITE_SIDEBAR_MENU_THEME_TOKEN)\n * ```\n */\nexport const FLOWBITE_SIDEBAR_MENU_THEME_TOKEN = new InjectionToken<SidebarMenuTheme>(\n 'FLOWBITE_SIDEBAR_MENU_THEME_TOKEN'\n);\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SidebarMenuThemeService implements FlowbiteThemeService<SidebarMenuProperties> {\n private readonly baseTheme = inject(FLOWBITE_SIDEBAR_MENU_THEME_TOKEN);\n\n public getClasses(properties: SidebarMenuProperties): SidebarMenuClass {\n const theme: SidebarMenuTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: SidebarMenuClass = {\n rootClass: twMerge(\n theme.root.base,\n theme.root.isOpen[properties.isOpen],\n properties.isOpen === 'enabled' && theme.root.displayMode[properties.displayMode],\n theme.root.color[properties.color]\n ),\n };\n\n return output;\n }\n}\n","import { SidebarItemGroupComponent } from './sidebar-item-group.component';\nimport { SidebarItemComponent } from './sidebar-item.component';\nimport type { SidebarMenuClass, SidebarMenuTheme } from './sidebar-menu.theme';\nimport { SidebarMenuThemeService } from './sidebar-menu.theme.service';\nimport { SidebarComponent } from './sidebar.component';\nimport type { SidebarColors } from './sidebar.theme';\n\nimport type { DeepPartial } from 'flowbite-angular';\nimport { BaseComponent, booleanToFlowbiteBoolean } from 'flowbite-angular';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n inject,\n InjectionToken,\n makeEnvironmentProviders,\n model,\n ViewEncapsulation,\n} from '@angular/core';\n\nexport const FLOWBITE_SIDEBAR_MENU_CUSTOM_STYLE_DEFAULT_VALUE = new InjectionToken<\n DeepPartial<SidebarMenuTheme>\n>('FLOWBITE_SIDEBAR_MENU_CUSTOM_STYLE_DEFAULT_VALUE');\n\nexport const sidebarMenuDefaultValueProvider = makeEnvironmentProviders([\n {\n provide: FLOWBITE_SIDEBAR_MENU_CUSTOM_STYLE_DEFAULT_VALUE,\n useValue: {},\n },\n]);\n\n/**\n * @see https://flowbite.com/docs/components/sidebar/\n */\n@Component({\n standalone: true,\n selector: 'flowbite-sidebar-menu',\n template: '<ng-content />',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SidebarMenuComponent extends BaseComponent<SidebarMenuClass> {\n /**\n * Service injected used to generate class\n */\n public readonly themeService = inject(SidebarMenuThemeService);\n /**\n * The parent `SidebarComponent`\n */\n public readonly sidebarComponent = inject(SidebarComponent);\n /**\n * List of `SidebarItemGroupComponent`\n */\n public readonly sidebarItemGroupChildren = contentChildren(SidebarItemGroupComponent);\n /**\n * List of `SidebarItemComponent`\n */\n public readonly sidebarItemChildren = contentChildren(SidebarItemComponent);\n\n //#region properties\n /**\n * Set the sidebar menu color\n *\n * @default `SidebarComponent`'s color\n */\n public color = model<keyof SidebarColors>(this.sidebarComponent.color());\n /**\n * Set the custom style for this sidebar menu\n */\n public customStyle = model(inject(FLOWBITE_SIDEBAR_MENU_CUSTOM_STYLE_DEFAULT_VALUE));\n //#endregion\n\n public override fetchClass(): SidebarMenuClass {\n return this.themeService.getClasses({\n isOpen: booleanToFlowbiteBoolean(this.sidebarComponent.isOpen()),\n color: this.color(),\n displayMode: this.sidebarComponent.displayMode(),\n customStyle: this.customStyle(),\n });\n }\n\n /**\n * Toggle visibility of ll children to false\n */\n public closeAll(): void {\n this.sidebarItemGroupChildren().forEach((x) => x.toggleVisibility(false));\n }\n}\n","import type {\n SidebarPageContentClass,\n SidebarPageContentProperties,\n SidebarPageContentTheme,\n} from './sidebar-page-content.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 `SidebarPageContentTheme` value\n *\n * @example\n * ```\n * var theme = inject(FLOWBITE_SIDEBAR_PAGE_CONTENT_THEME_TOKEN)\n * ```\n */\nexport const FLOWBITE_SIDEBAR_PAGE_CONTENT_THEME_TOKEN =\n new InjectionToken<SidebarPageContentTheme>('FLOWBITE_SIDEBAR_PAGE_CONTENT_THEME_TOKEN');\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SidebarPageContentThemeService\n implements FlowbiteThemeService<SidebarPageContentProperties>\n{\n private readonly baseTheme = inject(FLOWBITE_SIDEBAR_PAGE_CONTENT_THEME_TOKEN);\n\n public getClasses(properties: SidebarPageContentProperties): SidebarPageContentClass {\n const theme: SidebarPageContentTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: SidebarPageContentClass = {\n rootClass: twMerge(\n theme.root.base,\n properties.isOpen === 'enabled' && theme.root.displayMode[properties.displayMode]\n ),\n };\n\n return output;\n }\n}\n","import type {\n SidebarPageContentClass,\n SidebarPageContentTheme,\n} from './sidebar-page-content.theme';\nimport { SidebarPageContentThemeService } from './sidebar-page-content.theme.service';\nimport { SidebarComponent } from './sidebar.component';\n\nimport type { DeepPartial } from 'flowbite-angular';\nimport { BaseComponent, booleanToFlowbiteBoolean } from 'flowbite-angular';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n InjectionToken,\n makeEnvironmentProviders,\n model,\n ViewEncapsulation,\n} from '@angular/core';\n\nexport const FLOWBITE_SIDEBAR_PAGE_CONTENT_CUSTOM_STYLE_DEFAULT_VALUE = new InjectionToken<\n DeepPartial<SidebarPageContentTheme>\n>('FLOWBITE_SIDEBAR_PAGE_CONTENT_CUSTOM_STYLE_DEFAULT_VALUE');\n\nexport const sidebarPageContentDefaultValueProvider = makeEnvironmentProviders([\n {\n provide: FLOWBITE_SIDEBAR_PAGE_CONTENT_CUSTOM_STYLE_DEFAULT_VALUE,\n useValue: {},\n },\n]);\n\n/**\n * @see https://flowbite.com/docs/components/sidebar/\n */\n@Component({\n standalone: true,\n selector: 'flowbite-sidebar-page-content',\n template: `<ng-content />`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SidebarPageContentComponent extends BaseComponent<SidebarPageContentClass> {\n /**\n * Service injected used to generate class\n */\n public readonly themeService = inject(SidebarPageContentThemeService);\n /**\n * The parent `SidebarComponent`\n */\n public readonly sidebarComponent = inject(SidebarComponent);\n\n //#region properties\n /**\n * Set the custom style for this sidebar page content\n */\n public customStyle = model(inject(FLOWBITE_SIDEBAR_PAGE_CONTENT_CUSTOM_STYLE_DEFAULT_VALUE));\n //endregion\n\n //region BaseComponent implementation\n public override fetchClass(): SidebarPageContentClass {\n return this.themeService.getClasses({\n isOpen: booleanToFlowbiteBoolean(this.sidebarComponent.isOpen()),\n displayMode: this.sidebarComponent.displayMode(),\n customStyle: this.customStyle(),\n });\n }\n //endregion\n}\n","import type { SidebarClass, SidebarProperties, SidebarTheme } from './sidebar.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 `SidebarTheme` value\n *\n * @example\n * ```\n * var theme = inject(FLOWBITE_SIDEBAR_THEME_TOKEN)\n * ```\n */\nexport const FLOWBITE_SIDEBAR_THEME_TOKEN = new InjectionToken<SidebarTheme>(\n 'FLOWBITE_SIDEBAR_THEME_TOKEN'\n);\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SidebarThemeService implements FlowbiteThemeService<SidebarProperties> {\n private readonly baseTheme = inject(FLOWBITE_SIDEBAR_THEME_TOKEN);\n\n public getClasses(properties: SidebarProperties): SidebarClass {\n const theme: SidebarTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: SidebarClass = {\n rootClass: twMerge(theme.root.base, theme.root.isRounded[properties.isRounded]),\n };\n\n return output;\n }\n}\n","import { SidebarMenuComponent } from './sidebar-menu.component';\nimport { SidebarPageContentComponent } from './sidebar-page-content.component';\nimport type {\n SidebarClass,\n SidebarColors,\n SidebarDisplayMode,\n SidebarTheme,\n} from './sidebar.theme';\nimport { SidebarThemeService } from './sidebar.theme.service';\n\nimport type { DeepPartial } from 'flowbite-angular';\nimport { BaseComponent, booleanToFlowbiteBoolean } from 'flowbite-angular';\n\nimport type { OnInit } from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n contentChild,\n inject,\n InjectionToken,\n makeEnvironmentProviders,\n model,\n untracked,\n ViewEncapsulation,\n} from '@angular/core';\n\nexport const FLOWBITE_SIDEBAR_COLOR_DEFAULT_VALUE = new InjectionToken<keyof SidebarColors>(\n 'FLOWBITE_SIDEBAR_COLOR_DEFAULT_VALUE'\n);\n\nexport const FLOWBITE_SIDEBAR_DISPLAY_MODE_DEFAULT_VALUE = new InjectionToken<\n keyof SidebarDisplayMode\n>('FLOWBITE_SIDEBAR_DISPLAY_MODE_DEFAULT_VALUE');\n\nexport const FLOWBITE_SIDEBAR_IS_OPEN_DEFAULT_VALUE = new InjectionToken<boolean>(\n 'FLOWBITE_SIDEBAR_IS_OPEN_DEFAULT_VALUE'\n);\n\nexport const FLOWBITE_SIDEBAR_IS_ROUNDED_DEFAULT_VALUE = new InjectionToken<boolean>(\n 'FLOWBITE_SIDEBAR_IS_ROUNDED_DEFAULT_VALUE'\n);\n\nexport const FLOWBITE_SIDEBAR_CUSTOM_STYLE_DEFAULT_VALUE = new InjectionToken<\n DeepPartial<SidebarTheme>\n>('FLOWBITE_SIDEBAR_CUSTOM_STYLE_DEFAULT_VALUE');\n\nexport const sidebarDefaultValueProvider = makeEnvironmentProviders([\n {\n provide: FLOWBITE_SIDEBAR_COLOR_DEFAULT_VALUE,\n useValue: 'primary',\n },\n {\n provide: FLOWBITE_SIDEBAR_DISPLAY_MODE_DEFAULT_VALUE,\n useValue: 'push',\n },\n {\n provide: FLOWBITE_SIDEBAR_IS_OPEN_DEFAULT_VALUE,\n useValue: false,\n },\n {\n provide: FLOWBITE_SIDEBAR_IS_ROUNDED_DEFAULT_VALUE,\n useValue: false,\n },\n {\n provide: FLOWBITE_SIDEBAR_CUSTOM_STYLE_DEFAULT_VALUE,\n useValue: {},\n },\n]);\n\n/**\n * @see https://flowbite.com/docs/components/sidebar/\n */\n@Component({\n standalone: true,\n selector: 'flowbite-sidebar',\n template: `<ng-content />`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SidebarComponent extends BaseComponent<SidebarClass> implements OnInit {\n /**\n * Service injected used to generate class\n */\n public readonly themeService = inject(SidebarThemeService);\n /**\n * The child `SidebarMenuComponent`\n */\n public readonly sidebarMenuChild = contentChild.required(SidebarMenuComponent);\n /**\n * The child `SidebarPageContentComponent`\n */\n public readonly sidebarPageContentChild = contentChild.required(SidebarPageContentComponent);\n\n //#region properties\n /**\n * Set the sidebar color\n *\n * @default primary\n */\n public color = model(inject(FLOWBITE_SIDEBAR_COLOR_DEFAULT_VALUE));\n /**\n * Set the sidebar display mode\n *\n * @default push\n */\n public displayMode = model(inject(FLOWBITE_SIDEBAR_DISPLAY_MODE_DEFAULT_VALUE));\n /**\n * Set is the sidebar is open\n *\n * @default false\n */\n public isOpen = model(inject(FLOWBITE_SIDEBAR_IS_OPEN_DEFAULT_VALUE));\n /**\n * Set is the sidebar is rounded\n *\n * @default false\n */\n public isRounded = model(inject(FLOWBITE_SIDEBAR_IS_ROUNDED_DEFAULT_VALUE));\n /**\n * Set the custom style for this sidebar\n */\n public customStyle = model(inject(FLOWBITE_SIDEBAR_CUSTOM_STYLE_DEFAULT_VALUE));\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): SidebarClass {\n return this.themeService.getClasses({\n displayMode: this.displayMode(),\n isRounded: booleanToFlowbiteBoolean(this.isRounded()),\n customStyle: this.customStyle(),\n });\n }\n //#endregion\n\n /**\n * Toggle sidebar visibility\n *\n * @param isOpen If provided force isOpen value\n */\n public toggleVisibility(isOpen?: boolean): void {\n if (isOpen === undefined) {\n isOpen = untracked(() => !this.isOpen());\n }\n\n this.isOpen.set(isOpen);\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 interface SidebarColors\n extends Pick<FlowbiteColors, 'primary' | 'dark' | 'blue' | 'red' | 'green' | 'yellow'> {\n [key: string]: string;\n}\n\nexport interface SidebarDisplayMode {\n push: string;\n over: string;\n backdrop: string;\n}\n//endregion\n\nexport interface SidebarProperties {\n displayMode: keyof SidebarDisplayMode;\n isRounded: keyof FlowbiteBoolean;\n customStyle: DeepPartial<SidebarTheme>;\n}\n\nexport interface SidebarTheme {\n root: {\n base: string;\n isRounded: FlowbiteBoolean;\n };\n}\n\nexport const sidebarTheme: SidebarTheme = createTheme({\n root: {\n base: 'flex flex-row min-h-full',\n isRounded: {\n enabled: 'rounded',\n disabled: '',\n },\n },\n});\n\nexport type SidebarClass = FlowbiteClass;\n","import type { SidebarColors } from './sidebar.theme';\n\nimport type { DeepPartial, FlowbiteClass } from 'flowbite-angular';\nimport { createTheme } from 'flowbite-angular/utils';\n\n/**\n * Required properties for the class generation of `SidebarItemComponent`\n */\nexport interface SidebarItemProperties {\n icon: string | undefined;\n color: keyof SidebarColors;\n label: string | undefined;\n customStyle: DeepPartial<SidebarItemTheme>;\n}\n\n/**\n * Theme definition for `SidebarItemComponent`\n */\nexport interface SidebarItemTheme {\n root: {\n base: string;\n color: SidebarColors;\n };\n icon: {\n base: string;\n };\n}\n\n/**\n * Default theme for `SidebarItemComponent`\n */\nexport const sidebarItemTheme: SidebarItemTheme = createTheme({\n root: {\n base: 'group flex cursor-pointer items-center rounded-lg p-2 text-base font-normal text-gray-900 dark:text-white',\n color: {\n primary:\n 'aria-current:text-primary-500 dark:aria-current:text-primary-300 hover:bg-primary-200/35 dark:hover:bg-primary-700/35',\n dark: 'aria-current:text-gray-500 dark:aria-current:text-gray-300 hover:bg-gray-200/35 dark:hover:bg-gray-700/35',\n blue: 'aria-current:text-blue-500 dark:aria-current:text-blue-300 hover:bg-blue-200/35 dark:hover:bg-blue-700/35',\n red: 'aria-current:text-red-500 dark:aria-current:text-red-300 hover:bg-red-200/35 dark:hover:bg-red-700/35',\n green:\n 'aria-current:text-green-500 dark:aria-current:text-green-300 hover:bg-green-200/35 dark:hover:bg-green-700/35',\n yellow:\n 'aria-current:text-yellow-500 dark:aria-current:text-yellow-300 hover:bg-yellow-200/35 dark:hover:bg-yellow-700/35',\n },\n },\n icon: {\n base: 'flex-1 whitespace-nowrap',\n },\n});\n\n/**\n * Generated class definition for `SidebarItemComponent`\n */\nexport interface SidebarItemClass extends FlowbiteClass {\n sidebarIconClass: string;\n}\n","import type { SidebarColors } from './sidebar.theme';\n\nimport type { DeepPartial, FlowbiteClass } from 'flowbite-angular';\nimport { createTheme } from 'flowbite-angular/utils';\n\n/**\n * Required properties for the class generation of `SidebarItemGroupComponent`\n */\nexport interface SidebarItemGroupProperties {\n color: keyof SidebarColors;\n customStyle: DeepPartial<SidebarItemGroupTheme>;\n}\n\n/**\n * Theme definition for `SidebarItemGroupComponent`\n */\nexport interface SidebarItemGroupTheme {\n root: {\n base: string;\n };\n spanText: {\n base: string;\n color: SidebarColors;\n };\n}\n\n/**\n * Default theme for `SidebarItemGroupComponent`\n */\nexport const sidebarItemGroupTheme: SidebarItemGroupTheme = createTheme({\n root: {\n base: 'flex flex-col py-2 font-semibold cursor-pointer',\n },\n spanText: {\n base: 'flex flex-row justify-between m-2',\n color: {\n primary: 'text-primary-600',\n dark: 'text-gray-600',\n blue: 'text-blue-600',\n red: 'text-red-600',\n green: 'text-green-600',\n yellow: 'text-yellow-600',\n },\n },\n});\n\n/**\n * Generated class definition for `SidebarItemGroupComponent`\n */\nexport interface SidebarItemGroupClass extends FlowbiteClass {\n spanClass: string;\n}\n","import type {\n SidebarToggleClass,\n SidebarToggleProperties,\n SidebarToggleTheme,\n} from './sidebar-toggle.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 `SidebarToggleTheme` value\n *\n * @example\n * ```\n * var theme = inject(FLOWBITE_SIDEBAR_TOGGLE_THEME_TOKEN)\n * ```\n */\nexport const FLOWBITE_SIDEBAR_TOGGLE_THEME_TOKEN = new InjectionToken<SidebarToggleTheme>(\n 'FLOWBITE_TOGGLE_SIDEBAR_THEME_TOKEN'\n);\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SidebarToggleThemeService implements FlowbiteThemeService<SidebarToggleProperties> {\n private readonly baseTheme = inject(FLOWBITE_SIDEBAR_TOGGLE_THEME_TOKEN);\n\n public getClasses(properties: SidebarToggleProperties): SidebarToggleClass {\n const theme: SidebarToggleTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: SidebarToggleClass = {\n rootClass: twMerge(\n theme.root.base,\n theme.root.color[properties.color],\n theme.root.size[properties.color]\n ),\n };\n\n return output;\n }\n}\n","import type {\n SidebarToggleClass,\n SidebarToggleSizes,\n SidebarToggleTheme,\n} from './sidebar-toggle.theme';\nimport { SidebarToggleThemeService } from './sidebar-toggle.theme.service';\nimport { SidebarComponent } from './sidebar.component';\nimport type { SidebarColors } from './sidebar.theme';\n\nimport type { DeepPartial } from 'flowbite-angular';\nimport { BaseComponent } from 'flowbite-angular';\nimport { IconComponent, IconRegistry } from 'flowbite-angular/icon';\nimport { BARS_SVG_ICON } from 'flowbite-angular/utils';\n\nimport type { OnInit } from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n InjectionToken,\n makeEnvironmentProviders,\n model,\n ViewEncapsulation,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nexport const FLOWBITE_SIDEBAR_TOGGLE_COLOR_DEFAULT_VALUE = new InjectionToken<keyof SidebarColors>(\n 'FLOWBITE_SIDEBAR_TOGGLE_COLOR_DEFAULT_VALUE'\n);\n\nexport const FLOWBITE_SIDEBAR_TOGGLE_SIZE_DEFAULT_VALUE = new InjectionToken<\n keyof SidebarToggleSizes\n>('FLOWBITE_SIDEBAR_TOGGLE_SIZE_DEFAULT_VALUE');\n\nexport const FLOWBITE_SIDEBAR_TOGGLE_CUSTOM_STYLE_DEFAULT_VALUE = new InjectionToken<\n DeepPartial<SidebarToggleTheme>\n>('FLOWBITE_SIDEBAR_TOGGLE_CUSTOM_STYLE_DEFAULT_VALUE');\n\nexport const sidebarToggleDefaultValueProvider = makeEnvironmentProviders([\n {\n provide: FLOWBITE_SIDEBAR_TOGGLE_COLOR_DEFAULT_VALUE,\n useValue: 'primary',\n },\n {\n provide: FLOWBITE_SIDEBAR_TOGGLE_SIZE_DEFAULT_VALUE,\n useValue: 'sm',\n },\n {\n provide: FLOWBITE_SIDEBAR_TOGGLE_CUSTOM_STYLE_DEFAULT_VALUE,\n useValue: {},\n },\n]);\n\n/**\n * @see https://flowbite.com/docs/components/sidebar/\n */\n@Component({\n standalone: true,\n imports: [IconComponent],\n selector: 'flowbite-sidebar-toggle',\n template: `<flowbite-icon svgIcon=\"flowbite-angular:bars\" />`,\n host: {\n '(click)': 'onClick()',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SidebarToggleComponent extends BaseComponent<SidebarToggleClass> implements OnInit {\n /**\n * Service injected used to generate class\n */\n public readonly themeService = inject(SidebarToggleThemeService);\n /**\n * `IconRegistry` service\n */\n public readonly iconRegistry = inject(IconRegistry);\n /**\n * `DomSanitizer` service\n */\n public readonly domSanitizer = inject(DomSanitizer);\n /**\n * The `SidebarComponent` to use\n *\n * @default The injected `SidebarComponent`\n */\n public readonly sidebarComponent = model(inject(SidebarComponent));\n\n //#region properties\n /**\n * Set the sidebar toggle color\n *\n * @default primary\n */\n public color = model(inject(FLOWBITE_SIDEBAR_TOGGLE_COLOR_DEFAULT_VALUE));\n /**\n * Set the sidebar toggle size\n *\n * @default sm\n */\n public size = model(inject(FLOWBITE_SIDEBAR_TOGGLE_SIZE_DEFAULT_VALUE));\n /**\n * Set the custom style for this sidebar toggle\n */\n public customStyle = model(inject(FLOWBITE_SIDEBAR_TOGGLE_CUSTOM_STYLE_DEFAULT_VALUE));\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): SidebarToggleClass {\n return this.themeService.getClasses({\n color: this.color(),\n size: this.size(),\n customStyle: this.customStyle(),\n });\n }\n\n public override init(): void {\n this.iconRegistry.addRawSvgIconInNamepsace(\n 'flowbite-angular',\n 'tabs',\n this.domSanitizer.bypassSecurityTrustHtml(BARS_SVG_ICON)\n );\n }\n //#endregion\n\n /**\n * Toggle sidebar visibility\n */\n public onClick(): void {\n const isOpen = this.sidebarComponent().isOpen();\n\n this.sidebarComponent().isOpen.set(!isOpen);\n }\n}\n","import type { SidebarColors } from './sidebar.theme';\n\nimport type { DeepPartial, FlowbiteClass, FlowbiteSizes } from 'flowbite-angular';\nimport { createTheme } from 'flowbite-angular/utils';\n\n//#region region Component theme option\n/**\n * Available sizes for `SidebarToggleComponent`\n */\nexport interface SidebarToggleSizes extends Pick<FlowbiteSizes, 'sm'> {\n [key: string]: string;\n}\n//#endregion\n\n/**\n * Required properties for the class generation of `SidebarToggleComponent`\n */\nexport interface SidebarToggleProperties {\n color: keyof SidebarColors;\n size: keyof SidebarToggleSizes;\n customStyle: DeepPartial<SidebarToggleTheme>;\n}\n\n/**\n * Theme definitions for `SidebarToggleComponent`\n */\nexport interface SidebarToggleTheme {\n root: {\n base: string;\n color: SidebarColors;\n size: SidebarToggleSizes;\n };\n}\n\n/**\n * Default theme for `SidebarToggleComponent`\n */\nexport const sidebarToggleTheme: SidebarToggleTheme = createTheme({\n root: {\n base: 'cursor-pointer inline-flex items-center p-2 justify-center rounded-lg focus:outline-none focus:ring-2',\n color: {\n primary:\n 'text-primary-500 dark:text-primary-400 hover:bg-primary-100 dark:hover:bg-gray-700 focus:ring-primary-200 dark:focus:ring-primary-600',\n dark: 'text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:ring-gray-200 dark:focus:ring-gray-600',\n blue: 'text-blue-500 dark:text-blue-400 hover:bg-blue-100 dark:hover:bg-blue-700 focus:ring-blue-200 dark:focus:ring-blue-600',\n red: 'text-red-500 dark:text-red-400 hover:bg-red-100 dark:hover:bg-red-700 focus:ring-red-200 dark:focus:ring-red-600',\n green:\n 'text-green-500 dark:text-green-400 hover:bg-green-100 dark:hover:bg-green-700 focus:ring-green-200 dark:focus:ring-green-600',\n yellow:\n 'text-yellow-500 dark:text-yellow-400 hover:bg-yellow-100 dark:hover:bg-yellow-700 focus:ring-yellow-200 dark:focus:ring-yellow-600',\n },\n size: {\n sm: 'text-sm',\n },\n },\n});\n\n/**\n * Generated class definition for `SidebarToggleComponent`\n */\nexport type SidebarToggleClass = FlowbiteClass;\n","import type { SidebarDisplayMode } from './sidebar.theme';\n\nimport type { DeepPartial, FlowbiteBoolean, FlowbiteClass } from 'flowbite-angular';\nimport { createTheme } from 'flowbite-angular/utils';\n\n/**\n * Required properties for the class generation of `SidebarPageContentComponent`\n */\nexport interface SidebarPageContentProperties {\n isOpen: keyof FlowbiteBoolean;\n displayMode: keyof SidebarDisplayMode;\n customStyle: DeepPartial<SidebarPageContentTheme>;\n}\n\n/**\n * Theme definition for `SidebarPageContentComponent`\n */\nexport interface SidebarPageContentTheme {\n root: {\n base: string;\n displayMode: SidebarDisplayMode;\n };\n}\n\n/**\n * Default theme for `SidebarPageContentComponent`\n */\nexport const sidebarPageContentTheme: SidebarPageContentTheme = createTheme({\n root: {\n base: 'flex flex-1',\n displayMode: {\n push: '',\n over: '',\n backdrop: 'sticky left-0 right-0 z-30 bg-gray-500 bg-opacity-50 blur-md',\n },\n },\n});\n\n/**\n * Generated class definition for `SidebarPageContentComponent`\n */\nexport type SidebarPageContentClass = FlowbiteClass;\n","import type { SidebarColors, SidebarDisplayMode } from './sidebar.theme';\n\nimport type { DeepPartial, FlowbiteBoolean, FlowbiteClass } from 'flowbite-angular';\nimport { createTheme } from 'flowbite-angular/utils';\n\n/**\n * Required properties for the class definition of `SidebarMenuComponent`\n */\nexport interface SidebarMenuProperties {\n isOpen: keyof FlowbiteBoolean;\n color: keyof SidebarColors;\n displayMode: keyof SidebarDisplayMode;\n customStyle: DeepPartial<SidebarMenuTheme>;\n}\n\n/**\n * Theme definition for `SidebarMenuComponent`\n */\nexport interface SidebarMenuTheme {\n root: {\n base: string;\n displayMode: SidebarDisplayMode;\n isOpen: FlowbiteBoolean;\n color: SidebarColors;\n };\n}\n\n/**\n * Default theme for `SidebarMenuComponent`\n */\nexport const sidebarMenuTheme: SidebarMenuTheme = createTheme({\n root: {\n base: 'flex-col min-h-full overflow-y-auto shrink-0 pr-1 border-r bg-white dark:bg-gray-800',\n displayMode: {\n push: '',\n over: 'sticky top-0 z-50',\n backdrop: 'sticky top-0 z-50',\n },\n isOpen: {\n enabled: 'flex',\n disabled: 'hidden',\n },\n color: {\n primary: 'border-primary-200 dark:border-primary-700',\n dark: 'border-gray-200 dark:border-gray-800',\n blue: 'border-blue-200 dark:border-blue-700',\n red: 'border-red-200 dark:border-red-700',\n green: 'border-green-200 dark:border-green-700',\n yellow: 'border-yellow-200 dark:border-yellow-700',\n },\n },\n});\n\n/**\n * Generated class definition for `SidebarMenuComponent`\n */\nexport type SidebarMenuClass = FlowbiteClass;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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