@porscheinformatik/material-addons 10.2.0 → 10.2.1

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 (29) hide show
  1. package/bundles/porscheinformatik-material-addons.umd.js +343 -30
  2. package/bundles/porscheinformatik-material-addons.umd.js.map +1 -1
  3. package/bundles/porscheinformatik-material-addons.umd.min.js +2 -2
  4. package/bundles/porscheinformatik-material-addons.umd.min.js.map +1 -1
  5. package/esm2015/lib/material-addons.module.js +3 -3
  6. package/esm2015/lib/numeric-field/numeric-field.directive.js +4 -2
  7. package/esm2015/lib/quick-list/base-quick-list.component.js +89 -0
  8. package/esm2015/lib/quick-list/quick-list-compact/quick-list-compact.component.js +18 -0
  9. package/esm2015/lib/quick-list/quick-list.component.js +6 -77
  10. package/esm2015/lib/quick-list/quick-list.module.js +6 -4
  11. package/esm2015/lib/stepper/mad-stepper-animation.js +13 -0
  12. package/esm2015/lib/stepper/step-header/step-header.component.js +75 -0
  13. package/esm2015/lib/stepper/stepper.component.js +167 -0
  14. package/esm2015/lib/stepper/stepper.module.js +18 -0
  15. package/esm2015/porscheinformatik-material-addons.js +4 -2
  16. package/esm2015/public-api.js +5 -1
  17. package/fesm2015/porscheinformatik-material-addons.js +311 -20
  18. package/fesm2015/porscheinformatik-material-addons.js.map +1 -1
  19. package/lib/quick-list/base-quick-list.component.d.ts +29 -0
  20. package/lib/quick-list/quick-list-compact/quick-list-compact.component.d.ts +6 -0
  21. package/lib/quick-list/quick-list.component.d.ts +4 -27
  22. package/lib/stepper/mad-stepper-animation.d.ts +7 -0
  23. package/lib/stepper/step-header/step-header.component.d.ts +23 -0
  24. package/lib/stepper/stepper.component.d.ts +47 -0
  25. package/lib/stepper/stepper.module.d.ts +2 -0
  26. package/package.json +1 -1
  27. package/porscheinformatik-material-addons.d.ts +3 -1
  28. package/porscheinformatik-material-addons.metadata.json +1 -1
  29. package/public-api.d.ts +4 -0
@@ -19,8 +19,8 @@ MaterialAddonsModule.decorators = [
19
19
  NumericFieldModule,
20
20
  CardModule,
21
21
  QuickListModule,
22
- ThrottleClickModule
23
- ]
22
+ ThrottleClickModule,
23
+ ],
24
24
  },] }
