@taiga-ui/addon-doc 2.36.0 → 2.37.0
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/bundles/taiga-ui-addon-doc.umd.js +24 -19
- package/bundles/taiga-ui-addon-doc.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-doc.umd.min.js +1 -1
- package/bundles/taiga-ui-addon-doc.umd.min.js.map +1 -1
- package/esm2015/components/demo/demo.component.js +5 -5
- package/esm2015/components/documentation/documentation.component.js +3 -3
- package/esm2015/components/main/main.component.js +3 -3
- package/esm2015/components/navigation/navigation.component.js +3 -3
- package/esm2015/components/page/page.providers.js +2 -2
- package/esm2015/interfaces/page.js +6 -1
- package/esm2015/internal/header/header.component.js +3 -3
- package/esm2015/public-api.js +2 -1
- package/esm2015/utils/color-conversion.js +5 -8
- package/esm2015/utils/raw-load-record.js +4 -2
- package/esm5/components/demo/demo.component.js +5 -5
- package/esm5/components/documentation/documentation.component.js +3 -3
- package/esm5/components/main/main.component.js +3 -3
- package/esm5/components/navigation/navigation.component.js +3 -3
- package/esm5/components/page/page.providers.js +2 -2
- package/esm5/interfaces/page.js +6 -1
- package/esm5/internal/header/header.component.js +3 -3
- package/esm5/public-api.js +2 -1
- package/esm5/utils/color-conversion.js +5 -8
- package/esm5/utils/raw-load-record.js +2 -1
- package/fesm2015/taiga-ui-addon-doc.js +27 -22
- package/fesm2015/taiga-ui-addon-doc.js.map +1 -1
- package/fesm5/taiga-ui-addon-doc.js +25 -21
- package/fesm5/taiga-ui-addon-doc.js.map +1 -1
- package/interfaces/page.d.ts +10 -1
- package/package.json +5 -5
- package/taiga-ui-addon-doc.metadata.json +1 -1
- package/utils/color-conversion.d.ts +3 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-doc.js","sources":["ng://@taiga-ui/addon-doc/utils/raw-load.ts","ng://@taiga-ui/addon-doc/components/code/parse-code-block.ts","ng://@taiga-ui/addon-doc/components/code/code.component.ts","ng://@taiga-ui/addon-doc/components/code/code.module.ts","ng://@taiga-ui/addon-doc/components/copy/copy.component.ts","ng://@taiga-ui/addon-doc/components/copy/copy.module.ts","ng://@taiga-ui/addon-doc/tokens/i18n.ts","ng://@taiga-ui/addon-doc/components/demo/demo.component.ts","ng://@taiga-ui/addon-doc/components/demo/demo.module.ts","ng://@taiga-ui/addon-doc/utils/color-conversion.ts","ng://@taiga-ui/addon-doc/utils/inspect.ts","ng://@taiga-ui/addon-doc/utils/coerce-value.ts","ng://@taiga-ui/addon-doc/components/documentation/documentation-property-connector.directive.ts","ng://@taiga-ui/addon-doc/components/documentation/documentation.component.ts","ng://@taiga-ui/addon-doc/internal/input-opacity/input-opacity.directive.ts","ng://@taiga-ui/addon-doc/internal/input-opacity/input-opacity.module.ts","ng://@taiga-ui/addon-doc/components/documentation/documentation.module.ts","ng://@taiga-ui/addon-doc/tokens/code-editor.ts","ng://@taiga-ui/addon-doc/tokens/example-content-processor.ts","ng://@taiga-ui/addon-doc/utils/raw-load-record.ts","ng://@taiga-ui/addon-doc/components/example/example.component.ts","ng://@taiga-ui/addon-doc/components/example/example-get-tabs.pipe.ts","ng://@taiga-ui/addon-doc/components/example/example.module.ts","ng://@taiga-ui/addon-doc/components/main/main.component.ts","ng://@taiga-ui/addon-doc/directives/scroll-into-view/scroll-into-view.directive.ts","ng://@taiga-ui/addon-doc/directives/scroll-into-view/scroll-into-view.module.ts","ng://@taiga-ui/addon-doc/utils/transliterate-keyboard-layout.ts","ng://@taiga-ui/addon-doc/tokens/pages.ts","ng://@taiga-ui/addon-doc/tokens/title.ts","ng://@taiga-ui/addon-doc/components/navigation/navigation.providers.ts","ng://@taiga-ui/addon-doc/components/navigation/navigation.component.ts","ng://@taiga-ui/addon-doc/components/navigation/navigation.module.ts","ng://@taiga-ui/addon-doc/tokens/logo.ts","ng://@taiga-ui/addon-doc/internal/header/header.component.ts","ng://@taiga-ui/addon-doc/internal/header/header.module.ts","ng://@taiga-ui/addon-doc/components/main/main.module.ts","ng://@taiga-ui/addon-doc/tokens/default-tabs.ts","ng://@taiga-ui/addon-doc/tokens/see-also.ts","ng://@taiga-ui/addon-doc/components/page/page.providers.ts","ng://@taiga-ui/addon-doc/components/page/page-tab.directive.ts","ng://@taiga-ui/addon-doc/components/page/page.component.ts","ng://@taiga-ui/addon-doc/internal/see-also/see-also.component.ts","ng://@taiga-ui/addon-doc/internal/see-also/see-also.module.ts","ng://@taiga-ui/addon-doc/tokens/source-code.ts","ng://@taiga-ui/addon-doc/internal/source-code/source-code.component.ts","ng://@taiga-ui/addon-doc/internal/source-code/source-code.module.ts","ng://@taiga-ui/addon-doc/components/page/page.module.ts","ng://@taiga-ui/addon-doc/languages/russian.ts","ng://@taiga-ui/addon-doc/addon-doc.module.ts","ng://@taiga-ui/addon-doc/utils/generate-routes.ts","ng://@taiga-ui/addon-doc/public-api.ts","ng://@taiga-ui/addon-doc/taiga-ui-addon-doc.ts"],"sourcesContent":["import {RawLoaderContent} from '../interfaces/page';\n\nexport async function rawLoad(content: RawLoaderContent): Promise<string> {\n return content instanceof Promise ? (await content).default : content;\n}\n","import MarkdownIt from 'markdown-it';\nimport Token from 'markdown-it/lib/token';\n\nexport function tryParseMarkdownCodeBlock(text: string = ''): string[] {\n const tokens: Token[] = new MarkdownIt().parse(text, {});\n const result = tokens\n .filter(({tag, type}) => tag === 'code' && type === 'fence')\n .map(({content}) => content);\n\n return result.length ? result : [text];\n}\n","import {Component, HostBinding, Input} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\nimport {map, switchMap} from 'rxjs/operators';\n\nimport {RawLoaderContent} from '../../interfaces/page';\nimport {rawLoad} from '../../utils/raw-load';\nimport {tryParseMarkdownCodeBlock} from './parse-code-block';\n\n@Component({\n selector: 'tui-doc-code',\n templateUrl: './code.template.html',\n styleUrls: ['./code.style.less'],\n})\nexport class TuiDocCodeComponent {\n private readonly rawLoader$$ = new BehaviorSubject<RawLoaderContent>('');\n\n @Input()\n filename = '';\n\n readonly processor$ = this.rawLoader$$.pipe(\n switchMap(rawLoad),\n map(tryParseMarkdownCodeBlock),\n );\n\n @Input()\n set code(code: RawLoaderContent) {\n this.rawLoader$$.next(code);\n }\n\n @HostBinding('class._has-filename')\n get hasFilename(): boolean {\n return !!this.filename;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {HighlightModule} from 'ngx-highlightjs';\n\nimport {TuiDocCodeComponent} from './code.component';\n\n@NgModule({\n imports: [CommonModule, HighlightModule],\n declarations: [TuiDocCodeComponent],\n exports: [TuiDocCodeComponent],\n})\nexport class TuiDocCodeModule {}\n","import {ChangeDetectionStrategy, Component, Inject} from '@angular/core';\nimport {TuiDestroyService, tuiPure} from '@taiga-ui/cdk';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit';\nimport {Observable, Subject, timer} from 'rxjs';\nimport {mapTo, startWith, switchMapTo} from 'rxjs/operators';\n\nconst COPIED_TIMEOUT = 1500;\n\n// @dynamic\n@Component({\n selector: 'tui-doc-copy',\n templateUrl: './copy.template.html',\n styleUrls: ['./copy.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiDestroyService],\n})\nexport class TuiDocCopyComponent {\n private readonly copy$ = new Subject();\n\n constructor(@Inject(TUI_COPY_TEXTS) readonly texts$: Observable<[string, string]>) {}\n\n @tuiPure\n get copied$(): Observable<boolean> {\n return this.copy$.pipe(\n switchMapTo(timer(COPIED_TIMEOUT).pipe(mapTo(false), startWith(true))),\n );\n }\n\n onClick() {\n this.copy$.next();\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiButtonModule} from '@taiga-ui/core';\n\nimport {TuiDocCopyComponent} from './copy.component';\n\n@NgModule({\n imports: [CommonModule, TuiButtonModule],\n declarations: [TuiDocCopyComponent],\n exports: [TuiDocCopyComponent],\n})\nexport class TuiDocCopyModule {}\n","import {InjectionToken} from '@angular/core';\n\n/**\n * TODO: think about reorganization in @taiga-ui/i18n way\n */\n\n/**\n * Works with a tuple\n * [@string tuiMode tooltip content, @string word 'background', @string 'form value']\n */\nexport const TUI_DOC_DEMO_TEXTS = new InjectionToken<[string, string, string]>(\n 'tui-doc-demo i18n texts',\n {\n factory: () => ['Read more more about modes: ', 'Background', 'Form value'],\n },\n);\n\n/**\n * Works with a tuple\n * [\n * @string word 'argument',\n * @string word 'type',\n * @string 'name and description',\n * @string word 'value'\n * @string message for tooltip about ng-polymorpheus\n * ]\n */\nexport const TUI_DOC_DOCUMENTATION_TEXTS = new InjectionToken<\n [string, string, string, string, string]\n>('tui-doc-documentation i18n texts', {\n factory: () => [\n 'Argument',\n 'Type',\n 'Name and description',\n 'Value',\n 'Learn about our dynamic templates from ',\n ],\n});\n\n/**\n * Works with a tuple\n * [\n * @string default tab name,\n * @string link to a sample copied message text,\n * @string link to a sample copied message label\n * ]\n */\nexport const TUI_DOC_EXAMPLE_TEXTS = new InjectionToken<[string, string, string]>(\n 'tui-doc-example i18n texts',\n {\n factory: () => ['Preview', 'Link to a sample was successfully copied', 'Done'],\n },\n);\n\nexport const TUI_DOC_MENU_TEXT = new InjectionToken<string>('menu i18n text', {\n factory: () => 'Menu',\n});\n\nexport const TUI_DOC_SEARCH_TEXT = new InjectionToken<string>('search i18n text', {\n factory: () => 'Search',\n});\n\nexport const TUI_DOC_SEE_ALSO_TEXT = new InjectionToken<string>(\n 'tui-doc-see-also i18n text',\n {\n factory: () => 'See also',\n },\n);\n\nexport const TUI_DOC_SOURCE_CODE_TEXT = new InjectionToken<string>(\n 'tui-doc-source-code i18n text',\n {\n factory: () => 'Source code',\n },\n);\n","import {isPlatformBrowser, Location} from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n forwardRef,\n HostListener,\n Inject,\n Input,\n OnInit,\n PLATFORM_ID,\n Renderer2,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {AbstractControl, FormControl, FormGroup} from '@angular/forms';\nimport {UrlSerializer} from '@angular/router';\nimport {TUI_IS_MOBILE, TuiDestroyService} from '@taiga-ui/cdk';\nimport {TuiBrightness, TuiModeDirective} from '@taiga-ui/core';\nimport {Subject} from 'rxjs';\nimport {startWith, takeUntil} from 'rxjs/operators';\n\nimport {TUI_DOC_DEMO_TEXTS} from '../../tokens/i18n';\n\nconst MIN_COMPONENT_WIDTH = 104;\n\n// @dynamic\n@Component({\n selector: 'tui-doc-demo',\n templateUrl: './demo.template.html',\n styleUrls: ['./demo.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n TuiDestroyService,\n {\n provide: TuiModeDirective,\n useExisting: forwardRef(() => TuiDocDemoComponent),\n },\n ],\n})\nexport class TuiDocDemoComponent implements OnInit, AfterViewInit {\n @ViewChild('content')\n private readonly content?: ElementRef<HTMLElement>;\n\n @ViewChild('wrapper')\n private readonly wrapper?: ElementRef<HTMLElement>;\n\n @ViewChild('resizerText')\n private readonly resizerText?: ElementRef<HTMLElement>;\n\n private readonly isBrowser: boolean;\n private initialX = 0;\n private wrapperWidth = 0;\n\n @Input()\n control: AbstractControl | null = null;\n\n @ContentChild(TemplateRef)\n readonly template?: TemplateRef<{}>;\n\n testForm?: FormGroup;\n updateOnVariants = ['change', 'blur', 'submit'];\n updateOn: 'change' | 'blur' | 'submit' = 'change';\n expanded = false;\n opaque = true;\n modeControl = new FormControl();\n mode: TuiBrightness | null = null;\n readonly change$ = new Subject<void>();\n readonly items: readonly TuiBrightness[] = ['onLight', 'onDark'];\n\n constructor(\n @Inject(TUI_IS_MOBILE) readonly isMobile: boolean,\n @Inject(TuiDestroyService) private readonly destroy$: TuiDestroyService,\n @Inject(Renderer2) private readonly renderer: Renderer2,\n @Inject(PLATFORM_ID) platformId: Object,\n @Inject(Location) locationRef: Location,\n @Inject(UrlSerializer) urlSerializer: UrlSerializer,\n @Inject(TUI_DOC_DEMO_TEXTS) readonly texts: [string, string, string],\n ) {\n this.isBrowser = isPlatformBrowser(platformId);\n\n const parsedMode = locationRef.path().match(/tuiMode=(onDark|onLight)/);\n\n if (parsedMode !== null && parsedMode.length > 0) {\n this.modeControl.setValue(parsedMode[1]);\n }\n\n this.modeControl.valueChanges\n .pipe(startWith(this.modeControl.value), takeUntil(this.destroy$))\n .subscribe(mode => {\n const urlTree = urlSerializer.parse(locationRef.path());\n\n urlTree.queryParams = {\n ...urlTree.queryParams,\n tuiMode: mode,\n };\n\n locationRef.go(String(urlTree));\n\n this.mode = mode;\n this.change$.next();\n });\n }\n\n @HostListener('window:resize')\n onResize() {\n this.setResizerTextContent();\n }\n\n ngOnInit() {\n this.createForm();\n }\n\n ngAfterViewInit() {\n this.setResizerTextContent();\n }\n\n setResizerTextContent() {\n if (!this.content || !this.resizerText) {\n return;\n }\n\n const paddingLeft = this.isBrowser\n ? getComputedStyle(this.content.nativeElement).paddingLeft\n : '0';\n const {offsetWidth} = this.content.nativeElement;\n\n this.resizerText.nativeElement.textContent = String(\n offsetWidth - parseInt(paddingLeft || '0', 10) * 2,\n );\n }\n\n onDragStart(event: MouseEvent) {\n event.preventDefault();\n this.initialX = event.clientX;\n this.wrapperWidth = this.wrapper ? this.wrapper.nativeElement.offsetWidth : 0;\n }\n\n onDragContinues(event: MouseEvent) {\n const deltaX = this.initialX - event.clientX;\n\n this.resizeContent(deltaX);\n this.setResizerTextContent();\n }\n\n onDragEnd() {\n this.wrapperWidth = this.wrapper ? this.wrapper.nativeElement.offsetWidth : 0;\n }\n\n toggleDetails() {\n this.expanded = !this.expanded;\n }\n\n updateOnChange(updateOn: 'change' | 'blur' | 'submit') {\n this.updateOn = updateOn;\n this.createForm();\n }\n\n private createForm() {\n const {control, updateOn} = this;\n\n if (!control) {\n return;\n }\n\n this.testForm = new FormGroup({testValue: control}, {updateOn});\n }\n\n private resizeContent(delta: number) {\n if (!this.wrapper) {\n return;\n }\n\n this.renderer.setStyle(\n this.wrapper.nativeElement,\n 'width',\n `${Math.max(this.wrapperWidth - delta, MIN_COMPONENT_WIDTH)}px`,\n );\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {RouterModule} from '@angular/router';\nimport {TuiDragModule} from '@taiga-ui/cdk';\nimport {\n TuiButtonModule,\n TuiDataListModule,\n TuiExpandModule,\n TuiGroupModule,\n TuiHintControllerModule,\n TuiLinkModule,\n TuiModeModule,\n TuiSvgModule,\n TuiTextfieldControllerModule,\n TuiTooltipModule,\n} from '@taiga-ui/core';\nimport {\n TuiCheckboxLabeledModule,\n TuiDataListWrapperModule,\n TuiRadioBlockModule,\n TuiSelectModule,\n} from '@taiga-ui/kit';\n\nimport {TuiDocDemoComponent} from './demo.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n RouterModule,\n TuiLinkModule,\n TuiDragModule,\n TuiButtonModule,\n TuiSelectModule,\n TuiExpandModule,\n TuiGroupModule,\n TuiTooltipModule,\n TuiModeModule,\n TuiRadioBlockModule,\n TuiCheckboxLabeledModule,\n TuiSvgModule,\n TuiDataListWrapperModule,\n TuiDataListModule,\n TuiTextfieldControllerModule,\n TuiHintControllerModule,\n ],\n declarations: [TuiDocDemoComponent],\n exports: [TuiDocDemoComponent],\n})\nexport class TuiDocDemoModule {}\n","export function rgbToHex(r: number, g: number, b: number): string {\n return (\n '#' +\n [r, g, b]\n .map(x => {\n const hex = x.toString(16);\n\n return hex.length === 1 ? '0' + hex : hex;\n })\n .join('')\n );\n}\n\nexport function hexToRgb(hex: string): [number, number, number] {\n const matches = hex\n .replace('#', '')\n .split('')\n .map((char, _, array) => (array.length === 3 ? char + char : char))\n .join('')\n .match(/.{2}/g);\n\n return matches\n ? (matches.map(x => Number.parseInt(x, 16)) as [number, number, number])\n : [0, 0, 0];\n}\n","function inspectArray(array: ReadonlyArray<any>, depth: number): string {\n if (depth === 0) {\n return '[…]';\n }\n\n let result = '';\n let first = true;\n\n for (let index = 0; index < array.length; index++) {\n if (first) {\n first = false;\n } else {\n result += ', ';\n }\n\n result += index in array ? inspectAny(array[index], depth - 1) : 'empty';\n }\n\n return `[${result}]`;\n}\n\nfunction inspectObject(object: {[key: string]: any}, depth: number): string {\n if (depth === 0) {\n return `{…}`;\n }\n\n let result = '';\n\n let first = true;\n\n for (const key in object) {\n if (!object.hasOwnProperty(key)) {\n continue;\n }\n\n if (first) {\n first = false;\n } else {\n result += ', ';\n }\n\n result += `${key}: ${inspectAny(object[key], depth - 1)}`;\n }\n\n return `{${result}}`;\n}\n\n// @bad TODO add more types\n/**\n * Returns readable JS entity\n * @param data\n * @param depth\n * @return readable JS entity\n */\nexport function inspectAny(data: any, depth: number): string {\n if (data === null) {\n return 'null';\n }\n\n switch (typeof data) {\n case 'string':\n return `'${data}'`;\n case 'undefined':\n case 'number':\n case 'boolean':\n case 'function':\n return String(data);\n }\n\n if (data instanceof RegExp) {\n return String(data);\n }\n\n if (Array.isArray(data)) {\n return inspectArray(data, depth);\n }\n\n return inspectObject(data, depth);\n}\n","export function coerceValue<T>(value?: T): T | number | string | boolean | null {\n const prepared = String(value).trim();\n\n if (isEmptyParamValue(prepared)) {\n return null;\n } else if (isBooleanParamValue(prepared)) {\n return String(prepared) === 'true';\n } else if (isNumberParamValue(prepared)) {\n return Number(prepared);\n }\n\n return decodeURIComponent(prepared);\n}\n\nfunction isEmptyParamValue(value: string): boolean {\n return ['undefined', 'null', 'NaN', 'Infinity'].includes(value);\n}\n\nfunction isBooleanParamValue(value: string): boolean {\n return value === 'true' || value === 'false';\n}\n\nfunction isNumberParamValue(value: string): boolean {\n return /^-?[\\d.]+(?:e-?\\d+)?$/.test(value);\n}\n","import {Location} from '@angular/common';\nimport {\n Directive,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport {ActivatedRoute, Params, UrlSerializer} from '@angular/router';\nimport {BehaviorSubject, Subject} from 'rxjs';\n\nimport {coerceValue} from '../../utils/coerce-value';\n\nconst SERIALIZED_SUFFIX = '$';\n\nexport type DocumentationPropertyType = 'input' | 'output' | 'input-output' | null;\n\n// @bad TODO: refactor output and value sync\n@Directive({\n selector: 'ng-template[documentationPropertyName]',\n exportAs: 'documentationProperty',\n})\nexport class TuiDocDocumentationPropertyConnectorDirective<T>\n implements OnInit, OnChanges\n{\n @Input()\n documentationPropertyName = '';\n\n @Input()\n documentationPropertyMode: DocumentationPropertyType = null;\n\n @Input()\n documentationPropertyType = '';\n\n @Input()\n documentationPropertyValue: T | null = null;\n\n @Input()\n documentationPropertyDeprecated = false;\n\n @Input()\n documentationPropertyValues: ReadonlyArray<T> | null = null;\n\n @Output()\n readonly documentationPropertyValueChange = new EventEmitter<T | null>();\n\n readonly changed$ = new Subject<void>();\n\n readonly emits$ = new BehaviorSubject(1);\n\n constructor(\n @Inject(TemplateRef) readonly template: TemplateRef<{}>,\n @Inject(Location) private readonly locationRef: Location,\n @Inject(ActivatedRoute) private readonly activatedRoute: ActivatedRoute,\n @Inject(UrlSerializer) private readonly urlSerializer: UrlSerializer,\n ) {}\n\n ngOnInit() {\n this.parseParams(this.activatedRoute.snapshot.queryParams);\n }\n\n get attrName(): string {\n switch (this.documentationPropertyMode) {\n case 'input':\n return `[${this.documentationPropertyName}]`;\n case 'output':\n return `(${this.documentationPropertyName})`;\n case 'input-output':\n return `[(${this.documentationPropertyName})]`;\n default:\n return this.documentationPropertyName;\n }\n }\n\n get hasItems(): boolean {\n return !!this.documentationPropertyValues;\n }\n\n get shouldShowValues(): boolean {\n return this.documentationPropertyMode !== 'output';\n }\n\n ngOnChanges() {\n this.changed$.next();\n }\n\n onValueChange(value: T | null) {\n this.documentationPropertyValue = value;\n this.documentationPropertyValueChange.emit(value);\n this.setQueryParam(value);\n }\n\n emitEvent(event: unknown) {\n // For more convenient debugging\n console.info(this.attrName, event);\n\n this.emits$.next(this.emits$.value + 1);\n }\n\n private parseParams(params: Params) {\n const propertyValue: string | undefined = params[this.documentationPropertyName];\n const propertyValueWithSuffix: string | number | undefined =\n params[`${this.documentationPropertyName}${SERIALIZED_SUFFIX}`];\n\n if (!propertyValue && !propertyValueWithSuffix) {\n return;\n }\n\n const value =\n !!propertyValueWithSuffix && this.documentationPropertyValues\n ? this.documentationPropertyValues[propertyValueWithSuffix as number]\n : coerceValue(propertyValue);\n\n this.onValueChange(value as T);\n }\n\n private setQueryParam(value: T | string | number | boolean | null) {\n const tree = this.urlSerializer.parse(this.locationRef.path());\n\n const isValueAvailableByKey = value instanceof Object;\n const computedValue =\n isValueAvailableByKey && this.documentationPropertyValues\n ? this.documentationPropertyValues.indexOf(value as T)\n : value;\n\n const suffix = isValueAvailableByKey ? SERIALIZED_SUFFIX : '';\n const propName = this.documentationPropertyName + suffix;\n\n tree.queryParams = {\n ...tree.queryParams,\n [propName]: computedValue,\n };\n\n this.locationRef.go(String(tree));\n }\n}\n","import {animate, style, transition, trigger} from '@angular/animations';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Inject,\n Input,\n QueryList,\n} from '@angular/core';\nimport {EMPTY_QUERY, itemsQueryListObservable, watch} from '@taiga-ui/cdk';\nimport {merge} from 'rxjs';\nimport {switchMap} from 'rxjs/operators';\n\nimport {TUI_DOC_DOCUMENTATION_TEXTS} from '../../tokens/i18n';\nimport {hexToRgb, rgbToHex} from '../../utils/color-conversion';\nimport {inspectAny} from '../../utils/inspect';\nimport {TuiDocDocumentationPropertyConnectorDirective} from './documentation-property-connector.directive';\n\n// @bad TODO subscribe propertiesConnectors changes\n// @bad TODO refactor to make more flexible\n// @dynamic\n@Component({\n selector: 'tui-doc-documentation',\n templateUrl: './documentation.template.html',\n styleUrls: ['./documentation.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('emitEvent', [\n transition(':increment', [style({opacity: 1}), animate('500ms ease-in')]),\n ]),\n ],\n})\nexport class TuiDocDocumentationComponent implements AfterContentInit {\n @Input()\n heading = '';\n\n @Input()\n showValues = true;\n\n @Input()\n isAPI = false;\n\n @ContentChildren(TuiDocDocumentationPropertyConnectorDirective)\n propertiesConnectors: QueryList<TuiDocDocumentationPropertyConnectorDirective<any>> =\n EMPTY_QUERY;\n\n activeItemIndex = 0;\n\n constructor(\n @Inject(ChangeDetectorRef) private readonly changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_DOC_DOCUMENTATION_TEXTS)\n readonly texts: [string, string, string, string, string],\n ) {}\n\n ngAfterContentInit() {\n itemsQueryListObservable(this.propertiesConnectors)\n .pipe(\n switchMap(items => merge(...items.map(({changed$}) => changed$))),\n watch(this.changeDetectorRef),\n )\n .subscribe();\n }\n\n get type(): string {\n return this.isAPI ? this.texts[0] : this.texts[1];\n }\n\n getColor(color: string): string {\n if (color.length === 4) {\n return color\n .split('')\n .reduce<string[]>((result, current) => [...result, current, current], [])\n .join('')\n .replace('#', '');\n }\n\n if (color.startsWith('#')) {\n return color;\n }\n\n if (color === 'transparent') {\n return '#000000';\n }\n\n const parsed = color\n .replace('rgb(', '')\n .replace('rgba(', '')\n .replace(')', '')\n .replace(' ', '')\n .split(',')\n .map(v => Number.parseInt(v, 10)) as [number, number, number];\n\n return rgbToHex(...parsed);\n }\n\n getOpacity(color: string): number {\n if (color.startsWith('#') || color.startsWith('rgb(')) {\n return 100;\n }\n\n if (color === 'transparent') {\n return 0;\n }\n\n const lastComma = color.lastIndexOf(',');\n const parsed = color\n .substr(lastComma)\n .replace(')', '')\n .replace(' ', '')\n .replace(',', '');\n\n return Math.round(Number.parseFloat(parsed) * 100);\n }\n\n onColorChange(\n connector: TuiDocDocumentationPropertyConnectorDirective<string>,\n color: string,\n ) {\n const opacity = this.getOpacity(connector.documentationPropertyValue || '');\n\n if (opacity === 100) {\n connector.onValueChange(color);\n\n return;\n }\n\n const rgb = hexToRgb(color).join(', ');\n const result = `rgba(${rgb}, ${opacity / 100})`;\n\n connector.onValueChange(result);\n }\n\n onOpacityChange(\n connector: TuiDocDocumentationPropertyConnectorDirective<string>,\n opacity: number,\n ) {\n const hex = this.getColor(connector.documentationPropertyValue || '');\n const rgb = hexToRgb(hex);\n const result = `rgba(${rgb}, ${opacity / 100})`;\n\n connector.onValueChange(result);\n }\n\n stripOptional(name: string): string {\n return name.replace('?', '');\n }\n\n isOptional(name: string): boolean {\n return name.includes('?');\n }\n\n showCleaner(type: string): boolean {\n return type.includes('null');\n }\n\n showContentTooltip(type: string): boolean {\n return type.includes('PolymorpheusContent');\n }\n\n inspectAny(data: any): string {\n return inspectAny(data, 2);\n }\n}\n","import {Directive, Inject, Input, Renderer2} from '@angular/core';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR, TuiFocusableElementAccessor} from '@taiga-ui/cdk';\n\n@Directive({\n selector: '[tuiInputOpacity]',\n})\nexport class TuiInputOpacityDirective {\n @Input()\n set tuiInputOpacity(opacity: number) {\n const {nativeFocusableElement} = this.tuiFocusableComponent;\n\n if (nativeFocusableElement) {\n this.renderer.setStyle(nativeFocusableElement, 'opacity', opacity / 100);\n }\n }\n\n constructor(\n @Inject(Renderer2) private readonly renderer: Renderer2,\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n private readonly tuiFocusableComponent: TuiFocusableElementAccessor,\n ) {}\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiInputOpacityDirective} from './input-opacity.directive';\n\n@NgModule({\n declarations: [TuiInputOpacityDirective],\n exports: [TuiInputOpacityDirective],\n})\nexport class TuiInputOpacityModule {}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {RouterModule} from '@angular/router';\nimport {\n TuiDataListModule,\n TuiDropdownControllerModule,\n TuiGroupModule,\n TuiHintControllerModule,\n TuiLinkModule,\n TuiModeModule,\n TuiNotificationModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiTooltipModule,\n} from '@taiga-ui/core';\nimport {\n TuiBadgeModule,\n TuiDataListWrapperModule,\n TuiInputCountModule,\n TuiSelectModule,\n TuiToggleModule,\n} from '@taiga-ui/kit';\n\nimport {TuiInputOpacityModule} from '../../internal/input-opacity/input-opacity.module';\nimport {TuiDocDocumentationComponent} from './documentation.component';\nimport {TuiDocDocumentationPropertyConnectorDirective} from './documentation-property-connector.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n RouterModule,\n TuiBadgeModule,\n TuiSelectModule,\n TuiToggleModule,\n TuiTooltipModule,\n TuiLinkModule,\n TuiInputCountModule,\n TuiModeModule,\n TuiGroupModule,\n TuiInputOpacityModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiHintControllerModule,\n TuiDropdownControllerModule,\n TuiDataListModule,\n TuiDataListWrapperModule,\n TuiNotificationModule,\n ],\n declarations: [\n TuiDocDocumentationComponent,\n TuiDocDocumentationPropertyConnectorDirective,\n ],\n exports: [\n TuiDocDocumentationComponent,\n TuiDocDocumentationPropertyConnectorDirective,\n ],\n})\nexport class TuiDocDocumentationModule {}\n","import {InjectionToken} from '@angular/core';\n\nimport {CodeEditor} from '../interfaces/code-editor';\n\nexport const TUI_DOC_CODE_EDITOR = new InjectionToken<CodeEditor>(\n 'Contains service for opening online IDE e.g. Stackblitz',\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiHandler} from '@taiga-ui/cdk';\nimport {identity} from 'rxjs';\n\nexport const TUI_DOC_EXAMPLE_CONTENT_PROCESSOR: InjectionToken<\n TuiHandler<Record<string, string>, Record<string, string>>\n> = new InjectionToken('Processes content in example', {factory: () => identity});\n","import {TuiDocExample} from '../interfaces/page';\nimport {rawLoad} from './raw-load';\n\nexport async function rawLoadRecord(\n example: TuiDocExample,\n): Promise<Record<string, string>> {\n const processedContent: Record<string, string> = {};\n\n for (const [key, content] of Object.entries(example)) {\n processedContent[key] = await rawLoad(content);\n }\n\n return processedContent;\n}\n","import {Clipboard} from '@angular/cdk/clipboard';\nimport {\n Attribute,\n ChangeDetectionStrategy,\n Component,\n Inject,\n Input,\n Optional,\n} from '@angular/core';\nimport {LOCATION} from '@ng-web-apis/common';\nimport {TUI_IS_CYPRESS, TuiHandler} from '@taiga-ui/cdk';\nimport {TuiNotification, TuiNotificationsService} from '@taiga-ui/core';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {map, switchMap} from 'rxjs/operators';\n\nimport {CodeEditor} from '../../interfaces/code-editor';\nimport {TuiDocExample} from '../../interfaces/page';\nimport {TUI_DOC_CODE_EDITOR} from '../../tokens/code-editor';\nimport {TUI_DOC_EXAMPLE_CONTENT_PROCESSOR} from '../../tokens/example-content-processor';\nimport {TUI_DOC_EXAMPLE_TEXTS} from '../../tokens/i18n';\nimport {rawLoadRecord} from '../../utils/raw-load-record';\n\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Component({\n selector: 'tui-doc-example',\n templateUrl: './example.template.html',\n styleUrls: ['./example.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocExampleComponent {\n private readonly rawLoader$$ = new BehaviorSubject<TuiDocExample>({});\n\n @Input()\n heading: PolymorpheusContent = '';\n\n @Input()\n description: PolymorpheusContent = '';\n\n @Input()\n set content(content: TuiDocExample) {\n this.rawLoader$$.next(content);\n }\n\n @Input()\n componentName: string = this.location.pathname.slice(1);\n\n readonly defaultTabIndex = 0;\n\n readonly defaultTab = this.texts[this.defaultTabIndex];\n\n activeItemIndex = this.defaultTabIndex;\n\n readonly copy$ = this.copyTexts$.pipe(map(([copy]) => copy));\n\n readonly processor$: Observable<Record<string, string>> = this.rawLoader$$.pipe(\n switchMap(rawLoadRecord),\n map(this.processContent),\n );\n\n constructor(\n @Attribute('id')\n readonly id: string | null,\n @Inject(Clipboard) private readonly clipboard: Clipboard,\n @Inject(TuiNotificationsService)\n private readonly notifications: TuiNotificationsService,\n @Inject(LOCATION) private readonly location: Location,\n @Inject(TUI_COPY_TEXTS) private readonly copyTexts$: Observable<[string, string]>,\n @Inject(TUI_DOC_EXAMPLE_TEXTS) readonly texts: [string, string, string],\n @Optional()\n @Inject(TUI_DOC_CODE_EDITOR)\n readonly codeEditor: CodeEditor | null,\n @Inject(TUI_DOC_EXAMPLE_CONTENT_PROCESSOR)\n private readonly processContent: TuiHandler<\n Record<string, string>,\n Record<string, string>\n >,\n @Inject(TUI_IS_CYPRESS) readonly isCypress: boolean,\n ) {}\n\n copyExampleLink() {\n const hashPosition = this.location.href.indexOf('#');\n const currentUrl =\n hashPosition > -1\n ? this.location.href.substr(0, hashPosition)\n : this.location.href;\n const url = `${currentUrl}#${this.id}`;\n\n this.clipboard.copy(url);\n this.notifications\n .show(this.texts[1], {\n label: this.texts[2],\n status: TuiNotification.Success,\n })\n .subscribe();\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({name: 'tuiDocExampleGetTabs'})\nexport class TuiDocExampleGetTabsPipe implements PipeTransform {\n transform(content: Record<string, string>, defaultTab: string): string[] {\n return [defaultTab, ...Object.keys(content)];\n }\n}\n","import {ClipboardModule} from '@angular/cdk/clipboard';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiButtonModule} from '@taiga-ui/core';\nimport {TuiTabsModule} from '@taiga-ui/kit';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiDocCodeModule} from '../code/code.module';\nimport {TuiDocCopyModule} from '../copy/copy.module';\nimport {TuiDocExampleComponent} from './example.component';\nimport {TuiDocExampleGetTabsPipe} from './example-get-tabs.pipe';\n\n@NgModule({\n imports: [\n CommonModule,\n ClipboardModule,\n TuiTabsModule,\n TuiButtonModule,\n TuiDocCopyModule,\n TuiDocCodeModule,\n PolymorpheusModule,\n ],\n declarations: [TuiDocExampleComponent, TuiDocExampleGetTabsPipe],\n exports: [TuiDocExampleComponent, TuiDocExampleGetTabsPipe],\n})\nexport class TuiDocExampleModule {}\n","import {\n Component,\n forwardRef,\n HostBinding,\n Inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport {LOCAL_STORAGE, WINDOW} from '@ng-web-apis/common';\nimport {TuiSwipeService} from '@taiga-ui/cdk';\nimport {TuiBrightness, TuiModeDirective} from '@taiga-ui/core';\nimport {Subject} from 'rxjs';\n\n// @dynamic\n@Component({\n selector: 'tui-doc-main',\n templateUrl: './main.template.html',\n styleUrls: ['./main.style.less'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: TuiModeDirective,\n useExisting: forwardRef(() => TuiDocMainComponent),\n },\n TuiSwipeService,\n ],\n})\nexport class TuiDocMainComponent {\n night =\n this.storage.getItem('night') === 'true' ||\n (this.storage.getItem('night') === null &&\n this.windowRef.matchMedia('(prefers-color-scheme: dark)').matches);\n\n readonly change$ = new Subject<void>();\n\n constructor(\n @Inject(LOCAL_STORAGE) private readonly storage: Storage,\n @Inject(WINDOW) private readonly windowRef: Window,\n ) {}\n\n @HostBinding('attr.data-mode')\n get mode(): TuiBrightness | null {\n return this.night ? 'onDark' : null;\n }\n\n onMode(night: boolean) {\n this.night = night;\n this.change$.next();\n this.storage.setItem('night', String(night));\n }\n}\n","import {Directive, ElementRef, Inject, Input} from '@angular/core';\nimport {getElementObscurers, TuiDestroyService} from '@taiga-ui/cdk';\nimport {Subject} from 'rxjs';\nimport {debounceTime, filter, takeUntil} from 'rxjs/operators';\n\n@Directive({\n selector: '[scrollIntoView]',\n providers: [TuiDestroyService],\n})\nexport class ScrollIntoViewDirective {\n @Input()\n set scrollIntoView(shallWe: boolean) {\n this.scroll$.next(shallWe);\n }\n\n private readonly scroll$ = new Subject<boolean>();\n\n constructor(\n @Inject(TuiDestroyService) destroy$: TuiDestroyService,\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n ) {\n this.scroll$\n .pipe(\n debounceTime(750),\n filter(shallWe => shallWe && !!getElementObscurers(nativeElement)),\n takeUntil(destroy$),\n )\n .subscribe(() => {\n nativeElement.scrollIntoView();\n });\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {ScrollIntoViewDirective} from './scroll-into-view.directive';\n\n@NgModule({\n declarations: [ScrollIntoViewDirective],\n exports: [ScrollIntoViewDirective],\n})\nexport class ScrollIntoViewModule {}\n","const MAP: Record<string, string> = {\n а: 'f',\n б: ',',\n в: 'd',\n г: 'u',\n д: 'l',\n е: 't',\n ё: '`',\n ж: ';',\n з: 'p',\n и: 'b',\n й: 'q',\n к: 'r',\n л: 'k',\n м: 'v',\n н: 'y',\n о: 'j',\n п: 'g',\n р: 'h',\n с: 'c',\n т: 'n',\n у: 'e',\n ф: 'a',\n х: '[',\n ц: 'w',\n ч: 'x',\n ш: 'i',\n щ: 'o',\n ъ: ']',\n ы: 's',\n ь: 'm',\n ю: '.',\n я: 'z',\n};\n\n/**\n * Translates text mistakenly typed in the Russian layout into English\n * @param string string with Russian layout characters\n * @return string with English layout characters\n */\nexport function transliterateKeyboardLayout(string: string): string {\n let newStr = '';\n\n for (let i = 0; i < string.length; i++) {\n newStr += string.charAt(i) in MAP ? MAP[string.charAt(i)] : string.charAt(i);\n }\n\n return newStr;\n}\n","import {InjectionToken} from '@angular/core';\n\nimport {TuiDocPages} from '../types/pages';\n\nexport const TUI_DOC_PAGES: InjectionToken<TuiDocPages> = new InjectionToken<TuiDocPages>(\n 'Documentation pages',\n {\n factory: () => [],\n },\n);\n","import {InjectionToken} from '@angular/core';\n\nexport const TUI_DOC_TITLE = new InjectionToken<string>('Page title', {\n factory: () => '',\n});\n","import {InjectionToken, Provider} from '@angular/core';\nimport {ActivatedRoute, NavigationEnd, Router} from '@angular/router';\nimport {isPresent, TuiDestroyService} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\nimport {filter, map, mergeMap, takeUntil} from 'rxjs/operators';\n\nimport {TUI_DOC_PAGES} from '../../tokens/pages';\nimport {TUI_DOC_TITLE} from '../../tokens/title';\nimport {TuiDocPages} from '../../types/pages';\n\nexport const NAVIGATION_TITLE = new InjectionToken<Observable<string>>('Page title');\nexport const NAVIGATION_LABELS = new InjectionToken<readonly string[]>(\n 'Navigation sections labels for search',\n);\nexport const NAVIGATION_ITEMS: InjectionToken<ReadonlyArray<TuiDocPages>> =\n new InjectionToken<ReadonlyArray<TuiDocPages>>('Navigation pages');\n\nexport const NAVIGATION_PROVIDERS: Provider[] = [\n TuiDestroyService,\n {\n provide: NAVIGATION_TITLE,\n deps: [Router, ActivatedRoute, TUI_DOC_TITLE, TuiDestroyService],\n useFactory: titleProviderFactory,\n },\n {\n provide: NAVIGATION_LABELS,\n deps: [TUI_DOC_PAGES],\n useFactory: labelsProviderFactory,\n },\n {\n provide: NAVIGATION_ITEMS,\n deps: [TUI_DOC_PAGES],\n useFactory: itemsProviderFactory,\n },\n];\n\nexport function titleProviderFactory(\n router: Router,\n activatedRoute: ActivatedRoute,\n titlePrefix: string,\n destroy$: Observable<void>,\n): Observable<string> {\n return router.events.pipe(\n filter(event => event instanceof NavigationEnd),\n map(() => activatedRoute.firstChild),\n filter(isPresent),\n mergeMap(({data}) => data),\n map(({title}) => titlePrefix + title),\n takeUntil(destroy$),\n );\n}\n\nexport function labelsProviderFactory(pages: TuiDocPages): readonly string[] {\n return pages\n .map(({section}) => section)\n .filter(isPresent)\n .filter((item, index, array) => array.indexOf(item) === index);\n}\n\nexport function itemsProviderFactory(pages: TuiDocPages): ReadonlyArray<TuiDocPages> {\n const labels = labelsProviderFactory(pages);\n\n return [\n ...labels.map(label => pages.filter(({section}) => section === label)),\n pages.filter(page => !page.section),\n ];\n}\n","import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Optional,\n} from '@angular/core';\nimport {Title} from '@angular/platform-browser';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {TuiSidebarDirective} from '@taiga-ui/addon-mobile';\nimport {tuiPure, uniqBy} from '@taiga-ui/cdk';\nimport {TuiBrightness, TuiModeDirective} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\nimport {map, startWith} from 'rxjs/operators';\n\nimport {TuiDocPage} from '../../interfaces/page';\nimport {TUI_DOC_SEARCH_TEXT} from '../../tokens/i18n';\nimport {TuiDocPages} from '../../types/pages';\nimport {transliterateKeyboardLayout} from '../../utils/transliterate-keyboard-layout';\nimport {\n NAVIGATION_ITEMS,\n NAVIGATION_LABELS,\n NAVIGATION_PROVIDERS,\n NAVIGATION_TITLE,\n} from './navigation.providers';\n\nconst SCROLL_INTO_VIEW_DELAY = 200;\n\n// @dynamic\n@Component({\n selector: 'tui-doc-navigation',\n templateUrl: 'navigation.template.html',\n styleUrls: ['navigation.style.less'],\n providers: NAVIGATION_PROVIDERS,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocNavigationComponent {\n @HostBinding('class._open')\n menuOpen = false;\n\n search = '';\n open = false;\n openPagesArr: boolean[] = [];\n openPagesGroupsArr: boolean[] = [];\n active = '';\n\n readonly mode$: Observable<TuiBrightness> = this.mode.change$.pipe(\n startWith(null),\n map(() => this.mode.mode || 'onLight'),\n );\n\n constructor(\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(Title) titleService: Title,\n @Inject(NAVIGATION_TITLE) title$: Observable<string>,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TuiModeDirective)\n private readonly mode: TuiModeDirective,\n @Optional()\n @Inject(TuiSidebarDirective)\n readonly sidebar: unknown,\n @Inject(NAVIGATION_LABELS) readonly labels: string[],\n @Inject(NAVIGATION_ITEMS)\n readonly items: ReadonlyArray<TuiDocPages>,\n @Inject(TUI_DOC_SEARCH_TEXT) readonly searchText: string,\n @Inject(Router) private readonly router: Router,\n @Inject(ActivatedRoute) private readonly activatedRoute: ActivatedRoute,\n ) {\n // Angular can't navigate no anchor links\n // https://stackoverflow.com/questions/36101756/angular2-routing-with-hashtag-to-page-anchor\n title$.subscribe(title => {\n changeDetectorRef.markForCheck();\n titleService.setTitle(title);\n this.openActivePageGroup();\n this.handleAnchorLink(this.activatedRoute.snapshot.fragment);\n });\n }\n\n get canOpen(): boolean {\n return this.search.length > 2;\n }\n\n get filteredItems(): ReadonlyArray<ReadonlyArray<TuiDocPage>> {\n return this.filterItems(this.flattenSubPages(this.items), this.search);\n }\n\n get itemsWithoutSections() {\n return this.items[this.items.length - 1];\n }\n\n isActive(route: string): boolean {\n return route === this.active;\n }\n\n onGroupClick(index: number) {\n this.openPagesGroupsArr[index] = !this.openPagesGroupsArr[index];\n }\n\n closeMenu() {\n this.menuOpen = false;\n }\n\n onSearchChange(search: string) {\n this.search = search;\n this.open = this.canOpen;\n }\n\n onClick() {\n this.open = false;\n this.menuOpen = false;\n this.search = '';\n this.openActivePageGroup();\n }\n\n @tuiPure\n private filterItems(\n items: ReadonlyArray<ReadonlyArray<TuiDocPage>>,\n search: string,\n ): ReadonlyArray<ReadonlyArray<TuiDocPage>> {\n return items.map(section =>\n uniqBy(\n section.filter(({title, keywords = ''}) => {\n title = title.toLowerCase();\n search = search.toLowerCase();\n keywords = keywords.toLowerCase();\n\n return (\n title.includes(search) ||\n keywords.includes(search) ||\n title.includes(transliterateKeyboardLayout(search)) ||\n keywords.includes(transliterateKeyboardLayout(search)) ||\n search.replace(/-/gi, '').includes(title)\n );\n }),\n 'title',\n ),\n );\n }\n\n @tuiPure\n private flattenSubPages(\n items: ReadonlyArray<TuiDocPages>,\n ): ReadonlyArray<ReadonlyArray<TuiDocPage>> {\n return items.reduce<ReadonlyArray<ReadonlyArray<TuiDocPage>>>(\n (array, item) => [\n ...array,\n item.reduce<ReadonlyArray<TuiDocPage>>(\n (pages, page) =>\n 'subPages' in page\n ? [...pages, ...page.subPages]\n : [...pages, page],\n [],\n ),\n ],\n [],\n );\n }\n\n private isActiveRoute(route: string): boolean {\n return this.router.isActive(route, false);\n }\n\n private handleAnchorLink(hash: string) {\n setTimeout(() => {\n this.navigateToAnchorLink(hash);\n }, SCROLL_INTO_VIEW_DELAY);\n }\n\n private openActivePageGroup() {\n this.items.forEach((pages, pagesIndex) => {\n pages.forEach((page, pageIndex) => {\n if ('route' in page && this.isActiveRoute(page.route)) {\n this.openPagesArr[pagesIndex] = true;\n this.active = page.route;\n }\n\n if ('subPages' in page) {\n page.subPages.forEach(subPage => {\n if (this.isActiveRoute(subPage.route)) {\n this.openPagesArr[pagesIndex] = true;\n this.openPagesGroupsArr[pagesIndex * 100 + pageIndex] = true;\n this.active = subPage.route;\n }\n });\n }\n });\n });\n }\n\n private navigateToAnchorLink(fragment: string) {\n const element = fragment && this.documentRef.querySelector(`#${fragment}`);\n\n if (!element) {\n return;\n }\n\n element.classList.add('tui-doc-animated-example');\n element.scrollIntoView({\n block: 'start',\n inline: 'nearest',\n behavior: 'smooth',\n });\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {RouterModule} from '@angular/router';\nimport {TuiActiveZoneModule, TuiAutoFocusModule, TuiLetModule} from '@taiga-ui/cdk';\nimport {\n TuiButtonModule,\n TuiDataListModule,\n TuiDropdownControllerModule,\n TuiExpandModule,\n TuiHostedDropdownModule,\n TuiLinkModule,\n TuiModeModule,\n TuiPrimitiveTextfieldModule,\n TuiScrollbarModule,\n TuiSvgModule,\n TuiTextfieldControllerModule,\n} from '@taiga-ui/core';\nimport {TuiAccordionModule} from '@taiga-ui/kit';\n\nimport {ScrollIntoViewModule} from '../../directives/scroll-into-view/scroll-into-view.module';\nimport {TuiDocNavigationComponent} from './navigation.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n RouterModule,\n ScrollIntoViewModule,\n TuiButtonModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiActiveZoneModule,\n TuiLetModule,\n TuiModeModule,\n TuiLinkModule,\n TuiExpandModule,\n TuiHostedDropdownModule,\n TuiDropdownControllerModule,\n TuiAccordionModule,\n TuiScrollbarModule,\n TuiSvgModule,\n TuiDataListModule,\n TuiAutoFocusModule,\n ],\n declarations: [TuiDocNavigationComponent],\n exports: [TuiDocNavigationComponent],\n})\nexport class TuiDocNavigationModule {}\n","import {InjectionToken} from '@angular/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport const TUI_DOC_LOGO = new InjectionToken<PolymorpheusContent>('Main logo', {\n factory: () => '',\n});\n","import {ChangeDetectionStrategy, Component, Inject} from '@angular/core';\nimport {Router} from '@angular/router';\nimport {TuiSwipeService} from '@taiga-ui/cdk';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {merge, Subject} from 'rxjs';\nimport {distinctUntilChanged, filter, map, mapTo, startWith} from 'rxjs/operators';\n\nimport {TUI_DOC_MENU_TEXT} from '../../tokens/i18n';\nimport {TUI_DOC_LOGO} from '../../tokens/logo';\n\n@Component({\n selector: 'header[tuiDocHeader]',\n templateUrl: './header.template.html',\n styleUrls: ['./header.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocHeaderComponent {\n private readonly stream$ = new Subject<boolean>();\n\n readonly open$ = merge(\n this.router.events.pipe(mapTo(false)),\n this.stream$,\n this.swipes$.pipe(\n filter(swipe => swipe.direction === 'left' || swipe.direction === 'right'),\n map(swipe => swipe.direction === 'right'),\n ),\n ).pipe(startWith(false), distinctUntilChanged());\n\n constructor(\n @Inject(TUI_DOC_LOGO) readonly logo: PolymorpheusContent,\n @Inject(TUI_DOC_MENU_TEXT) readonly menu: string,\n @Inject(Router) private readonly router: Router,\n @Inject(TuiSwipeService) private readonly swipes$: TuiSwipeService,\n ) {}\n\n onClick() {\n this.stream$.next(true);\n }\n\n onActiveZone(active: boolean) {\n if (!active) {\n this.stream$.next(false);\n }\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiSidebarModule} from '@taiga-ui/addon-mobile';\nimport {TuiActiveZoneModule} from '@taiga-ui/cdk';\nimport {TuiButtonModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiDocNavigationModule} from '../../components/navigation/navigation.module';\nimport {TuiDocHeaderComponent} from './header.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiButtonModule,\n TuiSidebarModule,\n TuiActiveZoneModule,\n TuiDocNavigationModule,\n ],\n declarations: [TuiDocHeaderComponent],\n exports: [TuiDocHeaderComponent],\n})\nexport class TuiDocHeaderModule {}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {RouterModule} from '@angular/router';\nimport {\n TuiDialogModule,\n TuiNotificationsModule,\n TuiRootModule,\n TuiThemeNightModule,\n} from '@taiga-ui/core';\nimport {TuiToggleModule} from '@taiga-ui/kit';\n\nimport {TuiDocHeaderModule} from '../../internal/header/header.module';\nimport {TuiDocNavigationModule} from '../navigation/navigation.module';\nimport {TuiDocMainComponent} from './main.component';\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n FormsModule,\n TuiToggleModule,\n TuiThemeNightModule,\n TuiDocHeaderModule,\n TuiRootModule,\n TuiDialogModule,\n TuiNotificationsModule,\n TuiDocNavigationModule,\n ],\n declarations: [TuiDocMainComponent],\n exports: [TuiDocMainComponent],\n})\nexport class TuiDocMainModule {}\n","import {InjectionToken} from '@angular/core';\n\nexport const TUI_DOC_DEFAULT_TABS = new InjectionToken<readonly string[]>(\n 'Array of default tab names',\n {\n factory: () => [],\n },\n);\n","import {InjectionToken} from '@angular/core';\n\nexport const TUI_DOC_SEE_ALSO = new InjectionToken<ReadonlyArray<readonly string[]>>(\n 'Array of arrays of related pages',\n {\n factory: () => [],\n },\n);\n","import {ElementRef, InjectionToken, Provider} from '@angular/core';\n\nimport {TUI_DOC_SEE_ALSO} from '../../tokens/see-also';\n\nexport const PAGE_SEE_ALSO = new InjectionToken<readonly string[]>('Page see also');\n\nexport const PAGE_PROVIDERS: Provider[] = [\n {\n provide: PAGE_SEE_ALSO,\n deps: [ElementRef, TUI_DOC_SEE_ALSO],\n useFactory: seeAlsoProviderFactory,\n },\n];\n\nexport function seeAlsoProviderFactory(\n {nativeElement}: ElementRef,\n seeAlsoGroups: ReadonlyArray<readonly string[]>,\n): readonly string[] {\n const groups =\n seeAlsoGroups.filter(group => group.indexOf(nativeElement.header) !== -1) || [];\n\n const seeAlsoSet = new Set(\n groups\n .join()\n .split(',')\n .filter(component => component && component !== nativeElement.header),\n );\n\n return Array.from(seeAlsoSet);\n}\n","import {Directive, Inject, Input, TemplateRef} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk';\n\n@Directive({\n selector: '[pageTab]',\n})\nexport class TuiDocPageTabConnectorDirective {\n @Input()\n @tuiDefaultProp()\n pageTab?: string;\n\n constructor(@Inject(TemplateRef) readonly template: TemplateRef<{}>) {}\n}\n","import {\n Attribute,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Inject,\n Input,\n QueryList,\n} from '@angular/core';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk';\n\nimport {TUI_DOC_DEFAULT_TABS} from '../../tokens/default-tabs';\nimport {PAGE_PROVIDERS, PAGE_SEE_ALSO} from './page.providers';\nimport {TuiDocPageTabConnectorDirective} from './page-tab.directive';\n\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Component({\n selector: 'tui-doc-page',\n templateUrl: './page.template.html',\n styleUrls: ['./page.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: PAGE_PROVIDERS,\n})\nexport class TuiDocPageComponent {\n @Input()\n header = '';\n\n @Input()\n package = '';\n\n @Input()\n type = '';\n\n @Input()\n path = '';\n\n @ContentChildren(TuiDocPageTabConnectorDirective)\n readonly tabConnectors: QueryList<TuiDocPageTabConnectorDirective> = EMPTY_QUERY;\n\n activeItemIndex = NaN;\n\n constructor(\n @Attribute('deprecated') readonly deprecated: string | null,\n @Inject(TUI_DOC_DEFAULT_TABS) readonly defaultTabs: readonly string[],\n @Inject(PAGE_SEE_ALSO) readonly seeAlso: readonly string[],\n ) {}\n\n get showSeeAlso(): boolean {\n return !!this.seeAlso.length && this.activeItemIndex === 0;\n }\n\n getRouterLink(tab: string = ''): string {\n return `./${tab.replace(/ /g, '_')}`;\n }\n}\n","import {ChangeDetectionStrategy, Component, Inject, Input} from '@angular/core';\n\nimport {TuiDocPage, TuiDocPageGroup} from '../../interfaces/page';\nimport {TUI_DOC_SEE_ALSO_TEXT} from '../../tokens/i18n';\nimport {TUI_DOC_PAGES} from '../../tokens/pages';\n\n// @dynamic\n@Component({\n selector: 'tui-doc-see-also',\n templateUrl: './see-also.template.html',\n styleUrls: ['./see-also.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocSeeAlsoComponent {\n @Input()\n seeAlso: readonly string[] = [];\n\n constructor(\n @Inject(TUI_DOC_SEE_ALSO_TEXT) readonly text: string,\n @Inject(TUI_DOC_PAGES)\n private readonly pages: ReadonlyArray<TuiDocPageGroup | TuiDocPage>,\n ) {}\n\n getRouterLink(pageTitle: string): string {\n for (let i = 0; i < this.pages.length; i++) {\n const page = this.pages\n .map(page => ('subPages' in page ? page.subPages : [page]))\n .reduce((pages, subPages) => [...pages, ...subPages], [])\n .find((page: TuiDocPage) => page.title === pageTitle);\n\n if (page && page.route) {\n return page.route;\n }\n }\n\n return '';\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {RouterModule} from '@angular/router';\nimport {TuiLinkModule} from '@taiga-ui/core';\n\nimport {TuiDocSeeAlsoComponent} from './see-also.component';\n\n@NgModule({\n imports: [CommonModule, RouterModule, TuiLinkModule],\n declarations: [TuiDocSeeAlsoComponent],\n exports: [TuiDocSeeAlsoComponent],\n})\nexport class TuiDocSeeAlsoModule {}\n","import {InjectionToken} from '@angular/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiDocSourceCodePathOptions} from '../interfaces/source-code-path-options';\n\nexport const TUI_DOC_SOURCE_CODE: InjectionToken<\n PolymorpheusContent<TuiDocSourceCodePathOptions>\n> = new InjectionToken<PolymorpheusContent<TuiDocSourceCodePathOptions>>(\n 'Source code link',\n {\n factory: () => '',\n },\n);\n","import {ChangeDetectionStrategy, Component, Inject, Input} from '@angular/core';\nimport {tuiPure} from '@taiga-ui/cdk';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiDocSourceCodePathOptions} from '../../interfaces/source-code-path-options';\nimport {TUI_DOC_SOURCE_CODE_TEXT} from '../../tokens/i18n';\nimport {TUI_DOC_SOURCE_CODE} from '../../tokens/source-code';\n\n@Component({\n selector: 'tui-doc-source-code',\n templateUrl: './source-code.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocSourceCodeComponent {\n @Input()\n header = '';\n\n @Input()\n package = '';\n\n @Input()\n type = '';\n\n @Input()\n path = '';\n\n constructor(\n @Inject(TUI_DOC_SOURCE_CODE)\n readonly sourceCode: PolymorpheusContent<TuiDocSourceCodePathOptions>,\n @Inject(TUI_DOC_SOURCE_CODE_TEXT) readonly text: string,\n ) {}\n\n get pathOptions(): TuiDocSourceCodePathOptions {\n return this.getPathOptions(this.header, this.package, this.type, this.path);\n }\n\n @tuiPure\n private getPathOptions(\n header: string,\n packageName: string,\n type: string,\n path: string,\n ): TuiDocSourceCodePathOptions {\n return {\n header,\n package: packageName,\n type,\n path,\n };\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiButtonModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiDocSourceCodeComponent} from './source-code.component';\n\n@NgModule({\n declarations: [TuiDocSourceCodeComponent],\n imports: [CommonModule, PolymorpheusModule, TuiButtonModule],\n exports: [TuiDocSourceCodeComponent],\n})\nexport class TuiDocSourceCodeModule {}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {RouterModule} from '@angular/router';\nimport {TuiTabsModule, TuiTagModule} from '@taiga-ui/kit';\n\nimport {TuiDocSeeAlsoModule} from '../../internal/see-also/see-also.module';\nimport {TuiDocSourceCodeModule} from '../../internal/source-code/source-code.module';\nimport {TuiDocPageComponent} from './page.component';\nimport {TuiDocPageTabConnectorDirective} from './page-tab.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n TuiDocSeeAlsoModule,\n TuiTabsModule,\n TuiTagModule,\n TuiDocSourceCodeModule,\n ],\n declarations: [TuiDocPageComponent, TuiDocPageTabConnectorDirective],\n exports: [TuiDocPageComponent, TuiDocPageTabConnectorDirective],\n})\nexport class TuiDocPageModule {}\n","import {Provider} from '@angular/core';\n\nimport {\n TUI_DOC_DEMO_TEXTS,\n TUI_DOC_DOCUMENTATION_TEXTS,\n TUI_DOC_EXAMPLE_TEXTS,\n TUI_DOC_MENU_TEXT,\n TUI_DOC_SEARCH_TEXT,\n TUI_DOC_SEE_ALSO_TEXT,\n TUI_DOC_SOURCE_CODE_TEXT,\n} from '../tokens/i18n';\n\n// TODO: remove in ivy compilation\nexport const DEMO_TEXTS = ['Сделано с помощью директивы: ', 'Фон', 'Детали формы'];\nexport const DOC_TEXTS = [\n 'Аргумент',\n 'Тип',\n 'Имя и описание',\n 'Значение',\n 'Для работы с динамическими шаблонами используется',\n];\nexport const EXAMPLE_TEXTS = ['Превью', 'Ссылка на пример скопирована', 'Готово'];\n\nexport const TUI_DOC_RUSSIAN: Provider[] = [\n {\n provide: TUI_DOC_DEMO_TEXTS,\n useValue: DEMO_TEXTS,\n },\n {\n provide: TUI_DOC_DOCUMENTATION_TEXTS,\n useValue: DOC_TEXTS,\n },\n {\n provide: TUI_DOC_EXAMPLE_TEXTS,\n useValue: EXAMPLE_TEXTS,\n },\n {\n provide: TUI_DOC_MENU_TEXT,\n useValue: 'Меню',\n },\n {\n provide: TUI_DOC_SEARCH_TEXT,\n useValue: 'Поиск',\n },\n {\n provide: TUI_DOC_SEE_ALSO_TEXT,\n useValue: 'Смотрите также',\n },\n {\n provide: TUI_DOC_SOURCE_CODE_TEXT,\n useValue: 'Исходный код',\n },\n];\n","import {NgModule} from '@angular/core';\n\nimport {TuiDocCodeModule} from './components/code/code.module';\nimport {TuiDocDemoModule} from './components/demo/demo.module';\nimport {TuiDocDocumentationModule} from './components/documentation/documentation.module';\nimport {TuiDocExampleModule} from './components/example/example.module';\nimport {TuiDocPageModule} from './components/page/page.module';\n\n@NgModule({\n exports: [\n TuiDocCodeModule,\n TuiDocDemoModule,\n TuiDocDocumentationModule,\n TuiDocPageModule,\n TuiDocExampleModule,\n ],\n})\nexport class TuiAddonDocModule {}\n","import {Type} from '@angular/core';\nimport {Routes} from '@angular/router';\n\n/**\n * Generates typical page routing structure\n */\nexport function generateRoutes(type: Type<any>): Routes {\n return [\n {\n path: '',\n component: type,\n children: [\n {\n path: ':tab',\n component: type,\n },\n ],\n },\n ];\n}\n","/**\n * Public API Surface of @taiga-ui/addon-doc\n */\n\n/* Components */\nexport * from './components/code/code.component';\nexport * from './components/code/code.module';\nexport * from './components/code/parse-code-block';\nexport * from './components/copy/copy.component';\nexport * from './components/copy/copy.module';\nexport * from './components/demo/demo.component';\nexport * from './components/demo/demo.module';\nexport * from './components/documentation/documentation.component';\nexport * from './components/documentation/documentation.module';\nexport * from './components/documentation/documentation-property-connector.directive';\nexport * from './components/example/example.component';\nexport * from './components/example/example.module';\nexport * from './components/main/main.component';\nexport * from './components/main/main.module';\nexport * from './components/navigation/navigation.component';\nexport * from './components/navigation/navigation.module';\nexport * from './components/page/page.component';\nexport * from './components/page/page.module';\nexport * from './components/page/page-tab.directive';\n\n/* Directives */\nexport * from './directives/scroll-into-view/scroll-into-view.directive';\nexport * from './directives/scroll-into-view/scroll-into-view.module';\n\n/* Interfaces */\nexport * from './interfaces/code-editor';\nexport * from './interfaces/page';\nexport * from './interfaces/source-code-path-options';\n\n/* Languages */\nexport * from './languages/russian';\n\n/* Tokens */\nexport * from './tokens/code-editor';\nexport * from './tokens/default-tabs';\nexport * from './tokens/example-content-processor';\nexport * from './tokens/i18n';\nexport * from './tokens/logo';\nexport * from './tokens/pages';\nexport * from './tokens/see-also';\nexport * from './tokens/source-code';\nexport * from './tokens/title';\n\n/* Types */\nexport * from './types/pages';\n\n/* Utils */\nexport * from './addon-doc.module';\nexport * from './utils/coerce-value';\nexport * from './utils/generate-routes';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {TuiDocExampleGetTabsPipe as ɵc} from './components/example/example-get-tabs.pipe';\nexport {NAVIGATION_ITEMS as ɵg,NAVIGATION_LABELS as ɵf,NAVIGATION_PROVIDERS as ɵh,NAVIGATION_TITLE as ɵe,itemsProviderFactory as ɵk,labelsProviderFactory as ɵj,titleProviderFactory as ɵi} from './components/navigation/navigation.providers';\nexport {PAGE_PROVIDERS as ɵn,PAGE_SEE_ALSO as ɵm,seeAlsoProviderFactory as ɵo} from './components/page/page.providers';\nexport {TuiDocHeaderComponent as ɵl} from './internal/header/header.component';\nexport {TuiDocHeaderModule as ɵd} from './internal/header/header.module';\nexport {TuiInputOpacityDirective as ɵb} from './internal/input-opacity/input-opacity.directive';\nexport {TuiInputOpacityModule as ɵa} from './internal/input-opacity/input-opacity.module';\nexport {TuiDocSeeAlsoComponent as ɵq} from './internal/see-also/see-also.component';\nexport {TuiDocSeeAlsoModule as ɵp} from './internal/see-also/see-also.module';\nexport {TuiDocSourceCodeComponent as ɵs} from './internal/source-code/source-code.component';\nexport {TuiDocSourceCodeModule as ɵr} from './internal/source-code/source-code.module';"],"names":["Location"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-doc.js","sources":["ng://@taiga-ui/addon-doc/utils/raw-load.ts","ng://@taiga-ui/addon-doc/components/code/parse-code-block.ts","ng://@taiga-ui/addon-doc/components/code/code.component.ts","ng://@taiga-ui/addon-doc/components/code/code.module.ts","ng://@taiga-ui/addon-doc/components/copy/copy.component.ts","ng://@taiga-ui/addon-doc/components/copy/copy.module.ts","ng://@taiga-ui/addon-doc/tokens/i18n.ts","ng://@taiga-ui/addon-doc/components/demo/demo.component.ts","ng://@taiga-ui/addon-doc/components/demo/demo.module.ts","ng://@taiga-ui/addon-doc/utils/color-conversion.ts","ng://@taiga-ui/addon-doc/utils/inspect.ts","ng://@taiga-ui/addon-doc/utils/coerce-value.ts","ng://@taiga-ui/addon-doc/components/documentation/documentation-property-connector.directive.ts","ng://@taiga-ui/addon-doc/components/documentation/documentation.component.ts","ng://@taiga-ui/addon-doc/internal/input-opacity/input-opacity.directive.ts","ng://@taiga-ui/addon-doc/internal/input-opacity/input-opacity.module.ts","ng://@taiga-ui/addon-doc/components/documentation/documentation.module.ts","ng://@taiga-ui/addon-doc/tokens/code-editor.ts","ng://@taiga-ui/addon-doc/tokens/example-content-processor.ts","ng://@taiga-ui/addon-doc/utils/raw-load-record.ts","ng://@taiga-ui/addon-doc/components/example/example.component.ts","ng://@taiga-ui/addon-doc/components/example/example-get-tabs.pipe.ts","ng://@taiga-ui/addon-doc/components/example/example.module.ts","ng://@taiga-ui/addon-doc/components/main/main.component.ts","ng://@taiga-ui/addon-doc/directives/scroll-into-view/scroll-into-view.directive.ts","ng://@taiga-ui/addon-doc/directives/scroll-into-view/scroll-into-view.module.ts","ng://@taiga-ui/addon-doc/utils/transliterate-keyboard-layout.ts","ng://@taiga-ui/addon-doc/tokens/pages.ts","ng://@taiga-ui/addon-doc/tokens/title.ts","ng://@taiga-ui/addon-doc/components/navigation/navigation.providers.ts","ng://@taiga-ui/addon-doc/components/navigation/navigation.component.ts","ng://@taiga-ui/addon-doc/components/navigation/navigation.module.ts","ng://@taiga-ui/addon-doc/tokens/logo.ts","ng://@taiga-ui/addon-doc/internal/header/header.component.ts","ng://@taiga-ui/addon-doc/internal/header/header.module.ts","ng://@taiga-ui/addon-doc/components/main/main.module.ts","ng://@taiga-ui/addon-doc/tokens/default-tabs.ts","ng://@taiga-ui/addon-doc/tokens/see-also.ts","ng://@taiga-ui/addon-doc/components/page/page.providers.ts","ng://@taiga-ui/addon-doc/components/page/page-tab.directive.ts","ng://@taiga-ui/addon-doc/components/page/page.component.ts","ng://@taiga-ui/addon-doc/internal/see-also/see-also.component.ts","ng://@taiga-ui/addon-doc/internal/see-also/see-also.module.ts","ng://@taiga-ui/addon-doc/tokens/source-code.ts","ng://@taiga-ui/addon-doc/internal/source-code/source-code.component.ts","ng://@taiga-ui/addon-doc/internal/source-code/source-code.module.ts","ng://@taiga-ui/addon-doc/components/page/page.module.ts","ng://@taiga-ui/addon-doc/interfaces/page.ts","ng://@taiga-ui/addon-doc/languages/russian.ts","ng://@taiga-ui/addon-doc/addon-doc.module.ts","ng://@taiga-ui/addon-doc/utils/generate-routes.ts","ng://@taiga-ui/addon-doc/public-api.ts","ng://@taiga-ui/addon-doc/taiga-ui-addon-doc.ts"],"sourcesContent":["import {RawLoaderContent} from '../interfaces/page';\n\nexport async function rawLoad(content: RawLoaderContent): Promise<string> {\n return content instanceof Promise ? (await content).default : content;\n}\n","import MarkdownIt from 'markdown-it';\nimport Token from 'markdown-it/lib/token';\n\nexport function tryParseMarkdownCodeBlock(text: string = ''): string[] {\n const tokens: Token[] = new MarkdownIt().parse(text, {});\n const result = tokens\n .filter(({tag, type}) => tag === 'code' && type === 'fence')\n .map(({content}) => content);\n\n return result.length ? result : [text];\n}\n","import {Component, HostBinding, Input} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\nimport {map, switchMap} from 'rxjs/operators';\n\nimport {RawLoaderContent} from '../../interfaces/page';\nimport {rawLoad} from '../../utils/raw-load';\nimport {tryParseMarkdownCodeBlock} from './parse-code-block';\n\n@Component({\n selector: 'tui-doc-code',\n templateUrl: './code.template.html',\n styleUrls: ['./code.style.less'],\n})\nexport class TuiDocCodeComponent {\n private readonly rawLoader$$ = new BehaviorSubject<RawLoaderContent>('');\n\n @Input()\n filename = '';\n\n readonly processor$ = this.rawLoader$$.pipe(\n switchMap(rawLoad),\n map(tryParseMarkdownCodeBlock),\n );\n\n @Input()\n set code(code: RawLoaderContent) {\n this.rawLoader$$.next(code);\n }\n\n @HostBinding('class._has-filename')\n get hasFilename(): boolean {\n return !!this.filename;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {HighlightModule} from 'ngx-highlightjs';\n\nimport {TuiDocCodeComponent} from './code.component';\n\n@NgModule({\n imports: [CommonModule, HighlightModule],\n declarations: [TuiDocCodeComponent],\n exports: [TuiDocCodeComponent],\n})\nexport class TuiDocCodeModule {}\n","import {ChangeDetectionStrategy, Component, Inject} from '@angular/core';\nimport {TuiDestroyService, tuiPure} from '@taiga-ui/cdk';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit';\nimport {Observable, Subject, timer} from 'rxjs';\nimport {mapTo, startWith, switchMapTo} from 'rxjs/operators';\n\nconst COPIED_TIMEOUT = 1500;\n\n// @dynamic\n@Component({\n selector: 'tui-doc-copy',\n templateUrl: './copy.template.html',\n styleUrls: ['./copy.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiDestroyService],\n})\nexport class TuiDocCopyComponent {\n private readonly copy$ = new Subject();\n\n constructor(@Inject(TUI_COPY_TEXTS) readonly texts$: Observable<[string, string]>) {}\n\n @tuiPure\n get copied$(): Observable<boolean> {\n return this.copy$.pipe(\n switchMapTo(timer(COPIED_TIMEOUT).pipe(mapTo(false), startWith(true))),\n );\n }\n\n onClick() {\n this.copy$.next();\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiButtonModule} from '@taiga-ui/core';\n\nimport {TuiDocCopyComponent} from './copy.component';\n\n@NgModule({\n imports: [CommonModule, TuiButtonModule],\n declarations: [TuiDocCopyComponent],\n exports: [TuiDocCopyComponent],\n})\nexport class TuiDocCopyModule {}\n","import {InjectionToken} from '@angular/core';\n\n/**\n * TODO: think about reorganization in @taiga-ui/i18n way\n */\n\n/**\n * Works with a tuple\n * [@string tuiMode tooltip content, @string word 'background', @string 'form value']\n */\nexport const TUI_DOC_DEMO_TEXTS = new InjectionToken<[string, string, string]>(\n 'tui-doc-demo i18n texts',\n {\n factory: () => ['Read more more about modes: ', 'Background', 'Form value'],\n },\n);\n\n/**\n * Works with a tuple\n * [\n * @string word 'argument',\n * @string word 'type',\n * @string 'name and description',\n * @string word 'value'\n * @string message for tooltip about ng-polymorpheus\n * ]\n */\nexport const TUI_DOC_DOCUMENTATION_TEXTS = new InjectionToken<\n [string, string, string, string, string]\n>('tui-doc-documentation i18n texts', {\n factory: () => [\n 'Argument',\n 'Type',\n 'Name and description',\n 'Value',\n 'Learn about our dynamic templates from ',\n ],\n});\n\n/**\n * Works with a tuple\n * [\n * @string default tab name,\n * @string link to a sample copied message text,\n * @string link to a sample copied message label\n * ]\n */\nexport const TUI_DOC_EXAMPLE_TEXTS = new InjectionToken<[string, string, string]>(\n 'tui-doc-example i18n texts',\n {\n factory: () => ['Preview', 'Link to a sample was successfully copied', 'Done'],\n },\n);\n\nexport const TUI_DOC_MENU_TEXT = new InjectionToken<string>('menu i18n text', {\n factory: () => 'Menu',\n});\n\nexport const TUI_DOC_SEARCH_TEXT = new InjectionToken<string>('search i18n text', {\n factory: () => 'Search',\n});\n\nexport const TUI_DOC_SEE_ALSO_TEXT = new InjectionToken<string>(\n 'tui-doc-see-also i18n text',\n {\n factory: () => 'See also',\n },\n);\n\nexport const TUI_DOC_SOURCE_CODE_TEXT = new InjectionToken<string>(\n 'tui-doc-source-code i18n text',\n {\n factory: () => 'Source code',\n },\n);\n","import {isPlatformBrowser, Location} from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n forwardRef,\n HostListener,\n Inject,\n Input,\n OnInit,\n PLATFORM_ID,\n Renderer2,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {AbstractControl, FormControl, FormGroup} from '@angular/forms';\nimport {UrlSerializer} from '@angular/router';\nimport {px, TUI_IS_MOBILE, TuiDestroyService} from '@taiga-ui/cdk';\nimport {TuiBrightness, TuiModeDirective} from '@taiga-ui/core';\nimport {Subject} from 'rxjs';\nimport {startWith, takeUntil} from 'rxjs/operators';\n\nimport {TUI_DOC_DEMO_TEXTS} from '../../tokens/i18n';\n\nconst MIN_COMPONENT_WIDTH = 104;\n\n// @dynamic\n@Component({\n selector: 'tui-doc-demo',\n templateUrl: './demo.template.html',\n styleUrls: ['./demo.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n TuiDestroyService,\n {\n provide: TuiModeDirective,\n useExisting: forwardRef(() => TuiDocDemoComponent),\n },\n ],\n})\nexport class TuiDocDemoComponent implements OnInit, AfterViewInit {\n @ViewChild('content')\n private readonly content?: ElementRef<HTMLElement>;\n\n @ViewChild('wrapper')\n private readonly wrapper?: ElementRef<HTMLElement>;\n\n @ViewChild('resizerText')\n private readonly resizerText?: ElementRef<HTMLElement>;\n\n private readonly isBrowser: boolean;\n private initialX = 0;\n private wrapperWidth = 0;\n\n @Input()\n control: AbstractControl | null = null;\n\n @ContentChild(TemplateRef)\n readonly template?: TemplateRef<{}>;\n\n testForm?: FormGroup;\n updateOnVariants = ['change', 'blur', 'submit'];\n updateOn: 'change' | 'blur' | 'submit' = 'change';\n expanded = false;\n opaque = true;\n modeControl = new FormControl();\n mode: TuiBrightness | null = null;\n readonly change$ = new Subject<void>();\n readonly items: readonly TuiBrightness[] = ['onLight', 'onDark'];\n\n constructor(\n @Inject(TUI_IS_MOBILE) readonly isMobile: boolean,\n @Inject(TuiDestroyService) private readonly destroy$: TuiDestroyService,\n @Inject(Renderer2) private readonly renderer: Renderer2,\n @Inject(PLATFORM_ID) platformId: Object,\n @Inject(Location) locationRef: Location,\n @Inject(UrlSerializer) urlSerializer: UrlSerializer,\n @Inject(TUI_DOC_DEMO_TEXTS) readonly texts: [string, string, string],\n ) {\n this.isBrowser = isPlatformBrowser(platformId);\n\n const parsedMode = locationRef.path().match(/tuiMode=(onDark|onLight)/);\n\n if (parsedMode !== null && parsedMode.length > 0) {\n this.modeControl.setValue(parsedMode[1]);\n }\n\n this.modeControl.valueChanges\n .pipe(startWith(this.modeControl.value), takeUntil(this.destroy$))\n .subscribe(mode => {\n const urlTree = urlSerializer.parse(locationRef.path());\n\n urlTree.queryParams = {\n ...urlTree.queryParams,\n tuiMode: mode,\n };\n\n locationRef.go(String(urlTree));\n\n this.mode = mode;\n this.change$.next();\n });\n }\n\n @HostListener('window:resize')\n onResize() {\n this.setResizerTextContent();\n }\n\n ngOnInit() {\n this.createForm();\n }\n\n ngAfterViewInit() {\n this.setResizerTextContent();\n }\n\n setResizerTextContent() {\n if (!this.content || !this.resizerText) {\n return;\n }\n\n const paddingLeft = this.isBrowser\n ? getComputedStyle(this.content.nativeElement).paddingLeft\n : '0';\n const {offsetWidth} = this.content.nativeElement;\n\n this.resizerText.nativeElement.textContent = String(\n offsetWidth - parseInt(paddingLeft || '0', 10) * 2,\n );\n }\n\n onDragStart(event: MouseEvent) {\n event.preventDefault();\n this.initialX = event.clientX;\n this.wrapperWidth = this.wrapper ? this.wrapper.nativeElement.offsetWidth : 0;\n }\n\n onDragContinues(event: MouseEvent) {\n const deltaX = this.initialX - event.clientX;\n\n this.resizeContent(deltaX);\n this.setResizerTextContent();\n }\n\n onDragEnd() {\n this.wrapperWidth = this.wrapper ? this.wrapper.nativeElement.offsetWidth : 0;\n }\n\n toggleDetails() {\n this.expanded = !this.expanded;\n }\n\n updateOnChange(updateOn: 'change' | 'blur' | 'submit') {\n this.updateOn = updateOn;\n this.createForm();\n }\n\n private createForm() {\n const {control, updateOn} = this;\n\n if (!control) {\n return;\n }\n\n this.testForm = new FormGroup({testValue: control}, {updateOn});\n }\n\n private resizeContent(delta: number) {\n if (!this.wrapper) {\n return;\n }\n\n this.renderer.setStyle(\n this.wrapper.nativeElement,\n 'width',\n px(Math.max(this.wrapperWidth - delta, MIN_COMPONENT_WIDTH)),\n );\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {RouterModule} from '@angular/router';\nimport {TuiDragModule} from '@taiga-ui/cdk';\nimport {\n TuiButtonModule,\n TuiDataListModule,\n TuiExpandModule,\n TuiGroupModule,\n TuiHintControllerModule,\n TuiLinkModule,\n TuiModeModule,\n TuiSvgModule,\n TuiTextfieldControllerModule,\n TuiTooltipModule,\n} from '@taiga-ui/core';\nimport {\n TuiCheckboxLabeledModule,\n TuiDataListWrapperModule,\n TuiRadioBlockModule,\n TuiSelectModule,\n} from '@taiga-ui/kit';\n\nimport {TuiDocDemoComponent} from './demo.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n RouterModule,\n TuiLinkModule,\n TuiDragModule,\n TuiButtonModule,\n TuiSelectModule,\n TuiExpandModule,\n TuiGroupModule,\n TuiTooltipModule,\n TuiModeModule,\n TuiRadioBlockModule,\n TuiCheckboxLabeledModule,\n TuiSvgModule,\n TuiDataListWrapperModule,\n TuiDataListModule,\n TuiTextfieldControllerModule,\n TuiHintControllerModule,\n ],\n declarations: [TuiDocDemoComponent],\n exports: [TuiDocDemoComponent],\n})\nexport class TuiDocDemoModule {}\n","/**\n * TODO: move another package for reuse between addon-editor and addon-doc\n */\nexport function rgbToHex(r: number, g: number, b: number): string {\n return `#${[r, g, b].map(x => x.toString(16).padStart(2, '0')).join('')}`;\n}\n\nexport function hexToRgb(hex: string): [number, number, number] {\n const matches = hex\n .replace('#', '')\n .split('')\n .map((char, _, array) => (array.length === 3 ? char + char : char))\n .join('')\n .match(/.{2}/g);\n\n return matches\n ? (matches.map(x => Number.parseInt(x, 16)) as [number, number, number])\n : [0, 0, 0];\n}\n","function inspectArray(array: ReadonlyArray<any>, depth: number): string {\n if (depth === 0) {\n return '[…]';\n }\n\n let result = '';\n let first = true;\n\n for (let index = 0; index < array.length; index++) {\n if (first) {\n first = false;\n } else {\n result += ', ';\n }\n\n result += index in array ? inspectAny(array[index], depth - 1) : 'empty';\n }\n\n return `[${result}]`;\n}\n\nfunction inspectObject(object: {[key: string]: any}, depth: number): string {\n if (depth === 0) {\n return `{…}`;\n }\n\n let result = '';\n\n let first = true;\n\n for (const key in object) {\n if (!object.hasOwnProperty(key)) {\n continue;\n }\n\n if (first) {\n first = false;\n } else {\n result += ', ';\n }\n\n result += `${key}: ${inspectAny(object[key], depth - 1)}`;\n }\n\n return `{${result}}`;\n}\n\n// @bad TODO add more types\n/**\n * Returns readable JS entity\n * @param data\n * @param depth\n * @return readable JS entity\n */\nexport function inspectAny(data: any, depth: number): string {\n if (data === null) {\n return 'null';\n }\n\n switch (typeof data) {\n case 'string':\n return `'${data}'`;\n case 'undefined':\n case 'number':\n case 'boolean':\n case 'function':\n return String(data);\n }\n\n if (data instanceof RegExp) {\n return String(data);\n }\n\n if (Array.isArray(data)) {\n return inspectArray(data, depth);\n }\n\n return inspectObject(data, depth);\n}\n","export function coerceValue<T>(value?: T): T | number | string | boolean | null {\n const prepared = String(value).trim();\n\n if (isEmptyParamValue(prepared)) {\n return null;\n } else if (isBooleanParamValue(prepared)) {\n return String(prepared) === 'true';\n } else if (isNumberParamValue(prepared)) {\n return Number(prepared);\n }\n\n return decodeURIComponent(prepared);\n}\n\nfunction isEmptyParamValue(value: string): boolean {\n return ['undefined', 'null', 'NaN', 'Infinity'].includes(value);\n}\n\nfunction isBooleanParamValue(value: string): boolean {\n return value === 'true' || value === 'false';\n}\n\nfunction isNumberParamValue(value: string): boolean {\n return /^-?[\\d.]+(?:e-?\\d+)?$/.test(value);\n}\n","import {Location} from '@angular/common';\nimport {\n Directive,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport {ActivatedRoute, Params, UrlSerializer} from '@angular/router';\nimport {BehaviorSubject, Subject} from 'rxjs';\n\nimport {coerceValue} from '../../utils/coerce-value';\n\nconst SERIALIZED_SUFFIX = '$';\n\nexport type DocumentationPropertyType = 'input' | 'output' | 'input-output' | null;\n\n// @bad TODO: refactor output and value sync\n@Directive({\n selector: 'ng-template[documentationPropertyName]',\n exportAs: 'documentationProperty',\n})\nexport class TuiDocDocumentationPropertyConnectorDirective<T>\n implements OnInit, OnChanges\n{\n @Input()\n documentationPropertyName = '';\n\n @Input()\n documentationPropertyMode: DocumentationPropertyType = null;\n\n @Input()\n documentationPropertyType = '';\n\n @Input()\n documentationPropertyValue: T | null = null;\n\n @Input()\n documentationPropertyDeprecated = false;\n\n @Input()\n documentationPropertyValues: ReadonlyArray<T> | null = null;\n\n @Output()\n readonly documentationPropertyValueChange = new EventEmitter<T | null>();\n\n readonly changed$ = new Subject<void>();\n\n readonly emits$ = new BehaviorSubject(1);\n\n constructor(\n @Inject(TemplateRef) readonly template: TemplateRef<{}>,\n @Inject(Location) private readonly locationRef: Location,\n @Inject(ActivatedRoute) private readonly activatedRoute: ActivatedRoute,\n @Inject(UrlSerializer) private readonly urlSerializer: UrlSerializer,\n ) {}\n\n ngOnInit() {\n this.parseParams(this.activatedRoute.snapshot.queryParams);\n }\n\n get attrName(): string {\n switch (this.documentationPropertyMode) {\n case 'input':\n return `[${this.documentationPropertyName}]`;\n case 'output':\n return `(${this.documentationPropertyName})`;\n case 'input-output':\n return `[(${this.documentationPropertyName})]`;\n default:\n return this.documentationPropertyName;\n }\n }\n\n get hasItems(): boolean {\n return !!this.documentationPropertyValues;\n }\n\n get shouldShowValues(): boolean {\n return this.documentationPropertyMode !== 'output';\n }\n\n ngOnChanges() {\n this.changed$.next();\n }\n\n onValueChange(value: T | null) {\n this.documentationPropertyValue = value;\n this.documentationPropertyValueChange.emit(value);\n this.setQueryParam(value);\n }\n\n emitEvent(event: unknown) {\n // For more convenient debugging\n console.info(this.attrName, event);\n\n this.emits$.next(this.emits$.value + 1);\n }\n\n private parseParams(params: Params) {\n const propertyValue: string | undefined = params[this.documentationPropertyName];\n const propertyValueWithSuffix: string | number | undefined =\n params[`${this.documentationPropertyName}${SERIALIZED_SUFFIX}`];\n\n if (!propertyValue && !propertyValueWithSuffix) {\n return;\n }\n\n const value =\n !!propertyValueWithSuffix && this.documentationPropertyValues\n ? this.documentationPropertyValues[propertyValueWithSuffix as number]\n : coerceValue(propertyValue);\n\n this.onValueChange(value as T);\n }\n\n private setQueryParam(value: T | string | number | boolean | null) {\n const tree = this.urlSerializer.parse(this.locationRef.path());\n\n const isValueAvailableByKey = value instanceof Object;\n const computedValue =\n isValueAvailableByKey && this.documentationPropertyValues\n ? this.documentationPropertyValues.indexOf(value as T)\n : value;\n\n const suffix = isValueAvailableByKey ? SERIALIZED_SUFFIX : '';\n const propName = this.documentationPropertyName + suffix;\n\n tree.queryParams = {\n ...tree.queryParams,\n [propName]: computedValue,\n };\n\n this.locationRef.go(String(tree));\n }\n}\n","import {animate, style, transition, trigger} from '@angular/animations';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Inject,\n Input,\n QueryList,\n} from '@angular/core';\nimport {EMPTY_QUERY, itemsQueryListObservable, watch} from '@taiga-ui/cdk';\nimport {merge} from 'rxjs';\nimport {switchMap} from 'rxjs/operators';\n\nimport {TUI_DOC_DOCUMENTATION_TEXTS} from '../../tokens/i18n';\nimport {hexToRgb, rgbToHex} from '../../utils/color-conversion';\nimport {inspectAny} from '../../utils/inspect';\nimport {TuiDocDocumentationPropertyConnectorDirective} from './documentation-property-connector.directive';\n\n// @bad TODO subscribe propertiesConnectors changes\n// @bad TODO refactor to make more flexible\n// @dynamic\n@Component({\n selector: 'tui-doc-documentation',\n templateUrl: './documentation.template.html',\n styleUrls: ['./documentation.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('emitEvent', [\n transition(':increment', [style({opacity: 1}), animate('500ms ease-in')]),\n ]),\n ],\n})\nexport class TuiDocDocumentationComponent implements AfterContentInit {\n @Input()\n heading = '';\n\n @Input()\n showValues = true;\n\n @Input()\n isAPI = false;\n\n @ContentChildren(TuiDocDocumentationPropertyConnectorDirective)\n propertiesConnectors: QueryList<TuiDocDocumentationPropertyConnectorDirective<any>> =\n EMPTY_QUERY;\n\n activeItemIndex = 0;\n\n constructor(\n @Inject(ChangeDetectorRef) private readonly changeDetectorRef: ChangeDetectorRef,\n @Inject(TUI_DOC_DOCUMENTATION_TEXTS)\n readonly texts: [string, string, string, string, string],\n ) {}\n\n ngAfterContentInit() {\n itemsQueryListObservable(this.propertiesConnectors)\n .pipe(\n switchMap(items => merge(...items.map(({changed$}) => changed$))),\n watch(this.changeDetectorRef),\n )\n .subscribe();\n }\n\n get type(): string {\n return this.isAPI ? this.texts[0] : this.texts[1];\n }\n\n getColor(color: string): string {\n if (color.length === 4) {\n return color\n .split('')\n .reduce<string[]>((result, current) => [...result, current, current], [])\n .join('')\n .replace('#', '');\n }\n\n if (color.startsWith('#')) {\n return color;\n }\n\n if (color === 'transparent') {\n return '#000000';\n }\n\n const parsed = color\n .replace('rgb(', '')\n .replace('rgba(', '')\n .replace(')', '')\n .replace(' ', '')\n .split(',')\n .map(v => Number.parseInt(v, 10)) as [number, number, number];\n\n return rgbToHex(...parsed);\n }\n\n getOpacity(color: string): number {\n if (color.startsWith('#') || color.startsWith('rgb(')) {\n return 100;\n }\n\n if (color === 'transparent') {\n return 0;\n }\n\n const lastComma = color.lastIndexOf(',');\n const parsed = color\n .substr(lastComma)\n .replace(')', '')\n .replace(' ', '')\n .replace(',', '');\n\n return Math.round(Number.parseFloat(parsed) * 100);\n }\n\n onColorChange(\n connector: TuiDocDocumentationPropertyConnectorDirective<string>,\n color: string,\n ) {\n const opacity = this.getOpacity(connector.documentationPropertyValue || '');\n\n if (opacity === 100) {\n connector.onValueChange(color);\n\n return;\n }\n\n const rgb = hexToRgb(color).join(', ');\n const result = `rgba(${rgb}, ${opacity / 100})`;\n\n connector.onValueChange(result);\n }\n\n onOpacityChange(\n connector: TuiDocDocumentationPropertyConnectorDirective<string>,\n opacity: number,\n ) {\n const hex = this.getColor(connector.documentationPropertyValue || '');\n const rgb = hexToRgb(hex);\n const result = `rgba(${rgb}, ${opacity / 100})`;\n\n connector.onValueChange(result);\n }\n\n stripOptional(name: string): string {\n return name.replace('?', '');\n }\n\n isOptional(name: string): boolean {\n return name.includes('?');\n }\n\n showCleaner(type: string): boolean {\n return type.includes('null');\n }\n\n showContentTooltip(type: string): boolean {\n return type.includes('PolymorpheusContent');\n }\n\n inspectAny(data: any): string {\n return inspectAny(data, 2);\n }\n}\n","import {Directive, Inject, Input, Renderer2} from '@angular/core';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR, TuiFocusableElementAccessor} from '@taiga-ui/cdk';\n\n@Directive({\n selector: '[tuiInputOpacity]',\n})\nexport class TuiInputOpacityDirective {\n @Input()\n set tuiInputOpacity(opacity: number) {\n const {nativeFocusableElement} = this.tuiFocusableComponent;\n\n if (nativeFocusableElement) {\n this.renderer.setStyle(nativeFocusableElement, 'opacity', opacity / 100);\n }\n }\n\n constructor(\n @Inject(Renderer2) private readonly renderer: Renderer2,\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n private readonly tuiFocusableComponent: TuiFocusableElementAccessor,\n ) {}\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiInputOpacityDirective} from './input-opacity.directive';\n\n@NgModule({\n declarations: [TuiInputOpacityDirective],\n exports: [TuiInputOpacityDirective],\n})\nexport class TuiInputOpacityModule {}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {RouterModule} from '@angular/router';\nimport {\n TuiDataListModule,\n TuiDropdownControllerModule,\n TuiGroupModule,\n TuiHintControllerModule,\n TuiLinkModule,\n TuiModeModule,\n TuiNotificationModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiTooltipModule,\n} from '@taiga-ui/core';\nimport {\n TuiBadgeModule,\n TuiDataListWrapperModule,\n TuiInputCountModule,\n TuiSelectModule,\n TuiToggleModule,\n} from '@taiga-ui/kit';\n\nimport {TuiInputOpacityModule} from '../../internal/input-opacity/input-opacity.module';\nimport {TuiDocDocumentationComponent} from './documentation.component';\nimport {TuiDocDocumentationPropertyConnectorDirective} from './documentation-property-connector.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n RouterModule,\n TuiBadgeModule,\n TuiSelectModule,\n TuiToggleModule,\n TuiTooltipModule,\n TuiLinkModule,\n TuiInputCountModule,\n TuiModeModule,\n TuiGroupModule,\n TuiInputOpacityModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiHintControllerModule,\n TuiDropdownControllerModule,\n TuiDataListModule,\n TuiDataListWrapperModule,\n TuiNotificationModule,\n ],\n declarations: [\n TuiDocDocumentationComponent,\n TuiDocDocumentationPropertyConnectorDirective,\n ],\n exports: [\n TuiDocDocumentationComponent,\n TuiDocDocumentationPropertyConnectorDirective,\n ],\n})\nexport class TuiDocDocumentationModule {}\n","import {InjectionToken} from '@angular/core';\n\nimport {CodeEditor} from '../interfaces/code-editor';\n\nexport const TUI_DOC_CODE_EDITOR = new InjectionToken<CodeEditor>(\n 'Contains service for opening online IDE e.g. Stackblitz',\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiHandler} from '@taiga-ui/cdk';\nimport {identity} from 'rxjs';\n\nexport const TUI_DOC_EXAMPLE_CONTENT_PROCESSOR: InjectionToken<\n TuiHandler<Record<string, string>, Record<string, string>>\n> = new InjectionToken('Processes content in example', {factory: () => identity});\n","import {TuiDocExample} from '../interfaces/page';\nimport {rawLoad} from './raw-load';\n\nexport async function rawLoadRecord(\n example: TuiDocExample,\n): Promise<Record<string, string>> {\n const processedContent: Record<string, string> = {};\n\n for (const [key, content] of Object.entries(example)) {\n if (content) {\n processedContent[key] = await rawLoad(content);\n }\n }\n\n return processedContent;\n}\n","import {Clipboard} from '@angular/cdk/clipboard';\nimport {\n Attribute,\n ChangeDetectionStrategy,\n Component,\n Inject,\n Input,\n Optional,\n} from '@angular/core';\nimport {LOCATION} from '@ng-web-apis/common';\nimport {TUI_IS_CYPRESS, TuiHandler} from '@taiga-ui/cdk';\nimport {TuiNotification, TuiNotificationsService} from '@taiga-ui/core';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {map, switchMap} from 'rxjs/operators';\n\nimport {CodeEditor} from '../../interfaces/code-editor';\nimport {TuiDocExample} from '../../interfaces/page';\nimport {TUI_DOC_CODE_EDITOR} from '../../tokens/code-editor';\nimport {TUI_DOC_EXAMPLE_CONTENT_PROCESSOR} from '../../tokens/example-content-processor';\nimport {TUI_DOC_EXAMPLE_TEXTS} from '../../tokens/i18n';\nimport {rawLoadRecord} from '../../utils/raw-load-record';\n\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Component({\n selector: 'tui-doc-example',\n templateUrl: './example.template.html',\n styleUrls: ['./example.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocExampleComponent {\n private readonly rawLoader$$ = new BehaviorSubject<TuiDocExample>({});\n\n @Input()\n heading: PolymorpheusContent = '';\n\n @Input()\n description: PolymorpheusContent = '';\n\n @Input()\n set content(content: TuiDocExample) {\n this.rawLoader$$.next(content);\n }\n\n @Input()\n componentName: string = this.location.pathname.slice(1);\n\n readonly defaultTabIndex = 0;\n\n readonly defaultTab = this.texts[this.defaultTabIndex];\n\n activeItemIndex = this.defaultTabIndex;\n\n readonly copy$ = this.copyTexts$.pipe(map(([copy]) => copy));\n\n readonly processor$: Observable<Record<string, string>> = this.rawLoader$$.pipe(\n switchMap(rawLoadRecord),\n map(this.processContent),\n );\n\n constructor(\n @Attribute('id')\n readonly id: string | null,\n @Inject(Clipboard) private readonly clipboard: Clipboard,\n @Inject(TuiNotificationsService)\n private readonly notifications: TuiNotificationsService,\n @Inject(LOCATION) private readonly location: Location,\n @Inject(TUI_COPY_TEXTS) private readonly copyTexts$: Observable<[string, string]>,\n @Inject(TUI_DOC_EXAMPLE_TEXTS) readonly texts: [string, string, string],\n @Optional()\n @Inject(TUI_DOC_CODE_EDITOR)\n readonly codeEditor: CodeEditor | null,\n @Inject(TUI_DOC_EXAMPLE_CONTENT_PROCESSOR)\n private readonly processContent: TuiHandler<\n Record<string, string>,\n Record<string, string>\n >,\n @Inject(TUI_IS_CYPRESS) readonly isCypress: boolean,\n ) {}\n\n copyExampleLink() {\n const hashPosition = this.location.href.indexOf('#');\n const currentUrl =\n hashPosition > -1\n ? this.location.href.substr(0, hashPosition)\n : this.location.href;\n const url = `${currentUrl}#${this.id}`;\n\n this.clipboard.copy(url);\n this.notifications\n .show(this.texts[1], {\n label: this.texts[2],\n status: TuiNotification.Success,\n })\n .subscribe();\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({name: 'tuiDocExampleGetTabs'})\nexport class TuiDocExampleGetTabsPipe implements PipeTransform {\n transform(content: Record<string, string>, defaultTab: string): string[] {\n return [defaultTab, ...Object.keys(content)];\n }\n}\n","import {ClipboardModule} from '@angular/cdk/clipboard';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiButtonModule} from '@taiga-ui/core';\nimport {TuiTabsModule} from '@taiga-ui/kit';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiDocCodeModule} from '../code/code.module';\nimport {TuiDocCopyModule} from '../copy/copy.module';\nimport {TuiDocExampleComponent} from './example.component';\nimport {TuiDocExampleGetTabsPipe} from './example-get-tabs.pipe';\n\n@NgModule({\n imports: [\n CommonModule,\n ClipboardModule,\n TuiTabsModule,\n TuiButtonModule,\n TuiDocCopyModule,\n TuiDocCodeModule,\n PolymorpheusModule,\n ],\n declarations: [TuiDocExampleComponent, TuiDocExampleGetTabsPipe],\n exports: [TuiDocExampleComponent, TuiDocExampleGetTabsPipe],\n})\nexport class TuiDocExampleModule {}\n","import {\n Component,\n forwardRef,\n HostBinding,\n Inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport {LOCAL_STORAGE, WINDOW} from '@ng-web-apis/common';\nimport {TuiSwipeService} from '@taiga-ui/cdk';\nimport {TuiBrightness, TuiModeDirective} from '@taiga-ui/core';\nimport {Subject} from 'rxjs';\n\n// @dynamic\n@Component({\n selector: 'tui-doc-main',\n templateUrl: './main.template.html',\n styleUrls: ['./main.style.less'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: TuiModeDirective,\n useExisting: forwardRef(() => TuiDocMainComponent),\n },\n TuiSwipeService,\n ],\n})\nexport class TuiDocMainComponent {\n night =\n this.storage.getItem('night') === 'true' ||\n (this.storage.getItem('night') === null &&\n this.windowRef.matchMedia('(prefers-color-scheme: dark)').matches);\n\n readonly change$ = new Subject<void>();\n\n constructor(\n @Inject(LOCAL_STORAGE) private readonly storage: Storage,\n @Inject(WINDOW) private readonly windowRef: Window,\n ) {}\n\n @HostBinding('attr.data-mode')\n get mode(): TuiBrightness | null {\n return this.night ? 'onDark' : null;\n }\n\n onMode(night: boolean) {\n this.night = night;\n this.change$.next();\n this.storage.setItem('night', String(night));\n }\n}\n","import {Directive, ElementRef, Inject, Input} from '@angular/core';\nimport {getElementObscurers, TuiDestroyService} from '@taiga-ui/cdk';\nimport {Subject} from 'rxjs';\nimport {debounceTime, filter, takeUntil} from 'rxjs/operators';\n\n@Directive({\n selector: '[scrollIntoView]',\n providers: [TuiDestroyService],\n})\nexport class ScrollIntoViewDirective {\n @Input()\n set scrollIntoView(shallWe: boolean) {\n this.scroll$.next(shallWe);\n }\n\n private readonly scroll$ = new Subject<boolean>();\n\n constructor(\n @Inject(TuiDestroyService) destroy$: TuiDestroyService,\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n ) {\n this.scroll$\n .pipe(\n debounceTime(750),\n filter(shallWe => shallWe && !!getElementObscurers(nativeElement)),\n takeUntil(destroy$),\n )\n .subscribe(() => {\n nativeElement.scrollIntoView();\n });\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {ScrollIntoViewDirective} from './scroll-into-view.directive';\n\n@NgModule({\n declarations: [ScrollIntoViewDirective],\n exports: [ScrollIntoViewDirective],\n})\nexport class ScrollIntoViewModule {}\n","const MAP: Record<string, string> = {\n а: 'f',\n б: ',',\n в: 'd',\n г: 'u',\n д: 'l',\n е: 't',\n ё: '`',\n ж: ';',\n з: 'p',\n и: 'b',\n й: 'q',\n к: 'r',\n л: 'k',\n м: 'v',\n н: 'y',\n о: 'j',\n п: 'g',\n р: 'h',\n с: 'c',\n т: 'n',\n у: 'e',\n ф: 'a',\n х: '[',\n ц: 'w',\n ч: 'x',\n ш: 'i',\n щ: 'o',\n ъ: ']',\n ы: 's',\n ь: 'm',\n ю: '.',\n я: 'z',\n};\n\n/**\n * Translates text mistakenly typed in the Russian layout into English\n * @param string string with Russian layout characters\n * @return string with English layout characters\n */\nexport function transliterateKeyboardLayout(string: string): string {\n let newStr = '';\n\n for (let i = 0; i < string.length; i++) {\n newStr += string.charAt(i) in MAP ? MAP[string.charAt(i)] : string.charAt(i);\n }\n\n return newStr;\n}\n","import {InjectionToken} from '@angular/core';\n\nimport {TuiDocPages} from '../types/pages';\n\nexport const TUI_DOC_PAGES: InjectionToken<TuiDocPages> = new InjectionToken<TuiDocPages>(\n 'Documentation pages',\n {\n factory: () => [],\n },\n);\n","import {InjectionToken} from '@angular/core';\n\nexport const TUI_DOC_TITLE = new InjectionToken<string>('Page title', {\n factory: () => '',\n});\n","import {InjectionToken, Provider} from '@angular/core';\nimport {ActivatedRoute, NavigationEnd, Router} from '@angular/router';\nimport {isPresent, TuiDestroyService} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\nimport {filter, map, mergeMap, takeUntil} from 'rxjs/operators';\n\nimport {TUI_DOC_PAGES} from '../../tokens/pages';\nimport {TUI_DOC_TITLE} from '../../tokens/title';\nimport {TuiDocPages} from '../../types/pages';\n\nexport const NAVIGATION_TITLE = new InjectionToken<Observable<string>>('Page title');\nexport const NAVIGATION_LABELS = new InjectionToken<readonly string[]>(\n 'Navigation sections labels for search',\n);\nexport const NAVIGATION_ITEMS: InjectionToken<ReadonlyArray<TuiDocPages>> =\n new InjectionToken<ReadonlyArray<TuiDocPages>>('Navigation pages');\n\nexport const NAVIGATION_PROVIDERS: Provider[] = [\n TuiDestroyService,\n {\n provide: NAVIGATION_TITLE,\n deps: [Router, ActivatedRoute, TUI_DOC_TITLE, TuiDestroyService],\n useFactory: titleProviderFactory,\n },\n {\n provide: NAVIGATION_LABELS,\n deps: [TUI_DOC_PAGES],\n useFactory: labelsProviderFactory,\n },\n {\n provide: NAVIGATION_ITEMS,\n deps: [TUI_DOC_PAGES],\n useFactory: itemsProviderFactory,\n },\n];\n\nexport function titleProviderFactory(\n router: Router,\n activatedRoute: ActivatedRoute,\n titlePrefix: string,\n destroy$: Observable<void>,\n): Observable<string> {\n return router.events.pipe(\n filter(event => event instanceof NavigationEnd),\n map(() => activatedRoute.firstChild),\n filter(isPresent),\n mergeMap(({data}) => data),\n map(({title}) => titlePrefix + title),\n takeUntil(destroy$),\n );\n}\n\nexport function labelsProviderFactory(pages: TuiDocPages): readonly string[] {\n return pages\n .map(({section}) => section)\n .filter(isPresent)\n .filter((item, index, array) => array.indexOf(item) === index);\n}\n\nexport function itemsProviderFactory(pages: TuiDocPages): ReadonlyArray<TuiDocPages> {\n const labels = labelsProviderFactory(pages);\n\n return [\n ...labels.map(label => pages.filter(({section}) => section === label)),\n pages.filter(page => !page.section),\n ];\n}\n","import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Optional,\n} from '@angular/core';\nimport {Title} from '@angular/platform-browser';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {TuiSidebarDirective} from '@taiga-ui/addon-mobile';\nimport {tuiPure, uniqBy} from '@taiga-ui/cdk';\nimport {TuiBrightness, TuiModeDirective} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\nimport {map, startWith} from 'rxjs/operators';\n\nimport {TuiDocPage} from '../../interfaces/page';\nimport {TUI_DOC_SEARCH_TEXT} from '../../tokens/i18n';\nimport {TuiDocPages} from '../../types/pages';\nimport {transliterateKeyboardLayout} from '../../utils/transliterate-keyboard-layout';\nimport {\n NAVIGATION_ITEMS,\n NAVIGATION_LABELS,\n NAVIGATION_PROVIDERS,\n NAVIGATION_TITLE,\n} from './navigation.providers';\n\nconst SCROLL_INTO_VIEW_DELAY = 200;\n\n// @dynamic\n@Component({\n selector: 'tui-doc-navigation',\n templateUrl: 'navigation.template.html',\n styleUrls: ['navigation.style.less'],\n providers: NAVIGATION_PROVIDERS,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocNavigationComponent {\n @HostBinding('class._open')\n menuOpen = false;\n\n search = '';\n open = false;\n openPagesArr: boolean[] = [];\n openPagesGroupsArr: boolean[] = [];\n active = '';\n\n readonly mode$: Observable<TuiBrightness> = this.mode.change$.pipe(\n startWith(null),\n map(() => this.mode.mode || 'onLight'),\n );\n\n constructor(\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(Title) titleService: Title,\n @Inject(NAVIGATION_TITLE) title$: Observable<string>,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TuiModeDirective)\n private readonly mode: TuiModeDirective,\n @Optional()\n @Inject(TuiSidebarDirective)\n readonly sidebar: unknown,\n @Inject(NAVIGATION_LABELS) readonly labels: string[],\n @Inject(NAVIGATION_ITEMS)\n readonly items: ReadonlyArray<TuiDocPages>,\n @Inject(TUI_DOC_SEARCH_TEXT) readonly searchText: string,\n @Inject(Router) private readonly router: Router,\n @Inject(ActivatedRoute) private readonly activatedRoute: ActivatedRoute,\n ) {\n // Angular can't navigate no anchor links\n // https://stackoverflow.com/questions/36101756/angular2-routing-with-hashtag-to-page-anchor\n title$.subscribe(title => {\n changeDetectorRef.markForCheck();\n titleService.setTitle(title);\n this.openActivePageGroup();\n this.handleAnchorLink(this.activatedRoute.snapshot.fragment);\n });\n }\n\n get canOpen(): boolean {\n return this.search.length > 2;\n }\n\n get filteredItems(): ReadonlyArray<ReadonlyArray<TuiDocPage>> {\n return this.filterItems(this.flattenSubPages(this.items), this.search);\n }\n\n get itemsWithoutSections() {\n return this.items[this.items.length - 1];\n }\n\n isActive(route: string): boolean {\n return route === this.active;\n }\n\n onGroupClick(index: number) {\n this.openPagesGroupsArr[index] = !this.openPagesGroupsArr[index];\n }\n\n closeMenu() {\n this.menuOpen = false;\n }\n\n onSearchChange(search: string) {\n this.search = search;\n this.open = this.canOpen;\n }\n\n onClick() {\n this.open = false;\n this.menuOpen = false;\n this.search = '';\n this.openActivePageGroup();\n }\n\n @tuiPure\n private filterItems(\n items: ReadonlyArray<ReadonlyArray<TuiDocPage>>,\n search: string,\n ): ReadonlyArray<ReadonlyArray<TuiDocPage>> {\n return items.map(section =>\n uniqBy(\n section.filter(({title, keywords = ''}) => {\n title = title.toLowerCase();\n search = search.toLowerCase();\n keywords = keywords.toLowerCase();\n\n return (\n title.includes(search) ||\n keywords.includes(search) ||\n title.includes(transliterateKeyboardLayout(search)) ||\n keywords.includes(transliterateKeyboardLayout(search)) ||\n search.replace(/-/gi, '').includes(title)\n );\n }),\n 'title',\n ),\n );\n }\n\n @tuiPure\n private flattenSubPages(\n items: ReadonlyArray<TuiDocPages>,\n ): ReadonlyArray<ReadonlyArray<TuiDocPage>> {\n return items.reduce<ReadonlyArray<ReadonlyArray<TuiDocPage>>>(\n (array, item) => [\n ...array,\n item.reduce<ReadonlyArray<TuiDocPage>>(\n (pages, page) =>\n 'subPages' in page\n ? [...pages, ...page.subPages]\n : [...pages, page],\n [],\n ),\n ],\n [],\n );\n }\n\n private isActiveRoute(route: string): boolean {\n return this.router.isActive(route, false);\n }\n\n private handleAnchorLink(hash: string) {\n setTimeout(() => {\n this.navigateToAnchorLink(hash);\n }, SCROLL_INTO_VIEW_DELAY);\n }\n\n private openActivePageGroup() {\n this.items.forEach((pages, pagesIndex) => {\n pages.forEach((page, pageIndex) => {\n if ('route' in page && this.isActiveRoute(page.route)) {\n this.openPagesArr[pagesIndex] = true;\n this.active = page.route;\n }\n\n if ('subPages' in page) {\n page.subPages.forEach(subPage => {\n if (this.isActiveRoute(subPage.route)) {\n this.openPagesArr[pagesIndex] = true;\n this.openPagesGroupsArr[pagesIndex * 100 + pageIndex] = true;\n this.active = subPage.route;\n }\n });\n }\n });\n });\n }\n\n private navigateToAnchorLink(fragment: string) {\n const element = fragment && this.documentRef.querySelector(`#${fragment}`);\n\n if (!element) {\n return;\n }\n\n element.classList.add('tui-doc-animated-example');\n element.scrollIntoView({\n block: 'start',\n inline: 'nearest',\n behavior: 'smooth',\n });\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {RouterModule} from '@angular/router';\nimport {TuiActiveZoneModule, TuiAutoFocusModule, TuiLetModule} from '@taiga-ui/cdk';\nimport {\n TuiButtonModule,\n TuiDataListModule,\n TuiDropdownControllerModule,\n TuiExpandModule,\n TuiHostedDropdownModule,\n TuiLinkModule,\n TuiModeModule,\n TuiPrimitiveTextfieldModule,\n TuiScrollbarModule,\n TuiSvgModule,\n TuiTextfieldControllerModule,\n} from '@taiga-ui/core';\nimport {TuiAccordionModule} from '@taiga-ui/kit';\n\nimport {ScrollIntoViewModule} from '../../directives/scroll-into-view/scroll-into-view.module';\nimport {TuiDocNavigationComponent} from './navigation.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n RouterModule,\n ScrollIntoViewModule,\n TuiButtonModule,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiActiveZoneModule,\n TuiLetModule,\n TuiModeModule,\n TuiLinkModule,\n TuiExpandModule,\n TuiHostedDropdownModule,\n TuiDropdownControllerModule,\n TuiAccordionModule,\n TuiScrollbarModule,\n TuiSvgModule,\n TuiDataListModule,\n TuiAutoFocusModule,\n ],\n declarations: [TuiDocNavigationComponent],\n exports: [TuiDocNavigationComponent],\n})\nexport class TuiDocNavigationModule {}\n","import {InjectionToken} from '@angular/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport const TUI_DOC_LOGO = new InjectionToken<PolymorpheusContent>('Main logo', {\n factory: () => '',\n});\n","import {ChangeDetectionStrategy, Component, Inject} from '@angular/core';\nimport {Router} from '@angular/router';\nimport {TuiSwipeService} from '@taiga-ui/cdk';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {merge, Subject} from 'rxjs';\nimport {distinctUntilChanged, filter, map, mapTo, startWith} from 'rxjs/operators';\n\nimport {TUI_DOC_MENU_TEXT} from '../../tokens/i18n';\nimport {TUI_DOC_LOGO} from '../../tokens/logo';\n\n@Component({\n selector: 'header[tuiDocHeader]',\n templateUrl: './header.template.html',\n styleUrls: ['./header.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocHeaderComponent {\n private readonly stream$ = new Subject<boolean>();\n\n readonly open$ = merge(\n this.router.events.pipe(mapTo(false)),\n this.stream$,\n this.swipes$.pipe(\n filter(swipe => swipe.direction === 'left' || swipe.direction === 'right'),\n map(swipe => swipe.direction === 'right'),\n ),\n ).pipe(startWith(false), distinctUntilChanged());\n\n constructor(\n @Inject(TUI_DOC_LOGO) readonly logo: PolymorpheusContent,\n @Inject(TUI_DOC_MENU_TEXT) readonly menu: string,\n @Inject(Router) private readonly router: Router,\n @Inject(TuiSwipeService) private readonly swipes$: TuiSwipeService,\n ) {}\n\n onClick() {\n this.stream$.next(true);\n }\n\n onActiveZone(active: boolean) {\n if (!active) {\n this.stream$.next(false);\n }\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiSidebarModule} from '@taiga-ui/addon-mobile';\nimport {TuiActiveZoneModule} from '@taiga-ui/cdk';\nimport {TuiButtonModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiDocNavigationModule} from '../../components/navigation/navigation.module';\nimport {TuiDocHeaderComponent} from './header.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiButtonModule,\n TuiSidebarModule,\n TuiActiveZoneModule,\n TuiDocNavigationModule,\n ],\n declarations: [TuiDocHeaderComponent],\n exports: [TuiDocHeaderComponent],\n})\nexport class TuiDocHeaderModule {}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {RouterModule} from '@angular/router';\nimport {\n TuiDialogModule,\n TuiNotificationsModule,\n TuiRootModule,\n TuiThemeNightModule,\n} from '@taiga-ui/core';\nimport {TuiToggleModule} from '@taiga-ui/kit';\n\nimport {TuiDocHeaderModule} from '../../internal/header/header.module';\nimport {TuiDocNavigationModule} from '../navigation/navigation.module';\nimport {TuiDocMainComponent} from './main.component';\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n FormsModule,\n TuiToggleModule,\n TuiThemeNightModule,\n TuiDocHeaderModule,\n TuiRootModule,\n TuiDialogModule,\n TuiNotificationsModule,\n TuiDocNavigationModule,\n ],\n declarations: [TuiDocMainComponent],\n exports: [TuiDocMainComponent],\n})\nexport class TuiDocMainModule {}\n","import {InjectionToken} from '@angular/core';\n\nexport const TUI_DOC_DEFAULT_TABS = new InjectionToken<readonly string[]>(\n 'Array of default tab names',\n {\n factory: () => [],\n },\n);\n","import {InjectionToken} from '@angular/core';\n\nexport const TUI_DOC_SEE_ALSO = new InjectionToken<ReadonlyArray<readonly string[]>>(\n 'Array of arrays of related pages',\n {\n factory: () => [],\n },\n);\n","import {ElementRef, InjectionToken, Provider} from '@angular/core';\n\nimport {TUI_DOC_SEE_ALSO} from '../../tokens/see-also';\n\nexport const PAGE_SEE_ALSO = new InjectionToken<readonly string[]>('Page see also');\n\nexport const PAGE_PROVIDERS: Provider[] = [\n {\n provide: PAGE_SEE_ALSO,\n deps: [ElementRef, TUI_DOC_SEE_ALSO],\n useFactory: seeAlsoProviderFactory,\n },\n];\n\nexport function seeAlsoProviderFactory(\n {nativeElement}: ElementRef,\n seeAlsoGroups: ReadonlyArray<readonly string[]>,\n): readonly string[] {\n const groups =\n seeAlsoGroups.filter(group => group.includes(nativeElement.header)) || [];\n\n const seeAlsoSet = new Set(\n groups\n .join()\n .split(',')\n .filter(component => component && component !== nativeElement.header),\n );\n\n return Array.from(seeAlsoSet);\n}\n","import {Directive, Inject, Input, TemplateRef} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk';\n\n@Directive({\n selector: '[pageTab]',\n})\nexport class TuiDocPageTabConnectorDirective {\n @Input()\n @tuiDefaultProp()\n pageTab?: string;\n\n constructor(@Inject(TemplateRef) readonly template: TemplateRef<{}>) {}\n}\n","import {\n Attribute,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Inject,\n Input,\n QueryList,\n} from '@angular/core';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk';\n\nimport {TUI_DOC_DEFAULT_TABS} from '../../tokens/default-tabs';\nimport {PAGE_PROVIDERS, PAGE_SEE_ALSO} from './page.providers';\nimport {TuiDocPageTabConnectorDirective} from './page-tab.directive';\n\n// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Component({\n selector: 'tui-doc-page',\n templateUrl: './page.template.html',\n styleUrls: ['./page.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: PAGE_PROVIDERS,\n})\nexport class TuiDocPageComponent {\n @Input()\n header = '';\n\n @Input()\n package = '';\n\n @Input()\n type = '';\n\n @Input()\n path = '';\n\n @ContentChildren(TuiDocPageTabConnectorDirective)\n readonly tabConnectors: QueryList<TuiDocPageTabConnectorDirective> = EMPTY_QUERY;\n\n activeItemIndex = NaN;\n\n constructor(\n @Attribute('deprecated') readonly deprecated: string | null,\n @Inject(TUI_DOC_DEFAULT_TABS) readonly defaultTabs: readonly string[],\n @Inject(PAGE_SEE_ALSO) readonly seeAlso: readonly string[],\n ) {}\n\n get showSeeAlso(): boolean {\n return !!this.seeAlso.length && this.activeItemIndex === 0;\n }\n\n getRouterLink(tab: string = ''): string {\n return `./${tab.replace(/ /g, '_')}`;\n }\n}\n","import {ChangeDetectionStrategy, Component, Inject, Input} from '@angular/core';\n\nimport {TuiDocPage, TuiDocPageGroup} from '../../interfaces/page';\nimport {TUI_DOC_SEE_ALSO_TEXT} from '../../tokens/i18n';\nimport {TUI_DOC_PAGES} from '../../tokens/pages';\n\n// @dynamic\n@Component({\n selector: 'tui-doc-see-also',\n templateUrl: './see-also.template.html',\n styleUrls: ['./see-also.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocSeeAlsoComponent {\n @Input()\n seeAlso: readonly string[] = [];\n\n constructor(\n @Inject(TUI_DOC_SEE_ALSO_TEXT) readonly text: string,\n @Inject(TUI_DOC_PAGES)\n private readonly pages: ReadonlyArray<TuiDocPageGroup | TuiDocPage>,\n ) {}\n\n getRouterLink(pageTitle: string): string {\n for (let i = 0; i < this.pages.length; i++) {\n const page = this.pages\n .map(page => ('subPages' in page ? page.subPages : [page]))\n .reduce((pages, subPages) => [...pages, ...subPages], [])\n .find((page: TuiDocPage) => page.title === pageTitle);\n\n if (page && page.route) {\n return page.route;\n }\n }\n\n return '';\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {RouterModule} from '@angular/router';\nimport {TuiLinkModule} from '@taiga-ui/core';\n\nimport {TuiDocSeeAlsoComponent} from './see-also.component';\n\n@NgModule({\n imports: [CommonModule, RouterModule, TuiLinkModule],\n declarations: [TuiDocSeeAlsoComponent],\n exports: [TuiDocSeeAlsoComponent],\n})\nexport class TuiDocSeeAlsoModule {}\n","import {InjectionToken} from '@angular/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiDocSourceCodePathOptions} from '../interfaces/source-code-path-options';\n\nexport const TUI_DOC_SOURCE_CODE: InjectionToken<\n PolymorpheusContent<TuiDocSourceCodePathOptions>\n> = new InjectionToken<PolymorpheusContent<TuiDocSourceCodePathOptions>>(\n 'Source code link',\n {\n factory: () => '',\n },\n);\n","import {ChangeDetectionStrategy, Component, Inject, Input} from '@angular/core';\nimport {tuiPure} from '@taiga-ui/cdk';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiDocSourceCodePathOptions} from '../../interfaces/source-code-path-options';\nimport {TUI_DOC_SOURCE_CODE_TEXT} from '../../tokens/i18n';\nimport {TUI_DOC_SOURCE_CODE} from '../../tokens/source-code';\n\n@Component({\n selector: 'tui-doc-source-code',\n templateUrl: './source-code.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiDocSourceCodeComponent {\n @Input()\n header = '';\n\n @Input()\n package = '';\n\n @Input()\n type = '';\n\n @Input()\n path = '';\n\n constructor(\n @Inject(TUI_DOC_SOURCE_CODE)\n readonly sourceCode: PolymorpheusContent<TuiDocSourceCodePathOptions>,\n @Inject(TUI_DOC_SOURCE_CODE_TEXT) readonly text: string,\n ) {}\n\n get pathOptions(): TuiDocSourceCodePathOptions {\n return this.getPathOptions(this.header, this.package, this.type, this.path);\n }\n\n @tuiPure\n private getPathOptions(\n header: string,\n packageName: string,\n type: string,\n path: string,\n ): TuiDocSourceCodePathOptions {\n return {\n header,\n package: packageName,\n type,\n path,\n };\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiButtonModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiDocSourceCodeComponent} from './source-code.component';\n\n@NgModule({\n declarations: [TuiDocSourceCodeComponent],\n imports: [CommonModule, PolymorpheusModule, TuiButtonModule],\n exports: [TuiDocSourceCodeComponent],\n})\nexport class TuiDocSourceCodeModule {}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {RouterModule} from '@angular/router';\nimport {TuiTabsModule, TuiTagModule} from '@taiga-ui/kit';\n\nimport {TuiDocSeeAlsoModule} from '../../internal/see-also/see-also.module';\nimport {TuiDocSourceCodeModule} from '../../internal/source-code/source-code.module';\nimport {TuiDocPageComponent} from './page.component';\nimport {TuiDocPageTabConnectorDirective} from './page-tab.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n TuiDocSeeAlsoModule,\n TuiTabsModule,\n TuiTagModule,\n TuiDocSourceCodeModule,\n ],\n declarations: [TuiDocPageComponent, TuiDocPageTabConnectorDirective],\n exports: [TuiDocPageComponent, TuiDocPageTabConnectorDirective],\n})\nexport class TuiDocPageModule {}\n","export interface TuiDocPageBase {\n readonly section?: string;\n readonly title: string;\n}\n\nexport interface TuiDocPage extends TuiDocPageBase {\n readonly route: string;\n readonly keywords?: string;\n}\n\nexport interface TuiDocPageGroup extends TuiDocPageBase {\n readonly subPages: ReadonlyArray<TuiDocPage>;\n}\n\nexport type RawLoaderContent = Promise<{default: string}> | string;\n\nexport const TUI_EXAMPLE_PRIMARY_FILE_NAME = {\n TS: 'TypeScript',\n LESS: 'LESS',\n HTML: 'HTML',\n} as const;\n\nexport type TuiDocExample =\n | Record<string, RawLoaderContent>\n | {\n [TUI_EXAMPLE_PRIMARY_FILE_NAME.TS]?: string;\n [TUI_EXAMPLE_PRIMARY_FILE_NAME.HTML]?: string;\n [TUI_EXAMPLE_PRIMARY_FILE_NAME.LESS]?: string;\n };\n","import {Provider} from '@angular/core';\n\nimport {\n TUI_DOC_DEMO_TEXTS,\n TUI_DOC_DOCUMENTATION_TEXTS,\n TUI_DOC_EXAMPLE_TEXTS,\n TUI_DOC_MENU_TEXT,\n TUI_DOC_SEARCH_TEXT,\n TUI_DOC_SEE_ALSO_TEXT,\n TUI_DOC_SOURCE_CODE_TEXT,\n} from '../tokens/i18n';\n\n// TODO: remove in ivy compilation\nexport const DEMO_TEXTS = ['Сделано с помощью директивы: ', 'Фон', 'Детали формы'];\nexport const DOC_TEXTS = [\n 'Аргумент',\n 'Тип',\n 'Имя и описание',\n 'Значение',\n 'Для работы с динамическими шаблонами используется',\n];\nexport const EXAMPLE_TEXTS = ['Превью', 'Ссылка на пример скопирована', 'Готово'];\n\nexport const TUI_DOC_RUSSIAN: Provider[] = [\n {\n provide: TUI_DOC_DEMO_TEXTS,\n useValue: DEMO_TEXTS,\n },\n {\n provide: TUI_DOC_DOCUMENTATION_TEXTS,\n useValue: DOC_TEXTS,\n },\n {\n provide: TUI_DOC_EXAMPLE_TEXTS,\n useValue: EXAMPLE_TEXTS,\n },\n {\n provide: TUI_DOC_MENU_TEXT,\n useValue: 'Меню',\n },\n {\n provide: TUI_DOC_SEARCH_TEXT,\n useValue: 'Поиск',\n },\n {\n provide: TUI_DOC_SEE_ALSO_TEXT,\n useValue: 'Смотрите также',\n },\n {\n provide: TUI_DOC_SOURCE_CODE_TEXT,\n useValue: 'Исходный код',\n },\n];\n","import {NgModule} from '@angular/core';\n\nimport {TuiDocCodeModule} from './components/code/code.module';\nimport {TuiDocDemoModule} from './components/demo/demo.module';\nimport {TuiDocDocumentationModule} from './components/documentation/documentation.module';\nimport {TuiDocExampleModule} from './components/example/example.module';\nimport {TuiDocPageModule} from './components/page/page.module';\n\n@NgModule({\n exports: [\n TuiDocCodeModule,\n TuiDocDemoModule,\n TuiDocDocumentationModule,\n TuiDocPageModule,\n TuiDocExampleModule,\n ],\n})\nexport class TuiAddonDocModule {}\n","import {Type} from '@angular/core';\nimport {Routes} from '@angular/router';\n\n/**\n * Generates typical page routing structure\n */\nexport function generateRoutes(type: Type<any>): Routes {\n return [\n {\n path: '',\n component: type,\n children: [\n {\n path: ':tab',\n component: type,\n },\n ],\n },\n ];\n}\n","/**\n * Public API Surface of @taiga-ui/addon-doc\n */\n\n/* Components */\nexport * from './components/code/code.component';\nexport * from './components/code/code.module';\nexport * from './components/code/parse-code-block';\nexport * from './components/copy/copy.component';\nexport * from './components/copy/copy.module';\nexport * from './components/demo/demo.component';\nexport * from './components/demo/demo.module';\nexport * from './components/documentation/documentation.component';\nexport * from './components/documentation/documentation.module';\nexport * from './components/documentation/documentation-property-connector.directive';\nexport * from './components/example/example.component';\nexport * from './components/example/example.module';\nexport * from './components/main/main.component';\nexport * from './components/main/main.module';\nexport * from './components/navigation/navigation.component';\nexport * from './components/navigation/navigation.module';\nexport * from './components/page/page.component';\nexport * from './components/page/page.module';\nexport * from './components/page/page-tab.directive';\n\n/* Directives */\nexport * from './directives/scroll-into-view/scroll-into-view.directive';\nexport * from './directives/scroll-into-view/scroll-into-view.module';\n\n/* Interfaces */\nexport * from './interfaces/code-editor';\nexport * from './interfaces/page';\nexport * from './interfaces/source-code-path-options';\n\n/* Languages */\nexport * from './languages/russian';\n\n/* Tokens */\nexport * from './tokens/code-editor';\nexport * from './tokens/default-tabs';\nexport * from './tokens/example-content-processor';\nexport * from './tokens/i18n';\nexport * from './tokens/logo';\nexport * from './tokens/pages';\nexport * from './tokens/see-also';\nexport * from './tokens/source-code';\nexport * from './tokens/title';\n\n/* Types */\nexport * from './types/pages';\n\n/* Utils */\nexport * from './addon-doc.module';\nexport * from './utils/coerce-value';\nexport * from './utils/generate-routes';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {TuiDocExampleGetTabsPipe as ɵc} from './components/example/example-get-tabs.pipe';\nexport {NAVIGATION_ITEMS as ɵg,NAVIGATION_LABELS as ɵf,NAVIGATION_PROVIDERS as ɵh,NAVIGATION_TITLE as ɵe,itemsProviderFactory as ɵk,labelsProviderFactory as ɵj,titleProviderFactory as ɵi} from './components/navigation/navigation.providers';\nexport {PAGE_PROVIDERS as ɵn,PAGE_SEE_ALSO as ɵm,seeAlsoProviderFactory as ɵo} from './components/page/page.providers';\nexport {TuiDocHeaderComponent as ɵl} from './internal/header/header.component';\nexport {TuiDocHeaderModule as ɵd} from './internal/header/header.module';\nexport {TuiInputOpacityDirective as ɵb} from './internal/input-opacity/input-opacity.directive';\nexport {TuiInputOpacityModule as ɵa} from './internal/input-opacity/input-opacity.module';\nexport {TuiDocSeeAlsoComponent as ɵq} from './internal/see-also/see-also.component';\nexport {TuiDocSeeAlsoModule as ɵp} from './internal/see-also/see-also.module';\nexport {TuiDocSourceCodeComponent as ɵs} from './internal/source-code/source-code.component';\nexport {TuiDocSourceCodeModule as ɵr} from './internal/source-code/source-code.module';"],"names":["Location"],"mappings":"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"}
|