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 8.86 kB
{"version":3,"file":"flowbite-angular-dark-theme-toggle.mjs","sources":["../../../../libs/flowbite-angular/dark-theme-toggle/dark-theme-toggle.theme.service.ts","../../../../libs/flowbite-angular/dark-theme-toggle/dark-theme-toggle.component.ts","../../../../libs/flowbite-angular/dark-theme-toggle/dark-theme-toggle.theme.ts","../../../../libs/flowbite-angular/dark-theme-toggle/flowbite-angular-dark-theme-toggle.ts"],"sourcesContent":["import type {\n DarkThemeToggleClass,\n DarkThemeToggleProperties,\n DarkThemeToggleTheme,\n} from './dark-theme-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 `DarkThemeToggleTheme` value\n *\n * @example\n * ```\n * var theme = inject(FLOWBITE_DARK_THEME_TOGGLE_THEME_TOKEN)\n * ```\n */\nexport const FLOWBITE_DARK_THEME_TOGGLE_THEME_TOKEN = new InjectionToken<DarkThemeToggleTheme>(\n 'FLOWBITE_DARK_THEME_TOGGLE_THEME_TOKEN'\n);\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DarkThemeToggleThemeService\n implements FlowbiteThemeService<DarkThemeToggleProperties>\n{\n private readonly baseTheme = inject(FLOWBITE_DARK_THEME_TOGGLE_THEME_TOKEN);\n\n public getClasses(properties: DarkThemeToggleProperties): DarkThemeToggleClass {\n const theme: DarkThemeToggleTheme = mergeTheme(this.baseTheme, properties.customStyle);\n\n const output: DarkThemeToggleClass = {\n rootClass: twMerge(theme.root.base),\n };\n\n return output;\n }\n}\n","import type { DarkThemeToggleClass, DarkThemeToggleTheme } from './dark-theme-toggle.theme';\nimport { DarkThemeToggleThemeService } from './dark-theme-toggle.theme.service';\n\nimport type { DeepPartial } from 'flowbite-angular';\nimport { BaseComponent } from 'flowbite-angular';\nimport { IconComponent, IconRegistry } from 'flowbite-angular/icon';\nimport { FlowbiteThemeDirective } from 'flowbite-angular/theme';\nimport { MOON_SVG_ICON, SUN_SVG_ICON } from 'flowbite-angular/utils';\n\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_DARK_THEME_TOGGLE_CUSTOM_STYLE_DEFAULT_VALUE = new InjectionToken<\n DeepPartial<DarkThemeToggleTheme>\n>('FLOWBITE_DARK_THEME_TOGGLE_CUSTOM_STYLE_DEFAULT_VALUE');\n\nexport const darkThemeToggleDefaultValueProvider = makeEnvironmentProviders([\n {\n provide: FLOWBITE_DARK_THEME_TOGGLE_CUSTOM_STYLE_DEFAULT_VALUE,\n useValue: {},\n },\n]);\n\n/**\n * Use to toggle light/dark mode accross the site\n */\n@Component({\n standalone: true,\n imports: [IconComponent],\n selector: 'flowbite-dark-theme-toggle',\n template: `\n <flowbite-icon\n svgIcon=\"flowbite-angular:moon\"\n class=\"h-5 w-5 block dark:hidden\" />\n <flowbite-icon\n svgIcon=\"flowbite-angular:sun\"\n class=\"h-5 w-5 hidden dark:block\" />\n `,\n host: {\n '(click)': 'onClick()',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DarkThemeToggleComponent extends BaseComponent<DarkThemeToggleClass> {\n /**\n * Service injected used to generate class\n */\n public readonly themeService = inject(DarkThemeToggleThemeService);\n /**\n * `IconRegistry` service\n */\n public readonly iconRegistry = inject(IconRegistry);\n /**\n * `DomSanitizer` service\n */\n public readonly domSanitizer = inject(DomSanitizer);\n /**\n * `FlowbiteThemeDirective` directive\n */\n public readonly themeDirective = inject(FlowbiteThemeDirective);\n\n //#region properties\n /**\n * Set the custom style for this dark-theme-toggle\n */\n public customStyle = model(inject(FLOWBITE_DARK_THEME_TOGGLE_CUSTOM_STYLE_DEFAULT_VALUE));\n //#endregion\n\n //#region BaseComponent implementation\n public override fetchClass(): DarkThemeToggleClass {\n return this.themeService.getClasses({\n customStyle: this.customStyle(),\n });\n }\n\n public override init(): void {\n this.iconRegistry.addRawSvgIconInNamepsace(\n 'flowbite-angular',\n 'sun',\n this.domSanitizer.bypassSecurityTrustHtml(SUN_SVG_ICON)\n );\n this.iconRegistry.addRawSvgIconInNamepsace(\n 'flowbite-angular',\n 'moon',\n this.domSanitizer.bypassSecurityTrustHtml(MOON_SVG_ICON)\n );\n }\n //#endregion\n\n /**\n * Toggle between dark and light mode\n */\n public onClick() {\n this.themeDirective.toggleTheme();\n }\n}\n","import type { DeepPartial, FlowbiteClass } from 'flowbite-angular';\nimport { createTheme } from 'flowbite-angular/utils';\n\n/**\n * Required properties for the class generation of `DarkThemeToggleComponent`\n */\nexport interface DarkThemeToggleProperties {\n customStyle: DeepPartial<DarkThemeToggleTheme>;\n}\n\n/**\n * Theme definition for `DarkThemeToggleComponent`\n */\nexport interface DarkThemeToggleTheme {\n root: {\n base: string;\n };\n}\n\n/**\n * Default theme for `DarkThemeToggleComponent`\n */\nexport const darkThemeToggleTheme: DarkThemeToggleTheme = createTheme({\n root: {\n base: 'cursor-pointer rounded-lg p-2.5 text-sm text-gray-500 hover:bg-gray-100 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:text-gray-400 dark:hover:bg-gray-700 dark:focus:ring-gray-700',\n },\n});\n\n/**\n * Generated class definition for `DarkThemeToggleComponent`\n */\nexport type DarkThemeToggleClass = FlowbiteClass;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}