@provoly/dashboard 0.20.2 → 0.20.3

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 (54) hide show
  1. package/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.d.ts +5 -2
  2. package/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.d.ts +1 -1
  3. package/admin/i18n/en.translations.d.ts +1 -0
  4. package/admin/i18n/fr.translations.d.ts +1 -0
  5. package/esm2022/admin/components/admin-classes/admin-classes-customize/admin-classes-customize.component.mjs +5 -5
  6. package/esm2022/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.mjs +3 -3
  7. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +36 -11
  8. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-new/admin-attributes-new.component.mjs +1 -1
  9. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-select/admin-attributes-select.component.mjs +3 -3
  10. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-classes-view.component.mjs +3 -3
  11. package/esm2022/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.mjs +2 -2
  12. package/esm2022/admin/i18n/en.translations.mjs +3 -2
  13. package/esm2022/admin/i18n/fr.translations.mjs +3 -2
  14. package/esm2022/lib/core/model/admin-api.model.mjs +1 -1
  15. package/esm2022/lib/core/model/filter.interface.mjs +1 -1
  16. package/esm2022/lib/core/store/class/class.interface.mjs +1 -1
  17. package/esm2022/lib/core/store/class/class.selectors.mjs +6 -2
  18. package/esm2022/lib/core/store/search/search.service.mjs +1 -1
  19. package/esm2022/lib/dashboard/components/context-menu/object-edition/object-edition.component.mjs +26 -26
  20. package/esm2022/lib/dashboard/item-utils.mjs +7 -7
  21. package/esm2022/pipeline/store/pipeline.actions.mjs +1 -1
  22. package/esm2022/pipeline-components/filter/component/filter.component.mjs +4 -4
  23. package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +3 -3
  24. package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +12 -12
  25. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +4 -4
  26. package/esm2022/widgets/widget-map/pipe/widget-map-geometry-fields-for.pipe.mjs +3 -3
  27. package/esm2022/widgets/widget-map/utils/cql-utils.class.mjs +2 -2
  28. package/esm2022/widgets/widget-map/utils/widget-map.utils.mjs +6 -6
  29. package/esm2022/widgets/widget-table/component/widget-table.component.mjs +4 -4
  30. package/esm2022/widgets/widget-table/get-value/get-value.pipe.mjs +2 -2
  31. package/fesm2022/provoly-dashboard-admin.mjs +49 -22
  32. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  33. package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs +3 -3
  34. package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs.map +1 -1
  35. package/fesm2022/provoly-dashboard-pipeline.mjs.map +1 -1
  36. package/fesm2022/provoly-dashboard-toolbox.mjs +2 -2
  37. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  38. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +11 -11
  39. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
  40. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +11 -11
  41. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  42. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +4 -4
  43. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
  44. package/fesm2022/provoly-dashboard.mjs +36 -32
  45. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  46. package/lib/core/model/admin-api.model.d.ts +1 -0
  47. package/lib/core/model/filter.interface.d.ts +1 -1
  48. package/lib/core/store/class/class.interface.d.ts +1 -0
  49. package/lib/core/store/class/class.selectors.d.ts +105 -5
  50. package/lib/core/store/search/search.service.d.ts +1 -1
  51. package/package.json +7 -7
  52. package/pipeline/store/pipeline.actions.d.ts +1 -1
  53. package/styles-theme/components-theme/_a-pry-select.theme.scss +1 -1
  54. package/toolbox/components/filter-settings/filter-settings.component.d.ts +2 -2
@@ -371,10 +371,10 @@ class WidgetChartComponent extends DataWidgetComponent {
371
371
  this.subscriptions.add(this.fields$.subscribe((attrs) => (this.fields = attrs)));
372
372
  this.variables$ = combineLatest([this.variableAttributes$, this.fields$]).pipe(map(([attributes, fields]) => {
373
373
  return attributes.map((attr) => ({
374
- name: attr.name,
374
+ name: attr.technicalName,
375
375
  label: attr.name,
376
376
  type: this.translateToVegaType(fields.find((field) => field.id === attr.field)?.type ?? FieldType.STRING, attr.name)
377
- }) ?? []);
377
+ } ?? []));
378
378
  }));
