@provoly/dashboard 0.13.7 → 0.13.9

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 (120) hide show
  1. package/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.d.ts +4 -4
  2. package/admin/components/admin-dataset/store/admin-dataset.actions.d.ts +3 -3
  3. package/assets/svgs/layers.svg +2 -0
  4. package/esm2022/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.mjs +3 -3
  5. package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +2 -2
  6. package/esm2022/admin/components/admin-dataset/store/admin-dataset.actions.mjs +1 -1
  7. package/esm2022/lib/core/components/overlay/dialog-confirm.component.mjs +5 -12
  8. package/esm2022/lib/core/components/overlay/overlay.module.mjs +5 -4
  9. package/esm2022/lib/core/components/select/select.component.mjs +2 -2
  10. package/esm2022/lib/core/components/share/share.component.mjs +3 -3
  11. package/esm2022/lib/core/model/admin-api.model.mjs +1 -1
  12. package/esm2022/lib/core/model/dataset.interface.mjs +1 -1
  13. package/esm2022/lib/core/model/display-options.interface.mjs +4 -2
  14. package/esm2022/lib/core/model/manifest.interface.mjs +1 -1
  15. package/esm2022/lib/core/model/widget-map-manifest.interface.mjs +1 -1
  16. package/esm2022/lib/core/store/config/config.actions.mjs +2 -1
  17. package/esm2022/lib/core/store/config/config.effects.mjs +25 -4
  18. package/esm2022/lib/core/store/data-source/data-source.actions.mjs +1 -1
  19. package/esm2022/lib/core/store/data-source/data-source.effects.mjs +1 -1
  20. package/esm2022/lib/core/store/data-source/data-source.model.mjs +1 -1
  21. package/esm2022/lib/core/store/data-source/data-source.reducer.mjs +1 -1
  22. package/esm2022/lib/core/store/data-source/data-source.service.mjs +1 -1
  23. package/esm2022/lib/dashboard/components/context-menu/context-menu.component.mjs +3 -7
  24. package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.mjs +1 -1
  25. package/esm2022/lib/dashboard/components/widgets/settings/settings.component.mjs +6 -3
  26. package/esm2022/lib/dashboard/public-api.mjs +2 -1
  27. package/esm2022/lib/dashboard/store/dashboard.actions.mjs +2 -3
  28. package/esm2022/lib/dashboard/store/dashboard.effects.mjs +25 -11
  29. package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +2 -11
  30. package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +3 -5
  31. package/esm2022/lib/dashboard/store/manifest-utils.class.mjs +11 -0
  32. package/esm2022/lib/dashboard/store/manifest.service.mjs +3 -10
  33. package/esm2022/lib/dashboard/tooltip/components/default/default.tooltip.component.mjs +5 -4
  34. package/esm2022/pipeline/components/pipeline-list/pipeline-list.component.mjs +5 -8
  35. package/esm2022/presentation/components/presentation.component.mjs +5 -42
  36. package/esm2022/presentation/presentation.module.mjs +8 -4
  37. package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +9 -65
  38. package/esm2022/search/components/save-query/save-query.component.mjs +5 -8
  39. package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +3 -3
  40. package/esm2022/toolbox/components/refresh-datasets/refresh-datasets.component.mjs +3 -3
  41. package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +5 -16
  42. package/esm2022/toolbox/toolbox.module.mjs +8 -4
  43. package/esm2022/tooltips/attribute/attribute-tooltip.component.mjs +3 -3
  44. package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +3 -3
  45. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +90 -26
  46. package/esm2022/widgets/widget-map/i18n/en.translations.mjs +5 -2
  47. package/esm2022/widgets/widget-map/i18n/fr.translations.mjs +5 -2
  48. package/esm2022/widgets/widget-map/interaction/interaction-manager.class.mjs +2 -36
  49. package/esm2022/widgets/widget-map/style/css.component.mjs +2 -2
  50. package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +3 -3
  51. package/fesm2022/provoly-dashboard-admin.mjs +2 -2
  52. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  53. package/fesm2022/provoly-dashboard-pipeline.mjs +4 -7
  54. package/fesm2022/provoly-dashboard-pipeline.mjs.map +1 -1
  55. package/fesm2022/provoly-dashboard-presentation.mjs +11 -44
  56. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  57. package/fesm2022/provoly-dashboard-restitution.mjs +9 -65
  58. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  59. package/fesm2022/provoly-dashboard-search.mjs +4 -7
  60. package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
  61. package/fesm2022/provoly-dashboard-toolbox.mjs +14 -21
  62. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  63. package/fesm2022/provoly-dashboard-tooltips-attribute.mjs +2 -2
  64. package/fesm2022/provoly-dashboard-tooltips-attribute.mjs.map +1 -1
  65. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +2 -2
  66. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
  67. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +103 -129
  68. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  69. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +2 -2
  70. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
  71. package/fesm2022/provoly-dashboard.mjs +153 -135
  72. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  73. package/lib/core/components/overlay/overlay.module.d.ts +2 -1
  74. package/lib/core/model/admin-api.model.d.ts +1 -1
  75. package/lib/core/model/dataset.interface.d.ts +0 -10
  76. package/lib/core/model/display-options.interface.d.ts +1 -0
  77. package/lib/core/model/manifest.interface.d.ts +2 -0
  78. package/lib/core/model/widget-map-manifest.interface.d.ts +1 -0
  79. package/lib/core/store/config/config.actions.d.ts +5 -0
  80. package/lib/core/store/config/config.effects.d.ts +6 -1
  81. package/lib/core/store/data-source/data-source.actions.d.ts +2 -2
  82. package/lib/core/store/data-source/data-source.effects.d.ts +2 -3
  83. package/lib/core/store/data-source/data-source.model.d.ts +11 -3
  84. package/lib/core/store/data-source/data-source.reducer.d.ts +2 -2
  85. package/lib/core/store/data-source/data-source.selectors.d.ts +5 -5
  86. package/lib/core/store/data-source/data-source.service.d.ts +4 -4
  87. package/lib/dashboard/components/context-menu/context-menu.component.d.ts +0 -1
  88. package/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.d.ts +1 -2
  89. package/lib/dashboard/components/widgets/settings/settings.component.d.ts +1 -0
  90. package/lib/dashboard/public-api.d.ts +1 -0
  91. package/lib/dashboard/store/dashboard.actions.d.ts +6 -17
  92. package/lib/dashboard/store/dashboard.effects.d.ts +6 -7
  93. package/lib/dashboard/store/dashboard.reducers.d.ts +1 -5
  94. package/lib/dashboard/store/dashboard.selectors.d.ts +0 -57
  95. package/lib/dashboard/store/manifest-utils.class.d.ts +4 -0
  96. package/lib/dashboard/store/manifest.service.d.ts +0 -1
  97. package/package.json +25 -25
  98. package/pipeline/components/pipeline-list/pipeline-list.component.d.ts +1 -2
  99. package/presentation/components/presentation.component.d.ts +0 -5
  100. package/presentation/presentation.module.d.ts +2 -1
  101. package/restitution/components/restitution-catalog/restitution-catalog.component.d.ts +4 -15
  102. package/schematics/ng-add/index.js +0 -2
  103. package/schematics/ng-add/index.js.map +1 -1
  104. package/schematics/ng-update/version-0-13/index.js +18 -1
  105. package/schematics/ng-update/version-0-13/index.js.map +1 -1
  106. package/schematics/ng-update/version-0-13/index.spec.js +8 -1
  107. package/schematics/ng-update/version-0-13/index.spec.js.map +1 -1
  108. package/search/components/save-query/save-query.component.d.ts +1 -2
  109. package/styles/components/_m-tooltip.scss +18 -2
  110. package/styles-theme/components-theme/_m-tooltip.theme.scss +0 -12
  111. package/toolbox/components/select-grid-layout/select-grid-layout.component.d.ts +0 -4
  112. package/toolbox/toolbox.module.d.ts +2 -1
  113. package/widgets/widget-map/component/widget-map.component.d.ts +16 -3
  114. package/widgets/widget-map/i18n/en.translations.d.ts +3 -0
  115. package/widgets/widget-map/i18n/fr.translations.d.ts +3 -0
  116. package/widgets/widget-map/interaction/interaction-manager.class.d.ts +3 -8
  117. package/widgets/widget-map/style/_o-layer-legend.scss +45 -0
  118. package/widgets/widget-map/style/_o-widget-map.scss +0 -1
  119. package/esm2022/widgets/widget-map/search-bar/search-bar.control.mjs +0 -66
  120. package/widgets/widget-map/search-bar/search-bar.control.d.ts +0 -27
