@vendure/admin-ui 1.0.0-beta.9 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/bundles/vendure-admin-ui-catalog.umd.js +37 -17
  2. package/bundles/vendure-admin-ui-catalog.umd.js.map +1 -1
  3. package/bundles/vendure-admin-ui-catalog.umd.min.js +2 -2
  4. package/bundles/vendure-admin-ui-catalog.umd.min.js.map +1 -1
  5. package/bundles/vendure-admin-ui-core.umd.js +233 -38
  6. package/bundles/vendure-admin-ui-core.umd.js.map +1 -1
  7. package/bundles/vendure-admin-ui-core.umd.min.js +2 -2
  8. package/bundles/vendure-admin-ui-core.umd.min.js.map +1 -1
  9. package/bundles/vendure-admin-ui-customer.umd.js +8 -6
  10. package/bundles/vendure-admin-ui-customer.umd.js.map +1 -1
  11. package/bundles/vendure-admin-ui-customer.umd.min.js +2 -2
  12. package/bundles/vendure-admin-ui-customer.umd.min.js.map +1 -1
  13. package/bundles/vendure-admin-ui-order.umd.js +113 -39
  14. package/bundles/vendure-admin-ui-order.umd.js.map +1 -1
  15. package/bundles/vendure-admin-ui-order.umd.min.js +2 -2
  16. package/bundles/vendure-admin-ui-order.umd.min.js.map +1 -1
  17. package/bundles/vendure-admin-ui-settings.umd.js +71 -46
  18. package/bundles/vendure-admin-ui-settings.umd.js.map +1 -1
  19. package/bundles/vendure-admin-ui-settings.umd.min.js +2 -2
  20. package/bundles/vendure-admin-ui-settings.umd.min.js.map +1 -1
  21. package/bundles/vendure-admin-ui-system.umd.js +1 -1
  22. package/bundles/vendure-admin-ui-system.umd.js.map +1 -1
  23. package/bundles/vendure-admin-ui-system.umd.min.js +1 -1
  24. package/bundles/vendure-admin-ui-system.umd.min.js.map +1 -1
  25. package/catalog/components/collection-detail/collection-detail.component.d.ts +2 -1
  26. package/catalog/components/facet-detail/facet-detail.component.d.ts +2 -1
  27. package/catalog/components/product-assets/product-assets.component.d.ts +7 -2
  28. package/catalog/components/product-variants-list/product-variants-list.component.d.ts +2 -1
  29. package/catalog/components/product-variants-table/product-variants-table.component.d.ts +2 -1
  30. package/catalog/vendure-admin-ui-catalog.metadata.json +1 -1
  31. package/core/common/generated-types.d.ts +242 -148
  32. package/core/common/version.d.ts +1 -1
  33. package/core/components/main-nav/main-nav.component.d.ts +1 -1
  34. package/core/shared/components/channel-assignment-control/channel-assignment-control.component.d.ts +3 -2
  35. package/core/shared/components/product-selector/product-selector.component.d.ts +1 -1
  36. package/core/shared/pipes/has-permission.pipe.d.ts +3 -2
  37. package/core/vendure-admin-ui-core.metadata.json +1 -1
  38. package/customer/components/address-card/address-card.component.d.ts +1 -0
  39. package/customer/vendure-admin-ui-customer.metadata.json +1 -1
  40. package/esm2015/catalog/components/asset-detail/asset-detail.component.js +2 -2
  41. package/esm2015/catalog/components/asset-list/asset-list.component.js +2 -2
  42. package/esm2015/catalog/components/collection-detail/collection-detail.component.js +4 -3
  43. package/esm2015/catalog/components/collection-list/collection-list.component.js +2 -2
  44. package/esm2015/catalog/components/collection-tree/collection-tree-node.component.js +5 -6
  45. package/esm2015/catalog/components/facet-detail/facet-detail.component.js +4 -3
  46. package/esm2015/catalog/components/facet-list/facet-list.component.js +2 -2
  47. package/esm2015/catalog/components/product-assets/product-assets.component.js +19 -6
  48. package/esm2015/catalog/components/product-detail/product-detail.component.js +2 -2
  49. package/esm2015/catalog/components/product-list/product-list.component.js +2 -2
  50. package/esm2015/catalog/components/product-variants-list/product-variants-list.component.js +4 -3
  51. package/esm2015/catalog/components/product-variants-table/product-variants-table.component.js +4 -2
  52. package/esm2015/catalog/components/update-product-option-dialog/update-product-option-dialog.component.js +2 -2
  53. package/esm2015/core/common/generated-types.js +123 -9
  54. package/esm2015/core/common/utilities/configurable-operation-utils.js +1 -1
  55. package/esm2015/core/common/version.js +2 -2
  56. package/esm2015/core/components/main-nav/main-nav.component.js +36 -9
  57. package/esm2015/core/data/definitions/order-definitions.js +11 -1
  58. package/esm2015/core/data/definitions/product-definitions.js +696 -697
  59. package/esm2015/core/shared/components/asset-preview/asset-preview.component.js +2 -2
  60. package/esm2015/core/shared/components/channel-assignment-control/channel-assignment-control.component.js +25 -7
  61. package/esm2015/core/shared/components/dropdown/dropdown-menu.component.js +13 -10
  62. package/esm2015/core/shared/directives/if-permissions.directive.js +4 -4
  63. package/esm2015/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.js +2 -2
  64. package/esm2015/core/shared/pipes/has-permission.pipe.js +16 -6
  65. package/esm2015/customer/components/address-card/address-card.component.js +4 -2
  66. package/esm2015/customer/components/customer-detail/customer-detail.component.js +2 -2
  67. package/esm2015/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.js +2 -2
  68. package/esm2015/customer/components/customer-group-list/customer-group-list.component.js +2 -2
  69. package/esm2015/customer/components/customer-group-member-list/customer-group-member-list.component.js +2 -2
  70. package/esm2015/customer/components/customer-history/customer-history.component.js +2 -2
  71. package/esm2015/order/components/line-refunds/line-refunds.component.js +20 -3
  72. package/esm2015/order/components/order-detail/order-detail.component.js +30 -9
  73. package/esm2015/order/components/order-editor/order-editor.component.js +2 -2
  74. package/esm2015/order/components/order-payment-card/order-payment-card.component.js +2 -2
  75. package/esm2015/order/components/order-table/order-table.component.js +2 -2
  76. package/esm2015/order/components/refund-order-dialog/refund-order-dialog.component.js +27 -6
  77. package/esm2015/settings/components/admin-detail/admin-detail.component.js +5 -2
  78. package/esm2015/settings/components/channel-detail/channel-detail.component.js +5 -3
  79. package/esm2015/settings/components/channel-list/channel-list.component.js +2 -2
  80. package/esm2015/settings/components/country-detail/country-detail.component.js +4 -3
  81. package/esm2015/settings/components/country-list/country-list.component.js +2 -2
  82. package/esm2015/settings/components/global-settings/global-settings.component.js +3 -2
  83. package/esm2015/settings/components/payment-method-detail/payment-method-detail.component.js +16 -15
  84. package/esm2015/settings/components/payment-method-list/payment-method-list.component.js +2 -2
  85. package/esm2015/settings/components/permission-grid/permission-grid.component.js +8 -3
  86. package/esm2015/settings/components/role-detail/role-detail.component.js +2 -2
  87. package/esm2015/settings/components/role-list/role-list.component.js +9 -5
  88. package/esm2015/settings/components/shipping-method-detail/shipping-method-detail.component.js +16 -11
  89. package/esm2015/settings/components/shipping-method-list/shipping-method-list.component.js +2 -2
  90. package/esm2015/settings/components/tax-category-detail/tax-category-detail.component.js +4 -3
  91. package/esm2015/settings/components/tax-category-list/tax-category-list.component.js +2 -2
  92. package/esm2015/settings/components/tax-rate-detail/tax-rate-detail.component.js +11 -10
  93. package/esm2015/settings/components/tax-rate-list/tax-rate-list.component.js +2 -2
  94. package/esm2015/settings/components/test-order-builder/test-order-builder.component.js +3 -2
  95. package/esm2015/settings/components/zone-detail-dialog/zone-detail-dialog.component.js +2 -2
  96. package/esm2015/settings/components/zone-list/zone-list.component.js +2 -2
  97. package/esm2015/settings/components/zone-member-list/zone-member-list.component.js +2 -2
  98. package/esm2015/system/components/job-list/job-list.component.js +2 -2
  99. package/fesm2015/vendure-admin-ui-catalog.js +34 -18
  100. package/fesm2015/vendure-admin-ui-catalog.js.map +1 -1
  101. package/fesm2015/vendure-admin-ui-core.js +884 -705
  102. package/fesm2015/vendure-admin-ui-core.js.map +1 -1
  103. package/fesm2015/vendure-admin-ui-customer.js +8 -6
  104. package/fesm2015/vendure-admin-ui-customer.js.map +1 -1
  105. package/fesm2015/vendure-admin-ui-order.js +76 -18
  106. package/fesm2015/vendure-admin-ui-order.js.map +1 -1
  107. package/fesm2015/vendure-admin-ui-settings.js +74 -50
  108. package/fesm2015/vendure-admin-ui-settings.js.map +1 -1
  109. package/fesm2015/vendure-admin-ui-system.js +1 -1
  110. package/fesm2015/vendure-admin-ui-system.js.map +1 -1
  111. package/order/components/line-refunds/line-refunds.component.d.ts +1 -0
  112. package/order/components/refund-order-dialog/refund-order-dialog.component.d.ts +1 -0
  113. package/order/vendure-admin-ui-order.metadata.json +1 -1
  114. package/package.json +2 -2
  115. package/settings/components/channel-detail/channel-detail.component.d.ts +2 -1
  116. package/settings/components/country-detail/country-detail.component.d.ts +2 -1
  117. package/settings/components/global-settings/global-settings.component.d.ts +2 -1
  118. package/settings/components/payment-method-detail/payment-method-detail.component.d.ts +2 -2
  119. package/settings/components/permission-grid/permission-grid.component.d.ts +2 -0
  120. package/settings/components/role-list/role-list.component.d.ts +5 -1
  121. package/settings/components/shipping-method-detail/shipping-method-detail.component.d.ts +2 -1
  122. package/settings/components/tax-category-detail/tax-category-detail.component.d.ts +2 -1
  123. package/settings/components/tax-rate-detail/tax-rate-detail.component.d.ts +2 -1
  124. package/settings/vendure-admin-ui-settings.metadata.json +1 -1
  125. package/static/i18n-messages/cs.json +2 -0
  126. package/static/i18n-messages/de.json +8 -6
  127. package/static/i18n-messages/en.json +2 -0
  128. package/static/i18n-messages/es.json +2 -0
  129. package/static/i18n-messages/fr.json +89 -89
  130. package/static/i18n-messages/pl.json +2 -0
  131. package/static/i18n-messages/pt_BR.json +2 -0
  132. package/static/i18n-messages/ru.json +811 -0
  133. package/static/i18n-messages/zh_Hans.json +178 -176
  134. package/static/i18n-messages/zh_Hant.json +2 -0
  135. package/static/styles/_variables.scss +0 -65
  136. package/static/styles/theme/default.scss +54 -54
  137. package/static/vendure-ui-config.json +1 -1
  138. package/system/vendure-admin-ui-system.metadata.json +1 -1
