@provoly/dashboard 0.20.1 → 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 (79) 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/components/about/about.component.mjs +8 -5
  15. package/esm2022/lib/core/model/admin-api.model.mjs +1 -1
  16. package/esm2022/lib/core/model/filter.interface.mjs +1 -1
  17. package/esm2022/lib/core/store/class/class.interface.mjs +1 -1
  18. package/esm2022/lib/core/store/class/class.selectors.mjs +6 -2
  19. package/esm2022/lib/core/store/search/search.actions.mjs +2 -2
  20. package/esm2022/lib/core/store/search/search.service.mjs +1 -1
  21. package/esm2022/lib/dashboard/action-bus/service/bus.service.mjs +2 -2
  22. package/esm2022/lib/dashboard/components/context-menu/object-edition/object-edition.component.mjs +26 -26
  23. package/esm2022/lib/dashboard/components/dashboard.component.mjs +4 -1
  24. package/esm2022/lib/dashboard/item-utils.mjs +7 -7
  25. package/esm2022/lib/dashboard/store/dashboard.actions.mjs +2 -2
  26. package/esm2022/lib/dashboard/store/proxy.utils.mjs +4 -24
  27. package/esm2022/pipeline/store/pipeline.actions.mjs +1 -1
  28. package/esm2022/pipeline-components/filter/component/filter.component.mjs +4 -4
  29. package/esm2022/presentation/components/presentation.component.mjs +3 -3
  30. package/esm2022/restitution/components/restitution/restitution.component.mjs +5 -5
  31. package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +3 -3
  32. package/esm2022/restitution/i18n/en.translations.mjs +2 -2
  33. package/esm2022/restitution/i18n/fr.translations.mjs +2 -2
  34. package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +3 -3
  35. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +10 -3
  36. package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +12 -12
  37. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +4 -4
  38. package/esm2022/widgets/widget-map/pipe/widget-map-geometry-fields-for.pipe.mjs +3 -3
  39. package/esm2022/widgets/widget-map/utils/cql-utils.class.mjs +2 -2
  40. package/esm2022/widgets/widget-map/utils/widget-map.utils.mjs +10 -6
  41. package/esm2022/widgets/widget-table/component/widget-table.component.mjs +4 -4
  42. package/esm2022/widgets/widget-table/get-value/get-value.pipe.mjs +2 -2
  43. package/fesm2022/provoly-dashboard-admin.mjs +49 -22
  44. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  45. package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs +3 -3
  46. package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs.map +1 -1
  47. package/fesm2022/provoly-dashboard-pipeline.mjs.map +1 -1
  48. package/fesm2022/provoly-dashboard-presentation.mjs +2 -2
  49. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  50. package/fesm2022/provoly-dashboard-restitution.mjs +8 -8
  51. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  52. package/fesm2022/provoly-dashboard-toolbox.mjs +2 -2
  53. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  54. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +9 -2
  55. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  56. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +11 -11
  57. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
  58. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +15 -11
  59. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  60. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +4 -4
  61. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
  62. package/fesm2022/provoly-dashboard.mjs +51 -61
  63. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  64. package/lib/core/components/about/about.component.d.ts +2 -1
  65. package/lib/core/model/admin-api.model.d.ts +1 -0
  66. package/lib/core/model/filter.interface.d.ts +1 -1
  67. package/lib/core/store/class/class.interface.d.ts +1 -0
  68. package/lib/core/store/class/class.selectors.d.ts +105 -5
  69. package/lib/core/store/search/search.actions.d.ts +2 -2
  70. package/lib/core/store/search/search.service.d.ts +1 -1
  71. package/lib/dashboard/store/dashboard.actions.d.ts +2 -2
  72. package/lib/dashboard/store/dashboard.effects.d.ts +3 -3
  73. package/lib/dashboard/store/proxy.utils.d.ts +1 -1
  74. package/package.json +1 -1
  75. package/pipeline/store/pipeline.actions.d.ts +1 -1
  76. package/styles/components/_o-about.scss +44 -6
  77. package/styles-theme/components-theme/_a-pry-select.theme.scss +1 -1
  78. package/toolbox/components/filter-settings/filter-settings.component.d.ts +2 -2
  79. package/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.d.ts +1 -0
