@hestia-earth/ui-components 0.43.1 → 0.43.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/hestia-earth-ui-components-svg-icons.mjs +8 -1
- package/fesm2022/hestia-earth-ui-components-svg-icons.mjs.map +1 -1
- package/fesm2022/hestia-earth-ui-components.mjs +10 -8
- package/fesm2022/hestia-earth-ui-components.mjs.map +1 -1
- package/package.json +1 -1
- package/svg-icons/icons-sprite.svg +1 -1
- package/types/hestia-earth-ui-components-svg-icons.d.ts +1 -1
- package/types/hestia-earth-ui-components.d.ts +1 -0
|
@@ -3,7 +3,13 @@ import { inject, input, computed, HostBinding, Component } from '@angular/core';
|
|
|
3
3
|
import { PlatformLocation } from '@angular/common';
|
|
4
4
|
|
|
5
5
|
// auto-generated content using "node scripts/generate-icons.js"
|
|
6
|
-
const iconSizes = [
|
|
6
|
+
const iconSizes = [
|
|
7
|
+
'16',
|
|
8
|
+
'20',
|
|
9
|
+
'24',
|
|
10
|
+
'40',
|
|
11
|
+
'48'
|
|
12
|
+
];
|
|
7
13
|
const icons = [
|
|
8
14
|
'aggregation',
|
|
9
15
|
'api',
|
|
@@ -176,6 +182,7 @@ const icons = [
|
|
|
176
182
|
'star-filled',
|
|
177
183
|
'table',
|
|
178
184
|
'tag-filled',
|
|
185
|
+
'tank',
|
|
179
186
|
'target',
|
|
180
187
|
'target-schema',
|
|
181
188
|
'term',
|
|
@@ -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 = ['16', '20', '24', '40', '48'];\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 | 'flash'\n | 'folder'\n | 'folder-open'\n | 'foodprocessor'\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 | 'target'\n | 'target-schema'\n | 'term'\n | 'term-schema'\n | 'textform-list'\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 'flash',\n 'folder',\n 'folder-open',\n 'foodprocessor',\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 'target',\n 'target-schema',\n 'term',\n 'term-schema',\n 'textform-list',\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.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 | '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 | 'flash'\n | 'folder'\n | 'folder-open'\n | 'foodprocessor'\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 | '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 'flash',\n 'folder',\n 'folder-open',\n 'foodprocessor',\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 '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.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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"}
|
|
@@ -940,7 +940,8 @@ const siteTypeToIcon = {
|
|
|
940
940
|
[SiteSiteType['permanent pasture']]: 'fence',
|
|
941
941
|
[SiteSiteType.pond]: 'pond',
|
|
942
942
|
[SiteSiteType['river or stream']]: 'river',
|
|
943
|
-
[SiteSiteType['sea or ocean']]: 'ocean'
|
|
943
|
+
[SiteSiteType['sea or ocean']]: 'ocean',
|
|
944
|
+
[SiteSiteType.tank]: 'tank'
|
|
944
945
|
};
|
|
945
946
|
const siteTypeToColor = {
|
|
946
947
|
[SiteSiteType.forest]: '#498f78',
|
|
@@ -954,7 +955,8 @@ const siteTypeToColor = {
|
|
|
954
955
|
[SiteSiteType.lake]: '#1a0dab',
|
|
955
956
|
[SiteSiteType['sea or ocean']]: '#32bac2',
|
|
956
957
|
[SiteSiteType['agri-food processor']]: '#193957',
|
|
957
|
-
[SiteSiteType['food retailer']]: '#8b50A7'
|
|
958
|
+
[SiteSiteType['food retailer']]: '#8b50A7',
|
|
959
|
+
[SiteSiteType.tank]: '#607d8b'
|
|
958
960
|
};
|
|
959
961
|
|
|
960
962
|
/* eslint-disable-next-line complexity */
|
|
@@ -2839,14 +2841,14 @@ class PipelineProgressStatusComponent {
|
|
|
2839
2841
|
this.iconAnimation = computed(() => (this.status() === 'pending' ? 'spin' : ''), ...(ngDevMode ? [{ debugName: "iconAnimation" }] : []));
|
|
2840
2842
|
}
|
|
2841
2843
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PipelineProgressStatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2842
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: PipelineProgressStatusComponent, isStandalone: true, selector: "he-pipeline-progress-status", inputs: { status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.indicator-status": "status()", "style.--icon-size": "iconSize()" } }, ngImport: i0, template: "<div class=\"is-flex is-justify-content-center is-align-items-center | icon-circle\">\n @if (iconStatus()) {\n <he-svg-icon\n class=\"has-text-white is-flex is-align-items-center\"\n [name]=\"iconStatus()\"\n [animation]=\"iconAnimation()\" />\n }\n</div>\n", styles: [":host{--icon-circle-background-color: #dbdbdb;--icon-size: 22.5px}:host[indicator-status=success]{--icon-circle-background-color:
|
|
2844
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: PipelineProgressStatusComponent, isStandalone: true, selector: "he-pipeline-progress-status", inputs: { status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.indicator-status": "status()", "style.--icon-size": "iconSize()" } }, ngImport: i0, template: "<div class=\"is-flex is-justify-content-center is-align-items-center | icon-circle\">\n @if (iconStatus()) {\n <he-svg-icon\n class=\"has-text-white is-flex is-align-items-center\"\n [name]=\"iconStatus()\"\n [animation]=\"iconAnimation()\" />\n }\n</div>\n", styles: [":host{--icon-circle-background-color: #dbdbdb;--icon-size: 22.5px}:host[indicator-status=success]{--icon-circle-background-color: #2b8434}:host[indicator-status=error]{--icon-circle-background-color: #ff3844}:host[indicator-status=pending]{--icon-circle-background-color: #4c7194}.icon-circle{width:var(--icon-size);height:var(--icon-size);background-color:var(--icon-circle-background-color);border-radius:50%}\n"], dependencies: [{ kind: "component", type: HESvgIconComponent, selector: "he-svg-icon", inputs: ["name", "size", "animation"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2843
2845
|
}
|
|
2844
2846
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PipelineProgressStatusComponent, decorators: [{
|
|
2845
2847
|
type: Component$1,
|
|
2846
2848
|
args: [{ selector: 'he-pipeline-progress-status', imports: [HESvgIconComponent], host: {
|
|
2847
2849
|
'[attr.indicator-status]': 'status()',
|
|
2848
2850
|
'[style.--icon-size]': 'iconSize()'
|
|
2849
|
-
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"is-flex is-justify-content-center is-align-items-center | icon-circle\">\n @if (iconStatus()) {\n <he-svg-icon\n class=\"has-text-white is-flex is-align-items-center\"\n [name]=\"iconStatus()\"\n [animation]=\"iconAnimation()\" />\n }\n</div>\n", styles: [":host{--icon-circle-background-color: #dbdbdb;--icon-size: 22.5px}:host[indicator-status=success]{--icon-circle-background-color:
|
|
2851
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"is-flex is-justify-content-center is-align-items-center | icon-circle\">\n @if (iconStatus()) {\n <he-svg-icon\n class=\"has-text-white is-flex is-align-items-center\"\n [name]=\"iconStatus()\"\n [animation]=\"iconAnimation()\" />\n }\n</div>\n", styles: [":host{--icon-circle-background-color: #dbdbdb;--icon-size: 22.5px}:host[indicator-status=success]{--icon-circle-background-color: #2b8434}:host[indicator-status=error]{--icon-circle-background-color: #ff3844}:host[indicator-status=pending]{--icon-circle-background-color: #4c7194}.icon-circle{width:var(--icon-size);height:var(--icon-size);background-color:var(--icon-circle-background-color);border-radius:50%}\n"] }]
|
|
2850
2852
|
}], propDecorators: { status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] } });
|
|
2851
2853
|
|
|
2852
2854
|
class PipelineProgressStageComponent {
|
|
@@ -13653,7 +13655,7 @@ class FilesFormComponent {
|
|
|
13653
13655
|
return focusFirstError(this.ref.nativeElement);
|
|
13654
13656
|
}
|
|
13655
13657
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FilesFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13656
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: FilesFormComponent, isStandalone: true, selector: "he-files-form", inputs: { isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, showNodeLink: { classPropertyName: "showNodeLink", publicName: "showNodeLink", isSignal: true, isRequired: false, transformFunction: null }, errorGuidePrefix: { classPropertyName: "errorGuidePrefix", publicName: "errorGuidePrefix", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpen: "isOpenChange", nodeErorrResolved: "nodeErorrResolved" }, exportAs: ["filesForm"], ngImport: i0, template: "<div class=\"is-flex is-flex-direction-column is-align-items-flex-start is-align-self-stretch | files-form-container\">\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-align-items-center is-align-self-stretch is-gap-16 px-4 py-2 has-text-secondary | files-form-header\"\n (click)=\"isOpen.set(!isOpen())\"\n pointer>\n <div class=\"is-flex is-gap-8 is-align-items-center\">\n @if (nodeProperty()) {\n <he-node-icon class=\"is-flex\" [type]=\"schemaType()\" [size]=\"24\" />\n <span class=\"has-text-weight-bold has-text-secondary is-size-5\">{{ schemaType() }}</span>\n @if (nodeProperty().hasError || hasError()) {\n <he-svg-icon name=\"xmark-circle\" class=\"has-text-danger is-flex is-align-items-center\" />\n <span class=\"has-text-danger has-text-weight-bold is-italic\">Error</span>\n } @else if (nodeProperty().hasWarning || hasWarning()) {\n <he-svg-icon name=\"exclamation-triangle\" class=\"has-text-warning is-flex is-align-items-center\" />\n <span class=\"has-text-warning has-text-weight-bold is-italic\">Warning</span>\n }\n }\n </div>\n @if ((showNodeLink() && nodeUrl()) || canOpen()) {\n <div class=\"is-flex is-flex-direction-row is-align-items-center is-gap-16\">\n @if (showNodeLink() && nodeUrl()) {\n <ng-container *ngTemplateOutlet=\"nodeLink; context: { url: nodeUrl(), nodeType: schemaType() }\" />\n }\n @if (canOpen()) {\n <he-svg-icon [name]=\"isOpen() ? 'minus' : 'plus'\" />\n }\n </div>\n }\n </div>\n\n <div class=\"is-flex is-flex-direction-column is-align-items-flex-start is-align-self-stretch\">\n @if (isOpen()) {\n @if (nodeProperty()?.error) {\n <ng-container\n *ngTemplateOutlet=\"\n propertyError;\n context: { property: nodeProperty(), classes: 'is-my-1 is-py-1 is-px-3' }\n \" />\n }\n }\n\n @if (unmatchedErrors().length) {\n @for (property of unmatchedErrors(); track property.id) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property, classes: 'is-my-1 is-py-1 is-px-3' }\" />\n }\n }\n\n <div class=\"is-flex is-flex-direction-row is-flex-wrap-wrap is-align-self-stretch\">\n @for (property of properties(); track trackByProperty($index, property)) {\n <ng-container *ngTemplateOutlet=\"showProperty; context: { $implicit: property }\" />\n }\n </div>\n\n @if (isOpen()) {\n <ng-container *ngTemplateOutlet=\"propertyMap; context: { $implicit: nodeProperty() }\" />\n }\n </div>\n\n <ng-content />\n</div>\n\n<ng-template #propertyKeyTooltip let-property=\"property\">\n <markdown [data]=\"property.schema.description\" />\n</ng-template>\n\n<ng-template #propertyKey let-property=\"property\">\n @if (property.schema?.description) {\n <span\n class=\"trigger-popover | property-key\"\n [ngbTooltip]=\"propertyKeyTooltip\"\n [tooltipContext]=\"{ property }\"\n triggers=\"click\"\n autoClose=\"outside\"\n tooltipClass=\"property-tooltip\"\n placement=\"bottom-left auto\"\n container=\"body\"\n (click)=\"$event.stopPropagation()\">\n <span>{{ property.key }}</span>\n </span>\n } @else {\n <span>{{ property.key }}</span>\n }\n</ng-template>\n\n<ng-template #propertyContent let-property=\"property\">\n <div class=\"is-flex is-align-items-center is-flex-wrap-wrap is-gap-4\">\n <div class=\"is-flex has-text-secondary\">\n <ng-container *ngTemplateOutlet=\"propertyKey; context: { property }\" />\n <span>:</span>\n </div>\n\n @if (property.isCollapsible && property.showMaxLength) {\n <span class=\"is-flex is-size-7 | property-value\">\n {{ property.value | ellipsis: property.showMaxLength }}\n </span>\n\n <a class=\"is-flex is-size-7\" (click)=\"property.showMaxLength = 0\">Show more</a>\n } @else {\n <span class=\"is-flex is-size-7 | property-value\">\n {{ property.value }}\n </span>\n }\n\n @if (property.schema?.internal && property.key !== 'originalId') {\n <div class=\"property-internal\" ngbTooltip=\"This value is auto-generated.\">\n <he-svg-icon name=\"autogenerate-circle\" />\n </div>\n }\n\n <div class=\"copy-button\">\n <he-clipboard [value]=\"property.value\" [hideText]=\"true\" />\n </div>\n </div>\n\n <div class=\"is-flex is-gap-8\">\n @if (property.externalUrl?.url) {\n <a\n [href]=\"property.externalUrl.url + (property.externalUrl.urlParamValue ? property.value : '')\"\n target=\"_blank\"\n [title]=\"property.externalUrl.title\"\n class=\"ml-2\"\n [ngClass]=\"{ 'is-info': property.key === 'type' }\"\n [attr.disabled]=\"property.externalUrl.urlParamValue && !property.value ? true : null\">\n <he-svg-icon [name]=\"property.externalUrl.icon || 'external-link'\" />\n </a>\n }\n </div>\n</ng-template>\n\n<ng-template #showProperty let-property>\n @if ((isOpen() || property.closedVisible) && !property.isHidden) {\n @if (property.properties.length) {\n <div class=\"is-flex is-flex-direction-column is-flex-wrap-wrap w-100 | properties-container\">\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-4 has-text-secondary w-100 | properties-container--title\"\n (click)=\"property.isOpen = !property.isOpen\"\n pointer\n [class.is-open]=\"property.isOpen\"\n [class.is-group-error-danger]=\"property.hasError\"\n [class.is-group-error-warning]=\"!property.hasError && property.hasWarning\">\n <div class=\"is-flex is-gap-8 has-text-weight-bold\">\n <!-- @if (property.schemaType === SchemaType.Term) {\n <he-node-icon [type]=\"property.schemaType\" />\n } -->\n <ng-container *ngTemplateOutlet=\"propertyKey; context: { property }\" />\n </div>\n <he-svg-icon [name]=\"property.isOpen ? 'minus' : 'plus'\" />\n </div>\n @if (property.isOpen) {\n @if (property.error) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property, classes: 'is-my-1 is-px-3' }\" />\n }\n @if (property.isArray) {\n <div class=\"py-2 px-3 w-100\">\n @if (property.hasError) {\n <div class=\"is-flex is-align-items-center is-size-7 is-italic is-mb-2 has-text-warning\">\n <he-svg-icon name=\"exclamation-triangle\" />\n @if (showAllErrors()) {\n <a class=\"is-pl-2\" (click)=\"showAllErrors.set(false)\">Only show items in error.</a>\n } @else {\n <span class=\"is-pl-2\">Only showing items in error.</span>\n <a class=\"is-pl-1\" (click)=\"showAllErrors.set(true)\">Show all items</a>\n }\n </div>\n }\n\n @for (prop2 of property.properties; track trackByProperty($index, prop2)) {\n @if (prop2.key && (showAllErrors() || !property.hasError || prop2.hasError)) {\n <div class=\"pt-2 my-4 | property-array-container\" [id]=\"prop2.fullKey + '_' + prop2.id\">\n <div class=\"ml-2 is-mb-2 | property-array-number\">\n <span class=\"has-text-info is-px-1 | number-tag\">{{ prop2.key }}</span>\n </div>\n @if (prop2.error) {\n <ng-container\n *ngTemplateOutlet=\"propertyError; context: { property: prop2, classes: 'is-py-1 is-px-3' }\" />\n }\n <div class=\"p-3\">\n <div class=\"is-flex is-flex-direction-row is-flex-wrap-wrap is-align-self-stretch\">\n @for (prop3 of prop2.properties; track trackByProperty($index, prop3)) {\n <ng-container *ngTemplateOutlet=\"showProperty; context: { $implicit: prop3 }\" />\n }\n </div>\n </div>\n </div>\n }\n }\n </div>\n } @else {\n <div class=\"is-flex is-flex-direction-row is-flex-wrap-wrap is-align-self-stretch\">\n @for (prop2 of property.properties; track trackByProperty($index, prop2)) {\n <ng-container *ngTemplateOutlet=\"showProperty; context: { $implicit: prop2 }\" />\n }\n </div>\n }\n }\n </div>\n } @else {\n <div\n class=\"is-flex is-flex-direction-column is-gap-4 | property-container\"\n [class.is-error-danger]=\"property.hasError\"\n [class.is-error-warning]=\"!property.hasError && property.hasWarning\">\n <div\n class=\"is-flex is-flex-direction-row is-align-items-center is-justify-content-space-between is-gap-4 | field-container\">\n @if (property.key) {\n <ng-container *ngTemplateOutlet=\"propertyContent; context: { property }\" />\n }\n </div>\n @if (property.hasError || property.hasWarning) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property }\" />\n }\n </div>\n }\n }\n</ng-template>\n\n<ng-template #propertyError let-property=\"property\" let-classes=\"classes\">\n @if (property.error?.message) {\n <div\n class=\"is-flex is-flex-direction-row is-gap-8 is-size-6 is-m-0 w-100 has-text-grey {{ classes }} | property-error\"\n [class.is-error-danger]=\"property.hasError\"\n [class.is-error-warning]=\"!property.hasError && property.hasWarning\">\n @if (property.hasError) {\n <he-svg-icon name=\"xmark-circle\" size=\"24\" class=\"has-text-danger is-flex-grow-0\" />\n } @else {\n <he-svg-icon name=\"exclamation-triangle\" size=\"24\" class=\"has-text-warning is-flex-grow-0\" />\n }\n\n <div class=\"is-flex is-flex-grow-1\">\n <span [innerHTML]=\"property.error.message\"></span>\n </div>\n\n @if (errorGuidePrefix() && property.errorGuidePageId) {\n <he-guide-overlay class=\"is-flex-grow-0\" [pageId]=\"errorGuidePrefix() + property.errorGuidePageId\" />\n }\n\n @if (property.error.index >= 0) {\n @if (property.hasWarning) {\n <a (click)=\"resolveError(property)\">\n <he-svg-icon name=\"checkmark\" />\n <span class=\"is-pl-2\">Resolved</span>\n </a>\n }\n }\n </div>\n }\n</ng-template>\n\n<ng-template #propertyMap let-property>\n @if (showMap()) {\n <div class=\"is-flex is-flex-direction-column is-flex-wrap-wrap w-100 | properties-container\">\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-4 w-100 | properties-container--title\"\n (click)=\"mapVisible.set(!mapVisible())\"\n pointer\n [class.is-open]=\"mapVisible()\">\n <span class=\"is-size-6\">View on Map</span>\n <he-svg-icon [name]=\"mapVisible() ? 'minus' : 'plus'\" />\n </div>\n @if (mapVisible()) {\n <he-sites-maps [sites]=\"[node()]\" [showNotice]=\"false\" />\n }\n </div>\n }\n</ng-template>\n\n<ng-template #nodeLink let-url=\"url\" let-nodeType=\"nodeType\">\n <a class=\"external-link\" [href]=\"url\" target=\"_blank\" (click)=\"$event.stopPropagation()\">\n <span class=\"is-hidden-mobile\">View</span>\n <span class=\"is-hidden-mobile is-pl-1\">{{ nodeType }}</span>\n <he-svg-icon name=\"external-link\" class=\"ml-2\" />\n </a>\n</ng-template>\n", styles: [".notification{color:#0a0a0a!important}.notification.is-success{background-color:#d5f3d8}.notification.is-success *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-success>fa-icon,.notification.is-success *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-success>he-svg-icon{color:#48c78e}.notification.is-info{background-color:#d3ebed}.notification.is-info *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-info>fa-icon,.notification.is-info *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-info>he-svg-icon{color:#249da5}.notification.is-warning{background-color:#ffdec0}.notification.is-warning *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-warning>fa-icon,.notification.is-warning *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-warning>he-svg-icon{color:#ff881b}.notification.is-danger{background-color:#ffcdd0}.notification.is-danger *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-danger>fa-icon,.notification.is-danger *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-danger>he-svg-icon{color:#ff3844}he-sites-maps{height:200px}.external-link{color:#4c7194}.files-form-container{box-shadow:2px 2px 4px #00000029;background-color:#fff}.files-form-header{padding:10px 12px;background-color:#dbe3ea;border-top-left-radius:3px;border-top-right-radius:3px}.properties-container--title,.property-container{padding:6px 12px}.property-container{flex:none;flex-grow:1;min-width:50%;max-width:100%;border:1px solid #f5f5f5}.property-container.is-error-danger{border-color:#ff3844}.property-container.is-error-warning{border-color:#ff881b}.properties-container--title{border-top:1px solid #dbe3ea;border-bottom:1px solid #dbe3ea;background:#f5f7f9}.properties-container .properties-container{border-radius:6px;border:1px solid #dbe3ea;margin:4px 0}.properties-container .properties-container--title{border-top:none}.property-internal{color:#249da5}.property-key,.property-value{word-break:break-word}.property-array-container{border-radius:6px;border:1px solid #dbdbdb}.number-tag{border:1px solid #249da5;border-radius:50%}.copy-button{visibility:hidden}.field-container:hover .copy-button{visibility:visible}.is-group-error-danger{background-color:#ffcdd0}.is-group-error-warning{background-color:#ffdec0}.property-error.is-error-danger{background-color:#ffeced}.field-container+.property-error.is-error-danger{background-color:transparent;color:#ff3844!important}.property-error.is-error-warning{background-color:#fff5ec}.field-container+.property-error.is-error-warning{background-color:transparent;color:#ff881b!important}::ng-deep .property-tooltip{background-color:#fff;color:#0a0a0a;border:1px solid #dbdbdb;z-index:11;max-width:50vw;max-height:50vh;overflow:auto}::ng-deep .property-tooltip pre{white-space:pre-wrap}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MarkdownComponent, selector: "markdown, [markdown]", inputs: ["data", "src", "disableSanitizer", "inline", "clipboard", "clipboardButtonComponent", "clipboardButtonTemplate", "emoji", "katex", "katexOptions", "mermaid", "mermaidOptions", "lineHighlight", "line", "lineOffset", "lineNumbers", "start", "commandLine", "filterOutput", "host", "prompt", "output", "user"], outputs: ["error", "load", "ready"] }, { kind: "directive", type: NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: NodeIconComponent, selector: "he-node-icon", inputs: ["type", "size"] }, { kind: "component", type: SitesMapsComponent, selector: "he-sites-maps", inputs: ["loadPolygons", "sites", "zoom", "showNotice"] }, { kind: "component", type: HESvgIconComponent, selector: "he-svg-icon", inputs: ["name", "size", "animation"] }, { kind: "component", type: ClipboardComponent, selector: "he-clipboard", inputs: ["icon", "value", "disabled", "hideText", "hideIcon", "size", "clipboardClass", "tooltipPlacement"] }, { kind: "component", type: GuideOverlayComponent, selector: "he-guide-overlay", inputs: ["pageId", "width", "height", "positions"], outputs: ["widthChange", "heightChange"] }, { kind: "pipe", type: EllipsisPipe, name: "ellipsis" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13658
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: FilesFormComponent, isStandalone: true, selector: "he-files-form", inputs: { isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, showNodeLink: { classPropertyName: "showNodeLink", publicName: "showNodeLink", isSignal: true, isRequired: false, transformFunction: null }, errorGuidePrefix: { classPropertyName: "errorGuidePrefix", publicName: "errorGuidePrefix", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpen: "isOpenChange", nodeErorrResolved: "nodeErorrResolved" }, exportAs: ["filesForm"], ngImport: i0, template: "<div class=\"is-flex is-flex-direction-column is-align-items-flex-start is-align-self-stretch | files-form-container\">\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-align-items-center is-align-self-stretch is-gap-16 px-4 py-2 has-text-secondary | files-form-header\"\n (click)=\"isOpen.set(!isOpen())\"\n pointer>\n <div class=\"is-flex is-gap-8 is-align-items-center\">\n @if (nodeProperty()) {\n <he-node-icon class=\"is-flex\" [type]=\"schemaType()\" [size]=\"24\" />\n <span class=\"has-text-weight-bold has-text-secondary is-size-5\">{{ schemaType() }}</span>\n @if (nodeProperty().hasError || hasError()) {\n <he-svg-icon name=\"xmark-circle\" class=\"has-text-danger is-flex is-align-items-center\" />\n <span class=\"has-text-danger has-text-weight-bold is-italic\">Error</span>\n } @else if (nodeProperty().hasWarning || hasWarning()) {\n <he-svg-icon name=\"exclamation-triangle\" class=\"has-text-warning is-flex is-align-items-center\" />\n <span class=\"has-text-warning has-text-weight-bold is-italic\">Warning</span>\n }\n }\n </div>\n @if ((showNodeLink() && nodeUrl()) || canOpen()) {\n <div class=\"is-flex is-flex-direction-row is-align-items-center is-gap-16\">\n @if (showNodeLink() && nodeUrl()) {\n <ng-container *ngTemplateOutlet=\"nodeLink; context: { url: nodeUrl(), nodeType: schemaType() }\" />\n }\n @if (canOpen()) {\n <he-svg-icon [name]=\"isOpen() ? 'minus' : 'plus'\" />\n }\n </div>\n }\n </div>\n\n <div class=\"is-flex is-flex-direction-column is-align-items-flex-start is-align-self-stretch\">\n @if (isOpen()) {\n @if (nodeProperty()?.error) {\n <ng-container\n *ngTemplateOutlet=\"\n propertyError;\n context: { property: nodeProperty(), classes: 'is-my-1 is-py-1 is-px-3' }\n \" />\n }\n }\n\n @if (unmatchedErrors().length) {\n @for (property of unmatchedErrors(); track property.id) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property, classes: 'is-my-1 is-py-1 is-px-3' }\" />\n }\n }\n\n <div class=\"is-flex is-flex-direction-row is-flex-wrap-wrap is-align-self-stretch\">\n @for (property of properties(); track trackByProperty($index, property)) {\n <ng-container *ngTemplateOutlet=\"showProperty; context: { $implicit: property }\" />\n }\n </div>\n\n @if (isOpen()) {\n <ng-container *ngTemplateOutlet=\"propertyMap; context: { $implicit: nodeProperty() }\" />\n }\n </div>\n\n <ng-content />\n</div>\n\n<ng-template #propertyKeyTooltip let-property=\"property\">\n <markdown [data]=\"property.schema.description\" />\n</ng-template>\n\n<ng-template #propertyKey let-property=\"property\">\n @if (property.schema?.description) {\n <span\n class=\"trigger-popover | property-key\"\n [ngbTooltip]=\"propertyKeyTooltip\"\n [tooltipContext]=\"{ property }\"\n triggers=\"click\"\n autoClose=\"outside\"\n tooltipClass=\"property-tooltip\"\n placement=\"bottom-left auto\"\n container=\"body\"\n (click)=\"$event.stopPropagation()\">\n <span>{{ property.key }}</span>\n </span>\n } @else {\n <span>{{ property.key }}</span>\n }\n</ng-template>\n\n<ng-template #propertyContent let-property=\"property\">\n <div class=\"is-flex is-align-items-center is-flex-wrap-wrap is-gap-4\">\n <div class=\"is-flex has-text-secondary\">\n <ng-container *ngTemplateOutlet=\"propertyKey; context: { property }\" />\n <span>:</span>\n </div>\n\n @if (property.isCollapsible && property.showMaxLength) {\n <span class=\"is-flex is-size-7 | property-value\">\n {{ property.value | ellipsis: property.showMaxLength }}\n </span>\n\n <a class=\"is-flex is-size-7\" (click)=\"property.showMaxLength = 0\">Show more</a>\n } @else {\n <span class=\"is-flex is-size-7 | property-value\">\n {{ property.value }}\n </span>\n }\n\n @if (property.schema?.internal && property.key !== 'originalId') {\n <div class=\"property-internal\" ngbTooltip=\"This value is auto-generated.\">\n <he-svg-icon name=\"autogenerate-circle\" />\n </div>\n }\n\n <div class=\"copy-button\">\n <he-clipboard [value]=\"property.value\" [hideText]=\"true\" />\n </div>\n </div>\n\n <div class=\"is-flex is-gap-8\">\n @if (property.externalUrl?.url) {\n <a\n [href]=\"property.externalUrl.url + (property.externalUrl.urlParamValue ? property.value : '')\"\n target=\"_blank\"\n [title]=\"property.externalUrl.title\"\n class=\"ml-2\"\n [ngClass]=\"{ 'is-info': property.key === 'type' }\"\n [attr.disabled]=\"property.externalUrl.urlParamValue && !property.value ? true : null\">\n <he-svg-icon [name]=\"property.externalUrl.icon || 'external-link'\" />\n </a>\n }\n </div>\n</ng-template>\n\n<ng-template #showProperty let-property>\n @if ((isOpen() || property.closedVisible) && !property.isHidden) {\n @if (property.properties.length) {\n <div class=\"is-flex is-flex-direction-column is-flex-wrap-wrap w-100 | properties-container\">\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-4 has-text-secondary w-100 | properties-container--title\"\n (click)=\"property.isOpen = !property.isOpen\"\n pointer\n [class.is-open]=\"property.isOpen\"\n [class.is-group-error-danger]=\"property.hasError\"\n [class.is-group-error-warning]=\"!property.hasError && property.hasWarning\">\n <div class=\"is-flex is-gap-8 has-text-weight-bold\">\n <!-- @if (property.schemaType === SchemaType.Term) {\n <he-node-icon [type]=\"property.schemaType\" />\n } -->\n <ng-container *ngTemplateOutlet=\"propertyKey; context: { property }\" />\n </div>\n <he-svg-icon [name]=\"property.isOpen ? 'minus' : 'plus'\" />\n </div>\n @if (property.isOpen) {\n @if (property.error) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property, classes: 'is-my-1 is-px-3' }\" />\n }\n @if (property.isArray) {\n <div class=\"py-2 px-3 w-100\">\n @if (property.hasError) {\n <div class=\"is-flex is-align-items-center is-size-7 is-italic is-mb-2 has-text-warning\">\n <he-svg-icon name=\"exclamation-triangle\" />\n @if (showAllErrors()) {\n <a class=\"is-pl-2\" (click)=\"showAllErrors.set(false)\">Only show items in error.</a>\n } @else {\n <span class=\"is-pl-2\">Only showing items in error.</span>\n <a class=\"is-pl-1\" (click)=\"showAllErrors.set(true)\">Show all items</a>\n }\n </div>\n }\n\n @for (prop2 of property.properties; track trackByProperty($index, prop2)) {\n @if (prop2.key && (showAllErrors() || !property.hasError || prop2.hasError)) {\n <div class=\"pt-2 my-4 | property-array-container\" [id]=\"prop2.fullKey + '_' + prop2.id\">\n <div class=\"ml-2 is-mb-2 | property-array-number\">\n <span class=\"has-text-info is-px-1 | number-tag\">{{ prop2.key }}</span>\n </div>\n @if (prop2.error) {\n <ng-container\n *ngTemplateOutlet=\"propertyError; context: { property: prop2, classes: 'is-py-1 is-px-3' }\" />\n }\n <div class=\"p-3\">\n <div class=\"is-flex is-flex-direction-row is-flex-wrap-wrap is-align-self-stretch\">\n @for (prop3 of prop2.properties; track trackByProperty($index, prop3)) {\n <ng-container *ngTemplateOutlet=\"showProperty; context: { $implicit: prop3 }\" />\n }\n </div>\n </div>\n </div>\n }\n }\n </div>\n } @else {\n <div class=\"is-flex is-flex-direction-row is-flex-wrap-wrap is-align-self-stretch\">\n @for (prop2 of property.properties; track trackByProperty($index, prop2)) {\n <ng-container *ngTemplateOutlet=\"showProperty; context: { $implicit: prop2 }\" />\n }\n </div>\n }\n }\n </div>\n } @else {\n <div\n class=\"is-flex is-flex-direction-column is-gap-4 | property-container\"\n [class.is-error-danger]=\"property.hasError\"\n [class.is-error-warning]=\"!property.hasError && property.hasWarning\">\n <div\n class=\"is-flex is-flex-direction-row is-align-items-center is-justify-content-space-between is-gap-4 | field-container\">\n @if (property.key) {\n <ng-container *ngTemplateOutlet=\"propertyContent; context: { property }\" />\n }\n </div>\n @if (property.hasError || property.hasWarning) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property }\" />\n }\n </div>\n }\n }\n</ng-template>\n\n<ng-template #propertyError let-property=\"property\" let-classes=\"classes\">\n @if (property.error?.message) {\n <div\n class=\"is-flex is-flex-direction-row is-gap-8 is-size-6 is-m-0 w-100 has-text-grey {{ classes }} | property-error\"\n [class.is-error-danger]=\"property.hasError\"\n [class.is-error-warning]=\"!property.hasError && property.hasWarning\">\n @if (property.hasError) {\n <he-svg-icon name=\"xmark-circle\" size=\"24\" class=\"has-text-danger is-flex-grow-0\" />\n } @else {\n <he-svg-icon name=\"exclamation-triangle\" size=\"24\" class=\"has-text-warning is-flex-grow-0\" />\n }\n\n <div class=\"is-flex is-flex-grow-1\">\n <span [innerHTML]=\"property.error.message\"></span>\n </div>\n\n @if (errorGuidePrefix() && property.errorGuidePageId) {\n <he-guide-overlay class=\"is-flex-grow-0\" [pageId]=\"errorGuidePrefix() + property.errorGuidePageId\" />\n }\n\n @if (property.error.index >= 0) {\n @if (property.hasWarning) {\n <a (click)=\"resolveError(property)\">\n <he-svg-icon name=\"checkmark\" />\n <span class=\"is-pl-2\">Resolved</span>\n </a>\n }\n }\n </div>\n }\n</ng-template>\n\n<ng-template #propertyMap let-property>\n @if (showMap()) {\n <div class=\"is-flex is-flex-direction-column is-flex-wrap-wrap w-100 | properties-container\">\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-4 w-100 | properties-container--title\"\n (click)=\"mapVisible.set(!mapVisible())\"\n pointer\n [class.is-open]=\"mapVisible()\">\n <span class=\"is-size-6\">View on Map</span>\n <he-svg-icon [name]=\"mapVisible() ? 'minus' : 'plus'\" />\n </div>\n @if (mapVisible()) {\n <he-sites-maps [sites]=\"[node()]\" [showNotice]=\"false\" />\n }\n </div>\n }\n</ng-template>\n\n<ng-template #nodeLink let-url=\"url\" let-nodeType=\"nodeType\">\n <a class=\"external-link\" [href]=\"url\" target=\"_blank\" (click)=\"$event.stopPropagation()\">\n <span class=\"is-hidden-mobile\">View</span>\n <span class=\"is-hidden-mobile is-pl-1\">{{ nodeType }}</span>\n <he-svg-icon name=\"external-link\" class=\"ml-2\" />\n </a>\n</ng-template>\n", styles: [".notification{color:#0a0a0a!important}.notification.is-success{background-color:#d5f3d8}.notification.is-success *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-success>fa-icon,.notification.is-success *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-success>he-svg-icon{color:#2b8434}.notification.is-info{background-color:#d3ebed}.notification.is-info *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-info>fa-icon,.notification.is-info *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-info>he-svg-icon{color:#249da5}.notification.is-warning{background-color:#ffdec0}.notification.is-warning *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-warning>fa-icon,.notification.is-warning *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-warning>he-svg-icon{color:#ff881b}.notification.is-danger{background-color:#ffcdd0}.notification.is-danger *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-danger>fa-icon,.notification.is-danger *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-danger>he-svg-icon{color:#ff3844}he-sites-maps{height:200px}.external-link{color:#4c7194}.files-form-container{box-shadow:2px 2px 4px #00000029;background-color:#fff}.files-form-header{padding:10px 12px;background-color:#dbe3ea;border-top-left-radius:3px;border-top-right-radius:3px}.properties-container--title,.property-container{padding:6px 12px}.property-container{flex:none;flex-grow:1;min-width:50%;max-width:100%;border:1px solid #f5f5f5}.property-container.is-error-danger{border-color:#ff3844}.property-container.is-error-warning{border-color:#ff881b}.properties-container--title{border-top:1px solid #dbe3ea;border-bottom:1px solid #dbe3ea;background:#f5f7f9}.properties-container .properties-container{border-radius:6px;border:1px solid #dbe3ea;margin:4px 0}.properties-container .properties-container--title{border-top:none}.property-internal{color:#249da5}.property-key,.property-value{word-break:break-word}.property-array-container{border-radius:6px;border:1px solid #dbdbdb}.number-tag{border:1px solid #249da5;border-radius:50%}.copy-button{visibility:hidden}.field-container:hover .copy-button{visibility:visible}.is-group-error-danger{background-color:#ffcdd0}.is-group-error-warning{background-color:#ffdec0}.property-error.is-error-danger{background-color:#ffeced}.field-container+.property-error.is-error-danger{background-color:transparent;color:#ff3844!important}.property-error.is-error-warning{background-color:#fff5ec}.field-container+.property-error.is-error-warning{background-color:transparent;color:#ff881b!important}::ng-deep .property-tooltip{background-color:#fff;color:#0a0a0a;border:1px solid #dbdbdb;z-index:11;max-width:50vw;max-height:50vh;overflow:auto}::ng-deep .property-tooltip pre{white-space:pre-wrap}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MarkdownComponent, selector: "markdown, [markdown]", inputs: ["data", "src", "disableSanitizer", "inline", "clipboard", "clipboardButtonComponent", "clipboardButtonTemplate", "emoji", "katex", "katexOptions", "mermaid", "mermaidOptions", "lineHighlight", "line", "lineOffset", "lineNumbers", "start", "commandLine", "filterOutput", "host", "prompt", "output", "user"], outputs: ["error", "load", "ready"] }, { kind: "directive", type: NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: NodeIconComponent, selector: "he-node-icon", inputs: ["type", "size"] }, { kind: "component", type: SitesMapsComponent, selector: "he-sites-maps", inputs: ["loadPolygons", "sites", "zoom", "showNotice"] }, { kind: "component", type: HESvgIconComponent, selector: "he-svg-icon", inputs: ["name", "size", "animation"] }, { kind: "component", type: ClipboardComponent, selector: "he-clipboard", inputs: ["icon", "value", "disabled", "hideText", "hideIcon", "size", "clipboardClass", "tooltipPlacement"] }, { kind: "component", type: GuideOverlayComponent, selector: "he-guide-overlay", inputs: ["pageId", "width", "height", "positions"], outputs: ["widthChange", "heightChange"] }, { kind: "pipe", type: EllipsisPipe, name: "ellipsis" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13657
13659
|
}
|
|
13658
13660
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FilesFormComponent, decorators: [{
|
|
13659
13661
|
type: Component$1,
|
|
@@ -13669,7 +13671,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
13669
13671
|
ClipboardComponent,
|
|
13670
13672
|
GuideOverlayComponent,
|
|
13671
13673
|
EllipsisPipe
|
|
13672
|
-
], template: "<div class=\"is-flex is-flex-direction-column is-align-items-flex-start is-align-self-stretch | files-form-container\">\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-align-items-center is-align-self-stretch is-gap-16 px-4 py-2 has-text-secondary | files-form-header\"\n (click)=\"isOpen.set(!isOpen())\"\n pointer>\n <div class=\"is-flex is-gap-8 is-align-items-center\">\n @if (nodeProperty()) {\n <he-node-icon class=\"is-flex\" [type]=\"schemaType()\" [size]=\"24\" />\n <span class=\"has-text-weight-bold has-text-secondary is-size-5\">{{ schemaType() }}</span>\n @if (nodeProperty().hasError || hasError()) {\n <he-svg-icon name=\"xmark-circle\" class=\"has-text-danger is-flex is-align-items-center\" />\n <span class=\"has-text-danger has-text-weight-bold is-italic\">Error</span>\n } @else if (nodeProperty().hasWarning || hasWarning()) {\n <he-svg-icon name=\"exclamation-triangle\" class=\"has-text-warning is-flex is-align-items-center\" />\n <span class=\"has-text-warning has-text-weight-bold is-italic\">Warning</span>\n }\n }\n </div>\n @if ((showNodeLink() && nodeUrl()) || canOpen()) {\n <div class=\"is-flex is-flex-direction-row is-align-items-center is-gap-16\">\n @if (showNodeLink() && nodeUrl()) {\n <ng-container *ngTemplateOutlet=\"nodeLink; context: { url: nodeUrl(), nodeType: schemaType() }\" />\n }\n @if (canOpen()) {\n <he-svg-icon [name]=\"isOpen() ? 'minus' : 'plus'\" />\n }\n </div>\n }\n </div>\n\n <div class=\"is-flex is-flex-direction-column is-align-items-flex-start is-align-self-stretch\">\n @if (isOpen()) {\n @if (nodeProperty()?.error) {\n <ng-container\n *ngTemplateOutlet=\"\n propertyError;\n context: { property: nodeProperty(), classes: 'is-my-1 is-py-1 is-px-3' }\n \" />\n }\n }\n\n @if (unmatchedErrors().length) {\n @for (property of unmatchedErrors(); track property.id) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property, classes: 'is-my-1 is-py-1 is-px-3' }\" />\n }\n }\n\n <div class=\"is-flex is-flex-direction-row is-flex-wrap-wrap is-align-self-stretch\">\n @for (property of properties(); track trackByProperty($index, property)) {\n <ng-container *ngTemplateOutlet=\"showProperty; context: { $implicit: property }\" />\n }\n </div>\n\n @if (isOpen()) {\n <ng-container *ngTemplateOutlet=\"propertyMap; context: { $implicit: nodeProperty() }\" />\n }\n </div>\n\n <ng-content />\n</div>\n\n<ng-template #propertyKeyTooltip let-property=\"property\">\n <markdown [data]=\"property.schema.description\" />\n</ng-template>\n\n<ng-template #propertyKey let-property=\"property\">\n @if (property.schema?.description) {\n <span\n class=\"trigger-popover | property-key\"\n [ngbTooltip]=\"propertyKeyTooltip\"\n [tooltipContext]=\"{ property }\"\n triggers=\"click\"\n autoClose=\"outside\"\n tooltipClass=\"property-tooltip\"\n placement=\"bottom-left auto\"\n container=\"body\"\n (click)=\"$event.stopPropagation()\">\n <span>{{ property.key }}</span>\n </span>\n } @else {\n <span>{{ property.key }}</span>\n }\n</ng-template>\n\n<ng-template #propertyContent let-property=\"property\">\n <div class=\"is-flex is-align-items-center is-flex-wrap-wrap is-gap-4\">\n <div class=\"is-flex has-text-secondary\">\n <ng-container *ngTemplateOutlet=\"propertyKey; context: { property }\" />\n <span>:</span>\n </div>\n\n @if (property.isCollapsible && property.showMaxLength) {\n <span class=\"is-flex is-size-7 | property-value\">\n {{ property.value | ellipsis: property.showMaxLength }}\n </span>\n\n <a class=\"is-flex is-size-7\" (click)=\"property.showMaxLength = 0\">Show more</a>\n } @else {\n <span class=\"is-flex is-size-7 | property-value\">\n {{ property.value }}\n </span>\n }\n\n @if (property.schema?.internal && property.key !== 'originalId') {\n <div class=\"property-internal\" ngbTooltip=\"This value is auto-generated.\">\n <he-svg-icon name=\"autogenerate-circle\" />\n </div>\n }\n\n <div class=\"copy-button\">\n <he-clipboard [value]=\"property.value\" [hideText]=\"true\" />\n </div>\n </div>\n\n <div class=\"is-flex is-gap-8\">\n @if (property.externalUrl?.url) {\n <a\n [href]=\"property.externalUrl.url + (property.externalUrl.urlParamValue ? property.value : '')\"\n target=\"_blank\"\n [title]=\"property.externalUrl.title\"\n class=\"ml-2\"\n [ngClass]=\"{ 'is-info': property.key === 'type' }\"\n [attr.disabled]=\"property.externalUrl.urlParamValue && !property.value ? true : null\">\n <he-svg-icon [name]=\"property.externalUrl.icon || 'external-link'\" />\n </a>\n }\n </div>\n</ng-template>\n\n<ng-template #showProperty let-property>\n @if ((isOpen() || property.closedVisible) && !property.isHidden) {\n @if (property.properties.length) {\n <div class=\"is-flex is-flex-direction-column is-flex-wrap-wrap w-100 | properties-container\">\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-4 has-text-secondary w-100 | properties-container--title\"\n (click)=\"property.isOpen = !property.isOpen\"\n pointer\n [class.is-open]=\"property.isOpen\"\n [class.is-group-error-danger]=\"property.hasError\"\n [class.is-group-error-warning]=\"!property.hasError && property.hasWarning\">\n <div class=\"is-flex is-gap-8 has-text-weight-bold\">\n <!-- @if (property.schemaType === SchemaType.Term) {\n <he-node-icon [type]=\"property.schemaType\" />\n } -->\n <ng-container *ngTemplateOutlet=\"propertyKey; context: { property }\" />\n </div>\n <he-svg-icon [name]=\"property.isOpen ? 'minus' : 'plus'\" />\n </div>\n @if (property.isOpen) {\n @if (property.error) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property, classes: 'is-my-1 is-px-3' }\" />\n }\n @if (property.isArray) {\n <div class=\"py-2 px-3 w-100\">\n @if (property.hasError) {\n <div class=\"is-flex is-align-items-center is-size-7 is-italic is-mb-2 has-text-warning\">\n <he-svg-icon name=\"exclamation-triangle\" />\n @if (showAllErrors()) {\n <a class=\"is-pl-2\" (click)=\"showAllErrors.set(false)\">Only show items in error.</a>\n } @else {\n <span class=\"is-pl-2\">Only showing items in error.</span>\n <a class=\"is-pl-1\" (click)=\"showAllErrors.set(true)\">Show all items</a>\n }\n </div>\n }\n\n @for (prop2 of property.properties; track trackByProperty($index, prop2)) {\n @if (prop2.key && (showAllErrors() || !property.hasError || prop2.hasError)) {\n <div class=\"pt-2 my-4 | property-array-container\" [id]=\"prop2.fullKey + '_' + prop2.id\">\n <div class=\"ml-2 is-mb-2 | property-array-number\">\n <span class=\"has-text-info is-px-1 | number-tag\">{{ prop2.key }}</span>\n </div>\n @if (prop2.error) {\n <ng-container\n *ngTemplateOutlet=\"propertyError; context: { property: prop2, classes: 'is-py-1 is-px-3' }\" />\n }\n <div class=\"p-3\">\n <div class=\"is-flex is-flex-direction-row is-flex-wrap-wrap is-align-self-stretch\">\n @for (prop3 of prop2.properties; track trackByProperty($index, prop3)) {\n <ng-container *ngTemplateOutlet=\"showProperty; context: { $implicit: prop3 }\" />\n }\n </div>\n </div>\n </div>\n }\n }\n </div>\n } @else {\n <div class=\"is-flex is-flex-direction-row is-flex-wrap-wrap is-align-self-stretch\">\n @for (prop2 of property.properties; track trackByProperty($index, prop2)) {\n <ng-container *ngTemplateOutlet=\"showProperty; context: { $implicit: prop2 }\" />\n }\n </div>\n }\n }\n </div>\n } @else {\n <div\n class=\"is-flex is-flex-direction-column is-gap-4 | property-container\"\n [class.is-error-danger]=\"property.hasError\"\n [class.is-error-warning]=\"!property.hasError && property.hasWarning\">\n <div\n class=\"is-flex is-flex-direction-row is-align-items-center is-justify-content-space-between is-gap-4 | field-container\">\n @if (property.key) {\n <ng-container *ngTemplateOutlet=\"propertyContent; context: { property }\" />\n }\n </div>\n @if (property.hasError || property.hasWarning) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property }\" />\n }\n </div>\n }\n }\n</ng-template>\n\n<ng-template #propertyError let-property=\"property\" let-classes=\"classes\">\n @if (property.error?.message) {\n <div\n class=\"is-flex is-flex-direction-row is-gap-8 is-size-6 is-m-0 w-100 has-text-grey {{ classes }} | property-error\"\n [class.is-error-danger]=\"property.hasError\"\n [class.is-error-warning]=\"!property.hasError && property.hasWarning\">\n @if (property.hasError) {\n <he-svg-icon name=\"xmark-circle\" size=\"24\" class=\"has-text-danger is-flex-grow-0\" />\n } @else {\n <he-svg-icon name=\"exclamation-triangle\" size=\"24\" class=\"has-text-warning is-flex-grow-0\" />\n }\n\n <div class=\"is-flex is-flex-grow-1\">\n <span [innerHTML]=\"property.error.message\"></span>\n </div>\n\n @if (errorGuidePrefix() && property.errorGuidePageId) {\n <he-guide-overlay class=\"is-flex-grow-0\" [pageId]=\"errorGuidePrefix() + property.errorGuidePageId\" />\n }\n\n @if (property.error.index >= 0) {\n @if (property.hasWarning) {\n <a (click)=\"resolveError(property)\">\n <he-svg-icon name=\"checkmark\" />\n <span class=\"is-pl-2\">Resolved</span>\n </a>\n }\n }\n </div>\n }\n</ng-template>\n\n<ng-template #propertyMap let-property>\n @if (showMap()) {\n <div class=\"is-flex is-flex-direction-column is-flex-wrap-wrap w-100 | properties-container\">\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-4 w-100 | properties-container--title\"\n (click)=\"mapVisible.set(!mapVisible())\"\n pointer\n [class.is-open]=\"mapVisible()\">\n <span class=\"is-size-6\">View on Map</span>\n <he-svg-icon [name]=\"mapVisible() ? 'minus' : 'plus'\" />\n </div>\n @if (mapVisible()) {\n <he-sites-maps [sites]=\"[node()]\" [showNotice]=\"false\" />\n }\n </div>\n }\n</ng-template>\n\n<ng-template #nodeLink let-url=\"url\" let-nodeType=\"nodeType\">\n <a class=\"external-link\" [href]=\"url\" target=\"_blank\" (click)=\"$event.stopPropagation()\">\n <span class=\"is-hidden-mobile\">View</span>\n <span class=\"is-hidden-mobile is-pl-1\">{{ nodeType }}</span>\n <he-svg-icon name=\"external-link\" class=\"ml-2\" />\n </a>\n</ng-template>\n", styles: [".notification{color:#0a0a0a!important}.notification.is-success{background-color:#d5f3d8}.notification.is-success *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-success>fa-icon,.notification.is-success *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-success>he-svg-icon{color:#48c78e}.notification.is-info{background-color:#d3ebed}.notification.is-info *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-info>fa-icon,.notification.is-info *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-info>he-svg-icon{color:#249da5}.notification.is-warning{background-color:#ffdec0}.notification.is-warning *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-warning>fa-icon,.notification.is-warning *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-warning>he-svg-icon{color:#ff881b}.notification.is-danger{background-color:#ffcdd0}.notification.is-danger *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-danger>fa-icon,.notification.is-danger *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-danger>he-svg-icon{color:#ff3844}he-sites-maps{height:200px}.external-link{color:#4c7194}.files-form-container{box-shadow:2px 2px 4px #00000029;background-color:#fff}.files-form-header{padding:10px 12px;background-color:#dbe3ea;border-top-left-radius:3px;border-top-right-radius:3px}.properties-container--title,.property-container{padding:6px 12px}.property-container{flex:none;flex-grow:1;min-width:50%;max-width:100%;border:1px solid #f5f5f5}.property-container.is-error-danger{border-color:#ff3844}.property-container.is-error-warning{border-color:#ff881b}.properties-container--title{border-top:1px solid #dbe3ea;border-bottom:1px solid #dbe3ea;background:#f5f7f9}.properties-container .properties-container{border-radius:6px;border:1px solid #dbe3ea;margin:4px 0}.properties-container .properties-container--title{border-top:none}.property-internal{color:#249da5}.property-key,.property-value{word-break:break-word}.property-array-container{border-radius:6px;border:1px solid #dbdbdb}.number-tag{border:1px solid #249da5;border-radius:50%}.copy-button{visibility:hidden}.field-container:hover .copy-button{visibility:visible}.is-group-error-danger{background-color:#ffcdd0}.is-group-error-warning{background-color:#ffdec0}.property-error.is-error-danger{background-color:#ffeced}.field-container+.property-error.is-error-danger{background-color:transparent;color:#ff3844!important}.property-error.is-error-warning{background-color:#fff5ec}.field-container+.property-error.is-error-warning{background-color:transparent;color:#ff881b!important}::ng-deep .property-tooltip{background-color:#fff;color:#0a0a0a;border:1px solid #dbdbdb;z-index:11;max-width:50vw;max-height:50vh;overflow:auto}::ng-deep .property-tooltip pre{white-space:pre-wrap}\n"] }]
|
|
13674
|
+
], template: "<div class=\"is-flex is-flex-direction-column is-align-items-flex-start is-align-self-stretch | files-form-container\">\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-align-items-center is-align-self-stretch is-gap-16 px-4 py-2 has-text-secondary | files-form-header\"\n (click)=\"isOpen.set(!isOpen())\"\n pointer>\n <div class=\"is-flex is-gap-8 is-align-items-center\">\n @if (nodeProperty()) {\n <he-node-icon class=\"is-flex\" [type]=\"schemaType()\" [size]=\"24\" />\n <span class=\"has-text-weight-bold has-text-secondary is-size-5\">{{ schemaType() }}</span>\n @if (nodeProperty().hasError || hasError()) {\n <he-svg-icon name=\"xmark-circle\" class=\"has-text-danger is-flex is-align-items-center\" />\n <span class=\"has-text-danger has-text-weight-bold is-italic\">Error</span>\n } @else if (nodeProperty().hasWarning || hasWarning()) {\n <he-svg-icon name=\"exclamation-triangle\" class=\"has-text-warning is-flex is-align-items-center\" />\n <span class=\"has-text-warning has-text-weight-bold is-italic\">Warning</span>\n }\n }\n </div>\n @if ((showNodeLink() && nodeUrl()) || canOpen()) {\n <div class=\"is-flex is-flex-direction-row is-align-items-center is-gap-16\">\n @if (showNodeLink() && nodeUrl()) {\n <ng-container *ngTemplateOutlet=\"nodeLink; context: { url: nodeUrl(), nodeType: schemaType() }\" />\n }\n @if (canOpen()) {\n <he-svg-icon [name]=\"isOpen() ? 'minus' : 'plus'\" />\n }\n </div>\n }\n </div>\n\n <div class=\"is-flex is-flex-direction-column is-align-items-flex-start is-align-self-stretch\">\n @if (isOpen()) {\n @if (nodeProperty()?.error) {\n <ng-container\n *ngTemplateOutlet=\"\n propertyError;\n context: { property: nodeProperty(), classes: 'is-my-1 is-py-1 is-px-3' }\n \" />\n }\n }\n\n @if (unmatchedErrors().length) {\n @for (property of unmatchedErrors(); track property.id) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property, classes: 'is-my-1 is-py-1 is-px-3' }\" />\n }\n }\n\n <div class=\"is-flex is-flex-direction-row is-flex-wrap-wrap is-align-self-stretch\">\n @for (property of properties(); track trackByProperty($index, property)) {\n <ng-container *ngTemplateOutlet=\"showProperty; context: { $implicit: property }\" />\n }\n </div>\n\n @if (isOpen()) {\n <ng-container *ngTemplateOutlet=\"propertyMap; context: { $implicit: nodeProperty() }\" />\n }\n </div>\n\n <ng-content />\n</div>\n\n<ng-template #propertyKeyTooltip let-property=\"property\">\n <markdown [data]=\"property.schema.description\" />\n</ng-template>\n\n<ng-template #propertyKey let-property=\"property\">\n @if (property.schema?.description) {\n <span\n class=\"trigger-popover | property-key\"\n [ngbTooltip]=\"propertyKeyTooltip\"\n [tooltipContext]=\"{ property }\"\n triggers=\"click\"\n autoClose=\"outside\"\n tooltipClass=\"property-tooltip\"\n placement=\"bottom-left auto\"\n container=\"body\"\n (click)=\"$event.stopPropagation()\">\n <span>{{ property.key }}</span>\n </span>\n } @else {\n <span>{{ property.key }}</span>\n }\n</ng-template>\n\n<ng-template #propertyContent let-property=\"property\">\n <div class=\"is-flex is-align-items-center is-flex-wrap-wrap is-gap-4\">\n <div class=\"is-flex has-text-secondary\">\n <ng-container *ngTemplateOutlet=\"propertyKey; context: { property }\" />\n <span>:</span>\n </div>\n\n @if (property.isCollapsible && property.showMaxLength) {\n <span class=\"is-flex is-size-7 | property-value\">\n {{ property.value | ellipsis: property.showMaxLength }}\n </span>\n\n <a class=\"is-flex is-size-7\" (click)=\"property.showMaxLength = 0\">Show more</a>\n } @else {\n <span class=\"is-flex is-size-7 | property-value\">\n {{ property.value }}\n </span>\n }\n\n @if (property.schema?.internal && property.key !== 'originalId') {\n <div class=\"property-internal\" ngbTooltip=\"This value is auto-generated.\">\n <he-svg-icon name=\"autogenerate-circle\" />\n </div>\n }\n\n <div class=\"copy-button\">\n <he-clipboard [value]=\"property.value\" [hideText]=\"true\" />\n </div>\n </div>\n\n <div class=\"is-flex is-gap-8\">\n @if (property.externalUrl?.url) {\n <a\n [href]=\"property.externalUrl.url + (property.externalUrl.urlParamValue ? property.value : '')\"\n target=\"_blank\"\n [title]=\"property.externalUrl.title\"\n class=\"ml-2\"\n [ngClass]=\"{ 'is-info': property.key === 'type' }\"\n [attr.disabled]=\"property.externalUrl.urlParamValue && !property.value ? true : null\">\n <he-svg-icon [name]=\"property.externalUrl.icon || 'external-link'\" />\n </a>\n }\n </div>\n</ng-template>\n\n<ng-template #showProperty let-property>\n @if ((isOpen() || property.closedVisible) && !property.isHidden) {\n @if (property.properties.length) {\n <div class=\"is-flex is-flex-direction-column is-flex-wrap-wrap w-100 | properties-container\">\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-4 has-text-secondary w-100 | properties-container--title\"\n (click)=\"property.isOpen = !property.isOpen\"\n pointer\n [class.is-open]=\"property.isOpen\"\n [class.is-group-error-danger]=\"property.hasError\"\n [class.is-group-error-warning]=\"!property.hasError && property.hasWarning\">\n <div class=\"is-flex is-gap-8 has-text-weight-bold\">\n <!-- @if (property.schemaType === SchemaType.Term) {\n <he-node-icon [type]=\"property.schemaType\" />\n } -->\n <ng-container *ngTemplateOutlet=\"propertyKey; context: { property }\" />\n </div>\n <he-svg-icon [name]=\"property.isOpen ? 'minus' : 'plus'\" />\n </div>\n @if (property.isOpen) {\n @if (property.error) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property, classes: 'is-my-1 is-px-3' }\" />\n }\n @if (property.isArray) {\n <div class=\"py-2 px-3 w-100\">\n @if (property.hasError) {\n <div class=\"is-flex is-align-items-center is-size-7 is-italic is-mb-2 has-text-warning\">\n <he-svg-icon name=\"exclamation-triangle\" />\n @if (showAllErrors()) {\n <a class=\"is-pl-2\" (click)=\"showAllErrors.set(false)\">Only show items in error.</a>\n } @else {\n <span class=\"is-pl-2\">Only showing items in error.</span>\n <a class=\"is-pl-1\" (click)=\"showAllErrors.set(true)\">Show all items</a>\n }\n </div>\n }\n\n @for (prop2 of property.properties; track trackByProperty($index, prop2)) {\n @if (prop2.key && (showAllErrors() || !property.hasError || prop2.hasError)) {\n <div class=\"pt-2 my-4 | property-array-container\" [id]=\"prop2.fullKey + '_' + prop2.id\">\n <div class=\"ml-2 is-mb-2 | property-array-number\">\n <span class=\"has-text-info is-px-1 | number-tag\">{{ prop2.key }}</span>\n </div>\n @if (prop2.error) {\n <ng-container\n *ngTemplateOutlet=\"propertyError; context: { property: prop2, classes: 'is-py-1 is-px-3' }\" />\n }\n <div class=\"p-3\">\n <div class=\"is-flex is-flex-direction-row is-flex-wrap-wrap is-align-self-stretch\">\n @for (prop3 of prop2.properties; track trackByProperty($index, prop3)) {\n <ng-container *ngTemplateOutlet=\"showProperty; context: { $implicit: prop3 }\" />\n }\n </div>\n </div>\n </div>\n }\n }\n </div>\n } @else {\n <div class=\"is-flex is-flex-direction-row is-flex-wrap-wrap is-align-self-stretch\">\n @for (prop2 of property.properties; track trackByProperty($index, prop2)) {\n <ng-container *ngTemplateOutlet=\"showProperty; context: { $implicit: prop2 }\" />\n }\n </div>\n }\n }\n </div>\n } @else {\n <div\n class=\"is-flex is-flex-direction-column is-gap-4 | property-container\"\n [class.is-error-danger]=\"property.hasError\"\n [class.is-error-warning]=\"!property.hasError && property.hasWarning\">\n <div\n class=\"is-flex is-flex-direction-row is-align-items-center is-justify-content-space-between is-gap-4 | field-container\">\n @if (property.key) {\n <ng-container *ngTemplateOutlet=\"propertyContent; context: { property }\" />\n }\n </div>\n @if (property.hasError || property.hasWarning) {\n <ng-container *ngTemplateOutlet=\"propertyError; context: { property }\" />\n }\n </div>\n }\n }\n</ng-template>\n\n<ng-template #propertyError let-property=\"property\" let-classes=\"classes\">\n @if (property.error?.message) {\n <div\n class=\"is-flex is-flex-direction-row is-gap-8 is-size-6 is-m-0 w-100 has-text-grey {{ classes }} | property-error\"\n [class.is-error-danger]=\"property.hasError\"\n [class.is-error-warning]=\"!property.hasError && property.hasWarning\">\n @if (property.hasError) {\n <he-svg-icon name=\"xmark-circle\" size=\"24\" class=\"has-text-danger is-flex-grow-0\" />\n } @else {\n <he-svg-icon name=\"exclamation-triangle\" size=\"24\" class=\"has-text-warning is-flex-grow-0\" />\n }\n\n <div class=\"is-flex is-flex-grow-1\">\n <span [innerHTML]=\"property.error.message\"></span>\n </div>\n\n @if (errorGuidePrefix() && property.errorGuidePageId) {\n <he-guide-overlay class=\"is-flex-grow-0\" [pageId]=\"errorGuidePrefix() + property.errorGuidePageId\" />\n }\n\n @if (property.error.index >= 0) {\n @if (property.hasWarning) {\n <a (click)=\"resolveError(property)\">\n <he-svg-icon name=\"checkmark\" />\n <span class=\"is-pl-2\">Resolved</span>\n </a>\n }\n }\n </div>\n }\n</ng-template>\n\n<ng-template #propertyMap let-property>\n @if (showMap()) {\n <div class=\"is-flex is-flex-direction-column is-flex-wrap-wrap w-100 | properties-container\">\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-4 w-100 | properties-container--title\"\n (click)=\"mapVisible.set(!mapVisible())\"\n pointer\n [class.is-open]=\"mapVisible()\">\n <span class=\"is-size-6\">View on Map</span>\n <he-svg-icon [name]=\"mapVisible() ? 'minus' : 'plus'\" />\n </div>\n @if (mapVisible()) {\n <he-sites-maps [sites]=\"[node()]\" [showNotice]=\"false\" />\n }\n </div>\n }\n</ng-template>\n\n<ng-template #nodeLink let-url=\"url\" let-nodeType=\"nodeType\">\n <a class=\"external-link\" [href]=\"url\" target=\"_blank\" (click)=\"$event.stopPropagation()\">\n <span class=\"is-hidden-mobile\">View</span>\n <span class=\"is-hidden-mobile is-pl-1\">{{ nodeType }}</span>\n <he-svg-icon name=\"external-link\" class=\"ml-2\" />\n </a>\n</ng-template>\n", styles: [".notification{color:#0a0a0a!important}.notification.is-success{background-color:#d5f3d8}.notification.is-success *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-success>fa-icon,.notification.is-success *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-success>he-svg-icon{color:#2b8434}.notification.is-info{background-color:#d3ebed}.notification.is-info *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-info>fa-icon,.notification.is-info *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-info>he-svg-icon{color:#249da5}.notification.is-warning{background-color:#ffdec0}.notification.is-warning *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-warning>fa-icon,.notification.is-warning *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-warning>he-svg-icon{color:#ff881b}.notification.is-danger{background-color:#ffcdd0}.notification.is-danger *:not(.button):not(.icon):not(.dropdown-item)>fa-icon,.notification.is-danger>fa-icon,.notification.is-danger *:not(.button):not(.icon):not(.dropdown-item)>he-svg-icon,.notification.is-danger>he-svg-icon{color:#ff3844}he-sites-maps{height:200px}.external-link{color:#4c7194}.files-form-container{box-shadow:2px 2px 4px #00000029;background-color:#fff}.files-form-header{padding:10px 12px;background-color:#dbe3ea;border-top-left-radius:3px;border-top-right-radius:3px}.properties-container--title,.property-container{padding:6px 12px}.property-container{flex:none;flex-grow:1;min-width:50%;max-width:100%;border:1px solid #f5f5f5}.property-container.is-error-danger{border-color:#ff3844}.property-container.is-error-warning{border-color:#ff881b}.properties-container--title{border-top:1px solid #dbe3ea;border-bottom:1px solid #dbe3ea;background:#f5f7f9}.properties-container .properties-container{border-radius:6px;border:1px solid #dbe3ea;margin:4px 0}.properties-container .properties-container--title{border-top:none}.property-internal{color:#249da5}.property-key,.property-value{word-break:break-word}.property-array-container{border-radius:6px;border:1px solid #dbdbdb}.number-tag{border:1px solid #249da5;border-radius:50%}.copy-button{visibility:hidden}.field-container:hover .copy-button{visibility:visible}.is-group-error-danger{background-color:#ffcdd0}.is-group-error-warning{background-color:#ffdec0}.property-error.is-error-danger{background-color:#ffeced}.field-container+.property-error.is-error-danger{background-color:transparent;color:#ff3844!important}.property-error.is-error-warning{background-color:#fff5ec}.field-container+.property-error.is-error-warning{background-color:transparent;color:#ff881b!important}::ng-deep .property-tooltip{background-color:#fff;color:#0a0a0a;border:1px solid #dbdbdb;z-index:11;max-width:50vw;max-height:50vh;overflow:auto}::ng-deep .property-tooltip pre{white-space:pre-wrap}\n"] }]
|
|
13673
13675
|
}], propDecorators: { isOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOpen", required: false }] }, { type: i0.Output, args: ["isOpenChange"] }], node: [{ type: i0.Input, args: [{ isSignal: true, alias: "node", required: true }] }], errors: [{ type: i0.Input, args: [{ isSignal: true, alias: "errors", required: false }] }], showNodeLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "showNodeLink", required: false }] }], errorGuidePrefix: [{ type: i0.Input, args: [{ isSignal: true, alias: "errorGuidePrefix", required: false }] }], nodeErorrResolved: [{ type: i0.Output, args: ["nodeErorrResolved"] }] } });
|
|
13674
13676
|
|
|
13675
13677
|
class SchemaInfoComponent {
|
|
@@ -14284,11 +14286,11 @@ class FilesErrorSummaryItemComponent {
|
|
|
14284
14286
|
this.maxLength.set(Math.max(minimumMaxLength, width / 3));
|
|
14285
14287
|
}
|
|
14286
14288
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FilesErrorSummaryItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14287
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: FilesErrorSummaryItemComponent, isStandalone: true, selector: "he-files-error-summary-item", inputs: { summary: { classPropertyName: "summary", publicName: "summary", isSignal: true, isRequired: true, transformFunction: null }, resolved: { classPropertyName: "resolved", publicName: "resolved", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { resolved: "resolvedChange" }, ngImport: i0, template: "<div class=\"is-flex is-justify-content-center is-align-items-center is-align-self-stretch is-gap-8 is-mb-2\">\n <div class=\"is-flex is-flex-grow-1 | errors-path border-right\">\n <span class=\"has-text-weight-bold\">{{ summary().path || '-' }}</span>\n </div>\n\n <div class=\"is-flex is-align-items-center is-gap-4 | errors-count\">\n <div\n class=\"is-flex is-justify-content-center is-align-items-center has-background-{{\n errorColor()\n }} | errors-count--number\">\n <span class=\"has-text-weight-bold has-text-white\">{{ summary().count }}</span>\n </div>\n <span class=\"has-text-{{ errorColor() }} is-capitalized\">\n {{ summary().level | pluralize: summary().count }}\n </span>\n </div>\n</div>\n\n<div class=\"py-2 w-100 border-y\">\n @if (summary().terms) {\n <p class=\"is-size-7\">\n <span class=\"is-pr-1 has-text-weight-bold\">Terms:</span>\n <span [innerHtml]=\"summary().terms\"></span>\n </p>\n }\n\n @if (hasAutoGeneratedNodes()) {\n <p class=\"is-size-7 has-text-info\">\n <span>Some nodes are auto-generated and the {{ summary().level }} might come from other nodes</span>\n </p>\n }\n\n <p class=\"is-italic has-text-weight-semilight has-text-grey-dark\" heResized (resized)=\"onResized($event)\">\n <span [innerHTML]=\"message() | ellipsis: textMaxLength()\"></span>\n @if (showMoreButton()) {\n <a class=\"has-text-weight-semibold\" (click)=\"$event.stopPropagation(); showMore.set(!showMore())\">\n @if (showMore()) {\n less\n } @else {\n more\n }\n </a>\n }\n </p>\n</div>\n<div class=\"px-1 py-3 w-100\">\n <div class=\"is-flex is-align-items-center is-gap-8 | resolved-actions\">\n <p class=\"has-text-weight-bold is-size-7\">Resolved?</p>\n\n <a\n (click)=\"$event.stopPropagation(); resolved.set(false)\"\n class=\"resolved-actions--unresolve\"\n [class.is-resolved]=\"resolved()\">\n <he-svg-icon name=\"xmark-circle\" />\n </a>\n\n <a\n (click)=\"$event.stopPropagation(); resolved.set(true)\"\n class=\"resolved-actions--resolve\"\n [class.is-resolved]=\"resolved()\">\n <he-svg-icon name=\"checkmark-circle\" />\n </a>\n </div>\n</div>\n", styles: [":host{--summary-files-border-edge: 1px solid #f5f5f5}:host .border-top{border-top:var(--summary-files-border-edge)}:host .border-bottom{border-bottom:var(--summary-files-border-edge)}:host .border-right{border-right:var(--summary-files-border-edge)}:host .border-x{border-left:var(--summary-files-border-edge);border-right:var(--summary-files-border-edge)}:host .border-y{border-bottom:var(--summary-files-border-edge);border-top:var(--summary-files-border-edge)}p,span{word-break:break-word}.errors-path{color:#4c7194}.errors-count{width:110px}.errors-count--number{line-height:1.3;border-radius:1px;padding:1px 5px}.resolved-actions--resolve{color:#b5b5b5}.resolved-actions--resolve.is-resolved,.resolved-actions--resolve:hover{color:#
|
|
14289
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: FilesErrorSummaryItemComponent, isStandalone: true, selector: "he-files-error-summary-item", inputs: { summary: { classPropertyName: "summary", publicName: "summary", isSignal: true, isRequired: true, transformFunction: null }, resolved: { classPropertyName: "resolved", publicName: "resolved", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { resolved: "resolvedChange" }, ngImport: i0, template: "<div class=\"is-flex is-justify-content-center is-align-items-center is-align-self-stretch is-gap-8 is-mb-2\">\n <div class=\"is-flex is-flex-grow-1 | errors-path border-right\">\n <span class=\"has-text-weight-bold\">{{ summary().path || '-' }}</span>\n </div>\n\n <div class=\"is-flex is-align-items-center is-gap-4 | errors-count\">\n <div\n class=\"is-flex is-justify-content-center is-align-items-center has-background-{{\n errorColor()\n }} | errors-count--number\">\n <span class=\"has-text-weight-bold has-text-white\">{{ summary().count }}</span>\n </div>\n <span class=\"has-text-{{ errorColor() }} is-capitalized\">\n {{ summary().level | pluralize: summary().count }}\n </span>\n </div>\n</div>\n\n<div class=\"py-2 w-100 border-y\">\n @if (summary().terms) {\n <p class=\"is-size-7\">\n <span class=\"is-pr-1 has-text-weight-bold\">Terms:</span>\n <span [innerHtml]=\"summary().terms\"></span>\n </p>\n }\n\n @if (hasAutoGeneratedNodes()) {\n <p class=\"is-size-7 has-text-info\">\n <span>Some nodes are auto-generated and the {{ summary().level }} might come from other nodes</span>\n </p>\n }\n\n <p class=\"is-italic has-text-weight-semilight has-text-grey-dark\" heResized (resized)=\"onResized($event)\">\n <span [innerHTML]=\"message() | ellipsis: textMaxLength()\"></span>\n @if (showMoreButton()) {\n <a class=\"has-text-weight-semibold\" (click)=\"$event.stopPropagation(); showMore.set(!showMore())\">\n @if (showMore()) {\n less\n } @else {\n more\n }\n </a>\n }\n </p>\n</div>\n<div class=\"px-1 py-3 w-100\">\n <div class=\"is-flex is-align-items-center is-gap-8 | resolved-actions\">\n <p class=\"has-text-weight-bold is-size-7\">Resolved?</p>\n\n <a\n (click)=\"$event.stopPropagation(); resolved.set(false)\"\n class=\"resolved-actions--unresolve\"\n [class.is-resolved]=\"resolved()\">\n <he-svg-icon name=\"xmark-circle\" />\n </a>\n\n <a\n (click)=\"$event.stopPropagation(); resolved.set(true)\"\n class=\"resolved-actions--resolve\"\n [class.is-resolved]=\"resolved()\">\n <he-svg-icon name=\"checkmark-circle\" />\n </a>\n </div>\n</div>\n", styles: [":host{--summary-files-border-edge: 1px solid #f5f5f5}:host .border-top{border-top:var(--summary-files-border-edge)}:host .border-bottom{border-bottom:var(--summary-files-border-edge)}:host .border-right{border-right:var(--summary-files-border-edge)}:host .border-x{border-left:var(--summary-files-border-edge);border-right:var(--summary-files-border-edge)}:host .border-y{border-bottom:var(--summary-files-border-edge);border-top:var(--summary-files-border-edge)}p,span{word-break:break-word}.errors-path{color:#4c7194}.errors-count{width:110px}.errors-count--number{line-height:1.3;border-radius:1px;padding:1px 5px}.resolved-actions--resolve{color:#b5b5b5}.resolved-actions--resolve.is-resolved,.resolved-actions--resolve:hover{color:#2b8434}.resolved-actions--unresolve{color:#b5b5b5}.resolved-actions--unresolve:not(.is-resolved),.resolved-actions--unresolve:hover{color:#ff3844}\n"], dependencies: [{ kind: "component", type: HESvgIconComponent, selector: "he-svg-icon", inputs: ["name", "size", "animation"] }, { kind: "directive", type: ResizedDirective, selector: "[heResized]", outputs: ["resized"] }, { kind: "pipe", type: EllipsisPipe, name: "ellipsis" }, { kind: "pipe", type: PluralizePipe, name: "pluralize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14288
14290
|
}
|
|
14289
14291
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: FilesErrorSummaryItemComponent, decorators: [{
|
|
14290
14292
|
type: Component$1,
|
|
14291
|
-
args: [{ selector: 'he-files-error-summary-item', imports: [HESvgIconComponent, EllipsisPipe, PluralizePipe, ResizedDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"is-flex is-justify-content-center is-align-items-center is-align-self-stretch is-gap-8 is-mb-2\">\n <div class=\"is-flex is-flex-grow-1 | errors-path border-right\">\n <span class=\"has-text-weight-bold\">{{ summary().path || '-' }}</span>\n </div>\n\n <div class=\"is-flex is-align-items-center is-gap-4 | errors-count\">\n <div\n class=\"is-flex is-justify-content-center is-align-items-center has-background-{{\n errorColor()\n }} | errors-count--number\">\n <span class=\"has-text-weight-bold has-text-white\">{{ summary().count }}</span>\n </div>\n <span class=\"has-text-{{ errorColor() }} is-capitalized\">\n {{ summary().level | pluralize: summary().count }}\n </span>\n </div>\n</div>\n\n<div class=\"py-2 w-100 border-y\">\n @if (summary().terms) {\n <p class=\"is-size-7\">\n <span class=\"is-pr-1 has-text-weight-bold\">Terms:</span>\n <span [innerHtml]=\"summary().terms\"></span>\n </p>\n }\n\n @if (hasAutoGeneratedNodes()) {\n <p class=\"is-size-7 has-text-info\">\n <span>Some nodes are auto-generated and the {{ summary().level }} might come from other nodes</span>\n </p>\n }\n\n <p class=\"is-italic has-text-weight-semilight has-text-grey-dark\" heResized (resized)=\"onResized($event)\">\n <span [innerHTML]=\"message() | ellipsis: textMaxLength()\"></span>\n @if (showMoreButton()) {\n <a class=\"has-text-weight-semibold\" (click)=\"$event.stopPropagation(); showMore.set(!showMore())\">\n @if (showMore()) {\n less\n } @else {\n more\n }\n </a>\n }\n </p>\n</div>\n<div class=\"px-1 py-3 w-100\">\n <div class=\"is-flex is-align-items-center is-gap-8 | resolved-actions\">\n <p class=\"has-text-weight-bold is-size-7\">Resolved?</p>\n\n <a\n (click)=\"$event.stopPropagation(); resolved.set(false)\"\n class=\"resolved-actions--unresolve\"\n [class.is-resolved]=\"resolved()\">\n <he-svg-icon name=\"xmark-circle\" />\n </a>\n\n <a\n (click)=\"$event.stopPropagation(); resolved.set(true)\"\n class=\"resolved-actions--resolve\"\n [class.is-resolved]=\"resolved()\">\n <he-svg-icon name=\"checkmark-circle\" />\n </a>\n </div>\n</div>\n", styles: [":host{--summary-files-border-edge: 1px solid #f5f5f5}:host .border-top{border-top:var(--summary-files-border-edge)}:host .border-bottom{border-bottom:var(--summary-files-border-edge)}:host .border-right{border-right:var(--summary-files-border-edge)}:host .border-x{border-left:var(--summary-files-border-edge);border-right:var(--summary-files-border-edge)}:host .border-y{border-bottom:var(--summary-files-border-edge);border-top:var(--summary-files-border-edge)}p,span{word-break:break-word}.errors-path{color:#4c7194}.errors-count{width:110px}.errors-count--number{line-height:1.3;border-radius:1px;padding:1px 5px}.resolved-actions--resolve{color:#b5b5b5}.resolved-actions--resolve.is-resolved,.resolved-actions--resolve:hover{color:#
|
|
14293
|
+
args: [{ selector: 'he-files-error-summary-item', imports: [HESvgIconComponent, EllipsisPipe, PluralizePipe, ResizedDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"is-flex is-justify-content-center is-align-items-center is-align-self-stretch is-gap-8 is-mb-2\">\n <div class=\"is-flex is-flex-grow-1 | errors-path border-right\">\n <span class=\"has-text-weight-bold\">{{ summary().path || '-' }}</span>\n </div>\n\n <div class=\"is-flex is-align-items-center is-gap-4 | errors-count\">\n <div\n class=\"is-flex is-justify-content-center is-align-items-center has-background-{{\n errorColor()\n }} | errors-count--number\">\n <span class=\"has-text-weight-bold has-text-white\">{{ summary().count }}</span>\n </div>\n <span class=\"has-text-{{ errorColor() }} is-capitalized\">\n {{ summary().level | pluralize: summary().count }}\n </span>\n </div>\n</div>\n\n<div class=\"py-2 w-100 border-y\">\n @if (summary().terms) {\n <p class=\"is-size-7\">\n <span class=\"is-pr-1 has-text-weight-bold\">Terms:</span>\n <span [innerHtml]=\"summary().terms\"></span>\n </p>\n }\n\n @if (hasAutoGeneratedNodes()) {\n <p class=\"is-size-7 has-text-info\">\n <span>Some nodes are auto-generated and the {{ summary().level }} might come from other nodes</span>\n </p>\n }\n\n <p class=\"is-italic has-text-weight-semilight has-text-grey-dark\" heResized (resized)=\"onResized($event)\">\n <span [innerHTML]=\"message() | ellipsis: textMaxLength()\"></span>\n @if (showMoreButton()) {\n <a class=\"has-text-weight-semibold\" (click)=\"$event.stopPropagation(); showMore.set(!showMore())\">\n @if (showMore()) {\n less\n } @else {\n more\n }\n </a>\n }\n </p>\n</div>\n<div class=\"px-1 py-3 w-100\">\n <div class=\"is-flex is-align-items-center is-gap-8 | resolved-actions\">\n <p class=\"has-text-weight-bold is-size-7\">Resolved?</p>\n\n <a\n (click)=\"$event.stopPropagation(); resolved.set(false)\"\n class=\"resolved-actions--unresolve\"\n [class.is-resolved]=\"resolved()\">\n <he-svg-icon name=\"xmark-circle\" />\n </a>\n\n <a\n (click)=\"$event.stopPropagation(); resolved.set(true)\"\n class=\"resolved-actions--resolve\"\n [class.is-resolved]=\"resolved()\">\n <he-svg-icon name=\"checkmark-circle\" />\n </a>\n </div>\n</div>\n", styles: [":host{--summary-files-border-edge: 1px solid #f5f5f5}:host .border-top{border-top:var(--summary-files-border-edge)}:host .border-bottom{border-bottom:var(--summary-files-border-edge)}:host .border-right{border-right:var(--summary-files-border-edge)}:host .border-x{border-left:var(--summary-files-border-edge);border-right:var(--summary-files-border-edge)}:host .border-y{border-bottom:var(--summary-files-border-edge);border-top:var(--summary-files-border-edge)}p,span{word-break:break-word}.errors-path{color:#4c7194}.errors-count{width:110px}.errors-count--number{line-height:1.3;border-radius:1px;padding:1px 5px}.resolved-actions--resolve{color:#b5b5b5}.resolved-actions--resolve.is-resolved,.resolved-actions--resolve:hover{color:#2b8434}.resolved-actions--unresolve{color:#b5b5b5}.resolved-actions--unresolve:not(.is-resolved),.resolved-actions--unresolve:hover{color:#ff3844}\n"] }]
|
|
14292
14294
|
}], propDecorators: { summary: [{ type: i0.Input, args: [{ isSignal: true, alias: "summary", required: true }] }], resolved: [{ type: i0.Input, args: [{ isSignal: true, alias: "resolved", required: false }] }, { type: i0.Output, args: ["resolvedChange"] }] } });
|
|
14293
14295
|
|
|
14294
14296
|
const filterErrors = (showErrorsOnAutogenerated, nodes = [], errors = []) => errors.filter(({ index }) => showErrorsOnAutogenerated || !nodes?.[index]?.autoGenerated);
|