@pepperi-addons/ngx-composite-lib 0.4.2-beta.5 → 0.4.2-beta.6

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 (22) hide show
  1. package/esm2020/data-view-builder/data-view-builder.component.mjs +1 -1
  2. package/esm2020/generic-form/generic-form.component.mjs +3 -3
  3. package/esm2020/generic-list/generic-list.component.mjs +3 -3
  4. package/esm2020/group-buttons-settings/group-buttons-settings.component.mjs +4 -4
  5. package/fesm2015/pepperi-addons-ngx-composite-lib-data-view-builder.mjs +1 -1
  6. package/fesm2015/pepperi-addons-ngx-composite-lib-data-view-builder.mjs.map +1 -1
  7. package/fesm2015/pepperi-addons-ngx-composite-lib-generic-form.mjs +2 -2
  8. package/fesm2015/pepperi-addons-ngx-composite-lib-generic-form.mjs.map +1 -1
  9. package/fesm2015/pepperi-addons-ngx-composite-lib-generic-list.mjs +2 -2
  10. package/fesm2015/pepperi-addons-ngx-composite-lib-generic-list.mjs.map +1 -1
  11. package/fesm2015/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs +3 -3
  12. package/fesm2015/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs.map +1 -1
  13. package/fesm2020/pepperi-addons-ngx-composite-lib-data-view-builder.mjs +1 -1
  14. package/fesm2020/pepperi-addons-ngx-composite-lib-data-view-builder.mjs.map +1 -1
  15. package/fesm2020/pepperi-addons-ngx-composite-lib-generic-form.mjs +2 -2
  16. package/fesm2020/pepperi-addons-ngx-composite-lib-generic-form.mjs.map +1 -1
  17. package/fesm2020/pepperi-addons-ngx-composite-lib-generic-list.mjs +2 -2
  18. package/fesm2020/pepperi-addons-ngx-composite-lib-generic-list.mjs.map +1 -1
  19. package/fesm2020/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs +3 -3
  20. package/fesm2020/pepperi-addons-ngx-composite-lib-group-buttons-settings.mjs.map +1 -1
  21. package/group-buttons-settings/group-buttons-settings.component.d.ts +1 -1
  22. package/package.json +1 -1
@@ -77,9 +77,9 @@ export class GroupButtonsSettingsComponent {
77
77
  }
78
78
  case 'vertical-align': {
79
79
  return [
80
- { key: 'start', value: this.translate.instant('GENERAL.VERTICAL_ALIGN.TOP'), callback: (event) => this.onKeyChange(event) },
81
- { key: 'middle', value: this.translate.instant('GENERAL.VERTICAL_ALIGN.MIDDLE'), callback: (event) => this.onKeyChange(event) },
82
- { key: 'end', value: this.translate.instant('GENERAL.VERTICAL_ALIGN.BOTTOM'), callback: (event) => this.onKeyChange(event) }
80
+ { key: 'start', value: this.translate.instant('GENERAL.VERTICAL_ALIGN.TOP'), callback: this.defaultCallback },
81
+ { key: 'middle', value: this.translate.instant('GENERAL.VERTICAL_ALIGN.MIDDLE'), callback: this.defaultCallback },
82
+ { key: 'end', value: this.translate.instant('GENERAL.VERTICAL_ALIGN.BOTTOM'), callback: this.defaultCallback }
83
83
  ];
84
84
  }
