@taiga-ui/addon-doc
Version:
Taiga UI based library for developing documentation portals for Angular libraries.
224 lines (205 loc) • 7.38 kB
JavaScript
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