@hestia-earth/ui-components 0.43.28 → 0.43.30

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.
@@ -52,6 +52,7 @@ const icons = [
52
52
  'citation',
53
53
  'citation-square',
54
54
  'clock',
55
+ 'clock-pending',
55
56
  'cloud',
56
57
  'collapse',
57
58
  'collapse-panel',
@@ -1 +1 @@
1
- {"version":3,"file":"hestia-earth-ui-components-svg-icons.mjs","sources":["../../src/svg-icons/icons.ts","../../src/svg-icons/svg-icon.component.ts","../../src/svg-icons/svg-icon.component.html","../../src/svg-icons/hestia-earth-ui-components-svg-icons.ts"],"sourcesContent":["// auto-generated content using \"node scripts/generate-icons.js\"\n\nexport type svgIconSizes = '16' | '20' | '24' | '40' | '48';\nexport const iconSizes = [\n '16',\n '20',\n '24',\n '40',\n '48'\n];\n\nexport type svgIconNames =\n | 'aggregation'\n | 'api'\n | 'api-circle'\n | 'archive'\n | 'arrow-down'\n | 'arrow-down-right'\n | 'arrow-left'\n | 'arrow-right'\n | 'arrow-up'\n | 'autogenerate'\n | 'autogenerate-circle'\n | 'aws'\n | 'ban'\n | 'bell'\n | 'bell-with-badge'\n | 'book'\n | 'breakdown'\n | 'bug'\n | 'buoy'\n | 'calculation-toolkit'\n | 'calculator'\n | 'caret-down'\n | 'caret-left'\n | 'caret-right'\n | 'caret-up'\n | 'certificate'\n | 'chart'\n | 'checkmark'\n | 'checkmark-circle'\n | 'checkmark-circle-filled'\n | 'checkmark-circle-filled-with-shadow'\n | 'chevron-double-left'\n | 'chevron-double-right'\n | 'chevron-down'\n | 'chevron-left'\n | 'chevron-right'\n | 'chevron-up'\n | 'circle'\n | 'citation'\n | 'citation-square'\n | 'clock'\n | 'cloud'\n | 'collapse'\n | 'collapse-panel'\n | 'commit'\n | 'community'\n | 'community-edition'\n | 'compare'\n | 'copy'\n | 'corner-drag'\n | 'csv-file'\n | 'cycle'\n | 'cycle-schema'\n | 'dashboard'\n | 'data-format'\n | 'data-management'\n | 'data-plan'\n | 'database-wheat'\n | 'dot-circle'\n | 'dot-filled'\n | 'download'\n | 'drag'\n | 'edit'\n | 'edit-withfield'\n | 'embed'\n | 'exclamation'\n | 'exclamation-triangle'\n | 'exclamation-triangle-filled'\n | 'export'\n | 'external-link'\n | 'feedback'\n | 'fence'\n | 'film'\n | 'filter-funnel'\n | 'filter-slider'\n | 'flag'\n | 'flash'\n | 'folder'\n | 'folder-open'\n | 'foodprocessor'\n | 'funding'\n | 'globe-continents'\n | 'globe-lines'\n | 'glossary'\n | 'greenhouse'\n | 'guide'\n | 'guide-overlay'\n | 'heart'\n | 'help'\n | 'help-circle'\n | 'history'\n | 'home'\n | 'husk'\n | 'image'\n | 'incognito'\n | 'indexed'\n | 'info'\n | 'info-circle'\n | 'info-circle-schema'\n | 'lake'\n | 'link'\n | 'list-indented'\n | 'livestock'\n | 'loading'\n | 'loading-bar'\n | 'loading-circle-filled'\n | 'loading-circle-filled-withshadow'\n | 'log'\n | 'mail'\n | 'map'\n | 'menu'\n | 'messages'\n | 'messages-with-badge'\n | 'metrics'\n | 'migration'\n | 'minus'\n | 'model-docs'\n | 'news'\n | 'node'\n | 'notepad'\n | 'ocean'\n | 'organisation'\n | 'organisation-schema'\n | 'overflow-menu'\n | 'pin'\n | 'pin-schema'\n | 'plus'\n | 'pond'\n | 'private-eye'\n | 'private-eye-crossed'\n | 'private-lock'\n | 'private-lock-filled'\n | 'private-unlocked'\n | 'profile-checkmark'\n | 'profile-circle'\n | 'profile-circle-schema'\n | 'profile-gear'\n | 'progress'\n | 'python'\n | 'refresh'\n | 'rename'\n | 'retailer'\n | 'review'\n | 'river'\n | 'save'\n | 'schema'\n | 'search'\n | 'search-schema'\n | 'search-with-exclamation'\n | 'search-with-minus'\n | 'search-with-plus'\n | 'settings'\n | 'share'\n | 'share-socials'\n | 'shrub'\n | 'sign-out'\n | 'slack'\n | 'socials-gitlab'\n | 'socials-google'\n | 'socials-linkedin'\n | 'socials-linkedin-circle'\n | 'socials-orcid'\n | 'socials-orcid-circle'\n | 'sort-ascending'\n | 'sort-caret-down-filled'\n | 'sort-caret-stacked-filled-stacked'\n | 'sort-caret-up-filled'\n | 'source'\n | 'source-schema'\n | 'star'\n | 'star-filled'\n | 'table'\n | 'tag-filled'\n | 'tank'\n | 'target'\n | 'target-schema'\n | 'term'\n | 'term-schema'\n | 'textform-list'\n | 'thumbs-down'\n | 'thumbs-up'\n | 'tool'\n | 'transport'\n | 'transport-schema'\n | 'trash'\n | 'tree'\n | 'turn-phone'\n | 'unit'\n | 'upload'\n | 'video'\n | 'webhook'\n | 'xlsx-file'\n | 'xmark'\n | 'xmark-circle'\n | 'xmark-circle-filled'\n | 'xmark-circle-filled-with-shadow'\n | 'zip';\nexport const icons: svgIconNames[] = [\n 'aggregation',\n 'api',\n 'api-circle',\n 'archive',\n 'arrow-down',\n 'arrow-down-right',\n 'arrow-left',\n 'arrow-right',\n 'arrow-up',\n 'autogenerate',\n 'autogenerate-circle',\n 'aws',\n 'ban',\n 'bell',\n 'bell-with-badge',\n 'book',\n 'breakdown',\n 'bug',\n 'buoy',\n 'calculation-toolkit',\n 'calculator',\n 'caret-down',\n 'caret-left',\n 'caret-right',\n 'caret-up',\n 'certificate',\n 'chart',\n 'checkmark',\n 'checkmark-circle',\n 'checkmark-circle-filled',\n 'checkmark-circle-filled-with-shadow',\n 'chevron-double-left',\n 'chevron-double-right',\n 'chevron-down',\n 'chevron-left',\n 'chevron-right',\n 'chevron-up',\n 'circle',\n 'citation',\n 'citation-square',\n 'clock',\n 'cloud',\n 'collapse',\n 'collapse-panel',\n 'commit',\n 'community',\n 'community-edition',\n 'compare',\n 'copy',\n 'corner-drag',\n 'csv-file',\n 'cycle',\n 'cycle-schema',\n 'dashboard',\n 'data-format',\n 'data-management',\n 'data-plan',\n 'database-wheat',\n 'dot-circle',\n 'dot-filled',\n 'download',\n 'drag',\n 'edit',\n 'edit-withfield',\n 'embed',\n 'exclamation',\n 'exclamation-triangle',\n 'exclamation-triangle-filled',\n 'export',\n 'external-link',\n 'feedback',\n 'fence',\n 'film',\n 'filter-funnel',\n 'filter-slider',\n 'flag',\n 'flash',\n 'folder',\n 'folder-open',\n 'foodprocessor',\n 'funding',\n 'globe-continents',\n 'globe-lines',\n 'glossary',\n 'greenhouse',\n 'guide',\n 'guide-overlay',\n 'heart',\n 'help',\n 'help-circle',\n 'history',\n 'home',\n 'husk',\n 'image',\n 'incognito',\n 'indexed',\n 'info',\n 'info-circle',\n 'info-circle-schema',\n 'lake',\n 'link',\n 'list-indented',\n 'livestock',\n 'loading',\n 'loading-bar',\n 'loading-circle-filled',\n 'loading-circle-filled-withshadow',\n 'log',\n 'mail',\n 'map',\n 'menu',\n 'messages',\n 'messages-with-badge',\n 'metrics',\n 'migration',\n 'minus',\n 'model-docs',\n 'news',\n 'node',\n 'notepad',\n 'ocean',\n 'organisation',\n 'organisation-schema',\n 'overflow-menu',\n 'pin',\n 'pin-schema',\n 'plus',\n 'pond',\n 'private-eye',\n 'private-eye-crossed',\n 'private-lock',\n 'private-lock-filled',\n 'private-unlocked',\n 'profile-checkmark',\n 'profile-circle',\n 'profile-circle-schema',\n 'profile-gear',\n 'progress',\n 'python',\n 'refresh',\n 'rename',\n 'retailer',\n 'review',\n 'river',\n 'save',\n 'schema',\n 'search',\n 'search-schema',\n 'search-with-exclamation',\n 'search-with-minus',\n 'search-with-plus',\n 'settings',\n 'share',\n 'share-socials',\n 'shrub',\n 'sign-out',\n 'slack',\n 'socials-gitlab',\n 'socials-google',\n 'socials-linkedin',\n 'socials-linkedin-circle',\n 'socials-orcid',\n 'socials-orcid-circle',\n 'sort-ascending',\n 'sort-caret-down-filled',\n 'sort-caret-stacked-filled-stacked',\n 'sort-caret-up-filled',\n 'source',\n 'source-schema',\n 'star',\n 'star-filled',\n 'table',\n 'tag-filled',\n 'tank',\n 'target',\n 'target-schema',\n 'term',\n 'term-schema',\n 'textform-list',\n 'thumbs-down',\n 'thumbs-up',\n 'tool',\n 'transport',\n 'transport-schema',\n 'trash',\n 'tree',\n 'turn-phone',\n 'unit',\n 'upload',\n 'video',\n 'webhook',\n 'xlsx-file',\n 'xmark',\n 'xmark-circle',\n 'xmark-circle-filled',\n 'xmark-circle-filled-with-shadow',\n 'zip'\n];\n","import { Component, computed, HostBinding, inject, input } from '@angular/core';\nimport { PlatformLocation } from '@angular/common';\n\nimport { svgIconSizes, svgIconNames } from './icons';\n\nexport const defaultSvgIconSize: svgIconSizes = '20';\n\n@Component({\n selector: 'he-svg-icon',\n imports: [],\n templateUrl: './svg-icon.component.html',\n styleUrls: ['./svg-icon.component.scss'],\n host: {\n '[attr.icon-size]': 'size()'\n }\n})\nexport class HESvgIconComponent {\n private readonly baseHref = inject(PlatformLocation).getBaseHrefFromDOM() || '/';\n\n protected readonly name = input.required<svgIconNames>();\n protected readonly size = input<svgIconSizes>(defaultSvgIconSize);\n protected readonly animation = input<string>();\n\n private readonly iconName = computed(() => [this.name(), this.size()].filter(Boolean).join('-'));\n protected readonly iconPath = computed(\n () => `${this.baseHref}assets/svg-icons/icons-sprite.svg#${this.iconName()}px`\n );\n\n @HostBinding('style.width')\n protected get _width() {\n return `${this.size()}px`;\n }\n\n @HostBinding('style.height')\n protected get _height() {\n return `${this.size()}px`;\n }\n}\n","<svg [attr.width]=\"size()\" [attr.height]=\"size()\" [attr.animation]=\"animation()\">\n <use [attr.href]=\"iconPath()\"></use>\n</svg>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hestia-earth-ui-components-svg-icons.mjs","sources":["../../src/svg-icons/icons.ts","../../src/svg-icons/svg-icon.component.ts","../../src/svg-icons/svg-icon.component.html","../../src/svg-icons/hestia-earth-ui-components-svg-icons.ts"],"sourcesContent":["// auto-generated content using \"node scripts/generate-icons.js\"\n\nexport type svgIconSizes = '16' | '20' | '24' | '40' | '48';\nexport const iconSizes = [\n '16',\n '20',\n '24',\n '40',\n '48'\n];\n\nexport type svgIconNames =\n | 'aggregation'\n | 'api'\n | 'api-circle'\n | 'archive'\n | 'arrow-down'\n | 'arrow-down-right'\n | 'arrow-left'\n | 'arrow-right'\n | 'arrow-up'\n | 'autogenerate'\n | 'autogenerate-circle'\n | 'aws'\n | 'ban'\n | 'bell'\n | 'bell-with-badge'\n | 'book'\n | 'breakdown'\n | 'bug'\n | 'buoy'\n | 'calculation-toolkit'\n | 'calculator'\n | 'caret-down'\n | 'caret-left'\n | 'caret-right'\n | 'caret-up'\n | 'certificate'\n | 'chart'\n | 'checkmark'\n | 'checkmark-circle'\n | 'checkmark-circle-filled'\n | 'checkmark-circle-filled-with-shadow'\n | 'chevron-double-left'\n | 'chevron-double-right'\n | 'chevron-down'\n | 'chevron-left'\n | 'chevron-right'\n | 'chevron-up'\n | 'circle'\n | 'citation'\n | 'citation-square'\n | 'clock'\n | 'clock-pending'\n | 'cloud'\n | 'collapse'\n | 'collapse-panel'\n | 'commit'\n | 'community'\n | 'community-edition'\n | 'compare'\n | 'copy'\n | 'corner-drag'\n | 'csv-file'\n | 'cycle'\n | 'cycle-schema'\n | 'dashboard'\n | 'data-format'\n | 'data-management'\n | 'data-plan'\n | 'database-wheat'\n | 'dot-circle'\n | 'dot-filled'\n | 'download'\n | 'drag'\n | 'edit'\n | 'edit-withfield'\n | 'embed'\n | 'exclamation'\n | 'exclamation-triangle'\n | 'exclamation-triangle-filled'\n | 'export'\n | 'external-link'\n | 'feedback'\n | 'fence'\n | 'film'\n | 'filter-funnel'\n | 'filter-slider'\n | 'flag'\n | 'flash'\n | 'folder'\n | 'folder-open'\n | 'foodprocessor'\n | 'funding'\n | 'globe-continents'\n | 'globe-lines'\n | 'glossary'\n | 'greenhouse'\n | 'guide'\n | 'guide-overlay'\n | 'heart'\n | 'help'\n | 'help-circle'\n | 'history'\n | 'home'\n | 'husk'\n | 'image'\n | 'incognito'\n | 'indexed'\n | 'info'\n | 'info-circle'\n | 'info-circle-schema'\n | 'lake'\n | 'link'\n | 'list-indented'\n | 'livestock'\n | 'loading'\n | 'loading-bar'\n | 'loading-circle-filled'\n | 'loading-circle-filled-withshadow'\n | 'log'\n | 'mail'\n | 'map'\n | 'menu'\n | 'messages'\n | 'messages-with-badge'\n | 'metrics'\n | 'migration'\n | 'minus'\n | 'model-docs'\n | 'news'\n | 'node'\n | 'notepad'\n | 'ocean'\n | 'organisation'\n | 'organisation-schema'\n | 'overflow-menu'\n | 'pin'\n | 'pin-schema'\n | 'plus'\n | 'pond'\n | 'private-eye'\n | 'private-eye-crossed'\n | 'private-lock'\n | 'private-lock-filled'\n | 'private-unlocked'\n | 'profile-checkmark'\n | 'profile-circle'\n | 'profile-circle-schema'\n | 'profile-gear'\n | 'progress'\n | 'python'\n | 'refresh'\n | 'rename'\n | 'retailer'\n | 'review'\n | 'river'\n | 'save'\n | 'schema'\n | 'search'\n | 'search-schema'\n | 'search-with-exclamation'\n | 'search-with-minus'\n | 'search-with-plus'\n | 'settings'\n | 'share'\n | 'share-socials'\n | 'shrub'\n | 'sign-out'\n | 'slack'\n | 'socials-gitlab'\n | 'socials-google'\n | 'socials-linkedin'\n | 'socials-linkedin-circle'\n | 'socials-orcid'\n | 'socials-orcid-circle'\n | 'sort-ascending'\n | 'sort-caret-down-filled'\n | 'sort-caret-stacked-filled-stacked'\n | 'sort-caret-up-filled'\n | 'source'\n | 'source-schema'\n | 'star'\n | 'star-filled'\n | 'table'\n | 'tag-filled'\n | 'tank'\n | 'target'\n | 'target-schema'\n | 'term'\n | 'term-schema'\n | 'textform-list'\n | 'thumbs-down'\n | 'thumbs-up'\n | 'tool'\n | 'transport'\n | 'transport-schema'\n | 'trash'\n | 'tree'\n | 'turn-phone'\n | 'unit'\n | 'upload'\n | 'video'\n | 'webhook'\n | 'xlsx-file'\n | 'xmark'\n | 'xmark-circle'\n | 'xmark-circle-filled'\n | 'xmark-circle-filled-with-shadow'\n | 'zip';\nexport const icons: svgIconNames[] = [\n 'aggregation',\n 'api',\n 'api-circle',\n 'archive',\n 'arrow-down',\n 'arrow-down-right',\n 'arrow-left',\n 'arrow-right',\n 'arrow-up',\n 'autogenerate',\n 'autogenerate-circle',\n 'aws',\n 'ban',\n 'bell',\n 'bell-with-badge',\n 'book',\n 'breakdown',\n 'bug',\n 'buoy',\n 'calculation-toolkit',\n 'calculator',\n 'caret-down',\n 'caret-left',\n 'caret-right',\n 'caret-up',\n 'certificate',\n 'chart',\n 'checkmark',\n 'checkmark-circle',\n 'checkmark-circle-filled',\n 'checkmark-circle-filled-with-shadow',\n 'chevron-double-left',\n 'chevron-double-right',\n 'chevron-down',\n 'chevron-left',\n 'chevron-right',\n 'chevron-up',\n 'circle',\n 'citation',\n 'citation-square',\n 'clock',\n 'clock-pending',\n 'cloud',\n 'collapse',\n 'collapse-panel',\n 'commit',\n 'community',\n 'community-edition',\n 'compare',\n 'copy',\n 'corner-drag',\n 'csv-file',\n 'cycle',\n 'cycle-schema',\n 'dashboard',\n 'data-format',\n 'data-management',\n 'data-plan',\n 'database-wheat',\n 'dot-circle',\n 'dot-filled',\n 'download',\n 'drag',\n 'edit',\n 'edit-withfield',\n 'embed',\n 'exclamation',\n 'exclamation-triangle',\n 'exclamation-triangle-filled',\n 'export',\n 'external-link',\n 'feedback',\n 'fence',\n 'film',\n 'filter-funnel',\n 'filter-slider',\n 'flag',\n 'flash',\n 'folder',\n 'folder-open',\n 'foodprocessor',\n 'funding',\n 'globe-continents',\n 'globe-lines',\n 'glossary',\n 'greenhouse',\n 'guide',\n 'guide-overlay',\n 'heart',\n 'help',\n 'help-circle',\n 'history',\n 'home',\n 'husk',\n 'image',\n 'incognito',\n 'indexed',\n 'info',\n 'info-circle',\n 'info-circle-schema',\n 'lake',\n 'link',\n 'list-indented',\n 'livestock',\n 'loading',\n 'loading-bar',\n 'loading-circle-filled',\n 'loading-circle-filled-withshadow',\n 'log',\n 'mail',\n 'map',\n 'menu',\n 'messages',\n 'messages-with-badge',\n 'metrics',\n 'migration',\n 'minus',\n 'model-docs',\n 'news',\n 'node',\n 'notepad',\n 'ocean',\n 'organisation',\n 'organisation-schema',\n 'overflow-menu',\n 'pin',\n 'pin-schema',\n 'plus',\n 'pond',\n 'private-eye',\n 'private-eye-crossed',\n 'private-lock',\n 'private-lock-filled',\n 'private-unlocked',\n 'profile-checkmark',\n 'profile-circle',\n 'profile-circle-schema',\n 'profile-gear',\n 'progress',\n 'python',\n 'refresh',\n 'rename',\n 'retailer',\n 'review',\n 'river',\n 'save',\n 'schema',\n 'search',\n 'search-schema',\n 'search-with-exclamation',\n 'search-with-minus',\n 'search-with-plus',\n 'settings',\n 'share',\n 'share-socials',\n 'shrub',\n 'sign-out',\n 'slack',\n 'socials-gitlab',\n 'socials-google',\n 'socials-linkedin',\n 'socials-linkedin-circle',\n 'socials-orcid',\n 'socials-orcid-circle',\n 'sort-ascending',\n 'sort-caret-down-filled',\n 'sort-caret-stacked-filled-stacked',\n 'sort-caret-up-filled',\n 'source',\n 'source-schema',\n 'star',\n 'star-filled',\n 'table',\n 'tag-filled',\n 'tank',\n 'target',\n 'target-schema',\n 'term',\n 'term-schema',\n 'textform-list',\n 'thumbs-down',\n 'thumbs-up',\n 'tool',\n 'transport',\n 'transport-schema',\n 'trash',\n 'tree',\n 'turn-phone',\n 'unit',\n 'upload',\n 'video',\n 'webhook',\n 'xlsx-file',\n 'xmark',\n 'xmark-circle',\n 'xmark-circle-filled',\n 'xmark-circle-filled-with-shadow',\n 'zip'\n];\n","import { Component, computed, HostBinding, inject, input } from '@angular/core';\nimport { PlatformLocation } from '@angular/common';\n\nimport { svgIconSizes, svgIconNames } from './icons';\n\nexport const defaultSvgIconSize: svgIconSizes = '20';\n\n@Component({\n selector: 'he-svg-icon',\n imports: [],\n templateUrl: './svg-icon.component.html',\n styleUrls: ['./svg-icon.component.scss'],\n host: {\n '[attr.icon-size]': 'size()'\n }\n})\nexport class HESvgIconComponent {\n private readonly baseHref = inject(PlatformLocation).getBaseHrefFromDOM() || '/';\n\n protected readonly name = input.required<svgIconNames>();\n protected readonly size = input<svgIconSizes>(defaultSvgIconSize);\n protected readonly animation = input<string>();\n\n private readonly iconName = computed(() => [this.name(), this.size()].filter(Boolean).join('-'));\n protected readonly iconPath = computed(\n () => `${this.baseHref}assets/svg-icons/icons-sprite.svg#${this.iconName()}px`\n );\n\n @HostBinding('style.width')\n protected get _width() {\n return `${this.size()}px`;\n }\n\n @HostBinding('style.height')\n protected get _height() {\n return `${this.size()}px`;\n }\n}\n","<svg [attr.width]=\"size()\" [attr.height]=\"size()\" [attr.animation]=\"animation()\">\n <use [attr.href]=\"iconPath()\"></use>\n</svg>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;AAGO,MAAM,SAAS,GAAG;IACvB,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ;;AA0MK,MAAM,KAAK,GAAmB;IACnC,aAAa;IACb,KAAK;IACL,YAAY;IACZ,SAAS;IACT,YAAY;IACZ,kBAAkB;IAClB,YAAY;IACZ,aAAa;IACb,UAAU;IACV,cAAc;IACd,qBAAqB;IACrB,KAAK;IACL,KAAK;IACL,MAAM;IACN,iBAAiB;IACjB,MAAM;IACN,WAAW;IACX,KAAK;IACL,MAAM;IACN,qBAAqB;IACrB,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,UAAU;IACV,aAAa;IACb,OAAO;IACP,WAAW;IACX,kBAAkB;IAClB,yBAAyB;IACzB,qCAAqC;IACrC,qBAAqB;IACrB,sBAAsB;IACtB,cAAc;IACd,cAAc;IACd,eAAe;IACf,YAAY;IACZ,QAAQ;IACR,UAAU;IACV,iBAAiB;IACjB,OAAO;IACP,eAAe;IACf,OAAO;IACP,UAAU;IACV,gBAAgB;IAChB,QAAQ;IACR,WAAW;IACX,mBAAmB;IACnB,SAAS;IACT,MAAM;IACN,aAAa;IACb,UAAU;IACV,OAAO;IACP,cAAc;IACd,WAAW;IACX,aAAa;IACb,iBAAiB;IACjB,WAAW;IACX,gBAAgB;IAChB,YAAY;IACZ,YAAY;IACZ,UAAU;IACV,MAAM;IACN,MAAM;IACN,gBAAgB;IAChB,OAAO;IACP,aAAa;IACb,sBAAsB;IACtB,6BAA6B;IAC7B,QAAQ;IACR,eAAe;IACf,UAAU;IACV,OAAO;IACP,MAAM;IACN,eAAe;IACf,eAAe;IACf,MAAM;IACN,OAAO;IACP,QAAQ;IACR,aAAa;IACb,eAAe;IACf,SAAS;IACT,kBAAkB;IAClB,aAAa;IACb,UAAU;IACV,YAAY;IACZ,OAAO;IACP,eAAe;IACf,OAAO;IACP,MAAM;IACN,aAAa;IACb,SAAS;IACT,MAAM;IACN,MAAM;IACN,OAAO;IACP,WAAW;IACX,SAAS;IACT,MAAM;IACN,aAAa;IACb,oBAAoB;IACpB,MAAM;IACN,MAAM;IACN,eAAe;IACf,WAAW;IACX,SAAS;IACT,aAAa;IACb,uBAAuB;IACvB,kCAAkC;IAClC,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,UAAU;IACV,qBAAqB;IACrB,SAAS;IACT,WAAW;IACX,OAAO;IACP,YAAY;IACZ,MAAM;IACN,MAAM;IACN,SAAS;IACT,OAAO;IACP,cAAc;IACd,qBAAqB;IACrB,eAAe;IACf,KAAK;IACL,YAAY;IACZ,MAAM;IACN,MAAM;IACN,aAAa;IACb,qBAAqB;IACrB,cAAc;IACd,qBAAqB;IACrB,kBAAkB;IAClB,mBAAmB;IACnB,gBAAgB;IAChB,uBAAuB;IACvB,cAAc;IACd,UAAU;IACV,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,OAAO;IACP,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,eAAe;IACf,yBAAyB;IACzB,mBAAmB;IACnB,kBAAkB;IAClB,UAAU;IACV,OAAO;IACP,eAAe;IACf,OAAO;IACP,UAAU;IACV,OAAO;IACP,gBAAgB;IAChB,gBAAgB;IAChB,kBAAkB;IAClB,yBAAyB;IACzB,eAAe;IACf,sBAAsB;IACtB,gBAAgB;IAChB,wBAAwB;IACxB,mCAAmC;IACnC,sBAAsB;IACtB,QAAQ;IACR,eAAe;IACf,MAAM;IACN,aAAa;IACb,OAAO;IACP,YAAY;IACZ,MAAM;IACN,QAAQ;IACR,eAAe;IACf,MAAM;IACN,aAAa;IACb,eAAe;IACf,aAAa;IACb,WAAW;IACX,MAAM;IACN,WAAW;IACX,kBAAkB;IAClB,OAAO;IACP,MAAM;IACN,YAAY;IACZ,MAAM;IACN,QAAQ;IACR,OAAO;IACP,SAAS;IACT,WAAW;IACX,OAAO;IACP,cAAc;IACd,qBAAqB;IACrB,iCAAiC;IACjC;;;ACnZK,MAAM,kBAAkB,GAAiB;MAWnC,kBAAkB,CAAA;AAT/B,IAAA,WAAA,GAAA;QAUmB,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,kBAAkB,EAAE,IAAI,GAAG;AAE7D,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,+CAAgB;AACrC,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAe,kBAAkB,gDAAC;QAC9C,IAAA,CAAA,SAAS,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AAE7B,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAC7E,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CACpC,MAAM,CAAA,EAAG,IAAI,CAAC,QAAQ,qCAAqC,IAAI,CAAC,QAAQ,EAAE,CAAA,EAAA,CAAI,oDAC/E;AAWF,IAAA;AATC,IAAA,IACc,MAAM,GAAA;AAClB,QAAA,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI;IAC3B;AAEA,IAAA,IACc,OAAO,GAAA;AACnB,QAAA,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI;IAC3B;8GApBW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,ojBChB/B,6IAGA,EAAA,MAAA,EAAA,CAAA,6NAAA,CAAA,EAAA,CAAA,CAAA;;2FDaa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAT9B,SAAS;+BACE,aAAa,EAAA,OAAA,EACd,EAAE,EAAA,IAAA,EAGL;AACJ,wBAAA,kBAAkB,EAAE;AACrB,qBAAA,EAAA,QAAA,EAAA,6IAAA,EAAA,MAAA,EAAA,CAAA,6NAAA,CAAA,EAAA;;sBAcA,WAAW;uBAAC,aAAa;;sBAKzB,WAAW;uBAAC,cAAc;;;AEjC7B;;AAEG;;;;"}
@@ -2523,23 +2523,24 @@ class IssueConfirmComponent {
2523
2523
  this.repository = model(...(ngDevMode ? [undefined, { debugName: "repository" }] : []));
2524
2524
  this.template = model(...(ngDevMode ? [undefined, { debugName: "template" }] : []));
2525
2525
  this.isCommunity = model(false, ...(ngDevMode ? [{ debugName: "isCommunity" }] : []));
2526
+ this.issueParams = model({}, ...(ngDevMode ? [{ debugName: "issueParams" }] : []));
2526
2527
  this.closed = output();
2527
2528
  this.Repository = Repository;
2528
2529
  this.Template = Template;
2529
2530
  this.repositories = computed(() => Object.values(Repository).filter(value => value !== Repository.community || this.isCommunity()), ...(ngDevMode ? [{ debugName: "repositories" }] : []));
2530
- this.issueUrl = computed(() => this.repository() && this.template() ? reportIssueUrl(this.repository(), this.template()) : null, ...(ngDevMode ? [{ debugName: "issueUrl" }] : []));
2531
+ this.issueUrl = computed(() => this.repository() && this.template() ? reportIssueUrl(this.repository(), this.template(), this.issueParams()) : null, ...(ngDevMode ? [{ debugName: "issueUrl" }] : []));
2531
2532
  }
2532
2533
  close() {
2533
2534
  this.closed.emit();
2534
2535
  this.activeModal?.close();
2535
2536
  }
2536
2537
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: IssueConfirmComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2537
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: IssueConfirmComponent, isStandalone: true, selector: "he-issue-confirm", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, repository: { classPropertyName: "repository", publicName: "repository", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null }, isCommunity: { classPropertyName: "isCommunity", publicName: "isCommunity", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { title: "titleChange", repository: "repositoryChange", template: "templateChange", isCommunity: "isCommunityChange", closed: "closed" }, ngImport: i0, template: "<div class=\"modal is-active\">\n <div class=\"modal-background\"></div>\n <div class=\"modal-card\">\n <header class=\"modal-card-head\">\n <p class=\"modal-card-title\">{{ title() }}</p>\n <button class=\"delete is-small\" aria-label=\"close\" type=\"button\" (click)=\"close()\"></button>\n </header>\n <section class=\"modal-card-body\">\n <p class=\"mb-2\">Please select the type of issue from the list below to start:</p>\n\n <div class=\"field is-horizontal my-3\">\n <div class=\"field-label is-normal\">\n <label class=\"label\" for=\"repository\">Category</label>\n </div>\n <div class=\"field-body\">\n <div class=\"field\">\n <div class=\"control is-expanded\">\n <div class=\"select is-multiple is-fullwidth\">\n <select [(ngModel)]=\"repository\" name=\"repository\" required>\n <option [ngValue]=\"undefined\">Select from the list</option>\n @for (repo of repositories(); track repo) {\n <option [value]=\"repo\">\n @switch (repo) {\n @case (Repository.glossary) {\n Glossary of terms / lookup issues\n }\n @case (Repository.models) {\n Calculation issues\n }\n @case (Repository.aggregation) {\n Aggregated Data issues\n }\n @case (Repository.community) {\n UI/UX or API issues\n }\n @case (Repository.schema) {\n Schema issues\n }\n @default {\n Other issues\n }\n }\n </option>\n }\n </select>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n @if (repository()) {\n <div class=\"field is-horizontal my-3\">\n <div class=\"field-label is-normal\">\n <label class=\"label\" for=\"template\">Issue</label>\n </div>\n <div class=\"field-body\">\n <div class=\"field\">\n <div class=\"control is-expanded\">\n <div class=\"select is-multiple is-fullwidth\">\n <select [(ngModel)]=\"template\" name=\"template\" required>\n <option [value]=\"undefined\">Select from the list</option>\n @for (t of Template | keyvalue; track t) {\n <option [value]=\"t.value\">\n @switch (t.value) {\n @case (Template.bug) {\n I found a bug\n }\n @case (Template.feature) {\n I would like a new feature\n }\n }\n </option>\n }\n </select>\n </div>\n </div>\n </div>\n </div>\n </div>\n }\n\n @if (repository() && template() && issueUrl()) {\n <p>\n <span>Please report the issue on Gitlab using</span>\n <a class=\"pl-1\" [href]=\"issueUrl()\" target=\"_blank\">this link</a>\n .\n </p>\n }\n </section>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }] }); }
2538
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: IssueConfirmComponent, isStandalone: true, selector: "he-issue-confirm", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, repository: { classPropertyName: "repository", publicName: "repository", isSignal: true, isRequired: false, transformFunction: null }, template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null }, isCommunity: { classPropertyName: "isCommunity", publicName: "isCommunity", isSignal: true, isRequired: false, transformFunction: null }, issueParams: { classPropertyName: "issueParams", publicName: "issueParams", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { title: "titleChange", repository: "repositoryChange", template: "templateChange", isCommunity: "isCommunityChange", issueParams: "issueParamsChange", closed: "closed" }, ngImport: i0, template: "<div class=\"modal is-active\">\n <div class=\"modal-background\"></div>\n <div class=\"modal-card\">\n <header class=\"modal-card-head\">\n <p class=\"modal-card-title\">{{ title() }}</p>\n <button class=\"delete is-small\" aria-label=\"close\" type=\"button\" (click)=\"close()\"></button>\n </header>\n <section class=\"modal-card-body\">\n <p class=\"mb-2\">Please select the type of issue from the list below to start:</p>\n\n <div class=\"field is-horizontal my-3\">\n <div class=\"field-label is-normal\">\n <label class=\"label\" for=\"repository\">Category</label>\n </div>\n <div class=\"field-body\">\n <div class=\"field\">\n <div class=\"control is-expanded\">\n <div class=\"select is-multiple is-fullwidth\">\n <select [(ngModel)]=\"repository\" name=\"repository\" required>\n <option [ngValue]=\"undefined\">Select from the list</option>\n @for (repo of repositories(); track repo) {\n <option [value]=\"repo\">\n @switch (repo) {\n @case (Repository.glossary) {\n Glossary of terms / lookup issues\n }\n @case (Repository.models) {\n Calculation issues\n }\n @case (Repository.aggregation) {\n Aggregated Data issues\n }\n @case (Repository.community) {\n UI/UX or API issues\n }\n @case (Repository.schema) {\n Schema issues\n }\n @default {\n Other issues\n }\n }\n </option>\n }\n </select>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n @if (repository()) {\n <div class=\"field is-horizontal my-3\">\n <div class=\"field-label is-normal\">\n <label class=\"label\" for=\"template\">Issue</label>\n </div>\n <div class=\"field-body\">\n <div class=\"field\">\n <div class=\"control is-expanded\">\n <div class=\"select is-multiple is-fullwidth\">\n <select [(ngModel)]=\"template\" name=\"template\" required>\n <option [value]=\"undefined\">Select from the list</option>\n @for (t of Template | keyvalue; track t) {\n <option [value]=\"t.value\">\n @switch (t.value) {\n @case (Template.bug) {\n I found a bug\n }\n @case (Template.feature) {\n I would like a new feature\n }\n }\n </option>\n }\n </select>\n </div>\n </div>\n </div>\n </div>\n </div>\n }\n\n @if (repository() && template() && issueUrl()) {\n <p>\n <span>Please report the issue on Gitlab using</span>\n <a class=\"pl-1\" [href]=\"issueUrl()\" target=\"_blank\">this link</a>\n .\n </p>\n }\n </section>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }] }); }
2538
2539
  }
2539
2540
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: IssueConfirmComponent, decorators: [{
2540
2541
  type: Component$1,
2541
2542
  args: [{ selector: 'he-issue-confirm', imports: [FormsModule, KeyValuePipe], template: "<div class=\"modal is-active\">\n <div class=\"modal-background\"></div>\n <div class=\"modal-card\">\n <header class=\"modal-card-head\">\n <p class=\"modal-card-title\">{{ title() }}</p>\n <button class=\"delete is-small\" aria-label=\"close\" type=\"button\" (click)=\"close()\"></button>\n </header>\n <section class=\"modal-card-body\">\n <p class=\"mb-2\">Please select the type of issue from the list below to start:</p>\n\n <div class=\"field is-horizontal my-3\">\n <div class=\"field-label is-normal\">\n <label class=\"label\" for=\"repository\">Category</label>\n </div>\n <div class=\"field-body\">\n <div class=\"field\">\n <div class=\"control is-expanded\">\n <div class=\"select is-multiple is-fullwidth\">\n <select [(ngModel)]=\"repository\" name=\"repository\" required>\n <option [ngValue]=\"undefined\">Select from the list</option>\n @for (repo of repositories(); track repo) {\n <option [value]=\"repo\">\n @switch (repo) {\n @case (Repository.glossary) {\n Glossary of terms / lookup issues\n }\n @case (Repository.models) {\n Calculation issues\n }\n @case (Repository.aggregation) {\n Aggregated Data issues\n }\n @case (Repository.community) {\n UI/UX or API issues\n }\n @case (Repository.schema) {\n Schema issues\n }\n @default {\n Other issues\n }\n }\n </option>\n }\n </select>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n @if (repository()) {\n <div class=\"field is-horizontal my-3\">\n <div class=\"field-label is-normal\">\n <label class=\"label\" for=\"template\">Issue</label>\n </div>\n <div class=\"field-body\">\n <div class=\"field\">\n <div class=\"control is-expanded\">\n <div class=\"select is-multiple is-fullwidth\">\n <select [(ngModel)]=\"template\" name=\"template\" required>\n <option [value]=\"undefined\">Select from the list</option>\n @for (t of Template | keyvalue; track t) {\n <option [value]=\"t.value\">\n @switch (t.value) {\n @case (Template.bug) {\n I found a bug\n }\n @case (Template.feature) {\n I would like a new feature\n }\n }\n </option>\n }\n </select>\n </div>\n </div>\n </div>\n </div>\n </div>\n }\n\n @if (repository() && template() && issueUrl()) {\n <p>\n <span>Please report the issue on Gitlab using</span>\n <a class=\"pl-1\" [href]=\"issueUrl()\" target=\"_blank\">this link</a>\n .\n </p>\n }\n </section>\n </div>\n</div>\n" }]
2542
- }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }, { type: i0.Output, args: ["titleChange"] }], repository: [{ type: i0.Input, args: [{ isSignal: true, alias: "repository", required: false }] }, { type: i0.Output, args: ["repositoryChange"] }], template: [{ type: i0.Input, args: [{ isSignal: true, alias: "template", required: false }] }, { type: i0.Output, args: ["templateChange"] }], isCommunity: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCommunity", required: false }] }, { type: i0.Output, args: ["isCommunityChange"] }], closed: [{ type: i0.Output, args: ["closed"] }] } });
2543
+ }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }, { type: i0.Output, args: ["titleChange"] }], repository: [{ type: i0.Input, args: [{ isSignal: true, alias: "repository", required: false }] }, { type: i0.Output, args: ["repositoryChange"] }], template: [{ type: i0.Input, args: [{ isSignal: true, alias: "template", required: false }] }, { type: i0.Output, args: ["templateChange"] }], isCommunity: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCommunity", required: false }] }, { type: i0.Output, args: ["isCommunityChange"] }], issueParams: [{ type: i0.Input, args: [{ isSignal: true, alias: "issueParams", required: false }] }, { type: i0.Output, args: ["issueParamsChange"] }], closed: [{ type: i0.Output, args: ["closed"] }] } });
2543
2544
 
