@provoly/dashboard 1.4.58 → 1.4.59

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.
Files changed (95) hide show
  1. package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-form/admin-abac-rules-form.component.mjs +1 -1
  2. package/esm2022/admin/components/admin-abac-rules/components/attribute-condition/attribute-condition.component.mjs +1 -1
  3. package/esm2022/admin/components/admin-abac-rules/components/metadata-condition/metadata-condition.component.mjs +1 -1
  4. package/esm2022/admin/components/admin-classes/admin-classes-customize/symbol/admin-classes-customize-symbol.component.mjs +1 -1
  5. package/esm2022/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.mjs +1 -1
  6. package/esm2022/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.mjs +1 -1
  7. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +1 -1
  8. package/esm2022/admin/components/admin-dataset/admin-form-dataset/admin-form-dataset.component.mjs +1 -1
  9. package/esm2022/admin/components/admin-environment/admin-environment-form/admin-environment-form.component.mjs +1 -1
  10. package/esm2022/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.mjs +1 -1
  11. package/esm2022/admin/components/admin-links/admin-links-new/admin-links-new.component.mjs +1 -1
  12. package/esm2022/admin/components/admin-metadata/shared/form-metadata/form-metadata.component.mjs +1 -1
  13. package/esm2022/admin/components/admin-metadata-rules/shared/admin-form-metadata-rules/admin-form-metadata-rules.component.mjs +1 -1
  14. package/esm2022/components/metadata-editor/metadata-editor.component.mjs +1 -1
  15. package/esm2022/components/scheme-picker/scheme-picker.component.mjs +1 -1
  16. package/esm2022/filters/autocomplete/autocomplete.component.mjs +1 -1
  17. package/esm2022/filters/list/list-filter.component.mjs +1 -1
  18. package/esm2022/import/components/form/import-form.component.mjs +1 -1
  19. package/esm2022/import/components/list/import-list.component.mjs +1 -1
  20. package/esm2022/lib/core/components/select/select.component.mjs +8 -4
  21. package/esm2022/lib/core/components/share/access-rights-share/access-rights-share.component.mjs +1 -1
  22. package/esm2022/lib/core/components/share/legacy-share/share.component.mjs +1 -1
  23. package/esm2022/lib/dashboard/components/context-menu/object-edition/object-edition.component.mjs +1 -1
  24. package/esm2022/lib/dashboard/components/dashboard.component.mjs +22 -12
  25. package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-list/datasource-list.component.mjs +1 -1
  26. package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +90 -19
  27. package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +3 -2
  28. package/esm2022/lib/dashboard/store/manifest.service.mjs +5 -3
  29. package/esm2022/pipeline-components/filter/component/filter.component.mjs +1 -1
  30. package/esm2022/pipeline-components/input-datasource/component/input-datasource.component.mjs +1 -1
  31. package/esm2022/pipeline-components/output-dataset/component/output-dataset.component.mjs +1 -1
  32. package/esm2022/restitution/components/restitution/restitution.component.mjs +1 -1
  33. package/esm2022/search/search-mono-class/components/search-condition/search-condition.component.mjs +1 -1
  34. package/esm2022/search/search-mono-class/components/search-mono-class/search-mono-class.component.mjs +1 -1
  35. package/esm2022/search/search-mono-class/components/search-order/search-order.component.mjs +1 -1
  36. package/esm2022/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.mjs +1 -1
  37. package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +1 -1
  38. package/esm2022/toolbox/shared/presentation-form/presentation-form.component.mjs +1 -1
  39. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +1 -1
  40. package/esm2022/widgets/widget-analytic/component/widget-analytic.component.mjs +1 -1
  41. package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +1 -1
  42. package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +1 -1
  43. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +1 -1
  44. package/esm2022/widgets/widget-table/component/widget-table.component.mjs +1 -1
  45. package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +1 -1
  46. package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +5 -5
  47. package/fesm2022/provoly-dashboard-admin.mjs +13 -13
  48. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  49. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +1 -1
  50. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
  51. package/fesm2022/provoly-dashboard-components-scheme-picker.mjs +1 -1
  52. package/fesm2022/provoly-dashboard-components-scheme-picker.mjs.map +1 -1
  53. package/fesm2022/provoly-dashboard-filters-autocomplete.mjs +1 -1
  54. package/fesm2022/provoly-dashboard-filters-autocomplete.mjs.map +1 -1
  55. package/fesm2022/provoly-dashboard-filters-list.mjs +1 -1
  56. package/fesm2022/provoly-dashboard-filters-list.mjs.map +1 -1
  57. package/fesm2022/provoly-dashboard-import.mjs +2 -2
  58. package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
  59. package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs +1 -1
  60. package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs.map +1 -1
  61. package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs +1 -1
  62. package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs.map +1 -1
  63. package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs +1 -1
  64. package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs.map +1 -1
  65. package/fesm2022/provoly-dashboard-restitution.mjs +1 -1
  66. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  67. package/fesm2022/provoly-dashboard-search.mjs +4 -4
  68. package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
  69. package/fesm2022/provoly-dashboard-toolbox.mjs +2 -2
  70. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  71. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +1 -1
  72. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  73. package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs +1 -1
  74. package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs.map +1 -1
  75. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +1 -1
  76. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
  77. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +1 -1
  78. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
  79. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +1 -1
  80. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  81. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +1 -1
  82. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
  83. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +1 -1
  84. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
  85. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +4 -4
  86. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
  87. package/fesm2022/provoly-dashboard.mjs +202 -116
  88. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  89. package/lib/core/components/select/select.component.d.ts +3 -2
  90. package/lib/dashboard/components/dashboard.component.d.ts +8 -1
  91. package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +18 -1
  92. package/lib/dashboard/store/dashboard.selectors.d.ts +17 -0
  93. package/lib/dashboard/store/manifest.service.d.ts +11 -2
  94. package/package.json +7 -7
  95. package/styles/components/_o-widget.scss +28 -0
