UNPKG

@taiga-ui/addon-doc

Version:

Taiga UI based library for developing documentation portals for Angular libraries.

224 lines (205 loc) • 7.38 kB
import { InjectionToken, signal, inject } from '@angular/core'; import { TUI_FALSE_HANDLER } from '@taiga-ui/cdk/constants'; import { tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous'; import { tuiTryParseMarkdownCodeBlock, tuiToFlatMapPages, tuiTypeReferenceParser } from '@taiga-ui/addon-doc/utils'; import { identity, defer, timer, switchMap, of } from 'rxjs'; /** * Code actions for the opened tab with code example */ const TUI_DOC_CODE_ACTIONS = new InjectionToken(ngDevMode ? 'TUI_DOC_CODE_ACTIONS' : '', { factory: () => '', }); /** * Service for opening online IDE e.g. Stackblitz */ const TUI_DOC_CODE_EDITOR = new InjectionToken(ngDevMode ? 'TUI_DOC_CODE_EDITOR' : ''); /** * Array of default tab names */ const TUI_DOC_DEFAULT_TABS = new InjectionToken(ngDevMode ? 'TUI_DOC_DEFAULT_TABS' : '', { factory: () => [], }); const TUI_DOC_DEFAULT_ICONS = { search: '@tui.search', light: '@tui.sun', dark: '@tui.moon', code: '@tui.code', menu: '@tui.menu', copy: '@tui.copy', check: '@tui.check', link: '@tui.link', externalLink: '@tui.external-link', languages: '@tui.languages', shrink: '@tui.shrink', expand: '@tui.expand', ltr: { preview: '@tui.a-large-small', direction: '@tui.arrow-right-left', }, }; const TUI_DOC_ICONS = new InjectionToken(ngDevMode ? 'TUI_DOC_ICONS' : '', { factory: () => TUI_DOC_DEFAULT_ICONS, }); function tuiDocIconsProvider(icons) { return tuiProvideOptions(TUI_DOC_ICONS, icons, TUI_DOC_DEFAULT_ICONS); } const TUI_DOC_DIRECTION_ENABLED = new InjectionToken(ngDevMode ? 'TUI_DOC_DIRECTION_ENABLED' : '', { factory: TUI_FALSE_HANDLER }); /** * Processes content in example */ const TUI_DOC_EXAMPLE_CONTENT_PROCESSOR = new InjectionToken(ngDevMode ? 'TUI_DOC_EXAMPLE_CONTENT_PROCESSOR' : '', { factory: () => identity, }); /** * Processes markdown in code block */ const TUI_DOC_EXAMPLE_MARKDOWN_CODE_PROCESSOR = new InjectionToken(ngDevMode ? 'TUI_DOC_EXAMPLE_MARKDOWN_CODE_PROCESSOR' : '', { factory: () => tuiTryParseMarkdownCodeBlock, }); /** * Token to exclude inherited documentation properties */ const TUI_DOC_EXCLUDED_PROPERTIES = new InjectionToken(ngDevMode ? 'TUI_DOC_EXCLUDED_PROPERTIES' : '', { factory: () => new Set([]), }); function tuiDocExcludeProperties(properties) { return { provide: TUI_DOC_EXCLUDED_PROPERTIES, useValue: new Set(properties) }; } /** * TODO: think about reorganization in @taiga-ui/i18n way */ /** * tui-doc-demo i18n texts * Works with a tuple */ const TUI_DOC_DEMO_TEXTS = new InjectionToken(ngDevMode ? 'TUI_DOC_DEMO_TEXTS' : '', { factory: () => ['Dark mode', 'Background', 'Form value'], }); /** * tui-doc-documentation i18n texts * Works with a tuple * [ * @string word 'argument', * @string word 'type', * @string 'name and description', * @string word 'value' * @string @deprecated message for tooltip about ng-polymorpheus * ] */ const TUI_DOC_DOCUMENTATION_TEXTS = new InjectionToken(ngDevMode ? 'TUI_DOC_DOCUMENTATION_TEXTS' : '', { factory: () => [ 'Argument', 'Type', 'Name and description', 'Value', /** * @deprecated */ 'Learn about our dynamic templates from ', ], }); /** * tui-doc-example i18n texts * Works with a tuple * [ * @string default tab name, * @string link to a sample copied message text, * @string link to a sample copied message label * ] */ const TUI_DOC_EXAMPLE_TEXTS = new InjectionToken(ngDevMode ? 'TUI_DOC_EXAMPLE_TEXTS' : '', { factory: () => ['Preview', 'Link to a sample was successfully copied', 'Done'], }); const TUI_DOC_MENU_TEXT = new InjectionToken(ngDevMode ? 'TUI_DOC_MENU_TEXT' : '', { factory: () => 'Menu', }); const TUI_DOC_SEARCH_TEXT = new InjectionToken(ngDevMode ? 'TUI_DOC_SEARCH_TEXT' : '', { factory: () => 'Search', }); const TUI_DOC_SEE_ALSO_TEXT = new InjectionToken(ngDevMode ? 'TUI_DOC_SEE_ALSO_TEXT' : '', { factory: () => 'See also', }); const TUI_DOC_SOURCE_CODE_TEXT = new InjectionToken(ngDevMode ? 'TUI_DOC_SOURCE_CODE_TEXT' : '', { factory: () => 'Source code', }); const TUI_DOC_SEARCH_ENABLED = new InjectionToken(ngDevMode ? 'TUI_DOC_SEARCH_ENABLED' : '', { factory: () => signal(true), }); /** * Main logo */ const TUI_DOC_LOGO = new InjectionToken(ngDevMode ? 'TUI_DOC_LOGO' : '', { factory: () => '', }); /** * Stream that emits if loading of page is over (for example, to begin scrollIntoView) */ const TUI_DOC_PAGE_LOADED = new InjectionToken(ngDevMode ? 'TUI_DOC_PAGE_LOADED' : '', { factory: () => defer(() => timer(200).pipe(switchMap(() => of(true)))), }); /** * Documentation pages */ const TUI_DOC_PAGES = new InjectionToken(ngDevMode ? 'TUI_DOC_PAGES' : '', { factory: () => [], }); const TUI_DOC_MAP_PAGES = new InjectionToken(ngDevMode ? 'TUI_DOC_MAP_PAGES' : '', { factory: () => tuiToFlatMapPages(inject(TUI_DOC_PAGES)), }); /** * Array of arrays of related pages */ const TUI_DOC_SEE_ALSO = new InjectionToken(ngDevMode ? 'TUI_DOC_SEE_ALSO' : '', { factory: () => [], }); /** * Source code link */ const TUI_DOC_SOURCE_CODE = new InjectionToken(ngDevMode ? 'TUI_DOC_SOURCE_CODE' : '', { factory: () => null, }); const TUI_DOC_SUPPORT_LANGUAGE = new InjectionToken(ngDevMode ? 'TUI_DOC_SUPPORT_LANGUAGE' : '', { factory: () => new Set(), }); /** * Page title prefix */ const TUI_DOC_TITLE = new InjectionToken(ngDevMode ? 'TUI_DOC_TITLE' : '', { factory: () => '', }); const TUI_DOC_TYPE_REFERENCE_HANDLER = new InjectionToken(ngDevMode ? 'TUI_DOC_TYPE_REFERENCE_HANDLER' : '', { factory: () => null, }); const TUI_DOC_TYPE_REFERENCE_PARSER = new InjectionToken(ngDevMode ? 'TUI_DOC_TYPE_REFERENCE_PARSER' : '', { factory: () => tuiTypeReferenceParser, }); /** * TODO: delete it in 5.0 * Replace the following approach to append query params * ```ts * urlStateHandler = inject(TUI_DOC_URL_STATE_HANDLER); * locationRef = inject(Location); * * this.locationRef.go(this.urlStateHandler(tree)); * ``` * with this one: * ```ts * router = inject(Router); * activatedRoute = inject(ActivatedRoute); * * void this.router.navigate([], { * relativeTo: this.activatedRoute, * queryParams: {sandboxWidth: 300}, * queryParamsHandling: 'merge', * }); * ``` * It is more robust to the cases when application has base href. */ const TUI_DOC_URL_STATE_HANDLER = new InjectionToken(ngDevMode ? 'TUI_DOC_URL_STATE_HANDLER' : '', { factory: () => String, }); /** * Generated bundle index. Do not edit. */ export { TUI_DOC_CODE_ACTIONS, TUI_DOC_CODE_EDITOR, TUI_DOC_DEFAULT_ICONS, TUI_DOC_DEFAULT_TABS, TUI_DOC_DEMO_TEXTS, TUI_DOC_DIRECTION_ENABLED, TUI_DOC_DOCUMENTATION_TEXTS, TUI_DOC_EXAMPLE_CONTENT_PROCESSOR, TUI_DOC_EXAMPLE_MARKDOWN_CODE_PROCESSOR, TUI_DOC_EXAMPLE_TEXTS, TUI_DOC_EXCLUDED_PROPERTIES, TUI_DOC_ICONS, TUI_DOC_LOGO, TUI_DOC_MAP_PAGES, TUI_DOC_MENU_TEXT, TUI_DOC_PAGES, TUI_DOC_PAGE_LOADED, TUI_DOC_SEARCH_ENABLED, TUI_DOC_SEARCH_TEXT, TUI_DOC_SEE_ALSO, TUI_DOC_SEE_ALSO_TEXT, TUI_DOC_SOURCE_CODE, TUI_DOC_SOURCE_CODE_TEXT, TUI_DOC_SUPPORT_LANGUAGE, TUI_DOC_TITLE, TUI_DOC_TYPE_REFERENCE_HANDLER, TUI_DOC_TYPE_REFERENCE_PARSER, TUI_DOC_URL_STATE_HANDLER, tuiDocExcludeProperties, tuiDocIconsProvider }; //# sourceMappingURL=taiga-ui-addon-doc-tokens.mjs.map