@snabcentr/client-ui 0.2.14 → 0.2.19

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. package/esm2020/cart/cart-item-mobile/sc-cart-item-mobile.component.mjs +4 -4
  2. package/esm2020/catalog/input-quantity/sc-input-quantity.component.mjs +3 -3
  3. package/esm2020/catalog/price-card/sc-price-card.component.mjs +2 -2
  4. package/esm2020/catalog/price-warehouse-stock/sc-price-warehouse-stock.component.mjs +3 -3
  5. package/esm2020/files/services/tree-icon.service.mjs +2 -2
  6. package/esm2020/icons/sc-client-ui-icons-name.mjs +28 -44
  7. package/esm2020/validators/stepValidator.mjs +4 -6
  8. package/fesm2015/snabcentr-client-ui.mjs +39 -57
  9. package/fesm2015/snabcentr-client-ui.mjs.map +1 -1
  10. package/fesm2020/snabcentr-client-ui.mjs +39 -57
  11. package/fesm2020/snabcentr-client-ui.mjs.map +1 -1
  12. package/icons/sc-client-ui-icons-name.d.ts +0 -1
  13. package/icons/svg-pack/scIconArrowForward.svg +11 -0
  14. package/icons/svg-pack/{scIconArrowDownLargeEnd.svg → scIconArrowLargeEnd.svg} +1 -1
  15. package/icons/svg-pack/scIconArrowLargeStart.svg +12 -0
  16. package/icons/svg-pack/scIconArrowReturn.svg +2 -2
  17. package/icons/svg-pack/scIconCanopy.svg +12 -0
  18. package/icons/svg-pack/scIconCatalogBack.svg +12 -0
  19. package/icons/svg-pack/scIconFastener.svg +11 -0
  20. package/icons/svg-pack/scIconFoam.svg +11 -0
  21. package/icons/svg-pack/scIconFoamBalloon.svg +13 -0
  22. package/icons/svg-pack/scIconMosquitoNet.svg +11 -0
  23. package/icons/svg-pack/scIconPlasticProfile.svg +11 -0
  24. package/icons/svg-pack/scIconPromoMaterials.svg +14 -0
  25. package/icons/svg-pack/scIconSandwich.svg +15 -0
  26. package/icons/svg-pack/scIconSandwichPanels.svg +11 -0
  27. package/icons/svg-pack/scIconSiding.svg +14 -0
  28. package/icons/svg-pack/scIconSmile.svg +14 -0
  29. package/icons/svg-pack/scIconTemplates.svg +11 -0
  30. package/icons/svg-pack/scIconWindowsill.svg +15 -0
  31. package/package.json +1 -1
  32. package/validators/stepValidator.d.ts +2 -2
  33. package/icons/svg-pack/scIconArrowDown.svg +0 -11
  34. package/icons/svg-pack/scIconArrowDownLarge.svg +0 -11
  35. package/icons/svg-pack/scIconArrowLeft.svg +0 -11
  36. package/icons/svg-pack/scIconArrowRight.svg +0 -11
  37. package/icons/svg-pack/scIconArrowUp.svg +0 -11
  38. package/icons/svg-pack/scIconBasket.svg +0 -11
  39. package/icons/svg-pack/scIconBubble.svg +0 -11
  40. package/icons/svg-pack/scIconCancel.svg +0 -18
  41. package/icons/svg-pack/scIconCatalog.svg +0 -16
  42. package/icons/svg-pack/scIconClip.svg +0 -11
  43. package/icons/svg-pack/scIconCross.svg +0 -11
  44. package/icons/svg-pack/scIconDone.svg +0 -12
  45. package/icons/svg-pack/scIconDownloading.svg +0 -11
  46. package/icons/svg-pack/scIconEye.svg +0 -11
  47. package/icons/svg-pack/scIconFolderPlus.svg +0 -11
  48. package/icons/svg-pack/scIconHamburger.svg +0 -13
  49. package/icons/svg-pack/scIconImage.svg +0 -11
  50. package/icons/svg-pack/scIconLike.svg +0 -11
  51. package/icons/svg-pack/scIconLocation.svg +0 -11
  52. package/icons/svg-pack/scIconLogOut.svg +0 -13
  53. package/icons/svg-pack/scIconLogOut2.svg +0 -13
  54. package/icons/svg-pack/scIconMinus.svg +0 -11
  55. package/icons/svg-pack/scIconMoney2.svg +0 -11
  56. package/icons/svg-pack/scIconPhone.svg +0 -11
  57. package/icons/svg-pack/scIconPlus.svg +0 -11
  58. package/icons/svg-pack/scIconQuestion.svg +0 -11
  59. package/icons/svg-pack/scIconRefresh.svg +0 -11
  60. package/icons/svg-pack/scIconSettings.svg +0 -11
  61. package/icons/svg-pack/scIconTick.svg +0 -11
  62. package/icons/svg-pack/scIconVerticalThreeDots.svg +0 -11
  63. package/icons/svg-pack/scIconViewGrid.svg +0 -11
@@ -33,7 +33,7 @@ export class ScCartItemMobileComponent {
33
33
  /**
34
34
  * {@link FormControl} поля ввода количества товара в корзине.
35
35
  */
36
- this.quantityControl = new FormControl(0);
36
+ this.quantityControl = new FormControl(0, { updateOn: 'blur' });
37
37
  /**
38
38
  * {@link Observable} изменения количества товара в корзине.
39
39
  */
@@ -90,10 +90,10 @@ export class ScCartItemMobileComponent {
90
90
  }
91
91
  }
92
92
  ScCartItemMobileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScCartItemMobileComponent, deps: [{ token: i1.UnitsHelper }, { token: TuiPreviewDialogService }, { token: SC_URLS }, { token: SC_PATH_IMAGE_NOT_FOUND }], target: i0.ɵɵFactoryTarget.Component });
