@mtna/web-form-angular 1.0.6-SNAPSHOT.22 → 1.0.6-SNAPSHOT.23

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 (138) hide show
  1. package/bundles/mtna-web-form-angular.umd.js +1466 -644
  2. package/bundles/mtna-web-form-angular.umd.js.map +1 -1
  3. package/esm2015/lib/components/form-item-impl/date/date.component.js +6 -29
  4. package/esm2015/lib/components/form-item-impl/date/date.module.js +2 -5
  5. package/esm2015/lib/components/form-item-impl/year-quarter/year-quarter.component.js +1 -1
  6. package/esm2015/lib/components/form-item-injector/form-item-injector.component.js +43 -2
  7. package/esm2015/lib/components/template-item-impl/date/year-quarter-item/year-quarter-item.component.js +105 -12
  8. package/esm2015/lib/components/template-item-impl/date/year-quarter-range-item/year-quarter-range-item.component.js +11 -2
  9. package/esm2015/lib/components/template-item-impl/date-item/date-item.component.js +3 -27
  10. package/esm2015/lib/components/template-item-impl/date-item/date-item.module.js +2 -5
  11. package/esm2015/lib/components/template-item-impl/decimal-answer-item/decimal-answer-item.component.js +4 -4
  12. package/esm2015/lib/components/template-item-impl/decimal-answer-item/decimal-answer-item.module.js +15 -8
  13. package/esm2015/lib/components/template-item-impl/template-display-viewer/template-display-viewer.component.js +25 -4
  14. package/esm2015/lib/components/template-item-impl/template-item/template-item.component.js +7 -3
  15. package/esm2015/lib/components/template-item-impl/template-item-injector/template-item-injector.component.js +49 -4
  16. package/esm2015/lib/components/template-item-impl/template-section/template-section.component.js +1 -1
  17. package/esm2015/lib/models/design/design-constants/index.js +2 -0
  18. package/esm2015/lib/models/design/design-constants/template-design-constants.model.js +54 -0
  19. package/esm2015/lib/models/design/design-mapper/bulleted-list-item-template-mapper.js +2 -2
  20. package/esm2015/lib/models/design/design-mapper/date-item-template-mapper.js +10 -18
  21. package/esm2015/lib/models/design/design-mapper/dropdown-item-template-mapper.js +1 -12
  22. package/esm2015/lib/models/design/design-mapper/file-upload-item-template-mapper.js +4 -8
  23. package/esm2015/lib/models/design/design-mapper/i18n-text-response-item-template-mapper.js +2 -2
  24. package/esm2015/lib/models/design/design-mapper/mapper-classes.model.js +35 -26
  25. package/esm2015/lib/models/design/design-mapper/mapping-logic-core.js +23 -5
  26. package/esm2015/lib/models/design/design-mapper/multiple-choice-item-template-mapper.js +1 -11
  27. package/esm2015/lib/models/design/design-mapper/numbered-list-item-template-mapper.js +2 -2
  28. package/esm2015/lib/models/design/design-mapper/numeric-response-item-template-mapper.js +2 -2
  29. package/esm2015/lib/models/design/design-mapper/offset-date-range-template-mapper.js +11 -9
  30. package/esm2015/lib/models/design/design-mapper/option-group-item-mapper.js +27 -10
  31. package/esm2015/lib/models/design/design-mapper/option-item-mapper.js +4 -3
  32. package/esm2015/lib/models/design/design-mapper/option-selector-mapper.js +17 -5
  33. package/esm2015/lib/models/design/design-mapper/repeatable-item-template-mapper.js +2 -2
  34. package/esm2015/lib/models/design/design-mapper/template-item-group-mapper.js +48 -13
  35. package/esm2015/lib/models/design/design-mapper/template-item-mapper.js +47 -33
  36. package/esm2015/lib/models/design/design-mapper/template-mapper.js +7 -5
  37. package/esm2015/lib/models/design/design-mapper/template-section-mapper.js +14 -12
  38. package/esm2015/lib/models/design/design-mapper/text-item-template-mapper.js +2 -2
  39. package/esm2015/lib/models/design/design-mapper/text-response-item-template-mapper.js +2 -2
  40. package/esm2015/lib/models/design/design-mapper/time-item-template-mapper.js +2 -2
  41. package/esm2015/lib/models/design/design-mapper/title-item-template-mapper.js +18 -9
  42. package/esm2015/lib/models/design/design-mapper/year-quarter-range-template-mapper.js +27 -7
  43. package/esm2015/lib/models/design/design-properties/engagement-property-type.model.js +2 -0
  44. package/esm2015/lib/models/design/design-properties/enumeration-value-functions/date-format.js +29 -0
  45. package/esm2015/lib/models/design/design-properties/enumeration-value-functions/index.js +4 -0
  46. package/esm2015/lib/models/design/design-properties/enumeration-value-functions/layout.js +14 -0
  47. package/esm2015/lib/models/design/design-properties/enumeration-value-functions/quarter-range.js +20 -0
  48. package/esm2015/lib/models/design/design-properties/enumerations/date-display-format-enumeration.model.js +38 -0
  49. package/esm2015/lib/models/design/design-properties/enumerations/index.js +4 -0
  50. package/esm2015/lib/models/design/design-properties/enumerations/layout-enumeration.model.js +11 -0
  51. package/esm2015/lib/models/design/design-properties/enumerations/quarter-range-enumeration.model.js +24 -0
  52. package/esm2015/lib/models/design/design-properties/properties/date-format.model.js +14 -0
  53. package/esm2015/lib/models/design/design-properties/properties/index.js +4 -0
  54. package/esm2015/lib/models/design/design-properties/properties/layout.model.js +14 -0
  55. package/esm2015/lib/models/design/design-properties/properties/quarter-range.model.js +23 -0
  56. package/esm2015/lib/models/design/index.js +4 -3
  57. package/esm2015/lib/models/design/potential-designs.model.js +24 -2
  58. package/esm2015/lib/models/design/unavailable-template-item-name-map.model.js +27 -0
  59. package/esm2015/lib/models/i18n-constants.model.js +58 -12
  60. package/esm2015/lib/pipes/get-form-control-error.pipe.js +1 -1
  61. package/esm2015/lib/pipes/get-i18n-string-value-from-locale.pipe.js +2 -2
  62. package/esm2015/lib/pipes/instance-of-template-item.pipe.js +3 -3
  63. package/esm2015/lib/services/api.service.js +58 -28
  64. package/esm2015/lib/services/ui.service.js +2 -2
  65. package/esm2015/lib/state/design/template-design.facade.js +124 -45
  66. package/esm2015/lib/state/form/template-form.effects.js +30 -18
  67. package/esm2015/lib/utilities/enum-property-handlers-util.js +14 -0
  68. package/esm2015/lib/utilities/form-option-design-util.js +5 -5
  69. package/esm2015/lib/utilities/get-design-properties.util.js +8 -0
  70. package/esm2015/lib/utilities/index.js +7 -1
  71. package/esm2015/lib/utilities/is-template-util.js +68 -0
  72. package/esm2015/lib/utilities/item-to-design-base.util.js +25 -0
  73. package/esm2015/lib/utilities/merge-template-util.js +1 -2
  74. package/esm2015/lib/utilities/model-map-util.js +27 -0
  75. package/esm2015/lib/utilities/new-base-designs.util.js +5 -4
  76. package/esm2015/lib/utilities/serializer-util.js +2 -50
  77. package/esm2015/lib/utilities/template-design-core-util.js +8 -7
  78. package/esm2015/lib/utilities/template-design-util.js +7 -74
  79. package/esm2015/lib/utilities/to-design-util.js +24 -0
  80. package/esm2015/lib/utilities/validator-functions-util.js +59 -0
  81. package/fesm2015/mtna-web-form-angular.js +1169 -476
  82. package/fesm2015/mtna-web-form-angular.js.map +1 -1
  83. package/lib/components/form-item-impl/date/date.component.d.ts +2 -8
  84. package/lib/components/form-item-injector/form-item-injector.component.d.ts +1 -0
  85. package/lib/components/template-item-impl/date/year-quarter-item/year-quarter-item.component.d.ts +20 -2
  86. package/lib/components/template-item-impl/date/year-quarter-range-item/year-quarter-range-item.component.d.ts +4 -0
  87. package/lib/components/template-item-impl/date-item/date-item.component.d.ts +1 -8
  88. package/lib/components/template-item-impl/decimal-answer-item/decimal-answer-item.module.d.ts +7 -5
  89. package/lib/components/template-item-impl/template-display-viewer/template-display-viewer.component.d.ts +4 -2
  90. package/lib/components/template-item-impl/template-item/template-item.component.d.ts +1 -0
  91. package/lib/components/template-item-impl/template-item-injector/template-item-injector.component.d.ts +1 -0
  92. package/lib/components/template-item-impl/template-section/template-section.component.d.ts +1 -1
  93. package/lib/models/design/design-constants/index.d.ts +1 -0
  94. package/lib/models/design/{template-design-constants.model.d.ts → design-constants/template-design-constants.model.d.ts} +8 -2
  95. package/lib/models/design/design-mapper/dropdown-item-template-mapper.d.ts +0 -1
  96. package/lib/models/design/design-mapper/mapping-logic-core.d.ts +23 -4
  97. package/lib/models/design/design-mapper/option-selector-mapper.d.ts +1 -0
  98. package/lib/models/design/design-mapper/template-item-group-mapper.d.ts +1 -0
  99. package/lib/models/design/design-mapper/template-item-mapper.d.ts +2 -2
  100. package/lib/models/design/design-mapper/title-item-template-mapper.d.ts +1 -0
  101. package/lib/models/design/design-properties/engagement-property-type.model.d.ts +14 -0
  102. package/lib/models/design/design-properties/enumeration-value-functions/date-format.d.ts +2 -0
  103. package/lib/models/design/design-properties/enumeration-value-functions/index.d.ts +3 -0
  104. package/lib/models/design/design-properties/enumeration-value-functions/layout.d.ts +3 -0
  105. package/lib/models/design/design-properties/enumeration-value-functions/quarter-range.d.ts +2 -0
  106. package/lib/models/design/{enumerations/date-enumeration.model.d.ts → design-properties/enumerations/date-display-format-enumeration.model.d.ts} +2 -1
  107. package/lib/models/design/design-properties/enumerations/index.d.ts +3 -0
  108. package/lib/models/design/design-properties/enumerations/layout-enumeration.model.d.ts +4 -0
  109. package/lib/models/design/design-properties/enumerations/quarter-range-enumeration.model.d.ts +6 -0
  110. package/lib/models/design/design-properties/properties/date-format.model.d.ts +2 -0
  111. package/lib/models/design/design-properties/properties/index.d.ts +3 -0
  112. package/lib/models/design/design-properties/properties/layout.model.d.ts +2 -0
  113. package/lib/models/design/design-properties/properties/quarter-range.model.d.ts +3 -0
  114. package/lib/models/design/index.d.ts +3 -2
  115. package/lib/models/design/unavailable-template-item-name-map.model.d.ts +1 -0
  116. package/lib/models/i18n-constants.model.d.ts +56 -10
  117. package/lib/pipes/get-form-control-error.pipe.d.ts +2 -2
  118. package/lib/pipes/get-i18n-string-value-from-locale.pipe.d.ts +1 -1
  119. package/lib/services/api.service.d.ts +52 -18
  120. package/lib/services/ui.service.d.ts +2 -2
  121. package/lib/state/design/template-design.facade.d.ts +26 -0
  122. package/lib/state/form/template-form.effects.d.ts +0 -6
  123. package/lib/utilities/enum-property-handlers-util.d.ts +4 -0
  124. package/lib/utilities/form-option-design-util.d.ts +2 -2
  125. package/lib/utilities/get-design-properties.util.d.ts +3 -0
  126. package/lib/utilities/index.d.ts +6 -0
  127. package/lib/utilities/is-template-util.d.ts +5 -0
  128. package/lib/utilities/item-to-design-base.util.d.ts +5 -0
  129. package/lib/utilities/model-map-util.d.ts +2 -0
  130. package/lib/utilities/template-design-core-util.d.ts +4 -4
  131. package/lib/utilities/template-design-util.d.ts +4 -7
  132. package/lib/utilities/to-design-util.d.ts +4 -0
  133. package/lib/utilities/validator-functions-util.d.ts +12 -0
  134. package/package.json +2 -2
  135. package/esm2015/lib/models/design/enumerations/date-enumeration.model.js +0 -33
  136. package/esm2015/lib/models/design/enumerations/index.js +0 -2
  137. package/esm2015/lib/models/design/template-design-constants.model.js +0 -48
  138. package/lib/models/design/enumerations/index.d.ts +0 -1
@@ -1,4 +1,5 @@
1
- import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewChild, ViewEncapsulation, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewChild, ViewEncapsulation } from '@angular/core';
2
+ /* eslint-disable @typescript-eslint/ban-ts-comment */
2
3
  import { MatDatepicker } from '@angular/material/datepicker';
3
4
  import { MtnaWfBaseValueItem } from '../../base-items/base-value-item.component';
4
5
  import * as i0 from "@angular/core";
@@ -40,33 +41,9 @@ export class MtnaWfDateComponent extends MtnaWfBaseValueItem {
40
41
  }
41
42
  set item(value) {
42
43
  super.item = value;
43
- if (this.item.format) {
44
- this.configureDatePickerFormatter();
45
- }
46
- }
47
- ngAfterViewInit() {
48
- this.configureDatePickerFormatter();
49
- }
50
- /**
51
- * Manually change the parse and display formats of the date picker.
52
- * @see https://github.com/angular/components/issues/8355#issuecomment-376783293
53
- */
54
- configureDatePickerFormatter() {
55
- if (this.picker) {
56
- const datepickerInput = this.picker.datepickerInput;
57
- // @ts-ignore: access the private date formats on the date picker
58
- const d = JSON.parse(JSON.stringify(datepickerInput._dateFormats));
59
- // Convert the Java SimpleDateFormat to the moment equivalents using moment-jdateformatparser
60
- const momentFormatString = moment().toMomentFormatString(this.item.format);
61
- // Use the converted format for the date picker display
62
- d.display.dateInput = momentFormatString;
63
- // Use the converted format for the date picker parser (user input)
64
- d.parse.dateInput = momentFormatString;
65
- // @ts-ignore: set the updated date formats
66
- datepickerInput._dateFormats = d;
67
- // @ts-ignore: manually format the current value in the date picker
68
- datepickerInput._formatValue(datepickerInput.value);
69
- }
44
+ // if (this.item.format) {
45
+ // this.configureDatePickerFormatter();
46
+ // }
70
47
  }
71
48
  }
72
49
  MtnaWfDateComponent.dateFormItemComponentInstances = 0;
@@ -90,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
90
67
  type: ViewChild,
91
68
  args: [MatDatepicker, { static: false }]
