@hestia-earth/ui-components 0.36.19 → 0.36.21

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.
@@ -11,11 +11,12 @@ import { of, zip, ReplaySubject, timer, Subject, combineLatest, pipe, fromEvent,
11
11
  import { HttpClient } from '@angular/common/http';
12
12
  import get from 'lodash.get';
13
13
  import { SCHEMA_VERSION, SchemaType, NodeType, TermTermType, productTermTermType, nestedSearchableKeys, SiteSiteType, EmissionMethodTier, isExpandable, sortKeysByType, isTypeNode, BlankNodesKey, impactAssessmentTermTermType, measurementTermTermType, emissionTermTermType, inputTermTermType, CycleFunctionalUnit, NonBlankNodesKey, jsonldPath, isTypeValid, isTypeBlankNode, typeToSchemaType, managementTermTermType } from '@hestia-earth/schema';
14
- import { toPrecision, isUndefined, toComma, isNumber, getPercentileValue, isEmpty, unique, monthsBefore, keyToLabel, isEqual as isEqual$2, max, sum, toDashCase, diffInDays } from '@hestia-earth/utils';
14
+ import { toPrecision, isUndefined, isEmpty, toComma, isNumber, getPercentileValue, unique, monthsBefore, keyToLabel, isEqual as isEqual$2, max, sum, toDashCase, diffInDays } from '@hestia-earth/utils';
15
15
  import Gradient from 'javascript-color-gradient';
16
16
  import { ShadeGenerator } from 'shade-generator/dist/shadeGenerator';
17
- import merge from 'lodash.merge';
18
17
  import Chart, { Chart as Chart$1 } from 'chart.js';
18
+ import canvasToSvg from 'canvas-to-svg';
19
+ import merge from 'lodash.merge';
19
20
  import { select, selectAll } from 'd3-selection';
20
21
  import { json2csv } from 'json-2-csv';
21
22
  import { propertyValue as propertyValue$1, emptyValue } from '@hestia-earth/utils/dist/term';
@@ -202,6 +203,17 @@ const toSnakeCase = (value) => (value || '')
202
203
  .replace(/([a-z0-9])([A-Z])/g, '$1_$2')
203
204
  .replace(/([A-Z])([A-Z][a-z])/g, '$1_$2')
204
205
  .toLowerCase();
206
+ const downloadFile = (url, fileName) => {
207
+ const a = document.createElement('a');
208
+ document.body.appendChild(a);
209
+ a.setAttribute('style', 'display: none');
210
+ a.href = url;
211
+ a.download = fileName;
212
+ a.click();
213
+ a.remove();
214
+ // Clean up the object URL after a short delay
215
+ setTimeout(() => URL.revokeObjectURL(url), 100);
216
+ };
205
217
 
206
218
  const HE_API_BASE_URL = new InjectionToken('HE_API_BASE_URL');
207
219
  class HeCommonService {
@@ -991,6 +1003,188 @@ const lollipopChartPlugin = settings => ({
991
1003
  }
992
1004
  });
993
1005
 
1006
+ const defaultChartWidth = 800;
1007
+ const defaultChartHeight = 600;
1008
+ const isNonSerializableType = (value) => typeof value === 'function' || value instanceof HTMLElement || value instanceof Element || value instanceof Node;
1009
+ const setDefaultOptions = (config) => {
1010
+ config.options = config.options || {};
1011
+ config.options.plugins = config.options.plugins || {};
1012
+ config.options.plugins.legend = config.options.plugins.legend || { display: false };
1013
+ config.options.legendCallback = null;
1014
+ config.options.tooltips = {};
1015
+ config.options.animation = undefined;
1016
+ config.options.responsive = false;
1017
+ config.options.maintainAspectRatio = false;
1018
+ config.options.devicePixelRatio = 1;
1019
+ return config;
1020
+ };
1021
+ const modernizeChartConfig = (config) => {
1022
+ const modernized = { ...config };
1023
+ // For Chart.js v2, keep the configuration as-is since we're using the same version
1024
+ setDefaultOptions(modernized);
1025
+ return modernized;
1026
+ };
1027
+ const extractEssentialChartConfig = (config) => {
1028
+ const essentialConfig = {
1029
+ type: config.type,
1030
+ data: {
1031
+ labels: config.data?.labels || [],
1032
+ datasets: []
1033
+ },
1034
+ options: {
1035
+ responsive: true,
1036
+ maintainAspectRatio: false,
1037
+ plugins: {
1038
+ legend: {
1039
+ display: false
1040
+ }
1041
+ }
1042
+ }
1043
+ };
1044
+ if (config.data?.datasets) {
1045
+ essentialConfig.data.datasets = config.data.datasets.map((dataset) => ({
1046
+ label: dataset.label,
1047
+ data: dataset.data || [],
1048
+ backgroundColor: dataset.backgroundColor,
1049
+ borderColor: dataset.borderColor,
1050
+ borderWidth: dataset.borderWidth || 1,
1051
+ type: dataset.type
1052
+ }));
1053
+ }
1054
+ if (config.options?.plugins?.title) {
1055
+ essentialConfig.options.plugins.title = {
1056
+ display: config.options.plugins.title.display,
1057
+ text: config.options.plugins.title.text
1058
+ };
1059
+ }
1060
+ if (config.options?.scales) {
1061
+ essentialConfig.options.scales = {};
1062
+ Object.keys(config.options.scales).forEach(scaleKey => {
1063
+ const scale = config.options.scales[scaleKey];
1064
+ if (scale) {
1065
+ essentialConfig.options.scales[scaleKey] = {
1066
+ display: scale.display !== false,
1067
+ title: scale.title
1068
+ ? {
1069
+ display: scale.title.display,
1070
+ text: scale.title.text
1071
+ }
1072
+ : undefined
1073
+ };
1074
+ }
1075
+ });
1076
+ }
1077
+ return setDefaultOptions(essentialConfig);
1078
+ };
1079
+ const sanitizeChartConfig = (config) => {
1080
+ try {
1081
+ const sanitized = {
1082
+ type: config.type,
1083
+ data: deepCloneSerializable(config.data),
1084
+ options: deepCloneSerializable(config.options)
1085
+ };
1086
+ if (sanitized.data?.datasets?.length) {
1087
+ return modernizeChartConfig(sanitized);
1088
+ }
1089
+ }
1090
+ catch (error) {
1091
+ console.error('Sanitizing chart failed, fallback to default config');
1092
+ }
1093
+ return modernizeChartConfig(extractEssentialChartConfig(config));
1094
+ };
1095
+ const deepCloneSerializable = (obj, visited = new WeakSet()) => {
1096
+ const simpleValue = getSimpleValue(obj, visited);
1097
+ if (simpleValue !== undefined) {
1098
+ return simpleValue.value;
1099
+ }
1100
+ visited.add(obj);
1101
+ try {
1102
+ return cloneComplexObject(obj, visited);
1103
+ }
1104
+ catch (error) {
1105
+ console.warn('Error cloning object:', error);
1106
+ return {};
1107
+ }
1108
+ finally {
1109
+ visited.delete(obj);
1110
+ }
1111
+ };
1112
+ const getSimpleValue = (obj, visited) => {
1113
+ if (obj === null || typeof obj !== 'object') {
1114
+ return { value: obj };
1115
+ }
1116
+ if (visited.has(obj)) {
1117
+ return { value: {} };
1118
+ }
1119
+ const specialValue = handleSpecialTypes(obj);
1120
+ return specialValue !== undefined ? { value: specialValue } : undefined;
1121
+ };
1122
+ const cloneComplexObject = (obj, visited) => Array.isArray(obj) ? obj.map(item => deepCloneSerializable(item, visited)) : cloneObject(obj, visited);
1123
+ const handleSpecialTypes = (obj) => isNonSerializableType(obj) || obj instanceof RegExp ? null : obj instanceof Date ? obj.toISOString() : undefined;
1124
+ const shouldSkipProperty = (key, value) => isNonSerializableType(value) || ['__ngContext__', 'chart', 'ctx', 'canvas'].includes(key) || key.startsWith('_');
1125
+ const cloneObject = (obj, visited) => {
1126
+ const cloned = {};
1127
+ for (const key in obj) {
1128
+ if (!Object.prototype.hasOwnProperty.call(obj, key)) {
1129
+ continue;
1130
+ }
1131
+ const value = obj[key];
1132
+ if (shouldSkipProperty(key, value)) {
1133
+ continue;
1134
+ }
1135
+ const clonedValue = deepCloneSerializable(value, visited);
1136
+ if (clonedValue !== null) {
1137
+ cloned[key] = clonedValue;
1138
+ }
1139
+ }
1140
+ return cloned;
1141
+ };
1142
+ const stretchSvg = (svgString) => {
1143
+ const parser = new DOMParser();
1144
+ const doc = parser.parseFromString(svgString, 'image/svg+xml');
1145
+ const svgElement = doc.documentElement;
1146
+ // include padding on the right for labels that go over the edge
1147
+ svgElement.setAttribute('viewBox', `0 0 ${+svgElement.getAttribute('width') + 100} ${svgElement.getAttribute('height')}`);
1148
+ svgElement.setAttribute('width', '100%');
1149
+ svgElement.setAttribute('height', '100%');
1150
+ svgElement.setAttribute('preserveAspectRatio', 'xMidYMid meet');
1151
+ return svgElement.outerHTML;
1152
+ };
1153
+ const convertToSvg = (config, metadata = {}) => {
1154
+ const width = metadata.width || defaultChartWidth;
1155
+ const height = metadata.height || defaultChartHeight;
1156
+ const svgContext = new canvasToSvg(width, height);
1157
+ const mockCanvas = document.createElement('canvas');
1158
+ // Set dimensions to match the SVG context
1159
+ mockCanvas.width = width;
1160
+ mockCanvas.height = height;
1161
+ mockCanvas.style.width = width + 'px';
1162
+ mockCanvas.style.height = height + 'px';
1163
+ mockCanvas.getContext = type => {
1164
+ if (type === '2d') {
1165
+ svgContext.canvas = mockCanvas;
1166
+ return svgContext;
1167
+ }
1168
+ return null;
1169
+ };
1170
+ const chartConfig = sanitizeChartConfig(config);
1171
+ chartConfig.plugins = [
1172
+ afterBarDrawPlugin({
1173
+ textFn: ({ data }) => [toPrecision(data), metadata.units].filter(Boolean).join(' '),
1174
+ xPosFn: (x, index, width, chart, data) => (data < 0 || isEmpty(data) ? chart.scales['x-axis-0'].getPixelForValue(0) : x) + 10,
1175
+ emptyValueLabel: 'No data'
1176
+ })
1177
+ ];
1178
+ new Chart(mockCanvas, chartConfig);
1179
+ return stretchSvg(svgContext.getSerializedSvg(true));
1180
+ };
1181
+ const exportAsSVG = (config, metadata) => {
1182
+ const content = convertToSvg(config, metadata);
1183
+ const blob = new Blob([content], { type: 'image/svg+xml;charset=utf-8' });
1184
+ const url = URL.createObjectURL(blob);
1185
+ downloadFile(url, metadata.fileName || 'aggregate-chart-export.svg');
1186
+ };
1187
+
994
1188
  class ChartConfigurationDirective {
995
1189
  constructor() {
996
1190
  this._zone = inject(NgZone);
@@ -1076,12 +1270,20 @@ class ChartComponent {
1076
1270
  data: this.data()
1077
1271
  }), ...(ngDevMode ? [{ debugName: "configuration" }] : []));
1078
1272
  }
