@siemens/element-ng 49.16.0 → 51.0.0-rc.10
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 +1 -1
- package/fesm2022/siemens-element-ng-about.mjs +41 -25
- package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-accordion.mjs +59 -41
- package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-action-modal.mjs +83 -53
- package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ag-grid.mjs +143 -148
- package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-application-header.mjs +180 -188
- package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +34 -28
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-autocomplete.mjs +27 -22
- package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-avatar.mjs +34 -24
- package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-badge.mjs +9 -8
- package/fesm2022/siemens-element-ng-badge.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +17 -14
- package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb.mjs +21 -17
- package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-card.mjs +72 -47
- package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-carousel.mjs +58 -34
- package/fesm2022/siemens-element-ng-carousel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-chat-messages.mjs +323 -215
- package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-circle-status.mjs +39 -25
- package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-color-picker.mjs +44 -34
- package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +58 -37
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-common.mjs +22 -22
- package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-connection-strength.mjs +14 -12
- package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-content-action-bar.mjs +37 -28
- package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-copyright-notice.mjs +19 -14
- package/fesm2022/siemens-element-ng-copyright-notice.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-dashboard.mjs +337 -223
- package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datatable.mjs +12 -15
- package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-date-range-filter.mjs +126 -76
- package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datepicker.mjs +393 -251
- package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs +22 -17
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-empty-state.mjs +15 -12
- package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-file-uploader.mjs +105 -91
- package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filter-bar.mjs +33 -25
- package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filtered-search.mjs +274 -165
- package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-footer.mjs +12 -10
- package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-form.mjs +361 -116
- package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-formly-legacy.mjs +99 -0
- package/fesm2022/siemens-element-ng-formly-legacy.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-formly.mjs +224 -318
- package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-header-dropdown.mjs +40 -30
- package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-help-button.mjs +6 -6
- package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-icon.mjs +56 -57
- package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-info-page.mjs +17 -11
- package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-inline-notification.mjs +19 -14
- package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ip-input.mjs +19 -15
- package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-landing-page.mjs +121 -75
- package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-language-switcher.mjs +16 -12
- package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-link.mjs +31 -21
- package/fesm2022/siemens-element-ng-link.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-list-details.mjs +132 -66
- package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-loading-spinner.mjs +51 -64
- package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-localization.mjs +14 -12
- package/fesm2022/siemens-element-ng-localization.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-main-detail-container.mjs +116 -51
- package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-maplibre.mjs +401 -0
- package/fesm2022/siemens-element-ng-maplibre.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-markdown-directives-tabs.mjs +70 -0
- package/fesm2022/siemens-element-ng-markdown-directives-tabs.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-markdown-extensions-citations.mjs +215 -0
- package/fesm2022/siemens-element-ng-markdown-extensions-citations.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-markdown-extensions-katex.mjs +76 -0
- package/fesm2022/siemens-element-ng-markdown-extensions-katex.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-markdown-extensions-mermaid.mjs +86 -0
- package/fesm2022/siemens-element-ng-markdown-extensions-mermaid.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-markdown-hightlighter-highlightjs.mjs +130 -0
- package/fesm2022/siemens-element-ng-markdown-hightlighter-highlightjs.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-markdown.mjs +800 -0
- package/fesm2022/siemens-element-ng-markdown.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-menu.mjs +71 -57
- package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-modal.mjs +14 -11
- package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +251 -206
- package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs +123 -86
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar.mjs +72 -45
- package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-notification-item.mjs +19 -11
- package/fesm2022/siemens-element-ng-notification-item.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-number-input.mjs +41 -29
- package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pagination.mjs +31 -20
- package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-password-strength.mjs +33 -24
- package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-password-toggle.mjs +19 -14
- package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-phone-number.mjs +144 -139
- package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-photo-upload.mjs +85 -52
- package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pills-input.mjs +56 -41
- package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover-legacy.mjs +43 -28
- package/fesm2022/siemens-element-ng-popover-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover.mjs +35 -27
- package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-progressbar.mjs +23 -16
- package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-resize-observer.mjs +32 -43
- package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-result-details-list.mjs +12 -10
- package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-search-bar.mjs +38 -37
- package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-select.mjs +265 -170
- package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-shadow-root.mjs +4 -4
- package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-side-panel.mjs +181 -104
- package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-skip-links.mjs +21 -24
- package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-slider.mjs +45 -30
- package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-source-chip.mjs +79 -0
- package/fesm2022/siemens-element-ng-source-chip.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-split.mjs +290 -306
- package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-bar.mjs +66 -52
- package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-counter.mjs +15 -11
- package/fesm2022/siemens-element-ng-status-counter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-toggle.mjs +26 -16
- package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-chip.mjs +25 -16
- package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-widget.mjs +27 -17
- package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-system-banner.mjs +13 -10
- package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs-legacy.mjs +20 -17
- package/fesm2022/siemens-element-ng-tabs-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs.mjs +156 -131
- package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-theme.mjs +29 -6
- package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-threshold.mjs +62 -42
- package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-toast-notification.mjs +59 -40
- package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tooltip.mjs +108 -82
- package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tour.mjs +36 -19
- package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-translate.mjs +0 -1
- package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tree-view.mjs +113 -84
- package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-typeahead.mjs +69 -49
- package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-wizard.mjs +95 -54
- package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
- package/formly-legacy/package.json +4 -0
- package/maplibre/package.json +4 -0
- package/maplibre/styles/_index.scss +1 -0
- package/maplibre/styles/maplibre-gl.scss +724 -0
- package/markdown/directives/tabs/package.json +4 -0
- package/markdown/extensions/citations/package.json +4 -0
- package/markdown/extensions/katex/package.json +4 -0
- package/markdown/extensions/mermaid/package.json +4 -0
- package/markdown/hightlighter/highlightjs/package.json +4 -0
- package/markdown/package.json +4 -0
- package/package.json +96 -25
- package/schematics/collection.json +5 -0
- package/schematics/{migrations/icon-path-migration → migrate-tabs-legacy}/index.js +1 -1
- package/schematics/migrate-tabs-legacy/migrate-tabs-legacy-rule.js +675 -0
- package/schematics/migrate-tabs-legacy/schema.json +14 -0
- package/schematics/migration.json +4 -4
- package/schematics/migrations/data/class-member-replacement.js +1 -19
- package/schematics/migrations/data/component-property-names.js +1 -25
- package/schematics/migrations/data/component-property-to-child.js +11 -0
- package/schematics/migrations/data/css-custom-properties.js +224 -0
- package/schematics/migrations/data/element-class-changes.js +116 -18
- package/schematics/migrations/data/element-migration-data.js +6 -0
- package/schematics/migrations/data/element-selectors.js +1 -9
- package/schematics/migrations/data/index.js +0 -4
- package/schematics/migrations/data/migration-test-data.js +49 -6
- package/schematics/migrations/data/provider-function-removals.js +7 -0
- package/schematics/migrations/data/symbol-removals.js +17 -7
- package/schematics/migrations/data/symbol-renaming.js +3 -44
- package/schematics/migrations/element-migration/element-migration.js +6 -6
- package/schematics/migrations/utilities/component-property-to-child.migration.js +73 -0
- package/schematics/migrations/utilities/css-custom-property.migration.js +51 -0
- package/schematics/migrations/utilities/element-class-change.migration.js +10 -5
- package/schematics/migrations/utilities/import-removal.js +39 -0
- package/schematics/migrations/utilities/index.js +4 -0
- package/schematics/migrations/utilities/provider-function-removal.migration.js +116 -0
- package/schematics/ng-update/index.js +1 -1
- package/schematics/ng-update/migrate-content-formatter.js +288 -0
- package/schematics/ng-update/migrate-list-details-units.js +86 -0
- package/schematics/ng-update/migrate-main-detail-units.js +89 -0
- package/schematics/ng-update/migrate-markdown-renderer.js +106 -0
- package/schematics/ng-update/migrate-spacers.js +32 -0
- package/schematics/ng-update/migrate-split-collapse.js +276 -0
- package/schematics/ng-update/migrate-split-scale.js +524 -0
- package/schematics/ng-update/migrate-split-sizes.js +107 -0
- package/schematics/ng-update/migrate-to-v51.js +35 -0
- package/schematics/utils/index.js +1 -0
- package/schematics/utils/template-edit-utils.js +35 -0
- package/schematics/utils/template-utils.js +31 -45
- package/source-chip/package.json +4 -0
- package/template-i18n.json +78 -47
- package/types/siemens-element-ng-application-header.d.ts +7 -33
- package/types/siemens-element-ng-avatar.d.ts +1 -1
- package/types/siemens-element-ng-breadcrumb.d.ts +1 -1
- package/types/siemens-element-ng-chat-messages.d.ts +118 -70
- package/types/siemens-element-ng-circle-status.d.ts +1 -1
- package/types/siemens-element-ng-content-action-bar.d.ts +1 -1
- package/types/siemens-element-ng-dashboard.d.ts +2 -2
- package/types/siemens-element-ng-datatable.d.ts +5 -56
- package/types/siemens-element-ng-date-range-filter.d.ts +1 -1
- package/types/siemens-element-ng-datepicker.d.ts +8 -15
- package/types/siemens-element-ng-electron-titlebar.d.ts +1 -1
- package/types/siemens-element-ng-file-uploader.d.ts +13 -31
- package/types/siemens-element-ng-filter-bar.d.ts +1 -1
- package/types/siemens-element-ng-filtered-search.d.ts +4 -4
- package/types/siemens-element-ng-form.d.ts +183 -44
- package/types/siemens-element-ng-formly-legacy.d.ts +40 -0
- package/types/siemens-element-ng-formly.d.ts +34 -167
- package/types/siemens-element-ng-icon.d.ts +2 -19
- package/types/siemens-element-ng-landing-page.d.ts +2 -2
- package/types/siemens-element-ng-list-details.d.ts +25 -3
- package/types/siemens-element-ng-loading-spinner.d.ts +11 -17
- package/types/siemens-element-ng-main-detail-container.d.ts +23 -3
- package/types/siemens-element-ng-maplibre.d.ts +190 -0
- package/types/siemens-element-ng-markdown-directives-tabs.d.ts +10 -0
- package/types/siemens-element-ng-markdown-extensions-citations.d.ts +11 -0
- package/types/siemens-element-ng-markdown-extensions-katex.d.ts +19 -0
- package/types/siemens-element-ng-markdown-extensions-mermaid.d.ts +11 -0
- package/types/siemens-element-ng-markdown-hightlighter-highlightjs.d.ts +48 -0
- package/types/siemens-element-ng-markdown.d.ts +367 -0
- package/types/siemens-element-ng-menu.d.ts +2 -0
- package/types/siemens-element-ng-navbar-vertical-next.d.ts +87 -39
- package/types/siemens-element-ng-navbar-vertical.d.ts +1 -1
- package/types/siemens-element-ng-navbar.d.ts +3 -3
- package/types/siemens-element-ng-notification-item.d.ts +12 -0
- package/types/siemens-element-ng-phone-number.d.ts +28 -10
- package/types/siemens-element-ng-photo-upload.d.ts +4 -4
- package/types/siemens-element-ng-resize-observer.d.ts +0 -17
- package/types/siemens-element-ng-search-bar.d.ts +2 -9
- package/types/siemens-element-ng-select.d.ts +32 -5
- package/types/siemens-element-ng-side-panel.d.ts +25 -11
- package/types/siemens-element-ng-source-chip.d.ts +53 -0
- package/types/siemens-element-ng-split.d.ts +101 -78
- package/types/siemens-element-ng-status-bar.d.ts +5 -13
- package/types/siemens-element-ng-status-counter.d.ts +1 -1
- package/types/siemens-element-ng-system-banner.d.ts +2 -2
- package/types/siemens-element-ng-tabs.d.ts +1 -2
- package/types/siemens-element-ng-theme.d.ts +12 -2
- package/types/siemens-element-ng-threshold.d.ts +1 -1
- package/types/siemens-element-ng-toast-notification.d.ts +0 -1
- package/types/siemens-element-ng-tooltip.d.ts +7 -7
- package/types/siemens-element-ng-translate.d.ts +35 -5
- package/types/siemens-element-ng-tree-view.d.ts +3 -0
- package/types/siemens-element-ng-wizard.d.ts +18 -3
- package/fesm2022/siemens-element-ng-icon-status.mjs +0 -46
- package/fesm2022/siemens-element-ng-icon-status.mjs.map +0 -1
- package/fesm2022/siemens-element-ng-markdown-renderer.mjs +0 -263
- package/fesm2022/siemens-element-ng-markdown-renderer.mjs.map +0 -1
- package/fesm2022/siemens-element-ng-sort-bar.mjs +0 -99
- package/fesm2022/siemens-element-ng-sort-bar.mjs.map +0 -1
- package/icon-status/package.json +0 -4
- package/markdown-renderer/package.json +0 -4
- package/schematics/migrations/icon-path-migration/icon-path-migration.js +0 -95
- package/schematics/ng-update/migrate-to-v49.js +0 -21
- package/schematics/vitest-setup.js +0 -5
- package/sort-bar/package.json +0 -4
- package/types/siemens-element-ng-icon-status.d.ts +0 -25
- package/types/siemens-element-ng-markdown-renderer.d.ts +0 -36
- package/types/siemens-element-ng-sort-bar.d.ts +0 -59
- /package/{LICENSE.md → LICENSE} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-markdown-extensions-katex.mjs","sources":["../../../../projects/element-ng/markdown/extensions/katex/si-markdown-katex.component.ts","../../../../projects/element-ng/markdown/extensions/katex/si-markdown-katex.extension.ts","../../../../projects/element-ng/markdown/extensions/katex/index.ts","../../../../projects/element-ng/markdown/extensions/katex/siemens-element-ng-markdown-extensions-katex.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n Component,\n computed,\n effect,\n ElementRef,\n inject,\n input,\n ViewEncapsulation\n} from '@angular/core';\nimport { type SiMarkdownExtensionComponent } from '@siemens/element-ng/markdown';\nimport { type KatexOptions, render } from 'katex';\nimport { Literal, type Node, type Parent } from 'mdast';\n\n@Component({\n selector: 'si-markdown-katex',\n template: '',\n styleUrl: 'si-markdown-katex.component.scss',\n // this is necessary for the styles to work correctly\n // eslint-disable-next-line @angular-eslint/use-component-view-encapsulation\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'katex-container',\n '[attr.data-line]': 'node().position?.start?.line',\n '[class.d-block]': 'displayMode()'\n }\n})\nexport class SiMarkdownKatexComponent implements SiMarkdownExtensionComponent {\n private readonly elementRef = inject(ElementRef);\n\n readonly node = input.required<Node>();\n readonly parent = input.required<Parent>();\n readonly options = input<KatexOptions>();\n\n protected readonly displayMode = computed(() => this.node().type === 'math');\n private readonly expr = computed(() => (this.node() as Literal).value);\n\n constructor() {\n effect(() => this.render());\n }\n\n private render(): void {\n const expr = this.expr();\n const options = this.options() ?? {};\n render(expr, this.elementRef.nativeElement, {\n ...options,\n displayMode: this.displayMode(),\n throwOnError: false\n });\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { type SiMarkdownExtension } from '@siemens/element-ng/markdown';\n/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { type KatexOptions } from 'katex';\nimport remarkMath, { type Options } from 'remark-math';\n\nimport { SiMarkdownKatexComponent } from './si-markdown-katex.component';\n\n/**\n * An extension to render LaTeX math expressions using KaTeX. Uses `remark-math` to parse\n * the expressions inside the markdown document.\n * @param parseOptions - options passed to `remark-math`\n * @param katexOptions - options passed to `katex`\n * @returns extension for `SiMarkdownOption.installExtension()`\n */\nexport const siMarkdownMathKaTeX = (\n parseOptions?: Options,\n katexOptions?: KatexOptions\n): SiMarkdownExtension => {\n katexOptions ??= {\n output: 'html'\n };\n\n return {\n plugins: [{ plugin: remarkMath, options: parseOptions }],\n types: [\n { type: 'math', component: SiMarkdownKatexComponent, options: katexOptions },\n { type: 'inlineMath', component: SiMarkdownKatexComponent, options: katexOptions }\n ]\n };\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-markdown-katex.extension';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAAA;;;AAGG;MA2BU,wBAAwB,CAAA;AAClB,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IAEvC,IAAI,GAAG,KAAK,CAAC,QAAQ;6EAAQ;IAC7B,MAAM,GAAG,KAAK,CAAC,QAAQ;+EAAU;AACjC,IAAA,OAAO,GAAG,KAAK;2FAAgB;AAErB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM;oFAAC;IAC3D,IAAI,GAAG,QAAQ,CAAC,MAAO,IAAI,CAAC,IAAI,EAAc,CAAC,KAAK;6EAAC;AAEtE,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;IAC7B;IAEQ,MAAM,GAAA;AACZ,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;QACpC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;AAC1C,YAAA,GAAG,OAAO;AACV,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAC/B,YAAA,YAAY,EAAE;AACf,SAAA,CAAC;IACJ;uGAtBW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,slBAXzB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,smj5CAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAWD,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAbpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,YACnB,EAAE,EAAA,aAAA,EAIG,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACJ,wBAAA,KAAK,EAAE,iBAAiB;AACxB,wBAAA,kBAAkB,EAAE,8BAA8B;AAClD,wBAAA,iBAAiB,EAAE;AACpB,qBAAA,EAAA,MAAA,EAAA,CAAA,smj5CAAA,CAAA,EAAA;;;ACdH;;;;;;AAMG;MACU,mBAAmB,GAAG,CACjC,YAAsB,EACtB,YAA2B,KACJ;AACvB,IAAA,YAAY,KAAK;AACf,QAAA,MAAM,EAAE;KACT;IAED,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AACxD,QAAA,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,wBAAwB,EAAE,OAAO,EAAE,YAAY,EAAE;YAC5E,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,wBAAwB,EAAE,OAAO,EAAE,YAAY;AACjF;KACF;AACH;;ACpCA;;;AAGG;;ACHH;;AAEG;;;;"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, Injector, input, computed, afterNextRender, Component } from '@angular/core';
|
|
3
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
4
|
+
import { computedAsync } from '@siemens/element-ng/markdown';
|
|
5
|
+
import mermaid from 'mermaid';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Copyright (c) Siemens 2016 - 2026
|
|
9
|
+
* SPDX-License-Identifier: MIT
|
|
10
|
+
*/
|
|
11
|
+
class SiMarkdownMermaidComponent {
|
|
12
|
+
static idCounter = 1;
|
|
13
|
+
id = `__si-markdown-mermaid-${SiMarkdownMermaidComponent.idCounter++}`;
|
|
14
|
+
sanitizer = inject(DomSanitizer);
|
|
15
|
+
injector = inject(Injector);
|
|
16
|
+
node = input.required(/* @ts-ignore */
|
|
17
|
+
...(ngDevMode ? [{ debugName: "node" }] : /* istanbul ignore next */ []));
|
|
18
|
+
parent = input.required(/* @ts-ignore */
|
|
19
|
+
...(ngDevMode ? [{ debugName: "parent" }] : /* istanbul ignore next */ []));
|
|
20
|
+
options = input(/* @ts-ignore */
|
|
21
|
+
...(ngDevMode ? [undefined, { debugName: "options" }] : /* istanbul ignore next */ []));
|
|
22
|
+
code = computed(() => this.node().value, /* @ts-ignore */
|
|
23
|
+
...(ngDevMode ? [{ debugName: "code" }] : /* istanbul ignore next */ []));
|
|
24
|
+
svg = computedAsync({
|
|
25
|
+
params: () => ({ options: this.options(), code: this.code() }),
|
|
26
|
+
computation: params => this.render(params.code, params.options),
|
|
27
|
+
initial: undefined
|
|
28
|
+
});
|
|
29
|
+
async render(code, options = {}) {
|
|
30
|
+
if (!code) {
|
|
31
|
+
return '';
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
mermaid.initialize({ ...options, startOnLoad: false, suppressErrorRendering: true });
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
return '';
|
|
38
|
+
}
|
|
39
|
+
return await new Promise(resolve => {
|
|
40
|
+
// this is necessary for mermaid to init
|
|
41
|
+
afterNextRender(async () => {
|
|
42
|
+
try {
|
|
43
|
+
const ret = await mermaid.render(this.id, code);
|
|
44
|
+
resolve(this.sanitizer.bypassSecurityTrustHtml(ret.svg));
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
resolve('');
|
|
48
|
+
}
|
|
49
|
+
}, { injector: this.injector });
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiMarkdownMermaidComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
53
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.8", type: SiMarkdownMermaidComponent, isStandalone: true, selector: "si-markdown-mermaid", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null }, parent: { classPropertyName: "parent", publicName: "parent", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-line": "node().position?.start?.line" } }, ngImport: i0, template: '<div [id]="id"></div><div [innerHTML]="svg()"></div>', isInline: true });
|
|
54
|
+
}
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiMarkdownMermaidComponent, decorators: [{
|
|
56
|
+
type: Component,
|
|
57
|
+
args: [{
|
|
58
|
+
selector: 'si-markdown-mermaid',
|
|
59
|
+
template: '<div [id]="id"></div><div [innerHTML]="svg()"></div>',
|
|
60
|
+
host: {
|
|
61
|
+
'[attr.data-line]': 'node().position?.start?.line'
|
|
62
|
+
}
|
|
63
|
+
}]
|
|
64
|
+
}], propDecorators: { node: [{ type: i0.Input, args: [{ isSignal: true, alias: "node", required: true }] }], parent: [{ type: i0.Input, args: [{ isSignal: true, alias: "parent", required: true }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }] } });
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Copyright (c) Siemens 2016 - 2026
|
|
68
|
+
* SPDX-License-Identifier: MIT
|
|
69
|
+
*/
|
|
70
|
+
const siMarkdownMermaid = (options) => {
|
|
71
|
+
return {
|
|
72
|
+
codeTypes: [{ type: 'mermaid', component: SiMarkdownMermaidComponent, options }]
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Copyright (c) Siemens 2016 - 2026
|
|
78
|
+
* SPDX-License-Identifier: MIT
|
|
79
|
+
*/
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Generated bundle index. Do not edit.
|
|
83
|
+
*/
|
|
84
|
+
|
|
85
|
+
export { siMarkdownMermaid };
|
|
86
|
+
//# sourceMappingURL=siemens-element-ng-markdown-extensions-mermaid.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-markdown-extensions-mermaid.mjs","sources":["../../../../projects/element-ng/markdown/extensions/mermaid/si-markdown-mermaid.component.ts","../../../../projects/element-ng/markdown/extensions/mermaid/si-markdown-mermaid.extension.ts","../../../../projects/element-ng/markdown/extensions/mermaid/index.ts","../../../../projects/element-ng/markdown/extensions/mermaid/siemens-element-ng-markdown-extensions-mermaid.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { afterNextRender, Component, computed, inject, Injector, input } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { computedAsync, type SiMarkdownExtensionComponent } from '@siemens/element-ng/markdown';\nimport { Literal, type Node, type Parent } from 'mdast';\nimport mermaid, { MermaidConfig } from 'mermaid';\n\n@Component({\n selector: 'si-markdown-mermaid',\n template: '<div [id]=\"id\"></div><div [innerHTML]=\"svg()\"></div>',\n host: {\n '[attr.data-line]': 'node().position?.start?.line'\n }\n})\nexport class SiMarkdownMermaidComponent implements SiMarkdownExtensionComponent {\n private static idCounter = 1;\n protected id = `__si-markdown-mermaid-${SiMarkdownMermaidComponent.idCounter++}`;\n\n private readonly sanitizer = inject(DomSanitizer);\n private readonly injector = inject(Injector);\n readonly node = input.required<Node>();\n readonly parent = input.required<Parent>();\n readonly options = input<MermaidConfig>();\n\n protected readonly code = computed(() => (this.node() as Literal).value);\n\n protected readonly svg = computedAsync({\n params: () => ({ options: this.options(), code: this.code() }),\n computation: params => this.render(params.code, params.options),\n initial: undefined\n });\n\n private async render(code: string, options: MermaidConfig = {}): Promise<SafeHtml> {\n if (!code) {\n return '';\n }\n try {\n mermaid.initialize({ ...options, startOnLoad: false, suppressErrorRendering: true });\n } catch (err) {\n return '';\n }\n return await new Promise(resolve => {\n // this is necessary for mermaid to init\n afterNextRender(\n async () => {\n try {\n const ret = await mermaid.render(this.id, code);\n resolve(this.sanitizer.bypassSecurityTrustHtml(ret.svg));\n } catch {\n resolve('');\n }\n },\n { injector: this.injector }\n );\n });\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n\nimport { type SiMarkdownExtension } from '@siemens/element-ng/markdown';\nimport { MermaidConfig } from 'mermaid';\n\nimport { SiMarkdownMermaidComponent } from './si-markdown-mermaid.component';\n\nexport const siMarkdownMermaid = (options?: MermaidConfig): SiMarkdownExtension => {\n return {\n codeTypes: [{ type: 'mermaid', component: SiMarkdownMermaidComponent, options }]\n };\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-markdown-mermaid.extension';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAAA;;;AAGG;MAcU,0BAA0B,CAAA;AAC7B,IAAA,OAAO,SAAS,GAAG,CAAC;AAClB,IAAA,EAAE,GAAG,CAAA,sBAAA,EAAyB,0BAA0B,CAAC,SAAS,EAAE,EAAE;AAE/D,IAAA,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC;AAChC,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACnC,IAAI,GAAG,KAAK,CAAC,QAAQ;6EAAQ;IAC7B,MAAM,GAAG,KAAK,CAAC,QAAQ;+EAAU;AACjC,IAAA,OAAO,GAAG,KAAK;2FAAiB;IAEtB,IAAI,GAAG,QAAQ,CAAC,MAAO,IAAI,CAAC,IAAI,EAAc,CAAC,KAAK;6EAAC;IAErD,GAAG,GAAG,aAAa,CAAC;QACrC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;AAC9D,QAAA,WAAW,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC;AAC/D,QAAA,OAAO,EAAE;AACV,KAAA,CAAC;AAEM,IAAA,MAAM,MAAM,CAAC,IAAY,EAAE,UAAyB,EAAE,EAAA;QAC5D,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,OAAO,EAAE;QACX;AACA,QAAA,IAAI;AACF,YAAA,OAAO,CAAC,UAAU,CAAC,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC;QACtF;QAAE,OAAO,GAAG,EAAE;AACZ,YAAA,OAAO,EAAE;QACX;AACA,QAAA,OAAO,MAAM,IAAI,OAAO,CAAC,OAAO,IAAG;;YAEjC,eAAe,CACb,YAAW;AACT,gBAAA,IAAI;AACF,oBAAA,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC;AAC/C,oBAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC1D;AAAE,gBAAA,MAAM;oBACN,OAAO,CAAC,EAAE,CAAC;gBACb;YACF,CAAC,EACD,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAC5B;AACH,QAAA,CAAC,CAAC;IACJ;uGAzCW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,mhBAL3B,sDAAsD,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA;;2FAKrD,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,sDAAsD;AAChE,oBAAA,IAAI,EAAE;AACJ,wBAAA,kBAAkB,EAAE;AACrB;AACF,iBAAA;;;AChBD;;;AAGG;AAOI,MAAM,iBAAiB,GAAG,CAAC,OAAuB,KAAyB;IAChF,OAAO;AACL,QAAA,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,0BAA0B,EAAE,OAAO,EAAE;KAChF;AACH;;ACdA;;;AAGG;;ACHH;;AAEG;;;;"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, input, Component } from '@angular/core';
|
|
3
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
4
|
+
import { computedAsync } from '@siemens/element-ng/markdown';
|
|
5
|
+
import hljs from 'highlight.js/lib/core';
|
|
6
|
+
import langBash from 'highlight.js/lib/languages/bash';
|
|
7
|
+
import langCss from 'highlight.js/lib/languages/css';
|
|
8
|
+
import langJs from 'highlight.js/lib/languages/javascript';
|
|
9
|
+
import langJson from 'highlight.js/lib/languages/json';
|
|
10
|
+
import langMarkdown from 'highlight.js/lib/languages/markdown';
|
|
11
|
+
import langPython from 'highlight.js/lib/languages/python';
|
|
12
|
+
import langScss from 'highlight.js/lib/languages/scss';
|
|
13
|
+
import langTs from 'highlight.js/lib/languages/typescript';
|
|
14
|
+
import langXml from 'highlight.js/lib/languages/xml';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Copyright (c) Siemens 2016 - 2026
|
|
18
|
+
* SPDX-License-Identifier: MIT
|
|
19
|
+
*/
|
|
20
|
+
// some common languages are built-in for initial loading speed
|
|
21
|
+
hljs.registerLanguage('javascript', langJs);
|
|
22
|
+
hljs.registerLanguage('typescript', langTs);
|
|
23
|
+
hljs.registerLanguage('json', langJson);
|
|
24
|
+
hljs.registerLanguage('css', langCss);
|
|
25
|
+
hljs.registerLanguage('scss', langScss);
|
|
26
|
+
hljs.registerLanguage('bash', langBash);
|
|
27
|
+
hljs.registerLanguage('python', langPython);
|
|
28
|
+
hljs.registerLanguage('xml', langXml);
|
|
29
|
+
hljs.registerLanguage('markdown', langMarkdown);
|
|
30
|
+
const getHljsLang = async (lang, loader) => {
|
|
31
|
+
const loadedLang = hljs.getLanguage(lang);
|
|
32
|
+
if (loadedLang) {
|
|
33
|
+
return loadedLang;
|
|
34
|
+
}
|
|
35
|
+
if (loader) {
|
|
36
|
+
const importLang = await loader(lang);
|
|
37
|
+
if (importLang) {
|
|
38
|
+
hljs.registerLanguage(lang, importLang.default);
|
|
39
|
+
return hljs.getLanguage(lang);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return undefined;
|
|
43
|
+
};
|
|
44
|
+
class SiMarkdownHightlightJsComponent {
|
|
45
|
+
sanitizer = inject(DomSanitizer);
|
|
46
|
+
code = input.required(/* @ts-ignore */
|
|
47
|
+
...(ngDevMode ? [{ debugName: "code" }] : /* istanbul ignore next */ []));
|
|
48
|
+
language = input.required(/* @ts-ignore */
|
|
49
|
+
...(ngDevMode ? [{ debugName: "language" }] : /* istanbul ignore next */ []));
|
|
50
|
+
updateLanguage = input.required(/* @ts-ignore */
|
|
51
|
+
...(ngDevMode ? [{ debugName: "updateLanguage" }] : /* istanbul ignore next */ []));
|
|
52
|
+
options = input(/* @ts-ignore */
|
|
53
|
+
...(ngDevMode ? [undefined, { debugName: "options" }] : /* istanbul ignore next */ []));
|
|
54
|
+
highlighted = computedAsync({
|
|
55
|
+
params: () => ({ code: this.code(), language: this.language(), options: this.options() }),
|
|
56
|
+
computation: params => this.highlight(params.code, params.language, params.options),
|
|
57
|
+
initial: undefined
|
|
58
|
+
});
|
|
59
|
+
async highlight(code, language, options = {}) {
|
|
60
|
+
let highlighted = '';
|
|
61
|
+
if (!language && options?.autoDetectLanguage) {
|
|
62
|
+
try {
|
|
63
|
+
const res = hljs.highlightAuto(code, undefined);
|
|
64
|
+
highlighted = res.value;
|
|
65
|
+
if (res.language) {
|
|
66
|
+
const lang = hljs.getLanguage(res.language);
|
|
67
|
+
this.updateLanguage()(lang?.name);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
this.updateLanguage()(language);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
// ignored
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
const hljsLang = await getHljsLang(language, options.languageLoader);
|
|
79
|
+
if (hljsLang) {
|
|
80
|
+
this.updateLanguage()(hljsLang.name);
|
|
81
|
+
try {
|
|
82
|
+
highlighted = hljs.highlight(code, { ...options, language }).value;
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
// ignored
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
this.updateLanguage()(language);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return highlighted ? this.sanitizer.bypassSecurityTrustHtml(highlighted) : '';
|
|
93
|
+
}
|
|
94
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiMarkdownHightlightJsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
95
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiMarkdownHightlightJsComponent, isStandalone: true, selector: "si-markdown-highlightjs", inputs: { code: { classPropertyName: "code", publicName: "code", isSignal: true, isRequired: true, transformFunction: null }, language: { classPropertyName: "language", publicName: "language", isSignal: true, isRequired: true, transformFunction: null }, updateLanguage: { classPropertyName: "updateLanguage", publicName: "updateLanguage", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "d-block" }, ngImport: i0, template: "@let html = highlighted();\n@if (html) {\n <pre class=\"border-0 m-0 p-0\"><code [innerHTML]=\"html\"></code></pre>\n} @else {\n <pre class=\"border-0 m-0 p-0\"><code>{{ code() }} </code></pre>\n}\n", styles: [":host ::ng-deep .hljs{color:var(--si-sys-code-1)}:host ::ng-deep :is(.hljs-keyword,.hljs-literal,.hljs-operator){color:var(--si-sys-code-2)}:host ::ng-deep :is(.hljs-variable,.hljs-variable.language_,.hljs-params,.hljs-property){color:var(--si-sys-code-4)}:host ::ng-deep :is(.hljs-variable.constant_){color:var(--si-sys-code-3)}:host ::ng-deep :is(.hljs-title,.hljs-title.function_,.hljs-title.function_.invoke__,.hljs-built_in){color:var(--si-sys-code-5)}:host ::ng-deep :is(.hljs-string,.hljs-regexp,.hljs-char.escape_,.hljs-subst,.hljs-doctag){color:var(--si-sys-code-6)}:host ::ng-deep .hljs-number{color:var(--si-sys-code-7)}:host ::ng-deep :is(.hljs-symbol,.hljs-bullet){color:var(--si-sys-code-2)}:host ::ng-deep :is(.hljs-comment,.hljs-quote){color:var(--si-sys-code-8)}:host ::ng-deep .hljs-punctuation{color:var(--si-sys-code-9)}:host ::ng-deep :is(.hljs-tag,.hljs-name,.hljs-selector-tag,.hljs-selector-id,.hljs-selector-class,.hljs-selector-pseudo,.hljs-meta,.hljs-meta.keyword_,.hljs-template-tag,.hljs-template-variable){color:var(--si-sys-code-10)}:host ::ng-deep :is(.hljs-attr,.hljs-attribute,.hljs-selector-attr){color:var(--si-sys-code-3)}:host ::ng-deep :is(.hljs-type,.hljs-title.class_,.hljs-title.class_.inherited__){color:var(--si-sys-code-11)}:host ::ng-deep .hljs-deletion{color:var(--si-sys-code-11)}:host ::ng-deep .hljs-addition{color:var(--si-sys-code-12)}:host ::ng-deep .hljs-emphasis{font-style:italic}:host ::ng-deep .hljs-strong{font-weight:600}:host ::ng-deep :is(.hljs-code,.hljs-formula){color:var(--si-sys-code-1)}:host ::ng-deep :is(.hljs-section){color:var(--si-sys-code-1);font-weight:600}:host ::ng-deep .hljs-link{color:var(--si-sys-text-accent)}\n"] });
|
|
96
|
+
}
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiMarkdownHightlightJsComponent, decorators: [{
|
|
98
|
+
type: Component,
|
|
99
|
+
args: [{ selector: 'si-markdown-highlightjs', host: {
|
|
100
|
+
class: 'd-block'
|
|
101
|
+
}, template: "@let html = highlighted();\n@if (html) {\n <pre class=\"border-0 m-0 p-0\"><code [innerHTML]=\"html\"></code></pre>\n} @else {\n <pre class=\"border-0 m-0 p-0\"><code>{{ code() }} </code></pre>\n}\n", styles: [":host ::ng-deep .hljs{color:var(--si-sys-code-1)}:host ::ng-deep :is(.hljs-keyword,.hljs-literal,.hljs-operator){color:var(--si-sys-code-2)}:host ::ng-deep :is(.hljs-variable,.hljs-variable.language_,.hljs-params,.hljs-property){color:var(--si-sys-code-4)}:host ::ng-deep :is(.hljs-variable.constant_){color:var(--si-sys-code-3)}:host ::ng-deep :is(.hljs-title,.hljs-title.function_,.hljs-title.function_.invoke__,.hljs-built_in){color:var(--si-sys-code-5)}:host ::ng-deep :is(.hljs-string,.hljs-regexp,.hljs-char.escape_,.hljs-subst,.hljs-doctag){color:var(--si-sys-code-6)}:host ::ng-deep .hljs-number{color:var(--si-sys-code-7)}:host ::ng-deep :is(.hljs-symbol,.hljs-bullet){color:var(--si-sys-code-2)}:host ::ng-deep :is(.hljs-comment,.hljs-quote){color:var(--si-sys-code-8)}:host ::ng-deep .hljs-punctuation{color:var(--si-sys-code-9)}:host ::ng-deep :is(.hljs-tag,.hljs-name,.hljs-selector-tag,.hljs-selector-id,.hljs-selector-class,.hljs-selector-pseudo,.hljs-meta,.hljs-meta.keyword_,.hljs-template-tag,.hljs-template-variable){color:var(--si-sys-code-10)}:host ::ng-deep :is(.hljs-attr,.hljs-attribute,.hljs-selector-attr){color:var(--si-sys-code-3)}:host ::ng-deep :is(.hljs-type,.hljs-title.class_,.hljs-title.class_.inherited__){color:var(--si-sys-code-11)}:host ::ng-deep .hljs-deletion{color:var(--si-sys-code-11)}:host ::ng-deep .hljs-addition{color:var(--si-sys-code-12)}:host ::ng-deep .hljs-emphasis{font-style:italic}:host ::ng-deep .hljs-strong{font-weight:600}:host ::ng-deep :is(.hljs-code,.hljs-formula){color:var(--si-sys-code-1)}:host ::ng-deep :is(.hljs-section){color:var(--si-sys-code-1);font-weight:600}:host ::ng-deep .hljs-link{color:var(--si-sys-text-accent)}\n"] }]
|
|
102
|
+
}], propDecorators: { code: [{ type: i0.Input, args: [{ isSignal: true, alias: "code", required: true }] }], language: [{ type: i0.Input, args: [{ isSignal: true, alias: "language", required: true }] }], updateLanguage: [{ type: i0.Input, args: [{ isSignal: true, alias: "updateLanguage", required: true }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }] } });
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Copyright (c) Siemens 2016 - 2026
|
|
106
|
+
* SPDX-License-Identifier: MIT
|
|
107
|
+
*/
|
|
108
|
+
/**
|
|
109
|
+
* Code highlighter using Highlight.js
|
|
110
|
+
* @param options - Options passed to highlight.js
|
|
111
|
+
* @returns highlighter configuration for `SiMarkdownOptions.setCodeHighlighter()`
|
|
112
|
+
*/
|
|
113
|
+
const siMarkdownHighlightJs = (options) => {
|
|
114
|
+
return {
|
|
115
|
+
component: SiMarkdownHightlightJsComponent,
|
|
116
|
+
options
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Copyright (c) Siemens 2016 - 2026
|
|
122
|
+
* SPDX-License-Identifier: MIT
|
|
123
|
+
*/
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Generated bundle index. Do not edit.
|
|
127
|
+
*/
|
|
128
|
+
|
|
129
|
+
export { siMarkdownHighlightJs };
|
|
130
|
+
//# sourceMappingURL=siemens-element-ng-markdown-hightlighter-highlightjs.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-markdown-hightlighter-highlightjs.mjs","sources":["../../../../projects/element-ng/markdown/hightlighter/highlightjs/si-markdown-highlightjs.component.ts","../../../../projects/element-ng/markdown/hightlighter/highlightjs/si-markdown-highlightjs.component.html","../../../../projects/element-ng/markdown/hightlighter/highlightjs/si-markdown-highlightjs.highlighter.ts","../../../../projects/element-ng/markdown/hightlighter/highlightjs/index.ts","../../../../projects/element-ng/markdown/hightlighter/highlightjs/siemens-element-ng-markdown-hightlighter-highlightjs.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, inject, input } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { computedAsync, type SiMarkdownHighlighterComponent } from '@siemens/element-ng/markdown';\nimport { type Language } from 'highlight.js';\nimport hljs from 'highlight.js/lib/core';\nimport langBash from 'highlight.js/lib/languages/bash';\nimport langCss from 'highlight.js/lib/languages/css';\nimport langJs from 'highlight.js/lib/languages/javascript';\nimport langJson from 'highlight.js/lib/languages/json';\nimport langMarkdown from 'highlight.js/lib/languages/markdown';\nimport langPython from 'highlight.js/lib/languages/python';\nimport langScss from 'highlight.js/lib/languages/scss';\nimport langTs from 'highlight.js/lib/languages/typescript';\nimport langXml from 'highlight.js/lib/languages/xml';\n\nimport {\n HighlightJSLanguageLoader,\n SiMarkdownHighlightJsOptions\n} from './si-markdown-highlightjs.types';\n\n// some common languages are built-in for initial loading speed\nhljs.registerLanguage('javascript', langJs);\nhljs.registerLanguage('typescript', langTs);\nhljs.registerLanguage('json', langJson);\nhljs.registerLanguage('css', langCss);\nhljs.registerLanguage('scss', langScss);\nhljs.registerLanguage('bash', langBash);\nhljs.registerLanguage('python', langPython);\nhljs.registerLanguage('xml', langXml);\nhljs.registerLanguage('markdown', langMarkdown);\n\nconst getHljsLang = async (\n lang: string,\n loader?: HighlightJSLanguageLoader\n): Promise<Language | undefined> => {\n const loadedLang = hljs.getLanguage(lang);\n if (loadedLang) {\n return loadedLang;\n }\n\n if (loader) {\n const importLang = await loader(lang);\n if (importLang) {\n hljs.registerLanguage(lang, importLang.default);\n return hljs.getLanguage(lang);\n }\n }\n return undefined;\n};\n\n@Component({\n selector: 'si-markdown-highlightjs',\n templateUrl: './si-markdown-highlightjs.component.html',\n styleUrl: './si-markdown-highlightjs.component.scss',\n host: {\n class: 'd-block'\n }\n})\nexport class SiMarkdownHightlightJsComponent implements SiMarkdownHighlighterComponent {\n private readonly sanitizer = inject(DomSanitizer);\n readonly code = input.required<string>();\n readonly language = input.required<string>();\n readonly updateLanguage = input.required<(lang?: string) => void>();\n readonly options = input<SiMarkdownHighlightJsOptions>();\n\n protected readonly highlighted = computedAsync({\n params: () => ({ code: this.code(), language: this.language(), options: this.options() }),\n computation: params => this.highlight(params.code, params.language, params.options),\n initial: undefined\n });\n\n private async highlight(\n code: string,\n language: string,\n options: SiMarkdownHighlightJsOptions = {}\n ): Promise<SafeHtml> {\n let highlighted = '';\n if (!language && options?.autoDetectLanguage) {\n try {\n const res = hljs.highlightAuto(code, undefined);\n highlighted = res.value;\n if (res.language) {\n const lang = hljs.getLanguage(res.language);\n this.updateLanguage()(lang?.name);\n } else {\n this.updateLanguage()(language);\n }\n } catch {\n // ignored\n }\n } else {\n const hljsLang = await getHljsLang(language, options.languageLoader);\n if (hljsLang) {\n this.updateLanguage()(hljsLang.name);\n try {\n highlighted = hljs.highlight(code, { ...options, language }).value;\n } catch {\n // ignored\n }\n } else {\n this.updateLanguage()(language);\n }\n }\n return highlighted ? this.sanitizer.bypassSecurityTrustHtml(highlighted) : '';\n }\n}\n","@let html = highlighted();\n@if (html) {\n <pre class=\"border-0 m-0 p-0\"><code [innerHTML]=\"html\"></code></pre>\n} @else {\n <pre class=\"border-0 m-0 p-0\"><code>{{ code() }} </code></pre>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n\nimport { type SiMarkdownHighlighter } from '@siemens/element-ng/markdown';\n\nimport { SiMarkdownHightlightJsComponent } from './si-markdown-highlightjs.component';\nimport { SiMarkdownHighlightJsOptions } from './si-markdown-highlightjs.types';\n\n/**\n * Code highlighter using Highlight.js\n * @param options - Options passed to highlight.js\n * @returns highlighter configuration for `SiMarkdownOptions.setCodeHighlighter()`\n */\nexport const siMarkdownHighlightJs = (\n options?: SiMarkdownHighlightJsOptions\n): SiMarkdownHighlighter => {\n return {\n component: SiMarkdownHightlightJsComponent,\n options\n };\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-markdown-highlightjs.types';\nexport * from './si-markdown-highlightjs.highlighter';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|