92
69
  }] } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ZWItZm9ybS1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWl0ZW0taW1wbC9kYXRlL2RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2ViLWZvcm0tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1pdGVtLWltcGwvZGF0ZS9kYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUt2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFJN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7OztBQVdqRixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsbUJBQTBDO0lBc0JqRixZQUFZLEdBQXNCLEVBQUUsTUFBa0I7UUFDcEQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBckIyQixrQkFBYSxHQUFHLElBQUksQ0FBQztRQVk3RCxxSEFBcUg7UUFDckgsK0VBQStFO1FBQ3RFLGdCQUFXLEdBQThDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFJN0YsY0FBUyxHQUFHLFNBQVMsQ0FBQSxNQUFNLENBQUM7UUFJMUIsbUhBQW1IO1FBQ25ILG9IQUFvSDtRQUNwSCxtQkFBbUIsQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1FBQ3JELElBQUksbUJBQW1CLENBQUMsOEJBQThCLEtBQUssQ0FBQyxFQUFFO1lBQzVELElBQUk7Z0JBQ0YsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLE9BQU8sTUFBTSxFQUFFLENBQUMsb0JBQW9CLEtBQUssVUFBVSxFQUFFO29CQUNuRSxNQUFNLENBQUMsS0FBSyxDQUFDOzs4RkFFdUUsQ0FBQyxDQUFDO2lCQUN2RjthQUNGO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsTUFBTSxDQUFDLEtBQUssQ0FBQzs7NERBRXVDLENBQUMsQ0FBQzthQUN2RDtTQUNGO0lBQ0gsQ0FBQztJQXBDRCxJQUFhLElBQUk7UUFDZixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQWEsSUFBSSxDQUFDLEtBQWU7UUFDL0IsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNwQixJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztTQUNyQztJQUNILENBQUM7SUE4QkQsZUFBZTtRQUNiLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7O09BR0c7SUFDSyw0QkFBNEI7UUFDbEMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsTUFBTSxlQUFlLEdBQTZCLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBMkMsQ0FBQztZQUMxRyxpRUFBaUU7WUFDakUsTUFBTSxDQUFDLEdBQW1CLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUVuRiw2RkFBNkY7WUFDN0YsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNFLHVEQUF1RDtZQUN2RCxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQztZQUN6QyxtRUFBbUU7WUFDbkUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsa0JBQWtCLENBQUM7WUFDdkMsMkNBQTJDO1lBQzNDLGVBQWUsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1lBRWpDLG1FQUFtRTtZQUNuRSxlQUFlLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNyRDtJQUNILENBQUM7O0FBbkVNLGtEQUE4QixHQUFHLENBQUMsQ0FBQztpSEFEL0IsbUJBQW1CO3FHQUFuQixtQkFBbUIsb05Ba0JuQixhQUFhLHVFQy9DMUIsbzRCQXFCQTs0RkRRYSxtQkFBbUI7a0JBUC9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsV0FBVyxFQUFFLHVCQUF1QjtvQkFDcEMsU0FBUyxFQUFFLENBQUMsdUJBQXVCLENBQUM7b0JBQ3BDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEM7aUlBR3lDLGFBQWE7c0JBQXBELFdBQVc7dUJBQUMseUJBQXlCO2dCQWM3QixXQUFXO3NCQUFuQixLQUFLO2dCQUV1QyxNQUFNO3NCQUFsRCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGF0ZUZvcm1hdHMgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudCAqL1xuaW1wb3J0IHR5cGUgeyBNYXREYXRlcGlja2VySW5wdXQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE10bmFMb2dnZXIgfSBmcm9tICdAbXRuYS9jb3JlLWFuZ3VsYXInO1xuaW1wb3J0IHsgRGF0ZUl0ZW0sIERhdGVSYW5nZSB9IGZyb20gJ0BtdG5hL3dlYi1mb3JtLXRzJztcblxuaW1wb3J0IHsgTXRuYVdmQmFzZVZhbHVlSXRlbSB9IGZyb20gJy4uLy4uL2Jhc2UtaXRlbXMvYmFzZS12YWx1ZS1pdGVtLmNvbXBvbmVudCc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSxuby12YXJcbmRlY2xhcmUgdmFyIG1vbWVudDogYW55O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdG5hLXdmLWRhdGUtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTXRuYVdmRGF0ZUNvbXBvbmVudCBleHRlbmRzIE10bmFXZkJhc2VWYWx1ZUl0ZW08RGF0ZUl0ZW0sIEZvcm1Db250cm9sPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBzdGF0aWMgZGF0ZUZvcm1JdGVtQ29tcG9uZW50SW5zdGFuY2VzID0gMDtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tdG5hLXdmLWRhdGUtaXRlbScpIGRhdGVJdGVtQ2xhc3MgPSB0cnVlO1xuXG4gIG92ZXJyaWRlIGdldCBpdGVtKCk6IERhdGVJdGVtIHtcbiAgICByZXR1cm4gc3VwZXIuaXRlbTtcbiAgfVxuICBvdmVycmlkZSBzZXQgaXRlbSh2YWx1ZTogRGF0ZUl0ZW0pIHtcbiAgICBzdXBlci5pdGVtID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuaXRlbS5mb3JtYXQpIHtcbiAgICAgIHRoaXMuY29uZmlndXJlRGF0ZVBpY2tlckZvcm1hdHRlcigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE86IFRoaXMgaXMgbm90IGN1cnJlbmx0eSB1c2VkLCB0aGUgYmFjayBlbmQgbmVlZHMgdG8gYWRkIHJhbmdlIGxpbWl0cyBvbiB0aGUgRGF0ZUl0ZW0gaW4gb3JkZXIgZm9yIHRoaXMgdG8gd29ya1xuICAvLyBSZW1vdmUgb25jZSBhY2NvbXBsaXNoZWQgYW5kIHJlcGxhY2UgdXNhZ2Ugd2l0aCBpdGVtLnJhbmdlTGltaXRzIGluIHRoZSBodG1sXG4gIEBJbnB1dCgpIHJhbmdlTGltaXRzOiBEYXRlUmFuZ2U8RGF0ZSB8IG51bGw+IHwgbnVsbCB8IHVuZGVmaW5lZCA9IHsgZW5kOiBudWxsLCBzdGFydDogbnVsbCB9O1xuXG4gIEBWaWV3Q2hpbGQoTWF0RGF0ZXBpY2tlciwgeyBzdGF0aWM6IGZhbHNlIH0pIHBpY2tlcjogTWF0RGF0ZXBpY2tlcjxEYXRlPiB8IHVuZGVmaW5lZDtcblxuICBfZGF0ZVRleHQgPSAkbG9jYWxpemVgRGF0ZWA7XG5cbiAgY29uc3RydWN0b3IoY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgbG9nZ2VyOiBNdG5hTG9nZ2VyKSB7XG4gICAgc3VwZXIoY2RyKTtcbiAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIHRvIGVuc3VyZSAnbW9tZW50JyAmICdtb21lbnQtamRhdGVmb3JtYXRwYXJzZXInIHNjcmlwdHMgaGF2ZSBiZWVuIGFkZGVkIHRvIGFuZ3VsYXIuanNvbiBzbyB0aGF0XG4gICAgLy8gdGhlIERhdGVGb3JtSXRlbUNvbXBvbmVudCBkb2Vzbid0IGJyZWFrIHdoZW4gYXR0ZW1wdGluZyB0byBmb3JtYXQgU2ltcGxlRGF0ZUZvcm1hdCBzdHJpbmcgdG8gTW9tZW50IGZvcm1hdCBzdHJpbmdcbiAgICBNdG5hV2ZEYXRlQ29tcG9uZW50LmRhdGVGb3JtSXRlbUNvbXBvbmVudEluc3RhbmNlcysrO1xuICAgIGlmIChNdG5hV2ZEYXRlQ29tcG9uZW50LmRhdGVGb3JtSXRlbUNvbXBvbmVudEluc3RhbmNlcyA9PT0gMSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKCEhbW9tZW50ICYmIHR5cGVvZiBtb21lbnQoKS50b01vbWVudEZvcm1hdFN0cmluZyAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGxvZ2dlci5lcnJvcihgW0RhdGVGb3JtSXRlbUNvbXBvbmVudF0gY29uc3RydWN0b3JcbiAgICAgICAgIC0gQ2Fubm90IGZpbmQgbW9tZW50LWpkYXRlZm9ybWF0cGFyc2VyLCBtYWtlIHN1cmUgdG8gaW5zdGFsbCB0aGUgZGVwZW5kZW5jeSBhbmQgYWRkIHRoZSBzY3JpcHQgaW4gYW5ndWxhci5qc29uLCBpLmUuXG4gICAgICAgICBcInNjcmlwdHNcIjogW1wibm9kZV9tb2R1bGVzL21vbWVudC1qZGF0ZWZvcm1hdHBhcnNlci9tb21lbnQtamRhdGVmb3JtYXRwYXJzZXIubWluLmpzXCJdYCk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKGBbRGF0ZUZvcm1JdGVtQ29tcG9uZW50XSBjb25zdHJ1Y3RvclxuICAgICAgIC0gQ2Fubm90IGZpbmQgbW9tZW50LmpzLCBtYWtlIHN1cmUgdG8gaW5zdGFsbCB0aGUgZGVwZW5kZW5jeSBhbmQgYWRkIHRoZSBzY3JpcHQgaW4gYW5ndWxhci5qc29uLCBpLmUuXG4gICAgICAgXCJzY3JpcHRzXCI6IFtcIm5vZGVfbW9kdWxlcy9tb21lbnQvbWluL21vbWVudC5taW4uanNcIl1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5jb25maWd1cmVEYXRlUGlja2VyRm9ybWF0dGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogTWFudWFsbHkgY2hhbmdlIHRoZSBwYXJzZSBhbmQgZGlzcGxheSBmb3JtYXRzIG9mIHRoZSBkYXRlIHBpY2tlci5cbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2lzc3Vlcy84MzU1I2lzc3VlY29tbWVudC0zNzY3ODMyOTNcbiAgICovXG4gIHByaXZhdGUgY29uZmlndXJlRGF0ZVBpY2tlckZvcm1hdHRlcigpIHtcbiAgICBpZiAodGhpcy5waWNrZXIpIHtcbiAgICAgIGNvbnN0IGRhdGVwaWNrZXJJbnB1dDogTWF0RGF0ZXBpY2tlcklucHV0PERhdGU+ID0gdGhpcy5waWNrZXIuZGF0ZXBpY2tlcklucHV0IGFzIE1hdERhdGVwaWNrZXJJbnB1dDxEYXRlPjtcbiAgICAgIC8vIEB0cy1pZ25vcmU6IGFjY2VzcyB0aGUgcHJpdmF0ZSBkYXRlIGZvcm1hdHMgb24gdGhlIGRhdGUgcGlja2VyXG4gICAgICBjb25zdCBkOiBNYXREYXRlRm9ybWF0cyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0ZXBpY2tlcklucHV0Ll9kYXRlRm9ybWF0cykpO1xuXG4gICAgICAvLyBDb252ZXJ0IHRoZSBKYXZhIFNpbXBsZURhdGVGb3JtYXQgdG8gdGhlIG1vbWVudCBlcXVpdmFsZW50cyB1c2luZyBtb21lbnQtamRhdGVmb3JtYXRwYXJzZXJcbiAgICAgIGNvbnN0IG1vbWVudEZvcm1hdFN0cmluZyA9IG1vbWVudCgpLnRvTW9tZW50Rm9ybWF0U3RyaW5nKHRoaXMuaXRlbS5mb3JtYXQpO1xuICAgICAgLy8gVXNlIHRoZSBjb252ZXJ0ZWQgZm9ybWF0IGZvciB0aGUgZGF0ZSBwaWNrZXIgZGlzcGxheVxuICAgICAgZC5kaXNwbGF5LmRhdGVJbnB1dCA9IG1vbWVudEZvcm1hdFN0cmluZztcbiAgICAgIC8vIFVzZSB0aGUgY29udmVydGVkIGZvcm1hdCBmb3IgdGhlIGRhdGUgcGlja2VyIHBhcnNlciAodXNlciBpbnB1dClcbiAgICAgIGQucGFyc2UuZGF0ZUlucHV0ID0gbW9tZW50Rm9ybWF0U3RyaW5nO1xuICAgICAgLy8gQHRzLWlnbm9yZTogc2V0IHRoZSB1cGRhdGVkIGRhdGUgZm9ybWF0c1xuICAgICAgZGF0ZXBpY2tlcklucHV0Ll9kYXRlRm9ybWF0cyA9IGQ7XG5cbiAgICAgIC8vIEB0cy1pZ25vcmU6IG1hbnVhbGx5IGZvcm1hdCB0aGUgY3VycmVudCB2YWx1ZSBpbiB0aGUgZGF0ZSBwaWNrZXJcbiAgICAgIGRhdGVwaWNrZXJJbnB1dC5fZm9ybWF0VmFsdWUoZGF0ZXBpY2tlcklucHV0LnZhbHVlKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJcIj48L25nLWNvbnRhaW5lcj5cbjxtYXQtZm9ybS1maWVsZCAqbmdJZj1cImNvbnRyb2xcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiIFttdG5hSGlnaGxpZ2h0XT1cImluZGljYXRvclN0YXR1cyA9PT0gJ0FDVElWRScgJiYgIWhhc0l0ZW1IZWFkZXJcIj5cbiAgPG1hdC1sYWJlbD57eyBpdGVtLmxhYmVsIHx8IF9kYXRlVGV4dCB9fTwvbWF0LWxhYmVsPlxuICA8aW5wdXRcbiAgICBtYXRJbnB1dFxuICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICBbbWF0RGF0ZXBpY2tlcl09XCJwaWNrZXJcIlxuICAgIFttYXhdPVwicmFuZ2VMaW1pdHM/LmVuZFwiXG4gICAgW21pbl09XCJyYW5nZUxpbWl0cz8uc3RhcnRcIlxuICAgIHBsYWNlaG9sZGVyPVwiQ2hvb3NlIGEgZGF0ZVwiXG4gICAgaTE4bi1wbGFjZWhvbGRlclxuICAgIFtyZXF1aXJlZF09XCJpdGVtLnJlcXVpcmVkXCJcbiAgICBbZGlzYWJsZWRdPVwicmVhZG9ubHkgfHwgY29udHJvbC5kaXNhYmxlZFwiXG4gIC8+XG4gIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwicGlja2VyXCIgW2Rpc2FibGVkXT1cInJlYWRvbmx5IHx8IGNvbnRyb2wuZGlzYWJsZWRcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgPG1hdC1kYXRlcGlja2VyICNwaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cbiAgPG1hdC1lcnJvciAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgY29udHJvbC5lcnJvcnMgfCBrZXl2YWx1ZVwiPlxuICAgIHt7IGVycm9yIHwgbXRuYVdmR2V0Q29udHJvbEVycm9yIDogaXRlbSB9fVxuICA8L21hdC1lcnJvcj5cbiAgPG1hdC1oaW50Pnt7IGl0ZW0uZm9ybWF0IH19PC9tYXQtaGludD5cbjwvbWF0LWZvcm0tZmllbGQ+XG4iXX0=
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ZWItZm9ybS1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWl0ZW0taW1wbC9kYXRlL2RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2ViLWZvcm0tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1pdGVtLWltcGwvZGF0ZS9kYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhJLHNEQUFzRDtBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFJN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7OztBQVdqRixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsbUJBQTBDO0lBc0JqRixZQUFZLEdBQXNCLEVBQUUsTUFBa0I7UUFDcEQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBckIyQixrQkFBYSxHQUFHLElBQUksQ0FBQztRQVk3RCxxSEFBcUg7UUFDckgsK0VBQStFO1FBQ3RFLGdCQUFXLEdBQThDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFJN0YsY0FBUyxHQUFHLFNBQVMsQ0FBQSxNQUFNLENBQUM7UUFJMUIsbUhBQW1IO1FBQ25ILG9IQUFvSDtRQUNwSCxtQkFBbUIsQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1FBQ3JELElBQUksbUJBQW1CLENBQUMsOEJBQThCLEtBQUssQ0FBQyxFQUFFO1lBQzVELElBQUk7Z0JBQ0YsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLE9BQU8sTUFBTSxFQUFFLENBQUMsb0JBQW9CLEtBQUssVUFBVSxFQUFFO29CQUNuRSxNQUFNLENBQUMsS0FBSyxDQUFDOzs4RkFFdUUsQ0FBQyxDQUFDO2lCQUN2RjthQUNGO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsTUFBTSxDQUFDLEtBQUssQ0FBQzs7NERBRXVDLENBQUMsQ0FBQzthQUN2RDtTQUNGO0lBQ0gsQ0FBQztJQXBDRCxJQUFhLElBQUk7UUFDZixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQWEsSUFBSSxDQUFDLEtBQWU7UUFDL0IsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbkIsMEJBQTBCO1FBQzFCLHlDQUF5QztRQUN6QyxJQUFJO0lBQ04sQ0FBQzs7QUFYTSxrREFBOEIsR0FBRyxDQUFDLENBQUM7aUhBRC9CLG1CQUFtQjtxR0FBbkIsbUJBQW1CLG9OQWtCbkIsYUFBYSx1RUNwQzFCLG80QkFxQkE7NEZESGEsbUJBQW1CO2tCQVAvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFdBQVcsRUFBRSx1QkFBdUI7b0JBQ3BDLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixDQUFDO29CQUNwQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDO2lJQUd5QyxhQUFhO3NCQUFwRCxXQUFXO3VCQUFDLHlCQUF5QjtnQkFjN0IsV0FBVztzQkFBbkIsS0FBSztnQkFFdUMsTUFBTTtzQkFBbEQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnQgKi9cbmltcG9ydCB7IE1hdERhdGVwaWNrZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE10bmFMb2dnZXIgfSBmcm9tICdAbXRuYS9jb3JlLWFuZ3VsYXInO1xuaW1wb3J0IHsgRGF0ZUl0ZW0sIERhdGVSYW5nZSB9IGZyb20gJ0BtdG5hL3dlYi1mb3JtLXRzJztcblxuaW1wb3J0IHsgTXRuYVdmQmFzZVZhbHVlSXRlbSB9IGZyb20gJy4uLy4uL2Jhc2UtaXRlbXMvYmFzZS12YWx1ZS1pdGVtLmNvbXBvbmVudCc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSxuby12YXJcbmRlY2xhcmUgdmFyIG1vbWVudDogYW55O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdG5hLXdmLWRhdGUtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTXRuYVdmRGF0ZUNvbXBvbmVudCBleHRlbmRzIE10bmFXZkJhc2VWYWx1ZUl0ZW08RGF0ZUl0ZW0sIEZvcm1Db250cm9sPiB7XG4gIHN0YXRpYyBkYXRlRm9ybUl0ZW1Db21wb25lbnRJbnN0YW5jZXMgPSAwO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm10bmEtd2YtZGF0ZS1pdGVtJykgZGF0ZUl0ZW1DbGFzcyA9IHRydWU7XG5cbiAgb3ZlcnJpZGUgZ2V0IGl0ZW0oKTogRGF0ZUl0ZW0ge1xuICAgIHJldHVybiBzdXBlci5pdGVtO1xuICB9XG4gIG92ZXJyaWRlIHNldCBpdGVtKHZhbHVlOiBEYXRlSXRlbSkge1xuICAgIHN1cGVyLml0ZW0gPSB2YWx1ZTtcbiAgICAvLyBpZiAodGhpcy5pdGVtLmZvcm1hdCkge1xuICAgIC8vICAgdGhpcy5jb25maWd1cmVEYXRlUGlja2VyRm9ybWF0dGVyKCk7XG4gICAgLy8gfVxuICB9XG5cbiAgLy8gVE9ETzogVGhpcyBpcyBub3QgY3VycmVubHR5IHVzZWQsIHRoZSBiYWNrIGVuZCBuZWVkcyB0byBhZGQgcmFuZ2UgbGltaXRzIG9uIHRoZSBEYXRlSXRlbSBpbiBvcmRlciBmb3IgdGhpcyB0byB3b3JrXG4gIC8vIFJlbW92ZSBvbmNlIGFjY29tcGxpc2hlZCBhbmQgcmVwbGFjZSB1c2FnZSB3aXRoIGl0ZW0ucmFuZ2VMaW1pdHMgaW4gdGhlIGh0bWxcbiAgQElucHV0KCkgcmFuZ2VMaW1pdHM6IERhdGVSYW5nZTxEYXRlIHwgbnVsbD4gfCBudWxsIHwgdW5kZWZpbmVkID0geyBlbmQ6IG51bGwsIHN0YXJ0OiBudWxsIH07XG5cbiAgQFZpZXdDaGlsZChNYXREYXRlcGlja2VyLCB7IHN0YXRpYzogZmFsc2UgfSkgcGlja2VyOiBNYXREYXRlcGlja2VyPERhdGU+IHwgdW5kZWZpbmVkO1xuXG4gIF9kYXRlVGV4dCA9ICRsb2NhbGl6ZWBEYXRlYDtcblxuICBjb25zdHJ1Y3RvcihjZHI6IENoYW5nZURldGVjdG9yUmVmLCBsb2dnZXI6IE10bmFMb2dnZXIpIHtcbiAgICBzdXBlcihjZHIpO1xuICAgIC8vIFdlIG5lZWQgdG8gY2hlY2sgdG8gZW5zdXJlICdtb21lbnQnICYgJ21vbWVudC1qZGF0ZWZvcm1hdHBhcnNlcicgc2NyaXB0cyBoYXZlIGJlZW4gYWRkZWQgdG8gYW5ndWxhci5qc29uIHNvIHRoYXRcbiAgICAvLyB0aGUgRGF0ZUZvcm1JdGVtQ29tcG9uZW50IGRvZXNuJ3QgYnJlYWsgd2hlbiBhdHRlbXB0aW5nIHRvIGZvcm1hdCBTaW1wbGVEYXRlRm9ybWF0IHN0cmluZyB0byBNb21lbnQgZm9ybWF0IHN0cmluZ1xuICAgIE10bmFXZkRhdGVDb21wb25lbnQuZGF0ZUZvcm1JdGVtQ29tcG9uZW50SW5zdGFuY2VzKys7XG4gICAgaWYgKE10bmFXZkRhdGVDb21wb25lbnQuZGF0ZUZvcm1JdGVtQ29tcG9uZW50SW5zdGFuY2VzID09PSAxKSB7XG4gICAgICB0cnkge1xuICAgICAgICBpZiAoISFtb21lbnQgJiYgdHlwZW9mIG1vbWVudCgpLnRvTW9tZW50Rm9ybWF0U3RyaW5nICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKGBbRGF0ZUZvcm1JdGVtQ29tcG9uZW50XSBjb25zdHJ1Y3RvclxuICAgICAgICAgLSBDYW5ub3QgZmluZCBtb21lbnQtamRhdGVmb3JtYXRwYXJzZXIsIG1ha2Ugc3VyZSB0byBpbnN0YWxsIHRoZSBkZXBlbmRlbmN5IGFuZCBhZGQgdGhlIHNjcmlwdCBpbiBhbmd1bGFyLmpzb24sIGkuZS5cbiAgICAgICAgIFwic2NyaXB0c1wiOiBbXCJub2RlX21vZHVsZXMvbW9tZW50LWpkYXRlZm9ybWF0cGFyc2VyL21vbWVudC1qZGF0ZWZvcm1hdHBhcnNlci5taW4uanNcIl1gKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBsb2dnZXIuZXJyb3IoYFtEYXRlRm9ybUl0ZW1Db21wb25lbnRdIGNvbnN0cnVjdG9yXG4gICAgICAgLSBDYW5ub3QgZmluZCBtb21lbnQuanMsIG1ha2Ugc3VyZSB0byBpbnN0YWxsIHRoZSBkZXBlbmRlbmN5IGFuZCBhZGQgdGhlIHNjcmlwdCBpbiBhbmd1bGFyLmpzb24sIGkuZS5cbiAgICAgICBcInNjcmlwdHNcIjogW1wibm9kZV9tb2R1bGVzL21vbWVudC9taW4vbW9tZW50Lm1pbi5qc1wiXWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNpbmNlIHdlIHVzZSB0aGUgaW5qZWN0b3Igbm93LCB3ZSBjYW4gYWRkIHRoZSBjb3JyZWN0IE1BVF9EQVRFX0ZPUk1BVFMgcHJvdmlkZXIgdG8gdGhlIGNvbXBvbmVudHMgbW9kdWxlIGFuZCByZW1vdmUgdGhlIG5lZWQgdG8gbWFudWFsbHkgY29uZmlndXJlIHRoZSBkYXRlIHBpY2tlciBmb3JtYXRzIG9uIHRoZSBjb21wb25lbnQgaW5zdGFuY2UuXG4gIC8vIFRoaXMgY29kZSBpcyBubyBsb25nZXIgdXNlZCwgYnV0IGlzIGtlcHQgaGVyZSBmb3IgcmVmZXJlbmNlIGluIGNhc2Ugd2UgbmVlZCB0byBtYW51YWxseSBjb25maWd1cmUgdGhlIGRhdGUgcGlja2VyIGZvcm1hdHMgaW4gdGhlIGZ1dHVyZSBvciBpZiB3ZSB3YW50IHRvIHVzZSB0aGlzIGFwcHJvYWNoIGZvciBvdGhlciBkYXRlIHBpY2tlcnMgdGhhdCBkb24ndCB1c2UgdGhlIE1BVF9EQVRFX0ZPUk1BVFMgcHJvdmlkZXIuXG5cbiAgLy8gbmdBZnRlclZpZXdJbml0KCkge1xuICAvLyAgIHRoaXMuY29uZmlndXJlRGF0ZVBpY2tlckZvcm1hdHRlcigpO1xuICAvLyB9XG4gIC8vXG4gIC8vIC8qKlxuICAvLyAgKiBNYW51YWxseSBjaGFuZ2UgdGhlIHBhcnNlIGFuZCBkaXNwbGF5IGZvcm1hdHMgb2YgdGhlIGRhdGUgcGlja2VyLlxuICAvLyAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvaXNzdWVzLzgzNTUjaXNzdWVjb21tZW50LTM3Njc4MzI5M1xuICAvLyAgKi9cbiAgLy8gcHJpdmF0ZSBjb25maWd1cmVEYXRlUGlja2VyRm9ybWF0dGVyKCkge1xuICAvLyAgIGlmICh0aGlzLnBpY2tlcikge1xuICAvLyAgICAgY29uc3QgZGF0ZXBpY2tlcklucHV0OiBNYXREYXRlcGlja2VySW5wdXQ8RGF0ZT4gPSB0aGlzLnBpY2tlci5kYXRlcGlja2VySW5wdXQgYXMgTWF0RGF0ZXBpY2tlcklucHV0PERhdGU+O1xuICAvLyAgICAgLy8gQHRzLWlnbm9yZTogYWNjZXNzIHRoZSBwcml2YXRlIGRhdGUgZm9ybWF0cyBvbiB0aGUgZGF0ZSBwaWNrZXJcbiAgLy8gICAgIGNvbnN0IGQ6IE1hdERhdGVGb3JtYXRzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkYXRlcGlja2VySW5wdXQuX2RhdGVGb3JtYXRzKSk7XG4gIC8vXG4gIC8vICAgICAvLyBDb252ZXJ0IHRoZSBKYXZhIFNpbXBsZURhdGVGb3JtYXQgdG8gdGhlIG1vbWVudCBlcXVpdmFsZW50cyB1c2luZyBtb21lbnQtamRhdGVmb3JtYXRwYXJzZXJcbiAgLy8gICAgIGNvbnN0IG1vbWVudEZvcm1hdFN0cmluZyA9IG1vbWVudCgpLnRvTW9tZW50Rm9ybWF0U3RyaW5nKHRoaXMuaXRlbS5mb3JtYXQpO1xuICAvLyAgICAgLy8gVXNlIHRoZSBjb252ZXJ0ZWQgZm9ybWF0IGZvciB0aGUgZGF0ZSBwaWNrZXIgZGlzcGxheVxuICAvLyAgICAgZC5kaXNwbGF5LmRhdGVJbnB1dCA9IG1vbWVudEZvcm1hdFN0cmluZztcbiAgLy8gICAgIC8vIFVzZSB0aGUgY29udmVydGVkIGZvcm1hdCBmb3IgdGhlIGRhdGUgcGlja2VyIHBhcnNlciAodXNlciBpbnB1dClcbiAgLy8gICAgIGQucGFyc2UuZGF0ZUlucHV0ID0gbW9tZW50Rm9ybWF0U3RyaW5nO1xuICAvLyAgICAgLy8gQHRzLWlnbm9yZTogc2V0IHRoZSB1cGRhdGVkIGRhdGUgZm9ybWF0c1xuICAvLyAgICAgZGF0ZXBpY2tlcklucHV0Ll9kYXRlRm9ybWF0cyA9IGQ7XG4gIC8vXG4gIC8vICAgICAvLyBAdHMtaWdub3JlOiBtYW51YWxseSBmb3JtYXQgdGhlIGN1cnJlbnQgdmFsdWUgaW4gdGhlIGRhdGUgcGlja2VyXG4gIC8vICAgICBkYXRlcGlja2VySW5wdXQuX2Zvcm1hdFZhbHVlKGRhdGVwaWNrZXJJbnB1dC52YWx1ZSk7XG4gIC8vICAgfVxuICAvLyB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyXCI+PC9uZy1jb250YWluZXI+XG48bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJjb250cm9sXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBbbXRuYUhpZ2hsaWdodF09XCJpbmRpY2F0b3JTdGF0dXMgPT09ICdBQ1RJVkUnICYmICFoYXNJdGVtSGVhZGVyXCI+XG4gIDxtYXQtbGFiZWw+e3sgaXRlbS5sYWJlbCB8fCBfZGF0ZVRleHQgfX08L21hdC1sYWJlbD5cbiAgPGlucHV0XG4gICAgbWF0SW5wdXRcbiAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCJcbiAgICBbbWF4XT1cInJhbmdlTGltaXRzPy5lbmRcIlxuICAgIFttaW5dPVwicmFuZ2VMaW1pdHM/LnN0YXJ0XCJcbiAgICBwbGFjZWhvbGRlcj1cIkNob29zZSBhIGRhdGVcIlxuICAgIGkxOG4tcGxhY2Vob2xkZXJcbiAgICBbcmVxdWlyZWRdPVwiaXRlbS5yZXF1aXJlZFwiXG4gICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5IHx8IGNvbnRyb2wuZGlzYWJsZWRcIlxuICAvPlxuICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInBpY2tlclwiIFtkaXNhYmxlZF09XCJyZWFkb25seSB8fCBjb250cm9sLmRpc2FibGVkXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG4gIDxtYXQtZGF0ZXBpY2tlciAjcGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XG4gIDxtYXQtZXJyb3IgKm5nRm9yPVwibGV0IGVycm9yIG9mIGNvbnRyb2wuZXJyb3JzIHwga2V5dmFsdWVcIj5cbiAgICB7eyBlcnJvciB8IG10bmFXZkdldENvbnRyb2xFcnJvciA6IGl0ZW0gfX1cbiAgPC9tYXQtZXJyb3I+XG4gIDxtYXQtaGludD57eyBpdGVtLmZvcm1hdCB9fTwvbWF0LWhpbnQ+XG48L21hdC1mb3JtLWZpZWxkPlxuIl19
@@ -8,8 +8,6 @@ import { MatInputModule } from '@angular/material/input';
8
8
  import { MtnaHighlightModule } from '@mtna/core-angular';
