import { ChangeDetectionStrategy, Component, computed, inject, ViewEncapsulation, } from "@angular/core"; import { SdDropdown } from "../../controls/dropdown/sd-dropdown"; import { SdDropdownPopup } from "../../controls/dropdown/sd-dropdown-popup"; import { SdButton } from "../../controls/button/sd-button"; import { SdSwitch } from "../../controls/checkbox/sd-switch"; import { NgIcon } from "@ng-icons/core"; import { tablerMinus, tablerPalette, tablerPlus } from "@ng-icons/tabler-icons"; import { SdThemeProvider } from "./sd-theme-provider"; @Component({ selector: "sd-theme-selector", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [SdDropdown, SdDropdownPopup, SdButton, SdSwitch, NgIcon], template: `
글자 크기
{{ sdTheme.fontSize() }}px
다크 모드
`, styles: [], }) export class SdThemeSelector { protected readonly icons = { tablerPalette, tablerMinus, tablerPlus }; protected readonly sdTheme = inject(SdThemeProvider); protected readonly isMinFontSize = computed( () => this.sdTheme.fontSize() <= this.sdTheme.fontSizePresets[0], ); protected readonly isMaxFontSize = computed( () => this.sdTheme.fontSize() >= this.sdTheme.fontSizePresets[this.sdTheme.fontSizePresets.length - 1], ); }