93
- ScCartItemMobileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScCartItemMobileComponent, selector: "sc-cart-item-mobile", inputs: { cartItem: "cartItem" }, outputs: { quantityValueChanges: "quantityValueChanges", clickDeleteEvent: "clickDeleteEvent", clickSettingsEvent: "clickSettingsEvent", clickCardEvent: "clickCardEvent" }, viewQueries: [{ propertyName: "specificationPreviewRef", first: true, predicate: ["specificationPreview"], descendants: true }], ngImport: i0, template: "<div class=\"ml-2 mt-2 relative p-4 gap-y-2 gap-x-4 flex flex-wrap bg-white border border-tui-base-04 shadow-sc-2 rounded-xl\">\n <ng-container *ngIf=\"cartItem && product; else skeleton\">\n <!--\n TODO: \u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u0430 \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u0430.\n <button tuiIconButton size=\"m\" icon=\"scIconVerticalThreeDots\" appearance=\"float\" tuiMode=\"onLight\" class=\"!absolute right-0 top-0\"></button>\n -->\n <button\n tuiIconButton\n size=\"m\"\n icon=\"scIconBasket\"\n appearance=\"secondary\"\n tuiMode=\"onLight\"\n (click)=\"clickDeleteEvent.emit()\"\n class=\"shadow-sc-2 !absolute -left-2 -top-2\"\n ></button>\n <div class=\"flex gap-2\">\n <div class=\"flex shrink-0 h-20 w-20 justify-center items-center overflow-hidden\">\n <img (click)=\"clickCardEvent.emit()\" [src]=\"getCardImage()\" [alt]=\"product.name\" [class.p-5]=\"!product.images?.length\" class=\"cursor-pointer\" />\n </div>\n\n <div class=\"flex flex-wrap self-center gap-x-8 gap-y-0.5\">\n <div class=\"w-[13rem]\">\n <a tuiLink (click)=\"clickCardEvent.emit()\">\n <span class=\"font-bold\">{{ product.name }}</span>\n </a>\n <div class=\"text-tui-text-02 text-xs\">\n <p>\u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}</p>\n <p *ngIf=\"product.pack\">\u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}</p>\n <a tuiLink *ngIf=\"cartItem.specificationImgUrl\" (click)=\"showSpecification()\">\u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F</a>\n <ng-template #specificationPreview let-preview>\n <tui-preview [rotatable]=\"false\" [zoomable]=\"false\">\n <img *polymorpheusOutlet=\"cartItem.specificationImgUrl as src\" alt=\"preview\" [src]=\"cartItem.specificationImgUrl\" />\n <button icon=\"tuiIconClose\" title=\"Close\" tuiIconButton tuiPreviewAction type=\"button\" (click)=\"preview.complete()\"></button>\n </tui-preview>\n </ng-template>\n </div>\n </div>\n <div class=\"flex flex-col self-center w-[10rem] gap-x-8 gap-y-0.5\">\n <span *ngIf=\"product.discount\" class=\"flex items-center text-xs text-tui-text-02\">\n <span class=\"line-through\">{{ product.discountCostString }}</span> &nbsp;\n <span class=\"text-tui-success-fill font-bold\"> -{{ product.discount.percent }}% </span>\n <tui-svg src=\"tuiIconInfoLarge\" [tuiHint]=\"discountHint\" [tuiHintShowDelay]=\"100\" tuiHintDirection=\"top\" class=\"text-tui-text-01 !text-xs !h-4\"></tui-svg>\n <ng-template #discountHint>\n <div class=\"font-bold\">{{ product.discount.name }}</div>\n <div *ngIf=\"product.discount.expiredAt as expiredAt\">\u0414\u0430\u0442\u0430 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F: {{ expiredAt }}</div>\n </ng-template>\n </span>\n <p class=\"flex flex-col items-baseline gap-x-2 font-bold\">\n <span>{{ product.costRubString }}</span>\n <span *ngIf=\"!product.priceInRub\" class=\"text-xs text-tui-text-02\">{{ product.costString }}</span>\n </p>\n <sc-price-warehouse-stock [product]=\"product\"></sc-price-warehouse-stock>\n </div>\n </div>\n </div>\n\n <div class=\"flex gap-2 items-center w-44 text-xs text-tui-text-02\">\n <!--\n TODO: \u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u0430 \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u0430.\n <button tuiIconButton (click)=\"clickSettingsEvent.emit()\" size=\"m\" icon=\"scIconSettings\" appearance=\"secondary\" tuiMode=\"onLight\"></button>\n -->\n <div>\n <ng-container *ngIf=\"unitsHelper.productIsMeasurable(product); else notMeasurable\">\n <p>\u0414\u043B\u0438\u043D\u0430: {{ cartItem.length }} {{ product.unit }}</p>\n </ng-container>\n <ng-template #notMeasurable>\n <p *ngIf=\"cartItem.length && !unitsHelper.productIsMeasurable(product)\">\u0414\u043B\u0438\u043D\u0430: {{ cartItem.length }} \u043C.</p>\n <p *ngIf=\"cartItem.width\">\u0428\u0438\u0440\u0438\u043D\u0430: {{ cartItem.width }} \u043C.</p>\n <p *ngIf=\"cartItem.height\">\u0412\u044B\u0441\u043E\u0442\u0430: {{ cartItem.height }} \u043C.</p>\n </ng-template>\n <p class=\"font-bold text-tui-text-01\">\u0418\u0442\u043E\u0433\u043E: {{ cartItem.costRub | tuiFormatNumber }} {{ 'RUB' | tuiCurrency }}</p>\n </div>\n </div>\n <div class=\"flex items-center grow justify-end\">\n <sc-input-quantity\n class=\"w-28\"\n *ngIf=\"quantityControl\"\n [formControl]=\"quantityControl\"\n [quantityUnit]=\"unitsHelper.productIsMeasurable(product) ? '\u0448\u0442' : product.quantityUnit\"\n [showCross]=\"false\"\n size=\"s\"\n [step]=\"unitsHelper.productMultiplicity(product)\"\n ></sc-input-quantity>\n </div>\n </ng-container>\n\n <ng-template #skeleton>\n <div class=\"flex gap-2 w-full\">\n <div class=\"h-20 w-20 bg-tui-base-02 rounded-xl \"></div>\n <div class=\"flex flex-col grow gap-2.5 bg-white\">\n <div class=\"w-full h-4 rounded-xl bg-tui-base-02\"></div>\n <div class=\"w-3/5 h-4 rounded-xl bg-tui-base-02\"></div>\n <div class=\"w-4/5 h-4 rounded-xl bg-tui-base-02\"></div>\n </div>\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { kind: "component", type: i4.ScInputQuantityComponent, selector: "sc-input-quantity", inputs: ["step", "quantityUnit", "showLoader", "showCross", "appearance", "isDisabled", "size"], outputs: ["clickClearEvent"] }, { kind: "component", type: i5.ScPriceWarehouseStockComponent, selector: "sc-price-warehouse-stock", inputs: ["classList", "product", "withStockHint"] }, { kind: "component", type: i3.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "directive", type: i3.TuiModeDirective, selector: "[tuiMode]", inputs: ["tuiMode"] }, { kind: "component", type: i3.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { kind: "directive", type: i3.TuiHintDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { kind: "directive", type: i3.TuiHintDriverDirective, selector: "[tuiHint]" }, { kind: "directive", type: i3.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"], exportAs: ["tuiHintHover"] }, { kind: "directive", type: i3.TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: ["tuiHintDirection"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i7.TuiPreviewComponent, selector: "tui-preview", inputs: ["zoomable", "rotatable"] }, { kind: "directive", type: i7.TuiPreviewActionDirective, selector: "[tuiPreviewAction]" }, { kind: "directive", type: i8.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "pipe", type: i9.TuiCurrencyPipe, name: "tuiCurrency" }, { kind: "pipe", type: i3.TuiFormatNumberPipe, name: "tuiFormatNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
93
+ ScCartItemMobileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScCartItemMobileComponent, selector: "sc-cart-item-mobile", inputs: { cartItem: "cartItem" }, outputs: { quantityValueChanges: "quantityValueChanges", clickDeleteEvent: "clickDeleteEvent", clickSettingsEvent: "clickSettingsEvent", clickCardEvent: "clickCardEvent" }, viewQueries: [{ propertyName: "specificationPreviewRef", first: true, predicate: ["specificationPreview"], descendants: true }], ngImport: i0, template: "<div class=\"ml-2 mt-2 relative p-4 gap-y-2 gap-x-4 flex flex-wrap bg-white border border-tui-base-04 shadow-sc-2 rounded-xl\">\n <ng-container *ngIf=\"cartItem && product; else skeleton\">\n <!--\n TODO: \u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u0430 \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u0430.\n <button tuiIconButton size=\"m\" icon=\"scIconVerticalThreeDots\" appearance=\"float\" tuiMode=\"onLight\" class=\"!absolute right-0 top-0\"></button>\n -->\n <button\n tuiIconButton\n size=\"m\"\n icon=\"tuiIconTrash2Large\"\n appearance=\"secondary\"\n tuiMode=\"onLight\"\n (click)=\"clickDeleteEvent.emit()\"\n class=\"shadow-sc-2 !absolute -left-2 -top-2\"\n ></button>\n <div class=\"flex gap-2\">\n <div class=\"flex shrink-0 h-20 w-20 justify-center items-center overflow-hidden\">\n <img (click)=\"clickCardEvent.emit()\" [src]=\"getCardImage()\" [alt]=\"product.name\" [class.p-5]=\"!product.images?.length\" class=\"cursor-pointer\" />\n </div>\n\n <div class=\"flex flex-wrap self-center gap-x-8 gap-y-0.5\">\n <div class=\"w-[13rem]\">\n <a tuiLink (click)=\"clickCardEvent.emit()\">\n <span class=\"font-bold\">{{ product.name }}</span>\n </a>\n <div class=\"text-tui-text-02 text-xs\">\n <p>\u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}</p>\n <p *ngIf=\"product.pack\">\u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}</p>\n <a tuiLink *ngIf=\"cartItem.specificationImgUrl\" (click)=\"showSpecification()\">\u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F</a>\n <ng-template #specificationPreview let-preview>\n <tui-preview [rotatable]=\"false\" [zoomable]=\"false\">\n <img *polymorpheusOutlet=\"cartItem.specificationImgUrl as src\" alt=\"preview\" [src]=\"cartItem.specificationImgUrl\" />\n <button icon=\"tuiIconClose\" title=\"Close\" tuiIconButton tuiPreviewAction type=\"button\" (click)=\"preview.complete()\"></button>\n </tui-preview>\n </ng-template>\n </div>\n </div>\n <div class=\"flex flex-col self-center w-[10rem] gap-x-8 gap-y-0.5\">\n <span *ngIf=\"product.discount\" class=\"flex items-center text-xs text-tui-text-02\">\n <span class=\"line-through\">{{ product.discountCostString }}</span> &nbsp;\n <span class=\"text-tui-success-fill font-bold\"> -{{ product.discount.percent }}% </span>\n <tui-svg src=\"tuiIconInfoLarge\" [tuiHint]=\"discountHint\" [tuiHintShowDelay]=\"100\" tuiHintDirection=\"top\" class=\"text-tui-text-01 !text-xs !h-4\"></tui-svg>\n <ng-template #discountHint>\n <div class=\"font-bold\">{{ product.discount.name }}</div>\n <div *ngIf=\"product.discount.expiredAt as expiredAt\">\u0414\u0430\u0442\u0430 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F: {{ expiredAt }}</div>\n </ng-template>\n </span>\n <p class=\"flex flex-col items-baseline gap-x-2 font-bold\">\n <span>{{ product.costRubString }}</span>\n <span *ngIf=\"!product.priceInRub\" class=\"text-xs text-tui-text-02\">{{ product.costString }}</span>\n </p>\n <sc-price-warehouse-stock [product]=\"product\"></sc-price-warehouse-stock>\n </div>\n </div>\n </div>\n\n <div class=\"flex gap-2 items-center w-44 text-xs text-tui-text-02\">\n <!--\n TODO: \u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u0430 \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u0430.\n <button tuiIconButton (click)=\"clickSettingsEvent.emit()\" size=\"m\" icon=\"scIconSettings\" appearance=\"secondary\" tuiMode=\"onLight\"></button>\n -->\n <div>\n <ng-container *ngIf=\"unitsHelper.productIsMeasurable(product); else notMeasurable\">\n <p>\u0414\u043B\u0438\u043D\u0430: {{ cartItem.length }} {{ product.unit }}</p>\n </ng-container>\n <ng-template #notMeasurable>\n <p *ngIf=\"cartItem.length && !unitsHelper.productIsMeasurable(product)\">\u0414\u043B\u0438\u043D\u0430: {{ cartItem.length }} \u043C.</p>\n <p *ngIf=\"cartItem.width\">\u0428\u0438\u0440\u0438\u043D\u0430: {{ cartItem.width }} \u043C.</p>\n <p *ngIf=\"cartItem.height\">\u0412\u044B\u0441\u043E\u0442\u0430: {{ cartItem.height }} \u043C.</p>\n </ng-template>\n <p class=\"font-bold text-tui-text-01\">\u0418\u0442\u043E\u0433\u043E: {{ cartItem.costRub | tuiFormatNumber }} {{ 'RUB' | tuiCurrency }}</p>\n </div>\n </div>\n <div class=\"flex items-center grow justify-end\">\n <sc-input-quantity\n class=\"w-28\"\n *ngIf=\"quantityControl\"\n [formControl]=\"quantityControl\"\n [quantityUnit]=\"unitsHelper.productIsMeasurable(product) ? '\u0448\u0442' : product.quantityUnit\"\n [showCross]=\"false\"\n size=\"s\"\n [step]=\"unitsHelper.productMultiplicity(product)\"\n ></sc-input-quantity>\n </div>\n </ng-container>\n\n <ng-template #skeleton>\n <div class=\"flex gap-2 w-full\">\n <div class=\"h-20 w-20 bg-tui-base-02 rounded-xl \"></div>\n <div class=\"flex flex-col grow gap-2.5 bg-white\">\n <div class=\"w-full h-4 rounded-xl bg-tui-base-02\"></div>\n <div class=\"w-3/5 h-4 rounded-xl bg-tui-base-02\"></div>\n <div class=\"w-4/5 h-4 rounded-xl bg-tui-base-02\"></div>\n </div>\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { kind: "component", type: i4.ScInputQuantityComponent, selector: "sc-input-quantity", inputs: ["step", "quantityUnit", "showLoader", "showCross", "appearance", "isDisabled", "size"], outputs: ["clickClearEvent"] }, { kind: "component", type: i5.ScPriceWarehouseStockComponent, selector: "sc-price-warehouse-stock", inputs: ["classList", "product", "withStockHint"] }, { kind: "component", type: i3.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "directive", type: i3.TuiModeDirective, selector: "[tuiMode]", inputs: ["tuiMode"] }, { kind: "component", type: i3.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { kind: "directive", type: i3.TuiHintDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { kind: "directive", type: i3.TuiHintDriverDirective, selector: "[tuiHint]" }, { kind: "directive", type: i3.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"], exportAs: ["tuiHintHover"] }, { kind: "directive", type: i3.TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: ["tuiHintDirection"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i7.TuiPreviewComponent, selector: "tui-preview", inputs: ["zoomable", "rotatable"] }, { kind: "directive", type: i7.TuiPreviewActionDirective, selector: "[tuiPreviewAction]" }, { kind: "directive", type: i8.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "pipe", type: i9.TuiCurrencyPipe, name: "tuiCurrency" }, { kind: "pipe", type: i3.TuiFormatNumberPipe, name: "tuiFormatNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
94
94
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScCartItemMobileComponent, decorators: [{
95
95
  type: Component,
96
- args: [{ selector: 'sc-cart-item-mobile', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ml-2 mt-2 relative p-4 gap-y-2 gap-x-4 flex flex-wrap bg-white border border-tui-base-04 shadow-sc-2 rounded-xl\">\n <ng-container *ngIf=\"cartItem && product; else skeleton\">\n <!--\n TODO: \u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u0430 \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u0430.\n <button tuiIconButton size=\"m\" icon=\"scIconVerticalThreeDots\" appearance=\"float\" tuiMode=\"onLight\" class=\"!absolute right-0 top-0\"></button>\n -->\n <button\n tuiIconButton\n size=\"m\"\n icon=\"scIconBasket\"\n appearance=\"secondary\"\n tuiMode=\"onLight\"\n (click)=\"clickDeleteEvent.emit()\"\n class=\"shadow-sc-2 !absolute -left-2 -top-2\"\n ></button>\n <div class=\"flex gap-2\">\n <div class=\"flex shrink-0 h-20 w-20 justify-center items-center overflow-hidden\">\n <img (click)=\"clickCardEvent.emit()\" [src]=\"getCardImage()\" [alt]=\"product.name\" [class.p-5]=\"!product.images?.length\" class=\"cursor-pointer\" />\n </div>\n\n <div class=\"flex flex-wrap self-center gap-x-8 gap-y-0.5\">\n <div class=\"w-[13rem]\">\n <a tuiLink (click)=\"clickCardEvent.emit()\">\n <span class=\"font-bold\">{{ product.name }}</span>\n </a>\n <div class=\"text-tui-text-02 text-xs\">\n <p>\u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}</p>\n <p *ngIf=\"product.pack\">\u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}</p>\n <a tuiLink *ngIf=\"cartItem.specificationImgUrl\" (click)=\"showSpecification()\">\u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F</a>\n <ng-template #specificationPreview let-preview>\n <tui-preview [rotatable]=\"false\" [zoomable]=\"false\">\n <img *polymorpheusOutlet=\"cartItem.specificationImgUrl as src\" alt=\"preview\" [src]=\"cartItem.specificationImgUrl\" />\n <button icon=\"tuiIconClose\" title=\"Close\" tuiIconButton tuiPreviewAction type=\"button\" (click)=\"preview.complete()\"></button>\n </tui-preview>\n </ng-template>\n </div>\n </div>\n <div class=\"flex flex-col self-center w-[10rem] gap-x-8 gap-y-0.5\">\n <span *ngIf=\"product.discount\" class=\"flex items-center text-xs text-tui-text-02\">\n <span class=\"line-through\">{{ product.discountCostString }}</span> &nbsp;\n <span class=\"text-tui-success-fill font-bold\"> -{{ product.discount.percent }}% </span>\n <tui-svg src=\"tuiIconInfoLarge\" [tuiHint]=\"discountHint\" [tuiHintShowDelay]=\"100\" tuiHintDirection=\"top\" class=\"text-tui-text-01 !text-xs !h-4\"></tui-svg>\n <ng-template #discountHint>\n <div class=\"font-bold\">{{ product.discount.name }}</div>\n <div *ngIf=\"product.discount.expiredAt as expiredAt\">\u0414\u0430\u0442\u0430 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F: {{ expiredAt }}</div>\n </ng-template>\n </span>\n <p class=\"flex flex-col items-baseline gap-x-2 font-bold\">\n <span>{{ product.costRubString }}</span>\n <span *ngIf=\"!product.priceInRub\" class=\"text-xs text-tui-text-02\">{{ product.costString }}</span>\n </p>\n <sc-price-warehouse-stock [product]=\"product\"></sc-price-warehouse-stock>\n </div>\n </div>\n </div>\n\n <div class=\"flex gap-2 items-center w-44 text-xs text-tui-text-02\">\n <!--\n TODO: \u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u0430 \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u0430.\n <button tuiIconButton (click)=\"clickSettingsEvent.emit()\" size=\"m\" icon=\"scIconSettings\" appearance=\"secondary\" tuiMode=\"onLight\"></button>\n -->\n <div>\n <ng-container *ngIf=\"unitsHelper.productIsMeasurable(product); else notMeasurable\">\n <p>\u0414\u043B\u0438\u043D\u0430: {{ cartItem.length }} {{ product.unit }}</p>\n </ng-container>\n <ng-template #notMeasurable>\n <p *ngIf=\"cartItem.length && !unitsHelper.productIsMeasurable(product)\">\u0414\u043B\u0438\u043D\u0430: {{ cartItem.length }} \u043C.</p>\n <p *ngIf=\"cartItem.width\">\u0428\u0438\u0440\u0438\u043D\u0430: {{ cartItem.width }} \u043C.</p>\n <p *ngIf=\"cartItem.height\">\u0412\u044B\u0441\u043E\u0442\u0430: {{ cartItem.height }} \u043C.</p>\n </ng-template>\n <p class=\"font-bold text-tui-text-01\">\u0418\u0442\u043E\u0433\u043E: {{ cartItem.costRub | tuiFormatNumber }} {{ 'RUB' | tuiCurrency }}</p>\n </div>\n </div>\n <div class=\"flex items-center grow justify-end\">\n <sc-input-quantity\n class=\"w-28\"\n *ngIf=\"quantityControl\"\n [formControl]=\"quantityControl\"\n [quantityUnit]=\"unitsHelper.productIsMeasurable(product) ? '\u0448\u0442' : product.quantityUnit\"\n [showCross]=\"false\"\n size=\"s\"\n [step]=\"unitsHelper.productMultiplicity(product)\"\n ></sc-input-quantity>\n </div>\n </ng-container>\n\n <ng-template #skeleton>\n <div class=\"flex gap-2 w-full\">\n <div class=\"h-20 w-20 bg-tui-base-02 rounded-xl \"></div>\n <div class=\"flex flex-col grow gap-2.5 bg-white\">\n <div class=\"w-full h-4 rounded-xl bg-tui-base-02\"></div>\n <div class=\"w-3/5 h-4 rounded-xl bg-tui-base-02\"></div>\n <div class=\"w-4/5 h-4 rounded-xl bg-tui-base-02\"></div>\n </div>\n </div>\n </ng-template>\n</div>\n" }]
96
+ args: [{ selector: 'sc-cart-item-mobile', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ml-2 mt-2 relative p-4 gap-y-2 gap-x-4 flex flex-wrap bg-white border border-tui-base-04 shadow-sc-2 rounded-xl\">\n <ng-container *ngIf=\"cartItem && product; else skeleton\">\n <!--\n TODO: \u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u0430 \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u0430.\n <button tuiIconButton size=\"m\" icon=\"scIconVerticalThreeDots\" appearance=\"float\" tuiMode=\"onLight\" class=\"!absolute right-0 top-0\"></button>\n -->\n <button\n tuiIconButton\n size=\"m\"\n icon=\"tuiIconTrash2Large\"\n appearance=\"secondary\"\n tuiMode=\"onLight\"\n (click)=\"clickDeleteEvent.emit()\"\n class=\"shadow-sc-2 !absolute -left-2 -top-2\"\n ></button>\n <div class=\"flex gap-2\">\n <div class=\"flex shrink-0 h-20 w-20 justify-center items-center overflow-hidden\">\n <img (click)=\"clickCardEvent.emit()\" [src]=\"getCardImage()\" [alt]=\"product.name\" [class.p-5]=\"!product.images?.length\" class=\"cursor-pointer\" />\n </div>\n\n <div class=\"flex flex-wrap self-center gap-x-8 gap-y-0.5\">\n <div class=\"w-[13rem]\">\n <a tuiLink (click)=\"clickCardEvent.emit()\">\n <span class=\"font-bold\">{{ product.name }}</span>\n </a>\n <div class=\"text-tui-text-02 text-xs\">\n <p>\u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}</p>\n <p *ngIf=\"product.pack\">\u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}</p>\n <a tuiLink *ngIf=\"cartItem.specificationImgUrl\" (click)=\"showSpecification()\">\u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F</a>\n <ng-template #specificationPreview let-preview>\n <tui-preview [rotatable]=\"false\" [zoomable]=\"false\">\n <img *polymorpheusOutlet=\"cartItem.specificationImgUrl as src\" alt=\"preview\" [src]=\"cartItem.specificationImgUrl\" />\n <button icon=\"tuiIconClose\" title=\"Close\" tuiIconButton tuiPreviewAction type=\"button\" (click)=\"preview.complete()\"></button>\n </tui-preview>\n </ng-template>\n </div>\n </div>\n <div class=\"flex flex-col self-center w-[10rem] gap-x-8 gap-y-0.5\">\n <span *ngIf=\"product.discount\" class=\"flex items-center text-xs text-tui-text-02\">\n <span class=\"line-through\">{{ product.discountCostString }}</span> &nbsp;\n <span class=\"text-tui-success-fill font-bold\"> -{{ product.discount.percent }}% </span>\n <tui-svg src=\"tuiIconInfoLarge\" [tuiHint]=\"discountHint\" [tuiHintShowDelay]=\"100\" tuiHintDirection=\"top\" class=\"text-tui-text-01 !text-xs !h-4\"></tui-svg>\n <ng-template #discountHint>\n <div class=\"font-bold\">{{ product.discount.name }}</div>\n <div *ngIf=\"product.discount.expiredAt as expiredAt\">\u0414\u0430\u0442\u0430 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F: {{ expiredAt }}</div>\n </ng-template>\n </span>\n <p class=\"flex flex-col items-baseline gap-x-2 font-bold\">\n <span>{{ product.costRubString }}</span>\n <span *ngIf=\"!product.priceInRub\" class=\"text-xs text-tui-text-02\">{{ product.costString }}</span>\n </p>\n <sc-price-warehouse-stock [product]=\"product\"></sc-price-warehouse-stock>\n </div>\n </div>\n </div>\n\n <div class=\"flex gap-2 items-center w-44 text-xs text-tui-text-02\">\n <!--\n TODO: \u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u0430 \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u0430.\n <button tuiIconButton (click)=\"clickSettingsEvent.emit()\" size=\"m\" icon=\"scIconSettings\" appearance=\"secondary\" tuiMode=\"onLight\"></button>\n -->\n <div>\n <ng-container *ngIf=\"unitsHelper.productIsMeasurable(product); else notMeasurable\">\n <p>\u0414\u043B\u0438\u043D\u0430: {{ cartItem.length }} {{ product.unit }}</p>\n </ng-container>\n <ng-template #notMeasurable>\n <p *ngIf=\"cartItem.length && !unitsHelper.productIsMeasurable(product)\">\u0414\u043B\u0438\u043D\u0430: {{ cartItem.length }} \u043C.</p>\n <p *ngIf=\"cartItem.width\">\u0428\u0438\u0440\u0438\u043D\u0430: {{ cartItem.width }} \u043C.</p>\n <p *ngIf=\"cartItem.height\">\u0412\u044B\u0441\u043E\u0442\u0430: {{ cartItem.height }} \u043C.</p>\n </ng-template>\n <p class=\"font-bold text-tui-text-01\">\u0418\u0442\u043E\u0433\u043E: {{ cartItem.costRub | tuiFormatNumber }} {{ 'RUB' | tuiCurrency }}</p>\n </div>\n </div>\n <div class=\"flex items-center grow justify-end\">\n <sc-input-quantity\n class=\"w-28\"\n *ngIf=\"quantityControl\"\n [formControl]=\"quantityControl\"\n [quantityUnit]=\"unitsHelper.productIsMeasurable(product) ? '\u0448\u0442' : product.quantityUnit\"\n [showCross]=\"false\"\n size=\"s\"\n [step]=\"unitsHelper.productMultiplicity(product)\"\n ></sc-input-quantity>\n </div>\n </ng-container>\n\n <ng-template #skeleton>\n <div class=\"flex gap-2 w-full\">\n <div class=\"h-20 w-20 bg-tui-base-02 rounded-xl \"></div>\n <div class=\"flex flex-col grow gap-2.5 bg-white\">\n <div class=\"w-full h-4 rounded-xl bg-tui-base-02\"></div>\n <div class=\"w-3/5 h-4 rounded-xl bg-tui-base-02\"></div>\n <div class=\"w-4/5 h-4 rounded-xl bg-tui-base-02\"></div>\n </div>\n </div>\n </ng-template>\n</div>\n" }]
97
97
  }], ctorParameters: function () { return [{ type: i1.UnitsHelper }, { type: i7.TuiPreviewDialogService, decorators: [{
98
98
  type: Inject,
99
99
  args: [TuiPreviewDialogService]
@@ -117,4 +117,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
117
117
  }], clickCardEvent: [{
118
118
  type: Output
119
119
  }] } });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY2FydC1pdGVtLW1vYmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY2FydC9jYXJ0LWl0ZW0tbW9iaWxlL3NjLWNhcnQtaXRlbS1tb2JpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhcnQvY2FydC1pdGVtLW1vYmlsZS9zYy1jYXJ0LWl0ZW0tbW9iaWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFlLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE9BQU8sRUFBa0MsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRyxPQUFPLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7OztBQUlsRTs7R0FFRztBQU1ILE1BQU0sT0FBTyx5QkFBeUI7SUFrRWxDOzs7Ozs7O09BT0c7SUFDSCxZQUNvQixXQUF3QixFQUV2QixvQkFBNkMsRUFDNUIsSUFBYSxFQUNHLGlCQUF5QjtRQUozRCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUV2Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXlCO1FBQzVCLFNBQUksR0FBSixJQUFJLENBQVM7UUFDRyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQVE7UUFuRS9FOztXQUVHO1FBQ0ksb0JBQWUsR0FBK0IsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFvQnhFOztXQUVHO1FBRUkseUJBQW9CLEdBQThCLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV6Rzs7V0FFRztRQUVJLHFCQUFnQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXZFOztXQUVHO1FBRUksdUJBQWtCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFekU7O1dBRUc7UUFFSSxtQkFBYyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO0lBdUJsRSxDQUFDO0lBL0RKOztPQUVHO0lBQ0gsSUFDVyxRQUFRLENBQUMsSUFBNEI7UUFDNUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDbEQ7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQTBCRDs7T0FFRztJQUNILElBQVcsT0FBTztRQUNkLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUM7SUFDbEMsQ0FBQztJQWtCRCxrQkFBa0I7SUFDWCxRQUFRO1FBQ1gsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7T0FFRztJQUNJLGlCQUFpQjtRQUNwQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuRixDQUFDO0lBRUQ7O09BRUc7SUFDSSxZQUFZO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUM3RyxDQUFDOztzSEFuR1EseUJBQXlCLDZDQTRFdEIsdUJBQXVCLGFBRXZCLE9BQU8sYUFDUCx1QkFBdUI7MEdBL0UxQix5QkFBeUIsMllDaEJ0Qyw2NE1BaUdBOzJGRGpGYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0kscUJBQXFCLG1CQUVkLHVCQUF1QixDQUFDLE1BQU07OzBCQThFMUMsTUFBTTsyQkFBQyx1QkFBdUI7OzBCQUU5QixNQUFNOzJCQUFDLE9BQU87OzBCQUNkLE1BQU07MkJBQUMsdUJBQXVCOzRDQXJFbEIsdUJBQXVCO3NCQUR2QyxTQUFTO3VCQUFDLHNCQUFzQjtnQkFZdEIsUUFBUTtzQkFEbEIsS0FBSztnQkFtQkMsb0JBQW9CO3NCQUQxQixNQUFNO2dCQU9BLGdCQUFnQjtzQkFEdEIsTUFBTTtnQkFPQSxrQkFBa0I7c0JBRHhCLE1BQU07Z0JBT0EsY0FBYztzQkFEcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU0NfUEFUSF9JTUFHRV9OT1RfRk9VTkQsIFNDX1VSTFMsIFNjQ2FydEl0ZW0sIFNjSVVybHMsIFNjUHJvZHVjdCB9IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgc2tpcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVHVpUHJldmlld0RpYWxvZ1NlcnZpY2UgfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tcHJldmlldyc7XG5pbXBvcnQgeyBUdWlEaWFsb2dDb250ZXh0IH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHsgVW5pdHNIZWxwZXIgfSBmcm9tICcuLi8uLi9oZWxwZXJzL3NjLXVuaXRzLWhlbHBlcic7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINC60LDRgNGC0L7Rh9C60Lgg0Y3Qu9C10LzQtdC90YLQsCDQutC+0YDQt9C40L3Riy5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzYy1jYXJ0LWl0ZW0tbW9iaWxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2MtY2FydC1pdGVtLW1vYmlsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNjQ2FydEl0ZW1Nb2JpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKlxuICAgICAqINCt0LvQtdC80LXQvdGCINC60L7RgNC30LjQvdGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2NhcnRJdGVtPzogU2NDYXJ0SXRlbTtcblxuICAgIC8qKlxuICAgICAqINCh0YHRi9C70LrQsCDQvdCwINC/0YDQtdC00YHRgtCw0LLQu9C10L3QuNC1INGB0L/QtdGG0LjRhNC40LrQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdzcGVjaWZpY2F0aW9uUHJldmlldycpXG4gICAgcHJpdmF0ZSByZWFkb25seSBzcGVjaWZpY2F0aW9uUHJldmlld1JlZj86IFRlbXBsYXRlUmVmPFR1aURpYWxvZ0NvbnRleHQ+O1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIEZvcm1Db250cm9sfSDQv9C+0LvRjyDQstCy0L7QtNCwINC60L7Qu9C40YfQtdGB0YLQstCwINGC0L7QstCw0YDQsCDQsiDQutC+0YDQt9C40L3QtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcXVhbnRpdHlDb250cm9sOiBGb3JtQ29udHJvbDxudW1iZXIgfCBudWxsPiA9IG5ldyBGb3JtQ29udHJvbCgwKTtcblxuICAgIC8qKlxuICAgICAqINCt0LvQtdC80LXQvdGCINC60L7RgNC30LjQvdGLLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBjYXJ0SXRlbShkYXRhOiBTY0NhcnRJdGVtIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX2NhcnRJdGVtID0gZGF0YTtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIHRoaXMucXVhbnRpdHlDb250cm9sLnBhdGNoVmFsdWUoZGF0YS5xdWFudGl0eSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQrdC70LXQvNC10L3RgiDQutC+0YDQt9C40L3Riy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGNhcnRJdGVtKCk6IFNjQ2FydEl0ZW0gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2FydEl0ZW07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDQutC+0LvQuNGH0LXRgdGC0LLQsCDRgtC+0LLQsNGA0LAg0LIg0LrQvtGA0LfQuNC90LUuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHF1YW50aXR5VmFsdWVDaGFuZ2VzOiBPYnNlcnZhYmxlPG51bWJlciB8IG51bGw+ID0gdGhpcy5xdWFudGl0eUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoc2tpcCgxKSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDQvdCw0LbQsNGC0LjRjyDQvdCwINC60L3QvtC/0LrRgyBcItCj0LTQsNC70LjRgtGMINC40Lcg0LrQvtGA0LfQuNC90YtcIi5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY2xpY2tEZWxldGVFdmVudDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICog0KHQvtCx0YvRgtC40LUg0L3QsNC20LDRgtC40Y8g0L3QsCDQutC90L7Qv9C60YMgXCLQo9C00LDQu9C40YLRjCDQuNC3INC60L7RgNC30LjQvdGLXCIuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGNsaWNrU2V0dGluZ3NFdmVudDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICog0KHQvtCx0YvRgtC40LUg0L3QsNC20LDRgtC40Y8g0L3QsCDQutCw0YDRgtC+0YfQutGDLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBjbGlja0NhcmRFdmVudDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC+0LTRg9C60YIg0Y3Qu9C10LzQtdC90YLQsCDQutC+0YDQt9C40L3Riy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHByb2R1Y3QoKTogU2NQcm9kdWN0IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FydEl0ZW0/LnByb2R1Y3Q7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNC40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NDYXJ0SXRlbU1vYmlsZUNvbXBvbmVudH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdW5pdHNIZWxwZXIg0J7QsdGK0LXQutGCLdGF0Y3Qu9C/0LXRgCDQtNC70Y8g0YDQsNCx0L7RgtGLINGB0L4g0LfQvdCw0YfQtdC90LjRj9C80Lgg0LXQtNC40L3QuNGGINC40LfQvNC10YDQtdC90LjRjyDRgtC+0LLQsNGA0LAuXG4gICAgICogQHBhcmFtIHByZXZpZXdEaWFsb2dTZXJ2aWNlINCh0LXRgNCy0LjRgSDQtNC40LDQu9C+0LPQvtCy0L7Qs9C+INC+0LrQvdCwINC/0YDQtdC00LLQsNGA0LjRgtC10LvRjNC90L7Qs9C+INC/0YDQvtGB0LzQvtGC0YDQsC5cbiAgICAgKiBAcGFyYW0gdXJscyDQodC/0LjRgdC+0Log0YHRgdGL0LvQvtC6INC90LAg0YDQsNC30LTQtdC70YsgYmFja2VuZCdhLlxuICAgICAqIEBwYXJhbSBwYXRoSW1hZ2VOb3RGb3VuZCDQn9GD0YLRjCDQtNC+INC40LfQvtCx0YDQsNC20LXQvdC40Y8gJ9Ci0L7QstCw0YAg0L3QtSDQvdCw0LnQtNC10L0nLlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHVuaXRzSGVscGVyOiBVbml0c0hlbHBlcixcbiAgICAgICAgQEluamVjdChUdWlQcmV2aWV3RGlhbG9nU2VydmljZSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBwcmV2aWV3RGlhbG9nU2VydmljZTogVHVpUHJldmlld0RpYWxvZ1NlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoU0NfVVJMUykgcHJpdmF0ZSByZWFkb25seSB1cmxzOiBTY0lVcmxzLFxuICAgICAgICBASW5qZWN0KFNDX1BBVEhfSU1BR0VfTk9UX0ZPVU5EKSBwcml2YXRlIHJlYWRvbmx5IHBhdGhJbWFnZU5vdEZvdW5kOiBzdHJpbmdcbiAgICApIHt9XG5cbiAgICAvKiogQGluaGVyaXREb2MgKi9cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucXVhbnRpdHlWYWx1ZUNoYW5nZXMgPSB0aGlzLnF1YW50aXR5Q29udHJvbC52YWx1ZUNoYW5nZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7RgtC+0LHRgNCw0LfQuNGC0Ywg0YHQv9C10YbQuNGE0LjQutCw0YbQuNGOLlxuICAgICAqL1xuICAgIHB1YmxpYyBzaG93U3BlY2lmaWNhdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcmV2aWV3RGlhbG9nU2VydmljZS5vcGVuKHRoaXMuc3BlY2lmaWNhdGlvblByZXZpZXdSZWYgfHwgJycpLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0YHRi9C70LrRgyDQvdCwINC40LfQvtCx0YDQsNC20LXQvdC40LUg0LrQsNGA0YLQvtGH0LrQuCDRgtC+0LLQsNGA0LAuXG4gICAgICovXG4gICAgcHVibGljIGdldENhcmRJbWFnZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9kdWN0Py5nZXRJbWFnZSh0aGlzLnVybHMuaW1nU2VydmVyVXJsKSA/PyB0aGlzLnVybHMuaW1nU2VydmVyVXJsICsgdGhpcy5wYXRoSW1hZ2VOb3RGb3VuZDtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWwtMiBtdC0yIHJlbGF0aXZlIHAtNCBnYXAteS0yIGdhcC14LTQgZmxleCBmbGV4LXdyYXAgYmctd2hpdGUgYm9yZGVyIGJvcmRlci10dWktYmFzZS0wNCBzaGFkb3ctc2MtMiByb3VuZGVkLXhsXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhcnRJdGVtICYmIHByb2R1Y3Q7IGVsc2Ugc2tlbGV0b25cIj5cbiAgICAgICAgPCEtLVxuICAgICAgICBUT0RPOiDQndC10L7QsdGF0L7QtNC40LzQsCDRgNC10LDQu9C40LfQsNGG0LjRjyDRhNGD0L3QutGG0LjQvtC90LDQu9CwLlxuICAgICAgICA8YnV0dG9uIHR1aUljb25CdXR0b24gc2l6ZT1cIm1cIiBpY29uPVwic2NJY29uVmVydGljYWxUaHJlZURvdHNcIiBhcHBlYXJhbmNlPVwiZmxvYXRcIiB0dWlNb2RlPVwib25MaWdodFwiIGNsYXNzPVwiIWFic29sdXRlIHJpZ2h0LTAgdG9wLTBcIj48L2J1dHRvbj5cbiAgICAgICAgLS0+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR1aUljb25CdXR0b25cbiAgICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAgIGljb249XCJzY0ljb25CYXNrZXRcIlxuICAgICAgICAgICAgYXBwZWFyYW5jZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICB0dWlNb2RlPVwib25MaWdodFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tEZWxldGVFdmVudC5lbWl0KClcIlxuICAgICAgICAgICAgY2xhc3M9XCJzaGFkb3ctc2MtMiAhYWJzb2x1dGUgLWxlZnQtMiAtdG9wLTJcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBzaHJpbmstMCBoLTIwIHctMjAganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIG92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgICAgICAgIDxpbWcgKGNsaWNrKT1cImNsaWNrQ2FyZEV2ZW50LmVtaXQoKVwiIFtzcmNdPVwiZ2V0Q2FyZEltYWdlKClcIiBbYWx0XT1cInByb2R1Y3QubmFtZVwiIFtjbGFzcy5wLTVdPVwiIXByb2R1Y3QuaW1hZ2VzPy5sZW5ndGhcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgc2VsZi1jZW50ZXIgZ2FwLXgtOCBnYXAteS0wLjVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1bMTNyZW1dXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIHR1aUxpbmsgKGNsaWNrKT1cImNsaWNrQ2FyZEV2ZW50LmVtaXQoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGRcIj57eyBwcm9kdWN0Lm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtdHVpLXRleHQtMDIgdGV4dC14c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+0JDRgNGC0LjQutGD0Ls6IHt7IHByb2R1Y3QuY29kZSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwicHJvZHVjdC5wYWNrXCI+0J3QvtGA0LzQsCDRg9C/0LDQutC+0LLQutC4OiB7eyBwcm9kdWN0LnBhY2sgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSB0dWlMaW5rICpuZ0lmPVwiY2FydEl0ZW0uc3BlY2lmaWNhdGlvbkltZ1VybFwiIChjbGljayk9XCJzaG93U3BlY2lmaWNhdGlvbigpXCI+0KHQv9C10YbQuNGE0LjQutCw0YbQuNGPPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzcGVjaWZpY2F0aW9uUHJldmlldyBsZXQtcHJldmlldz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHVpLXByZXZpZXcgW3JvdGF0YWJsZV09XCJmYWxzZVwiIFt6b29tYWJsZV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjYXJ0SXRlbS5zcGVjaWZpY2F0aW9uSW1nVXJsIGFzIHNyY1wiIGFsdD1cInByZXZpZXdcIiBbc3JjXT1cImNhcnRJdGVtLnNwZWNpZmljYXRpb25JbWdVcmxcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGljb249XCJ0dWlJY29uQ2xvc2VcIiB0aXRsZT1cIkNsb3NlXCIgdHVpSWNvbkJ1dHRvbiB0dWlQcmV2aWV3QWN0aW9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwicHJldmlldy5jb21wbGV0ZSgpXCI+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90dWktcHJldmlldz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHNlbGYtY2VudGVyIHctWzEwcmVtXSBnYXAteC04IGdhcC15LTAuNVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInByb2R1Y3QuZGlzY291bnRcIiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHRleHQteHMgdGV4dC10dWktdGV4dC0wMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsaW5lLXRocm91Z2hcIj57eyBwcm9kdWN0LmRpc2NvdW50Q29zdFN0cmluZyB9fTwvc3Bhbj4gJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHVpLXN1Y2Nlc3MtZmlsbCBmb250LWJvbGRcIj4gLXt7IHByb2R1Y3QuZGlzY291bnQucGVyY2VudCB9fSUgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHR1aS1zdmcgc3JjPVwidHVpSWNvbkluZm9MYXJnZVwiIFt0dWlIaW50XT1cImRpc2NvdW50SGludFwiIFt0dWlIaW50U2hvd0RlbGF5XT1cIjEwMFwiIHR1aUhpbnREaXJlY3Rpb249XCJ0b3BcIiBjbGFzcz1cInRleHQtdHVpLXRleHQtMDEgIXRleHQteHMgIWgtNFwiPjwvdHVpLXN2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGlzY291bnRIaW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LWJvbGRcIj57eyBwcm9kdWN0LmRpc2NvdW50Lm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicHJvZHVjdC5kaXNjb3VudC5leHBpcmVkQXQgYXMgZXhwaXJlZEF0XCI+0JTQsNGC0LAg0L7QutC+0L3Rh9Cw0L3QuNGPOiB7eyBleHBpcmVkQXQgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWJhc2VsaW5lIGdhcC14LTIgZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBwcm9kdWN0LmNvc3RSdWJTdHJpbmcgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFwcm9kdWN0LnByaWNlSW5SdWJcIiBjbGFzcz1cInRleHQteHMgdGV4dC10dWktdGV4dC0wMlwiPnt7IHByb2R1Y3QuY29zdFN0cmluZyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8c2MtcHJpY2Utd2FyZWhvdXNlLXN0b2NrIFtwcm9kdWN0XT1cInByb2R1Y3RcIj48L3NjLXByaWNlLXdhcmVob3VzZS1zdG9jaz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMiBpdGVtcy1jZW50ZXIgdy00NCB0ZXh0LXhzIHRleHQtdHVpLXRleHQtMDJcIj5cbiAgICAgICAgICAgIDwhLS1cbiAgICAgICAgICAgIFRPRE86INCd0LXQvtCx0YXQvtC00LjQvNCwINGA0LXQsNC70LjQt9Cw0YbQuNGPINGE0YPQvdC60YbQuNC+0L3QsNC70LAuXG4gICAgICAgICAgICA8YnV0dG9uIHR1aUljb25CdXR0b24gKGNsaWNrKT1cImNsaWNrU2V0dGluZ3NFdmVudC5lbWl0KClcIiBzaXplPVwibVwiIGljb249XCJzY0ljb25TZXR0aW5nc1wiIGFwcGVhcmFuY2U9XCJzZWNvbmRhcnlcIiB0dWlNb2RlPVwib25MaWdodFwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgLS0+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ1bml0c0hlbHBlci5wcm9kdWN0SXNNZWFzdXJhYmxlKHByb2R1Y3QpOyBlbHNlIG5vdE1lYXN1cmFibGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHA+0JTQu9C40L3QsDoge3sgY2FydEl0ZW0ubGVuZ3RoIH19IHt7IHByb2R1Y3QudW5pdCB9fTwvcD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vdE1lYXN1cmFibGU+XG4gICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiY2FydEl0ZW0ubGVuZ3RoICYmICF1bml0c0hlbHBlci5wcm9kdWN0SXNNZWFzdXJhYmxlKHByb2R1Y3QpXCI+0JTQu9C40L3QsDoge3sgY2FydEl0ZW0ubGVuZ3RoIH19INC8LjwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJjYXJ0SXRlbS53aWR0aFwiPtCo0LjRgNC40L3QsDoge3sgY2FydEl0ZW0ud2lkdGggfX0g0LwuPC9wPlxuICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cImNhcnRJdGVtLmhlaWdodFwiPtCS0YvRgdC+0YLQsDoge3sgY2FydEl0ZW0uaGVpZ2h0IH19INC8LjwvcD5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtdHVpLXRleHQtMDFcIj7QmNGC0L7Qs9C+OiB7eyBjYXJ0SXRlbS5jb3N0UnViIHwgdHVpRm9ybWF0TnVtYmVyIH19IHt7ICdSVUInIHwgdHVpQ3VycmVuY3kgfX08L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBncm93IGp1c3RpZnktZW5kXCI+XG4gICAgICAgICAgICA8c2MtaW5wdXQtcXVhbnRpdHlcbiAgICAgICAgICAgICAgICBjbGFzcz1cInctMjhcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwicXVhbnRpdHlDb250cm9sXCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwicXVhbnRpdHlDb250cm9sXCJcbiAgICAgICAgICAgICAgICBbcXVhbnRpdHlVbml0XT1cInVuaXRzSGVscGVyLnByb2R1Y3RJc01lYXN1cmFibGUocHJvZHVjdCkgPyAn0YjRgicgOiBwcm9kdWN0LnF1YW50aXR5VW5pdFwiXG4gICAgICAgICAgICAgICAgW3Nob3dDcm9zc109XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgIFtzdGVwXT1cInVuaXRzSGVscGVyLnByb2R1Y3RNdWx0aXBsaWNpdHkocHJvZHVjdClcIlxuICAgICAgICAgICAgPjwvc2MtaW5wdXQtcXVhbnRpdHk+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlICNza2VsZXRvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTIgdy1mdWxsXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC0yMCB3LTIwIGJnLXR1aS1iYXNlLTAyIHJvdW5kZWQteGwgXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBncm93IGdhcC0yLjUgYmctd2hpdGVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIGgtNCByb3VuZGVkLXhsIGJnLXR1aS1iYXNlLTAyXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMy81IGgtNCByb3VuZGVkLXhsIGJnLXR1aS1iYXNlLTAyXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctNC81IGgtNCByb3VuZGVkLXhsIGJnLXR1aS1iYXNlLTAyXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY2FydC1pdGVtLW1vYmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY2FydC9jYXJ0LWl0ZW0tbW9iaWxlL3NjLWNhcnQtaXRlbS1tb2JpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhcnQvY2FydC1pdGVtLW1vYmlsZS9zYy1jYXJ0LWl0ZW0tbW9iaWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFlLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE9BQU8sRUFBa0MsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRyxPQUFPLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7OztBQUlsRTs7R0FFRztBQU1ILE1BQU0sT0FBTyx5QkFBeUI7SUFtRWxDOzs7Ozs7O09BT0c7SUFDSCxZQUNvQixXQUF3QixFQUV2QixvQkFBNkMsRUFDNUIsSUFBYSxFQUNHLGlCQUF5QjtRQUozRCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUV2Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXlCO1FBQzVCLFNBQUksR0FBSixJQUFJLENBQVM7UUFDRyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQVE7UUFwRS9FOztXQUVHO1FBQ0ksb0JBQWUsR0FBK0IsSUFBSSxXQUFXLENBQWdCLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBcUI3Rzs7V0FFRztRQUVJLHlCQUFvQixHQUE4QixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekc7O1dBRUc7UUFFSSxxQkFBZ0IsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV2RTs7V0FFRztRQUVJLHVCQUFrQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXpFOztXQUVHO1FBRUksbUJBQWMsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQXVCbEUsQ0FBQztJQWhFSjs7T0FFRztJQUNILElBQ1csUUFBUSxDQUFDLElBQTRCO1FBQzVDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBRXRCLElBQUksSUFBSSxFQUFFO1lBQ04sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ2xEO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxRQUFRO1FBQ2YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUEwQkQ7O09BRUc7SUFDSCxJQUFXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDO0lBQ2xDLENBQUM7SUFrQkQsa0JBQWtCO0lBQ1gsUUFBUTtRQUNYLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQztJQUNsRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxpQkFBaUI7UUFDcEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkYsQ0FBQztJQUVEOztPQUVHO0lBQ0ksWUFBWTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDN0csQ0FBQzs7c0hBcEdRLHlCQUF5Qiw2Q0E2RXRCLHVCQUF1QixhQUV2QixPQUFPLGFBQ1AsdUJBQXVCOzBHQWhGMUIseUJBQXlCLDJZQ2hCdEMsbTVNQWlHQTsyRkRqRmEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNJLHFCQUFxQixtQkFFZCx1QkFBdUIsQ0FBQyxNQUFNOzswQkErRTFDLE1BQU07MkJBQUMsdUJBQXVCOzswQkFFOUIsTUFBTTsyQkFBQyxPQUFPOzswQkFDZCxNQUFNOzJCQUFDLHVCQUF1Qjs0Q0F0RWxCLHVCQUF1QjtzQkFEdkMsU0FBUzt1QkFBQyxzQkFBc0I7Z0JBWXRCLFFBQVE7c0JBRGxCLEtBQUs7Z0JBb0JDLG9CQUFvQjtzQkFEMUIsTUFBTTtnQkFPQSxnQkFBZ0I7c0JBRHRCLE1BQU07Z0JBT0Esa0JBQWtCO3NCQUR4QixNQUFNO2dCQU9BLGNBQWM7c0JBRHBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNDX1BBVEhfSU1BR0VfTk9UX0ZPVU5ELCBTQ19VUkxTLCBTY0NhcnRJdGVtLCBTY0lVcmxzLCBTY1Byb2R1Y3QgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHNraXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFR1aVByZXZpZXdEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLXByZXZpZXcnO1xuaW1wb3J0IHsgVHVpRGlhbG9nQ29udGV4dCB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IFVuaXRzSGVscGVyIH0gZnJvbSAnLi4vLi4vaGVscGVycy9zYy11bml0cy1oZWxwZXInO1xuXG4vKipcbiAqINCa0L7QvNC/0L7QvdC10L3RgiDQutCw0YDRgtC+0YfQutC4INGN0LvQtdC80LXQvdGC0LAg0LrQvtGA0LfQuNC90YsuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2MtY2FydC1pdGVtLW1vYmlsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLWNhcnQtaXRlbS1tb2JpbGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY0NhcnRJdGVtTW9iaWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiDQrdC70LXQvNC10L3RgiDQutC+0YDQt9C40L3Riy5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9jYXJ0SXRlbT86IFNjQ2FydEl0ZW07XG5cbiAgICAvKipcbiAgICAgKiDQodGB0YvQu9C60LAg0L3QsCDQv9GA0LXQtNGB0YLQsNCy0LvQtdC90LjQtSDRgdC/0LXRhtC40YTQuNC60LDRhtC40LguXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnc3BlY2lmaWNhdGlvblByZXZpZXcnKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3BlY2lmaWNhdGlvblByZXZpZXdSZWY/OiBUZW1wbGF0ZVJlZjxUdWlEaWFsb2dDb250ZXh0PjtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBGb3JtQ29udHJvbH0g0L/QvtC70Y8g0LLQstC+0LTQsCDQutC+0LvQuNGH0LXRgdGC0LLQsCDRgtC+0LLQsNGA0LAg0LIg0LrQvtGA0LfQuNC90LUuXG4gICAgICovXG4gICAgcHVibGljIHF1YW50aXR5Q29udHJvbDogRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD4gPSBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD4oMCwgeyB1cGRhdGVPbjogJ2JsdXInIH0pO1xuXG4gICAgLyoqXG4gICAgICog0K3Qu9C10LzQtdC90YIg0LrQvtGA0LfQuNC90YsuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGNhcnRJdGVtKGRhdGE6IFNjQ2FydEl0ZW0gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fY2FydEl0ZW0gPSBkYXRhO1xuXG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICB0aGlzLnF1YW50aXR5Q29udHJvbC5wYXRjaFZhbHVlKGRhdGEucXVhbnRpdHkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0K3Qu9C10LzQtdC90YIg0LrQvtGA0LfQuNC90YsuXG4gICAgICovXG4gICAgcHVibGljIGdldCBjYXJ0SXRlbSgpOiBTY0NhcnRJdGVtIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NhcnRJdGVtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNC30LzQtdC90LXQvdC40Y8g0LrQvtC70LjRh9C10YHRgtCy0LAg0YLQvtCy0LDRgNCwINCyINC60L7RgNC30LjQvdC1LlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBxdWFudGl0eVZhbHVlQ2hhbmdlczogT2JzZXJ2YWJsZTxudW1iZXIgfCBudWxsPiA9IHRoaXMucXVhbnRpdHlDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKHNraXAoMSkpO1xuXG4gICAgLyoqXG4gICAgICog0KHQvtCx0YvRgtC40LUg0L3QsNC20LDRgtC40Y8g0L3QsCDQutC90L7Qv9C60YMgXCLQo9C00LDQu9C40YLRjCDQuNC3INC60L7RgNC30LjQvdGLXCIuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGNsaWNrRGVsZXRlRXZlbnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDIFwi0KPQtNCw0LvQuNGC0Ywg0LjQtyDQutC+0YDQt9C40L3Ri1wiLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBjbGlja1NldHRpbmdzRXZlbnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LrQsNGA0YLQvtGH0LrRgy5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY2xpY2tDYXJkRXZlbnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqINCf0YDQvtC00YPQutGCINGN0LvQtdC80LXQvdGC0LAg0LrQvtGA0LfQuNC90YsuXG4gICAgICovXG4gICAgcHVibGljIGdldCBwcm9kdWN0KCk6IFNjUHJvZHVjdCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhcnRJdGVtPy5wcm9kdWN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjQ2FydEl0ZW1Nb2JpbGVDb21wb25lbnR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHVuaXRzSGVscGVyINCe0LHRitC10LrRgi3RhdGN0LvQv9C10YAg0LTQu9GPINGA0LDQsdC+0YLRiyDRgdC+INC30L3QsNGH0LXQvdC40Y/QvNC4INC10LTQuNC90LjRhiDQuNC30LzQtdGA0LXQvdC40Y8g0YLQvtCy0LDRgNCwLlxuICAgICAqIEBwYXJhbSBwcmV2aWV3RGlhbG9nU2VydmljZSDQodC10YDQstC40YEg0LTQuNCw0LvQvtCz0L7QstC+0LPQviDQvtC60L3QsCDQv9GA0LXQtNCy0LDRgNC40YLQtdC70YzQvdC+0LPQviDQv9GA0L7RgdC80L7RgtGA0LAuXG4gICAgICogQHBhcmFtIHVybHMg0KHQv9C40YHQvtC6INGB0YHRi9C70L7QuiDQvdCwINGA0LDQt9C00LXQu9GLIGJhY2tlbmQnYS5cbiAgICAgKiBAcGFyYW0gcGF0aEltYWdlTm90Rm91bmQg0J/Rg9GC0Ywg0LTQviDQuNC30L7QsdGA0LDQttC10L3QuNGPICfQotC+0LLQsNGAINC90LUg0L3QsNC50LTQtdC9Jy5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSB1bml0c0hlbHBlcjogVW5pdHNIZWxwZXIsXG4gICAgICAgIEBJbmplY3QoVHVpUHJldmlld0RpYWxvZ1NlcnZpY2UpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcHJldmlld0RpYWxvZ1NlcnZpY2U6IFR1aVByZXZpZXdEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KFNDX1VSTFMpIHByaXZhdGUgcmVhZG9ubHkgdXJsczogU2NJVXJscyxcbiAgICAgICAgQEluamVjdChTQ19QQVRIX0lNQUdFX05PVF9GT1VORCkgcHJpdmF0ZSByZWFkb25seSBwYXRoSW1hZ2VOb3RGb3VuZDogc3RyaW5nXG4gICAgKSB7fVxuXG4gICAgLyoqIEBpbmhlcml0RG9jICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnF1YW50aXR5VmFsdWVDaGFuZ2VzID0gdGhpcy5xdWFudGl0eUNvbnRyb2wudmFsdWVDaGFuZ2VzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0YLQvtCx0YDQsNC30LjRgtGMINGB0L/QtdGG0LjRhNC40LrQsNGG0LjRji5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd1NwZWNpZmljYXRpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJldmlld0RpYWxvZ1NlcnZpY2Uub3Blbih0aGlzLnNwZWNpZmljYXRpb25QcmV2aWV3UmVmIHx8ICcnKS5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgdGB0YvQu9C60YMg0L3QsCDQuNC30L7QsdGA0LDQttC10L3QuNC1INC60LDRgNGC0L7Rh9C60Lgg0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDYXJkSW1hZ2UoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdD8uZ2V0SW1hZ2UodGhpcy51cmxzLmltZ1NlcnZlclVybCkgPz8gdGhpcy51cmxzLmltZ1NlcnZlclVybCArIHRoaXMucGF0aEltYWdlTm90Rm91bmQ7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1sLTIgbXQtMiByZWxhdGl2ZSBwLTQgZ2FwLXktMiBnYXAteC00IGZsZXggZmxleC13cmFwIGJnLXdoaXRlIGJvcmRlciBib3JkZXItdHVpLWJhc2UtMDQgc2hhZG93LXNjLTIgcm91bmRlZC14bFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYXJ0SXRlbSAmJiBwcm9kdWN0OyBlbHNlIHNrZWxldG9uXCI+XG4gICAgICAgIDwhLS1cbiAgICAgICAgVE9ETzog0J3QtdC+0LHRhdC+0LTQuNC80LAg0YDQtdCw0LvQuNC30LDRhtC40Y8g0YTRg9C90LrRhtC40L7QvdCw0LvQsC5cbiAgICAgICAgPGJ1dHRvbiB0dWlJY29uQnV0dG9uIHNpemU9XCJtXCIgaWNvbj1cInNjSWNvblZlcnRpY2FsVGhyZWVEb3RzXCIgYXBwZWFyYW5jZT1cImZsb2F0XCIgdHVpTW9kZT1cIm9uTGlnaHRcIiBjbGFzcz1cIiFhYnNvbHV0ZSByaWdodC0wIHRvcC0wXCI+PC9idXR0b24+XG4gICAgICAgIC0tPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICBpY29uPVwidHVpSWNvblRyYXNoMkxhcmdlXCJcbiAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgdHVpTW9kZT1cIm9uTGlnaHRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrRGVsZXRlRXZlbnQuZW1pdCgpXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2hhZG93LXNjLTIgIWFic29sdXRlIC1sZWZ0LTIgLXRvcC0yXCJcbiAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggc2hyaW5rLTAgaC0yMCB3LTIwIGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlciBvdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgICAgICAgICAgICA8aW1nIChjbGljayk9XCJjbGlja0NhcmRFdmVudC5lbWl0KClcIiBbc3JjXT1cImdldENhcmRJbWFnZSgpXCIgW2FsdF09XCJwcm9kdWN0Lm5hbWVcIiBbY2xhc3MucC01XT1cIiFwcm9kdWN0LmltYWdlcz8ubGVuZ3RoXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIHNlbGYtY2VudGVyIGdhcC14LTggZ2FwLXktMC41XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctWzEzcmVtXVwiPlxuICAgICAgICAgICAgICAgICAgICA8YSB0dWlMaW5rIChjbGljayk9XCJjbGlja0NhcmRFdmVudC5lbWl0KClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkXCI+e3sgcHJvZHVjdC5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXR1aS10ZXh0LTAyIHRleHQteHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPtCQ0YDRgtC40LrRg9C7OiB7eyBwcm9kdWN0LmNvZGUgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cInByb2R1Y3QucGFja1wiPtCd0L7RgNC80LAg0YPQv9Cw0LrQvtCy0LrQuDoge3sgcHJvZHVjdC5wYWNrIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgdHVpTGluayAqbmdJZj1cImNhcnRJdGVtLnNwZWNpZmljYXRpb25JbWdVcmxcIiAoY2xpY2spPVwic2hvd1NwZWNpZmljYXRpb24oKVwiPtCh0L/QtdGG0LjRhNC40LrQsNGG0LjRjzwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc3BlY2lmaWNhdGlvblByZXZpZXcgbGV0LXByZXZpZXc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHR1aS1wcmV2aWV3IFtyb3RhdGFibGVdPVwiZmFsc2VcIiBbem9vbWFibGVdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyAqcG9seW1vcnBoZXVzT3V0bGV0PVwiY2FydEl0ZW0uc3BlY2lmaWNhdGlvbkltZ1VybCBhcyBzcmNcIiBhbHQ9XCJwcmV2aWV3XCIgW3NyY109XCJjYXJ0SXRlbS5zcGVjaWZpY2F0aW9uSW1nVXJsXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpY29uPVwidHVpSWNvbkNsb3NlXCIgdGl0bGU9XCJDbG9zZVwiIHR1aUljb25CdXR0b24gdHVpUHJldmlld0FjdGlvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInByZXZpZXcuY29tcGxldGUoKVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHVpLXByZXZpZXc+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBzZWxmLWNlbnRlciB3LVsxMHJlbV0gZ2FwLXgtOCBnYXAteS0wLjVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJwcm9kdWN0LmRpc2NvdW50XCIgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciB0ZXh0LXhzIHRleHQtdHVpLXRleHQtMDJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGluZS10aHJvdWdoXCI+e3sgcHJvZHVjdC5kaXNjb3VudENvc3RTdHJpbmcgfX08L3NwYW4+ICZuYnNwO1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXR1aS1zdWNjZXNzLWZpbGwgZm9udC1ib2xkXCI+IC17eyBwcm9kdWN0LmRpc2NvdW50LnBlcmNlbnQgfX0lIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0dWktc3ZnIHNyYz1cInR1aUljb25JbmZvTGFyZ2VcIiBbdHVpSGludF09XCJkaXNjb3VudEhpbnRcIiBbdHVpSGludFNob3dEZWxheV09XCIxMDBcIiB0dWlIaW50RGlyZWN0aW9uPVwidG9wXCIgY2xhc3M9XCJ0ZXh0LXR1aS10ZXh0LTAxICF0ZXh0LXhzICFoLTRcIj48L3R1aS1zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Rpc2NvdW50SGludD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1ib2xkXCI+e3sgcHJvZHVjdC5kaXNjb3VudC5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInByb2R1Y3QuZGlzY291bnQuZXhwaXJlZEF0IGFzIGV4cGlyZWRBdFwiPtCU0LDRgtCwINC+0LrQvtC90YfQsNC90LjRjzoge3sgZXhwaXJlZEF0IH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1iYXNlbGluZSBnYXAteC0yIGZvbnQtYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgcHJvZHVjdC5jb3N0UnViU3RyaW5nIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhcHJvZHVjdC5wcmljZUluUnViXCIgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtdHVpLXRleHQtMDJcIj57eyBwcm9kdWN0LmNvc3RTdHJpbmcgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHNjLXByaWNlLXdhcmVob3VzZS1zdG9jayBbcHJvZHVjdF09XCJwcm9kdWN0XCI+PC9zYy1wcmljZS13YXJlaG91c2Utc3RvY2s+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTIgaXRlbXMtY2VudGVyIHctNDQgdGV4dC14cyB0ZXh0LXR1aS10ZXh0LTAyXCI+XG4gICAgICAgICAgICA8IS0tXG4gICAgICAgICAgICBUT0RPOiDQndC10L7QsdGF0L7QtNC40LzQsCDRgNC10LDQu9C40LfQsNGG0LjRjyDRhNGD0L3QutGG0LjQvtC90LDQu9CwLlxuICAgICAgICAgICAgPGJ1dHRvbiB0dWlJY29uQnV0dG9uIChjbGljayk9XCJjbGlja1NldHRpbmdzRXZlbnQuZW1pdCgpXCIgc2l6ZT1cIm1cIiBpY29uPVwic2NJY29uU2V0dGluZ3NcIiBhcHBlYXJhbmNlPVwic2Vjb25kYXJ5XCIgdHVpTW9kZT1cIm9uTGlnaHRcIj48L2J1dHRvbj5cbiAgICAgICAgICAgIC0tPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidW5pdHNIZWxwZXIucHJvZHVjdElzTWVhc3VyYWJsZShwcm9kdWN0KTsgZWxzZSBub3RNZWFzdXJhYmxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwPtCU0LvQuNC90LA6IHt7IGNhcnRJdGVtLmxlbmd0aCB9fSB7eyBwcm9kdWN0LnVuaXQgfX08L3A+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3RNZWFzdXJhYmxlPlxuICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cImNhcnRJdGVtLmxlbmd0aCAmJiAhdW5pdHNIZWxwZXIucHJvZHVjdElzTWVhc3VyYWJsZShwcm9kdWN0KVwiPtCU0LvQuNC90LA6IHt7IGNhcnRJdGVtLmxlbmd0aCB9fSDQvC48L3A+XG4gICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiY2FydEl0ZW0ud2lkdGhcIj7QqNC40YDQuNC90LA6IHt7IGNhcnRJdGVtLndpZHRoIH19INC8LjwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJjYXJ0SXRlbS5oZWlnaHRcIj7QktGL0YHQvtGC0LA6IHt7IGNhcnRJdGVtLmhlaWdodCB9fSDQvC48L3A+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LXR1aS10ZXh0LTAxXCI+0JjRgtC+0LPQvjoge3sgY2FydEl0ZW0uY29zdFJ1YiB8IHR1aUZvcm1hdE51bWJlciB9fSB7eyAnUlVCJyB8IHR1aUN1cnJlbmN5IH19PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ3JvdyBqdXN0aWZ5LWVuZFwiPlxuICAgICAgICAgICAgPHNjLWlucHV0LXF1YW50aXR5XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTI4XCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInF1YW50aXR5Q29udHJvbFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInF1YW50aXR5Q29udHJvbFwiXG4gICAgICAgICAgICAgICAgW3F1YW50aXR5VW5pdF09XCJ1bml0c0hlbHBlci5wcm9kdWN0SXNNZWFzdXJhYmxlKHByb2R1Y3QpID8gJ9GI0YInIDogcHJvZHVjdC5xdWFudGl0eVVuaXRcIlxuICAgICAgICAgICAgICAgIFtzaG93Q3Jvc3NdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICBbc3RlcF09XCJ1bml0c0hlbHBlci5wcm9kdWN0TXVsdGlwbGljaXR5KHByb2R1Y3QpXCJcbiAgICAgICAgICAgID48L3NjLWlucHV0LXF1YW50aXR5PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjc2tlbGV0b24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yIHctZnVsbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtMjAgdy0yMCBiZy10dWktYmFzZS0wMiByb3VuZGVkLXhsIFwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ3JvdyBnYXAtMi41IGJnLXdoaXRlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBoLTQgcm91bmRlZC14bCBiZy10dWktYmFzZS0wMlwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTMvNSBoLTQgcm91bmRlZC14bCBiZy10dWktYmFzZS0wMlwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTQvNSBoLTQgcm91bmRlZC14bCBiZy10dWktYmFzZS0wMlwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
@@ -97,10 +97,10 @@ export class ScInputQuantityComponent extends AbstractTuiNullableControl {
97
97
  }
98
98
  }
99
99
  ScInputQuantityComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScInputQuantityComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }, { token: TUI_NUMBER_VALUE_TRANSFORMER, optional: true }], target: i0.ɵɵFactoryTarget.Component });