@@ -27,7 +27,7 @@ class FilterComponent extends PipelinePropertiesPanelComponent {
27
27
  this.node.properties['attributeName'] = $event;
28
28
  this.checkFn();
29
29
  if (this.model) {
30
- const attrType = this.model.attributes.find((attr) => attr.name === $event)?.type ?? 'string';
30
+ const attrType = this.model.attributes.find((attr) => attr.technicalName === $event)?.type ?? 'string';
31
31
  this.operators = this.ref[attrType];
32
32
  if (this.operators) {
33
33
  this.node.properties['operator'] = this.operators[0];
@@ -58,11 +58,11 @@ class FilterComponent extends PipelinePropertiesPanelComponent {
58
58
  this.checkFn();
59
59
  }
60
60
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
61
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FilterComponent, selector: "pry-pipeline-filter", usesInheritance: true, ngImport: i0, template: "<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"filter\">{{ '@pry.pipeline.filter.filter' | i18n }}</label>\n <pry-select\n [itemsAsOption]=\"true\"\n [items]=\"model?.attributes ?? null\"\n [ngModel]=\"node.properties['attributeName']\"\n (ngModelChange)=\"changeAttribute($event)\"\n [disabled]=\"disabled\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"filter\"\n ></pry-select>\n</div>\n\n<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"operator\">{{ '@pry.pipeline.filter.operator' | i18n }}</label>\n <pry-select\n [items]=\"operators\"\n [ngModel]=\"node.properties['operator']\"\n (ngModelChange)=\"changeOperator($event)\"\n [disabled]=\"disabled\"\n class=\"a-pry-select\"\n id=\"operator\"\n ></pry-select>\n</div>\n\n<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"value\">{{ '@pry.pipeline.filter.value' | i18n }}</label>\n <input\n [type]=\"inputType\"\n [disabled]=\"disabled\"\n id=\"value\"\n class=\"a-form-field\"\n [ngModel]=\"node.properties['value']\"\n (ngModelChange)=\"changeValue($event)\"\n />\n</div>\n", dependencies: [{ kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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: "pipe", type: i2.I18nPipe, name: "i18n" }] }); }
61
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FilterComponent, selector: "pry-pipeline-filter", usesInheritance: true, ngImport: i0, template: "<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"filter\">{{ '@pry.pipeline.filter.filter' | i18n }}</label>\n <pry-select\n [itemsAsOption]=\"true\"\n [items]=\"model?.attributes ?? null\"\n [ngModel]=\"node.properties['attributeName']\"\n (ngModelChange)=\"changeAttribute($event)\"\n [disabled]=\"disabled\"\n bindLabel=\"technicalName\"\n bindValue=\"technicalName\"\n class=\"a-pry-select\"\n id=\"filter\"\n ></pry-select>\n</div>\n\n<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"operator\">{{ '@pry.pipeline.filter.operator' | i18n }}</label>\n <pry-select\n [items]=\"operators\"\n [ngModel]=\"node.properties['operator']\"\n (ngModelChange)=\"changeOperator($event)\"\n [disabled]=\"disabled\"\n class=\"a-pry-select\"\n id=\"operator\"\n ></pry-select>\n</div>\n\n<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"value\">{{ '@pry.pipeline.filter.value' | i18n }}</label>\n <input\n [type]=\"inputType\"\n [disabled]=\"disabled\"\n id=\"value\"\n class=\"a-form-field\"\n [ngModel]=\"node.properties['value']\"\n (ngModelChange)=\"changeValue($event)\"\n />\n</div>\n", dependencies: [{ kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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: "pipe", type: i2.I18nPipe, name: "i18n" }] }); }
62
62
  }