2544
2545
  const minMaxValue = (min, max) => [isUndefined(min) ? '' : `Min: ${valueValue(min)}`, isUndefined(max) ? '' : `Max: ${valueValue(max)}`].join('; ');
2545
2546
  class LinkKeyValueComponent {
@@ -13374,10 +13375,11 @@ const isOpenDefault = (schemaType) => [SchemaType.Term].includes(schemaType);
13374
13375
  const isKeyClosedVisible = (key) => ['id', '@id', 'originalId'].includes(key);
13375
13376
  const isKeyHidden = (key) => ['type', '@type'].includes(key);
13376
13377
  const isKeyRequired = (key, def) => ['type', 'id'].includes(key) || (def?.required || []).includes(key);
13377
- const propertyError = (errors) => (dataPath, nonExpandableArray = false) => errors.find(error => (error.dataPath === dataPath ||
13378
+ const propertyErrors = (errors) => (dataPath, nonExpandableArray = false) => errors.filter(error => (error.dataPath === dataPath ||
13378
13379
  (nonExpandableArray &&
13379
13380
  nonExpandableArrayDataPath(error.dataPath) === nonExpandableArrayDataPath(dataPath))) &&
13380
13381
  (dataPath.length > 0 || !isMissingPropertyError(error)));
13382
+ const propertyError = (errors) => (dataPath, nonExpandableArray = false) => propertyErrors(errors)(dataPath, nonExpandableArray)[0];
13381
13383
  const expectedSchemaType = (schema) => {
13382
13384
  const def = (schema?.items ?? schema);
13383
13385
  const type = def ? definitionToSchemaType(def) : null;
@@ -14105,7 +14107,8 @@ class FilesFormComponent {
14105
14107
  ? `/${nodeLink({ '@type': this.schemaType(), '@id': this.nodeId() }, nodeDataState({ '@type': this.schemaType(), aggregated: this.node().aggregated }))}`
14106
14108
  : '', ...(ngDevMode ? [{ debugName: "nodeUrl" }] : []));
14107
14109
  this.filteredErrors = computed(() => this.errors()?.filter(filterError) ?? [], ...(ngDevMode ? [{ debugName: "filteredErrors" }] : []));
14108
- this.nodeError = computed(() => propertyError(this.filteredErrors())(''), ...(ngDevMode ? [{ debugName: "nodeError" }] : []));
14110
+ this.nodeErrors = computed(() => propertyErrors(this.filteredErrors())(''), ...(ngDevMode ? [{ debugName: "nodeErrors" }] : []));
14111
+ this.nodeError = computed(() => this.nodeErrors()[0], ...(ngDevMode ? [{ debugName: "nodeError" }] : []));
14109
14112
  this.nodeProperty = computed(() => this.schema()
14110
14113
  ? {
14111
14114
  id: propertyId(),
@@ -14127,6 +14130,19 @@ class FilesFormComponent {
14127
14130
  formatter: formatter$1('')
14128
14131
  }
14129
14132
  : undefined, ...(ngDevMode ? [{ debugName: "nodeProperty" }] : []));
14133
+ /**
14134
+ * A node can have several errors of its own, each shown on its own line.
14135
+ */
14136
+ this.nodeErrorProperties = computed(() => this.nodeProperty()
14137
+ ? this.nodeErrors().map(error => ({
14138
+ ...this.nodeProperty(),
14139
+ id: propertyId(),
14140
+ error: formatError(error),
14141
+ errorGuidePageId: guidePageId(this.schemaType(), error.message),
14142
+ hasError: errorHasError(error),
14143
+ hasWarning: errorHasWarning(error)
14144
+ }))
14145
+ : [], ...(ngDevMode ? [{ debugName: "nodeErrorProperties" }] : []));
14130
14146
  this.properties = computed(() => [!isUndefined(this.schemas()), !isUndefined(this.node())].every(Boolean)
14131
14147
  ? recursiveProperties(this.schemas(), this.filteredErrors(), this.schema(), false)(this.node())
14132
14148
  : [], ...(ngDevMode ? [{ debugName: "properties" }] : []));
@@ -14171,7 +14187,7 @@ class FilesFormComponent {
14171
14187
  return focusFirstError(this.ref.nativeElement);
14172
14188
  }
14173
14189
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FilesFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14174
- 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\">{{ errorLabel() }}</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\">{{ warningLabel() }}</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 <!--\n The value, the icons and \"Show more\" share one inline flow. As sibling flex items they wrap\n onto a line of their own as soon as the value fills the row, which is how the copy icon ended\n up under the text instead of at the end of it.\n -->\n <span class=\"is-size-7 | property-value\">\n @if (property.isCollapsible && property.showMaxLength) {\n {{ property.value | ellipsis: property.showMaxLength }}\n <a class=\"is-pl-1\" (click)=\"property.showMaxLength = 0\">Show more</a>\n } @else {\n {{ property.value }}\n }\n\n @if (property.schema?.internal && property.key !== 'originalId') {\n <span class=\"is-pl-1 | property-internal\" ngbTooltip=\"This value is auto-generated.\">\n <he-svg-icon name=\"autogenerate-circle\" />\n </span>\n }\n\n <span class=\"is-pl-1 | copy-button\">\n <he-clipboard [value]=\"property.value\" [hideText]=\"true\" clipboardClass=\"no-print\" />\n </span>\n </span>\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-direction-column is-align-items-start is-flex-grow-1\">\n <span [innerHTML]=\"property.error.message\"></span>\n <he-files-error-distribution [error]=\"property.error\" />\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 class=\"is-flex is-align-items-center is-flex-shrink-0\" (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-internal,.copy-button{vertical-align:middle}.property-internal he-svg-icon,.copy-button he-svg-icon{vertical-align:middle}.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: "component", type: FilesErrorDistributionComponent, selector: "he-files-error-distribution", inputs: ["error"] }, { kind: "pipe", type: EllipsisPipe, name: "ellipsis" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14190
+ 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\">{{ errorLabel() }}</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\">{{ warningLabel() }}</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 @for (property of nodeErrorProperties(); track property.id) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property, classes: 'is-my-1 is-py-1 is-px-3' }\" />\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 <!--\n The value, the icons and \"Show more\" share one inline flow. As sibling flex items they wrap\n onto a line of their own as soon as the value fills the row, which is how the copy icon ended\n up under the text instead of at the end of it.\n -->\n <span class=\"is-size-7 | property-value\">\n @if (property.isCollapsible && property.showMaxLength) {\n {{ property.value | ellipsis: property.showMaxLength }}\n <a class=\"is-pl-1\" (click)=\"property.showMaxLength = 0\">Show more</a>\n } @else {\n {{ property.value }}\n }\n\n @if (property.schema?.internal && property.key !== 'originalId') {\n <span class=\"is-pl-1 | property-internal\" ngbTooltip=\"This value is auto-generated.\">\n <he-svg-icon name=\"autogenerate-circle\" />\n </span>\n }\n\n <span class=\"is-pl-1 | copy-button\">\n <he-clipboard [value]=\"property.value\" [hideText]=\"true\" clipboardClass=\"no-print\" />\n </span>\n </span>\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-direction-column is-align-items-start is-flex-grow-1\">\n <span [innerHTML]=\"property.error.message\"></span>\n <he-files-error-distribution [error]=\"property.error\" />\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 class=\"is-flex is-align-items-center is-flex-shrink-0\" (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-internal,.copy-button{vertical-align:middle}.property-internal he-svg-icon,.copy-button he-svg-icon{vertical-align:middle}.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: "component", type: FilesErrorDistributionComponent, selector: "he-files-error-distribution", inputs: ["error"] }, { kind: "pipe", type: EllipsisPipe, name: "ellipsis" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14175
14191
  }
14176
14192
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FilesFormComponent, decorators: [{
14177
14193
  type: Component$1,
@@ -14188,7 +14204,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
14188
14204
  GuideOverlayComponent,
14189
14205
  FilesErrorDistributionComponent,
14190
14206
  EllipsisPipe
14191
- ], 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\">{{ errorLabel() }}</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\">{{ warningLabel() }}</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 <!--\n The value, the icons and \"Show more\" share one inline flow. As sibling flex items they wrap\n onto a line of their own as soon as the value fills the row, which is how the copy icon ended\n up under the text instead of at the end of it.\n -->\n <span class=\"is-size-7 | property-value\">\n @if (property.isCollapsible && property.showMaxLength) {\n {{ property.value | ellipsis: property.showMaxLength }}\n <a class=\"is-pl-1\" (click)=\"property.showMaxLength = 0\">Show more</a>\n } @else {\n {{ property.value }}\n }\n\n @if (property.schema?.internal && property.key !== 'originalId') {\n <span class=\"is-pl-1 | property-internal\" ngbTooltip=\"This value is auto-generated.\">\n <he-svg-icon name=\"autogenerate-circle\" />\n </span>\n }\n\n <span class=\"is-pl-1 | copy-button\">\n <he-clipboard [value]=\"property.value\" [hideText]=\"true\" clipboardClass=\"no-print\" />\n </span>\n </span>\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-direction-column is-align-items-start is-flex-grow-1\">\n <span [innerHTML]=\"property.error.message\"></span>\n <he-files-error-distribution [error]=\"property.error\" />\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 class=\"is-flex is-align-items-center is-flex-shrink-0\" (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-internal,.copy-button{vertical-align:middle}.property-internal he-svg-icon,.copy-button he-svg-icon{vertical-align:middle}.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"] }]
14207
+ ], 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\">{{ errorLabel() }}</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\">{{ warningLabel() }}</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 @for (property of nodeErrorProperties(); track property.id) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property, classes: 'is-my-1 is-py-1 is-px-3' }\" />\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 <!--\n The value, the icons and \"Show more\" share one inline flow. As sibling flex items they wrap\n onto a line of their own as soon as the value fills the row, which is how the copy icon ended\n up under the text instead of at the end of it.\n -->\n <span class=\"is-size-7 | property-value\">\n @if (property.isCollapsible && property.showMaxLength) {\n {{ property.value | ellipsis: property.showMaxLength }}\n <a class=\"is-pl-1\" (click)=\"property.showMaxLength = 0\">Show more</a>\n } @else {\n {{ property.value }}\n }\n\n @if (property.schema?.internal && property.key !== 'originalId') {\n <span class=\"is-pl-1 | property-internal\" ngbTooltip=\"This value is auto-generated.\">\n <he-svg-icon name=\"autogenerate-circle\" />\n </span>\n }\n\n <span class=\"is-pl-1 | copy-button\">\n <he-clipboard [value]=\"property.value\" [hideText]=\"true\" clipboardClass=\"no-print\" />\n </span>\n </span>\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-direction-column is-align-items-start is-flex-grow-1\">\n <span [innerHTML]=\"property.error.message\"></span>\n <he-files-error-distribution [error]=\"property.error\" />\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 class=\"is-flex is-align-items-center is-flex-shrink-0\" (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-internal,.copy-button{vertical-align:middle}.property-internal he-svg-icon,.copy-button he-svg-icon{vertical-align:middle}.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"] }]
14192
14208
  }], 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"] }] } });