9
9
  import { MtnaWfGetFormControlErrorPipeModule } from '../../../pipes/get-form-control-error.pipe';
10
10
  import { MtnaWfDateComponent } from './date.component';
11
- import { MAT_DATE_FORMATS } from '@angular/material/core';
12
- import { CUSTOM_MAT_DATE_FORMAT } from '../../../models/custom-date-format-provider.model';
13
11
  import * as i0 from "@angular/core";
14
12
  export class MtnaWfDateModule {
15
13
  }
@@ -23,7 +21,7 @@ MtnaWfDateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
23
21
  MtnaHighlightModule,
24
22
  ReactiveFormsModule,
25
23
  MtnaWfGetFormControlErrorPipeModule], exports: [MtnaWfDateComponent] });
26
- MtnaWfDateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfDateModule, providers: [{ provide: MAT_DATE_FORMATS, useValue: CUSTOM_MAT_DATE_FORMAT }], imports: [[
24
+ MtnaWfDateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfDateModule, imports: [[
27
25
  CommonModule,
28
26
  FormsModule,
29
27
  MatFormFieldModule,
@@ -50,7 +48,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
50
48
  ],
51
49
  declarations: [MtnaWfDateComponent],
52
50
  exports: [MtnaWfDateComponent],
53
- providers: [{ provide: MAT_DATE_FORMATS, useValue: CUSTOM_MAT_DATE_FORMAT }],
54
51
  }]
55
52
  }] });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ZWItZm9ybS1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWl0ZW0taW1wbC9kYXRlL2RhdGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFekQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbURBQW1ELENBQUM7O0FBa0IzRixNQUFNLE9BQU8sZ0JBQWdCOzs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBSlosbUJBQW1CLGFBVmhDLFlBQVk7UUFDWixXQUFXO1FBQ1gsa0JBQWtCO1FBQ2xCLGNBQWM7UUFDZCxtQkFBbUI7UUFDbkIsbUJBQW1CO1FBQ25CLG1CQUFtQjtRQUNuQixtQkFBbUI7UUFDbkIsbUNBQW1DLGFBRzNCLG1CQUFtQjsrR0FHbEIsZ0JBQWdCLGFBRmhCLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLENBQUMsWUFibkU7WUFDUCxZQUFZO1lBQ1osV0FBVztZQUNYLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QsbUJBQW1CO1lBQ25CLG1CQUFtQjtZQUNuQixtQkFBbUI7WUFDbkIsbUJBQW1CO1lBQ25CLG1DQUFtQztTQUNwQzs0RkFLVSxnQkFBZ0I7a0JBaEI1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsbUNBQW1DO3FCQUNwQztvQkFDRCxZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDbkMsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQzlCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxDQUFDO2lCQUM3RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRNb21lbnREYXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtbW9tZW50LWFkYXB0ZXInO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE10bmFIaWdobGlnaHRNb2R1bGUgfSBmcm9tICdAbXRuYS9jb3JlLWFuZ3VsYXInO1xuXG5pbXBvcnQgeyBNdG5hV2ZHZXRGb3JtQ29udHJvbEVycm9yUGlwZU1vZHVsZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL2dldC1mb3JtLWNvbnRyb2wtZXJyb3IucGlwZSc7XG5pbXBvcnQgeyBNdG5hV2ZEYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNQVRfREFURV9GT1JNQVRTIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBDVVNUT01fTUFUX0RBVEVfRk9STUFUIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2N1c3RvbS1kYXRlLWZvcm1hdC1wcm92aWRlci5tb2RlbCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgTWF0TW9tZW50RGF0ZU1vZHVsZSxcbiAgICBNdG5hSGlnaGxpZ2h0TW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTXRuYVdmR2V0Rm9ybUNvbnRyb2xFcnJvclBpcGVNb2R1bGUsXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW010bmFXZkRhdGVDb21wb25lbnRdLFxuICBleHBvcnRzOiBbTXRuYVdmRGF0ZUNvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IENVU1RPTV9NQVRfREFURV9GT1JNQVQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIE10bmFXZkRhdGVNb2R1bGUge31cbiJdfQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ZWItZm9ybS1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWl0ZW0taW1wbC9kYXRlL2RhdGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFekQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBaUJ2RCxNQUFNLE9BQU8sZ0JBQWdCOzs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBSFosbUJBQW1CLGFBVmhDLFlBQVk7UUFDWixXQUFXO1FBQ1gsa0JBQWtCO1FBQ2xCLGNBQWM7UUFDZCxtQkFBbUI7UUFDbkIsbUJBQW1CO1FBQ25CLG1CQUFtQjtRQUNuQixtQkFBbUI7UUFDbkIsbUNBQW1DLGFBRzNCLG1CQUFtQjsrR0FFbEIsZ0JBQWdCLFlBZGxCO1lBQ1AsWUFBWTtZQUNaLFdBQVc7WUFDWCxrQkFBa0I7WUFDbEIsY0FBYztZQUNkLG1CQUFtQjtZQUNuQixtQkFBbUI7WUFDbkIsbUJBQW1CO1lBQ25CLG1CQUFtQjtZQUNuQixtQ0FBbUM7U0FDcEM7NEZBSVUsZ0JBQWdCO2tCQWY1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsbUNBQW1DO3FCQUNwQztvQkFDRCxZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDbkMsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdE1vbWVudERhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC1tb21lbnQtYWRhcHRlcic7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTXRuYUhpZ2hsaWdodE1vZHVsZSB9IGZyb20gJ0BtdG5hL2NvcmUtYW5ndWxhcic7XG5cbmltcG9ydCB7IE10bmFXZkdldEZvcm1Db250cm9sRXJyb3JQaXBlTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvZ2V0LWZvcm0tY29udHJvbC1lcnJvci5waXBlJztcbmltcG9ydCB7IE10bmFXZkRhdGVDb21wb25lbnQgfSBmcm9tICcuL2RhdGUuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBNYXRNb21lbnREYXRlTW9kdWxlLFxuICAgIE10bmFIaWdobGlnaHRNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNdG5hV2ZHZXRGb3JtQ29udHJvbEVycm9yUGlwZU1vZHVsZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbTXRuYVdmRGF0ZUNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtNdG5hV2ZEYXRlQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTXRuYVdmRGF0ZU1vZHVsZSB7fVxuIl19
@@ -143,7 +143,7 @@ export class MtnaWfYearQuarterComponent extends MtnaWfBaseValueItem {
143
143
  }
144
144
  }
145
145
  MtnaWfYearQuarterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfYearQuarterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: MTNA_WF_DEFAULT_YEAR_RANGE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