100
- ScInputQuantityComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScInputQuantityComponent, selector: "sc-input-quantity", inputs: { step: "step", quantityUnit: "quantityUnit", showLoader: "showLoader", showCross: "showCross", appearance: "appearance", isDisabled: "isDisabled", size: "size" }, outputs: { clickClearEvent: "clickClearEvent" }, host: { listeners: { "keydown.arrowDown": "onArrow(-step)", "keydown.arrowUp": "onArrow(step)" }, properties: { "attr.data-appearance": "this.appearance", "attr.data-disabled": "this.isDisabled", "attr.data-size": "this.size" } }, viewQueries: [{ propertyName: "numberInput", first: true, predicate: TuiInputNumberComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<tui-loader *ngIf=\"formControl\" class=\"w-full\" [overlay]=\"true\" [showLoader]=\"showLoader\" [size]=\"size\">\n <div class=\"flex items-center text-center gap-1\">\n <div class=\"field-with-button flex grow rounded-xl\">\n <button\n tuiIconButton\n tuiMode=\"onLight\"\n [appearance]=\"appearance\"\n [disabled]=\"!numberInput.canDecrement\"\n [focusable]=\"false\"\n [size]=\"size\"\n (click.prevent)=\"decrement()\"\n (mousedown.prevent)=\"numberInput.nativeFocusableElement?.focus()\"\n >\n <tui-svg src=\"scIconMinus\"></tui-svg>\n </button>\n <tui-input-number\n #numberInput\n [formControl]=\"formControl\"\n [tuiHint]=\"([] | tuiFieldError | async )?.message\"\n [tuiTextfieldPostfix]=\"quantityUnit || ''\"\n [tuiTextfieldLabelOutside]=\"true\"\n [min]=\"step\"\n [tuiTextfieldSize]=\"size\"\n [required]=\"true\"\n [style.text-align]=\"'center'\"\n [style.font-weight]=\"700\"\n class=\"grow\"\n >\n </tui-input-number>\n <button\n tuiIconButton\n tuiMode=\"onLight\"\n [appearance]=\"appearance\"\n [size]=\"size\"\n [disabled]=\"!numberInput.canIncrement\"\n [focusable]=\"false\"\n (click.prevent)=\"incident()\"\n (mousedown.prevent)=\"numberInput.nativeFocusableElement?.focus()\"\n >\n <tui-svg src=\"scIconPlus\"></tui-svg>\n </button>\n </div>\n <button\n *ngIf=\"showCross\"\n tuiIconButton\n tuiMode=\"onLight\"\n [appearance]=\"appearance\"\n [size]=\"size\"\n [disabled]=\"!numberInput.canIncrement\"\n [focusable]=\"false\"\n (click.prevent)=\"clear()\"\n (mousedown.prevent)=\"numberInput.nativeFocusableElement?.focus()\"\n >\n <tui-svg src=\"scIconCross\"></tui-svg>\n </button>\n </div>\n</tui-loader>\n", styles: [":host [data-size=l]{--tui-height-l: var(--tui-height-m);--tui-font-text-m: bold .875rem/1.25rem var(--tui-font-text);--tui-padding-l: 0}:host [data-size=m]{--tui-height-m: var(--tui-height-s);--tui-font-text-s: bold .75rem/1rem var(--tui-font-text);--tui-padding-m: 0}:host [data-size=m] tui-svg{font-size:12px!important}:host [data-size=s]{--tui-height-s: var(--tui-height-xs);--tui-font-text-s: bold .75rem/1rem var(--tui-font-text);--tui-padding-s: 0}:host [data-size=s] tui-svg{font-size:12px!important}:host[data-disabled=true]{pointer-events:none;opacity:var(--tui-disabled-opacity)}:host[data-appearance=secondary] .field-with-button{background-color:var(--tui-base-01);box-shadow:inset 0 0 0 .0625rem var(--tui-base-03)}:host[data-appearance=primary] .field-with-button{background-color:var(--tui-warning-bg)}:host .field-with-button:has(._invalid){background-color:var(--tui-error-bg)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "component", type: i2.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { kind: "component", type: i3.TuiInputNumberComponent, selector: "tui-input-number", inputs: ["min", "max", "decimal", "precision", "step", "prefix", "postfix"] }, { kind: "directive", type: i3.TuiInputNumberDirective, selector: "tui-input-number" }, { kind: "directive", type: i2.TuiTextfieldLabelOutsideDirective, selector: "[tuiTextfieldLabelOutside]", inputs: ["tuiTextfieldLabelOutside"] }, { kind: "directive", type: i2.TuiTextfieldSizeDirective, selector: "[tuiTextfieldSize]", inputs: ["tuiTextfieldSize"] }, { kind: "directive", type: i2.TuiTextfieldPostfixDirective, selector: "[tuiTextfieldPostfix]", inputs: ["tuiTextfieldPostfix"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.TuiHintDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { kind: "directive", type: i2.TuiHintDriverDirective, selector: "[tuiHint]" }, { kind: "directive", type: i2.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"], exportAs: ["tuiHintHover"] }, { kind: "directive", type: i2.TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: ["tuiHintDirection"] }, { kind: "directive", type: i2.TuiModeDirective, selector: "[tuiMode]", inputs: ["tuiMode"] }, { kind: "component", type: i2.TuiLoaderComponent, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TuiFieldErrorPipe, name: "tuiFieldError" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
100
+ ScInputQuantityComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScInputQuantityComponent, selector: "sc-input-quantity", inputs: { step: "step", quantityUnit: "quantityUnit", showLoader: "showLoader", showCross: "showCross", appearance: "appearance", isDisabled: "isDisabled", size: "size" }, outputs: { clickClearEvent: "clickClearEvent" }, host: { listeners: { "keydown.arrowDown": "onArrow(-step)", "keydown.arrowUp": "onArrow(step)" }, properties: { "attr.data-appearance": "this.appearance", "attr.data-disabled": "this.isDisabled", "attr.data-size": "this.size" } }, viewQueries: [{ propertyName: "numberInput", first: true, predicate: TuiInputNumberComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<tui-loader *ngIf=\"formControl\" class=\"w-full\" [overlay]=\"true\" [showLoader]=\"showLoader\" [size]=\"size\">\n <div class=\"flex items-center text-center gap-1\">\n <div class=\"field-with-button flex grow rounded-xl\">\n <button\n tuiIconButton\n tuiMode=\"onLight\"\n [appearance]=\"appearance\"\n [disabled]=\"!numberInput.canDecrement\"\n [focusable]=\"false\"\n [size]=\"size\"\n (click.prevent)=\"decrement()\"\n (mousedown.prevent)=\"numberInput.nativeFocusableElement?.focus()\"\n >\n <tui-svg src=\"tuiIconMinusLarge\"></tui-svg>\n </button>\n <tui-input-number\n #numberInput\n [formControl]=\"formControl\"\n [tuiHint]=\"([] | tuiFieldError | async )?.message\"\n [tuiTextfieldPostfix]=\"quantityUnit || ''\"\n [tuiTextfieldLabelOutside]=\"true\"\n [min]=\"step\"\n [tuiTextfieldSize]=\"size\"\n [required]=\"true\"\n [style.text-align]=\"'center'\"\n [style.font-weight]=\"700\"\n class=\"grow\"\n >\n </tui-input-number>\n <button\n tuiIconButton\n tuiMode=\"onLight\"\n [appearance]=\"appearance\"\n [size]=\"size\"\n [disabled]=\"!numberInput.canIncrement\"\n [focusable]=\"false\"\n (click.prevent)=\"incident()\"\n (mousedown.prevent)=\"numberInput.nativeFocusableElement?.focus()\"\n >\n <tui-svg src=\"tuiIconPlusLarge\"></tui-svg>\n </button>\n </div>\n <button\n *ngIf=\"showCross\"\n tuiIconButton\n tuiMode=\"onLight\"\n [appearance]=\"appearance\"\n [size]=\"size\"\n [disabled]=\"!numberInput.canIncrement\"\n [focusable]=\"false\"\n (click.prevent)=\"clear()\"\n (mousedown.prevent)=\"numberInput.nativeFocusableElement?.focus()\"\n >\n <tui-svg src=\"tuiIconCloseLarge\"></tui-svg>\n </button>\n </div>\n</tui-loader>\n", styles: [":host [data-size=l]{--tui-height-l: var(--tui-height-m);--tui-font-text-m: bold .875rem/1.25rem var(--tui-font-text);--tui-padding-l: 0}:host [data-size=m]{--tui-height-m: var(--tui-height-s);--tui-font-text-s: bold .75rem/1rem var(--tui-font-text);--tui-padding-m: 0}:host [data-size=m] tui-svg{font-size:12px!important}:host [data-size=s]{--tui-height-s: var(--tui-height-xs);--tui-font-text-s: bold .75rem/1rem var(--tui-font-text);--tui-padding-s: 0}:host [data-size=s] tui-svg{font-size:12px!important}:host[data-disabled=true]{pointer-events:none;opacity:var(--tui-disabled-opacity)}:host[data-appearance=secondary] .field-with-button{background-color:var(--tui-base-01);box-shadow:inset 0 0 0 .0625rem var(--tui-base-03)}:host[data-appearance=primary] .field-with-button{background-color:var(--tui-warning-bg)}:host .field-with-button:has(._invalid){background-color:var(--tui-error-bg)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "component", type: i2.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { kind: "component", type: i3.TuiInputNumberComponent, selector: "tui-input-number", inputs: ["min", "max", "decimal", "precision", "step", "prefix", "postfix"] }, { kind: "directive", type: i3.TuiInputNumberDirective, selector: "tui-input-number" }, { kind: "directive", type: i2.TuiTextfieldLabelOutsideDirective, selector: "[tuiTextfieldLabelOutside]", inputs: ["tuiTextfieldLabelOutside"] }, { kind: "directive", type: i2.TuiTextfieldSizeDirective, selector: "[tuiTextfieldSize]", inputs: ["tuiTextfieldSize"] }, { kind: "directive", type: i2.TuiTextfieldPostfixDirective, selector: "[tuiTextfieldPostfix]", inputs: ["tuiTextfieldPostfix"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.TuiHintDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { kind: "directive", type: i2.TuiHintDriverDirective, selector: "[tuiHint]" }, { kind: "directive", type: i2.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"], exportAs: ["tuiHintHover"] }, { kind: "directive", type: i2.TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: ["tuiHintDirection"] }, { kind: "directive", type: i2.TuiModeDirective, selector: "[tuiMode]", inputs: ["tuiMode"] }, { kind: "component", type: i2.TuiLoaderComponent, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TuiFieldErrorPipe, name: "tuiFieldError" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
101
101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScInputQuantityComponent, decorators: [{
102
102
  type: Component,
103
- args: [{ selector: 'sc-input-quantity', changeDetection: ChangeDetectionStrategy.OnPush, template: "<tui-loader *ngIf=\"formControl\" class=\"w-full\" [overlay]=\"true\" [showLoader]=\"showLoader\" [size]=\"size\">\n <div class=\"flex items-center text-center gap-1\">\n <div class=\"field-with-button flex grow rounded-xl\">\n <button\n tuiIconButton\n tuiMode=\"onLight\"\n [appearance]=\"appearance\"\n [disabled]=\"!numberInput.canDecrement\"\n [focusable]=\"false\"\n [size]=\"size\"\n (click.prevent)=\"decrement()\"\n (mousedown.prevent)=\"numberInput.nativeFocusableElement?.focus()\"\n >\n <tui-svg src=\"scIconMinus\"></tui-svg>\n </button>\n <tui-input-number\n #numberInput\n [formControl]=\"formControl\"\n [tuiHint]=\"([] | tuiFieldError | async )?.message\"\n [tuiTextfieldPostfix]=\"quantityUnit || ''\"\n [tuiTextfieldLabelOutside]=\"true\"\n [min]=\"step\"\n [tuiTextfieldSize]=\"size\"\n [required]=\"true\"\n [style.text-align]=\"'center'\"\n [style.font-weight]=\"700\"\n class=\"grow\"\n >\n </tui-input-number>\n <button\n tuiIconButton\n tuiMode=\"onLight\"\n [appearance]=\"appearance\"\n [size]=\"size\"\n [disabled]=\"!numberInput.canIncrement\"\n [focusable]=\"false\"\n (click.prevent)=\"incident()\"\n (mousedown.prevent)=\"numberInput.nativeFocusableElement?.focus()\"\n >\n <tui-svg src=\"scIconPlus\"></tui-svg>\n </button>\n </div>\n <button\n *ngIf=\"showCross\"\n tuiIconButton\n tuiMode=\"onLight\"\n [appearance]=\"appearance\"\n [size]=\"size\"\n [disabled]=\"!numberInput.canIncrement\"\n [focusable]=\"false\"\n (click.prevent)=\"clear()\"\n (mousedown.prevent)=\"numberInput.nativeFocusableElement?.focus()\"\n >\n <tui-svg src=\"scIconCross\"></tui-svg>\n </button>\n </div>\n</tui-loader>\n", styles: [":host [data-size=l]{--tui-height-l: var(--tui-height-m);--tui-font-text-m: bold .875rem/1.25rem var(--tui-font-text);--tui-padding-l: 0}:host [data-size=m]{--tui-height-m: var(--tui-height-s);--tui-font-text-s: bold .75rem/1rem var(--tui-font-text);--tui-padding-m: 0}:host [data-size=m] tui-svg{font-size:12px!important}:host [data-size=s]{--tui-height-s: var(--tui-height-xs);--tui-font-text-s: bold .75rem/1rem var(--tui-font-text);--tui-padding-s: 0}:host [data-size=s] tui-svg{font-size:12px!important}:host[data-disabled=true]{pointer-events:none;opacity:var(--tui-disabled-opacity)}:host[data-appearance=secondary] .field-with-button{background-color:var(--tui-base-01);box-shadow:inset 0 0 0 .0625rem var(--tui-base-03)}:host[data-appearance=primary] .field-with-button{background-color:var(--tui-warning-bg)}:host .field-with-button:has(._invalid){background-color:var(--tui-error-bg)}\n"] }]
103
+ args: [{ selector: 'sc-input-quantity', changeDetection: ChangeDetectionStrategy.OnPush, template: "<tui-loader *ngIf=\"formControl\" class=\"w-full\" [overlay]=\"true\" [showLoader]=\"showLoader\" [size]=\"size\">\n <div class=\"flex items-center text-center gap-1\">\n <div class=\"field-with-button flex grow rounded-xl\">\n <button\n tuiIconButton\n tuiMode=\"onLight\"\n [appearance]=\"appearance\"\n [disabled]=\"!numberInput.canDecrement\"\n [focusable]=\"false\"\n [size]=\"size\"\n (click.prevent)=\"decrement()\"\n (mousedown.prevent)=\"numberInput.nativeFocusableElement?.focus()\"\n >\n <tui-svg src=\"tuiIconMinusLarge\"></tui-svg>\n </button>\n <tui-input-number\n #numberInput\n [formControl]=\"formControl\"\n [tuiHint]=\"([] | tuiFieldError | async )?.message\"\n [tuiTextfieldPostfix]=\"quantityUnit || ''\"\n [tuiTextfieldLabelOutside]=\"true\"\n [min]=\"step\"\n [tuiTextfieldSize]=\"size\"\n [required]=\"true\"\n [style.text-align]=\"'center'\"\n [style.font-weight]=\"700\"\n class=\"grow\"\n >\n </tui-input-number>\n <button\n tuiIconButton\n tuiMode=\"onLight\"\n [appearance]=\"appearance\"\n [size]=\"size\"\n [disabled]=\"!numberInput.canIncrement\"\n [focusable]=\"false\"\n (click.prevent)=\"incident()\"\n (mousedown.prevent)=\"numberInput.nativeFocusableElement?.focus()\"\n >\n <tui-svg src=\"tuiIconPlusLarge\"></tui-svg>\n </button>\n </div>\n <button\n *ngIf=\"showCross\"\n tuiIconButton\n tuiMode=\"onLight\"\n [appearance]=\"appearance\"\n [size]=\"size\"\n [disabled]=\"!numberInput.canIncrement\"\n [focusable]=\"false\"\n (click.prevent)=\"clear()\"\n (mousedown.prevent)=\"numberInput.nativeFocusableElement?.focus()\"\n >\n <tui-svg src=\"tuiIconCloseLarge\"></tui-svg>\n </button>\n </div>\n</tui-loader>\n", styles: [":host [data-size=l]{--tui-height-l: var(--tui-height-m);--tui-font-text-m: bold .875rem/1.25rem var(--tui-font-text);--tui-padding-l: 0}:host [data-size=m]{--tui-height-m: var(--tui-height-s);--tui-font-text-s: bold .75rem/1rem var(--tui-font-text);--tui-padding-m: 0}:host [data-size=m] tui-svg{font-size:12px!important}:host [data-size=s]{--tui-height-s: var(--tui-height-xs);--tui-font-text-s: bold .75rem/1rem var(--tui-font-text);--tui-padding-s: 0}:host [data-size=s] tui-svg{font-size:12px!important}:host[data-disabled=true]{pointer-events:none;opacity:var(--tui-disabled-opacity)}:host[data-appearance=secondary] .field-with-button{background-color:var(--tui-base-01);box-shadow:inset 0 0 0 .0625rem var(--tui-base-03)}:host[data-appearance=primary] .field-with-button{background-color:var(--tui-warning-bg)}:host .field-with-button:has(._invalid){background-color:var(--tui-error-bg)}\n"] }]
104
104
  }], ctorParameters: function () { return [{ type: i4.NgControl, decorators: [{
105
105
  type: Optional
106
106
  }, {
@@ -151,4 +151,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
151
151
  type: HostListener,
152
152
  args: ['keydown.arrowUp', ['step']]
153
153
  }] } });
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtaW5wdXQtcXVhbnRpdHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhdGFsb2cvaW5wdXQtcXVhbnRpdHkvc2MtaW5wdXQtcXVhbnRpdHkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhdGFsb2cvaW5wdXQtcXVhbnRpdHkvc2MtaW5wdXQtcXVhbnRpdHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLDRCQUE0QixFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3RGLE9BQU8sRUFBRSwwQkFBMEIsRUFBK0IsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFReEYsTUFBTSxPQUFPLHdCQUF5QixTQUFRLDBCQUFrQztJQTBENUU7Ozs7OztPQU1HO0lBQ0gsWUFJSSxTQUEyQixFQUUzQixHQUFzQixFQUd0QixXQUF1RDtRQUV2RCxLQUFLLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQXJFdkM7O1dBRUc7UUFFSSxTQUFJLEdBQVcsQ0FBQyxDQUFDO1FBUXhCOztXQUVHO1FBRUksZUFBVSxHQUFZLEtBQUssQ0FBQztRQUVuQzs7V0FFRztRQUVJLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFFakM7O1dBRUc7UUFHSSxlQUFVLEdBQTRCLFNBQVMsQ0FBQztRQUV2RDs7V0FFRztRQUdJLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFFbkM7O1dBRUc7UUFHSSxTQUFJLEdBQW1DLEdBQUcsQ0FBQztRQUVsRDs7V0FFRztRQUVJLG9CQUFlLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7SUFxQnRFLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDZCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQWtDLENBQUM7SUFDbkQsQ0FBQztJQUVELGtCQUFrQjtJQUNGLFFBQVE7UUFDcEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3hEO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFHSSxPQUFPLENBQUMsSUFBbUI7UUFDOUIsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNQLE9BQU87U0FDVjtRQUVELElBQUksSUFBSSxHQUFHLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNuQjthQUFNO1lBQ0gsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ3BCO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUTtRQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVM7UUFDWixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSztRQUNSLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQzs7cUhBcklRLHdCQUF3QixrQkFvRXJCLFNBQVMseUNBRVQsaUJBQWlCLGFBR2pCLDRCQUE0Qjt5R0F6RS9CLHdCQUF3QiwwaUJBSXRCLHVCQUF1Qix1RUNoQ3RDLGl4RUF5REE7MkZEN0JhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDSSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTTs7MEJBb0UxQyxRQUFROzswQkFDUixJQUFJOzswQkFDSixNQUFNOzJCQUFDLFNBQVM7OzBCQUVoQixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBRXhCLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsNEJBQTRCOzRDQXBFdkIsV0FBVztzQkFEM0IsU0FBUzt1QkFBQyx1QkFBdUI7Z0JBTzNCLElBQUk7c0JBRFYsS0FBSztnQkFPQyxZQUFZO3NCQURsQixLQUFLO2dCQU9DLFVBQVU7c0JBRGhCLEtBQUs7Z0JBT0MsU0FBUztzQkFEZixLQUFLO2dCQVFDLFVBQVU7c0JBRmhCLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsc0JBQXNCO2dCQVE1QixVQUFVO3NCQUZoQixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFRMUIsSUFBSTtzQkFGVixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGdCQUFnQjtnQkFPdEIsZUFBZTtzQkFEckIsTUFBTTtnQkE4Q0EsT0FBTztzQkFGYixZQUFZO3VCQUFDLG1CQUFtQixFQUFFLENBQUMsT0FBTyxDQUFDOztzQkFDM0MsWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHN0ZXBWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi92YWxpZGF0b3JzL3N0ZXBWYWxpZGF0b3InO1xuaW1wb3J0IHsgVFVJX05VTUJFUl9WQUxVRV9UUkFOU0ZPUk1FUiwgVHVpSW5wdXROdW1iZXJDb21wb25lbnQgfSBmcm9tICdAdGFpZ2EtdWkva2l0Jztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmltcG9ydCB7IFR1aUxvYWRlckNvbXBvbmVudCwgVHVpU2l6ZUwsIFR1aVNpemVNLCBUdWlTaXplUyB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sLCBBYnN0cmFjdFR1aVZhbHVlVHJhbnNmb3JtZXIgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzYy1pbnB1dC1xdWFudGl0eScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLWlucHV0LXF1YW50aXR5LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zYy1pbnB1dC1xdWFudGl0eS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY0lucHV0UXVhbnRpdHlDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbDxudW1iZXI+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiDQmtC+0LzQv9C+0L3QtdC90YIg0L/QvtC70Y8g0LLQstC+0LTQsC5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKFR1aUlucHV0TnVtYmVyQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgbnVtYmVySW5wdXQ6IFR1aUlucHV0TnVtYmVyQ29tcG9uZW50O1xuXG4gICAgLyoqXG4gICAgICog0KjQsNCzINGD0LLQtdC70LjRh9C10L3QuNGPINC60L7Qu9C40YfQtdGB0YLQstCwLiDQntGC0LLQtdGH0LDQtdGCINC30LAg0L/RgNC+0LLQtdGA0LrRgyDQutGA0LDRgtC90L7RgdGC0Lgg0LLQstC+0LTQsC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzdGVwOiBudW1iZXIgPSAxO1xuXG4gICAgLyoqXG4gICAgICog0JXQtNC40L3QuNGG0LAg0LjQt9C80LXRgNC10L3QuNGPINC60L7Qu9C40YfQtdGB0YLQstCwLiDQkdGD0LTQtdGCINGD0LrQsNC30LDQvdCwINCyINC/0L7RgdGC0YTQuNC60YHQtSDQv9C+0LvRjyDQstCy0L7QtNCwLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHF1YW50aXR5VW5pdD86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0L3QtdC+0LHRhdC+0LTQuNC80L4g0L7RgtC+0LHRgNCw0LfQuNGC0Ywge0BsaW5rIFR1aUxvYWRlckNvbXBvbmVudH0g0L3QsNC0INC60L7QvNC/0L7QvdC10L3RgtC+0LwuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd0xvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDQvdC10L7QsdGF0L7QtNC40LzQviDQvtGC0L7QsdGA0LDQt9C40YLRjCDQutC90L7Qv9C60YMg0L7Rh9C40YHRgtC60Lgg0L/QvtC70Y8g0LLQstC+0LTQsC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93Q3Jvc3M6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog0KTQvtGA0LzQsNGCINCy0L3QtdGI0L3QtdCz0L4g0LLQuNC00LAg0LrQvtC80L/QvtC90LXQvdGC0LAuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1hcHBlYXJhbmNlJylcbiAgICBwdWJsaWMgYXBwZWFyYW5jZTogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgPSAncHJpbWFyeSc7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC60L7QvNC/0L7QvdC10L3RgiDQtNC10LDQutGC0LjQstC40YDQvtCy0LDQvS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWRpc2FibGVkJylcbiAgICBwdWJsaWMgaXNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog0KDQsNC30LzQtdGAINC60L7QvNC/0L7QvdC10L3RgtCwLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2l6ZScpXG4gICAgcHVibGljIHNpemU6IFR1aVNpemVMIHwgVHVpU2l6ZU0gfCBUdWlTaXplUyA9ICdtJztcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDIFwi0J7Rh9C40YHRgtC40YLRjFwiLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBjbGlja0NsZWFyRXZlbnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NJbnB1dFF1YW50aXR5Q29tcG9uZW50fS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuZ0NvbnRyb2wg0J7QsdGK0LXQutGCINC/0L7Qu9GPINCy0LLQvtC00LAg0LTQu9GPINC90LDRgdGC0YDQvtC50LrQuCDQstCw0LvQuNC00LDRhtC40LguXG4gICAgICogQHBhcmFtIGNkciDQntCx0YrQtdC60YIg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSDQvtCx0L3QsNGA0YPQttC10L3QuNC10Lwg0LjQt9C80LXQvdC10L3QuNC5LlxuICAgICAqIEBwYXJhbSB0cmFuc2Zvcm1lciDQn9GA0LXQvtCx0YDQsNC30L7QstCw0YLQtdC70Ywg0LfQvdCw0YfQtdC90LjQuSDRjdC70LXQvNC10L3RgtCwINGE0L7RgNC80YsuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBuZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpXG4gICAgICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVFVJX05VTUJFUl9WQUxVRV9UUkFOU0ZPUk1FUilcbiAgICAgICAgdHJhbnNmb3JtZXI6IEFic3RyYWN0VHVpVmFsdWVUcmFuc2Zvcm1lcjxudW1iZXIgfCBudWxsPlxuICAgICkge1xuICAgICAgICBzdXBlcihuZ0NvbnRyb2wsIGNkciwgdHJhbnNmb3JtZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5udW1iZXJJbnB1dD8uZm9jdXNlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGZvcm1Db250cm9sKCk6IEZvcm1Db250cm9sPGFueT4gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbCBhcyBGb3JtQ29udHJvbDxhbnk+IHwgbnVsbDtcbiAgICB9XG5cbiAgICAvKiogQGluaGVyaXREb2MgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWxpZGF0b3JzKHN0ZXBWYWxpZGF0b3IodGhpcy5zdGVwKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YDQsNCx0L7RgtGH0LjQuiDRgdC+0LHRi9GC0LjRjyDQvdCw0LbQsNGC0LjRjyDRgdGC0YDQtdC70L7QuiDQutC70LDQstC40LDRgtGD0YDRiy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdGVwINCo0LDQsyDQuNC30LzQtdC90LXQvdC40Y8g0LrQvtC70LjRh9C10YHRgtCy0LAuXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd0Rvd24nLCBbJy1zdGVwJ10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd1VwJywgWydzdGVwJ10pXG4gICAgcHVibGljIG9uQXJyb3coc3RlcDogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBpZiAoIXN0ZXApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdGVwID4gMCkge1xuICAgICAgICAgICAgdGhpcy5pbmNpZGVudCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kZWNyZW1lbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0LLQtdC70LjRh9C40LLQsNC10YIg0LfQvdCw0YfQtdC90LjQtSDQsiDQv9C+0LvQtSDQstCy0L7QtNCwINC90LAgMSDRiNCw0LMuINCV0YHQu9C4INGH0LjRgdC70L4g0LIg0L/QvtC70LUg0LLQstC+0LTQsCDQvdC1INC60YDQsNGC0L3QviDRiNCw0LPRgywg0YLQviDRg9Cy0LXQu9C40YfQuNGCINC00L4g0LHQu9C40LbQsNC50YjQtdCz0L4g0LrRgNCw0YLQvdC+0LPQviDQt9C90LDRh9C10L3QuNGPLlxuICAgICAqL1xuICAgIHB1YmxpYyBpbmNpZGVudCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5udW1iZXJJbnB1dC5vbkFycm93KHRoaXMuc3RlcCAtICgodGhpcy5udW1iZXJJbnB1dC52YWx1ZSB8fCAwKSAlIHRoaXMuc3RlcCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0LzQtdC90YzRiNCw0LXRgiDQt9C90LDRh9C10L3QuNC1INCyINC/0L7Qu9C1INCy0LLQvtC00LAg0L3QsCAxINGI0LDQsy4g0JXRgdC70Lgg0YfQuNGB0LvQviDQsiDQv9C+0LvQtSDQstCy0L7QtNCwINC90LUg0LrRgNCw0YLQvdC+INGI0LDQs9GDLCDRgtC+INGD0LzQtdC90YzRiNC40YIg0LTQviDQsdC70LjQttCw0LnRiNC10LPQviDQutGA0LDRgtC90L7Qs9C+INC30L3QsNGH0LXQvdC40Y8uXG4gICAgICovXG4gICAgcHVibGljIGRlY3JlbWVudCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5udW1iZXJJbnB1dC5vbkFycm93KC0oKHRoaXMubnVtYmVySW5wdXQudmFsdWUgfHwgMCkgJSB0aGlzLnN0ZXApIHx8IC10aGlzLnN0ZXApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0YfQuNGJ0LDQtdGCINC/0L7Qu9GPINCy0LLQvtC00LAuXG4gICAgICovXG4gICAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRyb2w/LnBhdGNoVmFsdWUobnVsbCk7XG4gICAgICAgIHRoaXMuY2xpY2tDbGVhckV2ZW50LmVtaXQoKTtcbiAgICB9XG59XG4iLCI8dHVpLWxvYWRlciAqbmdJZj1cImZvcm1Db250cm9sXCIgY2xhc3M9XCJ3LWZ1bGxcIiBbb3ZlcmxheV09XCJ0cnVlXCIgW3Nob3dMb2FkZXJdPVwic2hvd0xvYWRlclwiIFtzaXplXT1cInNpemVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgdGV4dC1jZW50ZXIgZ2FwLTFcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkLXdpdGgtYnV0dG9uIGZsZXggZ3JvdyByb3VuZGVkLXhsXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgIHR1aU1vZGU9XCJvbkxpZ2h0XCJcbiAgICAgICAgICAgICAgICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIW51bWJlcklucHV0LmNhbkRlY3JlbWVudFwiXG4gICAgICAgICAgICAgICAgW2ZvY3VzYWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW3NpemVdPVwic2l6ZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrLnByZXZlbnQpPVwiZGVjcmVtZW50KClcIlxuICAgICAgICAgICAgICAgIChtb3VzZWRvd24ucHJldmVudCk9XCJudW1iZXJJbnB1dC5uYXRpdmVGb2N1c2FibGVFbGVtZW50Py5mb2N1cygpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8dHVpLXN2ZyBzcmM9XCJzY0ljb25NaW51c1wiPjwvdHVpLXN2Zz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPHR1aS1pbnB1dC1udW1iZXJcbiAgICAgICAgICAgICAgICAjbnVtYmVySW5wdXRcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIFt0dWlIaW50XT1cIihbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luYyApPy5tZXNzYWdlXCJcbiAgICAgICAgICAgICAgICBbdHVpVGV4dGZpZWxkUG9zdGZpeF09XCJxdWFudGl0eVVuaXQgfHwgJydcIlxuICAgICAgICAgICAgICAgIFt0dWlUZXh0ZmllbGRMYWJlbE91dHNpZGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW21pbl09XCJzdGVwXCJcbiAgICAgICAgICAgICAgICBbdHVpVGV4dGZpZWxkU2l6ZV09XCJzaXplXCJcbiAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLnRleHQtYWxpZ25dPVwiJ2NlbnRlcidcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5mb250LXdlaWdodF09XCI3MDBcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZ3Jvd1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3R1aS1pbnB1dC1udW1iZXI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgIHR1aU1vZGU9XCJvbkxpZ2h0XCJcbiAgICAgICAgICAgICAgICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCJzaXplXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIW51bWJlcklucHV0LmNhbkluY3JlbWVudFwiXG4gICAgICAgICAgICAgICAgW2ZvY3VzYWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrLnByZXZlbnQpPVwiaW5jaWRlbnQoKVwiXG4gICAgICAgICAgICAgICAgKG1vdXNlZG93bi5wcmV2ZW50KT1cIm51bWJlcklucHV0Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ/LmZvY3VzKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDx0dWktc3ZnIHNyYz1cInNjSWNvblBsdXNcIj48L3R1aS1zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0Nyb3NzXCJcbiAgICAgICAgICAgIHR1aUljb25CdXR0b25cbiAgICAgICAgICAgIHR1aU1vZGU9XCJvbkxpZ2h0XCJcbiAgICAgICAgICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgICAgICAgICAgW3NpemVdPVwic2l6ZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIW51bWJlcklucHV0LmNhbkluY3JlbWVudFwiXG4gICAgICAgICAgICBbZm9jdXNhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgICAgIChjbGljay5wcmV2ZW50KT1cImNsZWFyKClcIlxuICAgICAgICAgICAgKG1vdXNlZG93bi5wcmV2ZW50KT1cIm51bWJlcklucHV0Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ/LmZvY3VzKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8dHVpLXN2ZyBzcmM9XCJzY0ljb25Dcm9zc1wiPjwvdHVpLXN2Zz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L3R1aS1sb2FkZXI+XG4iXX0=
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtaW5wdXQtcXVhbnRpdHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhdGFsb2cvaW5wdXQtcXVhbnRpdHkvc2MtaW5wdXQtcXVhbnRpdHkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhdGFsb2cvaW5wdXQtcXVhbnRpdHkvc2MtaW5wdXQtcXVhbnRpdHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLDRCQUE0QixFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3RGLE9BQU8sRUFBRSwwQkFBMEIsRUFBK0IsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFReEYsTUFBTSxPQUFPLHdCQUF5QixTQUFRLDBCQUFrQztJQTBENUU7Ozs7OztPQU1HO0lBQ0gsWUFJSSxTQUEyQixFQUUzQixHQUFzQixFQUd0QixXQUF1RDtRQUV2RCxLQUFLLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQXJFdkM7O1dBRUc7UUFFSSxTQUFJLEdBQVcsQ0FBQyxDQUFDO1FBUXhCOztXQUVHO1FBRUksZUFBVSxHQUFZLEtBQUssQ0FBQztRQUVuQzs7V0FFRztRQUVJLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFFakM7O1dBRUc7UUFHSSxlQUFVLEdBQTRCLFNBQVMsQ0FBQztRQUV2RDs7V0FFRztRQUdJLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFFbkM7O1dBRUc7UUFHSSxTQUFJLEdBQW1DLEdBQUcsQ0FBQztRQUVsRDs7V0FFRztRQUVJLG9CQUFlLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7SUFxQnRFLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDZCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQWtDLENBQUM7SUFDbkQsQ0FBQztJQUVELGtCQUFrQjtJQUNGLFFBQVE7UUFDcEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3hEO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFHSSxPQUFPLENBQUMsSUFBbUI7UUFDOUIsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNQLE9BQU87U0FDVjtRQUVELElBQUksSUFBSSxHQUFHLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNuQjthQUFNO1lBQ0gsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ3BCO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUTtRQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVM7UUFDWixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSztRQUNSLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQzs7cUhBcklRLHdCQUF3QixrQkFvRXJCLFNBQVMseUNBRVQsaUJBQWlCLGFBR2pCLDRCQUE0Qjt5R0F6RS9CLHdCQUF3QiwwaUJBSXRCLHVCQUF1Qix1RUNoQ3RDLG15RUF5REE7MkZEN0JhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDSSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTTs7MEJBb0UxQyxRQUFROzswQkFDUixJQUFJOzswQkFDSixNQUFNOzJCQUFDLFNBQVM7OzBCQUVoQixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBRXhCLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsNEJBQTRCOzRDQXBFdkIsV0FBVztzQkFEM0IsU0FBUzt1QkFBQyx1QkFBdUI7Z0JBTzNCLElBQUk7c0JBRFYsS0FBSztnQkFPQyxZQUFZO3NCQURsQixLQUFLO2dCQU9DLFVBQVU7c0JBRGhCLEtBQUs7Z0JBT0MsU0FBUztzQkFEZixLQUFLO2dCQVFDLFVBQVU7c0JBRmhCLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsc0JBQXNCO2dCQVE1QixVQUFVO3NCQUZoQixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFRMUIsSUFBSTtzQkFGVixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGdCQUFnQjtnQkFPdEIsZUFBZTtzQkFEckIsTUFBTTtnQkE4Q0EsT0FBTztzQkFGYixZQUFZO3VCQUFDLG1CQUFtQixFQUFFLENBQUMsT0FBTyxDQUFDOztzQkFDM0MsWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHN0ZXBWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi92YWxpZGF0b3JzL3N0ZXBWYWxpZGF0b3InO1xuaW1wb3J0IHsgVFVJX05VTUJFUl9WQUxVRV9UUkFOU0ZPUk1FUiwgVHVpSW5wdXROdW1iZXJDb21wb25lbnQgfSBmcm9tICdAdGFpZ2EtdWkva2l0Jztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmltcG9ydCB7IFR1aUxvYWRlckNvbXBvbmVudCwgVHVpU2l6ZUwsIFR1aVNpemVNLCBUdWlTaXplUyB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0VHVpTnVsbGFibGVDb250cm9sLCBBYnN0cmFjdFR1aVZhbHVlVHJhbnNmb3JtZXIgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzYy1pbnB1dC1xdWFudGl0eScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLWlucHV0LXF1YW50aXR5LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zYy1pbnB1dC1xdWFudGl0eS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY0lucHV0UXVhbnRpdHlDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFR1aU51bGxhYmxlQ29udHJvbDxudW1iZXI+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiDQmtC+0LzQv9C+0L3QtdC90YIg0L/QvtC70Y8g0LLQstC+0LTQsC5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKFR1aUlucHV0TnVtYmVyQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgbnVtYmVySW5wdXQ6IFR1aUlucHV0TnVtYmVyQ29tcG9uZW50O1xuXG4gICAgLyoqXG4gICAgICog0KjQsNCzINGD0LLQtdC70LjRh9C10L3QuNGPINC60L7Qu9C40YfQtdGB0YLQstCwLiDQntGC0LLQtdGH0LDQtdGCINC30LAg0L/RgNC+0LLQtdGA0LrRgyDQutGA0LDRgtC90L7RgdGC0Lgg0LLQstC+0LTQsC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzdGVwOiBudW1iZXIgPSAxO1xuXG4gICAgLyoqXG4gICAgICog0JXQtNC40L3QuNGG0LAg0LjQt9C80LXRgNC10L3QuNGPINC60L7Qu9C40YfQtdGB0YLQstCwLiDQkdGD0LTQtdGCINGD0LrQsNC30LDQvdCwINCyINC/0L7RgdGC0YTQuNC60YHQtSDQv9C+0LvRjyDQstCy0L7QtNCwLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHF1YW50aXR5VW5pdD86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0L3QtdC+0LHRhdC+0LTQuNC80L4g0L7RgtC+0LHRgNCw0LfQuNGC0Ywge0BsaW5rIFR1aUxvYWRlckNvbXBvbmVudH0g0L3QsNC0INC60L7QvNC/0L7QvdC10L3RgtC+0LwuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd0xvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDQvdC10L7QsdGF0L7QtNC40LzQviDQvtGC0L7QsdGA0LDQt9C40YLRjCDQutC90L7Qv9C60YMg0L7Rh9C40YHRgtC60Lgg0L/QvtC70Y8g0LLQstC+0LTQsC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93Q3Jvc3M6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog0KTQvtGA0LzQsNGCINCy0L3QtdGI0L3QtdCz0L4g0LLQuNC00LAg0LrQvtC80L/QvtC90LXQvdGC0LAuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1hcHBlYXJhbmNlJylcbiAgICBwdWJsaWMgYXBwZWFyYW5jZTogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgPSAncHJpbWFyeSc7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC60L7QvNC/0L7QvdC10L3RgiDQtNC10LDQutGC0LjQstC40YDQvtCy0LDQvS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWRpc2FibGVkJylcbiAgICBwdWJsaWMgaXNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog0KDQsNC30LzQtdGAINC60L7QvNC/0L7QvdC10L3RgtCwLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2l6ZScpXG4gICAgcHVibGljIHNpemU6IFR1aVNpemVMIHwgVHVpU2l6ZU0gfCBUdWlTaXplUyA9ICdtJztcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDIFwi0J7Rh9C40YHRgtC40YLRjFwiLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBjbGlja0NsZWFyRXZlbnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NJbnB1dFF1YW50aXR5Q29tcG9uZW50fS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuZ0NvbnRyb2wg0J7QsdGK0LXQutGCINC/0L7Qu9GPINCy0LLQvtC00LAg0LTQu9GPINC90LDRgdGC0YDQvtC50LrQuCDQstCw0LvQuNC00LDRhtC40LguXG4gICAgICogQHBhcmFtIGNkciDQntCx0YrQtdC60YIg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSDQvtCx0L3QsNGA0YPQttC10L3QuNC10Lwg0LjQt9C80LXQvdC10L3QuNC5LlxuICAgICAqIEBwYXJhbSB0cmFuc2Zvcm1lciDQn9GA0LXQvtCx0YDQsNC30L7QstCw0YLQtdC70Ywg0LfQvdCw0YfQtdC90LjQuSDRjdC70LXQvNC10L3RgtCwINGE0L7RgNC80YsuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBuZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpXG4gICAgICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVFVJX05VTUJFUl9WQUxVRV9UUkFOU0ZPUk1FUilcbiAgICAgICAgdHJhbnNmb3JtZXI6IEFic3RyYWN0VHVpVmFsdWVUcmFuc2Zvcm1lcjxudW1iZXIgfCBudWxsPlxuICAgICkge1xuICAgICAgICBzdXBlcihuZ0NvbnRyb2wsIGNkciwgdHJhbnNmb3JtZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5udW1iZXJJbnB1dD8uZm9jdXNlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGZvcm1Db250cm9sKCk6IEZvcm1Db250cm9sPGFueT4gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbCBhcyBGb3JtQ29udHJvbDxhbnk+IHwgbnVsbDtcbiAgICB9XG5cbiAgICAvKiogQGluaGVyaXREb2MgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWxpZGF0b3JzKHN0ZXBWYWxpZGF0b3IodGhpcy5zdGVwKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YDQsNCx0L7RgtGH0LjQuiDRgdC+0LHRi9GC0LjRjyDQvdCw0LbQsNGC0LjRjyDRgdGC0YDQtdC70L7QuiDQutC70LDQstC40LDRgtGD0YDRiy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdGVwINCo0LDQsyDQuNC30LzQtdC90LXQvdC40Y8g0LrQvtC70LjRh9C10YHRgtCy0LAuXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd0Rvd24nLCBbJy1zdGVwJ10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd1VwJywgWydzdGVwJ10pXG4gICAgcHVibGljIG9uQXJyb3coc3RlcDogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBpZiAoIXN0ZXApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdGVwID4gMCkge1xuICAgICAgICAgICAgdGhpcy5pbmNpZGVudCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kZWNyZW1lbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0LLQtdC70LjRh9C40LLQsNC10YIg0LfQvdCw0YfQtdC90LjQtSDQsiDQv9C+0LvQtSDQstCy0L7QtNCwINC90LAgMSDRiNCw0LMuINCV0YHQu9C4INGH0LjRgdC70L4g0LIg0L/QvtC70LUg0LLQstC+0LTQsCDQvdC1INC60YDQsNGC0L3QviDRiNCw0LPRgywg0YLQviDRg9Cy0LXQu9C40YfQuNGCINC00L4g0LHQu9C40LbQsNC50YjQtdCz0L4g0LrRgNCw0YLQvdC+0LPQviDQt9C90LDRh9C10L3QuNGPLlxuICAgICAqL1xuICAgIHB1YmxpYyBpbmNpZGVudCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5udW1iZXJJbnB1dC5vbkFycm93KHRoaXMuc3RlcCAtICgodGhpcy5udW1iZXJJbnB1dC52YWx1ZSB8fCAwKSAlIHRoaXMuc3RlcCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0LzQtdC90YzRiNCw0LXRgiDQt9C90LDRh9C10L3QuNC1INCyINC/0L7Qu9C1INCy0LLQvtC00LAg0L3QsCAxINGI0LDQsy4g0JXRgdC70Lgg0YfQuNGB0LvQviDQsiDQv9C+0LvQtSDQstCy0L7QtNCwINC90LUg0LrRgNCw0YLQvdC+INGI0LDQs9GDLCDRgtC+INGD0LzQtdC90YzRiNC40YIg0LTQviDQsdC70LjQttCw0LnRiNC10LPQviDQutGA0LDRgtC90L7Qs9C+INC30L3QsNGH0LXQvdC40Y8uXG4gICAgICovXG4gICAgcHVibGljIGRlY3JlbWVudCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5udW1iZXJJbnB1dC5vbkFycm93KC0oKHRoaXMubnVtYmVySW5wdXQudmFsdWUgfHwgMCkgJSB0aGlzLnN0ZXApIHx8IC10aGlzLnN0ZXApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0YfQuNGJ0LDQtdGCINC/0L7Qu9GPINCy0LLQvtC00LAuXG4gICAgICovXG4gICAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRyb2w/LnBhdGNoVmFsdWUobnVsbCk7XG4gICAgICAgIHRoaXMuY2xpY2tDbGVhckV2ZW50LmVtaXQoKTtcbiAgICB9XG59XG4iLCI8dHVpLWxvYWRlciAqbmdJZj1cImZvcm1Db250cm9sXCIgY2xhc3M9XCJ3LWZ1bGxcIiBbb3ZlcmxheV09XCJ0cnVlXCIgW3Nob3dMb2FkZXJdPVwic2hvd0xvYWRlclwiIFtzaXplXT1cInNpemVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgdGV4dC1jZW50ZXIgZ2FwLTFcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkLXdpdGgtYnV0dG9uIGZsZXggZ3JvdyByb3VuZGVkLXhsXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgIHR1aU1vZGU9XCJvbkxpZ2h0XCJcbiAgICAgICAgICAgICAgICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIW51bWJlcklucHV0LmNhbkRlY3JlbWVudFwiXG4gICAgICAgICAgICAgICAgW2ZvY3VzYWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW3NpemVdPVwic2l6ZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrLnByZXZlbnQpPVwiZGVjcmVtZW50KClcIlxuICAgICAgICAgICAgICAgIChtb3VzZWRvd24ucHJldmVudCk9XCJudW1iZXJJbnB1dC5uYXRpdmVGb2N1c2FibGVFbGVtZW50Py5mb2N1cygpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8dHVpLXN2ZyBzcmM9XCJ0dWlJY29uTWludXNMYXJnZVwiPjwvdHVpLXN2Zz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPHR1aS1pbnB1dC1udW1iZXJcbiAgICAgICAgICAgICAgICAjbnVtYmVySW5wdXRcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIFt0dWlIaW50XT1cIihbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luYyApPy5tZXNzYWdlXCJcbiAgICAgICAgICAgICAgICBbdHVpVGV4dGZpZWxkUG9zdGZpeF09XCJxdWFudGl0eVVuaXQgfHwgJydcIlxuICAgICAgICAgICAgICAgIFt0dWlUZXh0ZmllbGRMYWJlbE91dHNpZGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW21pbl09XCJzdGVwXCJcbiAgICAgICAgICAgICAgICBbdHVpVGV4dGZpZWxkU2l6ZV09XCJzaXplXCJcbiAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLnRleHQtYWxpZ25dPVwiJ2NlbnRlcidcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5mb250LXdlaWdodF09XCI3MDBcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZ3Jvd1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3R1aS1pbnB1dC1udW1iZXI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgIHR1aU1vZGU9XCJvbkxpZ2h0XCJcbiAgICAgICAgICAgICAgICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCJzaXplXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIW51bWJlcklucHV0LmNhbkluY3JlbWVudFwiXG4gICAgICAgICAgICAgICAgW2ZvY3VzYWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrLnByZXZlbnQpPVwiaW5jaWRlbnQoKVwiXG4gICAgICAgICAgICAgICAgKG1vdXNlZG93bi5wcmV2ZW50KT1cIm51bWJlcklucHV0Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ/LmZvY3VzKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDx0dWktc3ZnIHNyYz1cInR1aUljb25QbHVzTGFyZ2VcIj48L3R1aS1zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0Nyb3NzXCJcbiAgICAgICAgICAgIHR1aUljb25CdXR0b25cbiAgICAgICAgICAgIHR1aU1vZGU9XCJvbkxpZ2h0XCJcbiAgICAgICAgICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgICAgICAgICAgW3NpemVdPVwic2l6ZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIW51bWJlcklucHV0LmNhbkluY3JlbWVudFwiXG4gICAgICAgICAgICBbZm9jdXNhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgICAgIChjbGljay5wcmV2ZW50KT1cImNsZWFyKClcIlxuICAgICAgICAgICAgKG1vdXNlZG93bi5wcmV2ZW50KT1cIm51bWJlcklucHV0Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ/LmZvY3VzKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8dHVpLXN2ZyBzcmM9XCJ0dWlJY29uQ2xvc2VMYXJnZVwiPjwvdHVpLXN2Zz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L3R1aS1sb2FkZXI+XG4iXX0=
@@ -65,7 +65,7 @@ export class ScPriceCardComponent {
65
65
  /**
66
66
  * {@link FormControl} поля ввода количества товара в корзине.
67
67
  */
68
- this.quantityControl = new FormControl(null);
68
+ this.quantityControl = new FormControl(null, { updateOn: 'blur' });
69
69
  /**
70
70
  * {@link Observable} изменения количества товара в корзине.
71
71
  */
@@ -156,4 +156,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
156
156
  type: HostBinding,
157
157
  args: ['attr.data-size']
158
158
  }] } });
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcHJpY2UtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY2F0YWxvZy9wcmljZS1jYXJkL3NjLXByaWNlLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhdGFsb2cvcHJpY2UtY2FyZC9zYy1wcmljZS1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEksT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxPQUFPLEVBQWtGLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7QUFJMUo7O0dBRUc7QUFPSCxNQUFNLE9BQU8sb0JBQW9CO0lBa0g3Qjs7Ozs7Ozs7T0FRRztJQUNILFlBQ29CLFdBQXdCLEVBQ3ZCLFdBQTBCLEVBQzFCLGdCQUFvQyxFQUNuQixJQUFhLEVBQ0csaUJBQXlCLEVBQzFELEdBQXNCO1FBTHZCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVyxDQUFlO1FBQzFCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFDbkIsU0FBSSxHQUFKLElBQUksQ0FBUztRQUNHLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtRQUMxRCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWhJM0M7O1dBRUc7UUFDSSx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFFM0M7O1dBRUc7UUFDSSx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFFM0M7O1dBRUc7UUFFSSx3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFnQzVDOztXQUVHO1FBRUksdUJBQWtCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFekU7O1dBRUc7UUFFSSx3QkFBbUIsR0FBNEIsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUVwRjs7V0FFRztRQUVJLG9CQUFlLEdBQTZCLElBQUksWUFBWSxFQUFjLENBQUM7UUFFbEY7O1dBRUc7UUFFSSxtQkFBYyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXJFOztXQUVHO1FBQ0kscUJBQWdCLEdBQW1DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBRTVHOztXQUVHO1FBQ0ksb0JBQWUsR0FBK0IsSUFBSSxXQUFXLENBQWdCLElBQUksQ0FBQyxDQUFDO1FBRTFGOztXQUVHO1FBRUkseUJBQW9CLEdBQThCLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDO1FBRTNGOztXQUVHO1FBQ2EsZ0JBQVcsR0FBd0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVwRjs7V0FFRztRQUdJLFNBQUksR0FBeUIsR0FBRyxDQUFDO0lBaUNyQyxDQUFDO0lBakhKOzs7O09BSUc7SUFDSCxJQUFXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUNXLFFBQVEsQ0FBQyxLQUE2QjtRQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUV2QixJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsSUFBSSxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN4RixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUE4REQ7OztPQUdHO0lBQ0gsSUFBVyxlQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUNoRCxDQUFDO0lBMkJEOztPQUVHO0lBQ0gsSUFBVyxlQUFlO1FBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNJLFlBQVk7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ3BGLENBQUM7SUFFRDs7T0FFRztJQUNJLFlBQVk7UUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7O2lIQXZKUSxvQkFBb0IsNEdBK0hqQixPQUFPLGFBQ1AsdUJBQXVCO3FHQWhJMUIsb0JBQW9CLHFiQ2hCakMscXZLQXFFQTsyRkRyRGEsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNJLGVBQWUsbUJBR1IsdUJBQXVCLENBQUMsTUFBTTs7MEJBaUkxQyxNQUFNOzJCQUFDLE9BQU87OzBCQUNkLE1BQU07MkJBQUMsdUJBQXVCOzRFQWpINUIsbUJBQW1CO3NCQUR6QixLQUFLO2dCQWtCSyxRQUFRO3NCQURsQixLQUFLO2dCQWNDLE9BQU87c0JBRGIsS0FBSztnQkFPQyxrQkFBa0I7c0JBRHhCLE1BQU07Z0JBT0EsbUJBQW1CO3NCQUR6QixNQUFNO2dCQU9BLGVBQWU7c0JBRHJCLE1BQU07Z0JBT0EsY0FBYztzQkFEcEIsTUFBTTtnQkFpQkEsb0JBQW9CO3NCQUQxQixNQUFNO2dCQWFBLElBQUk7c0JBRlYsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5qZWN0LCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFVuaXRzSGVscGVyIH0gZnJvbSAnLi4vLi4vaGVscGVycy9zYy11bml0cy1oZWxwZXInO1xuaW1wb3J0IHsgU0NfUEFUSF9JTUFHRV9OT1RfRk9VTkQsIFNDX1VSTFMsIFNjQXV0aFNlcnZpY2UsIFNjQ2FydEl0ZW0sIFNjSVVybHMsIFNjUHJvZHVjdCwgU2NXYXJlaG91c2UsIFNjV2FyZWhvdXNlU2VydmljZSB9IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgVHVpU2l6ZVMsIFR1aVNpemVYUyB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0LrQsNGA0YLQvtGH0LrQuCDRgtC+0LLQsNGA0LAuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2MtcHJpY2UtY2FyZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLXByaWNlLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NjLXByaWNlLWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2NQcmljZUNhcmRDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0L3QtdC+0LHRhdC+0LTQuNC80L4g0L7RgtC+0LHRgNCw0LfQuNGC0Ywg0LvQvtCw0LTQtdGAINC00LvRjyDQv9C+0LvRjyDQstCy0L7QtNCwINC60L7Qu9C40YfQtdGB0YLQstCwINGC0L7QstCw0YDQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcXVhbnRpdHlTaG93TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC90LXQvtCx0YXQvtC00LjQvNC+INC+0YLQvtCx0YDQsNC30LjRgtGMINC70L7QsNC00LXRgCDQtNC70Y8g0LrQvdC+0L/QutC4INC40LfQsdGA0LDQvdC90YvRhSDRgtC+0LLQsNGA0L7QsiDQuCDQutCw0YLQtdCz0L7RgNC40LkuXG4gICAgICovXG4gICAgcHVibGljIGZhdm9yaXRlU2hvd0xvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDQvdC10L7QsdGF0L7QtNC40LzQviDQvtGC0L7QsdGA0LDQt9C40YLRjCDQv9C+0LvQtSDQstCy0L7QtNCwINC60L7Qu9C40YfQtdGB0YLQstCwINGC0L7QstCw0YDQsC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93UXVhbnRpdHlDb250cm9sOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDQn9C+0LfQuNGG0LjRjyDRgtC+0LLQsNGA0LAg0LIg0LrQvtGA0LfQuNC90LUuXG4gICAgICpcbiAgICAgKiBUT0RPOiDQodC00LXQu9Cw0YLRjCDRgtC+0LLQsNGAINCyINC60L7RgNC30LjQvdC1INC90LDQsdC70Y7QtNCw0LXQvNC+0Lkg0L/QtdGA0LXQvNC10L3QvdC+0Lkg0L/QvtGB0LvQtSDRgNC10LDQu9C40LfQsNGG0LjQuCBUQVNLOlsjNzE0NF0uXG4gICAgICovXG4gICAgcHVibGljIGdldCBjYXJ0SXRlbSgpOiBTY0NhcnRJdGVtIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NhcnRJdGVtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0L7Qt9C40YbQuNGPINGC0L7QstCw0YDQsCDQsiDQutC+0YDQt9C40L3QtVxuICAgICAqXG4gICAgICogVE9ETzog0KHQtNC10LvQsNGC0Ywg0YLQvtCy0LDRgCDQsiDQutC+0YDQt9C40L3QtSDQvdCw0LHQu9GO0LTQsNC10LzQvtC5INC/0LXRgNC10LzQtdC90L3QvtC5INC/0L7RgdC70LUg0YDQtdCw0LvQuNC30LDRhtC40LggVEFTSzpbIzcxNDRdLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBjYXJ0SXRlbSh2YWx1ZTogU2NDYXJ0SXRlbSB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9jYXJ0SXRlbSA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMucXVhbnRpdHlDb250cm9sLnBhdGNoVmFsdWUodGhpcy5fY2FydEl0ZW0/LnF1YW50aXR5ID8/IG51bGwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgdGhpcy5xdWFudGl0eVNob3dMb2FkZXIgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YrQtdC60YIg0YLQvtCy0LDRgNCwLlxuICAgICAqXG4gICAgICogVE9ETzog0KHQtNC10LvQsNGC0Ywg0YLQvtCy0LDRgCDQvdCw0LHQu9GO0LTQsNC10LzQvtC5INC/0LXRgNC10LzQtdC90L3QvtC5INC/0L7RgdC70LUg0YDQtdCw0LvQuNC30LDRhtC40LggVEFTSzpbIzcxNDRdLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHByb2R1Y3Q/OiBTY1Byb2R1Y3Q7XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDQvdCw0LbQsNGC0LjRjyDQvdCwINC60L3QvtC/0LrRgyBcItCSINC40LfQsdGA0LDQvdC90L7QtVwiLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBjbGlja0Zhdm9yaXRlRXZlbnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDIFwi0JIg0LrQvtGA0LfQuNC90YNcIi5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY2xpY2tBZGRUb0NhcnRFdmVudDogRXZlbnRFbWl0dGVyPFNjUHJvZHVjdD4gPSBuZXcgRXZlbnRFbWl0dGVyPFNjUHJvZHVjdD4oKTtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDINC+0YfQuNGB0YLQutC4INC60L7Qu9C40YfQtdGB0YLQstCwINGC0L7QstCw0YDQsC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY2xpY2tDbGVhckV2ZW50OiBFdmVudEVtaXR0ZXI8U2NDYXJ0SXRlbT4gPSBuZXcgRXZlbnRFbWl0dGVyPFNjQ2FydEl0ZW0+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDQvdCw0LbQsNGC0LjRjyDQvdCwINC60LDRgNGC0L7Rh9C60YMg0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBjbGlja0NhcmRFdmVudDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDQstGL0LHRgNCw0L3QvdC+0LPQviDRgdC60LvQsNC00LAuXG4gICAgICovXG4gICAgcHVibGljIHdhcmVob3VzZVNlbGVjdCQ6IE9ic2VydmFibGU8U2NXYXJlaG91c2UgfCBudWxsPiA9IHRoaXMud2FyZWhvdXNlU2VydmljZS5nZXRXYXJlaG91c2VTZWxlY3RDaGFuZ2UkKCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgRm9ybUNvbnRyb2x9INC/0L7Qu9GPINCy0LLQvtC00LAg0LrQvtC70LjRh9C10YHRgtCy0LAg0YLQvtCy0LDRgNCwINCyINC60L7RgNC30LjQvdC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBxdWFudGl0eUNvbnRyb2w6IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+ID0gbmV3IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+KG51bGwpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDQutC+0LvQuNGH0LXRgdGC0LLQsCDRgtC+0LLQsNGA0LAg0LIg0LrQvtGA0LfQuNC90LUuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHF1YW50aXR5VmFsdWVDaGFuZ2VzOiBPYnNlcnZhYmxlPG51bWJlciB8IG51bGw+ID0gdGhpcy5xdWFudGl0eUNvbnRyb2wudmFsdWVDaGFuZ2VzO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDRgdGC0LDRgtGD0YHQsCDQsNCy0YLQvtGA0LjQt9Cw0YbQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdXRoU3RhdHVzJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aENoYW5nZSgpO1xuXG4gICAgLyoqXG4gICAgICog0KDQsNC30LzQtdGAINC60L7QvNC/0L7QvdC10L3RgtCwLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2l6ZScpXG4gICAgcHVibGljIHNpemU6IFR1aVNpemVTIHwgVHVpU2l6ZVhTID0gJ20nO1xuXG4gICAgLyoqXG4gICAgICog0JrQvtC90LLQtdGA0YLQsNGG0LjRjyDRgNCw0LfQvNC10YDQsCDQtNC70Y8g0LrQvtC80L/QvtC90LXQvdGC0LAgc2MtaW5wdXQtcXVhbnRpdHkuXG4gICAgICogVE9ETzog0KDQtdGI0LjRgtGMINC/0YDQvtCx0LvQtdC80YMg0YEg0YTRg9C90LrRhtC40L7QvdCw0LvQvtC8IHNpemUg0LTQu9GPINGA0LDQt9C90YvRhSDQv9C70LDRgtGE0L7RgNC8LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgZ2V0UXVhbnRpdHlTaXplKCk6IFR1aVNpemVTIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2l6ZSA9PT0gJ3hzJyA/ICdzJyA6IHRoaXMuc2l6ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9C+0LfQuNGG0LjRjyDRgtC+0LLQsNGA0LAg0LIg0LrQvtGA0LfQuNC90LUuXG4gICAgICpcbiAgICAgKiBUT0RPOiDQodC00LXQu9Cw0YLRjCDRgtC+0LLQsNGAINCyINC60L7RgNC30LjQvdC1INC90LDQsdC70Y7QtNCw0LXQvNC+0Lkg0L/QtdGA0LXQvNC10L3QvdC+0Lkg0L/QvtGB0LvQtSDRgNC10LDQu9C40LfQsNGG0LjQuCBUQVNLOlsjNzE0NF0uXG4gICAgICovXG4gICAgcHJpdmF0ZSBfY2FydEl0ZW0/OiBTY0NhcnRJdGVtIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNC40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NQcmljZUNhcmRDb21wb25lbnR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHVuaXRzSGVscGVyINCe0LHRitC10LrRgi3RhdGN0LvQv9C10YAg0LTQu9GPINGA0LDQsdC+0YLRiyDRgdC+INC30L3QsNGH0LXQvdC40Y/QvNC4INC10LTQuNC90LjRhiDQuNC30LzQtdGA0LXQvdC40Y8g0YLQvtCy0LDRgNCwLlxuICAgICAqIEBwYXJhbSBhdXRoU2VydmljZSDQodC10YDQstC40YEg0LDRg9GC0LXQvdGC0LjRhNC40LrQsNGG0LjQuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuS5cbiAgICAgKiBAcGFyYW0gd2FyZWhvdXNlU2VydmljZSDQodC10YDQstC40YEg0LTQu9GPINGA0LDQsdC+0YLRiyDRgdC+INGB0LrQu9Cw0LTQsNC80LguXG4gICAgICogQHBhcmFtIHVybHMg0KHQv9C40YHQvtC6INGB0YHRi9C70L7QuiDQvdCwINGA0LDQt9C00LXQu9GLIGJhY2tlbmQnYS5cbiAgICAgKiBAcGFyYW0gcGF0aEltYWdlTm90Rm91bmQg0J/Rg9GC0Ywg0LTQviDQuNC30L7QsdGA0LDQttC10L3QuNGPICfQotC+0LLQsNGAINC90LUg0L3QsNC50LTQtdC9Jy5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSB1bml0c0hlbHBlcjogVW5pdHNIZWxwZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aFNlcnZpY2U6IFNjQXV0aFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgd2FyZWhvdXNlU2VydmljZTogU2NXYXJlaG91c2VTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KFNDX1VSTFMpIHByaXZhdGUgcmVhZG9ubHkgdXJsczogU2NJVXJscyxcbiAgICAgICAgQEluamVjdChTQ19QQVRIX0lNQUdFX05PVF9GT1VORCkgcHJpdmF0ZSByZWFkb25seSBwYXRoSW1hZ2VOb3RGb3VuZDogc3RyaW5nLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHt9XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC90YPQttC90L4g0L/QvtC60LDQt9Cw0YLRjCDRgdC60LXQu9C10YLQvtC9LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgc2tlbGV0b25WaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMucHJvZHVjdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgdGB0YvQu9C60YMg0L3QsCDQuNC30L7QsdGA0LDQttC10L3QuNC1INC60LDRgNGC0L7Rh9C60Lgg0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDYXJkSW1hZ2UoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdD8uZ2V0SW1hZ2UodGhpcy51cmxzLmltZ1NlcnZlclVybCkgPz8gdGhpcy5wYXRoSW1hZ2VOb3RGb3VuZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQutC+0LzQv9C+0L3QtdC90YIg0LIg0L7Rh9C10YDQtdC00Ywg0L3QsCDQvtCx0L3QvtCy0LvQtdC90LjQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgbWFya0ZvckNoZWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG59XG4iLCI8IS0tIFRPRE86INGA0LXQsNC70LjQt9C+0LLQsNGC0Ywg0LTQsNC90L3Ri9C5INC60L7QvNC/0L7QvdC10L3RgiDQuCDQtNC70Y8g0LTQtdGB0LrRgtC+0L/QsCDQuCDQtNC70Y8g0LzQvtCx0LjQu9GM0L3QvtCz0L4g0L/RgNC40LvQvtC20LXQvdC40Y8uINCY0YHQv9GA0LDQstC40YLRjCDQstGB0LUg0LPQu9C+0LHQsNC70YzQvdGL0LUg0YLQsNC50LPQvtCy0YHQutC40LUg0YHRgtC40LvQuCwg0L/RgNC40LLQtdGB0YLQuCDQuNGFINCyINC/0L7RgNGP0LTQvtC6INGB0L7Qs9C70LDRgdC90L4g0YEg0LTQuNC30LDQudC90L7QvC4gLS0+XG48ZGl2ICpuZ0lmPVwicHJvZHVjdDsgZWxzZSBza2VsZXRvblwiIGNsYXNzPVwibWluLXctWzEwcmVtXSBzaGFkb3ctbWQgdy1hdXRvIHJvdW5kZWQteGwgcC0yIGdyaWQgaC1bMTlyZW1dIHRleHQteHMgcmVsYXRpdmVcIj5cbiAgICA8ZGl2IGNsYXNzPVwib3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICAgIDxpbWcgKGNsaWNrKT1cImNsaWNrQ2FyZEV2ZW50LmVtaXQoKVwiIFtzcmNdPVwiZ2V0Q2FyZEltYWdlKClcIiBbYWx0XT1cInByb2R1Y3QubmFtZVwiIGNsYXNzPVwicm91bmRlZC14bCB3LWZ1bGwgbWF4LWgtZnVsbCBvYmplY3QtY292ZXJcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxzYy1mYXZvcml0ZS1idG5cbiAgICAgICAgKm5nSWY9XCJhdXRoU3RhdHVzJCB8IGFzeW5jXCJcbiAgICAgICAgY2xhc3M9XCJ0b3AtMCBsZWZ0LTAgYWJzb2x1dGVcIlxuICAgICAgICAoY2xpY2tFdmVudCk9XCJjbGlja0Zhdm9yaXRlRXZlbnQuZW1pdCgpXCJcbiAgICAgICAgW3Nob3dMb2FkZXJdPVwiZmF2b3JpdGVTaG93TG9hZGVyXCJcbiAgICAgICAgW2lzRmF2b3JpdGVdPVwicHJvZHVjdC5pc0Zhdm9yaXRlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiEhcHJvZHVjdC5wcmltYXJ5Q2F0ZWdvcnk/LmlzRmF2b3JpdGVcIlxuICAgID48L3NjLWZhdm9yaXRlLWJ0bj5cbiAgICA8dHVpLXN2ZyAqbmdJZj1cInByb2R1Y3QuaXNQcmV2aW91c2x5T3JkZXJlZFwiIHNyYz1cInNjSWNvblN0YXJcIiBjbGFzcz1cInRvcC0wIHJpZ2h0LTAgYWJzb2x1dGUgdGV4dC1yZWQtNzAwXCI+PC90dWktc3ZnPlxuXG4gICAgPGEgY2xhc3M9XCJwLTAgbS0wXCIgdHVpTGluayBpY29uQWxpZ249XCJsZWZ0XCIgKGNsaWNrKT1cImNsaWNrQ2FyZEV2ZW50LmVtaXQoKVwiPlxuICAgICAgICA8cCBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LXNtIGxpbmUtY2xhbXAtM1wiIHN0eWxlPVwid29yZC1icmVhazogYnJlYWstd29yZDtcIj57eyBwcm9kdWN0Lm5hbWUgfX08L3A+XG4gICAgPC9hPlxuICAgIDxwICpuZ0lmPVwicHJvZHVjdD8ucGFja1wiIGNsYXNzPVwidGV4dC10dWktdGV4dC0wMlwiPtCd0L7RgNC80LAg0YPQv9Cw0LrQvtCy0LrQuDoge3sgcHJvZHVjdC5wYWNrIH19PC9wPlxuXG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXR1aS10ZXh0LTAyXCI+0JDRgNGC0LjQutGD0Ls6IHt7IHByb2R1Y3QuY29kZSB9fTwvcD5cbiAgICA8cCAqbmdJZj1cIihhdXRoU3RhdHVzJCB8IGFzeW5jKSAmJiBwcm9kdWN0Py5jb3N0RGF0ZVwiIGNsYXNzPVwidGV4dC10dWktdGV4dC0wMlwiPtCU0LDRgtCwOiB7eyBwcm9kdWN0LmNvc3REYXRlIH19PC9wPlxuICAgIDxkaXYgKm5nSWY9XCJ3YXJlaG91c2VTZWxlY3QkIHwgYXN5bmMgYXMgd2FyZWhvdXNlU2VsZWN0XCIgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwicHJvZHVjdC5kaXNjb3VudFwiIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgdGV4dC10dWktdGV4dC0wMlwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsaW5lLXRocm91Z2hcIj57eyBwcm9kdWN0LmRpc2NvdW50Q29zdFN0cmluZyB9fTwvc3Bhbj4gJm5ic3A7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHVpLXN1Y2Nlc3MtZmlsbCBmb250LWJvbGRcIj4gLXt7IHByb2R1Y3QuZGlzY291bnQucGVyY2VudCB9fSUgPC9zcGFuPlxuICAgICAgICAgICAgPHR1aS1zdmcgc3JjPVwidHVpSWNvbkluZm9MYXJnZVwiIFt0dWlIaW50XT1cImRpc2NvdW50SGludFwiIFt0dWlIaW50U2hvd0RlbGF5XT1cIjEwMFwiIHR1aUhpbnREaXJlY3Rpb249XCJ0b3BcIiBjbGFzcz1cInRleHQtYmxhY2sgIXRleHQteHMgIWgtNFwiPjwvdHVpLXN2Zz5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGlzY291bnRIaW50PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LWJvbGRcIj57eyBwcm9kdWN0LmRpc2NvdW50Lm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicHJvZHVjdC5kaXNjb3VudC5leHBpcmVkQXQgYXMgZXhwaXJlZEF0XCI+0JTQsNGC0LAg0L7QutC+0L3Rh9Cw0L3QuNGPOiB7eyBleHBpcmVkQXQgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gW2NsYXNzLnRleHQtdHVpLXRleHQtMDJdPVwiIXByb2R1Y3QuaXNXYXJlaG91c2VTdG9ja0V4aXN0KHdhcmVob3VzZVNlbGVjdC5pZClcIiBjbGFzcz1cImNvc3QgZm9udC1ib2xkXCI+e3sgcHJvZHVjdC5jb3N0UnViU3RyaW5nIH19PC9zcGFuPlxuICAgICAgICA8c3BhbiAqbmdJZj1cIiFwcm9kdWN0LnByaWNlSW5SdWJcIiBjbGFzcz1cInRleHQteHMgZm9udC1ib2xkIHRleHQtdHVpLXRleHQtMDIgaGlkZGVuIGdyb3VwLWhvdmVyOmJsb2NrXCI+e3sgcHJvZHVjdC5jb3N0U3RyaW5nIH19PC9zcGFuPlxuICAgICAgICA8c2MtcHJpY2Utd2FyZWhvdXNlLXN0b2NrIFtwcm9kdWN0XT1cInByb2R1Y3RcIj48L3NjLXByaWNlLXdhcmVob3VzZS1zdG9jaz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiIXNob3dRdWFudGl0eUNvbnRyb2xcIiBjbGFzcz1cImZsZXggZ2FwLTIgbWF4LXctZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1zdHJldGNoIG10LTFcIj5cbiAgICAgICAgPGJ1dHRvbiB0dWlCdXR0b24gKGNsaWNrKT1cImNsaWNrQWRkVG9DYXJ0RXZlbnQuZW1pdChwcm9kdWN0KVwiIFtzaG93TG9hZGVyXT1cInF1YW50aXR5U2hvd0xvYWRlclwiIFtzaXplXT1cInNpemVcIiBjbGFzcz1cImdyb3dcIj5cbiAgICAgICAgICAgIDx0dWktc3ZnIHNyYz1cInNjSWNvbkNhcnRcIiBjbGFzcz1cIiF0ZXh0LXhzICFoLTRcIj4gPC90dWktc3ZnPlxuICAgICAgICAgICAg0JIg0LrQvtGA0LfQuNC90YNcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJjYXJ0SXRlbVwiIGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgPHR1aS1zdmcgc3JjPVwidHVpSWNvbkNoZWNrXCIgY2xhc3M9XCIhaC01ICF3LTUgYmctdHVpLXByaW1hcnkgdGV4dC1ibGFjayByb3VuZGVkLW1kXCI+PC90dWktc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8c2MtaW5wdXQtcXVhbnRpdHlcbiAgICAgICAgKm5nSWY9XCJzaG93UXVhbnRpdHlDb250cm9sXCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cInF1YW50aXR5Q29udHJvbFwiXG4gICAgICAgIFtxdWFudGl0eVVuaXRdPVwicHJvZHVjdC5xdWFudGl0eVVuaXRcIlxuICAgICAgICBbc2l6ZV09XCJnZXRRdWFudGl0eVNpemVcIlxuICAgICAgICBbc3RlcF09XCJ1bml0c0hlbHBlci5wcm9kdWN0TXVsdGlwbGljaXR5KHByb2R1Y3QpXCJcbiAgICAgICAgW3Nob3dMb2FkZXJdPVwicXVhbnRpdHlTaG93TG9hZGVyXCJcbiAgICAgICAgKGNsaWNrQ2xlYXJFdmVudCk9XCJjbGlja0NsZWFyRXZlbnQuZW1pdChjYXJ0SXRlbSlcIlxuICAgICAgICBjbGFzcz1cInctZnVsbFwiXG4gICAgPjwvc2MtaW5wdXQtcXVhbnRpdHk+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNza2VsZXRvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBjYXJkLXdyYXBwZXIgYmctd2hpdGUgcm91bmRlZC14bCBvdmVyZmxvdy1oaWRkZW4gc2hhZG93LXNjLTFcIj5cbiAgICAgICAgPCEtLSDQmNC30L7QsdGA0LDQttC10L3QuNC1INGC0L7QstCw0YDQsCAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBoLTMvNSByb3VuZGVkLXQgYmctdHVpLWJhc2UtMDJcIj48L2Rpdj5cbiAgICAgICAgPCEtLSDQmtGA0LDRgtC60LDRjyDQuNC90YTQvtGA0LzQsNGG0LjRjyDQviDRgtC+0LLQsNGA0LUgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdyb3cgZ2FwLTIuNSBiZy13aGl0ZSByb3VuZGVkLWIgcC01XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIGgtNCByb3VuZGVkIGJnLXR1aS1iYXNlLTAyXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0zLzUgaC00IHJvdW5kZWQgYmctdHVpLWJhc2UtMDJcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgaC00IHJvdW5kZWQgYmctdHVpLWJhc2UtMDJcIj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcHJpY2UtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY2F0YWxvZy9wcmljZS1jYXJkL3NjLXByaWNlLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhdGFsb2cvcHJpY2UtY2FyZC9zYy1wcmljZS1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEksT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxPQUFPLEVBQWtGLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7QUFJMUo7O0dBRUc7QUFPSCxNQUFNLE9BQU8sb0JBQW9CO0lBa0g3Qjs7Ozs7Ozs7T0FRRztJQUNILFlBQ29CLFdBQXdCLEVBQ3ZCLFdBQTBCLEVBQzFCLGdCQUFvQyxFQUNuQixJQUFhLEVBQ0csaUJBQXlCLEVBQzFELEdBQXNCO1FBTHZCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVyxDQUFlO1FBQzFCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFDbkIsU0FBSSxHQUFKLElBQUksQ0FBUztRQUNHLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtRQUMxRCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWhJM0M7O1dBRUc7UUFDSSx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFFM0M7O1dBRUc7UUFDSSx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFFM0M7O1dBRUc7UUFFSSx3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFnQzVDOztXQUVHO1FBRUksdUJBQWtCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFekU7O1dBRUc7UUFFSSx3QkFBbUIsR0FBNEIsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUVwRjs7V0FFRztRQUVJLG9CQUFlLEdBQTZCLElBQUksWUFBWSxFQUFjLENBQUM7UUFFbEY7O1dBRUc7UUFFSSxtQkFBYyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXJFOztXQUVHO1FBQ0kscUJBQWdCLEdBQW1DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBRTVHOztXQUVHO1FBQ0ksb0JBQWUsR0FBK0IsSUFBSSxXQUFXLENBQWdCLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRWhIOztXQUVHO1FBRUkseUJBQW9CLEdBQThCLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDO1FBRTNGOztXQUVHO1FBQ2EsZ0JBQVcsR0FBd0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVwRjs7V0FFRztRQUdJLFNBQUksR0FBeUIsR0FBRyxDQUFDO0lBaUNyQyxDQUFDO0lBakhKOzs7O09BSUc7SUFDSCxJQUFXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUNXLFFBQVEsQ0FBQyxLQUE2QjtRQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUV2QixJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsSUFBSSxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN4RixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUE4REQ7OztPQUdHO0lBQ0gsSUFBVyxlQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUNoRCxDQUFDO0lBMkJEOztPQUVHO0lBQ0gsSUFBVyxlQUFlO1FBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNJLFlBQVk7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ3BGLENBQUM7SUFFRDs7T0FFRztJQUNJLFlBQVk7UUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7O2lIQXZKUSxvQkFBb0IsNEdBK0hqQixPQUFPLGFBQ1AsdUJBQXVCO3FHQWhJMUIsb0JBQW9CLHFiQ2hCakMscXZLQXFFQTsyRkRyRGEsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNJLGVBQWUsbUJBR1IsdUJBQXVCLENBQUMsTUFBTTs7MEJBaUkxQyxNQUFNOzJCQUFDLE9BQU87OzBCQUNkLE1BQU07MkJBQUMsdUJBQXVCOzRFQWpINUIsbUJBQW1CO3NCQUR6QixLQUFLO2dCQWtCSyxRQUFRO3NCQURsQixLQUFLO2dCQWNDLE9BQU87c0JBRGIsS0FBSztnQkFPQyxrQkFBa0I7c0JBRHhCLE1BQU07Z0JBT0EsbUJBQW1CO3NCQUR6QixNQUFNO2dCQU9BLGVBQWU7c0JBRHJCLE1BQU07Z0JBT0EsY0FBYztzQkFEcEIsTUFBTTtnQkFpQkEsb0JBQW9CO3NCQUQxQixNQUFNO2dCQWFBLElBQUk7c0JBRlYsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5qZWN0LCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFVuaXRzSGVscGVyIH0gZnJvbSAnLi4vLi4vaGVscGVycy9zYy11bml0cy1oZWxwZXInO1xuaW1wb3J0IHsgU0NfUEFUSF9JTUFHRV9OT1RfRk9VTkQsIFNDX1VSTFMsIFNjQXV0aFNlcnZpY2UsIFNjQ2FydEl0ZW0sIFNjSVVybHMsIFNjUHJvZHVjdCwgU2NXYXJlaG91c2UsIFNjV2FyZWhvdXNlU2VydmljZSB9IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgVHVpU2l6ZVMsIFR1aVNpemVYUyB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0LrQsNGA0YLQvtGH0LrQuCDRgtC+0LLQsNGA0LAuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2MtcHJpY2UtY2FyZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLXByaWNlLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NjLXByaWNlLWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2NQcmljZUNhcmRDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0L3QtdC+0LHRhdC+0LTQuNC80L4g0L7RgtC+0LHRgNCw0LfQuNGC0Ywg0LvQvtCw0LTQtdGAINC00LvRjyDQv9C+0LvRjyDQstCy0L7QtNCwINC60L7Qu9C40YfQtdGB0YLQstCwINGC0L7QstCw0YDQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcXVhbnRpdHlTaG93TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC90LXQvtCx0YXQvtC00LjQvNC+INC+0YLQvtCx0YDQsNC30LjRgtGMINC70L7QsNC00LXRgCDQtNC70Y8g0LrQvdC+0L/QutC4INC40LfQsdGA0LDQvdC90YvRhSDRgtC+0LLQsNGA0L7QsiDQuCDQutCw0YLQtdCz0L7RgNC40LkuXG4gICAgICovXG4gICAgcHVibGljIGZhdm9yaXRlU2hvd0xvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDQvdC10L7QsdGF0L7QtNC40LzQviDQvtGC0L7QsdGA0LDQt9C40YLRjCDQv9C+0LvQtSDQstCy0L7QtNCwINC60L7Qu9C40YfQtdGB0YLQstCwINGC0L7QstCw0YDQsC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93UXVhbnRpdHlDb250cm9sOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDQn9C+0LfQuNGG0LjRjyDRgtC+0LLQsNGA0LAg0LIg0LrQvtGA0LfQuNC90LUuXG4gICAgICpcbiAgICAgKiBUT0RPOiDQodC00LXQu9Cw0YLRjCDRgtC+0LLQsNGAINCyINC60L7RgNC30LjQvdC1INC90LDQsdC70Y7QtNCw0LXQvNC+0Lkg0L/QtdGA0LXQvNC10L3QvdC+0Lkg0L/QvtGB0LvQtSDRgNC10LDQu9C40LfQsNGG0LjQuCBUQVNLOlsjNzE0NF0uXG4gICAgICovXG4gICAgcHVibGljIGdldCBjYXJ0SXRlbSgpOiBTY0NhcnRJdGVtIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NhcnRJdGVtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0L7Qt9C40YbQuNGPINGC0L7QstCw0YDQsCDQsiDQutC+0YDQt9C40L3QtVxuICAgICAqXG4gICAgICogVE9ETzog0KHQtNC10LvQsNGC0Ywg0YLQvtCy0LDRgCDQsiDQutC+0YDQt9C40L3QtSDQvdCw0LHQu9GO0LTQsNC10LzQvtC5INC/0LXRgNC10LzQtdC90L3QvtC5INC/0L7RgdC70LUg0YDQtdCw0LvQuNC30LDRhtC40LggVEFTSzpbIzcxNDRdLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBjYXJ0SXRlbSh2YWx1ZTogU2NDYXJ0SXRlbSB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9jYXJ0SXRlbSA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMucXVhbnRpdHlDb250cm9sLnBhdGNoVmFsdWUodGhpcy5fY2FydEl0ZW0/LnF1YW50aXR5ID8/IG51bGwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgdGhpcy5xdWFudGl0eVNob3dMb2FkZXIgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YrQtdC60YIg0YLQvtCy0LDRgNCwLlxuICAgICAqXG4gICAgICogVE9ETzog0KHQtNC10LvQsNGC0Ywg0YLQvtCy0LDRgCDQvdCw0LHQu9GO0LTQsNC10LzQvtC5INC/0LXRgNC10LzQtdC90L3QvtC5INC/0L7RgdC70LUg0YDQtdCw0LvQuNC30LDRhtC40LggVEFTSzpbIzcxNDRdLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHByb2R1Y3Q/OiBTY1Byb2R1Y3Q7XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDQvdCw0LbQsNGC0LjRjyDQvdCwINC60L3QvtC/0LrRgyBcItCSINC40LfQsdGA0LDQvdC90L7QtVwiLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBjbGlja0Zhdm9yaXRlRXZlbnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDIFwi0JIg0LrQvtGA0LfQuNC90YNcIi5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY2xpY2tBZGRUb0NhcnRFdmVudDogRXZlbnRFbWl0dGVyPFNjUHJvZHVjdD4gPSBuZXcgRXZlbnRFbWl0dGVyPFNjUHJvZHVjdD4oKTtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDINC+0YfQuNGB0YLQutC4INC60L7Qu9C40YfQtdGB0YLQstCwINGC0L7QstCw0YDQsC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY2xpY2tDbGVhckV2ZW50OiBFdmVudEVtaXR0ZXI8U2NDYXJ0SXRlbT4gPSBuZXcgRXZlbnRFbWl0dGVyPFNjQ2FydEl0ZW0+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDQvdCw0LbQsNGC0LjRjyDQvdCwINC60LDRgNGC0L7Rh9C60YMg0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBjbGlja0NhcmRFdmVudDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDQstGL0LHRgNCw0L3QvdC+0LPQviDRgdC60LvQsNC00LAuXG4gICAgICovXG4gICAgcHVibGljIHdhcmVob3VzZVNlbGVjdCQ6IE9ic2VydmFibGU8U2NXYXJlaG91c2UgfCBudWxsPiA9IHRoaXMud2FyZWhvdXNlU2VydmljZS5nZXRXYXJlaG91c2VTZWxlY3RDaGFuZ2UkKCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgRm9ybUNvbnRyb2x9INC/0L7Qu9GPINCy0LLQvtC00LAg0LrQvtC70LjRh9C10YHRgtCy0LAg0YLQvtCy0LDRgNCwINCyINC60L7RgNC30LjQvdC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBxdWFudGl0eUNvbnRyb2w6IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+ID0gbmV3IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+KG51bGwsIHsgdXBkYXRlT246ICdibHVyJyB9KTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNC30LzQtdC90LXQvdC40Y8g0LrQvtC70LjRh9C10YHRgtCy0LAg0YLQvtCy0LDRgNCwINCyINC60L7RgNC30LjQvdC1LlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBxdWFudGl0eVZhbHVlQ2hhbmdlczogT2JzZXJ2YWJsZTxudW1iZXIgfCBudWxsPiA9IHRoaXMucXVhbnRpdHlDb250cm9sLnZhbHVlQ2hhbmdlcztcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNC30LzQtdC90LXQvdC40Y8g0YHRgtCw0YLRg9GB0LAg0LDQstGC0L7RgNC40LfQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXV0aFN0YXR1cyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhDaGFuZ2UoKTtcblxuICAgIC8qKlxuICAgICAqINCg0LDQt9C80LXRgCDQutC+0LzQv9C+0L3QtdC90YLQsC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXNpemUnKVxuICAgIHB1YmxpYyBzaXplOiBUdWlTaXplUyB8IFR1aVNpemVYUyA9ICdtJztcblxuICAgIC8qKlxuICAgICAqINCa0L7QvdCy0LXRgNGC0LDRhtC40Y8g0YDQsNC30LzQtdGA0LAg0LTQu9GPINC60L7QvNC/0L7QvdC10L3RgtCwIHNjLWlucHV0LXF1YW50aXR5LlxuICAgICAqIFRPRE86INCg0LXRiNC40YLRjCDQv9GA0L7QsdC70LXQvNGDINGBINGE0YPQvdC60YbQuNC+0L3QsNC70L7QvCBzaXplINC00LvRjyDRgNCw0LfQvdGL0YUg0L/Qu9Cw0YLRhNC+0YDQvC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGdldFF1YW50aXR5U2l6ZSgpOiBUdWlTaXplUyB7XG4gICAgICAgIHJldHVybiB0aGlzLnNpemUgPT09ICd4cycgPyAncycgOiB0aGlzLnNpemU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/QvtC30LjRhtC40Y8g0YLQvtCy0LDRgNCwINCyINC60L7RgNC30LjQvdC1LlxuICAgICAqXG4gICAgICogVE9ETzog0KHQtNC10LvQsNGC0Ywg0YLQvtCy0LDRgCDQsiDQutC+0YDQt9C40L3QtSDQvdCw0LHQu9GO0LTQsNC10LzQvtC5INC/0LXRgNC10LzQtdC90L3QvtC5INC/0L7RgdC70LUg0YDQtdCw0LvQuNC30LDRhtC40LggVEFTSzpbIzcxNDRdLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2NhcnRJdGVtPzogU2NDYXJ0SXRlbSB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjUHJpY2VDYXJkQ29tcG9uZW50fS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB1bml0c0hlbHBlciDQntCx0YrQtdC60YIt0YXRjdC70L/QtdGAINC00LvRjyDRgNCw0LHQvtGC0Ysg0YHQviDQt9C90LDRh9C10L3QuNGP0LzQuCDQtdC00LjQvdC40YYg0LjQt9C80LXRgNC10L3QuNGPINGC0L7QstCw0YDQsC5cbiAgICAgKiBAcGFyYW0gYXV0aFNlcnZpY2Ug0KHQtdGA0LLQuNGBINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LkuXG4gICAgICogQHBhcmFtIHdhcmVob3VzZVNlcnZpY2Ug0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YHQviDRgdC60LvQsNC00LDQvNC4LlxuICAgICAqIEBwYXJhbSB1cmxzINCh0L/QuNGB0L7QuiDRgdGB0YvQu9C+0Log0L3QsCDRgNCw0LfQtNC10LvRiyBiYWNrZW5kJ2EuXG4gICAgICogQHBhcmFtIHBhdGhJbWFnZU5vdEZvdW5kINCf0YPRgtGMINC00L4g0LjQt9C+0LHRgNCw0LbQtdC90LjRjyAn0KLQvtCy0LDRgCDQvdC1INC90LDQudC00LXQvScuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgdW5pdHNIZWxwZXI6IFVuaXRzSGVscGVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhTZXJ2aWNlOiBTY0F1dGhTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHdhcmVob3VzZVNlcnZpY2U6IFNjV2FyZWhvdXNlU2VydmljZSxcbiAgICAgICAgQEluamVjdChTQ19VUkxTKSBwcml2YXRlIHJlYWRvbmx5IHVybHM6IFNjSVVybHMsXG4gICAgICAgIEBJbmplY3QoU0NfUEFUSF9JTUFHRV9OT1RfRk9VTkQpIHByaXZhdGUgcmVhZG9ubHkgcGF0aEltYWdlTm90Rm91bmQ6IHN0cmluZyxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7fVxuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDQvdGD0LbQvdC+INC/0L7QutCw0LfQsNGC0Ywg0YHQutC10LvQtdGC0L7QvS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHNrZWxldG9uVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnByb2R1Y3Q7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHRgdGL0LvQutGDINC90LAg0LjQt9C+0LHRgNCw0LbQtdC90LjQtSDQutCw0YDRgtC+0YfQutC4INGC0L7QstCw0YDQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q2FyZEltYWdlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb2R1Y3Q/LmdldEltYWdlKHRoaXMudXJscy5pbWdTZXJ2ZXJVcmwpID8/IHRoaXMucGF0aEltYWdlTm90Rm91bmQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LrQvtC80L/QvtC90LXQvdGCINCyINC+0YfQtdGA0LXQtNGMINC90LAg0L7QsdC90L7QstC70LXQvdC40LUuXG4gICAgICovXG4gICAgcHVibGljIG1hcmtGb3JDaGVjaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxufVxuIiwiPCEtLSBUT0RPOiDRgNC10LDQu9C40LfQvtCy0LDRgtGMINC00LDQvdC90YvQuSDQutC+0LzQv9C+0L3QtdC90YIg0Lgg0LTQu9GPINC00LXRgdC60YLQvtC/0LAg0Lgg0LTQu9GPINC80L7QsdC40LvRjNC90L7Qs9C+INC/0YDQuNC70L7QttC10L3QuNGPLiDQmNGB0L/RgNCw0LLQuNGC0Ywg0LLRgdC1INCz0LvQvtCx0LDQu9GM0L3Ri9C1INGC0LDQudCz0L7QstGB0LrQuNC1INGB0YLQuNC70LgsINC/0YDQuNCy0LXRgdGC0Lgg0LjRhSDQsiDQv9C+0YDRj9C00L7QuiDRgdC+0LPQu9Cw0YHQvdC+INGBINC00LjQt9Cw0LnQvdC+0LwuIC0tPlxuPGRpdiAqbmdJZj1cInByb2R1Y3Q7IGVsc2Ugc2tlbGV0b25cIiBjbGFzcz1cIm1pbi13LVsxMHJlbV0gc2hhZG93LW1kIHctYXV0byByb3VuZGVkLXhsIHAtMiBncmlkIGgtWzE5cmVtXSB0ZXh0LXhzIHJlbGF0aXZlXCI+XG4gICAgPGRpdiBjbGFzcz1cIm92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICA8aW1nIChjbGljayk9XCJjbGlja0NhcmRFdmVudC5lbWl0KClcIiBbc3JjXT1cImdldENhcmRJbWFnZSgpXCIgW2FsdF09XCJwcm9kdWN0Lm5hbWVcIiBjbGFzcz1cInJvdW5kZWQteGwgdy1mdWxsIG1heC1oLWZ1bGwgb2JqZWN0LWNvdmVyXCIgLz5cbiAgICA8L2Rpdj5cbiAgICA8c2MtZmF2b3JpdGUtYnRuXG4gICAgICAgICpuZ0lmPVwiYXV0aFN0YXR1cyQgfCBhc3luY1wiXG4gICAgICAgIGNsYXNzPVwidG9wLTAgbGVmdC0wIGFic29sdXRlXCJcbiAgICAgICAgKGNsaWNrRXZlbnQpPVwiY2xpY2tGYXZvcml0ZUV2ZW50LmVtaXQoKVwiXG4gICAgICAgIFtzaG93TG9hZGVyXT1cImZhdm9yaXRlU2hvd0xvYWRlclwiXG4gICAgICAgIFtpc0Zhdm9yaXRlXT1cInByb2R1Y3QuaXNGYXZvcml0ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhIXByb2R1Y3QucHJpbWFyeUNhdGVnb3J5Py5pc0Zhdm9yaXRlXCJcbiAgICA+PC9zYy1mYXZvcml0ZS1idG4+XG4gICAgPHR1aS1zdmcgKm5nSWY9XCJwcm9kdWN0LmlzUHJldmlvdXNseU9yZGVyZWRcIiBzcmM9XCJzY0ljb25TdGFyXCIgY2xhc3M9XCJ0b3AtMCByaWdodC0wIGFic29sdXRlIHRleHQtcmVkLTcwMFwiPjwvdHVpLXN2Zz5cblxuICAgIDxhIGNsYXNzPVwicC0wIG0tMFwiIHR1aUxpbmsgaWNvbkFsaWduPVwibGVmdFwiIChjbGljayk9XCJjbGlja0NhcmRFdmVudC5lbWl0KClcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGQgdGV4dC1zbSBsaW5lLWNsYW1wLTNcIiBzdHlsZT1cIndvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XCI+e3sgcHJvZHVjdC5uYW1lIH19PC9wPlxuICAgIDwvYT5cbiAgICA8cCAqbmdJZj1cInByb2R1Y3Q/LnBhY2tcIiBjbGFzcz1cInRleHQtdHVpLXRleHQtMDJcIj7QndC+0YDQvNCwINGD0L/QsNC60L7QstC60Lg6IHt7IHByb2R1Y3QucGFjayB9fTwvcD5cblxuICAgIDxwIGNsYXNzPVwidGV4dC10dWktdGV4dC0wMlwiPtCQ0YDRgtC40LrRg9C7OiB7eyBwcm9kdWN0LmNvZGUgfX08L3A+XG4gICAgPHAgKm5nSWY9XCIoYXV0aFN0YXR1cyQgfCBhc3luYykgJiYgcHJvZHVjdD8uY29zdERhdGVcIiBjbGFzcz1cInRleHQtdHVpLXRleHQtMDJcIj7QlNCw0YLQsDoge3sgcHJvZHVjdC5jb3N0RGF0ZSB9fTwvcD5cbiAgICA8ZGl2ICpuZ0lmPVwid2FyZWhvdXNlU2VsZWN0JCB8IGFzeW5jIGFzIHdhcmVob3VzZVNlbGVjdFwiIGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICA8c3BhbiAqbmdJZj1cInByb2R1Y3QuZGlzY291bnRcIiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHRleHQtdHVpLXRleHQtMDJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGluZS10aHJvdWdoXCI+e3sgcHJvZHVjdC5kaXNjb3VudENvc3RTdHJpbmcgfX08L3NwYW4+ICZuYnNwO1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXR1aS1zdWNjZXNzLWZpbGwgZm9udC1ib2xkXCI+IC17eyBwcm9kdWN0LmRpc2NvdW50LnBlcmNlbnQgfX0lIDwvc3Bhbj5cbiAgICAgICAgICAgIDx0dWktc3ZnIHNyYz1cInR1aUljb25JbmZvTGFyZ2VcIiBbdHVpSGludF09XCJkaXNjb3VudEhpbnRcIiBbdHVpSGludFNob3dEZWxheV09XCIxMDBcIiB0dWlIaW50RGlyZWN0aW9uPVwidG9wXCIgY2xhc3M9XCJ0ZXh0LWJsYWNrICF0ZXh0LXhzICFoLTRcIj48L3R1aS1zdmc+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Rpc2NvdW50SGludD5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1ib2xkXCI+e3sgcHJvZHVjdC5kaXNjb3VudC5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInByb2R1Y3QuZGlzY291bnQuZXhwaXJlZEF0IGFzIGV4cGlyZWRBdFwiPtCU0LDRgtCwINC+0LrQvtC90YfQsNC90LjRjzoge3sgZXhwaXJlZEF0IH19PC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIFtjbGFzcy50ZXh0LXR1aS10ZXh0LTAyXT1cIiFwcm9kdWN0LmlzV2FyZWhvdXNlU3RvY2tFeGlzdCh3YXJlaG91c2VTZWxlY3QuaWQpXCIgY2xhc3M9XCJjb3N0IGZvbnQtYm9sZFwiPnt7IHByb2R1Y3QuY29zdFJ1YlN0cmluZyB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhcHJvZHVjdC5wcmljZUluUnViXCIgY2xhc3M9XCJ0ZXh0LXhzIGZvbnQtYm9sZCB0ZXh0LXR1aS10ZXh0LTAyIGhpZGRlbiBncm91cC1ob3ZlcjpibG9ja1wiPnt7IHByb2R1Y3QuY29zdFN0cmluZyB9fTwvc3Bhbj5cbiAgICAgICAgPHNjLXByaWNlLXdhcmVob3VzZS1zdG9jayBbcHJvZHVjdF09XCJwcm9kdWN0XCI+PC9zYy1wcmljZS13YXJlaG91c2Utc3RvY2s+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIiFzaG93UXVhbnRpdHlDb250cm9sXCIgY2xhc3M9XCJmbGV4IGdhcC0yIG1heC13LWZ1bGwgaXRlbXMtY2VudGVyIGp1c3RpZnktc3RyZXRjaCBtdC0xXCI+XG4gICAgICAgIDxidXR0b24gdHVpQnV0dG9uIChjbGljayk9XCJjbGlja0FkZFRvQ2FydEV2ZW50LmVtaXQocHJvZHVjdClcIiBbc2hvd0xvYWRlcl09XCJxdWFudGl0eVNob3dMb2FkZXJcIiBbc2l6ZV09XCJzaXplXCIgY2xhc3M9XCJncm93XCI+XG4gICAgICAgICAgICA8dHVpLXN2ZyBzcmM9XCJzY0ljb25DYXJ0XCIgY2xhc3M9XCIhdGV4dC14cyAhaC00XCI+IDwvdHVpLXN2Zz5cbiAgICAgICAgICAgINCSINC60L7RgNC30LjQvdGDXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY2FydEl0ZW1cIiBjbGFzcz1cImZsZXgganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgIDx0dWktc3ZnIHNyYz1cInR1aUljb25DaGVja1wiIGNsYXNzPVwiIWgtNSAhdy01IGJnLXR1aS1wcmltYXJ5IHRleHQtYmxhY2sgcm91bmRlZC1tZFwiPjwvdHVpLXN2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPHNjLWlucHV0LXF1YW50aXR5XG4gICAgICAgICpuZ0lmPVwic2hvd1F1YW50aXR5Q29udHJvbFwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJxdWFudGl0eUNvbnRyb2xcIlxuICAgICAgICBbcXVhbnRpdHlVbml0XT1cInByb2R1Y3QucXVhbnRpdHlVbml0XCJcbiAgICAgICAgW3NpemVdPVwiZ2V0UXVhbnRpdHlTaXplXCJcbiAgICAgICAgW3N0ZXBdPVwidW5pdHNIZWxwZXIucHJvZHVjdE11bHRpcGxpY2l0eShwcm9kdWN0KVwiXG4gICAgICAgIFtzaG93TG9hZGVyXT1cInF1YW50aXR5U2hvd0xvYWRlclwiXG4gICAgICAgIChjbGlja0NsZWFyRXZlbnQpPVwiY2xpY2tDbGVhckV2ZW50LmVtaXQoY2FydEl0ZW0pXCJcbiAgICAgICAgY2xhc3M9XCJ3LWZ1bGxcIlxuICAgID48L3NjLWlucHV0LXF1YW50aXR5PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjc2tlbGV0b24+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgY2FyZC13cmFwcGVyIGJnLXdoaXRlIHJvdW5kZWQteGwgb3ZlcmZsb3ctaGlkZGVuIHNoYWRvdy1zYy0xXCI+XG4gICAgICAgIDwhLS0g0JjQt9C+0LHRgNCw0LbQtdC90LjQtSDRgtC+0LLQsNGA0LAgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgaC0zLzUgcm91bmRlZC10IGJnLXR1aS1iYXNlLTAyXCI+PC9kaXY+XG4gICAgICAgIDwhLS0g0JrRgNCw0YLQutCw0Y8g0LjQvdGE0L7RgNC80LDRhtC40Y8g0L4g0YLQvtCy0LDRgNC1IC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBncm93IGdhcC0yLjUgYmctd2hpdGUgcm91bmRlZC1iIHAtNVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBoLTQgcm91bmRlZCBiZy10dWktYmFzZS0wMlwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMy81IGgtNCByb3VuZGVkIGJnLXR1aS1iYXNlLTAyXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIGgtNCByb3VuZGVkIGJnLXR1aS1iYXNlLTAyXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -30,10 +30,10 @@ export class ScPriceWarehouseStockComponent {
30
30
  }
