{"version":3,"file":"taiga-ui-addon-doc-utils.mjs","sources":["../../../projects/addon-doc/utils/clean-object.ts","../../../projects/addon-doc/utils/coerce-boolean.ts","../../../projects/addon-doc/utils/coerce-value.ts","../../../projects/addon-doc/utils/inspect.ts","../../../projects/addon-doc/utils/is-page-group.ts","../../../projects/addon-doc/utils/parse-code-block.ts","../../../projects/addon-doc/utils/provide-route-page-tab.ts","../../../projects/addon-doc/utils/raw-load.ts","../../../projects/addon-doc/utils/raw-load-record.ts","../../../projects/addon-doc/utils/sort-pages.ts","../../../projects/addon-doc/utils/to-flat-map-pages.ts","../../../projects/addon-doc/utils/transliterate-keyboard-layout.ts","../../../projects/addon-doc/utils/type-reference-parser.ts","../../../projects/addon-doc/utils/taiga-ui-addon-doc-utils.ts"],"sourcesContent":["import {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport type TuiDeepPartial<T> = {\n    [K in keyof T]?: T[K] extends object ? TuiDeepPartial<T[K]> : T[K];\n};\n\ntype EmptyValue = '' | null | undefined;\n\nfunction checkValueIsEmpty<T>(value: EmptyValue | T): value is EmptyValue {\n    return tuiIsString(value)\n        ? value.trim() === ''\n        : value == null || Number.isNaN(value);\n}\n\nexport function tuiCleanObject<T>(object: T): TuiDeepPartial<T> {\n    return JSON.parse(\n        JSON.stringify(object, (_key: string, value: unknown) =>\n            checkValueIsEmpty(value) ? undefined : value,\n        ),\n    );\n}\n","export function tuiCoerceValueIsTrue(value?: boolean | string): boolean {\n    return value?.toString() === 'true';\n}\n","function isEmptyParamValue(value: string): boolean {\n    return ['NaN', 'null', 'undefined'].includes(value);\n}\n\nfunction isBooleanParamValue(value: unknown): value is boolean {\n    return value === 'true' || value === 'false';\n}\n\nfunction isNumberParamValue(value: unknown): value is boolean {\n    return (\n        !!String(value).trim() &&\n        !Number.isNaN(Number(value)) &&\n        !String(value).startsWith('+')\n    );\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\nexport function tuiCoerceValue<T>(\n    value?: T,\n): Record<string, any> | T | boolean | number | string | null {\n    const prepared = String(value).trim();\n\n    if (isEmptyParamValue(prepared)) {\n        return null;\n    }\n\n    if (isBooleanParamValue(prepared)) {\n        return String(prepared) === 'true';\n    }\n\n    if (isNumberParamValue(prepared)) {\n        return Number(prepared);\n    }\n\n    if (prepared === '%') {\n        // https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#exceptions\n        return 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","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 ? tuiInspectAny(array[index], depth - 1) : 'empty';\n    }\n\n    return `[${result}]`;\n}\n\nfunction inspectObject(object: Record<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}: ${tuiInspectAny(object[key], depth - 1)}`;\n    }\n\n    return `{${result}}`;\n}\n\n/**\n * Returns readable JS entity\n * @param data\n * @param depth\n * @return readable JS entity\n */\nexport function tuiInspectAny<T>(data: T, depth: number): string {\n    if (data === null) {\n        return 'null';\n    }\n\n    switch (typeof data) {\n        case 'boolean':\n        case 'function':\n        case 'number':\n        case 'undefined':\n            return String(data);\n        case 'string':\n            return `'${data}'`;\n        default:\n            break;\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 Record<string, unknown>, depth);\n}\n","import type {TuiDocRoutePage, TuiDocRoutePageGroup} from '@taiga-ui/addon-doc/types';\n\nexport function tuiIsRoutePageGroup(\n    page: TuiDocRoutePage | TuiDocRoutePageGroup,\n): page is TuiDocRoutePageGroup {\n    return 'subPages' in page;\n}\n","import MarkdownIt from 'markdown-it';\n\nexport function tuiTryParseMarkdownCodeBlock(text = ''): string[] {\n    const tokens = new MarkdownIt().parse(text, {});\n    const result = tokens\n        .filter(({tag, type}) => tag === 'code' && type === 'fence')\n        .map(({content}) => content.trim());\n\n    return result.length ? result : [text];\n}\n","import type {Type} from '@angular/core';\nimport type {DefaultExport, LoadChildren, Route} from '@angular/router';\nimport type {Observable} from 'rxjs';\n\ninterface Options {\n    path?: string;\n    title?: string;\n    loadComponent?: () =>\n        | Observable<DefaultExport<Type<unknown>> | Type<unknown>>\n        | Promise<DefaultExport<Type<unknown>> | Type<unknown>>\n        | Type<unknown>;\n    loadChildren?: LoadChildren;\n}\n\nexport function tuiProvideRoutePageTab({\n    path,\n    title,\n    loadComponent,\n    loadChildren,\n}: Options = {}): Route {\n    return {\n        path: path?.replace(/^\\//, ''), // Error: NG04014: Invalid configuration of route: path cannot start with a slash\n        loadComponent,\n        loadChildren,\n        data: {title},\n        ...(!loadChildren && path !== ''\n            ? {children: [{path: ':tab', loadComponent}]}\n            : {}),\n    };\n}\n","import type {TuiRawLoaderContent} from '@taiga-ui/addon-doc/types';\n\nexport async function tuiRawLoad(content: TuiRawLoaderContent): Promise<string> {\n    return content instanceof Promise ? (await content).default : content;\n}\n","import type {TuiRawLoaderContent} from '@taiga-ui/addon-doc/types';\n\nimport {tuiRawLoad} from './raw-load';\n\nexport async function tuiRawLoadRecord(\n    example: Record<string, TuiRawLoaderContent>,\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 tuiRawLoad(content);\n        }\n    }\n\n    return processedContent;\n}\n","import type {TuiDocRoutePage, TuiDocRoutePageGroup} from '@taiga-ui/addon-doc/types';\n\nimport {tuiIsRoutePageGroup} from './is-page-group';\n\nexport function tuiSortPages<T extends TuiDocRoutePage | TuiDocRoutePageGroup>(\n    pages: readonly T[],\n    excludeSections = new Set<string>(),\n): readonly T[] {\n    const sections = Array.from(new Set(pages.map((page) => page.section)));\n\n    const sortedPages = pages.slice().sort((a, b) => {\n        if (\n            excludeSections.has(a.section ?? '') ||\n            excludeSections.has(b.section ?? '')\n        ) {\n            return 0;\n        }\n\n        const aSectionIndex = sections.indexOf(a.section);\n        const bSectionIndex = sections.indexOf(b.section);\n\n        if (aSectionIndex !== bSectionIndex) {\n            return aSectionIndex - bSectionIndex;\n        }\n\n        if (a.title > b.title) {\n            return 1;\n        }\n\n        return a.title.localeCompare(b.title);\n    });\n\n    return sortedPages.map((page) =>\n        tuiIsRoutePageGroup(page)\n            ? {\n                  ...page,\n                  subPages: tuiSortPages(page.subPages, excludeSections),\n              }\n            : page,\n    );\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\nimport type {TuiDocRoutePage, TuiDocRoutePages} from '@taiga-ui/addon-doc/types';\n\nfunction assertTitle(page: TuiDocRoutePage, map: Map<string, TuiDocRoutePage>): void {\n    if (map.has(page.title) && map.get(page.title)?.route !== page.route) {\n        console.error(\n            'Title for page should be unique for prevent inconsistent page names',\n            page,\n            '<== Collisions between ==>',\n            map.get(page.title),\n        );\n    }\n}\n\nexport function tuiToFlatMapPages(pages: TuiDocRoutePages): Map<string, TuiDocRoutePage> {\n    const map = new Map<string, TuiDocRoutePage>();\n\n    pages.forEach((page) => {\n        if ('subPages' in page) {\n            page.subPages.forEach((subPage) => {\n                ngDevMode && assertTitle(subPage, map);\n                map.set(subPage.title, subPage);\n            });\n        } else {\n            ngDevMode && assertTitle(page, map);\n            map.set(page.title, page);\n        }\n    });\n\n    return map;\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 * Translates text mistakenly typed in the Russian layout into English\n * @param string string with Russian layout characters\n * @return string with English layout characters\n */\nexport function tuiTransliterateKeyboardLayout(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","export type TuiDocTypeReferenceParsed = ReadonlyArray<{type: string; extracted: string}>;\n\nexport function tuiTypeReferenceParser(types: string): TuiDocTypeReferenceParsed {\n    const generics = types.match(/<([^>]+)>/g);\n\n    const escaped = generics\n        ? generics\n              .reduce(\n                  (result, current) =>\n                      result.replace(current, current.replaceAll('|', '&')),\n                  types,\n              )\n              .split('|')\n              .map((item) => item.trim())\n        : types.split('|').map((item) => item.trim());\n\n    return escaped.reduce<TuiDocTypeReferenceParsed>((result, type) => {\n        let extracted = type.trim().replaceAll('readonly ', '').replaceAll('[]', '');\n\n        extracted =\n            /ReadonlyArray<([^>]+)>/.exec(extracted)?.[1]?.split('&')?.[0] ?? extracted;\n        extracted = /\\[([^\\]]+)\\]/.exec(extracted)?.[1]?.split(',')?.[0] ?? extracted;\n        extracted = (extracted.split('<')?.[0] ?? extracted)?.trim() ?? '';\n        extracted = Number.isNaN(parseFloat(extracted)) ? extracted : 'number';\n        extracted = /^'(.+)'$|^\"(.+)\"$|^`(.+)`$/.test(extracted) ? 'string' : extracted;\n        extracted = extracted.length === 1 ? 'unknown' : extracted;\n\n        return result.concat({type: type.replaceAll('&', '|'), extracted});\n    }, []);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}