146
- MtnaWfYearQuarterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MtnaWfYearQuarterComponent, selector: "mtna-wf-year-quarter-item", host: { properties: { "class.mtna-wf-year-quarter-item": "this.yearQuarterItemClass" } }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"header\"></ng-container>\n<div\n *ngIf=\"control\"\n class=\"year-quarter-container\"\n fxLayout=\"row\"\n fxLayoutGap=\"8px\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !hasItemHeader\"\n>\n <mat-form-field>\n <mat-select [formControl]=\"_yearControl\" aria-label=\"Year Selection\" i18n-aria-label>\n <mat-option *ngFor=\"let year of _yearSelection\" [value]=\"year\">{{ year }}</mat-option>\n </mat-select>\n <mat-error *ngFor=\"let error of control.errors | keyvalue\">\n {{ error | mtnaWfGetControlError : item }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <mat-select [formControl]=\"_quarterControl\" aria-label=\"Quarter Selection\" i18n-aria-label>\n <mat-option i18n>None</mat-option>\n <mat-option *ngFor=\"let quarter of _yearControl.value | mtnaWfGetQuarters : componentRangeLimits\" [value]=\"quarter\">{{\n $any(quarter) | mtnaWfDateQuarter : 'short'\n }}</mat-option>\n </mat-select>\n <mat-error *ngFor=\"let error of control.errors | keyvalue\">\n {{ error | mtnaWfGetControlError : item }}\n </mat-error>\n </mat-form-field>\n</div>\n", styles: ["mtna-wf-year-quarter-item.mtna-wf-control-item .mat-form-field{width:100%}mtna-wf-year-quarter-item.mtna-wf-control-item .mtna-wf-error-container{font-size:75%;line-height:1;min-height:1em;margin-top:-.75rem}mtna-wf-year-quarter-item.mtna-wf-control-item .control-item-content{padding:.35em .75em .625em}mtna-wf-year-quarter-item.mtna-wf-control-item .mtna-wf-item-header~:not(.mtna-wf-error-container):not(.mat-list){padding-left:.75em}mtna-wf-year-quarter-item.mtna-wf-control-item .mtna-wf-item-header~:not(.mtna-wf-error-container):not(.mat-list).mat-form-field{width:calc(100% - .75em)}mtna-wf-year-quarter-item.mtna-wf-year-quarter-item .year-quarter-container>.mat-form-field{max-width:75px}mtna-wf-year-quarter-item.mtna-wf-year-quarter-item .year-quarter-container>.mat-form-field:first-of-type{margin-right:8px}\n"], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i2.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i3.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i5.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i6.MtnaHighlightDirective, selector: "[mtnaHighlight]", inputs: ["mtnaHighlight", "mtnaHighlightColor"], exportAs: ["mtnaHighlight"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.MatError, selector: "mat-error", inputs: ["id"] }], pipes: { "keyvalue": i4.KeyValuePipe, "mtnaWfGetControlError": i8.MtnaWfGetFormControlErrorPipe, "mtnaWfGetQuarters": i9.MtnaWfGetAvailableQuartersPipe, "mtnaWfDateQuarter": i10.MtnaWfDateQuarterPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
146
+ MtnaWfYearQuarterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MtnaWfYearQuarterComponent, selector: "mtna-wf-year-quarter-item", host: { properties: { "class.mtna-wf-year-quarter-item": "this.yearQuarterItemClass" } }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"header\"></ng-container>\n<div\n *ngIf=\"control\"\n class=\"year-quarter-container\"\n fxLayout=\"row\"\n fxLayoutGap=\"8px\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !hasItemHeader\"\n>\n <mat-form-field>\n <mat-select [formControl]=\"_yearControl\" aria-label=\"Year Selection\" i18n-aria-label>\n <mat-option *ngFor=\"let year of _yearSelection\" [value]=\"year\">{{ year }}</mat-option>\n </mat-select>\n <mat-error *ngFor=\"let error of control.errors | keyvalue\">\n {{ error | mtnaWfGetControlError : item }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <mat-select [formControl]=\"_quarterControl\" aria-label=\"Quarter Selection\" i18n-aria-label>\n <mat-option i18n>None</mat-option>\n <mat-option *ngFor=\"let quarter of _yearControl.value | mtnaWfGetQuarters : componentRangeLimits\" [value]=\"quarter\">{{\n $any(quarter) | mtnaWfDateQuarter : 'short'\n }}</mat-option>\n </mat-select>\n <mat-error *ngFor=\"let error of control.errors | keyvalue\">\n {{ error | mtnaWfGetControlError : item }}\n </mat-error>\n </mat-form-field>\n</div>\n", styles: ["mtna-wf-year-quarter-item.mtna-wf-control-item .mat-form-field{width:100%}mtna-wf-year-quarter-item.mtna-wf-control-item .mtna-wf-error-container{font-size:75%;line-height:1;min-height:1em;margin-top:-.75rem}mtna-wf-year-quarter-item.mtna-wf-control-item .control-item-content{padding:.35em .75em .625em}mtna-wf-year-quarter-item.mtna-wf-control-item .mtna-wf-item-header~:not(.mtna-wf-error-container):not(.mat-list){padding-left:.75em}mtna-wf-year-quarter-item.mtna-wf-control-item .mtna-wf-item-header~:not(.mtna-wf-error-container):not(.mat-list).mat-form-field{width:calc(100% - .75em)}mtna-wf-year-quarter-item.mtna-wf-year-quarter-item .year-quarter-container>.mat-form-field{max-width:75px}mtna-wf-year-quarter-item.mtna-wf-year-quarter-item .year-quarter-container>.mat-form-field:first-of-type{margin-right:8px}mtna-wf-year-quarter-item .mat-select{min-width:60px}\n"], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i2.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i3.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i5.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i6.MtnaHighlightDirective, selector: "[mtnaHighlight]", inputs: ["mtnaHighlight", "mtnaHighlightColor"], exportAs: ["mtnaHighlight"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.MatError, selector: "mat-error", inputs: ["id"] }], pipes: { "keyvalue": i4.KeyValuePipe, "mtnaWfGetControlError": i8.MtnaWfGetFormControlErrorPipe, "mtnaWfGetQuarters": i9.MtnaWfGetAvailableQuartersPipe, "mtnaWfDateQuarter": i10.MtnaWfDateQuarterPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
147
147
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfYearQuarterComponent, decorators: [{
148
148
  type: Component,
149
149
  args: [{
@@ -1,6 +1,8 @@
1
1
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
2
- import { Component, EventEmitter, Inject, Input, Output, } from '@angular/core';
2
+ import { Component, EventEmitter, Inject, Injector, Input, Output, } from '@angular/core';
3
+ import { MAT_DATE_FORMATS } from '@angular/material/core';
3
4
  import { INJECTION_SERVICE, MtnaComponentInjector } from '@mtna/core-angular';
5
+ import { isDateItem, isOffsetDateRangeItem } from '@mtna/web-form-ts';
4
6
  import { BehaviorSubject } from 'rxjs';
5
7
  import { MtnaWfBaseFormItemControl } from '../base-items/base-form-item-control.component';
6
8
  import { MtnaWfBaseGroupItem } from '../base-items/base-group-item.component';
@@ -146,6 +148,45 @@ export class MtnaWfItemInjector extends MtnaComponentInjector {
146
148
  }
147
149
  }
148
150
  }
151
+ configureInjectedComponent() {
152
+ if (isDateItem(this.item) || isOffsetDateRangeItem(this.item)) {
153
+ const itemWithDateFormat = this.item;
154
+ const key = this.getInjectedComponentKey();
155
+ if (key && this.injectionService) {
156
+ const injectedComponent = this.injectionService.getInjectedComponent(key);
157
+ if (injectedComponent) {
158
+ const componentFactory = this.componentFactoryResolver.resolveComponentFactory(injectedComponent.component);
159
+ const compModule = componentFactory.ngModule;
160
+ // TODO:
161
+ const providers = [];
162
+ const updatedMatDateFormats = {
163
+ parse: {
164
+ dateInput: itemWithDateFormat.format,
165
+ },
166
+ display: {
167
+ dateInput: itemWithDateFormat.format,
168
+ monthLabel: 'MMM',
169
+ monthYearLabel: 'YYYY MMM',
170
+ dateA11yLabel: 'LL',
171
+ monthYearA11yLabel: 'MMMM YYYY', // Accessible month-year, e.g., "July 2025"
172
+ },
173
+ };
174
+ providers.push({ provide: MAT_DATE_FORMATS, useValue: updatedMatDateFormats });
175
+ const componentRef = this.viewContainerRef.createComponent(componentFactory, undefined, providers.length > 0 ? Injector.create({ providers }) : this.injector, undefined, compModule);
176
+ this.configureComponent(componentRef);
177
+ }
178
+ else {
179
+ console.error('No injection component found for key [' + key + ']');
180
+ }
181
+ }
182
+ else {
183
+ console.warn('No key provided for injection');
184
+ }
185
+ }
186
+ else {
187
+ super.configureInjectedComponent();
188
+ }
189
+ }
149
190
  getInjectedComponentKey() {
150
191
  if (this.item) {
151
192
  return this.item.itemId;
@@ -192,4 +233,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
192
233
  }], toggleFormItems: [{
193
234
  type: Output
194
235
  }] } });
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pdGVtLWluamVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dlYi1mb3JtLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0taXRlbS1pbmplY3Rvci9mb3JtLWl0ZW0taW5qZWN0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQ0wsU0FBUyxFQUdULFlBQVksRUFDWixNQUFNLEVBRU4sS0FBSyxFQUVMLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsaUJBQWlCLEVBQW9CLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHaEcsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFHckQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFM0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDM0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDM0gsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTTFDLHFFQUFxRTtBQUNyRSxNQUFNLE9BQU8sa0JBQW1CLFNBQVEscUJBQXFCO0lBeUgzRCxZQUNZLFFBQWtCLEVBQ2xCLEdBQTZCLEVBQzdCLEdBQXFCLEVBQ00sZ0JBQWtDO1FBRXZFLEtBQUssQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFF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dCI6WyJpbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgQ29tcG9uZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBJTkpFQ1RJT05fU0VSVklDRSwgSW5qZWN0aW9uU2VydmljZSwgTXRuYUNvbXBvbmVudEluamVjdG9yIH0gZnJvbSAnQG10bmEvY29yZS1hbmd1bGFyJztcbmltcG9ydCB7IEFubm90YXRpb25JbmRpY2F0b3JTdGF0dXMgfSBmcm9tICdAbXRuYS9wb2pvLXNvY2lhbC1hbmd1bGFyJztcbmltcG9ydCB7IEZvcm1JdGVtIH0gZnJvbSAnQG10bmEvd2ViLWZvcm0tdHMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRm9ybVN0ZXAsIFRvZ2dsZUZvcm1JdGVtc0RhdGEgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgTXRuYVdmQmFzZUZvcm1JdGVtQ29udHJvbCB9IGZyb20gJy4uL2Jhc2UtaXRlbXMvYmFzZS1mb3JtLWl0ZW0tY29udHJvbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTXRuYVdmQmFzZUZvcm1JdGVtIH0gZnJvbSAnLi4vYmFzZS1pdGVtcy9iYXNlLWZvcm0taXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTXRuYVdmQmFzZUdyb3VwSXRlbSB9IGZyb20gJy4uL2Jhc2UtaXRlbXMvYmFzZS1ncm91cC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNdG5hV2ZCYXNlUGFyZW50VmFsdWVJdGVtIH0gZnJvbSAnLi4vYmFzZS1pdGVtcy9iYXNlLXBhcmVudC12YWx1ZS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNdG5hV2ZCYXNlU2VjdGlvbkl0ZW0gfSBmcm9tICcuLi9iYXNlLWl0ZW1zL2Jhc2Utc2VjdGlvbi1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNdG5hV2ZCYXNlU2luZ2xlU2VsZWN0aW9uUGFyZW50VmFsdWVJdGVtIH0gZnJvbSAnLi4vYmFzZS1pdGVtcy9iYXNlLXNpbmdsZS1zZWxlY3Rpb24tcGFyZW50LXZhbHVlLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE10bmFXZkJhc2VWYWx1ZUl0ZW0gfSBmcm9tICcuLi9iYXNlLWl0ZW1zL2Jhc2UtdmFsdWUtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgaXNQcmVzZW50IH0gZnJvbSAnQG10bmEvY29yZS10cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ210bmEtd2YtaXRlbS1pbmplY3RvcicsXG4gIHRlbXBsYXRlOiBgYCxcbn0pXG4vKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1jbGFzcy1zdWZmaXggKi9cbmV4cG9ydCBjbGFzcyBNdG5hV2ZJdGVtSW5qZWN0b3IgZXh0ZW5kcyBNdG5hQ29tcG9uZW50SW5qZWN0b3IgaW1wbGVtZW50cyBPbkluaXQge1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfaW5MaXN0OiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yZWFkb25seTogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfaXNDb21wYWN0OiBCb29sZWFuSW5wdXQ7XG5cbiAgQElucHV0KCkgY29sb3I6IFRoZW1lUGFsZXR0ZTtcblxuICBASW5wdXQoKVxuICBnZXQgY29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fY29udHJvbDtcbiAgfVxuXG4gIHNldCBjb250cm9sKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9jb250cm9sID0gY29udHJvbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBfY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCB8IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKVxuICBnZXQgaGVhZGVyKCk6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2hlYWRlcjtcbiAgfVxuXG4gIHNldCBoZWFkZXIodmFsdWU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbCkge1xuICAgIHRoaXMuX2hlYWRlciA9IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGVhZGVyOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBpbmRpY2F0b3JTdGF0dXMoKTogQW5ub3RhdGlvbkluZGljYXRvclN0YXR1cyB7XG4gICAgcmV0dXJuIHRoaXMuX2luZGljYXRvclN0YXR1cy52YWx1ZTtcbiAgfVxuXG4gIHNldCBpbmRpY2F0b3JTdGF0dXModmFsdWU6IEFubm90YXRpb25JbmRpY2F0b3JTdGF0dXMpIHtcbiAgICB0aGlzLl9pbmRpY2F0b3JTdGF0dXMubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2luZGljYXRvclN0YXR1cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QW5ub3RhdGlvbkluZGljYXRvclN0YXR1cz4oJ0lOQUNUSVZFJyk7XG5cbiAgQElucHV0KClcbiAgZ2V0IGlzQ29tcGFjdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNDb21wYWN0O1xuICB9XG5cbiAgc2V0IGlzQ29tcGFjdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2lzQ29tcGFjdCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF9pc0NvbXBhY3QgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBnZXQgaW5MaXN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pbkxpc3Q7XG4gIH1cblxuICBzZXQgaW5MaXN0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5faW5MaXN0ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luTGlzdCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBpdGVtKCk6IEZvcm1JdGVtIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbTtcbiAgfVxuXG4gIHNldCBpdGVtKHZhbHVlOiBGb3JtSXRlbSkge1xuICAgIHRoaXMuX2l0ZW0gPSB2YWx1ZTtcbiAgICBpZiAodGhpcy53Zkl0ZW1Db21wb25lbnQpIHtcbiAgICAgIHRoaXMucmVzZXQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX2l0ZW0hOiBGb3JtSXRlbTtcblxuICBASW5wdXQoKVxuICBnZXQgcGFyZW50SWRzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnRJZHM7XG4gIH1cblxuICBzZXQgcGFyZW50SWRzKHZhbHVlOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgdGhpcy5fcGFyZW50SWRzID0gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF9wYXJlbnRJZHMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gIEBJbnB1dCgpXG4gIGdldCByZWFkb25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVhZG9ubHkudmFsdWU7XG4gIH1cblxuICBzZXQgcmVhZG9ubHkodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yZWFkb25seS5uZXh0KGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9yZWFkb25seSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBzdGVwKCk6IEZvcm1TdGVwIHwgbnVsbCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3N0ZXA7XG4gIH1cblxuICBzZXQgc3RlcCh2YWx1ZTogRm9ybVN0ZXAgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fc3RlcCA9IHZhbHVlO1xuICAgIGlmICh0aGlzLndmSXRlbUNvbXBvbmVudCAmJiB0aGlzLndmSXRlbUNvbXBvbmVudCBpbnN0YW5jZW9mIE10bmFXZkJhc2VTZWN0aW9uSXRlbSkge1xuICAgICAgdGhpcy53Zkl0ZW1Db21wb25lbnQuc3RlcCA9IHRoaXMuX3N0ZXA7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc3RlcDogRm9ybVN0ZXAgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG4gIEBPdXRwdXQoKSBmb2N1c2VkU2VjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybVN0ZXA+KCk7XG5cbiAgQE91dHB1dCgpIHRvZ2dsZUZvcm1JdGVtcyA9IG5ldyBFdmVudEVtaXR0ZXI8VG9nZ2xlRm9ybUl0ZW1zRGF0YT4oKTtcblxuICBwcml2YXRlIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPGFueT4gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgd2ZJdGVtQ29tcG9uZW50OiBNdG5hV2ZCYXNlRm9ybUl0ZW08YW55PiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBmb2N1c2VkU2VjdGlvblN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHRvZ2dsZUZvcm1JdGVtc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJvdGVjdGVkIGNmcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByb3RlY3RlZCB2Y3I6IFZpZXdDb250YWluZXJSZWYsXG4gICAgQEluamVjdChJTkpFQ1RJT05fU0VSVklDRSkgcHJvdGVjdGVkIGluamVjdGlvblNlcnZpY2U6IEluamVjdGlvblNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IsIGNmciwgdmNyLCBpbmplY3Rpb25TZXJ2aWNlKTtcbiAgfVxuXG4gIHJlc2V0KCkge1xuICAgIGlmIChpc1ByZXNlbnQodGhpcy5mb2N1c2VkU2VjdGlvblN1YnNjcmlwdGlvbikpIHtcbiAgICAgIHRoaXMuZm9jdXNlZFNlY3Rpb25TdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLmZvY3VzZWRTZWN0aW9uU3Vic2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAoaXNQcmVzZW50KHRoaXMudG9nZ2xlRm9ybUl0ZW1zU3Vic2NyaXB0aW9uKSkge1xuICAgICAgdGhpcy50b2dnbGVGb3JtSXRlbXNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLnRvZ2dsZUZvcm1JdGVtc1N1YnNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy5jb21wb25lbnRSZWY/LmRlc3Ryb3koKTtcbiAgICB0aGlzLndmSXRlbUNvbXBvbmVudCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLm5nT25Jbml0KCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pdGVtKSB7XG4gICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjb25maWd1cmVDb21wb25lbnQoY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55Pik6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50UmVmID0gY29tcG9uZW50UmVmO1xuICAgIHRoaXMud2ZJdGVtQ29tcG9uZW50ID0gY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIE10bmFXZkJhc2VGb3JtSXRlbTxhbnk+O1xuICAgIHRoaXMud2ZJdGVtQ29tcG9uZW50LmhlYWRlciA9IHRoaXMuaGVhZGVyO1xuICAgIHRoaXMuX2luZGljYXRvclN0YXR1cy5zdWJzY3JpYmUoKHN0YXR1cykgPT4ge1xuICAgICAgaWYgKHRoaXMud2ZJdGVtQ29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMud2ZJdGVtQ29tcG9uZW50LmluZGljYXRvclN0YXR1cyA9IHN0YXR1cztcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLndmSXRlbUNvbXBvbmVudC5pdGVtID0gdGhpcy5pdGVtO1xuICAgIHRoaXMud2ZJdGVtQ29tcG9uZW50LmNvbG9yID0gdGhpcy5jb2xvcjtcbiAgICB0aGlzLndmSXRlbUNvbXBvbmVudC5pc0NvbXBhY3QgPSB0aGlzLmlzQ29tcGFjdDtcblxuICAgIGlmICh0aGlzLndmSXRlbUNvbXBvbmVudCBpbnN0YW5jZW9mIE10bmFXZkJhc2VGb3JtSXRlbUNvbnRyb2wpIHtcbiAgICAgIHRoaXMud2ZJdGVtQ29tcG9uZW50LmNvbnRyb2wgPSB0aGlzLmNvbnRyb2w7XG4gICAgICB0aGlzLndmSXRlbUNvbXBvbmVudC5yZWFkb25seSA9IHRoaXMucmVhZG9ubHk7XG5cbiAgICAgIGlmICh0aGlzLndmSXRlbUNvbXBvbmVudCBpbnN0YW5jZW9mIE10bmFXZkJhc2VWYWx1ZUl0ZW0pIHtcbiAgICAgICAgdGhpcy53Zkl0ZW1Db21wb25lbnQuaW5MaXN0ID0gdGhpcy5pbkxpc3Q7XG5cbiAgICAgICAgaWYgKHRoaXMud2ZJdGVtQ29tcG9uZW50IGluc3RhbmNlb2YgTXRuYVdmQmFzZVBhcmVudFZhbHVlSXRlbSkge1xuICAgICAgICAgIHRoaXMud2ZJdGVtQ29tcG9uZW50LnBhcmVudElkcyA9IHRoaXMucGFyZW50SWRzO1xuICAgICAgICAgIC8vIGFkZGVkIG91dHB1dCB0byByZW1vdmUgdWkgc2VydmljZSBmcm9tIGJhc2UgY29tcG9uZW50c1xuICAgICAgICAgIHRoaXMudG9nZ2xlRm9ybUl0ZW1zU3Vic2NyaXB0aW9uID0gdGhpcy53Zkl0ZW1Db21wb25lbnQudG9nZ2xlRm9ybUl0ZW1zLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICAgICAgdGhpcy50b2dnbGVGb3JtSXRlbXMuZW1pdChkYXRhKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmICh0aGlzLndmSXRlbUNvbXBvbmVudCBpbnN0YW5jZW9mIE10bmFXZkJhc2VTaW5nbGVTZWxlY3Rpb25QYXJlbnRWYWx1ZUl0ZW0pIHtcbiAgICAgICAgICAgIC8vIGVtcHR5IGZvciBub3cgdW5sZXNzIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gcGFyYW1zIGFyZSBuZWVkZWQ7IHBsYWNlaG9sZGVyXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMud2ZJdGVtQ29tcG9uZW50IGluc3RhbmNlb2YgTXRuYVdmQmFzZUdyb3VwSXRlbSkge1xuICAgICAgdGhpcy53Zkl0ZW1Db21wb25lbnQucGFyZW50SWRzID0gdGhpcy5wYXJlbnRJZHM7XG5cbiAgICAgIGlmICh0aGlzLndmSXRlbUNvbXBvbmVudCBpbnN0YW5jZW9mIE10bmFXZkJhc2VTZWN0aW9uSXRlbSkge1xuICAgICAgICB0aGlzLndmSXRlbUNvbXBvbmVudC5zdGVwID0gdGhpcy5zdGVwO1xuICAgICAgICB0aGlzLmZvY3VzZWRTZWN0aW9uU3Vic2NyaXB0aW9uID0gdGhpcy53Zkl0ZW1Db21wb25lbnQuZm9jdXNlZC5zdWJzY3JpYmUoKHN0ZXApID0+IHtcbiAgICAgICAgICB0aGlzLmZvY3VzZWRTZWN0aW9uLmVtaXQoc3RlcCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRJbmplY3RlZENvbXBvbmVudEtleSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLml0ZW0pIHtcbiAgICAgIHJldHVybiB0aGlzLml0ZW0uaXRlbUlkO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdNdG5hV2ZJdGVtSW5qZWN0b3IgLSBnZXRJbmplY3RlZENvbXBvbmVudEtleSAtIGl0ZW0gaXMgdW5kZWZpbmVkJyk7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG59XG4iXX0=
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pdGVtLWluamVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dlYi1mb3JtLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0taXRlbS1pbmplY3Rvci9mb3JtLWl0ZW0taW5qZWN0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQ0wsU0FBUyxFQUdULFlBQVksRUFDWixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFHTCxNQUFNLEdBSVAsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFnQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3hGLE9BQU8sRUFBcUIsaUJBQWlCLEVBQW9CLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFbkgsT0FBTyxFQUFZLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBR3JELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRTNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQzNILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU0xQyxxRUFBcUU7QUFDckUsTUFBTSxP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S0FBSyxDQUFDLGtFQUFrRSxDQUFDLENBQUM7WUFDbEYsT0FBTyxFQUFFLENBQUM7U0FDWDtJQUNILENBQUM7O2dIQXpQVSxrQkFBa0Isa0hBNkhuQixpQkFBaUI7b0dBN0hoQixrQkFBa0IsaVlBSG5CLEVBQUU7NEZBR0Qsa0JBQWtCO2tCQUw5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFFBQVEsRUFBRSxFQUFFO2lCQUNiOzswQkErSEksTUFBTTsyQkFBQyxpQkFBaUI7NENBeEhsQixLQUFLO3NCQUFiLEtBQUs7Z0JBR0YsT0FBTztzQkFEVixLQUFLO2dCQVlGLE1BQU07c0JBRFQsS0FBSztnQkFZRixlQUFlO3NCQURsQixLQUFLO2dCQVlGLFNBQVM7c0JBRFosS0FBSztnQkFZRixNQUFNO3NCQURULEtBQUs7Z0JBWUYsSUFBSTtzQkFEUCxLQUFLO2dCQWVGLFNBQVM7c0JBRFosS0FBSztnQkFZRixRQUFRO3NCQURYLEtBQUs7Z0JBWUYsSUFBSTtzQkFEUCxLQUFLO2dCQWNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBRUcsZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBDb21wb25lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE5nTW9kdWxlUmVmLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU3RhdGljUHJvdmlkZXIsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1BVF9EQVRFX0ZPUk1BVFMsIE1hdERhdGVGb3JtYXRzLCBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IEluamVjdGVkQ29tcG9uZW50LCBJTkpFQ1RJT05fU0VSVklDRSwgSW5qZWN0aW9uU2VydmljZSwgTXRuYUNvbXBvbmVudEluamVjdG9yIH0gZnJvbSAnQG10bmEvY29yZS1hbmd1bGFyJztcbmltcG9ydCB7IEFubm90YXRpb25JbmRpY2F0b3JTdGF0dXMgfSBmcm9tICdAbXRuYS9wb2pvLXNvY2lhbC1hbmd1bGFyJztcbmltcG9ydCB7IEZvcm1JdGVtLCBpc0RhdGVJdGVtLCBpc09mZnNldERhdGVSYW5nZUl0ZW0gfSBmcm9tICdAbXRuYS93ZWItZm9ybS10cyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBGb3JtU3RlcCwgVG9nZ2xlRm9ybUl0ZW1zRGF0YSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBNdG5hV2ZCYXNlRm9ybUl0ZW1Db250cm9sIH0gZnJvbSAnLi4vYmFzZS1pdGVtcy9iYXNlLWZvcm0taXRlbS1jb250cm9sLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNdG5hV2ZCYXNlRm9ybUl0ZW0gfSBmcm9tICcuLi9iYXNlLWl0ZW1zL2Jhc2UtZm9ybS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNdG5hV2ZCYXNlR3JvdXBJdGVtIH0gZnJvbSAnLi4vYmFzZS1pdGVtcy9iYXNlLWdyb3VwLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE10bmFXZkJhc2VQYXJlbnRWYWx1ZUl0ZW0gfSBmcm9tICcuLi9iYXNlLWl0ZW1zL2Jhc2UtcGFyZW50LXZhbHVlLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE10bmFXZkJhc2VTZWN0aW9uSXRlbSB9IGZyb20gJy4uL2Jhc2UtaXRlbXMvYmFzZS1zZWN0aW9uLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE10bmFXZkJhc2VTaW5nbGVTZWxlY3Rpb25QYXJlbnRWYWx1ZUl0ZW0gfSBmcm9tICcuLi9iYXNlLWl0ZW1zL2Jhc2Utc2luZ2xlLXNlbGVjdGlvbi1wYXJlbnQtdmFsdWUtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTXRuYVdmQmFzZVZhbHVlSXRlbSB9IGZyb20gJy4uL2Jhc2UtaXRlbXMvYmFzZS12YWx1ZS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBpc1ByZXNlbnQgfSBmcm9tICdAbXRuYS9jb3JlLXRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXRuYS13Zi1pdGVtLWluamVjdG9yJyxcbiAgdGVtcGxhdGU6IGBgLFxufSlcbi8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LWNsYXNzLXN1ZmZpeCAqL1xuZXhwb3J0IGNsYXNzIE10bmFXZkl0ZW1JbmplY3RvciBleHRlbmRzIE10bmFDb21wb25lbnRJbmplY3RvciBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9pbkxpc3Q6IEJvb2xlYW5JbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3JlYWRvbmx5OiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9pc0NvbXBhY3Q6IEJvb2xlYW5JbnB1dDtcblxuICBASW5wdXQoKSBjb2xvcjogVGhlbWVQYWxldHRlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBjb250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB8IG51bGwgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9jb250cm9sO1xuICB9XG5cbiAgc2V0IGNvbnRyb2woY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2NvbnRyb2wgPSBjb250cm9sO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9jb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBoZWFkZXIoKTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5faGVhZGVyO1xuICB9XG5cbiAgc2V0IGhlYWRlcih2YWx1ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsKSB7XG4gICAgdGhpcy5faGVhZGVyID0gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF9oZWFkZXI6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgZ2V0IGluZGljYXRvclN0YXR1cygpOiBBbm5vdGF0aW9uSW5kaWNhdG9yU3RhdHVzIHtcbiAgICByZXR1cm4gdGhpcy5faW5kaWNhdG9yU3RhdHVzLnZhbHVlO1xuICB9XG5cbiAgc2V0IGluZGljYXRvclN0YXR1cyh2YWx1ZTogQW5ub3RhdGlvbkluZGljYXRvclN0YXR1cykge1xuICAgIHRoaXMuX2luZGljYXRvclN0YXR1cy5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaW5kaWNhdG9yU3RhdHVzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBbm5vdGF0aW9uSW5kaWNhdG9yU3RhdHVzPignSU5BQ1RJVkUnKTtcblxuICBASW5wdXQoKVxuICBnZXQgaXNDb21wYWN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc0NvbXBhY3Q7XG4gIH1cblxuICBzZXQgaXNDb21wYWN0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5faXNDb21wYWN0ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzQ29tcGFjdCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBpbkxpc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2luTGlzdDtcbiAgfVxuXG4gIHNldCBpbkxpc3QodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pbkxpc3QgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5MaXN0ID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZ2V0IGl0ZW0oKTogRm9ybUl0ZW0ge1xuICAgIHJldHVybiB0aGlzLl9pdGVtO1xuICB9XG5cbiAgc2V0IGl0ZW0odmFsdWU6IEZvcm1JdGVtKSB7XG4gICAgdGhpcy5faXRlbSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLndmSXRlbUNvbXBvbmVudCkge1xuICAgICAgdGhpcy5yZXNldCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfaXRlbSE6IEZvcm1JdGVtO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBwYXJlbnRJZHMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudElkcztcbiAgfVxuXG4gIHNldCBwYXJlbnRJZHModmFsdWU6IEFycmF5PHN0cmluZz4pIHtcbiAgICB0aGlzLl9wYXJlbnRJZHMgPSB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX3BhcmVudElkcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG5cbiAgQElucHV0KClcbiAgZ2V0IHJlYWRvbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZWFkb25seS52YWx1ZTtcbiAgfVxuXG4gIHNldCByZWFkb25seSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlYWRvbmx5Lm5leHQoY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3JlYWRvbmx5ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgQElucHV0KClcbiAgZ2V0IHN0ZXAoKTogRm9ybVN0ZXAgfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fc3RlcDtcbiAgfVxuXG4gIHNldCBzdGVwKHZhbHVlOiBGb3JtU3RlcCB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9zdGVwID0gdmFsdWU7XG4gICAgaWYgKHRoaXMud2ZJdGVtQ29tcG9uZW50ICYmIHRoaXMud2ZJdGVtQ29tcG9uZW50IGluc3RhbmNlb2YgTXRuYVdmQmFzZVNlY3Rpb25JdGVtKSB7XG4gICAgICB0aGlzLndmSXRlbUNvbXBvbmVudC5zdGVwID0gdGhpcy5fc3RlcDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zdGVwOiBGb3JtU3RlcCB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbiAgQE91dHB1dCgpIGZvY3VzZWRTZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtU3RlcD4oKTtcblxuICBAT3V0cHV0KCkgdG9nZ2xlRm9ybUl0ZW1zID0gbmV3IEV2ZW50RW1pdHRlcjxUb2dnbGVGb3JtSXRlbXNEYXRhPigpO1xuXG4gIHByaXZhdGUgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSB3Zkl0ZW1Db21wb25lbnQ6IE10bmFXZkJhc2VGb3JtSXRlbTxhbnk+IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGZvY3VzZWRTZWN0aW9uU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgdG9nZ2xlRm9ybUl0ZW1zU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcm90ZWN0ZWQgY2ZyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJvdGVjdGVkIHZjcjogVmlld0NvbnRhaW5lclJlZixcbiAgICBASW5qZWN0KElOSkVDVElPTl9TRVJWSUNFKSBwcm90ZWN0ZWQgaW5qZWN0aW9uU2VydmljZTogSW5qZWN0aW9uU2VydmljZVxuICApIHtcbiAgICBzdXBlcihpbmplY3RvciwgY2ZyLCB2Y3IsIGluamVjdGlvblNlcnZpY2UpO1xuICB9XG5cbiAgcmVzZXQoKSB7XG4gICAgaWYgKGlzUHJlc2VudCh0aGlzLmZvY3VzZWRTZWN0aW9uU3Vic2NyaXB0aW9uKSkge1xuICAgICAgdGhpcy5mb2N1c2VkU2VjdGlvblN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuZm9jdXNlZFNlY3Rpb25TdWJzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmIChpc1ByZXNlbnQodGhpcy50b2dnbGVGb3JtSXRlbXNTdWJzY3JpcHRpb24pKSB7XG4gICAgICB0aGlzLnRvZ2dsZUZvcm1JdGVtc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMudG9nZ2xlRm9ybUl0ZW1zU3Vic2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB0aGlzLmNvbXBvbmVudFJlZj8uZGVzdHJveSgpO1xuICAgIHRoaXMud2ZJdGVtQ29tcG9uZW50ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMubmdPbkluaXQoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLml0ZW0pIHtcbiAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNvbmZpZ3VyZUNvbXBvbmVudChjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+KTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnRSZWYgPSBjb21wb25lbnRSZWY7XG4gICAgdGhpcy53Zkl0ZW1Db21wb25lbnQgPSBjb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgTXRuYVdmQmFzZUZvcm1JdGVtPGFueT47XG4gICAgdGhpcy53Zkl0ZW1Db21wb25lbnQuaGVhZGVyID0gdGhpcy5oZWFkZXI7XG4gICAgdGhpcy5faW5kaWNhdG9yU3RhdHVzLnN1YnNjcmliZSgoc3RhdHVzKSA9PiB7XG4gICAgICBpZiAodGhpcy53Zkl0ZW1Db21wb25lbnQpIHtcbiAgICAgICAgdGhpcy53Zkl0ZW1Db21wb25lbnQuaW5kaWNhdG9yU3RhdHVzID0gc3RhdHVzO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMud2ZJdGVtQ29tcG9uZW50Lml0ZW0gPSB0aGlzLml0ZW07XG4gICAgdGhpcy53Zkl0ZW1Db21wb25lbnQuY29sb3IgPSB0aGlzLmNvbG9yO1xuICAgIHRoaXMud2ZJdGVtQ29tcG9uZW50LmlzQ29tcGFjdCA9IHRoaXMuaXNDb21wYWN0O1xuXG4gICAgaWYgKHRoaXMud2ZJdGVtQ29tcG9uZW50IGluc3RhbmNlb2YgTXRuYVdmQmFzZUZvcm1JdGVtQ29udHJvbCkge1xuICAgICAgdGhpcy53Zkl0ZW1Db21wb25lbnQuY29udHJvbCA9IHRoaXMuY29udHJvbDtcbiAgICAgIHRoaXMud2ZJdGVtQ29tcG9uZW50LnJlYWRvbmx5ID0gdGhpcy5yZWFkb25seTtcblxuICAgICAgaWYgKHRoaXMud2ZJdGVtQ29tcG9uZW50IGluc3RhbmNlb2YgTXRuYVdmQmFzZVZhbHVlSXRlbSkge1xuICAgICAgICB0aGlzLndmSXRlbUNvbXBvbmVudC5pbkxpc3QgPSB0aGlzLmluTGlzdDtcblxuICAgICAgICBpZiAodGhpcy53Zkl0ZW1Db21wb25lbnQgaW5zdGFuY2VvZiBNdG5hV2ZCYXNlUGFyZW50VmFsdWVJdGVtKSB7XG4gICAgICAgICAgdGhpcy53Zkl0ZW1Db21wb25lbnQucGFyZW50SWRzID0gdGhpcy5wYXJlbnRJZHM7XG4gICAgICAgICAgLy8gYWRkZWQgb3V0cHV0IHRvIHJlbW92ZSB1aSBzZXJ2aWNlIGZyb20gYmFzZSBjb21wb25lbnRzXG4gICAgICAgICAgdGhpcy50b2dnbGVGb3JtSXRlbXNTdWJzY3JpcHRpb24gPSB0aGlzLndmSXRlbUNvbXBvbmVudC50b2dnbGVGb3JtSXRlbXMuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZUZvcm1JdGVtcy5lbWl0KGRhdGEpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKHRoaXMud2ZJdGVtQ29tcG9uZW50IGluc3RhbmNlb2YgTXRuYVdmQmFzZVNpbmdsZVNlbGVjdGlvblBhcmVudFZhbHVlSXRlbSkge1xuICAgICAgICAgICAgLy8gZW1wdHkgZm9yIG5vdyB1bmxlc3Mgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBwYXJhbXMgYXJlIG5lZWRlZDsgcGxhY2Vob2xkZXJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy53Zkl0ZW1Db21wb25lbnQgaW5zdGFuY2VvZiBNdG5hV2ZCYXNlR3JvdXBJdGVtKSB7XG4gICAgICB0aGlzLndmSXRlbUNvbXBvbmVudC5wYXJlbnRJZHMgPSB0aGlzLnBhcmVudElkcztcblxuICAgICAgaWYgKHRoaXMud2ZJdGVtQ29tcG9uZW50IGluc3RhbmNlb2YgTXRuYVdmQmFzZVNlY3Rpb25JdGVtKSB7XG4gICAgICAgIHRoaXMud2ZJdGVtQ29tcG9uZW50LnN0ZXAgPSB0aGlzLnN0ZXA7XG4gICAgICAgIHRoaXMuZm9jdXNlZFNlY3Rpb25TdWJzY3JpcHRpb24gPSB0aGlzLndmSXRlbUNvbXBvbmVudC5mb2N1c2VkLnN1YnNjcmliZSgoc3RlcCkgPT4ge1xuICAgICAgICAgIHRoaXMuZm9jdXNlZFNlY3Rpb24uZW1pdChzdGVwKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgY29uZmlndXJlSW5qZWN0ZWRDb21wb25lbnQoKSB7XG4gICAgaWYgKGlzRGF0ZUl0ZW0odGhpcy5pdGVtKSB8fCBpc09mZnNldERhdGVSYW5nZUl0ZW0odGhpcy5pdGVtKSkge1xuICAgICAgY29uc3QgaXRlbVdpdGhEYXRlRm9ybWF0ID0gdGhpcy5pdGVtO1xuICAgICAgY29uc3Qga2V5ID0gdGhpcy5nZXRJbmplY3RlZENvbXBvbmVudEtleSgpO1xuICAgICAgaWYgKGtleSAmJiB0aGlzLmluamVjdGlvblNlcnZpY2UpIHtcbiAgICAgICAgY29uc3QgaW5qZWN0ZWRDb21wb25lbnQ6IEluamVjdGVkQ29tcG9uZW50ID0gdGhpcy5pbmplY3Rpb25TZXJ2aWNlLmdldEluamVjdGVkQ29tcG9uZW50KGtleSk7XG4gICAgICAgIGlmIChpbmplY3RlZENvbXBvbmVudCkge1xuICAgICAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShpbmplY3RlZENvbXBvbmVudC5jb21wb25lbnQpO1xuICAgICAgICAgIGNvbnN0IGNvbXBNb2R1bGU6IE5nTW9kdWxlUmVmPGFueT4gPSAoY29tcG9uZW50RmFjdG9yeSBhcyBhbnkpLm5nTW9kdWxlO1xuICAgICAgICAgIC8vIFRPRE86XG4gICAgICAgICAgY29uc3QgcHJvdmlkZXJzOiBTdGF0aWNQcm92aWRlcltdID0gW107XG5cbiAgICAgICAgICBjb25zdCB1cGRhdGVkTWF0RGF0ZUZvcm1hdHM6IE1hdERhdGVGb3JtYXRzID0ge1xuICAgICAgICAgICAgcGFyc2U6IHtcbiAgICAgICAgICAgICAgZGF0ZUlucHV0OiBpdGVtV2l0aERhdGVGb3JtYXQuZm9ybWF0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRpc3BsYXk6IHtcbiAgICAgICAgICAgICAgZGF0ZUlucHV0OiBpdGVtV2l0aERhdGVGb3JtYXQuZm9ybWF0LFxuICAgICAgICAgICAgICBtb250aExhYmVsOiAnTU1NJywgLy8gT3B0aW9uYWw6IG1vbnRoIG5hbWUgbGlrZSBcIkp1bFwiXG4gICAgICAgICAgICAgIG1vbnRoWWVhckxhYmVsOiAnWVlZWSBNTU0nLCAvLyBlLmcuLCBcIjIwMjUgSnVsXCJcbiAgICAgICAgICAgICAgZGF0ZUExMXlMYWJlbDogJ0xMJywgLy8gQWNjZXNzaWJsZSBsYWJlbCwgZS5nLiwgXCJKdWx5IDExLCAyMDI1XCJcbiAgICAgICAgICAgICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSBZWVlZJywgLy8gQWNjZXNzaWJsZSBtb250aC15ZWFyLCBlLmcuLCBcIkp1bHkgMjAyNVwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBwcm92aWRlcnMucHVzaCh7IHByb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiB1cGRhdGVkTWF0RGF0ZUZvcm1hdHMgfSk7XG5cbiAgICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFxuICAgICAgICAgICAgY29tcG9uZW50RmFjdG9yeSxcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHByb3ZpZGVycy5sZW5ndGggPiAwID8gSW5qZWN0b3IuY3JlYXRlKHsgcHJvdmlkZXJzIH0pIDogdGhpcy5pbmplY3RvcixcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGNvbXBNb2R1bGVcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuY29uZmlndXJlQ29tcG9uZW50KGNvbXBvbmVudFJlZik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignTm8gaW5qZWN0aW9uIGNvbXBvbmVudCBmb3VuZCBmb3Iga2V5IFsnICsga2V5ICsgJ10nKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdObyBrZXkgcHJvdmlkZWQgZm9yIGluamVjdGlvbicpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzdXBlci5jb25maWd1cmVJbmplY3RlZENvbXBvbmVudCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRJbmplY3RlZENvbXBvbmVudEtleSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLml0ZW0pIHtcbiAgICAgIHJldHVybiB0aGlzLml0ZW0uaXRlbUlkO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdNdG5hV2ZJdGVtSW5qZWN0b3IgLSBnZXRJbmplY3RlZENvbXBvbmVudEtleSAtIGl0ZW0gaXMgdW5kZWZpbmVkJyk7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,7 +1,10 @@
1
- import { ChangeDetectionStrategy, Component, Inject, Input, Optional, ViewEncapsulation } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, HostBinding, Inject, Input, Optional, ViewEncapsulation, } from '@angular/core';
2
2
  import { FormControl } from '@angular/forms';
