@taiga-ui/addon-doc
Version:
Taiga UI based library for developing documentation portals for Angular libraries.
46 lines • 10.4 kB
JavaScript
import { NgForOf } from '@angular/common';
import { ChangeDetectionStrategy, Component, inject, InjectionToken } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { WA_LOCAL_STORAGE, WA_LOCATION } from '@ng-web-apis/common';
import { TuiButton } from '@taiga-ui/core/components/button';
import { TuiDataList } from '@taiga-ui/core/components/data-list';
import { TUI_THEME } from '@taiga-ui/core/tokens';
import { TuiSelectModule } from '@taiga-ui/legacy/components/select';
import * as i0 from "@angular/core";
import * as i1 from "@angular/forms";
import * as i2 from "@taiga-ui/core/components/data-list";
import * as i3 from "@taiga-ui/legacy/components/select";
export const TUI_THEME_KEY = new InjectionToken(ngDevMode ? 'TUI_THEME_KEY' : '', {
factory: () => 'data-tui-theme',
});
export const TUI_THEMES = new InjectionToken(ngDevMode ? 'TUI_THEMES' : '', {
factory: () => ({}),
});
export function tuiDocThemeProvider() {
return {
provide: TUI_THEME,
useFactory: () => inject(WA_LOCAL_STORAGE)?.getItem(inject(TUI_THEME_KEY)) || 'Taiga UI',
};
}
class TuiDocThemeSwitcher {
constructor() {
this.storage = inject(WA_LOCAL_STORAGE);
this.key = inject(TUI_THEME_KEY);
this.location = inject(WA_LOCATION);
this.theme = inject(TUI_THEME);
this.themes = inject(TUI_THEMES);
this.keys = Object.keys(this.themes);
}
onTheme(theme) {
this.storage?.setItem(this.key, theme);
this.location.reload();
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDocThemeSwitcher, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiDocThemeSwitcher, isStandalone: true, selector: "tui-doc-theme-switcher", ngImport: i0, template: "<tui-select\n [ngModel]=\"theme\"\n (ngModelChange)=\"onTheme($event)\"\n>\n <ng-content />\n <tui-data-list *tuiDataList>\n <button\n *ngFor=\"let key of keys\"\n tuiOption\n type=\"button\"\n [value]=\"key\"\n >\n <img\n alt=\"\"\n [src]=\"themes[key]\"\n [style.margin-inline-end.rem]=\"0.5\"\n [style.width.rem]=\"1.75\"\n />\n {{ key }}\n </button>\n </tui-data-list>\n</tui-select>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.TuiDataListComponent, selector: "tui-data-list", inputs: ["emptyContent", "size"] }, { kind: "directive", type: i2.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { kind: "component", type: i2.TuiOption, selector: "button[tuiOption]:not([new]), a[tuiOption]:not([new]), label[tuiOption]:not([new])", inputs: ["disabled", "value"] }, { kind: "ngmodule", type: TuiSelectModule }, { kind: "component", type: i3.TuiSelectComponent, selector: "tui-select", inputs: ["stringify", "identityMatcher", "valueContent"] }, { kind: "directive", type: i3.TuiSelectDirective, selector: "tui-select" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
export { TuiDocThemeSwitcher };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDocThemeSwitcher, decorators: [{
type: Component,
args: [{ standalone: true, selector: 'tui-doc-theme-switcher', imports: [FormsModule, NgForOf, TuiButton, TuiDataList, TuiSelectModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<tui-select\n [ngModel]=\"theme\"\n (ngModelChange)=\"onTheme($event)\"\n>\n <ng-content />\n <tui-data-list *tuiDataList>\n <button\n *ngFor=\"let key of keys\"\n tuiOption\n type=\"button\"\n [value]=\"key\"\n >\n <img\n alt=\"\"\n [src]=\"themes[key]\"\n [style.margin-inline-end.rem]=\"0.5\"\n [style.width.rem]=\"1.75\"\n />\n {{ key }}\n </button>\n </tui-data-list>\n</tui-select>\n" }]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtc3dpdGNoZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tZG9jL2NvbXBvbmVudHMvdGhlbWUtc3dpdGNoZXIvdGhlbWUtc3dpdGNoZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tZG9jL2NvbXBvbmVudHMvdGhlbWUtc3dpdGNoZXIvdGhlbWUtc3dpdGNoZXIudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFeEMsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsV0FBVyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDbEUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzNELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNoRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDaEQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9DQUFvQyxDQUFDOzs7OztBQUVuRSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUM5RSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsZ0JBQWdCO0NBQ2xDLENBQUMsQ0FBQztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxJQUFJLGNBQWMsQ0FDeEMsU0FBUyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDN0I7SUFDSSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7Q0FDdEIsQ0FDSixDQUFDO0FBRUYsTUFBTSxVQUFVLG1CQUFtQjtJQUMvQixPQUFPO1FBQ0gsT0FBTyxFQUFFLFNBQVM7UUFDbEIsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUNiLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxVQUFVO0tBQzdFLENBQUM7QUFDTixDQUFDO0FBRUQsTUFPYSxtQkFBbUI7SUFQaEM7UUFRcUIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ25DLFFBQUcsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU3QixVQUFLLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFCLFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBTXREO0lBSlUsT0FBTyxDQUFDLEtBQWE7UUFDeEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNCLENBQUM7K0dBWlEsbUJBQW1CO21HQUFuQixtQkFBbUIsa0ZDbkNoQyxvakJBc0JBLDJDRFNjLFdBQVcsK1ZBQUUsT0FBTywyZUFBMEIsZUFBZTs7U0FJOUQsbUJBQW1COzRGQUFuQixtQkFBbUI7a0JBUC9CLFNBQVM7aUNBQ00sSUFBSSxZQUNOLHdCQUF3QixXQUN6QixDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxlQUFlLENBQUMsbUJBRXZELHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nRm9yT2Z9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgdHlwZSB7RmFjdG9yeVByb3ZpZGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1dBX0xPQ0FMX1NUT1JBR0UsIFdBX0xPQ0FUSU9OfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7VHVpQnV0dG9ufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQge1R1aURhdGFMaXN0fSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2RhdGEtbGlzdCc7XG5pbXBvcnQge1RVSV9USEVNRX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7VHVpU2VsZWN0TW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L2NvbXBvbmVudHMvc2VsZWN0JztcblxuZXhwb3J0IGNvbnN0IFRVSV9USEVNRV9LRVkgPSBuZXcgSW5qZWN0aW9uVG9rZW4obmdEZXZNb2RlID8gJ1RVSV9USEVNRV9LRVknIDogJycsIHtcbiAgICBmYWN0b3J5OiAoKSA9PiAnZGF0YS10dWktdGhlbWUnLFxufSk7XG5leHBvcnQgY29uc3QgVFVJX1RIRU1FUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PihcbiAgICBuZ0Rldk1vZGUgPyAnVFVJX1RIRU1FUycgOiAnJyxcbiAgICB7XG4gICAgICAgIGZhY3Rvcnk6ICgpID0+ICh7fSksXG4gICAgfSxcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiB0dWlEb2NUaGVtZVByb3ZpZGVyKCk6IEZhY3RvcnlQcm92aWRlciB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZTogVFVJX1RIRU1FLFxuICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PlxuICAgICAgICAgICAgaW5qZWN0KFdBX0xPQ0FMX1NUT1JBR0UpPy5nZXRJdGVtKGluamVjdChUVUlfVEhFTUVfS0VZKSkgfHwgJ1RhaWdhIFVJJyxcbiAgICB9O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLWRvYy10aGVtZS1zd2l0Y2hlcicsXG4gICAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBOZ0Zvck9mLCBUdWlCdXR0b24sIFR1aURhdGFMaXN0LCBUdWlTZWxlY3RNb2R1bGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90aGVtZS1zd2l0Y2hlci50ZW1wbGF0ZS5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRG9jVGhlbWVTd2l0Y2hlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlID0gaW5qZWN0KFdBX0xPQ0FMX1NUT1JBR0UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkga2V5ID0gaW5qZWN0KFRVSV9USEVNRV9LRVkpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9jYXRpb24gPSBpbmplY3QoV0FfTE9DQVRJT04pO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRoZW1lID0gaW5qZWN0KFRVSV9USEVNRSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRoZW1lcyA9IGluamVjdChUVUlfVEhFTUVTKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkga2V5cyA9IE9iamVjdC5rZXlzKHRoaXMudGhlbWVzKTtcblxuICAgIHB1YmxpYyBvblRoZW1lKHRoZW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yYWdlPy5zZXRJdGVtKHRoaXMua2V5LCB0aGVtZSk7XG4gICAgICAgIHRoaXMubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgfVxufVxuIiwiPHR1aS1zZWxlY3RcbiAgICBbbmdNb2RlbF09XCJ0aGVtZVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25UaGVtZSgkZXZlbnQpXCJcbj5cbiAgICA8bmctY29udGVudCAvPlxuICAgIDx0dWktZGF0YS1saXN0ICp0dWlEYXRhTGlzdD5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGtleSBvZiBrZXlzXCJcbiAgICAgICAgICAgIHR1aU9wdGlvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbdmFsdWVdPVwia2V5XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICAgICAgW3NyY109XCJ0aGVtZXNba2V5XVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLm1hcmdpbi1pbmxpbmUtZW5kLnJlbV09XCIwLjVcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aC5yZW1dPVwiMS43NVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge3sga2V5IH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvdHVpLWRhdGEtbGlzdD5cbjwvdHVpLXNlbGVjdD5cbiJdfQ==