@hestia-earth/ui-components 0.43.0 → 0.43.2

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.
@@ -1,9 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, InjectionToken, inject, ElementRef, PLATFORM_ID, output, Directive, DestroyRef, input, computed, HostBinding, Component as Component$1, ChangeDetectionStrategy, Pipe, viewChild, HostListener, model, ViewEncapsulation, signal, effect, contentChild, untracked, viewChildren, forwardRef, LOCALE_ID } from '@angular/core';
2
+ import { Injectable, InjectionToken, inject, ElementRef, PLATFORM_ID, output, Directive, DestroyRef, input, computed, ChangeDetectionStrategy, Component as Component$1, Pipe, viewChild, HostListener, model, ViewEncapsulation, signal, effect, HostBinding, contentChild, untracked, viewChildren, forwardRef, LOCALE_ID } from '@angular/core';
3
3
  import { toObservable, toSignal, outputFromObservable, takeUntilDestroyed, rxResource } from '@angular/core/rxjs-interop';
4
4
  import * as i1 from '@angular/forms';
5
5
  import { FormsModule, NG_VALUE_ACCESSOR, UntypedFormBuilder, Validators, ReactiveFormsModule, FormControl } from '@angular/forms';
6
- import { isPlatformBrowser, PlatformLocation, NgClass, DecimalPipe, NgTemplateOutlet, DOCUMENT, KeyValuePipe, NgStyle, UpperCasePipe, JsonPipe, DatePipe, AsyncPipe, formatDate as formatDate$1 } from '@angular/common';
6
+ import { isPlatformBrowser, NgClass, DecimalPipe, NgTemplateOutlet, DOCUMENT, KeyValuePipe, NgStyle, UpperCasePipe, JsonPipe, DatePipe, AsyncPipe, formatDate as formatDate$1 } from '@angular/common';
7
7
  import * as i1$1 from '@ng-bootstrap/ng-bootstrap';
8
8
  import { NgbTooltip, NgbDropdown, NgbDropdownMenu, NgbDropdownToggle, NgbActiveModal, NgbHighlight, NgbModal, NgbDropdownItem, NgbTypeahead, NgbPopover, NgbTooltipModule, NgbDropdownModule, NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap';
9
9
  import { ReplaySubject, of, mergeMap, shareReplay, delay, map, catchError, distinctUntilChanged, timer, take, first, EMPTY, Subject, combineLatest, filter, fromEvent, startWith, merge, skip, switchMap, throttleTime, animationFrameScheduler, debounceTime, takeUntil, tap, skipUntil, zip, lastValueFrom, mergeAll, reduce, forkJoin, throwError, from, firstValueFrom, toArray, distinct, groupBy } from 'rxjs';
@@ -22,6 +22,8 @@ import inHestiaDefaultSystemBoundary from '@hestia-earth/glossary/resources/inHe
22
22
  import isEqual$1 from 'lodash.isequal';
23
23
  import { DataState, filenameWithoutExt, nodeTypeToParam, allowedDataStates, SupportedExtensions, fileToExt, fileExt, maxFileSizeMb } from '@hestia-earth/api';
24
24
  import { models as models$1, loadConfig, getFormulas, renderFormula, getMaxStage } from '@hestia-earth/engine-models';
25
+ import { HESvgIconComponent, defaultSvgIconSize } from '@hestia-earth/ui-components/svg-icons';
26
+ export * from '@hestia-earth/ui-components/svg-icons';
25
27
  import { DeltaDisplayType, delta, customDeltaFuncs } from '@hestia-earth/utils/delta';
26
28
  import { LocalStorageService } from 'ngx-webstorage';
27
29
  import { trigger, state, transition, style, animate } from '@angular/animations';
@@ -31,7 +33,6 @@ import { CdkScrollable } from '@angular/cdk/scrolling';
31
33
  import { moveItemInArray, CdkDropList, CdkDrag, CdkDragPreview } from '@angular/cdk/drag-drop';
32
34
  import { GoogleMap, MapMarker, MapPolygon } from '@angular/google-maps';
33
35
  import { Meta, DomSanitizer } from '@angular/platform-browser';
34
- import katex from 'katex';
35
36
  import removeMd from 'remove-markdown';
36
37
  import orderBy from 'lodash.orderby';
37
38
  import merge$1 from 'lodash.merge';
@@ -48,6 +49,8 @@ import { ScrollStrategyOptions, CdkOverlayOrigin, CdkConnectedOverlay } from '@a
48
49
  import { ResizableDirective, ResizeHandleDirective } from 'angular-resizable-element';
49
50
  import set from 'lodash.set';
50
51
  import { MarkdownComponent } from 'ngx-markdown';
52
+ import { KatexDirective } from '@hestia-earth/ui-components/katex';
53
+ export * from '@hestia-earth/ui-components/katex';
51
54
  import arrayTreatment from '@hestia-earth/glossary/resources/arrayTreatment.json';
52
55
  import * as semver from 'semver';
53
56
  import { parse } from 'papaparse';
@@ -937,7 +940,8 @@ const siteTypeToIcon = {
937
940
  [SiteSiteType['permanent pasture']]: 'fence',
938
941
  [SiteSiteType.pond]: 'pond',
939
942
  [SiteSiteType['river or stream']]: 'river',
940
- [SiteSiteType['sea or ocean']]: 'ocean'
943
+ [SiteSiteType['sea or ocean']]: 'ocean',
944
+ [SiteSiteType.tank]: 'tank'
941
945
  };
942
946
  const siteTypeToColor = {
943
947
  [SiteSiteType.forest]: '#498f78',
@@ -951,7 +955,8 @@ const siteTypeToColor = {
951
955
  [SiteSiteType.lake]: '#1a0dab',
952
956
  [SiteSiteType['sea or ocean']]: '#32bac2',
953
957
  [SiteSiteType['agri-food processor']]: '#193957',
954
- [SiteSiteType['food retailer']]: '#8b50A7'
958
+ [SiteSiteType['food retailer']]: '#8b50A7',
959
+ [SiteSiteType.tank]: '#607d8b'
955
960
  };
956
961
 
957
962
  /* eslint-disable-next-line complexity */
@@ -1639,7 +1644,9 @@ const mapModelLink = ({ path, docPath, ...link }) => ({
1639
1644
  docPath: `${engineGitUrl()}/${docPath}`
1640
1645
  });
1641
1646
  const allModels = () => models$1.links.map(mapModelLink);
1642
- const models = allModels();
1647
+
1648
+ // not reach any of the model lookups below — mapping the links is otherwise eager at import time.
1649
+ const models = /*#__PURE__*/ allModels();
1643
1650
  const findModels = (termId) => models.filter(({ term }) => term === termId);
1644
1651
  const findOrchestratorModel = (config, model) => Object.keys(model).length > 0
1645
1652
  ? (config?.models || []).flat().find(m => Object.entries(model).every(([key, value]) => value === m[key]))
@@ -1724,38 +1731,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
1724
1731
  }]
1725
1732
  }] });
1726
1733
 
1727
- const defaultSvgIconSize = '20';
1728
- class HESvgIconComponent {
1729
- constructor() {
1730
- this.baseHref = inject(PlatformLocation).getBaseHrefFromDOM() || '/';
1731
- this.name = input.required(...(ngDevMode ? [{ debugName: "name" }] : []));
1732
- this.size = input(defaultSvgIconSize, ...(ngDevMode ? [{ debugName: "size" }] : []));
1733
- this.animation = input(...(ngDevMode ? [undefined, { debugName: "animation" }] : []));
1734
- this.iconName = computed(() => [this.name(), this.size()].filter(Boolean).join('-'), ...(ngDevMode ? [{ debugName: "iconName" }] : []));
1735
- this.iconPath = computed(() => `${this.baseHref}assets/svg-icons/icons-sprite.svg#${this.iconName()}px`, ...(ngDevMode ? [{ debugName: "iconPath" }] : []));
1736
- }
1737
- get _width() {
1738
- return `${this.size()}px`;
1739
- }
1740
- get _height() {
1741
- return `${this.size()}px`;
1742
- }
1743
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: HESvgIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1744
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: HESvgIconComponent, isStandalone: true, selector: "he-svg-icon", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, animation: { classPropertyName: "animation", publicName: "animation", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.icon-size": "size()", "style.width": "this._width", "style.height": "this._height" } }, ngImport: i0, template: "<svg [attr.animation]=\"animation()\">\n <use [attr.href]=\"iconPath()\"></use>\n</svg>\n", styles: ["@keyframes spinner{to{transform:rotate(360deg)}}:host{display:inline-block;color:inherit;vertical-align:text-top}svg{color:inherit;width:inherit;height:inherit}svg[animation=spin]{animation:spinner 2s linear infinite}\n"] }); }
1745
- }
1746
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: HESvgIconComponent, decorators: [{
1747
- type: Component$1,
1748
- args: [{ selector: 'he-svg-icon', imports: [], host: {
1749
- '[attr.icon-size]': 'size()'
1750
- }, template: "<svg [attr.animation]=\"animation()\">\n <use [attr.href]=\"iconPath()\"></use>\n</svg>\n", styles: ["@keyframes spinner{to{transform:rotate(360deg)}}:host{display:inline-block;color:inherit;vertical-align:text-top}svg{color:inherit;width:inherit;height:inherit}svg[animation=spin]{animation:spinner 2s linear infinite}\n"] }]
1751
- }], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], animation: [{ type: i0.Input, args: [{ isSignal: true, alias: "animation", required: false }] }], _width: [{
1752
- type: HostBinding,
1753
- args: ['style.width']
1754
- }], _height: [{
1755
- type: HostBinding,
1756
- args: ['style.height']
1757
- }] } });
1758
-
1759
1734
  const GUIDE_ENABLED = new InjectionToken('HESTIA_GUIDE_ENABLED');
1760
1735
  const guideNamespace = 'he-guide';
1761
1736
  const postGuideEvent = (data) => typeof window === 'undefined'
@@ -1957,13 +1932,13 @@ class DataTableComponent {
1957
1932
  this.small = input(false, ...(ngDevMode ? [{ debugName: "small" }] : []));
1958
1933
  }
