@taiga-ui/addon-doc 2.55.0 → 3.0.0-rc.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/README.md +2 -2
- package/addon-doc.module.d.ts +9 -0
- package/bundles/taiga-ui-addon-doc.umd.js +1777 -1335
- package/bundles/taiga-ui-addon-doc.umd.js.map +1 -1
- package/components/code/code.component.d.ts +3 -0
- package/components/code/code.module.d.ts +7 -0
- package/components/copy/copy.component.d.ts +3 -0
- package/components/copy/copy.module.d.ts +7 -0
- package/components/demo/demo.component.d.ts +3 -0
- package/components/demo/demo.module.d.ts +11 -0
- package/components/documentation/documentation-property-connector.directive.d.ts +3 -0
- package/components/documentation/documentation.component.d.ts +3 -0
- package/components/documentation/documentation.module.d.ts +12 -0
- package/components/example/example-capitalize.pipe.d.ts +3 -0
- package/components/example/example-get-tabs.pipe.d.ts +3 -0
- package/components/example/example.component.d.ts +8 -5
- package/components/example/example.module.d.ts +14 -0
- package/components/main/main.component.d.ts +3 -0
- package/components/main/main.module.d.ts +12 -0
- package/components/navigation/navigation.component.d.ts +3 -0
- package/components/navigation/navigation.module.d.ts +12 -0
- package/components/page/page-tab.directive.d.ts +3 -0
- package/components/page/page.component.d.ts +3 -0
- package/components/page/page.module.d.ts +11 -0
- package/directives/scroll-into-view/scroll-into-view.directive.d.ts +5 -0
- package/directives/scroll-into-view/scroll-into-view.module.d.ts +8 -0
- package/esm2015/addon-doc.module.js +27 -16
- package/esm2015/components/code/code.component.js +25 -23
- package/esm2015/components/code/code.module.js +15 -12
- package/esm2015/components/code/parse-code-block.js +3 -3
- package/esm2015/components/copy/copy.component.js +24 -19
- package/esm2015/components/copy/copy.module.js +15 -12
- package/esm2015/components/demo/demo.component.js +80 -63
- package/esm2015/components/demo/demo.module.js +54 -13
- package/esm2015/components/documentation/documentation-property-connector.directive.js +51 -52
- package/esm2015/components/documentation/documentation.component.js +72 -64
- package/esm2015/components/documentation/documentation.module.js +62 -19
- package/esm2015/components/example/example-capitalize.pipe.js +13 -10
- package/esm2015/components/example/example-get-tabs.pipe.js +10 -8
- package/esm2015/components/example/example.component.js +88 -66
- package/esm2015/components/example/example.module.js +42 -21
- package/esm2015/components/main/main.component.js +49 -35
- package/esm2015/components/main/main.module.js +36 -13
- package/esm2015/components/navigation/navigation.component.js +86 -63
- package/esm2015/components/navigation/navigation.module.js +56 -13
- package/esm2015/components/navigation/navigation.providers.js +4 -4
- package/esm2015/components/page/page-tab.directive.js +18 -15
- package/esm2015/components/page/page.component.js +48 -43
- package/esm2015/components/page/page.module.js +28 -13
- package/esm2015/components/page/page.providers.js +4 -4
- package/esm2015/directives/scroll-into-view/scroll-into-view.directive.js +38 -35
- package/esm2015/directives/scroll-into-view/scroll-into-view.module.js +26 -22
- package/esm2015/interfaces/code-editor.js +2 -1
- package/esm2015/interfaces/page.js +4 -4
- package/esm2015/interfaces/source-code-path-options.js +2 -1
- package/esm2015/internal/header/header.component.js +35 -24
- package/esm2015/internal/header/header.module.js +28 -13
- package/esm2015/internal/input-opacity/input-opacity.directive.js +21 -20
- package/esm2015/internal/input-opacity/input-opacity.module.js +14 -11
- package/esm2015/internal/see-also/see-also.component.js +28 -24
- package/esm2015/internal/see-also/see-also.module.js +15 -12
- package/esm2015/internal/source-code/source-code.component.js +35 -34
- package/esm2015/internal/source-code/source-code.module.js +15 -12
- package/esm2015/languages/russian.js +14 -18
- package/esm2015/public-api.js +8 -1
- package/esm2015/taiga-ui-addon-doc.js +1 -13
- package/esm2015/tokens/code-actions.js +3 -3
- package/esm2015/tokens/code-editor.js +2 -2
- package/esm2015/tokens/default-tabs.js +2 -2
- package/esm2015/tokens/example-content-processor.js +2 -2
- package/esm2015/tokens/i18n.js +19 -19
- package/esm2015/tokens/logo.js +3 -3
- package/esm2015/tokens/page-loaded.js +2 -2
- package/esm2015/tokens/pages.js +2 -2
- package/esm2015/tokens/scroll-behavior.js +2 -2
- package/esm2015/tokens/see-also.js +2 -2
- package/esm2015/tokens/source-code.js +3 -3
- package/esm2015/tokens/title.js +3 -3
- package/esm2015/types/pages.js +2 -1
- package/esm2015/utils/coerce-value.js +6 -6
- package/esm2015/utils/color-conversion.js +5 -5
- package/esm2015/utils/generate-routes.js +4 -10
- package/esm2015/utils/inspect.js +13 -13
- package/esm2015/utils/raw-load-record.js +1 -1
- package/esm2015/utils/raw-load.js +13 -2
- package/esm2015/utils/transliterate-keyboard-layout.js +34 -34
- package/fesm2015/taiga-ui-addon-doc.js +1256 -924
- package/fesm2015/taiga-ui-addon-doc.js.map +1 -1
- package/interfaces/code-editor.d.ts +0 -10
- package/internal/header/header.component.d.ts +3 -0
- package/internal/header/header.module.d.ts +11 -0
- package/internal/input-opacity/input-opacity.directive.d.ts +3 -0
- package/internal/input-opacity/input-opacity.module.d.ts +5 -0
- package/internal/see-also/see-also.component.d.ts +3 -0
- package/internal/see-also/see-also.module.d.ts +8 -0
- package/internal/source-code/source-code.component.d.ts +3 -0
- package/internal/source-code/source-code.module.d.ts +8 -0
- package/languages/russian.d.ts +0 -3
- package/package.json +11 -14
- package/public-api.d.ts +2 -0
- package/taiga-ui-addon-doc.d.ts +1 -12
- package/utils/generate-routes.d.ts +1 -6
- package/bundles/taiga-ui-addon-doc.umd.min.js +0 -2
- package/bundles/taiga-ui-addon-doc.umd.min.js.map +0 -1
- package/esm5/addon-doc.module.js +0 -25
- package/esm5/components/code/code.component.js +0 -46
- package/esm5/components/code/code.module.js +0 -19
- package/esm5/components/code/parse-code-block.js +0 -21
- package/esm5/components/copy/copy.component.js +0 -43
- package/esm5/components/copy/copy.module.js +0 -19
- package/esm5/components/demo/demo.component.js +0 -153
- package/esm5/components/demo/demo.module.js +0 -43
- package/esm5/components/documentation/documentation-property-connector.directive.js +0 -133
- package/esm5/components/documentation/documentation.component.js +0 -145
- package/esm5/components/documentation/documentation.module.js +0 -50
- package/esm5/components/example/example-capitalize.pipe.js +0 -16
- package/esm5/components/example/example-get-tabs.pipe.js +0 -15
- package/esm5/components/example/example.component.js +0 -135
- package/esm5/components/example/example.module.js +0 -42
- package/esm5/components/main/main.component.js +0 -58
- package/esm5/components/main/main.module.js +0 -35
- package/esm5/components/navigation/navigation.component.js +0 -203
- package/esm5/components/navigation/navigation.module.js +0 -45
- package/esm5/components/navigation/navigation.providers.js +0 -59
- package/esm5/components/page/page-tab.directive.js +0 -24
- package/esm5/components/page/page.component.js +0 -67
- package/esm5/components/page/page.module.js +0 -30
- package/esm5/components/page/page.providers.js +0 -22
- package/esm5/directives/scroll-into-view/scroll-into-view.directive.js +0 -65
- package/esm5/directives/scroll-into-view/scroll-into-view.module.js +0 -34
- package/esm5/interfaces/code-editor.js +0 -1
- package/esm5/interfaces/page.js +0 -6
- package/esm5/interfaces/source-code-path-options.js +0 -1
- package/esm5/internal/header/header.component.js +0 -47
- package/esm5/internal/header/header.module.js +0 -30
- package/esm5/internal/input-opacity/input-opacity.directive.js +0 -36
- package/esm5/internal/input-opacity/input-opacity.module.js +0 -16
- package/esm5/internal/see-also/see-also.component.js +0 -44
- package/esm5/internal/see-also/see-also.module.js +0 -20
- package/esm5/internal/source-code/source-code.component.js +0 -61
- package/esm5/internal/source-code/source-code.module.js +0 -20
- package/esm5/languages/russian.js +0 -42
- package/esm5/public-api.js +0 -49
- package/esm5/taiga-ui-addon-doc.js +0 -17
- package/esm5/tokens/code-actions.js +0 -5
- package/esm5/tokens/code-editor.js +0 -3
- package/esm5/tokens/default-tabs.js +0 -5
- package/esm5/tokens/example-content-processor.js +0 -4
- package/esm5/tokens/i18n.js +0 -54
- package/esm5/tokens/logo.js +0 -5
- package/esm5/tokens/page-loaded.js +0 -5
- package/esm5/tokens/pages.js +0 -5
- package/esm5/tokens/scroll-behavior.js +0 -3
- package/esm5/tokens/see-also.js +0 -5
- package/esm5/tokens/source-code.js +0 -5
- package/esm5/tokens/title.js +0 -5
- package/esm5/types/pages.js +0 -1
- package/esm5/utils/coerce-value.js +0 -44
- package/esm5/utils/color-conversion.js +0 -27
- package/esm5/utils/generate-routes.js +0 -21
- package/esm5/utils/inspect.js +0 -68
- package/esm5/utils/raw-load-record.js +0 -50
- package/esm5/utils/raw-load.js +0 -26
- package/esm5/utils/transliterate-keyboard-layout.js +0 -50
- package/fesm5/taiga-ui-addon-doc.js +0 -2007
- package/fesm5/taiga-ui-addon-doc.js.map +0 -1
- package/taiga-ui-addon-doc.metadata.json +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","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-actions.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-capitalize.pipe.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/tokens/page-loaded.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/tokens/scroll-behavior.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/interfaces/page.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__assign","assign","t","s","i","n","arguments","length","apply","this","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","v","op","TypeError","pop","push","create","__values","o","m","__read","ar","error","__spread","concat","rawLoad","content","_a","_b","default","tuiRawLoad","tryParseMarkdownCodeBlock","text","MarkdownIt","parse","filter","tag","type","map","tuiTryParseMarkdownCodeBlock","TuiDocCodeComponent","rawLoader$$","BehaviorSubject","filename","processor$","pipe","switchMap","code","Input","HostBinding","Component","selector","template","TuiDocCodeModule","NgModule","imports","CommonModule","HighlightModule","declarations","exports","TuiDocCopyComponent","texts$","copy$","Subject","switchMapTo","timer","mapTo","startWith","onClick","Observable","Inject","args","TUI_COPY_TEXTS","tuiPure","changeDetection","ChangeDetectionStrategy","OnPush","providers","TuiDestroyService","TuiDocCopyModule","TuiButtonModule","TUI_DOC_DEMO_TEXTS","InjectionToken","factory","TUI_DOC_DOCUMENTATION_TEXTS","TUI_DOC_EXAMPLE_TEXTS","TUI_DOC_MENU_TEXT","TUI_DOC_SEARCH_TEXT","TUI_DOC_SEE_ALSO_TEXT","TUI_DOC_SOURCE_CODE_TEXT","TuiDocDemoComponent","isMobile","destroy$","renderer","platformId","locationRef","urlSerializer","texts","_this","initialX","wrapperWidth","control","updateOnVariants","updateOn","expanded","opaque","modeControl","FormControl","mode","change$","items","isBrowser","isPlatformBrowser","parsedMode","path","match","setValue","valueChanges","takeUntil","subscribe","urlTree","queryParams","tuiMode","go","String","onResize","setResizerTextContent","ngOnInit","createForm","ngAfterViewInit","resizerText","paddingLeft","getComputedStyle","nativeElement","offsetWidth","textContent","parseInt","onDragStart","event","preventDefault","clientX","wrapper","onDragContinues","deltaX","resizeContent","onDragEnd","toggleDetails","updateOnChange","testForm","FormGroup","testValue","delta","setStyle","px","Math","max","TUI_IS_MOBILE","Renderer2","PLATFORM_ID","Location","UrlSerializer","ViewChild","ContentChild","TemplateRef","HostListener","TuiDocDemoComponent_1","provide","TuiModeDirective","useExisting","forwardRef","TuiDocDemoModule","ReactiveFormsModule","FormsModule","RouterModule","TuiLinkModule","TuiDragModule","TuiSelectModule","TuiExpandModule","TuiGroupModule","TuiTooltipModule","TuiModeModule","TuiRadioBlockModule","TuiCheckboxLabeledModule","TuiSvgModule","TuiDataListWrapperModule","TuiDataListModule","TuiTextfieldControllerModule","TuiHintControllerModule","rgbToHex","x","toString","padStart","join","hexToRgb","hex","matches","replace","split","char","array","Number","inspectAny","data","depth","RegExp","isArray","first","index","inspectArray","object","inspectObject","coerceValue","prepared","trim","includes","isEmptyParamValue","isBooleanParamValue","test","isNumberParamValue","decodedValue","decodeURIComponent","startsWith","endsWith","isPossibleArray","isPossibleObject","JSON","tuiCoerceValue","TuiDocDocumentationPropertyConnectorDirective","activatedRoute","documentationPropertyName","documentationPropertyMode","documentationPropertyType","documentationPropertyDeprecated","documentationPropertyValues","documentationPropertyValueChange","EventEmitter","changed$","emits$","parseParams","snapshot","ngOnChanges","onValueChange","documentationPropertyValue","emit","setQueryParam","emitEvent","console","info","attrName","params","propertyValue","propertyValueWithSuffix","tree","isValueAvailableByKey","computedValue","indexOf","suffix","propName","ActivatedRoute","Output","Directive","exportAs","TuiDocDocumentationComponent","changeDetectorRef","heading","showValues","isAPI","propertiesConnectors","EMPTY_QUERY","activeItemIndex","ngAfterContentInit","itemsQueryListObservable","merge","watch","getColor","color","reduce","current","parsed","getOpacity","lastComma","lastIndexOf","slice","round","parseFloat","onColorChange","connector","opacity","onOpacityChange","stripOptional","name","isOptional","isPrimitivePolymorpheusContent","showCleaner","showContentTooltip","ChangeDetectorRef","ContentChildren","animations","trigger","transition","style","animate","TuiInputOpacityDirective","tuiFocusableComponent","nativeFocusableElement","TUI_FOCUSABLE_ITEM_ACCESSOR","TuiInputOpacityModule","TuiDocDocumentationModule","TuiBadgeModule","TuiToggleModule","TuiInputCountModule","TuiPrimitiveTextfieldModule","TuiDropdownControllerModule","TuiNotificationModule","TUI_DOC_CODE_ACTIONS","TUI_DOC_CODE_EDITOR","TUI_DOC_EXAMPLE_CONTENT_PROCESSOR","identity","rawLoadRecord","example","processedContent","entries","_c","_d","_e","_g","tuiRawLoadRecord","TuiDocExampleComponent","id","clipboard","notifications","location","copyTexts$","codeEditor","processContent","isCypress","codeActions","router","route","ngLocation","description","componentName","pathname","defaultTabIndex","defaultTab","loading$","copyExampleLink","hashPosition","href","url","setFragmentWithoutRedirect","copy","show","status","edit","files","finally","createUrlTree","relativeTo","fragment","Attribute","Clipboard","TuiNotificationsService","LOCATION","Optional","TUI_IS_CYPRESS","Router","NgLocation","TuiDocExampleCapitalizePipe","transform","capitalizeFirstLetter","Pipe","TuiDocExampleGetTabsPipe","keys","TuiDocExampleModule","ClipboardModule","TuiTabsModule","PolymorpheusModule","TuiDocMainComponent","storage","windowRef","night","getItem","matchMedia","onMode","setItem","Storage","LOCAL_STORAGE","Window","WINDOW","TuiDocMainComponent_1","encapsulation","ViewEncapsulation","None","TuiSwipeService","TUI_DOC_PAGE_LOADED","defer","of","ScrollIntoViewDirective","readyToScroll$","scroll$","ReplaySubject","Boolean","debounceTime","shallWe","getElementObscurers","scrollIntoView","ElementRef","TuiScrollIntoViewLinkDirective","__","constructor","__extends","_super","ScrollIntoViewModule","TuiScrollIntoViewLinkModule","TUI_DOC_SCROLL_BEHAVIOR","MAP","а","б","в","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ","ы","ь","ю","я","transliterateKeyboardLayout","string","newStr","charAt","TUI_DOC_PAGES","TUI_DOC_TITLE","NAVIGATION_TITLE","NAVIGATION_LABELS","NAVIGATION_ITEMS","NAVIGATION_PROVIDERS","deps","useFactory","titleProviderFactory","labelsProviderFactory","itemsProviderFactory","titlePrefix","events","NavigationEnd","firstChild","isPresent","mergeMap","title","pages","section","item","page","TuiDocNavigationComponent","titleService","title$","documentRef","sidebar","labels","searchText","scrollBehavior","menuOpen","search","open","openPagesArr","openPagesGroupsArr","active","mode$","markForCheck","setTitle","openActivePageGroup","handleAnchorLink","filterItems","flattenSubPages","isActive","onGroupClick","closeMenu","onSearchChange","canOpen","uniqBy","keywords","toLowerCase","subPages","isActiveRoute","hash","take","navigateToAnchorLink","forEach","pagesIndex","pageIndex","subPage","element","querySelector","classList","add","block","inline","behavior","Title","Document","DOCUMENT","TuiSidebarDirective","TuiDocNavigationModule","TuiActiveZoneModule","TuiLetModule","TuiHostedDropdownModule","TuiAccordionModule","TuiScrollbarModule","TuiAutoFocusModule","TUI_DOC_LOGO","TuiDocHeaderComponent","logo","menu","swipes$","stream$","open$","swipe","direction","distinctUntilChanged","onActiveZone","TuiDocHeaderModule","TuiSidebarModule","TuiDocMainModule","TuiThemeNightModule","TuiRootModule","TuiDialogModule","TuiAlertModule","TUI_DOC_DEFAULT_TABS","TUI_DOC_SEE_ALSO","PAGE_SEE_ALSO","PAGE_PROVIDERS","seeAlsoProviderFactory","seeAlsoGroups","currentHeader","getAttribute","groups","group","seeAlsoSet","Set","component","from","TuiDocPageTabConnectorDirective","tuiDefaultProp","TuiDocPageComponent","deprecated","defaultTabs","seeAlso","header","package","tabConnectors","NaN","getRouterLink","tab","TuiDocSeeAlsoComponent","pageTitle","find","TuiDocSeeAlsoModule","TUI_DOC_SOURCE_CODE","TuiDocSourceCodeComponent","sourceCode","getPathOptions","packageName","TuiDocSourceCodeModule","TuiDocPageModule","TuiTagModule","DEMO_TEXTS","DOC_TEXTS","EXAMPLE_TEXTS","TUI_DOC_RUSSIAN","useValue","TuiAddonDocModule","generateRoutes","children","tuiGenerateRoutes","TS","LESS","HTML"],"mappings":"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","sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import {RawLoaderContent} from '../interfaces/page';\n\n/**\n * @deprecated: use {@link tuiRawLoad} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport async function rawLoad(content: RawLoaderContent): Promise<string> {\n return content instanceof Promise ? (await content).default : content;\n}\n\nexport const tuiRawLoad = rawLoad;\n","import MarkdownIt from 'markdown-it';\nimport Token from 'markdown-it/lib/token';\n\n/**\n * @deprecated: use {@link tuiTryParseMarkdownCodeBlock} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\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\nexport const tuiTryParseMarkdownCodeBlock = tryParseMarkdownCodeBlock;\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(): void {\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<Record<string, unknown>> | null = null;\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: Record<string, unknown>,\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(): void {\n this.setResizerTextContent();\n }\n\n ngOnInit(): void {\n this.createForm();\n }\n\n ngAfterViewInit(): void {\n this.setResizerTextContent();\n }\n\n setResizerTextContent(): void {\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): void {\n event.preventDefault();\n this.initialX = event.clientX;\n this.wrapperWidth = this.wrapper ? this.wrapper.nativeElement.offsetWidth : 0;\n }\n\n onDragContinues(event: MouseEvent): void {\n const deltaX = this.initialX - event.clientX;\n\n this.resizeContent(deltaX);\n this.setResizerTextContent();\n }\n\n onDragEnd(): void {\n this.wrapperWidth = this.wrapper ? this.wrapper.nativeElement.offsetWidth : 0;\n }\n\n toggleDetails(): void {\n this.expanded = !this.expanded;\n }\n\n updateOnChange(updateOn: 'change' | 'blur' | 'submit'): void {\n this.updateOn = updateOn;\n this.createForm();\n }\n\n private createForm(): void {\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): void {\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: duplicate, need fix it before v3\n * TODO: move another package for reuse between addon-editor and addon-doc\n * @deprecated: use {@link tuiRgbToHex} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\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 const tuiRgbToHex = rgbToHex;\n\n/**\n * @deprecated: use {@link tuiHexToRgb} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\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\nexport const tuiHexToRgb = hexToRgb;\n","function inspectArray(array: readonly unknown[], 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]: unknown}, 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/**\n * @deprecated: use {@link tuiInspectAny} instead\n * Returns readable JS entity\n * @param data\n * @param depth\n * @return readable JS entity\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function inspectAny<T>(data: T, 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 as unknown as {[key: string]: unknown}, depth);\n}\n\nexport const tuiInspectAny = inspectAny;\n","/**\n * @deprecated: use {@link tuiCoerceValue} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function coerceValue<T>(value?: T): T | number | string | boolean | null | object {\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 const decodedValue = decodeURIComponent(prepared);\n\n try {\n return isPossibleArray(decodedValue) || isPossibleObject(decodedValue)\n ? JSON.parse(decodedValue)\n : decodedValue;\n } catch {\n return decodedValue;\n }\n}\n\nexport const tuiCoerceValue = coerceValue;\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 // TODO: investigate to disallow potentially catastrophic exponential-time regular expressions.\n // eslint-disable-next-line unicorn/no-unsafe-regex\n return /^-?[\\d.]+(?:e-?\\d+)?$/.test(value);\n}\n\nfunction isPossibleArray(value: string): boolean {\n return value.startsWith('[') && value.endsWith(']');\n}\n\nfunction isPossibleObject(value: string): boolean {\n return value.startsWith('{') && value.endsWith('}');\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;\n\n @Input()\n documentationPropertyDeprecated = false;\n\n @Input()\n documentationPropertyValues: readonly T[] | null = null;\n\n @Output()\n readonly documentationPropertyValueChange = new EventEmitter<T>();\n\n readonly changed$ = new Subject<void>();\n\n readonly emits$ = new BehaviorSubject(1);\n\n constructor(\n @Inject(TemplateRef) readonly template: TemplateRef<Record<string, unknown>>,\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(): void {\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(): void {\n this.changed$.next();\n }\n\n onValueChange(value: T): void {\n this.documentationPropertyValue = value;\n this.documentationPropertyValueChange.emit(value);\n this.setQueryParam(value);\n }\n\n emitEvent(event: unknown): void {\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): void {\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): void {\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(): void {\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 .slice(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 ): void {\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 ): void {\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 isPrimitivePolymorpheusContent(value: unknown): boolean {\n return typeof value === 'string' || typeof value === 'number';\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: unknown): 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';\nimport {TuiContextWithImplicit} from '@taiga-ui/cdk';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport const TUI_DOC_CODE_ACTIONS = new InjectionToken<\n PolymorpheusContent<TuiContextWithImplicit<string>>\n>('Code actions for the opened tab with code example', {\n factory: () => '',\n});\n","import {InjectionToken} from '@angular/core';\n\nimport {TuiCodeEditor} from '../interfaces/code-editor';\n\nexport const TUI_DOC_CODE_EDITOR = new InjectionToken<TuiCodeEditor>(\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\n/**\n * @deprecated: use {@link tuiRawLoadRecord} instead\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\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\nexport const tuiRawLoadRecord = rawLoadRecord;\n","import {Clipboard} from '@angular/cdk/clipboard';\nimport {Location as NgLocation} from '@angular/common';\nimport {\n Attribute,\n ChangeDetectionStrategy,\n Component,\n Inject,\n Input,\n Optional,\n} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\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, Subject} from 'rxjs';\nimport {map, switchMap} from 'rxjs/operators';\n\nimport {TuiCodeEditor} from '../../interfaces/code-editor';\nimport {TuiDocExample} from '../../interfaces/page';\nimport {TUI_DOC_CODE_ACTIONS} from '../../tokens/code-actions';\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(value => this.processContent(value)),\n );\n\n readonly loading$ = new Subject<boolean>();\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: TuiCodeEditor | 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 @Inject(TUI_DOC_CODE_ACTIONS) readonly codeActions: PolymorpheusContent[],\n @Inject(Router) private readonly router: Router,\n @Inject(ActivatedRoute) private readonly route: ActivatedRoute,\n @Inject(NgLocation) private readonly ngLocation: NgLocation,\n ) {}\n\n copyExampleLink(): void {\n const hashPosition = this.location.href.indexOf('#');\n const currentUrl =\n hashPosition > -1\n ? this.location.href.slice(0, Math.max(0, hashPosition))\n : this.location.href;\n const url = `${currentUrl}#${this.id}`;\n\n this.setFragmentWithoutRedirect(this.id);\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 edit(files: Record<string, string>): void {\n this.loading$.next(true);\n this.codeEditor\n ?.edit(this.componentName, this.id ?? '', files)\n .finally(() => this.loading$.next(false));\n }\n\n private setFragmentWithoutRedirect(id: string | null): void {\n const url = this.router\n .createUrlTree([], {relativeTo: this.route, fragment: id || ''})\n .toString();\n\n this.ngLocation.go(url);\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\nimport {capitalizeFirstLetter} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\n@Pipe({name: 'tuiDocExampleCapitalize'})\nexport class TuiDocExampleCapitalizePipe implements PipeTransform {\n transform(content: PolymorpheusContent): PolymorpheusContent {\n return typeof content === 'string' ? capitalizeFirstLetter(content) : content;\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 {TuiDocExampleCapitalizePipe} from './example-capitalize.pipe';\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: [\n TuiDocExampleComponent,\n TuiDocExampleGetTabsPipe,\n TuiDocExampleCapitalizePipe,\n ],\n exports: [\n TuiDocExampleComponent,\n TuiDocExampleGetTabsPipe,\n TuiDocExampleCapitalizePipe,\n ],\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): void {\n this.night = night;\n this.change$.next();\n this.storage.setItem('night', String(night));\n }\n}\n","import {InjectionToken} from '@angular/core';\nimport {defer, Observable, of, timer} from 'rxjs';\nimport {switchMapTo} from 'rxjs/operators';\n\nexport const TUI_DOC_PAGE_LOADED = new InjectionToken<Observable<boolean>>(\n '[TUI_DOC_PAGE_LOADED] Stream that emits if loading of page is over (for example, to begin scrollIntoView)',\n {factory: () => defer(() => timer(200).pipe(switchMapTo(of(true))))},\n);\n","import {Directive, ElementRef, Inject, Input} from '@angular/core';\nimport {getElementObscurers, TuiDestroyService} from '@taiga-ui/cdk';\nimport {Observable, ReplaySubject} from 'rxjs';\nimport {debounceTime, filter, switchMapTo, takeUntil} from 'rxjs/operators';\n\nimport {TUI_DOC_PAGE_LOADED} from '../../tokens/page-loaded';\n\n/**\n * @deprecated: use {@link TuiScrollIntoViewLinkDirective}\n * TODO: remove in v3.0\n */\n@Directive({\n selector: '[scrollIntoView]',\n providers: [TuiDestroyService],\n})\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class ScrollIntoViewDirective {\n @Input()\n set scrollIntoView(shallWe: boolean) {\n this.scroll$.next(shallWe);\n }\n\n private readonly scroll$ = new ReplaySubject<boolean>(1);\n\n constructor(\n @Inject(TuiDestroyService) destroy$: TuiDestroyService,\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(TUI_DOC_PAGE_LOADED)\n readonly readyToScroll$: Observable<boolean>,\n ) {\n this.readyToScroll$\n .pipe(\n filter(Boolean),\n switchMapTo(this.scroll$),\n debounceTime(750),\n filter(shallWe => shallWe && !!getElementObscurers(nativeElement)),\n takeUntil(destroy$),\n )\n .subscribe(() => {\n nativeElement.scrollIntoView();\n });\n }\n}\n\n@Directive({\n selector: '[tuiScrollIntoViewLink]',\n providers: [TuiDestroyService],\n})\nexport class TuiScrollIntoViewLinkDirective extends ScrollIntoViewDirective {}\n","import {NgModule} from '@angular/core';\n\nimport {\n ScrollIntoViewDirective,\n TuiScrollIntoViewLinkDirective,\n} from './scroll-into-view.directive';\n\n/**\n * @deprecated: use {@link TuiScrollIntoViewLinkModule}\n * TODO: remove in v3.0\n */\n@NgModule({\n declarations: [ScrollIntoViewDirective],\n exports: [ScrollIntoViewDirective],\n})\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class ScrollIntoViewModule {}\n\n@NgModule({\n declarations: [TuiScrollIntoViewLinkDirective],\n exports: [TuiScrollIntoViewLinkDirective],\n})\nexport class TuiScrollIntoViewLinkModule {}\n","import {InjectionToken} from '@angular/core';\n\nexport const TUI_DOC_SCROLL_BEHAVIOR = new InjectionToken<ScrollBehavior>(\n '[TUI_DOC_SCROLL_BEHAVIOR] Defines the transition animation for scroll',\n {factory: () => 'smooth'},\n);\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 * @deprecated: use {@link tuiTransliterateKeyboardLayout} instead\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 */\n// eslint-disable-next-line @typescript-eslint/naming-convention\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\nexport const tuiTransliterateKeyboardLayout = transliterateKeyboardLayout;\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<readonly TuiDocPages[]> =\n new InjectionToken<readonly 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\n// eslint-disable-next-line @typescript-eslint/naming-convention\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\n// eslint-disable-next-line @typescript-eslint/naming-convention\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\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function itemsProviderFactory(pages: TuiDocPages): readonly 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 {TuiDestroyService, tuiPure, uniqBy} from '@taiga-ui/cdk';\nimport {TuiBrightness, TuiModeDirective} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\nimport {filter, map, startWith, take, takeUntil} from 'rxjs/operators';\n\nimport {TuiDocPage} from '../../interfaces/page';\nimport {TUI_DOC_SEARCH_TEXT} from '../../tokens/i18n';\nimport {TUI_DOC_PAGE_LOADED} from '../../tokens/page-loaded';\nimport {TUI_DOC_SCROLL_BEHAVIOR} from '../../tokens/scroll-behavior';\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\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: readonly 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 @Inject(TuiDestroyService) private readonly destroy$: Observable<void>,\n @Inject(TUI_DOC_PAGE_LOADED)\n private readonly readyToScroll$: Observable<boolean>,\n @Inject(TUI_DOC_SCROLL_BEHAVIOR) private readonly scrollBehavior: ScrollBehavior,\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<readonly TuiDocPage[]> {\n return this.filterItems(this.flattenSubPages(this.items), this.search);\n }\n\n get itemsWithoutSections(): TuiDocPages {\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): void {\n this.openPagesGroupsArr[index] = !this.openPagesGroupsArr[index];\n }\n\n closeMenu(): void {\n this.menuOpen = false;\n }\n\n onSearchChange(search: string): void {\n this.search = search;\n this.open = this.canOpen;\n }\n\n onClick(): void {\n this.open = false;\n this.menuOpen = false;\n this.search = '';\n this.openActivePageGroup();\n }\n\n @tuiPure\n private filterItems(\n items: ReadonlyArray<readonly TuiDocPage[]>,\n search: string,\n ): ReadonlyArray<readonly 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: readonly TuiDocPages[],\n ): ReadonlyArray<readonly TuiDocPage[]> {\n return items.reduce<ReadonlyArray<readonly TuiDocPage[]>>(\n (array, item) => [\n ...array,\n item.reduce<readonly 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): void {\n this.readyToScroll$\n .pipe(filter(Boolean), take(1), takeUntil(this.destroy$))\n .subscribe(() => this.navigateToAnchorLink(hash));\n }\n\n private openActivePageGroup(): void {\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): void {\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: this.scrollBehavior,\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 {\n ScrollIntoViewModule,\n TuiScrollIntoViewLinkModule,\n} 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 TuiScrollIntoViewLinkModule,\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(): void {\n this.stream$.next(true);\n }\n\n onActiveZone(active: boolean): void {\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 TuiAlertModule,\n TuiDialogModule,\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 TuiAlertModule,\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\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function seeAlsoProviderFactory(\n {nativeElement}: ElementRef,\n seeAlsoGroups: ReadonlyArray<readonly string[]>,\n): readonly string[] {\n const currentHeader = nativeElement.getAttribute('header');\n const groups = seeAlsoGroups.filter(group => group.includes(currentHeader)) || [];\n\n const seeAlsoSet = new Set(\n groups\n .join()\n .split(',')\n .filter(component => component && component !== currentHeader),\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(\n @Inject(TemplateRef) readonly template: TemplateRef<Record<string, unknown>>,\n ) {}\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?.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: 3.0 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 * @deprecated: use {@link tuiGenerateRoutes} instead\n * Generates typical page routing structure\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function generateRoutes(type: Type<unknown>): Routes {\n return [\n {\n path: '',\n component: type,\n children: [\n {\n path: ':tab',\n component: type,\n },\n ],\n },\n ];\n}\n\nexport const tuiGenerateRoutes = generateRoutes;\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: readonly 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"]}
|
package/esm5/addon-doc.module.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { TuiDocCodeModule } from './components/code/code.module';
|
|
4
|
-
import { TuiDocDemoModule } from './components/demo/demo.module';
|
|
5
|
-
import { TuiDocDocumentationModule } from './components/documentation/documentation.module';
|
|
6
|
-
import { TuiDocExampleModule } from './components/example/example.module';
|
|
7
|
-
import { TuiDocPageModule } from './components/page/page.module';
|
|
8
|
-
var TuiAddonDocModule = /** @class */ (function () {
|
|
9
|
-
function TuiAddonDocModule() {
|
|
10
|
-
}
|
|
11
|
-
TuiAddonDocModule = __decorate([
|
|
12
|
-
NgModule({
|
|
13
|
-
exports: [
|
|
14
|
-
TuiDocCodeModule,
|
|
15
|
-
TuiDocDemoModule,
|
|
16
|
-
TuiDocDocumentationModule,
|
|
17
|
-
TuiDocPageModule,
|
|
18
|
-
TuiDocExampleModule,
|
|
19
|
-
],
|
|
20
|
-
})
|
|
21
|
-
], TuiAddonDocModule);
|
|
22
|
-
return TuiAddonDocModule;
|
|
23
|
-
}());
|
|
24
|
-
export { TuiAddonDocModule };
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkb24tZG9jLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9hZGRvbi1kb2MvIiwic291cmNlcyI6WyJhZGRvbi1kb2MubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBVy9EO0lBQUE7SUFBZ0MsQ0FBQztJQUFwQixpQkFBaUI7UUFUN0IsUUFBUSxDQUFDO1lBQ04sT0FBTyxFQUFFO2dCQUNMLGdCQUFnQjtnQkFDaEIsZ0JBQWdCO2dCQUNoQix5QkFBeUI7Z0JBQ3pCLGdCQUFnQjtnQkFDaEIsbUJBQW1CO2FBQ3RCO1NBQ0osQ0FBQztPQUNXLGlCQUFpQixDQUFHO0lBQUQsd0JBQUM7Q0FBQSxBQUFqQyxJQUFpQztTQUFwQixpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtUdWlEb2NDb2RlTW9kdWxlfSBmcm9tICcuL2NvbXBvbmVudHMvY29kZS9jb2RlLm1vZHVsZSc7XG5pbXBvcnQge1R1aURvY0RlbW9Nb2R1bGV9IGZyb20gJy4vY29tcG9uZW50cy9kZW1vL2RlbW8ubW9kdWxlJztcbmltcG9ydCB7VHVpRG9jRG9jdW1lbnRhdGlvbk1vZHVsZX0gZnJvbSAnLi9jb21wb25lbnRzL2RvY3VtZW50YXRpb24vZG9jdW1lbnRhdGlvbi5tb2R1bGUnO1xuaW1wb3J0IHtUdWlEb2NFeGFtcGxlTW9kdWxlfSBmcm9tICcuL2NvbXBvbmVudHMvZXhhbXBsZS9leGFtcGxlLm1vZHVsZSc7XG5pbXBvcnQge1R1aURvY1BhZ2VNb2R1bGV9IGZyb20gJy4vY29tcG9uZW50cy9wYWdlL3BhZ2UubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIFR1aURvY0NvZGVNb2R1bGUsXG4gICAgICAgIFR1aURvY0RlbW9Nb2R1bGUsXG4gICAgICAgIFR1aURvY0RvY3VtZW50YXRpb25Nb2R1bGUsXG4gICAgICAgIFR1aURvY1BhZ2VNb2R1bGUsXG4gICAgICAgIFR1aURvY0V4YW1wbGVNb2R1bGUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpQWRkb25Eb2NNb2R1bGUge31cbiJdfQ==
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { Component, HostBinding, Input } from '@angular/core';
|
|
3
|
-
import { BehaviorSubject } from 'rxjs';
|
|
4
|
-
import { map, switchMap } from 'rxjs/operators';
|
|
5
|
-
import { rawLoad } from '../../utils/raw-load';
|
|
6
|
-
import { tryParseMarkdownCodeBlock } from './parse-code-block';
|
|
7
|
-
var TuiDocCodeComponent = /** @class */ (function () {
|
|
8
|
-
function TuiDocCodeComponent() {
|
|
9
|
-
this.rawLoader$$ = new BehaviorSubject('');
|
|
10
|
-
this.filename = '';
|
|
11
|
-
this.processor$ = this.rawLoader$$.pipe(switchMap(rawLoad), map(tryParseMarkdownCodeBlock));
|
|
12
|
-
}
|
|
13
|
-
Object.defineProperty(TuiDocCodeComponent.prototype, "code", {
|
|
14
|
-
set: function (code) {
|
|
15
|
-
this.rawLoader$$.next(code);
|
|
16
|
-
},
|
|
17
|
-
enumerable: true,
|
|
18
|
-
configurable: true
|
|
19
|
-
});
|
|
20
|
-
Object.defineProperty(TuiDocCodeComponent.prototype, "hasFilename", {
|
|
21
|
-
get: function () {
|
|
22
|
-
return !!this.filename;
|
|
23
|
-
},
|
|
24
|
-
enumerable: true,
|
|
25
|
-
configurable: true
|
|
26
|
-
});
|
|
27
|
-
__decorate([
|
|
28
|
-
Input()
|
|
29
|
-
], TuiDocCodeComponent.prototype, "filename", void 0);
|
|
30
|
-
__decorate([
|
|
31
|
-
Input()
|
|
32
|
-
], TuiDocCodeComponent.prototype, "code", null);
|
|
33
|
-
__decorate([
|
|
34
|
-
HostBinding('class._has-filename')
|
|
35
|
-
], TuiDocCodeComponent.prototype, "hasFilename", null);
|
|
36
|
-
TuiDocCodeComponent = __decorate([
|
|
37
|
-
Component({
|
|
38
|
-
selector: 'tui-doc-code',
|
|
39
|
-
template: "<p\n *ngIf=\"filename\"\n class=\"t-header\"\n>\n {{ filename }}\n</p>\n<pre\n *ngFor=\"let content of processor$ | async\"\n class=\"t-code\"\n><code [lineNumbers]=\"true\" [highlight]=\"content\"></code></pre>\n",
|
|
40
|
-
styles: [":host{display:block}.t-header{font:var(--tui-font-text-s);font-weight:700}.t-code{margin:0}.t-code+.t-code{margin-top:1rem}.hljs:not(:empty){font:var(--tui-font-text-m);padding:1.5rem 2rem;font-family:monospace;background:var(--tui-clear-disabled);word-wrap:break-word;white-space:pre-wrap}@media all and (-webkit-min-device-pixel-ratio:0) and (min-resolution:0.001dpcm){.hljs:not(:empty)::-webkit-scrollbar,.hljs:not(:empty)::-webkit-scrollbar-thumb{width:1rem;height:1rem;border-radius:6.25rem;background-clip:padding-box;border:2.667rem solid transparent}.hljs:not(:empty)::-webkit-scrollbar{background-color:transparent}.hljs:not(:empty)::-webkit-scrollbar-thumb{background-color:var(--tui-clear-hover)}.hljs:not(:empty)::-webkit-scrollbar-thumb:hover{background-color:var(--tui-clear-active)}.hljs:not(:empty)::-webkit-scrollbar-thumb:active{background-color:var(--tui-text-03)}}:host._has-filename .hljs:not(:empty){border-radius:.75rem}:host-context(tui-root._mobile) .hljs:not(:empty){padding:1rem}"]
|
|
41
|
-
})
|
|
42
|
-
], TuiDocCodeComponent);
|
|
43
|
-
return TuiDocCodeComponent;
|
|
44
|
-
}());
|
|
45
|
-
export { TuiDocCodeComponent };
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tZG9jLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlL2NvZGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRzlDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQU83RDtJQUFBO1FBQ3FCLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQW1CLEVBQUUsQ0FBQyxDQUFDO1FBR3pFLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFFTCxlQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ3ZDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFDbEIsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQ2pDLENBQUM7SUFXTixDQUFDO0lBUkcsc0JBQUkscUNBQUk7YUFBUixVQUFTLElBQXNCO1lBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUM7OztPQUFBO0lBR0Qsc0JBQUksNENBQVc7YUFBZjtZQUNJLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDM0IsQ0FBQzs7O09BQUE7SUFmRDtRQURDLEtBQUssRUFBRTt5REFDTTtJQVFkO1FBREMsS0FBSyxFQUFFO21EQUdQO0lBR0Q7UUFEQyxXQUFXLENBQUMscUJBQXFCLENBQUM7MERBR2xDO0lBbkJRLG1CQUFtQjtRQUwvQixTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsY0FBYztZQUN4QixnUEFBbUM7O1NBRXRDLENBQUM7T0FDVyxtQkFBbUIsQ0FvQi9CO0lBQUQsMEJBQUM7Q0FBQSxBQXBCRCxJQW9CQztTQXBCWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtSYXdMb2FkZXJDb250ZW50fSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3BhZ2UnO1xuaW1wb3J0IHtyYXdMb2FkfSBmcm9tICcuLi8uLi91dGlscy9yYXctbG9hZCc7XG5pbXBvcnQge3RyeVBhcnNlTWFya2Rvd25Db2RlQmxvY2t9IGZyb20gJy4vcGFyc2UtY29kZS1ibG9jayc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWRvYy1jb2RlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29kZS50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb2RlLnN0eWxlLmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRG9jQ29kZUNvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSByYXdMb2FkZXIkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmF3TG9hZGVyQ29udGVudD4oJycpO1xuXG4gICAgQElucHV0KClcbiAgICBmaWxlbmFtZSA9ICcnO1xuXG4gICAgcmVhZG9ubHkgcHJvY2Vzc29yJCA9IHRoaXMucmF3TG9hZGVyJCQucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKHJhd0xvYWQpLFxuICAgICAgICBtYXAodHJ5UGFyc2VNYXJrZG93bkNvZGVCbG9jayksXG4gICAgKTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGNvZGUoY29kZTogUmF3TG9hZGVyQ29udGVudCkge1xuICAgICAgICB0aGlzLnJhd0xvYWRlciQkLm5leHQoY29kZSk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5faGFzLWZpbGVuYW1lJylcbiAgICBnZXQgaGFzRmlsZW5hbWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZmlsZW5hbWU7XG4gICAgfVxufVxuIl19
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { NgModule } from '@angular/core';
|
|
4
|
-
import { HighlightModule } from 'ngx-highlightjs';
|
|
5
|
-
import { TuiDocCodeComponent } from './code.component';
|
|
6
|
-
var TuiDocCodeModule = /** @class */ (function () {
|
|
7
|
-
function TuiDocCodeModule() {
|
|
8
|
-
}
|
|
9
|
-
TuiDocCodeModule = __decorate([
|
|
10
|
-
NgModule({
|
|
11
|
-
imports: [CommonModule, HighlightModule],
|
|
12
|
-
declarations: [TuiDocCodeComponent],
|
|
13
|
-
exports: [TuiDocCodeComponent],
|
|
14
|
-
})
|
|
15
|
-
], TuiDocCodeModule);
|
|
16
|
-
return TuiDocCodeModule;
|
|
17
|
-
}());
|
|
18
|
-
export { TuiDocCodeModule };
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tZG9jLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlL2NvZGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFPckQ7SUFBQTtJQUErQixDQUFDO0lBQW5CLGdCQUFnQjtRQUw1QixRQUFRLENBQUM7WUFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDO1lBQ3hDLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO1lBQ25DLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO1NBQ2pDLENBQUM7T0FDVyxnQkFBZ0IsQ0FBRztJQUFELHVCQUFDO0NBQUEsQUFBaEMsSUFBZ0M7U0FBbkIsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SGlnaGxpZ2h0TW9kdWxlfSBmcm9tICduZ3gtaGlnaGxpZ2h0anMnO1xuXG5pbXBvcnQge1R1aURvY0NvZGVDb21wb25lbnR9IGZyb20gJy4vY29kZS5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEhpZ2hsaWdodE1vZHVsZV0sXG4gICAgZGVjbGFyYXRpb25zOiBbVHVpRG9jQ29kZUNvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW1R1aURvY0NvZGVDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlEb2NDb2RlTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import MarkdownIt from 'markdown-it';
|
|
2
|
-
/**
|
|
3
|
-
* @deprecated: use {@link tuiTryParseMarkdownCodeBlock} instead
|
|
4
|
-
*/
|
|
5
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
6
|
-
export function tryParseMarkdownCodeBlock(text) {
|
|
7
|
-
if (text === void 0) { text = ''; }
|
|
8
|
-
var tokens = new MarkdownIt().parse(text, {});
|
|
9
|
-
var result = tokens
|
|
10
|
-
.filter(function (_a) {
|
|
11
|
-
var tag = _a.tag, type = _a.type;
|
|
12
|
-
return tag === 'code' && type === 'fence';
|
|
13
|
-
})
|
|
14
|
-
.map(function (_a) {
|
|
15
|
-
var content = _a.content;
|
|
16
|
-
return content;
|
|
17
|
-
});
|
|
18
|
-
return result.length ? result : [text];
|
|
19
|
-
}
|
|
20
|
-
export var tuiTryParseMarkdownCodeBlock = tryParseMarkdownCodeBlock;
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtY29kZS1ibG9jay5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9hZGRvbi1kb2MvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2NvZGUvcGFyc2UtY29kZS1ibG9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFVBQVUsTUFBTSxhQUFhLENBQUM7QUFHckM7O0dBRUc7QUFDSCxnRUFBZ0U7QUFDaEUsTUFBTSxVQUFVLHlCQUF5QixDQUFDLElBQWlCO0lBQWpCLHFCQUFBLEVBQUEsU0FBaUI7SUFDdkQsSUFBTSxNQUFNLEdBQVksSUFBSSxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELElBQU0sTUFBTSxHQUFHLE1BQU07U0FDaEIsTUFBTSxDQUFDLFVBQUMsRUFBVztZQUFWLFlBQUcsRUFBRSxjQUFJO1FBQU0sT0FBQSxHQUFHLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxPQUFPO0lBQWxDLENBQWtDLENBQUM7U0FDM0QsR0FBRyxDQUFDLFVBQUMsRUFBUztZQUFSLG9CQUFPO1FBQU0sT0FBQSxPQUFPO0lBQVAsQ0FBTyxDQUFDLENBQUM7SUFFakMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQUVELE1BQU0sQ0FBQyxJQUFNLDRCQUE0QixHQUFHLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1hcmtkb3duSXQgZnJvbSAnbWFya2Rvd24taXQnO1xuaW1wb3J0IFRva2VuIGZyb20gJ21hcmtkb3duLWl0L2xpYi90b2tlbic7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQ6IHVzZSB7QGxpbmsgdHVpVHJ5UGFyc2VNYXJrZG93bkNvZGVCbG9ja30gaW5zdGVhZFxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgZnVuY3Rpb24gdHJ5UGFyc2VNYXJrZG93bkNvZGVCbG9jayh0ZXh0OiBzdHJpbmcgPSAnJyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCB0b2tlbnM6IFRva2VuW10gPSBuZXcgTWFya2Rvd25JdCgpLnBhcnNlKHRleHQsIHt9KTtcbiAgICBjb25zdCByZXN1bHQgPSB0b2tlbnNcbiAgICAgICAgLmZpbHRlcigoe3RhZywgdHlwZX0pID0+IHRhZyA9PT0gJ2NvZGUnICYmIHR5cGUgPT09ICdmZW5jZScpXG4gICAgICAgIC5tYXAoKHtjb250ZW50fSkgPT4gY29udGVudCk7XG5cbiAgICByZXR1cm4gcmVzdWx0Lmxlbmd0aCA/IHJlc3VsdCA6IFt0ZXh0XTtcbn1cblxuZXhwb3J0IGNvbnN0IHR1aVRyeVBhcnNlTWFya2Rvd25Db2RlQmxvY2sgPSB0cnlQYXJzZU1hcmtkb3duQ29kZUJsb2NrO1xuIl19
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { __decorate, __param } from "tslib";
|
|
2
|
-
import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';
|
|
3
|
-
import { TuiDestroyService, tuiPure } from '@taiga-ui/cdk';
|
|
4
|
-
import { TUI_COPY_TEXTS } from '@taiga-ui/kit';
|
|
5
|
-
import { Observable, Subject, timer } from 'rxjs';
|
|
6
|
-
import { mapTo, startWith, switchMapTo } from 'rxjs/operators';
|
|
7
|
-
var COPIED_TIMEOUT = 1500;
|
|
8
|
-
// @dynamic
|
|
9
|
-
var TuiDocCopyComponent = /** @class */ (function () {
|
|
10
|
-
function TuiDocCopyComponent(texts$) {
|
|
11
|
-
this.texts$ = texts$;
|
|
12
|
-
this.copy$ = new Subject();
|
|
13
|
-
}
|
|
14
|
-
Object.defineProperty(TuiDocCopyComponent.prototype, "copied$", {
|
|
15
|
-
get: function () {
|
|
16
|
-
return this.copy$.pipe(switchMapTo(timer(COPIED_TIMEOUT).pipe(mapTo(false), startWith(true))));
|
|
17
|
-
},
|
|
18
|
-
enumerable: true,
|
|
19
|
-
configurable: true
|
|
20
|
-
});
|
|
21
|
-
TuiDocCopyComponent.prototype.onClick = function () {
|
|
22
|
-
this.copy$.next();
|
|
23
|
-
};
|
|
24
|
-
TuiDocCopyComponent.ctorParameters = function () { return [
|
|
25
|
-
{ type: Observable, decorators: [{ type: Inject, args: [TUI_COPY_TEXTS,] }] }
|
|
26
|
-
]; };
|
|
27
|
-
__decorate([
|
|
28
|
-
tuiPure
|
|
29
|
-
], TuiDocCopyComponent.prototype, "copied$", null);
|
|
30
|
-
TuiDocCopyComponent = __decorate([
|
|
31
|
-
Component({
|
|
32
|
-
selector: 'tui-doc-copy',
|
|
33
|
-
template: "<button\n *ngIf=\"texts$ | async as texts\"\n tuiButton\n type=\"button\"\n appearance=\"\"\n size=\"s\"\n class=\"t-copy\"\n [title]=\"texts[0]\"\n (click)=\"onClick()\"\n>\n <span\n class=\"t-content\"\n [class.t-content_moved]=\"copied$ | async\"\n >\n <span\n class=\"t-initial\"\n [attr.data-text]=\"texts[0]\"\n >\n <ng-content></ng-content>\n </span>\n {{ texts[1] }}\n </span>\n</button>\n",
|
|
34
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
35
|
-
providers: [TuiDestroyService],
|
|
36
|
-
styles: [":host{position:relative;display:inline-block;vertical-align:middle}.t-copy{transition-property:background;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;width:100%;color:var(--tui-text-01);background:var(--tui-base-01);overflow:hidden}.t-copy:hover{background:var(--tui-base-02)}.t-initial{white-space:nowrap}.t-initial:empty:before{content:attr(data-text)}.t-content{transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;display:flex;flex-direction:column;transform:translateY(1rem);text-align:center;line-height:2rem}.t-content_moved{transform:translateY(-1rem)}"]
|
|
37
|
-
}),
|
|
38
|
-
__param(0, Inject(TUI_COPY_TEXTS))
|
|
39
|
-
], TuiDocCopyComponent);
|
|
40
|
-
return TuiDocCopyComponent;
|
|
41
|
-
}());
|
|
42
|
-
export { TuiDocCopyComponent };
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tZG9jLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb3B5L2NvcHkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsT0FBTyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTdELElBQU0sY0FBYyxHQUFHLElBQUksQ0FBQztBQUU1QixXQUFXO0FBUVg7SUFHSSw2QkFBNkMsTUFBb0M7UUFBcEMsV0FBTSxHQUFOLE1BQU0sQ0FBOEI7UUFGaEUsVUFBSyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFFNkMsQ0FBQztJQUdyRixzQkFBSSx3Q0FBTzthQUFYO1lBQ0ksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDbEIsV0FBVyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ3pFLENBQUM7UUFDTixDQUFDOzs7T0FBQTtJQUVELHFDQUFPLEdBQVA7UUFDSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7O2dCQVhvRCxVQUFVLHVCQUFsRCxNQUFNLFNBQUMsY0FBYzs7SUFHbEM7UUFEQyxPQUFPO3NEQUtQO0lBVlEsbUJBQW1CO1FBUC9CLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLHFnQkFBbUM7WUFFbkMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07WUFDL0MsU0FBUyxFQUFFLENBQUMsaUJBQWlCLENBQUM7O1NBQ2pDLENBQUM7UUFJZSxXQUFBLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQTtPQUgxQixtQkFBbUIsQ0FlL0I7SUFBRCwwQkFBQztDQUFBLEFBZkQsSUFlQztTQWZZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHVpRGVzdHJveVNlcnZpY2UsIHR1aVB1cmV9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUVUlfQ09QWV9URVhUU30gZnJvbSAnQHRhaWdhLXVpL2tpdCc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3QsIHRpbWVyfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwVG8sIHN0YXJ0V2l0aCwgc3dpdGNoTWFwVG99IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuY29uc3QgQ09QSUVEX1RJTUVPVVQgPSAxNTAwO1xuXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktZG9jLWNvcHknLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb3B5LnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NvcHkuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1R1aURlc3Ryb3lTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRG9jQ29weUNvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb3B5JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KFRVSV9DT1BZX1RFWFRTKSByZWFkb25seSB0ZXh0cyQ6IE9ic2VydmFibGU8W3N0cmluZywgc3RyaW5nXT4pIHt9XG5cbiAgICBAdHVpUHVyZVxuICAgIGdldCBjb3BpZWQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb3B5JC5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwVG8odGltZXIoQ09QSUVEX1RJTUVPVVQpLnBpcGUobWFwVG8oZmFsc2UpLCBzdGFydFdpdGgodHJ1ZSkpKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvcHkkLm5leHQoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { NgModule } from '@angular/core';
|
|
4
|
-
import { TuiButtonModule } from '@taiga-ui/core';
|
|
5
|
-
import { TuiDocCopyComponent } from './copy.component';
|
|
6
|
-
var TuiDocCopyModule = /** @class */ (function () {
|
|
7
|
-
function TuiDocCopyModule() {
|
|
8
|
-
}
|
|
9
|
-
TuiDocCopyModule = __decorate([
|
|
10
|
-
NgModule({
|
|
11
|
-
imports: [CommonModule, TuiButtonModule],
|
|
12
|
-
declarations: [TuiDocCopyComponent],
|
|
13
|
-
exports: [TuiDocCopyComponent],
|
|
14
|
-
})
|
|
15
|
-
], TuiDocCopyModule);
|
|
16
|
-
return TuiDocCopyModule;
|
|
17
|
-
}());
|
|
18
|
-
export { TuiDocCopyModule };
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tZG9jLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb3B5L2NvcHkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFPckQ7SUFBQTtJQUErQixDQUFDO0lBQW5CLGdCQUFnQjtRQUw1QixRQUFRLENBQUM7WUFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDO1lBQ3hDLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO1lBQ25DLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO1NBQ2pDLENBQUM7T0FDVyxnQkFBZ0IsQ0FBRztJQUFELHVCQUFDO0NBQUEsQUFBaEMsSUFBZ0M7U0FBbkIsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHVpQnV0dG9uTW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5cbmltcG9ydCB7VHVpRG9jQ29weUNvbXBvbmVudH0gZnJvbSAnLi9jb3B5LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHVpQnV0dG9uTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtUdWlEb2NDb3B5Q29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbVHVpRG9jQ29weUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aURvY0NvcHlNb2R1bGUge31cbiJdfQ==
|