63
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterComponent, decorators: [{
64
64
  type: Component,
65
- args: [{ selector: 'pry-pipeline-filter', template: "<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"filter\">{{ '@pry.pipeline.filter.filter' | i18n }}</label>\n <pry-select\n [itemsAsOption]=\"true\"\n [items]=\"model?.attributes ?? null\"\n [ngModel]=\"node.properties['attributeName']\"\n (ngModelChange)=\"changeAttribute($event)\"\n [disabled]=\"disabled\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"filter\"\n ></pry-select>\n</div>\n\n<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"operator\">{{ '@pry.pipeline.filter.operator' | i18n }}</label>\n <pry-select\n [items]=\"operators\"\n [ngModel]=\"node.properties['operator']\"\n (ngModelChange)=\"changeOperator($event)\"\n [disabled]=\"disabled\"\n class=\"a-pry-select\"\n id=\"operator\"\n ></pry-select>\n</div>\n\n<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"value\">{{ '@pry.pipeline.filter.value' | i18n }}</label>\n <input\n [type]=\"inputType\"\n [disabled]=\"disabled\"\n id=\"value\"\n class=\"a-form-field\"\n [ngModel]=\"node.properties['value']\"\n (ngModelChange)=\"changeValue($event)\"\n />\n</div>\n" }]
65
+ args: [{ selector: 'pry-pipeline-filter', template: "<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"filter\">{{ '@pry.pipeline.filter.filter' | i18n }}</label>\n <pry-select\n [itemsAsOption]=\"true\"\n [items]=\"model?.attributes ?? null\"\n [ngModel]=\"node.properties['attributeName']\"\n (ngModelChange)=\"changeAttribute($event)\"\n [disabled]=\"disabled\"\n bindLabel=\"technicalName\"\n bindValue=\"technicalName\"\n class=\"a-pry-select\"\n id=\"filter\"\n ></pry-select>\n</div>\n\n<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"operator\">{{ '@pry.pipeline.filter.operator' | i18n }}</label>\n <pry-select\n [items]=\"operators\"\n [ngModel]=\"node.properties['operator']\"\n (ngModelChange)=\"changeOperator($event)\"\n [disabled]=\"disabled\"\n class=\"a-pry-select\"\n id=\"operator\"\n ></pry-select>\n</div>\n\n<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"value\">{{ '@pry.pipeline.filter.value' | i18n }}</label>\n <input\n [type]=\"inputType\"\n [disabled]=\"disabled\"\n id=\"value\"\n class=\"a-form-field\"\n [ngModel]=\"node.properties['value']\"\n (ngModelChange)=\"changeValue($event)\"\n />\n</div>\n" }]
66
66
  }], ctorParameters: function () { return []; } });
67
67
 