@@ -28,11 +28,11 @@ class AttributeTooltipComponent extends BaseTooltipComponent {
28
28
  }
29
29
  }
30
30
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AttributeTooltipComponent, deps: [{ token: i1.TranslateIdPipe }], target: i0.ɵɵFactoryTarget.Component }); }
31
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AttributeTooltipComponent, selector: "pry-attribute-tooltip", usesInheritance: true, ngImport: i0, template: "<div class=\"m-tooltip__item__content\">\n <h3 class=\"a-h3 -attribute\">\n <img\n [src]=\"data.item | translateItemToSymbol | async\"\n [alt]=\"data.item.oClass | translateId: { type: 'class', output: 'name' } | async\"\n width=\"32\"\n aria-hidden=\"true\"\n />\n <span>{{ data.item.oClass | translateId: { type: 'class', output: 'name' } | async }}</span>\n </h3>\n <ng-container *ngFor=\"let attribute of context.attributes\">\n <p>\n <span>{{ attribute }}:</span> {{ getValue(attribute) | async }}\n </p>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i1.TranslateItemToSymbolPipe, name: "translateItemToSymbol" }] }); }
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AttributeTooltipComponent, selector: "pry-attribute-tooltip", usesInheritance: true, ngImport: i0, template: "<div class=\"m-tooltip__item__content\">\n <h3 class=\"a-h3 -attribute\">\n <img\n [src]=\"data.item | translateItemToSymbol | async\"\n [alt]=\"data.item.oClass | translateId : { type: 'class', output: 'name' } | async\"\n width=\"32\"\n aria-hidden=\"true\"\n />\n <span>{{ data.item.oClass | translateId : { type: 'class', output: 'name' } | async }}</span>\n </h3>\n <ng-container *ngFor=\"let attribute of context.attributes\">\n <p>\n <span>{{ attribute }}:</span> {{ getValue(attribute) | async }}\n </p>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i1.TranslateItemToSymbolPipe, name: "translateItemToSymbol" }] }); }
32
32
  }
33
33
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AttributeTooltipComponent, decorators: [{
34
34
  type: Component,
35
- args: [{ selector: 'pry-attribute-tooltip', template: "<div class=\"m-tooltip__item__content\">\n <h3 class=\"a-h3 -attribute\">\n <img\n [src]=\"data.item | translateItemToSymbol | async\"\n [alt]=\"data.item.oClass | translateId: { type: 'class', output: 'name' } | async\"\n width=\"32\"\n aria-hidden=\"true\"\n />\n <span>{{ data.item.oClass | translateId: { type: 'class', output: 'name' } | async }}</span>\n </h3>\n <ng-container *ngFor=\"let attribute of context.attributes\">\n <p>\n <span>{{ attribute }}:</span> {{ getValue(attribute) | async }}\n </p>\n </ng-container>\n</div>\n" }]
35
+ args: [{ selector: 'pry-attribute-tooltip', template: "<div class=\"m-tooltip__item__content\">\n <h3 class=\"a-h3 -attribute\">\n <img\n [src]=\"data.item | translateItemToSymbol | async\"\n [alt]=\"data.item.oClass | translateId : { type: 'class', output: 'name' } | async\"\n width=\"32\"\n aria-hidden=\"true\"\n />\n <span>{{ data.item.oClass | translateId : { type: 'class', output: 'name' } | async }}</span>\n </h3>\n <ng-container *ngFor=\"let attribute of context.attributes\">\n <p>\n <span>{{ attribute }}:</span> {{ getValue(attribute) | async }}\n </p>\n </ng-container>\n</div>\n" }]
36
36
  }], ctorParameters: function () { return [{ type: i1.TranslateIdPipe }]; } });
37
37
 
