tnx-shared 5.0.76 → 5.0.77

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 (126) hide show
  1. package/bundles/tnx-shared.umd.js +1032 -892
  2. package/bundles/tnx-shared.umd.js.map +1 -1
  3. package/bundles/tnx-shared.umd.min.js +1 -1
  4. package/bundles/tnx-shared.umd.min.js.map +1 -1
  5. package/classes/base/data-form-base.d.ts +2 -2
  6. package/classes/base/data-form-base.d.ts.map +1 -1
  7. package/classes/base/data-list-base.d.ts +1 -3
  8. package/classes/base/data-list-base.d.ts.map +1 -1
  9. package/classes/constants.d.ts +0 -4
  10. package/classes/constants.d.ts.map +1 -1
  11. package/classes/form-schema.d.ts +25 -38
  12. package/classes/form-schema.d.ts.map +1 -1
  13. package/classes/public-function.d.ts +1 -1
  14. package/components/address/address.component.d.ts.map +1 -1
  15. package/components/address-new/address-new.component.d.ts +37 -0
  16. package/components/address-new/address-new.component.d.ts.map +1 -0
  17. package/components/address-new/address-new.component.ngfactory.d.ts.map +1 -0
  18. package/components/address-new/address-new.component.scss.shim.ngstyle.d.ts.map +1 -0
  19. package/components/address-new/models/don-vi-hanh-chinh.d.ts +6 -0
  20. package/components/address-new/models/don-vi-hanh-chinh.d.ts.map +1 -0
  21. package/components/address-new/services/address.service.d.ts +8 -0
  22. package/components/address-new/services/address.service.d.ts.map +1 -0
  23. package/components/address-new/services/address.service.ngfactory.d.ts.map +1 -0
  24. package/components/autocomplete-picker/autocomplete-picker.component.d.ts +0 -1
  25. package/components/autocomplete-picker/autocomplete-picker.component.d.ts.map +1 -1
  26. package/components/common-app-component/common-app-component.d.ts +1 -4
  27. package/components/common-app-component/common-app-component.d.ts.map +1 -1
  28. package/components/crud/crud-form/crud-form.component.d.ts +2 -2
  29. package/components/crud/crud-form/crud-form.component.d.ts.map +1 -1
  30. package/components/crud/crud-list/crud-list.component.d.ts +1 -6
  31. package/components/crud/crud-list/crud-list.component.d.ts.map +1 -1
  32. package/components/entity-picker/entity-picker-dialog/components/entity-picker-data/entity-picker-data.component.d.ts.map +1 -1
  33. package/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.d.ts.map +1 -1
  34. package/components/file-explorer/file-manager/file-manager.component.d.ts +3 -0
  35. package/components/file-explorer/file-manager/file-manager.component.d.ts.map +1 -1
  36. package/components/file-explorer/services/download-link.service.d.ts +1 -0
  37. package/components/file-explorer/services/download-link.service.d.ts.map +1 -1
  38. package/components/file-explorer/services/file-explorer.service.d.ts +2 -0
  39. package/components/file-explorer/services/file-explorer.service.d.ts.map +1 -1
  40. package/components/file-explorer/services/file-object.service.d.ts +2 -0
  41. package/components/file-explorer/services/file-object.service.d.ts.map +1 -1
  42. package/components/file-explorer/signature-detail/signature-detail.component.d.ts +8 -0
  43. package/components/file-explorer/signature-detail/signature-detail.component.d.ts.map +1 -0
  44. package/components/file-explorer/signature-detail/signature-detail.component.ngfactory.d.ts.map +1 -0
  45. package/components/file-explorer/signature-detail/signature-detail.component.scss.shim.ngstyle.d.ts.map +1 -0
  46. package/components/file-upload/file-upload.component.d.ts +3 -0
  47. package/components/file-upload/file-upload.component.d.ts.map +1 -1
  48. package/components/mask/mask.component.d.ts +0 -2
  49. package/components/mask/mask.component.d.ts.map +1 -1
  50. package/components/service-file-upload/service-file-upload.component.d.ts +3 -0
  51. package/components/service-file-upload/service-file-upload.component.d.ts.map +1 -1
  52. package/configs/component-context.constant.d.ts +0 -1
  53. package/configs/component-context.constant.d.ts.map +1 -1
  54. package/esm2015/classes/base/data-form-base.js +5 -5
  55. package/esm2015/classes/base/data-list-base.js +23 -48
  56. package/esm2015/classes/constants.js +1 -6
  57. package/esm2015/classes/form-schema.js +29 -34
  58. package/esm2015/components/address/address.component.js +10 -4
  59. package/esm2015/components/address-new/address-new.component.js +224 -0
  60. package/esm2015/components/address-new/models/don-vi-hanh-chinh.js +8 -0
  61. package/esm2015/components/address-new/services/address.service.js +25 -0
  62. package/esm2015/components/autocomplete-picker/autocomplete-picker.component.js +16 -72
  63. package/esm2015/components/common-app-component/app.menu.component.js +2 -2
  64. package/esm2015/components/common-app-component/common-app-component.js +3 -26
  65. package/esm2015/components/crud/crud-form/crud-form.component.js +11 -10
  66. package/esm2015/components/crud/crud-list/crud-list.component.js +6 -71
  67. package/esm2015/components/entity-picker/entity-picker-dialog/components/entity-picker-data/entity-picker-data.component.js +3 -29
  68. package/esm2015/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.js +3 -29
  69. package/esm2015/components/file-explorer/file-manager/file-manager.component.js +155 -14
  70. package/esm2015/components/file-explorer/services/download-link.service.js +4 -1
  71. package/esm2015/components/file-explorer/services/file-explorer.service.js +21 -7
  72. package/esm2015/components/file-explorer/services/file-object.service.js +18 -1
  73. package/esm2015/components/file-explorer/signature-detail/signature-detail.component.js +66 -0
  74. package/esm2015/components/file-upload/file-upload.component.js +34 -2
  75. package/esm2015/components/mask/mask.component.js +4 -8
  76. package/esm2015/components/service-file-upload/service-file-upload.component.js +32 -2
  77. package/esm2015/components/workflow/services/entity-workflow-history.service.js +3 -3
  78. package/esm2015/components/workflow/services/entity-workflow-setting.service.js +4 -4
  79. package/esm2015/configs/component-context.constant.js +2 -3
  80. package/esm2015/models/grid-info.js +1 -1
  81. package/esm2015/pipes/tn-date.pipe.js +2 -12
  82. package/esm2015/public-api.js +7 -3
  83. package/esm2015/services/base.service.js +1 -16
  84. package/esm2015/services/common.service.js +1 -9
  85. package/esm2015/services/crud.service.js +4 -23
  86. package/esm2015/services/menu.service.js +3 -6
  87. package/esm2015/services/notifier.service.js +2 -2
  88. package/esm2015/services/permission.service.js +2 -9
  89. package/esm2015/services/template-text-v4.service.js +1 -1
  90. package/esm2015/services/user-v5.service.js +1 -1
  91. package/esm2015/services/user.service.js +2 -8
  92. package/esm2015/tnx-shared.js +94 -94
  93. package/esm2015/tnx-shared.module.js +6 -2
  94. package/fesm2015/tnx-shared.js +693 -536
  95. package/fesm2015/tnx-shared.js.map +1 -1
  96. package/models/grid-info.d.ts +0 -1
  97. package/models/grid-info.d.ts.map +1 -1
  98. package/package.json +2 -2
  99. package/pipes/tn-date.pipe.d.ts +0 -2
  100. package/pipes/tn-date.pipe.d.ts.map +1 -1
  101. package/public-api.d.ts +6 -2
  102. package/public-api.d.ts.map +1 -1
  103. package/services/base.service.d.ts +0 -1
  104. package/services/base.service.d.ts.map +1 -1
  105. package/services/common.service.d.ts +0 -4
  106. package/services/common.service.d.ts.map +1 -1
  107. package/services/crud.service.d.ts.map +1 -1
  108. package/services/menu.service.d.ts +1 -1
  109. package/services/menu.service.d.ts.map +1 -1
  110. package/services/permission.service.d.ts +0 -1
  111. package/services/permission.service.d.ts.map +1 -1
  112. package/services/template-text-v4.service.d.ts.map +1 -1
  113. package/services/user.service.d.ts.map +1 -1
  114. package/tnx-shared.d.ts +93 -93
  115. package/tnx-shared.d.ts.map +1 -1
  116. package/tnx-shared.metadata.json +1 -1
  117. package/tnx-shared.module.d.ts +3 -2
  118. package/tnx-shared.module.d.ts.map +1 -1
  119. package/tnx-shared.module.ngfactory.d.ts.map +1 -1
  120. package/components/file-explorer/models/file-settings.d.ts +0 -46
  121. package/components/file-explorer/models/file-settings.d.ts.map +0 -1
  122. package/esm2015/components/file-explorer/models/file-settings.js +0 -60
  123. package/esm2015/services/organization-base.service.js +0 -57
  124. package/services/organization-base.service.d.ts +0 -16
  125. package/services/organization-base.service.d.ts.map +0 -1
  126. package/services/organization-base.service.ngfactory.d.ts.map +0 -1
