@siemens/element-ng 51.1.0 → 51.3.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 +2 -2
- package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-badge.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-carousel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-common.mjs +13 -17
- package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-copyright-notice.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-dashboard.mjs +15 -1
- package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datepicker.mjs +13 -3
- package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filtered-search.mjs +8 -5
- package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-form.mjs +4 -4
- package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-formly-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-link.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-localization.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-maplibre.mjs +2 -2
- package/fesm2022/siemens-element-ng-maplibre.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-markdown-directives-tabs.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-markdown-extensions-citations.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-markdown-extensions-katex.mjs +2 -2
- package/fesm2022/siemens-element-ng-markdown-extensions-katex.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-markdown-extensions-mermaid.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-markdown-hightlighter-highlightjs.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-markdown.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-notification-item.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-number-input.mjs +3 -3
- package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pagination.mjs +2 -2
- package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover.mjs +16 -5
- package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-source-chip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-counter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs.mjs +7 -5
- package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tree-view.mjs +15 -10
- package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-typeahead.mjs +9 -0
- package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
- package/fesm2022/siemens-element-ng.mjs.map +1 -1
- package/maplibre/styles/maplibre-gl.scss +8 -2
- package/package.json +5 -5
- package/schematics/migrations/data/attribute-selectors.js +8 -1
- package/schematics/migrations/data/element-selectors.js +7 -1
- package/schematics/migrations/data/symbol-renaming.js +10 -0
- package/schematics/migrations/utilities/attribute-selector.migration.js +26 -10
- package/schematics/migrations/utilities/element-selector.migration.js +25 -15
- package/schematics/migrations/utilities/symbol-renaming.migration.js +90 -3
- package/schematics/utils/template-edit-utils.js +9 -0
- package/template-i18n.json +2 -2
- package/types/siemens-element-ng-dashboard.d.ts +2 -0
- package/types/siemens-element-ng-datepicker.d.ts +6 -1
- package/types/siemens-element-ng-form.d.ts +1 -1
- package/types/siemens-element-ng-number-input.d.ts +2 -2
- package/types/siemens-element-ng-popover.d.ts +1 -1
- package/types/siemens-element-ng-tabs.d.ts +1 -0
- package/types/siemens-element-ng-tree-view.d.ts +1 -0
- package/types/siemens-element-ng-typeahead.d.ts +7 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-element-ng-maplibre.mjs","sources":["../../../../projects/element-ng/maplibre/si-maplibre-style.ts","../../../../projects/element-ng/maplibre/cluster.utils.ts","../../../../projects/element-ng/maplibre/si-cluster-marker.component.ts","../../../../projects/element-ng/maplibre/si-cluster-marker.component.html","../../../../projects/element-ng/maplibre/si-cluster-source.component.ts","../../../../projects/element-ng/maplibre/si-cluster-source.component.html","../../../../projects/element-ng/maplibre/si-maplibre-translate.ts","../../../../projects/element-ng/maplibre/si-status-marker.component.ts","../../../../projects/element-ng/maplibre/si-status-marker.component.html","../../../../projects/element-ng/maplibre/index.ts","../../../../projects/element-ng/maplibre/siemens-element-ng-maplibre.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { assertInInjectionContext, computed, Signal } from '@angular/core';\nimport { injectIsDarkTheme } from '@siemens/element-ng/theme';\nimport { siMapStyle } from '@siemens/map-styles/common';\nimport type { StyleSpecification } from 'maplibre-gl';\n\n/**\n * Creates a signal that returns a {@link StyleSpecification} for MapLibre GL based on the current\n * Element theme. The signal automatically updates when the theme switches between light and dark.\n *\n * @remarks\n * **Must be called in an Angular injection context** (e.g. inside a constructor, field initializer,\n * or a function called from one). Calling this function outside of an injection context will throw\n * an `assertInInjectionContext` error.\n *\n * @experimental\n *\n * @param key - The MapTiler API key used to fetch tiles, glyphs, and sprites\n * @returns A signal that provides the current {@link StyleSpecification} based on the active theme\n * @throws When called outside of an Angular injection context\n */\nexport const injectSiMapStyle = (key: string): Signal<StyleSpecification> => {\n assertInInjectionContext(injectSiMapStyle);\n const isDark = injectIsDarkTheme();\n\n return computed(() => {\n return siMapStyle(key, isDark()) as StyleSpecification;\n });\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport type { ClusterColors, ClusterPoint, ClusterSegment } from './cluster-types';\nimport type { MarkerStatus } from './marker-types';\n\ntype ClusterProperties = Record<string, ['+', unknown]>;\n\nconst MARKER_STATUS_COLORS = {\n info: 'var(--si-sys-color-background-information)',\n success: 'var(--si-sys-color-background-success)',\n warning: 'var(--si-sys-color-background-warning)',\n danger: 'var(--si-sys-color-background-danger)',\n caution: 'var(--si-sys-color-background-caution)',\n critical: 'var(--si-sys-color-background-critical)',\n default: 'var(--si-sys-color-background-accent)',\n unknown: 'var(--si-sys-color-background-neutral)'\n} satisfies Record<MarkerStatus, string>;\n\n// Keep the four-color status palette stable for numeric group IDs.\nconst GROUP_STATUS_COLORS = [\n MARKER_STATUS_COLORS.info,\n MARKER_STATUS_COLORS.success,\n MARKER_STATUS_COLORS.warning,\n MARKER_STATUS_COLORS.danger\n];\nconst ELEMENT_COLORS = [\n 'var(--si-sys-color-data-sequential-red-2)',\n 'var(--si-sys-color-data-sequential-orange-4)',\n 'var(--si-sys-color-background-caution)',\n 'var(--si-sys-color-data-sequential-green-2)',\n 'var(--si-sys-color-background-information)',\n 'var(--si-sys-color-data-categorial-1)',\n 'var(--si-sys-color-data-categorial-17)'\n];\nconst UNGROUPED_COLOR = 'var(--si-sys-color-background-accent)';\nconst SEPARATOR_COLOR = 'var(--si-sys-color-background-1)';\nconst CHART_FRAGMENTS = 20;\nconst SEPARATOR_DEGREES = 2;\n\ninterface ClusterBucket extends ClusterSegment {\n mapExpression: unknown;\n}\n\n/** @internal */\nexport interface ClusterConfiguration {\n clusterProperties: ClusterProperties;\n segments: readonly ClusterSegment[];\n}\n\n/** @internal */\nexport const createClusterConfiguration = (\n groupColors: ClusterColors,\n groupProperty: string,\n statusProperty?: string\n): ClusterConfiguration => {\n const group = ['to-number', ['get', groupProperty], 0];\n let buckets: ClusterBucket[];\n\n if (typeof groupColors === 'string') {\n const colors = groupColors === 'status' ? GROUP_STATUS_COLORS : ELEMENT_COLORS;\n buckets = colors.map((color, index) => ({\n color,\n mapExpression: [\n 'case',\n ['all', ['>', group, 0], ['==', ['%', ['-', group, 1], colors.length], index]],\n 1,\n 0\n ],\n property: `si_group_${index}`\n }));\n } else {\n buckets = Object.entries(groupColors)\n .map(([groupId, color]) => ({ color, groupId: Number(groupId) }))\n .filter(bucket => Number.isInteger(bucket.groupId) && bucket.groupId > 0)\n .sort((a, b) => a.groupId - b.groupId)\n .map(bucket => ({\n color: bucket.color,\n mapExpression: ['case', ['==', group, bucket.groupId], 1, 0],\n property: `si_group_${bucket.groupId}`\n }));\n }\n\n if (statusProperty !== undefined) {\n for (const [status, color] of Object.entries(MARKER_STATUS_COLORS)) {\n buckets.push({\n color,\n mapExpression: [\n 'case',\n ['all', ['==', group, 0], ['==', ['get', statusProperty], status]],\n 1,\n 0\n ],\n property: `si_status_${status}`\n });\n }\n }\n\n return {\n clusterProperties: Object.fromEntries(\n buckets.map(bucket => [bucket.property, ['+', bucket.mapExpression]])\n ),\n segments: buckets.map(({ color, property }) => ({ color, property }))\n };\n};\n\n/** @internal */\nexport const createClusterGradient = (\n feature: ClusterPoint,\n configuredSegments: readonly ClusterSegment[]\n): string => {\n const count = getNumberProperty(feature, 'point_count');\n const segments = configuredSegments\n .map(segment => ({\n color: segment.color,\n count: getNumberProperty(feature, segment.property)\n }))\n .filter(segment => segment.count > 0);\n const groupedCount = segments.reduce((sum, segment) => sum + segment.count, 0);\n if (groupedCount < count) {\n segments.push({ color: UNGROUPED_COLOR, count: count - groupedCount });\n }\n if (!segments.length) {\n return UNGROUPED_COLOR;\n }\n\n const fragmentSize = count / CHART_FRAGMENTS;\n const weightedSegments = segments.map(segment => ({\n ...segment,\n weight: Math.max(1, segment.count / fragmentSize)\n }));\n const totalWeight = weightedSegments.reduce((sum, segment) => sum + segment.weight, 0);\n const separator =\n weightedSegments.length > 1 ? Math.min(SEPARATOR_DEGREES, 180 / totalWeight) : 0;\n let position = 0;\n const stops: string[] = [];\n for (const segment of weightedSegments) {\n const start = position;\n position += (segment.weight / totalWeight) * 360;\n if (separator) {\n stops.push(\n `${SEPARATOR_COLOR} ${start}deg ${start + separator / 2}deg`,\n `${segment.color} ${start + separator / 2}deg ${position - separator / 2}deg`,\n `${SEPARATOR_COLOR} ${position - separator / 2}deg ${position}deg`\n );\n } else {\n stops.push(`${segment.color} ${start}deg ${position}deg`);\n }\n }\n return `conic-gradient(from -90deg, ${stops.join(', ')})`;\n};\n\nconst getNumberProperty = (feature: ClusterPoint, property: string): number => {\n const value = feature.properties?.[property];\n return typeof value === 'number' ? value : Number(value) || 0;\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, input, output } from '@angular/core';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { ClusterPoint, ClusterSegment } from './cluster-types';\nimport { createClusterGradient } from './cluster.utils';\n\n/**\n * Renders an interactive marker for a MapLibre cluster.\n *\n * The marker displays the total number of clustered points and visualizes their group distribution\n * as colored segments. It is created internally by `SiClusterSourceComponent`.\n *\n * @internal\n */\n@Component({\n selector: 'si-cluster-marker',\n imports: [SiTranslatePipe],\n templateUrl: './si-cluster-marker.component.html',\n styleUrl: './si-cluster-marker.component.scss'\n})\nexport class SiClusterMarkerComponent {\n /** Cluster feature represented by this marker. */\n readonly feature = input.required<ClusterPoint>();\n\n /** Colored segments that represent the grouped points in the cluster. */\n readonly segments = input.required<readonly ClusterSegment[]>();\n\n /** Emits when the marker is activated. */\n readonly markerClick = output<void>();\n\n protected readonly count = computed(() => Number(this.feature().properties?.point_count) || 0);\n protected readonly countLabel = computed(() => (this.count() > 99 ? '99+' : `${this.count()}`));\n protected readonly clusterLabel = t(\n () => $localize`:@@SI_MAP_CLUSTER.LABEL:Cluster with {{count}} locations`\n );\n\n protected readonly gradient = computed(() =>\n createClusterGradient(this.feature(), this.segments())\n );\n\n protected onClick(event: MouseEvent): void {\n event.stopPropagation();\n this.markerClick.emit();\n }\n}\n","<button\n type=\"button\"\n class=\"cluster-marker\"\n [attr.aria-label]=\"clusterLabel | translate: { count: count() }\"\n [style.--si-cluster-gradient]=\"gradient()\"\n (click)=\"onClick($event)\"\n>\n <span class=\"cluster-count\" aria-hidden=\"true\">{{ countLabel() }}</span>\n</button>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, input, output, signal } from '@angular/core';\nimport {\n ClusterPointDirective,\n GeoJSONSourceComponent,\n MarkersForClustersComponent\n} from '@maplibre/ngx-maplibre-gl';\n\nimport type { ClusterColors, ClusterPoint } from './cluster-types';\nimport { createClusterConfiguration } from './cluster.utils';\nimport { SiClusterMarkerComponent } from './si-cluster-marker.component';\n\nconst EMPTY_DATA: GeoJSON.FeatureCollection<GeoJSON.Point> = {\n type: 'FeatureCollection',\n features: []\n};\n\n/**\n * Adds a clustered GeoJSON source to a MapLibre map and renders interactive cluster markers.\n *\n * Cluster markers display the number of contained points and their distribution by group. Status\n * segments can be enabled for ungrouped points by providing `statusProperty`. Render individual,\n * unclustered points separately with `mgl-markers-for-clusters` using the same source ID.\n * Positive numeric groups always take precedence over status segments. Status segments apply only\n * when the normalized group value is zero; points without a matching group or status use the\n * ungrouped color.\n *\n * @example Basic usage\n * ```html\n * <mgl-map [mapStyle]=\"mapStyle()\">\n * <si-cluster-source\n * sourceId=\"locations\"\n * statusProperty=\"status\"\n * [data]=\"locations\"\n * (clusterClick)=\"onClusterClick($event)\"\n * />\n *\n * <mgl-markers-for-clusters source=\"locations\">\n * <ng-template let-feature mglPoint>\n * <si-status-marker\n * [status]=\"feature.properties?.status\"\n * />\n * </ng-template>\n * </mgl-markers-for-clusters>\n * </mgl-map>\n * ```\n *\n * @experimental\n */\n@Component({\n selector: 'si-cluster-source',\n imports: [\n ClusterPointDirective,\n GeoJSONSourceComponent,\n MarkersForClustersComponent,\n SiClusterMarkerComponent\n ],\n templateUrl: './si-cluster-source.component.html'\n})\nexport class SiClusterSourceComponent {\n /** ID used to register the generated GeoJSON source in MapLibre. */\n readonly sourceId = input.required<string>();\n /**\n * Point feature collection to cluster.\n * @defaultValue EMPTY_DATA\n */\n readonly data = input<GeoJSON.FeatureCollection<GeoJSON.Point>>(EMPTY_DATA);\n /**\n * Feature property containing the positive numeric group ID.\n * @defaultValue 'group'\n */\n readonly groupProperty = input('group');\n /**\n * Built-in palette or exact colors indexed by group ID. The built-in `'status'` palette contains\n * four colors for numeric groups and is separate from status-based bucketing.\n * @defaultValue 'status'\n */\n readonly groupColors = input<ClusterColors>('status');\n /**\n * Top-level feature property containing a {@link MarkerStatus} value. Status bucketing is\n * disabled by default and only applies when the normalized group value is zero. Missing or\n * unsupported status values, and groups that do not match a configured bucket, use the ungrouped\n * color. Built-in colors match `SiStatusMarkerComponent`, with `default` using accent and\n * `unknown` using neutral.\n * @defaultValue undefined\n * @see https://maplibre.org/maplibre-style-spec/sources/#clusterproperties\n */\n readonly statusProperty = input<string | undefined>();\n /**\n * Cluster radius in pixels.\n * @defaultValue 50\n */\n readonly clusterRadius = input(50);\n /**\n * Maximum zoom at which points are clustered.\n * @defaultValue undefined\n */\n readonly clusterMaxZoom = input<number | undefined>(undefined);\n /**\n * Minimum number of points required to form a cluster.\n * @defaultValue 2\n */\n readonly clusterMinPoints = input(2);\n\n /** Emits when a cluster marker is activated. */\n readonly clusterClick = output<ClusterPoint>();\n\n protected readonly clusterConfiguration = computed(() =>\n createClusterConfiguration(this.groupColors(), this.groupProperty(), this.statusProperty())\n );\n /** Stores selection for the projected cluster-popover integration. */\n protected readonly selectedCluster = signal<ClusterPoint | undefined>(undefined);\n\n protected async selectCluster(feature: ClusterPoint): Promise<void> {\n this.clusterClick.emit(feature);\n this.selectedCluster.set({ ...feature, geometry: feature.geometry });\n }\n}\n","<mgl-geojson-source\n #source\n [id]=\"sourceId()\"\n [data]=\"data()\"\n [cluster]=\"true\"\n [clusterRadius]=\"clusterRadius()\"\n [clusterMaxZoom]=\"clusterMaxZoom()\"\n [clusterMinPoints]=\"clusterMinPoints()\"\n [clusterProperties]=\"clusterConfiguration().clusterProperties\"\n/>\n\n<mgl-markers-for-clusters [source]=\"sourceId()\">\n <ng-template let-feature mglClusterPoint>\n <si-cluster-marker\n [feature]=\"feature\"\n [segments]=\"clusterConfiguration().segments\"\n (markerClick)=\"selectCluster(feature)\"\n />\n </ng-template>\n</mgl-markers-for-clusters>\n\n<ng-content select=\"si-cluster-popover,[siClusterPopoverOutlet]\" />\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Signal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { injectSiTranslateService, t } from '@siemens/element-translate-ng/translate';\nimport { map } from 'rxjs';\n\nconst createDefaultLocale = (): Record<string, string> => ({\n 'AttributionControl.ToggleAttribution': t(\n () => $localize`:@@SI_MAP.TOGGLE_ATTRIBUTION:Toggle attribution`\n ),\n 'AttributionControl.MapFeedback': t(() => $localize`:@@SI_MAP.MAP_FEEDBACK:Map feedback`),\n 'FullscreenControl.Enter': t(() => $localize`:@@SI_MAP.FULLSCREEN_ENTER:Enter full screen`),\n 'FullscreenControl.Exit': t(() => $localize`:@@SI_MAP.FULLSCREEN_EXIT:Exit full screen`),\n 'GeolocateControl.FindMyLocation': t(\n () => $localize`:@@SI_MAP.FIND_MY_LOCATION:Find my location`\n ),\n 'GeolocateControl.LocationNotAvailable': t(\n () => $localize`:@@SI_MAP.LOCATION_NOT_AVAILABLE:Location not available`\n ),\n 'LogoControl.Title': t(() => $localize`:@@SI_MAP.LOGO_TITLE:MapLibre logo`),\n 'Map.Title': t(() => $localize`:@@SI_MAP.MAP_TITLE:Map`),\n 'Marker.Title': t(() => $localize`:@@SI_MAP.MARKER_TITLE:Map marker`),\n 'NavigationControl.ResetBearing': t(\n () => $localize`:@@SI_MAP.RESET_BEARING:Reset bearing to north`\n ),\n 'NavigationControl.ZoomIn': t(() => $localize`:@@SI_MAP.ZOOM_IN:Zoom in`),\n 'NavigationControl.ZoomOut': t(() => $localize`:@@SI_MAP.ZOOM_OUT:Zoom out`),\n 'Popup.Close': t(() => $localize`:@@SI_MAP.POPUP_CLOSE:Close popup`),\n 'ScaleControl.Feet': t(() => $localize`:@@SI_MAP.SCALE_FEET:ft`),\n 'ScaleControl.Meters': t(() => $localize`:@@SI_MAP.SCALE_METERS:m`),\n 'ScaleControl.Kilometers': t(() => $localize`:@@SI_MAP.SCALE_KILOMETERS:km`),\n 'ScaleControl.Miles': t(() => $localize`:@@SI_MAP.SCALE_MILES:mi`),\n 'ScaleControl.NauticalMiles': t(() => $localize`:@@SI_MAP.SCALE_NAUTICAL_MILES:nm`),\n 'GlobeControl.Enable': t(() => $localize`:@@SI_MAP.GLOBE_ENABLE:Enable globe`),\n 'GlobeControl.Disable': t(() => $localize`:@@SI_MAP.GLOBE_DISABLE:Disable globe`),\n 'TerrainControl.Enable': t(() => $localize`:@@SI_MAP.TERRAIN_ENABLE:Enable terrain`),\n 'TerrainControl.Disable': t(() => $localize`:@@SI_MAP.TERRAIN_DISABLE:Disable terrain`),\n 'CooperativeGesturesHandler.WindowsHelpText': t(\n () => $localize`:@@SI_MAP.WINDOWS_HELP:Use Ctrl + scroll to zoom the map`\n ),\n 'CooperativeGesturesHandler.MacHelpText': t(\n () => $localize`:@@SI_MAP.MAC_HELP:Use ⌘ + scroll to zoom the map`\n ),\n 'CooperativeGesturesHandler.MobileHelpText': t(\n () => $localize`:@@SI_MAP.MOBILE_HELP:Use two fingers to move the map`\n )\n});\n\n/**\n * Provides translated MapLibre locale strings as an Angular signal. The record uses MapLibre's\n * original locale keys, such as `AttributionControl.ToggleAttribution`, and updates when the\n * active Element language changes.\n *\n * @example\n * ```ts\n * @Component({ ... })\n * export class MapComponent {\n * protected readonly mapTranslations = injectSiMapTranslations();\n * }\n * ```\n *\n * ```html\n * <mgl-map [locale]=\"mapTranslations()\" />\n * ```\n *\n * @returns A signal containing a MapLibre locale record, for example\n * `{ 'AttributionControl.ToggleAttribution': 'Toggle attribution' }`.\n */\nexport const injectSiMapTranslations = (): Signal<Record<string, string>> => {\n const translateService = injectSiTranslateService();\n const initialValue = createDefaultLocale();\n return toSignal(\n translateService\n .translateAsync(Object.values(initialValue))\n .pipe(\n map(translations =>\n Object.fromEntries(\n Object.entries(initialValue).map(([key, value]) => [key, translations[value]])\n )\n )\n ),\n {\n initialValue\n }\n );\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, input } from '@angular/core';\n\nimport type { MarkerStatus } from './marker-types';\n\n@Component({\n selector: 'si-status-marker',\n templateUrl: './si-status-marker.component.html',\n styleUrl: './si-status-marker.component.scss',\n host: {\n class: 'si-status-marker',\n '[attr.data-status]': 'status() ?? \"default\"'\n }\n})\nexport class SiStatusMarkerComponent {\n /**\n * The status of the marker.\n * @defaultValue 'default'\n */\n readonly status = input<MarkerStatus>('default');\n}\n","<svg viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\">\n @switch (status()) {\n @case ('unknown') {\n <path\n class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Zm0,213.81c-48.59,0-87.99-39.4-87.99-88.01s39.4-87.99,87.99-87.99,88.01,39.41,88.01,87.99-39.39,88.01-88.01,88.01Z\"\n />\n <path\n class=\"middle\"\n d=\"m255.99,277.81c-48.59,0-87.99-39.4-87.99-88.01s39.4-87.99,87.99-87.99,88.01,39.41,88.01,87.99-39.39,88.01-88.01,88.01Z\"\n />\n <path\n class=\"symbol\"\n d=\"m256.04,207.64h0c-5.25,0-9.5-4.25-9.5-9.5v-9.95c0-3.59,1.8-7,4.87-8.86.59-.36,1.07-.56,1.58-.73,5.75-1.99,17.59-8.4,17.59-15.59,0-6.46-4.07-12.24-10.16-14.38-7.91-2.78-16.6,1.39-19.38,9.29-1.74,4.95-7.16,7.55-12.11,5.81-4.95-1.74-7.55-7.17-5.81-12.11,6.26-17.79,25.82-27.17,43.61-20.91,13.69,4.82,22.87,17.8,22.85,32.31,0,16.73-14.98,26.5-24.04,30.88v4.23c0,5.25-4.25,9.5-9.5,9.5h0Z\"\n />\n <path\n class=\"symbol\"\n d=\"m256.09,247h-.18c-7.02,0-12.72-5.73-12.72-12.81,0-7.08,5.69-12.81,12.72-12.81h.18c7.02,0,12.72,5.73,12.72,12.81,0,7.08-5.69,12.81-12.72,12.81Z\"\n />\n }\n @case ('success') {\n <path\n class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Zm0,213.81c-48.59,0-87.99-39.4-87.99-88.01s39.4-87.99,87.99-87.99,88.01,39.41,88.01,87.99-39.39,88.01-88.01,88.01Z\"\n />\n <path\n class=\"middle\"\n d=\"m255.99,277.81c-48.59,0-87.99-39.4-87.99-88.01s39.4-87.99,87.99-87.99,88.01,39.41,88.01,87.99-39.39,88.01-88.01,88.01Z\"\n />\n <path\n class=\"symbol\"\n d=\"m241.55,225.45c-2.47,0-4.93-.94-6.82-2.82l-24.09-24.09c-3.77-3.77-3.77-9.86,0-13.63,3.77-3.77,9.87-3.77,13.63,0l17.28,17.28,46.19-46.19c3.77-3.77,9.87-3.77,13.63,0,3.77,3.77,3.77,9.86,0,13.63l-53.01,53.01c-1.88,1.88-4.35,2.82-6.82,2.82h.02Z\"\n />\n }\n @case ('info') {\n <path\n class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Z\"\n />\n <rect\n class=\"middle\"\n x=\"177.74\"\n y=\"110.96\"\n width=\"156.52\"\n height=\"156.52\"\n rx=\"11.74\"\n ry=\"11.74\"\n />\n <path\n class=\"symbol\"\n d=\"m255.91,134.43h.18c7.02,0,12.72,5.73,12.72,12.81s-5.69,12.81-12.72,12.81h-.18c-7.02,0-12.72-5.73-12.72-12.81s5.69-12.81,12.72-12.81Z\"\n />\n <path\n class=\"symbol\"\n d=\"m256,179.94c5.31,0,9.61,4.3,9.61,9.61v44.84c0,5.31-4.3,9.61-9.61,9.61s-9.61-4.3-9.61-9.61v-44.84c0-5.31,4.3-9.61,9.61-9.61Z\"\n />\n }\n @case ('warning') {\n <path\n class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Z\"\n />\n <path\n class=\"middle\"\n d=\"m243.78,104.22l-76.92,134.35c-5.38,9.39,1.4,21.09,12.22,21.09h153.85c10.82,0,17.6-11.7,12.22-21.09l-76.92-134.35c-5.41-9.45-19.04-9.45-24.45,0Z\"\n />\n <path\n class=\"symbol\"\n d=\"m256.09,244.09h-.18c-7.02,0-12.72-5.73-12.72-12.81s5.69-12.81,12.72-12.81h.18c7.02,0,12.72,5.73,12.72,12.81s-5.69,12.81-12.72,12.81Z\"\n />\n <path\n class=\"symbol\"\n d=\"m256,198.59c-5.31,0-9.61-4.3-9.61-9.61v-44.84c0-5.31,4.3-9.61,9.61-9.61s9.61,4.3,9.61,9.61v44.84c0,5.31-4.3,9.61-9.61,9.61Z\"\n />\n }\n @case ('danger') {\n <path\n class=\"icon\"\n d=\"m256,64c-69.05,0-125.21,56.17-125.21,125.21,0,1.43.04,2.94.12,4.6.46,12.81,2.85,25.34,7.07,37.27,24.64,80.64,105.26,184.13,108.68,188.43,2.27,2.85,5.7,4.5,9.35,4.5s7.08-1.66,9.35-4.5c3.42-4.3,84.05-107.77,108.69-188.43,4.23-11.93,6.61-24.46,7.07-37.24.08-1.5.12-3.06.12-4.62,0-69.05-56.18-125.21-125.22-125.21h0Z\"\n />\n <path\n class=\"middle\"\n d=\"m255.99,277.81c-48.59,0-87.99-39.4-87.99-88.01s39.4-87.99,87.99-87.99,88.01,39.41,88.01,87.99-39.39,88.01-88.01,88.01Z\"\n />\n <path\n class=\"symbol\"\n d=\"m256.09,244.09h-.18c-7.02,0-12.72-5.73-12.72-12.81s5.69-12.81,12.72-12.81h.18c7.02,0,12.72,5.73,12.72,12.81s-5.69,12.81-12.72,12.81Z\"\n />\n <path\n class=\"symbol\"\n d=\"m256,198.59c-5.31,0-9.61-4.3-9.61-9.61v-44.84c0-5.31,4.3-9.61,9.61-9.61s9.61,4.3,9.61,9.61v44.84c0,5.31-4.3,9.61-9.61,9.61Z\"\n />\n }\n @case ('caution') {\n <path\n class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Z\"\n />\n <rect\n class=\"middle\"\n x=\"190.26\"\n y=\"123.48\"\n width=\"131.47\"\n height=\"131.47\"\n rx=\"11.74\"\n ry=\"11.74\"\n transform=\"translate(208.78 -125.6) rotate(45)\"\n />\n <path\n class=\"symbol\"\n d=\"m256.09,244h-.18c-7.02,0-12.72-5.73-12.72-12.81,0-7.08,5.69-12.81,12.72-12.81h.18c7.02,0,12.72,5.73,12.72,12.81,0,7.08-5.69,12.81-12.72,12.81Z\"\n />\n <path\n class=\"symbol\"\n d=\"m256,198.5c-5.31,0-9.61-4.3-9.61-9.61v-44.84c0-5.31,4.3-9.61,9.61-9.61,5.31,0,9.61,4.3,9.61,9.61v44.84c0,5.31-4.3,9.61-9.61,9.61Z\"\n />\n }\n @case ('critical') {\n <path\n class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Z\"\n />\n <path\n class=\"middle\"\n d=\"m285.78,105.57h-59.57c-3.11,0-6.1,1.24-8.3,3.44l-42.12,42.12c-2.2,2.2-3.44,5.19-3.44,8.3v59.57c0,3.11,1.24,6.1,3.44,8.3l42.12,42.12c2.2,2.2,5.19,3.44,8.3,3.44h59.57c3.11,0,6.1-1.24,8.3-3.44l42.12-42.12c2.2-2.2,3.44-5.19,3.44-8.3v-59.57c0-3.11-1.24-6.1-3.44-8.3l-42.12-42.12c-2.2-2.2-5.19-3.44-8.3-3.44Z\"\n />\n <path\n class=\"symbol\"\n d=\"m256.09,244h-.18c-7.02,0-12.72-5.73-12.72-12.81,0-7.08,5.69-12.81,12.72-12.81h.18c7.02,0,12.72,5.73,12.72,12.81,0,7.08-5.69,12.81-12.72,12.81Z\"\n />\n <path\n class=\"symbol\"\n d=\"m256,198.5c-5.31,0-9.61-4.3-9.61-9.61v-44.84c0-5.31,4.3-9.61,9.61-9.61s9.61,4.3,9.61,9.61v44.84c0,5.31-4.3,9.61-9.61,9.61Z\"\n />\n }\n @default {\n <path\n class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Z\"\n />\n <path\n class=\"middle\"\n d=\"m255.99,277.81c-48.59,0-87.99-39.4-87.99-88.01s39.4-87.99,87.99-87.99,88.01,39.41,88.01,87.99-39.39,88.01-88.01,88.01Z\"\n />\n }\n }\n</svg>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './cluster-types';\nexport * from './marker-types';\nexport * from './si-maplibre-style';\nexport * from './si-cluster-source.component';\nexport * from './si-maplibre-translate';\nexport * from './si-status-marker.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-maplibre.mjs","sources":["../../../../projects/element-ng/maplibre/si-maplibre-style.ts","../../../../projects/element-ng/maplibre/cluster.utils.ts","../../../../projects/element-ng/maplibre/si-cluster-marker.component.ts","../../../../projects/element-ng/maplibre/si-cluster-marker.component.html","../../../../projects/element-ng/maplibre/si-cluster-source.component.ts","../../../../projects/element-ng/maplibre/si-cluster-source.component.html","../../../../projects/element-ng/maplibre/si-maplibre-translate.ts","../../../../projects/element-ng/maplibre/si-status-marker.component.ts","../../../../projects/element-ng/maplibre/si-status-marker.component.html","../../../../projects/element-ng/maplibre/index.ts","../../../../projects/element-ng/maplibre/siemens-element-ng-maplibre.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { assertInInjectionContext, computed, Signal } from '@angular/core';\nimport { injectIsDarkTheme } from '@siemens/element-ng/theme';\nimport { siMapStyle } from '@siemens/map-styles/common';\nimport type { StyleSpecification } from 'maplibre-gl';\n\n/**\n * Creates a signal that returns a {@link StyleSpecification} for MapLibre GL based on the current\n * Element theme. The signal automatically updates when the theme switches between light and dark.\n *\n * @remarks\n * **Must be called in an Angular injection context** (e.g. inside a constructor, field initializer,\n * or a function called from one). Calling this function outside of an injection context will throw\n * an `assertInInjectionContext` error.\n *\n * @experimental\n *\n * @param key - The MapTiler API key used to fetch tiles, glyphs, and sprites\n * @returns A signal that provides the current {@link StyleSpecification} based on the active theme\n * @throws When called outside of an Angular injection context\n */\nexport const injectSiMapStyle = (key: string): Signal<StyleSpecification> => {\n assertInInjectionContext(injectSiMapStyle);\n const isDark = injectIsDarkTheme();\n\n return computed(() => {\n return siMapStyle(key, isDark()) as StyleSpecification;\n });\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport type { ClusterColors, ClusterPoint, ClusterSegment } from './cluster-types';\nimport type { MarkerStatus } from './marker-types';\n\ntype ClusterProperties = Record<string, ['+', unknown]>;\n\nconst MARKER_STATUS_COLORS = {\n info: 'var(--si-sys-color-background-information)',\n success: 'var(--si-sys-color-background-success)',\n warning: 'var(--si-sys-color-background-warning)',\n danger: 'var(--si-sys-color-background-danger)',\n caution: 'var(--si-sys-color-background-caution)',\n critical: 'var(--si-sys-color-background-critical)',\n default: 'var(--si-sys-color-background-accent)',\n unknown: 'var(--si-sys-color-background-neutral)'\n} satisfies Record<MarkerStatus, string>;\n\n// Keep the four-color status palette stable for numeric group IDs.\nconst GROUP_STATUS_COLORS = [\n MARKER_STATUS_COLORS.info,\n MARKER_STATUS_COLORS.success,\n MARKER_STATUS_COLORS.warning,\n MARKER_STATUS_COLORS.danger\n];\nconst ELEMENT_COLORS = [\n 'var(--si-sys-color-data-sequential-red-2)',\n 'var(--si-sys-color-data-sequential-orange-4)',\n 'var(--si-sys-color-background-caution)',\n 'var(--si-sys-color-data-sequential-green-2)',\n 'var(--si-sys-color-background-information)',\n 'var(--si-sys-color-data-categorial-1)',\n 'var(--si-sys-color-data-categorial-17)'\n];\nconst UNGROUPED_COLOR = 'var(--si-sys-color-background-accent)';\nconst SEPARATOR_COLOR = 'var(--si-sys-color-background-1)';\nconst CHART_FRAGMENTS = 20;\nconst SEPARATOR_DEGREES = 2;\n\ninterface ClusterBucket extends ClusterSegment {\n mapExpression: unknown;\n}\n\n/** @internal */\nexport interface ClusterConfiguration {\n clusterProperties: ClusterProperties;\n segments: readonly ClusterSegment[];\n}\n\n/** @internal */\nexport const createClusterConfiguration = (\n groupColors: ClusterColors,\n groupProperty: string,\n statusProperty?: string\n): ClusterConfiguration => {\n const group = ['to-number', ['get', groupProperty], 0];\n let buckets: ClusterBucket[];\n\n if (typeof groupColors === 'string') {\n const colors = groupColors === 'status' ? GROUP_STATUS_COLORS : ELEMENT_COLORS;\n buckets = colors.map((color, index) => ({\n color,\n mapExpression: [\n 'case',\n ['all', ['>', group, 0], ['==', ['%', ['-', group, 1], colors.length], index]],\n 1,\n 0\n ],\n property: `si_group_${index}`\n }));\n } else {\n buckets = Object.entries(groupColors)\n .map(([groupId, color]) => ({ color, groupId: Number(groupId) }))\n .filter(bucket => Number.isInteger(bucket.groupId) && bucket.groupId > 0)\n .sort((a, b) => a.groupId - b.groupId)\n .map(bucket => ({\n color: bucket.color,\n mapExpression: ['case', ['==', group, bucket.groupId], 1, 0],\n property: `si_group_${bucket.groupId}`\n }));\n }\n\n if (statusProperty !== undefined) {\n for (const [status, color] of Object.entries(MARKER_STATUS_COLORS)) {\n buckets.push({\n color,\n mapExpression: [\n 'case',\n ['all', ['==', group, 0], ['==', ['get', statusProperty], status]],\n 1,\n 0\n ],\n property: `si_status_${status}`\n });\n }\n }\n\n return {\n clusterProperties: Object.fromEntries(\n buckets.map(bucket => [bucket.property, ['+', bucket.mapExpression]])\n ),\n segments: buckets.map(({ color, property }) => ({ color, property }))\n };\n};\n\n/** @internal */\nexport const createClusterGradient = (\n feature: ClusterPoint,\n configuredSegments: readonly ClusterSegment[]\n): string => {\n const count = getNumberProperty(feature, 'point_count');\n const segments = configuredSegments\n .map(segment => ({\n color: segment.color,\n count: getNumberProperty(feature, segment.property)\n }))\n .filter(segment => segment.count > 0);\n const groupedCount = segments.reduce((sum, segment) => sum + segment.count, 0);\n if (groupedCount < count) {\n segments.push({ color: UNGROUPED_COLOR, count: count - groupedCount });\n }\n if (!segments.length) {\n return UNGROUPED_COLOR;\n }\n\n const fragmentSize = count / CHART_FRAGMENTS;\n const weightedSegments = segments.map(segment => ({\n ...segment,\n weight: Math.max(1, segment.count / fragmentSize)\n }));\n const totalWeight = weightedSegments.reduce((sum, segment) => sum + segment.weight, 0);\n const separator =\n weightedSegments.length > 1 ? Math.min(SEPARATOR_DEGREES, 180 / totalWeight) : 0;\n let position = 0;\n const stops: string[] = [];\n for (const segment of weightedSegments) {\n const start = position;\n position += (segment.weight / totalWeight) * 360;\n if (separator) {\n stops.push(\n `${SEPARATOR_COLOR} ${start}deg ${start + separator / 2}deg`,\n `${segment.color} ${start + separator / 2}deg ${position - separator / 2}deg`,\n `${SEPARATOR_COLOR} ${position - separator / 2}deg ${position}deg`\n );\n } else {\n stops.push(`${segment.color} ${start}deg ${position}deg`);\n }\n }\n return `conic-gradient(from -90deg, ${stops.join(', ')})`;\n};\n\nconst getNumberProperty = (feature: ClusterPoint, property: string): number => {\n const value = feature.properties?.[property];\n return typeof value === 'number' ? value : Number(value) || 0;\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, input, output } from '@angular/core';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { ClusterPoint, ClusterSegment } from './cluster-types';\nimport { createClusterGradient } from './cluster.utils';\n\n/**\n * Renders an interactive marker for a MapLibre cluster.\n *\n * The marker displays the total number of clustered points and visualizes their group distribution\n * as colored segments. It is created internally by `SiClusterSourceComponent`.\n *\n * @internal\n */\n@Component({\n selector: 'si-cluster-marker',\n imports: [SiTranslatePipe],\n templateUrl: './si-cluster-marker.component.html',\n styleUrl: './si-cluster-marker.component.scss'\n})\nexport class SiClusterMarkerComponent {\n /** Cluster feature represented by this marker. */\n readonly feature = input.required<ClusterPoint>();\n\n /** Colored segments that represent the grouped points in the cluster. */\n readonly segments = input.required<readonly ClusterSegment[]>();\n\n /** Emits when the marker is activated. */\n readonly markerClick = output<void>();\n\n protected readonly count = computed(() => Number(this.feature().properties?.point_count) || 0);\n protected readonly countLabel = computed(() => (this.count() > 99 ? '99+' : `${this.count()}`));\n protected readonly clusterLabel = t(\n () => $localize`:@@SI_MAP_CLUSTER.LABEL:Cluster with {{count}} locations`\n );\n\n protected readonly gradient = computed(() =>\n createClusterGradient(this.feature(), this.segments())\n );\n\n protected onClick(event: MouseEvent): void {\n event.stopPropagation();\n this.markerClick.emit();\n }\n}\n","<button\n type=\"button\"\n class=\"cluster-marker\"\n [attr.aria-label]=\"clusterLabel | translate: { count: count() }\"\n [style.--si-cluster-gradient]=\"gradient()\"\n (click)=\"onClick($event)\"\n>\n <span class=\"cluster-count\" aria-hidden=\"true\">{{ countLabel() }}</span>\n</button>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, input, output, signal } from '@angular/core';\nimport {\n ClusterPointDirective,\n GeoJSONSourceComponent,\n MarkersForClustersComponent\n} from '@maplibre/ngx-maplibre-gl';\n\nimport type { ClusterColors, ClusterPoint } from './cluster-types';\nimport { createClusterConfiguration } from './cluster.utils';\nimport { SiClusterMarkerComponent } from './si-cluster-marker.component';\n\nconst EMPTY_DATA: GeoJSON.FeatureCollection<GeoJSON.Point> = {\n type: 'FeatureCollection',\n features: []\n};\n\n/**\n * Adds a clustered GeoJSON source to a MapLibre map and renders interactive cluster markers.\n *\n * Cluster markers display the number of contained points and their distribution by group. Status\n * segments can be enabled for ungrouped points by providing `statusProperty`. Render individual,\n * unclustered points separately with `mgl-markers-for-clusters` using the same source ID.\n * Positive numeric groups always take precedence over status segments. Status segments apply only\n * when the normalized group value is zero; points without a matching group or status use the\n * ungrouped color.\n *\n * @example Basic usage\n * ```html\n * <mgl-map [mapStyle]=\"mapStyle()\">\n * <si-cluster-source\n * sourceId=\"locations\"\n * statusProperty=\"status\"\n * [data]=\"locations\"\n * (clusterClick)=\"onClusterClick($event)\"\n * />\n *\n * <mgl-markers-for-clusters source=\"locations\">\n * <ng-template let-feature mglPoint>\n * <si-status-marker\n * [status]=\"feature.properties?.status\"\n * />\n * </ng-template>\n * </mgl-markers-for-clusters>\n * </mgl-map>\n * ```\n *\n * @experimental\n */\n@Component({\n selector: 'si-cluster-source',\n imports: [\n ClusterPointDirective,\n GeoJSONSourceComponent,\n MarkersForClustersComponent,\n SiClusterMarkerComponent\n ],\n templateUrl: './si-cluster-source.component.html'\n})\nexport class SiClusterSourceComponent {\n /** ID used to register the generated GeoJSON source in MapLibre. */\n readonly sourceId = input.required<string>();\n /**\n * Point feature collection to cluster.\n * @defaultValue EMPTY_DATA\n */\n readonly data = input<GeoJSON.FeatureCollection<GeoJSON.Point>>(EMPTY_DATA);\n /**\n * Feature property containing the positive numeric group ID.\n * @defaultValue 'group'\n */\n readonly groupProperty = input('group');\n /**\n * Built-in palette or exact colors indexed by group ID. The built-in `'status'` palette contains\n * four colors for numeric groups and is separate from status-based bucketing.\n * @defaultValue 'status'\n */\n readonly groupColors = input<ClusterColors>('status');\n /**\n * Top-level feature property containing a {@link MarkerStatus} value. Status bucketing is\n * disabled by default and only applies when the normalized group value is zero. Missing or\n * unsupported status values, and groups that do not match a configured bucket, use the ungrouped\n * color. Built-in colors match `SiStatusMarkerComponent`, with `default` using accent and\n * `unknown` using neutral.\n * @defaultValue undefined\n * @see https://maplibre.org/maplibre-style-spec/sources/#clusterproperties\n */\n readonly statusProperty = input<string | undefined>();\n /**\n * Cluster radius in pixels.\n * @defaultValue 50\n */\n readonly clusterRadius = input(50);\n /**\n * Maximum zoom at which points are clustered.\n * @defaultValue undefined\n */\n readonly clusterMaxZoom = input<number | undefined>(undefined);\n /**\n * Minimum number of points required to form a cluster.\n * @defaultValue 2\n */\n readonly clusterMinPoints = input(2);\n\n /** Emits when a cluster marker is activated. */\n readonly clusterClick = output<ClusterPoint>();\n\n protected readonly clusterConfiguration = computed(() =>\n createClusterConfiguration(this.groupColors(), this.groupProperty(), this.statusProperty())\n );\n /** Stores selection for the projected cluster-popover integration. */\n protected readonly selectedCluster = signal<ClusterPoint | undefined>(undefined);\n\n protected async selectCluster(feature: ClusterPoint): Promise<void> {\n this.clusterClick.emit(feature);\n this.selectedCluster.set({ ...feature, geometry: feature.geometry });\n }\n}\n","<mgl-geojson-source\n #source\n [id]=\"sourceId()\"\n [data]=\"data()\"\n [cluster]=\"true\"\n [clusterRadius]=\"clusterRadius()\"\n [clusterMaxZoom]=\"clusterMaxZoom()\"\n [clusterMinPoints]=\"clusterMinPoints()\"\n [clusterProperties]=\"clusterConfiguration().clusterProperties\"\n/>\n\n<mgl-markers-for-clusters [source]=\"sourceId()\">\n <ng-template let-feature mglClusterPoint>\n <si-cluster-marker\n [feature]=\"feature\"\n [segments]=\"clusterConfiguration().segments\"\n (markerClick)=\"selectCluster(feature)\"\n />\n </ng-template>\n</mgl-markers-for-clusters>\n\n<ng-content select=\"si-cluster-popover,[siClusterPopoverOutlet]\" />\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Signal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { injectSiTranslateService, t } from '@siemens/element-translate-ng/translate';\nimport { map } from 'rxjs';\n\nconst createDefaultLocale = (): Record<string, string> => ({\n 'AttributionControl.ToggleAttribution': t(\n () => $localize`:@@SI_MAP.TOGGLE_ATTRIBUTION:Toggle attribution`\n ),\n 'AttributionControl.MapFeedback': t(() => $localize`:@@SI_MAP.MAP_FEEDBACK:Map feedback`),\n 'FullscreenControl.Enter': t(() => $localize`:@@SI_MAP.FULLSCREEN_ENTER:Enter full screen`),\n 'FullscreenControl.Exit': t(() => $localize`:@@SI_MAP.FULLSCREEN_EXIT:Exit full screen`),\n 'GeolocateControl.FindMyLocation': t(\n () => $localize`:@@SI_MAP.FIND_MY_LOCATION:Find my location`\n ),\n 'GeolocateControl.LocationNotAvailable': t(\n () => $localize`:@@SI_MAP.LOCATION_NOT_AVAILABLE:Location not available`\n ),\n 'LogoControl.Title': t(() => $localize`:@@SI_MAP.LOGO_TITLE:MapLibre logo`),\n 'Map.Title': t(() => $localize`:@@SI_MAP.MAP_TITLE:Map`),\n 'Marker.Title': t(() => $localize`:@@SI_MAP.MARKER_TITLE:Map marker`),\n 'NavigationControl.ResetBearing': t(\n () => $localize`:@@SI_MAP.RESET_BEARING:Reset bearing to north`\n ),\n 'NavigationControl.ZoomIn': t(() => $localize`:@@SI_MAP.ZOOM_IN:Zoom in`),\n 'NavigationControl.ZoomOut': t(() => $localize`:@@SI_MAP.ZOOM_OUT:Zoom out`),\n 'Popup.Close': t(() => $localize`:@@SI_MAP.POPUP_CLOSE:Close popup`),\n 'ScaleControl.Feet': t(() => $localize`:@@SI_MAP.SCALE_FEET:ft`),\n 'ScaleControl.Meters': t(() => $localize`:@@SI_MAP.SCALE_METERS:m`),\n 'ScaleControl.Kilometers': t(() => $localize`:@@SI_MAP.SCALE_KILOMETERS:km`),\n 'ScaleControl.Miles': t(() => $localize`:@@SI_MAP.SCALE_MILES:mi`),\n 'ScaleControl.NauticalMiles': t(() => $localize`:@@SI_MAP.SCALE_NAUTICAL_MILES:nm`),\n 'GlobeControl.Enable': t(() => $localize`:@@SI_MAP.GLOBE_ENABLE:Switch to globe view`),\n 'GlobeControl.Disable': t(() => $localize`:@@SI_MAP.GLOBE_DISABLE:Switch to flat view`),\n 'TerrainControl.Enable': t(() => $localize`:@@SI_MAP.TERRAIN_ENABLE:Enable terrain`),\n 'TerrainControl.Disable': t(() => $localize`:@@SI_MAP.TERRAIN_DISABLE:Disable terrain`),\n 'CooperativeGesturesHandler.WindowsHelpText': t(\n () => $localize`:@@SI_MAP.WINDOWS_HELP:Use Ctrl + scroll to zoom the map`\n ),\n 'CooperativeGesturesHandler.MacHelpText': t(\n () => $localize`:@@SI_MAP.MAC_HELP:Use ⌘ + scroll to zoom the map`\n ),\n 'CooperativeGesturesHandler.MobileHelpText': t(\n () => $localize`:@@SI_MAP.MOBILE_HELP:Use two fingers to move the map`\n )\n});\n\n/**\n * Provides translated MapLibre locale strings as an Angular signal. The record uses MapLibre's\n * original locale keys, such as `AttributionControl.ToggleAttribution`, and updates when the\n * active Element language changes.\n *\n * @example\n * ```ts\n * @Component({ ... })\n * export class MapComponent {\n * protected readonly mapTranslations = injectSiMapTranslations();\n * }\n * ```\n *\n * ```html\n * <mgl-map [locale]=\"mapTranslations()\" />\n * ```\n *\n * @returns A signal containing a MapLibre locale record, for example\n * `{ 'AttributionControl.ToggleAttribution': 'Toggle attribution' }`.\n */\nexport const injectSiMapTranslations = (): Signal<Record<string, string>> => {\n const translateService = injectSiTranslateService();\n const initialValue = createDefaultLocale();\n return toSignal(\n translateService\n .translateAsync(Object.values(initialValue))\n .pipe(\n map(translations =>\n Object.fromEntries(\n Object.entries(initialValue).map(([key, value]) => [key, translations[value]])\n )\n )\n ),\n {\n initialValue\n }\n );\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, input } from '@angular/core';\n\nimport type { MarkerStatus } from './marker-types';\n\n@Component({\n selector: 'si-status-marker',\n templateUrl: './si-status-marker.component.html',\n styleUrl: './si-status-marker.component.scss',\n host: {\n class: 'si-status-marker',\n '[attr.data-status]': 'status() ?? \"default\"'\n }\n})\nexport class SiStatusMarkerComponent {\n /**\n * The status of the marker.\n * @defaultValue 'default'\n */\n readonly status = input<MarkerStatus>('default');\n}\n","<svg viewBox=\"0 0 512 512\" aria-hidden=\"true\" focusable=\"false\">\n @switch (status()) {\n @case ('unknown') {\n <path\n class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Zm0,213.81c-48.59,0-87.99-39.4-87.99-88.01s39.4-87.99,87.99-87.99,88.01,39.41,88.01,87.99-39.39,88.01-88.01,88.01Z\"\n />\n <path\n class=\"middle\"\n d=\"m255.99,277.81c-48.59,0-87.99-39.4-87.99-88.01s39.4-87.99,87.99-87.99,88.01,39.41,88.01,87.99-39.39,88.01-88.01,88.01Z\"\n />\n <path\n class=\"symbol\"\n d=\"m256.04,207.64h0c-5.25,0-9.5-4.25-9.5-9.5v-9.95c0-3.59,1.8-7,4.87-8.86.59-.36,1.07-.56,1.58-.73,5.75-1.99,17.59-8.4,17.59-15.59,0-6.46-4.07-12.24-10.16-14.38-7.91-2.78-16.6,1.39-19.38,9.29-1.74,4.95-7.16,7.55-12.11,5.81-4.95-1.74-7.55-7.17-5.81-12.11,6.26-17.79,25.82-27.17,43.61-20.91,13.69,4.82,22.87,17.8,22.85,32.31,0,16.73-14.98,26.5-24.04,30.88v4.23c0,5.25-4.25,9.5-9.5,9.5h0Z\"\n />\n <path\n class=\"symbol\"\n d=\"m256.09,247h-.18c-7.02,0-12.72-5.73-12.72-12.81,0-7.08,5.69-12.81,12.72-12.81h.18c7.02,0,12.72,5.73,12.72,12.81,0,7.08-5.69,12.81-12.72,12.81Z\"\n />\n }\n @case ('success') {\n <path\n class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Zm0,213.81c-48.59,0-87.99-39.4-87.99-88.01s39.4-87.99,87.99-87.99,88.01,39.41,88.01,87.99-39.39,88.01-88.01,88.01Z\"\n />\n <path\n class=\"middle\"\n d=\"m255.99,277.81c-48.59,0-87.99-39.4-87.99-88.01s39.4-87.99,87.99-87.99,88.01,39.41,88.01,87.99-39.39,88.01-88.01,88.01Z\"\n />\n <path\n class=\"symbol\"\n d=\"m241.55,225.45c-2.47,0-4.93-.94-6.82-2.82l-24.09-24.09c-3.77-3.77-3.77-9.86,0-13.63,3.77-3.77,9.87-3.77,13.63,0l17.28,17.28,46.19-46.19c3.77-3.77,9.87-3.77,13.63,0,3.77,3.77,3.77,9.86,0,13.63l-53.01,53.01c-1.88,1.88-4.35,2.82-6.82,2.82h.02Z\"\n />\n }\n @case ('info') {\n <path\n class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Z\"\n />\n <rect\n class=\"middle\"\n x=\"177.74\"\n y=\"110.96\"\n width=\"156.52\"\n height=\"156.52\"\n rx=\"11.74\"\n ry=\"11.74\"\n />\n <path\n class=\"symbol\"\n d=\"m255.91,134.43h.18c7.02,0,12.72,5.73,12.72,12.81s-5.69,12.81-12.72,12.81h-.18c-7.02,0-12.72-5.73-12.72-12.81s5.69-12.81,12.72-12.81Z\"\n />\n <path\n class=\"symbol\"\n d=\"m256,179.94c5.31,0,9.61,4.3,9.61,9.61v44.84c0,5.31-4.3,9.61-9.61,9.61s-9.61-4.3-9.61-9.61v-44.84c0-5.31,4.3-9.61,9.61-9.61Z\"\n />\n }\n @case ('warning') {\n <path\n class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Z\"\n />\n <path\n class=\"middle\"\n d=\"m243.78,104.22l-76.92,134.35c-5.38,9.39,1.4,21.09,12.22,21.09h153.85c10.82,0,17.6-11.7,12.22-21.09l-76.92-134.35c-5.41-9.45-19.04-9.45-24.45,0Z\"\n />\n <path\n class=\"symbol\"\n d=\"m256.09,244.09h-.18c-7.02,0-12.72-5.73-12.72-12.81s5.69-12.81,12.72-12.81h.18c7.02,0,12.72,5.73,12.72,12.81s-5.69,12.81-12.72,12.81Z\"\n />\n <path\n class=\"symbol\"\n d=\"m256,198.59c-5.31,0-9.61-4.3-9.61-9.61v-44.84c0-5.31,4.3-9.61,9.61-9.61s9.61,4.3,9.61,9.61v44.84c0,5.31-4.3,9.61-9.61,9.61Z\"\n />\n }\n @case ('danger') {\n <path\n class=\"icon\"\n d=\"m256,64c-69.05,0-125.21,56.17-125.21,125.21,0,1.43.04,2.94.12,4.6.46,12.81,2.85,25.34,7.07,37.27,24.64,80.64,105.26,184.13,108.68,188.43,2.27,2.85,5.7,4.5,9.35,4.5s7.08-1.66,9.35-4.5c3.42-4.3,84.05-107.77,108.69-188.43,4.23-11.93,6.61-24.46,7.07-37.24.08-1.5.12-3.06.12-4.62,0-69.05-56.18-125.21-125.22-125.21h0Z\"\n />\n <path\n class=\"middle\"\n d=\"m255.99,277.81c-48.59,0-87.99-39.4-87.99-88.01s39.4-87.99,87.99-87.99,88.01,39.41,88.01,87.99-39.39,88.01-88.01,88.01Z\"\n />\n <path\n class=\"symbol\"\n d=\"m256.09,244.09h-.18c-7.02,0-12.72-5.73-12.72-12.81s5.69-12.81,12.72-12.81h.18c7.02,0,12.72,5.73,12.72,12.81s-5.69,12.81-12.72,12.81Z\"\n />\n <path\n class=\"symbol\"\n d=\"m256,198.59c-5.31,0-9.61-4.3-9.61-9.61v-44.84c0-5.31,4.3-9.61,9.61-9.61s9.61,4.3,9.61,9.61v44.84c0,5.31-4.3,9.61-9.61,9.61Z\"\n />\n }\n @case ('caution') {\n <path\n class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Z\"\n />\n <rect\n class=\"middle\"\n x=\"190.26\"\n y=\"123.48\"\n width=\"131.47\"\n height=\"131.47\"\n rx=\"11.74\"\n ry=\"11.74\"\n transform=\"translate(208.78 -125.6) rotate(45)\"\n />\n <path\n class=\"symbol\"\n d=\"m256.09,244h-.18c-7.02,0-12.72-5.73-12.72-12.81,0-7.08,5.69-12.81,12.72-12.81h.18c7.02,0,12.72,5.73,12.72,12.81,0,7.08-5.69,12.81-12.72,12.81Z\"\n />\n <path\n class=\"symbol\"\n d=\"m256,198.5c-5.31,0-9.61-4.3-9.61-9.61v-44.84c0-5.31,4.3-9.61,9.61-9.61,5.31,0,9.61,4.3,9.61,9.61v44.84c0,5.31-4.3,9.61-9.61,9.61Z\"\n />\n }\n @case ('critical') {\n <path\n class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Z\"\n />\n <path\n class=\"middle\"\n d=\"m285.78,105.57h-59.57c-3.11,0-6.1,1.24-8.3,3.44l-42.12,42.12c-2.2,2.2-3.44,5.19-3.44,8.3v59.57c0,3.11,1.24,6.1,3.44,8.3l42.12,42.12c2.2,2.2,5.19,3.44,8.3,3.44h59.57c3.11,0,6.1-1.24,8.3-3.44l42.12-42.12c2.2-2.2,3.44-5.19,3.44-8.3v-59.57c0-3.11-1.24-6.1-3.44-8.3l-42.12-42.12c-2.2-2.2-5.19-3.44-8.3-3.44Z\"\n />\n <path\n class=\"symbol\"\n d=\"m256.09,244h-.18c-7.02,0-12.72-5.73-12.72-12.81,0-7.08,5.69-12.81,12.72-12.81h.18c7.02,0,12.72,5.73,12.72,12.81,0,7.08-5.69,12.81-12.72,12.81Z\"\n />\n <path\n class=\"symbol\"\n d=\"m256,198.5c-5.31,0-9.61-4.3-9.61-9.61v-44.84c0-5.31,4.3-9.61,9.61-9.61s9.61,4.3,9.61,9.61v44.84c0,5.31-4.3,9.61-9.61,9.61Z\"\n />\n }\n @default {\n <path\n class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Z\"\n />\n <path\n class=\"middle\"\n d=\"m255.99,277.81c-48.59,0-87.99-39.4-87.99-88.01s39.4-87.99,87.99-87.99,88.01,39.41,88.01,87.99-39.39,88.01-88.01,88.01Z\"\n />\n }\n }\n</svg>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './cluster-types';\nexport * from './marker-types';\nexport * from './si-maplibre-style';\nexport * from './si-cluster-source.component';\nexport * from './si-maplibre-translate';\nexport * from './si-status-marker.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-element-ng-markdown-directives-tabs.mjs","sources":["../../../../projects/element-ng/markdown/directives/tabs/si-markdown-tabset.component.ts","../../../../projects/element-ng/markdown/directives/tabs/si-markdown-tabset.register.ts","../../../../projects/element-ng/markdown/directives/tabs/index.ts","../../../../projects/element-ng/markdown/directives/tabs/siemens-element-ng-markdown-directives-tabs.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, input } from '@angular/core';\nimport {\n type DirectiveNode,\n type SiMarkdownExtensionComponent,\n SiMarkdownFragmentComponent\n} from '@siemens/element-ng/markdown';\nimport { SiTabComponent, SiTabsetComponent } from '@siemens/element-ng/tabs';\nimport { type Node, type Parent } from 'mdast';\n\n@Component({\n selector: 'si-markdown-tabset',\n imports: [SiMarkdownFragmentComponent, SiTabComponent, SiTabsetComponent],\n template: `\n <si-tabset class=\"border rounded\" [contentOverflowAuto]=\"height() !== 'auto'\">\n @for (tab of tabs(); track $index) {\n <si-tab [heading]=\"tab.attributes.heading ?? ''\" [active]=\"$first\">\n <div class=\"p-6\" [siMarkdownFragment]=\"tab\"></div>\n </si-tab>\n }\n </si-tabset>\n `,\n styles: `\n si-tabset {\n block-size: var(--si-md-tabset-height, 250px);\n }\n `,\n host: {\n // note: not setting style directly on si-tabset for CSP reasons\n '[style.--si-md-tabset-height]': 'height()'\n }\n})\nexport class SiMarkdownTabsetComponent implements SiMarkdownExtensionComponent {\n readonly node = input.required<Node>();\n readonly parent = input.required<Parent>();\n readonly options = input<unknown>();\n\n readonly height = computed(() => {\n const directive = this.node() as DirectiveNode;\n return directive.attributes.height;\n });\n\n protected readonly tabs = computed(() => {\n const directive = this.node() as DirectiveNode;\n const children = directive.children as unknown as DirectiveNode[];\n return children.filter(child => child.type === 'containerDirective' && child.name === 'tab');\n });\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { type TypeHandler } from '@siemens/element-ng/markdown';\n\nimport { SiMarkdownTabsetComponent } from './si-markdown-tabset.component';\n\nexport const siMarkdownTabsetDirective = (): TypeHandler => ({\n type: 'tabset',\n component: SiMarkdownTabsetComponent\n});\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-markdown-tabset.register';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAAA;;;AAGG;MAgCU,yBAAyB,CAAA;IAC3B,IAAI,GAAG,KAAK,CAAC,QAAQ;6EAAQ;IAC7B,MAAM,GAAG,KAAK,CAAC,QAAQ;+EAAU;AACjC,IAAA,OAAO,GAAG,KAAK;2FAAW;AAE1B,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAK;AAC9B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAmB;AAC9C,QAAA,OAAO,SAAS,CAAC,UAAU,CAAC,MAAM;IACpC,CAAC;+EAAC;AAEiB,IAAA,IAAI,GAAG,QAAQ,CAAC,MAAK;AACtC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAmB;AAC9C,QAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAsC;QACjE,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC;IAC9F,CAAC;6EAAC;uGAdS,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,6BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAnB1B;;;;;;;;AAQT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EATS,2BAA2B,EAAA,QAAA,EAAA,4CAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,cAAc,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAoB7D,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAtBrC,SAAS;+BACE,oBAAoB,EAAA,OAAA,EACrB,CAAC,2BAA2B,EAAE,cAAc,EAAE,iBAAiB,CAAC,EAAA,QAAA,EAC/D;;;;;;;;GAQT,EAAA,IAAA,EAMK;;AAEJ,wBAAA,+BAA+B,EAAE;AAClC,qBAAA,EAAA,MAAA,EAAA,CAAA,2DAAA,CAAA,EAAA;;;ACzBI,MAAM,yBAAyB,GAAG,OAAoB;AAC3D,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,SAAS,EAAE;AACZ,CAAA;;ACXD;;;AAGG;;ACHH;;AAEG
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-markdown-directives-tabs.mjs","sources":["../../../../projects/element-ng/markdown/directives/tabs/si-markdown-tabset.component.ts","../../../../projects/element-ng/markdown/directives/tabs/si-markdown-tabset.register.ts","../../../../projects/element-ng/markdown/directives/tabs/index.ts","../../../../projects/element-ng/markdown/directives/tabs/siemens-element-ng-markdown-directives-tabs.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, input } from '@angular/core';\nimport {\n type DirectiveNode,\n type SiMarkdownExtensionComponent,\n SiMarkdownFragmentComponent\n} from '@siemens/element-ng/markdown';\nimport { SiTabComponent, SiTabsetComponent } from '@siemens/element-ng/tabs';\nimport { type Node, type Parent } from 'mdast';\n\n@Component({\n selector: 'si-markdown-tabset',\n imports: [SiMarkdownFragmentComponent, SiTabComponent, SiTabsetComponent],\n template: `\n <si-tabset class=\"border rounded\" [contentOverflowAuto]=\"height() !== 'auto'\">\n @for (tab of tabs(); track $index) {\n <si-tab [heading]=\"tab.attributes.heading ?? ''\" [active]=\"$first\">\n <div class=\"p-6\" [siMarkdownFragment]=\"tab\"></div>\n </si-tab>\n }\n </si-tabset>\n `,\n styles: `\n si-tabset {\n block-size: var(--si-md-tabset-height, 250px);\n }\n `,\n host: {\n // note: not setting style directly on si-tabset for CSP reasons\n '[style.--si-md-tabset-height]': 'height()'\n }\n})\nexport class SiMarkdownTabsetComponent implements SiMarkdownExtensionComponent {\n readonly node = input.required<Node>();\n readonly parent = input.required<Parent>();\n readonly options = input<unknown>();\n\n readonly height = computed(() => {\n const directive = this.node() as DirectiveNode;\n return directive.attributes.height;\n });\n\n protected readonly tabs = computed(() => {\n const directive = this.node() as DirectiveNode;\n const children = directive.children as unknown as DirectiveNode[];\n return children.filter(child => child.type === 'containerDirective' && child.name === 'tab');\n });\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { type TypeHandler } from '@siemens/element-ng/markdown';\n\nimport { SiMarkdownTabsetComponent } from './si-markdown-tabset.component';\n\nexport const siMarkdownTabsetDirective = (): TypeHandler => ({\n type: 'tabset',\n component: SiMarkdownTabsetComponent\n});\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-markdown-tabset.register';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-element-ng-markdown-extensions-citations.mjs","sources":["../../../../projects/element-ng/markdown/extensions/citations/si-markdown-citations.ts","../../../../projects/element-ng/markdown/extensions/citations/si-markdown-citations.component.ts","../../../../projects/element-ng/markdown/extensions/citations/si-markdown-citations.extension.ts","../../../../projects/element-ng/markdown/extensions/citations/index.ts","../../../../projects/element-ng/markdown/extensions/citations/siemens-element-ng-markdown-extensions-citations.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n ExtendedRootContent,\n type Citation,\n type Citations,\n type SiMarkdownCitation\n} from '@siemens/element-ng/markdown';\n/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { type Node, type Parent, type Root, type Text } from 'mdast';\nimport { type Transformer } from 'unified';\n\nconst positionKey = (start: number, end: number): string => `${start}:${end}`;\n\nconst createCitation = (\n citationIndex: number,\n text?: string,\n position?: Citation['position']\n): Citation => ({\n type: 'citation',\n citationIndex,\n ...(text ? { text } : {}),\n ...(position ? { position } : {})\n});\n\nconst getText = (node: Node): string => {\n if ('value' in node && typeof node.value === 'string') {\n return node.value;\n }\n if ('children' in node) {\n return (node as Parent).children.map(child => getText(child)).join('');\n }\n return '';\n};\n\n/** Converts configured citation references in a markdown AST into citation nodes. */\nexport const siMarkdownCitationsTransformer = (\n citations?: readonly SiMarkdownCitation[]\n): Transformer<Root> => {\n if (!citations?.length) {\n return tree => tree;\n }\n\n const citationsByIdentifier = new Map<string, number>();\n const citationsByPosition = new Map<string, number>();\n const citationsByStartIndex = new Map<number, number>();\n\n for (let index = 0; index < citations.length; index++) {\n const citation = citations[index];\n\n if (citation.identifier) {\n citationsByIdentifier.set(citation.identifier, index);\n } else if (citation.position) {\n const startIndex = citation.position?.startIndex;\n const endIndex = citation.position?.endIndex;\n citationsByPosition.set(positionKey(startIndex, endIndex), index);\n citationsByStartIndex.set(startIndex, index);\n }\n }\n\n if (!citationsByIdentifier.size && !citationsByPosition.size) {\n return tree => tree;\n }\n\n const replaceTextCitations = (text: Text): (Text | Citation)[] | undefined => {\n const startOffset = text.position?.start.offset;\n if (startOffset === undefined) {\n return undefined;\n }\n\n const nodes: (Text | Citation)[] = [];\n const identifierPattern = /\\[([^\\]\\r\\n]+)\\]/y;\n let cursor = 0;\n let textStart = 0;\n let hasCitation = false;\n\n const addText = (end: number): void => {\n if (end > textStart) {\n nodes.push({ type: 'text', value: text.value.slice(textStart, end) });\n }\n };\n\n while (cursor < text.value.length) {\n const positionCitation = citationsByStartIndex.get(startOffset + cursor);\n identifierPattern.lastIndex = cursor;\n const identifierMatch = identifierPattern.exec(text.value);\n const identifierCitation = identifierMatch\n ? citationsByIdentifier.get(identifierMatch[1])\n : undefined;\n\n const positionCitationEnd =\n positionCitation === undefined\n ? undefined\n : citations[positionCitation]?.position?.endIndex;\n\n if (\n positionCitation !== undefined &&\n positionCitationEnd !== undefined &&\n positionCitationEnd <= startOffset + text.value.length\n ) {\n addText(cursor);\n const citationText = text.value.slice(cursor, positionCitationEnd - startOffset);\n nodes.push(createCitation(positionCitation, citationText));\n cursor = positionCitationEnd - startOffset;\n textStart = cursor;\n hasCitation = true;\n } else if (identifierCitation !== undefined && identifierMatch) {\n addText(cursor);\n nodes.push(createCitation(identifierCitation));\n cursor += identifierMatch[0].length;\n textStart = cursor;\n hasCitation = true;\n } else {\n cursor++;\n }\n }\n\n addText(text.value.length);\n return hasCitation ? nodes : undefined;\n };\n\n const replaceCitations = (parent: Parent): void => {\n const children = parent.children as (ExtendedRootContent | Citation)[];\n\n for (let index = 0; index < children.length; index++) {\n const child = children[index];\n const startOffset = child.position?.start.offset;\n const endOffset = child.position?.end.offset;\n const citationIndex =\n startOffset !== undefined && endOffset !== undefined\n ? citationsByPosition.get(positionKey(startOffset, endOffset))\n : undefined;\n\n if (citationIndex !== undefined) {\n children.splice(index, 1, createCitation(citationIndex, getText(child), child.position));\n continue;\n }\n\n if (child.type === 'text') {\n const replacement = replaceTextCitations(child);\n if (replacement) {\n children.splice(index, 1, ...replacement);\n index += replacement.length - 1;\n }\n continue;\n }\n\n if (child.type === 'textDirective' && child.name === 'cite') {\n const directiveCitationIndex = citationsByIdentifier.get(getText(child));\n if (directiveCitationIndex !== undefined) {\n children.splice(index, 1, createCitation(directiveCitationIndex));\n continue;\n }\n }\n\n if ('children' in child) {\n replaceCitations(child as Parent);\n }\n\n // special case: link with citation as link text: replace link with citations\n if (child.type === 'link') {\n const linkChildren = (child as Parent).children as ExtendedRootContent[];\n if (linkChildren.length === 1 && linkChildren[0].type === 'citations') {\n children.splice(index, 1, linkChildren[0]);\n }\n }\n }\n\n for (let index = 0; index < children.length; index++) {\n if (children[index].type !== 'citation') {\n continue;\n }\n\n const citationList: Citation[] = [];\n while (children[index]?.type === 'citation') {\n citationList.push(children[index] as Citation);\n children.splice(index, 1);\n }\n\n const container: Citations = { type: 'citations', children: citationList };\n children.splice(index, 0, container);\n }\n };\n\n return tree => replaceCitations(tree);\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, inject, input } from '@angular/core';\nimport {\n SI_MARKDOWN_CONTROL,\n type Citations,\n type SiMarkdownCitation,\n type SiMarkdownExtensionComponent\n} from '@siemens/element-ng/markdown';\nimport { SiSourceChipComponent } from '@siemens/element-ng/source-chip';\nimport { type Node, type Parent } from 'mdast';\n\n@Component({\n selector: 'si-markdown-citations',\n imports: [SiSourceChipComponent],\n template: `\n <si-source-chip compact [sources]=\"sources()\" (sourceClicked)=\"citationClicked($event)\" />\n `\n})\nexport class SiMarkdownCitationsComponent implements SiMarkdownExtensionComponent {\n protected readonly control = inject(SI_MARKDOWN_CONTROL);\n\n readonly node = input.required<Node>();\n readonly parent = input.required<Parent>();\n\n readonly options = input<any>();\n\n protected readonly sources = computed(() => {\n const citationNode = this.node() as Citations;\n const ret: SiMarkdownCitation[] = [];\n const citations = this.control.meta().citations ?? [];\n for (const cit of citationNode.children) {\n if (cit.citationIndex < citations.length) {\n ret.push(citations[cit.citationIndex]);\n }\n }\n return ret;\n });\n\n protected citationClicked(cit: SiMarkdownCitation): void {\n this.control.extensionEvent.emit({ name: 'citationClicked', data: cit });\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { SiMarkdownMetadata, type SiMarkdownExtension } from '@siemens/element-ng/markdown';\n\nimport { siMarkdownCitationsTransformer } from './si-markdown-citations';\nimport { SiMarkdownCitationsComponent } from './si-markdown-citations.component';\n\n/** Extension to parse and render source citations. */\nexport const siMarkdownCitations = (): SiMarkdownExtension => {\n return {\n plugins: [\n {\n plugin: siMarkdownCitationsTransformer,\n options: (meta: SiMarkdownMetadata) => meta.citations\n }\n ],\n types: [{ type: 'citations', component: SiMarkdownCitationsComponent }]\n };\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-markdown-citations.extension';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-markdown-extensions-citations.mjs","sources":["../../../../projects/element-ng/markdown/extensions/citations/si-markdown-citations.ts","../../../../projects/element-ng/markdown/extensions/citations/si-markdown-citations.component.ts","../../../../projects/element-ng/markdown/extensions/citations/si-markdown-citations.extension.ts","../../../../projects/element-ng/markdown/extensions/citations/index.ts","../../../../projects/element-ng/markdown/extensions/citations/siemens-element-ng-markdown-extensions-citations.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n ExtendedRootContent,\n type Citation,\n type Citations,\n type SiMarkdownCitation\n} from '@siemens/element-ng/markdown';\n/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { type Node, type Parent, type Root, type Text } from 'mdast';\nimport { type Transformer } from 'unified';\n\nconst positionKey = (start: number, end: number): string => `${start}:${end}`;\n\nconst createCitation = (\n citationIndex: number,\n text?: string,\n position?: Citation['position']\n): Citation => ({\n type: 'citation',\n citationIndex,\n ...(text ? { text } : {}),\n ...(position ? { position } : {})\n});\n\nconst getText = (node: Node): string => {\n if ('value' in node && typeof node.value === 'string') {\n return node.value;\n }\n if ('children' in node) {\n return (node as Parent).children.map(child => getText(child)).join('');\n }\n return '';\n};\n\n/** Converts configured citation references in a markdown AST into citation nodes. */\nexport const siMarkdownCitationsTransformer = (\n citations?: readonly SiMarkdownCitation[]\n): Transformer<Root> => {\n if (!citations?.length) {\n return tree => tree;\n }\n\n const citationsByIdentifier = new Map<string, number>();\n const citationsByPosition = new Map<string, number>();\n const citationsByStartIndex = new Map<number, number>();\n\n for (let index = 0; index < citations.length; index++) {\n const citation = citations[index];\n\n if (citation.identifier) {\n citationsByIdentifier.set(citation.identifier, index);\n } else if (citation.position) {\n const startIndex = citation.position?.startIndex;\n const endIndex = citation.position?.endIndex;\n citationsByPosition.set(positionKey(startIndex, endIndex), index);\n citationsByStartIndex.set(startIndex, index);\n }\n }\n\n if (!citationsByIdentifier.size && !citationsByPosition.size) {\n return tree => tree;\n }\n\n const replaceTextCitations = (text: Text): (Text | Citation)[] | undefined => {\n const startOffset = text.position?.start.offset;\n if (startOffset === undefined) {\n return undefined;\n }\n\n const nodes: (Text | Citation)[] = [];\n const identifierPattern = /\\[([^\\]\\r\\n]+)\\]/y;\n let cursor = 0;\n let textStart = 0;\n let hasCitation = false;\n\n const addText = (end: number): void => {\n if (end > textStart) {\n nodes.push({ type: 'text', value: text.value.slice(textStart, end) });\n }\n };\n\n while (cursor < text.value.length) {\n const positionCitation = citationsByStartIndex.get(startOffset + cursor);\n identifierPattern.lastIndex = cursor;\n const identifierMatch = identifierPattern.exec(text.value);\n const identifierCitation = identifierMatch\n ? citationsByIdentifier.get(identifierMatch[1])\n : undefined;\n\n const positionCitationEnd =\n positionCitation === undefined\n ? undefined\n : citations[positionCitation]?.position?.endIndex;\n\n if (\n positionCitation !== undefined &&\n positionCitationEnd !== undefined &&\n positionCitationEnd <= startOffset + text.value.length\n ) {\n addText(cursor);\n const citationText = text.value.slice(cursor, positionCitationEnd - startOffset);\n nodes.push(createCitation(positionCitation, citationText));\n cursor = positionCitationEnd - startOffset;\n textStart = cursor;\n hasCitation = true;\n } else if (identifierCitation !== undefined && identifierMatch) {\n addText(cursor);\n nodes.push(createCitation(identifierCitation));\n cursor += identifierMatch[0].length;\n textStart = cursor;\n hasCitation = true;\n } else {\n cursor++;\n }\n }\n\n addText(text.value.length);\n return hasCitation ? nodes : undefined;\n };\n\n const replaceCitations = (parent: Parent): void => {\n const children = parent.children as (ExtendedRootContent | Citation)[];\n\n for (let index = 0; index < children.length; index++) {\n const child = children[index];\n const startOffset = child.position?.start.offset;\n const endOffset = child.position?.end.offset;\n const citationIndex =\n startOffset !== undefined && endOffset !== undefined\n ? citationsByPosition.get(positionKey(startOffset, endOffset))\n : undefined;\n\n if (citationIndex !== undefined) {\n children.splice(index, 1, createCitation(citationIndex, getText(child), child.position));\n continue;\n }\n\n if (child.type === 'text') {\n const replacement = replaceTextCitations(child);\n if (replacement) {\n children.splice(index, 1, ...replacement);\n index += replacement.length - 1;\n }\n continue;\n }\n\n if (child.type === 'textDirective' && child.name === 'cite') {\n const directiveCitationIndex = citationsByIdentifier.get(getText(child));\n if (directiveCitationIndex !== undefined) {\n children.splice(index, 1, createCitation(directiveCitationIndex));\n continue;\n }\n }\n\n if ('children' in child) {\n replaceCitations(child as Parent);\n }\n\n // special case: link with citation as link text: replace link with citations\n if (child.type === 'link') {\n const linkChildren = (child as Parent).children as ExtendedRootContent[];\n if (linkChildren.length === 1 && linkChildren[0].type === 'citations') {\n children.splice(index, 1, linkChildren[0]);\n }\n }\n }\n\n for (let index = 0; index < children.length; index++) {\n if (children[index].type !== 'citation') {\n continue;\n }\n\n const citationList: Citation[] = [];\n while (children[index]?.type === 'citation') {\n citationList.push(children[index] as Citation);\n children.splice(index, 1);\n }\n\n const container: Citations = { type: 'citations', children: citationList };\n children.splice(index, 0, container);\n }\n };\n\n return tree => replaceCitations(tree);\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, inject, input } from '@angular/core';\nimport {\n SI_MARKDOWN_CONTROL,\n type Citations,\n type SiMarkdownCitation,\n type SiMarkdownExtensionComponent\n} from '@siemens/element-ng/markdown';\nimport { SiSourceChipComponent } from '@siemens/element-ng/source-chip';\nimport { type Node, type Parent } from 'mdast';\n\n@Component({\n selector: 'si-markdown-citations',\n imports: [SiSourceChipComponent],\n template: `\n <si-source-chip compact [sources]=\"sources()\" (sourceClicked)=\"citationClicked($event)\" />\n `\n})\nexport class SiMarkdownCitationsComponent implements SiMarkdownExtensionComponent {\n protected readonly control = inject(SI_MARKDOWN_CONTROL);\n\n readonly node = input.required<Node>();\n readonly parent = input.required<Parent>();\n\n readonly options = input<any>();\n\n protected readonly sources = computed(() => {\n const citationNode = this.node() as Citations;\n const ret: SiMarkdownCitation[] = [];\n const citations = this.control.meta().citations ?? [];\n for (const cit of citationNode.children) {\n if (cit.citationIndex < citations.length) {\n ret.push(citations[cit.citationIndex]);\n }\n }\n return ret;\n });\n\n protected citationClicked(cit: SiMarkdownCitation): void {\n this.control.extensionEvent.emit({ name: 'citationClicked', data: cit });\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { SiMarkdownMetadata, type SiMarkdownExtension } from '@siemens/element-ng/markdown';\n\nimport { siMarkdownCitationsTransformer } from './si-markdown-citations';\nimport { SiMarkdownCitationsComponent } from './si-markdown-citations.component';\n\n/** Extension to parse and render source citations. */\nexport const siMarkdownCitations = (): SiMarkdownExtension => {\n return {\n plugins: [\n {\n plugin: siMarkdownCitationsTransformer,\n options: (meta: SiMarkdownMetadata) => meta.citations\n }\n ],\n types: [{ type: 'citations', component: SiMarkdownCitationsComponent }]\n };\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-markdown-citations.extension';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|