68
68
  const enTranslations = {
@@ -1 +1 @@
1
- {"version":3,"file":"provoly-dashboard-pipeline-components-filter.mjs","sources":["../../../../projects/provoly/dashboard/pipeline-components/filter/component/filter.component.ts","../../../../projects/provoly/dashboard/pipeline-components/filter/component/filter.component.html","../../../../projects/provoly/dashboard/pipeline-components/filter/i18n/en.translations.ts","../../../../projects/provoly/dashboard/pipeline-components/filter/i18n/fr.translations.ts","../../../../projects/provoly/dashboard/pipeline-components/filter/node-class/filter-node.class.ts","../../../../projects/provoly/dashboard/pipeline-components/filter/filter.module.ts","../../../../projects/provoly/dashboard/pipeline-components/filter/provoly-dashboard-pipeline-components-filter.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { FieldType } from '@provoly/dashboard';\nimport { PipelinePropertiesPanelComponent } from '@provoly/dashboard/pipeline';\n\n@Component({\n selector: 'pry-pipeline-filter',\n templateUrl: './filter.component.html'\n})\nexport class FilterComponent extends PipelinePropertiesPanelComponent {\n ref = {\n [FieldType.INTEGER]: ['GREATER_THAN', 'LOWER_THAN'],\n [FieldType.DECIMAL]: ['GREATER_THAN', 'LOWER_THAN'],\n [FieldType.LONG]: ['GREATER_THAN', 'LOWER_THAN'],\n [FieldType.STRING]: [],\n [FieldType.KEYWORD]: [],\n [FieldType.INSTANT]: ['GREATER_THAN', 'LOWER_THAN']\n } as { [key: string]: string[] };\n\n operators: string[] = [];\n inputType: string = 'text';\n\n constructor() {\n super();\n }\n\n changeAttribute($event: any) {\n this.node.properties['attributeName'] = $event;\n this.checkFn();\n if (this.model) {\n const attrType = this.model.attributes.find((attr) => attr.name === $event)?.type ?? 'string';\n this.operators = this.ref[attrType];\n if (this.operators) {\n this.node.properties['operator'] = this.operators[0];\n }\n this.inputType = this.getType(attrType);\n }\n }\n\n getType(type: string) {\n switch (type) {\n case FieldType.INTEGER:\n case FieldType.LONG:\n case FieldType.DECIMAL:\n return 'number';\n case FieldType.INSTANT:\n return 'date';\n case FieldType.KEYWORD:\n case FieldType.STRING:\n default:\n return 'text';\n }\n }\n\n changeOperator($event: any) {\n this.node.properties['operator'] = $event;\n this.checkFn();\n }\n\n changeValue($event: any) {\n this.node.properties['value'] = $event;\n this.checkFn();\n }\n}\n","<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"filter\">{{ '@pry.pipeline.filter.filter' | i18n }}</label>\n <pry-select\n [itemsAsOption]=\"true\"\n [items]=\"model?.attributes ?? null\"\n [ngModel]=\"node.properties['attributeName']\"\n (ngModelChange)=\"changeAttribute($event)\"\n [disabled]=\"disabled\"\n bindLabel=\"name\"\n bindValue=\"name\"\n class=\"a-pry-select\"\n id=\"filter\"\n ></pry-select>\n</div>\n\n<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"operator\">{{ '@pry.pipeline.filter.operator' | i18n }}</label>\n <pry-select\n [items]=\"operators\"\n [ngModel]=\"node.properties['operator']\"\n (ngModelChange)=\"changeOperator($event)\"\n [disabled]=\"disabled\"\n class=\"a-pry-select\"\n id=\"operator\"\n ></pry-select>\n</div>\n\n<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"value\">{{ '@pry.pipeline.filter.value' | i18n }}</label>\n <input\n [type]=\"inputType\"\n [disabled]=\"disabled\"\n id=\"value\"\n class=\"a-form-field\"\n [ngModel]=\"node.properties['value']\"\n (ngModelChange)=\"changeValue($event)\"\n />\n</div>\n","export const enTranslations = {\n '@pry': {\n pipeline: {\n codes: {\n MISSING_PROPERTY_IN_INPUT_ATTRIBUTE: 'Attribut name to filter is not available',\n BAD_TYPE: 'Attribute type is not valid'\n },\n filter: {\n filter: 'Attribute',\n operator: 'Operator',\n value: 'Value'\n }\n }\n }\n};\n","export const frTranslations = {\n '@pry': {\n pipeline: {\n codes: {\n MISSING_PROPERTY_IN_INPUT_ATTRIBUTE: \"Le nom de l'attribut à filtrer n'est pas disponible\",\n BAD_TYPE: \"Le type de l'attribut {{attributeName}} n'est pas correct\"\n },\n filter: {\n filter: 'Attribut',\n operator: 'Opération',\n value: 'Valeur'\n }\n }\n }\n};\n","import { BaseNode } from '@provoly/dashboard/pipeline';\n\nexport class FilterNode extends BaseNode {\n constructor(title?: string, ...other: any) {\n super();\n this.properties['type'] = 'com.provoly.common.transfo.Filter';\n this.addInput('items', 'items');\n this.addOutput('items', 'items');\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { PryCoreModule, PryDashboardModule, PryI18nModule, PryI18nService, PrySelectModule } from '@provoly/dashboard';\nimport { PipelineComponentFactoryService } from '@provoly/dashboard/pipeline';\nimport { FilterComponent } from './component/filter.component';\nimport { enTranslations } from './i18n/en.translations';\nimport { frTranslations } from './i18n/fr.translations';\nimport { FilterNode } from './node-class/filter-node.class';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n OverlayModule,\n PryCoreModule,\n PryDashboardModule,\n PrySelectModule,\n PryI18nModule\n ],\n declarations: [FilterComponent],\n exports: [FilterComponent]\n})\nexport class PryPipelineFilterModule {\n constructor(\n pipelineComponentFactoryService: PipelineComponentFactoryService,\n private pryTranslateService: PryI18nService\n ) {\n this.pryTranslateService.addLangObject('fr', 'pipeline-filter', frTranslations);\n this.pryTranslateService.addLangObject('en', 'pipeline-filter', enTranslations);\n\n pipelineComponentFactoryService.addType('com.provoly.common.transfo.Filter', FilterComponent, FilterNode);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"provoly-dashboard-pipeline-components-filter.mjs","sources":["../../../../projects/provoly/dashboard/pipeline-components/filter/component/filter.component.ts","../../../../projects/provoly/dashboard/pipeline-components/filter/component/filter.component.html","../../../../projects/provoly/dashboard/pipeline-components/filter/i18n/en.translations.ts","../../../../projects/provoly/dashboard/pipeline-components/filter/i18n/fr.translations.ts","../../../../projects/provoly/dashboard/pipeline-components/filter/node-class/filter-node.class.ts","../../../../projects/provoly/dashboard/pipeline-components/filter/filter.module.ts","../../../../projects/provoly/dashboard/pipeline-components/filter/provoly-dashboard-pipeline-components-filter.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { FieldType } from '@provoly/dashboard';\nimport { PipelinePropertiesPanelComponent } from '@provoly/dashboard/pipeline';\n\n@Component({\n selector: 'pry-pipeline-filter',\n templateUrl: './filter.component.html'\n})\nexport class FilterComponent extends PipelinePropertiesPanelComponent {\n ref = {\n [FieldType.INTEGER]: ['GREATER_THAN', 'LOWER_THAN'],\n [FieldType.DECIMAL]: ['GREATER_THAN', 'LOWER_THAN'],\n [FieldType.LONG]: ['GREATER_THAN', 'LOWER_THAN'],\n [FieldType.STRING]: [],\n [FieldType.KEYWORD]: [],\n [FieldType.INSTANT]: ['GREATER_THAN', 'LOWER_THAN']\n } as { [key: string]: string[] };\n\n operators: string[] = [];\n inputType: string = 'text';\n\n constructor() {\n super();\n }\n\n changeAttribute($event: any) {\n this.node.properties['attributeName'] = $event;\n this.checkFn();\n if (this.model) {\n const attrType = this.model.attributes.find((attr) => attr.technicalName === $event)?.type ?? 'string';\n this.operators = this.ref[attrType];\n if (this.operators) {\n this.node.properties['operator'] = this.operators[0];\n }\n this.inputType = this.getType(attrType);\n }\n }\n\n getType(type: string) {\n switch (type) {\n case FieldType.INTEGER:\n case FieldType.LONG:\n case FieldType.DECIMAL:\n return 'number';\n case FieldType.INSTANT:\n return 'date';\n case FieldType.KEYWORD:\n case FieldType.STRING:\n default:\n return 'text';\n }\n }\n\n changeOperator($event: any) {\n this.node.properties['operator'] = $event;\n this.checkFn();\n }\n\n changeValue($event: any) {\n this.node.properties['value'] = $event;\n this.checkFn();\n }\n}\n","<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"filter\">{{ '@pry.pipeline.filter.filter' | i18n }}</label>\n <pry-select\n [itemsAsOption]=\"true\"\n [items]=\"model?.attributes ?? null\"\n [ngModel]=\"node.properties['attributeName']\"\n (ngModelChange)=\"changeAttribute($event)\"\n [disabled]=\"disabled\"\n bindLabel=\"technicalName\"\n bindValue=\"technicalName\"\n class=\"a-pry-select\"\n id=\"filter\"\n ></pry-select>\n</div>\n\n<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"operator\">{{ '@pry.pipeline.filter.operator' | i18n }}</label>\n <pry-select\n [items]=\"operators\"\n [ngModel]=\"node.properties['operator']\"\n (ngModelChange)=\"changeOperator($event)\"\n [disabled]=\"disabled\"\n class=\"a-pry-select\"\n id=\"operator\"\n ></pry-select>\n</div>\n\n<div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"value\">{{ '@pry.pipeline.filter.value' | i18n }}</label>\n <input\n [type]=\"inputType\"\n [disabled]=\"disabled\"\n id=\"value\"\n class=\"a-form-field\"\n [ngModel]=\"node.properties['value']\"\n (ngModelChange)=\"changeValue($event)\"\n />\n</div>\n","export const enTranslations = {\n '@pry': {\n pipeline: {\n codes: {\n MISSING_PROPERTY_IN_INPUT_ATTRIBUTE: 'Attribut name to filter is not available',\n BAD_TYPE: 'Attribute type is not valid'\n },\n filter: {\n filter: 'Attribute',\n operator: 'Operator',\n value: 'Value'\n }\n }\n }\n};\n","export const frTranslations = {\n '@pry': {\n pipeline: {\n codes: {\n MISSING_PROPERTY_IN_INPUT_ATTRIBUTE: \"Le nom de l'attribut à filtrer n'est pas disponible\",\n BAD_TYPE: \"Le type de l'attribut {{attributeName}} n'est pas correct\"\n },\n filter: {\n filter: 'Attribut',\n operator: 'Opération',\n value: 'Valeur'\n }\n }\n }\n};\n","import { BaseNode } from '@provoly/dashboard/pipeline';\n\nexport class FilterNode extends BaseNode {\n constructor(title?: string, ...other: any) {\n super();\n this.properties['type'] = 'com.provoly.common.transfo.Filter';\n this.addInput('items', 'items');\n this.addOutput('items', 'items');\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { PryCoreModule, PryDashboardModule, PryI18nModule, PryI18nService, PrySelectModule } from '@provoly/dashboard';\nimport { PipelineComponentFactoryService } from '@provoly/dashboard/pipeline';\nimport { FilterComponent } from './component/filter.component';\nimport { enTranslations } from './i18n/en.translations';\nimport { frTranslations } from './i18n/fr.translations';\nimport { FilterNode } from './node-class/filter-node.class';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n OverlayModule,\n PryCoreModule,\n PryDashboardModule,\n PrySelectModule,\n PryI18nModule\n ],\n declarations: [FilterComponent],\n exports: [FilterComponent]\n})\nexport class PryPipelineFilterModule {\n constructor(\n pipelineComponentFactoryService: PipelineComponentFactoryService,\n private pryTranslateService: PryI18nService\n ) {\n this.pryTranslateService.addLangObject('fr', 'pipeline-filter', frTranslations);\n this.pryTranslateService.addLangObject('en', 'pipeline-filter', enTranslations);\n\n pipelineComponentFactoryService.addType('com.provoly.common.transfo.Filter', FilterComponent, FilterNode);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":";;;;;;;;;;;AAQM,MAAO,eAAgB,SAAQ,gCAAgC,CAAA;AAanE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;AAbV,QAAA,IAAA,CAAA,GAAG,GAAG;YACJ,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC;YACnD,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC;YACnD,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC;AAChD,YAAA,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE;AACtB,YAAA,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE;YACvB,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC;SACrB,CAAC;QAEjC,IAAS,CAAA,SAAA,GAAa,EAAE,CAAC;QACzB,IAAS,CAAA,SAAA,GAAW,MAAM,CAAC;KAI1B;AAED,IAAA,eAAe,CAAC,MAAW,EAAA;QACzB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,aAAa,KAAK,MAAM,CAAC,EAAE,IAAI,IAAI,QAAQ,CAAC;YACvG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACtD,aAAA;YACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACzC,SAAA;KACF;AAED,IAAA,OAAO,CAAC,IAAY,EAAA;AAClB,QAAA,QAAQ,IAAI;YACV,KAAK,SAAS,CAAC,OAAO,CAAC;YACvB,KAAK,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,SAAS,CAAC,OAAO;AACpB,gBAAA,OAAO,QAAQ,CAAC;YAClB,KAAK,SAAS,CAAC,OAAO;AACpB,gBAAA,OAAO,MAAM,CAAC;YAChB,KAAK,SAAS,CAAC,OAAO,CAAC;YACvB,KAAK,SAAS,CAAC,MAAM,CAAC;AACtB,YAAA;AACE,gBAAA,OAAO,MAAM,CAAC;AACjB,SAAA;KACF;AAED,IAAA,cAAc,CAAC,MAAW,EAAA;QACxB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;AAED,IAAA,WAAW,CAAC,MAAW,EAAA;QACrB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;QACvC,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;+GArDU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,kFCR5B,0rCAsCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD9Ba,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,0rCAAA,EAAA,CAAA;;;AEL1B,MAAM,cAAc,GAAG;AAC5B,IAAA,MAAM,EAAE;AACN,QAAA,QAAQ,EAAE;AACR,YAAA,KAAK,EAAE;AACL,gBAAA,mCAAmC,EAAE,0CAA0C;AAC/E,gBAAA,QAAQ,EAAE,6BAA6B;AACxC,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,MAAM,EAAE,WAAW;AACnB,gBAAA,QAAQ,EAAE,UAAU;AACpB,gBAAA,KAAK,EAAE,OAAO;AACf,aAAA;AACF,SAAA;AACF,KAAA;CACF;;ACdM,MAAM,cAAc,GAAG;AAC5B,IAAA,MAAM,EAAE;AACN,QAAA,QAAQ,EAAE;AACR,YAAA,KAAK,EAAE;AACL,gBAAA,mCAAmC,EAAE,qDAAqD;AAC1F,gBAAA,QAAQ,EAAE,2DAA2D;AACtE,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,MAAM,EAAE,UAAU;AAClB,gBAAA,QAAQ,EAAE,WAAW;AACrB,gBAAA,KAAK,EAAE,QAAQ;AAChB,aAAA;AACF,SAAA;AACF,KAAA;CACF;;ACZK,MAAO,UAAW,SAAQ,QAAQ,CAAA;IACtC,WAAY,CAAA,KAAc,EAAE,GAAG,KAAU,EAAA;AACvC,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,mCAAmC,CAAC;AAC9D,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;KAClC;AACF;;MCeY,uBAAuB,CAAA;IAClC,WACE,CAAA,+BAAgE,EACxD,mBAAmC,EAAA;QAAnC,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAgB;QAE3C,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC;QAChF,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC;QAEhF,+BAA+B,CAAC,OAAO,CAAC,mCAAmC,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;KAC3G;+GATU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,+BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAAvB,uBAAuB,EAAA,YAAA,EAAA,CAHnB,eAAe,CAAA,EAAA,OAAA,EAAA,CAR5B,YAAY;YACZ,WAAW;YACX,aAAa;YACb,aAAa;YACb,kBAAkB;YAClB,eAAe;AACf,YAAA,aAAa,aAGL,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;AAEd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,YAXhC,YAAY;YACZ,WAAW;YACX,aAAa;YACb,aAAa;YACb,kBAAkB;YAClB,eAAe;YACf,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAKJ,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAbnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,aAAa;wBACb,aAAa;wBACb,kBAAkB;wBAClB,eAAe;wBACf,aAAa;AACd,qBAAA;oBACD,YAAY,EAAE,CAAC,eAAe,CAAC;oBAC/B,OAAO,EAAE,CAAC,eAAe,CAAC;AAC3B,iBAAA,CAAA;;;ACvBD;;AAEG;;;;"}