85
85
  case 'left-right-arrows': {
@@ -141,4 +141,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
141
141
  }], btnkeyChange: [{
142
142
  type: Output
143
143
  }] } });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtYnV0dG9ucy1zZXR0aW5ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9ncm91cC1idXR0b25zLXNldHRpbmdzL2dyb3VwLWJ1dHRvbnMtc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvZ3JvdXAtYnV0dG9ucy1zZXR0aW5ncy9ncm91cC1idXR0b25zLXNldHRpbmdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVcvRSxNQUFNLE9BQU8sNkJBQTZCO0lBbUN0QyxxQ0FBcUM7SUFFckMsWUFDWSxTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQXBDOUIsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFFZixjQUFTLEdBQXlCLE9BQU8sQ0FBQztRQUMxQyxjQUFTLEdBQXFCLEVBQUUsQ0FBQztRQUNqQyxnQkFBVyxHQUFrQixFQUFFLENBQUMsQ0FBQywwQkFBMEI7UUFFM0QsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFFBQUcsR0FBa0IsS0FBSyxDQUFDO1FBZ0JwQyxpQkFBWSxHQUF1QyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQUc1RixTQUFJLEdBQWMsRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLENBQUM7UUFFaEMsVUFBSyxHQUFxQixFQUFFLENBQUM7UUFDN0Isb0JBQWUsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQU8xRCxDQUFDO0lBMUJELElB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S0FBSyxhQUFhLENBQUMsQ0FBQTtnQkFDZixPQUFPO29CQUNILEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtvQkFDN0csRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFO29CQUMvRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUU7aUJBQzVHLENBQUM7YUFDTDtZQUVELE9BQU8sQ0FBQyxDQUFDO2dCQUNMLE9BQU8sRUFBRSxDQUFDO2FBQ2I7U0FDSjtJQUNMLENBQUM7OzBIQXBJUSw2QkFBNkI7OEdBQTdCLDZCQUE2Qix1VENYMUMsK2hCQVNBOzJGREVhLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDSSw0QkFBNEI7dUdBTTdCLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFJRixNQUFNO3NCQURULEtBQUs7Z0JBYU4sWUFBWTtzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgUGVwU2l6ZVR5cGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5pbXBvcnQgeyBJUGVwQnV0dG9uQ2xpY2tFdmVudCwgUGVwQnV0dG9uIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvYnV0dG9uJztcbmltcG9ydCB7IFBlcEdyb3VwYnV0dG9uc1R5cGVzIH0gZnJvbSAnLi9ncm91cC1idXR0b25zLXNldHRpbmdzLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwZXAtZ3JvdXAtYnV0dG9ucy1zZXR0aW5ncycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dyb3VwLWJ1dHRvbnMtc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2dyb3VwLWJ1dHRvbnMtc2V0dGluZ3MuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBHcm91cEJ1dHRvbnNTZXR0aW5nc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBASW5wdXQoKSBoZWFkZXIgPSAnJztcbiAgICBASW5wdXQoKSBzdWJIZWFkZXIgPSAnJztcblxuICAgIEBJbnB1dCgpIGdyb3VwVHlwZTogUGVwR3JvdXBidXR0b25zVHlwZXMgPSAnc2l6ZXMnOyBcbiAgICBASW5wdXQoKSBidG5zQXJyYXk6IEFycmF5PFBlcEJ1dHRvbj4gPSBbXTtcbiAgICBASW5wdXQoKSBleGNsdWRlS2V5czogQXJyYXk8c3RyaW5nPiA9IFtdOyAvLyBmb3IgZXhhbXBsZSBbJ3hzJywneGwnXVxuXG4gICAgQElucHV0KCkgdXNlTm9uZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgZGlyOiAncnRsJyB8ICdsdHInID0gJ2x0cic7XG4gICAgXG4gICAgcHJpdmF0ZSBfYnRuS2V5OiBhbnk7XG4gICAgQElucHV0KClcbiAgICBzZXQgYnRuS2V5KHZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fYnRuS2V5ID0gJyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9idG5LZXkgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgYnRuS2V5KCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9idG5LZXk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpXG4gICAgYnRua2V5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8SVBlcEJ1dHRvbkNsaWNrRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJUGVwQnV0dG9uQ2xpY2tFdmVudD4oKTtcbiAgICBcbiAgICBcbiAgICBub25lOiBQZXBCdXR0b24gPSB7a2V5OiAnbm9uZSd9O1xuICAgIFxuICAgIHNpemVzOiBBcnJheTxQZXBCdXR0b24+ID0gW107XG4gICAgZGVmYXVsdENhbGxiYWNrID0gKGV2ZW50OiBhbnkpID0+IHRoaXMub25LZXlDaGFuZ2UoZXZlbnQpO1xuXG4gICAgLy8gcGVwQjogUGVwU2l6ZVR5cGUgfCAnbm9uZScgPSBcInhzXCI7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7IFxuICAgICAgICAvLyBHZXQgdGhlIGZpcnN0IHRyYW5zbGF0aW9uIGZvciBsb2FkIGFsbCB0cmFuc2xhdGlvbnMuXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmdldCgnR0VORVJBTC5OT05FJykuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMubm9uZSA9IHsga2V5OiAnbm9uZScsIHZhbHVlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdHRU5FUkFMLk5PTkUnKSwgY2FsbGJhY2s6ICgpID0+IHRoaXMub25LZXlDaGFuZ2UobnVsbCkgfTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgdGhpcy5hcnJheU1lcmdlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFycmF5TWVyZ2UoKXtcblxuICAgICAgICB0aGlzLmJ0bnNBcnJheSA9IHRoaXMuZ2V0QnV0dG9uc0FycmF5KCk7XG4gICAgICAgIFxuICAgICAgICAvLyBjaGVjayBpZiBuZWVkIHRvIHJlbW92ZSBpdGVtcyBmcm9tIHRoZSBidXR0b25zIGFycmF5XG4gICAgICAgIGlmKHRoaXMuZXhjbHVkZUtleXMpe1xuICAgICAgICAgICAgdGhpcy5idG5zQXJyYXkgPSB0aGlzLmJ0bnNBcnJheS5maWx0ZXIoaSA9PiAhdGhpcy5leGNsdWRlS2V5cy5maW5kKGYgPT4gZiA9PT0gaS5rZXkpKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjaGVjayBpZiBuZWVkIHRvIGFkZCB0aGUgTm9uZSBidXR0b25cbiAgICAgICAgaWYodGhpcy51c2VOb25lKXtcbiAgICAgICAgICAgIHRoaXMuYnRuc0FycmF5ID0gW3RoaXMubm9uZV0uY29uY2F0KHRoaXMuYnRuc0FycmF5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uS2V5Q2hhbmdlKGV2ZW50OiBJUGVwQnV0dG9uQ2xpY2tFdmVudCB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5idG5LZXkgPSBldmVudD8uc291cmNlPy5rZXkgfHwgJ25vbmUnO1xuICAgICAgICB0aGlzLmJ0bmtleUNoYW5nZS5lbWl0KHRoaXMuYnRuS2V5KTtcbiAgICB9XG5cbiAgICBnZXRCdXR0b25zQXJyYXkoKSB7XG4gICAgICAgIHN3aXRjaCh0aGlzLmdyb3VwVHlwZSl7XG4gICAgICAgICAgICBjYXNlICdjdXN0b20nOntcbiAgICAgICAgICAgICAgICAvLyBTZXQgZGVmYXVsdCBjYWxsYmFjayBpZiBub3QgZXhpc3QuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMuYnRuc0FycmF5Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBidG4gPSB0aGlzLmJ0bnNBcnJheVtpbmRleF07XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBpZiAoIWJ0bi5jYWxsYmFjaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnRuLmNhbGxiYWNrID0gdGhpcy5kZWZhdWx0Q2FsbGJhY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5idG5zQXJyYXk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdzaXplcyc6e1xuICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAgIHsga2V5OiAneHMnLCB2YWx1ZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnR0VORVJBTC5YUycpLCBjYWxsYmFjazogdGhpcy5kZWZhdWx0Q2FsbGJhY2sgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICdzbScsIHZhbHVlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdHRU5FUkFMLlNNJyksIGNhbGxiYWNrOiB0aGlzLmRlZmF1bHRDYWxsYmFjayB9LFxuICAgICAgICAgICAgICAgICAgICB7IGtleTogJ21kJywgdmFsdWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0dFTkVSQUwuTUQnKSwgY2FsbGJhY2s6IHRoaXMuZGVmYXVsdENhbGxiYWNrIH0sXG4gICAgICAgICAgICAgICAgICAgIHsga2V5OiAnbGcnLCB2YWx1ZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnR0VORVJBTC5MRycpLCBjYWxsYmFjazogdGhpcy5kZWZhdWx0Q2FsbGJhY2sgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICd4bCcsIHZhbHVlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdHRU5FUkFMLlhMJyksIGNhbGxiYWNrOiB0aGlzLmRlZmF1bHRDYWxsYmFjayB9XG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ3ZlcnRpY2FsLWFsaWduJzp7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICdzdGFydCcsIHZhbHVlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdHRU5FUkFMLlZFUlRJQ0FMX0FMSUdOLlRPUCcpLCBjYWxsYmFjazogKGV2ZW50OiBJUGVwQnV0dG9uQ2xpY2tFdmVudCkgPT4gdGhpcy5vbktleUNoYW5nZShldmVudCkgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICdtaWRkbGUnLCB2YWx1ZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnR0VORVJBTC5WRVJUSUNBTF9BTElHTi5NSURETEUnKSwgY2FsbGJhY2s6IChldmVudDogSVBlcEJ1dHRvbkNsaWNrRXZlbnQpID0+IHRoaXMub25LZXlDaGFuZ2UoZXZlbnQpIH0sXG4gICAgICAgICAgICAgICAgICAgIHsga2V5OiAnZW5kJywgdmFsdWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0dFTkVSQUwuVkVSVElDQUxfQUxJR04uQk9UVE9NJyksIGNhbGxiYWNrOiAoZXZlbnQ6IElQZXBCdXR0b25DbGlja0V2ZW50KSA9PiB0aGlzLm9uS2V5Q2hhbmdlKGV2ZW50KSB9XG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2xlZnQtcmlnaHQtYXJyb3dzJzp7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICdsZWZ0JywgaWNvbk5hbWU6ICdhcnJvd19sZWZ0X2FsdCcsIGNhbGxiYWNrOiB0aGlzLmRlZmF1bHRDYWxsYmFjayB9LFxuICAgICAgICAgICAgICAgICAgICB7IGtleTogJ3JpZ2h0JywgaWNvbk5hbWU6ICdhcnJvd19yaWdodF9hbHQnLCBjYWxsYmFjazogdGhpcy5kZWZhdWx0Q2FsbGJhY2sgfVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdob3Jpem9udGFsLWFsaWduJzoge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAgIHsga2V5OiAnbGVmdCcsIGljb25OYW1lOiAndGV4dF9hbGlnbl9yaWdodCcsIGNhbGxiYWNrOiB0aGlzLmRlZmF1bHRDYWxsYmFjayB9LFxuICAgICAgICAgICAgICAgICAgICB7IGtleTogJ2NlbnRlcicsIGljb25OYW1lOiAndGV4dF9hbGlnbl9jZW50ZXInLCBjYWxsYmFjazogdGhpcy5kZWZhdWx0Q2FsbGJhY2sgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICdyaWdodCcsIGljb25OYW1lOiAndGV4dF9hbGlnbl9sZWZ0JywgY2FsbGJhY2s6IHRoaXMuZGVmYXVsdENhbGxiYWNrIH0sXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2ZvbnQtd2VpZ2h0Jzp7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICdyZWd1bGFyJywgdmFsdWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0dFTkVSQUwuRk9OVF9XRUlHSFQuUkVHVUxBUicpLCBjYWxsYmFjazogdGhpcy5kZWZhdWx0Q2FsbGJhY2sgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICdib2xkJywgdmFsdWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0dFTkVSQUwuRk9OVF9XRUlHSFQuQk9MRCcpLCBjYWxsYmFjazogdGhpcy5kZWZhdWx0Q2FsbGJhY2sgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICdib2xkZXInLCB2YWx1ZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnR0VORVJBTC5GT05UX1dFSUdIVC5CT0xERVInKSwgY2FsbGJhY2s6IHRoaXMuZGVmYXVsdENhbGxiYWNrIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICd3aWR0aC1zaXplcyc6e1xuICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAgIHsga2V5OiAnbmFycm93JywgdmFsdWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0dFTkVSQUwuV0lEVEhfU0laRS5OQVJST1cnKSwgY2FsbGJhY2s6IHRoaXMuZGVmYXVsdENhbGxiYWNrIH0sXG4gICAgICAgICAgICAgICAgICAgIHsga2V5OiAncmVndWxhcicsIHZhbHVlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdHRU5FUkFMLldJRFRIX1NJWkUuUkVHVUxBUicpLCBjYWxsYmFjazogdGhpcy5kZWZhdWx0Q2FsbGJhY2sgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICd3aWRlJywgdmFsdWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0dFTkVSQUwuV0lEVEhfU0laRS5XSURFJyksIGNhbGxiYWNrOiB0aGlzLmRlZmF1bHRDYWxsYmFjayB9XG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxsYWJlbCAqbmdJZj1cImhlYWRlciAhPSAnJ1wiIGNsYXNzPVwiYm9keS14bCBib2xkIGVsbGlwc2lzXCI+e3toZWFkZXJ9fTwvbGFiZWw+XG48cGVwLWZpZWxkLXRpdGxlICpuZ0lmPVwic3ViSGVhZGVyICE9JydcIiBbbGFiZWxdPVwic3ViSGVhZGVyXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3hBbGlnbm1lbnRdPVwiZGlyID09PSAncnRsJyA/ICdyaWdodCcgOiAnbGVmdCdcIj48L3BlcC1maWVsZC10aXRsZT5cbjxwZXAtZ3JvdXAtYnV0dG9ucyBbYnV0dG9uc109XCJidG5zQXJyYXlcIiBcbiAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRCdXR0b25LZXldPVwiYnRuS2V5XCIgXG4gICAgICAgICAgICAgICAgICAgW3N0cmV0Y2hdPVwidHJ1ZVwiIFxuICAgICAgICAgICAgICAgICAgIGJ1dHRvbnNDbGFzcz1cIm1kIHJlZ3VsYXJcIiBcbiAgICAgICAgICAgICAgICAgICBbYnV0dG9uc0Rpc2FibGVkXT1cImRpc2FibGVkXCIgXG4gICAgICAgICAgICAgICAgICAgdmlld1R5cGU9XCJ0b2dnbGVcIj5cbjwvcGVwLWdyb3VwLWJ1dHRvbnM+XG4iXX0=
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtYnV0dG9ucy1zZXR0aW5ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9ncm91cC1idXR0b25zLXNldHRpbmdzL2dyb3VwLWJ1dHRvbnMtc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvZ3JvdXAtYnV0dG9ucy1zZXR0aW5ncy9ncm91cC1idXR0b25zLXNldHRpbmdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVcvRSxNQUFNLE9BQU8sNkJBQTZCO0lBbUN0QyxxQ0FBcUM7SUFFckMsWUFDWSxTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQXBDOUIsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFFZixjQUFTLEdBQXlCLE9BQU8sQ0FBQztRQUMxQyxjQUFTLEdBQXFCLEVBQUUsQ0FBQztRQUNqQyxnQkFBVyxHQUFrQixFQUFFLENBQUMsQ0FBQywwQkFBMEI7UUFFM0QsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFFBQUcsR0FBa0IsS0FBSyxDQUFDO1FBZ0JwQyxpQkFBWSxHQUF1QyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQUc1RixTQUFJLEdBQWMsRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLENBQUM7UUFFaEMsVUFBSyxHQUFxQixFQUFFLENBQUM7UUFDN0Isb0JBQWUsR0FBRyxDQUFDLEtBQTJCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFPM0UsQ0FBQztJQTFCRCxJ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USxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUU7b0JBQzdHLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsNEJBQTRCLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtvQkFDL0csRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFO2lCQUM1RyxDQUFDO2FBQ0w7WUFFRCxPQUFPLENBQUMsQ0FBQztnQkFDTCxPQUFPLEVBQUUsQ0FBQzthQUNiO1NBQ0o7SUFDTCxDQUFDOzswSEFwSVEsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsdVRDWDFDLCtoQkFTQTsyRkRFYSw2QkFBNkI7a0JBTHpDLFNBQVM7K0JBQ0ksNEJBQTRCO3VHQU03QixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBSUYsTUFBTTtzQkFEVCxLQUFLO2dCQWFOLFlBQVk7c0JBRFgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFBlcFNpemVUeXBlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHsgSVBlcEJ1dHRvbkNsaWNrRXZlbnQsIFBlcEJ1dHRvbiB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2J1dHRvbic7XG5pbXBvcnQgeyBQZXBHcm91cGJ1dHRvbnNUeXBlcyB9IGZyb20gJy4vZ3JvdXAtYnV0dG9ucy1zZXR0aW5ncy5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGVwLWdyb3VwLWJ1dHRvbnMtc2V0dGluZ3MnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ncm91cC1idXR0b25zLXNldHRpbmdzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9ncm91cC1idXR0b25zLXNldHRpbmdzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgR3JvdXBCdXR0b25zU2V0dGluZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgQElucHV0KCkgaGVhZGVyID0gJyc7XG4gICAgQElucHV0KCkgc3ViSGVhZGVyID0gJyc7XG5cbiAgICBASW5wdXQoKSBncm91cFR5cGU6IFBlcEdyb3VwYnV0dG9uc1R5cGVzID0gJ3NpemVzJzsgXG4gICAgQElucHV0KCkgYnRuc0FycmF5OiBBcnJheTxQZXBCdXR0b24+ID0gW107XG4gICAgQElucHV0KCkgZXhjbHVkZUtleXM6IEFycmF5PHN0cmluZz4gPSBbXTsgLy8gZm9yIGV4YW1wbGUgWyd4cycsJ3hsJ11cblxuICAgIEBJbnB1dCgpIHVzZU5vbmUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGRpcjogJ3J0bCcgfCAnbHRyJyA9ICdsdHInO1xuICAgIFxuICAgIHByaXZhdGUgX2J0bktleTogYW55O1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGJ0bktleSh2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2J0bktleSA9ICcnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fYnRuS2V5ID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IGJ0bktleSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYnRuS2V5O1xuICAgIH1cblxuICAgIEBPdXRwdXQoKVxuICAgIGJ0bmtleUNoYW5nZTogRXZlbnRFbWl0dGVyPElQZXBCdXR0b25DbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8SVBlcEJ1dHRvbkNsaWNrRXZlbnQ+KCk7XG4gICAgXG4gICAgXG4gICAgbm9uZTogUGVwQnV0dG9uID0ge2tleTogJ25vbmUnfTtcbiAgICBcbiAgICBzaXplczogQXJyYXk8UGVwQnV0dG9uPiA9IFtdO1xuICAgIGRlZmF1bHRDYWxsYmFjayA9IChldmVudDogSVBlcEJ1dHRvbkNsaWNrRXZlbnQpID0+IHRoaXMub25LZXlDaGFuZ2UoZXZlbnQpO1xuXG4gICAgLy8gcGVwQjogUGVwU2l6ZVR5cGUgfCAnbm9uZScgPSBcInhzXCI7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7IFxuICAgICAgICAvLyBHZXQgdGhlIGZpcnN0IHRyYW5zbGF0aW9uIGZvciBsb2FkIGFsbCB0cmFuc2xhdGlvbnMuXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmdldCgnR0VORVJBTC5OT05FJykuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMubm9uZSA9IHsga2V5OiAnbm9uZScsIHZhbHVlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdHRU5FUkFMLk5PTkUnKSwgY2FsbGJhY2s6ICgpID0+IHRoaXMub25LZXlDaGFuZ2UobnVsbCkgfTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgdGhpcy5hcnJheU1lcmdlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFycmF5TWVyZ2UoKXtcblxuICAgICAgICB0aGlzLmJ0bnNBcnJheSA9IHRoaXMuZ2V0QnV0dG9uc0FycmF5KCk7XG4gICAgICAgIFxuICAgICAgICAvLyBjaGVjayBpZiBuZWVkIHRvIHJlbW92ZSBpdGVtcyBmcm9tIHRoZSBidXR0b25zIGFycmF5XG4gICAgICAgIGlmKHRoaXMuZXhjbHVkZUtleXMpe1xuICAgICAgICAgICAgdGhpcy5idG5zQXJyYXkgPSB0aGlzLmJ0bnNBcnJheS5maWx0ZXIoaSA9PiAhdGhpcy5leGNsdWRlS2V5cy5maW5kKGYgPT4gZiA9PT0gaS5rZXkpKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjaGVjayBpZiBuZWVkIHRvIGFkZCB0aGUgTm9uZSBidXR0b25cbiAgICAgICAgaWYodGhpcy51c2VOb25lKXtcbiAgICAgICAgICAgIHRoaXMuYnRuc0FycmF5ID0gW3RoaXMubm9uZV0uY29uY2F0KHRoaXMuYnRuc0FycmF5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uS2V5Q2hhbmdlKGV2ZW50OiBJUGVwQnV0dG9uQ2xpY2tFdmVudCB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5idG5LZXkgPSBldmVudD8uc291cmNlPy5rZXkgfHwgJ25vbmUnO1xuICAgICAgICB0aGlzLmJ0bmtleUNoYW5nZS5lbWl0KHRoaXMuYnRuS2V5KTtcbiAgICB9XG5cbiAgICBnZXRCdXR0b25zQXJyYXkoKSB7XG4gICAgICAgIHN3aXRjaCh0aGlzLmdyb3VwVHlwZSl7XG4gICAgICAgICAgICBjYXNlICdjdXN0b20nOntcbiAgICAgICAgICAgICAgICAvLyBTZXQgZGVmYXVsdCBjYWxsYmFjayBpZiBub3QgZXhpc3QuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMuYnRuc0FycmF5Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBidG4gPSB0aGlzLmJ0bnNBcnJheVtpbmRleF07XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBpZiAoIWJ0bi5jYWxsYmFjaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnRuLmNhbGxiYWNrID0gdGhpcy5kZWZhdWx0Q2FsbGJhY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5idG5zQXJyYXk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdzaXplcyc6e1xuICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAgIHsga2V5OiAneHMnLCB2YWx1ZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnR0VORVJBTC5YUycpLCBjYWxsYmFjazogdGhpcy5kZWZhdWx0Q2FsbGJhY2sgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICdzbScsIHZhbHVlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdHRU5FUkFMLlNNJyksIGNhbGxiYWNrOiB0aGlzLmRlZmF1bHRDYWxsYmFjayB9LFxuICAgICAgICAgICAgICAgICAgICB7IGtleTogJ21kJywgdmFsdWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0dFTkVSQUwuTUQnKSwgY2FsbGJhY2s6IHRoaXMuZGVmYXVsdENhbGxiYWNrIH0sXG4gICAgICAgICAgICAgICAgICAgIHsga2V5OiAnbGcnLCB2YWx1ZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnR0VORVJBTC5MRycpLCBjYWxsYmFjazogdGhpcy5kZWZhdWx0Q2FsbGJhY2sgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICd4bCcsIHZhbHVlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdHRU5FUkFMLlhMJyksIGNhbGxiYWNrOiB0aGlzLmRlZmF1bHRDYWxsYmFjayB9XG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ3ZlcnRpY2FsLWFsaWduJzp7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICdzdGFydCcsIHZhbHVlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdHRU5FUkFMLlZFUlRJQ0FMX0FMSUdOLlRPUCcpLCBjYWxsYmFjazogdGhpcy5kZWZhdWx0Q2FsbGJhY2sgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICdtaWRkbGUnLCB2YWx1ZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnR0VORVJBTC5WRVJUSUNBTF9BTElHTi5NSURETEUnKSwgY2FsbGJhY2s6IHRoaXMuZGVmYXVsdENhbGxiYWNrIH0sXG4gICAgICAgICAgICAgICAgICAgIHsga2V5OiAnZW5kJywgdmFsdWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0dFTkVSQUwuVkVSVElDQUxfQUxJR04uQk9UVE9NJyksIGNhbGxiYWNrOiB0aGlzLmRlZmF1bHRDYWxsYmFjayB9XG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2xlZnQtcmlnaHQtYXJyb3dzJzp7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICdsZWZ0JywgaWNvbk5hbWU6ICdhcnJvd19sZWZ0X2FsdCcsIGNhbGxiYWNrOiB0aGlzLmRlZmF1bHRDYWxsYmFjayB9LFxuICAgICAgICAgICAgICAgICAgICB7IGtleTogJ3JpZ2h0JywgaWNvbk5hbWU6ICdhcnJvd19yaWdodF9hbHQnLCBjYWxsYmFjazogdGhpcy5kZWZhdWx0Q2FsbGJhY2sgfVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdob3Jpem9udGFsLWFsaWduJzoge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAgIHsga2V5OiAnbGVmdCcsIGljb25OYW1lOiAndGV4dF9hbGlnbl9yaWdodCcsIGNhbGxiYWNrOiB0aGlzLmRlZmF1bHRDYWxsYmFjayB9LFxuICAgICAgICAgICAgICAgICAgICB7IGtleTogJ2NlbnRlcicsIGljb25OYW1lOiAndGV4dF9hbGlnbl9jZW50ZXInLCBjYWxsYmFjazogdGhpcy5kZWZhdWx0Q2FsbGJhY2sgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICdyaWdodCcsIGljb25OYW1lOiAndGV4dF9hbGlnbl9sZWZ0JywgY2FsbGJhY2s6IHRoaXMuZGVmYXVsdENhbGxiYWNrIH0sXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2ZvbnQtd2VpZ2h0Jzp7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICdyZWd1bGFyJywgdmFsdWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0dFTkVSQUwuRk9OVF9XRUlHSFQuUkVHVUxBUicpLCBjYWxsYmFjazogdGhpcy5kZWZhdWx0Q2FsbGJhY2sgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICdib2xkJywgdmFsdWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0dFTkVSQUwuRk9OVF9XRUlHSFQuQk9MRCcpLCBjYWxsYmFjazogdGhpcy5kZWZhdWx0Q2FsbGJhY2sgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICdib2xkZXInLCB2YWx1ZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnR0VORVJBTC5GT05UX1dFSUdIVC5CT0xERVInKSwgY2FsbGJhY2s6IHRoaXMuZGVmYXVsdENhbGxiYWNrIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICd3aWR0aC1zaXplcyc6e1xuICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAgIHsga2V5OiAnbmFycm93JywgdmFsdWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0dFTkVSQUwuV0lEVEhfU0laRS5OQVJST1cnKSwgY2FsbGJhY2s6IHRoaXMuZGVmYXVsdENhbGxiYWNrIH0sXG4gICAgICAgICAgICAgICAgICAgIHsga2V5OiAncmVndWxhcicsIHZhbHVlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdHRU5FUkFMLldJRFRIX1NJWkUuUkVHVUxBUicpLCBjYWxsYmFjazogdGhpcy5kZWZhdWx0Q2FsbGJhY2sgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICd3aWRlJywgdmFsdWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0dFTkVSQUwuV0lEVEhfU0laRS5XSURFJyksIGNhbGxiYWNrOiB0aGlzLmRlZmF1bHRDYWxsYmFjayB9XG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxsYWJlbCAqbmdJZj1cImhlYWRlciAhPSAnJ1wiIGNsYXNzPVwiYm9keS14bCBib2xkIGVsbGlwc2lzXCI+e3toZWFkZXJ9fTwvbGFiZWw+XG48cGVwLWZpZWxkLXRpdGxlICpuZ0lmPVwic3ViSGVhZGVyICE9JydcIiBbbGFiZWxdPVwic3ViSGVhZGVyXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3hBbGlnbm1lbnRdPVwiZGlyID09PSAncnRsJyA/ICdyaWdodCcgOiAnbGVmdCdcIj48L3BlcC1maWVsZC10aXRsZT5cbjxwZXAtZ3JvdXAtYnV0dG9ucyBbYnV0dG9uc109XCJidG5zQXJyYXlcIiBcbiAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRCdXR0b25LZXldPVwiYnRuS2V5XCIgXG4gICAgICAgICAgICAgICAgICAgW3N0cmV0Y2hdPVwidHJ1ZVwiIFxuICAgICAgICAgICAgICAgICAgIGJ1dHRvbnNDbGFzcz1cIm1kIHJlZ3VsYXJcIiBcbiAgICAgICAgICAgICAgICAgICBbYnV0dG9uc0Rpc2FibGVkXT1cImRpc2FibGVkXCIgXG4gICAgICAgICAgICAgICAgICAgdmlld1R5cGU9XCJ0b2dnbGVcIj5cbjwvcGVwLWdyb3VwLWJ1dHRvbnM+XG4iXX0=
@@ -282,7 +282,7 @@ class DataViewBuilderComponent {
282
282
  }