1959
1934
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DataTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1960
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: DataTableComponent, isStandalone: true, selector: "he-data-table", inputs: { minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, small: { classPropertyName: "small", publicName: "small", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.is-small": "small()" } }, ngImport: i0, template: "<div class=\"w-100 h-100 is-overflow-hidden | data-table-holder\">\n <div\n class=\"w-100 h-100 is-overflow-auto | table-container\"\n [style.min-height]=\"minHeight() + 'px'\"\n [style.max-height]=\"maxHeight() + 'px'\">\n <ng-content />\n </div>\n</div>\n", styles: [":host{display:block;height:inherit;width:100%}:host *{box-sizing:border-box}:host .data-table-holder{z-index:1}:host.is-bordered>.data-table-holder{border:1px solid #dbe3ea;border-radius:3px;box-shadow:inset -2px 0 #bdb7b726;padding:8px}:host ::ng-deep *{box-sizing:border-box}:host ::ng-deep>.data-table-holder>.table-container>.table{width:100%}:host ::ng-deep>.data-table-holder>.table-container>.table sup{position:relative;vertical-align:baseline;top:-.4em}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th{height:42px;white-space:nowrap;font-weight:600}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td{border:none}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th>span:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td>span:first-child{display:inline-block;max-width:100%}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table .fixed-column{position:sticky}:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td{z-index:10}:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column{z-index:11}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th{top:0;z-index:1070}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column{z-index:1071}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.has-border-right:not(:last-child),:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.has-border-right:not(:last-child){box-shadow:inset -2px 0 #bdb7b726}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column{left:0;max-width:300px;width:300px}@media screen and (max-width:767px){:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column{max-width:180px;width:180px}}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th:first-child.has-border-right,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column.has-border-right,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td:first-child.has-border-right,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column.has-border-right{box-shadow:none}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th:first-child.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td:first-child.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column.has-border-right:after{position:absolute;content:\"\";height:100%;top:0;right:0;width:4px;box-shadow:2px 0 4px #bdb7b726}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column{left:300px}@media screen and (max-width:767px){:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column{left:180px}}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr:last-child>th{box-shadow:inset 0 -1px #ffc000}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr:last-child>th.has-border-right:not(:last-child){box-shadow:inset 0 -1px #ffc000,inset -2px 0 #bdb7b726}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr:last-child>th:first-child.has-border-right,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr:last-child>th.fixed-column.has-border-right{box-shadow:inset 0 -1px #ffc000}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr:last-child>th:first-child.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr:last-child>th.fixed-column.has-border-right:after{box-shadow:inset 0 -1px #ffc000,2px 0 4px #bdb7b726}:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr>th.has-border-right,:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>tbody>tr>td.has-border-right{box-shadow:inset -2px 0 #6c8093}:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr>th:first-child.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr>th.fixed-column.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>tbody>tr>td:first-child.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>tbody>tr>td.fixed-column.has-border-right:after{box-shadow:2px 0 4px #6c8093}:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr:last-child>th{box-shadow:inset 0 -1px #c5cdd5}:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr:last-child>th.has-border-right{box-shadow:inset 0 -1px #c5cdd5,inset -2px 0 #6c8093}:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr:last-child>th:first-child.has-border-right,:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr:last-child>th.fixed-column.has-border-right{box-shadow:inset 0 -1px #c5cdd5}:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr:last-child>th:first-child.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr:last-child>th.fixed-column.has-border-right:after{box-shadow:inset 0 -1px #c5cdd5,2px 0 4px #6c8093}:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr{background-color:transparent!important}:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr.is-suggested td{background:#fff7e1!important}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr+tr th{top:42px}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr+tr+tr th{top:84px}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td{background-color:#fff}:host ::ng-deep>.data-table-holder>.table-container>.table.is-hoverable>tbody>tr:not(.is-selected):hover>td{background-color:#f3f5f7}:host ::ng-deep>.data-table-holder>.table-container>.table.is-striped>tbody>tr:not(.is-selected):nth-child(2n)>td{background-color:#fefcf7}:host ::ng-deep>.data-table-holder>.table-container>.table.is-striped.is-hoverable>tr:not(.is-selected):nth-child(2n):hover>td{background-color:#f3f5f7}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow{font-size:.875rem;line-height:1rem}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th{height:30px}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>tbody>tr>td:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>tbody>tr>td.fixed-column{min-width:200px;max-width:200px;width:200px}@media screen and (max-width:767px){:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>tbody>tr>td:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>tbody>tr>td.fixed-column{min-width:120px;max-width:120px;width:120px}}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>tbody>tr>td.fixed-column{left:200px}@media screen and (max-width:767px){:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>tbody>tr>td.fixed-column{left:120px}}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr+tr th{top:30px}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr+tr+tr th{top:60px}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow .select,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow .select select,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow .input{height:30px;font-size:.875rem;line-height:1rem}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow .select select,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow .input{padding-top:5px;padding-bottom:5px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1935
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: DataTableComponent, isStandalone: true, selector: "he-data-table", inputs: { minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, small: { classPropertyName: "small", publicName: "small", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.is-small": "small()" } }, ngImport: i0, template: "<div class=\"w-100 h-100 is-overflow-hidden is-relative | data-table-holder\">\n <div\n class=\"w-100 h-100 is-overflow-auto | table-container\"\n [style.min-height]=\"minHeight() + 'px'\"\n [style.max-height]=\"maxHeight() + 'px'\">\n <ng-content />\n </div>\n</div>\n", styles: [":host{display:block;height:inherit;width:100%}:host *{box-sizing:border-box}:host .data-table-holder{z-index:1}:host.is-bordered>.data-table-holder{border:1px solid #dbe3ea;border-radius:3px;box-shadow:inset -2px 0 #bdb7b726;padding:8px}:host ::ng-deep *{box-sizing:border-box}:host ::ng-deep>.data-table-holder>.table-container>.table{width:100%}:host ::ng-deep>.data-table-holder>.table-container>.table sup{position:relative;vertical-align:baseline;top:-.4em}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th{height:42px;white-space:nowrap;font-weight:600}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td{border:none}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th>span:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td>span:first-child{display:inline-block;max-width:100%}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table .fixed-column{position:sticky}:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td{z-index:10}:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column{z-index:11}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th{top:0;z-index:1070}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column{z-index:1071}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.has-border-right:not(:last-child),:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.has-border-right:not(:last-child){box-shadow:inset -2px 0 #bdb7b726}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column{left:0;max-width:300px;width:300px}@media screen and (max-width:767px){:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column{max-width:180px;width:180px}}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th:first-child.has-border-right,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column.has-border-right,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td:first-child.has-border-right,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column.has-border-right{box-shadow:none}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th:first-child.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td:first-child.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column.has-border-right:after{position:absolute;content:\"\";height:100%;top:0;right:0;width:4px;box-shadow:2px 0 4px #bdb7b726}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column{left:300px}@media screen and (max-width:767px){:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column{left:180px}}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr:last-child>th{box-shadow:inset 0 -1px #ffc000}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr:last-child>th.has-border-right:not(:last-child){box-shadow:inset 0 -1px #ffc000,inset -2px 0 #bdb7b726}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr:last-child>th:first-child.has-border-right,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr:last-child>th.fixed-column.has-border-right{box-shadow:inset 0 -1px #ffc000}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr:last-child>th:first-child.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr:last-child>th.fixed-column.has-border-right:after{box-shadow:inset 0 -1px #ffc000,2px 0 4px #bdb7b726}:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr>th.has-border-right,:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>tbody>tr>td.has-border-right{box-shadow:inset -2px 0 #6c8093}:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr>th:first-child.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr>th.fixed-column.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>tbody>tr>td:first-child.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>tbody>tr>td.fixed-column.has-border-right:after{box-shadow:2px 0 4px #6c8093}:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr:last-child>th{box-shadow:inset 0 -1px #c5cdd5}:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr:last-child>th.has-border-right{box-shadow:inset 0 -1px #c5cdd5,inset -2px 0 #6c8093}:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr:last-child>th:first-child.has-border-right,:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr:last-child>th.fixed-column.has-border-right{box-shadow:inset 0 -1px #c5cdd5}:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr:last-child>th:first-child.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr:last-child>th.fixed-column.has-border-right:after{box-shadow:inset 0 -1px #c5cdd5,2px 0 4px #6c8093}:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr{background-color:transparent!important}:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr.is-suggested td{background:#fff7e1!important}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr+tr th{top:42px}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr+tr+tr th{top:84px}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td{background-color:#fff}:host ::ng-deep>.data-table-holder>.table-container>.table.is-hoverable>tbody>tr:not(.is-selected):hover>td{background-color:#f3f5f7}:host ::ng-deep>.data-table-holder>.table-container>.table.is-striped>tbody>tr:not(.is-selected):nth-child(2n)>td{background-color:#fefcf7}:host ::ng-deep>.data-table-holder>.table-container>.table.is-striped.is-hoverable>tr:not(.is-selected):nth-child(2n):hover>td{background-color:#f3f5f7}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow{font-size:.875rem;line-height:1rem}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th{height:30px}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>tbody>tr>td:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>tbody>tr>td.fixed-column{min-width:200px;max-width:200px;width:200px}@media screen and (max-width:767px){:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>tbody>tr>td:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>tbody>tr>td.fixed-column{min-width:120px;max-width:120px;width:120px}}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>tbody>tr>td.fixed-column{left:200px}@media screen and (max-width:767px){:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>tbody>tr>td.fixed-column{left:120px}}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr+tr th{top:30px}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr+tr+tr th{top:60px}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow .select,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow .select select,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow .input{height:30px;font-size:.875rem;line-height:1rem}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow .select select,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow .input{padding-top:5px;padding-bottom:5px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1961
1936
  }
1962
1937
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DataTableComponent, decorators: [{
1963
1938
  type: Component$1,
1964
1939
  args: [{ selector: 'he-data-table', changeDetection: ChangeDetectionStrategy.OnPush, host: {
1965
1940
  '[class.is-small]': 'small()'
1966
- }, template: "<div class=\"w-100 h-100 is-overflow-hidden | data-table-holder\">\n <div\n class=\"w-100 h-100 is-overflow-auto | table-container\"\n [style.min-height]=\"minHeight() + 'px'\"\n [style.max-height]=\"maxHeight() + 'px'\">\n <ng-content />\n </div>\n</div>\n", styles: [":host{display:block;height:inherit;width:100%}:host *{box-sizing:border-box}:host .data-table-holder{z-index:1}:host.is-bordered>.data-table-holder{border:1px solid #dbe3ea;border-radius:3px;box-shadow:inset -2px 0 #bdb7b726;padding:8px}:host ::ng-deep *{box-sizing:border-box}:host ::ng-deep>.data-table-holder>.table-container>.table{width:100%}:host ::ng-deep>.data-table-holder>.table-container>.table sup{position:relative;vertical-align:baseline;top:-.4em}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th{height:42px;white-space:nowrap;font-weight:600}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td{border:none}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th>span:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td>span:first-child{display:inline-block;max-width:100%}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table .fixed-column{position:sticky}:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td{z-index:10}:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column{z-index:11}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th{top:0;z-index:1070}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column{z-index:1071}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.has-border-right:not(:last-child),:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.has-border-right:not(:last-child){box-shadow:inset -2px 0 #bdb7b726}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column{left:0;max-width:300px;width:300px}@media screen and (max-width:767px){:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column{max-width:180px;width:180px}}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th:first-child.has-border-right,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column.has-border-right,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td:first-child.has-border-right,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column.has-border-right{box-shadow:none}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th:first-child.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td:first-child.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column.has-border-right:after{position:absolute;content:\"\";height:100%;top:0;right:0;width:4px;box-shadow:2px 0 4px #bdb7b726}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column{left:300px}@media screen and (max-width:767px){:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column{left:180px}}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr:last-child>th{box-shadow:inset 0 -1px #ffc000}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr:last-child>th.has-border-right:not(:last-child){box-shadow:inset 0 -1px #ffc000,inset -2px 0 #bdb7b726}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr:last-child>th:first-child.has-border-right,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr:last-child>th.fixed-column.has-border-right{box-shadow:inset 0 -1px #ffc000}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr:last-child>th:first-child.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr:last-child>th.fixed-column.has-border-right:after{box-shadow:inset 0 -1px #ffc000,2px 0 4px #bdb7b726}:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr>th.has-border-right,:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>tbody>tr>td.has-border-right{box-shadow:inset -2px 0 #6c8093}:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr>th:first-child.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr>th.fixed-column.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>tbody>tr>td:first-child.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>tbody>tr>td.fixed-column.has-border-right:after{box-shadow:2px 0 4px #6c8093}:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr:last-child>th{box-shadow:inset 0 -1px #c5cdd5}:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr:last-child>th.has-border-right{box-shadow:inset 0 -1px #c5cdd5,inset -2px 0 #6c8093}:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr:last-child>th:first-child.has-border-right,:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr:last-child>th.fixed-column.has-border-right{box-shadow:inset 0 -1px #c5cdd5}:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr:last-child>th:first-child.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr:last-child>th.fixed-column.has-border-right:after{box-shadow:inset 0 -1px #c5cdd5,2px 0 4px #6c8093}:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr{background-color:transparent!important}:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr.is-suggested td{background:#fff7e1!important}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr+tr th{top:42px}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr+tr+tr th{top:84px}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td{background-color:#fff}:host ::ng-deep>.data-table-holder>.table-container>.table.is-hoverable>tbody>tr:not(.is-selected):hover>td{background-color:#f3f5f7}:host ::ng-deep>.data-table-holder>.table-container>.table.is-striped>tbody>tr:not(.is-selected):nth-child(2n)>td{background-color:#fefcf7}:host ::ng-deep>.data-table-holder>.table-container>.table.is-striped.is-hoverable>tr:not(.is-selected):nth-child(2n):hover>td{background-color:#f3f5f7}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow{font-size:.875rem;line-height:1rem}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th{height:30px}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>tbody>tr>td:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>tbody>tr>td.fixed-column{min-width:200px;max-width:200px;width:200px}@media screen and (max-width:767px){:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>tbody>tr>td:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>tbody>tr>td.fixed-column{min-width:120px;max-width:120px;width:120px}}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>tbody>tr>td.fixed-column{left:200px}@media screen and (max-width:767px){:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>tbody>tr>td.fixed-column{left:120px}}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr+tr th{top:30px}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr+tr+tr th{top:60px}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow .select,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow .select select,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow .input{height:30px;font-size:.875rem;line-height:1rem}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow .select select,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow .input{padding-top:5px;padding-bottom:5px}\n"] }]
1941
+ }, template: "<div class=\"w-100 h-100 is-overflow-hidden is-relative | data-table-holder\">\n <div\n class=\"w-100 h-100 is-overflow-auto | table-container\"\n [style.min-height]=\"minHeight() + 'px'\"\n [style.max-height]=\"maxHeight() + 'px'\">\n <ng-content />\n </div>\n</div>\n", styles: [":host{display:block;height:inherit;width:100%}:host *{box-sizing:border-box}:host .data-table-holder{z-index:1}:host.is-bordered>.data-table-holder{border:1px solid #dbe3ea;border-radius:3px;box-shadow:inset -2px 0 #bdb7b726;padding:8px}:host ::ng-deep *{box-sizing:border-box}:host ::ng-deep>.data-table-holder>.table-container>.table{width:100%}:host ::ng-deep>.data-table-holder>.table-container>.table sup{position:relative;vertical-align:baseline;top:-.4em}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th{height:42px;white-space:nowrap;font-weight:600}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td{border:none}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th>span:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td>span:first-child{display:inline-block;max-width:100%}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table .fixed-column{position:sticky}:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td{z-index:10}:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column{z-index:11}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th{top:0;z-index:1070}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column{z-index:1071}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.has-border-right:not(:last-child),:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.has-border-right:not(:last-child){box-shadow:inset -2px 0 #bdb7b726}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column{left:0;max-width:300px;width:300px}@media screen and (max-width:767px){:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column{max-width:180px;width:180px}}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th:first-child.has-border-right,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column.has-border-right,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td:first-child.has-border-right,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column.has-border-right{box-shadow:none}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th:first-child.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td:first-child.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column.has-border-right:after{position:absolute;content:\"\";height:100%;top:0;right:0;width:4px;box-shadow:2px 0 4px #bdb7b726}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column{left:300px}@media screen and (max-width:767px){:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td.fixed-column{left:180px}}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr:last-child>th{box-shadow:inset 0 -1px #ffc000}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr:last-child>th.has-border-right:not(:last-child){box-shadow:inset 0 -1px #ffc000,inset -2px 0 #bdb7b726}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr:last-child>th:first-child.has-border-right,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr:last-child>th.fixed-column.has-border-right{box-shadow:inset 0 -1px #ffc000}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr:last-child>th:first-child.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr:last-child>th.fixed-column.has-border-right:after{box-shadow:inset 0 -1px #ffc000,2px 0 4px #bdb7b726}:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr>th.has-border-right,:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>tbody>tr>td.has-border-right{box-shadow:inset -2px 0 #6c8093}:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr>th:first-child.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr>th.fixed-column.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>tbody>tr>td:first-child.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>tbody>tr>td.fixed-column.has-border-right:after{box-shadow:2px 0 4px #6c8093}:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr:last-child>th{box-shadow:inset 0 -1px #c5cdd5}:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr:last-child>th.has-border-right{box-shadow:inset 0 -1px #c5cdd5,inset -2px 0 #6c8093}:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr:last-child>th:first-child.has-border-right,:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr:last-child>th.fixed-column.has-border-right{box-shadow:inset 0 -1px #c5cdd5}:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr:last-child>th:first-child.has-border-right:after,:host ::ng-deep>.data-table-holder>.table-container>.table.is-dark>thead>tr:last-child>th.fixed-column.has-border-right:after{box-shadow:inset 0 -1px #c5cdd5,2px 0 4px #6c8093}:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr{background-color:transparent!important}:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr.is-suggested td{background:#fff7e1!important}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr+tr th{top:42px}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr+tr+tr th{top:84px}:host ::ng-deep>.data-table-holder>.table-container>.table>thead>tr>th,:host ::ng-deep>.data-table-holder>.table-container>.table>tbody>tr>td{background-color:#fff}:host ::ng-deep>.data-table-holder>.table-container>.table.is-hoverable>tbody>tr:not(.is-selected):hover>td{background-color:#f3f5f7}:host ::ng-deep>.data-table-holder>.table-container>.table.is-striped>tbody>tr:not(.is-selected):nth-child(2n)>td{background-color:#fefcf7}:host ::ng-deep>.data-table-holder>.table-container>.table.is-striped.is-hoverable>tr:not(.is-selected):nth-child(2n):hover>td{background-color:#f3f5f7}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow{font-size:.875rem;line-height:1rem}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th{height:30px}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>tbody>tr>td:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>tbody>tr>td.fixed-column{min-width:200px;max-width:200px;width:200px}@media screen and (max-width:767px){:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>tbody>tr>td:first-child,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>tbody>tr>td.fixed-column{min-width:120px;max-width:120px;width:120px}}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>tbody>tr>td.fixed-column{left:200px}@media screen and (max-width:767px){:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr>th.fixed-column,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>tbody>tr>td.fixed-column{left:120px}}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr+tr th{top:30px}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow>thead>tr+tr+tr th{top:60px}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow .select,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow .select select,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow .input{height:30px;font-size:.875rem;line-height:1rem}:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow .select select,:host ::ng-deep>.data-table-holder>.table-container>.table.is-narrow .input{padding-top:5px;padding-bottom:5px}\n"] }]
1967
1942
  }], propDecorators: { minHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "minHeight", required: false }] }], maxHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxHeight", required: false }] }], small: [{ type: i0.Input, args: [{ isSignal: true, alias: "small", required: false }] }] } });
1968
1943
 
1969
1944
  const animationDuration = '300ms';
@@ -2851,203 +2826,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
2851
2826
  }]
2852
2827
  }] });
2853
2828
 