25
25
  ];
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtYWRkb25zLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9tYXRlcmlhbC1hZGRvbnMvbWF0ZXJpYWwtYWRkb25zL3Byb2plY3RzL21hdGVyaWFsLWFkZG9ucy9zcmMvIiwic291cmNlcyI6WyJsaWIvbWF0ZXJpYWwtYWRkb25zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUM5RSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUNsRyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQWEzRSxNQUFNLE9BQU8sb0JBQW9COzs7WUFYaEMsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCx1QkFBdUI7b0JBQ3ZCLFlBQVk7b0JBQ1osYUFBYTtvQkFDYiwwQkFBMEI7b0JBQzFCLGtCQUFrQjtvQkFDbEIsVUFBVTtvQkFDVixlQUFlO29CQUNmLG1CQUFtQjtpQkFBQzthQUN2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUb29sYmFyTW9kdWxlfSBmcm9tICcuL3Rvb2xiYXIvdG9vbGJhci5tb2R1bGUnO1xuaW1wb3J0IHtSZWFkT25seUZvcm1GaWVsZE1vZHVsZX0gZnJvbSAnLi9yZWFkb25seS9yZWFkb25seS1mb3JtLWZpZWxkLm1vZHVsZSc7XG5pbXBvcnQge01hdGVyaWFsQWN0aW9uQnV0dG9uTW9kdWxlfSBmcm9tICcuL21hdGVyaWFsLWFjdGlvbi1idXR0b24vbWF0ZXJpYWwtYWN0aW9uLWJ1dHRvbi5tb2R1bGUnO1xuaW1wb3J0IHtOdW1lcmljRmllbGRNb2R1bGV9IGZyb20gJy4vbnVtZXJpYy1maWVsZC9udW1lcmljLWZpZWxkLm1vZHVsZSc7XG5pbXBvcnQge0NhcmRNb2R1bGV9IGZyb20gJy4vY2FyZC9jYXJkLm1vZHVsZSc7XG5pbXBvcnQge1F1aWNrTGlzdE1vZHVsZX0gZnJvbSAnLi9xdWljay1saXN0L3F1aWNrLWxpc3QubW9kdWxlJztcbmltcG9ydCB7QnV0dG9uTW9kdWxlfSBmcm9tICcuL2J1dHRvbi9idXR0b24ubW9kdWxlJztcbmltcG9ydCB7VGhyb3R0bGVDbGlja01vZHVsZX0gZnJvbSAnLi90aHJvdHRsZS1jbGljay90aHJvdHRsZS1jbGljay5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBleHBvcnRzOiBbXG4gICAgUmVhZE9ubHlGb3JtRmllbGRNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIFRvb2xiYXJNb2R1bGUsXG4gICAgTWF0ZXJpYWxBY3Rpb25CdXR0b25Nb2R1bGUsXG4gICAgTnVtZXJpY0ZpZWxkTW9kdWxlLFxuICAgIENhcmRNb2R1bGUsXG4gICAgUXVpY2tMaXN0TW9kdWxlLFxuICAgIFRocm90dGxlQ2xpY2tNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsQWRkb25zTW9kdWxlIHtcbn1cbiJdfQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtYWRkb25zLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9tYXRlcmlhbC1hZGRvbnMvbWF0ZXJpYWwtYWRkb25zL3Byb2plY3RzL21hdGVyaWFsLWFkZG9ucy9zcmMvIiwic291cmNlcyI6WyJsaWIvbWF0ZXJpYWwtYWRkb25zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUM5RSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUNsRyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQWUzRSxNQUFNLE9BQU8sb0JBQW9COzs7WUFaaEMsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCx1QkFBdUI7b0JBQ3ZCLFlBQVk7b0JBQ1osYUFBYTtvQkFDYiwwQkFBMEI7b0JBQzFCLGtCQUFrQjtvQkFDbEIsVUFBVTtvQkFDVixlQUFlO29CQUNmLG1CQUFtQjtpQkFDcEI7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUb29sYmFyTW9kdWxlfSBmcm9tICcuL3Rvb2xiYXIvdG9vbGJhci5tb2R1bGUnO1xuaW1wb3J0IHtSZWFkT25seUZvcm1GaWVsZE1vZHVsZX0gZnJvbSAnLi9yZWFkb25seS9yZWFkb25seS1mb3JtLWZpZWxkLm1vZHVsZSc7XG5pbXBvcnQge01hdGVyaWFsQWN0aW9uQnV0dG9uTW9kdWxlfSBmcm9tICcuL21hdGVyaWFsLWFjdGlvbi1idXR0b24vbWF0ZXJpYWwtYWN0aW9uLWJ1dHRvbi5tb2R1bGUnO1xuaW1wb3J0IHtOdW1lcmljRmllbGRNb2R1bGV9IGZyb20gJy4vbnVtZXJpYy1maWVsZC9udW1lcmljLWZpZWxkLm1vZHVsZSc7XG5pbXBvcnQge0NhcmRNb2R1bGV9IGZyb20gJy4vY2FyZC9jYXJkLm1vZHVsZSc7XG5pbXBvcnQge1F1aWNrTGlzdE1vZHVsZX0gZnJvbSAnLi9xdWljay1saXN0L3F1aWNrLWxpc3QubW9kdWxlJztcbmltcG9ydCB7QnV0dG9uTW9kdWxlfSBmcm9tICcuL2J1dHRvbi9idXR0b24ubW9kdWxlJztcbmltcG9ydCB7VGhyb3R0bGVDbGlja01vZHVsZX0gZnJvbSAnLi90aHJvdHRsZS1jbGljay90aHJvdHRsZS1jbGljay5tb2R1bGUnO1xuaW1wb3J0IHtTdGVwcGVyTW9kdWxlfSBmcm9tICcuL3N0ZXBwZXIvc3RlcHBlci5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBleHBvcnRzOiBbXG4gICAgUmVhZE9ubHlGb3JtRmllbGRNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIFRvb2xiYXJNb2R1bGUsXG4gICAgTWF0ZXJpYWxBY3Rpb25CdXR0b25Nb2R1bGUsXG4gICAgTnVtZXJpY0ZpZWxkTW9kdWxlLFxuICAgIENhcmRNb2R1bGUsXG4gICAgUXVpY2tMaXN0TW9kdWxlLFxuICAgIFRocm90dGxlQ2xpY2tNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsQWRkb25zTW9kdWxlIHt9XG4iXX0=
@@ -34,7 +34,9 @@ export class NumericFieldDirective {
34
34
  set numericValue(value) {
35
35
  if (this._numericValue !== value && !(isNaN(this._numericValue) && (isNaN(value) || value === null))) {
36
36
  this.originalValue = value;
37
- this._numericValue = this.roundOrTruncate(value);
37
+ // Don't roundOrTruncate if value was set to empty otherwise input value will be set to 0 instead of empty
38
+ // which happens when an input is being reset
39
+ this._numericValue = value === null || value === undefined ? value : this.roundOrTruncate(value); // eslint-disable-line
38
40
  this.handleInputChanged();
39
41
  }
40
42
  }
@@ -270,4 +272,4 @@ NumericFieldDirective.propDecorators = {
270
272
  numericValueChanged: [{ type: Output, args: ['numericValueChange',] }],
271
273
  numericValue: [{ type: Input, args: ['numericValue',] }]
272
274
  };
273
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy1maWVsZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvbWF0ZXJpYWwtYWRkb25zL21hdGVyaWFsLWFkZG9ucy9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjLyIsInNvdXJjZXMiOlsibGliL251bWVyaWMtZmllbGQvbnVtZXJpYy1maWVsZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlELE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQztBQUN2QixNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUM7QUFDekIsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO0FBQ3ZCLE1BQU0sNkJBQTZCLEdBQUcsRUFBRSxDQUFDO0FBQ3pDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFrQmxELE1BQU0sT0FBTyxxQkFBcUI7SUE0QmhDLFlBQW9CLFFBQW1CLEVBQVUsT0FBbUIsRUFBVSxtQkFBd0M7UUFBbEcsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFBVSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBM0JsRyxjQUFTLEdBQXFCLE9BQU8sQ0FBQztRQUNsQyxrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNkLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDcEIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3JD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QUMsTUFBTSxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRyxDQUFDOzs7WUEzUkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLElBQUksRUFBRTtvQkFDSixvQkFBb0IsRUFBRSx1QkFBdUI7b0JBQzdDLFVBQVUsRUFBRSxvQ0FBb0M7b0JBQ2hELFNBQVMsRUFBRSxvQ0FBb0M7b0JBQy9DLFFBQVEsRUFBRSxhQUFhO2lCQUN4QjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1Q7d0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQzt3QkFDcEQsS0FBSyxFQUFFLElBQUk7cUJBQ1o7aUJBQ0Y7YUFDRjs7O1lBMUJDLFNBQVM7WUFQVCxVQUFVO1lBVUgsbUJBQW1COzs7d0JBeUJ6QixLQUFLLFNBQUMsV0FBVzs0QkFDakIsS0FBSyxTQUFDLGVBQWU7eUJBQ3JCLEtBQUssU0FBQyxtQkFBbUI7K0JBQ3pCLEtBQUssU0FBQyxrQkFBa0I7bUJBQ3hCLEtBQUssU0FBQyxNQUFNOzJCQUNaLEtBQUssU0FBQyxjQUFjO2tDQUNwQixNQUFNLFNBQUMsb0JBQW9COzJCQVMzQixLQUFLLFNBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMCBQb3JzY2hlIEluZm9ybWF0aWsuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7XG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE51bWJlckZvcm1hdFNlcnZpY2UgfSBmcm9tICcuL251bWJlci1mb3JtYXQuc2VydmljZSc7XG5cbmNvbnN0IEJBQ0tfS0VZQ09ERSA9IDg7XG5jb25zdCBTUEFDRV9LRVlDT0RFID0gMzI7XG5jb25zdCBERUxfS0VZQ09ERSA9IDQ2O1xuY29uc3QgQ09OVFJPTF9LRVlDT0RFU19VUFBFUl9CT1JERVIgPSA0NjtcbmNvbnN0IE9USEVSX0NPTlRST0xfS0VZUyA9IG5ldyBTZXQoWzIyNCwgOTEsIDkzXSk7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1ttYWROdW1lcmljRmllbGRdJyxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MudGV4dC1yaWdodF0nOiAndGV4dEFsaWduID09PSBcInJpZ2h0XCInLFxuICAgICcoY2hhbmdlKSc6ICdvbkNoYW5nZShnZXRWYWx1ZUZvckZvcm1Db250cm9sKCkpJyxcbiAgICAnKGlucHV0KSc6ICdvbkNoYW5nZShnZXRWYWx1ZUZvckZvcm1Db250cm9sKCkpJyxcbiAgICAnKGJsdXIpJzogJ29uVG91Y2hlZCgpJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOdW1lcmljRmllbGREaXJlY3RpdmUpLCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOdW1lcmljRmllbGREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3Q2hlY2tlZCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASW5wdXQoJ3RleHRBbGlnbicpIHRleHRBbGlnbjogJ3JpZ2h0JyB8ICdsZWZ0JyA9ICdyaWdodCc7XG4gIEBJbnB1dCgnZGVjaW1hbFBsYWNlcycpIGRlY2ltYWxQbGFjZXMgPSAyO1xuICBASW5wdXQoJ3JvdW5kRGlzcGxheVZhbHVlJykgcm91bmRWYWx1ZSA9IGZhbHNlO1xuICBASW5wdXQoJ2F1dG9maWxsRGVjaW1hbHMnKSBhdXRvZmlsbERlY2ltYWxzID0gZmFsc2U7XG4gIEBJbnB1dCgndW5pdCcpIHVuaXQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoJ3VuaXRQb3NpdGlvbicpIHVuaXRQb3NpdGlvbjogJ3JpZ2h0JyB8ICdsZWZ0JyA9ICdyaWdodCc7XG4gIEBPdXRwdXQoJ251bWVyaWNWYWx1ZUNoYW5nZScpIG51bWVyaWNWYWx1ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBwcml2YXRlIGRpc3BsYXlWYWx1ZSA9ICcnO1xuICBwcml2YXRlIG9yaWdpbmFsVmFsdWUgPSBOYU47XG4gIHByaXZhdGUgX251bWVyaWNWYWx1ZTogbnVtYmVyO1xuICBwcml2YXRlIGlucHV0Q2hhbmdlTGlzdGVuZXI6ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUga2V5dXBMaXN0ZW5lcjogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBrZXlkb3duTGlzdGVuZXI6ICgpID0+IHZvaWQ7XG5cbiAgQElucHV0KCdudW1lcmljVmFsdWUnKVxuICBzZXQgbnVtZXJpY1ZhbHVlKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5fbnVtZXJpY1ZhbHVlICE9PSB2YWx1ZSAmJiAhKGlzTmFOKHRoaXMuX251bWVyaWNWYWx1ZSkgJiYgKGlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA9PT0gbnVsbCkpKSB7XG4gICAgICB0aGlzLm9yaWdpbmFsVmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuX251bWVyaWNWYWx1ZSA9IHRoaXMucm91bmRPclRydW5jYXRlKHZhbHVlKTtcbiAgICAgIHRoaXMuaGFuZGxlSW5wdXRDaGFuZ2VkKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1bml0U3BhbjogSFRNTFNwYW5FbGVtZW50O1xuICBwcml2YXRlIHRleHRTcGFuOiBIVE1MU3BhbkVsZW1lbnQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGlucHV0RWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgbnVtYmVyRm9ybWF0U2VydmljZTogTnVtYmVyRm9ybWF0U2VydmljZSkge31cblxuICAvKiBDb250cm9sIFZhbHVlcyBBY2Nlc3NvciBTdHVmZiBiZWxvdyAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7fTtcblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoKTogdm9pZCB7XG4gICAgLy8gRG9udCBuZWVkIHRvIGltcGxlbWVudCBzaW5jZSBpdHMganVzdCBhIGRpcmVjdGl2ZVxuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5udW1lcmljVmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8qIG5lZWRzIHRvIGJlIHBhcnNlZCBhcyBudW1iZXIgZXhwbGljaXRseSBhcyBpdCBjb21lcyBhcyBzdHJpbmcgZnJvbSB1c2VyIGlucHV0ICovXG4gICAgdGhpcy5kZWNpbWFsUGxhY2VzID0gcGFyc2VJbnQodGhpcy5kZWNpbWFsUGxhY2VzLnRvU3RyaW5nKCksIDEwKTtcblxuICAgIHRoaXMuaW5wdXRDaGFuZ2VMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LCAnYmx1cicsIGV2ZW50ID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0SW5wdXQoZXZlbnQudGFyZ2V0LCB0cnVlKTtcbiAgICB9KTtcblxuICAgIHRoaXMua2V5dXBMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LCAna2V5dXAnLCBldmVudCA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gQkFDS19LRVlDT0RFIHx8IChldmVudC5rZXlDb2RlID49IENPTlRST0xfS0VZQ09ERVNfVVBQRVJfQk9SREVSICYmICFPVEhFUl9DT05UUk9MX0tFWVMuaGFzKGV2ZW50LmtleUNvZGUpKSkge1xuICAgICAgICB0aGlzLmZvcm1hdElucHV0KGV2ZW50LnRhcmdldCwgZmFsc2UpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5rZXlkb3duTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudCwgJ2tleWRvd24nLCBldmVudCA9PiB7XG4gICAgICBjb25zdCB2YWx1ZTogc3RyaW5nID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLm51bWJlckZvcm1hdFNlcnZpY2UuYWxsb3dlZEtleXMuaW5jbHVkZXMoZXZlbnQua2V5KSB8fFxuICAgICAgICAoZXZlbnQua2V5Q29kZSA8PSBDT05UUk9MX0tFWUNPREVTX1VQUEVSX0JPUkRFUiAmJiBldmVudC5rZXlDb2RlID4gMCAmJiBldmVudC5rZXlDb2RlICE9PSBTUEFDRV9LRVlDT0RFKSB8fFxuICAgICAgICBldmVudC5tZXRhS2V5IHx8XG4gICAgICAgIGV2ZW50LmN0cmxLZXkgfHxcbiAgICAgICAgZXZlbnQuYWx0S2V5XG4gICAgICApIHtcbiAgICAgICAgLyogYWxsb3cgbmVnYXRpdmUgc2lnbiBvbmx5IGFzIGZpcnN0IGNoYXJhY3RlciBhbmQgbm9uZSBleGlzdHMgb3V0c2lkZSBvZiB0ZXh0IHNlbGVjdGlvbiAqL1xuICAgICAgICBjb25zdCBpbmRleE5lZ2F0aXZlU2lnbiA9IHZhbHVlLmluZGV4T2YoTnVtYmVyRm9ybWF0U2VydmljZS5ORUdBVElWRSk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBldmVudC5rZXkgPT09IE51bWJlckZvcm1hdFNlcnZpY2UuTkVHQVRJVkUgJiZcbiAgICAgICAgICAoZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0ID4gMCB8fCBpbmRleE5lZ2F0aXZlU2lnbiA+IC0xKSAmJlxuICAgICAgICAgIChldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgPT09IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25FbmQgfHxcbiAgICAgICAgICAgICEoaW5kZXhOZWdhdGl2ZVNpZ24gPj0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0ICYmIGluZGV4TmVnYXRpdmVTaWduIDw9IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25FbmQpKVxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBubyBkdXBsaWNhdGUgZGVjaW1hbCBzZXBhcmF0b3JzICovXG4gICAgICAgIGNvbnN0IGluZGV4RGVjaW1hbFNlcCA9IHZhbHVlLmluZGV4T2YodGhpcy5udW1iZXJGb3JtYXRTZXJ2aWNlLmRlY2ltYWxTZXBhcmF0b3IpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXZlbnQua2V5ID09PSB0aGlzLm51bWJlckZvcm1hdFNlcnZpY2UuZGVjaW1hbFNlcGFyYXRvciAmJlxuICAgICAgICAgIChpbmRleERlY2ltYWxTZXAgPiAtMSB8fCB0aGlzLmRlY2ltYWxQbGFjZXMgPT09IDApICYmXG4gICAgICAgICAgKGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCA9PT0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCB8fFxuICAgICAgICAgICAgIShpbmRleERlY2ltYWxTZXAgPj0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0ICYmIGluZGV4RGVjaW1hbFNlcCA8PSBldmVudC50YXJnZXQuc2VsZWN0aW9uRW5kKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogcHJldmVudCB0b28gbWFueSBkZWNpbWFsIHBsYWNlcyAqL1xuICAgICAgICBpZiAoXG4gICAgICAgICAgTnVtYmVyRm9ybWF0U2VydmljZS5OVU1CRVJTLmluY2x1ZGVzKGV2ZW50LmtleSkgJiZcbiAgICAgICAgICBpbmRleERlY2ltYWxTZXAgPiAtMSAmJlxuICAgICAgICAgIGluZGV4RGVjaW1hbFNlcCA8IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCAmJlxuICAgICAgICAgIGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCA9PT0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCAmJlxuICAgICAgICAgIHZhbHVlLmxlbmd0aCA+IGluZGV4RGVjaW1hbFNlcCArIHRoaXMuZGVjaW1hbFBsYWNlc1xuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvKiB3aGVuIGRlbGV0aW5nIHRob3VzYW5kIHNlcGFyYXRvciwgcmVtb3ZlIHRoZSBkaWdpdCBiZWZvcmUgb3IgYWZ0ZXIgaXQgKi9cbiAgICAgICAgY29uc3QgY3Vyc29yU3RhcnQgPSBldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQ7XG5cbiAgICAgICAgaWYgKGN1cnNvclN0YXJ0ID09PSBldmVudC50YXJnZXQuc2VsZWN0aW9uRW5kKSB7XG4gICAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IEJBQ0tfS0VZQ09ERSAmJiB2YWx1ZS5zdWJzdHIoY3Vyc29yU3RhcnQgLSAxLCAxKSA9PT0gdGhpcy5udW1iZXJGb3JtYXRTZXJ2aWNlLmdyb3VwaW5nU2VwYXJhdG9yKSB7XG4gICAgICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSB2YWx1ZS5zdWJzdHJpbmcoMCwgY3Vyc29yU3RhcnQgLSAyKSArIHZhbHVlLnN1YnN0cmluZyhjdXJzb3JTdGFydCAtIDEsIHZhbHVlLmxlbmd0aCk7XG4gICAgICAgICAgICBldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgPSBldmVudC50YXJnZXQuc2VsZWN0aW9uRW5kID0gY3Vyc29yU3RhcnQgLSAxO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5Q29kZSA9PT0gREVMX0tFWUNPREUgJiYgdmFsdWUuc3Vic3RyKGN1cnNvclN0YXJ0LCAxKSA9PT0gdGhpcy5udW1iZXJGb3JtYXRTZXJ2aWNlLmdyb3VwaW5nU2VwYXJhdG9yKSB7XG4gICAgICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSB2YWx1ZS5zdWJzdHJpbmcoMCwgY3Vyc29yU3RhcnQgKyAxKSArIHZhbHVlLnN1YnN0cmluZyhjdXJzb3JTdGFydCArIDIsIHZhbHVlLmxlbmd0aCk7XG4gICAgICAgICAgICBldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgPSBldmVudC50YXJnZXQuc2VsZWN0aW9uRW5kID0gY3Vyc29yU3RhcnQgKyAxO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9yaWdpbmFsVmFsdWUgPSBOYU47XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGV0YWNoTGlzdGVuZXIoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmluamVjdFVuaXRTeW1ib2woKTtcbiAgfVxuXG4gIGhhbmRsZUlucHV0Q2hhbmdlZCgpOiB2b2lkIHtcbiAgICAvLyBDYWxsIGluIHNldCB0aW1lb3V0IHRvIGF2b2lkIEV4cHJlc3Npb24gaGFzIGNoYW5nZWQgYWZ0ZXIgaXQgaGFzIGJlZW4gY2hlY2tlZCBlcnJvci5cbiAgICAvLyBTb21ldGltZXMgdGhlIHZhbHVlIGNoYW5nZXMgYmVjYXVzZSB3ZSBjdXQgb2ZmIGRlY2ltYWwgcGxhY2VzXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZUlucHV0KFxuICAgICAgICB0aGlzLm51bWJlckZvcm1hdFNlcnZpY2UuZm9ybWF0KHRoaXMuX251bWVyaWNWYWx1ZSwge1xuICAgICAgICAgIGRlY2ltYWxQbGFjZXM6IHRoaXMuZGVjaW1hbFBsYWNlcyxcbiAgICAgICAgICBmaW5hbEZvcm1hdHRpbmc6IGZhbHNlLFxuICAgICAgICAgIGF1dG9maWxsRGVjaW1hbHM6IHRoaXMuYXV0b2ZpbGxEZWNpbWFscyxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0sIDEpO1xuICB9XG5cbiAgZm9ybWF0SW5wdXQoZWxlbWVudDogSFRNTElucHV0RWxlbWVudCwgZmluYWxGb3JtYXR0aW5nOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgY3Vyc29yUG9zID0gZWxlbWVudC5zZWxlY3Rpb25TdGFydDtcbiAgICBjb25zdCBsZW5ndGggPSBlbGVtZW50LnZhbHVlLmxlbmd0aDtcbiAgICBjb25zdCBzZXRDdXJzb3IgPSB0aGlzLmRpc3BsYXlWYWx1ZSAhPT0gZWxlbWVudC52YWx1ZTtcbiAgICBjb25zdCB0ZXh0Rm9ybWF0dGVkID0gdGhpcy5udW1iZXJGb3JtYXRTZXJ2aWNlLmZvcm1hdE51bWJlcihlbGVtZW50LnZhbHVlLCB7XG4gICAgICBkZWNpbWFsUGxhY2VzOiB0aGlzLmRlY2ltYWxQbGFjZXMsXG4gICAgICBmaW5hbEZvcm1hdHRpbmcsXG4gICAgICBhdXRvZmlsbERlY2ltYWxzOiB0aGlzLmF1dG9maWxsRGVjaW1hbHMsXG4gICAgfSk7XG5cbiAgICAvLyBzcGVjaWFsIGhhbmRsaW5nIHRvIG1vdmUgdW5pdCBzeW1ib2wgYWxvbmcgd2l0aCBkaXNwbGF5IHZhbHVlXG4gICAgaWYgKHRoaXMudGV4dEFsaWduID09PSAnbGVmdCcgJiYgdGhpcy51bml0UG9zaXRpb24gPT09ICdyaWdodCcpIHtcbiAgICAgIGNvbnN0IGlucHV0U3R5bGVzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCwgbnVsbCk7XG4gICAgICB0aGlzLnVuaXRTcGFuLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICAgIHRoaXMudW5pdFNwYW4uc3R5bGUubWFyZ2luVG9wID0gaW5wdXRTdHlsZXMuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXRvcC13aWR0aCcpO1xuICAgICAgdGhpcy51bml0U3Bhbi5zdHlsZS5wYWRkaW5nVG9wID0gaW5wdXRTdHlsZXMuZ2V0UHJvcGVydHlWYWx1ZSgncGFkZGluZy10b3AnKTtcbiAgICAgIHRoaXMudW5pdFNwYW4uc3R5bGUucGFkZGluZ0JvdHRvbSA9IGlucHV0U3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ3BhZGRpbmctYm90dG9tJyk7XG5cbiAgICAgIGlmICghdGhpcy50ZXh0U3Bhbikge1xuICAgICAgICB0aGlzLnRleHRTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMudGV4dFNwYW4pO1xuICAgICAgICB0aGlzLnRleHRTcGFuLnN0eWxlLmZvbnQgPSBpbnB1dFN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCdmb250Jyk7XG4gICAgICAgIHRoaXMudGV4dFNwYW4uc3R5bGUuZm9udFNpemUgPSBpbnB1dFN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCdmb250LXNpemUnKTtcbiAgICAgICAgdGhpcy50ZXh0U3Bhbi5zdHlsZS5oZWlnaHQgPSAnYXV0byc7XG4gICAgICAgIHRoaXMudGV4dFNwYW4uc3R5bGUud2lkdGggPSAnYXV0byc7XG4gICAgICAgIHRoaXMudGV4dFNwYW4uc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgICB0aGlzLnRleHRTcGFuLnN0eWxlLnRvcCA9ICcwJztcbiAgICAgICAgdGhpcy50ZXh0U3Bhbi5zdHlsZS53aGl0ZVNwYWNlID0gJ25vLXdyYXAnO1xuICAgICAgICB0aGlzLnRleHRTcGFuLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgIH1cbiAgICAgIHRoaXMudGV4dFNwYW4uaW5uZXJIVE1MID0gdGV4dEZvcm1hdHRlZDtcbiAgICAgIGNvbnN0IHdpZHRoID0gTWF0aC5taW4odGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggLSB0aGlzLnVuaXRTcGFuLmNsaWVudFdpZHRoLCBNYXRoLmNlaWwodGhpcy50ZXh0U3Bhbi5jbGllbnRXaWR0aCkpO1xuICAgICAgdGhpcy51bml0U3Bhbi5zdHlsZS5sZWZ0ID0gd2lkdGggKyAncHgnO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlSW5wdXQodGV4dEZvcm1hdHRlZCk7XG4gICAgaWYgKHNldEN1cnNvcikge1xuICAgICAgZWxlbWVudC5zZWxlY3Rpb25TdGFydCA9IGVsZW1lbnQuc2VsZWN0aW9uRW5kID0gTWF0aC5tYXgoY3Vyc29yUG9zICsgZWxlbWVudC52YWx1ZS5sZW5ndGggLSBsZW5ndGgsIDApO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUlucHV0KHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5fbnVtZXJpY1ZhbHVlID0gcGFyc2VGbG9hdChcbiAgICAgIHRoaXMubnVtYmVyRm9ybWF0U2VydmljZS5zdHJpcCh2YWx1ZSwgeyBkZWNpbWFsUGxhY2VzOiB0aGlzLmRlY2ltYWxQbGFjZXMgfSkucmVwbGFjZSh0aGlzLm51bWJlckZvcm1hdFNlcnZpY2UuZGVjaW1hbFNlcGFyYXRvciwgJy4nKSxcbiAgICApO1xuICAgIGlmICh0aGlzLl9udW1lcmljVmFsdWUgIT09IHRoaXMucm91bmRPclRydW5jYXRlKHRoaXMub3JpZ2luYWxWYWx1ZSkpIHtcbiAgICAgIHRoaXMub3JpZ2luYWxWYWx1ZSA9IHRoaXMuX251bWVyaWNWYWx1ZTtcbiAgICAgIHRoaXMubnVtZXJpY1ZhbHVlQ2hhbmdlZC5lbWl0KHRoaXMuX251bWVyaWNWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0VmFsdWVGb3JGb3JtQ29udHJvbCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHRoaXMuZm9ybWF0SW5wdXQodGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQsIGZhbHNlKTtcbiAgICBpZiAoaXNOYU4odGhpcy5fbnVtZXJpY1ZhbHVlKSkge1xuICAgICAgLy8gUmV0dXJuIHVuZGVmaW5lZCBpbnN0ZWFkIG9mIE5hTiB0byBzdXBwb3J0IHRoZSBkZWZhdWx0IHJlcXVpcmVkIHZhbGlkYXRvci5cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX251bWVyaWNWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgaW5qZWN0VW5pdFN5bWJvbCgpOiB2b2lkIHtcbiAgICAvLyBOZWVkIHRvIGluamVjdCB0aGUgdW5pdCBzeW1ib2wgd2hlbiB0aGUgaW5wdXQgZWxlbWVudCB3aWR0aCBpcyBzZXQgdG8gaXRzIGFjdHVhbCB2YWx1ZSxcbiAgICAvLyBvdGhlcndpc2UgdGhlIGljb24gd29udCBzaG93IGluIHRoZSBjb3JyZWN0IHBvc2l0aW9uXG4gICAgaWYgKCEhdGhpcy51bml0ICYmICF0aGlzLnVuaXRTcGFuICYmIHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICE9PSAwKSB7XG4gICAgICAvLyBHZXQgdGhlIGlucHV0IHdyYXBwZXIgYW5kIGFwcGx5IG5lY2Vzc2FyeSBzdHlsZXNcbiAgICAgIGNvbnN0IGlucHV0V3JhcHBlciA9IHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZTtcblxuICAgICAgLy8gQ3JlYXRlIHRoZSBzcGFuIHdpdGggdW5pdCBzeW1ib2wgYW5kIGFwcGx5IG5lY2Vzc2FyeSBzdHlsZXNcbiAgICAgIHRoaXMudW5pdFNwYW4gPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcblxuICAgICAgaWYgKHRoaXMudW5pdFBvc2l0aW9uID09PSAnbGVmdCcpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy51bml0U3BhbiwgJ21hdFByZWZpeCcsICcnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnVuaXRTcGFuLCAncGFkZGluZy1yaWdodCcsICc1cHgnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUoaW5wdXRXcmFwcGVyLCB0aGlzLnVuaXRTcGFuLCBpbnB1dFdyYXBwZXIuY2hpbGRyZW5bMF0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy51bml0U3BhbiwgJ21hdFN1ZmZpeCcsICcnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnVuaXRTcGFuLCAncGFkZGluZy1sZWZ0JywgJzVweCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGlucHV0V3JhcHBlciwgdGhpcy51bml0U3Bhbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gZG8gbm90IGRpc3BsYXkgdW5pdCBzeW1ib2wgaWYgdGhlIHVuaXQgc2hvdWxkIG1vdmUgYWxvbmcgZGlzcGxheSB2YWx1ZVxuICAgIGlmICghIXRoaXMudW5pdFNwYW4gJiYgdGhpcy50ZXh0QWxpZ24gPT09ICdsZWZ0JyAmJiB0aGlzLnVuaXRQb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xuICAgICAgaWYgKE51bWJlckZvcm1hdFNlcnZpY2UudmFsdWVJc1NldCh0aGlzLmRpc3BsYXlWYWx1ZSkpIHtcbiAgICAgICAgdGhpcy51bml0U3Bhbi5zdHlsZS5kaXNwbGF5ID0gJ3Vuc2V0JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudW5pdFNwYW4uc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gYWx3YXlzIHJlc2V0IHVuaXQgc3ltYm9sXG4gICAgaWYgKCEhdGhpcy51bml0U3Bhbikge1xuICAgICAgdGhpcy51bml0U3Bhbi50ZXh0Q29udGVudCA9IHRoaXMudW5pdDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRldGFjaExpc3RlbmVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlucHV0Q2hhbmdlTGlzdGVuZXIpIHtcbiAgICAgIHRoaXMuaW5wdXRDaGFuZ2VMaXN0ZW5lcigpO1xuICAgICAgZGVsZXRlIHRoaXMuaW5wdXRDaGFuZ2VMaXN0ZW5lcjtcbiAgICB9XG4gICAgaWYgKHRoaXMua2V5ZG93bkxpc3RlbmVyKSB7XG4gICAgICB0aGlzLmtleWRvd25MaXN0ZW5lcigpO1xuICAgICAgZGVsZXRlIHRoaXMua2V5ZG93bkxpc3RlbmVyO1xuICAgIH1cbiAgICBpZiAodGhpcy5rZXl1cExpc3RlbmVyKSB7XG4gICAgICB0aGlzLmtleXVwTGlzdGVuZXIoKTtcbiAgICAgIGRlbGV0ZSB0aGlzLmtleXVwTGlzdGVuZXI7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByb3VuZE9yVHJ1bmNhdGUodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgbWV0aG9kID0gdGhpcy5yb3VuZFZhbHVlID8gJ3JvdW5kJyA6IHZhbHVlIDwgMCA/ICdjZWlsJyA6ICdmbG9vcic7XG4gICAgcmV0dXJuIE1hdGhbbWV0aG9kXSh2YWx1ZSAqIE1hdGgucG93KDEwLCB0aGlzLmRlY2ltYWxQbGFjZXMpKSAvIE1hdGgucG93KDEwLCB0aGlzLmRlY2ltYWxQbGFjZXMpO1xuICB9XG59XG4iXX0=
275
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy1maWVsZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvbWF0ZXJpYWwtYWRkb25zL21hdGVyaWFsLWFkZG9ucy9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjLyIsInNvdXJjZXMiOlsibGliL251bWVyaWMtZmllbGQvbnVtZXJpYy1maWVsZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlELE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQztBQUN2QixNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUM7QUFDekIsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO0FBQ3ZCLE1BQU0sNkJBQTZCLEdBQUcsRUFBRSxDQUFDO0FBQ3pDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFrQmxELE1BQU0sT0FBTyxxQkFBcUI7SUE4QmhDLFlBQW9CLFFBQW1CLEVBQVUsT0FBbUIsRUFBVSxtQkFBd0M7UUFBbEcsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFBVSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBN0JsRyxjQUFTLEdBQXFCLE9BQU8sQ0FBQztRQUNsQyxrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNkLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDcEIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3JD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Q0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDeEUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRyxDQUFDOzs7WUE3UkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLElBQUksRUFBRTtvQkFDSixvQkFBb0IsRUFBRSx1QkFBdUI7b0JBQzdDLFVBQVUsRUFBRSxvQ0FBb0M7b0JBQ2hELFNBQVMsRUFBRSxvQ0FBb0M7b0JBQy9DLFFBQVEsRUFBRSxhQUFhO2lCQUN4QjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1Q7d0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQzt3QkFDcEQsS0FBSyxFQUFFLElBQUk7cUJBQ1o7aUJBQ0Y7YUFDRjs7O1lBMUJDLFNBQVM7WUFQVCxVQUFVO1lBVUgsbUJBQW1COzs7d0JBeUJ6QixLQUFLLFNBQUMsV0FBVzs0QkFDakIsS0FBSyxTQUFDLGVBQWU7eUJBQ3JCLEtBQUssU0FBQyxtQkFBbUI7K0JBQ3pCLEtBQUssU0FBQyxrQkFBa0I7bUJBQ3hCLEtBQUssU0FBQyxNQUFNOzJCQUNaLEtBQUssU0FBQyxjQUFjO2tDQUNwQixNQUFNLFNBQUMsb0JBQW9COzJCQVMzQixLQUFLLFNBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMCBQb3JzY2hlIEluZm9ybWF0aWsuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7XG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE51bWJlckZvcm1hdFNlcnZpY2UgfSBmcm9tICcuL251bWJlci1mb3JtYXQuc2VydmljZSc7XG5cbmNvbnN0IEJBQ0tfS0VZQ09ERSA9IDg7XG5jb25zdCBTUEFDRV9LRVlDT0RFID0gMzI7XG5jb25zdCBERUxfS0VZQ09ERSA9IDQ2O1xuY29uc3QgQ09OVFJPTF9LRVlDT0RFU19VUFBFUl9CT1JERVIgPSA0NjtcbmNvbnN0IE9USEVSX0NPTlRST0xfS0VZUyA9IG5ldyBTZXQoWzIyNCwgOTEsIDkzXSk7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1ttYWROdW1lcmljRmllbGRdJyxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MudGV4dC1yaWdodF0nOiAndGV4dEFsaWduID09PSBcInJpZ2h0XCInLFxuICAgICcoY2hhbmdlKSc6ICdvbkNoYW5nZShnZXRWYWx1ZUZvckZvcm1Db250cm9sKCkpJyxcbiAgICAnKGlucHV0KSc6ICdvbkNoYW5nZShnZXRWYWx1ZUZvckZvcm1Db250cm9sKCkpJyxcbiAgICAnKGJsdXIpJzogJ29uVG91Y2hlZCgpJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOdW1lcmljRmllbGREaXJlY3RpdmUpLCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOdW1lcmljRmllbGREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3Q2hlY2tlZCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASW5wdXQoJ3RleHRBbGlnbicpIHRleHRBbGlnbjogJ3JpZ2h0JyB8ICdsZWZ0JyA9ICdyaWdodCc7XG4gIEBJbnB1dCgnZGVjaW1hbFBsYWNlcycpIGRlY2ltYWxQbGFjZXMgPSAyO1xuICBASW5wdXQoJ3JvdW5kRGlzcGxheVZhbHVlJykgcm91bmRWYWx1ZSA9IGZhbHNlO1xuICBASW5wdXQoJ2F1dG9maWxsRGVjaW1hbHMnKSBhdXRvZmlsbERlY2ltYWxzID0gZmFsc2U7XG4gIEBJbnB1dCgndW5pdCcpIHVuaXQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoJ3VuaXRQb3NpdGlvbicpIHVuaXRQb3NpdGlvbjogJ3JpZ2h0JyB8ICdsZWZ0JyA9ICdyaWdodCc7XG4gIEBPdXRwdXQoJ251bWVyaWNWYWx1ZUNoYW5nZScpIG51bWVyaWNWYWx1ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBwcml2YXRlIGRpc3BsYXlWYWx1ZSA9ICcnO1xuICBwcml2YXRlIG9yaWdpbmFsVmFsdWUgPSBOYU47XG4gIHByaXZhdGUgX251bWVyaWNWYWx1ZTogbnVtYmVyO1xuICBwcml2YXRlIGlucHV0Q2hhbmdlTGlzdGVuZXI6ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUga2V5dXBMaXN0ZW5lcjogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBrZXlkb3duTGlzdGVuZXI6ICgpID0+IHZvaWQ7XG5cbiAgQElucHV0KCdudW1lcmljVmFsdWUnKVxuICBzZXQgbnVtZXJpY1ZhbHVlKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5fbnVtZXJpY1ZhbHVlICE9PSB2YWx1ZSAmJiAhKGlzTmFOKHRoaXMuX251bWVyaWNWYWx1ZSkgJiYgKGlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA9PT0gbnVsbCkpKSB7XG4gICAgICB0aGlzLm9yaWdpbmFsVmFsdWUgPSB2YWx1ZTtcbiAgICAgIC8vIERvbid0IHJvdW5kT3JUcnVuY2F0ZSBpZiB2YWx1ZSB3YXMgc2V0IHRvIGVtcHR5IG90aGVyd2lzZSBpbnB1dCB2YWx1ZSB3aWxsIGJlIHNldCB0byAwIGluc3RlYWQgb2YgZW1wdHlcbiAgICAgIC8vIHdoaWNoIGhhcHBlbnMgd2hlbiBhbiBpbnB1dCBpcyBiZWluZyByZXNldFxuICAgICAgdGhpcy5fbnVtZXJpY1ZhbHVlID0gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/IHZhbHVlIDogdGhpcy5yb3VuZE9yVHJ1bmNhdGUodmFsdWUpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgICB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlZCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdW5pdFNwYW46IEhUTUxTcGFuRWxlbWVudDtcbiAgcHJpdmF0ZSB0ZXh0U3BhbjogSFRNTFNwYW5FbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBpbnB1dEVsOiBFbGVtZW50UmVmLCBwcml2YXRlIG51bWJlckZvcm1hdFNlcnZpY2U6IE51bWJlckZvcm1hdFNlcnZpY2UpIHt9XG5cbiAgLyogQ29udHJvbCBWYWx1ZXMgQWNjZXNzb3IgU3R1ZmYgYmVsb3cgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIG9uVG91Y2hlZDogYW55ID0gKCkgPT4ge307XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKCk6IHZvaWQge1xuICAgIC8vIERvbnQgbmVlZCB0byBpbXBsZW1lbnQgc2luY2UgaXRzIGp1c3QgYSBkaXJlY3RpdmVcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMubnVtZXJpY1ZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvKiBuZWVkcyB0byBiZSBwYXJzZWQgYXMgbnVtYmVyIGV4cGxpY2l0bHkgYXMgaXQgY29tZXMgYXMgc3RyaW5nIGZyb20gdXNlciBpbnB1dCAqL1xuICAgIHRoaXMuZGVjaW1hbFBsYWNlcyA9IHBhcnNlSW50KHRoaXMuZGVjaW1hbFBsYWNlcy50b1N0cmluZygpLCAxMCk7XG5cbiAgICB0aGlzLmlucHV0Q2hhbmdlTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudCwgJ2JsdXInLCBldmVudCA9PiB7XG4gICAgICB0aGlzLmZvcm1hdElucHV0KGV2ZW50LnRhcmdldCwgdHJ1ZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmtleXVwTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudCwgJ2tleXVwJywgZXZlbnQgPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IEJBQ0tfS0VZQ09ERSB8fCAoZXZlbnQua2V5Q29kZSA+PSBDT05UUk9MX0tFWUNPREVTX1VQUEVSX0JPUkRFUiAmJiAhT1RIRVJfQ09OVFJPTF9LRVlTLmhhcyhldmVudC5rZXlDb2RlKSkpIHtcbiAgICAgICAgdGhpcy5mb3JtYXRJbnB1dChldmVudC50YXJnZXQsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMua2V5ZG93bkxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQsICdrZXlkb3duJywgZXZlbnQgPT4ge1xuICAgICAgY29uc3QgdmFsdWU6IHN0cmluZyA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5udW1iZXJGb3JtYXRTZXJ2aWNlLmFsbG93ZWRLZXlzLmluY2x1ZGVzKGV2ZW50LmtleSkgfHxcbiAgICAgICAgKGV2ZW50LmtleUNvZGUgPD0gQ09OVFJPTF9LRVlDT0RFU19VUFBFUl9CT1JERVIgJiYgZXZlbnQua2V5Q29kZSA+IDAgJiYgZXZlbnQua2V5Q29kZSAhPT0gU1BBQ0VfS0VZQ09ERSkgfHxcbiAgICAgICAgZXZlbnQubWV0YUtleSB8fFxuICAgICAgICBldmVudC5jdHJsS2V5IHx8XG4gICAgICAgIGV2ZW50LmFsdEtleVxuICAgICAgKSB7XG4gICAgICAgIC8qIGFsbG93IG5lZ2F0aXZlIHNpZ24gb25seSBhcyBmaXJzdCBjaGFyYWN0ZXIgYW5kIG5vbmUgZXhpc3RzIG91dHNpZGUgb2YgdGV4dCBzZWxlY3Rpb24gKi9cbiAgICAgICAgY29uc3QgaW5kZXhOZWdhdGl2ZVNpZ24gPSB2YWx1ZS5pbmRleE9mKE51bWJlckZvcm1hdFNlcnZpY2UuTkVHQVRJVkUpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXZlbnQua2V5ID09PSBOdW1iZXJGb3JtYXRTZXJ2aWNlLk5FR0FUSVZFICYmXG4gICAgICAgICAgKGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCA+IDAgfHwgaW5kZXhOZWdhdGl2ZVNpZ24gPiAtMSkgJiZcbiAgICAgICAgICAoZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0ID09PSBldmVudC50YXJnZXQuc2VsZWN0aW9uRW5kIHx8XG4gICAgICAgICAgICAhKGluZGV4TmVnYXRpdmVTaWduID49IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCAmJiBpbmRleE5lZ2F0aXZlU2lnbiA8PSBldmVudC50YXJnZXQuc2VsZWN0aW9uRW5kKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogbm8gZHVwbGljYXRlIGRlY2ltYWwgc2VwYXJhdG9ycyAqL1xuICAgICAgICBjb25zdCBpbmRleERlY2ltYWxTZXAgPSB2YWx1ZS5pbmRleE9mKHRoaXMubnVtYmVyRm9ybWF0U2VydmljZS5kZWNpbWFsU2VwYXJhdG9yKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGV2ZW50LmtleSA9PT0gdGhpcy5udW1iZXJGb3JtYXRTZXJ2aWNlLmRlY2ltYWxTZXBhcmF0b3IgJiZcbiAgICAgICAgICAoaW5kZXhEZWNpbWFsU2VwID4gLTEgfHwgdGhpcy5kZWNpbWFsUGxhY2VzID09PSAwKSAmJlxuICAgICAgICAgIChldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgPT09IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25FbmQgfHxcbiAgICAgICAgICAgICEoaW5kZXhEZWNpbWFsU2VwID49IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCAmJiBpbmRleERlY2ltYWxTZXAgPD0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCkpXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHByZXZlbnQgdG9vIG1hbnkgZGVjaW1hbCBwbGFjZXMgKi9cbiAgICAgICAgaWYgKFxuICAgICAgICAgIE51bWJlckZvcm1hdFNlcnZpY2UuTlVNQkVSUy5pbmNsdWRlcyhldmVudC5rZXkpICYmXG4gICAgICAgICAgaW5kZXhEZWNpbWFsU2VwID4gLTEgJiZcbiAgICAgICAgICBpbmRleERlY2ltYWxTZXAgPCBldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgJiZcbiAgICAgICAgICBldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgPT09IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25FbmQgJiZcbiAgICAgICAgICB2YWx1ZS5sZW5ndGggPiBpbmRleERlY2ltYWxTZXAgKyB0aGlzLmRlY2ltYWxQbGFjZXNcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogd2hlbiBkZWxldGluZyB0aG91c2FuZCBzZXBhcmF0b3IsIHJlbW92ZSB0aGUgZGlnaXQgYmVmb3JlIG9yIGFmdGVyIGl0ICovXG4gICAgICAgIGNvbnN0IGN1cnNvclN0YXJ0ID0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0O1xuXG4gICAgICAgIGlmIChjdXJzb3JTdGFydCA9PT0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCkge1xuICAgICAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSBCQUNLX0tFWUNPREUgJiYgdmFsdWUuc3Vic3RyKGN1cnNvclN0YXJ0IC0gMSwgMSkgPT09IHRoaXMubnVtYmVyRm9ybWF0U2VydmljZS5ncm91cGluZ1NlcGFyYXRvcikge1xuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKDAsIGN1cnNvclN0YXJ0IC0gMikgKyB2YWx1ZS5zdWJzdHJpbmcoY3Vyc29yU3RhcnQgLSAxLCB2YWx1ZS5sZW5ndGgpO1xuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0ID0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCA9IGN1cnNvclN0YXJ0IC0gMTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleUNvZGUgPT09IERFTF9LRVlDT0RFICYmIHZhbHVlLnN1YnN0cihjdXJzb3JTdGFydCwgMSkgPT09IHRoaXMubnVtYmVyRm9ybWF0U2VydmljZS5ncm91cGluZ1NlcGFyYXRvcikge1xuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKDAsIGN1cnNvclN0YXJ0ICsgMSkgKyB2YWx1ZS5zdWJzdHJpbmcoY3Vyc29yU3RhcnQgKyAyLCB2YWx1ZS5sZW5ndGgpO1xuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0ID0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCA9IGN1cnNvclN0YXJ0ICsgMTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vcmlnaW5hbFZhbHVlID0gTmFOO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRldGFjaExpc3RlbmVyKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5pbmplY3RVbml0U3ltYm9sKCk7XG4gIH1cblxuICBoYW5kbGVJbnB1dENoYW5nZWQoKTogdm9pZCB7XG4gICAgLy8gQ2FsbCBpbiBzZXQgdGltZW91dCB0byBhdm9pZCBFeHByZXNzaW9uIGhhcyBjaGFuZ2VkIGFmdGVyIGl0IGhhcyBiZWVuIGNoZWNrZWQgZXJyb3IuXG4gICAgLy8gU29tZXRpbWVzIHRoZSB2YWx1ZSBjaGFuZ2VzIGJlY2F1c2Ugd2UgY3V0IG9mZiBkZWNpbWFsIHBsYWNlc1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVJbnB1dChcbiAgICAgICAgdGhpcy5udW1iZXJGb3JtYXRTZXJ2aWNlLmZvcm1hdCh0aGlzLl9udW1lcmljVmFsdWUsIHtcbiAgICAgICAgICBkZWNpbWFsUGxhY2VzOiB0aGlzLmRlY2ltYWxQbGFjZXMsXG4gICAgICAgICAgZmluYWxGb3JtYXR0aW5nOiBmYWxzZSxcbiAgICAgICAgICBhdXRvZmlsbERlY2ltYWxzOiB0aGlzLmF1dG9maWxsRGVjaW1hbHMsXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9LCAxKTtcbiAgfVxuXG4gIGZvcm1hdElucHV0KGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQsIGZpbmFsRm9ybWF0dGluZzogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IGN1cnNvclBvcyA9IGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgY29uc3QgbGVuZ3RoID0gZWxlbWVudC52YWx1ZS5sZW5ndGg7XG4gICAgY29uc3Qgc2V0Q3Vyc29yID0gdGhpcy5kaXNwbGF5VmFsdWUgIT09IGVsZW1lbnQudmFsdWU7XG4gICAgY29uc3QgdGV4dEZvcm1hdHRlZCA9IHRoaXMubnVtYmVyRm9ybWF0U2VydmljZS5mb3JtYXROdW1iZXIoZWxlbWVudC52YWx1ZSwge1xuICAgICAgZGVjaW1hbFBsYWNlczogdGhpcy5kZWNpbWFsUGxhY2VzLFxuICAgICAgZmluYWxGb3JtYXR0aW5nLFxuICAgICAgYXV0b2ZpbGxEZWNpbWFsczogdGhpcy5hdXRvZmlsbERlY2ltYWxzLFxuICAgIH0pO1xuXG4gICAgLy8gc3BlY2lhbCBoYW5kbGluZyB0byBtb3ZlIHVuaXQgc3ltYm9sIGFsb25nIHdpdGggZGlzcGxheSB2YWx1ZVxuICAgIGlmICh0aGlzLnRleHRBbGlnbiA9PT0gJ2xlZnQnICYmIHRoaXMudW5pdFBvc2l0aW9uID09PSAncmlnaHQnKSB7XG4gICAgICBjb25zdCBpbnB1dFN0eWxlcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQsIG51bGwpO1xuICAgICAgdGhpcy51bml0U3Bhbi5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICB0aGlzLnVuaXRTcGFuLnN0eWxlLm1hcmdpblRvcCA9IGlucHV0U3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci10b3Atd2lkdGgnKTtcbiAgICAgIHRoaXMudW5pdFNwYW4uc3R5bGUucGFkZGluZ1RvcCA9IGlucHV0U3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ3BhZGRpbmctdG9wJyk7XG4gICAgICB0aGlzLnVuaXRTcGFuLnN0eWxlLnBhZGRpbmdCb3R0b20gPSBpbnB1dFN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLWJvdHRvbScpO1xuXG4gICAgICBpZiAoIXRoaXMudGV4dFNwYW4pIHtcbiAgICAgICAgdGhpcy50ZXh0U3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLnRleHRTcGFuKTtcbiAgICAgICAgdGhpcy50ZXh0U3Bhbi5zdHlsZS5mb250ID0gaW5wdXRTdHlsZXMuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udCcpO1xuICAgICAgICB0aGlzLnRleHRTcGFuLnN0eWxlLmZvbnRTaXplID0gaW5wdXRTdHlsZXMuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC1zaXplJyk7XG4gICAgICAgIHRoaXMudGV4dFNwYW4uc3R5bGUuaGVpZ2h0ID0gJ2F1dG8nO1xuICAgICAgICB0aGlzLnRleHRTcGFuLnN0eWxlLndpZHRoID0gJ2F1dG8nO1xuICAgICAgICB0aGlzLnRleHRTcGFuLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICAgICAgdGhpcy50ZXh0U3Bhbi5zdHlsZS50b3AgPSAnMCc7XG4gICAgICAgIHRoaXMudGV4dFNwYW4uc3R5bGUud2hpdGVTcGFjZSA9ICduby13cmFwJztcbiAgICAgICAgdGhpcy50ZXh0U3Bhbi5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgICB9XG4gICAgICB0aGlzLnRleHRTcGFuLmlubmVySFRNTCA9IHRleHRGb3JtYXR0ZWQ7XG4gICAgICBjb25zdCB3aWR0aCA9IE1hdGgubWluKHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoIC0gdGhpcy51bml0U3Bhbi5jbGllbnRXaWR0aCwgTWF0aC5jZWlsKHRoaXMudGV4dFNwYW4uY2xpZW50V2lkdGgpKTtcbiAgICAgIHRoaXMudW5pdFNwYW4uc3R5bGUubGVmdCA9IHdpZHRoICsgJ3B4JztcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZUlucHV0KHRleHRGb3JtYXR0ZWQpO1xuICAgIGlmIChzZXRDdXJzb3IpIHtcbiAgICAgIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPSBlbGVtZW50LnNlbGVjdGlvbkVuZCA9IE1hdGgubWF4KGN1cnNvclBvcyArIGVsZW1lbnQudmFsdWUubGVuZ3RoIC0gbGVuZ3RoLCAwKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVJbnB1dCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuX251bWVyaWNWYWx1ZSA9IHBhcnNlRmxvYXQoXG4gICAgICB0aGlzLm51bWJlckZvcm1hdFNlcnZpY2Uuc3RyaXAodmFsdWUsIHsgZGVjaW1hbFBsYWNlczogdGhpcy5kZWNpbWFsUGxhY2VzIH0pLnJlcGxhY2UodGhpcy5udW1iZXJGb3JtYXRTZXJ2aWNlLmRlY2ltYWxTZXBhcmF0b3IsICcuJyksXG4gICAgKTtcbiAgICBpZiAodGhpcy5fbnVtZXJpY1ZhbHVlICE9PSB0aGlzLnJvdW5kT3JUcnVuY2F0ZSh0aGlzLm9yaWdpbmFsVmFsdWUpKSB7XG4gICAgICB0aGlzLm9yaWdpbmFsVmFsdWUgPSB0aGlzLl9udW1lcmljVmFsdWU7XG4gICAgICB0aGlzLm51bWVyaWNWYWx1ZUNoYW5nZWQuZW1pdCh0aGlzLl9udW1lcmljVmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGdldFZhbHVlRm9yRm9ybUNvbnRyb2woKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICB0aGlzLmZvcm1hdElucHV0KHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LCBmYWxzZSk7XG4gICAgaWYgKGlzTmFOKHRoaXMuX251bWVyaWNWYWx1ZSkpIHtcbiAgICAgIC8vIFJldHVybiB1bmRlZmluZWQgaW5zdGVhZCBvZiBOYU4gdG8gc3VwcG9ydCB0aGUgZGVmYXVsdCByZXF1aXJlZCB2YWxpZGF0b3IuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9udW1lcmljVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGluamVjdFVuaXRTeW1ib2woKTogdm9pZCB7XG4gICAgLy8gTmVlZCB0byBpbmplY3QgdGhlIHVuaXQgc3ltYm9sIHdoZW4gdGhlIGlucHV0IGVsZW1lbnQgd2lkdGggaXMgc2V0IHRvIGl0cyBhY3R1YWwgdmFsdWUsXG4gICAgLy8gb3RoZXJ3aXNlIHRoZSBpY29uIHdvbnQgc2hvdyBpbiB0aGUgY29ycmVjdCBwb3NpdGlvblxuICAgIGlmICghIXRoaXMudW5pdCAmJiAhdGhpcy51bml0U3BhbiAmJiB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAhPT0gMCkge1xuICAgICAgLy8gR2V0IHRoZSBpbnB1dCB3cmFwcGVyIGFuZCBhcHBseSBuZWNlc3Nhcnkgc3R5bGVzXG4gICAgICBjb25zdCBpbnB1dFdyYXBwZXIgPSB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGU7XG5cbiAgICAgIC8vIENyZWF0ZSB0aGUgc3BhbiB3aXRoIHVuaXQgc3ltYm9sIGFuZCBhcHBseSBuZWNlc3Nhcnkgc3R5bGVzXG4gICAgICB0aGlzLnVuaXRTcGFuID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG5cbiAgICAgIGlmICh0aGlzLnVuaXRQb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMudW5pdFNwYW4sICdtYXRQcmVmaXgnLCAnJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy51bml0U3BhbiwgJ3BhZGRpbmctcmlnaHQnLCAnNXB4Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKGlucHV0V3JhcHBlciwgdGhpcy51bml0U3BhbiwgaW5wdXRXcmFwcGVyLmNoaWxkcmVuWzBdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMudW5pdFNwYW4sICdtYXRTdWZmaXgnLCAnJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy51bml0U3BhbiwgJ3BhZGRpbmctbGVmdCcsICc1cHgnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChpbnB1dFdyYXBwZXIsIHRoaXMudW5pdFNwYW4pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGRvIG5vdCBkaXNwbGF5IHVuaXQgc3ltYm9sIGlmIHRoZSB1bml0IHNob3VsZCBtb3ZlIGFsb25nIGRpc3BsYXkgdmFsdWVcbiAgICBpZiAoISF0aGlzLnVuaXRTcGFuICYmIHRoaXMudGV4dEFsaWduID09PSAnbGVmdCcgJiYgdGhpcy51bml0UG9zaXRpb24gPT09ICdyaWdodCcpIHtcbiAgICAgIGlmIChOdW1iZXJGb3JtYXRTZXJ2aWNlLnZhbHVlSXNTZXQodGhpcy5kaXNwbGF5VmFsdWUpKSB7XG4gICAgICAgIHRoaXMudW5pdFNwYW4uc3R5bGUuZGlzcGxheSA9ICd1bnNldCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnVuaXRTcGFuLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIGFsd2F5cyByZXNldCB1bml0IHN5bWJvbFxuICAgIGlmICghIXRoaXMudW5pdFNwYW4pIHtcbiAgICAgIHRoaXMudW5pdFNwYW4udGV4dENvbnRlbnQgPSB0aGlzLnVuaXQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZXRhY2hMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnB1dENoYW5nZUxpc3RlbmVyKSB7XG4gICAgICB0aGlzLmlucHV0Q2hhbmdlTGlzdGVuZXIoKTtcbiAgICAgIGRlbGV0ZSB0aGlzLmlucHV0Q2hhbmdlTGlzdGVuZXI7XG4gICAgfVxuICAgIGlmICh0aGlzLmtleWRvd25MaXN0ZW5lcikge1xuICAgICAgdGhpcy5rZXlkb3duTGlzdGVuZXIoKTtcbiAgICAgIGRlbGV0ZSB0aGlzLmtleWRvd25MaXN0ZW5lcjtcbiAgICB9XG4gICAgaWYgKHRoaXMua2V5dXBMaXN0ZW5lcikge1xuICAgICAgdGhpcy5rZXl1cExpc3RlbmVyKCk7XG4gICAgICBkZWxldGUgdGhpcy5rZXl1cExpc3RlbmVyO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcm91bmRPclRydW5jYXRlKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IG1ldGhvZCA9IHRoaXMucm91bmRWYWx1ZSA/ICdyb3VuZCcgOiB2YWx1ZSA8IDAgPyAnY2VpbCcgOiAnZmxvb3InO1xuICAgIHJldHVybiBNYXRoW21ldGhvZF0odmFsdWUgKiBNYXRoLnBvdygxMCwgdGhpcy5kZWNpbWFsUGxhY2VzKSkgLyBNYXRoLnBvdygxMCwgdGhpcy5kZWNpbWFsUGxhY2VzKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,89 @@
1
+ import { ChangeDetectorRef, Component, ContentChild, EventEmitter, Input, Output, QueryList, TemplateRef, ViewChildren, } from '@angular/core';
2
+ export class BaseQuickListComponent {
3
+ constructor(changeDetectorRef) {
4
+ this.changeDetectorRef = changeDetectorRef;
5
+ this.allItems = [];
6
+ this.addLabel = 'NOT SET';
7
+ this.addPossible = true;
8
+ this.blankItem = {};
9
+ this.added = new EventEmitter();
10
+ this.removed = new EventEmitter();
11
+ }
12
+ ngOnInit() {
13
+ this.addEventFunction = this.addItem.bind(this);
14
+ if (this.minItems) {
15
+ for (let n = this.allItems.length; n < this.minItems; n++) {
16
+ this.interalAddItem();
17
+ }
18
+ }
19
+ }
20
+ ngAfterViewInit() {
21
+ setTimeout(() => this.setFocusOnAdd(), 1);
22
+ }
23
+ addItem() {
24
+ const newItem = this.interalAddItem();
25
+ if (!!newItem) {
26
+ this.added.emit(newItem);
27
+ }
28
+ }
29
+ removeItem(item) {
30
+ if (this.isDeleteAllowed()) {
31
+ this.allItems.splice(this.allItems.indexOf(item), 1);
32
+ this.removed.emit(item);
33
+ }
34
+ }
35
+ setFocusOnAdd() {
36
+ this.rowCountFocus = this.itemRows.length;
37
+ this.itemRows.changes.subscribe((els) => {
38
+ if (els.length > this.rowCountFocus && !!els.last) {
39
+ const firstFocusable = els.last.nativeElement.querySelector("button, a, input, select, textarea, [tabindex]:not([tabindex='-1'])");
40
+ if (firstFocusable) {
41
+ firstFocusable.focus();
42
+ }
43
+ }
44
+ this.rowCountFocus = els.length;
45
+ });
46
+ }
47
+ isAddAllowed() {
48
+ return this.addPossible && (!this.maxItems || this.allItems.length < this.maxItems);
49
+ }
50
+ isDeleteAllowed() {
51
+ return !this.minItems || this.allItems.length > this.minItems;
52
+ }
53
+ interalAddItem() {
54
+ if (this.isAddAllowed()) {
55
+ const newItem = Object.assign({}, this.blankItem);
56
+ // creates ids in the form of "n5kdz1pljl8"
57
+ newItem.id = Math.random()
58
+ .toString(36)
59
+ .substring(2);
60
+ this.allItems.push(newItem);
61
+ this.changeDetectorRef.detectChanges();
62
+ return newItem;
63
+ }
64
+ return null;
65
+ }
66
+ }
67
+ BaseQuickListComponent.decorators = [
68
+ { type: Component, args: [{
69
+ selector: 'mad-base-quick-list',
70
+ template: ''
71
+ },] }
72
+ ];
73
+ BaseQuickListComponent.ctorParameters = () => [
74
+ { type: ChangeDetectorRef }
75
+ ];
76
+ BaseQuickListComponent.propDecorators = {
77
+ allItems: [{ type: Input }],
78
+ addLabel: [{ type: Input }],
79
+ addPossible: [{ type: Input }],
80
+ blankItem: [{ type: Input }],
81
+ readonly: [{ type: Input }],
82
+ maxItems: [{ type: Input }],
83
+ minItems: [{ type: Input }],
84
+ added: [{ type: Output }],
85
+ removed: [{ type: Output }],
86
+ itemTemplate: [{ type: ContentChild, args: [TemplateRef,] }],
87
+ itemRows: [{ type: ViewChildren, args: ['row',] }]
88
+ };
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1xdWljay1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9tYXRlcmlhbC1hZGRvbnMvbWF0ZXJpYWwtYWRkb25zL3Byb2plY3RzL21hdGVyaWFsLWFkZG9ucy9zcmMvIiwic291cmNlcyI6WyJsaWIvcXVpY2stbGlzdC9iYXNlLXF1aWNrLWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFFWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsV0FBVyxFQUNYLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQVd2QixNQUFNLE9BQU8sc0JBQXNCO0lBaUJqQyxZQUFtQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQWhCOUMsYUFBUSxHQUFHLEVBQVMsQ0FBQztRQUNyQixhQUFRLEdBQUcsU0FBUyxDQUFDO1FBQ3JCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGNBQVMsR0FBRyxFQUFTLENBQUM7UUFLckIsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7UUFDOUIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7SUFPaUIsQ0FBQztJQUU1RCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN6RCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7YUFDdkI7U0FDRjtJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUU7WUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsSUFBTztRQUNoQixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRTtZQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUEwQixFQUFFLEVBQUU7WUFDN0QsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2pELE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxxRUFBcUUsQ0FBQyxDQUFDO2dCQUNuSSxJQUFJLGNBQWMsRUFBRTtvQkFDbEIsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO2lCQUN4QjthQUNGO1lBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNoRSxDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUN2QixNQUFNLE9BQU8scUJBQVEsSUFBSSxDQUFDLFNBQVMsQ0FBRSxDQUFDO1lBQ3RDLDJDQUEyQztZQUMzQyxPQUFPLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUU7aUJBQ3ZCLFFBQVEsQ0FBQyxFQUFFLENBQUM7aUJBQ1osU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QyxPQUFPLE9BQU8sQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7O1lBcEZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQixRQUFRLEVBQUUsRUFBRTthQUViOzs7WUFyQkMsaUJBQWlCOzs7dUJBdUJoQixLQUFLO3VCQUNMLEtBQUs7MEJBQ0wsS0FBSzt3QkFDTCxLQUFLO3VCQUNMLEtBQUs7dUJBQ0wsS0FBSzt1QkFDTCxLQUFLO29CQUVMLE1BQU07c0JBQ04sTUFBTTsyQkFDTixZQUFZLFNBQUMsV0FBVzt1QkFDeEIsWUFBWSxTQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFF1aWNrTGlzdEl0ZW0ge1xuICBpZDogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYWQtYmFzZS1xdWljay1saXN0JyxcbiAgdGVtcGxhdGU6ICcnLFxuICBzdHlsZVVybHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBCYXNlUXVpY2tMaXN0Q29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgYWxsSXRlbXMgPSBbXSBhcyBUW107XG4gIEBJbnB1dCgpIGFkZExhYmVsID0gJ05PVCBTRVQnO1xuICBASW5wdXQoKSBhZGRQb3NzaWJsZSA9IHRydWU7XG4gIEBJbnB1dCgpIGJsYW5rSXRlbSA9IHt9IGFzIGFueTtcbiAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW47XG4gIEBJbnB1dCgpIG1heEl0ZW1zOiBudW1iZXI7XG4gIEBJbnB1dCgpIG1pbkl0ZW1zOiBudW1iZXI7XG5cbiAgQE91dHB1dCgpIGFkZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuICBAT3V0cHV0KCkgcmVtb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcbiAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZikgaXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkcmVuKCdyb3cnKSBpdGVtUm93czogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuXG4gIHJvd0NvdW50Rm9jdXM6IG51bWJlcjtcbiAgYWRkRXZlbnRGdW5jdGlvbjogRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3IocHVibGljIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRFdmVudEZ1bmN0aW9uID0gdGhpcy5hZGRJdGVtLmJpbmQodGhpcyk7XG4gICAgaWYgKHRoaXMubWluSXRlbXMpIHtcbiAgICAgIGZvciAobGV0IG4gPSB0aGlzLmFsbEl0ZW1zLmxlbmd0aDsgbiA8IHRoaXMubWluSXRlbXM7IG4rKykge1xuICAgICAgICB0aGlzLmludGVyYWxBZGRJdGVtKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zZXRGb2N1c09uQWRkKCksIDEpO1xuICB9XG5cbiAgYWRkSXRlbSgpOiB2b2lkIHtcbiAgICBjb25zdCBuZXdJdGVtID0gdGhpcy5pbnRlcmFsQWRkSXRlbSgpO1xuICAgIGlmICghIW5ld0l0ZW0pIHtcbiAgICAgIHRoaXMuYWRkZWQuZW1pdChuZXdJdGVtKTtcbiAgICB9XG4gIH1cblxuICByZW1vdmVJdGVtKGl0ZW06IFQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0RlbGV0ZUFsbG93ZWQoKSkge1xuICAgICAgdGhpcy5hbGxJdGVtcy5zcGxpY2UodGhpcy5hbGxJdGVtcy5pbmRleE9mKGl0ZW0pLCAxKTtcbiAgICAgIHRoaXMucmVtb3ZlZC5lbWl0KGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHNldEZvY3VzT25BZGQoKTogdm9pZCB7XG4gICAgdGhpcy5yb3dDb3VudEZvY3VzID0gdGhpcy5pdGVtUm93cy5sZW5ndGg7XG4gICAgdGhpcy5pdGVtUm93cy5jaGFuZ2VzLnN1YnNjcmliZSgoZWxzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj4pID0+IHtcbiAgICAgIGlmIChlbHMubGVuZ3RoID4gdGhpcy5yb3dDb3VudEZvY3VzICYmICEhZWxzLmxhc3QpIHtcbiAgICAgICAgY29uc3QgZmlyc3RGb2N1c2FibGUgPSBlbHMubGFzdC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJidXR0b24sIGEsIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9Jy0xJ10pXCIpO1xuICAgICAgICBpZiAoZmlyc3RGb2N1c2FibGUpIHtcbiAgICAgICAgICBmaXJzdEZvY3VzYWJsZS5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLnJvd0NvdW50Rm9jdXMgPSBlbHMubGVuZ3RoO1xuICAgIH0pO1xuICB9XG5cbiAgaXNBZGRBbGxvd2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFkZFBvc3NpYmxlICYmICghdGhpcy5tYXhJdGVtcyB8fCB0aGlzLmFsbEl0ZW1zLmxlbmd0aCA8IHRoaXMubWF4SXRlbXMpO1xuICB9XG5cbiAgaXNEZWxldGVBbGxvd2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5taW5JdGVtcyB8fCB0aGlzLmFsbEl0ZW1zLmxlbmd0aCA+IHRoaXMubWluSXRlbXM7XG4gIH1cblxuICBwcml2YXRlIGludGVyYWxBZGRJdGVtKCk6IFQge1xuICAgIGlmICh0aGlzLmlzQWRkQWxsb3dlZCgpKSB7XG4gICAgICBjb25zdCBuZXdJdGVtID0geyAuLi50aGlzLmJsYW5rSXRlbSB9O1xuICAgICAgLy8gY3JlYXRlcyBpZHMgaW4gdGhlIGZvcm0gb2YgXCJuNWtkejFwbGpsOFwiXG4gICAgICBuZXdJdGVtLmlkID0gTWF0aC5yYW5kb20oKVxuICAgICAgICAudG9TdHJpbmcoMzYpXG4gICAgICAgIC5zdWJzdHJpbmcoMik7XG4gICAgICB0aGlzLmFsbEl0ZW1zLnB1c2gobmV3SXRlbSk7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHJldHVybiBuZXdJdGVtO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,18 @@
1
+ import { ChangeDetectorRef, Component, } from '@angular/core';
2
+ import { BaseQuickListComponent } from '../base-quick-list.component';
3
+ export class QuickListCompactComponent extends BaseQuickListComponent {
4
+ constructor(changeDetectorRef) {
5
+ super(changeDetectorRef);
6
+ this.changeDetectorRef = changeDetectorRef;
7
+ }
8
+ }
9
+ QuickListCompactComponent.decorators = [
10
+ { type: Component, args: [{
11
+ selector: 'mad-quick-list-compact',
12
+ template: "<h3>\n <ng-content select=\"label\"></ng-content>\n</h3>\n<ng-container *ngFor=\"let item of allItems; let isLast = last;\">\n <div class=\"flex-container\" *ngIf=\"itemTemplate\" #row>\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\n <mad-icon-button *ngIf=\"!readonly && isDeleteAllowed()\" (click)=\"removeItem(item)\">\n <mat-icon>delete</mat-icon>\n </mad-icon-button>\n <mad-icon-button *ngIf=\"!readonly && isLast\" [disabled]=\"!isAddAllowed()\" (click)=\"addItem()\">\n <mat-icon>add_circle_outline</mat-icon>\n </mad-icon-button>\n </div>\n</ng-container>\n<mad-link-button *ngIf=\"!readonly && !this.allItems.length\"\n (click)=\"addItem()\"\n [disabled]=\"!isAddAllowed()\">\n {{ addLabel }}\n</mad-link-button>\n"
13
+ },] }
14
+ ];
15
+ QuickListCompactComponent.ctorParameters = () => [
16
+ { type: ChangeDetectorRef }
17
+ ];
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2stbGlzdC1jb21wYWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9tYXRlcmlhbC1hZGRvbnMvbWF0ZXJpYWwtYWRkb25zL3Byb2plY3RzL21hdGVyaWFsLWFkZG9ucy9zcmMvIiwic291cmNlcyI6WyJsaWIvcXVpY2stbGlzdC9xdWljay1saXN0LWNvbXBhY3QvcXVpY2stbGlzdC1jb21wYWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLEVBQWlCLE1BQU0sOEJBQThCLENBQUM7QUFPckYsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHNCQUFxQztJQUVsRixZQUFtQixpQkFBb0M7UUFDckQsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFEUixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBRXZELENBQUM7OztZQVRGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyx3M0JBQWtEO2FBRW5EOzs7WUFUQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VRdWlja0xpc3RDb21wb25lbnQsIFF1aWNrTGlzdEl0ZW0gfSBmcm9tICcuLi9iYXNlLXF1aWNrLWxpc3QuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFkLXF1aWNrLWxpc3QtY29tcGFjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWljay1saXN0LWNvbXBhY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBRdWlja0xpc3RDb21wYWN0Q29tcG9uZW50IGV4dGVuZHMgQmFzZVF1aWNrTGlzdENvbXBvbmVudDxRdWlja0xpc3RJdGVtPiB7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKGNoYW5nZURldGVjdG9yUmVmKTtcbiAgfVxufVxuIl19
@@ -1,90 +1,19 @@
1
1
  // Based on https://github.com/porscheinformatik/clarity-addons/blob/master/src/clr-addons/generic-quick-list/generic-quick-list.ts
2
- import { ChangeDetectorRef, Component, ContentChild, EventEmitter, Input, Output, QueryList, TemplateRef, ViewChildren, } from '@angular/core';
3
- export class QuickListComponent {
2
+ import { ChangeDetectorRef, Component } from '@angular/core';
3
+ import { BaseQuickListComponent } from './base-quick-list.component';
4
+ export class QuickListComponent extends BaseQuickListComponent {
4
5
  constructor(changeDetectorRef) {
6
+ super(changeDetectorRef);
5
7
  this.changeDetectorRef = changeDetectorRef;
6
- this.allItems = [];
7
- this.addLabel = 'NOT SET';
8
- this.addPossible = true;
9
- this.blankItem = {};
10
- this.added = new EventEmitter();
11
- this.removed = new EventEmitter();
12
- }
13
- ngOnInit() {
14
- this.addEventFunction = this.addItem.bind(this);
15
- if (typeof this.minItems !== 'undefined') {
16
- for (let n = this.allItems.length; n < this.minItems; n++) {
17
- this.interalAddItem();
18
- }
19
- }
20
- }
21
- ngAfterViewInit() {
22
- setTimeout(() => this.setFocusOnAdd(), 1);
23
- }
24
- addItem() {
25
- const newItem = this.interalAddItem();
26
- if (!!newItem) {
27
- this.added.emit(newItem);
28
- }
29
- }
30
- removeItem(item) {
31
- if (this.isDeleteAllowed()) {
32
- this.allItems.splice(this.allItems.indexOf(item), 1);
33
- this.removed.emit(item);
34
- }
35
- }
36
- setFocusOnAdd() {
37
- this.rowCountFocus = this.itemRows.length;
38
- this.itemRows.changes.subscribe((els) => {
39
- if (els.length > this.rowCountFocus && !!els.last) {
40
- const firstFocusable = els.last.nativeElement.querySelector("button, a, input, select, textarea, [tabindex]:not([tabindex='-1'])");
41
- if (firstFocusable) {
42
- firstFocusable.focus();
43
- }
44
- }
45
- this.rowCountFocus = els.length;
46
- });
47
- }
48
- isAddAllowed() {
49
- return typeof this.maxItems === 'undefined' || this.allItems.length < this.maxItems;
50
- }
51
- isDeleteAllowed() {
52
- return typeof this.minItems === 'undefined' || this.allItems.length > this.minItems;
53
- }
54
- interalAddItem() {
55
- if (this.isAddAllowed()) {
56
- const newItem = Object.assign({}, this.blankItem);
57
- // creates ids in the form of "n5kdz1pljl8"
58
- newItem.id = Math.random()
59
- .toString(36)
60
- .substring(2);
61
- this.allItems.push(newItem);
62
- this.changeDetectorRef.detectChanges();
63
- return newItem;
64
- }
65
- return null;
66
8
  }
67
9
  }
68
10
  QuickListComponent.decorators = [
69
11
  { type: Component, args: [{
70
12
  selector: 'mad-quick-list',
71
- template: "<h3>\n <ng-content select=\"label\"></ng-content>\n</h3>\n<ng-container *ngFor=\"let item of allItems\">\n <div *ngIf=\"itemTemplate\" #row>\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\n <mad-icon-button *ngIf=\"!(readonly || readonly === '')\" [disabled]=\"!isDeleteAllowed()\" (click)=\"removeItem(item)\">\n <mat-icon>delete</mat-icon>\n </mad-icon-button>\n </div>\n</ng-container>\n<mad-link-button *ngIf=\"!(readonly || readonly === '')\" (click)=\"addItem()\"\n [disabled]=\"!addPossible || !isAddAllowed()\">\n {{ addLabel }}\n</mad-link-button>\n"
13
+ template: "<h3>\n <ng-content select=\"label\"></ng-content>\n</h3>\n<ng-container *ngFor=\"let item of allItems\">\n <div *ngIf=\"itemTemplate\" #row>\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\n <mad-icon-button *ngIf=\"!readonly && isDeleteAllowed()\" (click)=\"removeItem(item)\">\n <mat-icon>delete</mat-icon>\n </mad-icon-button>\n </div>\n</ng-container>\n<mad-link-button *ngIf=\"!readonly\" (click)=\"addItem()\"\n [disabled]=\"!addPossible || !isAddAllowed()\">\n {{ addLabel }}\n</mad-link-button>\n"
72
14
  },] }
73
15
  ];
74
16
  QuickListComponent.ctorParameters = () => [
75
17
  { type: ChangeDetectorRef }
76
18
  ];
77
- QuickListComponent.propDecorators = {
78
- allItems: [{ type: Input }],
79
- addLabel: [{ type: Input }],
80
- addPossible: [{ type: Input }],
81
- blankItem: [{ type: Input }],
82
- readonly: [{ type: Input }],
83
- maxItems: [{ type: Input }],
84
- minItems: [{ type: Input }],
85
- added: [{ type: Output }],
86
- removed: [{ type: Output }],
87
- itemTemplate: [{ type: ContentChild, args: [TemplateRef,] }],
88
- itemRows: [{ type: ViewChildren, args: ['row',] }]
89
- };
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2stbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvbWF0ZXJpYWwtYWRkb25zL21hdGVyaWFsLWFkZG9ucy9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjLyIsInNvdXJjZXMiOlsibGliL3F1aWNrLWxpc3QvcXVpY2stbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUlBQW1JO0FBRW5JLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFFWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsV0FBVyxFQUNYLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQVd2QixNQUFNLE9BQU8sa0JBQWtCO0lBaUI3QixZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQWhCL0MsYUFBUSxHQUFHLEVBQVMsQ0FBQztRQUNyQixhQUFRLEdBQUcsU0FBUyxDQUFDO1FBQ3JCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGNBQVMsR0FBRyxFQUFTLENBQUM7UUFLckIsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7UUFDOUIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7SUFPaUIsQ0FBQztJQUU1RCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLFdBQVcsRUFBRTtZQUN4QyxLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN6RCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7YUFDdkI7U0FDRjtJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUU7WUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsSUFBTztRQUNoQixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRTtZQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUEwQixFQUFFLEVBQUU7WUFDN0QsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2pELE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxxRUFBcUUsQ0FBQyxDQUFDO2dCQUNuSSxJQUFJLGNBQWMsRUFBRTtvQkFDbEIsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO2lCQUN4QjthQUNGO1lBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN0RixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3RGLENBQUM7SUFFTyxjQUFjO1FBQ3BCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQ3ZCLE1BQU0sT0FBTyxxQkFBUSxJQUFJLENBQUMsU0FBUyxDQUFFLENBQUM7WUFDdEMsMkNBQTJDO1lBQzNDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRTtpQkFDdkIsUUFBUSxDQUFDLEVBQUUsQ0FBQztpQkFDWixTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sT0FBTyxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzs7WUFwRkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLDhvQkFBMEM7YUFFM0M7OztZQXJCQyxpQkFBaUI7Ozt1QkF1QmhCLEtBQUs7dUJBQ0wsS0FBSzswQkFDTCxLQUFLO3dCQUNMLEtBQUs7dUJBQ0wsS0FBSzt1QkFDTCxLQUFLO3VCQUNMLEtBQUs7b0JBRUwsTUFBTTtzQkFDTixNQUFNOzJCQUNOLFlBQVksU0FBQyxXQUFXO3VCQUN4QixZQUFZLFNBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEJhc2VkIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9wb3JzY2hlaW5mb3JtYXRpay9jbGFyaXR5LWFkZG9ucy9ibG9iL21hc3Rlci9zcmMvY2xyLWFkZG9ucy9nZW5lcmljLXF1aWNrLWxpc3QvZ2VuZXJpYy1xdWljay1saXN0LnRzXG5cbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVpY2tMaXN0SXRlbSB7XG4gIGlkOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hZC1xdWljay1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3F1aWNrLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBRdWlja0xpc3RDb21wb25lbnQ8VCBleHRlbmRzIFF1aWNrTGlzdEl0ZW0+IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgYWxsSXRlbXMgPSBbXSBhcyBUW107XG4gIEBJbnB1dCgpIGFkZExhYmVsID0gJ05PVCBTRVQnO1xuICBASW5wdXQoKSBhZGRQb3NzaWJsZSA9IHRydWU7XG4gIEBJbnB1dCgpIGJsYW5rSXRlbSA9IHt9IGFzIGFueTtcbiAgQElucHV0KCkgcmVhZG9ubHk6IHN0cmluZztcbiAgQElucHV0KCkgbWF4SXRlbXM6IG51bWJlcjtcbiAgQElucHV0KCkgbWluSXRlbXM6IG51bWJlcjtcblxuICBAT3V0cHV0KCkgYWRkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG4gIEBPdXRwdXQoKSByZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuICBAQ29udGVudENoaWxkKFRlbXBsYXRlUmVmKSBpdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGRyZW4oJ3JvdycpIGl0ZW1Sb3dzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG5cbiAgcm93Q291bnRGb2N1czogbnVtYmVyO1xuICBhZGRFdmVudEZ1bmN0aW9uOiBGdW5jdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFkZEV2ZW50RnVuY3Rpb24gPSB0aGlzLmFkZEl0ZW0uYmluZCh0aGlzKTtcbiAgICBpZiAodHlwZW9mIHRoaXMubWluSXRlbXMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBmb3IgKGxldCBuID0gdGhpcy5hbGxJdGVtcy5sZW5ndGg7IG4gPCB0aGlzLm1pbkl0ZW1zOyBuKyspIHtcbiAgICAgICAgdGhpcy5pbnRlcmFsQWRkSXRlbSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2V0Rm9jdXNPbkFkZCgpLCAxKTtcbiAgfVxuXG4gIGFkZEl0ZW0oKTogdm9pZCB7XG4gICAgY29uc3QgbmV3SXRlbSA9IHRoaXMuaW50ZXJhbEFkZEl0ZW0oKTtcbiAgICBpZiAoISFuZXdJdGVtKSB7XG4gICAgICB0aGlzLmFkZGVkLmVtaXQobmV3SXRlbSk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlSXRlbShpdGVtOiBUKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZWxldGVBbGxvd2VkKCkpIHtcbiAgICAgIHRoaXMuYWxsSXRlbXMuc3BsaWNlKHRoaXMuYWxsSXRlbXMuaW5kZXhPZihpdGVtKSwgMSk7XG4gICAgICB0aGlzLnJlbW92ZWQuZW1pdChpdGVtKTtcbiAgICB9XG4gIH1cblxuICBzZXRGb2N1c09uQWRkKCk6IHZvaWQge1xuICAgIHRoaXMucm93Q291bnRGb2N1cyA9IHRoaXMuaXRlbVJvd3MubGVuZ3RoO1xuICAgIHRoaXMuaXRlbVJvd3MuY2hhbmdlcy5zdWJzY3JpYmUoKGVsczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+KSA9PiB7XG4gICAgICBpZiAoZWxzLmxlbmd0aCA+IHRoaXMucm93Q291bnRGb2N1cyAmJiAhIWVscy5sYXN0KSB7XG4gICAgICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlID0gZWxzLmxhc3QubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiYnV0dG9uLCBhLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PSctMSddKVwiKTtcbiAgICAgICAgaWYgKGZpcnN0Rm9jdXNhYmxlKSB7XG4gICAgICAgICAgZmlyc3RGb2N1c2FibGUuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5yb3dDb3VudEZvY3VzID0gZWxzLmxlbmd0aDtcbiAgICB9KTtcbiAgfVxuXG4gIGlzQWRkQWxsb3dlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMubWF4SXRlbXMgPT09ICd1bmRlZmluZWQnIHx8IHRoaXMuYWxsSXRlbXMubGVuZ3RoIDwgdGhpcy5tYXhJdGVtcztcbiAgfVxuXG4gIGlzRGVsZXRlQWxsb3dlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMubWluSXRlbXMgPT09ICd1bmRlZmluZWQnIHx8IHRoaXMuYWxsSXRlbXMubGVuZ3RoID4gdGhpcy5taW5JdGVtcztcbiAgfVxuXG4gIHByaXZhdGUgaW50ZXJhbEFkZEl0ZW0oKTogVCB7XG4gICAgaWYgKHRoaXMuaXNBZGRBbGxvd2VkKCkpIHtcbiAgICAgIGNvbnN0IG5ld0l0ZW0gPSB7IC4uLnRoaXMuYmxhbmtJdGVtIH07XG4gICAgICAvLyBjcmVhdGVzIGlkcyBpbiB0aGUgZm9ybSBvZiBcIm41a2R6MXBsamw4XCJcbiAgICAgIG5ld0l0ZW0uaWQgPSBNYXRoLnJhbmRvbSgpXG4gICAgICAgIC50b1N0cmluZygzNilcbiAgICAgICAgLnN1YnN0cmluZygyKTtcbiAgICAgIHRoaXMuYWxsSXRlbXMucHVzaChuZXdJdGVtKTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgcmV0dXJuIG5ld0l0ZW07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iXX0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2stbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvbWF0ZXJpYWwtYWRkb25zL21hdGVyaWFsLWFkZG9ucy9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjLyIsInNvdXJjZXMiOlsibGliL3F1aWNrLWxpc3QvcXVpY2stbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUlBQW1JO0FBRW5JLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFpQixNQUFNLDZCQUE2QixDQUFDO0FBT3BGLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxzQkFBcUM7SUFDM0UsWUFBbUIsaUJBQW9DO1FBQ3JELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRFIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUV2RCxDQUFDOzs7WUFSRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsdWxCQUEwQzthQUUzQzs7O1lBUFEsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL3BvcnNjaGVpbmZvcm1hdGlrL2NsYXJpdHktYWRkb25zL2Jsb2IvbWFzdGVyL3NyYy9jbHItYWRkb25zL2dlbmVyaWMtcXVpY2stbGlzdC9nZW5lcmljLXF1aWNrLWxpc3QudHNcblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZVF1aWNrTGlzdENvbXBvbmVudCwgUXVpY2tMaXN0SXRlbSB9IGZyb20gJy4vYmFzZS1xdWljay1saXN0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hZC1xdWljay1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3F1aWNrLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBRdWlja0xpc3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlUXVpY2tMaXN0Q29tcG9uZW50PFF1aWNrTGlzdEl0ZW0+IHtcbiAgY29uc3RydWN0b3IocHVibGljIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKGNoYW5nZURldGVjdG9yUmVmKTtcbiAgfVxufVxuIl19
@@ -3,14 +3,16 @@ import { NgModule } from '@angular/core';
3
3
  import { MatButtonModule } from '@angular/material/button';
4
4
  import { MatIconModule } from '@angular/material/icon';
5
5
  import { QuickListComponent } from './quick-list.component';
6
- import { ButtonModule } from "../button/button.module";
6
+ import { ButtonModule } from '../button/button.module';
7
+ import { BaseQuickListComponent } from './base-quick-list.component';
8
+ import { QuickListCompactComponent } from './quick-list-compact/quick-list-compact.component';
7
9
  export class QuickListModule {
8
10
  }
9
11
  QuickListModule.decorators = [
10
12
  { type: NgModule, args: [{
11
- declarations: [QuickListComponent],
13
+ declarations: [QuickListComponent, BaseQuickListComponent, QuickListCompactComponent],
12
14
  imports: [CommonModule, MatButtonModule, MatIconModule, ButtonModule],
13
- exports: [QuickListComponent],
15
+ exports: [QuickListComponent, QuickListCompactComponent, BaseQuickListComponent],
14
16
  },] }
15
17
  ];
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2stbGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvbWF0ZXJpYWwtYWRkb25zL21hdGVyaWFsLWFkZG9ucy9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjLyIsInNvdXJjZXMiOlsibGliL3F1aWNrLWxpc3QvcXVpY2stbGlzdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFPckQsTUFBTSxPQUFPLGVBQWU7OztZQUwzQixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsa0JBQWtCLENBQUM7Z0JBQ2xDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQztnQkFDckUsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7YUFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBRdWlja0xpc3RDb21wb25lbnQgfSBmcm9tICcuL3F1aWNrLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7QnV0dG9uTW9kdWxlfSBmcm9tIFwiLi4vYnV0dG9uL2J1dHRvbi5tb2R1bGVcIjtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbUXVpY2tMaXN0Q29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBCdXR0b25Nb2R1bGVdLFxuICBleHBvcnRzOiBbUXVpY2tMaXN0Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgUXVpY2tMaXN0TW9kdWxlIHt9XG4iXX0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2stbGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvbWF0ZXJpYWwtYWRkb25zL21hdGVyaWFsLWFkZG9ucy9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjLyIsInNvdXJjZXMiOlsibGliL3F1aWNrLWxpc3QvcXVpY2stbGlzdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFPOUYsTUFBTSxPQUFPLGVBQWU7OztZQUwzQixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUseUJBQXlCLENBQUM7Z0JBQ3JGLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQztnQkFDckUsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUseUJBQXlCLEVBQUUsc0JBQXNCLENBQUM7YUFDakYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBRdWlja0xpc3RDb21wb25lbnQgfSBmcm9tICcuL3F1aWNrLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24ubW9kdWxlJztcbmltcG9ydCB7IEJhc2VRdWlja0xpc3RDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtcXVpY2stbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUXVpY2tMaXN0Q29tcGFjdENvbXBvbmVudCB9IGZyb20gJy4vcXVpY2stbGlzdC1jb21wYWN0L3F1aWNrLWxpc3QtY29tcGFjdC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtRdWlja0xpc3RDb21wb25lbnQsIEJhc2VRdWlja0xpc3RDb21wb25lbnQsIFF1aWNrTGlzdENvbXBhY3RDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIEJ1dHRvbk1vZHVsZV0sXG4gIGV4cG9ydHM6IFtRdWlja0xpc3RDb21wb25lbnQsIFF1aWNrTGlzdENvbXBhY3RDb21wb25lbnQsIEJhc2VRdWlja0xpc3RDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBRdWlja0xpc3RNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,13 @@
1
+ import { animate, state, style, transition, trigger } from '@angular/animations';
2
+ /**
3
+ * Animations used by the MAD stepper.
4
+ */
5
+ export const madStepperAnimations = {
6
+ verticalStepTransition: trigger('stepTransition', [
7
+ state('previous', style({ height: '0px', visibility: 'hidden' })),
8
+ state('next', style({ height: '0px', visibility: 'hidden' })),
9
+ state('current', style({ height: '*', visibility: 'visible' })),
10
+ transition('* <=> current', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),
11
+ ]),
12
+ };
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFkLXN0ZXBwZXItYW5pbWF0aW9uLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL21hdGVyaWFsLWFkZG9ucy9tYXRlcmlhbC1hZGRvbnMvcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9zdGVwcGVyL21hZC1zdGVwcGVyLWFuaW1hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBNEIsTUFBTSxxQkFBcUIsQ0FBQztBQUUzRzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUU3QjtJQUNGLHNCQUFzQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtRQUNoRCxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDakUsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzdELEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUMvRCxVQUFVLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0tBQzdFLENBQUM7Q0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyLCBBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGEgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxuLyoqXG4gKiBBbmltYXRpb25zIHVzZWQgYnkgdGhlIE1BRCBzdGVwcGVyLlxuICovXG5leHBvcnQgY29uc3QgbWFkU3RlcHBlckFuaW1hdGlvbnM6IHtcbiAgcmVhZG9ubHkgdmVydGljYWxTdGVwVHJhbnNpdGlvbjogQW5pbWF0aW9uVHJpZ2dlck1ldGFkYXRhO1xufSA9IHtcbiAgdmVydGljYWxTdGVwVHJhbnNpdGlvbjogdHJpZ2dlcignc3RlcFRyYW5zaXRpb24nLCBbXG4gICAgc3RhdGUoJ3ByZXZpb3VzJywgc3R5bGUoeyBoZWlnaHQ6ICcwcHgnLCB2aXNpYmlsaXR5OiAnaGlkZGVuJyB9KSksXG4gICAgc3RhdGUoJ25leHQnLCBzdHlsZSh7IGhlaWdodDogJzBweCcsIHZpc2liaWxpdHk6ICdoaWRkZW4nIH0pKSxcbiAgICBzdGF0ZSgnY3VycmVudCcsIHN0eWxlKHsgaGVpZ2h0OiAnKicsIHZpc2liaWxpdHk6ICd2aXNpYmxlJyB9KSksXG4gICAgdHJhbnNpdGlvbignKiA8PT4gY3VycmVudCcsIGFuaW1hdGUoJzIyNW1zIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKScpKSxcbiAgXSksXG59O1xuIl19
@@ -0,0 +1,75 @@
1
+ import { CdkStepHeader, STEP_STATE } from '@angular/cdk/stepper';
2
+ import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewEncapsulation } from '@angular/core';
3
+ import { FocusMonitor } from '@angular/cdk/a11y';
4
+ export class StepHeaderComponent extends CdkStepHeader {
5
+ constructor(_focusMonitor, _elementRef) {
6
+ super(_elementRef);
7
+ this._focusMonitor = _focusMonitor;
8
+ }
9
+ ngAfterViewInit() {
10
+ this._focusMonitor.monitor(this._elementRef, true);
11
+ }
12
+ ngOnDestroy() {
13
+ this._focusMonitor.stopMonitoring(this._elementRef);
14
+ }
15
+ /** Focuses the step header. */
16
+ focus(origin, options) {
17
+ if (origin) {
18
+ this._focusMonitor.focusVia(this._elementRef, origin, options);
19
+ }
20
+ else {
21
+ this._elementRef.nativeElement.focus(options);
22
+ }
23
+ }
24
+ getCssForState() {
25
+ if (this.state === STEP_STATE.NUMBER && !this.completed && !this.hasError) {
26
+ return 'step-state-neutral'; //initiale state is 'number'
27
+ }
28
+ else if (this.completed) {
29
+ return 'step-state-complete';
30
+ }
31
+ else if (this.hasError) {
32
+ return 'step-state-error';
33
+ }
34
+ }
35
+ getIcon() {
36
+ if (this.completed) {
37
+ return 'check_circle_outline';
38
+ }
39
+ else if (this.hasError) {
40
+ return 'error_outline';
41
+ }
42
+ return '';
43
+ }
44
+ }
45
+ StepHeaderComponent.decorators = [
46
+ { type: Component, args: [{
47
+ selector: 'mad-step-header',
48
+ template: "<div class=\"header\" fxLayout=\"row\" fxLayoutGap=\"1em\"\n [style.background]=\"this.selected && !this.closed ? '#d8e2e9' : '#ffffff'\"\n [style.border-color]=\"this.hasError ? '#f44336' : '#d3d3d3'\">\n <div [ngClass]=\"this.getCssForState()\"></div>\n <div class=\"header-label\">\n <mat-icon class=\"material-icons-outlined\">\n {{this.selected && !this.closed ? 'keyboard_arrow_down' : 'keyboard_arrow_right'}}\n </mat-icon>\n </div>\n <div *ngIf=\"this.completed || this.hasError\" class=\"header-label\">\n <mat-icon [ngClass]=\"this.completed ? 'green-check' : 'red-error'\">\n {{getIcon()}}\n </mat-icon>\n </div>\n <span *ngIf=\"!this.hasError && !this.completed\" class=\"header-label\">{{(this.index + 1) + '.'}}</span>\n <div class=\"header-label\"> {{this.label}}</div>\n</div>\n",
49
+ inputs: ['color'],
50
+ host: {
51
+ 'class': 'mad-step-header',
52
+ 'role': 'tab',
53
+ },
54
+ encapsulation: ViewEncapsulation.None,
55
+ changeDetection: ChangeDetectionStrategy.OnPush,
56
+ styles: [".header{-webkit-tap-highlight-color:transparent;border:1px solid #d3d3d3;box-sizing:content-box;cursor:pointer;height:62px;outline:#f44336;overflow:hidden;width:100%}.header-label{align-items:center;display:flex}.step-state-complete{background:green;width:5px}.step-state-error{background:#f44336;width:5px}.step-state-neutral{background:#d3d3d3;width:5px}.green-check{color:green}.red-error{color:#f44336}"]
57
+ },] }
58
+ ];
59
+ StepHeaderComponent.ctorParameters = () => [
60
+ { type: FocusMonitor },
61
+ { type: ElementRef }
62
+ ];
63
+ StepHeaderComponent.propDecorators = {
64
+ index: [{ type: Input }],
65
+ label: [{ type: Input }],
66
+ state: [{ type: Input }],
67
+ errorMessage: [{ type: Input }],
68
+ selected: [{ type: Input }],
69
+ active: [{ type: Input }],
70
+ optional: [{ type: Input }],
71
+ hasError: [{ type: Input }],
72
+ completed: [{ type: Input }],
73
+ closed: [{ type: Input }]
74
+ };
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL21hdGVyaWFsLWFkZG9ucy9tYXRlcmlhbC1hZGRvbnMvcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9zdGVwcGVyL3N0ZXAtaGVhZGVyL3N0ZXAtaGVhZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBYSxNQUFNLHNCQUFzQixDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsWUFBWSxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFjOUQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGFBQWE7SUF1QnBELFlBQW9CLGFBQTJCLEVBQUUsV0FBb0M7UUFDbkYsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBREQsa0JBQWEsR0FBYixhQUFhLENBQWM7SUFFL0MsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCwrQkFBK0I7SUFDL0IsS0FBSyxDQUFDLE1BQW9CLEVBQUUsT0FBc0I7UUFDaEQsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNoRTthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQy9DO0lBQ0gsQ0FBQztJQUVNLGNBQWM7UUFDbkIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN6RSxPQUFPLG9CQUFvQixDQUFDLENBQUMsNEJBQTRCO1NBQzFEO2FBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3pCLE9BQU8scUJBQXFCLENBQUM7U0FDOUI7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDeEIsT0FBTyxrQkFBa0IsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLE9BQU8sc0JBQXNCLENBQUM7U0FDL0I7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDeEIsT0FBTyxlQUFlLENBQUM7U0FDeEI7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7OztZQXpFRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IscTNCQUEyQztnQkFFM0MsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO2dCQUNqQixJQUFJLEVBQUU7b0JBQ0osT0FBTyxFQUFFLGlCQUFpQjtvQkFDMUIsTUFBTSxFQUFFLEtBQUs7aUJBQ2Q7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNoRDs7O1lBYlEsWUFBWTtZQUR3QixVQUFVOzs7b0JBZ0JwRCxLQUFLO29CQUdMLEtBQUs7b0JBR0wsS0FBSzsyQkFFTCxLQUFLO3VCQUVMLEtBQUs7cUJBRUwsS0FBSzt1QkFFTCxLQUFLO3VCQUVMLEtBQUs7d0JBRUwsS0FBSztxQkFFTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrU3RlcEhlYWRlciwgU1RFUF9TVEFURSwgU3RlcFN0YXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3N0ZXBwZXInO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYWQtc3RlcC1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc3RlcC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdGVwLWhlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICBpbnB1dHM6IFsnY29sb3InXSxcbiAgaG9zdDoge1xuICAgICdjbGFzcyc6ICdtYWQtc3RlcC1oZWFkZXInLFxuICAgICdyb2xlJzogJ3RhYicsXG4gIH0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTdGVwSGVhZGVyQ29tcG9uZW50IGV4dGVuZHMgQ2RrU3RlcEhlYWRlciB7XG4gIEBJbnB1dCgpXG4gIGluZGV4OiBudW1iZXI7XG5cbiAgQElucHV0KClcbiAgbGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKSBzdGF0ZTogU3RlcFN0YXRlO1xuXG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHNlbGVjdGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGFjdGl2ZTogYm9vbGVhbjtcblxuICBASW5wdXQoKSBvcHRpb25hbDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBoYXNFcnJvcjogYm9vbGVhbjtcblxuICBASW5wdXQoKSBjb21wbGV0ZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgY2xvc2VkOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2ZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLCBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICBzdXBlcihfZWxlbWVudFJlZik7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5fZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZiwgdHJ1ZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZik7XG4gIH1cblxuICAvKiogRm9jdXNlcyB0aGUgc3RlcCBoZWFkZXIuICovXG4gIGZvY3VzKG9yaWdpbj86IEZvY3VzT3JpZ2luLCBvcHRpb25zPzogRm9jdXNPcHRpb25zKSB7XG4gICAgaWYgKG9yaWdpbikge1xuICAgICAgdGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuX2VsZW1lbnRSZWYsIG9yaWdpbiwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cyhvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3NzRm9yU3RhdGUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gU1RFUF9TVEFURS5OVU1CRVIgJiYgIXRoaXMuY29tcGxldGVkICYmICF0aGlzLmhhc0Vycm9yKSB7XG4gICAgICByZXR1cm4gJ3N0ZXAtc3RhdGUtbmV1dHJhbCc7IC8vaW5pdGlhbGUgc3RhdGUgaXMgJ251bWJlcidcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29tcGxldGVkKSB7XG4gICAgICByZXR1cm4gJ3N0ZXAtc3RhdGUtY29tcGxldGUnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5oYXNFcnJvcikge1xuICAgICAgcmV0dXJuICdzdGVwLXN0YXRlLWVycm9yJztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0SWNvbigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmNvbXBsZXRlZCkge1xuICAgICAgcmV0dXJuICdjaGVja19jaXJjbGVfb3V0bGluZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmhhc0Vycm9yKSB7XG4gICAgICByZXR1cm4gJ2Vycm9yX291dGxpbmUnO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cbn1cbiJdfQ==