38
38
  class PryAttributeTooltipModule extends BaseTooltipModule {
@@ -1 +1 @@
1
- {"version":3,"file":"provoly-dashboard-tooltips-attribute.mjs","sources":["../../../../projects/provoly/dashboard/tooltips/attribute/attribute-tooltip.component.ts","../../../../projects/provoly/dashboard/tooltips/attribute/attribute-tooltip.component.html","../../../../projects/provoly/dashboard/tooltips/attribute/attribute-tooltip.module.ts","../../../../projects/provoly/dashboard/tooltips/attribute/provoly-dashboard-tooltips-attribute.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { BaseTooltipComponent, TranslateIdPipe } from '@provoly/dashboard';\nimport { Observable, of } from 'rxjs';\n\n@Component({\n selector: 'pry-attribute-tooltip',\n templateUrl: './attribute-tooltip.component.html'\n})\nexport class AttributeTooltipComponent extends BaseTooltipComponent {\n constructor(private translateIdPipe: TranslateIdPipe) {\n super();\n this.context = this.context ?? { attributes: [] };\n }\n\n getValue(attribute: string): Observable<string> {\n switch (attribute) {\n case 'id':\n return of(this.data.item[attribute]);\n case 'oClass':\n return this.translateIdPipe.transform(this.data.item[attribute], {\n type: 'class',\n output: 'name'\n }) as Observable<string>;\n default:\n return of((this.data.item.attributes[attribute]?.value ?? '') as string);\n }\n }\n}\n","<div class=\"m-tooltip__item__content\">\n <h3 class=\"a-h3 -attribute\">\n <img\n [src]=\"data.item | translateItemToSymbol | async\"\n [alt]=\"data.item.oClass | translateId: { type: 'class', output: 'name' } | async\"\n width=\"32\"\n aria-hidden=\"true\"\n />\n <span>{{ data.item.oClass | translateId: { type: 'class', output: 'name' } | async }}</span>\n </h3>\n <ng-container *ngFor=\"let attribute of context.attributes\">\n <p>\n <span>{{ attribute }}:</span> {{ getValue(attribute) | async }}\n </p>\n </ng-container>\n</div>\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BaseTooltipComponent, BaseTooltipModule, PryCoreModule } from '@provoly/dashboard';\nimport { AttributeTooltipComponent } from './attribute-tooltip.component';\n\n@NgModule({\n declarations: [AttributeTooltipComponent],\n imports: [CommonModule, FormsModule, OverlayModule, PryCoreModule],\n exports: [AttributeTooltipComponent]\n})\nexport class PryAttributeTooltipModule extends BaseTooltipModule {\n override getComponent() {\n return AttributeTooltipComponent as Type<BaseTooltipComponent>;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provoly-dashboard-tooltips-attribute.mjs","sources":["../../../../projects/provoly/dashboard/tooltips/attribute/attribute-tooltip.component.ts","../../../../projects/provoly/dashboard/tooltips/attribute/attribute-tooltip.component.html","../../../../projects/provoly/dashboard/tooltips/attribute/attribute-tooltip.module.ts","../../../../projects/provoly/dashboard/tooltips/attribute/provoly-dashboard-tooltips-attribute.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { BaseTooltipComponent, TranslateIdPipe } from '@provoly/dashboard';\nimport { Observable, of } from 'rxjs';\n\n@Component({\n selector: 'pry-attribute-tooltip',\n templateUrl: './attribute-tooltip.component.html'\n})\nexport class AttributeTooltipComponent extends BaseTooltipComponent {\n constructor(private translateIdPipe: TranslateIdPipe) {\n super();\n this.context = this.context ?? { attributes: [] };\n }\n\n getValue(attribute: string): Observable<string> {\n switch (attribute) {\n case 'id':\n return of(this.data.item[attribute]);\n case 'oClass':\n return this.translateIdPipe.transform(this.data.item[attribute], {\n type: 'class',\n output: 'name'\n }) as Observable<string>;\n default:\n return of((this.data.item.attributes[attribute]?.value ?? '') as string);\n }\n }\n}\n","<div class=\"m-tooltip__item__content\">\n <h3 class=\"a-h3 -attribute\">\n <img\n [src]=\"data.item | translateItemToSymbol | async\"\n [alt]=\"data.item.oClass | translateId : { type: 'class', output: 'name' } | async\"\n width=\"32\"\n aria-hidden=\"true\"\n />\n <span>{{ data.item.oClass | translateId : { type: 'class', output: 'name' } | async }}</span>\n </h3>\n <ng-container *ngFor=\"let attribute of context.attributes\">\n <p>\n <span>{{ attribute }}:</span> {{ getValue(attribute) | async }}\n </p>\n </ng-container>\n</div>\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BaseTooltipComponent, BaseTooltipModule, PryCoreModule } from '@provoly/dashboard';\nimport { AttributeTooltipComponent } from './attribute-tooltip.component';\n\n@NgModule({\n declarations: [AttributeTooltipComponent],\n imports: [CommonModule, FormsModule, OverlayModule, PryCoreModule],\n exports: [AttributeTooltipComponent]\n})\nexport class PryAttributeTooltipModule extends BaseTooltipModule {\n override getComponent() {\n return AttributeTooltipComponent as Type<BaseTooltipComponent>;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -934,11 +934,11 @@ class WidgetChartComponent extends DataWidgetComponent {
934
934
  });
935
935
  }
936
936
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: WidgetChartComponent, deps: [{ token: i1.Store }, { token: i2.PryI18nService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
937
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: WidgetChartComponent, selector: "pry-widget-chart", viewQueries: [{ propertyName: "vega", first: true, predicate: ["vega"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<pry-widget-chart-css></pry-widget-chart-css>\n<div class=\"o-widget o-widget--chart\">\n <pry-widget-header\n [datasourceIds]=\"(datasourceIds$ | async) ?? []\"\n *ngIf=\"displayHeader$ | 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\n <div class=\"m-form-label-field\">\n <ng-container *ngIf=\"(filterDataForOptionsCopy$ | async)?.length === 0; else data\">\n <p class=\"a-label a-label--help -error\">{{ '@pry.widget.chart.params.noParams' | i18n }}</p>\n </ng-container>\n <ng-template #data>\n <div *ngIf=\"optionsCopy?.type !== MarkType.RADAR\">\n {{ '@pry.widget.chart.params.multipleParams' | i18n }}{{ (filterDataForOptionsCopy$ | async)?.length }}\n </div>\n </ng-template>\n </div>\n\n <div *ngIf=\"optionsCopy\" 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 [itemsAsOption]=\"true\"\n [items]=\"typeOptions\"\n [labelTranslate]=\"true\"\n [ngModel]=\"optionsCopy.type + '-' + optionsCopy.subType\"\n baseTranslate=\"@pry.widget.chart.markType.\"\n class=\"a-pry-select\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"chart_type\"\n ></pry-select>\n </div>\n </div>\n\n <ng-container *ngIf=\"optionsCopy?.type !== MarkType.RADAR && optionsCopy?.type !== MarkType.CIRCLE_PACK\">\n <ng-container *ngIf=\"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 </ng-container>\n\n <div\n *ngFor=\"let variableDef of optionsCopy?.selectedVariables; let i = index\"\n class=\"o-settings__popup__content__fields -condensed\"\n >\n <div class=\"m-form-label-field\" *ngIf=\"i === 1\">\n <label class=\"a-label\" for=\"aggregations\">{{ '@pry.widget.chart.encoding.group' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeAggregation($event)\"\n *ngIf=\"i === 1\"\n [bindData]=\"true\"\n [itemsAsOption]=\"true\"\n [items]=\"aggregations\"\n [labelTranslate]=\"true\"\n [ngModel]=\"optionsCopy.aggregation\"\n [translationFn]=\"translateAggregations\"\n class=\"a-pry-select\"\n id=\"aggregations\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\" *ngIf=\"i !== 1 || optionsCopy.aggregation !== 'count'\">\n <label class=\"a-label\" for=\"aggregation_property\">\n {{ axeLabel(i, optionsCopy) | i18n }}\n </label>\n <pry-select\n (ngModelChange)=\"changeProperty($event, i)\"\n [itemsAsOption]=\"true\"\n [items]=\"(i !== 1 ? variableAttributes$ : possibleSecondaryAttributes$) | async\"\n [ngModel]=\"variableDef.name\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\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\n <div *ngIf=\"variableDef.type === 'temporal'\" 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 [bindData]=\"true\"\n [itemsAsOption]=\"true\"\n [items]=\"timeUnits\"\n [labelTranslate]=\"true\"\n [ngModel]=\"variableDef.timeUnit\"\n baseTranslate=\"@pry.widget.chart.timeUnitList.\"\n class=\"a-pry-select\"\n id=\"chart_timeUnit\"\n ></pry-select>\n </div>\n\n <div *ngIf=\"variableDef.type === 'quantitative' && optionsCopy?.type !== 'arc'\" 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 </div>\n\n <div class=\"o-settings__popup__content__fields -condensed\">\n <div class=\"m-form-label-field\">\n <pry-checkbox\n (ngModelChange)=\"toggleSeries($event)\"\n [ngModel]=\"!!optionsCopy.series\"\n *ngIf=\"optionsCopy?.type !== MarkType.ARC && optionsCopy?.type !== MarkType.RADAR\"\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 </div>\n\n <div\n class=\"m-form-label-field\"\n *ngIf=\"optionsCopy?.type !== MarkType.ARC && optionsCopy?.type !== MarkType.RADAR && !!optionsCopy.series\"\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 [itemsAsOption]=\"true\"\n [items]=\"variableAttributes$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"chart_seriesAttr\"\n ></pry-select>\n </div>\n\n <div\n class=\"m-form-label-field\"\n *ngIf=\"\n (optionsCopy?.type === MarkType.ARC || optionsCopy?.type === MarkType.RADAR || !!optionsCopy.series) &&\n schemes\n \"\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 [itemsAsOption]=\"true\"\n [items]=\"schemes\"\n id=\"chart_seriesScheme\"\n [labelTranslate]=\"true\"\n baseTranslate=\"@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 <div\n *ngFor=\"let schemeColor of scheme()\"\n class=\"o-widget--chart-color-thumb-item\"\n [title]=\"schemeColor\"\n [style.background-color]=\"schemeColor\"\n ></div>\n </div>\n\n <div class=\"m-form-label-field\">\n <pry-checkbox\n (ngModelChange)=\"toggleSeriesLegend($event)\"\n [ngModel]=\"!!optionsCopy.legend!\"\n *ngIf=\"optionsCopy?.type !== MarkType.RADAR || !!optionsCopy.series\"\n >{{ '@pry.widget.chart.seriesLegend' | i18n }}\n </pry-checkbox>\n </div>\n\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 </ng-container>\n\n <ng-container *ngIf=\"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 [itemsAsOption]=\"true\"\n [items]=\"comparisons\"\n bindLabel=\"name\"\n bindValue=\"id\"\n class=\"a-pry-select\"\n ></pry-select>\n </div>\n\n <ng-container *ngIf=\"optionsCopy.radar.compare === 'item'\">\n <div class=\"m-form-label-field\">\n <pry-select\n (ngModelChange)=\"trigger(); proposeTitle()\"\n [(ngModel)]=\"optionsCopy.radar.props\"\n [itemsAsOption]=\"true\"\n [items]=\"numericProperties$ | async\"\n [multiple]=\"true\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n ></pry-select>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"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 [itemsAsOption]=\"true\"\n [items]=\"textProperties$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"comparison_key\"\n ></pry-select>\n </div>\n\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 [itemsAsOption]=\"true\"\n [items]=\"numericProperties$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"comparison_values\"\n ></pry-select>\n </div>\n\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 [itemsAsOption]=\"true\"\n [items]=\"textProperties$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"comparison_category\"\n ></pry-select>\n </div>\n </ng-container>\n <ng-container *ngIf=\"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 [bindData]=\"true\"\n [itemsAsOption]=\"false\"\n [items]=\"schemes\"\n id=\"chart_seriesScheme_radar\"\n ></pry-select>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"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 [itemsAsOption]=\"true\"\n [items]=\"variableAttributes$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"chart_circle_id\"\n ></pry-select>\n </div>\n\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 [itemsAsOption]=\"true\"\n [items]=\"variableAttributes$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"chart_circle_pid\"\n ></pry-select>\n </div>\n\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 [itemsAsOption]=\"true\"\n [items]=\"numericProperties$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"chart_circle_field\"\n ></pry-select>\n </div>\n\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 [itemsAsOption]=\"true\"\n [items]=\"variableAttributes$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"chart_circle_tooltip\"\n ></pry-select>\n </div>\n </div>\n </ng-container>\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\n <ng-container *ngIf=\"!!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 </ng-container>\n </div>\n </pry-settings>\n </pry-widget-header>\n <ng-container *ngIf=\"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 </ng-container>\n\n <ng-container *ngIf=\"!(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 </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.SettingsComponent, selector: "pry-settings", inputs: ["widgetIndex", "isDisable", "headerPresent", "open$", "header"], outputs: ["saveTriggered", "changeTitle"] }, { kind: "component", type: i2.PryWidgetHeaderComponent, selector: "pry-widget-header", inputs: ["manifest", "additionalOptions", "headerOptions", "displayCount", "datasourceIds", "widgetIndex"], outputs: ["manifestModified"] }, { kind: "component", type: i2.PrySelectComponent, selector: "pry-select", inputs: ["labelTranslate", "baseTranslate", "translationFn", "translationFnArgs", "clearable", "multiple", "multipleClearRight", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "items", "itemsAsOption", "bindData", "bindValue", "bindLabel", "bindIcon", "iconSize", "templateLabel", "templateOption", "autocomplete"] }, { kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "component", type: i2.PryEditInputComponent, selector: "pry-edit-input", inputs: ["label"] }, { kind: "component", type: i2.PryRangeComponent, selector: "pry-range", inputs: ["min", "max", "step", "disabled", "labelTranslate"] }, { kind: "component", type: PryWidgetChartCssComponent, selector: "pry-widget-chart-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }] }); }
937
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: WidgetChartComponent, selector: "pry-widget-chart", viewQueries: [{ propertyName: "vega", first: true, predicate: ["vega"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<pry-widget-chart-css></pry-widget-chart-css>\n<div class=\"o-widget o-widget--chart\">\n <pry-widget-header\n [datasourceIds]=\"(datasourceIds$ | async) ?? []\"\n *ngIf=\"displayHeader$ | 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\n <div class=\"m-form-label-field\">\n <ng-container *ngIf=\"(filterDataForOptionsCopy$ | async)?.length === 0; else data\">\n <p class=\"a-label a-label--help -error\">{{ '@pry.widget.chart.params.noParams' | i18n }}</p>\n </ng-container>\n <ng-template #data>\n <div *ngIf=\"optionsCopy?.type !== MarkType.RADAR\">\n {{ '@pry.widget.chart.params.multipleParams' | i18n }}{{ (filterDataForOptionsCopy$ | async)?.length }}\n </div>\n </ng-template>\n </div>\n\n <div *ngIf=\"optionsCopy\" 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 [itemsAsOption]=\"true\"\n [items]=\"typeOptions\"\n [labelTranslate]=\"true\"\n [ngModel]=\"optionsCopy.type + '-' + optionsCopy.subType\"\n baseTranslate=\"@pry.widget.chart.markType.\"\n class=\"a-pry-select\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"chart_type\"\n ></pry-select>\n </div>\n </div>\n\n <ng-container *ngIf=\"optionsCopy?.type !== MarkType.RADAR && optionsCopy?.type !== MarkType.CIRCLE_PACK\">\n <ng-container *ngIf=\"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 </ng-container>\n\n <div\n *ngFor=\"let variableDef of optionsCopy?.selectedVariables; let i = index\"\n class=\"o-settings__popup__content__fields -condensed\"\n >\n <div class=\"m-form-label-field\" *ngIf=\"i === 1\">\n <label class=\"a-label\" for=\"aggregations\">{{ '@pry.widget.chart.encoding.group' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeAggregation($event)\"\n *ngIf=\"i === 1\"\n [bindData]=\"true\"\n [itemsAsOption]=\"true\"\n [items]=\"aggregations\"\n [labelTranslate]=\"true\"\n [ngModel]=\"optionsCopy.aggregation\"\n [translationFn]=\"translateAggregations\"\n class=\"a-pry-select\"\n id=\"aggregations\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\" *ngIf=\"i !== 1 || optionsCopy.aggregation !== 'count'\">\n <label class=\"a-label\" for=\"aggregation_property\">\n {{ axeLabel(i, optionsCopy) | i18n }}\n </label>\n <pry-select\n (ngModelChange)=\"changeProperty($event, i)\"\n [itemsAsOption]=\"true\"\n [items]=\"(i !== 1 ? variableAttributes$ : possibleSecondaryAttributes$) | async\"\n [ngModel]=\"variableDef.name\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\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\n <div *ngIf=\"variableDef.type === 'temporal'\" 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 [bindData]=\"true\"\n [itemsAsOption]=\"true\"\n [items]=\"timeUnits\"\n [labelTranslate]=\"true\"\n [ngModel]=\"variableDef.timeUnit\"\n baseTranslate=\"@pry.widget.chart.timeUnitList.\"\n class=\"a-pry-select\"\n id=\"chart_timeUnit\"\n ></pry-select>\n </div>\n\n <div *ngIf=\"variableDef.type === 'quantitative' && optionsCopy?.type !== 'arc'\" 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 </div>\n\n <div class=\"o-settings__popup__content__fields -condensed\">\n <div class=\"m-form-label-field\">\n <pry-checkbox\n (ngModelChange)=\"toggleSeries($event)\"\n [ngModel]=\"!!optionsCopy.series\"\n *ngIf=\"optionsCopy?.type !== MarkType.ARC && optionsCopy?.type !== MarkType.RADAR\"\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 </div>\n\n <div\n class=\"m-form-label-field\"\n *ngIf=\"optionsCopy?.type !== MarkType.ARC && optionsCopy?.type !== MarkType.RADAR && !!optionsCopy.series\"\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 [itemsAsOption]=\"true\"\n [items]=\"variableAttributes$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"chart_seriesAttr\"\n ></pry-select>\n </div>\n\n <div\n class=\"m-form-label-field\"\n *ngIf=\"\n (optionsCopy?.type === MarkType.ARC || optionsCopy?.type === MarkType.RADAR || !!optionsCopy.series) &&\n schemes\n \"\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 [itemsAsOption]=\"true\"\n [items]=\"schemes\"\n id=\"chart_seriesScheme\"\n [labelTranslate]=\"true\"\n baseTranslate=\"@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 <div\n *ngFor=\"let schemeColor of scheme()\"\n class=\"o-widget--chart-color-thumb-item\"\n [title]=\"schemeColor\"\n [style.background-color]=\"schemeColor\"\n ></div>\n </div>\n\n <div class=\"m-form-label-field\">\n <pry-checkbox\n (ngModelChange)=\"toggleSeriesLegend($event)\"\n [ngModel]=\"!!optionsCopy.legend!\"\n *ngIf=\"optionsCopy?.type !== MarkType.RADAR || !!optionsCopy.series\"\n >{{ '@pry.widget.chart.seriesLegend' | i18n }}\n </pry-checkbox>\n </div>\n\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 </ng-container>\n\n <ng-container *ngIf=\"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 [itemsAsOption]=\"true\"\n [items]=\"comparisons\"\n bindLabel=\"name\"\n bindValue=\"id\"\n class=\"a-pry-select\"\n ></pry-select>\n </div>\n\n <ng-container *ngIf=\"optionsCopy.radar.compare === 'item'\">\n <div class=\"m-form-label-field\">\n <pry-select\n (ngModelChange)=\"trigger(); proposeTitle()\"\n [(ngModel)]=\"optionsCopy.radar.props\"\n [itemsAsOption]=\"true\"\n [items]=\"numericProperties$ | async\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n ></pry-select>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"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 [itemsAsOption]=\"true\"\n [items]=\"textProperties$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"comparison_key\"\n ></pry-select>\n </div>\n\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 [itemsAsOption]=\"true\"\n [items]=\"numericProperties$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"comparison_values\"\n ></pry-select>\n </div>\n\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 [itemsAsOption]=\"true\"\n [items]=\"textProperties$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"comparison_category\"\n ></pry-select>\n </div>\n </ng-container>\n <ng-container *ngIf=\"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 [bindData]=\"true\"\n [itemsAsOption]=\"false\"\n [items]=\"schemes\"\n id=\"chart_seriesScheme_radar\"\n ></pry-select>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"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 [itemsAsOption]=\"true\"\n [items]=\"variableAttributes$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"chart_circle_id\"\n ></pry-select>\n </div>\n\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 [itemsAsOption]=\"true\"\n [items]=\"variableAttributes$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"chart_circle_pid\"\n ></pry-select>\n </div>\n\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 [itemsAsOption]=\"true\"\n [items]=\"numericProperties$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"chart_circle_field\"\n ></pry-select>\n </div>\n\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 [itemsAsOption]=\"true\"\n [items]=\"variableAttributes$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"chart_circle_tooltip\"\n ></pry-select>\n </div>\n </div>\n </ng-container>\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\n <ng-container *ngIf=\"!!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 </ng-container>\n </div>\n </pry-settings>\n </pry-widget-header>\n <ng-container *ngIf=\"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 </ng-container>\n\n <ng-container *ngIf=\"!(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 </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.SettingsComponent, selector: "pry-settings", inputs: ["widgetIndex", "isDisable", "headerPresent", "open$", "header"], outputs: ["saveTriggered", "changeTitle"] }, { kind: "component", type: i2.PryWidgetHeaderComponent, selector: "pry-widget-header", inputs: ["manifest", "additionalOptions", "headerOptions", "displayCount", "datasourceIds", "widgetIndex"], outputs: ["manifestModified"] }, { kind: "component", type: i2.PrySelectComponent, selector: "pry-select", inputs: ["labelTranslate", "baseTranslate", "translationFn", "translationFnArgs", "clearable", "multiple", "multipleClearRight", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "items", "itemsAsOption", "bindData", "bindValue", "bindLabel", "bindIcon", "iconSize", "templateLabel", "templateOption", "autocomplete"] }, { kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "component", type: i2.PryEditInputComponent, selector: "pry-edit-input", inputs: ["label"] }, { kind: "component", type: i2.PryRangeComponent, selector: "pry-range", inputs: ["min", "max", "step", "disabled", "labelTranslate"] }, { kind: "component", type: PryWidgetChartCssComponent, selector: "pry-widget-chart-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }] }); }
938
938
  }