31
31
  }
32
32
  ScPriceWarehouseStockComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPriceWarehouseStockComponent, deps: [{ token: i1.ScWarehouseService }], target: i0.ɵɵFactoryTarget.Component });
33
- ScPriceWarehouseStockComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScPriceWarehouseStockComponent, selector: "sc-price-warehouse-stock", inputs: { classList: "classList", product: "product", withStockHint: "withStockHint" }, ngImport: i0, template: "<ng-container *ngIf=\"product\">\n <ng-container>\n <div *ngIf=\"warehouseSelect$ | async as warehouseSelect\" class=\"flex items-center gap-1\">\n <span *ngIf=\"product.getNotStockMessage(warehouseSelect) as message\" class=\"text-xs min-w-2/5 text-tui-error-fill\" [ngClass]=\"classList\"> {{ message }} </span>\n <span *ngIf=\"product.isWarehouseStockExist(warehouseSelect.id)\" class=\"text-xs min-w-2/5 text-tui-success-fill\" [ngClass]=\"classList\">\n \u0412 \u043D\u0430\u043B\u0438\u0447\u0438\u0438<ng-container *ngIf=\"product.getWarehouseStockCount(warehouseSelect.id) as count\"\n >:\n <span class=\"whitespace-nowrap\">{{ count }} {{ product.quantityUnit }}</span>\n </ng-container>\n </span>\n <span *ngIf=\"product.onOrder\" class=\"text-xs min-w-2/5 text-sc-yellow\" [ngClass]=\"classList\">\u041F\u043E\u0434 \u0437\u0430\u043A\u0430\u0437</span>\n\n <tui-svg\n *ngIf=\"withStockHint && (stockByWarehouses$ | async)?.length\"\n src=\"tuiIconInfoLarge\"\n [tuiHint]=\"stockHint\"\n [tuiHintShowDelay]=\"100\"\n tuiHintDirection=\"top\"\n class=\"!text-xs !h-3\"\n ></tui-svg>\n </div>\n </ng-container>\n</ng-container>\n\n<ng-template #stockHint>\n <table *ngIf=\"warehouseSelect$ | async as warehouseSelect\" class=\"text-xs table-auto\" [ngClass]=\"classList\">\n <tbody>\n <tr *ngFor=\"let item of stockByWarehouses$ | async\" class=\"border-b\" [class.text-tui-primary]=\"warehouseSelect === item[0]\">\n <ng-container>\n <td class=\"px-1\">{{ item[0]?.name }}:</td>\n <td class=\"px-1\">{{ item[1].count ? item[1].count + ' ' + product.quantityUnit : '\u0412 \u043D\u0430\u043B\u0438\u0447\u0438\u0438' }}</td>\n </ng-container>\n </tr>\n </tbody>\n </table>\n</ng-template>\n", styles: ["[tuiIconButton]{--tui-radius-m: .75rem;--tui-height-xs: 1.25rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { kind: "directive", type: i3.TuiHintDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { kind: "directive", type: i3.TuiHintDriverDirective, selector: "[tuiHint]" }, { kind: "directive", type: i3.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"], exportAs: ["tuiHintHover"] }, { kind: "directive", type: i3.TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: ["tuiHintDirection"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
33
+ ScPriceWarehouseStockComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScPriceWarehouseStockComponent, selector: "sc-price-warehouse-stock", inputs: { classList: "classList", product: "product", withStockHint: "withStockHint" }, ngImport: i0, template: "<ng-container *ngIf=\"product\">\n <ng-container>\n <div *ngIf=\"warehouseSelect$ | async as warehouseSelect\" class=\"flex items-center gap-1\">\n <span *ngIf=\"product.getNotStockMessage(warehouseSelect) as message\" class=\"text-xs min-w-2/5 text-tui-error-fill\" [ngClass]=\"classList\"> {{ message }} </span>\n <span *ngIf=\"product.isWarehouseStockExist(warehouseSelect.id)\" class=\"text-xs min-w-2/5 text-tui-success-fill\" [ngClass]=\"classList\">\n \u0412 \u043D\u0430\u043B\u0438\u0447\u0438\u0438<ng-container *ngIf=\"product.getWarehouseStockCount(warehouseSelect.id) as count\"\n >:\n <span class=\"whitespace-nowrap\">{{ count }} {{ product.quantityUnit }}</span>\n </ng-container>\n </span>\n <span *ngIf=\"product.onOrder\" class=\"text-xs min-w-2/5 text-sc-yellow\" [ngClass]=\"classList\">\u041F\u043E\u0434 \u0437\u0430\u043A\u0430\u0437</span>\n\n <tui-svg\n *ngIf=\"withStockHint && (stockByWarehouses$ | async)?.length\"\n src=\"tuiIconInfoLarge\"\n [tuiHint]=\"stockHint\"\n [tuiHintShowDelay]=\"100\"\n tuiHintDirection=\"top\"\n class=\"!text-xs !h-3\"\n ></tui-svg>\n </div>\n </ng-container>\n</ng-container>\n\n<ng-template #stockHint>\n <table *ngIf=\"warehouseSelect$ | async as warehouseSelect\" class=\"text-xs table-auto\" [ngClass]=\"classList\">\n <tbody>\n <tr *ngFor=\"let item of stockByWarehouses$ | async\" class=\"border-b\">\n <ng-container>\n <td class=\"px-1\">{{ item[0]?.name }}:</td>\n <td class=\"px-1\">{{ item[1].count ? item[1].count + ' ' + product.quantityUnit : '\u0412 \u043D\u0430\u043B\u0438\u0447\u0438\u0438' }}</td>\n </ng-container>\n </tr>\n </tbody>\n </table>\n</ng-template>\n", styles: ["[tuiIconButton]{--tui-radius-m: .75rem;--tui-height-xs: 1.25rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { kind: "directive", type: i3.TuiHintDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { kind: "directive", type: i3.TuiHintDriverDirective, selector: "[tuiHint]" }, { kind: "directive", type: i3.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"], exportAs: ["tuiHintHover"] }, { kind: "directive", type: i3.TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: ["tuiHintDirection"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPriceWarehouseStockComponent, decorators: [{
35
35
  type: Component,
36
- args: [{ selector: 'sc-price-warehouse-stock', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"product\">\n <ng-container>\n <div *ngIf=\"warehouseSelect$ | async as warehouseSelect\" class=\"flex items-center gap-1\">\n <span *ngIf=\"product.getNotStockMessage(warehouseSelect) as message\" class=\"text-xs min-w-2/5 text-tui-error-fill\" [ngClass]=\"classList\"> {{ message }} </span>\n <span *ngIf=\"product.isWarehouseStockExist(warehouseSelect.id)\" class=\"text-xs min-w-2/5 text-tui-success-fill\" [ngClass]=\"classList\">\n \u0412 \u043D\u0430\u043B\u0438\u0447\u0438\u0438<ng-container *ngIf=\"product.getWarehouseStockCount(warehouseSelect.id) as count\"\n >:\n <span class=\"whitespace-nowrap\">{{ count }} {{ product.quantityUnit }}</span>\n </ng-container>\n </span>\n <span *ngIf=\"product.onOrder\" class=\"text-xs min-w-2/5 text-sc-yellow\" [ngClass]=\"classList\">\u041F\u043E\u0434 \u0437\u0430\u043A\u0430\u0437</span>\n\n <tui-svg\n *ngIf=\"withStockHint && (stockByWarehouses$ | async)?.length\"\n src=\"tuiIconInfoLarge\"\n [tuiHint]=\"stockHint\"\n [tuiHintShowDelay]=\"100\"\n tuiHintDirection=\"top\"\n class=\"!text-xs !h-3\"\n ></tui-svg>\n </div>\n </ng-container>\n</ng-container>\n\n<ng-template #stockHint>\n <table *ngIf=\"warehouseSelect$ | async as warehouseSelect\" class=\"text-xs table-auto\" [ngClass]=\"classList\">\n <tbody>\n <tr *ngFor=\"let item of stockByWarehouses$ | async\" class=\"border-b\" [class.text-tui-primary]=\"warehouseSelect === item[0]\">\n <ng-container>\n <td class=\"px-1\">{{ item[0]?.name }}:</td>\n <td class=\"px-1\">{{ item[1].count ? item[1].count + ' ' + product.quantityUnit : '\u0412 \u043D\u0430\u043B\u0438\u0447\u0438\u0438' }}</td>\n </ng-container>\n </tr>\n </tbody>\n </table>\n</ng-template>\n", styles: ["[tuiIconButton]{--tui-radius-m: .75rem;--tui-height-xs: 1.25rem}\n"] }]
36
+ args: [{ selector: 'sc-price-warehouse-stock', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"product\">\n <ng-container>\n <div *ngIf=\"warehouseSelect$ | async as warehouseSelect\" class=\"flex items-center gap-1\">\n <span *ngIf=\"product.getNotStockMessage(warehouseSelect) as message\" class=\"text-xs min-w-2/5 text-tui-error-fill\" [ngClass]=\"classList\"> {{ message }} </span>\n <span *ngIf=\"product.isWarehouseStockExist(warehouseSelect.id)\" class=\"text-xs min-w-2/5 text-tui-success-fill\" [ngClass]=\"classList\">\n \u0412 \u043D\u0430\u043B\u0438\u0447\u0438\u0438<ng-container *ngIf=\"product.getWarehouseStockCount(warehouseSelect.id) as count\"\n >:\n <span class=\"whitespace-nowrap\">{{ count }} {{ product.quantityUnit }}</span>\n </ng-container>\n </span>\n <span *ngIf=\"product.onOrder\" class=\"text-xs min-w-2/5 text-sc-yellow\" [ngClass]=\"classList\">\u041F\u043E\u0434 \u0437\u0430\u043A\u0430\u0437</span>\n\n <tui-svg\n *ngIf=\"withStockHint && (stockByWarehouses$ | async)?.length\"\n src=\"tuiIconInfoLarge\"\n [tuiHint]=\"stockHint\"\n [tuiHintShowDelay]=\"100\"\n tuiHintDirection=\"top\"\n class=\"!text-xs !h-3\"\n ></tui-svg>\n </div>\n </ng-container>\n</ng-container>\n\n<ng-template #stockHint>\n <table *ngIf=\"warehouseSelect$ | async as warehouseSelect\" class=\"text-xs table-auto\" [ngClass]=\"classList\">\n <tbody>\n <tr *ngFor=\"let item of stockByWarehouses$ | async\" class=\"border-b\">\n <ng-container>\n <td class=\"px-1\">{{ item[0]?.name }}:</td>\n <td class=\"px-1\">{{ item[1].count ? item[1].count + ' ' + product.quantityUnit : '\u0412 \u043D\u0430\u043B\u0438\u0447\u0438\u0438' }}</td>\n </ng-container>\n </tr>\n </tbody>\n </table>\n</ng-template>\n", styles: ["[tuiIconButton]{--tui-radius-m: .75rem;--tui-height-xs: 1.25rem}\n"] }]
37
37
  }], ctorParameters: function () { return [{ type: i1.ScWarehouseService }]; }, propDecorators: { classList: [{
38
38
  type: Input
39
39
  }], product: [{
@@ -41,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
41
41
  }], withStockHint: [{
42
42
  type: Input
43
43
  }] } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcHJpY2Utd2FyZWhvdXNlLXN0b2NrLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9jYXRhbG9nL3ByaWNlLXdhcmVob3VzZS1zdG9jay9zYy1wcmljZS13YXJlaG91c2Utc3RvY2suY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhdGFsb2cvcHJpY2Utd2FyZWhvdXNlLXN0b2NrL3NjLXByaWNlLXdhcmVob3VzZS1zdG9jay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQWMsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFFbEQ7O0dBRUc7QUFPSCxNQUFNLE9BQU8sOEJBQThCO0lBb0N2Qzs7OztPQUlHO0lBQ0gsWUFBb0MsZ0JBQW9DO1FBQXBDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUE5QnhFOztXQUVHO1FBQ2Esa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFFOUM7O1dBRUc7UUFDSSxxQkFBZ0IsR0FBbUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFFNUc7O1dBRUc7UUFDSSx1QkFBa0IsR0FBaUYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDaEksU0FBUyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FDMUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FDdkMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ3pJLEdBQUcsQ0FDQyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FDbEIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEtBQUssZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFvRSxDQUM3SixDQUNKLENBQ0osQ0FDSixDQUFDO0lBT3lFLENBQUM7OzJIQXpDbkUsOEJBQThCOytHQUE5Qiw4QkFBOEIsd0pDYjNDLHVnRUFvQ0E7MkZEdkJhLDhCQUE4QjtrQkFOMUMsU0FBUzsrQkFDSSwwQkFBMEIsbUJBRW5CLHVCQUF1QixDQUFDLE1BQU07eUdBTy9CLFNBQVM7c0JBQXhCLEtBQUs7Z0JBS1UsT0FBTztzQkFBdEIsS0FBSztnQkFLVSxhQUFhO3NCQUE1QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNjSVdhcmVob3VzZVN0b2NrQ291bnQsIFNjUHJvZHVjdCwgU2NXYXJlaG91c2UsIFNjV2FyZWhvdXNlU2VydmljZSB9IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0L3QsNC70LjRh9C40Lgg0YLQvtCy0LDRgNCwINC90LAg0YHQutC70LDQtNC1LlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjLXByaWNlLXdhcmVob3VzZS1zdG9jaycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLXByaWNlLXdhcmVob3VzZS1zdG9jay5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3R5bGVVcmxzOiBbJ3NjLXByaWNlLXdhcmVob3VzZS1zdG9jay5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTY1ByaWNlV2FyZWhvdXNlU3RvY2tDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqINCh0YLRgNC+0LrQsCDQutC70LDRgdGB0L7QsiDQtNC70Y8g0YHQstC+0LnRgdGC0LIg0YHRgtCw0YLRg9GB0L7Qsi5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgY2xhc3NMaXN0OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90YTQvtGA0LzQsNGG0LjRjyDQviDRgtC+0LLQsNGA0LUv0YPRgdC70YPQs9C1LlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwcm9kdWN0OiBTY1Byb2R1Y3Q7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC90LXQvtCx0YXQvtC00LjQvNC+INC+0YLQvtCx0YDQsNC30LjRgtGMINC/0L7QtNGB0LrQsNC30LrRgyDQv9C+INGB0LrQu9Cw0LTQsNC8LlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB3aXRoU3RvY2tIaW50OiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNC30LzQtdC90LXQvdC40Y8g0LLRi9Cx0YDQsNC90L3QvtCz0L4g0YHQutC70LDQtNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyB3YXJlaG91c2VTZWxlY3QkOiBPYnNlcnZhYmxlPFNjV2FyZWhvdXNlIHwgbnVsbD4gPSB0aGlzLndhcmVob3VzZVNlcnZpY2UuZ2V0V2FyZWhvdXNlU2VsZWN0Q2hhbmdlJCgpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDRgdC/0LjRgdC60LAg0YHQutC70LDQtNC+0LIuXG4gICAgICovXG4gICAgcHVibGljIHN0b2NrQnlXYXJlaG91c2VzJD86IE9ic2VydmFibGU8W1NjV2FyZWhvdXNlIHwgdW5kZWZpbmVkLCBTY0lXYXJlaG91c2VTdG9ja0NvdW50XVtdIHwgdW5kZWZpbmVkPiA9IHRoaXMud2FyZWhvdXNlU2VsZWN0JC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHdhcmVob3VzZVNlbGVjdCkgPT5cbiAgICAgICAgICAgIHRoaXMud2FyZWhvdXNlU2VydmljZS5nZXRXYXJlaG91c2VzJCgpLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKCh3YXJlaG91c2VzKSA9PiB0aGlzLnByb2R1Y3Qud2FyZWhvdXNlU3RvY2tDb3VudD8ubWFwKChzdG9jaykgPT4gW3dhcmVob3VzZXMuZmluZCgod2FyZWhvdXNlKSA9PiB3YXJlaG91c2UuaWQgPT09IHN0b2NrLmlkKSwgc3RvY2tdKSksXG4gICAgICAgICAgICAgICAgbWFwKFxuICAgICAgICAgICAgICAgICAgICAoc3RvY2tCeVdhcmVob3VzZXMpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9ja0J5V2FyZWhvdXNlcz8uc29ydCgoc3RvY2spID0+IChzdG9ja1swXT8uaWQgPT09IHdhcmVob3VzZVNlbGVjdD8uaWQgPyAtMSA6IDEpKSBhcyBbU2NXYXJlaG91c2UgfCB1bmRlZmluZWQsIFNjSVdhcmVob3VzZVN0b2NrQ291bnRdW10gfCB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgIClcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY1ByaWNlV2FyZWhvdXNlU3RvY2tDb21wb25lbnR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHdhcmVob3VzZVNlcnZpY2Ug0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YHQviDRgdC60LvQsNC00LDQvNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHdhcmVob3VzZVNlcnZpY2U6IFNjV2FyZWhvdXNlU2VydmljZSkge31cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9kdWN0XCI+XG4gICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIndhcmVob3VzZVNlbGVjdCQgfCBhc3luYyBhcyB3YXJlaG91c2VTZWxlY3RcIiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xXCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInByb2R1Y3QuZ2V0Tm90U3RvY2tNZXNzYWdlKHdhcmVob3VzZVNlbGVjdCkgYXMgbWVzc2FnZVwiIGNsYXNzPVwidGV4dC14cyBtaW4tdy0yLzUgdGV4dC10dWktZXJyb3ItZmlsbFwiIFtuZ0NsYXNzXT1cImNsYXNzTGlzdFwiPiB7eyBtZXNzYWdlIH19IDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicHJvZHVjdC5pc1dhcmVob3VzZVN0b2NrRXhpc3Qod2FyZWhvdXNlU2VsZWN0LmlkKVwiIGNsYXNzPVwidGV4dC14cyBtaW4tdy0yLzUgdGV4dC10dWktc3VjY2Vzcy1maWxsXCIgW25nQ2xhc3NdPVwiY2xhc3NMaXN0XCI+XG4gICAgICAgICAgICAgICAg0JIg0L3QsNC70LjRh9C40Lg8bmctY29udGFpbmVyICpuZ0lmPVwicHJvZHVjdC5nZXRXYXJlaG91c2VTdG9ja0NvdW50KHdhcmVob3VzZVNlbGVjdC5pZCkgYXMgY291bnRcIlxuICAgICAgICAgICAgICAgICAgICA+OlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIndoaXRlc3BhY2Utbm93cmFwXCI+e3sgY291bnQgfX0ge3sgcHJvZHVjdC5xdWFudGl0eVVuaXQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInByb2R1Y3Qub25PcmRlclwiIGNsYXNzPVwidGV4dC14cyBtaW4tdy0yLzUgdGV4dC1zYy15ZWxsb3dcIiBbbmdDbGFzc109XCJjbGFzc0xpc3RcIj7Qn9C+0LQg0LfQsNC60LDQtzwvc3Bhbj5cblxuICAgICAgICAgICAgPHR1aS1zdmdcbiAgICAgICAgICAgICAgICAqbmdJZj1cIndpdGhTdG9ja0hpbnQgJiYgKHN0b2NrQnlXYXJlaG91c2VzJCB8IGFzeW5jKT8ubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICBzcmM9XCJ0dWlJY29uSW5mb0xhcmdlXCJcbiAgICAgICAgICAgICAgICBbdHVpSGludF09XCJzdG9ja0hpbnRcIlxuICAgICAgICAgICAgICAgIFt0dWlIaW50U2hvd0RlbGF5XT1cIjEwMFwiXG4gICAgICAgICAgICAgICAgdHVpSGludERpcmVjdGlvbj1cInRvcFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCIhdGV4dC14cyAhaC0zXCJcbiAgICAgICAgICAgID48L3R1aS1zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjc3RvY2tIaW50PlxuICAgIDx0YWJsZSAqbmdJZj1cIndhcmVob3VzZVNlbGVjdCQgfCBhc3luYyBhcyB3YXJlaG91c2VTZWxlY3RcIiBjbGFzcz1cInRleHQteHMgdGFibGUtYXV0b1wiIFtuZ0NsYXNzXT1cImNsYXNzTGlzdFwiPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc3RvY2tCeVdhcmVob3VzZXMkIHwgYXN5bmNcIiBjbGFzcz1cImJvcmRlci1iXCIgW2NsYXNzLnRleHQtdHVpLXByaW1hcnldPVwid2FyZWhvdXNlU2VsZWN0ID09PSBpdGVtWzBdXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHgtMVwiPnt7IGl0ZW1bMF0/Lm5hbWUgfX06PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHgtMVwiPnt7IGl0ZW1bMV0uY291bnQgPyBpdGVtWzFdLmNvdW50ICsgJyAnICsgcHJvZHVjdC5xdWFudGl0eVVuaXQgOiAn0JIg0L3QsNC70LjRh9C40LgnIH19PC90ZD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGJvZHk+XG4gICAgPC90YWJsZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcHJpY2Utd2FyZWhvdXNlLXN0b2NrLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9jYXRhbG9nL3ByaWNlLXdhcmVob3VzZS1zdG9jay9zYy1wcmljZS13YXJlaG91c2Utc3RvY2suY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhdGFsb2cvcHJpY2Utd2FyZWhvdXNlLXN0b2NrL3NjLXByaWNlLXdhcmVob3VzZS1zdG9jay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQWMsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFFbEQ7O0dBRUc7QUFPSCxNQUFNLE9BQU8sOEJBQThCO0lBb0N2Qzs7OztPQUlHO0lBQ0gsWUFBb0MsZ0JBQW9DO1FBQXBDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUE5QnhFOztXQUVHO1FBQ2Esa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFFOUM7O1dBRUc7UUFDSSxxQkFBZ0IsR0FBbUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFFNUc7O1dBRUc7UUFDSSx1QkFBa0IsR0FBaUYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDaEksU0FBUyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FDMUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FDdkMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ3pJLEdBQUcsQ0FDQyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FDbEIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEtBQUssZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFvRSxDQUM3SixDQUNKLENBQ0osQ0FDSixDQUFDO0lBT3lFLENBQUM7OzJIQXpDbkUsOEJBQThCOytHQUE5Qiw4QkFBOEIsd0pDYjNDLDg4REFvQ0E7MkZEdkJhLDhCQUE4QjtrQkFOMUMsU0FBUzsrQkFDSSwwQkFBMEIsbUJBRW5CLHVCQUF1QixDQUFDLE1BQU07eUdBTy9CLFNBQVM7c0JBQXhCLEtBQUs7Z0JBS1UsT0FBTztzQkFBdEIsS0FBSztnQkFLVSxhQUFhO3NCQUE1QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNjSVdhcmVob3VzZVN0b2NrQ291bnQsIFNjUHJvZHVjdCwgU2NXYXJlaG91c2UsIFNjV2FyZWhvdXNlU2VydmljZSB9IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0L3QsNC70LjRh9C40Lgg0YLQvtCy0LDRgNCwINC90LAg0YHQutC70LDQtNC1LlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjLXByaWNlLXdhcmVob3VzZS1zdG9jaycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLXByaWNlLXdhcmVob3VzZS1zdG9jay5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3R5bGVVcmxzOiBbJ3NjLXByaWNlLXdhcmVob3VzZS1zdG9jay5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTY1ByaWNlV2FyZWhvdXNlU3RvY2tDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqINCh0YLRgNC+0LrQsCDQutC70LDRgdGB0L7QsiDQtNC70Y8g0YHQstC+0LnRgdGC0LIg0YHRgtCw0YLRg9GB0L7Qsi5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgY2xhc3NMaXN0OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90YTQvtGA0LzQsNGG0LjRjyDQviDRgtC+0LLQsNGA0LUv0YPRgdC70YPQs9C1LlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwcm9kdWN0OiBTY1Byb2R1Y3Q7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC90LXQvtCx0YXQvtC00LjQvNC+INC+0YLQvtCx0YDQsNC30LjRgtGMINC/0L7QtNGB0LrQsNC30LrRgyDQv9C+INGB0LrQu9Cw0LTQsNC8LlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyB3aXRoU3RvY2tIaW50OiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNC30LzQtdC90LXQvdC40Y8g0LLRi9Cx0YDQsNC90L3QvtCz0L4g0YHQutC70LDQtNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyB3YXJlaG91c2VTZWxlY3QkOiBPYnNlcnZhYmxlPFNjV2FyZWhvdXNlIHwgbnVsbD4gPSB0aGlzLndhcmVob3VzZVNlcnZpY2UuZ2V0V2FyZWhvdXNlU2VsZWN0Q2hhbmdlJCgpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDRgdC/0LjRgdC60LAg0YHQutC70LDQtNC+0LIuXG4gICAgICovXG4gICAgcHVibGljIHN0b2NrQnlXYXJlaG91c2VzJD86IE9ic2VydmFibGU8W1NjV2FyZWhvdXNlIHwgdW5kZWZpbmVkLCBTY0lXYXJlaG91c2VTdG9ja0NvdW50XVtdIHwgdW5kZWZpbmVkPiA9IHRoaXMud2FyZWhvdXNlU2VsZWN0JC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHdhcmVob3VzZVNlbGVjdCkgPT5cbiAgICAgICAgICAgIHRoaXMud2FyZWhvdXNlU2VydmljZS5nZXRXYXJlaG91c2VzJCgpLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKCh3YXJlaG91c2VzKSA9PiB0aGlzLnByb2R1Y3Qud2FyZWhvdXNlU3RvY2tDb3VudD8ubWFwKChzdG9jaykgPT4gW3dhcmVob3VzZXMuZmluZCgod2FyZWhvdXNlKSA9PiB3YXJlaG91c2UuaWQgPT09IHN0b2NrLmlkKSwgc3RvY2tdKSksXG4gICAgICAgICAgICAgICAgbWFwKFxuICAgICAgICAgICAgICAgICAgICAoc3RvY2tCeVdhcmVob3VzZXMpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9ja0J5V2FyZWhvdXNlcz8uc29ydCgoc3RvY2spID0+IChzdG9ja1swXT8uaWQgPT09IHdhcmVob3VzZVNlbGVjdD8uaWQgPyAtMSA6IDEpKSBhcyBbU2NXYXJlaG91c2UgfCB1bmRlZmluZWQsIFNjSVdhcmVob3VzZVN0b2NrQ291bnRdW10gfCB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgIClcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY1ByaWNlV2FyZWhvdXNlU3RvY2tDb21wb25lbnR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHdhcmVob3VzZVNlcnZpY2Ug0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YHQviDRgdC60LvQsNC00LDQvNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHdhcmVob3VzZVNlcnZpY2U6IFNjV2FyZWhvdXNlU2VydmljZSkge31cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9kdWN0XCI+XG4gICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIndhcmVob3VzZVNlbGVjdCQgfCBhc3luYyBhcyB3YXJlaG91c2VTZWxlY3RcIiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xXCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInByb2R1Y3QuZ2V0Tm90U3RvY2tNZXNzYWdlKHdhcmVob3VzZVNlbGVjdCkgYXMgbWVzc2FnZVwiIGNsYXNzPVwidGV4dC14cyBtaW4tdy0yLzUgdGV4dC10dWktZXJyb3ItZmlsbFwiIFtuZ0NsYXNzXT1cImNsYXNzTGlzdFwiPiB7eyBtZXNzYWdlIH19IDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicHJvZHVjdC5pc1dhcmVob3VzZVN0b2NrRXhpc3Qod2FyZWhvdXNlU2VsZWN0LmlkKVwiIGNsYXNzPVwidGV4dC14cyBtaW4tdy0yLzUgdGV4dC10dWktc3VjY2Vzcy1maWxsXCIgW25nQ2xhc3NdPVwiY2xhc3NMaXN0XCI+XG4gICAgICAgICAgICAgICAg0JIg0L3QsNC70LjRh9C40Lg8bmctY29udGFpbmVyICpuZ0lmPVwicHJvZHVjdC5nZXRXYXJlaG91c2VTdG9ja0NvdW50KHdhcmVob3VzZVNlbGVjdC5pZCkgYXMgY291bnRcIlxuICAgICAgICAgICAgICAgICAgICA+OlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIndoaXRlc3BhY2Utbm93cmFwXCI+e3sgY291bnQgfX0ge3sgcHJvZHVjdC5xdWFudGl0eVVuaXQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInByb2R1Y3Qub25PcmRlclwiIGNsYXNzPVwidGV4dC14cyBtaW4tdy0yLzUgdGV4dC1zYy15ZWxsb3dcIiBbbmdDbGFzc109XCJjbGFzc0xpc3RcIj7Qn9C+0LQg0LfQsNC60LDQtzwvc3Bhbj5cblxuICAgICAgICAgICAgPHR1aS1zdmdcbiAgICAgICAgICAgICAgICAqbmdJZj1cIndpdGhTdG9ja0hpbnQgJiYgKHN0b2NrQnlXYXJlaG91c2VzJCB8IGFzeW5jKT8ubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICBzcmM9XCJ0dWlJY29uSW5mb0xhcmdlXCJcbiAgICAgICAgICAgICAgICBbdHVpSGludF09XCJzdG9ja0hpbnRcIlxuICAgICAgICAgICAgICAgIFt0dWlIaW50U2hvd0RlbGF5XT1cIjEwMFwiXG4gICAgICAgICAgICAgICAgdHVpSGludERpcmVjdGlvbj1cInRvcFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCIhdGV4dC14cyAhaC0zXCJcbiAgICAgICAgICAgID48L3R1aS1zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjc3RvY2tIaW50PlxuICAgIDx0YWJsZSAqbmdJZj1cIndhcmVob3VzZVNlbGVjdCQgfCBhc3luYyBhcyB3YXJlaG91c2VTZWxlY3RcIiBjbGFzcz1cInRleHQteHMgdGFibGUtYXV0b1wiIFtuZ0NsYXNzXT1cImNsYXNzTGlzdFwiPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc3RvY2tCeVdhcmVob3VzZXMkIHwgYXN5bmNcIiBjbGFzcz1cImJvcmRlci1iXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHgtMVwiPnt7IGl0ZW1bMF0/Lm5hbWUgfX06PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHgtMVwiPnt7IGl0ZW1bMV0uY291bnQgPyBpdGVtWzFdLmNvdW50ICsgJyAnICsgcHJvZHVjdC5xdWFudGl0eVVuaXQgOiAn0JIg0L3QsNC70LjRh9C40LgnIH19PC90ZD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGJvZHk+XG4gICAgPC90YWJsZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -14,7 +14,7 @@ export class TreeIconService {
14
14
  getIconName(info) {
15
15
  switch (info.getIcon()) {
16
16
  case ScIconTypesEnum.iconImage:
17
- return 'scIconImage';
17
+ return 'tuiIconImageLarge';
18
18
  case ScIconTypesEnum.iconPdfFile:
19
19
  return 'scIconPdfFile';
20
20
  case ScIconTypesEnum.iconWordFile:
@@ -45,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
45
45
  providedIn: 'root',
46
46
  }]
47
47
  }] });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1pY29uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZmlsZXMvc2VydmljZXMvdHJlZS1pY29uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRXpEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGVBQWU7SUFDeEI7Ozs7O09BS0c7SUFDSSxXQUFXLENBQUMsSUFBb0I7UUFDbkMsUUFBUSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDcEIsS0FBSyxlQUFlLENBQUMsU0FBUztnQkFDMUIsT0FBTyxhQUFhLENBQUM7WUFDekIsS0FBSyxlQUFlLENBQUMsV0FBVztnQkFDNUIsT0FBTyxlQUFlLENBQUM7WUFDM0IsS0FBSyxlQUFlLENBQUMsWUFBWTtnQkFDN0IsT0FBTyxnQkFBZ0IsQ0FBQztZQUM1QixLQUFLLGVBQWUsQ0FBQyxhQUFhO2dCQUM5QixPQUFPLGlCQUFpQixDQUFDO1lBQzdCLEtBQUssZUFBZSxDQUFDLFVBQVU7Z0JBQzNCLE9BQU8sY0FBYyxDQUFDO1lBQzFCO2dCQUNJLE9BQU8sWUFBWSxDQUFDO1NBQzNCO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksV0FBVyxDQUFDLElBQW9CO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUM7SUFDL0IsQ0FBQzs7NEdBaENRLGVBQWU7Z0hBQWYsZUFBZSxjQUZaLE1BQU07MkZBRVQsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTY0RvY3VtZW50SW5mbyB9IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUvZmlsZXMvY2xhc3Nlcy9zYy1kb2N1bWVudC1pbmZvJztcbmltcG9ydCB7IFNjSWNvblR5cGVzRW51bSB9IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuXG4vKipcbiAqINCh0LXRgNCy0LjRgSDRgNCw0LHQvtGC0LDRjtGJ0LjQuSDRgSDQt9C90LDRh9C60LDQvNC4INGN0LvQtdC80LXQvdGC0L7QsiDQtNC10YDQtdCy0LAuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFRyZWVJY29uU2VydmljZSB7XG4gICAgLyoqXG4gICAgICog0J3QsNC30L3QsNGH0LDQtdGCINC30L3QsNGH0L7QuiDRjdC70LXQvNC10L3RgtGDINC00LXRgNC10LLQsCDQsiDQt9Cw0LLQuNGB0LjQvNC+0YHRgtC4INC+0YIg0YLQuNC/0LAg0YTQsNC50LvQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpbmZvINCe0LHRitC10LrRgiDQv9GA0LjRiNC10LTRiNC40YUg0LTQsNC90L3Ri9GFINC+INGE0LDQudC70LUuXG4gICAgICogQHJldHVybnMg0JLQvtC30LLRgNCw0YnQsNC10YIg0L3QsNC30LLQsNC90LjQtSDQt9C90LDRh9C60LAg0LIg0LLQuNC00LUg0YHRgtGA0L7QutC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRJY29uTmFtZShpbmZvOiBTY0RvY3VtZW50SW5mbyk6IHN0cmluZyB7XG4gICAgICAgIHN3aXRjaCAoaW5mby5nZXRJY29uKCkpIHtcbiAgICAgICAgICAgIGNhc2UgU2NJY29uVHlwZXNFbnVtLmljb25JbWFnZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3NjSWNvbkltYWdlJztcbiAgICAgICAgICAgIGNhc2UgU2NJY29uVHlwZXNFbnVtLmljb25QZGZGaWxlOlxuICAgICAgICAgICAgICAgIHJldHVybiAnc2NJY29uUGRmRmlsZSc7XG4gICAgICAgICAgICBjYXNlIFNjSWNvblR5cGVzRW51bS5pY29uV29yZEZpbGU6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzY0ljb25Xb3JkRmlsZSc7XG4gICAgICAgICAgICBjYXNlIFNjSWNvblR5cGVzRW51bS5pY29uRXhjZWxGaWxlOlxuICAgICAgICAgICAgICAgIHJldHVybiAnc2NJY29uRXhjZWxGaWxlJztcbiAgICAgICAgICAgIGNhc2UgU2NJY29uVHlwZXNFbnVtLmljb25Gb2xkZXI6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzY0ljb25Gb2xkZXInO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3NjSWNvbkZpbGUnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/RgNC+0LLQtdGA0Y/QtdGCINC90LAg0L/RgNC40LfQvdCw0Log0L3QsNC70LjRh9C40Y8g0LTQvtGH0LXRgNC90LjRhSDRjdC70LXQvNC10L3RgtC+0LIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaW5mbyDQntCx0YrQtdC60YIg0L/RgNC40YjQtdC00YjQuNGFINC00LDQvdC90YvRhSDQviDRhNCw0LnQu9C1LlxuICAgICAqIEByZXR1cm5zINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHRydWUg0L/RgNC4INC90LDQu9C40YfQuNC4INC00L7Rh9C10YDQvdC40YUg0Y3Qu9C10LzQtdC90YLQvtCyINC4IGZhbHNlINC/0YDQuCDQuNGFINC+0YLRgdGD0YLRgdCy0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgaGFzQ2hpbGRyZW4oaW5mbzogU2NEb2N1bWVudEluZm8pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGluZm8udHlwZSA9PT0gJ2Rpcic7XG4gICAgfVxufVxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1pY29uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZmlsZXMvc2VydmljZXMvdHJlZS1pY29uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRXpEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGVBQWU7SUFDeEI7Ozs7O09BS0c7SUFDSSxXQUFXLENBQUMsSUFBb0I7UUFDbkMsUUFBUSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDcEIsS0FBSyxlQUFlLENBQUMsU0FBUztnQkFDMUIsT0FBTyxtQkFBbUIsQ0FBQztZQUMvQixLQUFLLGVBQWUsQ0FBQyxXQUFXO2dCQUM1QixPQUFPLGVBQWUsQ0FBQztZQUMzQixLQUFLLGVBQWUsQ0FBQyxZQUFZO2dCQUM3QixPQUFPLGdCQUFnQixDQUFDO1lBQzVCLEtBQUssZUFBZSxDQUFDLGFBQWE7Z0JBQzlCLE9BQU8saUJBQWlCLENBQUM7WUFDN0IsS0FBSyxlQUFlLENBQUMsVUFBVTtnQkFDM0IsT0FBTyxjQUFjLENBQUM7WUFDMUI7Z0JBQ0ksT0FBTyxZQUFZLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxXQUFXLENBQUMsSUFBb0I7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQztJQUMvQixDQUFDOzs0R0FoQ1EsZUFBZTtnSEFBZixlQUFlLGNBRlosTUFBTTsyRkFFVCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNjRG9jdW1lbnRJbmZvIH0gZnJvbSAnQHNuYWJjZW50ci9jbGllbnQtY29yZS9maWxlcy9jbGFzc2VzL3NjLWRvY3VtZW50LWluZm8nO1xuaW1wb3J0IHsgU2NJY29uVHlwZXNFbnVtIH0gZnJvbSAnQHNuYWJjZW50ci9jbGllbnQtY29yZSc7XG5cbi8qKlxuICog0KHQtdGA0LLQuNGBINGA0LDQsdC+0YLQsNGO0YnQuNC5INGBINC30L3QsNGH0LrQsNC80Lgg0Y3Qu9C10LzQtdC90YLQvtCyINC00LXRgNC10LLQsC5cbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVHJlZUljb25TZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiDQndCw0LfQvdCw0YfQsNC10YIg0LfQvdCw0YfQvtC6INGN0LvQtdC80LXQvdGC0YMg0LTQtdGA0LXQstCwINCyINC30LDQstC40YHQuNC80L7RgdGC0Lgg0L7RgiDRgtC40L/QsCDRhNCw0LnQu9CwLlxuICAgICAqXG4gICAgICogQHBhcmFtIGluZm8g0J7QsdGK0LXQutGCINC/0YDQuNGI0LXQtNGI0LjRhSDQtNCw0L3QvdGL0YUg0L4g0YTQsNC50LvQtS5cbiAgICAgKiBAcmV0dXJucyDQktC+0LfQstGA0LDRidCw0LXRgiDQvdCw0LfQstCw0L3QuNC1INC30L3QsNGH0LrQsCDQsiDQstC40LTQtSDRgdGC0YDQvtC60LguXG4gICAgICovXG4gICAgcHVibGljIGdldEljb25OYW1lKGluZm86IFNjRG9jdW1lbnRJbmZvKTogc3RyaW5nIHtcbiAgICAgICAgc3dpdGNoIChpbmZvLmdldEljb24oKSkge1xuICAgICAgICAgICAgY2FzZSBTY0ljb25UeXBlc0VudW0uaWNvbkltYWdlOlxuICAgICAgICAgICAgICAgIHJldHVybiAndHVpSWNvbkltYWdlTGFyZ2UnO1xuICAgICAgICAgICAgY2FzZSBTY0ljb25UeXBlc0VudW0uaWNvblBkZkZpbGU6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzY0ljb25QZGZGaWxlJztcbiAgICAgICAgICAgIGNhc2UgU2NJY29uVHlwZXNFbnVtLmljb25Xb3JkRmlsZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3NjSWNvbldvcmRGaWxlJztcbiAgICAgICAgICAgIGNhc2UgU2NJY29uVHlwZXNFbnVtLmljb25FeGNlbEZpbGU6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzY0ljb25FeGNlbEZpbGUnO1xuICAgICAgICAgICAgY2FzZSBTY0ljb25UeXBlc0VudW0uaWNvbkZvbGRlcjpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3NjSWNvbkZvbGRlcic7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAnc2NJY29uRmlsZSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0L7QstC10YDRj9C10YIg0L3QsCDQv9GA0LjQt9C90LDQuiDQvdCw0LvQuNGH0LjRjyDQtNC+0YfQtdGA0L3QuNGFINGN0LvQtdC80LXQvdGC0L7Qsi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpbmZvINCe0LHRitC10LrRgiDQv9GA0LjRiNC10LTRiNC40YUg0LTQsNC90L3Ri9GFINC+INGE0LDQudC70LUuXG4gICAgICogQHJldHVybnMg0JLQvtC30LLRgNCw0YnQsNC10YIgdHJ1ZSDQv9GA0Lgg0L3QsNC70LjRh9C40Lgg0LTQvtGH0LXRgNC90LjRhSDRjdC70LXQvNC10L3RgtC+0LIg0LggZmFsc2Ug0L/RgNC4INC40YUg0L7RgtGB0YPRgtGB0LLQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBoYXNDaGlsZHJlbihpbmZvOiBTY0RvY3VtZW50SW5mbyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaW5mby50eXBlID09PSAnZGlyJztcbiAgICB9XG59XG4iXX0=