379
379
  this.options$ = combineLatest([
380
380
  this.variables$,
@@ -414,7 +414,7 @@ class WidgetChartComponent extends DataWidgetComponent {
414
414
  }
415
415
  })
416
416
  .filter((attribute) => items.find((item) => Object.keys(item.attributes).includes(this.optionsCopy.selectedVariables[0].label) &&
417
- Object.keys(item.attributes).includes(attribute.name) &&
417
+ Object.keys(item.attributes).includes(attribute.technicalName) &&
418
418
  !!item.attributes[this.optionsCopy.selectedVariables[0].label].value &&
419
419
  item.attributes[attribute.name].value !== undefined));
420
420
  }), map((props) => WidgetChartComponent.uniqueAttributesByNames(props)));
@@ -429,8 +429,8 @@ class WidgetChartComponent extends DataWidgetComponent {
429
429
  const field = fields.find((field) => field.id === attribute.field);
430
430
  return [FieldType.DECIMAL, FieldType.INSTANT, FieldType.LONG, FieldType.INTEGER].includes(field?.type ?? FieldType.STRING);
431
431
  })
432
- .filter((attribute) => items.find((item) => Object.keys(item.attributes).includes(attribute.name) &&
433
- item.attributes[attribute.name].value !== undefined));
432
+ .filter((attribute) => items.find((item) => Object.keys(item.attributes).includes(attribute.technicalName) &&
433
+ item.attributes[attribute.technicalName].value !== undefined));
434
434
  }), map((props) => {
435
435
  return WidgetChartComponent.uniqueAttributesByNames(props);
436
436
  }));
@@ -445,8 +445,8 @@ class WidgetChartComponent extends DataWidgetComponent {
445
445
  const field = fields.find((field) => field.id === attribute.field);
446
446
  return [FieldType.STRING, FieldType.KEYWORD].includes(field?.type ?? FieldType.INTEGER);
447
447
  })
448
- .filter((attribute) => items.find((item) => Object.keys(item.attributes).includes(attribute.name) &&
449
- item.attributes[attribute.name].value !== undefined));
448
+ .filter((attribute) => items.find((item) => Object.keys(item.attributes).includes(attribute.technicalName) &&
449
+ item.attributes[attribute.technicalName].value !== undefined));
450
450
  }), map((props) => {
451
451
  return WidgetChartComponent.uniqueAttributesByNames(props);
452
452
  }));
@@ -693,7 +693,7 @@ class WidgetChartComponent extends DataWidgetComponent {
693
693
  });
694
694
  }
695
695
  static uniqueAttributesByNames(attributes) {
696
- return [...new Set(attributes.map((attr) => attr.name))].map((attrName) => attributes.find((attr) => attr.name === attrName) ?? {});
696
+ return [...new Set(attributes.map((attr) => attr.technicalName))].map((attrName) => attributes.find((attr) => attr.technicalName === attrName) ?? {});
697
697
  }
698
698
  changeChartTitle(title) {
699
699
  this.optionsCopy.customTitle = title;
@@ -712,7 +712,7 @@ class WidgetChartComponent extends DataWidgetComponent {
712
712
  this.triggerCalculatePossibleAttributes$.next();
713
713
  }
714
714
  changeProperty(attrName, index) {
715
- const attr = this.variableAttributes.find((attr) => attr.name === attrName);
715
+ const attr = this.variableAttributes.find((attr) => attr.technicalName === attrName);
716
716
  if (!!attr) {
717
717
  this.optionsCopy.selectedVariables[index].name = attr.name;
718
718
  this.optionsCopy.selectedVariables[index].label = attr.name;
@@ -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.2.12", 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.2.12", 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: ["triggerClick", "saveTriggered", "changeTitle"] }, { kind: "component", type: i2.PryWidgetHeaderComponent, selector: "pry-widget-header", inputs: ["manifest", "openData$", "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.2.12", 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=\"technicalName\"\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: ["triggerClick", "saveTriggered", "changeTitle"] }, { kind: "component", type: i2.PryWidgetHeaderComponent, selector: "pry-widget-header", inputs: ["manifest", "openData$", "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.2.12", 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 [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" }]
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=\"technicalName\"\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']