@tailng-ui/components 0.1.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 +26 -0
- package/package.json +14 -0
- package/src/index.d.ts +7 -0
- package/src/index.d.ts.map +1 -0
- package/src/index.js +7 -0
- package/src/index.js.map +1 -0
- package/src/lib/feedback/empty/tng-empty.component.d.ts +14 -0
- package/src/lib/feedback/empty/tng-empty.component.d.ts.map +1 -0
- package/src/lib/feedback/empty/tng-empty.component.js +60 -0
- package/src/lib/feedback/empty/tng-empty.component.js.map +1 -0
- package/src/lib/feedback/index.d.ts +11 -0
- package/src/lib/feedback/index.d.ts.map +1 -0
- package/src/lib/feedback/index.js +11 -0
- package/src/lib/feedback/index.js.map +1 -0
- package/src/lib/feedback/progress-bar/tng-progress-bar.component.d.ts +10 -0
- package/src/lib/feedback/progress-bar/tng-progress-bar.component.d.ts.map +1 -0
- package/src/lib/feedback/progress-bar/tng-progress-bar.component.js +37 -0
- package/src/lib/feedback/progress-bar/tng-progress-bar.component.js.map +1 -0
- package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.d.ts +14 -0
- package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.d.ts.map +1 -0
- package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.js +55 -0
- package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.js.map +1 -0
- package/src/lib/feedback/skeleton/tng-skeleton.component.d.ts +10 -0
- package/src/lib/feedback/skeleton/tng-skeleton.component.d.ts.map +1 -0
- package/src/lib/feedback/skeleton/tng-skeleton.component.js +33 -0
- package/src/lib/feedback/skeleton/tng-skeleton.component.js.map +1 -0
- package/src/lib/feedback/toast/tng-toast.component.d.ts +40 -0
- package/src/lib/feedback/toast/tng-toast.component.d.ts.map +1 -0
- package/src/lib/feedback/toast/tng-toast.component.js +111 -0
- package/src/lib/feedback/toast/tng-toast.component.js.map +1 -0
- package/src/lib/form/autocomplete/tng-autocomplete.component.d.ts +26 -0
- package/src/lib/form/autocomplete/tng-autocomplete.component.d.ts.map +1 -0
- package/src/lib/form/autocomplete/tng-autocomplete.component.js +104 -0
- package/src/lib/form/autocomplete/tng-autocomplete.component.js.map +1 -0
- package/src/lib/form/button-toggle/tng-button-toggle-group.component.d.ts +44 -0
- package/src/lib/form/button-toggle/tng-button-toggle-group.component.d.ts.map +1 -0
- package/src/lib/form/button-toggle/tng-button-toggle-group.component.js +123 -0
- package/src/lib/form/button-toggle/tng-button-toggle-group.component.js.map +1 -0
- package/src/lib/form/button-toggle/tng-button-toggle.component.d.ts +14 -0
- package/src/lib/form/button-toggle/tng-button-toggle.component.d.ts.map +1 -0
- package/src/lib/form/button-toggle/tng-button-toggle.component.js +65 -0
- package/src/lib/form/button-toggle/tng-button-toggle.component.js.map +1 -0
- package/src/lib/form/checkbox/tng-checkbox.component.d.ts +38 -0
- package/src/lib/form/checkbox/tng-checkbox.component.d.ts.map +1 -0
- package/src/lib/form/checkbox/tng-checkbox.component.js +138 -0
- package/src/lib/form/checkbox/tng-checkbox.component.js.map +1 -0
- package/src/lib/form/chips/tng-chips.component.d.ts +4 -0
- package/src/lib/form/chips/tng-chips.component.d.ts.map +1 -0
- package/src/lib/form/chips/tng-chips.component.js +16 -0
- package/src/lib/form/chips/tng-chips.component.js.map +1 -0
- package/src/lib/form/combobox/tng-combobox.component.d.ts +4 -0
- package/src/lib/form/combobox/tng-combobox.component.d.ts.map +1 -0
- package/src/lib/form/combobox/tng-combobox.component.js +16 -0
- package/src/lib/form/combobox/tng-combobox.component.js.map +1 -0
- package/src/lib/form/index.d.ts +37 -0
- package/src/lib/form/index.d.ts.map +1 -0
- package/src/lib/form/index.js +37 -0
- package/src/lib/form/index.js.map +1 -0
- package/src/lib/form/input/tng-input.component.d.ts +16 -0
- package/src/lib/form/input/tng-input.component.d.ts.map +1 -0
- package/src/lib/form/input/tng-input.component.js +52 -0
- package/src/lib/form/input/tng-input.component.js.map +1 -0
- package/src/lib/form/input-otp/tng-input-otp.component.d.ts +13 -0
- package/src/lib/form/input-otp/tng-input-otp.component.d.ts.map +1 -0
- package/src/lib/form/input-otp/tng-input-otp.component.js +138 -0
- package/src/lib/form/input-otp/tng-input-otp.component.js.map +1 -0
- package/src/lib/form/label/tng-label.component.d.ts +8 -0
- package/src/lib/form/label/tng-label.component.d.ts.map +1 -0
- package/src/lib/form/label/tng-label.component.js +29 -0
- package/src/lib/form/label/tng-label.component.js.map +1 -0
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.d.ts +55 -0
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.d.ts.map +1 -0
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.js +126 -0
- package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.js.map +1 -0
- package/src/lib/form/multiselect/tng-multiselect.component.d.ts +49 -0
- package/src/lib/form/multiselect/tng-multiselect.component.d.ts.map +1 -0
- package/src/lib/form/multiselect/tng-multiselect.component.js +112 -0
- package/src/lib/form/multiselect/tng-multiselect.component.js.map +1 -0
- package/src/lib/form/radio/tng-radio.component.d.ts +12 -0
- package/src/lib/form/radio/tng-radio.component.d.ts.map +1 -0
- package/src/lib/form/radio/tng-radio.component.js +45 -0
- package/src/lib/form/radio/tng-radio.component.js.map +1 -0
- package/src/lib/form/select/tng-select.component.d.ts +40 -0
- package/src/lib/form/select/tng-select.component.d.ts.map +1 -0
- package/src/lib/form/select/tng-select.component.js +98 -0
- package/src/lib/form/select/tng-select.component.js.map +1 -0
- package/src/lib/form/select/tng-select.slots.d.ts +25 -0
- package/src/lib/form/select/tng-select.slots.d.ts.map +1 -0
- package/src/lib/form/select/tng-select.slots.js +23 -0
- package/src/lib/form/select/tng-select.slots.js.map +1 -0
- package/src/lib/form/slider/tng-slider.component.d.ts +11 -0
- package/src/lib/form/slider/tng-slider.component.d.ts.map +1 -0
- package/src/lib/form/slider/tng-slider.component.js +48 -0
- package/src/lib/form/slider/tng-slider.component.js.map +1 -0
- package/src/lib/form/switch/tng-switch.component.d.ts +18 -0
- package/src/lib/form/switch/tng-switch.component.d.ts.map +1 -0
- package/src/lib/form/switch/tng-switch.component.js +57 -0
- package/src/lib/form/switch/tng-switch.component.js.map +1 -0
- package/src/lib/form/textarea/tng-textarea.component.d.ts +17 -0
- package/src/lib/form/textarea/tng-textarea.component.d.ts.map +1 -0
- package/src/lib/form/textarea/tng-textarea.component.js +54 -0
- package/src/lib/form/textarea/tng-textarea.component.js.map +1 -0
- package/src/lib/form/toggle/tng-toggle.component.d.ts +39 -0
- package/src/lib/form/toggle/tng-toggle.component.d.ts.map +1 -0
- package/src/lib/form/toggle/tng-toggle.component.js +152 -0
- package/src/lib/form/toggle/tng-toggle.component.js.map +1 -0
- package/src/lib/form/toggle-group/tng-toggle-group.component.d.ts +3 -0
- package/src/lib/form/toggle-group/tng-toggle-group.component.d.ts.map +1 -0
- package/src/lib/form/toggle-group/tng-toggle-group.component.js +34 -0
- package/src/lib/form/toggle-group/tng-toggle-group.component.js.map +1 -0
- package/src/lib/layout/accordion/tng-accordion.component.d.ts +11 -0
- package/src/lib/layout/accordion/tng-accordion.component.d.ts.map +1 -0
- package/src/lib/layout/accordion/tng-accordion.component.js +158 -0
- package/src/lib/layout/accordion/tng-accordion.component.js.map +1 -0
- package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.d.ts +4 -0
- package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.d.ts.map +1 -0
- package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.js +16 -0
- package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.js.map +1 -0
- package/src/lib/layout/card/tng-card.component.d.ts +42 -0
- package/src/lib/layout/card/tng-card.component.d.ts.map +1 -0
- package/src/lib/layout/card/tng-card.component.js +186 -0
- package/src/lib/layout/card/tng-card.component.js.map +1 -0
- package/src/lib/layout/collapsible/tng-collapsible.component.d.ts +11 -0
- package/src/lib/layout/collapsible/tng-collapsible.component.d.ts.map +1 -0
- package/src/lib/layout/collapsible/tng-collapsible.component.js +40 -0
- package/src/lib/layout/collapsible/tng-collapsible.component.js.map +1 -0
- package/src/lib/layout/drawer/tng-drawer.component.d.ts +12 -0
- package/src/lib/layout/drawer/tng-drawer.component.d.ts.map +1 -0
- package/src/lib/layout/drawer/tng-drawer.component.js +77 -0
- package/src/lib/layout/drawer/tng-drawer.component.js.map +1 -0
- package/src/lib/layout/grid/tng-grid.component.d.ts +4 -0
- package/src/lib/layout/grid/tng-grid.component.d.ts.map +1 -0
- package/src/lib/layout/grid/tng-grid.component.js +16 -0
- package/src/lib/layout/grid/tng-grid.component.js.map +1 -0
- package/src/lib/layout/index.d.ts +16 -0
- package/src/lib/layout/index.d.ts.map +1 -0
- package/src/lib/layout/index.js +16 -0
- package/src/lib/layout/index.js.map +1 -0
- package/src/lib/layout/separator/tng-separator.component.d.ts +6 -0
- package/src/lib/layout/separator/tng-separator.component.d.ts.map +1 -0
- package/src/lib/layout/separator/tng-separator.component.js +19 -0
- package/src/lib/layout/separator/tng-separator.component.js.map +1 -0
- package/src/lib/layout/stepper/tng-stepper.component.d.ts +4 -0
- package/src/lib/layout/stepper/tng-stepper.component.d.ts.map +1 -0
- package/src/lib/layout/stepper/tng-stepper.component.js +16 -0
- package/src/lib/layout/stepper/tng-stepper.component.js.map +1 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.d.ts +28 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.d.ts.map +1 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.js +86 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.js.map +1 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.d.ts +10 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.d.ts.map +1 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.js +29 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.js.map +1 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.d.ts +3 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.d.ts.map +1 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.js +15 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.js.map +1 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.d.ts +6 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.d.ts.map +1 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.js +16 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.js.map +1 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.d.ts +6 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.d.ts.map +1 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.js +18 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.js.map +1 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.d.ts +23 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.d.ts.map +1 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.js +155 -0
- package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.js.map +1 -0
- package/src/lib/navigation/context-menu/tng-context-menu.component.d.ts +4 -0
- package/src/lib/navigation/context-menu/tng-context-menu.component.d.ts.map +1 -0
- package/src/lib/navigation/context-menu/tng-context-menu.component.js +16 -0
- package/src/lib/navigation/context-menu/tng-context-menu.component.js.map +1 -0
- package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.d.ts +10 -0
- package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.d.ts.map +1 -0
- package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.js +54 -0
- package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.js.map +1 -0
- package/src/lib/navigation/index.d.ts +27 -0
- package/src/lib/navigation/index.d.ts.map +1 -0
- package/src/lib/navigation/index.js +27 -0
- package/src/lib/navigation/index.js.map +1 -0
- package/src/lib/navigation/menu/tng-menu-trigger-for.directive.d.ts +15 -0
- package/src/lib/navigation/menu/tng-menu-trigger-for.directive.d.ts.map +1 -0
- package/src/lib/navigation/menu/tng-menu-trigger-for.directive.js +85 -0
- package/src/lib/navigation/menu/tng-menu-trigger-for.directive.js.map +1 -0
- package/src/lib/navigation/menu/tng-menu.component.d.ts +13 -0
- package/src/lib/navigation/menu/tng-menu.component.d.ts.map +1 -0
- package/src/lib/navigation/menu/tng-menu.component.js +92 -0
- package/src/lib/navigation/menu/tng-menu.component.js.map +1 -0
- package/src/lib/navigation/menubar/tng-menubar.component.d.ts +5 -0
- package/src/lib/navigation/menubar/tng-menubar.component.d.ts.map +1 -0
- package/src/lib/navigation/menubar/tng-menubar.component.js +29 -0
- package/src/lib/navigation/menubar/tng-menubar.component.js.map +1 -0
- package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.d.ts +4 -0
- package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.d.ts.map +1 -0
- package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.js +16 -0
- package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.js.map +1 -0
- package/src/lib/navigation/tabs/tng-tabs.component.d.ts +5 -0
- package/src/lib/navigation/tabs/tng-tabs.component.d.ts.map +1 -0
- package/src/lib/navigation/tabs/tng-tabs.component.js +41 -0
- package/src/lib/navigation/tabs/tng-tabs.component.js.map +1 -0
- package/src/lib/navigation/toolbar/tng-toolbar.component.d.ts +4 -0
- package/src/lib/navigation/toolbar/tng-toolbar.component.d.ts.map +1 -0
- package/src/lib/navigation/toolbar/tng-toolbar.component.js +16 -0
- package/src/lib/navigation/toolbar/tng-toolbar.component.js.map +1 -0
- package/src/lib/overlay/dialog/tng-dialog.component.d.ts +43 -0
- package/src/lib/overlay/dialog/tng-dialog.component.d.ts.map +1 -0
- package/src/lib/overlay/dialog/tng-dialog.component.js +286 -0
- package/src/lib/overlay/dialog/tng-dialog.component.js.map +1 -0
- package/src/lib/overlay/index.d.ts +7 -0
- package/src/lib/overlay/index.d.ts.map +1 -0
- package/src/lib/overlay/index.js +7 -0
- package/src/lib/overlay/index.js.map +1 -0
- package/src/lib/overlay/popover/tng-popover.component.d.ts +28 -0
- package/src/lib/overlay/popover/tng-popover.component.d.ts.map +1 -0
- package/src/lib/overlay/popover/tng-popover.component.js +133 -0
- package/src/lib/overlay/popover/tng-popover.component.js.map +1 -0
- package/src/lib/overlay/tng-overlay-runtime.d.ts +11 -0
- package/src/lib/overlay/tng-overlay-runtime.d.ts.map +1 -0
- package/src/lib/overlay/tng-overlay-runtime.js +11 -0
- package/src/lib/overlay/tng-overlay-runtime.js.map +1 -0
- package/src/lib/overlay/tooltip/tng-tooltip.component.d.ts +31 -0
- package/src/lib/overlay/tooltip/tng-tooltip.component.d.ts.map +1 -0
- package/src/lib/overlay/tooltip/tng-tooltip.component.js +111 -0
- package/src/lib/overlay/tooltip/tng-tooltip.component.js.map +1 -0
- package/src/lib/utility/avatar/tng-avatar.component.d.ts +19 -0
- package/src/lib/utility/avatar/tng-avatar.component.d.ts.map +1 -0
- package/src/lib/utility/avatar/tng-avatar.component.js +66 -0
- package/src/lib/utility/avatar/tng-avatar.component.js.map +1 -0
- package/src/lib/utility/badge/tng-badge.component.d.ts +4 -0
- package/src/lib/utility/badge/tng-badge.component.d.ts.map +1 -0
- package/src/lib/utility/badge/tng-badge.component.js +13 -0
- package/src/lib/utility/badge/tng-badge.component.js.map +1 -0
- package/src/lib/utility/button/tng-button.component.d.ts +18 -0
- package/src/lib/utility/button/tng-button.component.d.ts.map +1 -0
- package/src/lib/utility/button/tng-button.component.js +32 -0
- package/src/lib/utility/button/tng-button.component.js.map +1 -0
- package/src/lib/utility/code-block/highlighting.d.ts +96 -0
- package/src/lib/utility/code-block/highlighting.d.ts.map +1 -0
- package/src/lib/utility/code-block/highlighting.js +220 -0
- package/src/lib/utility/code-block/highlighting.js.map +1 -0
- package/src/lib/utility/code-block/tng-code-block.component.d.ts +118 -0
- package/src/lib/utility/code-block/tng-code-block.component.d.ts.map +1 -0
- package/src/lib/utility/code-block/tng-code-block.component.js +586 -0
- package/src/lib/utility/code-block/tng-code-block.component.js.map +1 -0
- package/src/lib/utility/copy-button/tng-copy-button.component.d.ts +39 -0
- package/src/lib/utility/copy-button/tng-copy-button.component.d.ts.map +1 -0
- package/src/lib/utility/copy-button/tng-copy-button.component.js +127 -0
- package/src/lib/utility/copy-button/tng-copy-button.component.js.map +1 -0
- package/src/lib/utility/index.d.ts +17 -0
- package/src/lib/utility/index.d.ts.map +1 -0
- package/src/lib/utility/index.js +16 -0
- package/src/lib/utility/index.js.map +1 -0
- package/src/lib/utility/tag/tng-tag.component.d.ts +10 -0
- package/src/lib/utility/tag/tng-tag.component.d.ts.map +1 -0
- package/src/lib/utility/tag/tng-tag.component.js +18 -0
- package/src/lib/utility/tag/tng-tag.component.js.map +1 -0
- package/src/lib/utility/tree/tng-tree.component.d.ts +72 -0
- package/src/lib/utility/tree/tng-tree.component.d.ts.map +1 -0
- package/src/lib/utility/tree/tng-tree.component.js +336 -0
- package/src/lib/utility/tree/tng-tree.component.js.map +1 -0
- package/src/test-setup.d.ts +3 -0
- package/src/test-setup.d.ts.map +1 -0
- package/src/test-setup.js +10 -0
- package/src/test-setup.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"highlighting.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/utility/code-block/highlighting.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n InjectionToken,\n inject,\n makeEnvironmentProviders,\n type EnvironmentProviders,\n} from '@angular/core';\n\nexport type TngCodeHighlightInput = Readonly<{\n code: string;\n includeLineWrappers?: boolean;\n language: string | null;\n theme?: string | null;\n}>;\n\nexport type TngCodeHighlightToken = Readonly<{\n className?: string | null;\n content: string;\n}>;\n\nexport type TngCodeHighlightTokenLine = readonly TngCodeHighlightToken[];\n\nexport type TngCodeHighlightHtmlResult = Readonly<{\n html: string;\n kind: 'html';\n language?: string | null;\n trustedHtml?: boolean;\n}>;\n\nexport type TngCodeHighlightLegacyHtmlResult = Readonly<{\n html: string;\n language?: string | null;\n trustedHtml?: boolean;\n}>;\n\nexport type TngCodeHighlightTokensResult = Readonly<{\n kind: 'tokens';\n language?: string | null;\n tokens: readonly TngCodeHighlightTokenLine[];\n}>;\n\nexport type TngCodeHighlightResult =\n | TngCodeHighlightHtmlResult\n | TngCodeHighlightLegacyHtmlResult\n | TngCodeHighlightTokensResult;\n\nexport type TngNormalizedCodeHighlightResult =\n | Readonly<{\n html: string;\n kind: 'html';\n language: string | null;\n trustedHtml: boolean;\n }>\n | Readonly<{\n kind: 'tokens';\n language: string | null;\n tokens: readonly TngCodeHighlightTokenLine[];\n }>;\n\nexport type TngCodeHighlightRequest = Readonly<{\n adapter: string | null | undefined;\n code: string;\n includeLineWrappers?: boolean;\n language: string | null | undefined;\n theme?: string | null | undefined;\n}>;\n\nexport type TngCodeHighlighterAdapter = Readonly<{\n highlight: (input: TngCodeHighlightInput) => Promise<TngCodeHighlightResult> | TngCodeHighlightResult;\n id: string;\n supports?: (language: string | null) => boolean;\n}>;\n\nexport type TngProvideCodeHighlightingOptions = Readonly<{\n adapters?: readonly TngCodeHighlighterAdapter[];\n allowBuiltinOverride?: boolean;\n defaultAdapter?: string;\n}>;\n\nexport type TngResolvedCodeHighlightingConfig = Readonly<{\n adapters: Readonly<Record<string, TngCodeHighlighterAdapter>>;\n defaultAdapter: string;\n}>;\n\nexport type TngCodeHighlightingResolverLike = Readonly<{\n highlight: (request: TngCodeHighlightRequest) => Promise<string>;\n highlightResult: (\n request: TngCodeHighlightRequest,\n ) => Promise<TngNormalizedCodeHighlightResult | null>;\n}>;\n\nconst htmlEscapeAmpersand = /&/g;\nconst htmlEscapeGt = />/g;\nconst htmlEscapeLt = /</g;\nconst htmlEscapeQuote = /\"/g;\nconst htmlEscapeSingleQuote = /'/g;\nconst htmlEscapeAmpersandValue = '&';\nconst htmlEscapeGtValue = '>';\nconst htmlEscapeLtValue = '<';\nconst htmlEscapeQuoteValue = '"';\nconst htmlEscapeSingleQuoteValue = ''';\n\nexport const TNG_DEFAULT_CODE_HIGHLIGHTER_ID = 'plain';\n\nfunction hasAdapter(\n adapters: Readonly<Record<string, TngCodeHighlighterAdapter>>,\n adapterId: string,\n): boolean {\n return Object.prototype.hasOwnProperty.call(adapters, adapterId);\n}\n\nfunction normalizeRequiredString(value: string, label: string): string {\n const normalizedValue = value.trim();\n if (normalizedValue.length === 0) {\n throw new Error(`${label} cannot be empty.`);\n }\n\n return normalizedValue;\n}\n\nfunction createReadonlyAdapterMap(\n adapters: Readonly<Record<string, TngCodeHighlighterAdapter>>,\n): Readonly<Record<string, TngCodeHighlighterAdapter>> {\n return Object.freeze({ ...adapters });\n}\n\nfunction withCustomAdapters(\n baseAdapters: Readonly<Record<string, TngCodeHighlighterAdapter>>,\n customAdapters: readonly TngCodeHighlighterAdapter[],\n allowBuiltinOverride: boolean,\n): Record<string, TngCodeHighlighterAdapter> {\n const mergedAdapters: Record<string, TngCodeHighlighterAdapter> = { ...baseAdapters };\n const seenCustomAdapterIds = new Set<string>();\n\n for (const adapter of customAdapters) {\n const adapterId = normalizeTngCodeHighlighterId(adapter.id);\n const isBuiltinAdapter = hasAdapter(TNG_BUILTIN_CODE_HIGHLIGHTERS, adapterId);\n\n if (seenCustomAdapterIds.has(adapterId)) {\n throw new Error(`Duplicate code highlighter adapter \"${adapterId}\" provided.`);\n }\n\n seenCustomAdapterIds.add(adapterId);\n if (isBuiltinAdapter && !allowBuiltinOverride) {\n throw new Error(\n `Code highlighter adapter \"${adapterId}\" is reserved. Set allowBuiltinOverride to true to override it.`,\n );\n }\n\n mergedAdapters[adapterId] = adapter;\n }\n\n return mergedAdapters;\n}\n\nfunction resolveDefaultAdapterId(\n defaultAdapter: string | undefined,\n adapters: Readonly<Record<string, TngCodeHighlighterAdapter>>,\n): string {\n const candidateAdapter = defaultAdapter ?? TNG_DEFAULT_CODE_HIGHLIGHTER_ID;\n const normalizedAdapter = normalizeTngCodeHighlighterId(candidateAdapter);\n if (hasAdapter(adapters, normalizedAdapter)) {\n return normalizedAdapter;\n }\n\n throw new Error(\n `Unknown default code highlighter adapter \"${normalizedAdapter}\". Available adapters: ${Object.keys(adapters).join(', ')}`,\n );\n}\n\nfunction resolveAdapterFromRequest(\n request: TngCodeHighlightRequest,\n config: TngResolvedCodeHighlightingConfig,\n): TngCodeHighlighterAdapter {\n const requestedAdapter = request.adapter;\n if (requestedAdapter !== null && requestedAdapter !== undefined) {\n const normalizedAdapter = normalizeTngCodeHighlighterId(requestedAdapter);\n const resolvedAdapter = config.adapters[normalizedAdapter];\n if (resolvedAdapter !== undefined) {\n return resolvedAdapter;\n }\n }\n\n return config.adapters[config.defaultAdapter];\n}\n\nfunction normalizeTokenLine(line: TngCodeHighlightTokenLine): readonly TngCodeHighlightToken[] {\n return line\n .filter((token) => typeof token.content === 'string')\n .map((token) => ({ className: token.className ?? null, content: token.content }));\n}\n\nfunction normalizeHighlightResult(\n result: TngCodeHighlightResult,\n fallbackLanguage: string | null,\n): TngNormalizedCodeHighlightResult | null {\n if ('kind' in result && result.kind === 'tokens') {\n return {\n kind: 'tokens',\n language: normalizeTngCodeLanguage(result.language) ?? fallbackLanguage,\n tokens: result.tokens.map((line) => normalizeTokenLine(line)),\n };\n }\n\n if ('html' in result) {\n const trustedHtml =\n 'trustedHtml' in result && (result.trustedHtml === true || result.trustedHtml === false)\n ? result.trustedHtml\n : false;\n\n if ('kind' in result && result.kind !== 'html') {\n return null;\n }\n\n return {\n html: result.html,\n kind: 'html',\n language: normalizeTngCodeLanguage(result.language) ?? fallbackLanguage,\n trustedHtml,\n };\n }\n\n return null;\n}\n\nfunction tokenClassNameToAttributeValue(className: string | null | undefined): string {\n if (className === null || className === undefined) {\n return '';\n }\n\n return className\n .trim()\n .split(/\\s+/)\n .filter((token) => token.length > 0)\n .join(' ');\n}\n\nfunction tokensToEscapedHtml(lines: readonly TngCodeHighlightTokenLine[]): string {\n return lines\n .map((line) =>\n line\n .map((token) => {\n const escapedContent = escapeTngCodeHtml(token.content);\n const normalizedClassName = tokenClassNameToAttributeValue(token.className);\n if (normalizedClassName.length === 0) {\n return escapedContent;\n }\n\n return `<span class=\"${escapeTngCodeHtml(normalizedClassName)}\">${escapedContent}</span>`;\n })\n .join(''),\n )\n .join('\\n');\n}\n\nexport function normalizeTngCodeLanguage(value: string | null | undefined): string | null {\n if (value === null || value === undefined) {\n return null;\n }\n\n const normalizedValue = value.trim();\n return normalizedValue.length > 0 ? normalizedValue : null;\n}\n\nexport function normalizeTngCodeHighlighterId(value: string): string {\n return normalizeRequiredString(value, 'Code highlighter adapter id').toLowerCase();\n}\n\nexport function escapeTngCodeHtml(value: string): string {\n return value\n .replace(htmlEscapeAmpersand, htmlEscapeAmpersandValue)\n .replace(htmlEscapeLt, htmlEscapeLtValue)\n .replace(htmlEscapeGt, htmlEscapeGtValue)\n .replace(htmlEscapeQuote, htmlEscapeQuoteValue)\n .replace(htmlEscapeSingleQuote, htmlEscapeSingleQuoteValue);\n}\n\nexport function createTngCodeHighlighterAdapter(\n id: string,\n highlight: (input: TngCodeHighlightInput) => Promise<TngCodeHighlightResult> | TngCodeHighlightResult,\n supports?: (language: string | null) => boolean,\n): TngCodeHighlighterAdapter {\n const adapterId = normalizeTngCodeHighlighterId(id);\n return Object.freeze({\n highlight,\n id: adapterId,\n supports,\n });\n}\n\nexport const tngPlainCodeHighlighterAdapter = createTngCodeHighlighterAdapter(\n TNG_DEFAULT_CODE_HIGHLIGHTER_ID,\n (input: TngCodeHighlightInput): TngCodeHighlightResult => ({\n html: escapeTngCodeHtml(input.code),\n kind: 'html',\n language: input.language,\n trustedHtml: false,\n }),\n);\n\nexport const TNG_BUILTIN_CODE_HIGHLIGHTERS: Readonly<Record<string, TngCodeHighlighterAdapter>> =\n createReadonlyAdapterMap({\n [TNG_DEFAULT_CODE_HIGHLIGHTER_ID]: tngPlainCodeHighlighterAdapter,\n });\n\nexport function resolveTngCodeHighlightingConfig(\n options: TngProvideCodeHighlightingOptions = {},\n): TngResolvedCodeHighlightingConfig {\n const mergedAdapters = withCustomAdapters(\n TNG_BUILTIN_CODE_HIGHLIGHTERS,\n options.adapters ?? [],\n options.allowBuiltinOverride === true,\n );\n\n return {\n adapters: createReadonlyAdapterMap(mergedAdapters),\n defaultAdapter: resolveDefaultAdapterId(options.defaultAdapter, mergedAdapters),\n };\n}\n\nexport async function resolveTngCodeHighlightResult(\n request: TngCodeHighlightRequest,\n config: TngResolvedCodeHighlightingConfig,\n): Promise<TngNormalizedCodeHighlightResult | null> {\n const adapter = resolveAdapterFromRequest(request, config);\n const normalizedLanguage = normalizeTngCodeLanguage(request.language);\n\n if (typeof adapter.supports === 'function' && !adapter.supports(normalizedLanguage)) {\n return null;\n }\n\n const rawResult = await adapter.highlight({\n code: request.code,\n includeLineWrappers: request.includeLineWrappers ?? false,\n language: normalizedLanguage,\n theme: normalizeTngCodeLanguage(request.theme),\n });\n\n return normalizeHighlightResult(rawResult, normalizedLanguage);\n}\n\nexport async function highlightWithTngCodeHighlightingConfig(\n request: TngCodeHighlightRequest,\n config: TngResolvedCodeHighlightingConfig,\n): Promise<string> {\n const resolvedResult = await resolveTngCodeHighlightResult(request, config);\n if (resolvedResult === null) {\n return escapeTngCodeHtml(request.code);\n }\n\n if (resolvedResult.kind === 'tokens') {\n return tokensToEscapedHtml(resolvedResult.tokens);\n }\n\n return resolvedResult.html;\n}\n\nexport const TNG_CODE_HIGHLIGHTING_CONFIG = new InjectionToken<TngResolvedCodeHighlightingConfig>(\n 'TNG_CODE_HIGHLIGHTING_CONFIG',\n {\n providedIn: 'root',\n factory: (): TngResolvedCodeHighlightingConfig => resolveTngCodeHighlightingConfig(),\n },\n);\n\nexport const TNG_CODE_HIGHLIGHTING_RESOLVER = new InjectionToken<TngCodeHighlightingResolverLike>(\n 'TNG_CODE_HIGHLIGHTING_RESOLVER',\n {\n providedIn: 'root',\n factory: (): TngCodeHighlightingResolverLike =>\n new TngCodeHighlightingResolver(inject(TNG_CODE_HIGHLIGHTING_CONFIG)),\n },\n);\n\nexport function provideTngCodeHighlighting(\n options?: TngProvideCodeHighlightingOptions,\n): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: TNG_CODE_HIGHLIGHTING_CONFIG,\n useValue: resolveTngCodeHighlightingConfig(options),\n },\n {\n deps: [TNG_CODE_HIGHLIGHTING_CONFIG],\n provide: TNG_CODE_HIGHLIGHTING_RESOLVER,\n useFactory: (\n config: TngResolvedCodeHighlightingConfig,\n ): TngCodeHighlightingResolverLike => new TngCodeHighlightingResolver(config),\n },\n ]);\n}\n\nexport class TngCodeHighlightingResolver {\n public constructor(private readonly config: TngResolvedCodeHighlightingConfig) {}\n\n public getAdapterIds(): readonly string[] {\n return Object.keys(this.config.adapters);\n }\n\n public getDefaultAdapterId(): string {\n return this.config.defaultAdapter;\n }\n\n public async highlight(request: TngCodeHighlightRequest): Promise<string> {\n return highlightWithTngCodeHighlightingConfig(request, this.config);\n }\n\n public async highlightResult(\n request: TngCodeHighlightRequest,\n ): Promise<TngNormalizedCodeHighlightResult | null> {\n return resolveTngCodeHighlightResult(request, this.config);\n }\n}\n"]}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { type OnDestroy } from '@angular/core';
|
|
2
|
+
import { type SafeHtml } from '@angular/platform-browser';
|
|
3
|
+
import type { TngCopyErrorEvent, TngCopyEvent, TngCopySuccessEvent } from '@tailng-ui/primitives';
|
|
4
|
+
export type TngCodeBlockCopyMode = boolean | 'auto';
|
|
5
|
+
export type TngCodeBlockHighlightLineInput = number | readonly [number, number];
|
|
6
|
+
export type TngCodeBlockHighlightMode = 'auto' | 'off' | 'on';
|
|
7
|
+
export type TngCodeBlockLineNumbersMode = boolean | 'auto';
|
|
8
|
+
export type TngCodeBlockRenderState = 'error' | 'highlighted' | 'highlighting' | 'idle';
|
|
9
|
+
export type TngCodeBlockSanitizeHtml = boolean | 'auto';
|
|
10
|
+
export type TngCodeBlockVariant = 'compact' | 'default' | 'ghost';
|
|
11
|
+
export interface TngCodeBlockCopyContext {
|
|
12
|
+
code: string;
|
|
13
|
+
language: string | null;
|
|
14
|
+
theme: string | null;
|
|
15
|
+
}
|
|
16
|
+
export interface TngCodeBlockRenderStateChange {
|
|
17
|
+
error?: unknown;
|
|
18
|
+
state: TngCodeBlockRenderState;
|
|
19
|
+
}
|
|
20
|
+
export declare function coerceTngCodeBlockHighlightMode(value: string): TngCodeBlockHighlightMode;
|
|
21
|
+
export declare function coerceTngCodeBlockCopyResetDuration(value: number | string): number;
|
|
22
|
+
export declare function coerceTngCodeBlockStartingLineNumber(value: number | string): number;
|
|
23
|
+
export declare function normalizeTngCodeBlockCode(value: string | null | undefined): string;
|
|
24
|
+
export declare function toTngCodeBlockLineNumbers(code: string, startingLineNumber?: number): readonly number[];
|
|
25
|
+
export declare class TngCodeBlockComponent implements OnDestroy {
|
|
26
|
+
readonly adapter: import("@angular/core").InputSignal<string | null>;
|
|
27
|
+
readonly caption: import("@angular/core").InputSignal<string | null>;
|
|
28
|
+
readonly code: import("@angular/core").InputSignal<string>;
|
|
29
|
+
readonly copyMode: import("@angular/core").InputSignalWithTransform<TngCodeBlockCopyMode, string | boolean | null | undefined>;
|
|
30
|
+
readonly copyLabel: import("@angular/core").InputSignal<string>;
|
|
31
|
+
readonly copiedLabel: import("@angular/core").InputSignal<string>;
|
|
32
|
+
readonly copyResetDuration: import("@angular/core").InputSignalWithTransform<number, string | number>;
|
|
33
|
+
readonly copySuccessDurationMs: import("@angular/core").InputSignalWithTransform<number | undefined, string | number | undefined>;
|
|
34
|
+
readonly copyText: import("@angular/core").InputSignal<string | ((ctx: TngCodeBlockCopyContext) => string) | null>;
|
|
35
|
+
readonly errorLabel: import("@angular/core").InputSignal<string>;
|
|
36
|
+
readonly focusLines: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
|
|
37
|
+
readonly highlight: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
|
|
38
|
+
readonly highlightDebounceMs: import("@angular/core").InputSignalWithTransform<number, string | number>;
|
|
39
|
+
readonly highlightLines: import("@angular/core").InputSignal<readonly TngCodeBlockHighlightLineInput[] | null>;
|
|
40
|
+
readonly highlightMode: import("@angular/core").InputSignalWithTransform<TngCodeBlockHighlightMode, string>;
|
|
41
|
+
readonly language: import("@angular/core").InputSignal<string | null>;
|
|
42
|
+
readonly lineNumbersMode: import("@angular/core").InputSignalWithTransform<TngCodeBlockLineNumbersMode, string | boolean | null | undefined>;
|
|
43
|
+
readonly maxHeight: import("@angular/core").InputSignal<string | number | null>;
|
|
44
|
+
readonly sanitizeHtml: import("@angular/core").InputSignalWithTransform<TngCodeBlockSanitizeHtml, string | boolean | null | undefined>;
|
|
45
|
+
readonly showHeader: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
|
|
46
|
+
readonly showLanguageBadge: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
|
|
47
|
+
readonly showLineNumbers: import("@angular/core").InputSignalWithTransform<boolean | undefined, string | boolean | null | undefined>;
|
|
48
|
+
readonly startingLineNumber: import("@angular/core").InputSignalWithTransform<number, string | number>;
|
|
49
|
+
readonly theme: import("@angular/core").InputSignal<string | null>;
|
|
50
|
+
readonly title: import("@angular/core").InputSignal<string | null>;
|
|
51
|
+
readonly variant: import("@angular/core").InputSignal<TngCodeBlockVariant>;
|
|
52
|
+
readonly wrap: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
|
|
53
|
+
readonly copy: import("@angular/core").OutputEmitterRef<TngCopyEvent>;
|
|
54
|
+
readonly copyError: import("@angular/core").OutputEmitterRef<TngCopyErrorEvent>;
|
|
55
|
+
readonly copySuccess: import("@angular/core").OutputEmitterRef<TngCopySuccessEvent>;
|
|
56
|
+
readonly renderStateChange: import("@angular/core").OutputEmitterRef<TngCodeBlockRenderStateChange>;
|
|
57
|
+
readonly tngCopied: import("@angular/core").OutputEmitterRef<string>;
|
|
58
|
+
readonly tngCopyError: import("@angular/core").OutputEmitterRef<Error>;
|
|
59
|
+
protected readonly copyButtonLabel: import("@angular/core").Signal<string>;
|
|
60
|
+
protected readonly copyPayload: import("@angular/core").Signal<string>;
|
|
61
|
+
protected readonly dataHasCopy: import("@angular/core").Signal<"true" | "false">;
|
|
62
|
+
protected readonly dataHasTitle: import("@angular/core").Signal<"true" | "false">;
|
|
63
|
+
protected readonly dataHighlighted: import("@angular/core").Signal<"true" | "false">;
|
|
64
|
+
protected readonly dataWrap: import("@angular/core").Signal<"true" | "false">;
|
|
65
|
+
protected readonly effectiveCopyResetDuration: import("@angular/core").Signal<number>;
|
|
66
|
+
protected readonly effectiveLineNumbers: import("@angular/core").Signal<boolean>;
|
|
67
|
+
protected readonly hasHeaderContent: import("@angular/core").Signal<boolean>;
|
|
68
|
+
protected readonly hasLanguageBadge: import("@angular/core").Signal<boolean>;
|
|
69
|
+
protected readonly highlightLineSet: import("@angular/core").Signal<ReadonlySet<number>>;
|
|
70
|
+
protected readonly isHighlighting: import("@angular/core").Signal<boolean>;
|
|
71
|
+
protected readonly languageForBadge: import("@angular/core").Signal<string | null>;
|
|
72
|
+
protected readonly languageLabel: import("@angular/core").Signal<string>;
|
|
73
|
+
protected readonly lineNumbers: import("@angular/core").Signal<readonly number[]>;
|
|
74
|
+
protected readonly maxHeightCssValue: import("@angular/core").Signal<string | null>;
|
|
75
|
+
protected readonly normalizedCode: import("@angular/core").Signal<string>;
|
|
76
|
+
protected readonly renderState: import("@angular/core").WritableSignal<TngCodeBlockRenderState>;
|
|
77
|
+
protected readonly renderedLines: import("@angular/core").Signal<readonly Readonly<{
|
|
78
|
+
dimmed: boolean;
|
|
79
|
+
highlighted: boolean;
|
|
80
|
+
html: SafeHtml | string;
|
|
81
|
+
lineNumber: number;
|
|
82
|
+
}>[]>;
|
|
83
|
+
protected readonly shouldRenderBodyLineNumbers: import("@angular/core").Signal<boolean>;
|
|
84
|
+
protected readonly shouldRenderHeader: import("@angular/core").Signal<boolean>;
|
|
85
|
+
protected readonly shouldShowCopyAction: import("@angular/core").Signal<boolean>;
|
|
86
|
+
protected readonly titleText: import("@angular/core").Signal<string | null>;
|
|
87
|
+
private readonly baseLineHtml;
|
|
88
|
+
private readonly copyState;
|
|
89
|
+
private readonly domSanitizer;
|
|
90
|
+
private readonly highlightingConfig;
|
|
91
|
+
private readonly normalizedLanguage;
|
|
92
|
+
private readonly resolvedLanguage;
|
|
93
|
+
private copyResetTimer;
|
|
94
|
+
private destroyed;
|
|
95
|
+
private highlightDebounceTimer;
|
|
96
|
+
private highlightRequestId;
|
|
97
|
+
private lastEmittedRenderState;
|
|
98
|
+
private readonly renderCache;
|
|
99
|
+
constructor();
|
|
100
|
+
ngOnDestroy(): void;
|
|
101
|
+
protected onPrimitiveCopy(...args: readonly unknown[]): void;
|
|
102
|
+
protected onPrimitiveCopyError(...args: readonly unknown[]): void;
|
|
103
|
+
protected onPrimitiveCopySuccess(...args: readonly unknown[]): void;
|
|
104
|
+
private applyPlainText;
|
|
105
|
+
private applyResolvedHighlightResult;
|
|
106
|
+
private buildCacheKey;
|
|
107
|
+
private clearCopyResetTimer;
|
|
108
|
+
private clearHighlightDebounceTimer;
|
|
109
|
+
private enqueueRenderRequest;
|
|
110
|
+
private isStaleRequest;
|
|
111
|
+
private scheduleCopyStateReset;
|
|
112
|
+
private setRenderState;
|
|
113
|
+
private shouldHighlightCode;
|
|
114
|
+
private shouldIncludeLineWrappers;
|
|
115
|
+
private toHighlightRequest;
|
|
116
|
+
private renderRequest;
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=tng-code-block.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tng-code-block.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/utility/code-block/tng-code-block.component.ts"],"names":[],"mappings":"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"}
|