2854
- // auto-generated content using "node scripts/generate-icons.js"
2855
- const iconSizes = ['16', '20', '24', '40', '48'];
2856
- const icons = [
2857
- 'aggregation',
2858
- 'api',
2859
- 'api-circle',
2860
- 'archive',
2861
- 'arrow-down',
2862
- 'arrow-down-right',
2863
- 'arrow-left',
2864
- 'arrow-right',
2865
- 'arrow-up',
2866
- 'autogenerate',
2867
- 'autogenerate-circle',
2868
- 'aws',
2869
- 'ban',
2870
- 'bell',
2871
- 'bell-with-badge',
2872
- 'book',
2873
- 'breakdown',
2874
- 'bug',
2875
- 'buoy',
2876
- 'calculation-toolkit',
2877
- 'calculator',
2878
- 'caret-down',
2879
- 'caret-left',
2880
- 'caret-right',
2881
- 'caret-up',
2882
- 'certificate',
2883
- 'chart',
2884
- 'checkmark',
2885
- 'checkmark-circle',
2886
- 'checkmark-circle-filled',
2887
- 'checkmark-circle-filled-with-shadow',
2888
- 'chevron-double-left',
2889
- 'chevron-double-right',
2890
- 'chevron-down',
2891
- 'chevron-left',
2892
- 'chevron-right',
2893
- 'chevron-up',
2894
- 'circle',
2895
- 'citation',
2896
- 'citation-square',
2897
- 'clock',
2898
- 'cloud',
2899
- 'collapse',
2900
- 'collapse-panel',
2901
- 'commit',
2902
- 'community',
2903
- 'community-edition',
2904
- 'compare',
2905
- 'copy',
2906
- 'corner-drag',
2907
- 'csv-file',
2908
- 'cycle',
2909
- 'cycle-schema',
2910
- 'dashboard',
2911
- 'data-format',
2912
- 'data-management',
2913
- 'data-plan',
2914
- 'database-wheat',
2915
- 'dot-circle',
2916
- 'dot-filled',
2917
- 'download',
2918
- 'drag',
2919
- 'edit',
2920
- 'edit-withfield',
2921
- 'embed',
2922
- 'exclamation',
2923
- 'exclamation-triangle',
2924
- 'exclamation-triangle-filled',
2925
- 'export',
2926
- 'external-link',
2927
- 'feedback',
2928
- 'fence',
2929
- 'film',
2930
- 'filter-funnel',
2931
- 'filter-slider',
2932
- 'flash',
2933
- 'folder',
2934
- 'folder-open',
2935
- 'foodprocessor',
2936
- 'globe-continents',
2937
- 'globe-lines',
2938
- 'glossary',
2939
- 'greenhouse',
2940
- 'guide',
2941
- 'guide-overlay',
2942
- 'heart',
2943
- 'help',
2944
- 'help-circle',
2945
- 'history',
2946
- 'home',
2947
- 'husk',
2948
- 'image',
2949
- 'incognito',
2950
- 'indexed',
2951
- 'info',
2952
- 'info-circle',
2953
- 'info-circle-schema',
2954
- 'lake',
2955
- 'link',
2956
- 'list-indented',
2957
- 'livestock',
2958
- 'loading',
2959
- 'loading-bar',
2960
- 'loading-circle-filled',
2961
- 'loading-circle-filled-withshadow',
2962
- 'log',
2963
- 'mail',
2964
- 'map',
2965
- 'menu',
2966
- 'messages',
2967
- 'messages-with-badge',
2968
- 'metrics',
2969
- 'migration',
2970
- 'minus',
2971
- 'model-docs',
2972
- 'news',
2973
- 'node',
2974
- 'notepad',
2975
- 'ocean',
2976
- 'organisation',
2977
- 'organisation-schema',
2978
- 'overflow-menu',
2979
- 'pin',
2980
- 'pin-schema',
2981
- 'plus',
2982
- 'pond',
2983
- 'private-eye',
2984
- 'private-eye-crossed',
2985
- 'private-lock',
2986
- 'private-lock-filled',
2987
- 'private-unlocked',
2988
- 'profile-checkmark',
2989
- 'profile-circle',
2990
- 'profile-circle-schema',
2991
- 'profile-gear',
2992
- 'progress',
2993
- 'python',
2994
- 'refresh',
2995
- 'rename',
2996
- 'retailer',
2997
- 'review',
2998
- 'river',
2999
- 'save',
3000
- 'schema',
3001
- 'search',
3002
- 'search-schema',
3003
- 'search-with-exclamation',
3004
- 'search-with-minus',
3005
- 'search-with-plus',
3006
- 'settings',
3007
- 'share',
3008
- 'share-socials',
3009
- 'shrub',
3010
- 'sign-out',
3011
- 'slack',
3012
- 'socials-gitlab',
3013
- 'socials-google',
3014
- 'socials-linkedin',
3015
- 'socials-linkedin-circle',
3016
- 'socials-orcid',
3017
- 'socials-orcid-circle',
3018
- 'sort-ascending',
3019
- 'sort-caret-down-filled',
3020
- 'sort-caret-stacked-filled-stacked',
3021
- 'sort-caret-up-filled',
3022
- 'source',
3023
- 'source-schema',
3024
- 'star',
3025
- 'star-filled',
3026
- 'table',
3027
- 'tag-filled',
3028
- 'target',
3029
- 'target-schema',
3030
- 'term',
3031
- 'term-schema',
3032
- 'textform-list',
3033
- 'tool',
3034
- 'transport',
3035
- 'transport-schema',
3036
- 'trash',
3037
- 'tree',
3038
- 'turn-phone',
3039
- 'unit',
3040
- 'upload',
3041
- 'video',
3042
- 'webhook',
3043
- 'xlsx-file',
3044
- 'xmark',
3045
- 'xmark-circle',
3046
- 'xmark-circle-filled',
3047
- 'xmark-circle-filled-with-shadow',
3048
- 'zip'
3049
- ];
3050
-
3051
2829
  const timelineItemIconMap = {
3052
2830
  success: 'checkmark',
3053
2831
  pending: 'loading',
@@ -3063,14 +2841,14 @@ class PipelineProgressStatusComponent {
3063
2841
  this.iconAnimation = computed(() => (this.status() === 'pending' ? 'spin' : ''), ...(ngDevMode ? [{ debugName: "iconAnimation" }] : []));
3064
2842
  }
3065
2843
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PipelineProgressStatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3066
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: PipelineProgressStatusComponent, isStandalone: true, selector: "he-pipeline-progress-status", inputs: { status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.indicator-status": "status()", "style.--icon-size": "iconSize()" } }, ngImport: i0, template: "<div class=\"is-flex is-justify-content-center is-align-items-center | icon-circle\">\n @if (iconStatus()) {\n <he-svg-icon\n class=\"has-text-white is-flex is-align-items-center\"\n [name]=\"iconStatus()\"\n [animation]=\"iconAnimation()\" />\n }\n</div>\n", styles: [":host{--icon-circle-background-color: #dbdbdb;--icon-size: 22.5px}:host[indicator-status=success]{--icon-circle-background-color: hsl(153, 53%, 53%)}:host[indicator-status=error]{--icon-circle-background-color: #ff3844}:host[indicator-status=pending]{--icon-circle-background-color: #4c7194}.icon-circle{width:var(--icon-size);height:var(--icon-size);background-color:var(--icon-circle-background-color);border-radius:50%}\n"], dependencies: [{ kind: "component", type: HESvgIconComponent, selector: "he-svg-icon", inputs: ["name", "size", "animation"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2844
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: PipelineProgressStatusComponent, isStandalone: true, selector: "he-pipeline-progress-status", inputs: { status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.indicator-status": "status()", "style.--icon-size": "iconSize()" } }, ngImport: i0, template: "<div class=\"is-flex is-justify-content-center is-align-items-center | icon-circle\">\n @if (iconStatus()) {\n <he-svg-icon\n class=\"has-text-white is-flex is-align-items-center\"\n [name]=\"iconStatus()\"\n [animation]=\"iconAnimation()\" />\n }\n</div>\n", styles: [":host{--icon-circle-background-color: #dbdbdb;--icon-size: 22.5px}:host[indicator-status=success]{--icon-circle-background-color: #2b8434}:host[indicator-status=error]{--icon-circle-background-color: #ff3844}:host[indicator-status=pending]{--icon-circle-background-color: #4c7194}.icon-circle{width:var(--icon-size);height:var(--icon-size);background-color:var(--icon-circle-background-color);border-radius:50%}\n"], dependencies: [{ kind: "component", type: HESvgIconComponent, selector: "he-svg-icon", inputs: ["name", "size", "animation"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3067
2845
  }
3068
2846
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PipelineProgressStatusComponent, decorators: [{
3069
2847
  type: Component$1,
3070
2848
  args: [{ selector: 'he-pipeline-progress-status', imports: [HESvgIconComponent], host: {
3071
2849
  '[attr.indicator-status]': 'status()',
3072
2850
  '[style.--icon-size]': 'iconSize()'
3073
- }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"is-flex is-justify-content-center is-align-items-center | icon-circle\">\n @if (iconStatus()) {\n <he-svg-icon\n class=\"has-text-white is-flex is-align-items-center\"\n [name]=\"iconStatus()\"\n [animation]=\"iconAnimation()\" />\n }\n</div>\n", styles: [":host{--icon-circle-background-color: #dbdbdb;--icon-size: 22.5px}:host[indicator-status=success]{--icon-circle-background-color: hsl(153, 53%, 53%)}:host[indicator-status=error]{--icon-circle-background-color: #ff3844}:host[indicator-status=pending]{--icon-circle-background-color: #4c7194}.icon-circle{width:var(--icon-size);height:var(--icon-size);background-color:var(--icon-circle-background-color);border-radius:50%}\n"] }]
2851
+ }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"is-flex is-justify-content-center is-align-items-center | icon-circle\">\n @if (iconStatus()) {\n <he-svg-icon\n class=\"has-text-white is-flex is-align-items-center\"\n [name]=\"iconStatus()\"\n [animation]=\"iconAnimation()\" />\n }\n</div>\n", styles: [":host{--icon-circle-background-color: #dbdbdb;--icon-size: 22.5px}:host[indicator-status=success]{--icon-circle-background-color: #2b8434}:host[indicator-status=error]{--icon-circle-background-color: #ff3844}:host[indicator-status=pending]{--icon-circle-background-color: #4c7194}.icon-circle{width:var(--icon-size);height:var(--icon-size);background-color:var(--icon-circle-background-color);border-radius:50%}\n"] }]
3074
2852
  }], propDecorators: { status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] } });
3075
2853
 
3076
2854
  class PipelineProgressStageComponent {
@@ -3769,35 +3547,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
3769
3547
  }]
3770
3548
  }] });
3771
3549
 