@@ -1 +1 @@
1
- {"version":3,"file":"provoly-dashboard-widgets-widget-chart.mjs","sources":["../../../../projects/provoly/dashboard/widgets/widget-chart/component/vega-error.handler.ts","../../../../projects/provoly/dashboard/widgets/widget-chart/component/vega-spec.constant.ts","../../../../projects/provoly/dashboard/widgets/widget-chart/style/css.component.ts","../../../../projects/provoly/dashboard/widgets/widget-chart/component/widget-chart.component.ts","../../../../projects/provoly/dashboard/widgets/widget-chart/component/widget-chart.component.html","../../../../projects/provoly/dashboard/widgets/widget-chart/i18n/en.translations.ts","../../../../projects/provoly/dashboard/widgets/widget-chart/i18n/fr.translations.ts","../../../../projects/provoly/dashboard/widgets/widget-chart/widget-chart.module.ts","../../../../projects/provoly/dashboard/widgets/widget-chart/provoly-dashboard-widgets-widget-chart.ts"],"sourcesContent":["import { PRY_CUSTOMEVENT_TYPE, PrySnackMessage } from '@provoly/dashboard';\nimport { View } from 'vega';\nimport { ViewOptions } from 'vega-typings/types/runtime';\nimport { Runtime } from 'vega-typings/types/runtime/runtime';\n\nlet pryLogger = {\n ...console,\n debug: () => {},\n level: () => {},\n // @ts-ignore\n error: (err) => {\n // Making specific Vega error message trapping\n const customEvent = new CustomEvent<PrySnackMessage>(PRY_CUSTOMEVENT_TYPE, {\n detail: {\n type: 'error',\n message: '@pry.snack.default'\n },\n bubbles: true,\n cancelable: true\n });\n\n if (err.stack.includes('Error: missing:')) {\n customEvent.detail.message = '@pry.snack.missingParent';\n } else if (err.stack.includes(\"TypeError: Cannot read properties of undefined (reading 'value')\")) {\n customEvent.detail.message = '@pry.snack.missingValue';\n } else if (err.stack.includes('Expected number')) {\n customEvent.detail.message = '@pry.snack.emptyValues';\n }\n\n document.dispatchEvent(customEvent);\n }\n};\n\nexport class VegaErrorHandler extends View {\n constructor(runtime: Runtime, opt?: ViewOptions) {\n // @ts-ignore\n super(runtime, { ...opt, logger: pryLogger });\n }\n}\n","export const vegaBaseConf = {\n $schema: 'https://vega.github.io/schema/vega-lite/v5.json',\n title: '',\n width: 'container',\n height: 'container',\n padding: 0,\n autosize: { type: 'fit', contains: 'padding' },\n data: { values: {} },\n layer: [\n {\n mark: {\n type: '',\n point: '',\n innerRadius: 30\n },\n encoding: {}\n }\n ]\n} as any;\n\nexport const vegaRadarConf = {\n $schema: 'https://vega.github.io/schema/vega/v5.json',\n title: '',\n width: 'container',\n height: 'container',\n padding: 40,\n autosize: { type: 'none', contains: 'padding' },\n signals: [{ name: 'radius', update: 'height / 2' }],\n data: [\n {\n name: 'table',\n values: []\n },\n {\n name: 'keys',\n source: 'table',\n transform: [\n {\n type: 'aggregate',\n groupby: ['key']\n }\n ]\n }\n ],\n scales: [\n {\n name: 'angular',\n type: 'point',\n range: { signal: '[-PI, PI]' },\n padding: 0.5,\n domain: { data: 'table', field: 'key' }\n },\n {\n name: 'radial',\n type: 'linear',\n range: { signal: '[0, radius]' },\n zero: true,\n nice: false,\n domain: { data: 'table', field: 'value' },\n domainMin: 0\n },\n {\n name: 'color',\n type: 'ordinal',\n domain: { data: 'table', field: 'category' },\n range: { scheme: 'category10' }\n }\n ],\n\n encode: {\n enter: {\n x: { signal: 'radius' },\n y: { signal: 'radius' }\n }\n },\n\n marks: [\n {\n type: 'group',\n name: 'categories',\n zindex: 1,\n from: {\n facet: { data: 'table', name: 'facet', groupby: ['category'] }\n },\n marks: [\n {\n type: 'line',\n name: 'category-line',\n from: { data: 'facet' },\n encode: {\n enter: {\n interpolate: { value: 'linear-closed' },\n x: { signal: \"scale('radial', datum.value) * cos(scale('angular', datum.key))\" },\n y: { signal: \"scale('radial', datum.value) * sin(scale('angular', datum.key))\" },\n stroke: { scale: 'color', field: 'category' },\n strokeWidth: { value: 1 },\n fill: { scale: 'color', field: 'category' },\n fillOpacity: { value: 0.1 }\n }\n }\n },\n {\n type: 'text',\n name: 'value-text',\n from: { data: 'category-line' },\n encode: {\n enter: {\n x: { signal: 'datum.x' },\n y: { signal: 'datum.y' },\n text: { signal: 'datum.datum.value' },\n align: { value: 'center' },\n baseline: { value: 'middle' },\n fill: { value: 'black' }\n }\n }\n }\n ]\n },\n {\n type: 'rule',\n name: 'radial-grid',\n from: { data: 'keys' },\n zindex: 0,\n encode: {\n enter: {\n x: { value: 0 },\n y: { value: 0 },\n x2: { signal: \"radius * cos(scale('angular', datum.key))\" },\n y2: { signal: \"radius * sin(scale('angular', datum.key))\" },\n stroke: { value: 'lightgray' },\n strokeWidth: { value: 1 }\n }\n }\n },\n {\n type: 'text',\n name: 'key-label',\n from: { data: 'keys' },\n zindex: 1,\n encode: {\n enter: {\n x: { signal: \"(radius + 5) * cos(scale('angular', datum.key))\" },\n y: { signal: \"(radius + 5) * sin(scale('angular', datum.key))\" },\n text: { field: 'key' },\n align: [\n {\n test: \"abs(scale('angular', datum.key)) > PI / 2\",\n value: 'right'\n },\n {\n value: 'left'\n }\n ],\n baseline: [\n {\n test: \"scale('angular', datum.key) > 0\",\n value: 'top'\n },\n {\n test: \"scale('angular', datum.key) == 0\",\n value: 'middle'\n },\n {\n value: 'bottom'\n }\n ],\n fill: { value: 'black' },\n fontWeight: { value: 'bold' }\n }\n }\n },\n {\n type: 'line',\n name: 'outer-line',\n from: { data: 'radial-grid' },\n encode: {\n enter: {\n interpolate: { value: 'linear-closed' },\n x: { field: 'x2' },\n y: { field: 'y2' },\n stroke: { value: 'lightgray' },\n strokeWidth: { value: 1 }\n }\n }\n }\n ]\n} as any;\n\nexport const vegaCirclePackConf = {\n $schema: 'https://vega.github.io/schema/vega/v5.json',\n description: 'An example of a circle packing layout for hierarchical data.',\n width: 'container',\n height: 'container',\n padding: 0,\n autosize: { type: 'fit', contains: 'padding' },\n\n data: [\n {\n name: 'table',\n values: []\n },\n {\n name: 'tree',\n source: 'table',\n transform: [\n {\n type: 'stratify',\n key: 'id',\n parentKey: 'parent'\n },\n {\n type: 'pack',\n field: 'size',\n sort: { field: 'value' },\n size: [{ signal: 'width' }, { signal: 'height' }]\n }\n ]\n }\n ],\n\n scales: [\n {\n name: 'color',\n type: 'ordinal',\n domain: { data: 'tree', field: 'depth' },\n range: { scheme: 'category20' }\n }\n ],\n\n marks: [\n {\n type: 'symbol',\n from: { data: 'tree' },\n encode: {\n enter: {\n shape: { value: 'circle' },\n fill: { scale: 'color', field: 'depth' },\n tooltip: { signal: \"datum.name + (datum.size ? ', ' + datum.size + ' bytes' : '')\" }\n },\n update: {\n x: { field: 'x' },\n y: { field: 'y' },\n size: { signal: '4 * datum.r * datum.r' },\n stroke: { value: 'white' },\n strokeWidth: { value: 0.5 }\n },\n hover: {\n stroke: { value: 'red' },\n strokeWidth: { value: 2 }\n }\n }\n }\n ]\n};\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'pry-widget-chart-css',\n template: '',\n styleUrls: ['./_o-widget-chart.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PryWidgetChartCssComponent {}\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, ViewChild } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n Aggregation,\n Attribute,\n AttributeSimpleValue,\n ChartOption,\n ChartSubTypeDefinition,\n ChartWidgetOptions,\n Class,\n ClassSelectors,\n ConfigSelectors,\n DashboardSelectors,\n DataWidgetComponent,\n Field,\n FieldSelectors,\n FieldType,\n Item,\n ItemUtils,\n MarkSubType,\n MarkType,\n PryI18nService,\n VariableDefinition,\n VegaColorType,\n VegaType,\n WIDGET_HEADER_HEIGHT\n} from '@provoly/dashboard';\nimport equal from 'fast-deep-equal/es6';\nimport { BehaviorSubject, combineLatest, delay, Observable, Subject } from 'rxjs';\nimport { distinctUntilChanged, filter, map } from 'rxjs';\nimport { TimeUnit, View } from 'vega';\nimport embed, { vega } from 'vega-embed';\nimport { mergeDeep, TopLevelSpec } from 'vega-lite';\nimport { fontConfig } from 'vega-lite/build/src/config';\nimport { VegaErrorHandler } from './vega-error.handler';\nimport { vegaBaseConf, vegaCirclePackConf, vegaRadarConf } from './vega-spec.constant';\n\nexport type RadarValue = {\n category: number;\n key: string;\n value: number;\n};\n\nvega.scheme('KO/W/OK', ['#C04D3F', '#FD9843', '#9ABE29']);\n\n@Component({\n selector: 'pry-widget-chart',\n templateUrl: './widget-chart.component.html'\n})\nexport class WidgetChartComponent extends DataWidgetComponent implements AfterViewInit {\n @ViewChild('vega') vega!: ElementRef;\n typeOptions: {\n type: MarkType;\n subType: MarkSubType;\n label: MarkType | MarkSubType;\n id: string;\n translated?: string;\n }[] = [];\n markTypes: MarkType[] = [];\n subTypes?: Partial<ChartSubTypeDefinition>;\n schemes?: { id: VegaColorType; translated: string }[];\n MarkType = MarkType;\n MarkSubType = MarkSubType;\n WIDGET_HEADER_HEIGHT = WIDGET_HEADER_HEIGHT.value;\n\n timeUnits: TimeUnit[] = ['year', 'quarter', 'month', 'week', 'day', 'hours', 'minutes'];\n options$: Observable<ChartWidgetOptions>;\n optionsCopy: ChartWidgetOptions = {} as ChartWidgetOptions;\n classes$: Observable<Class[]>;\n fields$: Observable<Field[]>;\n variables$: Observable<VariableDefinition[]>;\n vegaLiteSpec$: Observable<TopLevelSpec>;\n variableAttributes$: Observable<Attribute[]>;\n possibleSecondaryAttributes$: Observable<Attribute[]>;\n triggerCalculatePossibleAttributes$ = new BehaviorSubject<void>(undefined);\n items$: Observable<Item[]>;\n filterDataForOptions$: Observable<Item[]>;\n filterDataForOptionsCopy$: Observable<Item[]>;\n variables: VariableDefinition[] = [];\n aggregations: any[] = [];\n variableAttributes: Attribute[] = [];\n fields: Field[] = [];\n isChartValid$: Observable<boolean>;\n numericProperties$: Observable<Attribute[]>;\n textProperties$: Observable<Attribute[]>;\n comparisons = [\n {\n id: 'item',\n name: this.translateService.instant('@pry.widget.chart.comparison.item')\n },\n {\n id: 'value',\n name: this.translateService.instant('@pry.widget.chart.comparison.value')\n }\n ];\n view?: View;\n trigger$ = new Subject<void>();\n invalidJson: boolean = false;\n\n constructor(\n store: Store<any>,\n private translateService: PryI18nService,\n el: ElementRef,\n private cdRef: ChangeDetectorRef\n ) {\n super(store, el);\n\n this.store.select(ConfigSelectors.chartOption).subscribe((chartOptions: ChartOption) => {\n this.aggregations = chartOptions.aggregation;\n this.schemes = chartOptions.color.map((scheme) => ({ id: scheme, translated: '' }));\n this.markTypes = chartOptions.type;\n this.subTypes = chartOptions.subType;\n\n this.typeOptions = this.markTypes\n .map((type: MarkType) => {\n // @ts-ignore\n return this.subTypes && this.subTypes[type] ? this.subTypes[type].map((subType) => ({ type, subType })) : [];\n })\n .reduce((p, c) => [...p, ...c], [])\n .map((options: any) => ({\n ...options,\n id: `${options.type}-${options.subType}`,\n label: options.subType === MarkSubType.DEFAULT ? options.type : options.subType\n }))\n .map((options: any) => ({\n ...options,\n translated: this.translateService.instant('@pry.widget.chart.markType.' + options.label)\n }));\n this.typeOptions.sort((a, b) => a.translated?.localeCompare(b.translated ?? '') ?? -1);\n });\n this.classes$ = this.store.select(ClassSelectors.classes);\n this.fields$ = this.store.select(FieldSelectors.fields);\n\n this.variableAttributes$ = combineLatest([this.resultSet$, this.classes$, this.fields$]).pipe(\n map(([resultSet, classes, fields]) => ItemUtils.getAttributesFromRs(resultSet, classes, fields)),\n map((fields: Attribute[]) => fields.sort((a, b) => a.name.localeCompare(b.name))),\n map((props) => WidgetChartComponent.uniqueAttributesByNames(props)),\n distinctUntilChanged((p, c) => equal(p, c))\n );\n\n this.subscriptions.add(this.variableAttributes$.subscribe((attrs) => (this.variableAttributes = attrs)));\n this.subscriptions.add(this.fields$.subscribe((attrs) => (this.fields = attrs)));\n\n this.variables$ = this.variableAttributes$.pipe(\n map((attributes) => {\n return attributes.map(\n (attr) =>\n (({\n name: attr.technicalName,\n label: attr.name,\n type: this.translateToVegaType(attr.field.type, attr.name)\n }) as VariableDefinition) ?? []\n );\n })\n );\n\n this.options$ = combineLatest([\n this.variables$,\n this.manifest$.pipe(map((manifest) => manifest.options as ChartWidgetOptions))\n ]).pipe(\n map(([variables, options]) => ({\n ...options,\n title: options?.title ?? ((variables[0]?.label ?? '') + ', ' + (variables[1]?.label ?? '')).replace(/^, $/, ''),\n selectedVariables: options?.selectedVariables ?? [{}, {}],\n // Here, we do not presume of the type of graph that the user wants, and prefer to display a button to go to params\n type: options?.type ?? undefined,\n aggregation: options?.aggregation ?? Aggregation.COUNT,\n tooltip: options?.tooltip ?? true,\n legend: options.legend ?? true,\n locale: 'fr'\n }))\n );\n\n this.items$ = this.resultSet$.pipe(\n filter((resultSet) => !!resultSet),\n map((resultSet) => {\n return Object.keys(resultSet?.items)\n .map((classId) => resultSet.items[classId])\n .reduce((prev, curr) => [...prev, ...curr], []);\n })\n );\n\n this.possibleSecondaryAttributes$ = combineLatest([\n this.variableAttributes$,\n this.items$,\n this.fields$,\n this.triggerCalculatePossibleAttributes$\n ]).pipe(\n map(([variableFields, items, fields, _]) => {\n return variableFields\n .filter((attribute) => {\n // Keep only numeric values when necessary\n if (\n !this.optionsCopy.aggregation ||\n [Aggregation.NONE, Aggregation.DISTINCT, Aggregation.COUNT].includes(this.optionsCopy.aggregation)\n ) {\n return true;\n } else {\n const field = fields.find((field) => field.id === attribute.field.id);\n return [FieldType.DECIMAL, FieldType.INSTANT, FieldType.LONG, FieldType.INTEGER].includes(\n field?.type ?? FieldType.STRING\n );\n }\n })\n .filter((attribute) =>\n items.find(\n (item) =>\n Object.keys(item.attributes).includes(this.optionsCopy.selectedVariables[0].label) &&\n Object.keys(item.attributes).includes(attribute.technicalName) &&\n !!(item.attributes[this.optionsCopy.selectedVariables[0].label] as AttributeSimpleValue).value &&\n (item.attributes[attribute.name] as AttributeSimpleValue).value !== undefined\n )\n );\n }),\n map((props) => WidgetChartComponent.uniqueAttributesByNames(props))\n );\n\n this.numericProperties$ = combineLatest([\n this.variableAttributes$,\n this.items$,\n this.fields$,\n this.triggerCalculatePossibleAttributes$\n ]).pipe(\n map(([variableFields, items, fields, _]) => {\n return variableFields\n .filter((attribute) => {\n const field = fields.find((field) => field.id === attribute.field.id);\n return [FieldType.DECIMAL, FieldType.INSTANT, FieldType.LONG, FieldType.INTEGER].includes(\n field?.type ?? FieldType.STRING\n );\n })\n .filter((attribute) =>\n items.find(\n (item) =>\n Object.keys(item.attributes).includes(attribute.technicalName) &&\n (item.attributes[attribute.technicalName] as AttributeSimpleValue).value !== undefined\n )\n );\n }),\n map((props) => {\n return WidgetChartComponent.uniqueAttributesByNames(props);\n })\n );\n\n this.textProperties$ = combineLatest([\n this.variableAttributes$,\n this.items$,\n this.fields$,\n this.triggerCalculatePossibleAttributes$\n ]).pipe(\n map(([variableFields, items, fields, _]) => {\n return variableFields\n .filter((attribute) => {\n const field = fields.find((field) => field.id === attribute.field.id);\n return [FieldType.STRING, FieldType.KEYWORD].includes(field?.type ?? FieldType.INTEGER);\n })\n .filter((attribute) =>\n items.find(\n (item) =>\n Object.keys(item.attributes).includes(attribute.technicalName) &&\n (item.attributes[attribute.technicalName] as AttributeSimpleValue).value !== undefined\n )\n );\n }),\n map((props) => {\n return WidgetChartComponent.uniqueAttributesByNames(props);\n })\n );\n\n this.filterDataForOptions$ = combineLatest([this.items$, this.options$, this.variableAttributes$]).pipe(\n filter(([items, options]) => options.selectedVariables && options.selectedVariables.length > 0),\n map(([items, options, variables]) => WidgetChartComponent.matchingItems(items, options, variables))\n );\n\n this.filterDataForOptionsCopy$ = combineLatest([\n this.items$,\n this.triggerCalculatePossibleAttributes$.pipe(delay(200)),\n this.variableAttributes$\n ]).pipe(\n filter(([items, _]) => this.optionsCopy.selectedVariables && this.optionsCopy.selectedVariables.length > 0),\n map(([items, _, variables]) => WidgetChartComponent.matchingItems(items, this.optionsCopy, variables))\n );\n\n this.subscriptions.add(\n this.options$.pipe(filter((opt) => !!opt)).subscribe((options) => {\n this.optionsCopy = structuredClone(options);\n this.updateAdvancedEdit(JSON.stringify(this.optionsCopy.specToMerge));\n this.optionsCopy.type = !this.markTypes.includes(this.optionsCopy.type)\n ? this.markTypes[0]\n : this.optionsCopy.type;\n this.optionsCopy.subType = this.optionsCopy.subType ?? MarkSubType.DEFAULT;\n this.optionsCopy.aggregation = !this.aggregations.includes(this.optionsCopy.aggregation)\n ? this.aggregations[0]\n : this.optionsCopy.aggregation;\n if (this.optionsCopy.series) {\n this.optionsCopy.series.scheme =\n this.optionsCopy.series?.scheme &&\n this.schemes &&\n !this.schemes.find((s) => s.id === this.optionsCopy?.series?.scheme)\n ? this.schemes[0].id\n : this.optionsCopy.series?.scheme;\n }\n })\n );\n\n this.vegaLiteSpec$ = combineLatest([\n this.store.select(DashboardSelectors.windowManifest),\n this.manifest$,\n this.widgetSize$,\n this.filterDataForOptions$,\n this.options$,\n this.displayHeader$,\n this.variableAttributes$\n ]).pipe(\n map(([windowManifest, widgetManifest, size, data, options, displayHeader, variableField]) => {\n let spec = vegaBaseConf;\n switch (options.type) {\n case MarkType.RADAR:\n spec = vegaRadarConf;\n break;\n case MarkType.CIRCLE_PACK:\n spec = vegaCirclePackConf;\n }\n\n spec.title = options.customTitle ?? options.title;\n\n switch (options.type) {\n case MarkType.RADAR:\n spec.signals[0].update = size.width > size.height ? 'height / 2' : 'width / 2';\n spec.data[0].values = WidgetChartComponent.buildDataVegaRadar(data, options);\n spec.scales[2].range.scheme = options.series?.scheme;\n break;\n case MarkType.CIRCLE_PACK:\n spec.data[0].values = structuredClone(data);\n spec.data[1].transform[0].key = 'attributes.' + options.packing?.id + '.value';\n spec.data[1].transform[0].parentKey = 'attributes.' + options.packing?.parentId + '.value';\n spec.data[1].transform[1].field = 'attributes.' + options.packing?.packField + '.value';\n spec.marks[0].encode.enter.tooltip.signal = `datum.attributes.${\n options.packing?.tooltip ?? options.packing?.id\n }.value + ' : ' + datum.attributes.${options.packing?.packField}.value`;\n break;\n default:\n spec.data = { values: structuredClone(data) };\n spec.layer = [\n {\n mark: {\n type: options.type,\n point:\n options.type === MarkType.POINT ||\n options.subType === MarkSubType.WITH_LINES_AND_POINTS ||\n options.subType === MarkSubType.WITH_POINTS,\n line: options.type === MarkType.LINE || options.subType === MarkSubType.WITH_LINES_AND_POINTS,\n innerRadius: options.innerRadius,\n tooltip: options.tooltip ?? true\n },\n encoding: WidgetChartComponent.calculateEncoding(options)\n }\n ];\n if (options.fill) {\n spec.layer[0].mark.fill = options.fill;\n }\n if (options.subType === MarkSubType.AREASTACKED || options.subType === MarkSubType.HISTOSTACKED) {\n spec.data.transform = [\n {\n type: 'stack',\n groupby: [options.selectedVariables[0].name],\n sort: { field: options.series?.groupBy },\n field: options.selectedVariables[1].name\n }\n ];\n }\n }\n const merged = mergeDeep(spec, { config: fontConfig('Ubuntu, sans-serif') } as any, options.specToMerge);\n\n if (!!options.specToMerge) {\n console.log(JSON.stringify(spec));\n }\n\n return merged;\n })\n );\n\n this.isChartValid$ = this.options$.pipe(\n map(\n (options) =>\n !!options.type &&\n // We must have the correct number of variables to draw the graph\n (options.selectedVariables.filter((v) => !!v.type).length > 1 ||\n (options.selectedVariables.filter((v) => !!v.type).length > 0 &&\n (options.aggregation === Aggregation.COUNT ||\n options.aggregation === Aggregation.DISTINCT ||\n options.aggregation === Aggregation.NONE)))\n )\n );\n }\n\n ngAfterViewInit() {\n this.subscriptions.add(\n combineLatest([this.vegaLiteSpec$, this.trigger$]).subscribe(([spec, _]) => {\n if (this.vega) {\n this.view?.finalize();\n embed(this.vega.nativeElement, structuredClone(spec), {\n actions: false,\n renderer: 'svg',\n formatLocale:\n this.optionsCopy.locale === 'fr'\n ? {\n decimal: ',',\n thousands: '\\u00a0',\n grouping: [3],\n currency: ['', '\\u00a0€'],\n percent: '\\u202f%'\n }\n : {\n decimal: '.',\n thousands: ',',\n grouping: [3],\n currency: ['$', '']\n },\n // @ts-ignore\n viewClass: VegaErrorHandler\n }).then((result) => (this.view = result.view));\n } else {\n setTimeout(() => this.trigger$.next(), 100);\n }\n })\n );\n this.trigger$.next();\n }\n\n static calculateEncoding(options: ChartWidgetOptions) {\n const variables = options.selectedVariables ?? [{}, {}];\n switch (options.type) {\n case MarkType.ARC:\n return {\n theta: {\n field: `attributes.${variables[1].name}.value`,\n title: variables[1].label,\n type: variables[1].type,\n aggregate: options.aggregation ?? Aggregation.COUNT\n },\n color: {\n field: `attributes.${variables[0].name}.value`,\n title: variables[0].label,\n type: variables[0].type,\n legend: options.legend ?? true,\n scale: options.scale ?? { scheme: options.series?.scheme ?? 'category20c' }\n }\n };\n case MarkType.RADAR:\n return {};\n default:\n const encoding = {\n x: {\n field: `attributes.${variables[0].name}.value`,\n title: variables[0].label,\n type: variables[0].type,\n timeUnit: variables[0].type === VegaType.TEMPORAL ? variables[0].timeUnit : undefined,\n bin: options.subType === MarkSubType.HISTOGRAM,\n axis: variables[0].axisOptions,\n scale: {\n // Force a false value here so that vega understand properly\n zero: !!variables[0].origin0,\n type: WidgetChartComponent.isTimeUnitUTC(variables[0]) ? 'utc' : undefined\n }\n },\n y: {\n field: `attributes.${variables[1].name}.value`,\n title: variables[1].label,\n type: options.aggregation === Aggregation.COUNT ? VegaType.QUANTITATIVE : variables[1].type,\n timeUnit: variables[1].type === VegaType.TEMPORAL ? variables[1].timeUnit : undefined,\n axis: variables[1].axisOptions,\n aggregate: options.aggregation !== Aggregation.NONE ? options.aggregation : undefined,\n scale: {\n zero: variables[1].origin0,\n type: WidgetChartComponent.isTimeUnitUTC(variables[1]) ? 'utc' : undefined\n }\n }\n };\n if (options.series) {\n // @ts-ignore\n encoding.color = {\n title: `${options.series.groupBy}`,\n field: `attributes.${options.series.groupBy}.value`,\n legend: options.legend\n };\n if (options.series.scheme) {\n // @ts-ignore\n encoding.color.scale = { scheme: options.series.scheme };\n }\n }\n return encoding;\n }\n }\n\n static buildDataVegaRadar(items: Item[], options: ChartWidgetOptions): RadarValue[] {\n if (options.radar?.compare === 'item') {\n return items\n .map((item, idx) =>\n (options.radar?.props ?? []).map((prop: string) => {\n const itemValueMultiple = ItemUtils.getAttributeValue(item, prop);\n const itemValue = Array.isArray(itemValueMultiple) ? itemValueMultiple[0] : itemValueMultiple;\n return {\n category: idx,\n key: prop,\n value: itemValue?.value\n } as RadarValue;\n })\n )\n .reduce((a: RadarValue[], b: RadarValue[]) => [...a, ...b], [])\n .filter((a: RadarValue) => a.value !== undefined && a.value !== null);\n } else {\n return items\n .map(\n (item, idx) =>\n ({\n category: (item.attributes[options.radar?.categoryProp ?? ''] as AttributeSimpleValue)?.value ?? 'object',\n key: (item.attributes[options.radar?.keyProp ?? ''] as AttributeSimpleValue)?.value,\n value: (item.attributes[options.radar?.valueProp ?? ''] as AttributeSimpleValue)?.value\n }) as RadarValue\n )\n .filter((a: RadarValue) => a.value !== undefined && a.value !== null && !!a.key);\n }\n }\n\n static matchingItems(items: Item[], options: ChartWidgetOptions, attributes: Attribute[]) {\n return items.filter((item) => {\n switch (options.type) {\n case MarkType.CIRCLE_PACK:\n return !!options.packing?.id && !!options.packing.parentId && !!options.packing.packField;\n case MarkType.RADAR:\n return (\n ((options.radar?.compare === 'item' && (options.radar.props?.length ?? 0) > 2) ||\n (options.radar?.compare !== 'item' &&\n !!options.radar?.keyProp &&\n !!options.radar.valueProp &&\n !!options.radar.categoryProp)) &&\n WidgetChartComponent.buildDataVegaRadar(items, options).length > 0\n );\n default:\n return (\n Object.keys(item.attributes).includes(options.selectedVariables[0].name) &&\n (item.attributes[options.selectedVariables[0].name] as AttributeSimpleValue).value !== undefined &&\n ((Object.keys(item.attributes).includes(options.selectedVariables[1].name) &&\n (item.attributes[options.selectedVariables[1].name] as AttributeSimpleValue).value !== undefined) ||\n options.aggregation === Aggregation.DISTINCT ||\n options.aggregation === Aggregation.COUNT)\n );\n }\n });\n }\n\n static uniqueAttributesByNames(attributes: Attribute[]): Attribute[] {\n return [...new Set(attributes.map((attr) => attr.technicalName))].map(\n (attrName) => attributes.find((attr) => attr.technicalName === attrName) ?? ({} as Attribute)\n );\n }\n\n templateTypeTranslationFn = (item: any, args: any[]) =>\n `${args[0]}${item === MarkSubType.DEFAULT ? item : args[1] + args[2] + item}`;\n\n advancedEdit: string = '{}';\n\n changeChartTitle(title: string) {\n this.optionsCopy.customTitle = title;\n }\n\n changeTimeUnit($event: TimeUnit, variable: VariableDefinition) {\n variable.timeUnit = $event;\n }\n\n changeAggregation($event: Aggregation) {\n this.optionsCopy.aggregation = $event;\n if ([Aggregation.COUNT, Aggregation.DISTINCT].includes($event!)) {\n this.optionsCopy.selectedVariables[1].axisOptions = { tickMinStep: 1 };\n } else {\n delete this.optionsCopy.selectedVariables[1].axisOptions;\n }\n this.triggerCalculatePossibleAttributes$.next();\n }\n\n changeProperty(attrName: string, index: number) {\n const attr = this.variableAttributes.find((attr) => attr.technicalName === attrName);\n if (!!attr) {\n this.optionsCopy.selectedVariables[index].name = attr.name;\n this.optionsCopy.selectedVariables[index].label = attr.name;\n const field = this.fields.find((field) => field.id === attr.field.id)?.type ?? FieldType.STRING;\n this.optionsCopy.selectedVariables[index].type = this.translateToVegaType(field, attr.name);\n this.optionsCopy.selectedVariables[index].axisOptions = this.minTick(field);\n this.optionsCopy.title =\n this.optionsCopy.selectedVariables[0].label + ', ' + this.optionsCopy.selectedVariables[1].label;\n }\n this.triggerCalculatePossibleAttributes$.next();\n }\n\n static isTimeUnitUTC(variableDef: VariableDefinition): boolean {\n let utcRegex = new RegExp(/_utc|utc_|_UTC|UTC_|_Utc|Utc_/, 'g');\n return utcRegex.test(variableDef?.label);\n }\n\n changeLabel(label: string, index: number) {\n let updateTitle = false;\n if (\n this.optionsCopy.title ===\n this.optionsCopy.selectedVariables[0].label + ', ' + this.optionsCopy.selectedVariables[1].label\n ) {\n updateTitle = true;\n }\n\n this.optionsCopy.selectedVariables[index].label = label;\n if (updateTitle) {\n //update title if it has not been modified manually\n this.optionsCopy.title =\n this.optionsCopy.selectedVariables[0].label + ', ' + this.optionsCopy.selectedVariables[1].label;\n }\n }\n\n toggleOriginAtZero(variable: VariableDefinition, $event: boolean) {\n variable.origin0 = $event;\n }\n\n changeType(typeOptionsId: string) {\n this.optionsCopy = structuredClone(this.optionsCopy);\n const [type, subType] = typeOptionsId.split('-');\n // @ts-ignore\n this.optionsCopy.type = type;\n this.optionsCopy.subType = subType ?? MarkSubType.DEFAULT;\n\n if (this.optionsCopy.type === MarkType.CIRCLE_PACK) {\n this.optionsCopy.packing = {};\n } else {\n delete this.optionsCopy.packing;\n }\n\n if (this.optionsCopy.type === MarkType.RADAR) {\n this.optionsCopy.radar = {};\n } else {\n delete this.optionsCopy.radar;\n }\n\n switch (this.optionsCopy.type) {\n case MarkType.BAR:\n case MarkType.LINE:\n this.optionsCopy.selectedVariables[0].type =\n this.optionsCopy.selectedVariables[0].type !== VegaType.TEMPORAL ? VegaType.NOMINAL : VegaType.TEMPORAL;\n break;\n case MarkType.POINT:\n this.optionsCopy.selectedVariables[1].type =\n this.optionsCopy.selectedVariables[1].type !== VegaType.TEMPORAL ? VegaType.QUANTITATIVE : VegaType.TEMPORAL;\n break;\n }\n\n if (this.optionsCopy.subType === MarkSubType.AREASTACKED || this.optionsCopy.subType === MarkSubType.HISTOSTACKED) {\n this.optionsCopy.series = this.optionsCopy.series ?? {};\n }\n\n this.resetChart();\n\n if (subType === MarkSubType.DONUT) {\n this.optionsCopy.innerRadius = this.optionsCopy.innerRadius ?? 50;\n }\n }\n\n resetChart() {\n if (this.optionsCopy.selectedVariables?.length > 2) {\n this.optionsCopy.selectedVariables.pop();\n }\n }\n\n override emitManifest() {\n this.manifestModified.emit({\n widgetIndex: this.widgetIndex,\n manifest: {\n ...this.manifest,\n options: { ...this.optionsCopy }\n }\n });\n }\n\n translateToVegaType(type: FieldType, name: string): VegaType {\n let idRegex = new RegExp(/_id|id_|_ID|ID_|_Id|Id_/, 'g');\n if (idRegex.test(name)) {\n return VegaType.ORDINAL;\n }\n switch (type) {\n case FieldType.DECIMAL:\n case FieldType.INTEGER:\n case FieldType.LONG:\n return VegaType.QUANTITATIVE;\n case FieldType.INSTANT:\n return VegaType.TEMPORAL;\n case FieldType.KEYWORD:\n case FieldType.STRING:\n return VegaType.NOMINAL;\n default:\n return VegaType.NOMINAL;\n }\n }\n\n minTick(type: FieldType): { tickMinStep: number } | undefined {\n switch (type) {\n case FieldType.INTEGER:\n case FieldType.LONG:\n return { tickMinStep: 1 };\n case FieldType.DECIMAL:\n case FieldType.INSTANT:\n case FieldType.KEYWORD:\n case FieldType.STRING:\n default:\n return undefined;\n }\n }\n\n trigger() {\n this.triggerCalculatePossibleAttributes$.next();\n }\n\n proposeTitle() {\n setTimeout(() => {\n if (this.optionsCopy.type === MarkType.RADAR) {\n if (this.optionsCopy.radar?.compare === 'item') {\n this.optionsCopy.title = this.translateService.instant('@pry.widget.chart.radar.titleItem', {\n props: (this.optionsCopy.radar.props || []).join(', ')\n });\n }\n if (this.optionsCopy.radar?.compare === 'value') {\n this.optionsCopy.title = this.translateService.instant('@pry.widget.chart.radar.titleList', {\n key: this.optionsCopy.radar.keyProp ?? this.translateService.instant('@pry.widget.chart.radar.defineKey'),\n value:\n this.optionsCopy.radar.valueProp ?? this.translateService.instant('@pry.widget.chart.radar.defineValue'),\n category:\n this.optionsCopy.radar.categoryProp ??\n this.translateService.instant('@pry.widget.chart.radar.defineCategory')\n });\n }\n }\n if (this.optionsCopy.type === MarkType.CIRCLE_PACK) {\n this.optionsCopy.title = this.translateService.instant('@pry.widget.chart.circle.title', {\n field: this.optionsCopy.packing?.packField ?? ''\n });\n }\n }, 100);\n }\n\n changeInnerRadius($event: string) {\n // @ts-ignore\n this.optionsCopy.innerRadius = parseInt($event, 10);\n }\n\n openSettings() {\n (this.open$ as Subject<void>).next(undefined);\n }\n\n toggleSeries($event: any) {\n if ($event) {\n this.optionsCopy.series = {};\n } else {\n delete this.optionsCopy.series;\n }\n }\n\n changeSeries($event: any) {\n if (!this.optionsCopy.series) {\n this.optionsCopy.series = {};\n }\n this.optionsCopy.series.groupBy = $event;\n }\n\n changeSeriesScheme($event: any) {\n if (!this.optionsCopy.series) {\n this.optionsCopy.series = {};\n }\n this.optionsCopy.series.scheme = $event;\n }\n\n toggleSeriesLegend($event: any) {\n this.optionsCopy.legend = $event;\n }\n\n toggleTooltip($event: any) {\n this.optionsCopy.tooltip = $event;\n }\n\n axeLabel(i: number, optionsCopy: ChartWidgetOptions) {\n if (optionsCopy?.type === MarkType.ARC) {\n return i === 0 ? '@pry.widget.chart.encoding.group' : '@pry.widget.chart.encoding.values';\n }\n return i === 0 ? '@pry.widget.chart.encoding.horizontal' : '@pry.widget.chart.encoding.vertical';\n }\n\n hasNoType(options: ChartWidgetOptions) {\n return !options || !options.type || options.type.includes('undefined') || options.type.includes('null');\n }\n\n scheme() {\n return vega.scheme(this.optionsCopy.series?.scheme ?? '');\n }\n\n toggleSpecToMerge($event: any) {\n if ($event) {\n this.optionsCopy.specToMerge = {};\n this.advancedEdit = '{}';\n } else {\n delete this.optionsCopy.specToMerge;\n this.advancedEdit = '{}';\n }\n }\n\n updateAdvancedEdit($event: any) {\n const value = $event?.target?.value ?? $event;\n if (value) {\n try {\n this.optionsCopy.specToMerge = JSON.parse(value);\n this.advancedEdit = JSON.stringify(this.optionsCopy.specToMerge, undefined, 4);\n this.invalidJson = false;\n } catch (e) {\n console.error('Invalid json provided');\n this.invalidJson = true;\n }\n this.cdRef.markForCheck();\n } else {\n delete this.optionsCopy.specToMerge;\n this.advancedEdit = '{}';\n }\n }\n\n override toImage(): Promise<string> {\n return new Promise((resolve, reject) => {\n resolve(this.vega.nativeElement.querySelectorAll('canvas')[0].toDataURL('image/png'));\n });\n }\n}\n","<pry-widget-chart-css></pry-widget-chart-css>\n<div class=\"o-widget o-widget--chart\">\n @if (displayHeader$ | async) {\n <pry-widget-header\n [datasourceIds]=\"(datasourceIds$ | async) ?? []\"\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"manifest\"\n (manifestModified)=\"manifestModified.emit($event)\"\n #header\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n >\n <pry-settings\n (saveTriggered)=\"emitManifest()\"\n (changeTitle)=\"changeWidgetTitle($event)\"\n [headerPresent]=\"displayHeader$ | async\"\n [isDisable]=\"(filterDataForOptionsCopy$ | async)?.length === 0 || hasNoType(optionsCopy)\"\n [widgetIndex]=\"widgetIndex\"\n [open$]=\"open$\"\n [header]=\"header\"\n class=\"o-settings\"\n >\n <div class=\"o-settings__popup__content__fields -condensed\">\n <pry-edit-input\n label=\"@pry.widget.chart.title\"\n (ngModelChange)=\"changeChartTitle($event)\"\n [ngModel]=\"optionsCopy.customTitle ?? optionsCopy.title\"\n ></pry-edit-input>\n <div class=\"m-form-label-field\">\n @if ((filterDataForOptionsCopy$ | async)?.length === 0) {\n <p class=\"a-label a-label--help -error\">{{ '@pry.widget.chart.params.noParams' | i18n }}</p>\n } @else {\n @if (optionsCopy?.type !== MarkType.RADAR) {\n <div>\n {{ '@pry.widget.chart.params.multipleParams' | i18n }}{{ (filterDataForOptionsCopy$ | async)?.length }}\n </div>\n }\n }\n </div>\n @if (optionsCopy) {\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"chart_type\">{{ '@pry.widget.chart.type' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeType($event)\"\n [items]=\"typeOptions\"\n [ngModel]=\"optionsCopy.type + '-' + optionsCopy.subType\"\n i18nPrefix=\"@pry.widget.chart.markType.\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"chart_type\"\n ></pry-select>\n </div>\n }\n </div>\n @if (optionsCopy?.type !== MarkType.RADAR && optionsCopy?.type !== MarkType.CIRCLE_PACK) {\n @if (optionsCopy?.subType === MarkSubType.DONUT) {\n <pry-range\n [ngModel]=\"optionsCopy.innerRadius\"\n (ngModelChange)=\"changeInnerRadius($event)\"\n labelTranslate=\"@pry.widget.chart.innerRadius\"\n min=\"1\"\n max=\"500\"\n ></pry-range>\n }\n @for (variableDef of optionsCopy?.selectedVariables; track variableDef; let i = $index) {\n <div\n class=\"o-settings__popup__content__fields -condensed\"\n >\n @if (i === 1) {\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"aggregations\">{{ '@pry.widget.chart.encoding.group' | i18n }}</label>\n @if (i === 1) {\n <pry-select\n (ngModelChange)=\"changeAggregation($event)\"\n [items]=\"aggregations\"\n [ngModel]=\"optionsCopy.aggregation\"\n id=\"aggregations\"\n i18nPrefix=\"@pry.widget.chart.aggregation.\"\n ></pry-select>\n }\n </div>\n }\n @if (i !== 1 || optionsCopy.aggregation !== 'count') {\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"aggregation_property\">\n {{ axeLabel(i, optionsCopy) | i18n }}\n </label>\n <pry-select\n (ngModelChange)=\"changeProperty($event, i)\"\n [items]=\"(i !== 1 ? variableAttributes$ : possibleSecondaryAttributes$) | async\"\n [ngModel]=\"variableDef.name\"\n bindLabel=\"name\"\n bindValue=\"technicalName\"\n id=\"aggregation_property\"\n ></pry-select>\n </div>\n }\n <pry-edit-input\n label=\"@pry.widget.chart.dataLabel\"\n (ngModelChange)=\"changeLabel($event, i)\"\n [ngModel]=\"variableDef.label\"\n ></pry-edit-input>\n @if (variableDef.type === 'temporal') {\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"chart_timeUnit\">{{ '@pry.widget.chart.timeUnit' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeTimeUnit($event, variableDef)\"\n [items]=\"timeUnits\"\n [ngModel]=\"variableDef.timeUnit\"\n i18nPrefix=\"@pry.widget.chart.timeUnitList.\"\n id=\"chart_timeUnit\"\n ></pry-select>\n </div>\n }\n @if (variableDef.type === 'quantitative' && optionsCopy?.type !== 'arc') {\n <div class=\"m-form-label-field\">\n <pry-checkbox (ngModelChange)=\"toggleOriginAtZero(variableDef, $event)\" [ngModel]=\"variableDef.origin0\"\n >{{ '@pry.widget.chart.origin' | i18n }}\n </pry-checkbox>\n </div>\n }\n </div>\n }\n <div class=\"o-settings__popup__content__fields -condensed\">\n <div class=\"m-form-label-field\">\n @if (optionsCopy?.type !== MarkType.ARC && optionsCopy?.type !== MarkType.RADAR) {\n <pry-checkbox\n (ngModelChange)=\"toggleSeries($event)\"\n [ngModel]=\"!!optionsCopy.series\"\n [disabled]=\"\n this.optionsCopy.subType === MarkSubType.AREASTACKED ||\n this.optionsCopy.subType === MarkSubType.HISTOSTACKED\n \"\n >{{ '@pry.widget.chart.series' | i18n }}\n </pry-checkbox>\n }\n </div>\n @if (optionsCopy?.type !== MarkType.ARC && optionsCopy?.type !== MarkType.RADAR && !!optionsCopy.series) {\n <div\n class=\"m-form-label-field\"\n >\n <label class=\"a-label\" for=\"chart_seriesAttr\">{{ '@pry.widget.chart.seriesAttr' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeSeries($event)\"\n [ngModel]=\"optionsCopy.series.groupBy!\"\n [items]=\"variableAttributes$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"chart_seriesAttr\"\n ></pry-select>\n </div>\n }\n @if (\n (optionsCopy?.type === MarkType.ARC || optionsCopy?.type === MarkType.RADAR || !!optionsCopy.series) &&\n schemes\n ) {\n <div\n class=\"m-form-label-field\"\n >\n <label class=\"a-label\" for=\"chart_seriesScheme\" [title]=\"'@pry.widget.chart.seriesSchemeAlt' | i18n\">{{\n '@pry.widget.chart.seriesScheme' | i18n\n }}</label>\n <pry-select\n (ngModelChange)=\"changeSeriesScheme($event)\"\n [ngModel]=\"optionsCopy.series?.scheme!\"\n [items]=\"schemes\"\n id=\"chart_seriesScheme\"\n i18nPrefix=\"@pry.widget.chart.scheme.\"\n bindValue=\"id\"\n bindLabel=\"id\"\n ></pry-select>\n </div>\n }\n <div class=\"o-widget--chart-color-thumb\">\n @for (schemeColor of scheme(); track schemeColor) {\n <div\n class=\"o-widget--chart-color-thumb-item\"\n [title]=\"schemeColor\"\n [style.background-color]=\"schemeColor\"\n ></div>\n }\n </div>\n <div class=\"m-form-label-field\">\n @if (optionsCopy?.type !== MarkType.RADAR || !!optionsCopy.series) {\n <pry-checkbox\n (ngModelChange)=\"toggleSeriesLegend($event)\"\n [ngModel]=\"!!optionsCopy.legend!\"\n >{{ '@pry.widget.chart.seriesLegend' | i18n }}\n </pry-checkbox>\n }\n </div>\n <div class=\"m-form-label-field\">\n <pry-checkbox (ngModelChange)=\"toggleTooltip($event)\" [ngModel]=\"!!optionsCopy.tooltip!\"\n >{{ '@pry.widget.chart.tooltip' | i18n }}\n </pry-checkbox>\n </div>\n </div>\n }\n @if (optionsCopy?.type === MarkType.RADAR && optionsCopy.radar !== undefined) {\n <div class=\"o-settings__popup__content__fields -condensed\">\n <div class=\"m-form-label-field\">\n <pry-select\n (ngModelChange)=\"trigger(); proposeTitle()\"\n [(ngModel)]=\"optionsCopy.radar.compare\"\n [items]=\"comparisons\"\n bindLabel=\"name\"\n bindValue=\"id\"\n ></pry-select>\n </div>\n @if (optionsCopy.radar.compare === 'item') {\n <div class=\"m-form-label-field\">\n <pry-select\n (ngModelChange)=\"trigger(); proposeTitle()\"\n [(ngModel)]=\"optionsCopy.radar.props\"\n [items]=\"numericProperties$ | async\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n bindLabel=\"name\"\n bindValue=\"name\"\n ></pry-select>\n </div>\n }\n @if (optionsCopy.radar.compare === 'value') {\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"comparison_key\">{{ '@pry.widget.chart.comparison.key' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"trigger(); proposeTitle()\"\n [(ngModel)]=\"optionsCopy.radar.keyProp\"\n [items]=\"textProperties$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"comparison_key\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"comparison_values\">{{ '@pry.widget.chart.comparison.values' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"trigger(); proposeTitle()\"\n [(ngModel)]=\"optionsCopy.radar.valueProp\"\n [items]=\"numericProperties$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"comparison_values\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"comparison_category\">{{\n '@pry.widget.chart.comparison.category' | i18n\n }}</label>\n <pry-select\n (ngModelChange)=\"trigger(); proposeTitle()\"\n [(ngModel)]=\"optionsCopy.radar.categoryProp\"\n [items]=\"textProperties$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"comparison_category\"\n ></pry-select>\n </div>\n }\n @if (schemes) {\n <label\n class=\"a-label\"\n for=\"chart_seriesScheme_radar\"\n [title]=\"'@pry.widget.chart.seriesSchemeAlt' | i18n\"\n >{{ '@pry.widget.chart.seriesScheme' | i18n }}</label\n >\n <pry-select\n (ngModelChange)=\"changeSeriesScheme($event)\"\n [ngModel]=\"optionsCopy.series?.scheme!\"\n [items]=\"schemes\"\n id=\"chart_seriesScheme_radar\"\n ></pry-select>\n }\n </div>\n }\n @if (optionsCopy?.type === MarkType.CIRCLE_PACK && optionsCopy.packing !== undefined) {\n <div class=\"o-settings__popup__content__fields -condensed\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"chart_circle_id\">{{ '@pry.widget.chart.circle.id' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"trigger(); proposeTitle()\"\n [(ngModel)]=\"optionsCopy.packing.id\"\n [items]=\"variableAttributes$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"chart_circle_id\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"chart_circle_pid\">{{ '@pry.widget.chart.circle.pid' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"trigger(); proposeTitle()\"\n [(ngModel)]=\"optionsCopy.packing.parentId\"\n [items]=\"variableAttributes$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"chart_circle_pid\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"chart_circle_field\">{{ '@pry.widget.chart.circle.field' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"trigger(); proposeTitle()\"\n [(ngModel)]=\"optionsCopy.packing.packField\"\n [items]=\"numericProperties$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"chart_circle_field\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"chart_circle_tooltip\">{{ '@pry.widget.chart.circle.tooltip' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"trigger(); proposeTitle()\"\n [(ngModel)]=\"optionsCopy.packing.tooltip\"\n [items]=\"variableAttributes$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"chart_circle_tooltip\"\n ></pry-select>\n </div>\n </div>\n }\n <div class=\"o-settings__popup__content__fields -condensed\">\n <pry-checkbox (ngModelChange)=\"toggleSpecToMerge($event)\" [ngModel]=\"!!optionsCopy.specToMerge\"\n >{{ '@pry.widget.chart.moreOptions' | i18n }}\n </pry-checkbox>\n @if (!!optionsCopy.specToMerge) {\n <textarea\n [ngModel]=\"advancedEdit\"\n (focusout)=\"updateAdvancedEdit($event)\"\n class=\"o-settings__popup__content__area\"\n [class.-invalid]=\"invalidJson\"\n ></textarea>\n }\n </div>\n </pry-settings>\n </pry-widget-header>\n }\n @if (isChartValid$ | async) {\n <div\n #vega\n [style.height.px]=\"\n ((widgetSize$ | async)?.height ?? 0) - ((displayHeader$ | async) ? 1 : 0) * WIDGET_HEADER_HEIGHT\n \"\n [style.width.px]=\"(widgetSize$ | async)?.width\"\n ></div>\n }\n\n @if (!(isChartValid$ | async)) {\n <div class=\"o-widget__choose-parameters\">\n <p class=\"a-p\">\n {{ '@pry.widget.chart.chooseParameters' | i18n }}\n </p>\n <button type=\"button\" (click)=\"openSettings()\" class=\"a-btn a-btn--primary\">\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"control\"></pry-icon>\n <span>{{ '@pry.widget.settings.title' | i18n }}</span>\n </button>\n </div>\n }\n </div>\n","export const enTranslations = {\n '@pry': {\n widget: {\n chart: {\n title: 'Chart title',\n tooltip: 'Display tooltip',\n params: {\n noParams: 'No data for chart with selected settings',\n multipleParams: 'Number of data with selected parameters: '\n },\n encoding: {\n horizontal: 'Horizontal axis',\n vertical: 'Vertical axis',\n group: 'Operation type',\n values: 'Values'\n },\n markType: {\n null: '',\n bar: 'Bar chart',\n line: 'Line',\n point: 'Points',\n area: 'Area',\n arc: 'Arc',\n radar: 'Radar',\n circle_pack: 'Circle packing',\n histogram: 'Histogram',\n timehistogram: 'Time histogram',\n grouped: 'Grouped bar chart',\n histostacked: 'Stacked bar chart',\n withPoints: 'Line with points',\n multi: 'Multi series line chart',\n scatterColor: 'Scatter plot with color',\n withLinesAndPoints: 'Area chart with overlaying lines and point markers',\n areastacked: 'Stacked area chart',\n pie: 'Pie Chart',\n donut: 'Donut chart'\n },\n scheme: {\n accent: '8 colors n°1',\n set2: '8 colors n°2',\n dark2: '8 dark colors',\n pastel2: '8 pastel colors',\n set1: '9 colors',\n pastel1: '9 pastel colors',\n category10: '10 colors',\n tableau10: '10 different colors',\n set3: '12 colors',\n paired: '12 different colors',\n tableau20: '20 colors',\n category20: '20 colors with 2 shades',\n category20b: '20 colors with 4 shades n°1',\n category20c: '20 colors with 4 shades n°2',\n 'KO/W/OK': 'Traffic light',\n Provoly: 'Provoly'\n },\n dataLabel: 'Data label',\n origin: 'Origin at zero',\n series: 'Group as series',\n seriesAttr: 'grouping attribute',\n seriesScheme: 'Color scheme',\n seriesSchemeAlt: 'https://vega.github.io/vega/docs/schemes/',\n seriesLegend: 'Display legend',\n chooseParameters: 'Please select parameters to display chart.',\n timeUnit: 'Time unit',\n timeUnitList: {\n year: 'Year',\n quarter: 'Quarter',\n month: 'Month',\n week: 'Week',\n day: 'Day',\n hours: 'Hours',\n minutes: 'Minutes'\n },\n type: 'Chart type',\n template: 'Chart template',\n aggregation: {\n none: 'Value',\n count: 'Count',\n sum: 'Sum',\n distinct: 'Distinct elements',\n average: 'Average',\n median: 'Median',\n q1: 'Lower quartile',\n q3: 'Upper Quartile',\n min: 'Minimum',\n max: 'Maximum'\n },\n comparison: {\n item: 'Compare objects',\n value: 'Value list',\n key: 'Branch property',\n values: 'Value property',\n category: 'Object property'\n },\n radar: {\n titleItem: 'Compare displaying {{props}}',\n titleList: 'Branches {{key}}, diplaying {{value}}, grouped by {{category}}',\n defineKey: '«Key»',\n defineValue: '«Value»',\n defineCategory: '«Category»'\n },\n circle: {\n id: 'Field for item identifier',\n pid: 'Field for parent item identifier',\n field: 'Field containing value',\n title: 'Circle packing displaying {{field}}',\n tooltip: 'Property to display in tooltip'\n },\n innerRadius: 'Inner radius',\n moreOptions: 'Advanced mode'\n }\n }\n }\n};\n","export const frTranslations = {\n '@pry': {\n widget: {\n chart: {\n title: 'Titre du graphique',\n tooltip: 'Affichage des info-bulles',\n params: {\n noParams: 'Aucune donnée pour le graphique avec les paramètres sélectionnés',\n multipleParams: 'Nombre de données avec les paramètres sélectionnés: '\n },\n encoding: {\n horizontal: 'Axe horizontal',\n vertical: 'Axe vertical',\n group: 'Type de calcul',\n values: 'Valeurs'\n },\n markType: {\n null: '',\n bar: 'Barres',\n line: 'Courbe',\n point: 'Points',\n area: 'Aire',\n arc: 'Circulaire',\n radar: 'Radar',\n circle_pack: 'Paquets de cercles',\n histogram: 'Histogramme',\n timehistogram: 'Histogramme de temps',\n grouped: 'Histogramme empilé',\n histostacked: 'Histogramme groupé',\n withPoints: 'Courbe avec marques',\n multi: 'Courbes empilées',\n scatterColor: 'Nuages de points avec couleurs',\n withLinesAndPoints: 'Aire avec lignes et marques',\n areastacked: 'Aires empilées',\n pie: 'Diagramme circulaire',\n donut: 'Diagramme anneau'\n },\n scheme: {\n accent: '8 couleurs n°1',\n set2: '8 couleurs n°2',\n dark2: '8 couleurs sombre',\n pastel2: '8 couleurs pastel',\n set1: '9 couleurs',\n pastel1: '9 couleurs pastel',\n category10: '10 couleurs',\n tableau10: '10 couleurs différentes',\n set3: '12 couleurs',\n paired: '12 couleurs différentes',\n tableau20: '20 couleurs',\n category20: '20 couleurs avec 2 nuances',\n category20b: '20 couleurs avec 4 nuances n°1',\n category20c: '20 couleurs avec 4 nuances n°2',\n 'KO/W/OK': 'Feu de signalisation',\n Provoly: 'Provoly'\n },\n dataLabel: 'Libellé de la donnée',\n origin: 'Axe affichant la valeur zéro',\n series: 'Regrouper en séries',\n seriesAttr: 'Attribut de regroupement',\n seriesScheme: 'Jeu de couleur',\n seriesSchemeAlt: 'https://vega.github.io/vega/docs/schemes/',\n seriesLegend: 'Afficher la légende',\n chooseParameters: \"Merci de sélectionner les paramètres afin d'afficher le graphique\",\n timeUnit: 'Unité de temps',\n timeUnitList: {\n year: 'Année',\n quarter: 'Trimestre',\n month: 'Mois',\n week: 'Semaine',\n day: 'Jour',\n hours: 'Heures',\n minutes: 'Minutes'\n },\n type: 'Type de graphique',\n template: 'Modèle de graphique',\n aggregation: {\n none: 'Valeur',\n count: 'Nombre',\n sum: 'Somme',\n distinct: \"Nombre d'éléments distincts\",\n average: 'Moyenne',\n median: 'Médiane',\n q1: 'Quartile inférieur',\n q3: 'Quartile supérieur',\n min: 'Minimum',\n max: 'Maximum'\n },\n comparison: {\n item: \"Comparaison d'objets\",\n value: 'Liste de valeurs',\n key: 'Propriété contenant la branche',\n values: 'Propriété contenant la valeur',\n category: \"Propriété contenant l'objet\"\n },\n radar: {\n titleItem: 'Comparaisons affichant {{props}}',\n titleList: 'Branches {{key}}, affichant {{value}}, regroupées par {{category}}',\n defineKey: '«Clé»',\n defineValue: '«Valeur»',\n defineCategory: '«Catégorie»'\n },\n circle: {\n id: \"Champ identifiant l'item\",\n pid: 'Champ identifiant le parent',\n field: 'Champ identifiant la valeur',\n title: 'Paquets de cercles présentant {{field}}',\n tooltip: 'Champ à afficher dans le tooltip'\n },\n innerRadius: 'Taille du rayon interne',\n moreOptions: 'Mode avancé'\n }\n }\n }\n};\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n BaseWidgetComponent,\n BaseWidgetModule,\n PryCoreModule,\n PryDashboardModule,\n PryEditInputModule,\n PryI18nModule,\n PryI18nService,\n PryIconModule,\n PryRangeModule,\n PrySelectModule,\n PryToggleModule\n} from '@provoly/dashboard';\nimport { PryCheckboxModule } from '@provoly/dashboard/components/checkbox';\nimport { WidgetChartComponent } from './component/widget-chart.component';\nimport { enTranslations } from './i18n/en.translations';\nimport { frTranslations } from './i18n/fr.translations';\nimport { PryWidgetChartCssComponent } from './style/css.component';\n\n@NgModule({\n declarations: [WidgetChartComponent, PryWidgetChartCssComponent],\n imports: [\n CommonModule,\n FormsModule,\n OverlayModule,\n PryCoreModule,\n PryDashboardModule,\n PrySelectModule,\n PryIconModule,\n PryCheckboxModule,\n PryToggleModule,\n PryEditInputModule,\n PryI18nModule,\n PryRangeModule\n ],\n exports: [WidgetChartComponent]\n})\nexport class WidgetChartModule extends BaseWidgetModule {\n constructor(private pryTranslateService: PryI18nService) {\n super();\n this.pryTranslateService.addLangObject('fr', 'widget-chart', frTranslations);\n this.pryTranslateService.addLangObject('en', 'widget-chart', enTranslations);\n }\n\n override getComponent() {\n return WidgetChartComponent as Type<BaseWidgetComponent>;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i5.PryWidgetChartCssComponent","i1"],"mappings":"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"}
1
+ {"version":3,"file":"provoly-dashboard-widgets-widget-chart.mjs","sources":["../../../../projects/provoly/dashboard/widgets/widget-chart/component/vega-error.handler.ts","../../../../projects/provoly/dashboard/widgets/widget-chart/component/vega-spec.constant.ts","../../../../projects/provoly/dashboard/widgets/widget-chart/style/css.component.ts","../../../../projects/provoly/dashboard/widgets/widget-chart/component/widget-chart.component.ts","../../../../projects/provoly/dashboard/widgets/widget-chart/component/widget-chart.component.html","../../../../projects/provoly/dashboard/widgets/widget-chart/i18n/en.translations.ts","../../../../projects/provoly/dashboard/widgets/widget-chart/i18n/fr.translations.ts","../../../../projects/provoly/dashboard/widgets/widget-chart/widget-chart.module.ts","../../../../projects/provoly/dashboard/widgets/widget-chart/provoly-dashboard-widgets-widget-chart.ts"],"sourcesContent":["import { PRY_CUSTOMEVENT_TYPE, PrySnackMessage } from '@provoly/dashboard';\nimport { View } from 'vega';\nimport { ViewOptions } from 'vega-typings/types/runtime';\nimport { Runtime } from 'vega-typings/types/runtime/runtime';\n\nlet pryLogger = {\n ...console,\n debug: () => {},\n level: () => {},\n // @ts-ignore\n error: (err) => {\n // Making specific Vega error message trapping\n const customEvent = new CustomEvent<PrySnackMessage>(PRY_CUSTOMEVENT_TYPE, {\n detail: {\n type: 'error',\n message: '@pry.snack.default'\n },\n bubbles: true,\n cancelable: true\n });\n\n if (err.stack.includes('Error: missing:')) {\n customEvent.detail.message = '@pry.snack.missingParent';\n } else if (err.stack.includes(\"TypeError: Cannot read properties of undefined (reading 'value')\")) {\n customEvent.detail.message = '@pry.snack.missingValue';\n } else if (err.stack.includes('Expected number')) {\n customEvent.detail.message = '@pry.snack.emptyValues';\n }\n\n document.dispatchEvent(customEvent);\n }\n};\n\nexport class VegaErrorHandler extends View {\n constructor(runtime: Runtime, opt?: ViewOptions) {\n // @ts-ignore\n super(runtime, { ...opt, logger: pryLogger });\n }\n}\n","export const vegaBaseConf = {\n $schema: 'https://vega.github.io/schema/vega-lite/v5.json',\n title: '',\n width: 'container',\n height: 'container',\n padding: 0,\n autosize: { type: 'fit', contains: 'padding' },\n data: { values: {} },\n layer: [\n {\n mark: {\n type: '',\n point: '',\n innerRadius: 30\n },\n encoding: {}\n }\n ]\n} as any;\n\nexport const vegaRadarConf = {\n $schema: 'https://vega.github.io/schema/vega/v5.json',\n title: '',\n width: 'container',\n height: 'container',\n padding: 40,\n autosize: { type: 'none', contains: 'padding' },\n signals: [{ name: 'radius', update: 'height / 2' }],\n data: [\n {\n name: 'table',\n values: []\n },\n {\n name: 'keys',\n source: 'table',\n transform: [\n {\n type: 'aggregate',\n groupby: ['key']\n }\n ]\n }\n ],\n scales: [\n {\n name: 'angular',\n type: 'point',\n range: { signal: '[-PI, PI]' },\n padding: 0.5,\n domain: { data: 'table', field: 'key' }\n },\n {\n name: 'radial',\n type: 'linear',\n range: { signal: '[0, radius]' },\n zero: true,\n nice: false,\n domain: { data: 'table', field: 'value' },\n domainMin: 0\n },\n {\n name: 'color',\n type: 'ordinal',\n domain: { data: 'table', field: 'category' },\n range: { scheme: 'category10' }\n }\n ],\n\n encode: {\n enter: {\n x: { signal: 'radius' },\n y: { signal: 'radius' }\n }\n },\n\n marks: [\n {\n type: 'group',\n name: 'categories',\n zindex: 1,\n from: {\n facet: { data: 'table', name: 'facet', groupby: ['category'] }\n },\n marks: [\n {\n type: 'line',\n name: 'category-line',\n from: { data: 'facet' },\n encode: {\n enter: {\n interpolate: { value: 'linear-closed' },\n x: { signal: \"scale('radial', datum.value) * cos(scale('angular', datum.key))\" },\n y: { signal: \"scale('radial', datum.value) * sin(scale('angular', datum.key))\" },\n stroke: { scale: 'color', field: 'category' },\n strokeWidth: { value: 1 },\n fill: { scale: 'color', field: 'category' },\n fillOpacity: { value: 0.1 }\n }\n }\n },\n {\n type: 'text',\n name: 'value-text',\n from: { data: 'category-line' },\n encode: {\n enter: {\n x: { signal: 'datum.x' },\n y: { signal: 'datum.y' },\n text: { signal: 'datum.datum.value' },\n align: { value: 'center' },\n baseline: { value: 'middle' },\n fill: { value: 'black' }\n }\n }\n }\n ]\n },\n {\n type: 'rule',\n name: 'radial-grid',\n from: { data: 'keys' },\n zindex: 0,\n encode: {\n enter: {\n x: { value: 0 },\n y: { value: 0 },\n x2: { signal: \"radius * cos(scale('angular', datum.key))\" },\n y2: { signal: \"radius * sin(scale('angular', datum.key))\" },\n stroke: { value: 'lightgray' },\n strokeWidth: { value: 1 }\n }\n }\n },\n {\n type: 'text',\n name: 'key-label',\n from: { data: 'keys' },\n zindex: 1,\n encode: {\n enter: {\n x: { signal: \"(radius + 5) * cos(scale('angular', datum.key))\" },\n y: { signal: \"(radius + 5) * sin(scale('angular', datum.key))\" },\n text: { field: 'key' },\n align: [\n {\n test: \"abs(scale('angular', datum.key)) > PI / 2\",\n value: 'right'\n },\n {\n value: 'left'\n }\n ],\n baseline: [\n {\n test: \"scale('angular', datum.key) > 0\",\n value: 'top'\n },\n {\n test: \"scale('angular', datum.key) == 0\",\n value: 'middle'\n },\n {\n value: 'bottom'\n }\n ],\n fill: { value: 'black' },\n fontWeight: { value: 'bold' }\n }\n }\n },\n {\n type: 'line',\n name: 'outer-line',\n from: { data: 'radial-grid' },\n encode: {\n enter: {\n interpolate: { value: 'linear-closed' },\n x: { field: 'x2' },\n y: { field: 'y2' },\n stroke: { value: 'lightgray' },\n strokeWidth: { value: 1 }\n }\n }\n }\n ]\n} as any;\n\nexport const vegaCirclePackConf = {\n $schema: 'https://vega.github.io/schema/vega/v5.json',\n description: 'An example of a circle packing layout for hierarchical data.',\n width: 'container',\n height: 'container',\n padding: 0,\n autosize: { type: 'fit', contains: 'padding' },\n\n data: [\n {\n name: 'table',\n values: []\n },\n {\n name: 'tree',\n source: 'table',\n transform: [\n {\n type: 'stratify',\n key: 'id',\n parentKey: 'parent'\n },\n {\n type: 'pack',\n field: 'size',\n sort: { field: 'value' },\n size: [{ signal: 'width' }, { signal: 'height' }]\n }\n ]\n }\n ],\n\n scales: [\n {\n name: 'color',\n type: 'ordinal',\n domain: { data: 'tree', field: 'depth' },\n range: { scheme: 'category20' }\n }\n ],\n\n marks: [\n {\n type: 'symbol',\n from: { data: 'tree' },\n encode: {\n enter: {\n shape: { value: 'circle' },\n fill: { scale: 'color', field: 'depth' },\n tooltip: { signal: \"datum.name + (datum.size ? ', ' + datum.size + ' bytes' : '')\" }\n },\n update: {\n x: { field: 'x' },\n y: { field: 'y' },\n size: { signal: '4 * datum.r * datum.r' },\n stroke: { value: 'white' },\n strokeWidth: { value: 0.5 }\n },\n hover: {\n stroke: { value: 'red' },\n strokeWidth: { value: 2 }\n }\n }\n }\n ]\n};\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'pry-widget-chart-css',\n template: '',\n styleUrls: ['./_o-widget-chart.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PryWidgetChartCssComponent {}\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, ViewChild } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n Aggregation,\n Attribute,\n AttributeSimpleValue,\n ChartOption,\n ChartSubTypeDefinition,\n ChartWidgetOptions,\n Class,\n ClassSelectors,\n ConfigSelectors,\n DashboardSelectors,\n DataWidgetComponent,\n Field,\n FieldSelectors,\n FieldType,\n Item,\n ItemUtils,\n MarkSubType,\n MarkType,\n PryI18nService,\n VariableDefinition,\n VegaColorType,\n VegaType,\n WIDGET_HEADER_HEIGHT\n} from '@provoly/dashboard';\nimport equal from 'fast-deep-equal/es6';\nimport { BehaviorSubject, combineLatest, delay, Observable, Subject } from 'rxjs';\nimport { distinctUntilChanged, filter, map } from 'rxjs';\nimport { TimeUnit, View } from 'vega';\nimport embed, { vega } from 'vega-embed';\nimport { mergeDeep, TopLevelSpec } from 'vega-lite';\nimport { fontConfig } from 'vega-lite/build/src/config';\nimport { VegaErrorHandler } from './vega-error.handler';\nimport { vegaBaseConf, vegaCirclePackConf, vegaRadarConf } from './vega-spec.constant';\n\nexport type RadarValue = {\n category: number;\n key: string;\n value: number;\n};\n\nvega.scheme('KO/W/OK', ['#C04D3F', '#FD9843', '#9ABE29']);\n\n@Component({\n selector: 'pry-widget-chart',\n templateUrl: './widget-chart.component.html'\n})\nexport class WidgetChartComponent extends DataWidgetComponent implements AfterViewInit {\n @ViewChild('vega') vega!: ElementRef;\n typeOptions: {\n type: MarkType;\n subType: MarkSubType;\n label: MarkType | MarkSubType;\n id: string;\n translated?: string;\n }[] = [];\n markTypes: MarkType[] = [];\n subTypes?: Partial<ChartSubTypeDefinition>;\n schemes?: { id: VegaColorType; translated: string }[];\n MarkType = MarkType;\n MarkSubType = MarkSubType;\n WIDGET_HEADER_HEIGHT = WIDGET_HEADER_HEIGHT.value;\n\n timeUnits: TimeUnit[] = ['year', 'quarter', 'month', 'week', 'day', 'hours', 'minutes'];\n options$: Observable<ChartWidgetOptions>;\n optionsCopy: ChartWidgetOptions = {} as ChartWidgetOptions;\n classes$: Observable<Class[]>;\n fields$: Observable<Field[]>;\n variables$: Observable<VariableDefinition[]>;\n vegaLiteSpec$: Observable<TopLevelSpec>;\n variableAttributes$: Observable<Attribute[]>;\n possibleSecondaryAttributes$: Observable<Attribute[]>;\n triggerCalculatePossibleAttributes$ = new BehaviorSubject<void>(undefined);\n items$: Observable<Item[]>;\n filterDataForOptions$: Observable<Item[]>;\n filterDataForOptionsCopy$: Observable<Item[]>;\n variables: VariableDefinition[] = [];\n aggregations: any[] = [];\n variableAttributes: Attribute[] = [];\n fields: Field[] = [];\n isChartValid$: Observable<boolean>;\n numericProperties$: Observable<Attribute[]>;\n textProperties$: Observable<Attribute[]>;\n comparisons = [\n {\n id: 'item',\n name: this.translateService.instant('@pry.widget.chart.comparison.item')\n },\n {\n id: 'value',\n name: this.translateService.instant('@pry.widget.chart.comparison.value')\n }\n ];\n view?: View;\n trigger$ = new Subject<void>();\n invalidJson: boolean = false;\n\n constructor(\n store: Store<any>,\n private translateService: PryI18nService,\n el: ElementRef,\n private cdRef: ChangeDetectorRef\n ) {\n super(store, el);\n\n this.store.select(ConfigSelectors.chartOption).subscribe((chartOptions: ChartOption) => {\n this.aggregations = chartOptions.aggregation;\n this.schemes = chartOptions.color.map((scheme) => ({ id: scheme, translated: '' }));\n this.markTypes = chartOptions.type;\n this.subTypes = chartOptions.subType;\n\n this.typeOptions = this.markTypes\n .map((type: MarkType) => {\n // @ts-ignore\n return this.subTypes && this.subTypes[type] ? this.subTypes[type].map((subType) => ({ type, subType })) : [];\n })\n .reduce((p, c) => [...p, ...c], [])\n .map((options: any) => ({\n ...options,\n id: `${options.type}-${options.subType}`,\n label: options.subType === MarkSubType.DEFAULT ? options.type : options.subType\n }))\n .map((options: any) => ({\n ...options,\n translated: this.translateService.instant('@pry.widget.chart.markType.' + options.label)\n }));\n this.typeOptions.sort((a, b) => a.translated?.localeCompare(b.translated ?? '') ?? -1);\n });\n this.classes$ = this.store.select(ClassSelectors.classes);\n this.fields$ = this.store.select(FieldSelectors.fields);\n\n this.variableAttributes$ = combineLatest([this.resultSet$, this.classes$, this.fields$]).pipe(\n map(([resultSet, classes, fields]) => ItemUtils.getAttributesFromRs(resultSet, classes, fields)),\n map((fields: Attribute[]) => fields.sort((a, b) => a.name.localeCompare(b.name))),\n map((props) => WidgetChartComponent.uniqueAttributesByNames(props)),\n distinctUntilChanged((p, c) => equal(p, c))\n );\n\n this.subscriptions.add(this.variableAttributes$.subscribe((attrs) => (this.variableAttributes = attrs)));\n this.subscriptions.add(this.fields$.subscribe((attrs) => (this.fields = attrs)));\n\n this.variables$ = this.variableAttributes$.pipe(\n map((attributes) => {\n return attributes.map(\n (attr) =>\n (({\n name: attr.technicalName,\n label: attr.name,\n type: this.translateToVegaType(attr.field.type, attr.name)\n }) as VariableDefinition) ?? []\n );\n })\n );\n\n this.options$ = combineLatest([\n this.variables$,\n this.manifest$.pipe(map((manifest) => manifest.options as ChartWidgetOptions))\n ]).pipe(\n map(([variables, options]) => ({\n ...options,\n title: options?.title ?? ((variables[0]?.label ?? '') + ', ' + (variables[1]?.label ?? '')).replace(/^, $/, ''),\n selectedVariables: options?.selectedVariables ?? [{}, {}],\n // Here, we do not presume of the type of graph that the user wants, and prefer to display a button to go to params\n type: options?.type ?? undefined,\n aggregation: options?.aggregation ?? Aggregation.COUNT,\n tooltip: options?.tooltip ?? true,\n legend: options.legend ?? true,\n locale: 'fr'\n }))\n );\n\n this.items$ = this.resultSet$.pipe(\n filter((resultSet) => !!resultSet),\n map((resultSet) => {\n return Object.keys(resultSet?.items)\n .map((classId) => resultSet.items[classId])\n .reduce((prev, curr) => [...prev, ...curr], []);\n })\n );\n\n this.possibleSecondaryAttributes$ = combineLatest([\n this.variableAttributes$,\n this.items$,\n this.fields$,\n this.triggerCalculatePossibleAttributes$\n ]).pipe(\n map(([variableFields, items, fields, _]) => {\n return variableFields\n .filter((attribute) => {\n // Keep only numeric values when necessary\n if (\n !this.optionsCopy.aggregation ||\n [Aggregation.NONE, Aggregation.DISTINCT, Aggregation.COUNT].includes(this.optionsCopy.aggregation)\n ) {\n return true;\n } else {\n const field = fields.find((field) => field.id === attribute.field.id);\n return [FieldType.DECIMAL, FieldType.INSTANT, FieldType.LONG, FieldType.INTEGER].includes(\n field?.type ?? FieldType.STRING\n );\n }\n })\n .filter((attribute) =>\n items.find(\n (item) =>\n Object.keys(item.attributes).includes(this.optionsCopy.selectedVariables[0].label) &&\n Object.keys(item.attributes).includes(attribute.technicalName) &&\n !!(item.attributes[this.optionsCopy.selectedVariables[0].label] as AttributeSimpleValue).value &&\n (item.attributes[attribute.name] as AttributeSimpleValue).value !== undefined\n )\n );\n }),\n map((props) => WidgetChartComponent.uniqueAttributesByNames(props))\n );\n\n this.numericProperties$ = combineLatest([\n this.variableAttributes$,\n this.items$,\n this.fields$,\n this.triggerCalculatePossibleAttributes$\n ]).pipe(\n map(([variableFields, items, fields, _]) => {\n return variableFields\n .filter((attribute) => {\n const field = fields.find((field) => field.id === attribute.field.id);\n return [FieldType.DECIMAL, FieldType.INSTANT, FieldType.LONG, FieldType.INTEGER].includes(\n field?.type ?? FieldType.STRING\n );\n })\n .filter((attribute) =>\n items.find(\n (item) =>\n Object.keys(item.attributes).includes(attribute.technicalName) &&\n (item.attributes[attribute.technicalName] as AttributeSimpleValue).value !== undefined\n )\n );\n }),\n map((props) => {\n return WidgetChartComponent.uniqueAttributesByNames(props);\n })\n );\n\n this.textProperties$ = combineLatest([\n this.variableAttributes$,\n this.items$,\n this.fields$,\n this.triggerCalculatePossibleAttributes$\n ]).pipe(\n map(([variableFields, items, fields, _]) => {\n return variableFields\n .filter((attribute) => {\n const field = fields.find((field) => field.id === attribute.field.id);\n return [FieldType.STRING, FieldType.KEYWORD].includes(field?.type ?? FieldType.INTEGER);\n })\n .filter((attribute) =>\n items.find(\n (item) =>\n Object.keys(item.attributes).includes(attribute.technicalName) &&\n (item.attributes[attribute.technicalName] as AttributeSimpleValue).value !== undefined\n )\n );\n }),\n map((props) => {\n return WidgetChartComponent.uniqueAttributesByNames(props);\n })\n );\n\n this.filterDataForOptions$ = combineLatest([this.items$, this.options$, this.variableAttributes$]).pipe(\n filter(([items, options]) => options.selectedVariables && options.selectedVariables.length > 0),\n map(([items, options, variables]) => WidgetChartComponent.matchingItems(items, options, variables))\n );\n\n this.filterDataForOptionsCopy$ = combineLatest([\n this.items$,\n this.triggerCalculatePossibleAttributes$.pipe(delay(200)),\n this.variableAttributes$\n ]).pipe(\n filter(([items, _]) => this.optionsCopy.selectedVariables && this.optionsCopy.selectedVariables.length > 0),\n map(([items, _, variables]) => WidgetChartComponent.matchingItems(items, this.optionsCopy, variables))\n );\n\n this.subscriptions.add(\n this.options$.pipe(filter((opt) => !!opt)).subscribe((options) => {\n this.optionsCopy = structuredClone(options);\n this.updateAdvancedEdit(JSON.stringify(this.optionsCopy.specToMerge));\n this.optionsCopy.type = !this.markTypes.includes(this.optionsCopy.type)\n ? this.markTypes[0]\n : this.optionsCopy.type;\n this.optionsCopy.subType = this.optionsCopy.subType ?? MarkSubType.DEFAULT;\n this.optionsCopy.aggregation = !this.aggregations.includes(this.optionsCopy.aggregation)\n ? this.aggregations[0]\n : this.optionsCopy.aggregation;\n if (this.optionsCopy.series) {\n this.optionsCopy.series.scheme =\n this.optionsCopy.series?.scheme &&\n this.schemes &&\n !this.schemes.find((s) => s.id === this.optionsCopy?.series?.scheme)\n ? this.schemes[0].id\n : this.optionsCopy.series?.scheme;\n }\n })\n );\n\n this.vegaLiteSpec$ = combineLatest([\n this.store.select(DashboardSelectors.windowManifest),\n this.manifest$,\n this.widgetSize$,\n this.filterDataForOptions$,\n this.options$,\n this.displayHeader$,\n this.variableAttributes$\n ]).pipe(\n map(([windowManifest, widgetManifest, size, data, options, displayHeader, variableField]) => {\n let spec = vegaBaseConf;\n switch (options.type) {\n case MarkType.RADAR:\n spec = vegaRadarConf;\n break;\n case MarkType.CIRCLE_PACK:\n spec = vegaCirclePackConf;\n }\n\n spec.title = options.customTitle ?? options.title;\n\n switch (options.type) {\n case MarkType.RADAR:\n spec.signals[0].update = size.width > size.height ? 'height / 2' : 'width / 2';\n spec.data[0].values = WidgetChartComponent.buildDataVegaRadar(data, options);\n spec.scales[2].range.scheme = options.series?.scheme;\n break;\n case MarkType.CIRCLE_PACK:\n spec.data[0].values = structuredClone(data);\n spec.data[1].transform[0].key = 'attributes.' + options.packing?.id + '.value';\n spec.data[1].transform[0].parentKey = 'attributes.' + options.packing?.parentId + '.value';\n spec.data[1].transform[1].field = 'attributes.' + options.packing?.packField + '.value';\n spec.marks[0].encode.enter.tooltip.signal = `datum.attributes.${\n options.packing?.tooltip ?? options.packing?.id\n }.value + ' : ' + datum.attributes.${options.packing?.packField}.value`;\n break;\n default:\n spec.data = { values: structuredClone(data) };\n spec.layer = [\n {\n mark: {\n type: options.type,\n point:\n options.type === MarkType.POINT ||\n options.subType === MarkSubType.WITH_LINES_AND_POINTS ||\n options.subType === MarkSubType.WITH_POINTS,\n line: options.type === MarkType.LINE || options.subType === MarkSubType.WITH_LINES_AND_POINTS,\n innerRadius: options.innerRadius,\n tooltip: options.tooltip ?? true\n },\n encoding: WidgetChartComponent.calculateEncoding(options)\n }\n ];\n if (options.fill) {\n spec.layer[0].mark.fill = options.fill;\n }\n if (options.subType === MarkSubType.AREASTACKED || options.subType === MarkSubType.HISTOSTACKED) {\n spec.data.transform = [\n {\n type: 'stack',\n groupby: [options.selectedVariables[0].name],\n sort: { field: options.series?.groupBy },\n field: options.selectedVariables[1].name\n }\n ];\n }\n }\n const merged = mergeDeep(spec, { config: fontConfig('Ubuntu, sans-serif') } as any, options.specToMerge);\n\n if (!!options.specToMerge) {\n console.log(JSON.stringify(spec));\n }\n\n return merged;\n })\n );\n\n this.isChartValid$ = this.options$.pipe(\n map(\n (options) =>\n !!options.type &&\n // We must have the correct number of variables to draw the graph\n (options.selectedVariables.filter((v) => !!v.type).length > 1 ||\n (options.selectedVariables.filter((v) => !!v.type).length > 0 &&\n (options.aggregation === Aggregation.COUNT ||\n options.aggregation === Aggregation.DISTINCT ||\n options.aggregation === Aggregation.NONE)))\n )\n );\n }\n\n ngAfterViewInit() {\n this.subscriptions.add(\n combineLatest([this.vegaLiteSpec$, this.trigger$]).subscribe(([spec, _]) => {\n if (this.vega) {\n this.view?.finalize();\n embed(this.vega.nativeElement, structuredClone(spec), {\n actions: false,\n renderer: 'svg',\n formatLocale:\n this.optionsCopy.locale === 'fr'\n ? {\n decimal: ',',\n thousands: '\\u00a0',\n grouping: [3],\n currency: ['', '\\u00a0€'],\n percent: '\\u202f%'\n }\n : {\n decimal: '.',\n thousands: ',',\n grouping: [3],\n currency: ['$', '']\n },\n // @ts-ignore\n viewClass: VegaErrorHandler\n }).then((result) => (this.view = result.view));\n } else {\n setTimeout(() => this.trigger$.next(), 100);\n }\n })\n );\n this.trigger$.next();\n }\n\n static calculateEncoding(options: ChartWidgetOptions) {\n const variables = options.selectedVariables ?? [{}, {}];\n switch (options.type) {\n case MarkType.ARC:\n return {\n theta: {\n field: `attributes.${variables[1].name}.value`,\n title: variables[1].label,\n type: variables[1].type,\n aggregate: options.aggregation ?? Aggregation.COUNT\n },\n color: {\n field: `attributes.${variables[0].name}.value`,\n title: variables[0].label,\n type: variables[0].type,\n legend: options.legend ?? true,\n scale: options.scale ?? { scheme: options.series?.scheme ?? 'category20c' }\n }\n };\n case MarkType.RADAR:\n return {};\n default:\n const encoding = {\n x: {\n field: `attributes.${variables[0].name}.value`,\n title: variables[0].label,\n type: variables[0].type,\n timeUnit: variables[0].type === VegaType.TEMPORAL ? variables[0].timeUnit : undefined,\n bin: options.subType === MarkSubType.HISTOGRAM,\n axis: variables[0].axisOptions,\n scale: {\n // Force a false value here so that vega understand properly\n zero: !!variables[0].origin0,\n type: WidgetChartComponent.isTimeUnitUTC(variables[0]) ? 'utc' : undefined\n }\n },\n y: {\n field: `attributes.${variables[1].name}.value`,\n title: variables[1].label,\n type: options.aggregation === Aggregation.COUNT ? VegaType.QUANTITATIVE : variables[1].type,\n timeUnit: variables[1].type === VegaType.TEMPORAL ? variables[1].timeUnit : undefined,\n axis: variables[1].axisOptions,\n aggregate: options.aggregation !== Aggregation.NONE ? options.aggregation : undefined,\n scale: {\n zero: variables[1].origin0,\n type: WidgetChartComponent.isTimeUnitUTC(variables[1]) ? 'utc' : undefined\n }\n }\n };\n if (options.series) {\n // @ts-ignore\n encoding.color = {\n title: `${options.series.groupBy}`,\n field: `attributes.${options.series.groupBy}.value`,\n legend: options.legend\n };\n if (options.series.scheme) {\n // @ts-ignore\n encoding.color.scale = { scheme: options.series.scheme };\n }\n }\n return encoding;\n }\n }\n\n static buildDataVegaRadar(items: Item[], options: ChartWidgetOptions): RadarValue[] {\n if (options.radar?.compare === 'item') {\n return items\n .map((item, idx) =>\n (options.radar?.props ?? []).map((prop: string) => {\n const itemValueMultiple = ItemUtils.getAttributeValue(item, prop);\n const itemValue = Array.isArray(itemValueMultiple) ? itemValueMultiple[0] : itemValueMultiple;\n return {\n category: idx,\n key: prop,\n value: itemValue?.value\n } as RadarValue;\n })\n )\n .reduce((a: RadarValue[], b: RadarValue[]) => [...a, ...b], [])\n .filter((a: RadarValue) => a.value !== undefined && a.value !== null);\n } else {\n return items\n .map(\n (item, idx) =>\n ({\n category: (item.attributes[options.radar?.categoryProp ?? ''] as AttributeSimpleValue)?.value ?? 'object',\n key: (item.attributes[options.radar?.keyProp ?? ''] as AttributeSimpleValue)?.value,\n value: (item.attributes[options.radar?.valueProp ?? ''] as AttributeSimpleValue)?.value\n }) as RadarValue\n )\n .filter((a: RadarValue) => a.value !== undefined && a.value !== null && !!a.key);\n }\n }\n\n static matchingItems(items: Item[], options: ChartWidgetOptions, attributes: Attribute[]) {\n return items.filter((item) => {\n switch (options.type) {\n case MarkType.CIRCLE_PACK:\n return !!options.packing?.id && !!options.packing.parentId && !!options.packing.packField;\n case MarkType.RADAR:\n return (\n ((options.radar?.compare === 'item' && (options.radar.props?.length ?? 0) > 2) ||\n (options.radar?.compare !== 'item' &&\n !!options.radar?.keyProp &&\n !!options.radar.valueProp &&\n !!options.radar.categoryProp)) &&\n WidgetChartComponent.buildDataVegaRadar(items, options).length > 0\n );\n default:\n return (\n Object.keys(item.attributes).includes(options.selectedVariables[0].name) &&\n (item.attributes[options.selectedVariables[0].name] as AttributeSimpleValue).value !== undefined &&\n ((Object.keys(item.attributes).includes(options.selectedVariables[1].name) &&\n (item.attributes[options.selectedVariables[1].name] as AttributeSimpleValue).value !== undefined) ||\n options.aggregation === Aggregation.DISTINCT ||\n options.aggregation === Aggregation.COUNT)\n );\n }\n });\n }\n\n static uniqueAttributesByNames(attributes: Attribute[]): Attribute[] {\n return [...new Set(attributes.map((attr) => attr.technicalName))].map(\n (attrName) => attributes.find((attr) => attr.technicalName === attrName) ?? ({} as Attribute)\n );\n }\n\n templateTypeTranslationFn = (item: any, args: any[]) =>\n `${args[0]}${item === MarkSubType.DEFAULT ? item : args[1] + args[2] + item}`;\n\n advancedEdit: string = '{}';\n\n changeChartTitle(title: string) {\n this.optionsCopy.customTitle = title;\n }\n\n changeTimeUnit($event: TimeUnit, variable: VariableDefinition) {\n variable.timeUnit = $event;\n }\n\n changeAggregation($event: Aggregation) {\n this.optionsCopy.aggregation = $event;\n if ([Aggregation.COUNT, Aggregation.DISTINCT].includes($event!)) {\n this.optionsCopy.selectedVariables[1].axisOptions = { tickMinStep: 1 };\n } else {\n delete this.optionsCopy.selectedVariables[1].axisOptions;\n }\n this.triggerCalculatePossibleAttributes$.next();\n }\n\n changeProperty(attrName: string, index: number) {\n const attr = this.variableAttributes.find((attr) => attr.technicalName === attrName);\n if (!!attr) {\n this.optionsCopy.selectedVariables[index].name = attr.name;\n this.optionsCopy.selectedVariables[index].label = attr.name;\n const field = this.fields.find((field) => field.id === attr.field.id)?.type ?? FieldType.STRING;\n this.optionsCopy.selectedVariables[index].type = this.translateToVegaType(field, attr.name);\n this.optionsCopy.selectedVariables[index].axisOptions = this.minTick(field);\n this.optionsCopy.title =\n this.optionsCopy.selectedVariables[0].label + ', ' + this.optionsCopy.selectedVariables[1].label;\n }\n this.triggerCalculatePossibleAttributes$.next();\n }\n\n static isTimeUnitUTC(variableDef: VariableDefinition): boolean {\n let utcRegex = new RegExp(/_utc|utc_|_UTC|UTC_|_Utc|Utc_/, 'g');\n return utcRegex.test(variableDef?.label);\n }\n\n changeLabel(label: string, index: number) {\n let updateTitle = false;\n if (\n this.optionsCopy.title ===\n this.optionsCopy.selectedVariables[0].label + ', ' + this.optionsCopy.selectedVariables[1].label\n ) {\n updateTitle = true;\n }\n\n this.optionsCopy.selectedVariables[index].label = label;\n if (updateTitle) {\n //update title if it has not been modified manually\n this.optionsCopy.title =\n this.optionsCopy.selectedVariables[0].label + ', ' + this.optionsCopy.selectedVariables[1].label;\n }\n }\n\n toggleOriginAtZero(variable: VariableDefinition, $event: boolean) {\n variable.origin0 = $event;\n }\n\n changeType(typeOptionsId: string) {\n this.optionsCopy = structuredClone(this.optionsCopy);\n const [type, subType] = typeOptionsId.split('-');\n // @ts-ignore\n this.optionsCopy.type = type;\n this.optionsCopy.subType = subType ?? MarkSubType.DEFAULT;\n\n if (this.optionsCopy.type === MarkType.CIRCLE_PACK) {\n this.optionsCopy.packing = {};\n } else {\n delete this.optionsCopy.packing;\n }\n\n if (this.optionsCopy.type === MarkType.RADAR) {\n this.optionsCopy.radar = {};\n } else {\n delete this.optionsCopy.radar;\n }\n\n switch (this.optionsCopy.type) {\n case MarkType.BAR:\n case MarkType.LINE:\n this.optionsCopy.selectedVariables[0].type =\n this.optionsCopy.selectedVariables[0].type !== VegaType.TEMPORAL ? VegaType.NOMINAL : VegaType.TEMPORAL;\n break;\n case MarkType.POINT:\n this.optionsCopy.selectedVariables[1].type =\n this.optionsCopy.selectedVariables[1].type !== VegaType.TEMPORAL ? VegaType.QUANTITATIVE : VegaType.TEMPORAL;\n break;\n }\n\n if (this.optionsCopy.subType === MarkSubType.AREASTACKED || this.optionsCopy.subType === MarkSubType.HISTOSTACKED) {\n this.optionsCopy.series = this.optionsCopy.series ?? {};\n }\n\n this.resetChart();\n\n if (subType === MarkSubType.DONUT) {\n this.optionsCopy.innerRadius = this.optionsCopy.innerRadius ?? 50;\n }\n }\n\n resetChart() {\n if (this.optionsCopy.selectedVariables?.length > 2) {\n this.optionsCopy.selectedVariables.pop();\n }\n }\n\n override emitManifest() {\n this.manifestModified.emit({\n widgetIndex: this.widgetIndex,\n manifest: {\n ...this.manifest,\n options: { ...this.optionsCopy }\n }\n });\n }\n\n translateToVegaType(type: FieldType, name: string): VegaType {\n let idRegex = new RegExp(/_id|id_|_ID|ID_|_Id|Id_/, 'g');\n if (idRegex.test(name)) {\n return VegaType.ORDINAL;\n }\n switch (type) {\n case FieldType.DECIMAL:\n case FieldType.INTEGER:\n case FieldType.LONG:\n return VegaType.QUANTITATIVE;\n case FieldType.INSTANT:\n return VegaType.TEMPORAL;\n case FieldType.KEYWORD:\n case FieldType.STRING:\n return VegaType.NOMINAL;\n default:\n return VegaType.NOMINAL;\n }\n }\n\n minTick(type: FieldType): { tickMinStep: number } | undefined {\n switch (type) {\n case FieldType.INTEGER:\n case FieldType.LONG:\n return { tickMinStep: 1 };\n case FieldType.DECIMAL:\n case FieldType.INSTANT:\n case FieldType.KEYWORD:\n case FieldType.STRING:\n default:\n return undefined;\n }\n }\n\n trigger() {\n this.triggerCalculatePossibleAttributes$.next();\n }\n\n proposeTitle() {\n setTimeout(() => {\n if (this.optionsCopy.type === MarkType.RADAR) {\n if (this.optionsCopy.radar?.compare === 'item') {\n this.optionsCopy.title = this.translateService.instant('@pry.widget.chart.radar.titleItem', {\n props: (this.optionsCopy.radar.props || []).join(', ')\n });\n }\n if (this.optionsCopy.radar?.compare === 'value') {\n this.optionsCopy.title = this.translateService.instant('@pry.widget.chart.radar.titleList', {\n key: this.optionsCopy.radar.keyProp ?? this.translateService.instant('@pry.widget.chart.radar.defineKey'),\n value:\n this.optionsCopy.radar.valueProp ?? this.translateService.instant('@pry.widget.chart.radar.defineValue'),\n category:\n this.optionsCopy.radar.categoryProp ??\n this.translateService.instant('@pry.widget.chart.radar.defineCategory')\n });\n }\n }\n if (this.optionsCopy.type === MarkType.CIRCLE_PACK) {\n this.optionsCopy.title = this.translateService.instant('@pry.widget.chart.circle.title', {\n field: this.optionsCopy.packing?.packField ?? ''\n });\n }\n }, 100);\n }\n\n changeInnerRadius($event: string) {\n // @ts-ignore\n this.optionsCopy.innerRadius = parseInt($event, 10);\n }\n\n openSettings() {\n (this.open$ as Subject<void>).next(undefined);\n }\n\n toggleSeries($event: any) {\n if ($event) {\n this.optionsCopy.series = {};\n } else {\n delete this.optionsCopy.series;\n }\n }\n\n changeSeries($event: any) {\n if (!this.optionsCopy.series) {\n this.optionsCopy.series = {};\n }\n this.optionsCopy.series.groupBy = $event;\n }\n\n changeSeriesScheme($event: any) {\n if (!this.optionsCopy.series) {\n this.optionsCopy.series = {};\n }\n this.optionsCopy.series.scheme = $event;\n }\n\n toggleSeriesLegend($event: any) {\n this.optionsCopy.legend = $event;\n }\n\n toggleTooltip($event: any) {\n this.optionsCopy.tooltip = $event;\n }\n\n axeLabel(i: number, optionsCopy: ChartWidgetOptions) {\n if (optionsCopy?.type === MarkType.ARC) {\n return i === 0 ? '@pry.widget.chart.encoding.group' : '@pry.widget.chart.encoding.values';\n }\n return i === 0 ? '@pry.widget.chart.encoding.horizontal' : '@pry.widget.chart.encoding.vertical';\n }\n\n hasNoType(options: ChartWidgetOptions) {\n return !options || !options.type || options.type.includes('undefined') || options.type.includes('null');\n }\n\n scheme() {\n return vega.scheme(this.optionsCopy.series?.scheme ?? '');\n }\n\n toggleSpecToMerge($event: any) {\n if ($event) {\n this.optionsCopy.specToMerge = {};\n this.advancedEdit = '{}';\n } else {\n delete this.optionsCopy.specToMerge;\n this.advancedEdit = '{}';\n }\n }\n\n updateAdvancedEdit($event: any) {\n const value = $event?.target?.value ?? $event;\n if (value) {\n try {\n this.optionsCopy.specToMerge = JSON.parse(value);\n this.advancedEdit = JSON.stringify(this.optionsCopy.specToMerge, undefined, 4);\n this.invalidJson = false;\n } catch (e) {\n console.error('Invalid json provided');\n this.invalidJson = true;\n }\n this.cdRef.markForCheck();\n } else {\n delete this.optionsCopy.specToMerge;\n this.advancedEdit = '{}';\n }\n }\n\n override toImage(): Promise<string> {\n return new Promise((resolve, reject) => {\n resolve(this.vega.nativeElement.querySelectorAll('canvas')[0].toDataURL('image/png'));\n });\n }\n}\n","<pry-widget-chart-css></pry-widget-chart-css>\n<div class=\"o-widget o-widget--chart\">\n @if (displayHeader$ | async) {\n <pry-widget-header\n [datasourceIds]=\"(datasourceIds$ | async) ?? []\"\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"manifest\"\n (manifestModified)=\"manifestModified.emit($event)\"\n #header\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n >\n <pry-settings\n (saveTriggered)=\"emitManifest()\"\n (changeTitle)=\"changeWidgetTitle($event)\"\n [headerPresent]=\"displayHeader$ | async\"\n [isDisable]=\"(filterDataForOptionsCopy$ | async)?.length === 0 || hasNoType(optionsCopy)\"\n [widgetIndex]=\"widgetIndex\"\n [open$]=\"open$\"\n [header]=\"header\"\n class=\"o-settings\"\n >\n <div class=\"o-settings__popup__content__fields -condensed\">\n <pry-edit-input\n label=\"@pry.widget.chart.title\"\n (ngModelChange)=\"changeChartTitle($event)\"\n [ngModel]=\"optionsCopy.customTitle ?? optionsCopy.title\"\n ></pry-edit-input>\n <div class=\"m-form-label-field\">\n @if ((filterDataForOptionsCopy$ | async)?.length === 0) {\n <p class=\"a-label a-label--help -error\">{{ '@pry.widget.chart.params.noParams' | i18n }}</p>\n } @else {\n @if (optionsCopy?.type !== MarkType.RADAR) {\n <div>\n {{ '@pry.widget.chart.params.multipleParams' | i18n }}{{ (filterDataForOptionsCopy$ | async)?.length }}\n </div>\n }\n }\n </div>\n @if (optionsCopy) {\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"chart_type\">{{ '@pry.widget.chart.type' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeType($event)\"\n [items]=\"typeOptions\"\n [ngModel]=\"optionsCopy.type + '-' + optionsCopy.subType\"\n i18nPrefix=\"@pry.widget.chart.markType.\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"chart_type\"\n ></pry-select>\n </div>\n }\n </div>\n @if (optionsCopy?.type !== MarkType.RADAR && optionsCopy?.type !== MarkType.CIRCLE_PACK) {\n @if (optionsCopy?.subType === MarkSubType.DONUT) {\n <pry-range\n [ngModel]=\"optionsCopy.innerRadius\"\n (ngModelChange)=\"changeInnerRadius($event)\"\n labelTranslate=\"@pry.widget.chart.innerRadius\"\n min=\"1\"\n max=\"500\"\n ></pry-range>\n }\n @for (variableDef of optionsCopy?.selectedVariables; track variableDef; let i = $index) {\n <div\n class=\"o-settings__popup__content__fields -condensed\"\n >\n @if (i === 1) {\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"aggregations\">{{ '@pry.widget.chart.encoding.group' | i18n }}</label>\n @if (i === 1) {\n <pry-select\n (ngModelChange)=\"changeAggregation($event)\"\n [items]=\"aggregations\"\n [ngModel]=\"optionsCopy.aggregation\"\n id=\"aggregations\"\n i18nPrefix=\"@pry.widget.chart.aggregation.\"\n ></pry-select>\n }\n </div>\n }\n @if (i !== 1 || optionsCopy.aggregation !== 'count') {\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"aggregation_property\">\n {{ axeLabel(i, optionsCopy) | i18n }}\n </label>\n <pry-select\n (ngModelChange)=\"changeProperty($event, i)\"\n [items]=\"(i !== 1 ? variableAttributes$ : possibleSecondaryAttributes$) | async\"\n [ngModel]=\"variableDef.name\"\n bindLabel=\"name\"\n bindValue=\"technicalName\"\n id=\"aggregation_property\"\n ></pry-select>\n </div>\n }\n <pry-edit-input\n label=\"@pry.widget.chart.dataLabel\"\n (ngModelChange)=\"changeLabel($event, i)\"\n [ngModel]=\"variableDef.label\"\n ></pry-edit-input>\n @if (variableDef.type === 'temporal') {\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"chart_timeUnit\">{{ '@pry.widget.chart.timeUnit' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeTimeUnit($event, variableDef)\"\n [items]=\"timeUnits\"\n [ngModel]=\"variableDef.timeUnit\"\n i18nPrefix=\"@pry.widget.chart.timeUnitList.\"\n id=\"chart_timeUnit\"\n ></pry-select>\n </div>\n }\n @if (variableDef.type === 'quantitative' && optionsCopy?.type !== 'arc') {\n <div class=\"m-form-label-field\">\n <pry-checkbox (ngModelChange)=\"toggleOriginAtZero(variableDef, $event)\" [ngModel]=\"variableDef.origin0\"\n >{{ '@pry.widget.chart.origin' | i18n }}\n </pry-checkbox>\n </div>\n }\n </div>\n }\n <div class=\"o-settings__popup__content__fields -condensed\">\n <div class=\"m-form-label-field\">\n @if (optionsCopy?.type !== MarkType.ARC && optionsCopy?.type !== MarkType.RADAR) {\n <pry-checkbox\n (ngModelChange)=\"toggleSeries($event)\"\n [ngModel]=\"!!optionsCopy.series\"\n [disabled]=\"\n this.optionsCopy.subType === MarkSubType.AREASTACKED ||\n this.optionsCopy.subType === MarkSubType.HISTOSTACKED\n \"\n >{{ '@pry.widget.chart.series' | i18n }}\n </pry-checkbox>\n }\n </div>\n @if (optionsCopy?.type !== MarkType.ARC && optionsCopy?.type !== MarkType.RADAR && !!optionsCopy.series) {\n <div\n class=\"m-form-label-field\"\n >\n <label class=\"a-label\" for=\"chart_seriesAttr\">{{ '@pry.widget.chart.seriesAttr' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeSeries($event)\"\n [ngModel]=\"optionsCopy.series.groupBy!\"\n [items]=\"variableAttributes$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"chart_seriesAttr\"\n ></pry-select>\n </div>\n }\n @if (\n (optionsCopy?.type === MarkType.ARC || optionsCopy?.type === MarkType.RADAR || !!optionsCopy.series) &&\n schemes\n ) {\n <div\n class=\"m-form-label-field\"\n >\n <label class=\"a-label\" for=\"chart_seriesScheme\" [title]=\"'@pry.widget.chart.seriesSchemeAlt' | i18n\">{{\n '@pry.widget.chart.seriesScheme' | i18n\n }}</label>\n <pry-select\n (ngModelChange)=\"changeSeriesScheme($event)\"\n [ngModel]=\"optionsCopy.series?.scheme!\"\n [items]=\"schemes\"\n id=\"chart_seriesScheme\"\n i18nPrefix=\"@pry.widget.chart.scheme.\"\n bindValue=\"id\"\n bindLabel=\"id\"\n ></pry-select>\n </div>\n }\n <div class=\"o-widget--chart-color-thumb\">\n @for (schemeColor of scheme(); track schemeColor) {\n <div\n class=\"o-widget--chart-color-thumb-item\"\n [title]=\"schemeColor\"\n [style.background-color]=\"schemeColor\"\n ></div>\n }\n </div>\n <div class=\"m-form-label-field\">\n @if (optionsCopy?.type !== MarkType.RADAR || !!optionsCopy.series) {\n <pry-checkbox\n (ngModelChange)=\"toggleSeriesLegend($event)\"\n [ngModel]=\"!!optionsCopy.legend!\"\n >{{ '@pry.widget.chart.seriesLegend' | i18n }}\n </pry-checkbox>\n }\n </div>\n <div class=\"m-form-label-field\">\n <pry-checkbox (ngModelChange)=\"toggleTooltip($event)\" [ngModel]=\"!!optionsCopy.tooltip!\"\n >{{ '@pry.widget.chart.tooltip' | i18n }}\n </pry-checkbox>\n </div>\n </div>\n }\n @if (optionsCopy?.type === MarkType.RADAR && optionsCopy.radar !== undefined) {\n <div class=\"o-settings__popup__content__fields -condensed\">\n <div class=\"m-form-label-field\">\n <pry-select\n (ngModelChange)=\"trigger(); proposeTitle()\"\n [(ngModel)]=\"optionsCopy.radar.compare\"\n [items]=\"comparisons\"\n bindLabel=\"name\"\n bindValue=\"id\"\n ></pry-select>\n </div>\n @if (optionsCopy.radar.compare === 'item') {\n <div class=\"m-form-label-field\">\n <pry-select\n (ngModelChange)=\"trigger(); proposeTitle()\"\n [(ngModel)]=\"optionsCopy.radar.props\"\n [items]=\"numericProperties$ | async\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n bindLabel=\"name\"\n bindValue=\"name\"\n ></pry-select>\n </div>\n }\n @if (optionsCopy.radar.compare === 'value') {\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"comparison_key\">{{ '@pry.widget.chart.comparison.key' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"trigger(); proposeTitle()\"\n [(ngModel)]=\"optionsCopy.radar.keyProp\"\n [items]=\"textProperties$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"comparison_key\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"comparison_values\">{{ '@pry.widget.chart.comparison.values' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"trigger(); proposeTitle()\"\n [(ngModel)]=\"optionsCopy.radar.valueProp\"\n [items]=\"numericProperties$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"comparison_values\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"comparison_category\">{{\n '@pry.widget.chart.comparison.category' | i18n\n }}</label>\n <pry-select\n (ngModelChange)=\"trigger(); proposeTitle()\"\n [(ngModel)]=\"optionsCopy.radar.categoryProp\"\n [items]=\"textProperties$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"comparison_category\"\n ></pry-select>\n </div>\n }\n @if (schemes) {\n <label\n class=\"a-label\"\n for=\"chart_seriesScheme_radar\"\n [title]=\"'@pry.widget.chart.seriesSchemeAlt' | i18n\"\n >{{ '@pry.widget.chart.seriesScheme' | i18n }}</label\n >\n <pry-select\n (ngModelChange)=\"changeSeriesScheme($event)\"\n [ngModel]=\"optionsCopy.series?.scheme!\"\n [items]=\"schemes\"\n id=\"chart_seriesScheme_radar\"\n ></pry-select>\n }\n </div>\n }\n @if (optionsCopy?.type === MarkType.CIRCLE_PACK && optionsCopy.packing !== undefined) {\n <div class=\"o-settings__popup__content__fields -condensed\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"chart_circle_id\">{{ '@pry.widget.chart.circle.id' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"trigger(); proposeTitle()\"\n [(ngModel)]=\"optionsCopy.packing.id\"\n [items]=\"variableAttributes$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"chart_circle_id\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"chart_circle_pid\">{{ '@pry.widget.chart.circle.pid' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"trigger(); proposeTitle()\"\n [(ngModel)]=\"optionsCopy.packing.parentId\"\n [items]=\"variableAttributes$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"chart_circle_pid\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"chart_circle_field\">{{ '@pry.widget.chart.circle.field' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"trigger(); proposeTitle()\"\n [(ngModel)]=\"optionsCopy.packing.packField\"\n [items]=\"numericProperties$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"chart_circle_field\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"chart_circle_tooltip\">{{ '@pry.widget.chart.circle.tooltip' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"trigger(); proposeTitle()\"\n [(ngModel)]=\"optionsCopy.packing.tooltip\"\n [items]=\"variableAttributes$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n id=\"chart_circle_tooltip\"\n ></pry-select>\n </div>\n </div>\n }\n <div class=\"o-settings__popup__content__fields -condensed\">\n <pry-checkbox (ngModelChange)=\"toggleSpecToMerge($event)\" [ngModel]=\"!!optionsCopy.specToMerge\"\n >{{ '@pry.widget.chart.moreOptions' | i18n }}\n </pry-checkbox>\n @if (!!optionsCopy.specToMerge) {\n <textarea\n [ngModel]=\"advancedEdit\"\n (focusout)=\"updateAdvancedEdit($event)\"\n class=\"o-settings__popup__content__area\"\n [class.-invalid]=\"invalidJson\"\n ></textarea>\n }\n </div>\n </pry-settings>\n </pry-widget-header>\n }\n @if (isChartValid$ | async) {\n <div\n #vega\n [style.height.px]=\"\n ((widgetSize$ | async)?.height ?? 0) - ((displayHeader$ | async) ? 1 : 0) * WIDGET_HEADER_HEIGHT\n \"\n [style.width.px]=\"(widgetSize$ | async)?.width\"\n ></div>\n }\n\n @if (!(isChartValid$ | async)) {\n <div class=\"o-widget__choose-parameters\">\n <p class=\"a-p\">\n {{ '@pry.widget.chart.chooseParameters' | i18n }}\n </p>\n <button type=\"button\" (click)=\"openSettings()\" class=\"a-btn a-btn--primary\">\n <pry-icon [height]=\"20\" [width]=\"20\" iconSvg=\"control\"></pry-icon>\n <span>{{ '@pry.widget.settings.title' | i18n }}</span>\n </button>\n </div>\n }\n </div>\n","export const enTranslations = {\n '@pry': {\n widget: {\n chart: {\n title: 'Chart title',\n tooltip: 'Display tooltip',\n params: {\n noParams: 'No data for chart with selected settings',\n multipleParams: 'Number of data with selected parameters: '\n },\n encoding: {\n horizontal: 'Horizontal axis',\n vertical: 'Vertical axis',\n group: 'Operation type',\n values: 'Values'\n },\n markType: {\n null: '',\n bar: 'Bar chart',\n line: 'Line',\n point: 'Points',\n area: 'Area',\n arc: 'Arc',\n radar: 'Radar',\n circle_pack: 'Circle packing',\n histogram: 'Histogram',\n timehistogram: 'Time histogram',\n grouped: 'Grouped bar chart',\n histostacked: 'Stacked bar chart',\n withPoints: 'Line with points',\n multi: 'Multi series line chart',\n scatterColor: 'Scatter plot with color',\n withLinesAndPoints: 'Area chart with overlaying lines and point markers',\n areastacked: 'Stacked area chart',\n pie: 'Pie Chart',\n donut: 'Donut chart'\n },\n scheme: {\n accent: '8 colors n°1',\n set2: '8 colors n°2',\n dark2: '8 dark colors',\n pastel2: '8 pastel colors',\n set1: '9 colors',\n pastel1: '9 pastel colors',\n category10: '10 colors',\n tableau10: '10 different colors',\n set3: '12 colors',\n paired: '12 different colors',\n tableau20: '20 colors',\n category20: '20 colors with 2 shades',\n category20b: '20 colors with 4 shades n°1',\n category20c: '20 colors with 4 shades n°2',\n 'KO/W/OK': 'Traffic light',\n Provoly: 'Provoly'\n },\n dataLabel: 'Data label',\n origin: 'Origin at zero',\n series: 'Group as series',\n seriesAttr: 'grouping attribute',\n seriesScheme: 'Color scheme',\n seriesSchemeAlt: 'https://vega.github.io/vega/docs/schemes/',\n seriesLegend: 'Display legend',\n chooseParameters: 'Please select parameters to display chart.',\n timeUnit: 'Time unit',\n timeUnitList: {\n year: 'Year',\n quarter: 'Quarter',\n month: 'Month',\n week: 'Week',\n day: 'Day',\n hours: 'Hours',\n minutes: 'Minutes'\n },\n type: 'Chart type',\n template: 'Chart template',\n aggregation: {\n none: 'Value',\n count: 'Count',\n sum: 'Sum',\n distinct: 'Distinct elements',\n average: 'Average',\n median: 'Median',\n q1: 'Lower quartile',\n q3: 'Upper Quartile',\n min: 'Minimum',\n max: 'Maximum'\n },\n comparison: {\n item: 'Compare objects',\n value: 'Value list',\n key: 'Branch property',\n values: 'Value property',\n category: 'Object property'\n },\n radar: {\n titleItem: 'Compare displaying {{props}}',\n titleList: 'Branches {{key}}, diplaying {{value}}, grouped by {{category}}',\n defineKey: '«Key»',\n defineValue: '«Value»',\n defineCategory: '«Category»'\n },\n circle: {\n id: 'Field for item identifier',\n pid: 'Field for parent item identifier',\n field: 'Field containing value',\n title: 'Circle packing displaying {{field}}',\n tooltip: 'Property to display in tooltip'\n },\n innerRadius: 'Inner radius',\n moreOptions: 'Advanced mode'\n }\n }\n }\n};\n","export const frTranslations = {\n '@pry': {\n widget: {\n chart: {\n title: 'Titre du graphique',\n tooltip: 'Affichage des info-bulles',\n params: {\n noParams: 'Aucune donnée pour le graphique avec les paramètres sélectionnés',\n multipleParams: 'Nombre de données avec les paramètres sélectionnés: '\n },\n encoding: {\n horizontal: 'Axe horizontal',\n vertical: 'Axe vertical',\n group: 'Type de calcul',\n values: 'Valeurs'\n },\n markType: {\n null: '',\n bar: 'Barres',\n line: 'Courbe',\n point: 'Points',\n area: 'Aire',\n arc: 'Circulaire',\n radar: 'Radar',\n circle_pack: 'Paquets de cercles',\n histogram: 'Histogramme',\n timehistogram: 'Histogramme de temps',\n grouped: 'Histogramme empilé',\n histostacked: 'Histogramme groupé',\n withPoints: 'Courbe avec marques',\n multi: 'Courbes empilées',\n scatterColor: 'Nuages de points avec couleurs',\n withLinesAndPoints: 'Aire avec lignes et marques',\n areastacked: 'Aires empilées',\n pie: 'Diagramme circulaire',\n donut: 'Diagramme anneau'\n },\n scheme: {\n accent: '8 couleurs n°1',\n set2: '8 couleurs n°2',\n dark2: '8 couleurs sombre',\n pastel2: '8 couleurs pastel',\n set1: '9 couleurs',\n pastel1: '9 couleurs pastel',\n category10: '10 couleurs',\n tableau10: '10 couleurs différentes',\n set3: '12 couleurs',\n paired: '12 couleurs différentes',\n tableau20: '20 couleurs',\n category20: '20 couleurs avec 2 nuances',\n category20b: '20 couleurs avec 4 nuances n°1',\n category20c: '20 couleurs avec 4 nuances n°2',\n 'KO/W/OK': 'Feu de signalisation',\n Provoly: 'Provoly'\n },\n dataLabel: 'Libellé de la donnée',\n origin: 'Axe affichant la valeur zéro',\n series: 'Regrouper en séries',\n seriesAttr: 'Attribut de regroupement',\n seriesScheme: 'Jeu de couleur',\n seriesSchemeAlt: 'https://vega.github.io/vega/docs/schemes/',\n seriesLegend: 'Afficher la légende',\n chooseParameters: \"Merci de sélectionner les paramètres afin d'afficher le graphique\",\n timeUnit: 'Unité de temps',\n timeUnitList: {\n year: 'Année',\n quarter: 'Trimestre',\n month: 'Mois',\n week: 'Semaine',\n day: 'Jour',\n hours: 'Heures',\n minutes: 'Minutes'\n },\n type: 'Type de graphique',\n template: 'Modèle de graphique',\n aggregation: {\n none: 'Valeur',\n count: 'Nombre',\n sum: 'Somme',\n distinct: \"Nombre d'éléments distincts\",\n average: 'Moyenne',\n median: 'Médiane',\n q1: 'Quartile inférieur',\n q3: 'Quartile supérieur',\n min: 'Minimum',\n max: 'Maximum'\n },\n comparison: {\n item: \"Comparaison d'objets\",\n value: 'Liste de valeurs',\n key: 'Propriété contenant la branche',\n values: 'Propriété contenant la valeur',\n category: \"Propriété contenant l'objet\"\n },\n radar: {\n titleItem: 'Comparaisons affichant {{props}}',\n titleList: 'Branches {{key}}, affichant {{value}}, regroupées par {{category}}',\n defineKey: '«Clé»',\n defineValue: '«Valeur»',\n defineCategory: '«Catégorie»'\n },\n circle: {\n id: \"Champ identifiant l'item\",\n pid: 'Champ identifiant le parent',\n field: 'Champ identifiant la valeur',\n title: 'Paquets de cercles présentant {{field}}',\n tooltip: 'Champ à afficher dans le tooltip'\n },\n innerRadius: 'Taille du rayon interne',\n moreOptions: 'Mode avancé'\n }\n }\n }\n};\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n BaseWidgetComponent,\n BaseWidgetModule,\n PryCoreModule,\n PryDashboardModule,\n PryEditInputModule,\n PryI18nModule,\n PryI18nService,\n PryIconModule,\n PryRangeModule,\n PrySelectModule,\n PryToggleModule\n} from '@provoly/dashboard';\nimport { PryCheckboxModule } from '@provoly/dashboard/components/checkbox';\nimport { WidgetChartComponent } from './component/widget-chart.component';\nimport { enTranslations } from './i18n/en.translations';\nimport { frTranslations } from './i18n/fr.translations';\nimport { PryWidgetChartCssComponent } from './style/css.component';\n\n@NgModule({\n declarations: [WidgetChartComponent, PryWidgetChartCssComponent],\n imports: [\n CommonModule,\n FormsModule,\n OverlayModule,\n PryCoreModule,\n PryDashboardModule,\n PrySelectModule,\n PryIconModule,\n PryCheckboxModule,\n PryToggleModule,\n PryEditInputModule,\n PryI18nModule,\n PryRangeModule\n ],\n exports: [WidgetChartComponent]\n})\nexport class WidgetChartModule extends BaseWidgetModule {\n constructor(private pryTranslateService: PryI18nService) {\n super();\n this.pryTranslateService.addLangObject('fr', 'widget-chart', frTranslations);\n this.pryTranslateService.addLangObject('en', 'widget-chart', enTranslations);\n }\n\n override getComponent() {\n return WidgetChartComponent as Type<BaseWidgetComponent>;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i5.PryWidgetChartCssComponent","i1"],"mappings":"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"}