@@ -155,7 +155,7 @@ export class AssetPreviewComponent {
155
155
  AssetPreviewComponent.decorators = [
156
156
  { type: Component, args: [{
157
157
  selector: 'vdr-asset-preview',
158
- template: "<div class=\"preview-image\" #previewDiv [class.centered]=\"centered\">\r\n <div class=\"image-wrapper\">\r\n <vdr-focal-point-control\r\n [width]=\"width\"\r\n [height]=\"height\"\r\n [fpx]=\"fpx\"\r\n [fpy]=\"fpy\"\r\n [editable]=\"settingFocalPoint\"\r\n (focalPointChange)=\"onFocalPointChange($event)\"\r\n >\r\n <img\r\n class=\"asset-image\"\r\n [src]=\"asset | assetPreview: size\"\r\n #imageElement\r\n (load)=\"onImageLoad()\"\r\n />\r\n </vdr-focal-point-control>\r\n <div class=\"focal-point-info\" *ngIf=\"settingFocalPoint\">\r\n <button class=\"icon-button\" (click)=\"setFocalPointCancel()\">\r\n <clr-icon shape=\"times\"></clr-icon>\r\n </button>\r\n <button class=\"btn btn-primary btn-sm\" (click)=\"setFocalPointEnd()\" [disabled]=\"!lastFocalPoint\">\r\n <clr-icon shape=\"crosshairs\"></clr-icon>\r\n {{ 'asset.set-focal-point' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"controls\" [class.fade]=\"settingFocalPoint\">\r\n <form [formGroup]=\"form\">\r\n <clr-input-container class=\"name-input\" *ngIf=\"editable\">\r\n <label>{{ 'common.name' | translate }}</label>\r\n <input\r\n clrInput\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!('UpdateCatalog' | hasPermission) || settingFocalPoint\"\r\n />\r\n </clr-input-container>\r\n\r\n <vdr-labeled-data [label]=\"'common.name' | translate\" *ngIf=\"!editable\">\r\n <span class=\"elide\">\r\n {{ asset.name }}\r\n </span>\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.source-file' | translate\">\r\n <a [href]=\"asset.source\" [title]=\"asset.source\" target=\"_blank\" class=\"elide source-link\">{{\r\n getSourceFileName()\r\n }}</a>\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.original-asset-size' | translate\">\r\n {{ asset.fileSize | filesize }}\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.dimensions' | translate\">\r\n {{ asset.width }} x {{ asset.height }}\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.focal-point' | translate\">\r\n <span *ngIf=\"fpx\"\r\n ><clr-icon shape=\"crosshairs\"></clr-icon> x: {{ fpx | number: '1.2-2' }}, y:\r\n {{ fpy | number: '1.2-2' }}</span\r\n >\r\n <span *ngIf=\"!fpx\">{{ 'common.not-set' | translate }}</span>\r\n <br />\r\n <button\r\n class=\"btn btn-secondary-outline btn-sm\"\r\n [disabled]=\"settingFocalPoint\"\r\n (click)=\"setFocalPointStart()\"\r\n >\r\n <ng-container *ngIf=\"!fpx\">{{ 'asset.set-focal-point' | translate }}</ng-container>\r\n <ng-container *ngIf=\"fpx\">{{ 'asset.update-focal-point' | translate }}</ng-container>\r\n </button>\r\n <button\r\n class=\"btn btn-warning-outline btn-sm\"\r\n [disabled]=\"settingFocalPoint\"\r\n *ngIf=\"!!fpx\"\r\n (click)=\"removeFocalPoint()\"\r\n >\r\n {{ 'asset.unset-focal-point' | translate }}\r\n </button>\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'common.tags' | translate\">\r\n <ng-container *ngIf=\"editable\">\r\n <vdr-tag-selector formControlName=\"tags\"></vdr-tag-selector>\r\n <button class=\"btn btn-link btn-sm\" (click)=\"manageTags()\">\r\n <clr-icon shape=\"tags\"></clr-icon>\r\n {{ 'common.manage-tags' | translate }}\r\n </button>\r\n </ng-container>\r\n <div *ngIf=\"!editable\">\r\n <vdr-chip *ngFor=\"let tag of asset.tags\" [colorFrom]=\"tag.value\">\r\n <clr-icon shape=\"tag\" class=\"mr2\"></clr-icon>\r\n {{ tag.value }}</vdr-chip\r\n >\r\n </div>\r\n </vdr-labeled-data>\r\n </form>\r\n <section *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <ng-container *ngFor=\"let customField of customFields\">\r\n <vdr-custom-field-control\r\n *ngIf=\"customFieldIsSet(customField.name)\"\r\n entityName=\"Asset\"\r\n [compact]=\"true\"\r\n [customFieldsFormGroup]=\"customFieldsForm\"\r\n [customField]=\"customField\"\r\n ></vdr-custom-field-control>\r\n </ng-container>\r\n </section>\r\n <div class=\"flex-spacer\"></div>\r\n <div class=\"preview-select\">\r\n <clr-select-container>\r\n <label>{{ 'asset.preview' | translate }}</label>\r\n <select clrSelect name=\"options\" [(ngModel)]=\"size\" [disabled]=\"settingFocalPoint\">\r\n <option value=\"tiny\">tiny</option>\r\n <option value=\"thumb\">thumb</option>\r\n <option value=\"small\">small</option>\r\n <option value=\"medium\">medium</option>\r\n <option value=\"large\">large</option>\r\n <option value=\"\">full size</option>\r\n </select>\r\n </clr-select-container>\r\n <div class=\"asset-detail\">{{ width }} x {{ height }}</div>\r\n </div>\r\n <a\r\n *ngIf=\"!editable\"\r\n class=\"btn btn-link btn-sm\"\r\n [routerLink]=\"['/catalog', 'assets', asset.id]\"\r\n (click)=\"editClick.emit()\"\r\n >\r\n <clr-icon shape=\"edit\"></clr-icon> {{ 'common.edit' | translate }}\r\n </a>\r\n</div>\r\n",
158
+ template: "<div class=\"preview-image\" #previewDiv [class.centered]=\"centered\">\r\n <div class=\"image-wrapper\">\r\n <vdr-focal-point-control\r\n [width]=\"width\"\r\n [height]=\"height\"\r\n [fpx]=\"fpx\"\r\n [fpy]=\"fpy\"\r\n [editable]=\"settingFocalPoint\"\r\n (focalPointChange)=\"onFocalPointChange($event)\"\r\n >\r\n <img\r\n class=\"asset-image\"\r\n [src]=\"asset | assetPreview: size\"\r\n #imageElement\r\n (load)=\"onImageLoad()\"\r\n />\r\n </vdr-focal-point-control>\r\n <div class=\"focal-point-info\" *ngIf=\"settingFocalPoint\">\r\n <button class=\"icon-button\" (click)=\"setFocalPointCancel()\">\r\n <clr-icon shape=\"times\"></clr-icon>\r\n </button>\r\n <button class=\"btn btn-primary btn-sm\" (click)=\"setFocalPointEnd()\" [disabled]=\"!lastFocalPoint\">\r\n <clr-icon shape=\"crosshairs\"></clr-icon>\r\n {{ 'asset.set-focal-point' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"controls\" [class.fade]=\"settingFocalPoint\">\r\n <form [formGroup]=\"form\">\r\n <clr-input-container class=\"name-input\" *ngIf=\"editable\">\r\n <label>{{ 'common.name' | translate }}</label>\r\n <input\r\n clrInput\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(['UpdateCatalog', 'UpdateAsset'] | hasPermission) || settingFocalPoint\"\r\n />\r\n </clr-input-container>\r\n\r\n <vdr-labeled-data [label]=\"'common.name' | translate\" *ngIf=\"!editable\">\r\n <span class=\"elide\">\r\n {{ asset.name }}\r\n </span>\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.source-file' | translate\">\r\n <a [href]=\"asset.source\" [title]=\"asset.source\" target=\"_blank\" class=\"elide source-link\">{{\r\n getSourceFileName()\r\n }}</a>\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.original-asset-size' | translate\">\r\n {{ asset.fileSize | filesize }}\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.dimensions' | translate\">\r\n {{ asset.width }} x {{ asset.height }}\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.focal-point' | translate\">\r\n <span *ngIf=\"fpx\"\r\n ><clr-icon shape=\"crosshairs\"></clr-icon> x: {{ fpx | number: '1.2-2' }}, y:\r\n {{ fpy | number: '1.2-2' }}</span\r\n >\r\n <span *ngIf=\"!fpx\">{{ 'common.not-set' | translate }}</span>\r\n <br />\r\n <button\r\n class=\"btn btn-secondary-outline btn-sm\"\r\n [disabled]=\"settingFocalPoint\"\r\n (click)=\"setFocalPointStart()\"\r\n >\r\n <ng-container *ngIf=\"!fpx\">{{ 'asset.set-focal-point' | translate }}</ng-container>\r\n <ng-container *ngIf=\"fpx\">{{ 'asset.update-focal-point' | translate }}</ng-container>\r\n </button>\r\n <button\r\n class=\"btn btn-warning-outline btn-sm\"\r\n [disabled]=\"settingFocalPoint\"\r\n *ngIf=\"!!fpx\"\r\n (click)=\"removeFocalPoint()\"\r\n >\r\n {{ 'asset.unset-focal-point' | translate }}\r\n </button>\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'common.tags' | translate\">\r\n <ng-container *ngIf=\"editable\">\r\n <vdr-tag-selector formControlName=\"tags\"></vdr-tag-selector>\r\n <button class=\"btn btn-link btn-sm\" (click)=\"manageTags()\">\r\n <clr-icon shape=\"tags\"></clr-icon>\r\n {{ 'common.manage-tags' | translate }}\r\n </button>\r\n </ng-container>\r\n <div *ngIf=\"!editable\">\r\n <vdr-chip *ngFor=\"let tag of asset.tags\" [colorFrom]=\"tag.value\">\r\n <clr-icon shape=\"tag\" class=\"mr2\"></clr-icon>\r\n {{ tag.value }}</vdr-chip\r\n >\r\n </div>\r\n </vdr-labeled-data>\r\n </form>\r\n <section *ngIf=\"customFields.length\">\r\n <label>{{ 'common.custom-fields' | translate }}</label>\r\n <ng-container *ngFor=\"let customField of customFields\">\r\n <vdr-custom-field-control\r\n *ngIf=\"customFieldIsSet(customField.name)\"\r\n entityName=\"Asset\"\r\n [compact]=\"true\"\r\n [customFieldsFormGroup]=\"customFieldsForm\"\r\n [customField]=\"customField\"\r\n ></vdr-custom-field-control>\r\n </ng-container>\r\n </section>\r\n <div class=\"flex-spacer\"></div>\r\n <div class=\"preview-select\">\r\n <clr-select-container>\r\n <label>{{ 'asset.preview' | translate }}</label>\r\n <select clrSelect name=\"options\" [(ngModel)]=\"size\" [disabled]=\"settingFocalPoint\">\r\n <option value=\"tiny\">tiny</option>\r\n <option value=\"thumb\">thumb</option>\r\n <option value=\"small\">small</option>\r\n <option value=\"medium\">medium</option>\r\n <option value=\"large\">large</option>\r\n <option value=\"\">full size</option>\r\n </select>\r\n </clr-select-container>\r\n <div class=\"asset-detail\">{{ width }} x {{ height }}</div>\r\n </div>\r\n <a\r\n *ngIf=\"!editable\"\r\n class=\"btn btn-link btn-sm\"\r\n [routerLink]=\"['/catalog', 'assets', asset.id]\"\r\n (click)=\"editClick.emit()\"\r\n >\r\n <clr-icon shape=\"edit\"></clr-icon> {{ 'common.edit' | translate }}\r\n </a>\r\n</div>\r\n",
159
159
  changeDetection: ChangeDetectionStrategy.OnPush,
160
160
  styles: [":host{display:flex;height:100%}.preview-image{width:100%;height:100%;min-height:60vh;overflow:auto;text-align:center;box-shadow:inset 0 0 5px 0 rgba(0,0,0,.1);background:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACuoAAArqAVDM774AAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAK0lEQVQ4T2P4jwP8xgFGNSADqDwGIF0DlMYAUH0YYFQDMoDKYwASNfz/DwB/JvcficphowAAAABJRU5ErkJggg==\");flex:1}.preview-image.centered{display:flex;align-items:center;justify-content:center}.preview-image vdr-focal-point-control{position:relative;box-shadow:0 0 10px -3px rgba(0,0,0,.15)}.preview-image .image-wrapper{position:relative}.preview-image .asset-image{width:100%}.preview-image .focal-point-info{position:absolute;display:flex;right:0}.controls{display:flex;flex-direction:column;margin-left:12px;min-width:15vw;max-width:25vw;transition:opacity .3s}.controls.fade{opacity:.5}.controls .name-input{margin-bottom:24px}.controls ::ng-deep .clr-control-container,.controls ::ng-deep .clr-control-container .clr-input{width:100%}.controls .elide{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:block}.controls .source-link{direction:rtl}.controls .preview-select{display:flex;align-items:center;margin-bottom:12px}.controls .preview-select clr-select-container{margin-right:12px}"]
161
161
  },] }
@@ -177,4 +177,4 @@ AssetPreviewComponent.propDecorators = {
177
177
  imageElementRef: [{ type: ViewChild, args: ['imageElement', { static: true },] }],
178
178
  previewDivRef: [{ type: ViewChild, args: ['previewDiv', { static: true },] }]
179
179
  };
180
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LXByZXZpZXcvYXNzZXQtcHJldmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFM0YsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFXL0YsTUFBTSxPQUFPLHFCQUFxQjtJQXFCOUIsWUFDWSxXQUF3QixFQUN4QixXQUF3QixFQUN4QixtQkFBd0MsRUFDeEMsY0FBaUMsRUFDakMsWUFBMEI7UUFKMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsaUJBQVksR0FBWixZQUFZLENBQWM7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Q0wsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsWUFBWTthQUNaLGFBQWEsQ0FBQyx5QkFBeUIsRUFBRTtZQUN0QyxJQUFJLEVBQUUsSUFBSTtTQUNiLENBQUM7YUFDRCxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDaEIsSUFBSSxNQUFNLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxDQUFDO2FBQzdFO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDOzs7WUF2TEosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLHFoTUFBNkM7Z0JBRTdDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNsRDs7O1lBcEJRLFdBQVc7WUFNWCxXQUFXO1lBRVgsbUJBQW1CO1lBbEJ4QixpQkFBaUI7WUFpQlosWUFBWTs7O29CQWVoQixLQUFLO3VCQUNMLEtBQUs7MkJBQ0wsS0FBSzsrQkFDTCxLQUFLOzBCQUNMLE1BQU07d0JBQ04sTUFBTTs4QkFVTixTQUFTLFNBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs0QkFDMUMsU0FBUyxTQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIE91dHB1dCxcclxuICAgIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xyXG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBDdXN0b21GaWVsZENvbmZpZywgR2V0QXNzZXQsIEdldEFzc2V0TGlzdCwgVXBkYXRlQXNzZXRJbnB1dCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RhdGEvcHJvdmlkZXJzL2RhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQb2ludCB9IGZyb20gJy4uL2ZvY2FsLXBvaW50LWNvbnRyb2wvZm9jYWwtcG9pbnQtY29udHJvbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYW5hZ2VUYWdzRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vbWFuYWdlLXRhZ3MtZGlhbG9nL21hbmFnZS10YWdzLWRpYWxvZy5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IHR5cGUgUHJldmlld1ByZXNldCA9ICd0aW55JyB8ICd0aHVtYicgfCAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnIHwgJyc7XHJcbnR5cGUgQXNzZXRMaWtlID0gR2V0QXNzZXRMaXN0Lkl0ZW1zIHwgR2V0QXNzZXQuQXNzZXQ7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWFzc2V0LXByZXZpZXcnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Fzc2V0LXByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYXNzZXQtcHJldmlldy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBc3NldFByZXZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBASW5wdXQoKSBhc3NldDogQXNzZXRMaWtlO1xyXG4gICAgQElucHV0KCkgZWRpdGFibGUgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGN1c3RvbUZpZWxkczogQ3VzdG9tRmllbGRDb25maWdbXSA9IFtdO1xyXG4gICAgQElucHV0KCkgY3VzdG9tRmllbGRzRm9ybTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xyXG4gICAgQE91dHB1dCgpIGFzc2V0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxPbWl0PFVwZGF0ZUFzc2V0SW5wdXQsICdmb2NhbFBvaW50Jz4+KCk7XHJcbiAgICBAT3V0cHV0KCkgZWRpdENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIGZvcm06IEZvcm1Hcm91cDtcclxuXHJcbiAgICBzaXplOiBQcmV2aWV3UHJlc2V0ID0gJ21lZGl1bSc7XHJcbiAgICB3aWR0aCA9IDA7XHJcbiAgICBoZWlnaHQgPSAwO1xyXG4gICAgY2VudGVyZWQgPSB0cnVlO1xyXG4gICAgc2V0dGluZ0ZvY2FsUG9pbnQgPSBmYWxzZTtcclxuICAgIGxhc3RGb2NhbFBvaW50PzogUG9pbnQ7XHJcbiAgICBAVmlld0NoaWxkKCdpbWFnZUVsZW1lbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwcml2YXRlIGltYWdlRWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MSW1hZ2VFbGVtZW50PjtcclxuICAgIEBWaWV3Q2hpbGQoJ3ByZXZpZXdEaXYnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwcml2YXRlIHByZXZpZXdEaXZSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICAgIHByaXZhdGUgc2l6ZVByaW9yVG9TZXR0aW5nRm9jYWxQb2ludDogUHJldmlld1ByZXNldDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcclxuICAgICAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcclxuICAgICkge31cclxuXHJcbiAgICBnZXQgZnB4KCk6IG51bWJlciB8IG51bGwge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFzc2V0LmZvY2FsUG9pbnQgPyB0aGlzLmFzc2V0LmZvY2FsUG9pbnQueCA6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGZweSgpOiBudW1iZXIgfCBudWxsIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hc3NldC5mb2NhbFBvaW50ID8gdGhpcy5hc3NldC5mb2NhbFBvaW50LnkgOiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGNvbnN0IHsgZm9jYWxQb2ludCB9ID0gdGhpcy5hc3NldDtcclxuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgICAgICAgbmFtZTogW3RoaXMuYXNzZXQubmFtZV0sXHJcbiAgICAgICAgICAgIHRhZ3M6IFt0aGlzLmFzc2V0LnRhZ3M/Lm1hcCh0ID0+IHQudmFsdWUpXSxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICAgICAgdGhpcy5hc3NldENoYW5nZS5lbWl0KHtcclxuICAgICAgICAgICAgICAgIGlkOiB0aGlzLmFzc2V0LmlkLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogdmFsdWUubmFtZSxcclxuICAgICAgICAgICAgICAgIHRhZ3M6IHZhbHVlLnRhZ3MsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXHJcbiAgICAgICAgICAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKVxyXG4gICAgICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwKSlcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlRGltZW5zaW9ucygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjdXN0b21GaWVsZElzU2V0KG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhIXRoaXMuY3VzdG9tRmllbGRzRm9ybT8uZ2V0KFtuYW1lXSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U291cmNlRmlsZU5hbWUoKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBwYXJ0cyA9IHRoaXMuYXNzZXQuc291cmNlLnNwbGl0KCcvJyk7XHJcbiAgICAgICAgcmV0dXJuIHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdO1xyXG4gICAgfVxyXG5cclxuICAgIG9uSW1hZ2VMb2FkKCkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGltZW5zaW9ucygpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlRGltZW5zaW9ucygpIHtcclxuICAgICAgICBjb25zdCBpbWcgPSB0aGlzLmltYWdlRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMucHJldmlld0RpdlJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IGltZ1dpZHRoID0gaW1nLm5hdHVyYWxXaWR0aDtcclxuICAgICAgICBjb25zdCBpbWdIZWlnaHQgPSBpbWcubmF0dXJhbEhlaWdodDtcclxuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IGNvbnRhaW5lci5vZmZzZXRXaWR0aDtcclxuICAgICAgICBjb25zdCBjb250YWluZXJIZWlnaHQgPSBjb250YWluZXIub2Zmc2V0SGVpZ2h0O1xyXG5cclxuICAgICAgICBjb25zdCBjb25zdHJhaW5Ub0NvbnRhaW5lciA9IHRoaXMuc2V0dGluZ0ZvY2FsUG9pbnQ7XHJcbiAgICAgICAgaWYgKGNvbnN0cmFpblRvQ29udGFpbmVyKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xzTWFyZ2luUHggPSA0OCAqIDI7XHJcbiAgICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZUhlaWdodCA9IGNvbnRhaW5lckhlaWdodCAtIGNvbnRyb2xzTWFyZ2luUHg7XHJcbiAgICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZVdpZHRoID0gY29udGFpbmVyV2lkdGg7XHJcbiAgICAgICAgICAgIGNvbnN0IGhSYXRpbyA9IGltZ0hlaWdodCAvIGF2YWlsYWJsZUhlaWdodDtcclxuICAgICAgICAgICAgY29uc3Qgd1JhdGlvID0gaW1nV2lkdGggLyBhdmFpbGFibGVXaWR0aDtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGltYWdlRXhjZWVkc0F2YWlsYWJsZURpbWVuc2lvbnMgPSAxIDwgaFJhdGlvIHx8IDEgPCB3UmF0aW87XHJcbiAgICAgICAgICAgIGlmIChpbWFnZUV4Y2VlZHNBdmFpbGFibGVEaW1lbnNpb25zKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmYWN0b3IgPSBoUmF0aW8gPCB3UmF0aW8gPyB3UmF0aW8gOiBoUmF0aW87XHJcbiAgICAgICAgICAgICAgICB0aGlzLndpZHRoID0gTWF0aC5yb3VuZChpbWdXaWR0aCAvIGZhY3Rvcik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhlaWdodCA9IE1hdGgucm91bmQoaW1nSGVpZ2h0IC8gZmFjdG9yKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2VudGVyZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMud2lkdGggPSBpbWdXaWR0aDtcclxuICAgICAgICB0aGlzLmhlaWdodCA9IGltZ0hlaWdodDtcclxuICAgICAgICB0aGlzLmNlbnRlcmVkID0gaW1nV2lkdGggPD0gY29udGFpbmVyV2lkdGggJiYgaW1nSGVpZ2h0IDw9IGNvbnRhaW5lckhlaWdodDtcclxuICAgIH1cclxuXHJcbiAgICBzZXRGb2NhbFBvaW50U3RhcnQoKSB7XHJcbiAgICAgICAgdGhpcy5zaXplUHJpb3JUb1NldHRpbmdGb2NhbFBvaW50ID0gdGhpcy5zaXplO1xyXG4gICAgICAgIHRoaXMuc2l6ZSA9ICdtZWRpdW0nO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ0ZvY2FsUG9pbnQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubGFzdEZvY2FsUG9pbnQgPSB0aGlzLmFzc2V0LmZvY2FsUG9pbnQgfHwgeyB4OiAwLjUsIHk6IDAuNSB9O1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGltZW5zaW9ucygpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUZvY2FsUG9pbnQoKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0XHJcbiAgICAgICAgICAgIC51cGRhdGVBc3NldCh7XHJcbiAgICAgICAgICAgICAgICBpZDogdGhpcy5hc3NldC5pZCxcclxuICAgICAgICAgICAgICAgIGZvY2FsUG9pbnQ6IG51bGwsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnYXNzZXQudXBkYXRlLWZvY2FsLXBvaW50LXN1Y2Nlc3MnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hc3NldCA9IHsgLi4udGhpcy5hc3NldCwgZm9jYWxQb2ludDogbnVsbCB9O1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKCkgPT4gdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKF8oJ2Fzc2V0LnVwZGF0ZS1mb2NhbC1wb2ludC1lcnJvcicpKSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkZvY2FsUG9pbnRDaGFuZ2UocG9pbnQ6IFBvaW50KSB7XHJcbiAgICAgICAgdGhpcy5sYXN0Rm9jYWxQb2ludCA9IHBvaW50O1xyXG4gICAgfVxyXG5cclxuICAgIHNldEZvY2FsUG9pbnRDYW5jZWwoKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nRm9jYWxQb2ludCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubGFzdEZvY2FsUG9pbnQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5zaXplID0gdGhpcy5zaXplUHJpb3JUb1NldHRpbmdGb2NhbFBvaW50O1xyXG4gICAgfVxyXG5cclxuICAgIHNldEZvY2FsUG9pbnRFbmQoKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nRm9jYWxQb2ludCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2l6ZSA9IHRoaXMuc2l6ZVByaW9yVG9TZXR0aW5nRm9jYWxQb2ludDtcclxuICAgICAgICBpZiAodGhpcy5sYXN0Rm9jYWxQb2ludCkge1xyXG4gICAgICAgICAgICBjb25zdCB7IHgsIHkgfSA9IHRoaXMubGFzdEZvY2FsUG9pbnQ7XHJcbiAgICAgICAgICAgIHRoaXMubGFzdEZvY2FsUG9pbnQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YVNlcnZpY2UucHJvZHVjdFxyXG4gICAgICAgICAgICAgICAgLnVwZGF0ZUFzc2V0KHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogdGhpcy5hc3NldC5pZCxcclxuICAgICAgICAgICAgICAgICAgICBmb2NhbFBvaW50OiB7IHgsIHkgfSxcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnYXNzZXQudXBkYXRlLWZvY2FsLXBvaW50LXN1Y2Nlc3MnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXNzZXQgPSB7IC4uLnRoaXMuYXNzZXQsIGZvY2FsUG9pbnQ6IHsgeCwgeSB9IH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAoKSA9PiB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoXygnYXNzZXQudXBkYXRlLWZvY2FsLXBvaW50LWVycm9yJykpLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbWFuYWdlVGFncygpIHtcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZVxyXG4gICAgICAgICAgICAuZnJvbUNvbXBvbmVudChNYW5hZ2VUYWdzRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICBzaXplOiAnc20nLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnY29tbW9uLm5vdGlmeS11cGRhdGVkLXRhZ3Mtc3VjY2VzcycpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LXByZXZpZXcvYXNzZXQtcHJldmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFM0YsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFXL0YsTUFBTSxPQUFPLHFCQUFxQjtJQXFCOUIsWUFDWSxXQUF3QixFQUN4QixXQUF3QixFQUN4QixtQkFBd0MsRUFDeEMsY0FBaUMsRUFDakMsWUFBMEI7UUFKMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsaUJBQVksR0FBWixZQUFZLENBQWM7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Q0wsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsWUFBWTthQUNaLGFBQWEsQ0FBQyx5QkFBeUIsRUFBRTtZQUN0QyxJQUFJLEVBQUUsSUFBSTtTQUNiLENBQUM7YUFDRCxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDaEIsSUFBSSxNQUFNLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxDQUFDO2FBQzdFO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDOzs7WUF2TEosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLHNpTUFBNkM7Z0JBRTdDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNsRDs7O1lBcEJRLFdBQVc7WUFNWCxXQUFXO1lBRVgsbUJBQW1CO1lBbEJ4QixpQkFBaUI7WUFpQlosWUFBWTs7O29CQWVoQixLQUFLO3VCQUNMLEtBQUs7MkJBQ0wsS0FBSzsrQkFDTCxLQUFLOzBCQUNMLE1BQU07d0JBQ04sTUFBTTs4QkFVTixTQUFTLFNBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs0QkFDMUMsU0FBUyxTQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIE91dHB1dCxcclxuICAgIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xyXG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBDdXN0b21GaWVsZENvbmZpZywgR2V0QXNzZXQsIEdldEFzc2V0TGlzdCwgVXBkYXRlQXNzZXRJbnB1dCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RhdGEvcHJvdmlkZXJzL2RhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQb2ludCB9IGZyb20gJy4uL2ZvY2FsLXBvaW50LWNvbnRyb2wvZm9jYWwtcG9pbnQtY29udHJvbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYW5hZ2VUYWdzRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vbWFuYWdlLXRhZ3MtZGlhbG9nL21hbmFnZS10YWdzLWRpYWxvZy5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IHR5cGUgUHJldmlld1ByZXNldCA9ICd0aW55JyB8ICd0aHVtYicgfCAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnIHwgJyc7XHJcbnR5cGUgQXNzZXRMaWtlID0gR2V0QXNzZXRMaXN0Lkl0ZW1zIHwgR2V0QXNzZXQuQXNzZXQ7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWFzc2V0LXByZXZpZXcnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Fzc2V0LXByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYXNzZXQtcHJldmlldy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBc3NldFByZXZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBASW5wdXQoKSBhc3NldDogQXNzZXRMaWtlO1xyXG4gICAgQElucHV0KCkgZWRpdGFibGUgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGN1c3RvbUZpZWxkczogQ3VzdG9tRmllbGRDb25maWdbXSA9IFtdO1xyXG4gICAgQElucHV0KCkgY3VzdG9tRmllbGRzRm9ybTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xyXG4gICAgQE91dHB1dCgpIGFzc2V0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxPbWl0PFVwZGF0ZUFzc2V0SW5wdXQsICdmb2NhbFBvaW50Jz4+KCk7XHJcbiAgICBAT3V0cHV0KCkgZWRpdENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIGZvcm06IEZvcm1Hcm91cDtcclxuXHJcbiAgICBzaXplOiBQcmV2aWV3UHJlc2V0ID0gJ21lZGl1bSc7XHJcbiAgICB3aWR0aCA9IDA7XHJcbiAgICBoZWlnaHQgPSAwO1xyXG4gICAgY2VudGVyZWQgPSB0cnVlO1xyXG4gICAgc2V0dGluZ0ZvY2FsUG9pbnQgPSBmYWxzZTtcclxuICAgIGxhc3RGb2NhbFBvaW50PzogUG9pbnQ7XHJcbiAgICBAVmlld0NoaWxkKCdpbWFnZUVsZW1lbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwcml2YXRlIGltYWdlRWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MSW1hZ2VFbGVtZW50PjtcclxuICAgIEBWaWV3Q2hpbGQoJ3ByZXZpZXdEaXYnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwcml2YXRlIHByZXZpZXdEaXZSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICAgIHByaXZhdGUgc2l6ZVByaW9yVG9TZXR0aW5nRm9jYWxQb2ludDogUHJldmlld1ByZXNldDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcclxuICAgICAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcclxuICAgICkge31cclxuXHJcbiAgICBnZXQgZnB4KCk6IG51bWJlciB8IG51bGwge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFzc2V0LmZvY2FsUG9pbnQgPyB0aGlzLmFzc2V0LmZvY2FsUG9pbnQueCA6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGZweSgpOiBudW1iZXIgfCBudWxsIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hc3NldC5mb2NhbFBvaW50ID8gdGhpcy5hc3NldC5mb2NhbFBvaW50LnkgOiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGNvbnN0IHsgZm9jYWxQb2ludCB9ID0gdGhpcy5hc3NldDtcclxuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgICAgICAgbmFtZTogW3RoaXMuYXNzZXQubmFtZV0sXHJcbiAgICAgICAgICAgIHRhZ3M6IFt0aGlzLmFzc2V0LnRhZ3M/Lm1hcCh0ID0+IHQudmFsdWUpXSxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICAgICAgdGhpcy5hc3NldENoYW5nZS5lbWl0KHtcclxuICAgICAgICAgICAgICAgIGlkOiB0aGlzLmFzc2V0LmlkLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogdmFsdWUubmFtZSxcclxuICAgICAgICAgICAgICAgIHRhZ3M6IHZhbHVlLnRhZ3MsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXHJcbiAgICAgICAgICAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKVxyXG4gICAgICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwKSlcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlRGltZW5zaW9ucygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjdXN0b21GaWVsZElzU2V0KG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhIXRoaXMuY3VzdG9tRmllbGRzRm9ybT8uZ2V0KFtuYW1lXSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U291cmNlRmlsZU5hbWUoKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBwYXJ0cyA9IHRoaXMuYXNzZXQuc291cmNlLnNwbGl0KCcvJyk7XHJcbiAgICAgICAgcmV0dXJuIHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdO1xyXG4gICAgfVxyXG5cclxuICAgIG9uSW1hZ2VMb2FkKCkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGltZW5zaW9ucygpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlRGltZW5zaW9ucygpIHtcclxuICAgICAgICBjb25zdCBpbWcgPSB0aGlzLmltYWdlRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMucHJldmlld0RpdlJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IGltZ1dpZHRoID0gaW1nLm5hdHVyYWxXaWR0aDtcclxuICAgICAgICBjb25zdCBpbWdIZWlnaHQgPSBpbWcubmF0dXJhbEhlaWdodDtcclxuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IGNvbnRhaW5lci5vZmZzZXRXaWR0aDtcclxuICAgICAgICBjb25zdCBjb250YWluZXJIZWlnaHQgPSBjb250YWluZXIub2Zmc2V0SGVpZ2h0O1xyXG5cclxuICAgICAgICBjb25zdCBjb25zdHJhaW5Ub0NvbnRhaW5lciA9IHRoaXMuc2V0dGluZ0ZvY2FsUG9pbnQ7XHJcbiAgICAgICAgaWYgKGNvbnN0cmFpblRvQ29udGFpbmVyKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xzTWFyZ2luUHggPSA0OCAqIDI7XHJcbiAgICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZUhlaWdodCA9IGNvbnRhaW5lckhlaWdodCAtIGNvbnRyb2xzTWFyZ2luUHg7XHJcbiAgICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZVdpZHRoID0gY29udGFpbmVyV2lkdGg7XHJcbiAgICAgICAgICAgIGNvbnN0IGhSYXRpbyA9IGltZ0hlaWdodCAvIGF2YWlsYWJsZUhlaWdodDtcclxuICAgICAgICAgICAgY29uc3Qgd1JhdGlvID0gaW1nV2lkdGggLyBhdmFpbGFibGVXaWR0aDtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGltYWdlRXhjZWVkc0F2YWlsYWJsZURpbWVuc2lvbnMgPSAxIDwgaFJhdGlvIHx8IDEgPCB3UmF0aW87XHJcbiAgICAgICAgICAgIGlmIChpbWFnZUV4Y2VlZHNBdmFpbGFibGVEaW1lbnNpb25zKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmYWN0b3IgPSBoUmF0aW8gPCB3UmF0aW8gPyB3UmF0aW8gOiBoUmF0aW87XHJcbiAgICAgICAgICAgICAgICB0aGlzLndpZHRoID0gTWF0aC5yb3VuZChpbWdXaWR0aCAvIGZhY3Rvcik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhlaWdodCA9IE1hdGgucm91bmQoaW1nSGVpZ2h0IC8gZmFjdG9yKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2VudGVyZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMud2lkdGggPSBpbWdXaWR0aDtcclxuICAgICAgICB0aGlzLmhlaWdodCA9IGltZ0hlaWdodDtcclxuICAgICAgICB0aGlzLmNlbnRlcmVkID0gaW1nV2lkdGggPD0gY29udGFpbmVyV2lkdGggJiYgaW1nSGVpZ2h0IDw9IGNvbnRhaW5lckhlaWdodDtcclxuICAgIH1cclxuXHJcbiAgICBzZXRGb2NhbFBvaW50U3RhcnQoKSB7XHJcbiAgICAgICAgdGhpcy5zaXplUHJpb3JUb1NldHRpbmdGb2NhbFBvaW50ID0gdGhpcy5zaXplO1xyXG4gICAgICAgIHRoaXMuc2l6ZSA9ICdtZWRpdW0nO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ0ZvY2FsUG9pbnQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubGFzdEZvY2FsUG9pbnQgPSB0aGlzLmFzc2V0LmZvY2FsUG9pbnQgfHwgeyB4OiAwLjUsIHk6IDAuNSB9O1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGltZW5zaW9ucygpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUZvY2FsUG9pbnQoKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0XHJcbiAgICAgICAgICAgIC51cGRhdGVBc3NldCh7XHJcbiAgICAgICAgICAgICAgICBpZDogdGhpcy5hc3NldC5pZCxcclxuICAgICAgICAgICAgICAgIGZvY2FsUG9pbnQ6IG51bGwsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnYXNzZXQudXBkYXRlLWZvY2FsLXBvaW50LXN1Y2Nlc3MnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hc3NldCA9IHsgLi4udGhpcy5hc3NldCwgZm9jYWxQb2ludDogbnVsbCB9O1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKCkgPT4gdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKF8oJ2Fzc2V0LnVwZGF0ZS1mb2NhbC1wb2ludC1lcnJvcicpKSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkZvY2FsUG9pbnRDaGFuZ2UocG9pbnQ6IFBvaW50KSB7XHJcbiAgICAgICAgdGhpcy5sYXN0Rm9jYWxQb2ludCA9IHBvaW50O1xyXG4gICAgfVxyXG5cclxuICAgIHNldEZvY2FsUG9pbnRDYW5jZWwoKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nRm9jYWxQb2ludCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubGFzdEZvY2FsUG9pbnQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5zaXplID0gdGhpcy5zaXplUHJpb3JUb1NldHRpbmdGb2NhbFBvaW50O1xyXG4gICAgfVxyXG5cclxuICAgIHNldEZvY2FsUG9pbnRFbmQoKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nRm9jYWxQb2ludCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2l6ZSA9IHRoaXMuc2l6ZVByaW9yVG9TZXR0aW5nRm9jYWxQb2ludDtcclxuICAgICAgICBpZiAodGhpcy5sYXN0Rm9jYWxQb2ludCkge1xyXG4gICAgICAgICAgICBjb25zdCB7IHgsIHkgfSA9IHRoaXMubGFzdEZvY2FsUG9pbnQ7XHJcbiAgICAgICAgICAgIHRoaXMubGFzdEZvY2FsUG9pbnQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YVNlcnZpY2UucHJvZHVjdFxyXG4gICAgICAgICAgICAgICAgLnVwZGF0ZUFzc2V0KHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogdGhpcy5hc3NldC5pZCxcclxuICAgICAgICAgICAgICAgICAgICBmb2NhbFBvaW50OiB7IHgsIHkgfSxcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnYXNzZXQudXBkYXRlLWZvY2FsLXBvaW50LXN1Y2Nlc3MnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXNzZXQgPSB7IC4uLnRoaXMuYXNzZXQsIGZvY2FsUG9pbnQ6IHsgeCwgeSB9IH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAoKSA9PiB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoXygnYXNzZXQudXBkYXRlLWZvY2FsLXBvaW50LWVycm9yJykpLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbWFuYWdlVGFncygpIHtcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZVxyXG4gICAgICAgICAgICAuZnJvbUNvbXBvbmVudChNYW5hZ2VUYWdzRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICBzaXplOiAnc20nLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnY29tbW9uLm5vdGlmeS11cGRhdGVkLXRhZ3Mtc3VjY2VzcycpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,7 +1,8 @@
1
1
  import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
2
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
3
  import { DEFAULT_CHANNEL_CODE } from '@vendure/common/lib/shared-constants';
4
- import { map } from 'rxjs/operators';
4
+ import { notNullOrUndefined } from '@vendure/common/lib/shared-utils';
5
+ import { map, tap } from 'rxjs/operators';
5
6
  import { DataService } from '../../../data/providers/data.service';
6
7
  export class ChannelAssignmentControlComponent {
7
8
  constructor(dataService) {
@@ -13,9 +14,7 @@ export class ChannelAssignmentControlComponent {
13
14
  this.disabled = false;
14
15
  }
15
16
  ngOnInit() {
16
- this.channels$ = this.dataService.client
17
- .userStatus()
18
- .single$.pipe(map(({ userStatus }) => userStatus.channels.filter(c => this.includeDefaultChannel ? true : c.code !== DEFAULT_CHANNEL_CODE)));
17
+ this.channels$ = this.dataService.client.userStatus().single$.pipe(map(({ userStatus }) => userStatus.channels.filter(c => this.includeDefaultChannel ? true : c.code !== DEFAULT_CHANNEL_CODE)), tap(channels => (this.channels = channels)));
19
18
  }
20
19
  registerOnChange(fn) {
21
20
  this.onChange = fn;
@@ -27,8 +26,25 @@ export class ChannelAssignmentControlComponent {
27
26
  this.disabled = isDisabled;
28
27
  }
29
28
  writeValue(obj) {
29
+ var _a;
30
30
  if (Array.isArray(obj)) {
31
- this.value = obj;
31
+ if (typeof obj[0] === 'string') {
32
+ this.value = obj.map(id => { var _a; return (_a = this.channels) === null || _a === void 0 ? void 0 : _a.find(c => c.id === id); }).filter(notNullOrUndefined);
33
+ }
34
+ else {
35
+ this.value = obj;
36
+ }
37
+ }
38
+ else {
39
+ if (typeof obj === 'string') {
40
+ const channel = (_a = this.channels) === null || _a === void 0 ? void 0 : _a.find(c => c.id === obj);
41
+ if (channel) {
42
+ this.value = [channel];
43
+ }
44
+ }
45
+ else if (obj && obj.id) {
46
+ this.value = [obj];
47
+ }
32
48
  }
33
49
  }
34
50
  focussed() {
@@ -48,7 +64,9 @@ export class ChannelAssignmentControlComponent {
48
64
  }
49
65
  }
50
66
  compareFn(c1, c2) {
51
- return c1 && c2 ? c1.id === c2.id : c1 === c2;
67
+ const c1id = typeof c1 === 'string' ? c1 : c1.id;
68
+ const c2id = typeof c2 === 'string' ? c2 : c2.id;
69
+ return c1id === c2id;
52
70
  }
53
71
  }
54
72
  ChannelAssignmentControlComponent.decorators = [
@@ -74,4 +92,4 @@ ChannelAssignmentControlComponent.propDecorators = {
74
92
  includeDefaultChannel: [{ type: Input }],
75
93
  disableChannelIds: [{ type: Input }]
76
94
  };
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbC1hc3NpZ25tZW50LWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9jaGFubmVsLWFzc2lnbm1lbnQtY29udHJvbC9jaGFubmVsLWFzc2lnbm1lbnQtY29udHJvbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFlbkUsTUFBTSxPQUFPLGlDQUFpQztJQVcxQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQVZuQyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLDBCQUFxQixHQUFHLElBQUksQ0FBQztRQUM3QixzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFHMUMsVUFBSyxHQUFhLEVBQUUsQ0FBQztRQUNyQixhQUFRLEdBQUcsS0FBSyxDQUFDO0lBSThCLENBQUM7SUFFaEQsUUFBUTtRQUNKLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNO2FBQ25DLFVBQVUsRUFBRTthQUNaLE9BQU8sQ0FBQyxJQUFJLENBQ1QsR0FBRyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQ25CLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQzNCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLG9CQUFvQixDQUN0RSxDQUNKLENBQ0osQ0FBQztJQUNWLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVk7UUFDbkIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO1NBQ3BCO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ3BCO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQVU7UUFDeEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBNEQ7UUFDckUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3ZDO2FBQU07WUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQ2pEO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxFQUFXLEVBQUUsRUFBVztRQUM5QixPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNsRCxDQUFDOzs7WUE1RUosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxnQ0FBZ0M7Z0JBQzFDLG0vQkFBMEQ7Z0JBRTFELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxPQUFPO2dCQUNoRCxTQUFTLEVBQUU7b0JBQ1A7d0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyxFQUFFLGlDQUFpQzt3QkFDOUMsS0FBSyxFQUFFLElBQUk7cUJBQ2Q7aUJBQ0o7O2FBQ0o7OztZQWRRLFdBQVc7Ozt1QkFnQmYsS0FBSztvQ0FDTCxLQUFLO2dDQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBERUZBVUxUX0NIQU5ORUxfQ09ERSB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IENoYW5uZWwsIEN1cnJlbnRVc2VyQ2hhbm5lbCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Zkci1jaGFubmVsLWFzc2lnbm1lbnQtY29udHJvbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NoYW5uZWwtYXNzaWdubWVudC1jb250cm9sLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jaGFubmVsLWFzc2lnbm1lbnQtY29udHJvbC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogQ2hhbm5lbEFzc2lnbm1lbnRDb250cm9sQ29tcG9uZW50LFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhbm5lbEFzc2lnbm1lbnRDb250cm9sQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgQElucHV0KCkgbXVsdGlwbGUgPSB0cnVlO1xuICAgIEBJbnB1dCgpIGluY2x1ZGVEZWZhdWx0Q2hhbm5lbCA9IHRydWU7XG4gICAgQElucHV0KCkgZGlzYWJsZUNoYW5uZWxJZHM6IHN0cmluZ1tdID0gW107XG5cbiAgICBjaGFubmVscyQ6IE9ic2VydmFibGU8Q3VycmVudFVzZXJDaGFubmVsW10+O1xuICAgIHZhbHVlOiBzdHJpbmdbXSA9IFtdO1xuICAgIGRpc2FibGVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQ7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmNoYW5uZWxzJCA9IHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50XG4gICAgICAgICAgICAudXNlclN0YXR1cygpXG4gICAgICAgICAgICAuc2luZ2xlJC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoeyB1c2VyU3RhdHVzIH0pID0+XG4gICAgICAgICAgICAgICAgICAgIHVzZXJTdGF0dXMuY2hhbm5lbHMuZmlsdGVyKGMgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5jbHVkZURlZmF1bHRDaGFubmVsID8gdHJ1ZSA6IGMuY29kZSAhPT0gREVGQVVMVF9DSEFOTkVMX0NPREUsXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUob2JqOiB1bmtub3duKTogdm9pZCB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBvYmo7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb2N1c3NlZCgpIHtcbiAgICAgICAgaWYgKHRoaXMub25Ub3VjaGVkKSB7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2hhbm5lbElzRGlzYWJsZWQoaWQ6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlQ2hhbm5lbElkcy5pbmNsdWRlcyhpZCk7XG4gICAgfVxuXG4gICAgdmFsdWVDaGFuZ2VkKHZhbHVlOiBDdXJyZW50VXNlckNoYW5uZWxbXSB8IEN1cnJlbnRVc2VyQ2hhbm5lbCB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUubWFwKGMgPT4gYy5pZCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShbdmFsdWUgPyB2YWx1ZS5pZCA6IHVuZGVmaW5lZF0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29tcGFyZUZuKGMxOiBDaGFubmVsLCBjMjogQ2hhbm5lbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gYzEgJiYgYzIgPyBjMS5pZCA9PT0gYzIuaWQgOiBjMSA9PT0gYzI7XG4gICAgfVxufVxuIl19
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbC1hc3NpZ25tZW50LWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9jaGFubmVsLWFzc2lnbm1lbnQtY29udHJvbC9jaGFubmVsLWFzc2lnbm1lbnQtY29udHJvbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBZW5FLE1BQU0sT0FBTyxpQ0FBaUM7SUFZMUMsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFYbkMsYUFBUSxHQUFHLElBQUksQ0FBQztRQUNoQiwwQkFBcUIsR0FBRyxJQUFJLENBQUM7UUFDN0Isc0JBQWlCLEdBQWEsRUFBRSxDQUFDO1FBRzFDLFVBQUssR0FBeUIsRUFBRSxDQUFDO1FBQ2pDLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFLOEIsQ0FBQztJQUVoRCxRQUFRO1FBQ0osSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUM5RCxHQUFHLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FDbkIsVUFBVSxDQUFD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QUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ2pELE9BQU8sSUFBSSxLQUFLLElBQUksQ0FBQztJQUN6QixDQUFDOzs7WUEzRkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxnQ0FBZ0M7Z0JBQzFDLG0vQkFBMEQ7Z0JBRTFELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxPQUFPO2dCQUNoRCxTQUFTLEVBQUU7b0JBQ1A7d0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyxFQUFFLGlDQUFpQzt3QkFDOUMsS0FBSyxFQUFFLElBQUk7cUJBQ2Q7aUJBQ0o7O2FBQ0o7OztZQWRRLFdBQVc7Ozt1QkFnQmYsS0FBSztvQ0FDTCxLQUFLO2dDQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBERUZBVUxUX0NIQU5ORUxfQ09ERSB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBub3ROdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC11dGlscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQ2hhbm5lbCwgQ3VycmVudFVzZXJDaGFubmVsIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RhdGEvcHJvdmlkZXJzL2RhdGEuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndmRyLWNoYW5uZWwtYXNzaWdubWVudC1jb250cm9sJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2hhbm5lbC1hc3NpZ25tZW50LWNvbnRyb2wuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NoYW5uZWwtYXNzaWdubWVudC1jb250cm9sLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBDaGFubmVsQXNzaWdubWVudENvbnRyb2xDb21wb25lbnQsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDaGFubmVsQXNzaWdubWVudENvbnRyb2xDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICBASW5wdXQoKSBtdWx0aXBsZSA9IHRydWU7XG4gICAgQElucHV0KCkgaW5jbHVkZURlZmF1bHRDaGFubmVsID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBkaXNhYmxlQ2hhbm5lbElkczogc3RyaW5nW10gPSBbXTtcblxuICAgIGNoYW5uZWxzJDogT2JzZXJ2YWJsZTxDdXJyZW50VXNlckNoYW5uZWxbXT47XG4gICAgdmFsdWU6IEN1cnJlbnRVc2VyQ2hhbm5lbFtdID0gW107XG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIG9uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gdm9pZDtcbiAgICBwcml2YXRlIGNoYW5uZWxzOiBDdXJyZW50VXNlckNoYW5uZWxbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuY2hhbm5lbHMkID0gdGhpcy5kYXRhU2VydmljZS5jbGllbnQudXNlclN0YXR1cygpLnNpbmdsZSQucGlwZShcbiAgICAgICAgICAgIG1hcCgoeyB1c2VyU3RhdHVzIH0pID0+XG4gICAgICAgICAgICAgICAgdXNlclN0YXR1cy5jaGFubmVscy5maWx0ZXIoYyA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmluY2x1ZGVEZWZhdWx0Q2hhbm5lbCA/IHRydWUgOiBjLmNvZGUgIT09IERFRkFVTFRfQ0hBTk5FTF9DT0RFLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdGFwKGNoYW5uZWxzID0+ICh0aGlzLmNoYW5uZWxzID0gY2hhbm5lbHMpKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZShvYmo6IHVua25vd24pOiB2b2lkIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvYmpbMF0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG9iai5tYXAoaWQgPT4gdGhpcy5jaGFubmVscz8uZmluZChjID0+IGMuaWQgPT09IGlkKSkuZmlsdGVyKG5vdE51bGxPclVuZGVmaW5lZCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBvYmo7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9iaiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGFubmVsID0gdGhpcy5jaGFubmVscz8uZmluZChjID0+IGMuaWQgPT09IG9iaik7XG4gICAgICAgICAgICAgICAgaWYgKGNoYW5uZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IFtjaGFubmVsXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG9iaiAmJiAob2JqIGFzIGFueSkuaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gW29iaiBhcyBhbnldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9jdXNzZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLm9uVG91Y2hlZCkge1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNoYW5uZWxJc0Rpc2FibGVkKGlkOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZUNoYW5uZWxJZHMuaW5jbHVkZXMoaWQpO1xuICAgIH1cblxuICAgIHZhbHVlQ2hhbmdlZCh2YWx1ZTogQ3VycmVudFVzZXJDaGFubmVsW10gfCBDdXJyZW50VXNlckNoYW5uZWwgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlLm1hcChjID0+IGMuaWQpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UoW3ZhbHVlID8gdmFsdWUuaWQgOiB1bmRlZmluZWRdKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBhcmVGbihjMTogQ2hhbm5lbCB8IHN0cmluZywgYzI6IENoYW5uZWwgfCBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgYzFpZCA9IHR5cGVvZiBjMSA9PT0gJ3N0cmluZycgPyBjMSA6IGMxLmlkO1xuICAgICAgICBjb25zdCBjMmlkID0gdHlwZW9mIGMyID09PSAnc3RyaW5nJyA/IGMyIDogYzIuaWQ7XG4gICAgICAgIHJldHVybiBjMWlkID09PSBjMmlkO1xuICAgIH1cbn1cbiJdfQ==
@@ -33,6 +33,7 @@ export class DropdownMenuComponent {
33
33
  hasBackdrop: true,
34
34
  backdropClass: 'clear-backdrop',
35
35
  positionStrategy: this.getPositionStrategy(),
36
+ maxHeight: '70vh',
36
37
  });
37
38
  this.menuPortal = new TemplatePortal(this.menuTemplate, this.viewContainerRef);
38
39
  this.backdropClickSub = this.overlayRef.backdropClick().subscribe(() => {
@@ -93,17 +94,19 @@ export class DropdownMenuComponent {
93
94
  DropdownMenuComponent.decorators = [
94
95
  { type: Component, args: [{
95
96
  selector: 'vdr-dropdown-menu',
96
- template: `
97
- <ng-template #menu>
98
- <div class="dropdown open">
99
- <div class="dropdown-menu">
100
- <ng-content></ng-content>
101
- </div>
102
- </div>
103
- </ng-template>
97
+ template: `
98
+ <ng-template #menu>
99
+ <div class="dropdown open">
100
+ <div class="dropdown-menu">
101
+ <div class="dropdown-content-wrapper">
102
+ <ng-content></ng-content>
103
+ </div>
104
+ </div>
105
+ </div>
106
+ </ng-template>
104
107
  `,
105
108
  changeDetection: ChangeDetectionStrategy.OnPush,
106
- styles: [".clear-backdrop{background-color:#ff69b4}.dropdown.open>.dropdown-menu{position:relative;top:0}:host{opacity:1;transition:opacity .3s}"]
109
+ styles: [".clear-backdrop{background-color:#ff69b4}.dropdown.open>.dropdown-menu{position:relative;top:0;height:100%;overflow-y:auto}:host{opacity:1;transition:opacity .3s}"]
107
110
  },] }
108
111
  ];
109
112
  DropdownMenuComponent.ctorParameters = () => [
@@ -115,4 +118,4 @@ DropdownMenuComponent.propDecorators = {
115
118
  position: [{ type: Input, args: ['vdrPosition',] }],
116
119
  menuTemplate: [{ type: ViewChild, args: ['menu', { static: true },] }]
117
120
  };
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Ryb3Bkb3duL2Ryb3Bkb3duLW1lbnUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxPQUFPLEdBSVYsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBR1QsS0FBSyxFQUdMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSXpEOzs7Ozs7OztHQVFHO0FBZUgsTUFBTSxPQUFPLHFCQUFxQjtJQU85QixZQUNZLE9BQWdCLEVBQ2hCLGdCQUFrQyxFQUNsQyxRQUEyQjtRQUYzQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUFUVCxhQUFRLEdBQXFCLGFBQWEsQ0FBQztJQVV0RSxDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2hDLElBQUksTUFBTSxFQUFFO2dCQUNSLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUMzQztpQkFBTTtnQkFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQzVCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9B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OzJCQUNuQixTQUFTLFNBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb25uZWN0ZWRQb3NpdGlvbixcclxuICAgIEhvcml6b250YWxDb25uZWN0aW9uUG9zLFxyXG4gICAgT3ZlcmxheSxcclxuICAgIE92ZXJsYXlSZWYsXHJcbiAgICBQb3NpdGlvblN0cmF0ZWd5LFxyXG4gICAgVmVydGljYWxDb25uZWN0aW9uUG9zLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHtcclxuICAgIEFmdGVyVmlld0luaXQsXHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIENvbnRlbnRDaGlsZCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIFRlbXBsYXRlUmVmLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgVmlld0NvbnRhaW5lclJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBEcm9wZG93blRyaWdnZXJEaXJlY3RpdmUgfSBmcm9tICcuL2Ryb3Bkb3duLXRyaWdnZXIuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2Ryb3Bkb3duLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgdHlwZSBEcm9wZG93blBvc2l0aW9uID0gJ3RvcC1sZWZ0JyB8ICd0b3AtcmlnaHQnIHwgJ2JvdHRvbS1sZWZ0JyB8ICdib3R0b20tcmlnaHQnO1xyXG5cclxuLyoqXHJcbiAqIEEgZHJvcGRvd24gbWVudSBtb2RlbGxlZCBvbiB0aGUgQ2xhcml0eSBEcm9wZG93biBjb21wb25lbnQgKGh0dHBzOi8vdjEuY2xhcml0eS5kZXNpZ24vZHJvcGRvd25zKS5cclxuICpcclxuICogVGhpcyB3YXMgY3JlYXRlZCBiZWNhdXNlIHRoZSBDbGFyaXR5IGltcGxlbWVudGF0aW9uIChhdCB0aGlzIHRpbWUpIGRvZXMgbm90IGhhbmRsZSBlZGdlIGRldGVjdGlvbi4gSW5zdGVhZFxyXG4gKiB3ZSBtYWtlIHVzZSBvZiB0aGUgQW5ndWxhciBDREsncyBPdmVybGF5IG1vZHVsZSB0byBtYW5hZ2UgdGhlIHBvc2l0aW9uaW5nLlxyXG4gKlxyXG4gKiBUaGUgQVBJIG9mIHRoaXMgY29tcG9uZW50IChhbmQgaXRzIHJlbGF0ZWQgQ29tcG9uZW50cyAmIERpcmVjdGl2ZXMpIGFyZSBiYXNlZCBvbiB0aGUgQ2xhcml0eSB2ZXJzaW9uLFxyXG4gKiBhbGJlaXQgb25seSBhIHN1YnNldCB3aGljaCBpcyBjdXJyZW50bHkgdXNlZCBpbiB0aGlzIGFwcGxpY2F0aW9uLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1kcm9wZG93bi1tZW51JyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNtZW51PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24gb3BlblwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIGAsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi1tZW51LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIERyb3Bkb3duTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIEBJbnB1dCgndmRyUG9zaXRpb24nKSBwcml2YXRlIHBvc2l0aW9uOiBEcm9wZG93blBvc2l0aW9uID0gJ2JvdHRvbS1sZWZ0JztcclxuICAgIEBWaWV3Q2hpbGQoJ21lbnUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwcml2YXRlIG1lbnVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgIHByaXZhdGUgbWVudVBvcnRhbDogVGVtcGxhdGVQb3J0YWw8YW55PjtcclxuICAgIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcclxuICAgIHByaXZhdGUgYmFja2Ryb3BDbGlja1N1YjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcclxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBkcm9wZG93bjogRHJvcGRvd25Db21wb25lbnQsXHJcbiAgICApIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kcm9wZG93bi5vbk9wZW5DaGFuZ2UoaXNPcGVuID0+IHtcclxuICAgICAgICAgICAgaWYgKGlzT3Blbikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaCh0aGlzLm1lbnVQb3J0YWwpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmLmRldGFjaCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoe1xyXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcclxuICAgICAgICAgICAgYmFja2Ryb3BDbGFzczogJ2NsZWFyLWJhY2tkcm9wJyxcclxuICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5nZXRQb3NpdGlvblN0cmF0ZWd5KCksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5tZW51UG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMubWVudVRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xyXG4gICAgICAgIHRoaXMuYmFja2Ryb3BDbGlja1N1YiA9IHRoaXMub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kcm9wZG93bi50b2dnbGVPcGVuKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xyXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5iYWNrZHJvcENsaWNrU3ViKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYmFja2Ryb3BDbGlja1N1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFBvc2l0aW9uU3RyYXRlZ3koKTogUG9zaXRpb25TdHJhdGVneSB7XHJcbiAgICAgICAgY29uc3QgcG9zaXRpb246IHsgW0sgaW4gRHJvcGRvd25Qb3NpdGlvbl06IENvbm5lY3RlZFBvc2l0aW9uIH0gPSB7XHJcbiAgICAgICAgICAgIFsndG9wLWxlZnQnXToge1xyXG4gICAgICAgICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcclxuICAgICAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxyXG4gICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXHJcbiAgICAgICAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIFsndG9wLXJpZ2h0J106IHtcclxuICAgICAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxyXG4gICAgICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXHJcbiAgICAgICAgICAgICAgICBvdmVybGF5WDogJ2VuZCcsXHJcbiAgICAgICAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIFsnYm90dG9tLWxlZnQnXToge1xyXG4gICAgICAgICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcclxuICAgICAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxyXG4gICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXHJcbiAgICAgICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIFsnYm90dG9tLXJpZ2h0J106IHtcclxuICAgICAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxyXG4gICAgICAgICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXHJcbiAgICAgICAgICAgICAgICBvdmVybGF5WDogJ2VuZCcsXHJcbiAgICAgICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgY29uc3QgcG9zID0gcG9zaXRpb25bdGhpcy5wb3NpdGlvbl07XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLm92ZXJsYXlcclxuICAgICAgICAgICAgLnBvc2l0aW9uKClcclxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5kcm9wZG93bi50cmlnZ2VyKVxyXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9ucyhbcG9zLCB0aGlzLmludmVydFBvc2l0aW9uKHBvcyldKVxyXG4gICAgICAgICAgICAud2l0aFZpZXdwb3J0TWFyZ2luKDEyKVxyXG4gICAgICAgICAgICAud2l0aFB1c2godHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEludmVydHMgYW4gb3ZlcmxheSBwb3NpdGlvbi4gKi9cclxuICAgIHByaXZhdGUgaW52ZXJ0UG9zaXRpb24ocG9zOiBDb25uZWN0ZWRQb3NpdGlvbik6IENvbm5lY3RlZFBvc2l0aW9uIHtcclxuICAgICAgICBjb25zdCBpbnZlcnRlZCA9IHsgLi4ucG9zIH07XHJcbiAgICAgICAgaW52ZXJ0ZWQub3JpZ2luWSA9IHBvcy5vcmlnaW5ZID09PSAndG9wJyA/ICdib3R0b20nIDogJ3RvcCc7XHJcbiAgICAgICAgaW52ZXJ0ZWQub3ZlcmxheVkgPSBwb3Mub3ZlcmxheVkgPT09ICd0b3AnID8gJ2JvdHRvbScgOiAndG9wJztcclxuXHJcbiAgICAgICAgcmV0dXJuIGludmVydGVkO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Ryb3Bkb3duL2Ryb3Bkb3duLW1lbnUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxPQUFPLEdBSVYsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBR1QsS0FBSyxFQUdMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSXpEOzs7Ozs7OztHQVFHO0FBaUJILE1BQU0sT0FBTyxxQkFBcUI7SUFPOUIsWUFDWSxPQUFnQixFQUNoQixnQkFBa0MsRUFDbEMsUUFBMkI7UUFGM0IsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGFBQVEsR0FBUixRQUFRLENBQW1CO1FBVFQsYUFBUSxHQUFxQixhQUFhLENBQUM7SUFVdEUsQ0FBQztJQUVKLFFBQVE7UUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNoQyxJQUFJLE1BQU0sRUFBRTtnQkFDUixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDM0M7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUM1QjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxP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Ozt1QkE4QnJCLEtBQUssU0FBQyxhQUFhOzJCQUNuQixTQUFTLFNBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29ubmVjdGVkUG9zaXRpb24sXG4gICAgSG9yaXpvbnRhbENvbm5lY3Rpb25Qb3MsXG4gICAgT3ZlcmxheSxcbiAgICBPdmVybGF5UmVmLFxuICAgIFBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgVmVydGljYWxDb25uZWN0aW9uUG9zLFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBEcm9wZG93blRyaWdnZXJEaXJlY3RpdmUgfSBmcm9tICcuL2Ryb3Bkb3duLXRyaWdnZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9kcm9wZG93bi5jb21wb25lbnQnO1xuXG5leHBvcnQgdHlwZSBEcm9wZG93blBvc2l0aW9uID0gJ3RvcC1sZWZ0JyB8ICd0b3AtcmlnaHQnIHwgJ2JvdHRvbS1sZWZ0JyB8ICdib3R0b20tcmlnaHQnO1xuXG4vKipcbiAqIEEgZHJvcGRvd24gbWVudSBtb2RlbGxlZCBvbiB0aGUgQ2xhcml0eSBEcm9wZG93biBjb21wb25lbnQgKGh0dHBzOi8vdjEuY2xhcml0eS5kZXNpZ24vZHJvcGRvd25zKS5cbiAqXG4gKiBUaGlzIHdhcyBjcmVhdGVkIGJlY2F1c2UgdGhlIENsYXJpdHkgaW1wbGVtZW50YXRpb24gKGF0IHRoaXMgdGltZSkgZG9lcyBub3QgaGFuZGxlIGVkZ2UgZGV0ZWN0aW9uLiBJbnN0ZWFkXG4gKiB3ZSBtYWtlIHVzZSBvZiB0aGUgQW5ndWxhciBDREsncyBPdmVybGF5IG1vZHVsZSB0byBtYW5hZ2UgdGhlIHBvc2l0aW9uaW5nLlxuICpcbiAqIFRoZSBBUEkgb2YgdGhpcyBjb21wb25lbnQgKGFuZCBpdHMgcmVsYXRlZCBDb21wb25lbnRzICYgRGlyZWN0aXZlcykgYXJlIGJhc2VkIG9uIHRoZSBDbGFyaXR5IHZlcnNpb24sXG4gKiBhbGJlaXQgb25seSBhIHN1YnNldCB3aGljaCBpcyBjdXJyZW50bHkgdXNlZCBpbiB0aGlzIGFwcGxpY2F0aW9uLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Zkci1kcm9wZG93bi1tZW51JyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmctdGVtcGxhdGUgI21lbnU+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24gb3BlblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1jb250ZW50LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICBgLFxuICAgIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLW1lbnUuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25NZW51Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgndmRyUG9zaXRpb24nKSBwcml2YXRlIHBvc2l0aW9uOiBEcm9wZG93blBvc2l0aW9uID0gJ2JvdHRvbS1sZWZ0JztcbiAgICBAVmlld0NoaWxkKCdtZW51JywgeyBzdGF0aWM6IHRydWUgfSkgcHJpdmF0ZSBtZW51VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcHJpdmF0ZSBtZW51UG9ydGFsOiBUZW1wbGF0ZVBvcnRhbDxhbnk+O1xuICAgIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcbiAgICBwcml2YXRlIGJhY2tkcm9wQ2xpY2tTdWI6IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBkcm9wZG93bjogRHJvcGRvd25Db21wb25lbnQsXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZHJvcGRvd24ub25PcGVuQ2hhbmdlKGlzT3BlbiA9PiB7XG4gICAgICAgICAgICBpZiAoaXNPcGVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaCh0aGlzLm1lbnVQb3J0YWwpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdjbGVhci1iYWNrZHJvcCcsXG4gICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLmdldFBvc2l0aW9uU3RyYXRlZ3koKSxcbiAgICAgICAgICAgIG1heEhlaWdodDogJzcwdmgnLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5tZW51UG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMubWVudVRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICB0aGlzLmJhY2tkcm9wQ2xpY2tTdWIgPSB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duLnRvZ2dsZU9wZW4oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYmFja2Ryb3BDbGlja1N1Yikge1xuICAgICAgICAgICAgdGhpcy5iYWNrZHJvcENsaWNrU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFBvc2l0aW9uU3RyYXRlZ3koKTogUG9zaXRpb25TdHJhdGVneSB7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uOiB7IFtLIGluIERyb3Bkb3duUG9zaXRpb25dOiBDb25uZWN0ZWRQb3NpdGlvbiB9ID0ge1xuICAgICAgICAgICAgWyd0b3AtbGVmdCddOiB7XG4gICAgICAgICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgWyd0b3AtcmlnaHQnXToge1xuICAgICAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlYOiAnZW5kJyxcbiAgICAgICAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgWydib3R0b20tbGVmdCddOiB7XG4gICAgICAgICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgWydib3R0b20tcmlnaHQnXToge1xuICAgICAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlYOiAnZW5kJyxcbiAgICAgICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHBvcyA9IHBvc2l0aW9uW3RoaXMucG9zaXRpb25dO1xuXG4gICAgICAgIHJldHVybiB0aGlzLm92ZXJsYXlcbiAgICAgICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLmRyb3Bkb3duLnRyaWdnZXIpXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9ucyhbcG9zLCB0aGlzLmludmVydFBvc2l0aW9uKHBvcyldKVxuICAgICAgICAgICAgLndpdGhWaWV3cG9ydE1hcmdpbigxMilcbiAgICAgICAgICAgIC53aXRoUHVzaCh0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogSW52ZXJ0cyBhbiBvdmVybGF5IHBvc2l0aW9uLiAqL1xuICAgIHByaXZhdGUgaW52ZXJ0UG9zaXRpb24ocG9zOiBDb25uZWN0ZWRQb3NpdGlvbik6IENvbm5lY3RlZFBvc2l0aW9uIHtcbiAgICAgICAgY29uc3QgaW52ZXJ0ZWQgPSB7IC4uLnBvcyB9O1xuICAgICAgICBpbnZlcnRlZC5vcmlnaW5ZID0gcG9zLm9yaWdpblkgPT09ICd0b3AnID8gJ2JvdHRvbScgOiAndG9wJztcbiAgICAgICAgaW52ZXJ0ZWQub3ZlcmxheVkgPSBwb3Mub3ZlcmxheVkgPT09ICd0b3AnID8gJ2JvdHRvbScgOiAndG9wJztcblxuICAgICAgICByZXR1cm4gaW52ZXJ0ZWQ7XG4gICAgfVxufVxuIl19
@@ -29,11 +29,11 @@ export class IfPermissionsDirective extends IfDirectiveBase {
29
29
  .userStatus()
30
30
  .mapStream(({ userStatus }) => {
31
31
  for (const permission of permissions) {
32
- if (!userStatus.permissions.includes(permission)) {
33
- return false;
32
+ if (userStatus.permissions.includes(permission)) {
33
+ return true;
34
34
  }
35
35
  }
36
- return true;
36
+ return false;
37
37
  })
38
38
  .pipe(tap(() => this.changeDetectorRef.markForCheck()));
39
39
  });
@@ -72,4 +72,4 @@ IfPermissionsDirective.propDecorators = {
72
72
  vdrIfPermissions: [{ type: Input }],
73
73
  vdrIfPermissionsElse: [{ type: Input }]
74
74
  };
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWYtcGVybWlzc2lvbnMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvZGlyZWN0aXZlcy9pZi1wZXJtaXNzaW9ucy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGlCQUFpQixFQUNqQixTQUFTLEVBRVQsS0FBSyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RDs7Ozs7Ozs7Ozs7O0dBWUc7QUFJSCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsZUFBMkM7SUFHbkYsWUFDSSxjQUFnQyxFQUNoQyxXQUE2QixFQUNyQixXQUF3QixFQUN4QixpQkFBb0M7UUFFNUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLEVBQUU7WUFDN0MsSUFBSSxXQUFXLElBQUksSUFBSSxFQUFFO2dCQUNyQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNuQjtpQkFBTSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNyQixPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNwQjtZQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNO2lCQUN6QixVQUFVLEVBQUU7aUJBQ1osU0FBUyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFO2dCQUMxQixLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRTtvQkFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO3dCQUM5QyxPQUFPLEtBQUssQ0FBQztxQkFDaEI7aUJBQ0o7Z0JBQ0QsT0FBTyxJQUFJLENBQUM7WUFDaEIsQ0FBQyxDQUFDO2lCQUNELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQUMsQ0FBQztRQXBCSyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBTnhDLHNCQUFpQixHQUFvQixDQUFDLG1CQUFtQixDQUFDLENBQUM7SUEwQm5FLENBQUM7SUFFRDs7T0FFRztJQUNILElBQ0ksZ0JBQWdCLENBQUMsVUFBb0M7UUFDckQsSUFBSSxDQUFDLGlCQUFpQjtZQUNsQixDQUFDLFVBQVUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ3BGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQyxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNJLG9CQUFvQixDQUFDLFdBQW9DO1FBQ3pELElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlDLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7OztZQWpESixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjthQUNqQzs7O1lBekJHLGdCQUFnQjtZQURoQixXQUFXO1lBT04sV0FBVztZQVhoQixpQkFBaUI7OzsrQkErRGhCLEtBQUs7bUNBVUwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVtYmVkZGVkVmlld1JlZixcbiAgICBJbnB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFBlcm1pc3Npb24gfSBmcm9tICcuLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGF0YS9wcm92aWRlcnMvZGF0YS5zZXJ2aWNlJztcblxuaW1wb3J0IHsgSWZEaXJlY3RpdmVCYXNlIH0gZnJvbSAnLi9pZi1kaXJlY3RpdmUtYmFzZSc7XG5cbi8qKlxuICogQ29uZGl0aW9uYWxseSBzaG93cy9oaWRlcyB0ZW1wbGF0ZXMgYmFzZWQgb24gdGhlIGN1cnJlbnQgYWN0aXZlIHVzZXIgaGF2aW5nIHRoZSBzcGVjaWZpZWQgcGVybWlzc2lvbi5cbiAqIEJhc2VkIG9uIHRoZSBuZ0lmIHNvdXJjZS4gQWxzbyBzdXBwb3J0IFwiZWxzZVwiIHRlbXBsYXRlczpcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPGJ1dHRvbiAqdmRySWZQZXJtaXNzaW9ucz1cIidEZWxldGVDYXRhbG9nJzsgZWxzZSB1bmF1dGhvcml6ZWRcIj5EZWxldGUgUHJvZHVjdDwvYnV0dG9uPlxuICogPG5nLXRlbXBsYXRlICN1bmF1dGhvcml6ZWQ+Tm90IGFsbG93ZWQhPC9uZy10ZW1wbGF0ZT5cbiAqIGBgYFxuICpcbiAqIFRoZSBwZXJtaXNzaW9uIGNhbiBiZSBhIHNpbmdsZSBzdHJpbmcsIG9yIGFuIGFycmF5LiBJZiBhbiBhcnJheSBpcyBwYXNzZWQsIHRoZW4gX2FsbF8gb2YgdGhlIHBlcm1pc3Npb25zXG4gKiBtdXN0IG1hdGNoIChsb2dpY2FsIEFORClcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdmRySWZQZXJtaXNzaW9uc10nLFxufSlcbmV4cG9ydCBjbGFzcyBJZlBlcm1pc3Npb25zRGlyZWN0aXZlIGV4dGVuZHMgSWZEaXJlY3RpdmVCYXNlPEFycmF5PFBlcm1pc3Npb25bXSB8IG51bGw+PiB7XG4gICAgcHJpdmF0ZSBwZXJtaXNzaW9uVG9DaGVjazogc3RyaW5nW10gfCBudWxsID0gWydfX2luaXRpYWxfdmFsdWVfXyddO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIF92aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICAgICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICkge1xuICAgICAgICBzdXBlcihfdmlld0NvbnRhaW5lciwgdGVtcGxhdGVSZWYsIHBlcm1pc3Npb25zID0+IHtcbiAgICAgICAgICAgIGlmIChwZXJtaXNzaW9ucyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghcGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50XG4gICAgICAgICAgICAgICAgLnVzZXJTdGF0dXMoKVxuICAgICAgICAgICAgICAgIC5tYXBTdHJlYW0oKHsgdXNlclN0YXR1cyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcGVybWlzc2lvbiBvZiBwZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF1c2VyU3RhdHVzLnBlcm1pc3Npb25zLmluY2x1ZGVzKHBlcm1pc3Npb24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnBpcGUodGFwKCgpID0+IHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIHBlcm1pc3Npb24gdG8gY2hlY2sgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdG8gc2hvdyB0aGUgdGVtcGxhdGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdmRySWZQZXJtaXNzaW9ucyhwZXJtaXNzaW9uOiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9uVG9DaGVjayA9XG4gICAgICAgICAgICAocGVybWlzc2lvbiAmJiAoQXJyYXkuaXNBcnJheShwZXJtaXNzaW9uKSA/IHBlcm1pc3Npb24gOiBbcGVybWlzc2lvbl0pKSB8fCBudWxsO1xuICAgICAgICB0aGlzLnVwZGF0ZUFyZ3MkLm5leHQoW3RoaXMucGVybWlzc2lvblRvQ2hlY2sgYXMgUGVybWlzc2lvbltdXSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSB0ZW1wbGF0ZSB0byBzaG93IGlmIHRoZSBjdXJyZW50IHVzZXIgZG9lcyBub3QgaGF2ZSB0aGUgc3BlY2lmaWVkIHBlcm1pc3Npb24uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdmRySWZQZXJtaXNzaW9uc0Vsc2UodGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsKSB7XG4gICAgICAgIHRoaXMuc2V0RWxzZVRlbXBsYXRlKHRlbXBsYXRlUmVmKTtcbiAgICAgICAgdGhpcy51cGRhdGVBcmdzJC5uZXh0KFt0aGlzLnBlcm1pc3Npb25Ub0NoZWNrIGFzIFBlcm1pc3Npb25bXV0pO1xuICAgIH1cbn1cbiJdfQ==
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWYtcGVybWlzc2lvbnMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvZGlyZWN0aXZlcy9pZi1wZXJtaXNzaW9ucy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGlCQUFpQixFQUNqQixTQUFTLEVBRVQsS0FBSyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RDs7Ozs7Ozs7Ozs7O0dBWUc7QUFJSCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsZUFBMkM7SUFHbkYsWUFDSSxjQUFnQyxFQUNoQyxXQUE2QixFQUNyQixXQUF3QixFQUN4QixpQkFBb0M7UUFFNUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLEVBQUU7WUFDN0MsSUFBSSxXQUFXLElBQUksSUFBSSxFQUFFO2dCQUNyQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNuQjtpQkFBTSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNyQixPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNwQjtZQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNO2lCQUN6QixVQUFVLEVBQUU7aUJBQ1osU0FBUyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFO2dCQUMxQixLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRTtvQkFDbEMsSUFBSSxVQUFVLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTt3QkFDN0MsT0FBTyxJQUFJLENBQUM7cUJBQ2Y7aUJBQ0o7Z0JBQ0QsT0FBTyxLQUFLLENBQUM7WUFDakIsQ0FBQyxDQUFDO2lCQUNELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQUMsQ0FBQztRQXBCSyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBTnhDLHNCQUFpQixHQUFvQixDQUFDLG1CQUFtQixDQUFDLENBQUM7SUEwQm5FLENBQUM7SUFFRDs7T0FFRztJQUNILElBQ0ksZ0JBQWdCLENBQUMsVUFBb0M7UUFDckQsSUFBSSxDQUFDLGlCQUFpQjtZQUNsQixDQUFDLFVBQVUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ3BGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQyxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNJLG9CQUFvQixDQUFDLFdBQW9DO1FBQ3pELElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlDLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7OztZQWpESixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjthQUNqQzs7O1lBekJHLGdCQUFnQjtZQURoQixXQUFXO1lBT04sV0FBVztZQVhoQixpQkFBaUI7OzsrQkErRGhCLEtBQUs7bUNBVUwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVtYmVkZGVkVmlld1JlZixcbiAgICBJbnB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFBlcm1pc3Npb24gfSBmcm9tICcuLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGF0YS9wcm92aWRlcnMvZGF0YS5zZXJ2aWNlJztcblxuaW1wb3J0IHsgSWZEaXJlY3RpdmVCYXNlIH0gZnJvbSAnLi9pZi1kaXJlY3RpdmUtYmFzZSc7XG5cbi8qKlxuICogQ29uZGl0aW9uYWxseSBzaG93cy9oaWRlcyB0ZW1wbGF0ZXMgYmFzZWQgb24gdGhlIGN1cnJlbnQgYWN0aXZlIHVzZXIgaGF2aW5nIHRoZSBzcGVjaWZpZWQgcGVybWlzc2lvbi5cbiAqIEJhc2VkIG9uIHRoZSBuZ0lmIHNvdXJjZS4gQWxzbyBzdXBwb3J0IFwiZWxzZVwiIHRlbXBsYXRlczpcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPGJ1dHRvbiAqdmRySWZQZXJtaXNzaW9ucz1cIidEZWxldGVDYXRhbG9nJzsgZWxzZSB1bmF1dGhvcml6ZWRcIj5EZWxldGUgUHJvZHVjdDwvYnV0dG9uPlxuICogPG5nLXRlbXBsYXRlICN1bmF1dGhvcml6ZWQ+Tm90IGFsbG93ZWQhPC9uZy10ZW1wbGF0ZT5cbiAqIGBgYFxuICpcbiAqIFRoZSBwZXJtaXNzaW9uIGNhbiBiZSBhIHNpbmdsZSBzdHJpbmcsIG9yIGFuIGFycmF5LiBJZiBhbiBhcnJheSBpcyBwYXNzZWQsIHRoZW4gX2FsbF8gb2YgdGhlIHBlcm1pc3Npb25zXG4gKiBtdXN0IG1hdGNoIChsb2dpY2FsIEFORClcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdmRySWZQZXJtaXNzaW9uc10nLFxufSlcbmV4cG9ydCBjbGFzcyBJZlBlcm1pc3Npb25zRGlyZWN0aXZlIGV4dGVuZHMgSWZEaXJlY3RpdmVCYXNlPEFycmF5PFBlcm1pc3Npb25bXSB8IG51bGw+PiB7XG4gICAgcHJpdmF0ZSBwZXJtaXNzaW9uVG9DaGVjazogc3RyaW5nW10gfCBudWxsID0gWydfX2luaXRpYWxfdmFsdWVfXyddO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIF92aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICAgICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICkge1xuICAgICAgICBzdXBlcihfdmlld0NvbnRhaW5lciwgdGVtcGxhdGVSZWYsIHBlcm1pc3Npb25zID0+IHtcbiAgICAgICAgICAgIGlmIChwZXJtaXNzaW9ucyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghcGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50XG4gICAgICAgICAgICAgICAgLnVzZXJTdGF0dXMoKVxuICAgICAgICAgICAgICAgIC5tYXBTdHJlYW0oKHsgdXNlclN0YXR1cyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcGVybWlzc2lvbiBvZiBwZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVzZXJTdGF0dXMucGVybWlzc2lvbnMuaW5jbHVkZXMocGVybWlzc2lvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAucGlwZSh0YXAoKCkgPT4gdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgcGVybWlzc2lvbiB0byBjaGVjayB0byBkZXRlcm1pbmUgd2hldGhlciB0byBzaG93IHRoZSB0ZW1wbGF0ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2ZHJJZlBlcm1pc3Npb25zKHBlcm1pc3Npb246IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCkge1xuICAgICAgICB0aGlzLnBlcm1pc3Npb25Ub0NoZWNrID1cbiAgICAgICAgICAgIChwZXJtaXNzaW9uICYmIChBcnJheS5pc0FycmF5KHBlcm1pc3Npb24pID8gcGVybWlzc2lvbiA6IFtwZXJtaXNzaW9uXSkpIHx8IG51bGw7XG4gICAgICAgIHRoaXMudXBkYXRlQXJncyQubmV4dChbdGhpcy5wZXJtaXNzaW9uVG9DaGVjayBhcyBQZXJtaXNzaW9uW11dKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHRlbXBsYXRlIHRvIHNob3cgaWYgdGhlIGN1cnJlbnQgdXNlciBkb2VzIG5vdCBoYXZlIHRoZSBzcGVjaWZpZWQgcGVybWlzc2lvbi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2ZHJJZlBlcm1pc3Npb25zRWxzZSh0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5zZXRFbHNlVGVtcGxhdGUodGVtcGxhdGVSZWYpO1xuICAgICAgICB0aGlzLnVwZGF0ZUFyZ3MkLm5leHQoW3RoaXMucGVybWlzc2lvblRvQ2hlY2sgYXMgUGVybWlzc2lvbltdXSk7XG4gICAgfVxufVxuIl19
@@ -234,7 +234,7 @@ export class DynamicFormInputComponent {
234
234
  DynamicFormInputComponent.decorators = [
235
235
  { type: Component, args: [{
236
236
  selector: 'vdr-dynamic-form-input',
237
- template: "<ng-container *ngIf=\"!renderAsList; else list\">\r\n <ng-container #single></ng-container>\r\n</ng-container>\r\n<ng-template #list>\r\n <div class=\"list-container\" cdkDropList (cdkDropListDropped)=\"moveListItem($event)\">\r\n <div class=\"list-item-row\" *ngFor=\"let item of listItems; trackBy: trackById\" cdkDrag [cdkDragData]=\"item\">\r\n <ng-container #listItem></ng-container>\r\n <button class=\"btn btn-link btn-sm btn-warning\" (click)=\"removeListItem(item)\" [title]=\"'common.remove-item-from-list' | translate\">\r\n <clr-icon shape=\"times\"></clr-icon>\r\n </button>\r\n <div class=\"flex-spacer\"></div>\r\n <div class=\"drag-handle\" cdkDragHandle *vdrIfPermissions=\"'UpdateCatalog'\">\r\n <clr-icon shape=\"drag-handle\" size=\"24\"></clr-icon>\r\n </div>\r\n </div>\r\n <button class=\"btn btn-secondary btn-sm\" (click)=\"addListItem()\">\r\n <clr-icon shape=\"plus\"></clr-icon> {{ 'common.add-item-to-list' | translate }}\r\n </button>\r\n </div>\r\n</ng-template>\r\n",
237
+ template: "<ng-container *ngIf=\"!renderAsList; else list\">\r\n <ng-container #single></ng-container>\r\n</ng-container>\r\n<ng-template #list>\r\n <div class=\"list-container\" cdkDropList (cdkDropListDropped)=\"moveListItem($event)\">\r\n <div class=\"list-item-row\" *ngFor=\"let item of listItems; trackBy: trackById\" cdkDrag [cdkDragData]=\"item\">\r\n <ng-container #listItem></ng-container>\r\n <button class=\"btn btn-link btn-sm btn-warning\" (click)=\"removeListItem(item)\" [title]=\"'common.remove-item-from-list' | translate\">\r\n <clr-icon shape=\"times\"></clr-icon>\r\n </button>\r\n <div class=\"flex-spacer\"></div>\r\n <div class=\"drag-handle\" cdkDragHandle *ngIf=\"!readonly\">\r\n <clr-icon shape=\"drag-handle\" size=\"24\"></clr-icon>\r\n </div>\r\n </div>\r\n <button class=\"btn btn-secondary btn-sm\" (click)=\"addListItem()\">\r\n <clr-icon shape=\"plus\"></clr-icon> {{ 'common.add-item-to-list' | translate }}\r\n </button>\r\n </div>\r\n</ng-template>\r\n",
238
238
  changeDetection: ChangeDetectionStrategy.OnPush,
239
239
  providers: [
240
240
  {
@@ -259,4 +259,4 @@ DynamicFormInputComponent.propDecorators = {
259
259
  singleViewContainer: [{ type: ViewChild, args: ['single', { read: ViewContainerRef },] }],
260
260
  listItemContainers: [{ type: ViewChildren, args: ['listItem', { read: ViewContainerRef },] }]
261
261
  };
262
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL2R5bmFtaWMtZm9ybS1pbnB1dHMvZHluYW1pYy1mb3JtLWlucHV0L2R5bmFtaWMtZm9ybS1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCx3QkFBd0IsRUFFeEIsUUFBUSxFQUNSLEtBQUssRUFJTCxTQUFTLEVBR1QsU0FBUyxFQUNULFlBQVksRUFDWixnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixTQUFTLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUk1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQVE1Rzs7R0FFRztBQWNILE1BQU0sT0FBTyx5QkFBeUI7SUFrQmxDLFlBQ1ksd0JBQWtELEVBQ2xELHdCQUFrRCxFQUNsRCxpQkFBb0MsRUFDcEMsUUFBa0I7UUFIbEIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWY5QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixjQUFTLEdBQW9CLEVBQUUsQ0FBQztRQUV4QixXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsa0JBQWEsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUlsQyxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDNUIsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFPOUIsQ0FBQztJQUVKLFFBQVE7UUFDSixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNyRSxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkYsSUFBSSxhQUFhLEVBQUU7WUFDZixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztTQUN0QzthQUFNO1lBQ0gsc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQ1QsbURBQW1ELFdBQVcscUNBQXFDLENBQ3RHLENBQUM7WUFDRixNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FDeEUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGdDQUFLLElBQUksQ0FBQyxHQUFHLEtBQUUsRUFBRSxFQUFFLFNBQVMsR0FBUyxDQUFDLENBQUMsU0FBUyxDQUNoRixDQUFDO1lBQ0YsSUFBSSxvQkFBb0IsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxvQkFBb0IsQ0FBQzthQUM3QztTQUNKO0lBQ0wsQ0FBQztJQUVELGVBQWU7O1FBQ1gsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3BCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFMUYsNkRBQTZEO1lBQzdELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdDLE1BQU0sb0JBQW9CLFNBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLG1DQUFJLEtBQUssQ0FBQztZQUNsRSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFFakIsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxLQUFLLElBQUksb0JBQW9CLEVBQUU7Z0JBQ2pELE1BQU0sSUFBSSxLQUFLLENBQ1gsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksc0RBQXNELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSx5QkFBeUIsQ0FDN0gsQ0FBQzthQUNMO1lBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDO1lBQzNELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUNwQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUMvQyxPQUFPLEVBQ1AsSUFBSSxDQUFDLG1CQUFtQixFQUN4QixJQUFJLENBQUMsT0FBTyxDQUNmLENBQUM7YUFDTDtpQkFBTTtnQkFDSCxJQUFJLFlBQXNDLENBQUM7Z0JBQzNDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxpQkFBOEMsRUFBRSxFQUFFO29CQUN4RSxJQUFJLGlCQUFpQixDQUFDLE1BQU0sRUFBRTt3QkFDMUIsSUFBSSxZQUFZLEVBQUU7NEJBQ2QsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO3lCQUM5Qjt3QkFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSx3QkFBQyxDQUFDLENBQUMsWUFBWSwwQ0FBRSxPQUFPLEtBQUUsQ0FBQyxDQUFDO3dCQUN2RCxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7OzRCQUNqQyxNQUFNLFFBQVEsU0FBRyxJQUFJLENBQUMsU0FBUywwQ0FBRyxDQUFDLENBQUMsQ0FBQzs0QkFDckMsSUFBSSxRQUFRLEVBQUU7Z0NBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dDQUMxQyxRQUFRLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FDN0MsT0FBTyxFQUNQLEdBQUcsRUFDSCxRQUFRLENBQUMsT0FBTyxDQUNuQixDQUFDOzZCQUNMO3dCQUNMLENBQUMsQ0FBQyxDQUFDO3dCQUVILFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVk7NkJBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzZCQUM5QixTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7NEJBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQzs0QkFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQzs0QkFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQzs0QkFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7d0JBQ3ZELENBQUMsQ0FBQyxDQUFDO3FCQUNWO2dCQUNMLENBQUMsQ0FBQztnQkFFRixpQkFBaUI7Z0JBQ2pCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPO3FCQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUNiLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7Z0JBRWpFLGdDQUFnQztnQkFDaEMsSUFBSSxDQUFDLFdBQVc7cUJBQ1gsSUFBSSxDQUNELFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUM5RCxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUMzQjtxQkFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNaLGdCQUFnQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUM5QyxDQUFDLENBQUMsQ0FBQzthQUNWO1NBQ0o7UUFDRCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUMvQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7b0JBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDbkQ7YUFDSjtTQUNKO1FBQ0QsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7U0FDekQ7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU8sY0FBYyxDQUFDLE9BQXNCLEVBQUUsWUFBOEM7UUFDekYsSUFBSSxLQUFLLElBQUksT0FBTyxFQUFFO1lBQ2xCLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztTQUN6RjtRQUNELElBQUksVUFBVSxJQUFJLE9BQU8sRUFBRTtZQUN2QixZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ2xEO1FBQ0QsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWEsRUFBRSxJQUFvQjtRQUN6QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFdBQVc7O1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7U0FDdkI7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztZQUNoQixFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNqQixPQUFPLEVBQUUsSUFBSSxXQUFXLE9BQUUsSUFBSSxDQUFDLEdBQTJCLENBQUMsWUFBWSxtQ0FBSSxJQUFJLENBQUM7U0FDbkYsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWlDO1FBQzFDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN6RSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2RSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQzNCO0lBQ0wsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFtQjs7UUFDOUIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDO1lBQ3hELE1BQUEsSUFBSSxDQUFDLFlBQVksMENBQUUsT0FBTyxHQUFHO1lBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUMzQjtJQUNMLENBQUM7SUFFTyxvQkFBb0IsQ0FDeEIsT0FBNkMsRUFDN0MsZ0JBQWtDLEVBQ2xDLFdBQXdCO1FBRXhCLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvRCxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFGLFFBQVEsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQ25DLFFBQVEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNsQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVELE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBUTtRQUNmLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwQixJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3RDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7O29CQUN6QixNQUFNLE9BQU8sU0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQywwQ0FBRSxPQUFPLENBQUM7b0JBQy9DLE9BQU8sQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDdkUsQ0FBQyxDQUFDLENBQUM7YUFDTjtpQkFBTTtnQkFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQ3BCLEtBQUssQ0FBQyxFQUFFLENBQ0osQ0FBQztvQkFDRyxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtvQkFDakIsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNuQyxDQUFBLENBQzFCLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUMzQjtTQUNKO2FBQU07WUFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQzNCO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFTyx1QkFBdUIsQ0FDM0IsTUFBK0M7O1FBRS9DLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRTtZQUNqRCxPQUFPLE1BQU0sQ0FBQyxFQUFFLENBQUM7U0FDcEI7UUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsSUFBdUMsQ0FBQztRQUM3RCxRQUFRLElBQUksRUFBRTtZQUNWLEtBQUssUUFBUSxDQUFDO1lBQ2QsS0FBSyxjQUFjLENBQUMsQ0FBQztnQkFDakIsTUFBTSxVQUFVLEdBQ1osQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsV0FBSSxNQUFNLENBQUMsRUFBRSwwQ0FBRSxPQUFPLENBQUEsQ0FBQztvQkFDckQsQ0FBQyxDQUFFLE1BQWtDLENBQUMsT0FBTyxDQUFDO2dCQUNsRCxJQUFJLFVBQVUsRUFBRTtvQkFDWixPQUFPLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLENBQUM7aUJBQzdDO3FCQUFNO29CQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztpQkFDM0M7YUFDSjtZQUNELEtBQUssS0FBSyxDQUFDO1lBQ1gsS0FBSyxPQUFPO2dCQUNSLE9BQU8sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztZQUM5QyxLQUFLLFNBQVM7Z0JBQ1YsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxDQUFDO1lBQy9DLEtBQUssVUFBVTtnQkFDWCxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUM7WUFDNUMsS0FBSyxJQUFJO2dCQUNMLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztZQUM1QyxLQUFLLFVBQVU7Z0JBQ1gsT0FBTyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxDQUFDO1lBQ2hEO2dCQUNJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6QjtJQUNMLENBQUM7SUFFTyxjQUFjLENBQUMsR0FBNEM7O1FBQy9ELE9BQU8sT0FBQyxHQUEyQiwwQ0FBRSxVQUFVLE1BQUsscUJBQXFCLENBQUM7SUFDOUUsQ0FBQztJQUVPLFdBQVcsQ0FBQyxHQUFZOztRQUM1QixPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxvQkFBUSxHQUFXLDBDQUFFLEVBQUUsMENBQUUsU0FBUyxDQUFBLEtBQUssUUFBUSxDQUFDO0lBQ3RGLENBQUM7OztZQXRSSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHdCQUF3QjtnQkFDbEMsaW9DQUFrRDtnQkFFbEQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLFNBQVMsRUFBRTtvQkFDUDt3QkFDSSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUseUJBQXlCO3dCQUN0QyxLQUFLLEVBQUUsSUFBSTtxQkFDZDtpQkFDSjs7YUFDSjs7O1lBdkJRLHdCQUF3QjtZQXpCN0Isd0JBQXdCO1lBSHhCLGlCQUFpQjtZQUtqQixRQUFROzs7a0JBaURQLEtBQUs7dUJBQ0wsS0FBSztzQkFDTCxLQUFLO2tDQUNMLFNBQVMsU0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7aUNBQzlDLFlBQVksU0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7XHJcbiAgICBBZnRlclZpZXdJbml0LFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIENvbXBvbmVudEZhY3RvcnksXHJcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBDb21wb25lbnRSZWYsXHJcbiAgICBJbmplY3RvcixcclxuICAgIElucHV0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgUXVlcnlMaXN0LFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIFR5cGUsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBWaWV3Q2hpbGRyZW4sXHJcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN0cmluZ0N1c3RvbUZpZWxkQ29uZmlnIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5pbXBvcnQgeyBDb25maWdBcmdUeXBlLCBDdXN0b21GaWVsZFR5cGUsIERlZmF1bHRGb3JtQ29tcG9uZW50SWQgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC10eXBlcyc7XHJcbmltcG9ydCB7IGFzc2VydE5ldmVyIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xyXG5pbXBvcnQgeyBzaW1wbGVEZWVwQ2xvbmUgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NpbXBsZS1kZWVwLWNsb25lJztcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRm9ybUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2NvbXBvbmVudC1yZWdpc3RyeS10eXBlcyc7XHJcbmltcG9ydCB7IENvbmZpZ0FyZ0RlZmluaXRpb24sIEN1c3RvbUZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XHJcbmltcG9ydCB7IGdldENvbmZpZ0FyZ1ZhbHVlIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWxpdGllcy9jb25maWd1cmFibGUtb3BlcmF0aW9uLXV0aWxzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50UmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2NvbXBvbmVudC1yZWdpc3RyeS9jb21wb25lbnQtcmVnaXN0cnkuc2VydmljZSc7XHJcblxyXG50eXBlIElucHV0TGlzdEl0ZW0gPSB7XHJcbiAgICBpZDogbnVtYmVyO1xyXG4gICAgY29tcG9uZW50UmVmPzogQ29tcG9uZW50UmVmPEZvcm1JbnB1dENvbXBvbmVudD47XHJcbiAgICBjb250cm9sOiBGb3JtQ29udHJvbDtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBBIGhvc3QgY29tcG9uZW50IHdoaWNoIGRlbGVnYXRlcyB0byBhbiBpbnN0YW5jZSBvciBsaXN0IG9mIEZvcm1JbnB1dENvbXBvbmVudCBjb21wb25lbnRzLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1keW5hbWljLWZvcm0taW5wdXQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtZm9ybS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWZvcm0taW5wdXQuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IER5bmFtaWNGb3JtSW5wdXRDb21wb25lbnQsXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1JbnB1dENvbXBvbmVudFxyXG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgICBASW5wdXQoKSBkZWY6IENvbmZpZ0FyZ0RlZmluaXRpb24gfCBDdXN0b21GaWVsZENvbmZpZztcclxuICAgIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgY29udHJvbDogRm9ybUNvbnRyb2w7XHJcbiAgICBAVmlld0NoaWxkKCdzaW5nbGUnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgc2luZ2xlVmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuICAgIEBWaWV3Q2hpbGRyZW4oJ2xpc3RJdGVtJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIGxpc3RJdGVtQ29udGFpbmVyczogUXVlcnlMaXN0PFZpZXdDb250YWluZXJSZWY+O1xyXG4gICAgcmVuZGVyQXNMaXN0ID0gZmFsc2U7XHJcbiAgICBsaXN0SXRlbXM6IElucHV0TGlzdEl0ZW1bXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBzaW5nbGVDb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxGb3JtSW5wdXRDb21wb25lbnQ+O1xyXG4gICAgcHJpdmF0ZSBsaXN0SWQgPSAxO1xyXG4gICAgcHJpdmF0ZSBsaXN0Rm9ybUFycmF5ID0gbmV3IEZvcm1BcnJheShbXSk7XHJcbiAgICBwcml2YXRlIGNvbXBvbmVudFR5cGU6IFR5cGU8Rm9ybUlucHV0Q29tcG9uZW50PjtcclxuICAgIHByaXZhdGUgb25DaGFuZ2U6ICh2YWw6IGFueSkgPT4gdm9pZDtcclxuICAgIHByaXZhdGUgb25Ub3VjaDogKCkgPT4gdm9pZDtcclxuICAgIHByaXZhdGUgcmVuZGVyTGlzdCQgPSBuZXcgU3ViamVjdCgpO1xyXG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRSZWdpc3RyeVNlcnZpY2U6IENvbXBvbmVudFJlZ2lzdHJ5U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudElkID0gdGhpcy5nZXRJbnB1dENvbXBvbmVudENvbmZpZyh0aGlzLmRlZikuY29tcG9uZW50O1xyXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFR5cGUgPSB0aGlzLmNvbXBvbmVudFJlZ2lzdHJ5U2VydmljZS5nZXRJbnB1dENvbXBvbmVudChjb21wb25lbnRJZCk7XHJcbiAgICAgICAgaWYgKGNvbXBvbmVudFR5cGUpIHtcclxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRUeXBlID0gY29tcG9uZW50VHlwZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tY29uc29sZVxyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxyXG4gICAgICAgICAgICAgICAgYE5vIGZvcm0gaW5wdXQgY29tcG9uZW50IHJlZ2lzdGVyZWQgd2l0aCB0aGUgaWQgXCIke2NvbXBvbmVudElkfVwiLiBVc2luZyB0aGUgZGVmYXVsdCBpbnB1dCBpbnN0ZWFkLmAsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRDb21wb25lbnRUeXBlID0gdGhpcy5jb21wb25lbnRSZWdpc3RyeVNlcnZpY2UuZ2V0SW5wdXRDb21wb25lbnQoXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldElucHV0Q29tcG9uZW50Q29uZmlnKHsgLi4udGhpcy5kZWYsIHVpOiB1bmRlZmluZWQgfSBhcyBhbnkpLmNvbXBvbmVudCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgaWYgKGRlZmF1bHRDb21wb25lbnRUeXBlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFR5cGUgPSBkZWZhdWx0Q29tcG9uZW50VHlwZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50VHlwZSkge1xyXG4gICAgICAgICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodGhpcy5jb21wb25lbnRUeXBlKTtcclxuXHJcbiAgICAgICAgICAgIC8vIGNyZWF0ZSBhIHRlbXAgaW5zdGFuY2UgdG8gY2hlY2sgdGhlIHZhbHVlIG9mIGBpc0xpc3RJbnB1dGBcclxuICAgICAgICAgICAgY29uc3QgY21wUmVmID0gZmFjdG9yeS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XHJcbiAgICAgICAgICAgIGNvbnN0IGlzTGlzdElucHV0Q29tcG9uZW50ID0gY21wUmVmLmluc3RhbmNlLmlzTGlzdElucHV0ID8/IGZhbHNlO1xyXG4gICAgICAgICAgICBjbXBSZWYuZGVzdHJveSgpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuZGVmLmxpc3QgPT09IGZhbHNlICYmIGlzTGlzdElucHV0Q29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICAgICAgICAgICAgYFRoZSAke3RoaXMuY29tcG9uZW50VHlwZS5uYW1lfSBjb21wb25lbnQgaXMgYSBsaXN0IGlucHV0LCBidXQgdGhlIGRlZmluaXRpb24gZm9yICR7dGhpcy5kZWYubmFtZX0gZG9lcyBub3QgZXhwZWN0IGEgbGlzdGAsXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQXNMaXN0ID0gdGhpcy5kZWYubGlzdCAmJiAhaXNMaXN0SW5wdXRDb21wb25lbnQ7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5yZW5kZXJBc0xpc3QpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2luZ2xlQ29tcG9uZW50UmVmID0gdGhpcy5yZW5kZXJJbnB1dENvbXBvbmVudChcclxuICAgICAgICAgICAgICAgICAgICBmYWN0b3J5LFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2luZ2xlVmlld0NvbnRhaW5lcixcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2wsXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbGV0IGZvcm1BcnJheVN1YjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVuZGVyTGlzdElucHV0cyA9ICh2aWV3Q29udGFpbmVyUmVmczogUXVlcnlMaXN0PFZpZXdDb250YWluZXJSZWY+KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZpZXdDb250YWluZXJSZWZzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybUFycmF5U3ViKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQXJyYXlTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3RGb3JtQXJyYXkgPSBuZXcgRm9ybUFycmF5KFtdKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5saXN0SXRlbXMuZm9yRWFjaChpID0+IGkuY29tcG9uZW50UmVmPy5kZXN0cm95KCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmcy5mb3JFYWNoKChyZWYsIGkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpc3RJdGVtID0gdGhpcy5saXN0SXRlbXM/LltpXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaXN0SXRlbSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdEZvcm1BcnJheS5wdXNoKGxpc3RJdGVtLmNvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RJdGVtLmNvbXBvbmVudFJlZiA9IHRoaXMucmVuZGVySW5wdXRDb21wb25lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhY3RvcnksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdEl0ZW0uY29udHJvbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1BcnJheVN1YiA9IHRoaXMubGlzdEZvcm1BcnJheS52YWx1ZUNoYW5nZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUodmFsID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodmFsKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2wucGF0Y2hWYWx1ZSh2YWwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gaW5pdGlhbCByZW5kZXJcclxuICAgICAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1Db250YWluZXJzLmNoYW5nZXNcclxuICAgICAgICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUodmFsID0+IHJlbmRlckxpc3RJbnB1dHModGhpcy5saXN0SXRlbUNvbnRhaW5lcnMpKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyByZW5kZXIgb24gY2hhbmdlcyB0byB0aGUgbGlzdFxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJMaXN0JFxyXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5saXN0SXRlbUNvbnRhaW5lcnMuY2hhbmdlcy5waXBlKHRha2UoMSkpKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyTGlzdElucHV0cyh0aGlzLmxpc3RJdGVtQ29udGFpbmVycyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubGlzdEl0ZW1zKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLmxpc3RJdGVtcykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uY29tcG9uZW50UmVmKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVCaW5kaW5ncyhjaGFuZ2VzLCBpdGVtLmNvbXBvbmVudFJlZik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuc2luZ2xlQ29tcG9uZW50UmVmKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQmluZGluZ3MoY2hhbmdlcywgdGhpcy5zaW5nbGVDb21wb25lbnRSZWYpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVCaW5kaW5ncyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzLCBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxGb3JtSW5wdXRDb21wb25lbnQ+KSB7XHJcbiAgICAgICAgaWYgKCdkZWYnIGluIGNoYW5nZXMpIHtcclxuICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNvbmZpZyA9IHRoaXMuaXNDb25maWdBcmdEZWYodGhpcy5kZWYpID8gdGhpcy5kZWYudWkgOiB0aGlzLmRlZjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCdyZWFkb25seScgaW4gY2hhbmdlcykge1xyXG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UucmVhZG9ubHkgPSB0aGlzLnJlYWRvbmx5O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb21wb25lbnRSZWYuaW5qZWN0b3IuZ2V0KENoYW5nZURldGVjdG9yUmVmKS5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuXHJcbiAgICB0cmFja0J5SWQoaW5kZXg6IG51bWJlciwgaXRlbTogeyBpZDogbnVtYmVyIH0pIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5pZDtcclxuICAgIH1cclxuXHJcbiAgICBhZGRMaXN0SXRlbSgpIHtcclxuICAgICAgICBpZiAoIXRoaXMubGlzdEl0ZW1zKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1zID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGlzdEl0ZW1zLnB1c2goe1xyXG4gICAgICAgICAgICBpZDogdGhpcy5saXN0SWQrKyxcclxuICAgICAgICAgICAgY29udHJvbDogbmV3IEZvcm1Db250cm9sKCh0aGlzLmRlZiBhcyBDb25maWdBcmdEZWZpbml0aW9uKS5kZWZhdWx0VmFsdWUgPz8gbnVsbCksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJMaXN0JC5uZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgbW92ZUxpc3RJdGVtKGV2ZW50OiBDZGtEcmFnRHJvcDxJbnB1dExpc3RJdGVtPikge1xyXG4gICAgICAgIGlmICh0aGlzLmxpc3RJdGVtcykge1xyXG4gICAgICAgICAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5saXN0SXRlbXMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICAgICAgICAgIHRoaXMubGlzdEZvcm1BcnJheS5yZW1vdmVBdChldmVudC5wcmV2aW91c0luZGV4KTtcclxuICAgICAgICAgICAgdGhpcy5saXN0Rm9ybUFycmF5Lmluc2VydChldmVudC5jdXJyZW50SW5kZXgsIGV2ZW50Lml0ZW0uZGF0YS5jb250cm9sKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJMaXN0JC5uZXh0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUxpc3RJdGVtKGl0ZW06IElucHV0TGlzdEl0ZW0pIHtcclxuICAgICAgICBpZiAodGhpcy5saXN0SXRlbXMpIHtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmxpc3RJdGVtcy5maW5kSW5kZXgoaSA9PiBpID09PSBpdGVtKTtcclxuICAgICAgICAgICAgaXRlbS5jb21wb25lbnRSZWY/LmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgdGhpcy5saXN0Rm9ybUFycmF5LnJlbW92ZUF0KGluZGV4KTtcclxuICAgICAgICAgICAgdGhpcy5saXN0SXRlbXMgPSB0aGlzLmxpc3RJdGVtcy5maWx0ZXIoaSA9PiBpICE9PSBpdGVtKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJMaXN0JC5uZXh0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVuZGVySW5wdXRDb21wb25lbnQoXHJcbiAgICAgICAgZmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxGb3JtSW5wdXRDb21wb25lbnQ+LFxyXG4gICAgICAgIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sLFxyXG4gICAgKSB7XHJcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XHJcbiAgICAgICAgY29uc3QgeyBpbnN0YW5jZSB9ID0gY29tcG9uZW50UmVmO1xyXG4gICAgICAgIGluc3RhbmNlLmNvbmZpZyA9IHNpbXBsZURlZXBDbG9uZSh0aGlzLmlzQ29uZmlnQXJnRGVmKHRoaXMuZGVmKSA/IHRoaXMuZGVmLnVpIDogdGhpcy5kZWYpO1xyXG4gICAgICAgIGluc3RhbmNlLmZvcm1Db250cm9sID0gZm9ybUNvbnRyb2w7XHJcbiAgICAgICAgaW5zdGFuY2UucmVhZG9ubHkgPSB0aGlzLnJlYWRvbmx5O1xyXG4gICAgICAgIGNvbXBvbmVudFJlZi5pbmplY3Rvci5nZXQoQ2hhbmdlRGV0ZWN0b3JSZWYpLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIHJldHVybiBjb21wb25lbnRSZWY7XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2ggPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xyXG4gICAgICAgICAgICBpZiAob2JqLmxlbmd0aCA9PT0gdGhpcy5saXN0SXRlbXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBvYmouZm9yRWFjaCgodmFsdWUsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMubGlzdEl0ZW1zW2luZGV4XT8uY29udHJvbDtcclxuICAgICAgICAgICAgICAgICAgICBjb250cm9sLnBhdGNoVmFsdWUoZ2V0Q29uZmlnQXJnVmFsdWUodmFsdWUpLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1zID0gb2JqLm1hcChcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHRoaXMubGlzdElkKyssXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sOiBuZXcgRm9ybUNvbnRyb2woZ2V0Q29uZmlnQXJnVmFsdWUodmFsdWUpKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBhcyBJbnB1dExpc3RJdGVtKSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckxpc3QkLm5leHQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1zID0gW107XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTGlzdCQubmV4dCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0SW5wdXRDb21wb25lbnRDb25maWcoXHJcbiAgICAgICAgYXJnRGVmOiBDb25maWdBcmdEZWZpbml0aW9uIHwgQ3VzdG9tRmllbGRDb25maWcsXHJcbiAgICApOiB7IGNvbXBvbmVudDogRGVmYXVsdEZvcm1Db21wb25lbnRJZCB9IHtcclxuICAgICAgICBpZiAodGhpcy5oYXNVaUNvbmZpZyhhcmdEZWYpICYmIGFyZ0RlZi51aS5jb21wb25lbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGFyZ0RlZi51aTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdHlwZSA9IGFyZ0RlZj8udHlwZSBhcyBDb25maWdBcmdUeXBlIHwgQ3VzdG9tRmllbGRUeXBlO1xyXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlICdzdHJpbmcnOlxyXG4gICAgICAgICAgICBjYXNlICdsb2NhbGVTdHJpbmcnOiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBoYXNPcHRpb25zID1cclxuICAgICAgICAgICAgICAgICAgICAhISh0aGlzLmlzQ29uZmlnQXJnRGVmKGFyZ0RlZikgJiYgYXJnRGVmLnVpPy5vcHRpb25zKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICEhKGFyZ0RlZiBhcyBTdHJpbmdDdXN0b21GaWVsZENvbmZpZykub3B0aW9ucztcclxuICAgICAgICAgICAgICAgIGlmIChoYXNPcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgY29tcG9uZW50OiAnc2VsZWN0LWZvcm0taW5wdXQnIH07XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGNvbXBvbmVudDogJ3RleHQtZm9ybS1pbnB1dCcgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICdpbnQnOlxyXG4gICAgICAgICAgICBjYXNlICdmbG9hdCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBjb21wb25lbnQ6ICdudW1iZXItZm9ybS1pbnB1dCcgfTtcclxuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBjb21wb25lbnQ6ICdib29sZWFuLWZvcm0taW5wdXQnIH07XHJcbiAgICAgICAgICAgIGNhc2UgJ2RhdGV0aW1lJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGNvbXBvbmVudDogJ2RhdGUtZm9ybS1pbnB1dCcgfTtcclxuICAgICAgICAgICAgY2FzZSAnSUQnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgY29tcG9uZW50OiAndGV4dC1mb3JtLWlucHV0JyB9O1xyXG4gICAgICAgICAgICBjYXNlICdyZWxhdGlvbic6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBjb21wb25lbnQ6ICdyZWxhdGlvbi1mb3JtLWlucHV0JyB9O1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgYXNzZXJ0TmV2ZXIodHlwZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNDb25maWdBcmdEZWYoZGVmOiBDb25maWdBcmdEZWZpbml0aW9uIHwgQ3VzdG9tRmllbGRDb25maWcpOiBkZWYgaXMgQ29uZmlnQXJnRGVmaW5pdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIChkZWYgYXMgQ29uZmlnQXJnRGVmaW5pdGlvbik/Ll9fdHlwZW5hbWUgPT09ICdDb25maWdBcmdEZWZpbml0aW9uJztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhc1VpQ29uZmlnKGRlZjogdW5rbm93bik6IGRlZiBpcyB7IHVpOiB7IGNvbXBvbmVudDogc3RyaW5nIH0gfSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBkZWYgPT09ICdvYmplY3QnICYmIHR5cGVvZiAoZGVmIGFzIGFueSk/LnVpPy5jb21wb25lbnQgPT09ICdzdHJpbmcnO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
262
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL2R5bmFtaWMtZm9ybS1pbnB1dHMvZHluYW1pYy1mb3JtLWlucHV0L2R5bmFtaWMtZm9ybS1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCx3QkFBd0IsRUFFeEIsUUFBUSxFQUNSLEtBQUssRUFJTCxTQUFTLEVBR1QsU0FBUyxFQUNULFlBQVksRUFDWixnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixTQUFTLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUk1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQVE1Rzs7R0FFRztBQWNILE1BQU0sT0FBTyx5QkFBeUI7SUFrQmxDLFlBQ1ksd0JBQWtELEVBQ2xELHdCQUFrRCxFQUNsRCxpQkFBb0MsRUFDcEMsUUFBa0I7UUFIbEIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCw2QkFBd0IsR0FBeEIsd0JBQXdC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T0FBTyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxDQUFDO1lBQ2hEO2dCQUNJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6QjtJQUNMLENBQUM7SUFFTyxjQUFjLENBQUMsR0FBNEM7O1FBQy9ELE9BQU8sT0FBQyxHQUEyQiwwQ0FBRSxVQUFVLE1BQUsscUJBQXFCLENBQUM7SUFDOUUsQ0FBQztJQUVPLFdBQVcsQ0FBQyxHQUFZOztRQUM1QixPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxvQkFBUSxHQUFXLDBDQUFFLEVBQUUsMENBQUUsU0FBUyxDQUFBLEtBQUssUUFBUSxDQUFDO0lBQ3RGLENBQUM7OztZQXRSSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHdCQUF3QjtnQkFDbEMsK21DQUFrRDtnQkFFbEQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLFNBQVMsRUFBRTtvQkFDUDt3QkFDSSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUseUJBQXlCO3dCQUN0QyxLQUFLLEVBQUUsSUFBSTtxQkFDZDtpQkFDSjs7YUFDSjs7O1lBdkJRLHdCQUF3QjtZQXpCN0Isd0JBQXdCO1lBSHhCLGlCQUFpQjtZQUtqQixRQUFROzs7a0JBaURQLEtBQUs7dUJBQ0wsS0FBSztzQkFDTCxLQUFLO2tDQUNMLFNBQVMsU0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7aUNBQzlDLFlBQVksU0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7XHJcbiAgICBBZnRlclZpZXdJbml0LFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIENvbXBvbmVudEZhY3RvcnksXHJcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBDb21wb25lbnRSZWYsXHJcbiAgICBJbmplY3RvcixcclxuICAgIElucHV0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgUXVlcnlMaXN0LFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIFR5cGUsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBWaWV3Q2hpbGRyZW4sXHJcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN0cmluZ0N1c3RvbUZpZWxkQ29uZmlnIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5pbXBvcnQgeyBDb25maWdBcmdUeXBlLCBDdXN0b21GaWVsZFR5cGUsIERlZmF1bHRGb3JtQ29tcG9uZW50SWQgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC10eXBlcyc7XHJcbmltcG9ydCB7IGFzc2VydE5ldmVyIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xyXG5pbXBvcnQgeyBzaW1wbGVEZWVwQ2xvbmUgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NpbXBsZS1kZWVwLWNsb25lJztcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRm9ybUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2NvbXBvbmVudC1yZWdpc3RyeS10eXBlcyc7XHJcbmltcG9ydCB7IENvbmZpZ0FyZ0RlZmluaXRpb24sIEN1c3RvbUZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XHJcbmltcG9ydCB7IGdldENvbmZpZ0FyZ1ZhbHVlIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWxpdGllcy9jb25maWd1cmFibGUtb3BlcmF0aW9uLXV0aWxzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50UmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2NvbXBvbmVudC1yZWdpc3RyeS9jb21wb25lbnQtcmVnaXN0cnkuc2VydmljZSc7XHJcblxyXG50eXBlIElucHV0TGlzdEl0ZW0gPSB7XHJcbiAgICBpZDogbnVtYmVyO1xyXG4gICAgY29tcG9uZW50UmVmPzogQ29tcG9uZW50UmVmPEZvcm1JbnB1dENvbXBvbmVudD47XHJcbiAgICBjb250cm9sOiBGb3JtQ29udHJvbDtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBBIGhvc3QgY29tcG9uZW50IHdoaWNoIGRlbGVnYXRlcyB0byBhbiBpbnN0YW5jZSBvciBsaXN0IG9mIEZvcm1JbnB1dENvbXBvbmVudCBjb21wb25lbnRzLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1keW5hbWljLWZvcm0taW5wdXQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtZm9ybS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWZvcm0taW5wdXQuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IER5bmFtaWNGb3JtSW5wdXRDb21wb25lbnQsXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1JbnB1dENvbXBvbmVudFxyXG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgICBASW5wdXQoKSBkZWY6IENvbmZpZ0FyZ0RlZmluaXRpb24gfCBDdXN0b21GaWVsZENvbmZpZztcclxuICAgIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgY29udHJvbDogRm9ybUNvbnRyb2w7XHJcbiAgICBAVmlld0NoaWxkKCdzaW5nbGUnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgc2luZ2xlVmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuICAgIEBWaWV3Q2hpbGRyZW4oJ2xpc3RJdGVtJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIGxpc3RJdGVtQ29udGFpbmVyczogUXVlcnlMaXN0PFZpZXdDb250YWluZXJSZWY+O1xyXG4gICAgcmVuZGVyQXNMaXN0ID0gZmFsc2U7XHJcbiAgICBsaXN0SXRlbXM6IElucHV0TGlzdEl0ZW1bXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBzaW5nbGVDb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxGb3JtSW5wdXRDb21wb25lbnQ+O1xyXG4gICAgcHJpdmF0ZSBsaXN0SWQgPSAxO1xyXG4gICAgcHJpdmF0ZSBsaXN0Rm9ybUFycmF5ID0gbmV3IEZvcm1BcnJheShbXSk7XHJcbiAgICBwcml2YXRlIGNvbXBvbmVudFR5cGU6IFR5cGU8Rm9ybUlucHV0Q29tcG9uZW50PjtcclxuICAgIHByaXZhdGUgb25DaGFuZ2U6ICh2YWw6IGFueSkgPT4gdm9pZDtcclxuICAgIHByaXZhdGUgb25Ub3VjaDogKCkgPT4gdm9pZDtcclxuICAgIHByaXZhdGUgcmVuZGVyTGlzdCQgPSBuZXcgU3ViamVjdCgpO1xyXG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRSZWdpc3RyeVNlcnZpY2U6IENvbXBvbmVudFJlZ2lzdHJ5U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudElkID0gdGhpcy5nZXRJbnB1dENvbXBvbmVudENvbmZpZyh0aGlzLmRlZikuY29tcG9uZW50O1xyXG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFR5cGUgPSB0aGlzLmNvbXBvbmVudFJlZ2lzdHJ5U2VydmljZS5nZXRJbnB1dENvbXBvbmVudChjb21wb25lbnRJZCk7XHJcbiAgICAgICAgaWYgKGNvbXBvbmVudFR5cGUpIHtcclxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRUeXBlID0gY29tcG9uZW50VHlwZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tY29uc29sZVxyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxyXG4gICAgICAgICAgICAgICAgYE5vIGZvcm0gaW5wdXQgY29tcG9uZW50IHJlZ2lzdGVyZWQgd2l0aCB0aGUgaWQgXCIke2NvbXBvbmVudElkfVwiLiBVc2luZyB0aGUgZGVmYXVsdCBpbnB1dCBpbnN0ZWFkLmAsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRDb21wb25lbnRUeXBlID0gdGhpcy5jb21wb25lbnRSZWdpc3RyeVNlcnZpY2UuZ2V0SW5wdXRDb21wb25lbnQoXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldElucHV0Q29tcG9uZW50Q29uZmlnKHsgLi4udGhpcy5kZWYsIHVpOiB1bmRlZmluZWQgfSBhcyBhbnkpLmNvbXBvbmVudCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgaWYgKGRlZmF1bHRDb21wb25lbnRUeXBlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFR5cGUgPSBkZWZhdWx0Q29tcG9uZW50VHlwZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50VHlwZSkge1xyXG4gICAgICAgICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodGhpcy5jb21wb25lbnRUeXBlKTtcclxuXHJcbiAgICAgICAgICAgIC8vIGNyZWF0ZSBhIHRlbXAgaW5zdGFuY2UgdG8gY2hlY2sgdGhlIHZhbHVlIG9mIGBpc0xpc3RJbnB1dGBcclxuICAgICAgICAgICAgY29uc3QgY21wUmVmID0gZmFjdG9yeS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XHJcbiAgICAgICAgICAgIGNvbnN0IGlzTGlzdElucHV0Q29tcG9uZW50ID0gY21wUmVmLmluc3RhbmNlLmlzTGlzdElucHV0ID8/IGZhbHNlO1xyXG4gICAgICAgICAgICBjbXBSZWYuZGVzdHJveSgpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuZGVmLmxpc3QgPT09IGZhbHNlICYmIGlzTGlzdElucHV0Q29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICAgICAgICAgICAgYFRoZSAke3RoaXMuY29tcG9uZW50VHlwZS5uYW1lfSBjb21wb25lbnQgaXMgYSBsaXN0IGlucHV0LCBidXQgdGhlIGRlZmluaXRpb24gZm9yICR7dGhpcy5kZWYubmFtZX0gZG9lcyBub3QgZXhwZWN0IGEgbGlzdGAsXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQXNMaXN0ID0gdGhpcy5kZWYubGlzdCAmJiAhaXNMaXN0SW5wdXRDb21wb25lbnQ7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5yZW5kZXJBc0xpc3QpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2luZ2xlQ29tcG9uZW50UmVmID0gdGhpcy5yZW5kZXJJbnB1dENvbXBvbmVudChcclxuICAgICAgICAgICAgICAgICAgICBmYWN0b3J5LFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2luZ2xlVmlld0NvbnRhaW5lcixcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2wsXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbGV0IGZvcm1BcnJheVN1YjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVuZGVyTGlzdElucHV0cyA9ICh2aWV3Q29udGFpbmVyUmVmczogUXVlcnlMaXN0PFZpZXdDb250YWluZXJSZWY+KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZpZXdDb250YWluZXJSZWZzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybUFycmF5U3ViKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQXJyYXlTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3RGb3JtQXJyYXkgPSBuZXcgRm9ybUFycmF5KFtdKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5saXN0SXRlbXMuZm9yRWFjaChpID0+IGkuY29tcG9uZW50UmVmPy5kZXN0cm95KCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmcy5mb3JFYWNoKChyZWYsIGkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpc3RJdGVtID0gdGhpcy5saXN0SXRlbXM/LltpXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaXN0SXRlbSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdEZvcm1BcnJheS5wdXNoKGxpc3RJdGVtLmNvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RJdGVtLmNvbXBvbmVudFJlZiA9IHRoaXMucmVuZGVySW5wdXRDb21wb25lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhY3RvcnksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdEl0ZW0uY29udHJvbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1BcnJheVN1YiA9IHRoaXMubGlzdEZvcm1BcnJheS52YWx1ZUNoYW5nZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUodmFsID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodmFsKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2wucGF0Y2hWYWx1ZSh2YWwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gaW5pdGlhbCByZW5kZXJcclxuICAgICAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1Db250YWluZXJzLmNoYW5nZXNcclxuICAgICAgICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUodmFsID0+IHJlbmRlckxpc3RJbnB1dHModGhpcy5saXN0SXRlbUNvbnRhaW5lcnMpKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyByZW5kZXIgb24gY2hhbmdlcyB0byB0aGUgbGlzdFxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJMaXN0JFxyXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5saXN0SXRlbUNvbnRhaW5lcnMuY2hhbmdlcy5waXBlKHRha2UoMSkpKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyTGlzdElucHV0cyh0aGlzLmxpc3RJdGVtQ29udGFpbmVycyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubGlzdEl0ZW1zKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLmxpc3RJdGVtcykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uY29tcG9uZW50UmVmKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVCaW5kaW5ncyhjaGFuZ2VzLCBpdGVtLmNvbXBvbmVudFJlZik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuc2luZ2xlQ29tcG9uZW50UmVmKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQmluZGluZ3MoY2hhbmdlcywgdGhpcy5zaW5nbGVDb21wb25lbnRSZWYpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVCaW5kaW5ncyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzLCBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxGb3JtSW5wdXRDb21wb25lbnQ+KSB7XHJcbiAgICAgICAgaWYgKCdkZWYnIGluIGNoYW5nZXMpIHtcclxuICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNvbmZpZyA9IHRoaXMuaXNDb25maWdBcmdEZWYodGhpcy5kZWYpID8gdGhpcy5kZWYudWkgOiB0aGlzLmRlZjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCdyZWFkb25seScgaW4gY2hhbmdlcykge1xyXG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UucmVhZG9ubHkgPSB0aGlzLnJlYWRvbmx5O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb21wb25lbnRSZWYuaW5qZWN0b3IuZ2V0KENoYW5nZURldGVjdG9yUmVmKS5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuXHJcbiAgICB0cmFja0J5SWQoaW5kZXg6IG51bWJlciwgaXRlbTogeyBpZDogbnVtYmVyIH0pIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5pZDtcclxuICAgIH1cclxuXHJcbiAgICBhZGRMaXN0SXRlbSgpIHtcclxuICAgICAgICBpZiAoIXRoaXMubGlzdEl0ZW1zKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1zID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGlzdEl0ZW1zLnB1c2goe1xyXG4gICAgICAgICAgICBpZDogdGhpcy5saXN0SWQrKyxcclxuICAgICAgICAgICAgY29udHJvbDogbmV3IEZvcm1Db250cm9sKCh0aGlzLmRlZiBhcyBDb25maWdBcmdEZWZpbml0aW9uKS5kZWZhdWx0VmFsdWUgPz8gbnVsbCksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJMaXN0JC5uZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgbW92ZUxpc3RJdGVtKGV2ZW50OiBDZGtEcmFnRHJvcDxJbnB1dExpc3RJdGVtPikge1xyXG4gICAgICAgIGlmICh0aGlzLmxpc3RJdGVtcykge1xyXG4gICAgICAgICAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5saXN0SXRlbXMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICAgICAgICAgIHRoaXMubGlzdEZvcm1BcnJheS5yZW1vdmVBdChldmVudC5wcmV2aW91c0luZGV4KTtcclxuICAgICAgICAgICAgdGhpcy5saXN0Rm9ybUFycmF5Lmluc2VydChldmVudC5jdXJyZW50SW5kZXgsIGV2ZW50Lml0ZW0uZGF0YS5jb250cm9sKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJMaXN0JC5uZXh0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUxpc3RJdGVtKGl0ZW06IElucHV0TGlzdEl0ZW0pIHtcclxuICAgICAgICBpZiAodGhpcy5saXN0SXRlbXMpIHtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmxpc3RJdGVtcy5maW5kSW5kZXgoaSA9PiBpID09PSBpdGVtKTtcclxuICAgICAgICAgICAgaXRlbS5jb21wb25lbnRSZWY/LmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgdGhpcy5saXN0Rm9ybUFycmF5LnJlbW92ZUF0KGluZGV4KTtcclxuICAgICAgICAgICAgdGhpcy5saXN0SXRlbXMgPSB0aGlzLmxpc3RJdGVtcy5maWx0ZXIoaSA9PiBpICE9PSBpdGVtKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJMaXN0JC5uZXh0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVuZGVySW5wdXRDb21wb25lbnQoXHJcbiAgICAgICAgZmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxGb3JtSW5wdXRDb21wb25lbnQ+LFxyXG4gICAgICAgIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sLFxyXG4gICAgKSB7XHJcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XHJcbiAgICAgICAgY29uc3QgeyBpbnN0YW5jZSB9ID0gY29tcG9uZW50UmVmO1xyXG4gICAgICAgIGluc3RhbmNlLmNvbmZpZyA9IHNpbXBsZURlZXBDbG9uZSh0aGlzLmlzQ29uZmlnQXJnRGVmKHRoaXMuZGVmKSA/IHRoaXMuZGVmLnVpIDogdGhpcy5kZWYpO1xyXG4gICAgICAgIGluc3RhbmNlLmZvcm1Db250cm9sID0gZm9ybUNvbnRyb2w7XHJcbiAgICAgICAgaW5zdGFuY2UucmVhZG9ubHkgPSB0aGlzLnJlYWRvbmx5O1xyXG4gICAgICAgIGNvbXBvbmVudFJlZi5pbmplY3Rvci5nZXQoQ2hhbmdlRGV0ZWN0b3JSZWYpLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIHJldHVybiBjb21wb25lbnRSZWY7XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2ggPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xyXG4gICAgICAgICAgICBpZiAob2JqLmxlbmd0aCA9PT0gdGhpcy5saXN0SXRlbXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBvYmouZm9yRWFjaCgodmFsdWUsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMubGlzdEl0ZW1zW2luZGV4XT8uY29udHJvbDtcclxuICAgICAgICAgICAgICAgICAgICBjb250cm9sLnBhdGNoVmFsdWUoZ2V0Q29uZmlnQXJnVmFsdWUodmFsdWUpLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1zID0gb2JqLm1hcChcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHRoaXMubGlzdElkKyssXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sOiBuZXcgRm9ybUNvbnRyb2woZ2V0Q29uZmlnQXJnVmFsdWUodmFsdWUpKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBhcyBJbnB1dExpc3RJdGVtKSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckxpc3QkLm5leHQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1zID0gW107XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTGlzdCQubmV4dCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0SW5wdXRDb21wb25lbnRDb25maWcoXHJcbiAgICAgICAgYXJnRGVmOiBDb25maWdBcmdEZWZpbml0aW9uIHwgQ3VzdG9tRmllbGRDb25maWcsXHJcbiAgICApOiB7IGNvbXBvbmVudDogRGVmYXVsdEZvcm1Db21wb25lbnRJZCB9IHtcclxuICAgICAgICBpZiAodGhpcy5oYXNVaUNvbmZpZyhhcmdEZWYpICYmIGFyZ0RlZi51aS5jb21wb25lbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGFyZ0RlZi51aTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdHlwZSA9IGFyZ0RlZj8udHlwZSBhcyBDb25maWdBcmdUeXBlIHwgQ3VzdG9tRmllbGRUeXBlO1xyXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlICdzdHJpbmcnOlxyXG4gICAgICAgICAgICBjYXNlICdsb2NhbGVTdHJpbmcnOiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBoYXNPcHRpb25zID1cclxuICAgICAgICAgICAgICAgICAgICAhISh0aGlzLmlzQ29uZmlnQXJnRGVmKGFyZ0RlZikgJiYgYXJnRGVmLnVpPy5vcHRpb25zKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICEhKGFyZ0RlZiBhcyBTdHJpbmdDdXN0b21GaWVsZENvbmZpZykub3B0aW9ucztcclxuICAgICAgICAgICAgICAgIGlmIChoYXNPcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgY29tcG9uZW50OiAnc2VsZWN0LWZvcm0taW5wdXQnIH07XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGNvbXBvbmVudDogJ3RleHQtZm9ybS1pbnB1dCcgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICdpbnQnOlxyXG4gICAgICAgICAgICBjYXNlICdmbG9hdCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBjb21wb25lbnQ6ICdudW1iZXItZm9ybS1pbnB1dCcgfTtcclxuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBjb21wb25lbnQ6ICdib29sZWFuLWZvcm0taW5wdXQnIH07XHJcbiAgICAgICAgICAgIGNhc2UgJ2RhdGV0aW1lJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGNvbXBvbmVudDogJ2RhdGUtZm9ybS1pbnB1dCcgfTtcclxuICAgICAgICAgICAgY2FzZSAnSUQnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgY29tcG9uZW50OiAndGV4dC1mb3JtLWlucHV0JyB9O1xyXG4gICAgICAgICAgICBjYXNlICdyZWxhdGlvbic6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBjb21wb25lbnQ6ICdyZWxhdGlvbi1mb3JtLWlucHV0JyB9O1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgYXNzZXJ0TmV2ZXIodHlwZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNDb25maWdBcmdEZWYoZGVmOiBDb25maWdBcmdEZWZpbml0aW9uIHwgQ3VzdG9tRmllbGRDb25maWcpOiBkZWYgaXMgQ29uZmlnQXJnRGVmaW5pdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIChkZWYgYXMgQ29uZmlnQXJnRGVmaW5pdGlvbik/Ll9fdHlwZW5hbWUgPT09ICdDb25maWdBcmdEZWZpbml0aW9uJztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhc1VpQ29uZmlnKGRlZjogdW5rbm93bik6IGRlZiBpcyB7IHVpOiB7IGNvbXBvbmVudDogc3RyaW5nIH0gfSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBkZWYgPT09ICdvYmplY3QnICYmIHR5cGVvZiAoZGVmIGFzIGFueSk/LnVpPy5jb21wb25lbnQgPT09ICdzdHJpbmcnO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -14,18 +14,20 @@ export class HasPermissionPipe {
14
14
  this.dataService = dataService;
15
15
  this.changeDetectorRef = changeDetectorRef;
16
16
  this.hasPermission = false;
17
- this.permission = null;
17
+ this.lastPermissions = null;
18
18
  this.currentPermissions$ = this.dataService.client
19
19
  .userStatus()
20
20
  .mapStream(data => data.userStatus.permissions);
21
21
  }
22
- transform(permission) {
23
- if (this.permission !== permission) {
24
- this.permission = permission;
22
+ transform(input) {
23
+ const requiredPermissions = Array.isArray(input) ? input : [input];
24
+ const requiredPermissionsString = requiredPermissions.join(',');
25
+ if (this.lastPermissions !== requiredPermissionsString) {
26
+ this.lastPermissions = requiredPermissionsString;
25
27
  this.hasPermission = false;
26
28
  this.dispose();
27
29
  this.subscription = this.currentPermissions$.subscribe(permissions => {
28
- this.hasPermission = permissions.includes(permission);
30
+ this.hasPermission = this.checkPermissions(permissions, requiredPermissions);
29
31
  this.changeDetectorRef.markForCheck();
30
32
  });
31
33
  }
@@ -34,6 +36,14 @@ export class HasPermissionPipe {
34
36
  ngOnDestroy() {
35
37
  this.dispose();
36
38
  }
39
+ checkPermissions(userPermissions, requiredPermissions) {
40
+ for (const perm of requiredPermissions) {
41
+ if (userPermissions.includes(perm)) {
42
+ return true;
43
+ }
44
+ }
45
+ return false;
46
+ }
37
47
  dispose() {
38
48
  if (this.subscription) {
39
49
  this.subscription.unsubscribe();
@@ -50,4 +60,4 @@ HasPermissionPipe.ctorParameters = () => [
50
60
  { type: DataService },
51
61
  { type: ChangeDetectorRef }
52
62
  ];
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzLXBlcm1pc3Npb24ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL3BpcGVzL2hhcy1wZXJtaXNzaW9uLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFhLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFHbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWhFOzs7Ozs7OztHQVFHO0FBS0gsTUFBTSxPQUFPLGlCQUFpQjtJQU0xQixZQUFvQixXQUF3QixFQUFVLGlCQUFvQztRQUF0RSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFMbEYsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFFdEIsZUFBVSxHQUFrQixJQUFJLENBQUM7UUFJckMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTTthQUM3QyxVQUFVLEVBQUU7YUFDWixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxTQUFTLENBQUMsVUFBa0I7UUFDeEIsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBRTtZQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztZQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUMzQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQ2pFLElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzFDLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVPLE9BQU87UUFDWCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNuQztJQUNMLENBQUM7OztZQXRDSixJQUFJLFNBQUM7Z0JBQ0YsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLElBQUksRUFBRSxLQUFLO2FBQ2Q7OztZQWRRLFdBQVc7WUFIWCxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgT25EZXN0cm95LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEEgcGlwZSB3aGljaCBjaGVja3MgdGhlIHByb3ZpZGVkIHBlcm1pc3Npb24gYWdhaW5zdCBhbGwgdGhlIHBlcm1pc3Npb25zIG9mIHRoZSBjdXJyZW50IHVzZXIuXHJcbiAqIFJldHVybnMgYHRydWVgIGlmIHRoZSBjdXJyZW50IHVzZXIgaGFzIHRoYXQgcGVybWlzc2lvbi5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgXHJcbiAqIDxidXR0b24gW2Rpc2FibGVkXT1cIiEoJ1VwZGF0ZUNhdGFsb2cnIHwgaGFzUGVybWlzc2lvbilcIj5TYXZlIENoYW5nZXM8L2J1dHRvbj5cclxuICogYGBgXHJcbiAqL1xyXG5AUGlwZSh7XHJcbiAgICBuYW1lOiAnaGFzUGVybWlzc2lvbicsXHJcbiAgICBwdXJlOiBmYWxzZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhhc1Blcm1pc3Npb25QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSwgT25EZXN0cm95IHtcclxuICAgIHByaXZhdGUgaGFzUGVybWlzc2lvbiA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBjdXJyZW50UGVybWlzc2lvbnMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcclxuICAgIHByaXZhdGUgcGVybWlzc2lvbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLCBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFBlcm1pc3Npb25zJCA9IHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50XHJcbiAgICAgICAgICAgIC51c2VyU3RhdHVzKClcclxuICAgICAgICAgICAgLm1hcFN0cmVhbShkYXRhID0+IGRhdGEudXNlclN0YXR1cy5wZXJtaXNzaW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgdHJhbnNmb3JtKHBlcm1pc3Npb246IHN0cmluZyk6IGFueSB7XHJcbiAgICAgICAgaWYgKHRoaXMucGVybWlzc2lvbiAhPT0gcGVybWlzc2lvbikge1xyXG4gICAgICAgICAgICB0aGlzLnBlcm1pc3Npb24gPSBwZXJtaXNzaW9uO1xyXG4gICAgICAgICAgICB0aGlzLmhhc1Blcm1pc3Npb24gPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5kaXNwb3NlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5jdXJyZW50UGVybWlzc2lvbnMkLnN1YnNjcmliZShwZXJtaXNzaW9ucyA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhhc1Blcm1pc3Npb24gPSBwZXJtaXNzaW9ucy5pbmNsdWRlcyhwZXJtaXNzaW9uKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzUGVybWlzc2lvbjtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmRpc3Bvc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGRpc3Bvc2UoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzLXBlcm1pc3Npb24ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvc2hhcmVkL3BpcGVzL2hhcy1wZXJtaXNzaW9uLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFhLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFHbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWhFOzs7Ozs7OztHQVFHO0FBS0gsTUFBTSxPQUFPLGlCQUFpQjtJQU0xQixZQUFvQixXQUF3QixFQUFVLGlCQUFvQztRQUF0RSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFMbEYsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFFdEIsb0JBQWUsR0FBa0IsSUFBSSxDQUFDO1FBSTFDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU07YUFDN0MsVUFBVSxFQUFFO2FBQ1osU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQXdCO1FBQzlCLE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25FLE1BQU0seUJBQXlCLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hFLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyx5QkFBeUIsRUFBRTtZQUNwRCxJQUFJLENBQUMsZUFBZSxHQUFHLHlCQUF5QixDQUFDO1lBQ2pELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQzNCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDakUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLG1CQUFtQixDQUFDLENBQUM7Z0JBQzdFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxlQUF5QixFQUFFLG1CQUE2QjtRQUM3RSxLQUFLLE1BQU0sSUFBSSxJQUFJLG1CQUFtQixFQUFFO1lBQ3BDLElBQUksZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDaEMsT0FBTyxJQUFJLENBQUM7YUFDZjtTQUNKO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVPLE9BQU87UUFDWCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNuQztJQUNMLENBQUM7OztZQWpESixJQUFJLFNBQUM7Z0JBQ0YsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLElBQUksRUFBRSxLQUFLO2FBQ2Q7OztZQWRRLFdBQVc7WUFIWCxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgT25EZXN0cm95LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UnO1xuXG4vKipcbiAqIEEgcGlwZSB3aGljaCBjaGVja3MgdGhlIHByb3ZpZGVkIHBlcm1pc3Npb24gYWdhaW5zdCBhbGwgdGhlIHBlcm1pc3Npb25zIG9mIHRoZSBjdXJyZW50IHVzZXIuXG4gKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgY3VycmVudCB1c2VyIGhhcyB0aGF0IHBlcm1pc3Npb24uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYFxuICogPGJ1dHRvbiBbZGlzYWJsZWRdPVwiISgnVXBkYXRlQ2F0YWxvZycgfCBoYXNQZXJtaXNzaW9uKVwiPlNhdmUgQ2hhbmdlczwvYnV0dG9uPlxuICogYGBgXG4gKi9cbkBQaXBlKHtcbiAgICBuYW1lOiAnaGFzUGVybWlzc2lvbicsXG4gICAgcHVyZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIEhhc1Blcm1pc3Npb25QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIGhhc1Blcm1pc3Npb24gPSBmYWxzZTtcbiAgICBwcml2YXRlIGN1cnJlbnRQZXJtaXNzaW9ucyQ6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuICAgIHByaXZhdGUgbGFzdFBlcm1pc3Npb25zOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFBlcm1pc3Npb25zJCA9IHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50XG4gICAgICAgICAgICAudXNlclN0YXR1cygpXG4gICAgICAgICAgICAubWFwU3RyZWFtKGRhdGEgPT4gZGF0YS51c2VyU3RhdHVzLnBlcm1pc3Npb25zKTtcbiAgICB9XG5cbiAgICB0cmFuc2Zvcm0oaW5wdXQ6IHN0cmluZyB8IHN0cmluZ1tdKTogYW55IHtcbiAgICAgICAgY29uc3QgcmVxdWlyZWRQZXJtaXNzaW9ucyA9IEFycmF5LmlzQXJyYXkoaW5wdXQpID8gaW5wdXQgOiBbaW5wdXRdO1xuICAgICAgICBjb25zdCByZXF1aXJlZFBlcm1pc3Npb25zU3RyaW5nID0gcmVxdWlyZWRQZXJtaXNzaW9ucy5qb2luKCcsJyk7XG4gICAgICAgIGlmICh0aGlzLmxhc3RQZXJtaXNzaW9ucyAhPT0gcmVxdWlyZWRQZXJtaXNzaW9uc1N0cmluZykge1xuICAgICAgICAgICAgdGhpcy5sYXN0UGVybWlzc2lvbnMgPSByZXF1aXJlZFBlcm1pc3Npb25zU3RyaW5nO1xuICAgICAgICAgICAgdGhpcy5oYXNQZXJtaXNzaW9uID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmRpc3Bvc2UoKTtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5jdXJyZW50UGVybWlzc2lvbnMkLnN1YnNjcmliZShwZXJtaXNzaW9ucyA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYXNQZXJtaXNzaW9uID0gdGhpcy5jaGVja1Blcm1pc3Npb25zKHBlcm1pc3Npb25zLCByZXF1aXJlZFBlcm1pc3Npb25zKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5oYXNQZXJtaXNzaW9uO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmRpc3Bvc2UoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrUGVybWlzc2lvbnModXNlclBlcm1pc3Npb25zOiBzdHJpbmdbXSwgcmVxdWlyZWRQZXJtaXNzaW9uczogc3RyaW5nW10pOiBib29sZWFuIHtcbiAgICAgICAgZm9yIChjb25zdCBwZXJtIG9mIHJlcXVpcmVkUGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIGlmICh1c2VyUGVybWlzc2lvbnMuaW5jbHVkZXMocGVybSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkaXNwb3NlKCkge1xuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=