1273
+ exportAsSvg(config = {}) {
1274
+ return exportAsSVG(this.configuration(), {
1275
+ width: 600,
1276
+ height: 400,
1277
+ fileName: 'chart.svg',
1278
+ ...config
1279
+ });
1280
+ }
1079
1281
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1080
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.13", type: ChartComponent, isStandalone: true, selector: "he-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"is-relative h-100 | chart-container\" #container>\n <ng-content />\n\n <canvas [chartConfiguration]=\"configuration()\" [chartContainer]=\"container\"></canvas>\n</div>\n", styles: [":host{display:block;height:100%;overflow:visible}.chart-container{min-height:50px}\n"], dependencies: [{ kind: "directive", type: ChartConfigurationDirective, selector: "[chartConfiguration]", inputs: ["chartConfiguration", "chartContainer"], exportAs: ["chart"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1282
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.13", type: ChartComponent, isStandalone: true, selector: "he-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"is-relative h-100 | chart-container\" #container>\n <a class=\"is-absolute | download\" (click)=\"exportAsSvg()\" ngbTooltip=\"Download (SVG)\" placement=\"top\">\n <he-svg-icon name=\"download\" />\n </a>\n\n <ng-content />\n\n <canvas [chartConfiguration]=\"configuration()\" [chartContainer]=\"container\"></canvas>\n</div>\n", styles: [":host{display:block;height:100%;overflow:visible}.chart-container{min-height:50px}.download{top:-12px;right:-10px}\n"], dependencies: [{ kind: "directive", type: ChartConfigurationDirective, selector: "[chartConfiguration]", inputs: ["chartConfiguration", "chartContainer"], exportAs: ["chart"] }, { kind: "component", type: HESvgIconComponent, selector: "he-svg-icon", inputs: ["name", "size", "animation"] }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1081
1283
  }
1082
1284
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ChartComponent, decorators: [{
1083
1285
  type: Component$1,
1084
- args: [{ selector: 'he-chart', changeDetection: ChangeDetectionStrategy.OnPush, imports: [ChartConfigurationDirective], template: "<div class=\"is-relative h-100 | chart-container\" #container>\n <ng-content />\n\n <canvas [chartConfiguration]=\"configuration()\" [chartContainer]=\"container\"></canvas>\n</div>\n", styles: [":host{display:block;height:100%;overflow:visible}.chart-container{min-height:50px}\n"] }]
1286
+ args: [{ selector: 'he-chart', changeDetection: ChangeDetectionStrategy.OnPush, imports: [ChartConfigurationDirective, HESvgIconComponent, NgbTooltip], template: "<div class=\"is-relative h-100 | chart-container\" #container>\n <a class=\"is-absolute | download\" (click)=\"exportAsSvg()\" ngbTooltip=\"Download (SVG)\" placement=\"top\">\n <he-svg-icon name=\"download\" />\n </a>\n\n <ng-content />\n\n <canvas [chartConfiguration]=\"configuration()\" [chartContainer]=\"container\"></canvas>\n</div>\n", styles: [":host{display:block;height:100%;overflow:visible}.chart-container{min-height:50px}.download{top:-12px;right:-10px}\n"] }]
1085
1287
  }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }] } });