3
3
  import { mixinDestroyNotifier } from '@mtna/core-angular';
4
4
  import { MTNA_WF_DEFAULT_YEAR_RANGE } from '../../../../models';
5
+ import { merge, Subject } from 'rxjs';
6
+ import { takeUntil } from 'rxjs/operators';
7
+ import { isPresent } from '@mtna/core-ts';
5
8
  import * as i0 from "@angular/core";
6
9
  import * as i1 from "@angular/material/form-field";
7
10
  import * as i2 from "@angular/material/select";
@@ -16,29 +19,114 @@ const _BaseMtnaWfYearQuarterItemTemplate = mixinDestroyNotifier(class {
16
19
  export class MtnaWfYearQuarterItemTemplateComponent extends _BaseMtnaWfYearQuarterItemTemplate {
17
20
  constructor(defaultYearRange) {
18
21
  super();
22
+ this._readonly = false;
23
+ this._containingControl = new FormControl();
19
24
  this._quarterControl = new FormControl();
20
25
  this._yearControl = new FormControl();
21
26
  this._yearSelection = new Array();
27
+ this.destroyObs = new Subject();
22
28
  this.defaultYearRange = { numFutureYears: 25, numPastYears: 25 };
29
+ /**
30
+ * Sets the quarter value to `null` if the year & quarter is out of bounds of the range limits.
31
+ * Otherwise, returns original value
32
+ *
33
+ * @param value `[number, number]` The selected [year, quarter] value
34
+ * @returns `[number, number]` The original [year, quarter] value OR [year, null]
35
+ */
36
+ this.withinRangeLimits = ([year, quarter]) => {
37
+ var _a, _b;
38
+ const beyondUpperLimit =
39
+ // year matches end year range limit
40
+ year === ((_a = this.componentRangeLimits) === null || _a === void 0 ? void 0 : _a.end.year) &&
41
+ // quarter limit was provided
42
+ isPresent(this.componentRangeLimits.end.quarter) &&
43
+ // selected quarter is beyond quarter limit
44
+ quarter > this.componentRangeLimits.end.quarter;
45
+ const beyondLowerLimit =
46
+ // year matches start year range limit
47
+ year === ((_b = this.componentRangeLimits) === null || _b === void 0 ? void 0 : _b.start.year) &&
48
+ // quarter limit was provided
49
+ isPresent(this.componentRangeLimits.start.quarter) &&
50
+ // selected quarter is beyond quarter limit
51
+ quarter < this.componentRangeLimits.start.quarter;
52
+ if (beyondLowerLimit || beyondUpperLimit) {
53
+ this._quarterControl.setValue(null, { emitEvent: false });
54
+ return [year, null];
55
+ }
56
+ return [year, quarter];
57
+ };
23
58
  this.defaultYearRange = defaultYearRange || this.defaultYearRange;
24
59
  }
25
- // @Input()
26
- // get readonly(): boolean {
27
- // return this._readonly;
28
- // }
29
- // set readonly(value: boolean) {
30
- // this._readonly = value;
31
- // }
32
- // private _readonly = false;
60
+ get readonly() {
61
+ return this._readonly;
62
+ }
63
+ set readonly(value) {
64
+ this._readonly = value;
65
+ }
33
66
  get yearQuarterRange() {
34
67
  return this._yearQuarterRange;
35
68
  }
36
69
  set yearQuarterRange(value) {
37
70
  this._yearQuarterRange = value;
71
+ this.componentRangeLimits = value;
72
+ }
73
+ get isReadOnly() {
74
+ return this._readonly;
75
+ }
76
+ ngAfterViewInit() {
77
+ if (!this.readonly) {
78
+ // Observe Year & Quarter value changes && set them on the item's control
79
+ merge(this._yearControl.valueChanges, this._quarterControl.valueChanges)
80
+ .pipe(takeUntil(this.destroyObs))
81
+ .subscribe(() => {
82
+ var _a, _b, _c, _d;
83
+ if (!((_a = this._containingControl) === null || _a === void 0 ? void 0 : _a.dirty) && (this._yearControl.dirty || this._quarterControl.dirty)) {
84
+ (_b = this._containingControl) === null || _b === void 0 ? void 0 : _b.markAsDirty();
85
+ (_c = this._containingControl) === null || _c === void 0 ? void 0 : _c.markAsTouched();
86
+ }
87
+ if (isPresent(this._yearControl.value)) {
88
+ const [year, quarter] = this.withinRangeLimits([this._yearControl.value, this._quarterControl.value]);
89
+ (_d = this._containingControl) === null || _d === void 0 ? void 0 : _d.setValue({ year, quarter });
90
+ }
91
+ });
92
+ }
93
+ }
94
+ ngOnDestroy() {
95
+ this.destroyObs.next();
96
+ this.destroyObs.complete();
97
+ }
98
+ ngOnInit() {
99
+ var _a, _b, _c;
100
+ // Set any initial value onto the Year & Quarter controls
101
+ this._yearControl.setValue(((_a = this._containingControl) === null || _a === void 0 ? void 0 : _a.value) ? this._containingControl.value.year : null);
102
+ this._quarterControl.setValue(((_b = this._containingControl) === null || _b === void 0 ? void 0 : _b.value) ? this._containingControl.value.quarter : null);
103
+ // Create range limits if none exist
104
+ if (!this.componentRangeLimits) {
105
+ const thisYear = new Date().getFullYear();
106
+ this.componentRangeLimits = {
107
+ start: {
108
+ year: thisYear - this.defaultYearRange.numPastYears,
109
+ quarter: null,
110
+ },
111
+ end: {
112
+ year: thisYear + this.defaultYearRange.numFutureYears,
113
+ quarter: null,
114
+ },
115
+ };
116
+ }
117
+ // Populate the year selection
118
+ for (let i = this.componentRangeLimits.start.year || 0; i <= (this.componentRangeLimits.end.year || 0); i++) {
119
+ this._yearSelection.push(i);
120
+ }
121
+ if (this.readonly) {
122
+ (_c = this._containingControl) === null || _c === void 0 ? void 0 : _c.disable();
123
+ this._quarterControl.disable();
124
+ this._yearControl.disable();
125
+ }
38
126
  }
39
127
  }
40
128
  MtnaWfYearQuarterItemTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfYearQuarterItemTemplateComponent, deps: [{ token: MTNA_WF_DEFAULT_YEAR_RANGE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
41
- MtnaWfYearQuarterItemTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MtnaWfYearQuarterItemTemplateComponent, selector: "mtna-wf-year-quarter-item-template", inputs: { yearQuarterRange: "yearQuarterRange" }, usesInheritance: true, ngImport: i0, template: "<div class=\"year-quarter-container\" fxLayout=\"row\" fxLayoutGap=\"8px\">\n <mat-form-field>\n <mat-select [formControl]=\"_yearControl\" aria-label=\"Year Selection\" i18n-aria-label>\n <mat-option *ngFor=\"let year of _yearSelection\" [value]=\"year\">{{ year }}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field>\n <mat-select [formControl]=\"_quarterControl\" aria-label=\"Quarter Selection\" i18n-aria-label>\n <mat-option i18n>None</mat-option>\n <mat-option *ngFor=\"let quarter of _yearControl.value | mtnaWfGetQuarters : componentRangeLimits\" [value]=\"quarter\">{{\n $any(quarter) | mtnaWfDateQuarter : 'short'\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n</div>\n", styles: ["mtna-wf-year-quarter-item-template.mtna-wf-template-control-item .mat-form-field{width:100%}mtna-wf-year-quarter-item-template.mtna-wf-template-control-item .template-control-item-content{padding:.35em .75em .625em}mtna-wf-year-quarter-item-template.mtna-wf-template-control-item mtna-wf-template-item-header~.mtna-wf-template-control-item:not(.mat-list):not(mtna-wf-template-item-injector){padding-left:.75em}mtna-wf-year-quarter-item-template.mtna-wf-template-control-item mtna-wf-template-item-header~.mtna-wf-template-control-item:not(.mat-list):not(mtna-wf-template-item-injector).mat-form-field{width:calc(100% - .75em)}mtna-wf-year-quarter-item-template .year-quarter-container>.mat-form-field{max-width:75px}mtna-wf-year-quarter-item-template .year-quarter-container>.mat-form-field:first-of-type{margin-right:8px}\n"], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i2.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i3.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i4.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "mtnaWfGetQuarters": i7.MtnaWfGetAvailableQuartersPipe, "mtnaWfDateQuarter": i8.MtnaWfDateQuarterPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
129
+ MtnaWfYearQuarterItemTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MtnaWfYearQuarterItemTemplateComponent, selector: "mtna-wf-year-quarter-item-template", inputs: { readonly: "readonly", yearQuarterRange: "yearQuarterRange" }, host: { properties: { "class.read-only": "this.isReadOnly" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"year-quarter-container\" fxLayout=\"row\" fxLayoutGap=\"8px\">\n <mat-form-field>\n <mat-select [formControl]=\"_yearControl\" aria-label=\"Year Selection\" i18n-aria-label>\n <mat-option *ngFor=\"let year of _yearSelection\" [value]=\"year\">{{ year }}</mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field>\n <mat-select [formControl]=\"_quarterControl\" aria-label=\"Quarter Selection\" i18n-aria-label>\n <mat-option i18n>None</mat-option>\n <mat-option *ngFor=\"let quarter of _yearControl.value | mtnaWfGetQuarters : componentRangeLimits\" [value]=\"quarter\">{{\n $any(quarter) | mtnaWfDateQuarter : 'short'\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n</div>\n", styles: ["mtna-wf-year-quarter-item-template.mtna-wf-template-control-item .mat-form-field{width:100%}mtna-wf-year-quarter-item-template.mtna-wf-template-control-item .template-control-item-content{padding:.35em .75em .625em}mtna-wf-year-quarter-item-template.mtna-wf-template-control-item mtna-wf-template-item-header~.mtna-wf-template-control-item:not(.mat-list):not(mtna-wf-template-item-injector){padding-left:.75em}mtna-wf-year-quarter-item-template.mtna-wf-template-control-item mtna-wf-template-item-header~.mtna-wf-template-control-item:not(.mat-list):not(mtna-wf-template-item-injector).mat-form-field{width:calc(100% - .75em)}mtna-wf-year-quarter-item-template .year-quarter-container>.mat-form-field{max-width:75px}mtna-wf-year-quarter-item-template .year-quarter-container>.mat-form-field:first-of-type{margin-right:8px}mtna-wf-year-quarter-item-template .mat-select{min-width:60px}\n"], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i2.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i3.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i4.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "mtnaWfGetQuarters": i7.MtnaWfGetAvailableQuartersPipe, "mtnaWfDateQuarter": i8.MtnaWfDateQuarterPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
42
130
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfYearQuarterItemTemplateComponent, decorators: [{
43
131
  type: Component,
44
132
  args: [{
@@ -53,7 +141,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
53
141
  }, {
54
142
  type: Inject,
55
143
  args: [MTNA_WF_DEFAULT_YEAR_RANGE]
56
- }] }]; }, propDecorators: { yearQuarterRange: [{
144
+ }] }]; }, propDecorators: { readonly: [{
145
+ type: Input
146
+ }], yearQuarterRange: [{
57
147
  type: Input
148
+ }], isReadOnly: [{
149
+ type: HostBinding,
150
+ args: ['class.read-only']
58
151
  }] } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhci1xdWFydGVyLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2ViLWZvcm0tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvdGVtcGxhdGUtaXRlbS1pbXBsL2RhdGUveWVhci1xdWFydGVyLWl0ZW0veWVhci1xdWFydGVyLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2ViLWZvcm0tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvdGVtcGxhdGUtaXRlbS1pbXBsL2RhdGUveWVhci1xdWFydGVyLWl0ZW0veWVhci1xdWFydGVyLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHMUQsT0FBTyxFQUFFLDBCQUEwQixFQUEwQixNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7O0FBRXhGLE1BQU0sa0NBQWtDLEdBQUcsb0JBQW9CLENBQUM7Q0FBUSxDQUFDLENBQUM7QUFTMUUsTUFBTSxPQUFPLHNDQUF1QyxTQUFRLGtDQUFrQztJQWlDNUYsWUFBNEQsZ0JBQXlDO1FBQ25HLEtBQUssRUFBRSxDQUFDO1FBUFYsb0JBQWUsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3BDLGlCQUFZLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNqQyxtQkFBYyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFFckMscUJBQWdCLEdBQTJCLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFJbEYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNwRSxDQUFDO0lBakNELFdBQVc7SUFDWCw0QkFBNEI7SUFDNUIsMkJBQTJCO0lBQzNCLElBQUk7SUFDSixpQ0FBaUM7SUFDakMsNEJBQTRCO0lBQzVCLElBQUk7SUFDSiw2QkFBNkI7SUFFN0IsSUFDSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQUksZ0JBQWdCLENBQUMsS0FBbUM7UUFDdEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUNqQyxDQUFDOztvSUFsQlUsc0NBQXNDLGtCQWlDakIsMEJBQTBCO3dIQWpDL0Msc0NBQXNDLG1KQ2pCbkQsK3VCQWdCQTs0RkRDYSxzQ0FBc0M7a0JBUGxELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9DQUFvQztvQkFDOUMsV0FBVyxFQUFFLG9DQUFvQztvQkFDakQsU0FBUyxFQUFFLENBQUMsb0NBQW9DLENBQUM7b0JBQ2pELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEM7OzBCQWtDYyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLDBCQUEwQjs0Q0FwQnRELGdCQUFnQjtzQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPcHRpb25hbCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgbWl4aW5EZXN0cm95Tm90aWZpZXIgfSBmcm9tICdAbXRuYS9jb3JlLWFuZ3VsYXInO1xuaW1wb3J0IHsgRGF0ZVJhbmdlLCBZZWFyUXVhcnRlciwgWWVhclF1YXJ0ZXJSYW5nZSB9IGZyb20gJ0BtdG5hL3dlYi1mb3JtLXRzJztcblxuaW1wb3J0IHsgTVROQV9XRl9ERUZBVUxUX1lFQVJfUkFOR0UsIE10bmFXZkRlZmF1bHRZZWFyUmFuZ2UgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xuXG5jb25zdCBfQmFzZU10bmFXZlllYXJRdWFydGVySXRlbVRlbXBsYXRlID0gbWl4aW5EZXN0cm95Tm90aWZpZXIoY2xhc3Mge30pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdG5hLXdmLXllYXItcXVhcnRlci1pdGVtLXRlbXBsYXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3llYXItcXVhcnRlci1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4veWVhci1xdWFydGVyLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIE10bmFXZlllYXJRdWFydGVySXRlbVRlbXBsYXRlQ29tcG9uZW50IGV4dGVuZHMgX0Jhc2VNdG5hV2ZZZWFyUXVhcnRlckl0ZW1UZW1wbGF0ZSB7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yZWFkb25seTogQm9vbGVhbklucHV0O1xuXG4gIC8vIEBJbnB1dCgpXG4gIC8vIGdldCByZWFkb25seSgpOiBib29sZWFuIHtcbiAgLy8gICByZXR1cm4gdGhpcy5fcmVhZG9ubHk7XG4gIC8vIH1cbiAgLy8gc2V0IHJlYWRvbmx5KHZhbHVlOiBib29sZWFuKSB7XG4gIC8vICAgdGhpcy5fcmVhZG9ubHkgPSB2YWx1ZTtcbiAgLy8gfVxuICAvLyBwcml2YXRlIF9yZWFkb25seSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCB5ZWFyUXVhcnRlclJhbmdlKCk6IFllYXJRdWFydGVyUmFuZ2UgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl95ZWFyUXVhcnRlclJhbmdlO1xuICB9XG4gIHNldCB5ZWFyUXVhcnRlclJhbmdlKHZhbHVlOiBZZWFyUXVhcnRlclJhbmdlIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5feWVhclF1YXJ0ZXJSYW5nZSA9IHZhbHVlO1xuICB9XG4gIHByaXZhdGUgX3llYXJRdWFydGVyUmFuZ2U6IFllYXJRdWFydGVyUmFuZ2UgfCB1bmRlZmluZWQ7XG5cbiAgLy8gQEhvc3RCaW5kaW5nKCdjbGFzcy5yZWFkLW9ubHknKVxuICAvLyBnZXQgaXNSZWFkT25seSgpOiBib29sZWFuIHtcbiAgLy8gICByZXR1cm4gdGhpcy5fcmVhZG9ubHk7XG4gIC8vIH1cblxuICBjb21wb25lbnRSYW5nZUxpbWl0czogRGF0ZVJhbmdlPFllYXJRdWFydGVyPiB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIF9xdWFydGVyQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICBfeWVhckNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgX3llYXJTZWxlY3Rpb24gPSBuZXcgQXJyYXk8bnVtYmVyPigpO1xuXG4gIGRlZmF1bHRZZWFyUmFuZ2U6IE10bmFXZkRlZmF1bHRZZWFyUmFuZ2UgPSB7IG51bUZ1dHVyZVllYXJzOiAyNSwgbnVtUGFzdFllYXJzOiAyNSB9O1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoTVROQV9XRl9ERUZBVUxUX1lFQVJfUkFOR0UpIGRlZmF1bHRZZWFyUmFuZ2U/OiBNdG5hV2ZEZWZhdWx0WWVhclJhbmdlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmRlZmF1bHRZZWFyUmFuZ2UgPSBkZWZhdWx0WWVhclJhbmdlIHx8IHRoaXMuZGVmYXVsdFllYXJSYW5nZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInllYXItcXVhcnRlci1jb250YWluZXJcIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiOHB4XCI+XG4gIDxtYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LXNlbGVjdCBbZm9ybUNvbnRyb2xdPVwiX3llYXJDb250cm9sXCIgYXJpYS1sYWJlbD1cIlllYXIgU2VsZWN0aW9uXCIgaTE4bi1hcmlhLWxhYmVsPlxuICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHllYXIgb2YgX3llYXJTZWxlY3Rpb25cIiBbdmFsdWVdPVwieWVhclwiPnt7IHllYXIgfX08L21hdC1vcHRpb24+XG4gICAgPC9tYXQtc2VsZWN0PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gIDxtYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LXNlbGVjdCBbZm9ybUNvbnRyb2xdPVwiX3F1YXJ0ZXJDb250cm9sXCIgYXJpYS1sYWJlbD1cIlF1YXJ0ZXIgU2VsZWN0aW9uXCIgaTE4bi1hcmlhLWxhYmVsPlxuICAgICAgPG1hdC1vcHRpb24gaTE4bj5Ob25lPC9tYXQtb3B0aW9uPlxuICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHF1YXJ0ZXIgb2YgX3llYXJDb250cm9sLnZhbHVlIHwgbXRuYVdmR2V0UXVhcnRlcnMgOiBjb21wb25lbnRSYW5nZUxpbWl0c1wiIFt2YWx1ZV09XCJxdWFydGVyXCI+e3tcbiAgICAgICAgJGFueShxdWFydGVyKSB8IG10bmFXZkRhdGVRdWFydGVyIDogJ3Nob3J0J1xuICAgICAgfX08L21hdC1vcHRpb24+XG4gICAgPC9tYXQtc2VsZWN0PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuPC9kaXY+XG4iXX0=
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhci1xdWFydGVyLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2ViLWZvcm0tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvdGVtcGxhdGUtaXRlbS1pbXBsL2RhdGUveWVhci1xdWFydGVyLWl0ZW0veWVhci1xdWFydGVyLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2ViLWZvcm0tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvdGVtcGxhdGUtaXRlbS1pbXBsL2RhdGUveWVhci1xdWFydGVyLWl0ZW0veWVhci1xdWFydGVyLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHMUQsT0FBTyxFQUFFLDBCQUEwQixFQUEwQixNQUFNLG9CQUFvQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBRTFDLE1BQU0sa0NBQWtDLEdBQUcsb0JBQW9CLENBQUM7Q0FBUSxDQUFDLENBQUM7QUFTMUUsTUFBTSxPQUFPLHNDQUF1QyxTQUFRLGtDQUFrQztJQXFDNUYsWUFBNEQsZ0JBQXlDO1FBQ25HLEtBQUss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RSxvQ0FBb0M7b0JBQ2pELFNBQVMsRUFBRSxDQUFDLG9DQUFvQyxDQUFDO29CQUNqRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDOzswQkFzQ2MsUUFBUTs7MEJBQUksTUFBTTsyQkFBQywwQkFBMEI7NENBakN0RCxRQUFRO3NCQURYLEtBQUs7Z0JBVUYsZ0JBQWdCO3NCQURuQixLQUFLO2dCQVdGLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBtaXhpbkRlc3Ryb3lOb3RpZmllciB9IGZyb20gJ0BtdG5hL2NvcmUtYW5ndWxhcic7XG5pbXBvcnQgeyBEYXRlUmFuZ2UsIFllYXJRdWFydGVyLCBZZWFyUXVhcnRlclJhbmdlIH0gZnJvbSAnQG10bmEvd2ViLWZvcm0tdHMnO1xuXG5pbXBvcnQgeyBNVE5BX1dGX0RFRkFVTFRfWUVBUl9SQU5HRSwgTXRuYVdmRGVmYXVsdFllYXJSYW5nZSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBtZXJnZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgaXNQcmVzZW50IH0gZnJvbSAnQG10bmEvY29yZS10cyc7XG5cbmNvbnN0IF9CYXNlTXRuYVdmWWVhclF1YXJ0ZXJJdGVtVGVtcGxhdGUgPSBtaXhpbkRlc3Ryb3lOb3RpZmllcihjbGFzcyB7fSk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ210bmEtd2YteWVhci1xdWFydGVyLWl0ZW0tdGVtcGxhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4veWVhci1xdWFydGVyLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi95ZWFyLXF1YXJ0ZXItaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTXRuYVdmWWVhclF1YXJ0ZXJJdGVtVGVtcGxhdGVDb21wb25lbnQgZXh0ZW5kcyBfQmFzZU10bmFXZlllYXJRdWFydGVySXRlbVRlbXBsYXRlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQge1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfcmVhZG9ubHk6IEJvb2xlYW5JbnB1dDtcblxuICBASW5wdXQoKVxuICBnZXQgcmVhZG9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlYWRvbmx5O1xuICB9XG4gIHNldCByZWFkb25seSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlYWRvbmx5ID0gdmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBfcmVhZG9ubHkgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBnZXQgeWVhclF1YXJ0ZXJSYW5nZSgpOiBZZWFyUXVhcnRlclJhbmdlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5feWVhclF1YXJ0ZXJSYW5nZTtcbiAgfVxuICBzZXQgeWVhclF1YXJ0ZXJSYW5nZSh2YWx1ZTogWWVhclF1YXJ0ZXJSYW5nZSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3llYXJRdWFydGVyUmFuZ2UgPSB2YWx1ZTtcbiAgICB0aGlzLmNvbXBvbmVudFJhbmdlTGltaXRzID0gdmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBfeWVhclF1YXJ0ZXJSYW5nZTogWWVhclF1YXJ0ZXJSYW5nZSB8IHVuZGVmaW5lZDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJlYWQtb25seScpXG4gIGdldCBpc1JlYWRPbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZWFkb25seTtcbiAgfVxuXG4gIGNvbXBvbmVudFJhbmdlTGltaXRzOiBEYXRlUmFuZ2U8WWVhclF1YXJ0ZXI+IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgX2NvbnRhaW5pbmdDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gIF9xdWFydGVyQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICBfeWVhckNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgX3llYXJTZWxlY3Rpb24gPSBuZXcgQXJyYXk8bnVtYmVyPigpO1xuXG4gIHByaXZhdGUgZGVzdHJveU9icyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgZGVmYXVsdFllYXJSYW5nZTogTXRuYVdmRGVmYXVsdFllYXJSYW5nZSA9IHsgbnVtRnV0dXJlWWVhcnM6IDI1LCBudW1QYXN0WWVhcnM6IDI1IH07XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChNVE5BX1dGX0RFRkFVTFRfWUVBUl9SQU5HRSkgZGVmYXVsdFllYXJSYW5nZT86IE10bmFXZkRlZmF1bHRZZWFyUmFuZ2UpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZGVmYXVsdFllYXJSYW5nZSA9IGRlZmF1bHRZZWFyUmFuZ2UgfHwgdGhpcy5kZWZhdWx0WWVhclJhbmdlO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZWFkb25seSkge1xuICAgICAgLy8gT2JzZXJ2ZSBZZWFyICYgUXVhcnRlciB2YWx1ZSBjaGFuZ2VzICYmIHNldCB0aGVtIG9uIHRoZSBpdGVtJ3MgY29udHJvbFxuICAgICAgbWVyZ2UodGhpcy5feWVhckNvbnRyb2wudmFsdWVDaGFuZ2VzLCB0aGlzLl9xdWFydGVyQ29udHJvbC52YWx1ZUNoYW5nZXMpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3lPYnMpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBpZiAoIXRoaXMuX2NvbnRhaW5pbmdDb250cm9sPy5kaXJ0eSAmJiAodGhpcy5feWVhckNvbnRyb2wuZGlydHkgfHwgdGhpcy5fcXVhcnRlckNvbnRyb2wuZGlydHkpKSB7XG4gICAgICAgICAgICB0aGlzLl9jb250YWluaW5nQ29udHJvbD8ubWFya0FzRGlydHkoKTtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRhaW5pbmdDb250cm9sPy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc1ByZXNlbnQodGhpcy5feWVhckNvbnRyb2wudmFsdWUpKSB7XG4gICAgICAgICAgICBjb25zdCBbeWVhciwgcXVhcnRlcl0gPSB0aGlzLndpdGhpblJhbmdlTGltaXRzKFt0aGlzLl95ZWFyQ29udHJvbC52YWx1ZSwgdGhpcy5fcXVhcnRlckNvbnRyb2wudmFsdWVdKTtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRhaW5pbmdDb250cm9sPy5zZXRWYWx1ZSh7IHllYXIsIHF1YXJ0ZXIgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3lPYnMubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveU9icy5jb21wbGV0ZSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gU2V0IGFueSBpbml0aWFsIHZhbHVlIG9udG8gdGhlIFllYXIgJiBRdWFydGVyIGNvbnRyb2xzXG4gICAgdGhpcy5feWVhckNvbnRyb2wuc2V0VmFsdWUodGhpcy5fY29udGFpbmluZ0NvbnRyb2w/LnZhbHVlID8gdGhpcy5fY29udGFpbmluZ0NvbnRyb2wudmFsdWUueWVhciA6IG51bGwpO1xuICAgIHRoaXMuX3F1YXJ0ZXJDb250cm9sLnNldFZhbHVlKHRoaXMuX2NvbnRhaW5pbmdDb250cm9sPy52YWx1ZSA/IHRoaXMuX2NvbnRhaW5pbmdDb250cm9sLnZhbHVlLnF1YXJ0ZXIgOiBudWxsKTtcblxuICAgIC8vIENyZWF0ZSByYW5nZSBsaW1pdHMgaWYgbm9uZSBleGlzdFxuICAgIGlmICghdGhpcy5jb21wb25lbnRSYW5nZUxpbWl0cykge1xuICAgICAgY29uc3QgdGhpc1llYXIgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7XG4gICAgICB0aGlzLmNvbXBvbmVudFJhbmdlTGltaXRzID0ge1xuICAgICAgICBzdGFydDoge1xuICAgICAgICAgIHllYXI6IHRoaXNZZWFyIC0gdGhpcy5kZWZhdWx0WWVhclJhbmdlLm51bVBhc3RZZWFycyxcbiAgICAgICAgICBxdWFydGVyOiBudWxsLFxuICAgICAgICB9LFxuICAgICAgICBlbmQ6IHtcbiAgICAgICAgICB5ZWFyOiB0aGlzWWVhciArIHRoaXMuZGVmYXVsdFllYXJSYW5nZS5udW1GdXR1cmVZZWFycyxcbiAgICAgICAgICBxdWFydGVyOiBudWxsLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBQb3B1bGF0ZSB0aGUgeWVhciBzZWxlY3Rpb25cbiAgICBmb3IgKGxldCBpID0gdGhpcy5jb21wb25lbnRSYW5nZUxpbWl0cy5zdGFydC55ZWFyIHx8IDA7IGkgPD0gKHRoaXMuY29tcG9uZW50UmFuZ2VMaW1pdHMuZW5kLnllYXIgfHwgMCk7IGkrKykge1xuICAgICAgdGhpcy5feWVhclNlbGVjdGlvbi5wdXNoKGkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XG4gICAgICB0aGlzLl9jb250YWluaW5nQ29udHJvbD8uZGlzYWJsZSgpO1xuICAgICAgdGhpcy5fcXVhcnRlckNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgdGhpcy5feWVhckNvbnRyb2wuZGlzYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBxdWFydGVyIHZhbHVlIHRvIGBudWxsYCBpZiB0aGUgeWVhciAmIHF1YXJ0ZXIgaXMgb3V0IG9mIGJvdW5kcyBvZiB0aGUgcmFuZ2UgbGltaXRzLlxuICAgKiBPdGhlcndpc2UsIHJldHVybnMgb3JpZ2luYWwgdmFsdWVcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIGBbbnVtYmVyLCBudW1iZXJdYCBUaGUgc2VsZWN0ZWQgW3llYXIsIHF1YXJ0ZXJdIHZhbHVlXG4gICAqIEByZXR1cm5zIGBbbnVtYmVyLCBudW1iZXJdYCBUaGUgb3JpZ2luYWwgW3llYXIsIHF1YXJ0ZXJdIHZhbHVlIE9SIFt5ZWFyLCBudWxsXVxuICAgKi9cbiAgcHJpdmF0ZSB3aXRoaW5SYW5nZUxpbWl0czogKHZhbHVlOiBbbnVtYmVyLCBudW1iZXJdKSA9PiBbbnVtYmVyLCBudW1iZXIgfCBudWxsXSA9IChbeWVhciwgcXVhcnRlcl0pID0+IHtcbiAgICBjb25zdCBiZXlvbmRVcHBlckxpbWl0ID1cbiAgICAgIC8vIHllYXIgbWF0Y2hlcyBlbmQgeWVhciByYW5nZSBsaW1pdFxuICAgICAgeWVhciA9PT0gdGhpcy5jb21wb25lbnRSYW5nZUxpbWl0cz8uZW5kLnllYXIgJiZcbiAgICAgIC8vIHF1YXJ0ZXIgbGltaXQgd2FzIHByb3ZpZGVkXG4gICAgICBpc1ByZXNlbnQodGhpcy5jb21wb25lbnRSYW5nZUxpbWl0cy5lbmQucXVhcnRlcikgJiZcbiAgICAgIC8vIHNlbGVjdGVkIHF1YXJ0ZXIgaXMgYmV5b25kIHF1YXJ0ZXIgbGltaXRcbiAgICAgIHF1YXJ0ZXIgPiB0aGlzLmNvbXBvbmVudFJhbmdlTGltaXRzLmVuZC5xdWFydGVyO1xuXG4gICAgY29uc3QgYmV5b25kTG93ZXJMaW1pdCA9XG4gICAgICAvLyB5ZWFyIG1hdGNoZXMgc3RhcnQgeWVhciByYW5nZSBsaW1pdFxuICAgICAgeWVhciA9PT0gdGhpcy5jb21wb25lbnRSYW5nZUxpbWl0cz8uc3RhcnQueWVhciAmJlxuICAgICAgLy8gcXVhcnRlciBsaW1pdCB3YXMgcHJvdmlkZWRcbiAgICAgIGlzUHJlc2VudCh0aGlzLmNvbXBvbmVudFJhbmdlTGltaXRzLnN0YXJ0LnF1YXJ0ZXIpICYmXG4gICAgICAvLyBzZWxlY3RlZCBxdWFydGVyIGlzIGJleW9uZCBxdWFydGVyIGxpbWl0XG4gICAgICBxdWFydGVyIDwgdGhpcy5jb21wb25lbnRSYW5nZUxpbWl0cy5zdGFydC5xdWFydGVyO1xuXG4gICAgaWYgKGJleW9uZExvd2VyTGltaXQgfHwgYmV5b25kVXBwZXJMaW1pdCkge1xuICAgICAgdGhpcy5fcXVhcnRlckNvbnRyb2wuc2V0VmFsdWUobnVsbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgcmV0dXJuIFt5ZWFyLCBudWxsXTtcbiAgICB9XG5cbiAgICByZXR1cm4gW3llYXIsIHF1YXJ0ZXJdO1xuICB9O1xufVxuIiwiPGRpdiBjbGFzcz1cInllYXItcXVhcnRlci1jb250YWluZXJcIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiOHB4XCI+XG4gIDxtYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LXNlbGVjdCBbZm9ybUNvbnRyb2xdPVwiX3llYXJDb250cm9sXCIgYXJpYS1sYWJlbD1cIlllYXIgU2VsZWN0aW9uXCIgaTE4bi1hcmlhLWxhYmVsPlxuICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHllYXIgb2YgX3llYXJTZWxlY3Rpb25cIiBbdmFsdWVdPVwieWVhclwiPnt7IHllYXIgfX08L21hdC1vcHRpb24+XG4gICAgPC9tYXQtc2VsZWN0PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gIDxtYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LXNlbGVjdCBbZm9ybUNvbnRyb2xdPVwiX3F1YXJ0ZXJDb250cm9sXCIgYXJpYS1sYWJlbD1cIlF1YXJ0ZXIgU2VsZWN0aW9uXCIgaTE4bi1hcmlhLWxhYmVsPlxuICAgICAgPG1hdC1vcHRpb24gaTE4bj5Ob25lPC9tYXQtb3B0aW9uPlxuICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHF1YXJ0ZXIgb2YgX3llYXJDb250cm9sLnZhbHVlIHwgbXRuYVdmR2V0UXVhcnRlcnMgOiBjb21wb25lbnRSYW5nZUxpbWl0c1wiIFt2YWx1ZV09XCJxdWFydGVyXCI+e3tcbiAgICAgICAgJGFueShxdWFydGVyKSB8IG10bmFXZkRhdGVRdWFydGVyIDogJ3Nob3J0J1xuICAgICAgfX08L21hdC1vcHRpb24+XG4gICAgPC9tYXQtc2VsZWN0PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuPC9kaXY+XG4iXX0=
@@ -5,9 +5,18 @@ import * as i1 from "../year-quarter-item/year-quarter-item.component";
5
5
  import * as i2 from "@angular/common";
6
6
  import * as i3 from "@angular/flex-layout/flex";
7
7
  export class MtnaWfYearQuarterRangeItemTemplateComponent extends MtnaWfBaseTemplateItemComponent {
8
+ get template() {
9
+ return super.template;
10
+ }
11
+ set template(template) {
12
+ super.template = template;
13
+ // Create fake items for the underlying date-item component
14
+ this._startItem = Object.assign(Object.assign({}, template), { value: undefined });
15
+ this._endItem = Object.assign(Object.assign({}, template), { value: undefined });
16
+ }
8
17
  }
9
18
  MtnaWfYearQuarterRangeItemTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfYearQuarterRangeItemTemplateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
10
- MtnaWfYearQuarterRangeItemTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MtnaWfYearQuarterRangeItemTemplateComponent, selector: "mtna-wf-year-quarter-range-template", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"template\" class=\"range-item-container\" fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"8px\">\n <mtna-wf-year-quarter-item-template [yearQuarterRange]=\"template.rangeLimits\"></mtna-wf-year-quarter-item-template>\n <span fxFlex=\"14px\">to</span>\n <mtna-wf-year-quarter-item-template [yearQuarterRange]=\"template.rangeLimits\"></mtna-wf-year-quarter-item-template>\n</div>\n", styles: ["mtna-wf-year-quarter-range-template.mtna-wf-template-control-item .mat-form-field{width:100%}mtna-wf-year-quarter-range-template.mtna-wf-template-control-item .template-control-item-content{padding:.35em .75em .625em}mtna-wf-year-quarter-range-template.mtna-wf-template-control-item mtna-wf-template-item-header~.mtna-wf-template-control-item:not(.mat-list):not(mtna-wf-template-item-injector){padding-left:.75em}mtna-wf-year-quarter-range-template.mtna-wf-template-control-item mtna-wf-template-item-header~.mtna-wf-template-control-item:not(.mat-list):not(mtna-wf-template-item-injector).mat-form-field{width:calc(100% - .75em)}\n"], components: [{ type: i1.MtnaWfYearQuarterItemTemplateComponent, selector: "mtna-wf-year-quarter-item-template", inputs: ["yearQuarterRange"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
19
+ MtnaWfYearQuarterRangeItemTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MtnaWfYearQuarterRangeItemTemplateComponent, selector: "mtna-wf-year-quarter-range-template", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"template\" class=\"range-item-container\" fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"8px\">\n <mtna-wf-year-quarter-item-template [yearQuarterRange]=\"_startItem.rangeLimits\"></mtna-wf-year-quarter-item-template>\n <span fxFlex=\"14px\">to</span>\n <mtna-wf-year-quarter-item-template [yearQuarterRange]=\"_endItem.rangeLimits\"></mtna-wf-year-quarter-item-template>\n</div>\n", styles: ["mtna-wf-year-quarter-range-template.mtna-wf-template-control-item .mat-form-field{width:100%}mtna-wf-year-quarter-range-template.mtna-wf-template-control-item .template-control-item-content{padding:.35em .75em .625em}mtna-wf-year-quarter-range-template.mtna-wf-template-control-item mtna-wf-template-item-header~.mtna-wf-template-control-item:not(.mat-list):not(mtna-wf-template-item-injector){padding-left:.75em}mtna-wf-year-quarter-range-template.mtna-wf-template-control-item mtna-wf-template-item-header~.mtna-wf-template-control-item:not(.mat-list):not(mtna-wf-template-item-injector).mat-form-field{width:calc(100% - .75em)}\n"], components: [{ type: i1.MtnaWfYearQuarterItemTemplateComponent, selector: "mtna-wf-year-quarter-item-template", inputs: ["readonly", "yearQuarterRange"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
11
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MtnaWfYearQuarterRangeItemTemplateComponent, decorators: [{
12
21
  type: Component,
13
22
  args: [{
@@ -18,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
18
27
  encapsulation: ViewEncapsulation.None,
19
28
  }]
20
29
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhci1xdWFydGVyLXJhbmdlLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2ViLWZvcm0tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvdGVtcGxhdGUtaXRlbS1pbXBsL2RhdGUveWVhci1xdWFydGVyLXJhbmdlLWl0ZW0veWVhci1xdWFydGVyLXJhbmdlLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2ViLWZvcm0tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvdGVtcGxhdGUtaXRlbS1pbXBsL2RhdGUveWVhci1xdWFydGVyLXJhbmdlLWl0ZW0veWVhci1xdWFydGVyLXJhbmdlLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0RixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7QUFTMUYsTUFBTSxPQUFPLDJDQUE0QyxTQUFRLCtCQUF5RDs7eUlBQTdHLDJDQUEyQzs2SEFBM0MsMkNBQTJDLGtHQ1p4RCw0WkFLQTs0RkRPYSwyQ0FBMkM7a0JBUHZELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFDQUFxQztvQkFDL0MsV0FBVyxFQUFFLDBDQUEwQztvQkFDdkQsU0FBUyxFQUFFLENBQUMsMENBQTBDLENBQUM7b0JBQ3ZELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgWWVhclF1YXJ0ZXJSYW5nZVRlbXBsYXRlIH0gZnJvbSAnQG10bmEvd2ViLWZvcm0tdHMnO1xuXG5pbXBvcnQgeyBNdG5hV2ZCYXNlVGVtcGxhdGVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS9iYXNlLXRlbXBsYXRlLWl0ZW0uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXRuYS13Zi15ZWFyLXF1YXJ0ZXItcmFuZ2UtdGVtcGxhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4veWVhci1xdWFydGVyLXJhbmdlLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi95ZWFyLXF1YXJ0ZXItcmFuZ2UtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTXRuYVdmWWVhclF1YXJ0ZXJSYW5nZUl0ZW1UZW1wbGF0ZUNvbXBvbmVudCBleHRlbmRzIE10bmFXZkJhc2VUZW1wbGF0ZUl0ZW1Db21wb25lbnQ8WWVhclF1YXJ0ZXJSYW5nZVRlbXBsYXRlPiB7fVxuIiwiPGRpdiAqbmdJZj1cInRlbXBsYXRlXCIgY2xhc3M9XCJyYW5nZS1pdGVtLWNvbnRhaW5lclwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGZ4TGF5b3V0R2FwPVwiOHB4XCI+XG4gIDxtdG5hLXdmLXllYXItcXVhcnRlci1pdGVtLXRlbXBsYXRlIFt5ZWFyUXVhcnRlclJhbmdlXT1cInRlbXBsYXRlLnJhbmdlTGltaXRzXCI+PC9tdG5hLXdmLXllYXItcXVhcnRlci1pdGVtLXRlbXBsYXRlPlxuICA8c3BhbiBmeEZsZXg9XCIxNHB4XCI+dG88L3NwYW4+XG4gIDxtdG5hLXdmLXllYXItcXVhcnRlci1pdGVtLXRlbXBsYXRlIFt5ZWFyUXVhcnRlclJhbmdlXT1cInRlbXBsYXRlLnJhbmdlTGltaXRzXCI+PC9tdG5hLXdmLXllYXItcXVhcnRlci1pdGVtLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhci1xdWFydGVyLXJhbmdlLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2ViLWZvcm0tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvdGVtcGxhdGUtaXRlbS1pbXBsL2RhdGUveWVhci1xdWFydGVyLXJhbmdlLWl0ZW0veWVhci1xdWFydGVyLXJhbmdlLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2ViLWZvcm0tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvdGVtcGxhdGUtaXRlbS1pbXBsL2RhdGUveWVhci1xdWFydGVyLXJhbmdlLWl0ZW0veWVhci1xdWFydGVyLXJhbmdlLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0RixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7QUFTMUYsTUFBTSxPQUFPLDJDQUE0QyxTQUFRLCtCQUF5RDtJQUN4SCxJQUFhLFFBQVE7UUFDbkIsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFhLFFBQVEsQ0FBQyxRQUE4QztRQUNsRSxLQUFLLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUMxQiwyREFBMkQ7UUFDM0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxnQ0FBSyxRQUFRLEtBQUUsS0FBSyxFQUFFLFNBQVMsR0FBOEIsQ0FBQztRQUNoRixJQUFJLENBQUMsUUFBUSxHQUFHLGdDQUFLLFFBQVEsS0FBRSxLQUFLLEVBQUUsU0FBUyxHQUE4QixDQUFDO0lBQ2hGLENBQUM7O3lJQVZVLDJDQUEyQzs2SEFBM0MsMkNBQTJDLGtHQ1p4RCw4WkFLQTs0RkRPYSwyQ0FBMkM7a0JBUHZELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFDQUFxQztvQkFDL0MsV0FBVyxFQUFFLDBDQUEwQztvQkFDdkQsU0FBUyxFQUFFLENBQUMsMENBQTBDLENBQUM7b0JBQ3ZELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgWWVhclF1YXJ0ZXJSYW5nZVRlbXBsYXRlIH0gZnJvbSAnQG10bmEvd2ViLWZvcm0tdHMnO1xuXG5pbXBvcnQgeyBNdG5hV2ZCYXNlVGVtcGxhdGVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS9iYXNlLXRlbXBsYXRlLWl0ZW0uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXRuYS13Zi15ZWFyLXF1YXJ0ZXItcmFuZ2UtdGVtcGxhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4veWVhci1xdWFydGVyLXJhbmdlLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi95ZWFyLXF1YXJ0ZXItcmFuZ2UtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTXRuYVdmWWVhclF1YXJ0ZXJSYW5nZUl0ZW1UZW1wbGF0ZUNvbXBvbmVudCBleHRlbmRzIE10bmFXZkJhc2VUZW1wbGF0ZUl0ZW1Db21wb25lbnQ8WWVhclF1YXJ0ZXJSYW5nZVRlbXBsYXRlPiB7XG4gIG92ZXJyaWRlIGdldCB0ZW1wbGF0ZSgpOiBZZWFyUXVhcnRlclJhbmdlVGVtcGxhdGUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBzdXBlci50ZW1wbGF0ZTtcbiAgfVxuXG4gIG92ZXJyaWRlIHNldCB0ZW1wbGF0ZSh0ZW1wbGF0ZTogWWVhclF1YXJ0ZXJSYW5nZVRlbXBsYXRlIHwgdW5kZWZpbmVkKSB7XG4gICAgc3VwZXIudGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgICAvLyBDcmVhdGUgZmFrZSBpdGVtcyBmb3IgdGhlIHVuZGVybHlpbmcgZGF0ZS1pdGVtIGNvbXBvbmVudFxuICAgIHRoaXMuX3N0YXJ0SXRlbSA9IHsgLi4udGVtcGxhdGUsIHZhbHVlOiB1bmRlZmluZWQgfSBhcyBZZWFyUXVhcnRlclJhbmdlVGVtcGxhdGU7XG4gICAgdGhpcy5fZW5kSXRlbSA9IHsgLi4udGVtcGxhdGUsIHZhbHVlOiB1bmRlZmluZWQgfSBhcyBZZWFyUXVhcnRlclJhbmdlVGVtcGxhdGU7XG4gIH1cblxuICBfc3RhcnRJdGVtITogWWVhclF1YXJ0ZXJSYW5nZVRlbXBsYXRlO1xuICBfZW5kSXRlbSE6IFllYXJRdWFydGVyUmFuZ2VUZW1wbGF0ZTtcbn1cbiIsIjxkaXYgKm5nSWY9XCJ0ZW1wbGF0ZVwiIGNsYXNzPVwicmFuZ2UtaXRlbS1jb250YWluZXJcIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIiBmeExheW91dEdhcD1cIjhweFwiPlxuICA8bXRuYS13Zi15ZWFyLXF1YXJ0ZXItaXRlbS10ZW1wbGF0ZSBbeWVhclF1YXJ0ZXJSYW5nZV09XCJfc3RhcnRJdGVtLnJhbmdlTGltaXRzXCI+PC9tdG5hLXdmLXllYXItcXVhcnRlci1pdGVtLXRlbXBsYXRlPlxuICA8c3BhbiBmeEZsZXg9XCIxNHB4XCI+dG88L3NwYW4+XG4gIDxtdG5hLXdmLXllYXItcXVhcnRlci1pdGVtLXRlbXBsYXRlIFt5ZWFyUXVhcnRlclJhbmdlXT1cIl9lbmRJdGVtLnJhbmdlTGltaXRzXCI+PC9tdG5hLXdmLXllYXItcXVhcnRlci1pdGVtLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=