939
939
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: WidgetChartComponent, decorators: [{
940
940
  type: Component,
941
- args: [{ selector: 'pry-widget-chart', template: "<pry-widget-chart-css></pry-widget-chart-css>\n<div class=\"o-widget o-widget--chart\">\n <pry-widget-header\n [datasourceIds]=\"(datasourceIds$ | async) ?? []\"\n *ngIf=\"displayHeader$ | 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\n <div class=\"m-form-label-field\">\n <ng-container *ngIf=\"(filterDataForOptionsCopy$ | async)?.length === 0; else data\">\n <p class=\"a-label a-label--help -error\">{{ '@pry.widget.chart.params.noParams' | i18n }}</p>\n </ng-container>\n <ng-template #data>\n <div *ngIf=\"optionsCopy?.type !== MarkType.RADAR\">\n {{ '@pry.widget.chart.params.multipleParams' | i18n }}{{ (filterDataForOptionsCopy$ | async)?.length }}\n </div>\n </ng-template>\n </div>\n\n <div *ngIf=\"optionsCopy\" 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 [itemsAsOption]=\"true\"\n [items]=\"typeOptions\"\n [labelTranslate]=\"true\"\n [ngModel]=\"optionsCopy.type + '-' + optionsCopy.subType\"\n baseTranslate=\"@pry.widget.chart.markType.\"\n class=\"a-pry-select\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"chart_type\"\n ></pry-select>\n </div>\n </div>\n\n <ng-container *ngIf=\"optionsCopy?.type !== MarkType.RADAR && optionsCopy?.type !== MarkType.CIRCLE_PACK\">\n <ng-container *ngIf=\"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 </ng-container>\n\n <div\n *ngFor=\"let variableDef of optionsCopy?.selectedVariables; let i = index\"\n class=\"o-settings__popup__content__fields -condensed\"\n >\n <div class=\"m-form-label-field\" *ngIf=\"i === 1\">\n <label class=\"a-label\" for=\"aggregations\">{{ '@pry.widget.chart.encoding.group' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeAggregation($event)\"\n *ngIf=\"i === 1\"\n [bindData]=\"true\"\n [itemsAsOption]=\"true\"\n [items]=\"aggregations\"\n [labelTranslate]=\"true\"\n [ngModel]=\"optionsCopy.aggregation\"\n [translationFn]=\"translateAggregations\"\n class=\"a-pry-select\"\n id=\"aggregations\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\" *ngIf=\"i !== 1 || optionsCopy.aggregation !== 'count'\">\n <label class=\"a-label\" for=\"aggregation_property\">\n {{ axeLabel(i, optionsCopy) | i18n }}\n </label>\n <pry-select\n (ngModelChange)=\"changeProperty($event, i)\"\n [itemsAsOption]=\"true\"\n [items]=\"(i !== 1 ? variableAttributes$ : possibleSecondaryAttributes$) | async\"\n [ngModel]=\"variableDef.name\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\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\n <div *ngIf=\"variableDef.type === 'temporal'\" 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 [bindData]=\"true\"\n [itemsAsOption]=\"true\"\n [items]=\"timeUnits\"\n [labelTranslate]=\"true\"\n [ngModel]=\"variableDef.timeUnit\"\n baseTranslate=\"@pry.widget.chart.timeUnitList.\"\n class=\"a-pry-select\"\n id=\"chart_timeUnit\"\n ></pry-select>\n </div>\n\n <div *ngIf=\"variableDef.type === 'quantitative' && optionsCopy?.type !== 'arc'\" 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 </div>\n\n <div class=\"o-settings__popup__content__fields -condensed\">\n <div class=\"m-form-label-field\">\n <pry-checkbox\n (ngModelChange)=\"toggleSeries($event)\"\n [ngModel]=\"!!optionsCopy.series\"\n *ngIf=\"optionsCopy?.type !== MarkType.ARC && optionsCopy?.type !== MarkType.RADAR\"\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 </div>\n\n <div\n class=\"m-form-label-field\"\n *ngIf=\"optionsCopy?.type !== MarkType.ARC && optionsCopy?.type !== MarkType.RADAR && !!optionsCopy.series\"\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 [itemsAsOption]=\"true\"\n [items]=\"variableAttributes$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"chart_seriesAttr\"\n ></pry-select>\n </div>\n\n <div\n class=\"m-form-label-field\"\n *ngIf=\"\n (optionsCopy?.type === MarkType.ARC || optionsCopy?.type === MarkType.RADAR || !!optionsCopy.series) &&\n schemes\n \"\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 [itemsAsOption]=\"true\"\n [items]=\"schemes\"\n id=\"chart_seriesScheme\"\n [labelTranslate]=\"true\"\n baseTranslate=\"@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 <div\n *ngFor=\"let schemeColor of scheme()\"\n class=\"o-widget--chart-color-thumb-item\"\n [title]=\"schemeColor\"\n [style.background-color]=\"schemeColor\"\n ></div>\n </div>\n\n <div class=\"m-form-label-field\">\n <pry-checkbox\n (ngModelChange)=\"toggleSeriesLegend($event)\"\n [ngModel]=\"!!optionsCopy.legend!\"\n *ngIf=\"optionsCopy?.type !== MarkType.RADAR || !!optionsCopy.series\"\n >{{ '@pry.widget.chart.seriesLegend' | i18n }}\n </pry-checkbox>\n </div>\n\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 </ng-container>\n\n <ng-container *ngIf=\"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 [itemsAsOption]=\"true\"\n [items]=\"comparisons\"\n bindLabel=\"name\"\n bindValue=\"id\"\n class=\"a-pry-select\"\n ></pry-select>\n </div>\n\n <ng-container *ngIf=\"optionsCopy.radar.compare === 'item'\">\n <div class=\"m-form-label-field\">\n <pry-select\n (ngModelChange)=\"trigger(); proposeTitle()\"\n [(ngModel)]=\"optionsCopy.radar.props\"\n [itemsAsOption]=\"true\"\n [items]=\"numericProperties$ | async\"\n [multiple]=\"true\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n ></pry-select>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"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 [itemsAsOption]=\"true\"\n [items]=\"textProperties$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"comparison_key\"\n ></pry-select>\n </div>\n\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 [itemsAsOption]=\"true\"\n [items]=\"numericProperties$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"comparison_values\"\n ></pry-select>\n </div>\n\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 [itemsAsOption]=\"true\"\n [items]=\"textProperties$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"comparison_category\"\n ></pry-select>\n </div>\n </ng-container>\n <ng-container *ngIf=\"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 [bindData]=\"true\"\n [itemsAsOption]=\"false\"\n [items]=\"schemes\"\n id=\"chart_seriesScheme_radar\"\n ></pry-select>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"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 [itemsAsOption]=\"true\"\n [items]=\"variableAttributes$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"chart_circle_id\"\n ></pry-select>\n </div>\n\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 [itemsAsOption]=\"true\"\n [items]=\"variableAttributes$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"chart_circle_pid\"\n ></pry-select>\n </div>\n\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 [itemsAsOption]=\"true\"\n [items]=\"numericProperties$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"chart_circle_field\"\n ></pry-select>\n </div>\n\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 [itemsAsOption]=\"true\"\n [items]=\"variableAttributes$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"chart_circle_tooltip\"\n ></pry-select>\n </div>\n </div>\n </ng-container>\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\n <ng-container *ngIf=\"!!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 </ng-container>\n </div>\n </pry-settings>\n </pry-widget-header>\n <ng-container *ngIf=\"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 </ng-container>\n\n <ng-container *ngIf=\"!(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 </ng-container>\n</div>\n" }]
941
+ args: [{ selector: 'pry-widget-chart', template: "<pry-widget-chart-css></pry-widget-chart-css>\n<div class=\"o-widget o-widget--chart\">\n <pry-widget-header\n [datasourceIds]=\"(datasourceIds$ | async) ?? []\"\n *ngIf=\"displayHeader$ | 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\n <div class=\"m-form-label-field\">\n <ng-container *ngIf=\"(filterDataForOptionsCopy$ | async)?.length === 0; else data\">\n <p class=\"a-label a-label--help -error\">{{ '@pry.widget.chart.params.noParams' | i18n }}</p>\n </ng-container>\n <ng-template #data>\n <div *ngIf=\"optionsCopy?.type !== MarkType.RADAR\">\n {{ '@pry.widget.chart.params.multipleParams' | i18n }}{{ (filterDataForOptionsCopy$ | async)?.length }}\n </div>\n </ng-template>\n </div>\n\n <div *ngIf=\"optionsCopy\" 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 [itemsAsOption]=\"true\"\n [items]=\"typeOptions\"\n [labelTranslate]=\"true\"\n [ngModel]=\"optionsCopy.type + '-' + optionsCopy.subType\"\n baseTranslate=\"@pry.widget.chart.markType.\"\n class=\"a-pry-select\"\n bindLabel=\"label\"\n bindValue=\"id\"\n id=\"chart_type\"\n ></pry-select>\n </div>\n </div>\n\n <ng-container *ngIf=\"optionsCopy?.type !== MarkType.RADAR && optionsCopy?.type !== MarkType.CIRCLE_PACK\">\n <ng-container *ngIf=\"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 </ng-container>\n\n <div\n *ngFor=\"let variableDef of optionsCopy?.selectedVariables; let i = index\"\n class=\"o-settings__popup__content__fields -condensed\"\n >\n <div class=\"m-form-label-field\" *ngIf=\"i === 1\">\n <label class=\"a-label\" for=\"aggregations\">{{ '@pry.widget.chart.encoding.group' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeAggregation($event)\"\n *ngIf=\"i === 1\"\n [bindData]=\"true\"\n [itemsAsOption]=\"true\"\n [items]=\"aggregations\"\n [labelTranslate]=\"true\"\n [ngModel]=\"optionsCopy.aggregation\"\n [translationFn]=\"translateAggregations\"\n class=\"a-pry-select\"\n id=\"aggregations\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\" *ngIf=\"i !== 1 || optionsCopy.aggregation !== 'count'\">\n <label class=\"a-label\" for=\"aggregation_property\">\n {{ axeLabel(i, optionsCopy) | i18n }}\n </label>\n <pry-select\n (ngModelChange)=\"changeProperty($event, i)\"\n [itemsAsOption]=\"true\"\n [items]=\"(i !== 1 ? variableAttributes$ : possibleSecondaryAttributes$) | async\"\n [ngModel]=\"variableDef.name\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\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\n <div *ngIf=\"variableDef.type === 'temporal'\" 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 [bindData]=\"true\"\n [itemsAsOption]=\"true\"\n [items]=\"timeUnits\"\n [labelTranslate]=\"true\"\n [ngModel]=\"variableDef.timeUnit\"\n baseTranslate=\"@pry.widget.chart.timeUnitList.\"\n class=\"a-pry-select\"\n id=\"chart_timeUnit\"\n ></pry-select>\n </div>\n\n <div *ngIf=\"variableDef.type === 'quantitative' && optionsCopy?.type !== 'arc'\" 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 </div>\n\n <div class=\"o-settings__popup__content__fields -condensed\">\n <div class=\"m-form-label-field\">\n <pry-checkbox\n (ngModelChange)=\"toggleSeries($event)\"\n [ngModel]=\"!!optionsCopy.series\"\n *ngIf=\"optionsCopy?.type !== MarkType.ARC && optionsCopy?.type !== MarkType.RADAR\"\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 </div>\n\n <div\n class=\"m-form-label-field\"\n *ngIf=\"optionsCopy?.type !== MarkType.ARC && optionsCopy?.type !== MarkType.RADAR && !!optionsCopy.series\"\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 [itemsAsOption]=\"true\"\n [items]=\"variableAttributes$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"chart_seriesAttr\"\n ></pry-select>\n </div>\n\n <div\n class=\"m-form-label-field\"\n *ngIf=\"\n (optionsCopy?.type === MarkType.ARC || optionsCopy?.type === MarkType.RADAR || !!optionsCopy.series) &&\n schemes\n \"\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 [itemsAsOption]=\"true\"\n [items]=\"schemes\"\n id=\"chart_seriesScheme\"\n [labelTranslate]=\"true\"\n baseTranslate=\"@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 <div\n *ngFor=\"let schemeColor of scheme()\"\n class=\"o-widget--chart-color-thumb-item\"\n [title]=\"schemeColor\"\n [style.background-color]=\"schemeColor\"\n ></div>\n </div>\n\n <div class=\"m-form-label-field\">\n <pry-checkbox\n (ngModelChange)=\"toggleSeriesLegend($event)\"\n [ngModel]=\"!!optionsCopy.legend!\"\n *ngIf=\"optionsCopy?.type !== MarkType.RADAR || !!optionsCopy.series\"\n >{{ '@pry.widget.chart.seriesLegend' | i18n }}\n </pry-checkbox>\n </div>\n\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 </ng-container>\n\n <ng-container *ngIf=\"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 [itemsAsOption]=\"true\"\n [items]=\"comparisons\"\n bindLabel=\"name\"\n bindValue=\"id\"\n class=\"a-pry-select\"\n ></pry-select>\n </div>\n\n <ng-container *ngIf=\"optionsCopy.radar.compare === 'item'\">\n <div class=\"m-form-label-field\">\n <pry-select\n (ngModelChange)=\"trigger(); proposeTitle()\"\n [(ngModel)]=\"optionsCopy.radar.props\"\n [itemsAsOption]=\"true\"\n [items]=\"numericProperties$ | async\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n ></pry-select>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"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 [itemsAsOption]=\"true\"\n [items]=\"textProperties$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"comparison_key\"\n ></pry-select>\n </div>\n\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 [itemsAsOption]=\"true\"\n [items]=\"numericProperties$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"comparison_values\"\n ></pry-select>\n </div>\n\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 [itemsAsOption]=\"true\"\n [items]=\"textProperties$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"comparison_category\"\n ></pry-select>\n </div>\n </ng-container>\n <ng-container *ngIf=\"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 [bindData]=\"true\"\n [itemsAsOption]=\"false\"\n [items]=\"schemes\"\n id=\"chart_seriesScheme_radar\"\n ></pry-select>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"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 [itemsAsOption]=\"true\"\n [items]=\"variableAttributes$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"chart_circle_id\"\n ></pry-select>\n </div>\n\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 [itemsAsOption]=\"true\"\n [items]=\"variableAttributes$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"chart_circle_pid\"\n ></pry-select>\n </div>\n\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 [itemsAsOption]=\"true\"\n [items]=\"numericProperties$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"chart_circle_field\"\n ></pry-select>\n </div>\n\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 [itemsAsOption]=\"true\"\n [items]=\"variableAttributes$ | async\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"chart_circle_tooltip\"\n ></pry-select>\n </div>\n </div>\n </ng-container>\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\n <ng-container *ngIf=\"!!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 </ng-container>\n </div>\n </pry-settings>\n </pry-widget-header>\n <ng-container *ngIf=\"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 </ng-container>\n\n <ng-container *ngIf=\"!(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 </ng-container>\n</div>\n" }]
942
942
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.PryI18nService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { vega: [{
943
943
  type: ViewChild,
944
944
  args: ['vega']