1086
1288
 
1087
1289
  const defaultSettings$2 = Object.freeze({
@@ -13104,7 +13306,7 @@ class ImpactAssessmentsIndicatorsChartComponent {
13104
13306
  this.datasets = computed(() => [
13105
13307
  {
13106
13308
  label: this.selectedTerm()?.name || '',
13107
- data: this.impactAssessments().map(impact => impactValue(impact, this.values())),
13309
+ data: this.impactAssessments().map(impact => toPrecision(impactValue(impact, this.values()))),
13108
13310
  backgroundColor: this.colors(),
13109
13311
  borderColor: this.colors(),
13110
13312
  barThickness: 2,
@@ -13917,5 +14119,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImpo
13917
14119
  * Generated bundle index. Do not edit.
13918
14120
  */
13919
14121
 
13920
- export { ARRAY_DELIMITER, ApplyPurePipe, BarChartComponent, BibliographiesSearchConfirmComponent, BlankNodeStateComponent, BlankNodeStateNoticeComponent, BlankNodeValueDeltaComponent, CapitalizePipe, ChartComponent, ChartConfigurationDirective, ClickOutsideDirective, ClipboardComponent, CollapsibleBoxComponent, ColorPalette, CompoundDirective, CompoundPipe, ControlValueAccessor, CycleNodesKeyGroup, CyclesCompletenessComponent, CyclesEmissionsChartComponent, CyclesFunctionalUnitMeasureComponent, CyclesMetadataComponent, CyclesNodesComponent, CyclesNodesTimelineComponent, CyclesResultComponent, DataTableComponent, DefaultPipe, DeltaColour, DistributionChartComponent, DrawerContainerComponent, DurationPipe, EllipsisPipe, EngineModelsLinkComponent, EngineModelsLookupInfoComponent, EngineModelsStageComponent, EngineModelsStageDeepComponent, EngineModelsStageDeepService, EngineModelsVersionLinkComponent, EngineOrchestratorEditComponent, EngineRequirementsFormComponent, FileSizePipe, 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, 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, arrayValue, availableProperties, backgroundHoverPlugin, baseApiUrl, baseUrl, bottom, buildSummary, bytesSize, calculateCycleDuration, calculateCycleDurationEnabled, calculateCycleStartDate, calculateCycleStartDateEnabled, capitalize, changelogUrl, clustererImage, code, colorToRgba, compoundToHtml, computeKeys, computeTerms, contactUsEmail, contactUsLink, coordinatesToPoint, copyObject, countriesQuery, createMarker, cropsQuery, d3ellipse, d3wrap, dataPathLabel, dataPathToKey, defaultFeature, defaultLabel, defaultSuggestionType, defaultSvgIconSize, definitionToSchemaType, distinctUntilChangedDeep, ellipsis, engineGitBaseUrl, engineGitUrl, errorHasError, errorHasWarning, errorText, evaluateSuccess, 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, guideModelUrl, guideNamespace, guidePageId, handleAPIError, handleGuideEvent, hasError, hasValidationError, hasWarning, hexToRgba, iconSizes, icons, ignoreKeys$2 as ignoreKeys, initialFilterState, injectResizeEvent$, inputGroupsTermTypes, isAddPropertyEnabled, isChrome, isDateBetween, isEqual, isExternal, isGroupVisible, isKeyClosedVisible, isKeyHidden, isMaxStage, isMethodModelAllowed, isMigrationError, isMissingOneOfError, isMissingPropertyError, isNonNodeModelKey, isSchemaIri, isScrolledBelow, isState, isTermTypeAllowed, isValidKey, keyToDataPath, levels, listColor, listColorContinuous, listColorWithAlpha, loadMapApi, loadSvgSprite, localStorageSignal, 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, nodeColours$1 as nodeColours, nodeDataState, nodeId, nodeLink, nodeLinkEnabled, nodeLinkTypeEnabled, nodeLogsUrl, nodeQualityScoreColor, nodeQualityScoreLevel, nodeQualityScoreMaxDefault, nodeQualityScoreOrder, nodeSecondaryColours, nodeToAggregationFilename, nodeType, nodeTypeDataState, nodeTypeIcon, nodeUrl, nodeUrlParams, nodeVersion, numberGte, optionsFromGroup, parentKey, parentProperty, parseColor, parseData, parseDataPath, parseLines, parseMessage$1 as parseMessage, parseNewValue, pluralize, pointToCoordinates, polygonBounds, polygonToCoordinates, polygonToMap, polygonsFromFeature, populateWithTrackIdsFilterData, postGuideEvent, primaryProduct, productsQuery, propertyError, propertyId, recursiveProperties, refToSchemaType, refreshPropertyKeys, regionsQuery, repeat, reportIssueLink, reportIssueUrl, safeJSONParse, safeJSONStringify, schemaBaseUrl, schemaDataBaseUrl, schemaLink, schemaRequiredProperties, schemaTypeToDefaultValue, scrollToEl, scrollTop, searchFilterData, searchableTypes, siblingProperty, singleProperty, siteTooBig, siteTypeToIcon, sortProperties, sortedDates, strokeColor, strokeStyle, suggestMatchQuery, suggestQuery, takeAfterViewInit, termLocation, termLocationName, termProperties, termTypeLabel, toSnakeCase, toThousands, typeToNewProperty, typeaheadFocus, uncapitalize, uniqueDatesBetween, updateProperties, valueTypeToDefault, waitFor, wildcardQuery };
14122
+ export { ARRAY_DELIMITER, ApplyPurePipe, BarChartComponent, BibliographiesSearchConfirmComponent, BlankNodeStateComponent, BlankNodeStateNoticeComponent, BlankNodeValueDeltaComponent, CapitalizePipe, ChartComponent, ChartConfigurationDirective, ClickOutsideDirective, ClipboardComponent, CollapsibleBoxComponent, ColorPalette, CompoundDirective, CompoundPipe, ControlValueAccessor, CycleNodesKeyGroup, CyclesCompletenessComponent, CyclesEmissionsChartComponent, CyclesFunctionalUnitMeasureComponent, CyclesMetadataComponent, CyclesNodesComponent, CyclesNodesTimelineComponent, CyclesResultComponent, DataTableComponent, DefaultPipe, DeltaColour, DistributionChartComponent, DrawerContainerComponent, DurationPipe, EllipsisPipe, EngineModelsLinkComponent, EngineModelsLookupInfoComponent, EngineModelsStageComponent, EngineModelsStageDeepComponent, EngineModelsStageDeepService, EngineModelsVersionLinkComponent, EngineOrchestratorEditComponent, EngineRequirementsFormComponent, FileSizePipe, 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, 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, arrayValue, availableProperties, backgroundHoverPlugin, baseApiUrl, baseUrl, bottom, buildSummary, bytesSize, calculateCycleDuration, calculateCycleDurationEnabled, calculateCycleStartDate, calculateCycleStartDateEnabled, capitalize, changelogUrl, clustererImage, code, colorToRgba, compoundToHtml, computeKeys, computeTerms, contactUsEmail, contactUsLink, convertToSvg, coordinatesToPoint, copyObject, countriesQuery, createMarker, cropsQuery, d3ellipse, d3wrap, dataPathLabel, dataPathToKey, defaultFeature, defaultLabel, defaultSuggestionType, defaultSvgIconSize, definitionToSchemaType, distinctUntilChangedDeep, downloadFile, ellipsis, engineGitBaseUrl, engineGitUrl, errorHasError, errorHasWarning, errorText, evaluateSuccess, exportAsSVG, 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, guideModelUrl, guideNamespace, guidePageId, handleAPIError, handleGuideEvent, hasError, hasValidationError, hasWarning, hexToRgba, iconSizes, icons, ignoreKeys$2 as ignoreKeys, initialFilterState, injectResizeEvent$, inputGroupsTermTypes, isAddPropertyEnabled, isChrome, isDateBetween, isEqual, isExternal, isGroupVisible, isKeyClosedVisible, isKeyHidden, isMaxStage, isMethodModelAllowed, isMigrationError, isMissingOneOfError, isMissingPropertyError, isNonNodeModelKey, isSchemaIri, isScrolledBelow, isState, isTermTypeAllowed, isValidKey, keyToDataPath, levels, listColor, listColorContinuous, listColorWithAlpha, loadMapApi, loadSvgSprite, localStorageSignal, 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, nodeColours$1 as nodeColours, nodeDataState, nodeId, nodeLink, nodeLinkEnabled, nodeLinkTypeEnabled, nodeLogsUrl, nodeQualityScoreColor, nodeQualityScoreLevel, nodeQualityScoreMaxDefault, nodeQualityScoreOrder, nodeSecondaryColours, nodeToAggregationFilename, nodeType, nodeTypeDataState, nodeTypeIcon, nodeUrl, nodeUrlParams, nodeVersion, numberGte, optionsFromGroup, parentKey, parentProperty, parseColor, parseData, parseDataPath, parseLines, parseMessage$1 as parseMessage, parseNewValue, pluralize, pointToCoordinates, polygonBounds, polygonToCoordinates, polygonToMap, polygonsFromFeature, populateWithTrackIdsFilterData, postGuideEvent, primaryProduct, productsQuery, propertyError, propertyId, recursiveProperties, refToSchemaType, refreshPropertyKeys, regionsQuery, repeat, reportIssueLink, reportIssueUrl, safeJSONParse, safeJSONStringify, schemaBaseUrl, schemaDataBaseUrl, schemaLink, schemaRequiredProperties, schemaTypeToDefaultValue, scrollToEl, scrollTop, searchFilterData, searchableTypes, siblingProperty, singleProperty, siteTooBig, siteTypeToIcon, sortProperties, sortedDates, strokeColor, strokeStyle, suggestMatchQuery, suggestQuery, takeAfterViewInit, termLocation, termLocationName, termProperties, termTypeLabel, toSnakeCase, toThousands, typeToNewProperty, typeaheadFocus, uncapitalize, uniqueDatesBetween, updateProperties, valueTypeToDefault, waitFor, wildcardQuery };
13921
14123
  //# sourceMappingURL=hestia-earth-ui-components.mjs.map