283
283
  }
284
284
  DataViewBuilderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DataViewBuilderComponent, deps: [{ token: DataViewBuilderService }], target: i0.ɵɵFactoryTarget.Component });
285
- DataViewBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: DataViewBuilderComponent, selector: "pep-data-view-builder", inputs: { builderTitle: "builderTitle", builderTitleHint: "builderTitleHint", showAddSeparator: "showAddSeparator", itemKeyLabel: "itemKeyLabel", itemTitleLabel: "itemTitleLabel", availableFields: "availableFields", dataView: "dataView" }, outputs: { dataViewChange: "dataViewChange" }, ngImport: i0, template: "<pep-page-layout >\n <!-- <ng-container pep-top-area>\n <pep-top-bar [title]=\"title\">\n <div header-end-content>\n </div>\n </pep-top-bar>\n </ng-container> -->\n <ng-container pep-main-area>\n <ng-container *ngIf=\"type === 'not-supported' ; then notSupportedTemplate; else supportedTemplate\"></ng-container>\n <ng-template #notSupportedTemplate>\n <span class=\"body-sm ellipsis\">\n {{ 'DATA_VIEW_BUILDER.TYPE_NOT_SUPPORTED' | translate }}\n </span> \n </ng-template>\n <ng-template #supportedTemplate>\n <div *ngIf=\"dataView && availableFields\" class=\"mapped-fields-container\">\n <div class=\"available-fields-side-area\">\n <pep-draggable-items [items]=\"availableFields\" [title]=\"'DATA_VIEW_BUILDER.AVAILABLE_FIELDS' | translate\" titleType=\"with-bottom-border\" titleSizeType=\"md\"\n itemPlaceholderType=\"weak\" [showSearch]=\"true\" [dropAreaIds]=\"['emptyDropArea', 'mappedFields']\" (itemDragStarted)=\"onDragStart($event)\" (itemDragEnded)=\"onDragEnd($event)\">\n </pep-draggable-items>\n </div>\n <div pep-main-area class=\"mapped-fields-main-area\">\n <div class=\"mapped-fields-top-area pep-border-bottom\"\n [title]=\"builderTitle + ' ' + (builderTitleHint ? ('(' + builderTitleHint + ')') : '')\">\n <span class=\"title-md\">{{ builderTitle }}&nbsp;</span>\n <span *ngIf=\"builderTitleHint\" class=\"color-dimmed\">({{ builderTitleHint }})</span>\n </div>\n \n <div class=\"data-view-by-type-area\" [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'menu'\">\n <menu-data-view [fields]=\"dataView?.Fields || []\" [availableFieldsTitles]=\"availableFieldsTitles\" [emptyDropAreaId]=\"emptyDropAreaId\"\n [mappedFieldsId]=\"mappedFieldsId\" (fieldsChange)=\"onFieldsChanged($event)\" [showAddSeparator]=\"showAddSeparator\" [itemKeyLabel]=\"itemKeyLabel\" [itemTitleLabel]=\"itemTitleLabel\">\n </menu-data-view>\n </ng-container>\n <!-- <ng-container *ngSwitchDefault>\n </ng-container> -->\n </div>\n </div>\n </div>\n </ng-template>\n </ng-container>\n</pep-page-layout>\n\n", styles: [".mapped-fields-container{display:grid;height:100%;grid-template-columns:auto 1fr;grid-template-areas:\"side-area main-area\"}.mapped-fields-container .available-fields-side-area{grid-area:side-area;width:240px;max-width:240px;overflow:auto;height:inherit;padding-top:var(--pep-spacing-2xl, 2rem);margin-inline-end:calc(var(--pep-spacing-lg, 1rem) * 2)}.mapped-fields-container .mapped-fields-main-area{display:grid;grid-template-rows:auto 1fr;grid-area:main-area;padding-top:var(--pep-spacing-2xl, 2rem);overflow:auto;height:inherit}.mapped-fields-container .mapped-fields-main-area .mapped-fields-top-area{height:var(--pep-top-bar-field-height, 2.5rem);display:flex;align-items:center}.mapped-fields-container .mapped-fields-main-area .data-view-by-type-area{overflow:auto;height:inherit;padding-top:var(--pep-spacing-lg, 1rem);padding-bottom:var(--pep-spacing-lg, 1rem);padding-inline:var(--pep-spacing-xs, .25rem)}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.PepPageLayoutComponent, selector: "pep-page-layout", inputs: ["addPadding", "showShadow"] }, { kind: "component", type: i4$1.PepDraggableItemsComponent, selector: "pep-draggable-items", inputs: ["containerId", "showSearch", "title", "titleType", "titleSizeType", "itemPlaceholderType", "dropAreaIds", "items"], outputs: ["itemDragStarted", "itemDragEnded"] }, { kind: "component", type: MenuDataViewComponent, selector: "menu-data-view", inputs: ["fields", "availableFieldsTitles", "emptyDropAreaId", "mappedFieldsId", "showAddSeparator", "itemKeyLabel", "itemTitleLabel"], outputs: ["fieldsChange"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
285
+ DataViewBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: DataViewBuilderComponent, selector: "pep-data-view-builder", inputs: { builderTitle: "builderTitle", builderTitleHint: "builderTitleHint", showAddSeparator: "showAddSeparator", itemKeyLabel: "itemKeyLabel", itemTitleLabel: "itemTitleLabel", availableFields: "availableFields", dataView: "dataView" }, outputs: { dataViewChange: "dataViewChange" }, ngImport: i0, template: "<pep-page-layout >\n <!-- <ng-container pep-top-area>\n <pep-top-bar [title]=\"title\">\n <div header-end-content>\n </div>\n </pep-top-bar>\n </ng-container> -->\n <ng-container pep-main-area>\n <ng-container *ngIf=\"type === 'not-supported' ; then notSupportedTemplate; else supportedTemplate\"></ng-container>\n <ng-template #notSupportedTemplate>\n <span class=\"body-sm ellipsis\">\n {{ 'DATA_VIEW_BUILDER.TYPE_NOT_SUPPORTED' | translate }}\n </span> \n </ng-template>\n <ng-template #supportedTemplate>\n <div *ngIf=\"dataView && availableFields\" class=\"mapped-fields-container\">\n <div class=\"available-fields-side-area\">\n <pep-draggable-items [items]=\"availableFields\" [title]=\"'DATA_VIEW_BUILDER.AVAILABLE_FIELDS' | translate\" titleType=\"with-bottom-border\" titleSizeType=\"md\"\n itemPlaceholderType=\"weak\" [showSearch]=\"true\" [dropAreaIds]=\"['emptyDropArea', 'mappedFields']\" (itemDragStarted)=\"onDragStart($event)\" (itemDragEnded)=\"onDragEnd($event)\">\n </pep-draggable-items>\n </div>\n <div pep-main-area class=\"mapped-fields-main-area\">\n <div class=\"mapped-fields-top-area pep-border-bottom\"\n [title]=\"builderTitle + ' ' + (builderTitleHint ? ('(' + builderTitleHint + ')') : '')\">\n <span class=\"title-md\">{{ builderTitle }}&nbsp;</span>\n <span *ngIf=\"builderTitleHint\" class=\"color-dimmed\">({{ builderTitleHint }})</span>\n </div>\n \n <div class=\"data-view-by-type-area\" [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'menu'\">\n <menu-data-view [fields]=\"dataView?.Fields || []\" [availableFieldsTitles]=\"availableFieldsTitles\" [emptyDropAreaId]=\"emptyDropAreaId\"\n [mappedFieldsId]=\"mappedFieldsId\" (fieldsChange)=\"onFieldsChanged($event)\" [showAddSeparator]=\"showAddSeparator\" [itemKeyLabel]=\"itemKeyLabel\" [itemTitleLabel]=\"itemTitleLabel\">\n </menu-data-view>\n </ng-container>\n <!-- <ng-container *ngSwitchDefault>\n </ng-container> -->\n </div>\n </div>\n </div>\n </ng-template>\n </ng-container>\n</pep-page-layout>\n\n", styles: [".mapped-fields-container{display:grid;height:100%;grid-template-columns:auto 1fr;grid-template-areas:\"side-area main-area\"}.mapped-fields-container .available-fields-side-area{grid-area:side-area;width:240px;max-width:240px;overflow:auto;height:inherit;padding-top:var(--pep-spacing-2xl, 2rem);margin-inline-end:calc(var(--pep-spacing-lg, 1rem) * 2)}.mapped-fields-container .mapped-fields-main-area{display:grid;grid-template-rows:auto 1fr;grid-area:main-area;padding-top:var(--pep-spacing-2xl, 2rem);overflow:auto;height:inherit}.mapped-fields-container .mapped-fields-main-area .mapped-fields-top-area{height:var(--pep-top-bar-field-height, 2.5rem);display:flex;align-items:center}.mapped-fields-container .mapped-fields-main-area .data-view-by-type-area{overflow:auto;height:inherit;padding-top:var(--pep-spacing-lg, 1rem);padding-bottom:var(--pep-spacing-lg, 1rem);padding-inline:var(--pep-spacing-xs, .25rem)}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.PepPageLayoutComponent, selector: "pep-page-layout", inputs: ["addPadding", "showShadow"] }, { kind: "component", type: i4$1.DraggableItemsComponent, selector: "pep-draggable-items", inputs: ["containerId", "showSearch", "title", "titleType", "titleSizeType", "itemPlaceholderType", "dropAreaIds", "items"], outputs: ["itemDragStarted", "itemDragEnded"] }, { kind: "component", type: MenuDataViewComponent, selector: "menu-data-view", inputs: ["fields", "availableFieldsTitles", "emptyDropAreaId", "mappedFieldsId", "showAddSeparator", "itemKeyLabel", "itemTitleLabel"], outputs: ["fieldsChange"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
286
286
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DataViewBuilderComponent, decorators: [{
287
287
  type: Component,
288
288
  args: [{ selector: 'pep-data-view-builder', template: "<pep-page-layout >\n <!-- <ng-container pep-top-area>\n <pep-top-bar [title]=\"title\">\n <div header-end-content>\n </div>\n </pep-top-bar>\n </ng-container> -->\n <ng-container pep-main-area>\n <ng-container *ngIf=\"type === 'not-supported' ; then notSupportedTemplate; else supportedTemplate\"></ng-container>\n <ng-template #notSupportedTemplate>\n <span class=\"body-sm ellipsis\">\n {{ 'DATA_VIEW_BUILDER.TYPE_NOT_SUPPORTED' | translate }}\n </span> \n </ng-template>\n <ng-template #supportedTemplate>\n <div *ngIf=\"dataView && availableFields\" class=\"mapped-fields-container\">\n <div class=\"available-fields-side-area\">\n <pep-draggable-items [items]=\"availableFields\" [title]=\"'DATA_VIEW_BUILDER.AVAILABLE_FIELDS' | translate\" titleType=\"with-bottom-border\" titleSizeType=\"md\"\n itemPlaceholderType=\"weak\" [showSearch]=\"true\" [dropAreaIds]=\"['emptyDropArea', 'mappedFields']\" (itemDragStarted)=\"onDragStart($event)\" (itemDragEnded)=\"onDragEnd($event)\">\n </pep-draggable-items>\n </div>\n <div pep-main-area class=\"mapped-fields-main-area\">\n <div class=\"mapped-fields-top-area pep-border-bottom\"\n [title]=\"builderTitle + ' ' + (builderTitleHint ? ('(' + builderTitleHint + ')') : '')\">\n <span class=\"title-md\">{{ builderTitle }}&nbsp;</span>\n <span *ngIf=\"builderTitleHint\" class=\"color-dimmed\">({{ builderTitleHint }})</span>\n </div>\n \n <div class=\"data-view-by-type-area\" [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'menu'\">\n <menu-data-view [fields]=\"dataView?.Fields || []\" [availableFieldsTitles]=\"availableFieldsTitles\" [emptyDropAreaId]=\"emptyDropAreaId\"\n [mappedFieldsId]=\"mappedFieldsId\" (fieldsChange)=\"onFieldsChanged($event)\" [showAddSeparator]=\"showAddSeparator\" [itemKeyLabel]=\"itemKeyLabel\" [itemTitleLabel]=\"itemTitleLabel\">\n </menu-data-view>\n </ng-container>\n <!-- <ng-container *ngSwitchDefault>\n </ng-container> -->\n </div>\n </div>\n </div>\n </ng-template>\n </ng-container>\n</pep-page-layout>\n\n", styles: [".mapped-fields-container{display:grid;height:100%;grid-template-columns:auto 1fr;grid-template-areas:\"side-area main-area\"}.mapped-fields-container .available-fields-side-area{grid-area:side-area;width:240px;max-width:240px;overflow:auto;height:inherit;padding-top:var(--pep-spacing-2xl, 2rem);margin-inline-end:calc(var(--pep-spacing-lg, 1rem) * 2)}.mapped-fields-container .mapped-fields-main-area{display:grid;grid-template-rows:auto 1fr;grid-area:main-area;padding-top:var(--pep-spacing-2xl, 2rem);overflow:auto;height:inherit}.mapped-fields-container .mapped-fields-main-area .mapped-fields-top-area{height:var(--pep-top-bar-field-height, 2.5rem);display:flex;align-items:center}.mapped-fields-container .mapped-fields-main-area .data-view-by-type-area{overflow:auto;height:inherit;padding-top:var(--pep-spacing-lg, 1rem);padding-bottom:var(--pep-spacing-lg, 1rem);padding-inline:var(--pep-spacing-xs, .25rem)}\n"] }]
@@ -1 +1 @@
1
- {"version":3,"file":"pepperi-addons-ngx-composite-lib-data-view-builder.mjs","sources":["../../../projects/ngx-composite-lib/data-view-builder/data-view-builder.service.ts","../../../projects/ngx-composite-lib/data-view-builder/menu-data-view/menu-data-view.component.ts","../../../projects/ngx-composite-lib/data-view-builder/menu-data-view/menu-data-view.component.html","../../../projects/ngx-composite-lib/data-view-builder/data-view-builder.component.ts","../../../projects/ngx-composite-lib/data-view-builder/data-view-builder.component.html","../../../projects/ngx-composite-lib/data-view-builder/data-view-builder.module.ts","../../../projects/ngx-composite-lib/data-view-builder/public-api.ts","../../../projects/ngx-composite-lib/data-view-builder/pepperi-addons-ngx-composite-lib-data-view-builder.ts"],"sourcesContent":["import { CdkDragEnd, CdkDragStart } from '@angular/cdk/drag-drop';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { distinctUntilChanged, filter } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DataViewBuilderService {\n \n // This subject is for is grabbing mode.\n private _isGrabbingSubject: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n get isGrabbingChange$(): Observable<boolean> {\n return this._isGrabbingSubject.asObservable().pipe(distinctUntilChanged());\n }\n\n constructor() { \n //\n }\n\n private changeCursorOnDragStart() {\n document.body.classList.add('inheritCursors');\n document.body.style.cursor = 'grabbing';\n this._isGrabbingSubject.next(true);\n }\n\n private changeCursorOnDragEnd() {\n document.body.classList.remove('inheritCursors');\n document.body.style.cursor = 'unset';\n this._isGrabbingSubject.next(false);\n }\n \n onDragStart(event: CdkDragStart) {\n this.changeCursorOnDragStart();\n }\n\n onDragEnd(event: CdkDragEnd) {\n this.changeCursorOnDragEnd();\n }\n}\n","import { CdkDragDrop, CdkDragEnd, CdkDragStart, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Component, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { TranslateService } from '@ngx-translate/core';\nimport { IPepButtonClickEvent } from '@pepperi-addons/ngx-lib/button';\nimport { PepDialogService } from '@pepperi-addons/ngx-lib/dialog';\nimport { IPepDraggableItem } from '@pepperi-addons/ngx-lib/draggable-items';\nimport { DataViewField, MenuDataViewField } from '@pepperi-addons/papi-sdk';\nimport { DataViewBuilderService } from '../data-view-builder.service';\n\n@Component({\n selector: 'menu-data-view',\n templateUrl: './menu-data-view.component.html',\n styleUrls: ['./menu-data-view.component.scss']\n})\nexport class MenuDataViewComponent implements OnInit {\n @ViewChild('separatorTitleModalTemplate', { read: TemplateRef }) separatorTitleModalTemplate!: TemplateRef<any>;\n\n @Input() \n fields: Array<DataViewField> = []; // The data view fields.\n\n @Input()\n availableFieldsTitles: Map<string, string> = new Map<string, string>(); // <FieldID, Original Title> from the available fields.\n\n @Input() \n emptyDropAreaId = '';\n\n @Input() \n mappedFieldsId = '';\n\n @Input()\n showAddSeparator = true;\n\n @Input()\n itemKeyLabel = '';\n\n @Input()\n itemTitleLabel = '';\n\n @Output()\n fieldsChange: EventEmitter<DataViewField[]> = new EventEmitter<DataViewField[]>();\n \n isGrabbing = false;\n private dialogRef: MatDialogRef<any> | null = null;\n \n constructor(\n private translate: TranslateService,\n private dialogService: PepDialogService,\n private dataViewBuilderService: DataViewBuilderService\n ) { \n this.dataViewBuilderService.isGrabbingChange$.subscribe((value) => {\n this.isGrabbing = value;\n });\n }\n \n private addNewField(draggableItem: IPepDraggableItem, index: number) {\n // Add new menuField to the mappedFields.\n const menuField: MenuDataViewField = { FieldID: draggableItem.data.key, Title: draggableItem.title };\n this.spliceMappedFields(index, 0, menuField);\n }\n \n private spliceMappedFields(start: number, deleteCount: number, item?: MenuDataViewField) {\n if (item) {\n this.fields.splice(start, deleteCount, item);\n } else {\n this.fields.splice(start, deleteCount);\n }\n\n this.notifyFieldsChange();\n }\n\n private changeTitle(menuField: MenuDataViewField, title: string) {\n menuField.Title = title;\n this.notifyFieldsChange();\n }\n\n private notifyFieldsChange() {\n this.fieldsChange.emit(this.fields);\n }\n\n ngOnInit() {\n if(this.itemKeyLabel == ''){\n this.translate.get('DATA_VIEW_BUILDER.MENU_ITEM_KEY_TITLE').toPromise().then((res) => {\n this.itemKeyLabel = res;\n });\n }\n if(this.itemTitleLabel == ''){\n this.translate.get('DATA_VIEW_BUILDER.MENU_ITEM_VALUE_TITLE').toPromise().then((res) => {\n this.itemTitleLabel = res;\n });\n }\n }\n\n addSeparator(index: number) {\n const menuField: MenuDataViewField = { FieldID: '', Title: '' };\n this.spliceMappedFields(index, 0, menuField);\n }\n\n onDragStart(event: CdkDragStart) {\n this.dataViewBuilderService.onDragStart(event);\n }\n\n onDragEnd(event: CdkDragEnd) {\n this.dataViewBuilderService.onDragEnd(event);\n }\n \n onDropField(event: CdkDragDrop<any[]>) {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n this.notifyFieldsChange();\n } else if (event.container.id === 'emptyDropArea') {\n this.addNewField(event.previousContainer.data[event.previousIndex], this.fields.length);\n } else {\n this.addNewField(event.previousContainer.data[event.previousIndex], event.currentIndex);\n }\n }\n\n onTitleChanged(event: string, menuField: MenuDataViewField) {\n this.changeTitle(menuField, event);\n }\n\n onDeleteMappedField(event: IPepButtonClickEvent, menuField: MenuDataViewField) {\n const index = this.fields.findIndex(ms => ms === menuField);\n if (index > -1) {\n this.spliceMappedFields(index, 1);\n }\n }\n\n onEditSeparatorField(event: IPepButtonClickEvent, menuField: MenuDataViewField) {\n this.dialogRef = this.dialogService.openDialog(this.separatorTitleModalTemplate, { value: menuField.Title });\n this.dialogRef.afterClosed().subscribe((titleValue) => {\n if (titleValue !== undefined) {\n this.changeTitle(menuField, titleValue);\n }\n });\n }\n\n setDialogValue(value: string) {\n this.closeDialog(value);\n }\n\n closeDialog(value: string | undefined = undefined) {\n this.dialogRef?.close(value);\n }\n}","<ng-container *ngIf=\"fields === null || fields.length === 0; then emptyTemplate; else notEmptyTemplate\"></ng-container>\n<ng-template #emptyTemplate>\n <div [id]=\"emptyDropAreaId\" class=\"drop-field-here-area\" cdkDropList (cdkDropListDropped)=\"onDropField($event)\">\n <mat-icon class=\"pep-spacing-element\">\n <pep-icon name=\"arrow_down_alt\"></pep-icon>\n </mat-icon>\n <span class=\"body-sm ellipsis\">\n {{ 'DATA_VIEW_BUILDER.EMPTY_DROP_AREA_TEXT' | translate }}\n </span> \n </div>\n</ng-template>\n<ng-template #notEmptyTemplate>\n <div [id]=\"mappedFieldsId\" class=\"mapped-fields-area\" [ngClass]=\"{ 'no-row-gap': !isGrabbing }\"\n cdkDropList [cdkDropListData]=\"fields\" (cdkDropListDropped)=\"onDropField($event)\">\n <ng-container *ngFor=\"let menuField of fields; let i = index\" >\n <div class=\"mapped-field-container\" [ngClass]=\"{ 'separator-container': menuField.FieldID === '' }\" \n cdkDrag (cdkDragStarted)=\"onDragStart($event)\" (cdkDragEnded)=\"onDragEnd($event)\">\n <ng-container *ngTemplateOutlet=\"mappedFieldTemplate; context: { menuField: menuField }\"></ng-container>\n </div>\n <div *ngIf=\"!isGrabbing\" class=\"add-separator-container\">\n <pep-button *ngIf=\"showAddSeparator\" class=\"add-separator\" styleType=\"regular\" sizeType=\"sm\" iconName=\"number_plus\" \n [value]=\"'DATA_VIEW_BUILDER.ADD_SEPARATOR' | translate\" (buttonClick)=\"addSeparator(i+1)\"></pep-button>\n </div>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #mappedFieldTemplate let-menuField=\"menuField\">\n <ng-container *ngIf=\"menuField.FieldID !== ''; then menuItemTemplate; else separatorTemplate\"></ng-container>\n\n <ng-template #menuItemTemplate>\n <div class=\"fields-wrapper\">\n <pep-textbox [label]=\"itemKeyLabel\" [value]=\"menuField.FieldID\" [disabled]=\"true\">\n </pep-textbox>\n \n <pep-textbox [label]=\"itemTitleLabel\" [hint]=\"'(' + (availableFieldsTitles.get(menuField.FieldID) || '') + ')'\"\n [value]=\"menuField.Title\" (valueChange)=\"onTitleChanged($event, menuField)\">\n </pep-textbox>\n \n <pep-button class=\"center-button\" iconName=\"system_bin\" [title]=\"'ACTIONS.DELETE' | translate\" (buttonClick)=\"onDeleteMappedField($event, menuField)\"></pep-button>\n </div>\n </ng-template>\n <ng-template #separatorTemplate>\n <div class=\"separator-wrapper \">\n <div class=\"pep-spacing-element title title-md color-dimmed\">\n <span [title]=\"menuField.Title\">{{ menuField.Title }}</span>\n </div>\n <div class=\"list-actions\">\n <pep-button iconName=\"system_edit\" [title]=\"'ACTIONS.EDIT' | translate\" sizeType=\"xs\" styleType=\"regular\" (buttonClick)=\"onEditSeparatorField($event, menuField)\"></pep-button>\n <pep-button iconName=\"system_bin\" [title]=\"'ACTIONS.DELETE' | translate\" sizeType=\"xs\" styleType=\"regular\" (buttonClick)=\"onDeleteMappedField($event, menuField)\"></pep-button>\n </div>\n </div>\n </ng-template>\n</ng-template>\n\n<ng-template #separatorTitleModalTemplate let-data>\n <pep-dialog [title]=\"'DATA_VIEW_BUILDER.SEPARATOR_TITLE' | translate\">\n <ng-container pep-dialog-content>\n <pep-textbox #txt [label]=\"'DATA_VIEW_BUILDER.ADD_A_TITLE' | translate\" [(value)]=\"data.value\">\n </pep-textbox>\n </ng-container>\n <ng-container pep-dialog-actions>\n <div class=\"pep-spacing-element-negative\">\n <button mat-button class=\"pep-spacing-element pep-button md weak\"\n (click)=\"closeDialog()\">\n {{'Cancel' | translate}}\n </button>\n <button mat-button class=\"pep-spacing-element pep-button md strong\"\n (click)=\"setDialogValue(txt.value)\">\n {{ 'Save' | translate}}\n </button>\n </div>\n </ng-container>\n </pep-dialog>\n</ng-template>\n","import { CdkDragEnd, CdkDragStart } from '@angular/cdk/drag-drop';\nimport { Component, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { IPepDraggableItem } from '@pepperi-addons/ngx-lib/draggable-items';\nimport { BaseDataView, DataViewField } from '@pepperi-addons/papi-sdk';\nimport { PepDataViewBuilderType } from './data-view-builder.model';\nimport { DataViewBuilderService } from './data-view-builder.service';\n\n@Component({\n selector: 'pep-data-view-builder',\n templateUrl: './data-view-builder.component.html',\n styleUrls: ['./data-view-builder.component.scss']\n})\nexport class DataViewBuilderComponent implements OnInit {\n // @Input() title: string = '';\n @Input() builderTitle = '';\n @Input() builderTitleHint = '';\n @Input() showAddSeparator = true;\n @Input() itemKeyLabel = '';\n @Input() itemTitleLabel = '';\n \n private _availableFields: Array<IPepDraggableItem> = [];\n @Input()\n set availableFields(value: Array<IPepDraggableItem>) {\n this._availableFields = value;\n this.setTitlesMap();\n }\n get availableFields(): Array<IPepDraggableItem> {\n return this._availableFields;\n }\n \n private _dataView!: BaseDataView;\n @Input()\n set dataView(value: BaseDataView) {\n this._dataView = value;\n this.setType();\n this.refreshAvailableFields();\n }\n get dataView() : BaseDataView {\n return this._dataView;\n }\n\n @Output()\n dataViewChange: EventEmitter<BaseDataView> = new EventEmitter<BaseDataView>();\n \n type: PepDataViewBuilderType = 'not-supported';\n \n emptyDropAreaId = 'emptyDropArea';\n mappedFieldsId = 'mappedFields';\n\n availableFieldsTitles: Map<string, string> = new Map<string, string>();\n\n constructor(\n private dataViewBuilderService: DataViewBuilderService\n ) {\n //\n }\n\n private setType() {\n if (this._dataView.Type === 'Menu') {\n this.type = 'menu';\n } else if (this._dataView.Type === 'Grid') {\n this.type = 'list';\n } else if ((this._dataView.Type === 'Card') || \n (this._dataView.Type === 'Form') || \n (this._dataView.Type === 'Large') || \n (this._dataView.Type === 'Line')) {\n this.type = 'card';\n } else {\n this.type = 'not-supported';\n }\n }\n\n private setAvailableFieldPermission(field: string, disable: boolean) {\n // Find the item in the available fields\n const item = this.availableFields.find(as => as.data.key === field);\n \n // If exist disable or enable it.\n if (item) {\n item.disabled = disable;\n }\n }\n\n private refreshAvailableFields() {\n this.availableFields.forEach(af => af.disabled = false);\n \n if (this.dataView && this.dataView.Fields) {\n for (let index = 0; index < this.dataView.Fields.length; index++) {\n this.setAvailableFieldPermission(this.dataView.Fields[index].FieldID, true);\n }\n }\n }\n\n private setTitlesMap() {\n this.availableFieldsTitles.clear();\n\n if (this.availableFields?.length > 0) {\n for (let index = 0; index < this.availableFields.length; index++) {\n const availableField = this.availableFields[index];\n\n if (availableField?.data?.key.length > 0) {\n this.availableFieldsTitles.set(availableField.data.key, availableField.title);\n }\n }\n }\n }\n\n private notifyDataViewChange() {\n this.dataViewChange.emit(this.dataView);\n // console.log(this.dataView);\n }\n\n ngOnInit() {\n //\n }\n\n onDragStart(event: CdkDragStart) {\n this.dataViewBuilderService.onDragStart(event);\n }\n\n onDragEnd(event: CdkDragEnd) {\n this.dataViewBuilderService.onDragEnd(event);\n }\n \n onFieldsChanged(fields: Array<DataViewField>) {\n this.dataView.Fields = fields;\n this.refreshAvailableFields();\n this.notifyDataViewChange();\n }\n}\n","<pep-page-layout >\n <!-- <ng-container pep-top-area>\n <pep-top-bar [title]=\"title\">\n <div header-end-content>\n </div>\n </pep-top-bar>\n </ng-container> -->\n <ng-container pep-main-area>\n <ng-container *ngIf=\"type === 'not-supported' ; then notSupportedTemplate; else supportedTemplate\"></ng-container>\n <ng-template #notSupportedTemplate>\n <span class=\"body-sm ellipsis\">\n {{ 'DATA_VIEW_BUILDER.TYPE_NOT_SUPPORTED' | translate }}\n </span> \n </ng-template>\n <ng-template #supportedTemplate>\n <div *ngIf=\"dataView && availableFields\" class=\"mapped-fields-container\">\n <div class=\"available-fields-side-area\">\n <pep-draggable-items [items]=\"availableFields\" [title]=\"'DATA_VIEW_BUILDER.AVAILABLE_FIELDS' | translate\" titleType=\"with-bottom-border\" titleSizeType=\"md\"\n itemPlaceholderType=\"weak\" [showSearch]=\"true\" [dropAreaIds]=\"['emptyDropArea', 'mappedFields']\" (itemDragStarted)=\"onDragStart($event)\" (itemDragEnded)=\"onDragEnd($event)\">\n </pep-draggable-items>\n </div>\n <div pep-main-area class=\"mapped-fields-main-area\">\n <div class=\"mapped-fields-top-area pep-border-bottom\"\n [title]=\"builderTitle + ' ' + (builderTitleHint ? ('(' + builderTitleHint + ')') : '')\">\n <span class=\"title-md\">{{ builderTitle }}&nbsp;</span>\n <span *ngIf=\"builderTitleHint\" class=\"color-dimmed\">({{ builderTitleHint }})</span>\n </div>\n \n <div class=\"data-view-by-type-area\" [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'menu'\">\n <menu-data-view [fields]=\"dataView?.Fields || []\" [availableFieldsTitles]=\"availableFieldsTitles\" [emptyDropAreaId]=\"emptyDropAreaId\"\n [mappedFieldsId]=\"mappedFieldsId\" (fieldsChange)=\"onFieldsChanged($event)\" [showAddSeparator]=\"showAddSeparator\" [itemKeyLabel]=\"itemKeyLabel\" [itemTitleLabel]=\"itemTitleLabel\">\n </menu-data-view>\n </ng-container>\n <!-- <ng-container *ngSwitchDefault>\n </ng-container> -->\n </div>\n </div>\n </div>\n </ng-template>\n </ng-container>\n</pep-page-layout>\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { DragDropModule } from '@angular/cdk/drag-drop';\n\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\nimport { PepDialogModule } from '@pepperi-addons/ngx-lib/dialog';\nimport { PepMenuModule } from '@pepperi-addons/ngx-lib/menu';\nimport { PepPageLayoutModule } from '@pepperi-addons/ngx-lib/page-layout';\nimport { PepTextboxModule } from '@pepperi-addons/ngx-lib/textbox';\nimport { PepTopBarModule } from '@pepperi-addons/ngx-lib/top-bar';\nimport { PepDraggableItemsModule } from '@pepperi-addons/ngx-lib/draggable-items';\nimport { PepIconRegistry, PepIconModule, pepIconSystemClose, pepIconArrowDownAlt, pepIconSystemBin, pepIconNumberPlus } from '@pepperi-addons/ngx-lib/icon';\n\nimport { DataViewBuilderService } from './data-view-builder.service';\n\nimport { DataViewBuilderComponent } from './data-view-builder.component';\nimport { MenuDataViewComponent } from './menu-data-view/menu-data-view.component';\n\nconst pepIcons = [\n pepIconSystemClose,\n pepIconArrowDownAlt,\n pepIconSystemBin,\n pepIconNumberPlus\n];\n\n@NgModule({\n declarations: [\n DataViewBuilderComponent, MenuDataViewComponent\n ],\n imports: [\n CommonModule,\n DragDropModule,\n MatIconModule,\n PepNgxLibModule,\n PepButtonModule,\n PepDialogModule,\n PepIconModule,\n PepMenuModule,\n PepPageLayoutModule,\n PepTextboxModule,\n PepTopBarModule,\n PepDraggableItemsModule,\n ],\n exports: [DataViewBuilderComponent],\n providers: [DataViewBuilderService]\n})\nexport class PepDataViewBuilderModule {\n constructor(\n private pepIconRegistry: PepIconRegistry,\n ) {\n this.pepIconRegistry.registerIcons(pepIcons);\n }\n}\n","/*\n * Public API Surface of ngx-composite-lib/data-view-builder\n */\nexport * from './data-view-builder.module';\nexport * from './data-view-builder.component';\nexport * from './data-view-builder.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3.DataViewBuilderService","i8","i1.DataViewBuilderService","i2","i4","i5.MenuDataViewComponent","i6","i1"],"mappings":"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"}
1
+ {"version":3,"file":"pepperi-addons-ngx-composite-lib-data-view-builder.mjs","sources":["../../../projects/ngx-composite-lib/data-view-builder/data-view-builder.service.ts","../../../projects/ngx-composite-lib/data-view-builder/menu-data-view/menu-data-view.component.ts","../../../projects/ngx-composite-lib/data-view-builder/menu-data-view/menu-data-view.component.html","../../../projects/ngx-composite-lib/data-view-builder/data-view-builder.component.ts","../../../projects/ngx-composite-lib/data-view-builder/data-view-builder.component.html","../../../projects/ngx-composite-lib/data-view-builder/data-view-builder.module.ts","../../../projects/ngx-composite-lib/data-view-builder/public-api.ts","../../../projects/ngx-composite-lib/data-view-builder/pepperi-addons-ngx-composite-lib-data-view-builder.ts"],"sourcesContent":["import { CdkDragEnd, CdkDragStart } from '@angular/cdk/drag-drop';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { distinctUntilChanged, filter } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DataViewBuilderService {\n \n // This subject is for is grabbing mode.\n private _isGrabbingSubject: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n get isGrabbingChange$(): Observable<boolean> {\n return this._isGrabbingSubject.asObservable().pipe(distinctUntilChanged());\n }\n\n constructor() { \n //\n }\n\n private changeCursorOnDragStart() {\n document.body.classList.add('inheritCursors');\n document.body.style.cursor = 'grabbing';\n this._isGrabbingSubject.next(true);\n }\n\n private changeCursorOnDragEnd() {\n document.body.classList.remove('inheritCursors');\n document.body.style.cursor = 'unset';\n this._isGrabbingSubject.next(false);\n }\n \n onDragStart(event: CdkDragStart) {\n this.changeCursorOnDragStart();\n }\n\n onDragEnd(event: CdkDragEnd) {\n this.changeCursorOnDragEnd();\n }\n}\n","import { CdkDragDrop, CdkDragEnd, CdkDragStart, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Component, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { TranslateService } from '@ngx-translate/core';\nimport { IPepButtonClickEvent } from '@pepperi-addons/ngx-lib/button';\nimport { PepDialogService } from '@pepperi-addons/ngx-lib/dialog';\nimport { IPepDraggableItem } from '@pepperi-addons/ngx-lib/draggable-items';\nimport { DataViewField, MenuDataViewField } from '@pepperi-addons/papi-sdk';\nimport { DataViewBuilderService } from '../data-view-builder.service';\n\n@Component({\n selector: 'menu-data-view',\n templateUrl: './menu-data-view.component.html',\n styleUrls: ['./menu-data-view.component.scss']\n})\nexport class MenuDataViewComponent implements OnInit {\n @ViewChild('separatorTitleModalTemplate', { read: TemplateRef }) separatorTitleModalTemplate!: TemplateRef<any>;\n\n @Input() \n fields: Array<DataViewField> = []; // The data view fields.\n\n @Input()\n availableFieldsTitles: Map<string, string> = new Map<string, string>(); // <FieldID, Original Title> from the available fields.\n\n @Input() \n emptyDropAreaId = '';\n\n @Input() \n mappedFieldsId = '';\n\n @Input()\n showAddSeparator = true;\n\n @Input()\n itemKeyLabel = '';\n\n @Input()\n itemTitleLabel = '';\n\n @Output()\n fieldsChange: EventEmitter<DataViewField[]> = new EventEmitter<DataViewField[]>();\n \n isGrabbing = false;\n private dialogRef: MatDialogRef<any> | null = null;\n \n constructor(\n private translate: TranslateService,\n private dialogService: PepDialogService,\n private dataViewBuilderService: DataViewBuilderService\n ) { \n this.dataViewBuilderService.isGrabbingChange$.subscribe((value) => {\n this.isGrabbing = value;\n });\n }\n \n private addNewField(draggableItem: IPepDraggableItem, index: number) {\n // Add new menuField to the mappedFields.\n const menuField: MenuDataViewField = { FieldID: draggableItem.data.key, Title: draggableItem.title };\n this.spliceMappedFields(index, 0, menuField);\n }\n \n private spliceMappedFields(start: number, deleteCount: number, item?: MenuDataViewField) {\n if (item) {\n this.fields.splice(start, deleteCount, item);\n } else {\n this.fields.splice(start, deleteCount);\n }\n\n this.notifyFieldsChange();\n }\n\n private changeTitle(menuField: MenuDataViewField, title: string) {\n menuField.Title = title;\n this.notifyFieldsChange();\n }\n\n private notifyFieldsChange() {\n this.fieldsChange.emit(this.fields);\n }\n\n ngOnInit() {\n if(this.itemKeyLabel == ''){\n this.translate.get('DATA_VIEW_BUILDER.MENU_ITEM_KEY_TITLE').toPromise().then((res) => {\n this.itemKeyLabel = res;\n });\n }\n if(this.itemTitleLabel == ''){\n this.translate.get('DATA_VIEW_BUILDER.MENU_ITEM_VALUE_TITLE').toPromise().then((res) => {\n this.itemTitleLabel = res;\n });\n }\n }\n\n addSeparator(index: number) {\n const menuField: MenuDataViewField = { FieldID: '', Title: '' };\n this.spliceMappedFields(index, 0, menuField);\n }\n\n onDragStart(event: CdkDragStart) {\n this.dataViewBuilderService.onDragStart(event);\n }\n\n onDragEnd(event: CdkDragEnd) {\n this.dataViewBuilderService.onDragEnd(event);\n }\n \n onDropField(event: CdkDragDrop<any[]>) {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n this.notifyFieldsChange();\n } else if (event.container.id === 'emptyDropArea') {\n this.addNewField(event.previousContainer.data[event.previousIndex], this.fields.length);\n } else {\n this.addNewField(event.previousContainer.data[event.previousIndex], event.currentIndex);\n }\n }\n\n onTitleChanged(event: string, menuField: MenuDataViewField) {\n this.changeTitle(menuField, event);\n }\n\n onDeleteMappedField(event: IPepButtonClickEvent, menuField: MenuDataViewField) {\n const index = this.fields.findIndex(ms => ms === menuField);\n if (index > -1) {\n this.spliceMappedFields(index, 1);\n }\n }\n\n onEditSeparatorField(event: IPepButtonClickEvent, menuField: MenuDataViewField) {\n this.dialogRef = this.dialogService.openDialog(this.separatorTitleModalTemplate, { value: menuField.Title });\n this.dialogRef.afterClosed().subscribe((titleValue) => {\n if (titleValue !== undefined) {\n this.changeTitle(menuField, titleValue);\n }\n });\n }\n\n setDialogValue(value: string) {\n this.closeDialog(value);\n }\n\n closeDialog(value: string | undefined = undefined) {\n this.dialogRef?.close(value);\n }\n}","<ng-container *ngIf=\"fields === null || fields.length === 0; then emptyTemplate; else notEmptyTemplate\"></ng-container>\n<ng-template #emptyTemplate>\n <div [id]=\"emptyDropAreaId\" class=\"drop-field-here-area\" cdkDropList (cdkDropListDropped)=\"onDropField($event)\">\n <mat-icon class=\"pep-spacing-element\">\n <pep-icon name=\"arrow_down_alt\"></pep-icon>\n </mat-icon>\n <span class=\"body-sm ellipsis\">\n {{ 'DATA_VIEW_BUILDER.EMPTY_DROP_AREA_TEXT' | translate }}\n </span> \n </div>\n</ng-template>\n<ng-template #notEmptyTemplate>\n <div [id]=\"mappedFieldsId\" class=\"mapped-fields-area\" [ngClass]=\"{ 'no-row-gap': !isGrabbing }\"\n cdkDropList [cdkDropListData]=\"fields\" (cdkDropListDropped)=\"onDropField($event)\">\n <ng-container *ngFor=\"let menuField of fields; let i = index\" >\n <div class=\"mapped-field-container\" [ngClass]=\"{ 'separator-container': menuField.FieldID === '' }\" \n cdkDrag (cdkDragStarted)=\"onDragStart($event)\" (cdkDragEnded)=\"onDragEnd($event)\">\n <ng-container *ngTemplateOutlet=\"mappedFieldTemplate; context: { menuField: menuField }\"></ng-container>\n </div>\n <div *ngIf=\"!isGrabbing\" class=\"add-separator-container\">\n <pep-button *ngIf=\"showAddSeparator\" class=\"add-separator\" styleType=\"regular\" sizeType=\"sm\" iconName=\"number_plus\" \n [value]=\"'DATA_VIEW_BUILDER.ADD_SEPARATOR' | translate\" (buttonClick)=\"addSeparator(i+1)\"></pep-button>\n </div>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #mappedFieldTemplate let-menuField=\"menuField\">\n <ng-container *ngIf=\"menuField.FieldID !== ''; then menuItemTemplate; else separatorTemplate\"></ng-container>\n\n <ng-template #menuItemTemplate>\n <div class=\"fields-wrapper\">\n <pep-textbox [label]=\"itemKeyLabel\" [value]=\"menuField.FieldID\" [disabled]=\"true\">\n </pep-textbox>\n \n <pep-textbox [label]=\"itemTitleLabel\" [hint]=\"'(' + (availableFieldsTitles.get(menuField.FieldID) || '') + ')'\"\n [value]=\"menuField.Title\" (valueChange)=\"onTitleChanged($event, menuField)\">\n </pep-textbox>\n \n <pep-button class=\"center-button\" iconName=\"system_bin\" [title]=\"'ACTIONS.DELETE' | translate\" (buttonClick)=\"onDeleteMappedField($event, menuField)\"></pep-button>\n </div>\n </ng-template>\n <ng-template #separatorTemplate>\n <div class=\"separator-wrapper \">\n <div class=\"pep-spacing-element title title-md color-dimmed\">\n <span [title]=\"menuField.Title\">{{ menuField.Title }}</span>\n </div>\n <div class=\"list-actions\">\n <pep-button iconName=\"system_edit\" [title]=\"'ACTIONS.EDIT' | translate\" sizeType=\"xs\" styleType=\"regular\" (buttonClick)=\"onEditSeparatorField($event, menuField)\"></pep-button>\n <pep-button iconName=\"system_bin\" [title]=\"'ACTIONS.DELETE' | translate\" sizeType=\"xs\" styleType=\"regular\" (buttonClick)=\"onDeleteMappedField($event, menuField)\"></pep-button>\n </div>\n </div>\n </ng-template>\n</ng-template>\n\n<ng-template #separatorTitleModalTemplate let-data>\n <pep-dialog [title]=\"'DATA_VIEW_BUILDER.SEPARATOR_TITLE' | translate\">\n <ng-container pep-dialog-content>\n <pep-textbox #txt [label]=\"'DATA_VIEW_BUILDER.ADD_A_TITLE' | translate\" [(value)]=\"data.value\">\n </pep-textbox>\n </ng-container>\n <ng-container pep-dialog-actions>\n <div class=\"pep-spacing-element-negative\">\n <button mat-button class=\"pep-spacing-element pep-button md weak\"\n (click)=\"closeDialog()\">\n {{'Cancel' | translate}}\n </button>\n <button mat-button class=\"pep-spacing-element pep-button md strong\"\n (click)=\"setDialogValue(txt.value)\">\n {{ 'Save' | translate}}\n </button>\n </div>\n </ng-container>\n </pep-dialog>\n</ng-template>\n","import { CdkDragEnd, CdkDragStart } from '@angular/cdk/drag-drop';\nimport { Component, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { IPepDraggableItem } from '@pepperi-addons/ngx-lib/draggable-items';\nimport { BaseDataView, DataViewField } from '@pepperi-addons/papi-sdk';\nimport { PepDataViewBuilderType } from './data-view-builder.model';\nimport { DataViewBuilderService } from './data-view-builder.service';\n\n@Component({\n selector: 'pep-data-view-builder',\n templateUrl: './data-view-builder.component.html',\n styleUrls: ['./data-view-builder.component.scss']\n})\nexport class DataViewBuilderComponent implements OnInit {\n // @Input() title: string = '';\n @Input() builderTitle = '';\n @Input() builderTitleHint = '';\n @Input() showAddSeparator = true;\n @Input() itemKeyLabel = '';\n @Input() itemTitleLabel = '';\n \n private _availableFields: Array<IPepDraggableItem> = [];\n @Input()\n set availableFields(value: Array<IPepDraggableItem>) {\n this._availableFields = value;\n this.setTitlesMap();\n }\n get availableFields(): Array<IPepDraggableItem> {\n return this._availableFields;\n }\n \n private _dataView!: BaseDataView;\n @Input()\n set dataView(value: BaseDataView) {\n this._dataView = value;\n this.setType();\n this.refreshAvailableFields();\n }\n get dataView() : BaseDataView {\n return this._dataView;\n }\n\n @Output()\n dataViewChange: EventEmitter<BaseDataView> = new EventEmitter<BaseDataView>();\n \n type: PepDataViewBuilderType = 'not-supported';\n \n emptyDropAreaId = 'emptyDropArea';\n mappedFieldsId = 'mappedFields';\n\n availableFieldsTitles: Map<string, string> = new Map<string, string>();\n\n constructor(\n private dataViewBuilderService: DataViewBuilderService\n ) {\n //\n }\n\n private setType() {\n if (this._dataView.Type === 'Menu') {\n this.type = 'menu';\n } else if (this._dataView.Type === 'Grid') {\n this.type = 'list';\n } else if ((this._dataView.Type === 'Card') || \n (this._dataView.Type === 'Form') || \n (this._dataView.Type === 'Large') || \n (this._dataView.Type === 'Line')) {\n this.type = 'card';\n } else {\n this.type = 'not-supported';\n }\n }\n\n private setAvailableFieldPermission(field: string, disable: boolean) {\n // Find the item in the available fields\n const item = this.availableFields.find(as => as.data.key === field);\n \n // If exist disable or enable it.\n if (item) {\n item.disabled = disable;\n }\n }\n\n private refreshAvailableFields() {\n this.availableFields.forEach(af => af.disabled = false);\n \n if (this.dataView && this.dataView.Fields) {\n for (let index = 0; index < this.dataView.Fields.length; index++) {\n this.setAvailableFieldPermission(this.dataView.Fields[index].FieldID, true);\n }\n }\n }\n\n private setTitlesMap() {\n this.availableFieldsTitles.clear();\n\n if (this.availableFields?.length > 0) {\n for (let index = 0; index < this.availableFields.length; index++) {\n const availableField = this.availableFields[index];\n\n if (availableField?.data?.key.length > 0) {\n this.availableFieldsTitles.set(availableField.data.key, availableField.title);\n }\n }\n }\n }\n\n private notifyDataViewChange() {\n this.dataViewChange.emit(this.dataView);\n // console.log(this.dataView);\n }\n\n ngOnInit() {\n //\n }\n\n onDragStart(event: CdkDragStart) {\n this.dataViewBuilderService.onDragStart(event);\n }\n\n onDragEnd(event: CdkDragEnd) {\n this.dataViewBuilderService.onDragEnd(event);\n }\n \n onFieldsChanged(fields: Array<DataViewField>) {\n this.dataView.Fields = fields;\n this.refreshAvailableFields();\n this.notifyDataViewChange();\n }\n}\n","<pep-page-layout >\n <!-- <ng-container pep-top-area>\n <pep-top-bar [title]=\"title\">\n <div header-end-content>\n </div>\n </pep-top-bar>\n </ng-container> -->\n <ng-container pep-main-area>\n <ng-container *ngIf=\"type === 'not-supported' ; then notSupportedTemplate; else supportedTemplate\"></ng-container>\n <ng-template #notSupportedTemplate>\n <span class=\"body-sm ellipsis\">\n {{ 'DATA_VIEW_BUILDER.TYPE_NOT_SUPPORTED' | translate }}\n </span> \n </ng-template>\n <ng-template #supportedTemplate>\n <div *ngIf=\"dataView && availableFields\" class=\"mapped-fields-container\">\n <div class=\"available-fields-side-area\">\n <pep-draggable-items [items]=\"availableFields\" [title]=\"'DATA_VIEW_BUILDER.AVAILABLE_FIELDS' | translate\" titleType=\"with-bottom-border\" titleSizeType=\"md\"\n itemPlaceholderType=\"weak\" [showSearch]=\"true\" [dropAreaIds]=\"['emptyDropArea', 'mappedFields']\" (itemDragStarted)=\"onDragStart($event)\" (itemDragEnded)=\"onDragEnd($event)\">\n </pep-draggable-items>\n </div>\n <div pep-main-area class=\"mapped-fields-main-area\">\n <div class=\"mapped-fields-top-area pep-border-bottom\"\n [title]=\"builderTitle + ' ' + (builderTitleHint ? ('(' + builderTitleHint + ')') : '')\">\n <span class=\"title-md\">{{ builderTitle }}&nbsp;</span>\n <span *ngIf=\"builderTitleHint\" class=\"color-dimmed\">({{ builderTitleHint }})</span>\n </div>\n \n <div class=\"data-view-by-type-area\" [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"'menu'\">\n <menu-data-view [fields]=\"dataView?.Fields || []\" [availableFieldsTitles]=\"availableFieldsTitles\" [emptyDropAreaId]=\"emptyDropAreaId\"\n [mappedFieldsId]=\"mappedFieldsId\" (fieldsChange)=\"onFieldsChanged($event)\" [showAddSeparator]=\"showAddSeparator\" [itemKeyLabel]=\"itemKeyLabel\" [itemTitleLabel]=\"itemTitleLabel\">\n </menu-data-view>\n </ng-container>\n <!-- <ng-container *ngSwitchDefault>\n </ng-container> -->\n </div>\n </div>\n </div>\n </ng-template>\n </ng-container>\n</pep-page-layout>\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { DragDropModule } from '@angular/cdk/drag-drop';\n\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\nimport { PepDialogModule } from '@pepperi-addons/ngx-lib/dialog';\nimport { PepMenuModule } from '@pepperi-addons/ngx-lib/menu';\nimport { PepPageLayoutModule } from '@pepperi-addons/ngx-lib/page-layout';\nimport { PepTextboxModule } from '@pepperi-addons/ngx-lib/textbox';\nimport { PepTopBarModule } from '@pepperi-addons/ngx-lib/top-bar';\nimport { PepDraggableItemsModule } from '@pepperi-addons/ngx-lib/draggable-items';\nimport { PepIconRegistry, PepIconModule, pepIconSystemClose, pepIconArrowDownAlt, pepIconSystemBin, pepIconNumberPlus } from '@pepperi-addons/ngx-lib/icon';\n\nimport { DataViewBuilderService } from './data-view-builder.service';\n\nimport { DataViewBuilderComponent } from './data-view-builder.component';\nimport { MenuDataViewComponent } from './menu-data-view/menu-data-view.component';\n\nconst pepIcons = [\n pepIconSystemClose,\n pepIconArrowDownAlt,\n pepIconSystemBin,\n pepIconNumberPlus\n];\n\n@NgModule({\n declarations: [\n DataViewBuilderComponent, MenuDataViewComponent\n ],\n imports: [\n CommonModule,\n DragDropModule,\n MatIconModule,\n PepNgxLibModule,\n PepButtonModule,\n PepDialogModule,\n PepIconModule,\n PepMenuModule,\n PepPageLayoutModule,\n PepTextboxModule,\n PepTopBarModule,\n PepDraggableItemsModule,\n ],\n exports: [DataViewBuilderComponent],\n providers: [DataViewBuilderService]\n})\nexport class PepDataViewBuilderModule {\n constructor(\n private pepIconRegistry: PepIconRegistry,\n ) {\n this.pepIconRegistry.registerIcons(pepIcons);\n }\n}\n","/*\n * Public API Surface of ngx-composite-lib/data-view-builder\n */\nexport * from './data-view-builder.module';\nexport * from './data-view-builder.component';\nexport * from './data-view-builder.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3.DataViewBuilderService","i8","i1.DataViewBuilderService","i2","i4","i5.MenuDataViewComponent","i6","i1"],"mappings":"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"}
@@ -225,10 +225,10 @@ class GenericFormComponent {
225
225
  }
226
226
  }
227
227
  GenericFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: GenericFormComponent, deps: [{ token: i1.PepLayoutService }, { token: PepGenericFormService }], target: i0.ɵɵFactoryTarget.Component });
228
- GenericFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: GenericFormComponent, selector: "pep-generic-form", inputs: { dataSource: "dataSource", dataView: "dataView", isLocked: "isLocked", inline: "inline", showTopBar: "showTopBar", addPadding: "addPadding" }, outputs: { valueChange: "valueChange", fieldClick: "fieldClick", formValidationChange: "formValidationChange" }, providers: [PepGenericFormService], viewQueries: [{ propertyName: "pepListContainer", first: true, predicate: ["pepFormContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<div *ngIf=\"inline\" class=\"inline-container\" [ngClass]=\"{ 'add-padding': addPadding }\">\n <div *ngIf=\"showTopBar\" class=\"inline-top-bar-container\">\n <ng-container *ngTemplateOutlet=\"topBarTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"formTemplate\"></ng-container>\n</div>\n\n<pep-page-layout *ngIf=\"!inline\" [addPadding]=\"addPadding\">\n <ng-container *ngIf=\"showTopBar\" pep-top-area>\n <ng-container *ngTemplateOutlet=\"topBarTemplate\"></ng-container>\n </ng-container>\n <div pep-main-area class=\"main-area-container\">\n <ng-container *ngTemplateOutlet=\"formTemplate\"></ng-container>\n </div>\n</pep-page-layout>\n\n<ng-template #topBarTemplate>\n <pep-top-bar [inline]=\"inline\"> \n <div header-start-content>\n <ng-content select=\"[left-buttons]\"></ng-content>\n </div>\n <div header-end-content>\n <ng-content select=\"[right-buttons]\"></ng-content>\n </div>\n\n <!-- <div footer-start-content>\n <ng-content select=\"[bottom-left-buttons]\"></ng-content>\n </div>\n <div footer-end-content>\n <ng-content select=\"[bottom-right-buttons]\"></ng-content>\n </div> -->\n </pep-top-bar>\n</ng-template>\n\n<ng-template #formTemplate>\n <div class=\"form-view\">\n <ng-container #pepFormContainer></ng-container>\n </div>\n</ng-template>\n", styles: [":host{height:inherit;display:block}.main-area-container{display:grid;height:inherit}.inline-container{height:inherit;display:grid;grid-template-rows:auto 1fr}.inline-container.add-padding{padding-inline:var(--pep-spacing-lg, 1rem)}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.PepPageLayoutComponent, selector: "pep-page-layout", inputs: ["addPadding", "showShadow"] }, { kind: "component", type: i5.PepTopBarComponent, selector: "pep-top-bar", inputs: ["inline", "title"], outputs: ["footerStateChange"] }] });
228
+ GenericFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: GenericFormComponent, selector: "pep-generic-form", inputs: { dataSource: "dataSource", dataView: "dataView", isLocked: "isLocked", inline: "inline", showTopBar: "showTopBar", addPadding: "addPadding" }, outputs: { valueChange: "valueChange", fieldClick: "fieldClick", formValidationChange: "formValidationChange" }, providers: [PepGenericFormService], viewQueries: [{ propertyName: "pepListContainer", first: true, predicate: ["pepFormContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<div *ngIf=\"inline\" class=\"inline-container\" [ngClass]=\"{ 'add-padding': addPadding }\">\n <div *ngIf=\"showTopBar\" class=\"inline-top-bar-container\">\n <ng-container *ngTemplateOutlet=\"topBarTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"formTemplate\"></ng-container>\n</div>\n\n<pep-page-layout *ngIf=\"!inline\" [addPadding]=\"addPadding\">\n <ng-container *ngIf=\"showTopBar\" pep-top-area>\n <ng-container *ngTemplateOutlet=\"topBarTemplate\"></ng-container>\n </ng-container>\n <div pep-main-area class=\"main-area-container\">\n <ng-container *ngTemplateOutlet=\"formTemplate\"></ng-container>\n </div>\n</pep-page-layout>\n\n<ng-template #topBarTemplate>\n <pep-top-bar [inline]=\"inline\"> \n <div header-start-content>\n <ng-content select=\"[left-buttons]\"></ng-content>\n </div>\n <div header-end-content>\n <ng-content select=\"[right-buttons]\"></ng-content>\n </div>\n\n <!-- <div footer-start-content>\n <ng-content select=\"[bottom-left-buttons]\"></ng-content>\n </div>\n <div footer-end-content>\n <ng-content select=\"[bottom-right-buttons]\"></ng-content>\n </div> -->\n </pep-top-bar>\n</ng-template>\n\n<ng-template #formTemplate>\n <!-- class=\"form-view\" -->\n <div [ngClass]=\"{'form-view': showTopBar}\">\n <ng-container #pepFormContainer></ng-container>\n </div>\n</ng-template>\n", styles: [":host{height:inherit;display:block}.main-area-container{display:grid;height:inherit}.inline-container{height:inherit;display:grid;grid-template-rows:auto 1fr}.inline-container.add-padding{padding-inline:var(--pep-spacing-lg, 1rem)}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.PepPageLayoutComponent, selector: "pep-page-layout", inputs: ["addPadding", "showShadow"] }, { kind: "component", type: i5.PepTopBarComponent, selector: "pep-top-bar", inputs: ["inline", "title"], outputs: ["footerStateChange"] }] });
229
229
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: GenericFormComponent, decorators: [{
230
230
  type: Component,
231
- args: [{ selector: 'pep-generic-form', providers: [PepGenericFormService], template: "<div *ngIf=\"inline\" class=\"inline-container\" [ngClass]=\"{ 'add-padding': addPadding }\">\n <div *ngIf=\"showTopBar\" class=\"inline-top-bar-container\">\n <ng-container *ngTemplateOutlet=\"topBarTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"formTemplate\"></ng-container>\n</div>\n\n<pep-page-layout *ngIf=\"!inline\" [addPadding]=\"addPadding\">\n <ng-container *ngIf=\"showTopBar\" pep-top-area>\n <ng-container *ngTemplateOutlet=\"topBarTemplate\"></ng-container>\n </ng-container>\n <div pep-main-area class=\"main-area-container\">\n <ng-container *ngTemplateOutlet=\"formTemplate\"></ng-container>\n </div>\n</pep-page-layout>\n\n<ng-template #topBarTemplate>\n <pep-top-bar [inline]=\"inline\"> \n <div header-start-content>\n <ng-content select=\"[left-buttons]\"></ng-content>\n </div>\n <div header-end-content>\n <ng-content select=\"[right-buttons]\"></ng-content>\n </div>\n\n <!-- <div footer-start-content>\n <ng-content select=\"[bottom-left-buttons]\"></ng-content>\n </div>\n <div footer-end-content>\n <ng-content select=\"[bottom-right-buttons]\"></ng-content>\n </div> -->\n </pep-top-bar>\n</ng-template>\n\n<ng-template #formTemplate>\n <div class=\"form-view\">\n <ng-container #pepFormContainer></ng-container>\n </div>\n</ng-template>\n", styles: [":host{height:inherit;display:block}.main-area-container{display:grid;height:inherit}.inline-container{height:inherit;display:grid;grid-template-rows:auto 1fr}.inline-container.add-padding{padding-inline:var(--pep-spacing-lg, 1rem)}\n"] }]
231
+ args: [{ selector: 'pep-generic-form', providers: [PepGenericFormService], template: "<div *ngIf=\"inline\" class=\"inline-container\" [ngClass]=\"{ 'add-padding': addPadding }\">\n <div *ngIf=\"showTopBar\" class=\"inline-top-bar-container\">\n <ng-container *ngTemplateOutlet=\"topBarTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"formTemplate\"></ng-container>\n</div>\n\n<pep-page-layout *ngIf=\"!inline\" [addPadding]=\"addPadding\">\n <ng-container *ngIf=\"showTopBar\" pep-top-area>\n <ng-container *ngTemplateOutlet=\"topBarTemplate\"></ng-container>\n </ng-container>\n <div pep-main-area class=\"main-area-container\">\n <ng-container *ngTemplateOutlet=\"formTemplate\"></ng-container>\n </div>\n</pep-page-layout>\n\n<ng-template #topBarTemplate>\n <pep-top-bar [inline]=\"inline\"> \n <div header-start-content>\n <ng-content select=\"[left-buttons]\"></ng-content>\n </div>\n <div header-end-content>\n <ng-content select=\"[right-buttons]\"></ng-content>\n </div>\n\n <!-- <div footer-start-content>\n <ng-content select=\"[bottom-left-buttons]\"></ng-content>\n </div>\n <div footer-end-content>\n <ng-content select=\"[bottom-right-buttons]\"></ng-content>\n </div> -->\n </pep-top-bar>\n</ng-template>\n\n<ng-template #formTemplate>\n <!-- class=\"form-view\" -->\n <div [ngClass]=\"{'form-view': showTopBar}\">\n <ng-container #pepFormContainer></ng-container>\n </div>\n</ng-template>\n", styles: [":host{height:inherit;display:block}.main-area-container{display:grid;height:inherit}.inline-container{height:inherit;display:grid;grid-template-rows:auto 1fr}.inline-container.add-padding{padding-inline:var(--pep-spacing-lg, 1rem)}\n"] }]
232
232
  }], ctorParameters: function () { return [{ type: i1.PepLayoutService }, { type: PepGenericFormService }]; }, propDecorators: { pepListContainer: [{
233
233
  type: ViewChild,
234
234
  args: ['pepFormContainer', { read: ViewContainerRef }]
@@ -1 +1 @@
1
- {"version":3,"file":"pepperi-addons-ngx-composite-lib-generic-form.mjs","sources":["../../../projects/ngx-composite-lib/generic-form/generic-form.service.ts","../../../projects/ngx-composite-lib/generic-form/generic-form.component.ts","../../../projects/ngx-composite-lib/generic-form/generic-form.component.html","../../../projects/ngx-composite-lib/generic-form/generic-form.module.ts","../../../projects/ngx-composite-lib/generic-form/public-api.ts","../../../projects/ngx-composite-lib/generic-form/pepperi-addons-ngx-composite-lib-generic-form.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n\n@Injectable()\nexport class PepGenericFormService { \n\n constructor() {\n // \n }\n \n /**\n * checks if the object contains property\n * @param obj object\n * @param prop property name\n * @returns true if contains, false otherwise\n */\n hasProperty(obj: any, prop: string) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n createFormField(data: any) {\n const field: any = {};\n \n field.ApiName = data.ApiName;\n field.Value = data.controlFieldValue;\n field.FormattedValue = data.controlFieldValue;\n field.FieldType = data.FieldType;\n field.Enabled = !data.ReadOnly;\n field.Visible = !data.Hidden;\n field.GroupFields = [];\n field.Highlighted = false;\n field.OptionalValues = data.OptionalValues;\n field.AdditionalProps = data.AdditionalProps; \n\n return field;\n }\n\n convertToUiControlField(field: any): any {\n return {\n ApiName: field.ApiName,\n FieldType: field.FieldType,\n Title: field.Title,\n ReadOnly: field.ReadOnlyField,\n Mandatory: field.MandatoryField,\n Hidden: field.Hidden,\n ColumnWidth: field.ColumnWidth,\n ColumnWidthType: 1,\n MaxFieldCharacters: field.MaxCharacters,\n MinValue: field.MinValue,\n MaxValue: field.MaxValue,\n Layout: {\n X: field.Layout.X,\n Y: field.Layout.Y,\n Width: field.Layout.Width,\n Height: field.Layout.Field_Height,\n XAlignment: field.Layout.xAlignment,\n YAlignment: field.Layout.yAlignment,\n }\n }\n }\n\n}\n","import {\n Component,\n OnInit,\n Input,\n Output,\n ViewChild,\n ViewContainerRef,\n EventEmitter, \n Type,\n} from '@angular/core';\n//import { PepFormComponent } from '@pepperi-addons/ngx-lib/form';\nimport {\n IPepGenericFormDataView,\n IPepGenericFormValueChange,\n IPepGenericFormFieldUpdate,\n IPepGenericFormData\n} from './generic-form.model';\nimport {\n UIControl,\n ObjectsDataRow,\n ObjectsDataRowCell,\n PepGuid,\n PepLayoutService\n} from '@pepperi-addons/ngx-lib';\nimport { DataViewConverter } from '@pepperi-addons/data-views';\nimport { PepGenericFormService } from './generic-form.service';\n\n\n@Component({\n selector: 'pep-generic-form',\n templateUrl: './generic-form.component.html',\n styleUrls: ['./generic-form.component.scss'],\n providers: [PepGenericFormService]\n})\nexport class GenericFormComponent implements OnInit {\n private _pepFormContainer: ViewContainerRef | undefined;\n @ViewChild('pepFormContainer', { read: ViewContainerRef })\n set pepListContainer(val: ViewContainerRef) {\n this._pepFormContainer = val;\n }\n\n private _data: any;\n @Input()\n set dataSource(val: any) {\n this._data = val;\n }\n\n private _formData: ObjectsDataRow;\n private _uiControl: UIControl;\n @Input()\n set dataView(val: IPepGenericFormDataView) {\n this.initForm(val);\n }\n\n @Input()\n isLocked = false;\n\n @Input()\n inline = false;\n\n @Input()\n showTopBar = false;\n\n @Input()\n addPadding = false;\n\n @Output()\n valueChange: EventEmitter<IPepGenericFormValueChange> = new EventEmitter<IPepGenericFormValueChange>();\n\n @Output()\n fieldClick: EventEmitter<IPepGenericFormValueChange> = new EventEmitter<IPepGenericFormValueChange>();\n\n @Output()\n formValidationChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private _pepForm: any;\n\n constructor( \n private layoutService: PepLayoutService,\n public _genericFormService: PepGenericFormService\n ) {\n this.layoutService.onResize$.pipe().subscribe((size) => {\n // \n });\n this._formData = new ObjectsDataRow();\n this._uiControl = new UIControl();\n }\n\n ngOnInit() {\n // \n }\n\n private initForm(dataView: IPepGenericFormDataView) {\n setTimeout(async () => {\n if (this._pepFormContainer) {\n if (this._pepFormContainer.length) {\n this._pepFormContainer.remove();\n this._formData = new ObjectsDataRow();\n this._uiControl = new UIControl();\n } \n const { PepFormComponent } = await import('@pepperi-addons/ngx-lib/form'); \n const componentRef = this._pepFormContainer.createComponent(PepFormComponent); \n\n this._pepForm = componentRef.instance;\n\n this._formData.IsEditable = !this.isLocked;\n this._formData.UID = dataView.UID || PepGuid.newGuid();\n const uiControlData = DataViewConverter.toUIControlData(dataView);\n if (uiControlData) {\n if (uiControlData?.ControlFields) {\n this._uiControl.ControlFields = uiControlData.ControlFields.map((field: any) => this._genericFormService.convertToUiControlField(field));\n }\n this._uiControl.Columns = uiControlData.Columns;\n\n if (this._uiControl.ControlFields?.length) {\n this._formData.Fields = [];\n this._uiControl.ControlFields.forEach((item) => {\n let value = '';\n if (this._genericFormService.hasProperty(this._data, item.ApiName)) {\n value = this._data[item.ApiName];\n }\n let dataViewField: any;\n if (dataView.Fields) {\n dataViewField = dataView.Fields.find(field => field.FieldID === item.ApiName);\n }\n const controlFieldData = {\n ...item,\n ...{\n controlFieldValue: value\n },\n ...{\n OptionalValues: dataViewField?.OptionalValues?.length ? dataViewField.OptionalValues : [],\n AdditionalProps: dataViewField?.AdditionalProps || null\n }\n }\n this._formData.Fields.push(this._genericFormService.createFormField(controlFieldData));\n });\n\n componentRef.instance.layoutType = 'form';\n componentRef.instance.layout = this._uiControl;\n componentRef.instance.data = this._formData;\n componentRef.instance.isInternal = false;\n componentRef.instance.lockFields = this.isLocked;\n componentRef.instance.valueChange.subscribe(($event) => {\n this.onValueChanged($event);\n });\n componentRef.instance.fieldClick.subscribe(($event) => {\n this.onfieldClicked($event);\n });\n componentRef.instance.formValidationChange.subscribe(($event) => {\n this.onFormValidationChanged($event);\n });\n }\n }\n\n }\n\n }, 0);\n }\n\n /**\n * updates form field's value\n * @param field object containing the data of the required update\n */\n private updateFieldValue(fieldChanged: IPepGenericFormValueChange) {\n this._data[fieldChanged.ApiName] = fieldChanged.Value;\n }\n\n getData(): IPepGenericFormData {\n return {\n UID: this._formData.UID,\n Values: this._data\n };\n }\n\n /**\n * updates form field(s) params\n * @param fields\n */\n updateFields(fields: IPepGenericFormFieldUpdate[]) {\n // update data view with current data\n for (const [key, value] of Object.entries(this._data)) {\n const index = this._formData.Fields.findIndex((item) => item.ApiName === key);\n if (index >= 0) {\n const item = this._formData.Fields[index] as { [k: string]: any };\n item.Value = value;\n }\n }\n\n fields.forEach((field) => {\n const index = this._formData.Fields.findIndex((item) => item.ApiName === field.FieldId);\n if (index >= 0) {\n for (const [key, value] of Object.entries(field.Params)) {\n if (this._genericFormService.hasProperty(this._formData.Fields[index], key)) {\n const item = this._formData.Fields[index] as { [k: string]: any };\n item[key] = value;\n if (key === 'Value') {\n //manually updating formattedValue because FormattedValue is legacy used by webapp\n item.FormattedValue = value;\n }\n }\n }\n }\n });\n this._pepForm.ReloadForm()\n this._pepForm.data = this._formData;\n }\n\n onValueChanged(event: any) {\n const field: IPepGenericFormValueChange = {\n UID: event.id,\n ApiName: event.key,\n Value: event.value\n };\n this.updateFieldValue(field);\n this.valueChange.emit(field);\n }\n\n onfieldClicked(event: any) {\n const field: IPepGenericFormValueChange = {\n UID: event.id,\n ApiName: event.key,\n Value: event.value\n };\n this.updateFieldValue(field);\n this.fieldClick.emit(field);\n }\n\n onFormValidationChanged(event: any) {\n this.formValidationChange.emit(event);\n }\n\n\n}\n","<div *ngIf=\"inline\" class=\"inline-container\" [ngClass]=\"{ 'add-padding': addPadding }\">\n <div *ngIf=\"showTopBar\" class=\"inline-top-bar-container\">\n <ng-container *ngTemplateOutlet=\"topBarTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"formTemplate\"></ng-container>\n</div>\n\n<pep-page-layout *ngIf=\"!inline\" [addPadding]=\"addPadding\">\n <ng-container *ngIf=\"showTopBar\" pep-top-area>\n <ng-container *ngTemplateOutlet=\"topBarTemplate\"></ng-container>\n </ng-container>\n <div pep-main-area class=\"main-area-container\">\n <ng-container *ngTemplateOutlet=\"formTemplate\"></ng-container>\n </div>\n</pep-page-layout>\n\n<ng-template #topBarTemplate>\n <pep-top-bar [inline]=\"inline\"> \n <div header-start-content>\n <ng-content select=\"[left-buttons]\"></ng-content>\n </div>\n <div header-end-content>\n <ng-content select=\"[right-buttons]\"></ng-content>\n </div>\n\n <!-- <div footer-start-content>\n <ng-content select=\"[bottom-left-buttons]\"></ng-content>\n </div>\n <div footer-end-content>\n <ng-content select=\"[bottom-right-buttons]\"></ng-content>\n </div> -->\n </pep-top-bar>\n</ng-template>\n\n<ng-template #formTemplate>\n <div class=\"form-view\">\n <ng-container #pepFormContainer></ng-container>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n//import { MatFormFieldModule } from '@angular/material/form-field';\n//import { MaterialModule } from '@pepperi-addons/ngx-lib/';\n//import { ReactiveFormsModule } from '@angular/forms';\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport { PepFormModule } from '@pepperi-addons/ngx-lib/form';\nimport { PepMenuModule } from '@pepperi-addons/ngx-lib/menu';\nimport { PepPageLayoutModule } from '@pepperi-addons/ngx-lib/page-layout';\nimport { PepTopBarModule } from '@pepperi-addons/ngx-lib/top-bar';\n//import { PepTextboxModule } from '@pepperi-addons/ngx-lib/textbox';\n//import { PepDateModule } from '@pepperi-addons/ngx-lib/date';\n\nimport { PepGenericFormService } from './generic-form.service';\n\nimport { GenericFormComponent } from './generic-form.component';\n\n@NgModule({\n declarations: [\n GenericFormComponent\n ],\n imports: [\n CommonModule, \n\n // MatFormFieldModule,\n // ReactiveFormsModule,\n\n PepNgxLibModule,\n // PepListModule,\n PepFormModule,\n PepMenuModule,\n PepPageLayoutModule,\n PepTopBarModule,\n // PepTextboxModule,\n // PepDateModule\n // PepSearchModule,\n // PepBreadCrumbsModule\n ],\n exports: [\n GenericFormComponent\n ],\n providers: [\n PepGenericFormService\n ]\n})\nexport class PepGenericFormModule { }\n","/*\n* Public API Surface of ngx-composite-lib/generic-form\n*/\nexport * from './generic-form.module';\nexport * from './generic-form.component';\nexport * from './generic-form.model';\nexport * from './generic-form.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.PepGenericFormService"],"mappings":"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"}
1
+ {"version":3,"file":"pepperi-addons-ngx-composite-lib-generic-form.mjs","sources":["../../../projects/ngx-composite-lib/generic-form/generic-form.service.ts","../../../projects/ngx-composite-lib/generic-form/generic-form.component.ts","../../../projects/ngx-composite-lib/generic-form/generic-form.component.html","../../../projects/ngx-composite-lib/generic-form/generic-form.module.ts","../../../projects/ngx-composite-lib/generic-form/public-api.ts","../../../projects/ngx-composite-lib/generic-form/pepperi-addons-ngx-composite-lib-generic-form.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n\n@Injectable()\nexport class PepGenericFormService { \n\n constructor() {\n // \n }\n \n /**\n * checks if the object contains property\n * @param obj object\n * @param prop property name\n * @returns true if contains, false otherwise\n */\n hasProperty(obj: any, prop: string) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n createFormField(data: any) {\n const field: any = {};\n \n field.ApiName = data.ApiName;\n field.Value = data.controlFieldValue;\n field.FormattedValue = data.controlFieldValue;\n field.FieldType = data.FieldType;\n field.Enabled = !data.ReadOnly;\n field.Visible = !data.Hidden;\n field.GroupFields = [];\n field.Highlighted = false;\n field.OptionalValues = data.OptionalValues;\n field.AdditionalProps = data.AdditionalProps; \n\n return field;\n }\n\n convertToUiControlField(field: any): any {\n return {\n ApiName: field.ApiName,\n FieldType: field.FieldType,\n Title: field.Title,\n ReadOnly: field.ReadOnlyField,\n Mandatory: field.MandatoryField,\n Hidden: field.Hidden,\n ColumnWidth: field.ColumnWidth,\n ColumnWidthType: 1,\n MaxFieldCharacters: field.MaxCharacters,\n MinValue: field.MinValue,\n MaxValue: field.MaxValue,\n Layout: {\n X: field.Layout.X,\n Y: field.Layout.Y,\n Width: field.Layout.Width,\n Height: field.Layout.Field_Height,\n XAlignment: field.Layout.xAlignment,\n YAlignment: field.Layout.yAlignment,\n }\n }\n }\n\n}\n","import {\n Component,\n OnInit,\n Input,\n Output,\n ViewChild,\n ViewContainerRef,\n EventEmitter, \n Type,\n} from '@angular/core';\n//import { PepFormComponent } from '@pepperi-addons/ngx-lib/form';\nimport {\n IPepGenericFormDataView,\n IPepGenericFormValueChange,\n IPepGenericFormFieldUpdate,\n IPepGenericFormData\n} from './generic-form.model';\nimport {\n UIControl,\n ObjectsDataRow,\n ObjectsDataRowCell,\n PepGuid,\n PepLayoutService\n} from '@pepperi-addons/ngx-lib';\nimport { DataViewConverter } from '@pepperi-addons/data-views';\nimport { PepGenericFormService } from './generic-form.service';\n\n\n@Component({\n selector: 'pep-generic-form',\n templateUrl: './generic-form.component.html',\n styleUrls: ['./generic-form.component.scss'],\n providers: [PepGenericFormService]\n})\nexport class GenericFormComponent implements OnInit {\n private _pepFormContainer: ViewContainerRef | undefined;\n @ViewChild('pepFormContainer', { read: ViewContainerRef })\n set pepListContainer(val: ViewContainerRef) {\n this._pepFormContainer = val;\n }\n\n private _data: any;\n @Input()\n set dataSource(val: any) {\n this._data = val;\n }\n\n private _formData: ObjectsDataRow;\n private _uiControl: UIControl;\n @Input()\n set dataView(val: IPepGenericFormDataView) {\n this.initForm(val);\n }\n\n @Input()\n isLocked = false;\n\n @Input()\n inline = false;\n\n @Input()\n showTopBar = false;\n\n @Input()\n addPadding = false;\n\n @Output()\n valueChange: EventEmitter<IPepGenericFormValueChange> = new EventEmitter<IPepGenericFormValueChange>();\n\n @Output()\n fieldClick: EventEmitter<IPepGenericFormValueChange> = new EventEmitter<IPepGenericFormValueChange>();\n\n @Output()\n formValidationChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private _pepForm: any;\n\n constructor( \n private layoutService: PepLayoutService,\n public _genericFormService: PepGenericFormService\n ) {\n this.layoutService.onResize$.pipe().subscribe((size) => {\n // \n });\n this._formData = new ObjectsDataRow();\n this._uiControl = new UIControl();\n }\n\n ngOnInit() {\n // \n }\n\n private initForm(dataView: IPepGenericFormDataView) {\n setTimeout(async () => {\n if (this._pepFormContainer) {\n if (this._pepFormContainer.length) {\n this._pepFormContainer.remove();\n this._formData = new ObjectsDataRow();\n this._uiControl = new UIControl();\n } \n const { PepFormComponent } = await import('@pepperi-addons/ngx-lib/form'); \n const componentRef = this._pepFormContainer.createComponent(PepFormComponent); \n\n this._pepForm = componentRef.instance;\n\n this._formData.IsEditable = !this.isLocked;\n this._formData.UID = dataView.UID || PepGuid.newGuid();\n const uiControlData = DataViewConverter.toUIControlData(dataView);\n if (uiControlData) {\n if (uiControlData?.ControlFields) {\n this._uiControl.ControlFields = uiControlData.ControlFields.map((field: any) => this._genericFormService.convertToUiControlField(field));\n }\n this._uiControl.Columns = uiControlData.Columns;\n\n if (this._uiControl.ControlFields?.length) {\n this._formData.Fields = [];\n this._uiControl.ControlFields.forEach((item) => {\n let value = '';\n if (this._genericFormService.hasProperty(this._data, item.ApiName)) {\n value = this._data[item.ApiName];\n }\n let dataViewField: any;\n if (dataView.Fields) {\n dataViewField = dataView.Fields.find(field => field.FieldID === item.ApiName);\n }\n const controlFieldData = {\n ...item,\n ...{\n controlFieldValue: value\n },\n ...{\n OptionalValues: dataViewField?.OptionalValues?.length ? dataViewField.OptionalValues : [],\n AdditionalProps: dataViewField?.AdditionalProps || null\n }\n }\n this._formData.Fields.push(this._genericFormService.createFormField(controlFieldData));\n });\n\n componentRef.instance.layoutType = 'form';\n componentRef.instance.layout = this._uiControl;\n componentRef.instance.data = this._formData;\n componentRef.instance.isInternal = false;\n componentRef.instance.lockFields = this.isLocked;\n componentRef.instance.valueChange.subscribe(($event) => {\n this.onValueChanged($event);\n });\n componentRef.instance.fieldClick.subscribe(($event) => {\n this.onfieldClicked($event);\n });\n componentRef.instance.formValidationChange.subscribe(($event) => {\n this.onFormValidationChanged($event);\n });\n }\n }\n\n }\n\n }, 0);\n }\n\n /**\n * updates form field's value\n * @param field object containing the data of the required update\n */\n private updateFieldValue(fieldChanged: IPepGenericFormValueChange) {\n this._data[fieldChanged.ApiName] = fieldChanged.Value;\n }\n\n getData(): IPepGenericFormData {\n return {\n UID: this._formData.UID,\n Values: this._data\n };\n }\n\n /**\n * updates form field(s) params\n * @param fields\n */\n updateFields(fields: IPepGenericFormFieldUpdate[]) {\n // update data view with current data\n for (const [key, value] of Object.entries(this._data)) {\n const index = this._formData.Fields.findIndex((item) => item.ApiName === key);\n if (index >= 0) {\n const item = this._formData.Fields[index] as { [k: string]: any };\n item.Value = value;\n }\n }\n\n fields.forEach((field) => {\n const index = this._formData.Fields.findIndex((item) => item.ApiName === field.FieldId);\n if (index >= 0) {\n for (const [key, value] of Object.entries(field.Params)) {\n if (this._genericFormService.hasProperty(this._formData.Fields[index], key)) {\n const item = this._formData.Fields[index] as { [k: string]: any };\n item[key] = value;\n if (key === 'Value') {\n //manually updating formattedValue because FormattedValue is legacy used by webapp\n item.FormattedValue = value;\n }\n }\n }\n }\n });\n this._pepForm.ReloadForm()\n this._pepForm.data = this._formData;\n }\n\n onValueChanged(event: any) {\n const field: IPepGenericFormValueChange = {\n UID: event.id,\n ApiName: event.key,\n Value: event.value\n };\n this.updateFieldValue(field);\n this.valueChange.emit(field);\n }\n\n onfieldClicked(event: any) {\n const field: IPepGenericFormValueChange = {\n UID: event.id,\n ApiName: event.key,\n Value: event.value\n };\n this.updateFieldValue(field);\n this.fieldClick.emit(field);\n }\n\n onFormValidationChanged(event: any) {\n this.formValidationChange.emit(event);\n }\n\n\n}\n","<div *ngIf=\"inline\" class=\"inline-container\" [ngClass]=\"{ 'add-padding': addPadding }\">\n <div *ngIf=\"showTopBar\" class=\"inline-top-bar-container\">\n <ng-container *ngTemplateOutlet=\"topBarTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"formTemplate\"></ng-container>\n</div>\n\n<pep-page-layout *ngIf=\"!inline\" [addPadding]=\"addPadding\">\n <ng-container *ngIf=\"showTopBar\" pep-top-area>\n <ng-container *ngTemplateOutlet=\"topBarTemplate\"></ng-container>\n </ng-container>\n <div pep-main-area class=\"main-area-container\">\n <ng-container *ngTemplateOutlet=\"formTemplate\"></ng-container>\n </div>\n</pep-page-layout>\n\n<ng-template #topBarTemplate>\n <pep-top-bar [inline]=\"inline\"> \n <div header-start-content>\n <ng-content select=\"[left-buttons]\"></ng-content>\n </div>\n <div header-end-content>\n <ng-content select=\"[right-buttons]\"></ng-content>\n </div>\n\n <!-- <div footer-start-content>\n <ng-content select=\"[bottom-left-buttons]\"></ng-content>\n </div>\n <div footer-end-content>\n <ng-content select=\"[bottom-right-buttons]\"></ng-content>\n </div> -->\n </pep-top-bar>\n</ng-template>\n\n<ng-template #formTemplate>\n <!-- class=\"form-view\" -->\n <div [ngClass]=\"{'form-view': showTopBar}\">\n <ng-container #pepFormContainer></ng-container>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n//import { MatFormFieldModule } from '@angular/material/form-field';\n//import { MaterialModule } from '@pepperi-addons/ngx-lib/';\n//import { ReactiveFormsModule } from '@angular/forms';\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport { PepFormModule } from '@pepperi-addons/ngx-lib/form';\nimport { PepMenuModule } from '@pepperi-addons/ngx-lib/menu';\nimport { PepPageLayoutModule } from '@pepperi-addons/ngx-lib/page-layout';\nimport { PepTopBarModule } from '@pepperi-addons/ngx-lib/top-bar';\n//import { PepTextboxModule } from '@pepperi-addons/ngx-lib/textbox';\n//import { PepDateModule } from '@pepperi-addons/ngx-lib/date';\n\nimport { PepGenericFormService } from './generic-form.service';\n\nimport { GenericFormComponent } from './generic-form.component';\n\n@NgModule({\n declarations: [\n GenericFormComponent\n ],\n imports: [\n CommonModule, \n\n // MatFormFieldModule,\n // ReactiveFormsModule,\n\n PepNgxLibModule,\n // PepListModule,\n PepFormModule,\n PepMenuModule,\n PepPageLayoutModule,\n PepTopBarModule,\n // PepTextboxModule,\n // PepDateModule\n // PepSearchModule,\n // PepBreadCrumbsModule\n ],\n exports: [\n GenericFormComponent\n ],\n providers: [\n PepGenericFormService\n ]\n})\nexport class PepGenericFormModule { }\n","/*\n* Public API Surface of ngx-composite-lib/generic-form\n*/\nexport * from './generic-form.module';\nexport * from './generic-form.component';\nexport * from './generic-form.model';\nexport * from './generic-form.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.PepGenericFormService"],"mappings":"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"}