3772
- /**
3773
- * Renders a KaTeX source string (without the `$$` delimiters) into the host element.
3774
- * `\htmlData` is trusted so annotated formulas can carry `data-key` / `data-value`.
3775
- */
3776
- class KatexDirective {
3777
- constructor() {
3778
- this.elementRef = inject(ElementRef);
3779
- this.heKatex = input.required(...(ngDevMode ? [{ debugName: "heKatex" }] : []));
3780
- // render inline (e.g. a single symbol within a sentence) rather than as centered display math
3781
- this.heKatexInline = input(false, ...(ngDevMode ? [{ debugName: "heKatexInline" }] : []));
3782
- effect(() => {
3783
- katex.render(this.heKatex(), this.elementRef.nativeElement, {
3784
- displayMode: !this.heKatexInline(),
3785
- throwOnError: false,
3786
- strict: false,
3787
- trust: ctx => ctx.command === '\\htmlData'
3788
- });
3789
- });
3790
- }
3791
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: KatexDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3792
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.6", type: KatexDirective, isStandalone: true, selector: "[heKatex]", inputs: { heKatex: { classPropertyName: "heKatex", publicName: "heKatex", isSignal: true, isRequired: true, transformFunction: null }, heKatexInline: { classPropertyName: "heKatexInline", publicName: "heKatexInline", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
3793
- }
3794
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: KatexDirective, decorators: [{
3795
- type: Directive,
3796
- args: [{
3797
- selector: '[heKatex]'
3798
- }]
3799
- }], ctorParameters: () => [], propDecorators: { heKatex: [{ type: i0.Input, args: [{ isSignal: true, alias: "heKatex", required: true }] }], heKatexInline: [{ type: i0.Input, args: [{ isSignal: true, alias: "heKatexInline", required: false }] }] } });
3800
-
3801
3550
  const termProperties = (term) => Object.keys(term).filter(key => !isExpandable(term[key]) &&
3802
3551
  ![
3803
3552
  'pinned',
@@ -13020,15 +12769,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
13020
12769
  * exact Bulma-classed output the platform UI expects) and to URLs derived from
13021
12770
  * `window.location`, then re-export the same public API this module has always exposed.
13022
12771
  */
13023
- const formatter$1 = createErrorFormatter({
12772
+ const formatter$1 = /*#__PURE__*/ createErrorFormatter({
13024
12773
  renderer: htmlRenderer,
13025
12774
  urls: { baseUrl, glossaryBaseUrl, schemaBaseUrl }
13026
12775
  });
13027
- const parseDataPath = formatter$1.parseDataPath;
13028
- const dataPathLabel = formatter$1.dataPathLabel;
13029
- const migrationErrorMessage = formatter$1.migrationErrorMessage;
13030
- const formatCustomErrorMessage = formatter$1.formatCustomErrorMessage;
13031
- const formatError = formatter$1.formatError;
12776
+ // Forwarded through closures rather than re-exported directly (`export const x = formatter.x`):
12777
+ // a module-level member access counts as a use, which pins the whole catalog — and the
12778
+ // `file-errors` entry point it lives in — into every consumer's bundle. Behind a closure the
12779
+
12780
+ const parseDataPath = (...args) => formatter$1.parseDataPath(...args);
12781
+ const dataPathLabel = (...args) => formatter$1.dataPathLabel(...args);
12782
+ const migrationErrorMessage = (...args) => formatter$1.migrationErrorMessage(...args);
12783
+ const formatCustomErrorMessage = (...args) => formatter$1.formatCustomErrorMessage(...args);
12784
+ const formatError = (...args) => formatter$1.formatError(...args);
13032
12785
 
13033
12786
  /* eslint-disable complexity */
13034
12787
  const missingNodeErrorMessage = ({ '@type': _t, type, name }, missingIdError) => (_t || type) === 'Term'
@@ -13902,7 +13655,7 @@ class FilesFormComponent {
13902
13655
  return focusFirstError(this.ref.nativeElement);
13903
13656
  }
13904
13657
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FilesFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13905
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: FilesFormComponent, isStandalone: true, selector: "he-files-form", inputs: { isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, showNodeLink: { classPropertyName: "showNodeLink", publicName: "showNodeLink", isSignal: true, isRequired: false, transformFunction: null }, errorGuidePrefix: { classPropertyName: "errorGuidePrefix", publicName: "errorGuidePrefix", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpen: "isOpenChange", nodeErorrResolved: "nodeErorrResolved" }, exportAs: ["filesForm"], ngImport: i0, template: "<div class=\"is-flex is-flex-direction-column is-align-items-flex-start is-align-self-stretch | files-form-container\">\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-align-items-center is-align-self-stretch is-gap-16 px-4 py-2 has-text-secondary | files-form-header\"\n (click)=\"isOpen.set(!isOpen())\"\n pointer>\n <div class=\"is-flex is-gap-8 is-align-items-center\">\n @if (nodeProperty()) {\n <he-node-icon class=\"is-flex\" [type]=\"schemaType()\" [size]=\"24\" />\n <span class=\"has-text-weight-bold has-text-secondary is-size-5\">{{ schemaType() }}</span>\n @if (nodeProperty().hasError || hasError()) {\n <he-svg-icon name=\"xmark-circle\" class=\"has-text-danger is-flex is-align-items-center\" />\n <span class=\"has-text-danger has-text-weight-bold is-italic\">Error</span>\n } @else if (nodeProperty().hasWarning || hasWarning()) {\n <he-svg-icon name=\"exclamation-triangle\" class=\"has-text-warning is-flex is-align-items-center\" />\n <span class=\"has-text-warning has-text-weight-bold is-italic\">Warning</span>\n }\n }\n </div>\n @if ((showNodeLink() && nodeUrl()) || canOpen()) {\n <div class=\"is-flex is-flex-direction-row is-align-items-center is-gap-16\">\n @if (showNodeLink() && nodeUrl()) {\n <ng-container *ngTemplateOutlet=\"nodeLink; context: { url: nodeUrl(), nodeType: schemaType() }\" />\n }\n @if (canOpen()) {\n <he-svg-icon [name]=\"isOpen() ? 'minus' : 'plus'\" />\n }\n </div>\n }\n </div>\n\n <div class=\"is-flex is-flex-direction-column is-align-items-flex-start is-align-self-stretch\">\n @if (isOpen()) {\n @if (nodeProperty()?.error) {\n <ng-container\n *ngTemplateOutlet=\"\n propertyError;\n context: { property: nodeProperty(), classes: 'is-my-1 is-py-1 is-px-3' }\n \" />\n }\n }\n\n @if (unmatchedErrors().length) {\n @for (property of unmatchedErrors(); track property.id) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property, classes: 'is-my-1 is-py-1 is-px-3' }\" />\n }\n }\n\n <div class=\"is-flex is-flex-direction-row is-flex-wrap-wrap is-align-self-stretch\">\n @for (property of properties(); track trackByProperty($index, property)) {\n <ng-container *ngTemplateOutlet=\"showProperty; context: { $implicit: property }\" />\n }\n </div>\n\n @if (isOpen()) {\n <ng-container *ngTemplateOutlet=\"propertyMap; context: { $implicit: nodeProperty() }\" />\n }\n </div>\n\n <ng-content />\n</div>\n\n<ng-template #propertyKeyTooltip let-property=\"property\">\n <markdown [data]=\"property.schema.description\" />\n</ng-template>\n\n<ng-template #propertyKey let-property=\"property\">\n @if (property.schema?.description) {\n <span\n class=\"trigger-popover | property-key\"\n [ngbTooltip]=\"propertyKeyTooltip\"\n [tooltipContext]=\"{ property }\"\n triggers=\"click\"\n autoClose=\"outside\"\n tooltipClass=\"property-tooltip\"\n placement=\"bottom-left auto\"\n container=\"body\"\n (click)=\"$event.stopPropagation()\">\n <span>{{ property.key }}</span>\n </span>\n } @else {\n <span>{{ property.key }}</span>\n }\n</ng-template>\n\n<ng-template #propertyContent let-property=\"property\">\n <div class=\"is-flex is-align-items-center is-flex-wrap-wrap is-gap-4\">\n <div class=\"is-flex has-text-secondary\">\n <ng-container *ngTemplateOutlet=\"propertyKey; context: { property }\" />\n <span>:</span>\n </div>\n\n @if (property.isCollapsible && property.showMaxLength) {\n <span class=\"is-flex is-size-7 | property-value\">\n {{ property.value | ellipsis: property.showMaxLength }}\n </span>\n\n <a class=\"is-flex is-size-7\" (click)=\"property.showMaxLength = 0\">Show more</a>\n } @else {\n <span class=\"is-flex is-size-7 | property-value\">\n {{ property.value }}\n </span>\n }\n\n @if (property.schema?.internal && property.key !== 'originalId') {\n <div class=\"property-internal\" ngbTooltip=\"This value is auto-generated.\">\n <he-svg-icon name=\"autogenerate-circle\" />\n </div>\n }\n\n <div class=\"copy-button\">\n <he-clipboard [value]=\"property.value\" [hideText]=\"true\" />\n </div>\n </div>\n\n <div class=\"is-flex is-gap-8\">\n @if (property.externalUrl?.url) {\n <a\n [href]=\"property.externalUrl.url + (property.externalUrl.urlParamValue ? property.value : '')\"\n target=\"_blank\"\n [title]=\"property.externalUrl.title\"\n class=\"ml-2\"\n [ngClass]=\"{ 'is-info': property.key === 'type' }\"\n [attr.disabled]=\"property.externalUrl.urlParamValue && !property.value ? true : null\">\n <he-svg-icon [name]=\"property.externalUrl.icon || 'external-link'\" />\n </a>\n }\n </div>\n</ng-template>\n\n<ng-template #showProperty let-property>\n @if ((isOpen() || property.closedVisible) && !property.isHidden) {\n @if (property.properties.length) {\n <div class=\"is-flex is-flex-direction-column is-flex-wrap-wrap w-100 | properties-container\">\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-4 has-text-secondary w-100 | properties-container--title\"\n (click)=\"property.isOpen = !property.isOpen\"\n pointer\n [class.is-open]=\"property.isOpen\"\n [class.is-group-error-danger]=\"property.hasError\"\n [class.is-group-error-warning]=\"!property.hasError && property.hasWarning\">\n <div class=\"is-flex is-gap-8 has-text-weight-bold\">\n <!-- @if (property.schemaType === SchemaType.Term) {\n <he-node-icon [type]=\"property.schemaType\" />\n } -->\n <ng-container *ngTemplateOutlet=\"propertyKey; context: { property }\" />\n </div>\n <he-svg-icon [name]=\"property.isOpen ? 'minus' : 'plus'\" />\n </div>\n @if (property.isOpen) {\n @if (property.error) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property, classes: 'is-my-1 is-px-3' }\" />\n }\n @if (property.isArray) {\n <div class=\"py-2 px-3 w-100\">\n @if (property.hasError) {\n <div class=\"is-flex is-align-items-center is-size-7 is-italic is-mb-2 has-text-warning\">\n <he-svg-icon name=\"exclamation-triangle\" />\n @if (showAllErrors()) {\n <a class=\"is-pl-2\" (click)=\"showAllErrors.set(false)\">Only show items in error.</a>\n } @else {\n <span class=\"is-pl-2\">Only showing items in error.</span>\n <a class=\"is-pl-1\" (click)=\"showAllErrors.set(true)\">Show all items</a>\n }\n </div>\n }\n\n @for (prop2 of property.properties; track trackByProperty($index, prop2)) {\n @if (prop2.key && (showAllErrors() || !property.hasError || prop2.hasError)) {\n <div class=\"pt-2 my-4 | property-array-container\" [id]=\"prop2.fullKey + '_' + prop2.id\">\n <div class=\"ml-2 is-mb-2 | property-array-number\">\n <span class=\"has-text-info is-px-1 | number-tag\">{{ prop2.key }}</span>\n </div>\n @if (prop2.error) {\n <ng-container\n *ngTemplateOutlet=\"propertyError; context: { property: prop2, classes: 'is-py-1 is-px-3' }\" />\n }\n <div class=\"p-3\">\n <div class=\"is-flex is-flex-direction-row is-flex-wrap-wrap is-align-self-stretch\">\n @for (prop3 of prop2.properties; track trackByProperty($index, prop3)) {\n <ng-container *ngTemplateOutlet=\"showProperty; context: { $implicit: prop3 }\" />\n }\n </div>\n </div>\n </div>\n }\n }\n </div>\n } @else {\n <div class=\"is-flex is-flex-direction-row is-flex-wrap-wrap is-align-self-stretch\">\n @for (prop2 of property.properties; track trackByProperty($index, prop2)) {\n <ng-container *ngTemplateOutlet=\"showProperty; context: { $implicit: prop2 }\" />\n }\n </div>\n }\n }\n </div>\n } @else {\n <div\n class=\"is-flex is-flex-direction-column is-gap-4 | property-container\"\n [class.is-error-danger]=\"property.hasError\"\n [class.is-error-warning]=\"!property.hasError && property.hasWarning\">\n <div\n class=\"is-flex is-flex-direction-row is-align-items-center is-justify-content-space-between is-gap-4 | field-container\">\n @if (property.key) {\n <ng-container *ngTemplateOutlet=\"propertyContent; context: { property }\" />\n }\n </div>\n @if (property.hasError || property.hasWarning) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property }\" />\n }\n </div>\n }\n }\n</ng-template>\n\n<ng-template #propertyError let-property=\"property\" let-classes=\"classes\">\n @if (property.error?.message) {\n <div\n class=\"is-flex is-flex-direction-row is-gap-8 is-size-6 is-m-0 w-100 has-text-grey {{ classes }} | property-error\"\n [class.is-error-danger]=\"property.hasError\"\n [class.is-error-warning]=\"!property.hasError && property.hasWarning\">\n @if (property.hasError) {\n <he-svg-icon name=\"xmark-circle\" size=\"24\" class=\"has-text-danger is-flex-grow-0\" />\n } @else {\n <he-svg-icon name=\"exclamation-triangle\" size=\"24\" class=\"has-text-warning is-flex-grow-0\" />\n }\n\n <div class=\"is-flex is-flex-grow-1\">\n <span [innerHTML]=\"property.error.message\"></span>\n </div>\n\n @if (errorGuidePrefix() && property.errorGuidePageId) {\n <he-guide-overlay class=\"is-flex-grow-0\" [pageId]=\"errorGuidePrefix() + property.errorGuidePageId\" />\n }\n\n @if (property.error.index >= 0) {\n @if (property.hasWarning) {\n <a (click)=\"resolveError(property)\">\n <he-svg-icon name=\"checkmark\" />\n <span class=\"is-pl-2\">Resolved</span>\n </a>\n }\n }\n </div>\n }\n</ng-template>\n\n<ng-template #propertyMap let-property>\n @if (showMap()) {\n <div class=\"is-flex is-flex-direction-column is-flex-wrap-wrap w-100 | properties-container\">\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-4 w-100 | properties-container--title\"\n (click)=\"mapVisible.set(!mapVisible())\"\n pointer\n [class.is-open]=\"mapVisible()\">\n <span class=\"is-size-6\">View on Map</span>\n <he-svg-icon [name]=\"mapVisible() ? 'minus' : 'plus'\" />\n </div>\n @if (mapVisible()) {\n <he-sites-maps [sites]=\"[node()]\" [showNotice]=\"false\" />\n }\n </div>\n }\n</ng-template>\n\n<ng-template #nodeLink let-url=\"url\" let-nodeType=\"nodeType\">\n <a class=\"external-link\" [href]=\"url\" target=\"_blank\" (click)=\"$event.stopPropagation()\">\n <span class=\"is-hidden-mobile\">View</span>\n <span class=\"is-hidden-mobile is-pl-1\">{{ nodeType }}</span>\n <he-svg-icon name=\"external-link\" class=\"ml-2\" />\n </a>\n</ng-template>\n", styles: [".notification{color:#0a0a0a!important}.notification.is-success{background-color:#d5f3d8}.notification.is-success *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-success>fa-icon,.notification.is-success *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-success>he-svg-icon{color:#48c78e}.notification.is-info{background-color:#d3ebed}.notification.is-info *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-info>fa-icon,.notification.is-info *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-info>he-svg-icon{color:#249da5}.notification.is-warning{background-color:#ffdec0}.notification.is-warning *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-warning>fa-icon,.notification.is-warning *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-warning>he-svg-icon{color:#ff881b}.notification.is-danger{background-color:#ffcdd0}.notification.is-danger *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-danger>fa-icon,.notification.is-danger *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-danger>he-svg-icon{color:#ff3844}he-sites-maps{height:200px}.external-link{color:#4c7194}.files-form-container{box-shadow:2px 2px 4px #00000029;background-color:#fff}.files-form-header{padding:10px 12px;background-color:#dbe3ea;border-top-left-radius:3px;border-top-right-radius:3px}.properties-container--title,.property-container{padding:6px 12px}.property-container{flex:none;flex-grow:1;min-width:50%;max-width:100%;border:1px solid #f5f5f5}.property-container.is-error-danger{border-color:#ff3844}.property-container.is-error-warning{border-color:#ff881b}.properties-container--title{border-top:1px solid #dbe3ea;border-bottom:1px solid #dbe3ea;background:#f5f7f9}.properties-container .properties-container{border-radius:6px;border:1px solid #dbe3ea;margin:4px 0}.properties-container .properties-container--title{border-top:none}.property-internal{color:#249da5}.property-key,.property-value{word-break:break-word}.property-array-container{border-radius:6px;border:1px solid #dbdbdb}.number-tag{border:1px solid #249da5;border-radius:50%}.copy-button{visibility:hidden}.field-container:hover .copy-button{visibility:visible}.is-group-error-danger{background-color:#ffcdd0}.is-group-error-warning{background-color:#ffdec0}.property-error.is-error-danger{background-color:#ffeced}.field-container+.property-error.is-error-danger{background-color:transparent;color:#ff3844!important}.property-error.is-error-warning{background-color:#fff5ec}.field-container+.property-error.is-error-warning{background-color:transparent;color:#ff881b!important}::ng-deep .property-tooltip{background-color:#fff;color:#0a0a0a;border:1px solid #dbdbdb;z-index:11;max-width:50vw;max-height:50vh;overflow:auto}::ng-deep .property-tooltip pre{white-space:pre-wrap}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MarkdownComponent, selector: "markdown, [markdown]", inputs: ["data", "src", "disableSanitizer", "inline", "clipboard", "clipboardButtonComponent", "clipboardButtonTemplate", "emoji", "katex", "katexOptions", "mermaid", "mermaidOptions", "lineHighlight", "line", "lineOffset", "lineNumbers", "start", "commandLine", "filterOutput", "host", "prompt", "output", "user"], outputs: ["error", "load", "ready"] }, { kind: "directive", type: NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: NodeIconComponent, selector: "he-node-icon", inputs: ["type", "size"] }, { kind: "component", type: SitesMapsComponent, selector: "he-sites-maps", inputs: ["loadPolygons", "sites", "zoom", "showNotice"] }, { kind: "component", type: HESvgIconComponent, selector: "he-svg-icon", inputs: ["name", "size", "animation"] }, { kind: "component", type: ClipboardComponent, selector: "he-clipboard", inputs: ["icon", "value", "disabled", "hideText", "hideIcon", "size", "clipboardClass", "tooltipPlacement"] }, { kind: "component", type: GuideOverlayComponent, selector: "he-guide-overlay", inputs: ["pageId", "width", "height", "positions"], outputs: ["widthChange", "heightChange"] }, { kind: "pipe", type: EllipsisPipe, name: "ellipsis" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13658
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: FilesFormComponent, isStandalone: true, selector: "he-files-form", inputs: { isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, showNodeLink: { classPropertyName: "showNodeLink", publicName: "showNodeLink", isSignal: true, isRequired: false, transformFunction: null }, errorGuidePrefix: { classPropertyName: "errorGuidePrefix", publicName: "errorGuidePrefix", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpen: "isOpenChange", nodeErorrResolved: "nodeErorrResolved" }, exportAs: ["filesForm"], ngImport: i0, template: "<div class=\"is-flex is-flex-direction-column is-align-items-flex-start is-align-self-stretch | files-form-container\">\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-align-items-center is-align-self-stretch is-gap-16 px-4 py-2 has-text-secondary | files-form-header\"\n (click)=\"isOpen.set(!isOpen())\"\n pointer>\n <div class=\"is-flex is-gap-8 is-align-items-center\">\n @if (nodeProperty()) {\n <he-node-icon class=\"is-flex\" [type]=\"schemaType()\" [size]=\"24\" />\n <span class=\"has-text-weight-bold has-text-secondary is-size-5\">{{ schemaType() }}</span>\n @if (nodeProperty().hasError || hasError()) {\n <he-svg-icon name=\"xmark-circle\" class=\"has-text-danger is-flex is-align-items-center\" />\n <span class=\"has-text-danger has-text-weight-bold is-italic\">Error</span>\n } @else if (nodeProperty().hasWarning || hasWarning()) {\n <he-svg-icon name=\"exclamation-triangle\" class=\"has-text-warning is-flex is-align-items-center\" />\n <span class=\"has-text-warning has-text-weight-bold is-italic\">Warning</span>\n }\n }\n </div>\n @if ((showNodeLink() && nodeUrl()) || canOpen()) {\n <div class=\"is-flex is-flex-direction-row is-align-items-center is-gap-16\">\n @if (showNodeLink() && nodeUrl()) {\n <ng-container *ngTemplateOutlet=\"nodeLink; context: { url: nodeUrl(), nodeType: schemaType() }\" />\n }\n @if (canOpen()) {\n <he-svg-icon [name]=\"isOpen() ? 'minus' : 'plus'\" />\n }\n </div>\n }\n </div>\n\n <div class=\"is-flex is-flex-direction-column is-align-items-flex-start is-align-self-stretch\">\n @if (isOpen()) {\n @if (nodeProperty()?.error) {\n <ng-container\n *ngTemplateOutlet=\"\n propertyError;\n context: { property: nodeProperty(), classes: 'is-my-1 is-py-1 is-px-3' }\n \" />\n }\n }\n\n @if (unmatchedErrors().length) {\n @for (property of unmatchedErrors(); track property.id) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property, classes: 'is-my-1 is-py-1 is-px-3' }\" />\n }\n }\n\n <div class=\"is-flex is-flex-direction-row is-flex-wrap-wrap is-align-self-stretch\">\n @for (property of properties(); track trackByProperty($index, property)) {\n <ng-container *ngTemplateOutlet=\"showProperty; context: { $implicit: property }\" />\n }\n </div>\n\n @if (isOpen()) {\n <ng-container *ngTemplateOutlet=\"propertyMap; context: { $implicit: nodeProperty() }\" />\n }\n </div>\n\n <ng-content />\n</div>\n\n<ng-template #propertyKeyTooltip let-property=\"property\">\n <markdown [data]=\"property.schema.description\" />\n</ng-template>\n\n<ng-template #propertyKey let-property=\"property\">\n @if (property.schema?.description) {\n <span\n class=\"trigger-popover | property-key\"\n [ngbTooltip]=\"propertyKeyTooltip\"\n [tooltipContext]=\"{ property }\"\n triggers=\"click\"\n autoClose=\"outside\"\n tooltipClass=\"property-tooltip\"\n placement=\"bottom-left auto\"\n container=\"body\"\n (click)=\"$event.stopPropagation()\">\n <span>{{ property.key }}</span>\n </span>\n } @else {\n <span>{{ property.key }}</span>\n }\n</ng-template>\n\n<ng-template #propertyContent let-property=\"property\">\n <div class=\"is-flex is-align-items-center is-flex-wrap-wrap is-gap-4\">\n <div class=\"is-flex has-text-secondary\">\n <ng-container *ngTemplateOutlet=\"propertyKey; context: { property }\" />\n <span>:</span>\n </div>\n\n @if (property.isCollapsible && property.showMaxLength) {\n <span class=\"is-flex is-size-7 | property-value\">\n {{ property.value | ellipsis: property.showMaxLength }}\n </span>\n\n <a class=\"is-flex is-size-7\" (click)=\"property.showMaxLength = 0\">Show more</a>\n } @else {\n <span class=\"is-flex is-size-7 | property-value\">\n {{ property.value }}\n </span>\n }\n\n @if (property.schema?.internal && property.key !== 'originalId') {\n <div class=\"property-internal\" ngbTooltip=\"This value is auto-generated.\">\n <he-svg-icon name=\"autogenerate-circle\" />\n </div>\n }\n\n <div class=\"copy-button\">\n <he-clipboard [value]=\"property.value\" [hideText]=\"true\" />\n </div>\n </div>\n\n <div class=\"is-flex is-gap-8\">\n @if (property.externalUrl?.url) {\n <a\n [href]=\"property.externalUrl.url + (property.externalUrl.urlParamValue ? property.value : '')\"\n target=\"_blank\"\n [title]=\"property.externalUrl.title\"\n class=\"ml-2\"\n [ngClass]=\"{ 'is-info': property.key === 'type' }\"\n [attr.disabled]=\"property.externalUrl.urlParamValue && !property.value ? true : null\">\n <he-svg-icon [name]=\"property.externalUrl.icon || 'external-link'\" />\n </a>\n }\n </div>\n</ng-template>\n\n<ng-template #showProperty let-property>\n @if ((isOpen() || property.closedVisible) && !property.isHidden) {\n @if (property.properties.length) {\n <div class=\"is-flex is-flex-direction-column is-flex-wrap-wrap w-100 | properties-container\">\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-4 has-text-secondary w-100 | properties-container--title\"\n (click)=\"property.isOpen = !property.isOpen\"\n pointer\n [class.is-open]=\"property.isOpen\"\n [class.is-group-error-danger]=\"property.hasError\"\n [class.is-group-error-warning]=\"!property.hasError && property.hasWarning\">\n <div class=\"is-flex is-gap-8 has-text-weight-bold\">\n <!-- @if (property.schemaType === SchemaType.Term) {\n <he-node-icon [type]=\"property.schemaType\" />\n } -->\n <ng-container *ngTemplateOutlet=\"propertyKey; context: { property }\" />\n </div>\n <he-svg-icon [name]=\"property.isOpen ? 'minus' : 'plus'\" />\n </div>\n @if (property.isOpen) {\n @if (property.error) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property, classes: 'is-my-1 is-px-3' }\" />\n }\n @if (property.isArray) {\n <div class=\"py-2 px-3 w-100\">\n @if (property.hasError) {\n <div class=\"is-flex is-align-items-center is-size-7 is-italic is-mb-2 has-text-warning\">\n <he-svg-icon name=\"exclamation-triangle\" />\n @if (showAllErrors()) {\n <a class=\"is-pl-2\" (click)=\"showAllErrors.set(false)\">Only show items in error.</a>\n } @else {\n <span class=\"is-pl-2\">Only showing items in error.</span>\n <a class=\"is-pl-1\" (click)=\"showAllErrors.set(true)\">Show all items</a>\n }\n </div>\n }\n\n @for (prop2 of property.properties; track trackByProperty($index, prop2)) {\n @if (prop2.key && (showAllErrors() || !property.hasError || prop2.hasError)) {\n <div class=\"pt-2 my-4 | property-array-container\" [id]=\"prop2.fullKey + '_' + prop2.id\">\n <div class=\"ml-2 is-mb-2 | property-array-number\">\n <span class=\"has-text-info is-px-1 | number-tag\">{{ prop2.key }}</span>\n </div>\n @if (prop2.error) {\n <ng-container\n *ngTemplateOutlet=\"propertyError; context: { property: prop2, classes: 'is-py-1 is-px-3' }\" />\n }\n <div class=\"p-3\">\n <div class=\"is-flex is-flex-direction-row is-flex-wrap-wrap is-align-self-stretch\">\n @for (prop3 of prop2.properties; track trackByProperty($index, prop3)) {\n <ng-container *ngTemplateOutlet=\"showProperty; context: { $implicit: prop3 }\" />\n }\n </div>\n </div>\n </div>\n }\n }\n </div>\n } @else {\n <div class=\"is-flex is-flex-direction-row is-flex-wrap-wrap is-align-self-stretch\">\n @for (prop2 of property.properties; track trackByProperty($index, prop2)) {\n <ng-container *ngTemplateOutlet=\"showProperty; context: { $implicit: prop2 }\" />\n }\n </div>\n }\n }\n </div>\n } @else {\n <div\n class=\"is-flex is-flex-direction-column is-gap-4 | property-container\"\n [class.is-error-danger]=\"property.hasError\"\n [class.is-error-warning]=\"!property.hasError && property.hasWarning\">\n <div\n class=\"is-flex is-flex-direction-row is-align-items-center is-justify-content-space-between is-gap-4 | field-container\">\n @if (property.key) {\n <ng-container *ngTemplateOutlet=\"propertyContent; context: { property }\" />\n }\n </div>\n @if (property.hasError || property.hasWarning) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property }\" />\n }\n </div>\n }\n }\n</ng-template>\n\n<ng-template #propertyError let-property=\"property\" let-classes=\"classes\">\n @if (property.error?.message) {\n <div\n class=\"is-flex is-flex-direction-row is-gap-8 is-size-6 is-m-0 w-100 has-text-grey {{ classes }} | property-error\"\n [class.is-error-danger]=\"property.hasError\"\n [class.is-error-warning]=\"!property.hasError && property.hasWarning\">\n @if (property.hasError) {\n <he-svg-icon name=\"xmark-circle\" size=\"24\" class=\"has-text-danger is-flex-grow-0\" />\n } @else {\n <he-svg-icon name=\"exclamation-triangle\" size=\"24\" class=\"has-text-warning is-flex-grow-0\" />\n }\n\n <div class=\"is-flex is-flex-grow-1\">\n <span [innerHTML]=\"property.error.message\"></span>\n </div>\n\n @if (errorGuidePrefix() && property.errorGuidePageId) {\n <he-guide-overlay class=\"is-flex-grow-0\" [pageId]=\"errorGuidePrefix() + property.errorGuidePageId\" />\n }\n\n @if (property.error.index >= 0) {\n @if (property.hasWarning) {\n <a (click)=\"resolveError(property)\">\n <he-svg-icon name=\"checkmark\" />\n <span class=\"is-pl-2\">Resolved</span>\n </a>\n }\n }\n </div>\n }\n</ng-template>\n\n<ng-template #propertyMap let-property>\n @if (showMap()) {\n <div class=\"is-flex is-flex-direction-column is-flex-wrap-wrap w-100 | properties-container\">\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-4 w-100 | properties-container--title\"\n (click)=\"mapVisible.set(!mapVisible())\"\n pointer\n [class.is-open]=\"mapVisible()\">\n <span class=\"is-size-6\">View on Map</span>\n <he-svg-icon [name]=\"mapVisible() ? 'minus' : 'plus'\" />\n </div>\n @if (mapVisible()) {\n <he-sites-maps [sites]=\"[node()]\" [showNotice]=\"false\" />\n }\n </div>\n }\n</ng-template>\n\n<ng-template #nodeLink let-url=\"url\" let-nodeType=\"nodeType\">\n <a class=\"external-link\" [href]=\"url\" target=\"_blank\" (click)=\"$event.stopPropagation()\">\n <span class=\"is-hidden-mobile\">View</span>\n <span class=\"is-hidden-mobile is-pl-1\">{{ nodeType }}</span>\n <he-svg-icon name=\"external-link\" class=\"ml-2\" />\n </a>\n</ng-template>\n", styles: [".notification{color:#0a0a0a!important}.notification.is-success{background-color:#d5f3d8}.notification.is-success *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-success>fa-icon,.notification.is-success *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-success>he-svg-icon{color:#2b8434}.notification.is-info{background-color:#d3ebed}.notification.is-info *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-info>fa-icon,.notification.is-info *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-info>he-svg-icon{color:#249da5}.notification.is-warning{background-color:#ffdec0}.notification.is-warning *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-warning>fa-icon,.notification.is-warning *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-warning>he-svg-icon{color:#ff881b}.notification.is-danger{background-color:#ffcdd0}.notification.is-danger *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-danger>fa-icon,.notification.is-danger *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-danger>he-svg-icon{color:#ff3844}he-sites-maps{height:200px}.external-link{color:#4c7194}.files-form-container{box-shadow:2px 2px 4px #00000029;background-color:#fff}.files-form-header{padding:10px 12px;background-color:#dbe3ea;border-top-left-radius:3px;border-top-right-radius:3px}.properties-container--title,.property-container{padding:6px 12px}.property-container{flex:none;flex-grow:1;min-width:50%;max-width:100%;border:1px solid #f5f5f5}.property-container.is-error-danger{border-color:#ff3844}.property-container.is-error-warning{border-color:#ff881b}.properties-container--title{border-top:1px solid #dbe3ea;border-bottom:1px solid #dbe3ea;background:#f5f7f9}.properties-container .properties-container{border-radius:6px;border:1px solid #dbe3ea;margin:4px 0}.properties-container .properties-container--title{border-top:none}.property-internal{color:#249da5}.property-key,.property-value{word-break:break-word}.property-array-container{border-radius:6px;border:1px solid #dbdbdb}.number-tag{border:1px solid #249da5;border-radius:50%}.copy-button{visibility:hidden}.field-container:hover .copy-button{visibility:visible}.is-group-error-danger{background-color:#ffcdd0}.is-group-error-warning{background-color:#ffdec0}.property-error.is-error-danger{background-color:#ffeced}.field-container+.property-error.is-error-danger{background-color:transparent;color:#ff3844!important}.property-error.is-error-warning{background-color:#fff5ec}.field-container+.property-error.is-error-warning{background-color:transparent;color:#ff881b!important}::ng-deep .property-tooltip{background-color:#fff;color:#0a0a0a;border:1px solid #dbdbdb;z-index:11;max-width:50vw;max-height:50vh;overflow:auto}::ng-deep .property-tooltip pre{white-space:pre-wrap}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MarkdownComponent, selector: "markdown, [markdown]", inputs: ["data", "src", "disableSanitizer", "inline", "clipboard", "clipboardButtonComponent", "clipboardButtonTemplate", "emoji", "katex", "katexOptions", "mermaid", "mermaidOptions", "lineHighlight", "line", "lineOffset", "lineNumbers", "start", "commandLine", "filterOutput", "host", "prompt", "output", "user"], outputs: ["error", "load", "ready"] }, { kind: "directive", type: NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: NodeIconComponent, selector: "he-node-icon", inputs: ["type", "size"] }, { kind: "component", type: SitesMapsComponent, selector: "he-sites-maps", inputs: ["loadPolygons", "sites", "zoom", "showNotice"] }, { kind: "component", type: HESvgIconComponent, selector: "he-svg-icon", inputs: ["name", "size", "animation"] }, { kind: "component", type: ClipboardComponent, selector: "he-clipboard", inputs: ["icon", "value", "disabled", "hideText", "hideIcon", "size", "clipboardClass", "tooltipPlacement"] }, { kind: "component", type: GuideOverlayComponent, selector: "he-guide-overlay", inputs: ["pageId", "width", "height", "positions"], outputs: ["widthChange", "heightChange"] }, { kind: "pipe", type: EllipsisPipe, name: "ellipsis" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13906
13659
  }
13907
13660
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FilesFormComponent, decorators: [{
13908
13661
  type: Component$1,
@@ -13918,7 +13671,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
13918
13671
  ClipboardComponent,
13919
13672
  GuideOverlayComponent,
13920
13673
  EllipsisPipe
13921
- ], template: "<div class=\"is-flex is-flex-direction-column is-align-items-flex-start is-align-self-stretch | files-form-container\">\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-align-items-center is-align-self-stretch is-gap-16 px-4 py-2 has-text-secondary | files-form-header\"\n (click)=\"isOpen.set(!isOpen())\"\n pointer>\n <div class=\"is-flex is-gap-8 is-align-items-center\">\n @if (nodeProperty()) {\n <he-node-icon class=\"is-flex\" [type]=\"schemaType()\" [size]=\"24\" />\n <span class=\"has-text-weight-bold has-text-secondary is-size-5\">{{ schemaType() }}</span>\n @if (nodeProperty().hasError || hasError()) {\n <he-svg-icon name=\"xmark-circle\" class=\"has-text-danger is-flex is-align-items-center\" />\n <span class=\"has-text-danger has-text-weight-bold is-italic\">Error</span>\n } @else if (nodeProperty().hasWarning || hasWarning()) {\n <he-svg-icon name=\"exclamation-triangle\" class=\"has-text-warning is-flex is-align-items-center\" />\n <span class=\"has-text-warning has-text-weight-bold is-italic\">Warning</span>\n }\n }\n </div>\n @if ((showNodeLink() && nodeUrl()) || canOpen()) {\n <div class=\"is-flex is-flex-direction-row is-align-items-center is-gap-16\">\n @if (showNodeLink() && nodeUrl()) {\n <ng-container *ngTemplateOutlet=\"nodeLink; context: { url: nodeUrl(), nodeType: schemaType() }\" />\n }\n @if (canOpen()) {\n <he-svg-icon [name]=\"isOpen() ? 'minus' : 'plus'\" />\n }\n </div>\n }\n </div>\n\n <div class=\"is-flex is-flex-direction-column is-align-items-flex-start is-align-self-stretch\">\n @if (isOpen()) {\n @if (nodeProperty()?.error) {\n <ng-container\n *ngTemplateOutlet=\"\n propertyError;\n context: { property: nodeProperty(), classes: 'is-my-1 is-py-1 is-px-3' }\n \" />\n }\n }\n\n @if (unmatchedErrors().length) {\n @for (property of unmatchedErrors(); track property.id) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property, classes: 'is-my-1 is-py-1 is-px-3' }\" />\n }\n }\n\n <div class=\"is-flex is-flex-direction-row is-flex-wrap-wrap is-align-self-stretch\">\n @for (property of properties(); track trackByProperty($index, property)) {\n <ng-container *ngTemplateOutlet=\"showProperty; context: { $implicit: property }\" />\n }\n </div>\n\n @if (isOpen()) {\n <ng-container *ngTemplateOutlet=\"propertyMap; context: { $implicit: nodeProperty() }\" />\n }\n </div>\n\n <ng-content />\n</div>\n\n<ng-template #propertyKeyTooltip let-property=\"property\">\n <markdown [data]=\"property.schema.description\" />\n</ng-template>\n\n<ng-template #propertyKey let-property=\"property\">\n @if (property.schema?.description) {\n <span\n class=\"trigger-popover | property-key\"\n [ngbTooltip]=\"propertyKeyTooltip\"\n [tooltipContext]=\"{ property }\"\n triggers=\"click\"\n autoClose=\"outside\"\n tooltipClass=\"property-tooltip\"\n placement=\"bottom-left auto\"\n container=\"body\"\n (click)=\"$event.stopPropagation()\">\n <span>{{ property.key }}</span>\n </span>\n } @else {\n <span>{{ property.key }}</span>\n }\n</ng-template>\n\n<ng-template #propertyContent let-property=\"property\">\n <div class=\"is-flex is-align-items-center is-flex-wrap-wrap is-gap-4\">\n <div class=\"is-flex has-text-secondary\">\n <ng-container *ngTemplateOutlet=\"propertyKey; context: { property }\" />\n <span>:</span>\n </div>\n\n @if (property.isCollapsible && property.showMaxLength) {\n <span class=\"is-flex is-size-7 | property-value\">\n {{ property.value | ellipsis: property.showMaxLength }}\n </span>\n\n <a class=\"is-flex is-size-7\" (click)=\"property.showMaxLength = 0\">Show more</a>\n } @else {\n <span class=\"is-flex is-size-7 | property-value\">\n {{ property.value }}\n </span>\n }\n\n @if (property.schema?.internal && property.key !== 'originalId') {\n <div class=\"property-internal\" ngbTooltip=\"This value is auto-generated.\">\n <he-svg-icon name=\"autogenerate-circle\" />\n </div>\n }\n\n <div class=\"copy-button\">\n <he-clipboard [value]=\"property.value\" [hideText]=\"true\" />\n </div>\n </div>\n\n <div class=\"is-flex is-gap-8\">\n @if (property.externalUrl?.url) {\n <a\n [href]=\"property.externalUrl.url + (property.externalUrl.urlParamValue ? property.value : '')\"\n target=\"_blank\"\n [title]=\"property.externalUrl.title\"\n class=\"ml-2\"\n [ngClass]=\"{ 'is-info': property.key === 'type' }\"\n [attr.disabled]=\"property.externalUrl.urlParamValue && !property.value ? true : null\">\n <he-svg-icon [name]=\"property.externalUrl.icon || 'external-link'\" />\n </a>\n }\n </div>\n</ng-template>\n\n<ng-template #showProperty let-property>\n @if ((isOpen() || property.closedVisible) && !property.isHidden) {\n @if (property.properties.length) {\n <div class=\"is-flex is-flex-direction-column is-flex-wrap-wrap w-100 | properties-container\">\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-4 has-text-secondary w-100 | properties-container--title\"\n (click)=\"property.isOpen = !property.isOpen\"\n pointer\n [class.is-open]=\"property.isOpen\"\n [class.is-group-error-danger]=\"property.hasError\"\n [class.is-group-error-warning]=\"!property.hasError && property.hasWarning\">\n <div class=\"is-flex is-gap-8 has-text-weight-bold\">\n <!-- @if (property.schemaType === SchemaType.Term) {\n <he-node-icon [type]=\"property.schemaType\" />\n } -->\n <ng-container *ngTemplateOutlet=\"propertyKey; context: { property }\" />\n </div>\n <he-svg-icon [name]=\"property.isOpen ? 'minus' : 'plus'\" />\n </div>\n @if (property.isOpen) {\n @if (property.error) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property, classes: 'is-my-1 is-px-3' }\" />\n }\n @if (property.isArray) {\n <div class=\"py-2 px-3 w-100\">\n @if (property.hasError) {\n <div class=\"is-flex is-align-items-center is-size-7 is-italic is-mb-2 has-text-warning\">\n <he-svg-icon name=\"exclamation-triangle\" />\n @if (showAllErrors()) {\n <a class=\"is-pl-2\" (click)=\"showAllErrors.set(false)\">Only show items in error.</a>\n } @else {\n <span class=\"is-pl-2\">Only showing items in error.</span>\n <a class=\"is-pl-1\" (click)=\"showAllErrors.set(true)\">Show all items</a>\n }\n </div>\n }\n\n @for (prop2 of property.properties; track trackByProperty($index, prop2)) {\n @if (prop2.key && (showAllErrors() || !property.hasError || prop2.hasError)) {\n <div class=\"pt-2 my-4 | property-array-container\" [id]=\"prop2.fullKey + '_' + prop2.id\">\n <div class=\"ml-2 is-mb-2 | property-array-number\">\n <span class=\"has-text-info is-px-1 | number-tag\">{{ prop2.key }}</span>\n </div>\n @if (prop2.error) {\n <ng-container\n *ngTemplateOutlet=\"propertyError; context: { property: prop2, classes: 'is-py-1 is-px-3' }\" />\n }\n <div class=\"p-3\">\n <div class=\"is-flex is-flex-direction-row is-flex-wrap-wrap is-align-self-stretch\">\n @for (prop3 of prop2.properties; track trackByProperty($index, prop3)) {\n <ng-container *ngTemplateOutlet=\"showProperty; context: { $implicit: prop3 }\" />\n }\n </div>\n </div>\n </div>\n }\n }\n </div>\n } @else {\n <div class=\"is-flex is-flex-direction-row is-flex-wrap-wrap is-align-self-stretch\">\n @for (prop2 of property.properties; track trackByProperty($index, prop2)) {\n <ng-container *ngTemplateOutlet=\"showProperty; context: { $implicit: prop2 }\" />\n }\n </div>\n }\n }\n </div>\n } @else {\n <div\n class=\"is-flex is-flex-direction-column is-gap-4 | property-container\"\n [class.is-error-danger]=\"property.hasError\"\n [class.is-error-warning]=\"!property.hasError && property.hasWarning\">\n <div\n class=\"is-flex is-flex-direction-row is-align-items-center is-justify-content-space-between is-gap-4 | field-container\">\n @if (property.key) {\n <ng-container *ngTemplateOutlet=\"propertyContent; context: { property }\" />\n }\n </div>\n @if (property.hasError || property.hasWarning) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property }\" />\n }\n </div>\n }\n }\n</ng-template>\n\n<ng-template #propertyError let-property=\"property\" let-classes=\"classes\">\n @if (property.error?.message) {\n <div\n class=\"is-flex is-flex-direction-row is-gap-8 is-size-6 is-m-0 w-100 has-text-grey {{ classes }} | property-error\"\n [class.is-error-danger]=\"property.hasError\"\n [class.is-error-warning]=\"!property.hasError && property.hasWarning\">\n @if (property.hasError) {\n <he-svg-icon name=\"xmark-circle\" size=\"24\" class=\"has-text-danger is-flex-grow-0\" />\n } @else {\n <he-svg-icon name=\"exclamation-triangle\" size=\"24\" class=\"has-text-warning is-flex-grow-0\" />\n }\n\n <div class=\"is-flex is-flex-grow-1\">\n <span [innerHTML]=\"property.error.message\"></span>\n </div>\n\n @if (errorGuidePrefix() && property.errorGuidePageId) {\n <he-guide-overlay class=\"is-flex-grow-0\" [pageId]=\"errorGuidePrefix() + property.errorGuidePageId\" />\n }\n\n @if (property.error.index >= 0) {\n @if (property.hasWarning) {\n <a (click)=\"resolveError(property)\">\n <he-svg-icon name=\"checkmark\" />\n <span class=\"is-pl-2\">Resolved</span>\n </a>\n }\n }\n </div>\n }\n</ng-template>\n\n<ng-template #propertyMap let-property>\n @if (showMap()) {\n <div class=\"is-flex is-flex-direction-column is-flex-wrap-wrap w-100 | properties-container\">\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-4 w-100 | properties-container--title\"\n (click)=\"mapVisible.set(!mapVisible())\"\n pointer\n [class.is-open]=\"mapVisible()\">\n <span class=\"is-size-6\">View on Map</span>\n <he-svg-icon [name]=\"mapVisible() ? 'minus' : 'plus'\" />\n </div>\n @if (mapVisible()) {\n <he-sites-maps [sites]=\"[node()]\" [showNotice]=\"false\" />\n }\n </div>\n }\n</ng-template>\n\n<ng-template #nodeLink let-url=\"url\" let-nodeType=\"nodeType\">\n <a class=\"external-link\" [href]=\"url\" target=\"_blank\" (click)=\"$event.stopPropagation()\">\n <span class=\"is-hidden-mobile\">View</span>\n <span class=\"is-hidden-mobile is-pl-1\">{{ nodeType }}</span>\n <he-svg-icon name=\"external-link\" class=\"ml-2\" />\n </a>\n</ng-template>\n", styles: [".notification{color:#0a0a0a!important}.notification.is-success{background-color:#d5f3d8}.notification.is-success *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-success>fa-icon,.notification.is-success *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-success>he-svg-icon{color:#48c78e}.notification.is-info{background-color:#d3ebed}.notification.is-info *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-info>fa-icon,.notification.is-info *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-info>he-svg-icon{color:#249da5}.notification.is-warning{background-color:#ffdec0}.notification.is-warning *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-warning>fa-icon,.notification.is-warning *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-warning>he-svg-icon{color:#ff881b}.notification.is-danger{background-color:#ffcdd0}.notification.is-danger *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-danger>fa-icon,.notification.is-danger *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-danger>he-svg-icon{color:#ff3844}he-sites-maps{height:200px}.external-link{color:#4c7194}.files-form-container{box-shadow:2px 2px 4px #00000029;background-color:#fff}.files-form-header{padding:10px 12px;background-color:#dbe3ea;border-top-left-radius:3px;border-top-right-radius:3px}.properties-container--title,.property-container{padding:6px 12px}.property-container{flex:none;flex-grow:1;min-width:50%;max-width:100%;border:1px solid #f5f5f5}.property-container.is-error-danger{border-color:#ff3844}.property-container.is-error-warning{border-color:#ff881b}.properties-container--title{border-top:1px solid #dbe3ea;border-bottom:1px solid #dbe3ea;background:#f5f7f9}.properties-container .properties-container{border-radius:6px;border:1px solid #dbe3ea;margin:4px 0}.properties-container .properties-container--title{border-top:none}.property-internal{color:#249da5}.property-key,.property-value{word-break:break-word}.property-array-container{border-radius:6px;border:1px solid #dbdbdb}.number-tag{border:1px solid #249da5;border-radius:50%}.copy-button{visibility:hidden}.field-container:hover .copy-button{visibility:visible}.is-group-error-danger{background-color:#ffcdd0}.is-group-error-warning{background-color:#ffdec0}.property-error.is-error-danger{background-color:#ffeced}.field-container+.property-error.is-error-danger{background-color:transparent;color:#ff3844!important}.property-error.is-error-warning{background-color:#fff5ec}.field-container+.property-error.is-error-warning{background-color:transparent;color:#ff881b!important}::ng-deep .property-tooltip{background-color:#fff;color:#0a0a0a;border:1px solid #dbdbdb;z-index:11;max-width:50vw;max-height:50vh;overflow:auto}::ng-deep .property-tooltip pre{white-space:pre-wrap}\n"] }]
13674
+ ], template: "<div class=\"is-flex is-flex-direction-column is-align-items-flex-start is-align-self-stretch | files-form-container\">\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-align-items-center is-align-self-stretch is-gap-16 px-4 py-2 has-text-secondary | files-form-header\"\n (click)=\"isOpen.set(!isOpen())\"\n pointer>\n <div class=\"is-flex is-gap-8 is-align-items-center\">\n @if (nodeProperty()) {\n <he-node-icon class=\"is-flex\" [type]=\"schemaType()\" [size]=\"24\" />\n <span class=\"has-text-weight-bold has-text-secondary is-size-5\">{{ schemaType() }}</span>\n @if (nodeProperty().hasError || hasError()) {\n <he-svg-icon name=\"xmark-circle\" class=\"has-text-danger is-flex is-align-items-center\" />\n <span class=\"has-text-danger has-text-weight-bold is-italic\">Error</span>\n } @else if (nodeProperty().hasWarning || hasWarning()) {\n <he-svg-icon name=\"exclamation-triangle\" class=\"has-text-warning is-flex is-align-items-center\" />\n <span class=\"has-text-warning has-text-weight-bold is-italic\">Warning</span>\n }\n }\n </div>\n @if ((showNodeLink() && nodeUrl()) || canOpen()) {\n <div class=\"is-flex is-flex-direction-row is-align-items-center is-gap-16\">\n @if (showNodeLink() && nodeUrl()) {\n <ng-container *ngTemplateOutlet=\"nodeLink; context: { url: nodeUrl(), nodeType: schemaType() }\" />\n }\n @if (canOpen()) {\n <he-svg-icon [name]=\"isOpen() ? 'minus' : 'plus'\" />\n }\n </div>\n }\n </div>\n\n <div class=\"is-flex is-flex-direction-column is-align-items-flex-start is-align-self-stretch\">\n @if (isOpen()) {\n @if (nodeProperty()?.error) {\n <ng-container\n *ngTemplateOutlet=\"\n propertyError;\n context: { property: nodeProperty(), classes: 'is-my-1 is-py-1 is-px-3' }\n \" />\n }\n }\n\n @if (unmatchedErrors().length) {\n @for (property of unmatchedErrors(); track property.id) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property, classes: 'is-my-1 is-py-1 is-px-3' }\" />\n }\n }\n\n <div class=\"is-flex is-flex-direction-row is-flex-wrap-wrap is-align-self-stretch\">\n @for (property of properties(); track trackByProperty($index, property)) {\n <ng-container *ngTemplateOutlet=\"showProperty; context: { $implicit: property }\" />\n }\n </div>\n\n @if (isOpen()) {\n <ng-container *ngTemplateOutlet=\"propertyMap; context: { $implicit: nodeProperty() }\" />\n }\n </div>\n\n <ng-content />\n</div>\n\n<ng-template #propertyKeyTooltip let-property=\"property\">\n <markdown [data]=\"property.schema.description\" />\n</ng-template>\n\n<ng-template #propertyKey let-property=\"property\">\n @if (property.schema?.description) {\n <span\n class=\"trigger-popover | property-key\"\n [ngbTooltip]=\"propertyKeyTooltip\"\n [tooltipContext]=\"{ property }\"\n triggers=\"click\"\n autoClose=\"outside\"\n tooltipClass=\"property-tooltip\"\n placement=\"bottom-left auto\"\n container=\"body\"\n (click)=\"$event.stopPropagation()\">\n <span>{{ property.key }}</span>\n </span>\n } @else {\n <span>{{ property.key }}</span>\n }\n</ng-template>\n\n<ng-template #propertyContent let-property=\"property\">\n <div class=\"is-flex is-align-items-center is-flex-wrap-wrap is-gap-4\">\n <div class=\"is-flex has-text-secondary\">\n <ng-container *ngTemplateOutlet=\"propertyKey; context: { property }\" />\n <span>:</span>\n </div>\n\n @if (property.isCollapsible && property.showMaxLength) {\n <span class=\"is-flex is-size-7 | property-value\">\n {{ property.value | ellipsis: property.showMaxLength }}\n </span>\n\n <a class=\"is-flex is-size-7\" (click)=\"property.showMaxLength = 0\">Show more</a>\n } @else {\n <span class=\"is-flex is-size-7 | property-value\">\n {{ property.value }}\n </span>\n }\n\n @if (property.schema?.internal && property.key !== 'originalId') {\n <div class=\"property-internal\" ngbTooltip=\"This value is auto-generated.\">\n <he-svg-icon name=\"autogenerate-circle\" />\n </div>\n }\n\n <div class=\"copy-button\">\n <he-clipboard [value]=\"property.value\" [hideText]=\"true\" />\n </div>\n </div>\n\n <div class=\"is-flex is-gap-8\">\n @if (property.externalUrl?.url) {\n <a\n [href]=\"property.externalUrl.url + (property.externalUrl.urlParamValue ? property.value : '')\"\n target=\"_blank\"\n [title]=\"property.externalUrl.title\"\n class=\"ml-2\"\n [ngClass]=\"{ 'is-info': property.key === 'type' }\"\n [attr.disabled]=\"property.externalUrl.urlParamValue && !property.value ? true : null\">\n <he-svg-icon [name]=\"property.externalUrl.icon || 'external-link'\" />\n </a>\n }\n </div>\n</ng-template>\n\n<ng-template #showProperty let-property>\n @if ((isOpen() || property.closedVisible) && !property.isHidden) {\n @if (property.properties.length) {\n <div class=\"is-flex is-flex-direction-column is-flex-wrap-wrap w-100 | properties-container\">\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-4 has-text-secondary w-100 | properties-container--title\"\n (click)=\"property.isOpen = !property.isOpen\"\n pointer\n [class.is-open]=\"property.isOpen\"\n [class.is-group-error-danger]=\"property.hasError\"\n [class.is-group-error-warning]=\"!property.hasError && property.hasWarning\">\n <div class=\"is-flex is-gap-8 has-text-weight-bold\">\n <!-- @if (property.schemaType === SchemaType.Term) {\n <he-node-icon [type]=\"property.schemaType\" />\n } -->\n <ng-container *ngTemplateOutlet=\"propertyKey; context: { property }\" />\n </div>\n <he-svg-icon [name]=\"property.isOpen ? 'minus' : 'plus'\" />\n </div>\n @if (property.isOpen) {\n @if (property.error) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property, classes: 'is-my-1 is-px-3' }\" />\n }\n @if (property.isArray) {\n <div class=\"py-2 px-3 w-100\">\n @if (property.hasError) {\n <div class=\"is-flex is-align-items-center is-size-7 is-italic is-mb-2 has-text-warning\">\n <he-svg-icon name=\"exclamation-triangle\" />\n @if (showAllErrors()) {\n <a class=\"is-pl-2\" (click)=\"showAllErrors.set(false)\">Only show items in error.</a>\n } @else {\n <span class=\"is-pl-2\">Only showing items in error.</span>\n <a class=\"is-pl-1\" (click)=\"showAllErrors.set(true)\">Show all items</a>\n }\n </div>\n }\n\n @for (prop2 of property.properties; track trackByProperty($index, prop2)) {\n @if (prop2.key && (showAllErrors() || !property.hasError || prop2.hasError)) {\n <div class=\"pt-2 my-4 | property-array-container\" [id]=\"prop2.fullKey + '_' + prop2.id\">\n <div class=\"ml-2 is-mb-2 | property-array-number\">\n <span class=\"has-text-info is-px-1 | number-tag\">{{ prop2.key }}</span>\n </div>\n @if (prop2.error) {\n <ng-container\n *ngTemplateOutlet=\"propertyError; context: { property: prop2, classes: 'is-py-1 is-px-3' }\" />\n }\n <div class=\"p-3\">\n <div class=\"is-flex is-flex-direction-row is-flex-wrap-wrap is-align-self-stretch\">\n @for (prop3 of prop2.properties; track trackByProperty($index, prop3)) {\n <ng-container *ngTemplateOutlet=\"showProperty; context: { $implicit: prop3 }\" />\n }\n </div>\n </div>\n </div>\n }\n }\n </div>\n } @else {\n <div class=\"is-flex is-flex-direction-row is-flex-wrap-wrap is-align-self-stretch\">\n @for (prop2 of property.properties; track trackByProperty($index, prop2)) {\n <ng-container *ngTemplateOutlet=\"showProperty; context: { $implicit: prop2 }\" />\n }\n </div>\n }\n }\n </div>\n } @else {\n <div\n class=\"is-flex is-flex-direction-column is-gap-4 | property-container\"\n [class.is-error-danger]=\"property.hasError\"\n [class.is-error-warning]=\"!property.hasError && property.hasWarning\">\n <div\n class=\"is-flex is-flex-direction-row is-align-items-center is-justify-content-space-between is-gap-4 | field-container\">\n @if (property.key) {\n <ng-container *ngTemplateOutlet=\"propertyContent; context: { property }\" />\n }\n </div>\n @if (property.hasError || property.hasWarning) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property }\" />\n }\n </div>\n }\n }\n</ng-template>\n\n<ng-template #propertyError let-property=\"property\" let-classes=\"classes\">\n @if (property.error?.message) {\n <div\n class=\"is-flex is-flex-direction-row is-gap-8 is-size-6 is-m-0 w-100 has-text-grey {{ classes }} | property-error\"\n [class.is-error-danger]=\"property.hasError\"\n [class.is-error-warning]=\"!property.hasError && property.hasWarning\">\n @if (property.hasError) {\n <he-svg-icon name=\"xmark-circle\" size=\"24\" class=\"has-text-danger is-flex-grow-0\" />\n } @else {\n <he-svg-icon name=\"exclamation-triangle\" size=\"24\" class=\"has-text-warning is-flex-grow-0\" />\n }\n\n <div class=\"is-flex is-flex-grow-1\">\n <span [innerHTML]=\"property.error.message\"></span>\n </div>\n\n @if (errorGuidePrefix() && property.errorGuidePageId) {\n <he-guide-overlay class=\"is-flex-grow-0\" [pageId]=\"errorGuidePrefix() + property.errorGuidePageId\" />\n }\n\n @if (property.error.index >= 0) {\n @if (property.hasWarning) {\n <a (click)=\"resolveError(property)\">\n <he-svg-icon name=\"checkmark\" />\n <span class=\"is-pl-2\">Resolved</span>\n </a>\n }\n }\n </div>\n }\n</ng-template>\n\n<ng-template #propertyMap let-property>\n @if (showMap()) {\n <div class=\"is-flex is-flex-direction-column is-flex-wrap-wrap w-100 | properties-container\">\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-4 w-100 | properties-container--title\"\n (click)=\"mapVisible.set(!mapVisible())\"\n pointer\n [class.is-open]=\"mapVisible()\">\n <span class=\"is-size-6\">View on Map</span>\n <he-svg-icon [name]=\"mapVisible() ? 'minus' : 'plus'\" />\n </div>\n @if (mapVisible()) {\n <he-sites-maps [sites]=\"[node()]\" [showNotice]=\"false\" />\n }\n </div>\n }\n</ng-template>\n\n<ng-template #nodeLink let-url=\"url\" let-nodeType=\"nodeType\">\n <a class=\"external-link\" [href]=\"url\" target=\"_blank\" (click)=\"$event.stopPropagation()\">\n <span class=\"is-hidden-mobile\">View</span>\n <span class=\"is-hidden-mobile is-pl-1\">{{ nodeType }}</span>\n <he-svg-icon name=\"external-link\" class=\"ml-2\" />\n </a>\n</ng-template>\n", styles: [".notification{color:#0a0a0a!important}.notification.is-success{background-color:#d5f3d8}.notification.is-success *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-success>fa-icon,.notification.is-success *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-success>he-svg-icon{color:#2b8434}.notification.is-info{background-color:#d3ebed}.notification.is-info *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-info>fa-icon,.notification.is-info *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-info>he-svg-icon{color:#249da5}.notification.is-warning{background-color:#ffdec0}.notification.is-warning *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-warning>fa-icon,.notification.is-warning *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-warning>he-svg-icon{color:#ff881b}.notification.is-danger{background-color:#ffcdd0}.notification.is-danger *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-danger>fa-icon,.notification.is-danger *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-danger>he-svg-icon{color:#ff3844}he-sites-maps{height:200px}.external-link{color:#4c7194}.files-form-container{box-shadow:2px 2px 4px #00000029;background-color:#fff}.files-form-header{padding:10px 12px;background-color:#dbe3ea;border-top-left-radius:3px;border-top-right-radius:3px}.properties-container--title,.property-container{padding:6px 12px}.property-container{flex:none;flex-grow:1;min-width:50%;max-width:100%;border:1px solid #f5f5f5}.property-container.is-error-danger{border-color:#ff3844}.property-container.is-error-warning{border-color:#ff881b}.properties-container--title{border-top:1px solid #dbe3ea;border-bottom:1px solid #dbe3ea;background:#f5f7f9}.properties-container .properties-container{border-radius:6px;border:1px solid #dbe3ea;margin:4px 0}.properties-container .properties-container--title{border-top:none}.property-internal{color:#249da5}.property-key,.property-value{word-break:break-word}.property-array-container{border-radius:6px;border:1px solid #dbdbdb}.number-tag{border:1px solid #249da5;border-radius:50%}.copy-button{visibility:hidden}.field-container:hover .copy-button{visibility:visible}.is-group-error-danger{background-color:#ffcdd0}.is-group-error-warning{background-color:#ffdec0}.property-error.is-error-danger{background-color:#ffeced}.field-container+.property-error.is-error-danger{background-color:transparent;color:#ff3844!important}.property-error.is-error-warning{background-color:#fff5ec}.field-container+.property-error.is-error-warning{background-color:transparent;color:#ff881b!important}::ng-deep .property-tooltip{background-color:#fff;color:#0a0a0a;border:1px solid #dbdbdb;z-index:11;max-width:50vw;max-height:50vh;overflow:auto}::ng-deep .property-tooltip pre{white-space:pre-wrap}\n"] }]
13922
13675
  }], propDecorators: { isOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOpen", required: false }] }, { type: i0.Output, args: ["isOpenChange"] }], node: [{ type: i0.Input, args: [{ isSignal: true, alias: "node", required: true }] }], errors: [{ type: i0.Input, args: [{ isSignal: true, alias: "errors", required: false }] }], showNodeLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "showNodeLink", required: false }] }], errorGuidePrefix: [{ type: i0.Input, args: [{ isSignal: true, alias: "errorGuidePrefix", required: false }] }], nodeErorrResolved: [{ type: i0.Output, args: ["nodeErorrResolved"] }] } });
13923
13676
 
13924
13677
  class SchemaInfoComponent {
@@ -14533,11 +14286,11 @@ class FilesErrorSummaryItemComponent {
14533
14286
  this.maxLength.set(Math.max(minimumMaxLength, width / 3));
14534
14287
  }
14535
14288
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FilesErrorSummaryItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14536
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: FilesErrorSummaryItemComponent, isStandalone: true, selector: "he-files-error-summary-item", inputs: { summary: { classPropertyName: "summary", publicName: "summary", isSignal: true, isRequired: true, transformFunction: null }, resolved: { classPropertyName: "resolved", publicName: "resolved", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { resolved: "resolvedChange" }, ngImport: i0, template: "<div class=\"is-flex is-justify-content-center is-align-items-center is-align-self-stretch is-gap-8 is-mb-2\">\n <div class=\"is-flex is-flex-grow-1 | errors-path border-right\">\n <span class=\"has-text-weight-bold\">{{ summary().path || '-' }}</span>\n </div>\n\n <div class=\"is-flex is-align-items-center is-gap-4 | errors-count\">\n <div\n class=\"is-flex is-justify-content-center is-align-items-center has-background-{{\n errorColor()\n }} | errors-count--number\">\n <span class=\"has-text-weight-bold has-text-white\">{{ summary().count }}</span>\n </div>\n <span class=\"has-text-{{ errorColor() }} is-capitalized\">\n {{ summary().level | pluralize: summary().count }}\n </span>\n </div>\n</div>\n\n<div class=\"py-2 w-100 border-y\">\n @if (summary().terms) {\n <p class=\"is-size-7\">\n <span class=\"is-pr-1 has-text-weight-bold\">Terms:</span>\n <span [innerHtml]=\"summary().terms\"></span>\n </p>\n }\n\n @if (hasAutoGeneratedNodes()) {\n <p class=\"is-size-7 has-text-info\">\n <span>Some nodes are auto-generated and the {{ summary().level }} might come from other nodes</span>\n </p>\n }\n\n <p class=\"is-italic has-text-weight-semilight has-text-grey-dark\" heResized (resized)=\"onResized($event)\">\n <span [innerHTML]=\"message() | ellipsis: textMaxLength()\"></span>\n @if (showMoreButton()) {\n <a class=\"has-text-weight-semibold\" (click)=\"$event.stopPropagation(); showMore.set(!showMore())\">\n @if (showMore()) {\n less\n } @else {\n more\n }\n </a>\n }\n </p>\n</div>\n<div class=\"px-1 py-3 w-100\">\n <div class=\"is-flex is-align-items-center is-gap-8 | resolved-actions\">\n <p class=\"has-text-weight-bold is-size-7\">Resolved?</p>\n\n <a\n (click)=\"$event.stopPropagation(); resolved.set(false)\"\n class=\"resolved-actions--unresolve\"\n [class.is-resolved]=\"resolved()\">\n <he-svg-icon name=\"xmark-circle\" />\n </a>\n\n <a\n (click)=\"$event.stopPropagation(); resolved.set(true)\"\n class=\"resolved-actions--resolve\"\n [class.is-resolved]=\"resolved()\">\n <he-svg-icon name=\"checkmark-circle\" />\n </a>\n </div>\n</div>\n", styles: [":host{--summary-files-border-edge: 1px solid #f5f5f5}:host .border-top{border-top:var(--summary-files-border-edge)}:host .border-bottom{border-bottom:var(--summary-files-border-edge)}:host .border-right{border-right:var(--summary-files-border-edge)}:host .border-x{border-left:var(--summary-files-border-edge);border-right:var(--summary-files-border-edge)}:host .border-y{border-bottom:var(--summary-files-border-edge);border-top:var(--summary-files-border-edge)}p,span{word-break:break-word}.errors-path{color:#4c7194}.errors-count{width:110px}.errors-count--number{line-height:1.3;border-radius:1px;padding:1px 5px}.resolved-actions--resolve{color:#b5b5b5}.resolved-actions--resolve.is-resolved,.resolved-actions--resolve:hover{color:#48c78e}.resolved-actions--unresolve{color:#b5b5b5}.resolved-actions--unresolve:not(.is-resolved),.resolved-actions--unresolve:hover{color:#ff3844}\n"], dependencies: [{ kind: "component", type: HESvgIconComponent, selector: "he-svg-icon", inputs: ["name", "size", "animation"] }, { kind: "directive", type: ResizedDirective, selector: "[heResized]", outputs: ["resized"] }, { kind: "pipe", type: EllipsisPipe, name: "ellipsis" }, { kind: "pipe", type: PluralizePipe, name: "pluralize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14289
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: FilesErrorSummaryItemComponent, isStandalone: true, selector: "he-files-error-summary-item", inputs: { summary: { classPropertyName: "summary", publicName: "summary", isSignal: true, isRequired: true, transformFunction: null }, resolved: { classPropertyName: "resolved", publicName: "resolved", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { resolved: "resolvedChange" }, ngImport: i0, template: "<div class=\"is-flex is-justify-content-center is-align-items-center is-align-self-stretch is-gap-8 is-mb-2\">\n <div class=\"is-flex is-flex-grow-1 | errors-path border-right\">\n <span class=\"has-text-weight-bold\">{{ summary().path || '-' }}</span>\n </div>\n\n <div class=\"is-flex is-align-items-center is-gap-4 | errors-count\">\n <div\n class=\"is-flex is-justify-content-center is-align-items-center has-background-{{\n errorColor()\n }} | errors-count--number\">\n <span class=\"has-text-weight-bold has-text-white\">{{ summary().count }}</span>\n </div>\n <span class=\"has-text-{{ errorColor() }} is-capitalized\">\n {{ summary().level | pluralize: summary().count }}\n </span>\n </div>\n</div>\n\n<div class=\"py-2 w-100 border-y\">\n @if (summary().terms) {\n <p class=\"is-size-7\">\n <span class=\"is-pr-1 has-text-weight-bold\">Terms:</span>\n <span [innerHtml]=\"summary().terms\"></span>\n </p>\n }\n\n @if (hasAutoGeneratedNodes()) {\n <p class=\"is-size-7 has-text-info\">\n <span>Some nodes are auto-generated and the {{ summary().level }} might come from other nodes</span>\n </p>\n }\n\n <p class=\"is-italic has-text-weight-semilight has-text-grey-dark\" heResized (resized)=\"onResized($event)\">\n <span [innerHTML]=\"message() | ellipsis: textMaxLength()\"></span>\n @if (showMoreButton()) {\n <a class=\"has-text-weight-semibold\" (click)=\"$event.stopPropagation(); showMore.set(!showMore())\">\n @if (showMore()) {\n less\n } @else {\n more\n }\n </a>\n }\n </p>\n</div>\n<div class=\"px-1 py-3 w-100\">\n <div class=\"is-flex is-align-items-center is-gap-8 | resolved-actions\">\n <p class=\"has-text-weight-bold is-size-7\">Resolved?</p>\n\n <a\n (click)=\"$event.stopPropagation(); resolved.set(false)\"\n class=\"resolved-actions--unresolve\"\n [class.is-resolved]=\"resolved()\">\n <he-svg-icon name=\"xmark-circle\" />\n </a>\n\n <a\n (click)=\"$event.stopPropagation(); resolved.set(true)\"\n class=\"resolved-actions--resolve\"\n [class.is-resolved]=\"resolved()\">\n <he-svg-icon name=\"checkmark-circle\" />\n </a>\n </div>\n</div>\n", styles: [":host{--summary-files-border-edge: 1px solid #f5f5f5}:host .border-top{border-top:var(--summary-files-border-edge)}:host .border-bottom{border-bottom:var(--summary-files-border-edge)}:host .border-right{border-right:var(--summary-files-border-edge)}:host .border-x{border-left:var(--summary-files-border-edge);border-right:var(--summary-files-border-edge)}:host .border-y{border-bottom:var(--summary-files-border-edge);border-top:var(--summary-files-border-edge)}p,span{word-break:break-word}.errors-path{color:#4c7194}.errors-count{width:110px}.errors-count--number{line-height:1.3;border-radius:1px;padding:1px 5px}.resolved-actions--resolve{color:#b5b5b5}.resolved-actions--resolve.is-resolved,.resolved-actions--resolve:hover{color:#2b8434}.resolved-actions--unresolve{color:#b5b5b5}.resolved-actions--unresolve:not(.is-resolved),.resolved-actions--unresolve:hover{color:#ff3844}\n"], dependencies: [{ kind: "component", type: HESvgIconComponent, selector: "he-svg-icon", inputs: ["name", "size", "animation"] }, { kind: "directive", type: ResizedDirective, selector: "[heResized]", outputs: ["resized"] }, { kind: "pipe", type: EllipsisPipe, name: "ellipsis" }, { kind: "pipe", type: PluralizePipe, name: "pluralize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14537
14290
  }
14538
14291
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FilesErrorSummaryItemComponent, decorators: [{
14539
14292
  type: Component$1,
14540
- args: [{ selector: 'he-files-error-summary-item', imports: [HESvgIconComponent, EllipsisPipe, PluralizePipe, ResizedDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"is-flex is-justify-content-center is-align-items-center is-align-self-stretch is-gap-8 is-mb-2\">\n <div class=\"is-flex is-flex-grow-1 | errors-path border-right\">\n <span class=\"has-text-weight-bold\">{{ summary().path || '-' }}</span>\n </div>\n\n <div class=\"is-flex is-align-items-center is-gap-4 | errors-count\">\n <div\n class=\"is-flex is-justify-content-center is-align-items-center has-background-{{\n errorColor()\n }} | errors-count--number\">\n <span class=\"has-text-weight-bold has-text-white\">{{ summary().count }}</span>\n </div>\n <span class=\"has-text-{{ errorColor() }} is-capitalized\">\n {{ summary().level | pluralize: summary().count }}\n </span>\n </div>\n</div>\n\n<div class=\"py-2 w-100 border-y\">\n @if (summary().terms) {\n <p class=\"is-size-7\">\n <span class=\"is-pr-1 has-text-weight-bold\">Terms:</span>\n <span [innerHtml]=\"summary().terms\"></span>\n </p>\n }\n\n @if (hasAutoGeneratedNodes()) {\n <p class=\"is-size-7 has-text-info\">\n <span>Some nodes are auto-generated and the {{ summary().level }} might come from other nodes</span>\n </p>\n }\n\n <p class=\"is-italic has-text-weight-semilight has-text-grey-dark\" heResized (resized)=\"onResized($event)\">\n <span [innerHTML]=\"message() | ellipsis: textMaxLength()\"></span>\n @if (showMoreButton()) {\n <a class=\"has-text-weight-semibold\" (click)=\"$event.stopPropagation(); showMore.set(!showMore())\">\n @if (showMore()) {\n less\n } @else {\n more\n }\n </a>\n }\n </p>\n</div>\n<div class=\"px-1 py-3 w-100\">\n <div class=\"is-flex is-align-items-center is-gap-8 | resolved-actions\">\n <p class=\"has-text-weight-bold is-size-7\">Resolved?</p>\n\n <a\n (click)=\"$event.stopPropagation(); resolved.set(false)\"\n class=\"resolved-actions--unresolve\"\n [class.is-resolved]=\"resolved()\">\n <he-svg-icon name=\"xmark-circle\" />\n </a>\n\n <a\n (click)=\"$event.stopPropagation(); resolved.set(true)\"\n class=\"resolved-actions--resolve\"\n [class.is-resolved]=\"resolved()\">\n <he-svg-icon name=\"checkmark-circle\" />\n </a>\n </div>\n</div>\n", styles: [":host{--summary-files-border-edge: 1px solid #f5f5f5}:host .border-top{border-top:var(--summary-files-border-edge)}:host .border-bottom{border-bottom:var(--summary-files-border-edge)}:host .border-right{border-right:var(--summary-files-border-edge)}:host .border-x{border-left:var(--summary-files-border-edge);border-right:var(--summary-files-border-edge)}:host .border-y{border-bottom:var(--summary-files-border-edge);border-top:var(--summary-files-border-edge)}p,span{word-break:break-word}.errors-path{color:#4c7194}.errors-count{width:110px}.errors-count--number{line-height:1.3;border-radius:1px;padding:1px 5px}.resolved-actions--resolve{color:#b5b5b5}.resolved-actions--resolve.is-resolved,.resolved-actions--resolve:hover{color:#48c78e}.resolved-actions--unresolve{color:#b5b5b5}.resolved-actions--unresolve:not(.is-resolved),.resolved-actions--unresolve:hover{color:#ff3844}\n"] }]
14293
+ args: [{ selector: 'he-files-error-summary-item', imports: [HESvgIconComponent, EllipsisPipe, PluralizePipe, ResizedDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"is-flex is-justify-content-center is-align-items-center is-align-self-stretch is-gap-8 is-mb-2\">\n <div class=\"is-flex is-flex-grow-1 | errors-path border-right\">\n <span class=\"has-text-weight-bold\">{{ summary().path || '-' }}</span>\n </div>\n\n <div class=\"is-flex is-align-items-center is-gap-4 | errors-count\">\n <div\n class=\"is-flex is-justify-content-center is-align-items-center has-background-{{\n errorColor()\n }} | errors-count--number\">\n <span class=\"has-text-weight-bold has-text-white\">{{ summary().count }}</span>\n </div>\n <span class=\"has-text-{{ errorColor() }} is-capitalized\">\n {{ summary().level | pluralize: summary().count }}\n </span>\n </div>\n</div>\n\n<div class=\"py-2 w-100 border-y\">\n @if (summary().terms) {\n <p class=\"is-size-7\">\n <span class=\"is-pr-1 has-text-weight-bold\">Terms:</span>\n <span [innerHtml]=\"summary().terms\"></span>\n </p>\n }\n\n @if (hasAutoGeneratedNodes()) {\n <p class=\"is-size-7 has-text-info\">\n <span>Some nodes are auto-generated and the {{ summary().level }} might come from other nodes</span>\n </p>\n }\n\n <p class=\"is-italic has-text-weight-semilight has-text-grey-dark\" heResized (resized)=\"onResized($event)\">\n <span [innerHTML]=\"message() | ellipsis: textMaxLength()\"></span>\n @if (showMoreButton()) {\n <a class=\"has-text-weight-semibold\" (click)=\"$event.stopPropagation(); showMore.set(!showMore())\">\n @if (showMore()) {\n less\n } @else {\n more\n }\n </a>\n }\n </p>\n</div>\n<div class=\"px-1 py-3 w-100\">\n <div class=\"is-flex is-align-items-center is-gap-8 | resolved-actions\">\n <p class=\"has-text-weight-bold is-size-7\">Resolved?</p>\n\n <a\n (click)=\"$event.stopPropagation(); resolved.set(false)\"\n class=\"resolved-actions--unresolve\"\n [class.is-resolved]=\"resolved()\">\n <he-svg-icon name=\"xmark-circle\" />\n </a>\n\n <a\n (click)=\"$event.stopPropagation(); resolved.set(true)\"\n class=\"resolved-actions--resolve\"\n [class.is-resolved]=\"resolved()\">\n <he-svg-icon name=\"checkmark-circle\" />\n </a>\n </div>\n</div>\n", styles: [":host{--summary-files-border-edge: 1px solid #f5f5f5}:host .border-top{border-top:var(--summary-files-border-edge)}:host .border-bottom{border-bottom:var(--summary-files-border-edge)}:host .border-right{border-right:var(--summary-files-border-edge)}:host .border-x{border-left:var(--summary-files-border-edge);border-right:var(--summary-files-border-edge)}:host .border-y{border-bottom:var(--summary-files-border-edge);border-top:var(--summary-files-border-edge)}p,span{word-break:break-word}.errors-path{color:#4c7194}.errors-count{width:110px}.errors-count--number{line-height:1.3;border-radius:1px;padding:1px 5px}.resolved-actions--resolve{color:#b5b5b5}.resolved-actions--resolve.is-resolved,.resolved-actions--resolve:hover{color:#2b8434}.resolved-actions--unresolve{color:#b5b5b5}.resolved-actions--unresolve:not(.is-resolved),.resolved-actions--unresolve:hover{color:#ff3844}\n"] }]
14541
14294
  }], propDecorators: { summary: [{ type: i0.Input, args: [{ isSignal: true, alias: "summary", required: true }] }], resolved: [{ type: i0.Input, args: [{ isSignal: true, alias: "resolved", required: false }] }, { type: i0.Output, args: ["resolvedChange"] }] } });
14542
14295
 
14543
14296
  const filterErrors = (showErrorsOnAutogenerated, nodes = [], errors = []) => errors.filter(({ index }) => showErrorsOnAutogenerated || !nodes?.[index]?.autoGenerated);
@@ -16792,5 +16545,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
16792
16545
  * Generated bundle index. Do not edit.
16793
16546
  */
16794
16547
 
16795
- export { ARRAY_DELIMITER, ApplyPurePipe, BarChartComponent, BibliographiesSearchConfirmComponent, BlankNodeStateComponent, BlankNodeStateNoticeComponent, BlankNodeValueDeltaComponent, CapitalizePipe, ChartComponent, ChartConfigurationDirective, ChartExportButtonComponent, ChartTooltipComponent, ClickOutsideDirective, ClipboardComponent, CollapsibleBoxComponent, CollapsibleBoxStyle, ColorPalette, CompoundDirective, CompoundPipe, ContributionChartComponent, ControlValueAccessor, CycleNodesKeyGroup, CyclesCompletenessComponent, CyclesEmissionsCategoryService, CyclesEmissionsChartComponent, CyclesFunctionalUnitMeasureComponent, CyclesMetadataComponent, CyclesNodesComponent, CyclesNodesTimelineComponent, CyclesResultComponent, DataTableComponent, DefaultPipe, DeltaColour, DistributionChartComponent, DrawerContainerComponent, DurationPipe, EllipsisPipe, EngineModelsLinkComponent, EngineModelsLookupInfoComponent, EngineModelsStageComponent, EngineModelsStageDeepComponent, EngineModelsStageDeepService, EngineModelsVersionInfoComponent, EngineModelsVersionLinkComponent, EngineOrchestratorEditComponent, EngineRequirementsFormComponent, FileSizePipe, FileUploadErrorKeys, FilesErrorSummaryComponent, FilesFormComponent, FilesFormEditableComponent, FilesUploadErrorsComponent, FilterAccordionComponent, GUIDE_ENABLED, GetPipe, GlossaryMigrationFormat, GuideOverlayComponent, HESvgIconComponent, HE_API_BASE_URL, HE_CALCULATIONS_BASE_URL, HE_MAP_LOADED, HeAuthService, HeCommonService, HeEngineService, HeGlossaryService, HeMendeleyService, HeNodeCsvService, HeNodeService, HeNodeStoreService, HeSchemaService, HeSearchService, HeToastService, HorizontalBarChartComponent, HorizontalButtonsGroupComponent, ImpactAssessmentsGraphComponent, ImpactAssessmentsIndicatorBreakdownChartComponent, ImpactAssessmentsIndicatorsChartComponent, ImpactAssessmentsProductsComponent, IsArrayPipe, IsObjectPipe, IssueConfirmComponent, KatexDirective, KeyToLabelPipe, Level, LineChartComponent, LinkKeyValueComponent, LogStatus, LongPressDirective, MAX_RESULTS, MapsDrawingComponent, MapsDrawingConfirmComponent, MaxPipe, MeanPipe, MedianPipe, MendeleySearchResult, MinPipe, MobileShellComponent, NavigationMenuComponent, NoExtPipe, NodeAggregatedComponent, NodeAggregatedInfoComponent, NodeAggregatedQualityScoreComponent, NodeCsvExportConfirmComponent, NodeCsvPreviewComponent, NodeCsvSelectHeadersComponent, NodeIconComponent, NodeJLogModelsComponent, NodeJsonldComponent, NodeJsonldSchemaComponent, NodeKeyState, NodeLinkComponent, NodeLogsFileComponent, NodeLogsModelsComponent, NodeLogsTimeComponent, NodeMissingLookupFactorsComponent, NodeQualityScore, NodeRecommendationsComponent, NodeSelectComponent, NodeValueDetailsComponent, PipelineStagesProgressComponent, PluralizePipe, PopoverComponent, PopoverConfirmComponent, PrecisionPipe, RelatedNodeResult, RemoveMarkdownPipe, RepeatPipe, Repository, ResizedDirective, ResizedEvent, ResponsiveService, SchemaInfoComponent, SchemaVersionLinkComponent, SearchExtendComponent, ShelfDialogComponent, ShellComponent, SiteNodesKeyGroup, SitesManagementChartComponent, SitesMapsComponent, SitesNodesComponent, SkeletonTextComponent, SocialTagsComponent, SortByPipe, SortSelectComponent, SumPipe, TagsInputDirective, Template, TermsPropertyContentComponent, TermsSubClassOfContentComponent, TermsUnitsDescriptionComponent, ThousandSuffixesPipe, ThousandsPipe, TimesPipe, ToastComponent, UncapitalizePipe, addPolygonToFeature, afterBarDrawPlugin, allCountriesQuery, allGroups, allOptions, availableProperties, axisHoverPlugin, backgroundHoverPlugin, baseApiUrl, baseUrl, bottom, buildSummary, bytesSize, calculateCycleDuration, calculateCycleDurationEnabled, calculateCycleStartDate, calculateCycleStartDateEnabled, capitalize, changelogUrl, clustererImage, code, colorToRgba, compoundToHtml, computeKeys, computeTerms, contactUsEmail, contactUsLink, convertToSvg, coordinatesToPoint, copyObject, countGroupVisibleNodes, countriesQuery, createMarker, cropsQuery, d3ellipse, d3wrap, dataPathLabel, dataPathToKey, dataVersionHeader, dataVersionHeaderKey, defaultFeature, defaultLabel, defaultSuggestionType, defaultSvgIconSize, defaultTicksFont, definitionToSchemaType, distinctUntilChangedDeep, downloadFile, downloadPng, downloadSvg, ellipsis, engineGitBaseUrl, engineGitUrl, errorText, evaluateSuccess, exportAsSVG, exportFormats, externalLink, externalNodeLink, fillColor, fillStyle, filterBlankNode$1 as filterBlankNode, filterParams, findConfigModels, findMatchingModel, findModels, findNodeModel, findOrchestratorModel, findProperty, findPropertyById, flatFilterData, flatFilterNode, formatCustomErrorMessage, formatDate, formatError, formatPropertyError, formatter, getColor, getDatesBetween, gitBranch, gitHome, gitlabRawUrl, glossaryBaseUrl, glossaryLink, groupChanged, groupDataByCategory, groupJLogByField, groupJLogByTerm, groupLogsByTerm, groupNodesByTerm, groupdLogsByKey, grouppedKeys, grouppedValueKeys, groupsLogsByFields, guideModelUrl, guideNamespace, handleAPIError, handleGuideEvent, hasError, hasValidationError, hasWarning, hexToRgba, iconSizes, icons, ignoreKeys$2 as ignoreKeys, increaseScaleLimits, initialFilterState, injectResizeEvent$, inputGroupsTermTypes, isAddPropertyEnabled, isChrome, isDateBetween, isEqual, isExternal, isKeyClosedVisible, isKeyHidden, isMaxStage, isMethodModelAllowed, isNonNodeModelKey, isSchemaIri, isScrolledBelow, isState, isTermTypeAllowed, isValidKey, jLogModelCount, keyToDataPath, levels, listColor, listColorContinuous, listColorWithAlpha, loadMapApi, locationQuery, logToCsv$2 as logToCsv, logValueArray, logsKey, lollipopChartPlugin, lookupUrl, mapFilterData, mapsUrl, markerIcon, markerPie, matchAggregatedQuery, matchAggregatedValidatedQuery, matchBoolPrefixQuery, matchCountry, matchExactQuery, matchGlobalRegion, matchId, matchNameNormalized, matchNestedKey, matchPhrasePrefixQuery, matchPhraseQuery, matchPrimaryProductQuery, matchQuery, matchRegex, matchRegion, matchTermType, matchType, maxAreaSize, measurementValue, mergeDataWithHeaders, methodTierOrder, migrationErrorMessage, migrationsUrl, modelCount, modelKeyParams, modelParams, models, multiMatchQuery, nestedProperty, nestingEnabled, nestingTypeEnabled, noValue, nodeAvailableProperties, nodeById, nodeColours$1 as nodeColours, nodeDataState, nodeDataStates, nodeDataVersion, nodeId, nodeIdWithoutDataVersion, nodeIds, nodeLink, nodeLinkEnabled, nodeLinkTypeEnabled, nodeLogsUrl, nodeQualityScoreColor, nodeQualityScoreLevel, nodeQualityScoreMaxDefault, nodeQualityScoreOrder, nodeRequestId, nodeSecondaryColours, nodeToAggregationFilename, nodeType, nodeTypeDataState, nodeTypeIcon, nodeTypeIconSchema, nodeUrl, nodeUrlParams, nodeVersion, nodeVersionKey, nodesByState, nodesByType, numberGte, optionsFromGroup, parentKey, parentProperty, parseColor, parseData, parseDataPath, parseLines, parseMessage, parseNewValue, pluralize, pointToCoordinates, polygonBounds, polygonToCoordinates, polygonToMap, polygonsFromFeature, populateWithTrackIdsFilterData, postGuideEvent, primaryProduct, productsQuery, propertyError, propertyId, recursiveProperties, refToSchemaType, refreshPropertyKeys, regionsQuery, registerChart, repeat, reportIssueLink, reportIssueUrl, safeJSONParse, safeJSONStringify, schemaBaseUrl, schemaDataBaseUrl, schemaLink, schemaRequiredProperties, schemaTypeToDefaultValue, scrollToEl, scrollTop, searchFilterData, searchableTypes, siblingProperty, simplifyContributions, singleProperty, siteTooBig, siteTypeToColor, siteTypeToIcon, sortProperties, sortedDates, strokeColor, strokeStyle, subValueKeys, suggestMatchQuery, suggestQuery, sumValues, takeAfterViewInit, termLocation, termLocationName, termProperties, termTypeLabel, toSnakeCase, toThousands, typeToNewProperty, typeaheadFocus, uncapitalize, uniqueDatesBetween, updateProperties, valueLink, valueToString, valueTypeToDefault, valueValue, waitFor, wildcardQuery };
16548
+ export { ARRAY_DELIMITER, ApplyPurePipe, BarChartComponent, BibliographiesSearchConfirmComponent, BlankNodeStateComponent, BlankNodeStateNoticeComponent, BlankNodeValueDeltaComponent, CapitalizePipe, ChartComponent, ChartConfigurationDirective, ChartExportButtonComponent, ChartTooltipComponent, ClickOutsideDirective, ClipboardComponent, CollapsibleBoxComponent, CollapsibleBoxStyle, ColorPalette, CompoundDirective, CompoundPipe, ContributionChartComponent, ControlValueAccessor, CycleNodesKeyGroup, CyclesCompletenessComponent, CyclesEmissionsCategoryService, CyclesEmissionsChartComponent, CyclesFunctionalUnitMeasureComponent, CyclesMetadataComponent, CyclesNodesComponent, CyclesNodesTimelineComponent, CyclesResultComponent, DataTableComponent, DefaultPipe, DeltaColour, DistributionChartComponent, DrawerContainerComponent, DurationPipe, EllipsisPipe, EngineModelsLinkComponent, EngineModelsLookupInfoComponent, EngineModelsStageComponent, EngineModelsStageDeepComponent, EngineModelsStageDeepService, EngineModelsVersionInfoComponent, EngineModelsVersionLinkComponent, EngineOrchestratorEditComponent, EngineRequirementsFormComponent, FileSizePipe, FileUploadErrorKeys, FilesErrorSummaryComponent, FilesFormComponent, FilesFormEditableComponent, FilesUploadErrorsComponent, FilterAccordionComponent, GUIDE_ENABLED, GetPipe, GlossaryMigrationFormat, GuideOverlayComponent, HE_API_BASE_URL, HE_CALCULATIONS_BASE_URL, HE_MAP_LOADED, HeAuthService, HeCommonService, HeEngineService, HeGlossaryService, HeMendeleyService, HeNodeCsvService, HeNodeService, HeNodeStoreService, HeSchemaService, HeSearchService, HeToastService, HorizontalBarChartComponent, HorizontalButtonsGroupComponent, ImpactAssessmentsGraphComponent, ImpactAssessmentsIndicatorBreakdownChartComponent, ImpactAssessmentsIndicatorsChartComponent, ImpactAssessmentsProductsComponent, IsArrayPipe, IsObjectPipe, IssueConfirmComponent, KeyToLabelPipe, Level, LineChartComponent, LinkKeyValueComponent, LogStatus, LongPressDirective, MAX_RESULTS, MapsDrawingComponent, MapsDrawingConfirmComponent, MaxPipe, MeanPipe, MedianPipe, MendeleySearchResult, MinPipe, MobileShellComponent, NavigationMenuComponent, NoExtPipe, NodeAggregatedComponent, NodeAggregatedInfoComponent, NodeAggregatedQualityScoreComponent, NodeCsvExportConfirmComponent, NodeCsvPreviewComponent, NodeCsvSelectHeadersComponent, NodeIconComponent, NodeJLogModelsComponent, NodeJsonldComponent, NodeJsonldSchemaComponent, NodeKeyState, NodeLinkComponent, NodeLogsFileComponent, NodeLogsModelsComponent, NodeLogsTimeComponent, NodeMissingLookupFactorsComponent, NodeQualityScore, NodeRecommendationsComponent, NodeSelectComponent, NodeValueDetailsComponent, PipelineStagesProgressComponent, PluralizePipe, PopoverComponent, PopoverConfirmComponent, PrecisionPipe, RelatedNodeResult, RemoveMarkdownPipe, RepeatPipe, Repository, ResizedDirective, ResizedEvent, ResponsiveService, SchemaInfoComponent, SchemaVersionLinkComponent, SearchExtendComponent, ShelfDialogComponent, ShellComponent, SiteNodesKeyGroup, SitesManagementChartComponent, SitesMapsComponent, SitesNodesComponent, SkeletonTextComponent, SocialTagsComponent, SortByPipe, SortSelectComponent, SumPipe, TagsInputDirective, Template, TermsPropertyContentComponent, TermsSubClassOfContentComponent, TermsUnitsDescriptionComponent, ThousandSuffixesPipe, ThousandsPipe, TimesPipe, ToastComponent, UncapitalizePipe, addPolygonToFeature, afterBarDrawPlugin, allCountriesQuery, allGroups, allOptions, availableProperties, axisHoverPlugin, backgroundHoverPlugin, baseApiUrl, baseUrl, bottom, buildSummary, bytesSize, calculateCycleDuration, calculateCycleDurationEnabled, calculateCycleStartDate, calculateCycleStartDateEnabled, capitalize, changelogUrl, clustererImage, code, colorToRgba, compoundToHtml, computeKeys, computeTerms, contactUsEmail, contactUsLink, convertToSvg, coordinatesToPoint, copyObject, countGroupVisibleNodes, countriesQuery, createMarker, cropsQuery, d3ellipse, d3wrap, dataPathLabel, dataPathToKey, dataVersionHeader, dataVersionHeaderKey, defaultFeature, defaultLabel, defaultSuggestionType, defaultTicksFont, definitionToSchemaType, distinctUntilChangedDeep, downloadFile, downloadPng, downloadSvg, ellipsis, engineGitBaseUrl, engineGitUrl, errorText, evaluateSuccess, exportAsSVG, exportFormats, externalLink, externalNodeLink, fillColor, fillStyle, filterBlankNode$1 as filterBlankNode, filterParams, findConfigModels, findMatchingModel, findModels, findNodeModel, findOrchestratorModel, findProperty, findPropertyById, flatFilterData, flatFilterNode, formatCustomErrorMessage, formatDate, formatError, formatPropertyError, formatter, getColor, getDatesBetween, gitBranch, gitHome, gitlabRawUrl, glossaryBaseUrl, glossaryLink, groupChanged, groupDataByCategory, groupJLogByField, groupJLogByTerm, groupLogsByTerm, groupNodesByTerm, groupdLogsByKey, grouppedKeys, grouppedValueKeys, groupsLogsByFields, guideModelUrl, guideNamespace, handleAPIError, handleGuideEvent, hasError, hasValidationError, hasWarning, hexToRgba, ignoreKeys$2 as ignoreKeys, increaseScaleLimits, initialFilterState, injectResizeEvent$, inputGroupsTermTypes, isAddPropertyEnabled, isChrome, isDateBetween, isEqual, isExternal, isKeyClosedVisible, isKeyHidden, isMaxStage, isMethodModelAllowed, isNonNodeModelKey, isSchemaIri, isScrolledBelow, isState, isTermTypeAllowed, isValidKey, jLogModelCount, keyToDataPath, levels, listColor, listColorContinuous, listColorWithAlpha, loadMapApi, locationQuery, logToCsv$2 as logToCsv, logValueArray, logsKey, lollipopChartPlugin, lookupUrl, mapFilterData, mapsUrl, markerIcon, markerPie, matchAggregatedQuery, matchAggregatedValidatedQuery, matchBoolPrefixQuery, matchCountry, matchExactQuery, matchGlobalRegion, matchId, matchNameNormalized, matchNestedKey, matchPhrasePrefixQuery, matchPhraseQuery, matchPrimaryProductQuery, matchQuery, matchRegex, matchRegion, matchTermType, matchType, maxAreaSize, measurementValue, mergeDataWithHeaders, methodTierOrder, migrationErrorMessage, migrationsUrl, modelCount, modelKeyParams, modelParams, models, multiMatchQuery, nestedProperty, nestingEnabled, nestingTypeEnabled, noValue, nodeAvailableProperties, nodeById, nodeColours$1 as nodeColours, nodeDataState, nodeDataStates, nodeDataVersion, nodeId, nodeIdWithoutDataVersion, nodeIds, nodeLink, nodeLinkEnabled, nodeLinkTypeEnabled, nodeLogsUrl, nodeQualityScoreColor, nodeQualityScoreLevel, nodeQualityScoreMaxDefault, nodeQualityScoreOrder, nodeRequestId, nodeSecondaryColours, nodeToAggregationFilename, nodeType, nodeTypeDataState, nodeTypeIcon, nodeTypeIconSchema, nodeUrl, nodeUrlParams, nodeVersion, nodeVersionKey, nodesByState, nodesByType, numberGte, optionsFromGroup, parentKey, parentProperty, parseColor, parseData, parseDataPath, parseLines, parseMessage, parseNewValue, pluralize, pointToCoordinates, polygonBounds, polygonToCoordinates, polygonToMap, polygonsFromFeature, populateWithTrackIdsFilterData, postGuideEvent, primaryProduct, productsQuery, propertyError, propertyId, recursiveProperties, refToSchemaType, refreshPropertyKeys, regionsQuery, registerChart, repeat, reportIssueLink, reportIssueUrl, safeJSONParse, safeJSONStringify, schemaBaseUrl, schemaDataBaseUrl, schemaLink, schemaRequiredProperties, schemaTypeToDefaultValue, scrollToEl, scrollTop, searchFilterData, searchableTypes, siblingProperty, simplifyContributions, singleProperty, siteTooBig, siteTypeToColor, siteTypeToIcon, sortProperties, sortedDates, strokeColor, strokeStyle, subValueKeys, suggestMatchQuery, suggestQuery, sumValues, takeAfterViewInit, termLocation, termLocationName, termProperties, termTypeLabel, toSnakeCase, toThousands, typeToNewProperty, typeaheadFocus, uncapitalize, uniqueDatesBetween, updateProperties, valueLink, valueToString, valueTypeToDefault, valueValue, waitFor, wildcardQuery };
16796
16549
  //# sourceMappingURL=hestia-earth-ui-components.mjs.map