@@ -53,7 +53,9 @@ export class AddressComponent extends DataFormBase {
53
53
  label: 'Tỉnh/Thành phố',
54
54
  required: this.control.required && this.control.requiredProvince,
55
55
  baseService: this._addressService,
56
- defaultFilters: [{ field: 'level', operator: Operator.equal, value: ENUM_DON_VI_HANH_CHINH.THANH_PHO.toString() }],
56
+ defaultFilters: [{ field: 'level', operator: Operator.equal, value: ENUM_DON_VI_HANH_CHINH.THANH_PHO.toString() },
57
+ { field: 'version', operator: Operator.equal, value: "-1" }
58
+ ],
57
59
  valueField: 'id',
58
60
  displayField: 'name',
59
61
  fieldPlus: 'idRoot',
@@ -69,7 +71,9 @@ export class AddressComponent extends DataFormBase {
69
71
  label: 'Quận/Huyện',
70
72
  required: this.control.required && this.control.requiredDistrict,
71
73
  baseService: this._addressService,
72
- defaultFilters: [{ field: 'level', operator: Operator.equal, value: ENUM_DON_VI_HANH_CHINH.QUAN_HUYEN.toString() }],
74
+ defaultFilters: [{ field: 'level', operator: Operator.equal, value: ENUM_DON_VI_HANH_CHINH.QUAN_HUYEN.toString() },
75
+ { field: 'version', operator: Operator.equal, value: "-1" }
76
+ ],
73
77
  bindingFilters: [{ field: 'parentId', operator: Operator.equal, sourceField: 'idProvince', subField: 'idRoot' }],
74
78
  valueField: 'id',
75
79
  displayField: 'name',
@@ -84,7 +88,9 @@ export class AddressComponent extends DataFormBase {
84
88
  label: 'Phường/Xã',
85
89
  required: this.control.required && this.control.requiredWard,
86
90
  baseService: this._addressService,
87
- defaultFilters: [{ field: 'level', operator: Operator.equal, value: ENUM_DON_VI_HANH_CHINH.PHUONG_XA.toString() }],
91
+ defaultFilters: [{ field: 'level', operator: Operator.equal, value: ENUM_DON_VI_HANH_CHINH.PHUONG_XA.toString() },
92
+ { field: 'version', operator: Operator.equal, value: "-1" }
93
+ ],
88
94
  bindingFilters: [{ field: 'parentId', operator: Operator.equal, sourceField: 'idDistrict', subField: 'idRoot' }],
89
95
  valueField: 'id',
90
96
  displayField: 'name',
@@ -218,4 +224,4 @@ AddressComponent.propDecorators = {
218
224
  dataChange: [{ type: Output }],
219
225
  onReady: [{ type: Output }]
220
226
  };
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG54LXNoYXJlZC9zcmMvbGliLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9hZGRyZXNzL2FkZHJlc3MuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBYSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoSSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBUTVELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxZQUFZO0lBK0I5QyxZQUNjLFNBQW1CLEVBQ3JCLGVBQStCLEVBQy9CLG9CQUF5QyxFQUN6QyxzQkFBNkM7UUFFckQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBTFAsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNyQixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQUN6QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXVCO1FBMUJoRCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBTzFCLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBUTlCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBRVIsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3RELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3JDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBU3hDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7SUFDdEMsQ0FBQztJQWxDRCxJQUFhLFFBQVEsQ0FBQyxLQUFjO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFhLElBQUksQ0FBQyxLQUFVO1FBQ3hCLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxLQUFLLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQztZQUNsRCxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ25ELElBQUksS0FBSyxJQUFJLElBQUk7WUFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUFBLENBQUM7SUFFRixJQUFhLFlBQVksQ0FBQyxLQUFjO1FBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBcUJELFFBQVE7UUFDSixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDL0IsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLHFEQUFxRDtRQUNyRCwyQ0FBMkM7UUFDM0MsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRTtZQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDaEM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRztZQUNsQixJQUFJLHFCQUFxQixDQUFDO2dCQUN0QixLQUFLLEVBQUUsWUFBWTtnQkFDbkIsS0FBSyxFQUFFLGdCQUFnQjtnQkFDdkIsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCO2dCQUNoRSxXQUFXLEVBQUUsSUFBSSxDQUFDLGVBQWU7Z0JBQ2pDLGNBQWMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsc0JBQXNCLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7Z0JBQ2xILFVBQVUsRUFBRSxJQUFJO2dCQUNoQixZQUFZLEVBQUUsTUFBTTtnQkFDcEIsU0FBUyxFQUFFLFFBQVE7Z0JBQ25CLFNBQVMsRUFBRSxNQUFNO2dCQUNqQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhO2dCQUNuQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3hCLGtCQUFrQixFQUFFLENBQUMsR0FBYyxFQUFFLEVBQUU7b0JBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO2dCQUM5QixDQUFDO2FBQ0osQ0FBQztZQUNGLElBQUkscUJBQXFCLENBQUM7Z0JBQ3RCLEtBQUssRUFBRSxZQUFZO2dCQUNuQixLQUFLLEVBQUUsWUFBWTtnQkFDbkIsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCO2dCQUNoRSxXQUFXLEVBQUUsSUFBSSxDQUFDLGVBQWU7Z0JBQ2pDLGNBQWMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsc0JBQXNCLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7Z0JBQ25ILGNBQWMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQztnQkFDaEgsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLFlBQVksRUFBRSxNQUFNO2dCQUNwQixTQUFTLEVBQUUsUUFBUTtnQkFDbkIsU0FBUyxFQUFFLE1BQU07Z0JBQ2pCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWE7Z0JBQ25DLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDeEIsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWTthQUNwQyxDQUFDO1lBQ0YsSUFBSSxxQkFBcUIsQ0FBQztnQkFDdEIsS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsS0FBSyxFQUFFLFdBQVc7Z0JBQ2xCLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVk7Z0JBQzVELFdBQVcsRUFBRSxJQUFJLENBQUMsZUFBZTtnQkFDakMsY0FBYyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztnQkFDbEgsY0FBYyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDO2dCQUNoSCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsWUFBWSxFQUFFLE1BQU07Z0JBQ3BCLFNBQVMsRUFBRSxRQUFRO2dCQUNuQixTQUFTLEVBQUUsTUFBTTtnQkFDakIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUztnQkFDL0IsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO2FBQ2hDLENBQUM7WUFDRixJQUFJLGlCQUFpQixDQUFDO2dCQUNsQixLQUFLLEVBQUUsUUFBUTtnQkFDZixLQUFLLEVBQUUsT0FBTztnQkFDZCxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjO2dCQUM5RCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXO2dCQUNqQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3hCLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVU7YUFDbEMsQ0FBQztZQUNGLElBQUksaUJBQWlCLENBQUM7Z0JBQ2xCLEtBQUssRUFBRSxJQUFJO2dCQUNYLEtBQUssRUFBRSxRQUFRO2dCQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVU7Z0JBQzFELE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87Z0JBQzdCLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDeEIsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTthQUM5QixDQUFDO1NBQ0wsQ0FBQTtRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN2QjtJQUNMLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxHQUFHO1FBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFLO1FBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDaEMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQztlQUM1QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7ZUFDOUQsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQzNEO1lBQ0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QztJQUNMLENBQUM7SUFFRCxZQUFZO0lBRVosQ0FBQztJQUVELFlBQVk7UUFDUixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVU7WUFDMUIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVU7WUFDeEQsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU07WUFDaEQsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbkIsTUFBTSxNQUFNLEdBQUc7Z0JBQ1gsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osUUFBUSxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTTtnQkFDOUIsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTthQUN6QixDQUFBO1lBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDO2FBQzVDLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUMxRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFO29CQUM1QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDekUsSUFBSSxRQUFRO3dCQUNSLE1BQU0sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztpQkFDdkM7Z0JBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFO29CQUMxRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDekUsSUFBSSxRQUFRO3dCQUNSLE1BQU0sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztpQkFDdkM7Z0JBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO29CQUNsRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDakUsSUFBSSxJQUFJO3dCQUNKLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDL0I7Z0JBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5QixDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ1A7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLFVBQVU7UUFDbkIsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBRWIsSUFBSSxVQUFVLENBQUMsRUFBRSxFQUFFO1lBQ2YsR0FBRyxJQUFJLFFBQVEsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDO1NBQ2xDO1FBRUQsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQ25CLEdBQUcsSUFBSSxXQUFXLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN6QztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFO1lBQy9DLEdBQUcsSUFBSSxLQUFLLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNqQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFO1lBQ25ELEdBQUcsSUFBSSxLQUFLLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNyQztRQUVELElBQUksVUFBVSxDQUFDLFFBQVEsRUFBRTtZQUNyQixHQUFHLElBQUksS0FBSyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDckM7UUFFRCxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7WUFDWixHQUFHLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNqQztRQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO0lBQzNCLENBQUM7OztZQXZOSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsbW1CQUF1Qzs7YUFFMUM7OztZQWZpQyxRQUFRO1lBU2pDLGNBQWM7WUFKZCxtQkFBbUI7WUFKbkIscUJBQXFCOzs7dUJBa0J6QixTQUFTLFNBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO3NCQUM5QyxLQUFLO3VCQUVMLEtBQUs7dUJBSUwsS0FBSzttQkFDTCxLQUFLOzJCQU9MLEtBQUs7dUJBVUwsTUFBTTt5QkFDTixNQUFNO3NCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERldmljZURldGVjdG9yU2VydmljZSB9IGZyb20gJ25neC1kZXZpY2UtZGV0ZWN0b3InO1xyXG5pbXBvcnQgeyBEYXRhRm9ybUJhc2UgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Jhc2UvZGF0YS1mb3JtLWJhc2UnO1xyXG5pbXBvcnQgeyBtZXJnZUpTT04gfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Vudmlyb25tZW50LXNjaGVtYSc7XHJcbmltcG9ydCB7IEFkZHJlc3NDb250cm9sU2NoZW1hLCBEcm9wZG93bkNvbnRyb2xTY2hlbWEsIEV2ZW50RGF0YSwgT3BlcmF0b3IsIFRleHRDb250cm9sU2NoZW1hIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9mb3JtLXNjaGVtYSc7XHJcbmltcG9ydCB7IE1vZHVsZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tb2R1bGUtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDcnVkRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2NydWQvY3J1ZC1mb3JtL2NydWQtZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBpc0xpdGVyYWxPYmplY3QgfSBmcm9tICcuLy4uLy4uL2NsYXNzZXMvZW52aXJvbm1lbnQtc2NoZW1hJztcclxuaW1wb3J0IHsgRU5VTV9ET05fVklfSEFOSF9DSElOSCB9IGZyb20gJy4vbW9kZWxzL2Rvbi12aS1oYW5oLWNoaW5oJztcclxuaW1wb3J0IHsgQWRkcmVzc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2FkZHJlc3Muc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYWRkcmVzcy1waWNrZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FkZHJlc3MuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYWRkcmVzcy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQWRkcmVzc0NvbXBvbmVudCBleHRlbmRzIERhdGFGb3JtQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gICAgQFZpZXdDaGlsZChDcnVkRm9ybUNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pIGNydWRGb3JtOiBDcnVkRm9ybUNvbXBvbmVudDtcclxuICAgIEBJbnB1dCgpIGNvbnRyb2w6IEFkZHJlc3NDb250cm9sU2NoZW1hO1xyXG4gICAgX2Rpc2FibGVkOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLnNldERpc2FibGVkQ29udHJvbCgpO1xyXG4gICAgfVxyXG4gICAgQElucHV0KCkgdmlld01vZGUgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHNldCBkYXRhKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICBpZiAodGhpcy5fbW9kZWxEYXRhICE9IHZhbHVlICYmIGlzTGl0ZXJhbE9iamVjdCh2YWx1ZSkpXHJcbiAgICAgICAgICAgIHRoaXMuX21vZGVsRGF0YSA9IG1lcmdlSlNPTih0aGlzLl9tb2RlbERhdGEsIHZhbHVlKTtcclxuICAgICAgICBlbHNlIGlmICh2YWx1ZSA9PSBudWxsKVxyXG4gICAgICAgICAgICB0aGlzLl9tb2RlbERhdGEgPSB7fTtcclxuICAgIH07XHJcbiAgICBfc2hvd1N1YkxhYmVsOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIHNldCBzaG93U3ViTGFiZWwodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9zaG93U3ViTGFiZWwgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLnNldFNob3dMYWJlbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIF9tb2RlbERhdGE6IGFueTtcclxuICAgIG1vZGVsU3RyaW5nOiBzdHJpbmc7XHJcbiAgICByZWFkeVRvUmVsb2FkID0gZmFsc2U7XHJcbiAgICBfcmVhZHlTdGF0dXMgPSB7fTtcclxuXHJcbiAgICBAT3V0cHV0KCkgb25TZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICBAT3V0cHV0KCkgZGF0YUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICAgQE91dHB1dCgpIG9uUmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgX2luamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICBwcml2YXRlIF9hZGRyZXNzU2VydmljZTogQWRkcmVzc1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfbW9kdWxlQ29uZmlnU2VydmljZTogTW9kdWxlQ29uZmlnU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9kZXZpY2VEZXRlY3RvclNlcnZpY2U6IERldmljZURldGVjdG9yU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoX2luamVjdG9yKTtcclxuICAgICAgICB0aGlzLmRvTm90Q2hlY2tCYXNlU2VydmljZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9sLl9jb21wb25lbnQgPSB0aGlzO1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgLy8gTuG6v3UgxJHDoyDhuqluIHF14bqtbiBodXnhu4duIHRow6wgcGjhuqNpIOG6qW4gbHXDtG4gY+G6oyBwaMaw4budbmcgeMOjXHJcbiAgICAgICAgLy8gVsOsIG7hur91IGtow7RuZyBsb2FkIGThu68gbGnhu4d1IHPhur0ga2jDtG5nIGNodeG6qW5cclxuICAgICAgICBpZiAodGhpcy5jb250cm9sLmhpZGVEaXN0cmljdCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuaGlkZVdhcmQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldHRpbmcuc2NoZW1hID0gW1xyXG4gICAgICAgICAgICBuZXcgRHJvcGRvd25Db250cm9sU2NoZW1hKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnaWRQcm92aW5jZScsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogJ1Thu4luaC9UaMOgbmggcGjhu5EnLFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRoaXMuY29udHJvbC5yZXF1aXJlZCAmJiB0aGlzLmNvbnRyb2wucmVxdWlyZWRQcm92aW5jZSxcclxuICAgICAgICAgICAgICAgIGJhc2VTZXJ2aWNlOiB0aGlzLl9hZGRyZXNzU2VydmljZSxcclxuICAgICAgICAgICAgICAgIGRlZmF1bHRGaWx0ZXJzOiBbeyBmaWVsZDogJ2xldmVsJywgb3BlcmF0b3I6IE9wZXJhdG9yLmVxdWFsLCB2YWx1ZTogRU5VTV9ET05fVklfSEFOSF9DSElOSC5USEFOSF9QSE8udG9TdHJpbmcoKSB9XSxcclxuICAgICAgICAgICAgICAgIHZhbHVlRmllbGQ6ICdpZCcsXHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5RmllbGQ6ICduYW1lJyxcclxuICAgICAgICAgICAgICAgIGZpZWxkUGx1czogJ2lkUm9vdCcsXHJcbiAgICAgICAgICAgICAgICBzb3J0RmllbGQ6ICdzb3J0JyxcclxuICAgICAgICAgICAgICAgIG1kV2lkdGg6IHRoaXMuY29udHJvbC5wcm92aW5jZVdpZHRoLFxyXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuX2Rpc2FibGVkLFxyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2tEYXRhRmluaXNoOiAoZXZ0OiBFdmVudERhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlYWR5VG9SZWxvYWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IERyb3Bkb3duQ29udHJvbFNjaGVtYSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2lkRGlzdHJpY3QnLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdRdeG6rW4vSHV54buHbicsXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdGhpcy5jb250cm9sLnJlcXVpcmVkICYmIHRoaXMuY29udHJvbC5yZXF1aXJlZERpc3RyaWN0LFxyXG4gICAgICAgICAgICAgICAgYmFzZVNlcnZpY2U6IHRoaXMuX2FkZHJlc3NTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdEZpbHRlcnM6IFt7IGZpZWxkOiAnbGV2ZWwnLCBvcGVyYXRvcjogT3BlcmF0b3IuZXF1YWwsIHZhbHVlOiBFTlVNX0RPTl9WSV9IQU5IX0NISU5ILlFVQU5fSFVZRU4udG9TdHJpbmcoKSB9XSxcclxuICAgICAgICAgICAgICAgIGJpbmRpbmdGaWx0ZXJzOiBbeyBmaWVsZDogJ3BhcmVudElkJywgb3BlcmF0b3I6IE9wZXJhdG9yLmVxdWFsLCBzb3VyY2VGaWVsZDogJ2lkUHJvdmluY2UnLCBzdWJGaWVsZDogJ2lkUm9vdCcgfV0sXHJcbiAgICAgICAgICAgICAgICB2YWx1ZUZpZWxkOiAnaWQnLFxyXG4gICAgICAgICAgICAgICAgZGlzcGxheUZpZWxkOiAnbmFtZScsXHJcbiAgICAgICAgICAgICAgICBmaWVsZFBsdXM6ICdpZFJvb3QnLFxyXG4gICAgICAgICAgICAgICAgc29ydEZpZWxkOiAnc29ydCcsXHJcbiAgICAgICAgICAgICAgICBtZFdpZHRoOiB0aGlzLmNvbnRyb2wuZGlzdHJpY3RXaWR0aCxcclxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLl9kaXNhYmxlZCxcclxuICAgICAgICAgICAgICAgIGhpZGRlbjogdGhpcy5jb250cm9sLmhpZGVEaXN0cmljdFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IERyb3Bkb3duQ29udHJvbFNjaGVtYSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2lkV2FyZCcsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogJ1BoxrDhu51uZy9Yw6MnLFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRoaXMuY29udHJvbC5yZXF1aXJlZCAmJiB0aGlzLmNvbnRyb2wucmVxdWlyZWRXYXJkLFxyXG4gICAgICAgICAgICAgICAgYmFzZVNlcnZpY2U6IHRoaXMuX2FkZHJlc3NTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdEZpbHRlcnM6IFt7IGZpZWxkOiAnbGV2ZWwnLCBvcGVyYXRvcjogT3BlcmF0b3IuZXF1YWwsIHZhbHVlOiBFTlVNX0RPTl9WSV9IQU5IX0NISU5ILlBIVU9OR19YQS50b1N0cmluZygpIH1dLFxyXG4gICAgICAgICAgICAgICAgYmluZGluZ0ZpbHRlcnM6IFt7IGZpZWxkOiAncGFyZW50SWQnLCBvcGVyYXRvcjogT3BlcmF0b3IuZXF1YWwsIHNvdXJjZUZpZWxkOiAnaWREaXN0cmljdCcsIHN1YkZpZWxkOiAnaWRSb290JyB9XSxcclxuICAgICAgICAgICAgICAgIHZhbHVlRmllbGQ6ICdpZCcsXHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5RmllbGQ6ICduYW1lJyxcclxuICAgICAgICAgICAgICAgIGZpZWxkUGx1czogJ2lkUm9vdCcsXHJcbiAgICAgICAgICAgICAgICBzb3J0RmllbGQ6ICdzb3J0JyxcclxuICAgICAgICAgICAgICAgIG1kV2lkdGg6IHRoaXMuY29udHJvbC53YXJkV2lkdGgsXHJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5fZGlzYWJsZWQsXHJcbiAgICAgICAgICAgICAgICBoaWRkZW46IHRoaXMuY29udHJvbC5oaWRlV2FyZFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IFRleHRDb250cm9sU2NoZW1hKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnc3RyZWV0JyxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnxJDGsOG7nW5nJyxcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0aGlzLmNvbnRyb2wucmVxdWlyZWQgJiYgdGhpcy5jb250cm9sLnJlcXVpcmVkU3RyZWV0LFxyXG4gICAgICAgICAgICAgICAgbWRXaWR0aDogdGhpcy5jb250cm9sLnN0cmVldFdpZHRoLFxyXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuX2Rpc2FibGVkLFxyXG4gICAgICAgICAgICAgICAgaGlkZGVuOiB0aGlzLmNvbnRyb2wuaGlkZVN0cmVldFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IFRleHRDb250cm9sU2NoZW1hKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnbm8nLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdT4buRIG5ow6AnLFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRoaXMuY29udHJvbC5yZXF1aXJlZCAmJiB0aGlzLmNvbnRyb2wucmVxdWlyZWRObyxcclxuICAgICAgICAgICAgICAgIG1kV2lkdGg6IHRoaXMuY29udHJvbC5ub1dpZHRoLFxyXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuX2Rpc2FibGVkLFxyXG4gICAgICAgICAgICAgICAgaGlkZGVuOiB0aGlzLmNvbnRyb2wuaGlkZU5vXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgXVxyXG4gICAgICAgIGlmICh0aGlzLnZpZXdNb2RlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0TW9kZWxUZXh0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldERpc2FibGVkQ29udHJvbCgpIHtcclxuICAgICAgICBjb25zdCBkaXNhYmxlZCA9IHRoaXMuX2Rpc2FibGVkID8gdHJ1ZSA6IG51bGw7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLnNjaGVtYS5mb3JFYWNoKGN0cmwgPT4gY3RybC5kaXNhYmxlZCA9IGRpc2FibGVkKTtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVWYWx1ZUNoYW5nZShldnQpIHtcclxuICAgICAgICB0aGlzLmRhdGFDaGFuZ2UuZW1pdCh0aGlzLl9tb2RlbERhdGEpO1xyXG4gICAgICAgIHRoaXMub25TZWxlY3QuZW1pdCh0aGlzLl9tb2RlbERhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZVJlYWR5KGZpZWxkKSB7XHJcbiAgICAgICAgdGhpcy5fcmVhZHlTdGF0dXNbZmllbGRdID0gdHJ1ZTtcclxuICAgICAgICBpZiAodGhpcy5fcmVhZHlTdGF0dXNbJ2lkUHJvdmluY2UnXVxyXG4gICAgICAgICAgICAmJiAodGhpcy5jb250cm9sLmhpZGVEaXN0cmljdCB8fCB0aGlzLl9yZWFkeVN0YXR1c1snaWREaXN0cmljdCddKVxyXG4gICAgICAgICAgICAmJiAodGhpcy5jb250cm9sLmhpZGVXYXJkIHx8IHRoaXMuX3JlYWR5U3RhdHVzWydpZFdhcmQnXSlcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy5vblJlYWR5LmVtaXQodGhpcy5jb250cm9sLmZpZWxkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0U2hvd0xhYmVsKCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBnZXRNb2RlbFRleHQoKSB7XHJcbiAgICAgICAgY29uc3QgdmFsdWVzID0gW107XHJcbiAgICAgICAgaWYgKHRoaXMuX21vZGVsRGF0YS5pZFByb3ZpbmNlKVxyXG4gICAgICAgICAgICB2YWx1ZXMucHVzaCh0aGlzLl9tb2RlbERhdGEuaWRQcm92aW5jZSk7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2wuaGlkZURpc3RyaWN0ICYmIHRoaXMuX21vZGVsRGF0YS5pZERpc3RyaWN0KVxyXG4gICAgICAgICAgICB2YWx1ZXMucHVzaCh0aGlzLl9tb2RlbERhdGEuaWREaXN0cmljdCk7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2wuaGlkZVdhcmQgJiYgdGhpcy5fbW9kZWxEYXRhLmlkV2FyZClcclxuICAgICAgICAgICAgdmFsdWVzLnB1c2godGhpcy5fbW9kZWxEYXRhLmlkV2FyZCk7XHJcbiAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHtcclxuICAgICAgICAgICAgICAgIHByb3ZpbmNlOiAnJyxcclxuICAgICAgICAgICAgICAgIGRpc3RyaWN0OiAnJyxcclxuICAgICAgICAgICAgICAgIHdhcmQ6ICcnLFxyXG4gICAgICAgICAgICAgICAgc3RyZWV0OiB0aGlzLl9tb2RlbERhdGEuc3RyZWV0LFxyXG4gICAgICAgICAgICAgICAgbm86IHRoaXMuX21vZGVsRGF0YS5ub1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuX2FkZHJlc3NTZXJ2aWNlLmdldEFsbChbXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5ld0ZpbHRlcignaWQnLCBPcGVyYXRvci5pbiwgdmFsdWVzKVxyXG4gICAgICAgICAgICBdLCAnaWQsbmFtZScpLnRoZW4ocmVzID0+IHRoaXMuaGFuZGxlUmVzcG9uc2UocmVzLCAnJywgZGF0YSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fbW9kZWxEYXRhLmlkUHJvdmluY2UpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcm92aW5jZSA9IGRhdGEuZGF0YS5maW5kKHAgPT4gcC5pZCA9PSB0aGlzLl9tb2RlbERhdGEuaWRQcm92aW5jZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb3ZpbmNlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQucHJvdmluY2UgPSBwcm92aW5jZS5uYW1lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2wuaGlkZURpc3RyaWN0ICYmIHRoaXMuX21vZGVsRGF0YS5pZERpc3RyaWN0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzdHJpY3QgPSBkYXRhLmRhdGEuZmluZChwID0+IHAuaWQgPT0gdGhpcy5fbW9kZWxEYXRhLmlkRGlzdHJpY3QpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChkaXN0cmljdClcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmRpc3RyaWN0ID0gZGlzdHJpY3QubmFtZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jb250cm9sLmhpZGVXYXJkICYmIHRoaXMuX21vZGVsRGF0YS5pZFdhcmQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB3YXJkID0gZGF0YS5kYXRhLmZpbmQocCA9PiBwLmlkID09IHRoaXMuX21vZGVsRGF0YS5pZFdhcmQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh3YXJkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQud2FyZCA9IHdhcmQubmFtZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0TW9kZWxUZXh0KHJlc3VsdCk7XHJcbiAgICAgICAgICAgIH0pKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0TW9kZWxUZXh0KG9iakFkZHJlc3MpIHtcclxuICAgICAgICBsZXQgc3RyID0gYGA7XHJcblxyXG4gICAgICAgIGlmIChvYmpBZGRyZXNzLm5vKSB7XHJcbiAgICAgICAgICAgIHN0ciArPSBgLCBT4buRICR7b2JqQWRkcmVzcy5ub31gO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9iakFkZHJlc3Muc3RyZWV0KSB7XHJcbiAgICAgICAgICAgIHN0ciArPSBgLCDEkMaw4budbmcgJHtvYmpBZGRyZXNzLnN0cmVldH1gO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2wuaGlkZURpc3RyaWN0ICYmIG9iakFkZHJlc3Mud2FyZCkge1xyXG4gICAgICAgICAgICBzdHIgKz0gYCwgJHtvYmpBZGRyZXNzLndhcmR9YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5jb250cm9sLmhpZGVEaXN0cmljdCAmJiBvYmpBZGRyZXNzLmRpc3RyaWN0KSB7XHJcbiAgICAgICAgICAgIHN0ciArPSBgLCAke29iakFkZHJlc3MuZGlzdHJpY3R9YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvYmpBZGRyZXNzLnByb3ZpbmNlKSB7XHJcbiAgICAgICAgICAgIHN0ciArPSBgLCAke29iakFkZHJlc3MucHJvdmluY2V9YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChzdHIgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIHN0ciA9IHN0ci5zdWJzdHJpbmcoMikudHJpbSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5tb2RlbFN0cmluZyA9IHN0cjtcclxuICAgIH1cclxufVxyXG4iXX0=
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG54LXNoYXJlZC9zcmMvbGliLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9hZGRyZXNzL2FkZHJlc3MuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBYSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoSSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBUTVELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxZQUFZO0lBK0I5QyxZQUNjLFNBQW1CLEVBQ3JCLGVBQStCLEVBQy9CLG9CQUF5QyxFQUN6QyxzQkFBNkM7UUFFckQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBTFAsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNyQixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFx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QUFXLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN6QztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFO1lBQy9DLEdBQUcsSUFBSSxLQUFLLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNqQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFO1lBQ25ELEdBQUcsSUFBSSxLQUFLLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNyQztRQUVELElBQUksVUFBVSxDQUFDLFFBQVEsRUFBRTtZQUNyQixHQUFHLElBQUksS0FBSyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDckM7UUFFRCxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7WUFDWixHQUFHLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNqQztRQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO0lBQzNCLENBQUM7OztZQTdOSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsbW1CQUF1Qzs7YUFFMUM7OztZQWZpQyxRQUFRO1lBU2pDLGNBQWM7WUFKZCxtQkFBbUI7WUFKbkIscUJBQXFCOzs7dUJBa0J6QixTQUFTLFNBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO3NCQUM5QyxLQUFLO3VCQUVMLEtBQUs7dUJBSUwsS0FBSzttQkFDTCxLQUFLOzJCQU9MLEtBQUs7dUJBVUwsTUFBTTt5QkFDTixNQUFNO3NCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERldmljZURldGVjdG9yU2VydmljZSB9IGZyb20gJ25neC1kZXZpY2UtZGV0ZWN0b3InO1xyXG5pbXBvcnQgeyBEYXRhRm9ybUJhc2UgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Jhc2UvZGF0YS1mb3JtLWJhc2UnO1xyXG5pbXBvcnQgeyBtZXJnZUpTT04gfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Vudmlyb25tZW50LXNjaGVtYSc7XHJcbmltcG9ydCB7IEFkZHJlc3NDb250cm9sU2NoZW1hLCBEcm9wZG93bkNvbnRyb2xTY2hlbWEsIEV2ZW50RGF0YSwgT3BlcmF0b3IsIFRleHRDb250cm9sU2NoZW1hIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9mb3JtLXNjaGVtYSc7XHJcbmltcG9ydCB7IE1vZHVsZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tb2R1bGUtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDcnVkRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2NydWQvY3J1ZC1mb3JtL2NydWQtZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBpc0xpdGVyYWxPYmplY3QgfSBmcm9tICcuLy4uLy4uL2NsYXNzZXMvZW52aXJvbm1lbnQtc2NoZW1hJztcclxuaW1wb3J0IHsgRU5VTV9ET05fVklfSEFOSF9DSElOSCB9IGZyb20gJy4vbW9kZWxzL2Rvbi12aS1oYW5oLWNoaW5oJztcclxuaW1wb3J0IHsgQWRkcmVzc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2FkZHJlc3Muc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYWRkcmVzcy1waWNrZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FkZHJlc3MuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYWRkcmVzcy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQWRkcmVzc0NvbXBvbmVudCBleHRlbmRzIERhdGFGb3JtQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gICAgQFZpZXdDaGlsZChDcnVkRm9ybUNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pIGNydWRGb3JtOiBDcnVkRm9ybUNvbXBvbmVudDtcclxuICAgIEBJbnB1dCgpIGNvbnRyb2w6IEFkZHJlc3NDb250cm9sU2NoZW1hO1xyXG4gICAgX2Rpc2FibGVkOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLnNldERpc2FibGVkQ29udHJvbCgpO1xyXG4gICAgfVxyXG4gICAgQElucHV0KCkgdmlld01vZGUgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHNldCBkYXRhKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICBpZiAodGhpcy5fbW9kZWxEYXRhICE9IHZhbHVlICYmIGlzTGl0ZXJhbE9iamVjdCh2YWx1ZSkpXHJcbiAgICAgICAgICAgIHRoaXMuX21vZGVsRGF0YSA9IG1lcmdlSlNPTih0aGlzLl9tb2RlbERhdGEsIHZhbHVlKTtcclxuICAgICAgICBlbHNlIGlmICh2YWx1ZSA9PSBudWxsKVxyXG4gICAgICAgICAgICB0aGlzLl9tb2RlbERhdGEgPSB7fTtcclxuICAgIH07XHJcbiAgICBfc2hvd1N1YkxhYmVsOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIHNldCBzaG93U3ViTGFiZWwodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9zaG93U3ViTGFiZWwgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLnNldFNob3dMYWJlbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIF9tb2RlbERhdGE6IGFueTtcclxuICAgIG1vZGVsU3RyaW5nOiBzdHJpbmc7XHJcbiAgICByZWFkeVRvUmVsb2FkID0gZmFsc2U7XHJcbiAgICBfcmVhZHlTdGF0dXMgPSB7fTtcclxuXHJcbiAgICBAT3V0cHV0KCkgb25TZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICBAT3V0cHV0KCkgZGF0YUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICAgQE91dHB1dCgpIG9uUmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgX2luamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICBwcml2YXRlIF9hZGRyZXNzU2VydmljZTogQWRkcmVzc1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfbW9kdWxlQ29uZmlnU2VydmljZTogTW9kdWxlQ29uZmlnU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9kZXZpY2VEZXRlY3RvclNlcnZpY2U6IERldmljZURldGVjdG9yU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoX2luamVjdG9yKTtcclxuICAgICAgICB0aGlzLmRvTm90Q2hlY2tCYXNlU2VydmljZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9sLl9jb21wb25lbnQgPSB0aGlzO1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgLy8gTuG6v3UgxJHDoyDhuqluIHF14bqtbiBodXnhu4duIHRow6wgcGjhuqNpIOG6qW4gbHXDtG4gY+G6oyBwaMaw4budbmcgeMOjXHJcbiAgICAgICAgLy8gVsOsIG7hur91IGtow7RuZyBsb2FkIGThu68gbGnhu4d1IHPhur0ga2jDtG5nIGNodeG6qW5cclxuICAgICAgICBpZiAodGhpcy5jb250cm9sLmhpZGVEaXN0cmljdCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuaGlkZVdhcmQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldHRpbmcuc2NoZW1hID0gW1xyXG4gICAgICAgICAgICBuZXcgRHJvcGRvd25Db250cm9sU2NoZW1hKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnaWRQcm92aW5jZScsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogJ1Thu4luaC9UaMOgbmggcGjhu5EnLFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRoaXMuY29udHJvbC5yZXF1aXJlZCAmJiB0aGlzLmNvbnRyb2wucmVxdWlyZWRQcm92aW5jZSxcclxuICAgICAgICAgICAgICAgIGJhc2VTZXJ2aWNlOiB0aGlzLl9hZGRyZXNzU2VydmljZSxcclxuICAgICAgICAgICAgICAgIGRlZmF1bHRGaWx0ZXJzOiBbeyBmaWVsZDogJ2xldmVsJywgb3BlcmF0b3I6IE9wZXJhdG9yLmVxdWFsLCB2YWx1ZTogRU5VTV9ET05fVklfSEFOSF9DSElOSC5USEFOSF9QSE8udG9TdHJpbmcoKSB9LFxyXG4gICAgICAgICAgICAgICAgeyBmaWVsZDogJ3ZlcnNpb24nLCBvcGVyYXRvcjogT3BlcmF0b3IuZXF1YWwsIHZhbHVlOiBcIi0xXCIgfVxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgIHZhbHVlRmllbGQ6ICdpZCcsXHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5RmllbGQ6ICduYW1lJyxcclxuICAgICAgICAgICAgICAgIGZpZWxkUGx1czogJ2lkUm9vdCcsXHJcbiAgICAgICAgICAgICAgICBzb3J0RmllbGQ6ICdzb3J0JyxcclxuICAgICAgICAgICAgICAgIG1kV2lkdGg6IHRoaXMuY29udHJvbC5wcm92aW5jZVdpZHRoLFxyXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuX2Rpc2FibGVkLFxyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2tEYXRhRmluaXNoOiAoZXZ0OiBFdmVudERhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlYWR5VG9SZWxvYWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IERyb3Bkb3duQ29udHJvbFNjaGVtYSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2lkRGlzdHJpY3QnLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdRdeG6rW4vSHV54buHbicsXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdGhpcy5jb250cm9sLnJlcXVpcmVkICYmIHRoaXMuY29udHJvbC5yZXF1aXJlZERpc3RyaWN0LFxyXG4gICAgICAgICAgICAgICAgYmFzZVNlcnZpY2U6IHRoaXMuX2FkZHJlc3NTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdEZpbHRlcnM6IFt7IGZpZWxkOiAnbGV2ZWwnLCBvcGVyYXRvcjogT3BlcmF0b3IuZXF1YWwsIHZhbHVlOiBFTlVNX0RPTl9WSV9IQU5IX0NISU5ILlFVQU5fSFVZRU4udG9TdHJpbmcoKSB9LFxyXG4gICAgICAgICAgICAgICAgeyBmaWVsZDogJ3ZlcnNpb24nLCBvcGVyYXRvcjogT3BlcmF0b3IuZXF1YWwsIHZhbHVlOiBcIi0xXCIgfVxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgIGJpbmRpbmdGaWx0ZXJzOiBbeyBmaWVsZDogJ3BhcmVudElkJywgb3BlcmF0b3I6IE9wZXJhdG9yLmVxdWFsLCBzb3VyY2VGaWVsZDogJ2lkUHJvdmluY2UnLCBzdWJGaWVsZDogJ2lkUm9vdCcgfV0sXHJcbiAgICAgICAgICAgICAgICB2YWx1ZUZpZWxkOiAnaWQnLFxyXG4gICAgICAgICAgICAgICAgZGlzcGxheUZpZWxkOiAnbmFtZScsXHJcbiAgICAgICAgICAgICAgICBmaWVsZFBsdXM6ICdpZFJvb3QnLFxyXG4gICAgICAgICAgICAgICAgc29ydEZpZWxkOiAnc29ydCcsXHJcbiAgICAgICAgICAgICAgICBtZFdpZHRoOiB0aGlzLmNvbnRyb2wuZGlzdHJpY3RXaWR0aCxcclxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLl9kaXNhYmxlZCxcclxuICAgICAgICAgICAgICAgIGhpZGRlbjogdGhpcy5jb250cm9sLmhpZGVEaXN0cmljdFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IERyb3Bkb3duQ29udHJvbFNjaGVtYSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2lkV2FyZCcsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogJ1BoxrDhu51uZy9Yw6MnLFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRoaXMuY29udHJvbC5yZXF1aXJlZCAmJiB0aGlzLmNvbnRyb2wucmVxdWlyZWRXYXJkLFxyXG4gICAgICAgICAgICAgICAgYmFzZVNlcnZpY2U6IHRoaXMuX2FkZHJlc3NTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdEZpbHRlcnM6IFt7IGZpZWxkOiAnbGV2ZWwnLCBvcGVyYXRvcjogT3BlcmF0b3IuZXF1YWwsIHZhbHVlOiBFTlVNX0RPTl9WSV9IQU5IX0NISU5ILlBIVU9OR19YQS50b1N0cmluZygpIH0sXHJcbiAgICAgICAgICAgICAgICB7IGZpZWxkOiAndmVyc2lvbicsIG9wZXJhdG9yOiBPcGVyYXRvci5lcXVhbCwgdmFsdWU6IFwiLTFcIiB9XHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgICAgYmluZGluZ0ZpbHRlcnM6IFt7IGZpZWxkOiAncGFyZW50SWQnLCBvcGVyYXRvcjogT3BlcmF0b3IuZXF1YWwsIHNvdXJjZUZpZWxkOiAnaWREaXN0cmljdCcsIHN1YkZpZWxkOiAnaWRSb290JyB9XSxcclxuICAgICAgICAgICAgICAgIHZhbHVlRmllbGQ6ICdpZCcsXHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5RmllbGQ6ICduYW1lJyxcclxuICAgICAgICAgICAgICAgIGZpZWxkUGx1czogJ2lkUm9vdCcsXHJcbiAgICAgICAgICAgICAgICBzb3J0RmllbGQ6ICdzb3J0JyxcclxuICAgICAgICAgICAgICAgIG1kV2lkdGg6IHRoaXMuY29udHJvbC53YXJkV2lkdGgsXHJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5fZGlzYWJsZWQsXHJcbiAgICAgICAgICAgICAgICBoaWRkZW46IHRoaXMuY29udHJvbC5oaWRlV2FyZFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IFRleHRDb250cm9sU2NoZW1hKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnc3RyZWV0JyxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnxJDGsOG7nW5nJyxcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0aGlzLmNvbnRyb2wucmVxdWlyZWQgJiYgdGhpcy5jb250cm9sLnJlcXVpcmVkU3RyZWV0LFxyXG4gICAgICAgICAgICAgICAgbWRXaWR0aDogdGhpcy5jb250cm9sLnN0cmVldFdpZHRoLFxyXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuX2Rpc2FibGVkLFxyXG4gICAgICAgICAgICAgICAgaGlkZGVuOiB0aGlzLmNvbnRyb2wuaGlkZVN0cmVldFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IFRleHRDb250cm9sU2NoZW1hKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnbm8nLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdT4buRIG5ow6AnLFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRoaXMuY29udHJvbC5yZXF1aXJlZCAmJiB0aGlzLmNvbnRyb2wucmVxdWlyZWRObyxcclxuICAgICAgICAgICAgICAgIG1kV2lkdGg6IHRoaXMuY29udHJvbC5ub1dpZHRoLFxyXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuX2Rpc2FibGVkLFxyXG4gICAgICAgICAgICAgICAgaGlkZGVuOiB0aGlzLmNvbnRyb2wuaGlkZU5vXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgXVxyXG4gICAgICAgIGlmICh0aGlzLnZpZXdNb2RlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0TW9kZWxUZXh0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldERpc2FibGVkQ29udHJvbCgpIHtcclxuICAgICAgICBjb25zdCBkaXNhYmxlZCA9IHRoaXMuX2Rpc2FibGVkID8gdHJ1ZSA6IG51bGw7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLnNjaGVtYS5mb3JFYWNoKGN0cmwgPT4gY3RybC5kaXNhYmxlZCA9IGRpc2FibGVkKTtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVWYWx1ZUNoYW5nZShldnQpIHtcclxuICAgICAgICB0aGlzLmRhdGFDaGFuZ2UuZW1pdCh0aGlzLl9tb2RlbERhdGEpO1xyXG4gICAgICAgIHRoaXMub25TZWxlY3QuZW1pdCh0aGlzLl9tb2RlbERhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZVJlYWR5KGZpZWxkKSB7XHJcbiAgICAgICAgdGhpcy5fcmVhZHlTdGF0dXNbZmllbGRdID0gdHJ1ZTtcclxuICAgICAgICBpZiAodGhpcy5fcmVhZHlTdGF0dXNbJ2lkUHJvdmluY2UnXVxyXG4gICAgICAgICAgICAmJiAodGhpcy5jb250cm9sLmhpZGVEaXN0cmljdCB8fCB0aGlzLl9yZWFkeVN0YXR1c1snaWREaXN0cmljdCddKVxyXG4gICAgICAgICAgICAmJiAodGhpcy5jb250cm9sLmhpZGVXYXJkIHx8IHRoaXMuX3JlYWR5U3RhdHVzWydpZFdhcmQnXSlcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy5vblJlYWR5LmVtaXQodGhpcy5jb250cm9sLmZpZWxkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0U2hvd0xhYmVsKCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBnZXRNb2RlbFRleHQoKSB7XHJcbiAgICAgICAgY29uc3QgdmFsdWVzID0gW107XHJcbiAgICAgICAgaWYgKHRoaXMuX21vZGVsRGF0YS5pZFByb3ZpbmNlKVxyXG4gICAgICAgICAgICB2YWx1ZXMucHVzaCh0aGlzLl9tb2RlbERhdGEuaWRQcm92aW5jZSk7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2wuaGlkZURpc3RyaWN0ICYmIHRoaXMuX21vZGVsRGF0YS5pZERpc3RyaWN0KVxyXG4gICAgICAgICAgICB2YWx1ZXMucHVzaCh0aGlzLl9tb2RlbERhdGEuaWREaXN0cmljdCk7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2wuaGlkZVdhcmQgJiYgdGhpcy5fbW9kZWxEYXRhLmlkV2FyZClcclxuICAgICAgICAgICAgdmFsdWVzLnB1c2godGhpcy5fbW9kZWxEYXRhLmlkV2FyZCk7XHJcbiAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHtcclxuICAgICAgICAgICAgICAgIHByb3ZpbmNlOiAnJyxcclxuICAgICAgICAgICAgICAgIGRpc3RyaWN0OiAnJyxcclxuICAgICAgICAgICAgICAgIHdhcmQ6ICcnLFxyXG4gICAgICAgICAgICAgICAgc3RyZWV0OiB0aGlzLl9tb2RlbERhdGEuc3RyZWV0LFxyXG4gICAgICAgICAgICAgICAgbm86IHRoaXMuX21vZGVsRGF0YS5ub1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuX2FkZHJlc3NTZXJ2aWNlLmdldEFsbChbXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5ld0ZpbHRlcignaWQnLCBPcGVyYXRvci5pbiwgdmFsdWVzKVxyXG4gICAgICAgICAgICBdLCAnaWQsbmFtZScpLnRoZW4ocmVzID0+IHRoaXMuaGFuZGxlUmVzcG9uc2UocmVzLCAnJywgZGF0YSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fbW9kZWxEYXRhLmlkUHJvdmluY2UpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcm92aW5jZSA9IGRhdGEuZGF0YS5maW5kKHAgPT4gcC5pZCA9PSB0aGlzLl9tb2RlbERhdGEuaWRQcm92aW5jZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb3ZpbmNlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQucHJvdmluY2UgPSBwcm92aW5jZS5uYW1lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2wuaGlkZURpc3RyaWN0ICYmIHRoaXMuX21vZGVsRGF0YS5pZERpc3RyaWN0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzdHJpY3QgPSBkYXRhLmRhdGEuZmluZChwID0+IHAuaWQgPT0gdGhpcy5fbW9kZWxEYXRhLmlkRGlzdHJpY3QpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChkaXN0cmljdClcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmRpc3RyaWN0ID0gZGlzdHJpY3QubmFtZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jb250cm9sLmhpZGVXYXJkICYmIHRoaXMuX21vZGVsRGF0YS5pZFdhcmQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB3YXJkID0gZGF0YS5kYXRhLmZpbmQocCA9PiBwLmlkID09IHRoaXMuX21vZGVsRGF0YS5pZFdhcmQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh3YXJkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQud2FyZCA9IHdhcmQubmFtZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0TW9kZWxUZXh0KHJlc3VsdCk7XHJcbiAgICAgICAgICAgIH0pKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0TW9kZWxUZXh0KG9iakFkZHJlc3MpIHtcclxuICAgICAgICBsZXQgc3RyID0gYGA7XHJcblxyXG4gICAgICAgIGlmIChvYmpBZGRyZXNzLm5vKSB7XHJcbiAgICAgICAgICAgIHN0ciArPSBgLCBT4buRICR7b2JqQWRkcmVzcy5ub31gO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9iakFkZHJlc3Muc3RyZWV0KSB7XHJcbiAgICAgICAgICAgIHN0ciArPSBgLCDEkMaw4budbmcgJHtvYmpBZGRyZXNzLnN0cmVldH1gO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2wuaGlkZURpc3RyaWN0ICYmIG9iakFkZHJlc3Mud2FyZCkge1xyXG4gICAgICAgICAgICBzdHIgKz0gYCwgJHtvYmpBZGRyZXNzLndhcmR9YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5jb250cm9sLmhpZGVEaXN0cmljdCAmJiBvYmpBZGRyZXNzLmRpc3RyaWN0KSB7XHJcbiAgICAgICAgICAgIHN0ciArPSBgLCAke29iakFkZHJlc3MuZGlzdHJpY3R9YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvYmpBZGRyZXNzLnByb3ZpbmNlKSB7XHJcbiAgICAgICAgICAgIHN0ciArPSBgLCAke29iakFkZHJlc3MucHJvdmluY2V9YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChzdHIgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIHN0ciA9IHN0ci5zdWJzdHJpbmcoMikudHJpbSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5tb2RlbFN0cmluZyA9IHN0cjtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,224 @@
1
+ import { Component, EventEmitter, Injector, Input, Output, ViewChild } from '@angular/core';
2
+ import { DeviceDetectorService } from 'ngx-device-detector';
3
+ import { DataFormBase } from '../../classes/base/data-form-base';
4
+ import { mergeJSON } from '../../classes/environment-schema';
5
+ import { AddressControlSchema, DropdownControlSchema, Operator, TextControlSchema } from '../../classes/form-schema';
6
+ import { ModuleConfigService } from '../../services/module-config.service';
7
+ import { CrudFormComponent } from '../crud/crud-form/crud-form.component';
8
+ import { isLiteralObject } from './../../classes/environment-schema';
9
+ import { ENUM_DON_VI_HANH_CHINH } from './models/don-vi-hanh-chinh';
10
+ import { AddressService } from './services/address.service';
11
+ export class AddressNewComponent extends DataFormBase {
12
+ constructor(_injector, _addressService, _moduleConfigService, _deviceDetectorService) {
13
+ super(_injector);
14
+ this._injector = _injector;
15
+ this._addressService = _addressService;
16
+ this._moduleConfigService = _moduleConfigService;
17
+ this._deviceDetectorService = _deviceDetectorService;
18
+ this.viewMode = false;
19
+ this._showSubLabel = true;
20
+ this.readyToReload = false;
21
+ this._readyStatus = {};
22
+ this.onSelect = new EventEmitter();
23
+ this.dataChange = new EventEmitter();
24
+ this.onReady = new EventEmitter();
25
+ this.doNotCheckBaseService = true;
26
+ }
27
+ set disabled(value) {
28
+ this._disabled = value;
29
+ this.setDisabledControl();
30
+ }
31
+ set data(value) {
32
+ if (this._modelData != value && isLiteralObject(value))
33
+ this._modelData = mergeJSON(this._modelData, value);
34
+ else if (value == null)
35
+ this._modelData = {};
36
+ }
37
+ ;
38
+ set showSubLabel(value) {
39
+ this._showSubLabel = value;
40
+ this.setShowLabel();
41
+ }
42
+ ngOnInit() {
43
+ this.control._component = this;
44
+ super.ngOnInit();
45
+ // Nếu đã ẩn quận huyện thì phải ẩn luôn cả phường xã
46
+ // Vì nếu không load dữ liệu sẽ không chuẩn
47
+ // if (this.control.hideDistrict) {
48
+ // this.control.hideWard = true;
49
+ // }
50
+ this.setting.schema = [
51
+ new DropdownControlSchema({
52
+ field: 'idProvince',
53
+ label: 'Tỉnh/Thành phố',
54
+ required: this.control.required && this.control.requiredProvince,
55
+ baseService: this._addressService,
56
+ defaultFilters: [{ field: 'level', operator: Operator.equal, value: ENUM_DON_VI_HANH_CHINH.THANH_PHO.toString() },
57
+ { field: 'version', operator: Operator.equal, value: "1" }],
58
+ valueField: 'id',
59
+ displayField: 'name',
60
+ fieldPlus: 'idRoot',
61
+ sortField: 'sort',
62
+ mdWidth: this.control.provinceWidth,
63
+ disabled: this._disabled,
64
+ callbackDataFinish: (evt) => {
65
+ this.readyToReload = true;
66
+ }
67
+ }),
68
+ // new DropdownControlSchema({
69
+ // field: 'idDistrict',
70
+ // label: 'Quận/Huyện',
71
+ // required: this.control.required && this.control.requiredDistrict,
72
+ // baseService: this._addressService,
73
+ // defaultFilters: [{ field: 'level', operator: Operator.equal, value: ENUM_DON_VI_HANH_CHINH.QUAN_HUYEN.toString() }],
74
+ // bindingFilters: [{ field: 'parentId', operator: Operator.equal, sourceField: 'idProvince', subField: 'idRoot' }],
75
+ // valueField: 'id',
76
+ // displayField: 'name',
77
+ // fieldPlus: 'idRoot',
78
+ // sortField: 'sort',
79
+ // mdWidth: this.control.districtWidth,
80
+ // disabled: this._disabled,
81
+ // hidden: this.control.hideDistrict
82
+ // }),
83
+ new DropdownControlSchema({
84
+ field: 'idWard',
85
+ label: 'Phường/Xã',
86
+ required: this.control.required && this.control.requiredWard,
87
+ baseService: this._addressService,
88
+ defaultFilters: [{ field: 'level', operator: Operator.equal, value: ENUM_DON_VI_HANH_CHINH.PHUONG_XA.toString() },
89
+ { field: 'version', operator: Operator.equal, value: "1" }
90
+ ],
91
+ bindingFilters: [{ field: 'parentId', operator: Operator.equal, sourceField: 'idProvince', subField: 'idRoot' }],
92
+ valueField: 'id',
93
+ displayField: 'name',
94
+ fieldPlus: 'idRoot',
95
+ sortField: 'sort',
96
+ mdWidth: this.control.wardWidth,
97
+ disabled: this._disabled,
98
+ hidden: this.control.hideWard
99
+ }),
100
+ new TextControlSchema({
101
+ field: 'street',
102
+ label: 'Đường',
103
+ required: this.control.required && this.control.requiredStreet,
104
+ mdWidth: this.control.streetWidth,
105
+ disabled: this._disabled,
106
+ hidden: this.control.hideStreet
107
+ }),
108
+ new TextControlSchema({
109
+ field: 'no',
110
+ label: 'Số nhà',
111
+ required: this.control.required && this.control.requiredNo,
112
+ mdWidth: this.control.noWidth,
113
+ disabled: this._disabled,
114
+ hidden: this.control.hideNo
115
+ })
116
+ ];
117
+ if (this.viewMode) {
118
+ this.getModelText();
119
+ }
120
+ }
121
+ setDisabledControl() {
122
+ const disabled = this._disabled ? true : null;
123
+ this.setting.schema.forEach(ctrl => ctrl.disabled = disabled);
124
+ }
125
+ handleValueChange(evt) {
126
+ this.dataChange.emit(this._modelData);
127
+ this.onSelect.emit(this._modelData);
128
+ }
129
+ handleReady(field) {
130
+ this._readyStatus[field] = true;
131
+ if (this._readyStatus['idProvince']
132
+ && (this.control.hideDistrict || this._readyStatus['idDistrict'])
133
+ && (this.control.hideWard || this._readyStatus['idWard'])) {
134
+ this.onReady.emit(this.control.field);
135
+ }
136
+ }
137
+ setShowLabel() {
138
+ }
139
+ getModelText() {
140
+ const values = [];
141
+ if (this._modelData.idProvince)
142
+ values.push(this._modelData.idProvince);
143
+ if (!this.control.hideDistrict && this._modelData.idDistrict)
144
+ values.push(this._modelData.idDistrict);
145
+ if (!this.control.hideWard && this._modelData.idWard)
146
+ values.push(this._modelData.idWard);
147
+ if (values.length > 0) {
148
+ const result = {
149
+ province: '',
150
+ district: '',
151
+ ward: '',
152
+ street: this._modelData.street,
153
+ no: this._modelData.no
154
+ };
155
+ this._addressService.getAll([
156
+ this.newFilter('id', Operator.in, values)
157
+ ], 'id,name').then(res => this.handleResponse(res, '', data => {
158
+ if (this._modelData.idProvince) {
159
+ const province = data.data.find(p => p.id == this._modelData.idProvince);
160
+ if (province)
161
+ result.province = province.name;
162
+ }
163
+ if (!this.control.hideDistrict && this._modelData.idDistrict) {
164
+ const district = data.data.find(p => p.id == this._modelData.idDistrict);
165
+ if (district)
166
+ result.district = district.name;
167
+ }
168
+ if (!this.control.hideWard && this._modelData.idWard) {
169
+ const ward = data.data.find(p => p.id == this._modelData.idWard);
170
+ if (ward)
171
+ result.ward = ward.name;
172
+ }
173
+ this.setModelText(result);
174
+ }));
175
+ }
176
+ }
177
+ setModelText(objAddress) {
178
+ let str = ``;
179
+ if (objAddress.no) {
180
+ str += `, Số ${objAddress.no}`;
181
+ }
182
+ if (objAddress.street) {
183
+ str += `, Đường ${objAddress.street}`;
184
+ }
185
+ if (!this.control.hideDistrict && objAddress.ward) {
186
+ str += `, ${objAddress.ward}`;
187
+ }
188
+ if (!this.control.hideDistrict && objAddress.district) {
189
+ str += `, ${objAddress.district}`;
190
+ }
191
+ if (objAddress.province) {
192
+ str += `, ${objAddress.province}`;
193
+ }
194
+ if (str !== '') {
195
+ str = str.substring(2).trim();
196
+ }
197
+ this.modelString = str;
198
+ }
199
+ }
200
+ AddressNewComponent.decorators = [
201
+ { type: Component, args: [{
202
+ selector: 'address-new-picker',
203
+ template: "<ng-container *ngIf=\"!viewMode\">\r\n <div\r\n [ngStyle]=\"control.showInBox?{border: '1px solid #ced4da', 'borderRadius': '5px' }: { margin: '-0.5rem -1rem -1rem -1rem' }\">\r\n <crud-form #crudForm [(data)]=\"_modelData\" [setting]=\"setting\" [context]=\"context\" [autoFocus]=\"false\"\r\n (onFormReady)=\"_handleFormReady($event)\" (onChange)=\"handleValueChange($event)\"\r\n (onControlReady)=\"handleReady($event)\">\r\n </crud-form>\r\n </div>\r\n</ng-container>\r\n<ng-container *ngIf=\"viewMode\">\r\n {{modelString}}\r\n</ng-container>",
204
+ styles: [".control-padding-fix{padding-left:0}@media (max-width:640px){::ng-deep address-new-picker>div{min-width:100%}}"]
205
+ },] }
206
+ ];
207
+ AddressNewComponent.ctorParameters = () => [
208
+ { type: Injector },
209
+ { type: AddressService },
210
+ { type: ModuleConfigService },
211
+ { type: DeviceDetectorService }
212
+ ];
213
+ AddressNewComponent.propDecorators = {
214
+ crudForm: [{ type: ViewChild, args: [CrudFormComponent, { static: false },] }],
215
+ control: [{ type: Input }],
216
+ disabled: [{ type: Input }],
217
+ viewMode: [{ type: Input }],
218
+ data: [{ type: Input }],
219
+ showSubLabel: [{ type: Input }],
220
+ onSelect: [{ type: Output }],
221
+ dataChange: [{ type: Output }],
222
+ onReady: [{ type: Output }]
223
+ };
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1uZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvYWRkcmVzcy1uZXcvYWRkcmVzcy1uZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBYSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoSSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBUTVELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxZQUFZO0lBK0JqRCxZQUNjLFNBQW1CLEVBQ3JCLGVBQStCLEVBQy9CLG9CQUF5QyxFQUN6QyxzQkFBNkM7UUFFckQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBTFAsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNyQixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0IseUJBQW9CLEdBQXBC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WUFTakMsY0FBYztZQUpkLG1CQUFtQjtZQUpuQixxQkFBcUI7Ozt1QkFrQnpCLFNBQVMsU0FBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7c0JBQzlDLEtBQUs7dUJBRUwsS0FBSzt1QkFJTCxLQUFLO21CQUNMLEtBQUs7MkJBT0wsS0FBSzt1QkFVTCxNQUFNO3lCQUNOLE1BQU07c0JBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlIH0gZnJvbSAnbmd4LWRldmljZS1kZXRlY3Rvcic7XHJcbmltcG9ydCB7IERhdGFGb3JtQmFzZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvYmFzZS9kYXRhLWZvcm0tYmFzZSc7XHJcbmltcG9ydCB7IG1lcmdlSlNPTiB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZW52aXJvbm1lbnQtc2NoZW1hJztcclxuaW1wb3J0IHsgQWRkcmVzc0NvbnRyb2xTY2hlbWEsIERyb3Bkb3duQ29udHJvbFNjaGVtYSwgRXZlbnREYXRhLCBPcGVyYXRvciwgVGV4dENvbnRyb2xTY2hlbWEgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Zvcm0tc2NoZW1hJztcclxuaW1wb3J0IHsgTW9kdWxlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21vZHVsZS1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IENydWRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vY3J1ZC9jcnVkLWZvcm0vY3J1ZC1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGlzTGl0ZXJhbE9iamVjdCB9IGZyb20gJy4vLi4vLi4vY2xhc3Nlcy9lbnZpcm9ubWVudC1zY2hlbWEnO1xyXG5pbXBvcnQgeyBFTlVNX0RPTl9WSV9IQU5IX0NISU5IIH0gZnJvbSAnLi9tb2RlbHMvZG9uLXZpLWhhbmgtY2hpbmgnO1xyXG5pbXBvcnQgeyBBZGRyZXNzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYWRkcmVzcy5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhZGRyZXNzLW5ldy1waWNrZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FkZHJlc3MtbmV3LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2FkZHJlc3MtbmV3LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBBZGRyZXNzTmV3Q29tcG9uZW50IGV4dGVuZHMgRGF0YUZvcm1CYXNlIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgICBAVmlld0NoaWxkKENydWRGb3JtQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSkgY3J1ZEZvcm06IENydWRGb3JtQ29tcG9uZW50O1xyXG4gICAgQElucHV0KCkgY29udHJvbDogQWRkcmVzc0NvbnRyb2xTY2hlbWE7XHJcbiAgICBfZGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuc2V0RGlzYWJsZWRDb250cm9sKCk7XHJcbiAgICB9XHJcbiAgICBASW5wdXQoKSB2aWV3TW9kZSA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgc2V0IGRhdGEodmFsdWU6IGFueSkge1xyXG4gICAgICAgIGlmICh0aGlzLl9tb2RlbERhdGEgIT0gdmFsdWUgJiYgaXNMaXRlcmFsT2JqZWN0KHZhbHVlKSlcclxuICAgICAgICAgICAgdGhpcy5fbW9kZWxEYXRhID0gbWVyZ2VKU09OKHRoaXMuX21vZGVsRGF0YSwgdmFsdWUpO1xyXG4gICAgICAgIGVsc2UgaWYgKHZhbHVlID09IG51bGwpXHJcbiAgICAgICAgICAgIHRoaXMuX21vZGVsRGF0YSA9IHt9O1xyXG4gICAgfTtcclxuICAgIF9zaG93U3ViTGFiZWw6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgc2V0IHNob3dTdWJMYWJlbCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3Nob3dTdWJMYWJlbCA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuc2V0U2hvd0xhYmVsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgX21vZGVsRGF0YTogYW55O1xyXG4gICAgbW9kZWxTdHJpbmc6IHN0cmluZztcclxuICAgIHJlYWR5VG9SZWxvYWQgPSBmYWxzZTtcclxuICAgIF9yZWFkeVN0YXR1cyA9IHt9O1xyXG5cclxuICAgIEBPdXRwdXQoKSBvblNlbGVjdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBkYXRhQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICBAT3V0cHV0KCkgb25SZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByaXZhdGUgX2FkZHJlc3NTZXJ2aWNlOiBBZGRyZXNzU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9tb2R1bGVDb25maWdTZXJ2aWNlOiBNb2R1bGVDb25maWdTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2RldmljZURldGVjdG9yU2VydmljZTogRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihfaW5qZWN0b3IpO1xyXG4gICAgICAgIHRoaXMuZG9Ob3RDaGVja0Jhc2VTZXJ2aWNlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmNvbnRyb2wuX2NvbXBvbmVudCA9IHRoaXM7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICAvLyBO4bq/dSDEkcOjIOG6qW4gcXXhuq1uIGh1eeG7h24gdGjDrCBwaOG6o2kg4bqpbiBsdcO0biBj4bqjIHBoxrDhu51uZyB4w6NcclxuICAgICAgICAvLyBWw6wgbuG6v3Uga2jDtG5nIGxvYWQgZOG7ryBsaeG7h3Ugc+G6vSBraMO0bmcgY2h14bqpblxyXG4gICAgICAgIC8vIGlmICh0aGlzLmNvbnRyb2wuaGlkZURpc3RyaWN0KSB7XHJcbiAgICAgICAgLy8gICAgIHRoaXMuY29udHJvbC5oaWRlV2FyZCA9IHRydWU7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIHRoaXMuc2V0dGluZy5zY2hlbWEgPSBbXHJcbiAgICAgICAgICAgIG5ldyBEcm9wZG93bkNvbnRyb2xTY2hlbWEoe1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdpZFByb3ZpbmNlJyxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnVOG7iW5oL1Row6BuaCBwaOG7kScsXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdGhpcy5jb250cm9sLnJlcXVpcmVkICYmIHRoaXMuY29udHJvbC5yZXF1aXJlZFByb3ZpbmNlLFxyXG4gICAgICAgICAgICAgICAgYmFzZVNlcnZpY2U6IHRoaXMuX2FkZHJlc3NTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdEZpbHRlcnM6IFt7IGZpZWxkOiAnbGV2ZWwnLCBvcGVyYXRvcjogT3BlcmF0b3IuZXF1YWwsIHZhbHVlOiBFTlVNX0RPTl9WSV9IQU5IX0NISU5ILlRIQU5IX1BITy50b1N0cmluZygpIH0sXHJcbiAgICAgICAgICAgICAgICB7IGZpZWxkOiAndmVyc2lvbicsIG9wZXJhdG9yOiBPcGVyYXRvci5lcXVhbCwgdmFsdWU6IFwiMVwiIH1dLFxyXG4gICAgICAgICAgICAgICAgdmFsdWVGaWVsZDogJ2lkJyxcclxuICAgICAgICAgICAgICAgIGRpc3BsYXlGaWVsZDogJ25hbWUnLFxyXG4gICAgICAgICAgICAgICAgZmllbGRQbHVzOiAnaWRSb290JyxcclxuICAgICAgICAgICAgICAgIHNvcnRGaWVsZDogJ3NvcnQnLFxyXG4gICAgICAgICAgICAgICAgbWRXaWR0aDogdGhpcy5jb250cm9sLnByb3ZpbmNlV2lkdGgsXHJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5fZGlzYWJsZWQsXHJcbiAgICAgICAgICAgICAgICBjYWxsYmFja0RhdGFGaW5pc2g6IChldnQ6IEV2ZW50RGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVhZHlUb1JlbG9hZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAvLyBuZXcgRHJvcGRvd25Db250cm9sU2NoZW1hKHtcclxuICAgICAgICAgICAgLy8gICAgIGZpZWxkOiAnaWREaXN0cmljdCcsXHJcbiAgICAgICAgICAgIC8vICAgICBsYWJlbDogJ1F14bqtbi9IdXnhu4duJyxcclxuICAgICAgICAgICAgLy8gICAgIHJlcXVpcmVkOiB0aGlzLmNvbnRyb2wucmVxdWlyZWQgJiYgdGhpcy5jb250cm9sLnJlcXVpcmVkRGlzdHJpY3QsXHJcbiAgICAgICAgICAgIC8vICAgICBiYXNlU2VydmljZTogdGhpcy5fYWRkcmVzc1NlcnZpY2UsXHJcbiAgICAgICAgICAgIC8vICAgICBkZWZhdWx0RmlsdGVyczogW3sgZmllbGQ6ICdsZXZlbCcsIG9wZXJhdG9yOiBPcGVyYXRvci5lcXVhbCwgdmFsdWU6IEVOVU1fRE9OX1ZJX0hBTkhfQ0hJTkguUVVBTl9IVVlFTi50b1N0cmluZygpIH1dLFxyXG4gICAgICAgICAgICAvLyAgICAgYmluZGluZ0ZpbHRlcnM6IFt7IGZpZWxkOiAncGFyZW50SWQnLCBvcGVyYXRvcjogT3BlcmF0b3IuZXF1YWwsIHNvdXJjZUZpZWxkOiAnaWRQcm92aW5jZScsIHN1YkZpZWxkOiAnaWRSb290JyB9XSxcclxuICAgICAgICAgICAgLy8gICAgIHZhbHVlRmllbGQ6ICdpZCcsXHJcbiAgICAgICAgICAgIC8vICAgICBkaXNwbGF5RmllbGQ6ICduYW1lJyxcclxuICAgICAgICAgICAgLy8gICAgIGZpZWxkUGx1czogJ2lkUm9vdCcsXHJcbiAgICAgICAgICAgIC8vICAgICBzb3J0RmllbGQ6ICdzb3J0JyxcclxuICAgICAgICAgICAgLy8gICAgIG1kV2lkdGg6IHRoaXMuY29udHJvbC5kaXN0cmljdFdpZHRoLFxyXG4gICAgICAgICAgICAvLyAgICAgZGlzYWJsZWQ6IHRoaXMuX2Rpc2FibGVkLFxyXG4gICAgICAgICAgICAvLyAgICAgaGlkZGVuOiB0aGlzLmNvbnRyb2wuaGlkZURpc3RyaWN0XHJcbiAgICAgICAgICAgIC8vIH0pLFxyXG4gICAgICAgICAgICBuZXcgRHJvcGRvd25Db250cm9sU2NoZW1hKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnaWRXYXJkJyxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnUGjGsOG7nW5nL1jDoycsXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdGhpcy5jb250cm9sLnJlcXVpcmVkICYmIHRoaXMuY29udHJvbC5yZXF1aXJlZFdhcmQsXHJcbiAgICAgICAgICAgICAgICBiYXNlU2VydmljZTogdGhpcy5fYWRkcmVzc1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0RmlsdGVyczogW3sgZmllbGQ6ICdsZXZlbCcsIG9wZXJhdG9yOiBPcGVyYXRvci5lcXVhbCwgdmFsdWU6IEVOVU1fRE9OX1ZJX0hBTkhfQ0hJTkguUEhVT05HX1hBLnRvU3RyaW5nKCkgfSxcclxuICAgICAgICAgICAgICAgIHsgZmllbGQ6ICd2ZXJzaW9uJywgb3BlcmF0b3I6IE9wZXJhdG9yLmVxdWFsLCB2YWx1ZTogXCIxXCIgfVxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgIGJpbmRpbmdGaWx0ZXJzOiBbeyBmaWVsZDogJ3BhcmVudElkJywgb3BlcmF0b3I6IE9wZXJhdG9yLmVxdWFsLCBzb3VyY2VGaWVsZDogJ2lkUHJvdmluY2UnLCBzdWJGaWVsZDogJ2lkUm9vdCcgfV0sXHJcbiAgICAgICAgICAgICAgICB2YWx1ZUZpZWxkOiAnaWQnLFxyXG4gICAgICAgICAgICAgICAgZGlzcGxheUZpZWxkOiAnbmFtZScsXHJcbiAgICAgICAgICAgICAgICBmaWVsZFBsdXM6ICdpZFJvb3QnLFxyXG4gICAgICAgICAgICAgICAgc29ydEZpZWxkOiAnc29ydCcsXHJcbiAgICAgICAgICAgICAgICBtZFdpZHRoOiB0aGlzLmNvbnRyb2wud2FyZFdpZHRoLFxyXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuX2Rpc2FibGVkLFxyXG4gICAgICAgICAgICAgICAgaGlkZGVuOiB0aGlzLmNvbnRyb2wuaGlkZVdhcmRcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBUZXh0Q29udHJvbFNjaGVtYSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ3N0cmVldCcsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogJ8SQxrDhu51uZycsXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdGhpcy5jb250cm9sLnJlcXVpcmVkICYmIHRoaXMuY29udHJvbC5yZXF1aXJlZFN0cmVldCxcclxuICAgICAgICAgICAgICAgIG1kV2lkdGg6IHRoaXMuY29udHJvbC5zdHJlZXRXaWR0aCxcclxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLl9kaXNhYmxlZCxcclxuICAgICAgICAgICAgICAgIGhpZGRlbjogdGhpcy5jb250cm9sLmhpZGVTdHJlZXRcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBUZXh0Q29udHJvbFNjaGVtYSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ25vJyxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnU+G7kSBuaMOgJyxcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0aGlzLmNvbnRyb2wucmVxdWlyZWQgJiYgdGhpcy5jb250cm9sLnJlcXVpcmVkTm8sXHJcbiAgICAgICAgICAgICAgICBtZFdpZHRoOiB0aGlzLmNvbnRyb2wubm9XaWR0aCxcclxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLl9kaXNhYmxlZCxcclxuICAgICAgICAgICAgICAgIGhpZGRlbjogdGhpcy5jb250cm9sLmhpZGVOb1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIF1cclxuICAgICAgICBpZiAodGhpcy52aWV3TW9kZSkge1xyXG4gICAgICAgICAgICB0aGlzLmdldE1vZGVsVGV4dCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXREaXNhYmxlZENvbnRyb2woKSB7XHJcbiAgICAgICAgY29uc3QgZGlzYWJsZWQgPSB0aGlzLl9kaXNhYmxlZCA/IHRydWUgOiBudWxsO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5zY2hlbWEuZm9yRWFjaChjdHJsID0+IGN0cmwuZGlzYWJsZWQgPSBkaXNhYmxlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlVmFsdWVDaGFuZ2UoZXZ0KSB7XHJcbiAgICAgICAgdGhpcy5kYXRhQ2hhbmdlLmVtaXQodGhpcy5fbW9kZWxEYXRhKTtcclxuICAgICAgICB0aGlzLm9uU2VsZWN0LmVtaXQodGhpcy5fbW9kZWxEYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVSZWFkeShmaWVsZCkge1xyXG4gICAgICAgIHRoaXMuX3JlYWR5U3RhdHVzW2ZpZWxkXSA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMuX3JlYWR5U3RhdHVzWydpZFByb3ZpbmNlJ11cclxuICAgICAgICAgICAgJiYgKHRoaXMuY29udHJvbC5oaWRlRGlzdHJpY3QgfHwgdGhpcy5fcmVhZHlTdGF0dXNbJ2lkRGlzdHJpY3QnXSlcclxuICAgICAgICAgICAgJiYgKHRoaXMuY29udHJvbC5oaWRlV2FyZCB8fCB0aGlzLl9yZWFkeVN0YXR1c1snaWRXYXJkJ10pXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25SZWFkeS5lbWl0KHRoaXMuY29udHJvbC5maWVsZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldFNob3dMYWJlbCgpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TW9kZWxUZXh0KCkge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IFtdO1xyXG4gICAgICAgIGlmICh0aGlzLl9tb2RlbERhdGEuaWRQcm92aW5jZSlcclxuICAgICAgICAgICAgdmFsdWVzLnB1c2godGhpcy5fbW9kZWxEYXRhLmlkUHJvdmluY2UpO1xyXG4gICAgICAgIGlmICghdGhpcy5jb250cm9sLmhpZGVEaXN0cmljdCAmJiB0aGlzLl9tb2RlbERhdGEuaWREaXN0cmljdClcclxuICAgICAgICAgICAgdmFsdWVzLnB1c2godGhpcy5fbW9kZWxEYXRhLmlkRGlzdHJpY3QpO1xyXG4gICAgICAgIGlmICghdGhpcy5jb250cm9sLmhpZGVXYXJkICYmIHRoaXMuX21vZGVsRGF0YS5pZFdhcmQpXHJcbiAgICAgICAgICAgIHZhbHVlcy5wdXNoKHRoaXMuX21vZGVsRGF0YS5pZFdhcmQpO1xyXG4gICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB7XHJcbiAgICAgICAgICAgICAgICBwcm92aW5jZTogJycsXHJcbiAgICAgICAgICAgICAgICBkaXN0cmljdDogJycsXHJcbiAgICAgICAgICAgICAgICB3YXJkOiAnJyxcclxuICAgICAgICAgICAgICAgIHN0cmVldDogdGhpcy5fbW9kZWxEYXRhLnN0cmVldCxcclxuICAgICAgICAgICAgICAgIG5vOiB0aGlzLl9tb2RlbERhdGEubm9cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLl9hZGRyZXNzU2VydmljZS5nZXRBbGwoW1xyXG4gICAgICAgICAgICAgICAgdGhpcy5uZXdGaWx0ZXIoJ2lkJywgT3BlcmF0b3IuaW4sIHZhbHVlcylcclxuICAgICAgICAgICAgXSwgJ2lkLG5hbWUnKS50aGVuKHJlcyA9PiB0aGlzLmhhbmRsZVJlc3BvbnNlKHJlcywgJycsIGRhdGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX21vZGVsRGF0YS5pZFByb3ZpbmNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvdmluY2UgPSBkYXRhLmRhdGEuZmluZChwID0+IHAuaWQgPT0gdGhpcy5fbW9kZWxEYXRhLmlkUHJvdmluY2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChwcm92aW5jZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnByb3ZpbmNlID0gcHJvdmluY2UubmFtZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jb250cm9sLmhpZGVEaXN0cmljdCAmJiB0aGlzLl9tb2RlbERhdGEuaWREaXN0cmljdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3RyaWN0ID0gZGF0YS5kYXRhLmZpbmQocCA9PiBwLmlkID09IHRoaXMuX21vZGVsRGF0YS5pZERpc3RyaWN0KTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZGlzdHJpY3QpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5kaXN0cmljdCA9IGRpc3RyaWN0Lm5hbWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY29udHJvbC5oaWRlV2FyZCAmJiB0aGlzLl9tb2RlbERhdGEuaWRXYXJkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2FyZCA9IGRhdGEuZGF0YS5maW5kKHAgPT4gcC5pZCA9PSB0aGlzLl9tb2RlbERhdGEuaWRXYXJkKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAod2FyZClcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LndhcmQgPSB3YXJkLm5hbWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldE1vZGVsVGV4dChyZXN1bHQpO1xyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldE1vZGVsVGV4dChvYmpBZGRyZXNzKSB7XHJcbiAgICAgICAgbGV0IHN0ciA9IGBgO1xyXG5cclxuICAgICAgICBpZiAob2JqQWRkcmVzcy5ubykge1xyXG4gICAgICAgICAgICBzdHIgKz0gYCwgU+G7kSAke29iakFkZHJlc3Mubm99YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvYmpBZGRyZXNzLnN0cmVldCkge1xyXG4gICAgICAgICAgICBzdHIgKz0gYCwgxJDGsOG7nW5nICR7b2JqQWRkcmVzcy5zdHJlZXR9YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5jb250cm9sLmhpZGVEaXN0cmljdCAmJiBvYmpBZGRyZXNzLndhcmQpIHtcclxuICAgICAgICAgICAgc3RyICs9IGAsICR7b2JqQWRkcmVzcy53YXJkfWA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuY29udHJvbC5oaWRlRGlzdHJpY3QgJiYgb2JqQWRkcmVzcy5kaXN0cmljdCkge1xyXG4gICAgICAgICAgICBzdHIgKz0gYCwgJHtvYmpBZGRyZXNzLmRpc3RyaWN0fWA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob2JqQWRkcmVzcy5wcm92aW5jZSkge1xyXG4gICAgICAgICAgICBzdHIgKz0gYCwgJHtvYmpBZGRyZXNzLnByb3ZpbmNlfWA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoc3RyICE9PSAnJykge1xyXG4gICAgICAgICAgICBzdHIgPSBzdHIuc3Vic3RyaW5nKDIpLnRyaW0oKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubW9kZWxTdHJpbmcgPSBzdHI7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,8 @@
1
+ export var ENUM_DON_VI_HANH_CHINH;
2
+ (function (ENUM_DON_VI_HANH_CHINH) {
3
+ ENUM_DON_VI_HANH_CHINH[ENUM_DON_VI_HANH_CHINH["THANH_PHO"] = 1] = "THANH_PHO";
4
+ // QUAN_HUYEN = 2,
5
+ ENUM_DON_VI_HANH_CHINH[ENUM_DON_VI_HANH_CHINH["PHUONG_XA"] = 2] = "PHUONG_XA";
6
+ ENUM_DON_VI_HANH_CHINH[ENUM_DON_VI_HANH_CHINH["DUONG"] = 3] = "DUONG";
7
+ })(ENUM_DON_VI_HANH_CHINH || (ENUM_DON_VI_HANH_CHINH = {}));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9uLXZpLWhhbmgtY2hpbmguanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG54LXNoYXJlZC9zcmMvbGliLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9hZGRyZXNzLW5ldy9tb2RlbHMvZG9uLXZpLWhhbmgtY2hpbmgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksc0JBS1g7QUFMRCxXQUFZLHNCQUFzQjtJQUM5Qiw2RUFBYSxDQUFBO0lBQ2Isa0JBQWtCO0lBQ2xCLDZFQUFhLENBQUE7SUFDYixxRUFBUyxDQUFBO0FBQ2IsQ0FBQyxFQUxXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFLakMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBFTlVNX0RPTl9WSV9IQU5IX0NISU5IIHtcclxuICAgIFRIQU5IX1BITyA9IDEsXHJcbiAgICAvLyBRVUFOX0hVWUVOID0gMixcclxuICAgIFBIVU9OR19YQSA9IDIsXHJcbiAgICBEVU9ORyA9IDNcclxufVxyXG4iXX0=
@@ -0,0 +1,25 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { Injectable, Injector } from '@angular/core';
3
+ import { BaseService } from '../../../services/base.service';
4
+ import { ModuleConfigService } from '../../../services/module-config.service';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common/http";
7
+ import * as i2 from "../../../services/module-config.service";
8
+ export class AddressService extends BaseService {
9
+ constructor(http, injector, _moduleConfigService) {
10
+ super(http, injector, `${_moduleConfigService.getConfig().environment.apiDomain.commonMasterDataEndpoint}/${_moduleConfigService.getConfig().environment.apiVersion}/Address`);
11
+ this.endPoint = _moduleConfigService.getConfig().environment.apiDomain.commonMasterDataEndpoint;
12
+ }
13
+ }
14
+ AddressService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AddressService_Factory() { return new AddressService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i2.ModuleConfigService)); }, token: AddressService, providedIn: "root" });
15
+ AddressService.decorators = [
16
+ { type: Injectable, args: [{
17
+ providedIn: 'root'
18
+ },] }
19
+ ];
20
+ AddressService.ctorParameters = () => [
21
+ { type: HttpClient },
22
+ { type: Injector },
23
+ { type: ModuleConfigService }
24
+ ];
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvYWRkcmVzcy1uZXcvc2VydmljZXMvYWRkcmVzcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7QUFLOUUsTUFBTSxPQUFPLGNBQWUsU0FBUSxXQUFXO0lBQzNDLFlBQ0ksSUFBZ0IsRUFDaEIsUUFBa0IsRUFDbEIsb0JBQXlDO1FBRXpDLEtBQUssQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsSUFBSSxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxXQUFXLENBQUMsVUFBVSxVQUFVLENBQUMsQ0FBQztRQUNyTCxJQUFJLENBQUMsUUFBUSxHQUFHLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUM7SUFDOUYsQ0FBQzs7OztZQVhKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7O1lBUFEsVUFBVTtZQUNFLFFBQVE7WUFFcEIsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9iYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb2R1bGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbW9kdWxlLWNvbmZpZy5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRkcmVzc1NlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICBfbW9kdWxlQ29uZmlnU2VydmljZTogTW9kdWxlQ29uZmlnU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoaHR0cCwgaW5qZWN0b3IsIGAke19tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50LmFwaURvbWFpbi5jb21tb25NYXN0ZXJEYXRhRW5kcG9pbnR9LyR7X21vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkuZW52aXJvbm1lbnQuYXBpVmVyc2lvbn0vQWRkcmVzc2ApO1xyXG5cdFx0dGhpcy5lbmRQb2ludCA9IF9tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50LmFwaURvbWFpbi5jb21tb25NYXN0ZXJEYXRhRW5kcG9pbnQ7XHJcbiAgICB9XHJcbn1cclxuIl19