@hestia-earth/ui-components 0.41.25 → 0.41.26

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.
@@ -6,7 +6,7 @@ import { FormsModule, NG_VALUE_ACCESSOR, UntypedFormBuilder, Validators, Reactiv
6
6
  import { NgClass, DecimalPipe, NgTemplateOutlet, KeyValuePipe, DOCUMENT, PlatformLocation, 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
- import { ReplaySubject, of, mergeMap, shareReplay, delay, map, catchError, distinctUntilChanged, timer, take, first, Subject, combineLatest, filter, tap, pipe, fromEvent, startWith, merge, skip, switchMap, EMPTY, throttleTime, animationFrameScheduler, debounceTime, skipUntil, zip, lastValueFrom, forkJoin, from, reduce, firstValueFrom, mergeAll, toArray, distinct, groupBy } from 'rxjs';
9
+ import { ReplaySubject, of, mergeMap, shareReplay, delay, map, catchError, distinctUntilChanged, timer, take, first, Subject, combineLatest, filter, tap, pipe, fromEvent, startWith, merge, skip, switchMap, EMPTY, throttleTime, animationFrameScheduler, debounceTime, lastValueFrom, skipUntil, zip, forkJoin, from, reduce, firstValueFrom, mergeAll, toArray, distinct, groupBy } from 'rxjs';
10
10
  import { HttpClient } from '@angular/common/http';
11
11
  import get from 'lodash.get';
12
12
  import { SCHEMA_VERSION, SchemaType, NodeType, TermTermType, productTermTermType, nestedSearchableKeys, SiteSiteType, EmissionMethodTier, isExpandable, sortKeysByType, isTypeNode, BlankNodesKey, impactAssessmentTermTermType, measurementTermTermType, emissionTermTermType, inputTermTermType, CycleFunctionalUnit, NonBlankNodesKey, jsonldPath, isTypeValid, isTypeBlankNode, typeToSchemaType, infrastructureTermTermType, managementTermTermType } from '@hestia-earth/schema';
@@ -2743,6 +2743,467 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
2743
2743
  args: [{ selector: 'he-mobile-shell', imports: [NgTemplateOutlet, HESvgIconComponent], template: "<div class=\"is-overflow-auto | shell-content\">\n <div [class.menu-expanded]=\"expanded()\" class=\"shell__content--body | h-100\">\n <ng-content />\n </div>\n</div>\n\n<aside class=\"shell-footer | is-flex is-justify-content-space-between\">\n @for (button of buttons(); track button.id || button.label) {\n <button\n (click)=\"onMenuButtonClick(button)\"\n class=\"button is-secondary is-flex is-flex-direction-column is-align-items-center | menu-button\"\n [disabled]=\"button.disabled\">\n <ng-container\n *ngTemplateOutlet=\"\n iconTemplate() ?? defaultIconTemplate;\n context: { $implicit: button, isActive: button.isActive }\n \" />\n @if (button.isActive && button.label) {\n <span class=\"is-size-8 | menu-button-label\">{{ button.label }}</span>\n }\n </button>\n }\n</aside>\n\n<div [class.expanded]=\"expanded()\" class=\"shell-menu | is-absolute w-100 h-100\">\n <ng-template [ngTemplateOutlet]=\"menuRef()\" />\n</div>\n\n<ng-template #defaultIconTemplate let-button>\n <he-svg-icon [name]=\"button.icon\" />\n</ng-template>\n", styles: [":host{position:relative;display:grid;grid-template-rows:1fr auto;width:100%;height:100%;overflow:hidden;--menu-height: 2.875em}.shell-footer{background:#193957;z-index:10}.shell-menu{bottom:0;left:0;background:#fefaef;transform:translateY(100%);transition:transform .1s ease-out;padding-bottom:var(--menu-height)}.shell-menu.expanded{transform:translateY(0)}.menu-button-label{line-height:normal;letter-spacing:-.01rem}.menu-button{box-shadow:none;height:3.5em;width:2em}.menu-button:hover{background-color:initial}\n"] }]
2744
2744
  }], propDecorators: { iconTemplate: [{ type: i0.ContentChild, args: ['iconTemplate', { isSignal: true }] }], menuButtons: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuButtons", required: false }] }], defaultActiveButtonId: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultActiveButtonId", required: false }] }], menuShown: [{ type: i0.Output, args: ["menuShown"] }] } });
2745
2745
 