14193
14209
 
14194
14210
  class SchemaInfoComponent {
@@ -16154,5 +16170,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
16154
16170
  * Generated bundle index. Do not edit.
16155
16171
  */
16156
16172
 
16157
- export { ARRAY_DELIMITER, ApplyPurePipe, BarChartComponent, BibliographiesSearchConfirmComponent, BlankNodeStateComponent, BlankNodeStateNoticeComponent, BlankNodeValueDeltaComponent, CapitalizePipe, ChartComponent, ChartConfigurationDirective, ChartExportButtonComponent, ChartTooltipComponent, ClickOutsideDirective, ClipboardComponent, CollapsibleBlockComponent, CollapsibleBoxComponent, CollapsibleBoxStyle, 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, EngineRequiredDataFormComponent, EngineRequirementsFormComponent, FileSizePipe, FileUploadErrorKeys, FilesDragDropDirective, FilesDropZoneComponent, FilesErrorSummaryComponent, FilesFormComponent, FilesFormEditableComponent, FilesUploadErrorsComponent, FilterAccordionComponent, FormulaBlockComponent, GUIDE_ENABLED, GetPipe, GlossaryMigrationFormat, GuideOverlayComponent, HE_API_BASE_URL, HE_CALCULATIONS_BASE_URL, HE_MAP_LOADED, HE_NODE_LINK_TYPES, HE_REGION_GEOJSON_BASE_URL, 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, NodeAggregatedFormulasComponent, NodeAggregatedInfoComponent, NodeAggregatedQualityScoreComponent, NodeAggregationLogsComponent, 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, aggregatedSitePrimaryProduct, allCountriesQuery, allGroups, allOptions, availableProperties, axisLabelSettings, backgroundModelParams, baseApiUrl, baseUrl, blankNodesTermTypes, bottom, buildSummary, bytesSize, calculateCycleDuration, calculateCycleDurationEnabled, calculateCycleStartDate, calculateCycleStartDateEnabled, capitalize, changelogUrl, clustererImage, code, compoundToHtml, computeKeys, computeTerms, contactUsEmail, contactUsLink, coordinatesToPoint, copyObject, countGroupVisibleNodes, countriesQuery, createMarker, cropsQuery, dataPathLabel, dataPathToKey, dataVersionHeader, dataVersionHeaderKey, defaultFeature, defaultLabel, defaultNodeLinkTypes, defaultRequiredDataIndicators, defaultRequiredDataSiteType, defaultSuggestionType, definitionToSchemaType, distinctUntilChangedDeep, ellipsis, engineGitBaseUrl, engineGitUrl, errorText, errorsLabel, evaluateSuccess, exportFormats, externalLink, externalNodeLink, fillColor, fillStyle, filterBlankNode$1 as filterBlankNode, filterParams, findBackgroundModel, findConfigModels, findMatchingModel, findModels, findNodeModel, findOrchestratorModel, findProperty, findPropertyById, findTermModels, flatFilterData, flatFilterNode, formatCustomErrorMessage, formatDate, formatError, formatPropertyError, formatter$1 as formatter, getDatesBetween, gitBranch, gitHome, glossaryBaseUrl, glossaryLink, groupBlankNodesByTermIdentity, groupChanged, groupJLogByField, groupJLogByTerm, groupLogsByTerm, groupNodesByTerm, groupdLogsByKey, grouppedKeys, grouppedValueKeys, groupsLogsByFields, guideModelUrl, guideNamespace, handleAPIError, handleGuideEvent, hasError, hasValidationError, hasWarning, highestMethodTier, ignoreKeys$2 as ignoreKeys, impactAssessmentProduct, initialFilterState, injectResizeEvent$, inputGroupsTermTypes, isAddPropertyEnabled, isChrome, isDateBetween, isEqual, isExternal, isIdenticalNodeValue, isKeyClosedVisible, isKeyHidden, isMaxStage, isMethodModelAllowed, isNonNodeModelKey, isSchemaIri, isScrolledBelow, isState, isTermTypeAllowed, isValidKey, jLogModelCount, keyToDataPath, levels, loadMapApi, locationQuery, logToCsv, logValueArray, logsKey, lookupUrl, mapFilterData, mapsUrl, markerIcon, markerPie, matchAggregatedQuery, matchAggregatedValidatedQuery, matchBoolPrefixQuery, matchCountry, matchExactQuery, matchGlobalRegion, matchId, matchNameNormalized, matchNestedKey, matchPhrasePrefixQuery, matchPhraseQuery, matchPrimaryProductQuery, matchQuery, matchRegex, matchRegion, matchTermType, matchType, matchesSearchTerm, maxAreaSize, measurementValue, mergeDataWithHeaders, methodTierOrder, migrationErrorMessage, migrationsUrl, modelCount, modelKeyParams, modelParams, models, multiMatchQuery, nestedProperty, nestingEnabled, nestingTypeEnabled, noValue, nodeAvailableProperties, nodeById, nodeChartLabels, 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, openNodeUrl, openUrl, optionsFromGroup, parentKey, parentProperty, parseData, parseDataPath, parseLines, parseMessage, parseNewValue, pluralize, pointToCoordinates, polygonBounds, polygonToCoordinates, polygonToMap, polygonsFromFeature, populateWithTrackIdsFilterData, postGuideEvent, primaryProduct, productsQuery, propertyError, propertyId, recursiveProperties, refToSchemaType, refreshPropertyKeys, regionsQuery, repeat, reportIssueLink, reportIssueUrl, requiredDataParams, safeJSONParse, safeJSONStringify, schemaBaseUrl, schemaDataBaseUrl, schemaLink, schemaRequiredProperties, schemaTypeToDefaultValue, scrollToEl, scrollTop, searchFilterData, searchableTypes, siblingProperty, simplifyContributions, singleProperty, siteTooBig, siteTypeToColor, siteTypeToIcon, sortProperties, sortedDates, strokeColor, strokeStyle, subValueKeys, suggestMatchQuery, suggestQuery, suggestTerms, takeAfterViewInit, termLocation, termLocationName, termProperties, termSearch, termTypeLabel, toSnakeCase, toTextParts, toThousands, typeToNewProperty, typeaheadFocus, uncapitalize, uniqueDatesBetween, updateProperties, valueLink, valueToString, valueTypeToDefault, valueValue, waitFor, wildcardQuery };
16173
+ export { ARRAY_DELIMITER, ApplyPurePipe, BarChartComponent, BibliographiesSearchConfirmComponent, BlankNodeStateComponent, BlankNodeStateNoticeComponent, BlankNodeValueDeltaComponent, CapitalizePipe, ChartComponent, ChartConfigurationDirective, ChartExportButtonComponent, ChartTooltipComponent, ClickOutsideDirective, ClipboardComponent, CollapsibleBlockComponent, CollapsibleBoxComponent, CollapsibleBoxStyle, 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, EngineRequiredDataFormComponent, EngineRequirementsFormComponent, FileSizePipe, FileUploadErrorKeys, FilesDragDropDirective, FilesDropZoneComponent, FilesErrorSummaryComponent, FilesFormComponent, FilesFormEditableComponent, FilesUploadErrorsComponent, FilterAccordionComponent, FormulaBlockComponent, GUIDE_ENABLED, GetPipe, GlossaryMigrationFormat, GuideOverlayComponent, HE_API_BASE_URL, HE_CALCULATIONS_BASE_URL, HE_MAP_LOADED, HE_NODE_LINK_TYPES, HE_REGION_GEOJSON_BASE_URL, 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, NodeAggregatedFormulasComponent, NodeAggregatedInfoComponent, NodeAggregatedQualityScoreComponent, NodeAggregationLogsComponent, 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, aggregatedSitePrimaryProduct, allCountriesQuery, allGroups, allOptions, availableProperties, axisLabelSettings, backgroundModelParams, baseApiUrl, baseUrl, blankNodesTermTypes, bottom, buildSummary, bytesSize, calculateCycleDuration, calculateCycleDurationEnabled, calculateCycleStartDate, calculateCycleStartDateEnabled, capitalize, changelogUrl, clustererImage, code, compoundToHtml, computeKeys, computeTerms, contactUsEmail, contactUsLink, coordinatesToPoint, copyObject, countGroupVisibleNodes, countriesQuery, createMarker, cropsQuery, dataPathLabel, dataPathToKey, dataVersionHeader, dataVersionHeaderKey, defaultFeature, defaultLabel, defaultNodeLinkTypes, defaultRequiredDataIndicators, defaultRequiredDataSiteType, defaultSuggestionType, definitionToSchemaType, distinctUntilChangedDeep, ellipsis, engineGitBaseUrl, engineGitUrl, errorText, errorsLabel, evaluateSuccess, exportFormats, externalLink, externalNodeLink, fillColor, fillStyle, filterBlankNode$1 as filterBlankNode, filterParams, findBackgroundModel, findConfigModels, findMatchingModel, findModels, findNodeModel, findOrchestratorModel, findProperty, findPropertyById, findTermModels, flatFilterData, flatFilterNode, formatCustomErrorMessage, formatDate, formatError, formatPropertyError, formatter$1 as formatter, getDatesBetween, gitBranch, gitHome, glossaryBaseUrl, glossaryLink, groupBlankNodesByTermIdentity, groupChanged, groupJLogByField, groupJLogByTerm, groupLogsByTerm, groupNodesByTerm, groupdLogsByKey, grouppedKeys, grouppedValueKeys, groupsLogsByFields, guideModelUrl, guideNamespace, handleAPIError, handleGuideEvent, hasError, hasValidationError, hasWarning, highestMethodTier, ignoreKeys$2 as ignoreKeys, impactAssessmentProduct, initialFilterState, injectResizeEvent$, inputGroupsTermTypes, isAddPropertyEnabled, isChrome, isDateBetween, isEqual, isExternal, isIdenticalNodeValue, isKeyClosedVisible, isKeyHidden, isMaxStage, isMethodModelAllowed, isNonNodeModelKey, isSchemaIri, isScrolledBelow, isState, isTermTypeAllowed, isValidKey, jLogModelCount, keyToDataPath, levels, loadMapApi, locationQuery, logToCsv, logValueArray, logsKey, lookupUrl, mapFilterData, mapsUrl, markerIcon, markerPie, matchAggregatedQuery, matchAggregatedValidatedQuery, matchBoolPrefixQuery, matchCountry, matchExactQuery, matchGlobalRegion, matchId, matchNameNormalized, matchNestedKey, matchPhrasePrefixQuery, matchPhraseQuery, matchPrimaryProductQuery, matchQuery, matchRegex, matchRegion, matchTermType, matchType, matchesSearchTerm, maxAreaSize, measurementValue, mergeDataWithHeaders, methodTierOrder, migrationErrorMessage, migrationsUrl, modelCount, modelKeyParams, modelParams, models, multiMatchQuery, nestedProperty, nestingEnabled, nestingTypeEnabled, noValue, nodeAvailableProperties, nodeById, nodeChartLabels, 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, openNodeUrl, openUrl, optionsFromGroup, parentKey, parentProperty, parseData, parseDataPath, parseLines, parseMessage, parseNewValue, pluralize, pointToCoordinates, polygonBounds, polygonToCoordinates, polygonToMap, polygonsFromFeature, populateWithTrackIdsFilterData, postGuideEvent, primaryProduct, productsQuery, propertyError, propertyErrors, propertyId, recursiveProperties, refToSchemaType, refreshPropertyKeys, regionsQuery, repeat, reportIssueLink, reportIssueUrl, requiredDataParams, safeJSONParse, safeJSONStringify, schemaBaseUrl, schemaDataBaseUrl, schemaLink, schemaRequiredProperties, schemaTypeToDefaultValue, scrollToEl, scrollTop, searchFilterData, searchableTypes, siblingProperty, simplifyContributions, singleProperty, siteTooBig, siteTypeToColor, siteTypeToIcon, sortProperties, sortedDates, strokeColor, strokeStyle, subValueKeys, suggestMatchQuery, suggestQuery, suggestTerms, takeAfterViewInit, termLocation, termLocationName, termProperties, termSearch, termTypeLabel, toSnakeCase, toTextParts, toThousands, typeToNewProperty, typeaheadFocus, uncapitalize, uniqueDatesBetween, updateProperties, valueLink, valueToString, valueTypeToDefault, valueValue, waitFor, wildcardQuery };
16158
16174
  //# sourceMappingURL=hestia-earth-ui-components.mjs.map