2746
+ var StepStatus;
2747
+ (function (StepStatus) {
2748
+ StepStatus[StepStatus["previous"] = 0] = "previous";
2749
+ StepStatus[StepStatus["current"] = 1] = "current";
2750
+ StepStatus[StepStatus["next"] = 2] = "next";
2751
+ StepStatus[StepStatus["error"] = 3] = "error";
2752
+ })(StepStatus || (StepStatus = {}));
2753
+ const getStepStatus = (index, statusIndex, success, processing) => index < statusIndex
2754
+ ? StepStatus.previous
2755
+ : index === statusIndex
2756
+ ? success
2757
+ ? processing
2758
+ ? StepStatus.current
2759
+ : StepStatus.next
2760
+ : StepStatus.error
2761
+ : StepStatus.next;
2762
+ const getStageStatus = (statuses) => statuses.every(status => status === StepStatus.previous)
2763
+ ? 'success'
2764
+ : statuses.every(status => status === StepStatus.next)
2765
+ ? 'none'
2766
+ : statuses.some(status => status === StepStatus.error)
2767
+ ? 'error'
2768
+ : 'pending';
2769
+
2770
+ class CompletedStagesPipe {
2771
+ transform(statuses) {
2772
+ return statuses.filter(status => status.stepStatus === StepStatus.previous || status.stepStatus === StepStatus.error).length;
2773
+ }
2774
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CompletedStagesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
2775
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: CompletedStagesPipe, isStandalone: true, name: "completedStages" }); }
2776
+ }
2777
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CompletedStagesPipe, decorators: [{
2778
+ type: Pipe,
2779
+ args: [{
2780
+ name: 'completedStages'
2781
+ }]
2782
+ }] });
2783
+
2784
+ // auto-generated content using "node scripts/generate-icons.js"
2785
+ const iconSizes = [
2786
+ '16',
2787
+ '20',
2788
+ '24',
2789
+ '40',
2790
+ '48'
2791
+ ];
2792
+ const icons = [
2793
+ 'aggregation',
2794
+ 'api',
2795
+ 'api-circle',
2796
+ 'archive',
2797
+ 'arrow-down',
2798
+ 'arrow-down-right',
2799
+ 'arrow-left',
2800
+ 'arrow-right',
2801
+ 'arrow-up',
2802
+ 'autogenerate',
2803
+ 'autogenerate-circle',
2804
+ 'aws',
2805
+ 'ban',
2806
+ 'bell',
2807
+ 'bell-with-badge',
2808
+ 'book',
2809
+ 'breakdown',
2810
+ 'bug',
2811
+ 'buoy',
2812
+ 'calculation-toolkit',
2813
+ 'calculator',
2814
+ 'caret-down',
2815
+ 'caret-left',
2816
+ 'caret-right',
2817
+ 'caret-up',
2818
+ 'certificate',
2819
+ 'chart',
2820
+ 'checkmark',
2821
+ 'checkmark-circle',
2822
+ 'checkmark-circle-filled',
2823
+ 'checkmark-circle-filled-with-shadow',
2824
+ 'chevron-double-left',
2825
+ 'chevron-double-right',
2826
+ 'chevron-down',
2827
+ 'chevron-left',
2828
+ 'chevron-right',
2829
+ 'chevron-up',
2830
+ 'circle',
2831
+ 'citation',
2832
+ 'citation-square',
2833
+ 'clock',
2834
+ 'cloud',
2835
+ 'collapse',
2836
+ 'collapse-panel',
2837
+ 'commit',
2838
+ 'community',
2839
+ 'community-edition',
2840
+ 'compare',
2841
+ 'copy',
2842
+ 'corner-drag',
2843
+ 'csv-file',
2844
+ 'cycle',
2845
+ 'dashboard',
2846
+ 'data-format',
2847
+ 'database-wheat',
2848
+ 'dot-circle',
2849
+ 'dot-filled',
2850
+ 'download',
2851
+ 'drag',
2852
+ 'edit',
2853
+ 'edit-withfield',
2854
+ 'embed',
2855
+ 'exclamation',
2856
+ 'exclamation-triangle',
2857
+ 'exclamation-triangle-filled',
2858
+ 'export',
2859
+ 'external-link',
2860
+ 'feedback',
2861
+ 'fence',
2862
+ 'film',
2863
+ 'filter-funnel',
2864
+ 'filter-slider',
2865
+ 'flash',
2866
+ 'folder',
2867
+ 'folder-open',
2868
+ 'foodprocessor',
2869
+ 'globe-continents',
2870
+ 'globe-lines',
2871
+ 'glossary',
2872
+ 'greenhouse',
2873
+ 'guide',
2874
+ 'guide-overlay',
2875
+ 'help',
2876
+ 'help-circle',
2877
+ 'history',
2878
+ 'home',
2879
+ 'husk',
2880
+ 'image',
2881
+ 'incognito',
2882
+ 'indexed',
2883
+ 'info',
2884
+ 'info-circle',
2885
+ 'lake',
2886
+ 'link',
2887
+ 'list-indented',
2888
+ 'livestock',
2889
+ 'loading',
2890
+ 'loading-bar',
2891
+ 'loading-circle-filled',
2892
+ 'loading-circle-filled-withshadow',
2893
+ 'log',
2894
+ 'mail',
2895
+ 'map',
2896
+ 'menu',
2897
+ 'messages',
2898
+ 'messages-with-badge',
2899
+ 'metrics',
2900
+ 'migration',
2901
+ 'minus',
2902
+ 'model-docs',
2903
+ 'news',
2904
+ 'node',
2905
+ 'notepad',
2906
+ 'ocean',
2907
+ 'organisation',
2908
+ 'overflow-menu',
2909
+ 'pin',
2910
+ 'plus',
2911
+ 'pond',
2912
+ 'private-eye',
2913
+ 'private-eye-crossed',
2914
+ 'private-lock',
2915
+ 'profile-checkmark',
2916
+ 'profile-circle',
2917
+ 'profile-gear',
2918
+ 'progress',
2919
+ 'python',
2920
+ 'refresh',
2921
+ 'rename',
2922
+ 'retailer',
2923
+ 'review',
2924
+ 'river',
2925
+ 'save',
2926
+ 'schema',
2927
+ 'search',
2928
+ 'search-with-exclamation',
2929
+ 'search-with-minus',
2930
+ 'search-with-plus',
2931
+ 'settings',
2932
+ 'share',
2933
+ 'share-socials',
2934
+ 'shrub',
2935
+ 'sign-out',
2936
+ 'slack',
2937
+ 'socials-gitlab',
2938
+ 'socials-google',
2939
+ 'socials-linkedin',
2940
+ 'socials-linkedin-circle',
2941
+ 'socials-orcid',
2942
+ 'socials-orcid-circle',
2943
+ 'sort-ascending',
2944
+ 'sort-caret-down-filled',
2945
+ 'sort-caret-stacked-filled-stacked',
2946
+ 'sort-caret-up-filled',
2947
+ 'source',
2948
+ 'star',
2949
+ 'star-filled',
2950
+ 'table',
2951
+ 'tag-filled',
2952
+ 'target',
2953
+ 'term',
2954
+ 'textform-list',
2955
+ 'tool',
2956
+ 'transport',
2957
+ 'trash',
2958
+ 'tree',
2959
+ 'turn-phone',
2960
+ 'unit',
2961
+ 'upload',
2962
+ 'video',
2963
+ 'xmark',
2964
+ 'xmark-circle',
2965
+ 'xmark-circle-filled',
2966
+ 'xmark-circle-filled-with-shadow',
2967
+ 'zip'
2968
+ ];
2969
+
2970
+ const loadSvgSprite = () => {
2971
+ const http = inject(HttpClient);
2972
+ const document = inject(DOCUMENT);
2973
+ const platformLocation = inject(PlatformLocation);
2974
+ const baseUrl = platformLocation.getBaseHrefFromDOM();
2975
+ return lastValueFrom(http.get(`${baseUrl}assets/svg-icons/icons-sprite.svg`, { responseType: 'text' }).pipe(tap(svgContent => {
2976
+ const div = document.createElement('div');
2977
+ div.innerHTML = svgContent;
2978
+ const svg = div.querySelector('svg');
2979
+ if (svg) {
2980
+ svg.style.display = 'none';
2981
+ document.body.insertBefore(svg, document.body.firstChild);
2982
+ }
2983
+ })));
2984
+ };
2985
+
2986
+ const timelineItemIconMap = {
2987
+ success: 'checkmark',
2988
+ pending: 'loading',
2989
+ none: '',
2990
+ error: 'xmark'
2991
+ };
2992
+ class PipelineProgressStatusComponent {
2993
+ constructor() {
2994
+ this.status = input(...(ngDevMode ? [undefined, { debugName: "status" }] : []));
2995
+ this.size = input('medium', ...(ngDevMode ? [{ debugName: "size" }] : []));
2996
+ this.iconStatus = computed(() => timelineItemIconMap[this.status()], ...(ngDevMode ? [{ debugName: "iconStatus" }] : []));
2997
+ this.iconSize = computed(() => (this.size() === 'small' ? '18px' : '22.5px'), ...(ngDevMode ? [{ debugName: "iconSize" }] : []));
2998
+ this.iconAnimation = computed(() => (this.status() === 'pending' ? 'spin' : ''), ...(ngDevMode ? [{ debugName: "iconAnimation" }] : []));
2999
+ }
3000
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PipelineProgressStatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3001
+ 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 }); }
3002
+ }
3003
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PipelineProgressStatusComponent, decorators: [{
3004
+ type: Component$1,
3005
+ args: [{ selector: 'he-pipeline-progress-status', imports: [HESvgIconComponent], host: {
3006
+ '[attr.indicator-status]': 'status()',
3007
+ '[style.--icon-size]': 'iconSize()'
3008
+ }, 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"] }]
3009
+ }], propDecorators: { status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] } });
3010
+
3011
+ class PipelineProgressStageComponent {
3012
+ constructor() {
3013
+ this.group = input(...(ngDevMode ? [undefined, { debugName: "group" }] : []));
3014
+ this.processing = input(false, ...(ngDevMode ? [{ debugName: "processing" }] : []));
3015
+ }
3016
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PipelineProgressStageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3017
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: PipelineProgressStageComponent, isStandalone: true, selector: "he-pipeline-progress-stage", inputs: { group: { classPropertyName: "group", publicName: "group", isSignal: true, isRequired: false, transformFunction: null }, processing: { classPropertyName: "processing", publicName: "processing", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.stage-status": "group().groupStatus" }, classAttribute: "p-2 is-flex is-justify-content-flex-start is-clickable" }, ngImport: i0, template: "@if (group(); as group) {\n <he-pipeline-progress-status class=\"mr-2\" [status]=\"group.groupStatus\" />\n\n <div class=\"is-flex is-flex-direction-column is-align-items-start\">\n <header class=\"is-size-6 has-text-left\">{{ group.group }}</header>\n <span class=\"is-size-8 | stages-number\">\n {{ group.statuses | completedStages }}/{{ group.statuses.length }} Stages complete\n </span>\n </div>\n}\n", styles: [":root{--pipeline-stages-border-color: unset;--pipeline-stages-background: unset;--pipeline-stages-stagesCountColor: unset}:host{display:block;max-width:unset;border-radius:6px;border:2px solid;min-width:164px;background:var(--pipeline-stages-background);border-color:var(--pipeline-stages-border-color)}:host header{line-height:1.1}:host .stages-number{color:var(--pipeline-stages-stagesCountColor)}\n"], dependencies: [{ kind: "component", type: PipelineProgressStatusComponent, selector: "he-pipeline-progress-status", inputs: ["status", "size"] }, { kind: "pipe", type: CompletedStagesPipe, name: "completedStages" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3018
+ }
3019
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PipelineProgressStageComponent, decorators: [{
3020
+ type: Component$1,
3021
+ args: [{ selector: 'he-pipeline-progress-stage', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CompletedStagesPipe, PipelineProgressStatusComponent], host: {
3022
+ class: 'p-2 is-flex is-justify-content-flex-start is-clickable',
3023
+ '[attr.stage-status]': 'group().groupStatus'
3024
+ }, template: "@if (group(); as group) {\n <he-pipeline-progress-status class=\"mr-2\" [status]=\"group.groupStatus\" />\n\n <div class=\"is-flex is-flex-direction-column is-align-items-start\">\n <header class=\"is-size-6 has-text-left\">{{ group.group }}</header>\n <span class=\"is-size-8 | stages-number\">\n {{ group.statuses | completedStages }}/{{ group.statuses.length }} Stages complete\n </span>\n </div>\n}\n", styles: [":root{--pipeline-stages-border-color: unset;--pipeline-stages-background: unset;--pipeline-stages-stagesCountColor: unset}:host{display:block;max-width:unset;border-radius:6px;border:2px solid;min-width:164px;background:var(--pipeline-stages-background);border-color:var(--pipeline-stages-border-color)}:host header{line-height:1.1}:host .stages-number{color:var(--pipeline-stages-stagesCountColor)}\n"] }]
3025
+ }], propDecorators: { group: [{ type: i0.Input, args: [{ isSignal: true, alias: "group", required: false }] }], processing: [{ type: i0.Input, args: [{ isSignal: true, alias: "processing", required: false }] }] } });
3026
+
3027
+ class PipelineDurationPipe {
3028
+ transform(duration) {
3029
+ const time = Math.floor(duration / (60 * 1000));
3030
+ return pluralize(`${time === 0 ? '<' : '~'}${time || 1}min`, time || 1);
3031
+ }
3032
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PipelineDurationPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3033
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: PipelineDurationPipe, isStandalone: true, name: "pipelineDuration" }); }
3034
+ }
3035
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PipelineDurationPipe, decorators: [{
3036
+ type: Pipe,
3037
+ args: [{
3038
+ name: 'pipelineDuration'
3039
+ }]
3040
+ }] });
3041
+
3042
+ const timelineItemStatusMap = {
3043
+ [StepStatus.previous]: 'success',
3044
+ [StepStatus.current]: 'pending',
3045
+ [StepStatus.next]: 'none',
3046
+ [StepStatus.error]: 'error'
3047
+ };
3048
+ class PipelineProgressItemComponent {
3049
+ constructor() {
3050
+ this.status = input(...(ngDevMode ? [undefined, { debugName: "status" }] : []));
3051
+ this.showStatus = input(...(ngDevMode ? [undefined, { debugName: "showStatus" }] : []));
3052
+ this.position = input('between', ...(ngDevMode ? [{ debugName: "position" }] : []));
3053
+ this.statusToLabelMap = input.required(...(ngDevMode ? [{ debugName: "statusToLabelMap" }] : []));
3054
+ this.timelineStatus = computed(() => timelineItemStatusMap[this.status().stepStatus], ...(ngDevMode ? [{ debugName: "timelineStatus" }] : []));
3055
+ }
3056
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PipelineProgressItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3057
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: PipelineProgressItemComponent, isStandalone: true, selector: "he-pipeline-progress-item", inputs: { status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, showStatus: { classPropertyName: "showStatus", publicName: "showStatus", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, statusToLabelMap: { classPropertyName: "statusToLabelMap", publicName: "statusToLabelMap", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "attr.timeline-status": "timelineStatus()", "attr.timeline-position": "position()" }, classAttribute: "is-flex is-align-items-center timeline-item" }, ngImport: i0, template: "@if (status(); as stat) {\n <he-pipeline-progress-status class=\"mr-2\" [status]=\"timelineStatus()\" size=\"small\" />\n\n <div class=\"is-size-7\" [style.opacity]=\"showStatus() ? 1 : 0\">\n <p class=\"status-label\">\n {{ statusToLabelMap()[stat.status] }}\n </p>\n\n <p class=\"has-text-grey-lighter\">\n @if (stat.duration > 0) {\n {{ stat.duration | pipelineDuration }}\n }\n </p>\n </div>\n}\n", styles: [":root{--pipeline-progress-item-background: #249da5;--pipeline-progress-item-border-color: #e1eded}:host{position:relative;line-height:1.1;z-index:1}:host:before{content:\"\";position:absolute;top:0;left:2px;width:14px;height:100%;border:0 solid;border-left-width:6px!important;border-right-width:6px!important;z-index:-1;background-color:var(--pipeline-progress-item-background);border-color:var(--pipeline-progress-item-border-color)}:host[timeline-position=top]:before{bottom:0;top:auto;height:50%}:host[timeline-position=bottom]:before{height:50%}:host[timeline-status=error] .status-label{color:#ff3844}:host[timeline-status=pending] .status-label{color:#b5b5b5}:host[timeline-status=none] .status-label{color:#b5b5b5}:host>*{transition:opacity .3s}\n"], dependencies: [{ kind: "component", type: PipelineProgressStatusComponent, selector: "he-pipeline-progress-status", inputs: ["status", "size"] }, { kind: "pipe", type: PipelineDurationPipe, name: "pipelineDuration" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3058
+ }
3059
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PipelineProgressItemComponent, decorators: [{
3060
+ type: Component$1,
3061
+ args: [{ selector: 'he-pipeline-progress-item', imports: [PipelineProgressStatusComponent, PipelineDurationPipe], host: {
3062
+ class: 'is-flex is-align-items-center timeline-item',
3063
+ '[attr.timeline-status]': 'timelineStatus()',
3064
+ '[attr.timeline-position]': 'position()'
3065
+ }, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (status(); as stat) {\n <he-pipeline-progress-status class=\"mr-2\" [status]=\"timelineStatus()\" size=\"small\" />\n\n <div class=\"is-size-7\" [style.opacity]=\"showStatus() ? 1 : 0\">\n <p class=\"status-label\">\n {{ statusToLabelMap()[stat.status] }}\n </p>\n\n <p class=\"has-text-grey-lighter\">\n @if (stat.duration > 0) {\n {{ stat.duration | pipelineDuration }}\n }\n </p>\n </div>\n}\n", styles: [":root{--pipeline-progress-item-background: #249da5;--pipeline-progress-item-border-color: #e1eded}:host{position:relative;line-height:1.1;z-index:1}:host:before{content:\"\";position:absolute;top:0;left:2px;width:14px;height:100%;border:0 solid;border-left-width:6px!important;border-right-width:6px!important;z-index:-1;background-color:var(--pipeline-progress-item-background);border-color:var(--pipeline-progress-item-border-color)}:host[timeline-position=top]:before{bottom:0;top:auto;height:50%}:host[timeline-position=bottom]:before{height:50%}:host[timeline-status=error] .status-label{color:#ff3844}:host[timeline-status=pending] .status-label{color:#b5b5b5}:host[timeline-status=none] .status-label{color:#b5b5b5}:host>*{transition:opacity .3s}\n"] }]
3066
+ }], propDecorators: { status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], showStatus: [{ type: i0.Input, args: [{ isSignal: true, alias: "showStatus", required: false }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], statusToLabelMap: [{ type: i0.Input, args: [{ isSignal: true, alias: "statusToLabelMap", required: true }] }] } });
3067
+
3068
+ const PIPELINE_PROGRESS_ITEM_HEIGHT = 50;
3069
+ const PIPELINE_PROGRESS_GROUP_ANIMATION_DURATION = 300;
3070
+ function getPipelineProgressGroupHeight(visible, statusesCount, leftover) {
3071
+ return `${visible ? statusesCount * PIPELINE_PROGRESS_ITEM_HEIGHT : leftover}px`;
3072
+ }
3073
+ const pipelineProgressGroupTransition = `height ${PIPELINE_PROGRESS_GROUP_ANIMATION_DURATION}ms ease`;
3074
+
3075
+ class PipelineProgressGroupComponent {
3076
+ constructor() {
3077
+ this.transition = pipelineProgressGroupTransition;
3078
+ this.visible = input(false, ...(ngDevMode ? [{ debugName: "visible" }] : []));
3079
+ this.isFirstStage = input(false, ...(ngDevMode ? [{ debugName: "isFirstStage" }] : []));
3080
+ this.isLastStage = input(false, ...(ngDevMode ? [{ debugName: "isLastStage" }] : []));
3081
+ this.stepStatus = input(...(ngDevMode ? [undefined, { debugName: "stepStatus" }] : []));
3082
+ this.statuses = input(...(ngDevMode ? [undefined, { debugName: "statuses" }] : []));
3083
+ this.direction = input.required(...(ngDevMode ? [{ debugName: "direction" }] : []));
3084
+ this.statusToLabelMap = input.required(...(ngDevMode ? [{ debugName: "statusToLabelMap" }] : []));
3085
+ this.steps = computed(() => this.statuses().map((s, index) => ({
3086
+ ...s,
3087
+ position: this._isTopElement(index) ? 'top' : this._isBottomElement(index) ? 'bottom' : 'between'
3088
+ })), ...(ngDevMode ? [{ debugName: "steps" }] : []));
3089
+ this.height = computed(() => getPipelineProgressGroupHeight(this.visible(), this.statuses()?.length ?? 0, this._leftover()), ...(ngDevMode ? [{ debugName: "height" }] : []));
3090
+ this._leftover = computed(() => (this.isFirstStage() && this.direction() === 'up') || (this.isLastStage() && this.direction() === 'down') ? 0 : 10, ...(ngDevMode ? [{ debugName: "_leftover" }] : []));
3091
+ }
3092
+ _isTopElement(index) {
3093
+ return index === 0 && this.isFirstStage() && this.direction() === 'up';
3094
+ }
3095
+ _isBottomElement(index) {
3096
+ return index === this.statuses().length - 1 && this.isLastStage() && this.direction() === 'down';
3097
+ }
3098
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PipelineProgressGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3099
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: PipelineProgressGroupComponent, isStandalone: true, selector: "he-pipeline-progress-group", inputs: { visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, isFirstStage: { classPropertyName: "isFirstStage", publicName: "isFirstStage", isSignal: true, isRequired: false, transformFunction: null }, isLastStage: { classPropertyName: "isLastStage", publicName: "isLastStage", isSignal: true, isRequired: false, transformFunction: null }, stepStatus: { classPropertyName: "stepStatus", publicName: "stepStatus", isSignal: true, isRequired: false, transformFunction: null }, statuses: { classPropertyName: "statuses", publicName: "statuses", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: true, transformFunction: null }, statusToLabelMap: { classPropertyName: "statusToLabelMap", publicName: "statusToLabelMap", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "style.height": "height()", "style.transition": "transition" }, classAttribute: "is-flex is-flex-direction-column" }, ngImport: i0, template: "@for (stat of steps(); track stat.status) {\n <he-pipeline-progress-item\n [showStatus]=\"visible()\"\n [status]=\"stat\"\n [statusToLabelMap]=\"statusToLabelMap()\"\n [position]=\"stat.position\" />\n}\n", styles: [":host{overflow:hidden}he-pipeline-progress-item{left:-78px;margin-left:auto;width:50%;height:50px;min-height:50px}\n"], dependencies: [{ kind: "component", type: PipelineProgressItemComponent, selector: "he-pipeline-progress-item", inputs: ["status", "showStatus", "position", "statusToLabelMap"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3100
+ }
3101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PipelineProgressGroupComponent, decorators: [{
3102
+ type: Component$1,
3103
+ args: [{ selector: 'he-pipeline-progress-group', imports: [PipelineProgressItemComponent], host: {
3104
+ class: 'is-flex is-flex-direction-column',
3105
+ '[style.height]': 'height()',
3106
+ '[style.transition]': 'transition'
3107
+ }, changeDetection: ChangeDetectionStrategy.OnPush, template: "@for (stat of steps(); track stat.status) {\n <he-pipeline-progress-item\n [showStatus]=\"visible()\"\n [status]=\"stat\"\n [statusToLabelMap]=\"statusToLabelMap()\"\n [position]=\"stat.position\" />\n}\n", styles: [":host{overflow:hidden}he-pipeline-progress-item{left:-78px;margin-left:auto;width:50%;height:50px;min-height:50px}\n"] }]
3108
+ }], propDecorators: { visible: [{ type: i0.Input, args: [{ isSignal: true, alias: "visible", required: false }] }], isFirstStage: [{ type: i0.Input, args: [{ isSignal: true, alias: "isFirstStage", required: false }] }], isLastStage: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLastStage", required: false }] }], stepStatus: [{ type: i0.Input, args: [{ isSignal: true, alias: "stepStatus", required: false }] }], statuses: [{ type: i0.Input, args: [{ isSignal: true, alias: "statuses", required: false }] }], direction: [{ type: i0.Input, args: [{ isSignal: true, alias: "direction", required: true }] }], statusToLabelMap: [{ type: i0.Input, args: [{ isSignal: true, alias: "statusToLabelMap", required: true }] }] } });
3109
+
3110
+ const cleanStatus = (status) => (status || '').replace('Done', '').replace('Error', '');
3111
+ class PipelineStagesProgressComponent {
3112
+ constructor() {
3113
+ /**
3114
+ * The current status.
3115
+ */
3116
+ this.status = input(...(ngDevMode ? [undefined, { debugName: "status" }] : []));
3117
+ /**
3118
+ * Is the current status in progress?
3119
+ */
3120
+ this.processing = input(false, ...(ngDevMode ? [{ debugName: "processing" }] : []));
3121
+ /**
3122
+ * List of statuses, without the `Done` or `Error` suffix.
3123
+ */
3124
+ this.statuses = input.required(...(ngDevMode ? [{ debugName: "statuses" }] : []));
3125
+ /**
3126
+ * Assign a group to each status.
3127
+ */
3128
+ this.statusToGroupMap = input.required(...(ngDevMode ? [{ debugName: "statusToGroupMap" }] : []));
3129
+ /**
3130
+ * Label for each status.
3131
+ */
3132
+ this.statusToLabelMap = input.required(...(ngDevMode ? [{ debugName: "statusToLabelMap" }] : []));
3133
+ /**
3134
+ * Assign colors to each group. The statuses under the same group will use the same colors.
3135
+ */
3136
+ this.statusGroupColorFn = input.required(...(ngDevMode ? [{ debugName: "statusGroupColorFn" }] : []));
3137
+ /**
3138
+ * Duration per status, in milliseconds.
3139
+ */
3140
+ this.statusDurationMap = input(...(ngDevMode ? [undefined, { debugName: "statusDurationMap" }] : []));
3141
+ this.openedStage = signal(null, ...(ngDevMode ? [{ debugName: "openedStage" }] : []));
3142
+ this.slideDirection = signal('up', ...(ngDevMode ? [{ debugName: "slideDirection" }] : []));
3143
+ this.successes = computed(() => this.statuses().map(status => `${status}Done`), ...(ngDevMode ? [{ debugName: "successes" }] : []));
3144
+ this.errors = computed(() => this.statuses().map(status => `${status}Error`), ...(ngDevMode ? [{ debugName: "errors" }] : []));
3145
+ this.success = computed(() => this.successes().includes(this.status()), ...(ngDevMode ? [{ debugName: "success" }] : []));
3146
+ this.statusGroups = computed(() => unique(Object.values(this.statusToGroupMap() ?? {})), ...(ngDevMode ? [{ debugName: "statusGroups" }] : []));
3147
+ this.statusIndex = computed(() => {
3148
+ const indexSuccess = this.successes().indexOf(this.status());
3149
+ const indexError = this.errors().indexOf(this.status());
3150
+ return indexError >= 0 ? indexError : indexSuccess + (this.success() ? 1 : 0);
3151
+ }, ...(ngDevMode ? [{ debugName: "statusIndex" }] : []));
3152
+ this.statusesWithStepStatus = computed(() => this.statuses().map((status, index) => ({
3153
+ status,
3154
+ group: this.statusToGroupMap()[status],
3155
+ stepStatus: getStepStatus(index, this.statusIndex(), this.success(), this.processing()),
3156
+ duration: this.statusDurationMap()?.[status]
3157
+ })), ...(ngDevMode ? [{ debugName: "statusesWithStepStatus" }] : []));
3158
+ this.groups = computed(() => {
3159
+ const statusesWithStepStatus = this.statusesWithStepStatus();
3160
+ return this.statusGroups().map(group => {
3161
+ const statuses = statusesWithStepStatus.filter(status => status.group === group);
3162
+ return {
3163
+ group,
3164
+ statuses,
3165
+ valid: statuses.some(({ stepStatus }) => stepStatus === StepStatus.error),
3166
+ palette: this._getGroupColorPalette(group),
3167
+ groupStatus: getStageStatus(statuses.map(({ stepStatus }) => stepStatus))
3168
+ };
3169
+ });
3170
+ }, ...(ngDevMode ? [{ debugName: "groups" }] : []));
3171
+ effect(() => {
3172
+ // open the status group or the first group
3173
+ if (this.status()) {
3174
+ // when processing, we need to open the group of the next status
3175
+ const statusIndex = this.statuses().indexOf(cleanStatus(this.status()));
3176
+ const status = this.statuses()[this.processing() ? statusIndex + 1 : statusIndex];
3177
+ this.openStatusGroup(status);
3178
+ }
3179
+ });
3180
+ }
3181
+ openStatusGroup(status) {
3182
+ const group = this.statusesWithStepStatus().find(group => group.status == cleanStatus(status))?.group;
3183
+ const index = this.groups().findIndex(value => value.group === group);
3184
+ this.openedStage.set(Math.max(0, Math.min(index, this.groups().length - 1)));
3185
+ }
3186
+ _getGroupColorPalette(group) {
3187
+ const { background, border, text } = this.statusGroupColorFn()(group);
3188
+ return {
3189
+ '--pipeline-progress-item-background': border,
3190
+ '--pipeline-progress-item-border-color': background,
3191
+ '--pipeline-stages-border-color': border,
3192
+ '--pipeline-stages-background': background,
3193
+ '--pipeline-stages-stagesCountColor': text
3194
+ };
3195
+ }
3196
+ toggleOpenedStage(index) {
3197
+ this.openedStage.set(this.openedStage() === index ? null : index);
3198
+ }
3199
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PipelineStagesProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3200
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: PipelineStagesProgressComponent, isStandalone: true, selector: "he-pipeline-stages-progress", inputs: { status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, processing: { classPropertyName: "processing", publicName: "processing", isSignal: true, isRequired: false, transformFunction: null }, statuses: { classPropertyName: "statuses", publicName: "statuses", isSignal: true, isRequired: true, transformFunction: null }, statusToGroupMap: { classPropertyName: "statusToGroupMap", publicName: "statusToGroupMap", isSignal: true, isRequired: true, transformFunction: null }, statusToLabelMap: { classPropertyName: "statusToLabelMap", publicName: "statusToLabelMap", isSignal: true, isRequired: true, transformFunction: null }, statusGroupColorFn: { classPropertyName: "statusGroupColorFn", publicName: "statusGroupColorFn", isSignal: true, isRequired: true, transformFunction: null }, statusDurationMap: { classPropertyName: "statusDurationMap", publicName: "statusDurationMap", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@for (group of groups(); track group.group; let index = $index, first = $first, last = $last) {\n <div class=\"pipeline-stage-container is-centered\" [ngStyle]=\"group.palette\">\n <div>&nbsp;</div>\n <he-pipeline-progress-stage (click)=\"toggleOpenedStage(index)\" [processing]=\"processing()\" [group]=\"group\" />\n <div>&nbsp;</div>\n <he-pipeline-progress-group\n [style.order]=\"slideDirection() === 'up' ? -99 : 99\"\n [direction]=\"slideDirection()\"\n [statuses]=\"group.statuses\"\n [statusToLabelMap]=\"statusToLabelMap()\"\n [isFirstStage]=\"first\"\n [isLastStage]=\"last\"\n [visible]=\"openedStage() === index\" />\n </div>\n}\n", styles: [":host{display:grid;grid-template-columns:1fr auto auto 1fr}:host .pipeline-stage-container{grid-column:span 4;position:relative;overflow:hidden;display:grid;grid-template-columns:subgrid}he-pipeline-progress-stage{grid-column:span 2}he-pipeline-progress-group{grid-column:span 4}\n"], dependencies: [{ kind: "component", type: PipelineProgressStageComponent, selector: "he-pipeline-progress-stage", inputs: ["group", "processing"] }, { kind: "component", type: PipelineProgressGroupComponent, selector: "he-pipeline-progress-group", inputs: ["visible", "isFirstStage", "isLastStage", "stepStatus", "statuses", "direction", "statusToLabelMap"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3201
+ }
3202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PipelineStagesProgressComponent, decorators: [{
3203
+ type: Component$1,
3204
+ args: [{ selector: 'he-pipeline-stages-progress', changeDetection: ChangeDetectionStrategy.OnPush, imports: [PipelineProgressStageComponent, PipelineProgressGroupComponent, NgStyle], template: "@for (group of groups(); track group.group; let index = $index, first = $first, last = $last) {\n <div class=\"pipeline-stage-container is-centered\" [ngStyle]=\"group.palette\">\n <div>&nbsp;</div>\n <he-pipeline-progress-stage (click)=\"toggleOpenedStage(index)\" [processing]=\"processing()\" [group]=\"group\" />\n <div>&nbsp;</div>\n <he-pipeline-progress-group\n [style.order]=\"slideDirection() === 'up' ? -99 : 99\"\n [direction]=\"slideDirection()\"\n [statuses]=\"group.statuses\"\n [statusToLabelMap]=\"statusToLabelMap()\"\n [isFirstStage]=\"first\"\n [isLastStage]=\"last\"\n [visible]=\"openedStage() === index\" />\n </div>\n}\n", styles: [":host{display:grid;grid-template-columns:1fr auto auto 1fr}:host .pipeline-stage-container{grid-column:span 4;position:relative;overflow:hidden;display:grid;grid-template-columns:subgrid}he-pipeline-progress-stage{grid-column:span 2}he-pipeline-progress-group{grid-column:span 4}\n"] }]
3205
+ }], ctorParameters: () => [], propDecorators: { status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], processing: [{ type: i0.Input, args: [{ isSignal: true, alias: "processing", required: false }] }], statuses: [{ type: i0.Input, args: [{ isSignal: true, alias: "statuses", required: true }] }], statusToGroupMap: [{ type: i0.Input, args: [{ isSignal: true, alias: "statusToGroupMap", required: true }] }], statusToLabelMap: [{ type: i0.Input, args: [{ isSignal: true, alias: "statusToLabelMap", required: true }] }], statusGroupColorFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "statusGroupColorFn", required: true }] }], statusDurationMap: [{ type: i0.Input, args: [{ isSignal: true, alias: "statusDurationMap", required: false }] }] } });
3206
+
2746
3207
  class PopoverComponent {
2747
3208
  constructor() {
2748
3209
  this.message = input('', ...(ngDevMode ? [{ debugName: "message" }] : []));
@@ -9275,208 +9736,6 @@ const nodeVersion = (node) => {
9275
9736
  return versions?.length ? desc(versions)[0] : null;
9276
9737
  };
9277
9738
 
9278
- // auto-generated content using "node scripts/generate-icons.js"
9279
- const iconSizes = [
9280
- '16',
9281
- '20',
9282
- '24',
9283
- '40',
9284
- '48'
9285
- ];
9286
- const icons = [
9287
- 'aggregation',
9288
- 'api',
9289
- 'api-circle',
9290
- 'archive',
9291
- 'arrow-down',
9292
- 'arrow-down-right',
9293
- 'arrow-left',
9294
- 'arrow-right',
9295
- 'arrow-up',
9296
- 'autogenerate',
9297
- 'autogenerate-circle',
9298
- 'aws',
9299
- 'ban',
9300
- 'bell',
9301
- 'bell-with-badge',
9302
- 'book',
9303
- 'breakdown',
9304
- 'bug',
9305
- 'buoy',
9306
- 'calculation-toolkit',
9307
- 'calculator',
9308
- 'caret-down',
9309
- 'caret-left',
9310
- 'caret-right',
9311
- 'caret-up',
9312
- 'certificate',
9313
- 'chart',
9314
- 'checkmark',
9315
- 'checkmark-circle',
9316
- 'checkmark-circle-filled',
9317
- 'checkmark-circle-filled-with-shadow',
9318
- 'chevron-double-left',
9319
- 'chevron-double-right',
9320
- 'chevron-down',
9321
- 'chevron-left',
9322
- 'chevron-right',
9323
- 'chevron-up',
9324
- 'circle',
9325
- 'citation',
9326
- 'citation-square',
9327
- 'clock',
9328
- 'cloud',
9329
- 'collapse',
9330
- 'collapse-panel',
9331
- 'commit',
9332
- 'community',
9333
- 'community-edition',
9334
- 'compare',
9335
- 'copy',
9336
- 'corner-drag',
9337
- 'csv-file',
9338
- 'cycle',
9339
- 'dashboard',
9340
- 'data-format',
9341
- 'database-wheat',
9342
- 'dot-circle',
9343
- 'dot-filled',
9344
- 'download',
9345
- 'drag',
9346
- 'edit',
9347
- 'edit-withfield',
9348
- 'embed',
9349
- 'exclamation',
9350
- 'exclamation-triangle',
9351
- 'exclamation-triangle-filled',
9352
- 'export',
9353
- 'external-link',
9354
- 'feedback',
9355
- 'fence',
9356
- 'film',
9357
- 'filter-funnel',
9358
- 'filter-slider',
9359
- 'flash',
9360
- 'folder',
9361
- 'folder-open',
9362
- 'foodprocessor',
9363
- 'globe-continents',
9364
- 'globe-lines',
9365
- 'glossary',
9366
- 'greenhouse',
9367
- 'guide',
9368
- 'guide-overlay',
9369
- 'help',
9370
- 'help-circle',
9371
- 'history',
9372
- 'home',
9373
- 'husk',
9374
- 'image',
9375
- 'incognito',
9376
- 'indexed',
9377
- 'info',
9378
- 'info-circle',
9379
- 'lake',
9380
- 'link',
9381
- 'list-indented',
9382
- 'livestock',
9383
- 'loading',
9384
- 'loading-bar',
9385
- 'loading-circle-filled',
9386
- 'loading-circle-filled-withshadow',
9387
- 'log',
9388
- 'mail',
9389
- 'map',
9390
- 'menu',
9391
- 'messages',
9392
- 'messages-with-badge',
9393
- 'metrics',
9394
- 'migration',
9395
- 'minus',
9396
- 'model-docs',
9397
- 'news',
9398
- 'node',
9399
- 'notepad',
9400
- 'ocean',
9401
- 'organisation',
9402
- 'overflow-menu',
9403
- 'pin',
9404
- 'plus',
9405
- 'pond',
9406
- 'private-eye',
9407
- 'private-eye-crossed',
9408
- 'private-lock',
9409
- 'profile-checkmark',
9410
- 'profile-circle',
9411
- 'profile-gear',
9412
- 'progress',
9413
- 'python',
9414
- 'refresh',
9415
- 'rename',
9416
- 'retailer',
9417
- 'review',
9418
- 'river',
9419
- 'save',
9420
- 'schema',
9421
- 'search',
9422
- 'search-with-exclamation',
9423
- 'search-with-minus',
9424
- 'search-with-plus',
9425
- 'settings',
9426
- 'share',
9427
- 'share-socials',
9428
- 'shrub',
9429
- 'sign-out',
9430
- 'slack',
9431
- 'socials-gitlab',
9432
- 'socials-google',
9433
- 'socials-linkedin',
9434
- 'socials-linkedin-circle',
9435
- 'socials-orcid',
9436
- 'socials-orcid-circle',
9437
- 'sort-ascending',
9438
- 'sort-caret-down-filled',
9439
- 'sort-caret-stacked-filled-stacked',
9440
- 'sort-caret-up-filled',
9441
- 'source',
9442
- 'star',
9443
- 'star-filled',
9444
- 'table',
9445
- 'tag-filled',
9446
- 'target',
9447
- 'term',
9448
- 'textform-list',
9449
- 'tool',
9450
- 'transport',
9451
- 'trash',
9452
- 'tree',
9453
- 'turn-phone',
9454
- 'unit',
9455
- 'upload',
9456
- 'video',
9457
- 'xmark',
9458
- 'xmark-circle',
9459
- 'xmark-circle-filled',
9460
- 'xmark-circle-filled-with-shadow',
9461
- 'zip'
9462
- ];
9463
-
9464
- const loadSvgSprite = () => {
9465
- const http = inject(HttpClient);
9466
- const document = inject(DOCUMENT);
9467
- const platformLocation = inject(PlatformLocation);
9468
- const baseUrl = platformLocation.getBaseHrefFromDOM();
9469
- return lastValueFrom(http.get(`${baseUrl}assets/svg-icons/icons-sprite.svg`, { responseType: 'text' }).pipe(tap(svgContent => {
9470
- const div = document.createElement('div');
9471
- div.innerHTML = svgContent;
9472
- const svg = div.querySelector('svg');
9473
- if (svg) {
9474
- svg.style.display = 'none';
9475
- document.body.insertBefore(svg, document.body.firstChild);
9476
- }
9477
- })));
9478
- };
9479
-
9480
9739
  class NodeAggregatedInfoComponent {
9481
9740
  constructor() {
9482
9741
  this.icon = input('info-circle', ...(ngDevMode ? [{ debugName: "icon" }] : []));
@@ -14533,5 +14792,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
14533
14792
  * Generated bundle index. Do not edit.
14534
14793
  */
14535
14794
 
14536
- export { ARRAY_DELIMITER, ApplyPurePipe, BarChartComponent, BibliographiesSearchConfirmComponent, BlankNodeStateComponent, BlankNodeStateNoticeComponent, BlankNodeValueDeltaComponent, CapitalizePipe, ChartComponent, ChartConfigurationDirective, ChartExportButtonComponent, ChartTooltipComponent, ClickOutsideDirective, ClipboardComponent, CollapsibleBoxComponent, CollapsibleBoxStyle, ColorPalette, CompoundDirective, CompoundPipe, ControlValueAccessor, CycleNodesKeyGroup, CyclesCompletenessComponent, 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, KeyToLabelPipe, Level, LineChartComponent, LinkKeyValueComponent, LogStatus, LongPressDirective, MAX_RESULTS, MapsDrawingComponent, MapsDrawingConfirmComponent, MendeleySearchResult, MobileShellComponent, NavigationMenuComponent, NoExtPipe, NodeAggregatedComponent, NodeAggregatedInfoComponent, NodeAggregatedQualityScoreComponent, NodeCsvExportConfirmComponent, NodeCsvPreviewComponent, NodeCsvSelectHeadersComponent, NodeIconComponent, NodeJsonldComponent, NodeJsonldSchemaComponent, NodeKeyState, NodeLinkComponent, NodeLogsFileComponent, NodeLogsModelsComponent, NodeLogsTimeComponent, NodeMissingLookupFactorsComponent, NodeQualityScore, NodeRecommendationsComponent, NodeSelectComponent, NodeValueDetailsComponent, PluralizePipe, PopoverComponent, PopoverConfirmComponent, PrecisionPipe, RelatedNodeResult, RemoveMarkdownPipe, RepeatPipe, Repository, ResizedDirective, ResizedEvent, ResponsiveService, SchemaInfoComponent, SchemaVersionLinkComponent, SearchExtendComponent, ShelfDialogComponent, ShellComponent, SitesManagementChartComponent, SitesMapsComponent, SitesNodesComponent, SkeletonTextComponent, SocialTagsComponent, SortByPipe, SortSelectComponent, 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, errorHasError, errorHasWarning, errorText, evaluateSuccess, exportAsSVG, exportFormats, externalLink, externalNodeLink, fillColor, fillStyle, filterBlankNode$1 as filterBlankNode, filterError, filterParams, findConfigModels, findMatchingModel, findModels, findNodeModel, findOrchestratorModel, findProperty, findPropertyById, flatFilterData, flatFilterNode, formatCustomErrorMessage, formatDate, formatError, formatPropertyError, formatter, getColor, getDatesBetween, gitBranch, gitHome, gitlabRawUrl, glossaryBaseUrl, glossaryLink, groupChanged, groupLogsByModel, groupLogsByTerm, groupNodesByTerm, groupdLogsByKey, grouppedKeys, grouppedValueKeys, groupsLogsByFields, guideModelUrl, guideNamespace, guidePageId, handleAPIError, handleGuideEvent, hasError, hasValidationError, hasWarning, hexToRgba, iconSizes, icons, ignoreKeys$2 as ignoreKeys, initialFilterState, injectResizeEvent$, inputGroupsTermTypes, isAddPropertyEnabled, isChrome, isDateBetween, isEqual, isExternal, isKeyClosedVisible, isKeyHidden, isMaxStage, isMethodModelAllowed, isMigrationError, isMissingOneOfError, isMissingPropertyError, isNonNodeModelKey, isSchemaIri, isScrolledBelow, isState, isTermTypeAllowed, isValidKey, keyToDataPath, levels, listColor, listColorContinuous, listColorWithAlpha, loadMapApi, loadSvgSprite, locationQuery, logToCsv$1 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, missingNodeErrors, modelCount, modelKeyParams, modelParams, models, multiMatchQuery, nestedProperty, nestingEnabled, nestingTypeEnabled, nodeAvailableProperties, nodeById, nodeColours$1 as nodeColours, nodeDataState, nodeDataStates, nodeId, nodeIds, nodeLink, nodeLinkEnabled, nodeLinkTypeEnabled, nodeLogsUrl, nodeQualityScoreColor, nodeQualityScoreLevel, nodeQualityScoreMaxDefault, nodeQualityScoreOrder, nodeSecondaryColours, nodeToAggregationFilename, nodeType, nodeTypeDataState, nodeTypeIcon, nodeUrl, nodeUrlParams, nodeVersion, nodesByState, nodesByType, numberGte, optionsFromGroup, parentKey, parentProperty, parseColor, parseData, parseDataPath, parseLines, parseLogMessage, 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, singleProperty, siteTooBig, siteTypeToColor, siteTypeToIcon, sortProperties, sortedDates, strokeColor, strokeStyle, suggestMatchQuery, suggestQuery, takeAfterViewInit, termLocation, termLocationName, termProperties, termTypeLabel, toSnakeCase, toThousands, typeToNewProperty, typeaheadFocus, uncapitalize, uniqueDatesBetween, updateProperties, valueLink, valueToString, valueTypeToDefault, valueValue, waitFor, wildcardQuery };
14795
+ export { ARRAY_DELIMITER, ApplyPurePipe, BarChartComponent, BibliographiesSearchConfirmComponent, BlankNodeStateComponent, BlankNodeStateNoticeComponent, BlankNodeValueDeltaComponent, CapitalizePipe, ChartComponent, ChartConfigurationDirective, ChartExportButtonComponent, ChartTooltipComponent, ClickOutsideDirective, ClipboardComponent, CollapsibleBoxComponent, CollapsibleBoxStyle, ColorPalette, CompoundDirective, CompoundPipe, ControlValueAccessor, CycleNodesKeyGroup, CyclesCompletenessComponent, 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, KeyToLabelPipe, Level, LineChartComponent, LinkKeyValueComponent, LogStatus, LongPressDirective, MAX_RESULTS, MapsDrawingComponent, MapsDrawingConfirmComponent, MendeleySearchResult, MobileShellComponent, NavigationMenuComponent, NoExtPipe, NodeAggregatedComponent, NodeAggregatedInfoComponent, NodeAggregatedQualityScoreComponent, NodeCsvExportConfirmComponent, NodeCsvPreviewComponent, NodeCsvSelectHeadersComponent, NodeIconComponent, 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, SitesManagementChartComponent, SitesMapsComponent, SitesNodesComponent, SkeletonTextComponent, SocialTagsComponent, SortByPipe, SortSelectComponent, 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, errorHasError, errorHasWarning, errorText, evaluateSuccess, exportAsSVG, exportFormats, externalLink, externalNodeLink, fillColor, fillStyle, filterBlankNode$1 as filterBlankNode, filterError, filterParams, findConfigModels, findMatchingModel, findModels, findNodeModel, findOrchestratorModel, findProperty, findPropertyById, flatFilterData, flatFilterNode, formatCustomErrorMessage, formatDate, formatError, formatPropertyError, formatter, getColor, getDatesBetween, gitBranch, gitHome, gitlabRawUrl, glossaryBaseUrl, glossaryLink, groupChanged, groupLogsByModel, groupLogsByTerm, groupNodesByTerm, groupdLogsByKey, grouppedKeys, grouppedValueKeys, groupsLogsByFields, guideModelUrl, guideNamespace, guidePageId, handleAPIError, handleGuideEvent, hasError, hasValidationError, hasWarning, hexToRgba, iconSizes, icons, ignoreKeys$2 as ignoreKeys, initialFilterState, injectResizeEvent$, inputGroupsTermTypes, isAddPropertyEnabled, isChrome, isDateBetween, isEqual, isExternal, isKeyClosedVisible, isKeyHidden, isMaxStage, isMethodModelAllowed, isMigrationError, isMissingOneOfError, isMissingPropertyError, isNonNodeModelKey, isSchemaIri, isScrolledBelow, isState, isTermTypeAllowed, isValidKey, keyToDataPath, levels, listColor, listColorContinuous, listColorWithAlpha, loadMapApi, loadSvgSprite, locationQuery, logToCsv$1 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, missingNodeErrors, modelCount, modelKeyParams, modelParams, models, multiMatchQuery, nestedProperty, nestingEnabled, nestingTypeEnabled, nodeAvailableProperties, nodeById, nodeColours$1 as nodeColours, nodeDataState, nodeDataStates, nodeId, nodeIds, nodeLink, nodeLinkEnabled, nodeLinkTypeEnabled, nodeLogsUrl, nodeQualityScoreColor, nodeQualityScoreLevel, nodeQualityScoreMaxDefault, nodeQualityScoreOrder, nodeSecondaryColours, nodeToAggregationFilename, nodeType, nodeTypeDataState, nodeTypeIcon, nodeUrl, nodeUrlParams, nodeVersion, nodesByState, nodesByType, numberGte, optionsFromGroup, parentKey, parentProperty, parseColor, parseData, parseDataPath, parseLines, parseLogMessage, 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, singleProperty, siteTooBig, siteTypeToColor, siteTypeToIcon, sortProperties, sortedDates, strokeColor, strokeStyle, suggestMatchQuery, suggestQuery, takeAfterViewInit, termLocation, termLocationName, termProperties, termTypeLabel, toSnakeCase, toThousands, typeToNewProperty, typeaheadFocus, uncapitalize, uniqueDatesBetween, updateProperties, valueLink, valueToString, valueTypeToDefault, valueValue, waitFor, wildcardQuery };
14537
14796
  //# sourceMappingURL=hestia-earth-ui-components.mjs.map