@snabcentr/client-ui 2.1.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. package/cart/cart-item-mobile/sc-cart-item-mobile.component.d.ts +1 -2
  2. package/catalog/input-quantity/sc-input-quantity.component.d.ts +15 -3
  3. package/catalog/price-history/sc-price-history.component.d.ts +8 -0
  4. package/directives/abstract-price-card/abstract-sc-price-card.directive.d.ts +1 -2
  5. package/esm2022/cart/cart-item-mobile/sc-cart-item-mobile.component.mjs +4 -4
  6. package/esm2022/catalog/input-quantity/sc-input-quantity.component.mjs +29 -10
  7. package/esm2022/catalog/price-card/sc-price-card.component.mjs +3 -3
  8. package/esm2022/catalog/price-history/sc-price-history.component.mjs +26 -12
  9. package/esm2022/directives/abstract-price-card/abstract-sc-price-card.directive.mjs +2 -3
  10. package/esm2022/form-fields/suggestion-field/sc-suggestion-field.component.mjs +7 -3
  11. package/esm2022/order/index.mjs +2 -2
  12. package/esm2022/order/order-item-mobile/sc-order-item-mobile.component.mjs +80 -0
  13. package/esm2022/order/sc-order.module.mjs +2 -2
  14. package/esm2022/public-api.mjs +1 -2
  15. package/esm2022/samples/ask-to-sample-form/sc-ask-to-sample-form.component.mjs +94 -8
  16. package/esm2022/samples/sc-sample.module.mjs +6 -3
  17. package/esm2022/user/user-managers/sc-user-managers.component.mjs +2 -2
  18. package/fesm2022/snabcentr-client-ui.mjs +164 -93
  19. package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
  20. package/form-fields/suggestion-field/sc-suggestion-field.component.d.ts +4 -0
  21. package/order/index.d.ts +1 -1
  22. package/order/order-item-mobile/{order-item-mobile.component.d.ts → sc-order-item-mobile.component.d.ts} +1 -2
  23. package/order/sc-order.module.d.ts +1 -1
  24. package/package.json +2 -2
  25. package/public-api.d.ts +0 -1
  26. package/samples/ask-to-sample-form/sc-ask-to-sample-form.component.d.ts +38 -4
  27. package/samples/sc-sample.module.d.ts +1 -1
  28. package/styles/tailwind/tailwind.scss +11 -5
  29. package/esm2022/helpers/sc-units-helper.mjs +0 -45
  30. package/esm2022/order/order-item-mobile/order-item-mobile.component.mjs +0 -80
  31. package/esm2022/tokens/index.mjs +0 -2
  32. package/esm2022/tokens/sc-linear-values-token.mjs +0 -10
  33. package/helpers/sc-units-helper.d.ts +0 -28
  34. package/tokens/index.d.ts +0 -1
  35. package/tokens/sc-linear-values-token.d.ts +0 -8
@@ -44,11 +44,11 @@ export class ScPriceCardComponent extends AbstractScPriceCard {
44
44
  this.cdr.markForCheck();
45
45
  }
46
46
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: ScPriceCardComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
47
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: ScPriceCardComponent, selector: "sc-price-card", inputs: { size: "size" }, host: { properties: { "attr.data-size": "this.size", "attr.is_mobile": "this.isMobile", "attr.is_in_cart": "this.isInCart" } }, providers: [SEARCH_TERM_PROVIDERS], usesInheritance: true, ngImport: i0, template: "<div\n *ngIf=\"product; else skeleton\"\n class=\"card-wrapper relative flex w-auto min-w-40 flex-col rounded-xl shadow-md\"\n>\n <div class=\"flex grow flex-col justify-center overflow-hidden rounded-xl p-2\">\n <img\n (click)=\"clickCardEvent.emit()\"\n [src]=\"getCardImagePreview()\"\n [alt]=\"product.name\"\n class=\"max-h-full w-full rounded-xl object-cover\"\n />\n <sc-favorite-btn\n *ngIf=\"authStatus$ | async\"\n class=\"absolute left-2 top-2\"\n (clickEvent)=\"clickFavoriteEvent.emit()\"\n [showLoader]=\"favoriteShowLoader\"\n [isFavorite]=\"product.isFavorite\"\n [disabled]=\"!!product.primaryCategory?.isFavorite\"\n ></sc-favorite-btn>\n <div class=\"absolute right-2 top-2 m-1 flex gap-2\">\n <tui-icon \n *ngIf=\"product.isPreviouslyOrdered\"\n icon=\"@tui.star\"\n class=\"!size-6 rounded-lg !fill-white text-tui-negative\"\n ></tui-icon>\n <tui-icon \n *ngIf=\"product.cartItem\"\n icon=\"@tui.check\"\n class=\"!size-6 rounded-lg bg-tui-primary text-white\"\n ></tui-icon>\n </div>\n </div>\n <div class=\"p-2\">\n <tui-elastic-container class=\"shrink-0\">\n <a\n tuiLink\n class=\"name\"\n \n [tuiHighlight]=\"(search$ | async) ?? ''\"\n (click)=\"clickCardEvent.emit()\"\n >\n {{ product.name }}\n </a>\n </tui-elastic-container>\n <tui-elastic-container class=\"shrink-0\">\n <p\n *ngIf=\"product?.pack\"\n class=\"text-tui-text-02\"\n >\n \u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}\n </p>\n <p\n [tuiHighlight]=\"(search$ | async) ?? ''\"\n class=\"code text-tui-text-02\"\n >\n \u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}\n </p>\n\n <a\n tuiLink\n *ngIf=\"!isMobile && (authStatus$ | async) && product?.costDate\"\n \n aria-disabled=\"true\"\n class=\"history\"\n (click)=\"clickPriceHistoryEvent.emit()\"\n >\n \u0414\u0430\u0442\u0430: {{ product.costDate }}\n </a>\n </tui-elastic-container>\n <div\n *ngIf=\"warehouseSelect$ | async as warehouseSelect\"\n class=\"flex flex-col\"\n >\n <span\n *ngIf=\"product.discount && !isMobile\"\n class=\"flex items-center text-tui-text-02\"\n >\n <span class=\"line-through\">{{ product.discountCostString }}</span> &nbsp;\n <span class=\"font-bold text-tui-success-fill\"> -{{ product.discount.percent }}% </span>\n <tui-icon \n icon=\"@tui.info\"\n [tuiHint]=\"discountHint\"\n [tuiHintShowDelay]=\"100\"\n tuiHintDirection=\"top\"\n class=\"!h-4 text-black\"\n ></tui-icon>\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 <span\n [class.text-tui-text-02]=\"!product.isWarehouseStockExist(warehouseSelect.id)\"\n class=\"cost font-bold\"\n >{{ product.costRubString }}</span\n >\n <span\n *ngIf=\"!product.priceInRub\"\n class=\"hidden font-bold text-tui-text-02 group-hover:block\"\n >{{ product.costString }}</span\n >\n <sc-price-warehouse-stock [product]=\"product\"></sc-price-warehouse-stock>\n </div>\n <div class=\"cart-actions flex shrink-0 overflow-hidden\">\n <button\n *ngIf=\"!showQuantityControl\"\n tuiButton\n (click)=\"clickAddToCartEvent.emit(product)\"\n [loading]=\"quantityShowLoader\"\n [size]=\"size === 's' ? 'xs' : 's'\"\n class=\"mt-2 grow\"\n iconStart=\"@tui.shopping-cart\"\n >\n \u0412 \u043A\u043E\u0440\u0437\u0438\u043D\u0443\n </button>\n <sc-input-quantity\n #inputQuantity\n *ngIf=\"showQuantityControl\"\n [formControl]=\"quantityControl\"\n [size]=\"size\"\n [step]=\"unitsHelper.productMultiplicity(product)\"\n [showLoader]=\"quantityShowLoader\"\n (clickClearEvent)=\"clickClearEvent.emit(cartItem)\"\n class=\"mt-2 w-full\"\n (keydown.enter)=\"inputQuantity.nativeFocusableElement?.blur()\"\n ></sc-input-quantity>\n </div>\n </div>\n</div>\n\n<ng-template #skeleton>\n <div class=\"card-wrapper flex flex-col overflow-hidden rounded-xl bg-white shadow-sc-1\">\n <!-- \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u0432\u0430\u0440\u0430 -->\n <div class=\"h-3/5 w-full rounded-t bg-tui-base-02\"></div>\n <!-- \u041A\u0440\u0430\u0442\u043A\u0430\u044F \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E \u0442\u043E\u0432\u0430\u0440\u0435 -->\n <div class=\"flex grow flex-col gap-2.5 rounded-b bg-white p-5\">\n <div class=\"h-4 w-full rounded bg-tui-base-02\"></div>\n <div class=\"h-4 w-3/5 rounded bg-tui-base-02\"></div>\n <div class=\"h-4 w-full rounded bg-tui-base-02\"></div>\n </div>\n </div>\n</ng-template>\n", styles: [":host .name{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}:host[data-size=s] .card-wrapper{height:16rem;font:var(--tui-font-text-xs)}:host[data-size=s] .card-wrapper .name,:host[data-size=s] .card-wrapper .cost{font:var(--tui-font-text-s);font-weight:800}:host[data-size=m] .card-wrapper{height:20rem;font:var(--tui-font-text-s)}:host[data-size=m] .card-wrapper .name,:host[data-size=m] .card-wrapper .cost{font:var(--tui-font-text-m);font-weight:800}:host[is_mobile=false][is_in_cart=false] .name{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}:host[is_mobile=false][is_in_cart=false] .code,:host[is_mobile=false][is_in_cart=false] .history{display:none}:host[is_mobile=false][is_in_cart=false] .cart-actions{max-height:0;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out}:host[is_mobile=false][is_in_cart=false]:hover .code,:host[is_mobile=false][is_in_cart=false]:hover .history,:host[is_mobile=false][is_in_cart=false]:hover .name{display:-webkit-box;-webkit-line-clamp:4}:host[is_mobile=false][is_in_cart=false]:hover .cart-actions{max-height:3rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: i2.TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.TuiHintDirective, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: ["tuiHintContext", "tuiHintAppearance", "tuiHint"] }, { kind: "directive", type: i2.TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "component", type: i4.TuiElasticContainer, selector: "tui-elastic-container" }, { kind: "directive", type: i4.TuiHighlight, selector: "[tuiHighlight]", inputs: ["tuiHighlight", "tuiHighlightColor"] }, { kind: "component", type: i4.TuiButtonLoading, selector: "[tuiButton][loading],[tuiIconButton][loading]", inputs: ["size", "loading"] }, { kind: "component", type: i5.ScFavoriteBtnComponent, selector: "sc-favorite-btn", inputs: ["isFavorite", "showLoader", "disabled"], outputs: ["clickEvent"] }, { kind: "component", type: i6.ScInputQuantityComponent, selector: "sc-input-quantity", inputs: ["step", "showLoader", "showCross", "appearance", "isDisabled", "size"], outputs: ["clickClearEvent"] }, { kind: "component", type: i7.ScPriceWarehouseStockComponent, selector: "sc-price-warehouse-stock", inputs: ["classList", "product", "withStockHint", "fromMain"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: ScPriceCardComponent, selector: "sc-price-card", inputs: { size: "size" }, host: { properties: { "attr.data-size": "this.size", "attr.is_mobile": "this.isMobile", "attr.is_in_cart": "this.isInCart" } }, providers: [SEARCH_TERM_PROVIDERS], usesInheritance: true, ngImport: i0, template: "<div\n *ngIf=\"product; else skeleton\"\n class=\"card-wrapper relative flex w-auto min-w-40 flex-col rounded-xl shadow-md\"\n>\n <div class=\"flex grow flex-col justify-center overflow-hidden rounded-xl p-2\">\n <img\n (click)=\"clickCardEvent.emit()\"\n [src]=\"getCardImagePreview()\"\n [alt]=\"product.name\"\n class=\"max-h-full w-full rounded-xl object-cover\"\n />\n <sc-favorite-btn\n *ngIf=\"authStatus$ | async\"\n class=\"absolute left-2 top-2\"\n (clickEvent)=\"clickFavoriteEvent.emit()\"\n [showLoader]=\"favoriteShowLoader\"\n [isFavorite]=\"product.isFavorite\"\n [disabled]=\"!!product.primaryCategory?.isFavorite\"\n ></sc-favorite-btn>\n <div class=\"absolute right-2 top-2 m-1 flex gap-2\">\n <tui-icon \n *ngIf=\"product.isPreviouslyOrdered\"\n icon=\"@tui.star\"\n class=\"!size-6 rounded-lg !fill-white text-tui-negative\"\n ></tui-icon>\n <tui-icon \n *ngIf=\"product.cartItem\"\n icon=\"@tui.check\"\n class=\"!size-6 rounded-lg bg-tui-primary text-white\"\n ></tui-icon>\n </div>\n </div>\n <div class=\"p-2\">\n <tui-elastic-container class=\"shrink-0\">\n <a\n tuiLink\n class=\"name\"\n \n [tuiHighlight]=\"(search$ | async) ?? ''\"\n (click)=\"clickCardEvent.emit()\"\n >\n {{ product.name }}\n </a>\n </tui-elastic-container>\n <tui-elastic-container class=\"shrink-0\">\n <p\n *ngIf=\"product?.pack\"\n class=\"text-tui-text-02\"\n >\n \u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}\n <tui-svg\n *ngIf=\"product.ignoreMinCountCheck\"\n src=\"tuiIconPackage\"\n [tuiHint]=\"minCountHint\"\n [tuiHintShowDelay]=\"100\"\n tuiHintDirection=\"top\"\n ></tui-svg>\n <ng-template #minCountHint>\n \u0414\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u0437\u0430\u043A\u0430\u0437 <br />\n \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u043B\u044C\u043D\u043E\u0433\u043E <br />\n \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0430\n </ng-template>\n </p>\n <p\n [tuiHighlight]=\"(search$ | async) ?? ''\"\n class=\"code text-tui-text-02\"\n >\n \u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}\n </p>\n\n <a\n tuiLink\n *ngIf=\"!isMobile && (authStatus$ | async) && product?.costDate\"\n \n aria-disabled=\"true\"\n class=\"history\"\n (click)=\"clickPriceHistoryEvent.emit()\"\n >\n \u0414\u0430\u0442\u0430: {{ product.costDate }}\n </a>\n </tui-elastic-container>\n <div\n *ngIf=\"warehouseSelect$ | async as warehouseSelect\"\n class=\"flex flex-col\"\n >\n <span\n *ngIf=\"product.discount && !isMobile\"\n class=\"flex items-center text-tui-text-02\"\n >\n <span class=\"line-through\">{{ product.discountCostString }}</span> &nbsp;\n <span class=\"font-bold text-tui-success-fill\"> -{{ product.discount.percent }}% </span>\n <tui-icon \n icon=\"@tui.info\"\n [tuiHint]=\"discountHint\"\n [tuiHintShowDelay]=\"100\"\n tuiHintDirection=\"top\"\n class=\"!h-4 text-black\"\n ></tui-icon>\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 <span\n [class.text-tui-text-02]=\"!product.isWarehouseStockExist(warehouseSelect.id)\"\n class=\"cost font-bold\"\n >{{ product.costRubString }}</span\n >\n <span\n *ngIf=\"!product.priceInRub\"\n class=\"hidden font-bold text-tui-text-02 group-hover:block\"\n >{{ product.costString }}</span\n >\n <sc-price-warehouse-stock [product]=\"product\"></sc-price-warehouse-stock>\n </div>\n <div class=\"cart-actions flex shrink-0 overflow-hidden\">\n <button\n *ngIf=\"!showQuantityControl\"\n tuiButton\n (click)=\"clickAddToCartEvent.emit(product)\"\n [loading]=\"quantityShowLoader\"\n [size]=\"size === 's' ? 'xs' : 's'\"\n class=\"mt-2 grow\"\n iconStart=\"@tui.shopping-cart\"\n >\n \u0412 \u043A\u043E\u0440\u0437\u0438\u043D\u0443\n </button>\n <sc-input-quantity\n #inputQuantity\n *ngIf=\"showQuantityControl\"\n [formControl]=\"quantityControl\"\n [size]=\"size\"\n [step]=\"unitsHelper.productMultiplicity(product)\"\n [ignoreStepValidators]=\"product.ignoreMinCountCheck\"\n [showLoader]=\"quantityShowLoader\"\n (clickClearEvent)=\"clickClearEvent.emit(cartItem)\"\n class=\"mt-2 w-full\"\n (keydown.enter)=\"inputQuantity.nativeFocusableElement?.blur()\"\n ></sc-input-quantity>\n </div>\n </div>\n</div>\n\n<ng-template #skeleton>\n <div class=\"card-wrapper flex flex-col overflow-hidden rounded-xl bg-white shadow-sc-1\">\n <!-- \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u0432\u0430\u0440\u0430 -->\n <div class=\"h-3/5 w-full rounded-t bg-tui-base-02\"></div>\n <!-- \u041A\u0440\u0430\u0442\u043A\u0430\u044F \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E \u0442\u043E\u0432\u0430\u0440\u0435 -->\n <div class=\"flex grow flex-col gap-2.5 rounded-b bg-white p-5\">\n <div class=\"h-4 w-full rounded bg-tui-base-02\"></div>\n <div class=\"h-4 w-3/5 rounded bg-tui-base-02\"></div>\n <div class=\"h-4 w-full rounded bg-tui-base-02\"></div>\n </div>\n </div>\n</ng-template>\n", styles: [":host .name{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}:host[data-size=s] .card-wrapper{height:16rem;font:var(--tui-font-text-xs)}:host[data-size=s] .card-wrapper .name,:host[data-size=s] .card-wrapper .cost{font:var(--tui-font-text-s);font-weight:800}:host[data-size=m] .card-wrapper{height:20rem;font:var(--tui-font-text-s)}:host[data-size=m] .card-wrapper .name,:host[data-size=m] .card-wrapper .cost{font:var(--tui-font-text-m);font-weight:800}:host[is_mobile=false][is_in_cart=false] .name{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}:host[is_mobile=false][is_in_cart=false] .code,:host[is_mobile=false][is_in_cart=false] .history{display:none}:host[is_mobile=false][is_in_cart=false] .cart-actions{max-height:0;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out}:host[is_mobile=false][is_in_cart=false]:hover .code,:host[is_mobile=false][is_in_cart=false]:hover .history,:host[is_mobile=false][is_in_cart=false]:hover .name{display:-webkit-box;-webkit-line-clamp:4}:host[is_mobile=false][is_in_cart=false]:hover .cart-actions{max-height:3rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: i2.TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.TuiHintDirective, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: ["tuiHintContext", "tuiHintAppearance", "tuiHint"] }, { kind: "directive", type: i2.TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "component", type: i4.TuiElasticContainer, selector: "tui-elastic-container" }, { kind: "directive", type: i4.TuiHighlight, selector: "[tuiHighlight]", inputs: ["tuiHighlight", "tuiHighlightColor"] }, { kind: "component", type: i4.TuiButtonLoading, selector: "[tuiButton][loading],[tuiIconButton][loading]", inputs: ["size", "loading"] }, { kind: "component", type: i5.ScFavoriteBtnComponent, selector: "sc-favorite-btn", inputs: ["isFavorite", "showLoader", "disabled"], outputs: ["clickEvent"] }, { kind: "component", type: i6.ScInputQuantityComponent, selector: "sc-input-quantity", inputs: ["step", "showLoader", "showCross", "ignoreStepValidators", "appearance", "isDisabled", "size"], outputs: ["clickClearEvent"] }, { kind: "component", type: i7.ScPriceWarehouseStockComponent, selector: "sc-price-warehouse-stock", inputs: ["classList", "product", "withStockHint", "fromMain"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
48
48
  }
49
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: ScPriceCardComponent, decorators: [{
50
50
  type: Component,
51
- args: [{ selector: 'sc-price-card', providers: [SEARCH_TERM_PROVIDERS], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"product; else skeleton\"\n class=\"card-wrapper relative flex w-auto min-w-40 flex-col rounded-xl shadow-md\"\n>\n <div class=\"flex grow flex-col justify-center overflow-hidden rounded-xl p-2\">\n <img\n (click)=\"clickCardEvent.emit()\"\n [src]=\"getCardImagePreview()\"\n [alt]=\"product.name\"\n class=\"max-h-full w-full rounded-xl object-cover\"\n />\n <sc-favorite-btn\n *ngIf=\"authStatus$ | async\"\n class=\"absolute left-2 top-2\"\n (clickEvent)=\"clickFavoriteEvent.emit()\"\n [showLoader]=\"favoriteShowLoader\"\n [isFavorite]=\"product.isFavorite\"\n [disabled]=\"!!product.primaryCategory?.isFavorite\"\n ></sc-favorite-btn>\n <div class=\"absolute right-2 top-2 m-1 flex gap-2\">\n <tui-icon \n *ngIf=\"product.isPreviouslyOrdered\"\n icon=\"@tui.star\"\n class=\"!size-6 rounded-lg !fill-white text-tui-negative\"\n ></tui-icon>\n <tui-icon \n *ngIf=\"product.cartItem\"\n icon=\"@tui.check\"\n class=\"!size-6 rounded-lg bg-tui-primary text-white\"\n ></tui-icon>\n </div>\n </div>\n <div class=\"p-2\">\n <tui-elastic-container class=\"shrink-0\">\n <a\n tuiLink\n class=\"name\"\n \n [tuiHighlight]=\"(search$ | async) ?? ''\"\n (click)=\"clickCardEvent.emit()\"\n >\n {{ product.name }}\n </a>\n </tui-elastic-container>\n <tui-elastic-container class=\"shrink-0\">\n <p\n *ngIf=\"product?.pack\"\n class=\"text-tui-text-02\"\n >\n \u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}\n </p>\n <p\n [tuiHighlight]=\"(search$ | async) ?? ''\"\n class=\"code text-tui-text-02\"\n >\n \u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}\n </p>\n\n <a\n tuiLink\n *ngIf=\"!isMobile && (authStatus$ | async) && product?.costDate\"\n \n aria-disabled=\"true\"\n class=\"history\"\n (click)=\"clickPriceHistoryEvent.emit()\"\n >\n \u0414\u0430\u0442\u0430: {{ product.costDate }}\n </a>\n </tui-elastic-container>\n <div\n *ngIf=\"warehouseSelect$ | async as warehouseSelect\"\n class=\"flex flex-col\"\n >\n <span\n *ngIf=\"product.discount && !isMobile\"\n class=\"flex items-center text-tui-text-02\"\n >\n <span class=\"line-through\">{{ product.discountCostString }}</span> &nbsp;\n <span class=\"font-bold text-tui-success-fill\"> -{{ product.discount.percent }}% </span>\n <tui-icon \n icon=\"@tui.info\"\n [tuiHint]=\"discountHint\"\n [tuiHintShowDelay]=\"100\"\n tuiHintDirection=\"top\"\n class=\"!h-4 text-black\"\n ></tui-icon>\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 <span\n [class.text-tui-text-02]=\"!product.isWarehouseStockExist(warehouseSelect.id)\"\n class=\"cost font-bold\"\n >{{ product.costRubString }}</span\n >\n <span\n *ngIf=\"!product.priceInRub\"\n class=\"hidden font-bold text-tui-text-02 group-hover:block\"\n >{{ product.costString }}</span\n >\n <sc-price-warehouse-stock [product]=\"product\"></sc-price-warehouse-stock>\n </div>\n <div class=\"cart-actions flex shrink-0 overflow-hidden\">\n <button\n *ngIf=\"!showQuantityControl\"\n tuiButton\n (click)=\"clickAddToCartEvent.emit(product)\"\n [loading]=\"quantityShowLoader\"\n [size]=\"size === 's' ? 'xs' : 's'\"\n class=\"mt-2 grow\"\n iconStart=\"@tui.shopping-cart\"\n >\n \u0412 \u043A\u043E\u0440\u0437\u0438\u043D\u0443\n </button>\n <sc-input-quantity\n #inputQuantity\n *ngIf=\"showQuantityControl\"\n [formControl]=\"quantityControl\"\n [size]=\"size\"\n [step]=\"unitsHelper.productMultiplicity(product)\"\n [showLoader]=\"quantityShowLoader\"\n (clickClearEvent)=\"clickClearEvent.emit(cartItem)\"\n class=\"mt-2 w-full\"\n (keydown.enter)=\"inputQuantity.nativeFocusableElement?.blur()\"\n ></sc-input-quantity>\n </div>\n </div>\n</div>\n\n<ng-template #skeleton>\n <div class=\"card-wrapper flex flex-col overflow-hidden rounded-xl bg-white shadow-sc-1\">\n <!-- \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u0432\u0430\u0440\u0430 -->\n <div class=\"h-3/5 w-full rounded-t bg-tui-base-02\"></div>\n <!-- \u041A\u0440\u0430\u0442\u043A\u0430\u044F \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E \u0442\u043E\u0432\u0430\u0440\u0435 -->\n <div class=\"flex grow flex-col gap-2.5 rounded-b bg-white p-5\">\n <div class=\"h-4 w-full rounded bg-tui-base-02\"></div>\n <div class=\"h-4 w-3/5 rounded bg-tui-base-02\"></div>\n <div class=\"h-4 w-full rounded bg-tui-base-02\"></div>\n </div>\n </div>\n</ng-template>\n", styles: [":host .name{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}:host[data-size=s] .card-wrapper{height:16rem;font:var(--tui-font-text-xs)}:host[data-size=s] .card-wrapper .name,:host[data-size=s] .card-wrapper .cost{font:var(--tui-font-text-s);font-weight:800}:host[data-size=m] .card-wrapper{height:20rem;font:var(--tui-font-text-s)}:host[data-size=m] .card-wrapper .name,:host[data-size=m] .card-wrapper .cost{font:var(--tui-font-text-m);font-weight:800}:host[is_mobile=false][is_in_cart=false] .name{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}:host[is_mobile=false][is_in_cart=false] .code,:host[is_mobile=false][is_in_cart=false] .history{display:none}:host[is_mobile=false][is_in_cart=false] .cart-actions{max-height:0;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out}:host[is_mobile=false][is_in_cart=false]:hover .code,:host[is_mobile=false][is_in_cart=false]:hover .history,:host[is_mobile=false][is_in_cart=false]:hover .name{display:-webkit-box;-webkit-line-clamp:4}:host[is_mobile=false][is_in_cart=false]:hover .cart-actions{max-height:3rem}\n"] }]
51
+ args: [{ selector: 'sc-price-card', providers: [SEARCH_TERM_PROVIDERS], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"product; else skeleton\"\n class=\"card-wrapper relative flex w-auto min-w-40 flex-col rounded-xl shadow-md\"\n>\n <div class=\"flex grow flex-col justify-center overflow-hidden rounded-xl p-2\">\n <img\n (click)=\"clickCardEvent.emit()\"\n [src]=\"getCardImagePreview()\"\n [alt]=\"product.name\"\n class=\"max-h-full w-full rounded-xl object-cover\"\n />\n <sc-favorite-btn\n *ngIf=\"authStatus$ | async\"\n class=\"absolute left-2 top-2\"\n (clickEvent)=\"clickFavoriteEvent.emit()\"\n [showLoader]=\"favoriteShowLoader\"\n [isFavorite]=\"product.isFavorite\"\n [disabled]=\"!!product.primaryCategory?.isFavorite\"\n ></sc-favorite-btn>\n <div class=\"absolute right-2 top-2 m-1 flex gap-2\">\n <tui-icon \n *ngIf=\"product.isPreviouslyOrdered\"\n icon=\"@tui.star\"\n class=\"!size-6 rounded-lg !fill-white text-tui-negative\"\n ></tui-icon>\n <tui-icon \n *ngIf=\"product.cartItem\"\n icon=\"@tui.check\"\n class=\"!size-6 rounded-lg bg-tui-primary text-white\"\n ></tui-icon>\n </div>\n </div>\n <div class=\"p-2\">\n <tui-elastic-container class=\"shrink-0\">\n <a\n tuiLink\n class=\"name\"\n \n [tuiHighlight]=\"(search$ | async) ?? ''\"\n (click)=\"clickCardEvent.emit()\"\n >\n {{ product.name }}\n </a>\n </tui-elastic-container>\n <tui-elastic-container class=\"shrink-0\">\n <p\n *ngIf=\"product?.pack\"\n class=\"text-tui-text-02\"\n >\n \u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}\n <tui-svg\n *ngIf=\"product.ignoreMinCountCheck\"\n src=\"tuiIconPackage\"\n [tuiHint]=\"minCountHint\"\n [tuiHintShowDelay]=\"100\"\n tuiHintDirection=\"top\"\n ></tui-svg>\n <ng-template #minCountHint>\n \u0414\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u0437\u0430\u043A\u0430\u0437 <br />\n \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u043B\u044C\u043D\u043E\u0433\u043E <br />\n \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0430\n </ng-template>\n </p>\n <p\n [tuiHighlight]=\"(search$ | async) ?? ''\"\n class=\"code text-tui-text-02\"\n >\n \u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}\n </p>\n\n <a\n tuiLink\n *ngIf=\"!isMobile && (authStatus$ | async) && product?.costDate\"\n \n aria-disabled=\"true\"\n class=\"history\"\n (click)=\"clickPriceHistoryEvent.emit()\"\n >\n \u0414\u0430\u0442\u0430: {{ product.costDate }}\n </a>\n </tui-elastic-container>\n <div\n *ngIf=\"warehouseSelect$ | async as warehouseSelect\"\n class=\"flex flex-col\"\n >\n <span\n *ngIf=\"product.discount && !isMobile\"\n class=\"flex items-center text-tui-text-02\"\n >\n <span class=\"line-through\">{{ product.discountCostString }}</span> &nbsp;\n <span class=\"font-bold text-tui-success-fill\"> -{{ product.discount.percent }}% </span>\n <tui-icon \n icon=\"@tui.info\"\n [tuiHint]=\"discountHint\"\n [tuiHintShowDelay]=\"100\"\n tuiHintDirection=\"top\"\n class=\"!h-4 text-black\"\n ></tui-icon>\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 <span\n [class.text-tui-text-02]=\"!product.isWarehouseStockExist(warehouseSelect.id)\"\n class=\"cost font-bold\"\n >{{ product.costRubString }}</span\n >\n <span\n *ngIf=\"!product.priceInRub\"\n class=\"hidden font-bold text-tui-text-02 group-hover:block\"\n >{{ product.costString }}</span\n >\n <sc-price-warehouse-stock [product]=\"product\"></sc-price-warehouse-stock>\n </div>\n <div class=\"cart-actions flex shrink-0 overflow-hidden\">\n <button\n *ngIf=\"!showQuantityControl\"\n tuiButton\n (click)=\"clickAddToCartEvent.emit(product)\"\n [loading]=\"quantityShowLoader\"\n [size]=\"size === 's' ? 'xs' : 's'\"\n class=\"mt-2 grow\"\n iconStart=\"@tui.shopping-cart\"\n >\n \u0412 \u043A\u043E\u0440\u0437\u0438\u043D\u0443\n </button>\n <sc-input-quantity\n #inputQuantity\n *ngIf=\"showQuantityControl\"\n [formControl]=\"quantityControl\"\n [size]=\"size\"\n [step]=\"unitsHelper.productMultiplicity(product)\"\n [ignoreStepValidators]=\"product.ignoreMinCountCheck\"\n [showLoader]=\"quantityShowLoader\"\n (clickClearEvent)=\"clickClearEvent.emit(cartItem)\"\n class=\"mt-2 w-full\"\n (keydown.enter)=\"inputQuantity.nativeFocusableElement?.blur()\"\n ></sc-input-quantity>\n </div>\n </div>\n</div>\n\n<ng-template #skeleton>\n <div class=\"card-wrapper flex flex-col overflow-hidden rounded-xl bg-white shadow-sc-1\">\n <!-- \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u0432\u0430\u0440\u0430 -->\n <div class=\"h-3/5 w-full rounded-t bg-tui-base-02\"></div>\n <!-- \u041A\u0440\u0430\u0442\u043A\u0430\u044F \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E \u0442\u043E\u0432\u0430\u0440\u0435 -->\n <div class=\"flex grow flex-col gap-2.5 rounded-b bg-white p-5\">\n <div class=\"h-4 w-full rounded bg-tui-base-02\"></div>\n <div class=\"h-4 w-3/5 rounded bg-tui-base-02\"></div>\n <div class=\"h-4 w-full rounded bg-tui-base-02\"></div>\n </div>\n </div>\n</ng-template>\n", styles: [":host .name{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}:host[data-size=s] .card-wrapper{height:16rem;font:var(--tui-font-text-xs)}:host[data-size=s] .card-wrapper .name,:host[data-size=s] .card-wrapper .cost{font:var(--tui-font-text-s);font-weight:800}:host[data-size=m] .card-wrapper{height:20rem;font:var(--tui-font-text-s)}:host[data-size=m] .card-wrapper .name,:host[data-size=m] .card-wrapper .cost{font:var(--tui-font-text-m);font-weight:800}:host[is_mobile=false][is_in_cart=false] .name{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}:host[is_mobile=false][is_in_cart=false] .code,:host[is_mobile=false][is_in_cart=false] .history{display:none}:host[is_mobile=false][is_in_cart=false] .cart-actions{max-height:0;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out}:host[is_mobile=false][is_in_cart=false]:hover .code,:host[is_mobile=false][is_in_cart=false]:hover .history,:host[is_mobile=false][is_in_cart=false]:hover .name{display:-webkit-box;-webkit-line-clamp:4}:host[is_mobile=false][is_in_cart=false]:hover .cart-actions{max-height:3rem}\n"] }]
52
52
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { size: [{
53
53
  type: Input
54
54
  }, {
@@ -61,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
61
61
  type: HostBinding,
62
62
  args: ['attr.is_in_cart']
63
63
  }] } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcHJpY2UtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY2F0YWxvZy9wcmljZS1jYXJkL3NjLXByaWNlLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhdGFsb2cvcHJpY2UtY2FyZC9zYy1wcmljZS1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7OztBQUV2RDs7R0FFRztBQVFILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxtQkFBbUI7SUFjekQ7Ozs7T0FJRztJQUNILFlBQW9DLEdBQXNCO1FBQ3RELEtBQUssRUFBRSxDQUFDO1FBRHdCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBbEIxRDs7V0FFRztRQUdJLFNBQUksR0FBYSxHQUFHLENBQUM7UUFFNUI7O1dBRUc7UUFFZ0IsYUFBUSxHQUFZLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQVM3RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNJLFFBQVE7UUFDUixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksWUFBWTtRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUIsQ0FBQzs4R0FwQ1Esb0JBQW9CO2tHQUFwQixvQkFBb0Isa01BSGxCLENBQUMscUJBQXFCLENBQUMsaURDZHRDLDhrTUE4SUE7OzJGRDdIYSxvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0ksZUFBZSxhQUdkLENBQUMscUJBQXFCLENBQUMsbUJBQ2pCLHVCQUF1QixDQUFDLE1BQU07c0ZBUXhDLElBQUk7c0JBRlYsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBT1YsUUFBUTtzQkFEMUIsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBZ0J6QixRQUFRO3NCQURYLFdBQVc7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTRUFSQ0hfVEVSTV9QUk9WSURFUlMgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFRVSV9JU19NT0JJTEUgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IFR1aVNpemVTIH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFNjUHJpY2VDYXJkIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINC60LDRgNGC0L7Rh9C60Lgg0YLQvtCy0LDRgNCwLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjLXByaWNlLWNhcmQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy1wcmljZS1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zYy1wcmljZS1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbU0VBUkNIX1RFUk1fUFJPVklERVJTXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2NQcmljZUNhcmRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFNjUHJpY2VDYXJkIHtcbiAgICAvKipcbiAgICAgKiDQoNCw0LfQvNC10YAg0LrQvtC80L/QvtC90LXQvdGC0LAuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1zaXplJylcbiAgICBwdWJsaWMgc2l6ZTogVHVpU2l6ZVMgPSAnbSc7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiDRgtC+0LPQviwg0YfRgtC+INGN0YLQvtGCINC60L7QvNC/0L7QvdC10L3RgiDQvtGC0L7QsdGA0LDQttCw0LXRgtGB0Y8g0L3QsCDQvNC+0LHQuNC70YzQvdC+0Lwg0YPRgdGC0YDQvtC50YHRgtCy0LUuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlzX21vYmlsZScpXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzTW9iaWxlOiBib29sZWFuID0gaW5qZWN0KFRVSV9JU19NT0JJTEUpO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNC40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NQcmljZUNhcmRDb21wb25lbnR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNkciDQntCx0YrQtdC60YIg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSDQvtCx0L3QsNGA0YPQttC10L3QuNC10Lwg0LjQt9C80LXQvdC10L3QuNC5LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiDRgtC+0LPQviwg0YfRgtC+INC60L7QvNC/0L7QvdC10L3RgiDQvdCw0YXQvtC00LjRgtGB0Y8g0LIg0LrQvtGA0LfQuNC90LUuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlzX2luX2NhcnQnKVxuICAgIGdldCBpc0luQ2FydCgpIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odGhpcy5jYXJ0SXRlbSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LrQvtC80L/QvtC90LXQvdGCINCyINC+0YfQtdGA0LXQtNGMINC90LAg0L7QsdC90L7QstC70LXQvdC40LUuXG4gICAgICovXG4gICAgcHVibGljIG1hcmtGb3JDaGVjaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgICpuZ0lmPVwicHJvZHVjdDsgZWxzZSBza2VsZXRvblwiXG4gICAgY2xhc3M9XCJjYXJkLXdyYXBwZXIgcmVsYXRpdmUgZmxleCB3LWF1dG8gbWluLXctNDAgZmxleC1jb2wgcm91bmRlZC14bCBzaGFkb3ctbWRcIlxuPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdyb3cgZmxleC1jb2wganVzdGlmeS1jZW50ZXIgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQteGwgcC0yXCI+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICAgIChjbGljayk9XCJjbGlja0NhcmRFdmVudC5lbWl0KClcIlxuICAgICAgICAgICAgW3NyY109XCJnZXRDYXJkSW1hZ2VQcmV2aWV3KClcIlxuICAgICAgICAgICAgW2FsdF09XCJwcm9kdWN0Lm5hbWVcIlxuICAgICAgICAgICAgY2xhc3M9XCJtYXgtaC1mdWxsIHctZnVsbCByb3VuZGVkLXhsIG9iamVjdC1jb3ZlclwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzYy1mYXZvcml0ZS1idG5cbiAgICAgICAgICAgICpuZ0lmPVwiYXV0aFN0YXR1cyQgfCBhc3luY1wiXG4gICAgICAgICAgICBjbGFzcz1cImFic29sdXRlIGxlZnQtMiB0b3AtMlwiXG4gICAgICAgICAgICAoY2xpY2tFdmVudCk9XCJjbGlja0Zhdm9yaXRlRXZlbnQuZW1pdCgpXCJcbiAgICAgICAgICAgIFtzaG93TG9hZGVyXT1cImZhdm9yaXRlU2hvd0xvYWRlclwiXG4gICAgICAgICAgICBbaXNGYXZvcml0ZV09XCJwcm9kdWN0LmlzRmF2b3JpdGVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiEhcHJvZHVjdC5wcmltYXJ5Q2F0ZWdvcnk/LmlzRmF2b3JpdGVcIlxuICAgICAgICA+PC9zYy1mYXZvcml0ZS1idG4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSByaWdodC0yIHRvcC0yIG0tMSBmbGV4IGdhcC0yXCI+XG4gICAgICAgICAgICA8dHVpLWljb24gXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJwcm9kdWN0LmlzUHJldmlvdXNseU9yZGVyZWRcIlxuICAgICAgICAgICAgICAgIGljb249XCJAdHVpLnN0YXJcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiIXNpemUtNiByb3VuZGVkLWxnICFmaWxsLXdoaXRlIHRleHQtdHVpLW5lZ2F0aXZlXCJcbiAgICAgICAgICAgID48L3R1aS1pY29uPlxuICAgICAgICAgICAgPHR1aS1pY29uIFxuICAgICAgICAgICAgICAgICpuZ0lmPVwicHJvZHVjdC5jYXJ0SXRlbVwiXG4gICAgICAgICAgICAgICAgaWNvbj1cIkB0dWkuY2hlY2tcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiIXNpemUtNiByb3VuZGVkLWxnIGJnLXR1aS1wcmltYXJ5IHRleHQtd2hpdGVcIlxuICAgICAgICAgICAgPjwvdHVpLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJwLTJcIj5cbiAgICAgICAgPHR1aS1lbGFzdGljLWNvbnRhaW5lciBjbGFzcz1cInNocmluay0wXCI+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIHR1aUxpbmtcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm5hbWVcIlxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIFt0dWlIaWdobGlnaHRdPVwiKHNlYXJjaCQgfCBhc3luYykgPz8gJydcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0NhcmRFdmVudC5lbWl0KClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHByb2R1Y3QubmFtZSB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L3R1aS1lbGFzdGljLWNvbnRhaW5lcj5cbiAgICAgICAgPHR1aS1lbGFzdGljLWNvbnRhaW5lciBjbGFzcz1cInNocmluay0wXCI+XG4gICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgICpuZ0lmPVwicHJvZHVjdD8ucGFja1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXR1aS10ZXh0LTAyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICDQndC+0YDQvNCwINGD0L/QsNC60L7QstC60Lg6IHt7IHByb2R1Y3QucGFjayB9fVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICBbdHVpSGlnaGxpZ2h0XT1cIihzZWFyY2gkIHwgYXN5bmMpID8/ICcnXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvZGUgdGV4dC10dWktdGV4dC0wMlwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAg0JDRgNGC0LjQutGD0Ls6IHt7IHByb2R1Y3QuY29kZSB9fVxuICAgICAgICAgICAgPC9wPlxuXG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIHR1aUxpbmtcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFpc01vYmlsZSAmJiAoYXV0aFN0YXR1cyQgfCBhc3luYykgJiYgcHJvZHVjdD8uY29zdERhdGVcIlxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGFyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImhpc3RvcnlcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGlja1ByaWNlSGlzdG9yeUV2ZW50LmVtaXQoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAg0JTQsNGC0LA6IHt7IHByb2R1Y3QuY29zdERhdGUgfX1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgPC90dWktZWxhc3RpYy1jb250YWluZXI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwid2FyZWhvdXNlU2VsZWN0JCB8IGFzeW5jIGFzIHdhcmVob3VzZVNlbGVjdFwiXG4gICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1jb2xcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwicHJvZHVjdC5kaXNjb3VudCAmJiAhaXNNb2JpbGVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgdGV4dC10dWktdGV4dC0wMlwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsaW5lLXRocm91Z2hcIj57eyBwcm9kdWN0LmRpc2NvdW50Q29zdFN0cmluZyB9fTwvc3Bhbj4gJm5ic3A7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGQgdGV4dC10dWktc3VjY2Vzcy1maWxsXCI+IC17eyBwcm9kdWN0LmRpc2NvdW50LnBlcmNlbnQgfX0lIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8dHVpLWljb24gXG4gICAgICAgICAgICAgICAgICAgIGljb249XCJAdHVpLmluZm9cIlxuICAgICAgICAgICAgICAgICAgICBbdHVpSGludF09XCJkaXNjb3VudEhpbnRcIlxuICAgICAgICAgICAgICAgICAgICBbdHVpSGludFNob3dEZWxheV09XCIxMDBcIlxuICAgICAgICAgICAgICAgICAgICB0dWlIaW50RGlyZWN0aW9uPVwidG9wXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIhaC00IHRleHQtYmxhY2tcIlxuICAgICAgICAgICAgICAgID48L3R1aS1pY29uPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGlzY291bnRIaW50PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1ib2xkXCI+e3sgcHJvZHVjdC5kaXNjb3VudC5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJwcm9kdWN0LmRpc2NvdW50LmV4cGlyZWRBdCBhcyBleHBpcmVkQXRcIj7QlNCw0YLQsCDQvtC60L7QvdGH0LDQvdC40Y86IHt7IGV4cGlyZWRBdCB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIFtjbGFzcy50ZXh0LXR1aS10ZXh0LTAyXT1cIiFwcm9kdWN0LmlzV2FyZWhvdXNlU3RvY2tFeGlzdCh3YXJlaG91c2VTZWxlY3QuaWQpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvc3QgZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICA+e3sgcHJvZHVjdC5jb3N0UnViU3RyaW5nIH19PC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIXByb2R1Y3QucHJpY2VJblJ1YlwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJoaWRkZW4gZm9udC1ib2xkIHRleHQtdHVpLXRleHQtMDIgZ3JvdXAtaG92ZXI6YmxvY2tcIlxuICAgICAgICAgICAgICAgID57eyBwcm9kdWN0LmNvc3RTdHJpbmcgfX08L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxzYy1wcmljZS13YXJlaG91c2Utc3RvY2sgW3Byb2R1Y3RdPVwicHJvZHVjdFwiPjwvc2MtcHJpY2Utd2FyZWhvdXNlLXN0b2NrPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcnQtYWN0aW9ucyBmbGV4IHNocmluay0wIG92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIXNob3dRdWFudGl0eUNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIHR1aUJ1dHRvblxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0FkZFRvQ2FydEV2ZW50LmVtaXQocHJvZHVjdClcIlxuICAgICAgICAgICAgICAgIFtsb2FkaW5nXT1cInF1YW50aXR5U2hvd0xvYWRlclwiXG4gICAgICAgICAgICAgICAgW3NpemVdPVwic2l6ZSA9PT0gJ3MnID8gJ3hzJyA6ICdzJ1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0yIGdyb3dcIlxuICAgICAgICAgICAgICAgIGljb25TdGFydD1cIkB0dWkuc2hvcHBpbmctY2FydFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAg0JIg0LrQvtGA0LfQuNC90YNcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPHNjLWlucHV0LXF1YW50aXR5XG4gICAgICAgICAgICAgICAgI2lucHV0UXVhbnRpdHlcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dRdWFudGl0eUNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJxdWFudGl0eUNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIFtzaXplXT1cInNpemVcIlxuICAgICAgICAgICAgICAgIFtzdGVwXT1cInVuaXRzSGVscGVyLnByb2R1Y3RNdWx0aXBsaWNpdHkocHJvZHVjdClcIlxuICAgICAgICAgICAgICAgIFtzaG93TG9hZGVyXT1cInF1YW50aXR5U2hvd0xvYWRlclwiXG4gICAgICAgICAgICAgICAgKGNsaWNrQ2xlYXJFdmVudCk9XCJjbGlja0NsZWFyRXZlbnQuZW1pdChjYXJ0SXRlbSlcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibXQtMiB3LWZ1bGxcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cImlucHV0UXVhbnRpdHkubmF0aXZlRm9jdXNhYmxlRWxlbWVudD8uYmx1cigpXCJcbiAgICAgICAgICAgID48L3NjLWlucHV0LXF1YW50aXR5PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3NrZWxldG9uPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLXdyYXBwZXIgZmxleCBmbGV4LWNvbCBvdmVyZmxvdy1oaWRkZW4gcm91bmRlZC14bCBiZy13aGl0ZSBzaGFkb3ctc2MtMVwiPlxuICAgICAgICA8IS0tINCY0LfQvtCx0YDQsNC20LXQvdC40LUg0YLQvtCy0LDRgNCwIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaC0zLzUgdy1mdWxsIHJvdW5kZWQtdCBiZy10dWktYmFzZS0wMlwiPjwvZGl2PlxuICAgICAgICA8IS0tINCa0YDQsNGC0LrQsNGPINC40L3RhNC+0YDQvNCw0YbQuNGPINC+INGC0L7QstCw0YDQtSAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ3JvdyBmbGV4LWNvbCBnYXAtMi41IHJvdW5kZWQtYiBiZy13aGl0ZSBwLTVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTQgdy1mdWxsIHJvdW5kZWQgYmctdHVpLWJhc2UtMDJcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTQgdy0zLzUgcm91bmRlZCBiZy10dWktYmFzZS0wMlwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtNCB3LWZ1bGwgcm91bmRlZCBiZy10dWktYmFzZS0wMlwiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcHJpY2UtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY2F0YWxvZy9wcmljZS1jYXJkL3NjLXByaWNlLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhdGFsb2cvcHJpY2UtY2FyZC9zYy1wcmljZS1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7OztBQUV2RDs7R0FFRztBQVFILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxtQkFBbUI7SUFjekQ7Ozs7T0FJRztJQUNILFlBQW9DLEdBQXNCO1FBQ3RELEtBQUssRUFBRSxDQUFDO1FBRHdCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBbEIxRDs7V0FFRztRQUdJLFNBQUksR0FBYSxHQUFHLENBQUM7UUFFNUI7O1dBRUc7UUFFZ0IsYUFBUSxHQUFZLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQVM3RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNJLFFBQVE7UUFDUixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksWUFBWTtRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUIsQ0FBQzs4R0FwQ1Esb0JBQW9CO2tHQUFwQixvQkFBb0Isa01BSGxCLENBQUMscUJBQXFCLENBQUMsaURDZHRDLHd6TkEySkE7OzJGRDFJYSxvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0ksZUFBZSxhQUdkLENBQUMscUJBQXFCLENBQUMsbUJBQ2pCLHVCQUF1QixDQUFDLE1BQU07c0ZBUXhDLElBQUk7c0JBRlYsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBT1YsUUFBUTtzQkFEMUIsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBZ0J6QixRQUFRO3NCQURYLFdBQVc7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTRUFSQ0hfVEVSTV9QUk9WSURFUlMgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFRVSV9JU19NT0JJTEUgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IFR1aVNpemVTIH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFNjUHJpY2VDYXJkIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINC60LDRgNGC0L7Rh9C60Lgg0YLQvtCy0LDRgNCwLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjLXByaWNlLWNhcmQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy1wcmljZS1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zYy1wcmljZS1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbU0VBUkNIX1RFUk1fUFJPVklERVJTXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2NQcmljZUNhcmRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFNjUHJpY2VDYXJkIHtcbiAgICAvKipcbiAgICAgKiDQoNCw0LfQvNC10YAg0LrQvtC80L/QvtC90LXQvdGC0LAuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1zaXplJylcbiAgICBwdWJsaWMgc2l6ZTogVHVpU2l6ZVMgPSAnbSc7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiDRgtC+0LPQviwg0YfRgtC+INGN0YLQvtGCINC60L7QvNC/0L7QvdC10L3RgiDQvtGC0L7QsdGA0LDQttCw0LXRgtGB0Y8g0L3QsCDQvNC+0LHQuNC70YzQvdC+0Lwg0YPRgdGC0YDQvtC50YHRgtCy0LUuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlzX21vYmlsZScpXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzTW9iaWxlOiBib29sZWFuID0gaW5qZWN0KFRVSV9JU19NT0JJTEUpO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNC40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NQcmljZUNhcmRDb21wb25lbnR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNkciDQntCx0YrQtdC60YIg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSDQvtCx0L3QsNGA0YPQttC10L3QuNC10Lwg0LjQt9C80LXQvdC10L3QuNC5LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiDRgtC+0LPQviwg0YfRgtC+INC60L7QvNC/0L7QvdC10L3RgiDQvdCw0YXQvtC00LjRgtGB0Y8g0LIg0LrQvtGA0LfQuNC90LUuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlzX2luX2NhcnQnKVxuICAgIGdldCBpc0luQ2FydCgpIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odGhpcy5jYXJ0SXRlbSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LrQvtC80L/QvtC90LXQvdGCINCyINC+0YfQtdGA0LXQtNGMINC90LAg0L7QsdC90L7QstC70LXQvdC40LUuXG4gICAgICovXG4gICAgcHVibGljIG1hcmtGb3JDaGVjaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgICpuZ0lmPVwicHJvZHVjdDsgZWxzZSBza2VsZXRvblwiXG4gICAgY2xhc3M9XCJjYXJkLXdyYXBwZXIgcmVsYXRpdmUgZmxleCB3LWF1dG8gbWluLXctNDAgZmxleC1jb2wgcm91bmRlZC14bCBzaGFkb3ctbWRcIlxuPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdyb3cgZmxleC1jb2wganVzdGlmeS1jZW50ZXIgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQteGwgcC0yXCI+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICAgIChjbGljayk9XCJjbGlja0NhcmRFdmVudC5lbWl0KClcIlxuICAgICAgICAgICAgW3NyY109XCJnZXRDYXJkSW1hZ2VQcmV2aWV3KClcIlxuICAgICAgICAgICAgW2FsdF09XCJwcm9kdWN0Lm5hbWVcIlxuICAgICAgICAgICAgY2xhc3M9XCJtYXgtaC1mdWxsIHctZnVsbCByb3VuZGVkLXhsIG9iamVjdC1jb3ZlclwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzYy1mYXZvcml0ZS1idG5cbiAgICAgICAgICAgICpuZ0lmPVwiYXV0aFN0YXR1cyQgfCBhc3luY1wiXG4gICAgICAgICAgICBjbGFzcz1cImFic29sdXRlIGxlZnQtMiB0b3AtMlwiXG4gICAgICAgICAgICAoY2xpY2tFdmVudCk9XCJjbGlja0Zhdm9yaXRlRXZlbnQuZW1pdCgpXCJcbiAgICAgICAgICAgIFtzaG93TG9hZGVyXT1cImZhdm9yaXRlU2hvd0xvYWRlclwiXG4gICAgICAgICAgICBbaXNGYXZvcml0ZV09XCJwcm9kdWN0LmlzRmF2b3JpdGVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiEhcHJvZHVjdC5wcmltYXJ5Q2F0ZWdvcnk/LmlzRmF2b3JpdGVcIlxuICAgICAgICA+PC9zYy1mYXZvcml0ZS1idG4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSByaWdodC0yIHRvcC0yIG0tMSBmbGV4IGdhcC0yXCI+XG4gICAgICAgICAgICA8dHVpLWljb24gXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJwcm9kdWN0LmlzUHJldmlvdXNseU9yZGVyZWRcIlxuICAgICAgICAgICAgICAgIGljb249XCJAdHVpLnN0YXJcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiIXNpemUtNiByb3VuZGVkLWxnICFmaWxsLXdoaXRlIHRleHQtdHVpLW5lZ2F0aXZlXCJcbiAgICAgICAgICAgID48L3R1aS1pY29uPlxuICAgICAgICAgICAgPHR1aS1pY29uIFxuICAgICAgICAgICAgICAgICpuZ0lmPVwicHJvZHVjdC5jYXJ0SXRlbVwiXG4gICAgICAgICAgICAgICAgaWNvbj1cIkB0dWkuY2hlY2tcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiIXNpemUtNiByb3VuZGVkLWxnIGJnLXR1aS1wcmltYXJ5IHRleHQtd2hpdGVcIlxuICAgICAgICAgICAgPjwvdHVpLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJwLTJcIj5cbiAgICAgICAgPHR1aS1lbGFzdGljLWNvbnRhaW5lciBjbGFzcz1cInNocmluay0wXCI+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIHR1aUxpbmtcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm5hbWVcIlxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIFt0dWlIaWdobGlnaHRdPVwiKHNlYXJjaCQgfCBhc3luYykgPz8gJydcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0NhcmRFdmVudC5lbWl0KClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHByb2R1Y3QubmFtZSB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L3R1aS1lbGFzdGljLWNvbnRhaW5lcj5cbiAgICAgICAgPHR1aS1lbGFzdGljLWNvbnRhaW5lciBjbGFzcz1cInNocmluay0wXCI+XG4gICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgICpuZ0lmPVwicHJvZHVjdD8ucGFja1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXR1aS10ZXh0LTAyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICDQndC+0YDQvNCwINGD0L/QsNC60L7QstC60Lg6IHt7IHByb2R1Y3QucGFjayB9fVxuICAgICAgICAgICAgICAgIDx0dWktc3ZnXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicHJvZHVjdC5pZ25vcmVNaW5Db3VudENoZWNrXCJcbiAgICAgICAgICAgICAgICAgICAgc3JjPVwidHVpSWNvblBhY2thZ2VcIlxuICAgICAgICAgICAgICAgICAgICBbdHVpSGludF09XCJtaW5Db3VudEhpbnRcIlxuICAgICAgICAgICAgICAgICAgICBbdHVpSGludFNob3dEZWxheV09XCIxMDBcIlxuICAgICAgICAgICAgICAgICAgICB0dWlIaW50RGlyZWN0aW9uPVwidG9wXCJcbiAgICAgICAgICAgICAgICA+PC90dWktc3ZnPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbWluQ291bnRIaW50PlxuICAgICAgICAgICAgICAgICAgICDQlNC+0YHRgtGD0L/QtdC9INC30LDQutCw0LcgPGJyIC8+XG4gICAgICAgICAgICAgICAgICAgINC/0YDQvtC40LfQstC+0LvRjNC90L7Qs9C+IDxiciAvPlxuICAgICAgICAgICAgICAgICAgICDQutC+0LvQuNGH0LXRgdGC0LLQsFxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgIFt0dWlIaWdobGlnaHRdPVwiKHNlYXJjaCQgfCBhc3luYykgPz8gJydcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY29kZSB0ZXh0LXR1aS10ZXh0LTAyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICDQkNGA0YLQuNC60YPQuzoge3sgcHJvZHVjdC5jb2RlIH19XG4gICAgICAgICAgICA8L3A+XG5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgdHVpTGlua1xuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWlzTW9iaWxlICYmIChhdXRoU3RhdHVzJCB8IGFzeW5jKSAmJiBwcm9kdWN0Py5jb3N0RGF0ZVwiXG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgYXJpYS1kaXNhYmxlZD1cInRydWVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaGlzdG9yeVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrUHJpY2VIaXN0b3J5RXZlbnQuZW1pdCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICDQlNCw0YLQsDoge3sgcHJvZHVjdC5jb3N0RGF0ZSB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L3R1aS1lbGFzdGljLWNvbnRhaW5lcj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJ3YXJlaG91c2VTZWxlY3QkIHwgYXN5bmMgYXMgd2FyZWhvdXNlU2VsZWN0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJwcm9kdWN0LmRpc2NvdW50ICYmICFpc01vYmlsZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciB0ZXh0LXR1aS10ZXh0LTAyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxpbmUtdGhyb3VnaFwiPnt7IHByb2R1Y3QuZGlzY291bnRDb3N0U3RyaW5nIH19PC9zcGFuPiAmbmJzcDtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LXR1aS1zdWNjZXNzLWZpbGxcIj4gLXt7IHByb2R1Y3QuZGlzY291bnQucGVyY2VudCB9fSUgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDx0dWktaWNvbiBcbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cIkB0dWkuaW5mb1wiXG4gICAgICAgICAgICAgICAgICAgIFt0dWlIaW50XT1cImRpc2NvdW50SGludFwiXG4gICAgICAgICAgICAgICAgICAgIFt0dWlIaW50U2hvd0RlbGF5XT1cIjEwMFwiXG4gICAgICAgICAgICAgICAgICAgIHR1aUhpbnREaXJlY3Rpb249XCJ0b3BcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIiFoLTQgdGV4dC1ibGFja1wiXG4gICAgICAgICAgICAgICAgPjwvdHVpLWljb24+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkaXNjb3VudEhpbnQ+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LWJvbGRcIj57eyBwcm9kdWN0LmRpc2NvdW50Lm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInByb2R1Y3QuZGlzY291bnQuZXhwaXJlZEF0IGFzIGV4cGlyZWRBdFwiPtCU0LDRgtCwINC+0LrQvtC90YfQsNC90LjRjzoge3sgZXhwaXJlZEF0IH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgW2NsYXNzLnRleHQtdHVpLXRleHQtMDJdPVwiIXByb2R1Y3QuaXNXYXJlaG91c2VTdG9ja0V4aXN0KHdhcmVob3VzZVNlbGVjdC5pZClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY29zdCBmb250LWJvbGRcIlxuICAgICAgICAgICAgICAgID57eyBwcm9kdWN0LmNvc3RSdWJTdHJpbmcgfX08L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhcHJvZHVjdC5wcmljZUluUnViXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImhpZGRlbiBmb250LWJvbGQgdGV4dC10dWktdGV4dC0wMiBncm91cC1ob3ZlcjpibG9ja1wiXG4gICAgICAgICAgICAgICAgPnt7IHByb2R1Y3QuY29zdFN0cmluZyB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPHNjLXByaWNlLXdhcmVob3VzZS1zdG9jayBbcHJvZHVjdF09XCJwcm9kdWN0XCI+PC9zYy1wcmljZS13YXJlaG91c2Utc3RvY2s+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FydC1hY3Rpb25zIGZsZXggc2hyaW5rLTAgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhc2hvd1F1YW50aXR5Q29udHJvbFwiXG4gICAgICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrQWRkVG9DYXJ0RXZlbnQuZW1pdChwcm9kdWN0KVwiXG4gICAgICAgICAgICAgICAgW2xvYWRpbmddPVwicXVhbnRpdHlTaG93TG9hZGVyXCJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCJzaXplID09PSAncycgPyAneHMnIDogJ3MnXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm10LTIgZ3Jvd1wiXG4gICAgICAgICAgICAgICAgaWNvblN0YXJ0PVwiQHR1aS5zaG9wcGluZy1jYXJ0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICDQkiDQutC+0YDQt9C40L3Rg1xuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8c2MtaW5wdXQtcXVhbnRpdHlcbiAgICAgICAgICAgICAgICAjaW5wdXRRdWFudGl0eVxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd1F1YW50aXR5Q29udHJvbFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInF1YW50aXR5Q29udHJvbFwiXG4gICAgICAgICAgICAgICAgW3NpemVdPVwic2l6ZVwiXG4gICAgICAgICAgICAgICAgW3N0ZXBdPVwidW5pdHNIZWxwZXIucHJvZHVjdE11bHRpcGxpY2l0eShwcm9kdWN0KVwiXG4gICAgICAgICAgICAgICAgW2lnbm9yZVN0ZXBWYWxpZGF0b3JzXT1cInByb2R1Y3QuaWdub3JlTWluQ291bnRDaGVja1wiXG4gICAgICAgICAgICAgICAgW3Nob3dMb2FkZXJdPVwicXVhbnRpdHlTaG93TG9hZGVyXCJcbiAgICAgICAgICAgICAgICAoY2xpY2tDbGVhckV2ZW50KT1cImNsaWNrQ2xlYXJFdmVudC5lbWl0KGNhcnRJdGVtKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0yIHctZnVsbFwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiaW5wdXRRdWFudGl0eS5uYXRpdmVGb2N1c2FibGVFbGVtZW50Py5ibHVyKClcIlxuICAgICAgICAgICAgPjwvc2MtaW5wdXQtcXVhbnRpdHk+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjc2tlbGV0b24+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtd3JhcHBlciBmbGV4IGZsZXgtY29sIG92ZXJmbG93LWhpZGRlbiByb3VuZGVkLXhsIGJnLXdoaXRlIHNoYWRvdy1zYy0xXCI+XG4gICAgICAgIDwhLS0g0JjQt9C+0LHRgNCw0LbQtdC90LjQtSDRgtC+0LLQsNGA0LAgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoLTMvNSB3LWZ1bGwgcm91bmRlZC10IGJnLXR1aS1iYXNlLTAyXCI+PC9kaXY+XG4gICAgICAgIDwhLS0g0JrRgNCw0YLQutCw0Y8g0LjQvdGE0L7RgNC80LDRhtC40Y8g0L4g0YLQvtCy0LDRgNC1IC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBncm93IGZsZXgtY29sIGdhcC0yLjUgcm91bmRlZC1iIGJnLXdoaXRlIHAtNVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtNCB3LWZ1bGwgcm91bmRlZCBiZy10dWktYmFzZS0wMlwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtNCB3LTMvNSByb3VuZGVkIGJnLXR1aS1iYXNlLTAyXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC00IHctZnVsbCByb3VuZGVkIGJnLXR1aS1iYXNlLTAyXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,8 +1,8 @@
1
1
  import { __decorate } from "tslib";
2
2
  /* eslint-disable class-methods-use-this,lodash/prefer-lodash-method */
3
- import { ChangeDetectionStrategy, Component, Inject, Input, Optional } from '@angular/core';
3
+ import { ChangeDetectionStrategy, Component, Inject, inject, Input, Optional } from '@angular/core';
4
4
  import { ScUserMetrikaGoalsEnum } from '@snabcentr/client-core';
5
- import { TuiDay, TuiDayRange, tuiIsFalsy, tuiIsPresent, TuiMonth, tuiPure } from '@taiga-ui/cdk';
5
+ import { TUI_IS_MOBILE, TuiDay, TuiDayRange, tuiIsFalsy, tuiIsPresent, TuiMonth, tuiPure } from '@taiga-ui/cdk';
6
6
  import { TUI_MONTHS } from '@taiga-ui/core';
7
7
  import { POLYMORPHEUS_CONTEXT } from '@taiga-ui/polymorpheus';
8
8
  import { filter, map, shareReplay, startWith, tap } from 'rxjs';
@@ -10,8 +10,9 @@ import * as i0 from "@angular/core";
10
10
  import * as i1 from "@snabcentr/client-core";
11
11
  import * as i2 from "@angular/common";
12
12
  import * as i3 from "@taiga-ui/core";
13
- import * as i4 from "@taiga-ui/addon-charts";
14
- import * as i5 from "rxjs";
13
+ import * as i4 from "@taiga-ui/cdk";
14
+ import * as i5 from "@taiga-ui/addon-charts";
15
+ import * as i6 from "rxjs";
15
16
  /**
16
17
  * График истории цен товара или услуги.
17
18
  */
@@ -29,12 +30,20 @@ export class ScPriceHistoryComponent {
29
30
  this.months$ = months$;
30
31
  this.userMetrikaService = userMetrikaService;
31
32
  this.context = context;
33
+ /**
34
+ * Признак того, отображается этот компонент на мобильном устройстве или нет.
35
+ */
36
+ this.isMobile = inject(TUI_IS_MOBILE);
32
37
  /**
33
38
  * {@link Observable} функция для преобразования значения number в строку в подсказке по оси X.
34
39
  */
35
40
  this.xStringify$ = this.months$.pipe(map((months) => ({ month, day }) =>
36
41
  // eslint-disable-next-line security/detect-object-injection
37
42
  `${months[month]}, ${day}`));
43
+ /**
44
+ * Относительные отступы от верхнего и нижнего края в процентах.
45
+ */
46
+ this.paddingPercent = 10;
38
47
  /**
39
48
  * Функция для преобразования значения number в строку в подсказке по оси Y.
40
49
  *
@@ -62,9 +71,7 @@ export class ScPriceHistoryComponent {
62
71
  min: Math.min(...values),
63
72
  max: Math.max(...values),
64
73
  })));
65
- this.range$ = this.history$.pipe(filter(tuiIsPresent), filter((history) => history.length > 1), map((value) => ({ from: value.at(0)?.[0], to: value.at(-1)?.[0] })), filter((range) => !!range.from && !!range.to), map((range) => {
66
- return new TuiDayRange(range.from, range.to);
67
- }));
74
+ this.range$ = this.history$.pipe(filter(tuiIsPresent), filter((history) => history.length > 1), map((value) => ({ from: value.at(0)?.[0], to: value.at(-1)?.[0] })), filter((range) => !!range.from && !!range.to), map((range) => new TuiDayRange(range.from, range.to)));
68
75
  }
69
76
  /**
70
77
  * Вычисляет подписи даты к оси X.
@@ -74,7 +81,14 @@ export class ScPriceHistoryComponent {
74
81
  * @param param0.to {@link TuiDay} Дата конца истории цен.
75
82
  */
76
83
  computeLabels$({ from, to }) {
77
- return this.months$.pipe(map((months) => [...Array.from({ length: TuiMonth.lengthBetween(from, to) + 1 }, (_, index) => months[from.append({ month: index }).month]), '']));
84
+ return this.months$.pipe(map((months) => [
85
+ ...Array.from({ length: TuiMonth.lengthBetween(from, to) + 1 }, (_, index) => {
86
+ const previousYear = from.append({ month: index - 1 }).year; // Начальный год
87
+ const currentYear = from.append({ month: index }).year;
88
+ return `${this.isMobile || previousYear === currentYear ? '' : currentYear} ${months[from.append({ month: index }).month]}`;
89
+ }),
90
+ '',
91
+ ]));
78
92
  }
79
93
  /**
80
94
  * Вычисляет данные для отображения на графике.
@@ -101,7 +115,7 @@ export class ScPriceHistoryComponent {
101
115
  }, []));
102
116
  }
103
117
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: ScPriceHistoryComponent, deps: [{ token: i1.ScCatalogService }, { token: TUI_MONTHS }, { token: i1.ScUserMetrikaService }, { token: POLYMORPHEUS_CONTEXT, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
104
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: ScPriceHistoryComponent, selector: "sc-price-history", inputs: { product: "product" }, ngImport: i0, template: "<tui-loader [showLoader]=\"!!(loadingHistory$ | async)\"> </tui-loader>\n\n<div\n *ngIf=\"(loadingHistory$ | async) === false\"\n class=\"flex flex-col items-center\"\n>\n <ng-container *ngIf=\"priceInfo$ | async as priceInfo; else isNotExist\">\n <div class=\"w-174 mb-1 text-end text-lg font-bold\">\u043E\u0442 {{ priceInfo.min.toLocaleString() }} \u20BD \u0434\u043E {{ priceInfo.max.toLocaleString() }} \u20BD</div>\n\n <ng-container *ngIf=\"history$ | async as history\">\n <div\n *ngIf=\"range$ | async as range\"\n class=\"relative h-56 w-full p-5 text-tui-primary\"\n >\n <tui-axes\n *ngIf=\"computeLabels$(range) | async as labels\"\n class=\"h-full\"\n [axisXLabels]=\"labels\"\n [horizontalLines]=\"4\"\n [verticalLines]=\"labels.length\"\n >\n <tui-line-days-chart\n class=\"chart\"\n [height]=\"priceInfo.max\"\n [smoothingFactor]=\"10\"\n [y]=\"priceInfo.min - (priceInfo.min * 1) / 4\"\n [value]=\"computeValue(range, history)\"\n [xStringify]=\"xStringify$ | async\"\n [yStringify]=\"yStringify\"\n [hintContent]=\"hint\"\n ></tui-line-days-chart>\n </tui-axes>\n </div>\n </ng-container>\n </ng-container>\n <ng-template #isNotExist>\n <p class=\"text-base font-bold\">\u0426\u0435\u043D\u0430 \u043D\u0430 \u0442\u043E\u0432\u0430\u0440 \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u044F\u043B\u0430\u0441\u044C</p>\n </ng-template>\n <ng-template\n #hint\n let-data\n >\n <div class=\"font-bold\">{{ data[1].toLocaleString() }} \u20BD</div>\n <div>{{ data[0] }}</div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "component", type: i4.TuiLineDaysChart, selector: "tui-line-days-chart", inputs: ["y", "height", "smoothingFactor", "hintContent", "xStringify", "yStringify", "dots", "value"] }, { kind: "component", type: i4.TuiAxes, selector: "tui-axes", inputs: ["axisX", "axisXLabels", "axisY", "axisYInset", "axisYLabels", "axisYName", "axisYSecondaryInset", "axisYSecondaryLabels", "axisYSecondaryName", "horizontalLines", "horizontalLinesHandler", "verticalLines", "verticalLinesHandler"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
118
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: ScPriceHistoryComponent, selector: "sc-price-history", inputs: { product: "product" }, ngImport: i0, template: "<tui-loader [showLoader]=\"!!(loadingHistory$ | async)\"> </tui-loader>\n\n<div\n *ngIf=\"(loadingHistory$ | async) === false\"\n class=\"flex flex-col items-center\"\n>\n <ng-container *ngIf=\"priceInfo$ | async as priceInfo; else isNotExist\">\n <div class=\"w-174 mb-1 text-end text-lg font-bold\">\u043E\u0442 {{ priceInfo.min.toLocaleString() }} \u20BD \u0434\u043E {{ priceInfo.max.toLocaleString() }} \u20BD</div>\n\n <ng-container *ngIf=\"history$ | async as history\">\n <div\n *ngIf=\"range$ | async as range\"\n class=\"relative h-56 w-full p-5 text-tui-primary\"\n >\n <tui-axes\n *ngIf=\"computeLabels$(range) | async as labels\"\n class=\"h-full\"\n [axisXLabels]=\"labels\"\n [horizontalLines]=\"4\"\n [verticalLines]=\"labels.length\"\n >\n <ng-container *tuiLet=\"priceInfo.max - priceInfo.min as height\">\n <tui-line-days-chart\n *ngIf=\"(height / 100) * paddingPercent as padding\"\n [height]=\"height + (height / 100) * paddingPercent * 2\"\n [smoothingFactor]=\"10\"\n [y]=\"priceInfo.min - (height / 100) * paddingPercent\"\n [value]=\"computeValue(range, history)\"\n [xStringify]=\"xStringify$ | async\"\n [yStringify]=\"yStringify\"\n [hintContent]=\"hint\"\n class=\"chart\"\n ></tui-line-days-chart>\n </ng-container>\n </tui-axes>\n </div>\n </ng-container>\n </ng-container>\n <ng-template #isNotExist>\n <p class=\"text-base font-bold\">\u0426\u0435\u043D\u0430 \u043D\u0430 \u0442\u043E\u0432\u0430\u0440 \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u044F\u043B\u0430\u0441\u044C</p>\n </ng-template>\n <ng-template\n #hint\n let-data\n >\n <div class=\"font-bold\">{{ data[1].toLocaleString() }} \u20BD</div>\n <div>{{ data[0] }}</div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "directive", type: i4.TuiLet, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "component", type: i5.TuiLineDaysChart, selector: "tui-line-days-chart", inputs: ["y", "height", "smoothingFactor", "hintContent", "xStringify", "yStringify", "dots", "value"] }, { kind: "component", type: i5.TuiAxes, selector: "tui-axes", inputs: ["axisX", "axisXLabels", "axisY", "axisYInset", "axisYLabels", "axisYName", "axisYSecondaryInset", "axisYSecondaryLabels", "axisYSecondaryName", "horizontalLines", "horizontalLinesHandler", "verticalLines", "verticalLinesHandler"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
105
119
  }
106
120
  __decorate([
107
121
  tuiPure
@@ -111,8 +125,8 @@ __decorate([
111
125
  ], ScPriceHistoryComponent.prototype, "computeValue", null);
112
126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: ScPriceHistoryComponent, decorators: [{
113
127
  type: Component,
114
- args: [{ selector: 'sc-price-history', changeDetection: ChangeDetectionStrategy.OnPush, template: "<tui-loader [showLoader]=\"!!(loadingHistory$ | async)\"> </tui-loader>\n\n<div\n *ngIf=\"(loadingHistory$ | async) === false\"\n class=\"flex flex-col items-center\"\n>\n <ng-container *ngIf=\"priceInfo$ | async as priceInfo; else isNotExist\">\n <div class=\"w-174 mb-1 text-end text-lg font-bold\">\u043E\u0442 {{ priceInfo.min.toLocaleString() }} \u20BD \u0434\u043E {{ priceInfo.max.toLocaleString() }} \u20BD</div>\n\n <ng-container *ngIf=\"history$ | async as history\">\n <div\n *ngIf=\"range$ | async as range\"\n class=\"relative h-56 w-full p-5 text-tui-primary\"\n >\n <tui-axes\n *ngIf=\"computeLabels$(range) | async as labels\"\n class=\"h-full\"\n [axisXLabels]=\"labels\"\n [horizontalLines]=\"4\"\n [verticalLines]=\"labels.length\"\n >\n <tui-line-days-chart\n class=\"chart\"\n [height]=\"priceInfo.max\"\n [smoothingFactor]=\"10\"\n [y]=\"priceInfo.min - (priceInfo.min * 1) / 4\"\n [value]=\"computeValue(range, history)\"\n [xStringify]=\"xStringify$ | async\"\n [yStringify]=\"yStringify\"\n [hintContent]=\"hint\"\n ></tui-line-days-chart>\n </tui-axes>\n </div>\n </ng-container>\n </ng-container>\n <ng-template #isNotExist>\n <p class=\"text-base font-bold\">\u0426\u0435\u043D\u0430 \u043D\u0430 \u0442\u043E\u0432\u0430\u0440 \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u044F\u043B\u0430\u0441\u044C</p>\n </ng-template>\n <ng-template\n #hint\n let-data\n >\n <div class=\"font-bold\">{{ data[1].toLocaleString() }} \u20BD</div>\n <div>{{ data[0] }}</div>\n </ng-template>\n</div>\n" }]
115
- }], ctorParameters: () => [{ type: i1.ScCatalogService }, { type: i5.Observable, decorators: [{
128
+ args: [{ selector: 'sc-price-history', changeDetection: ChangeDetectionStrategy.OnPush, template: "<tui-loader [showLoader]=\"!!(loadingHistory$ | async)\"> </tui-loader>\n\n<div\n *ngIf=\"(loadingHistory$ | async) === false\"\n class=\"flex flex-col items-center\"\n>\n <ng-container *ngIf=\"priceInfo$ | async as priceInfo; else isNotExist\">\n <div class=\"w-174 mb-1 text-end text-lg font-bold\">\u043E\u0442 {{ priceInfo.min.toLocaleString() }} \u20BD \u0434\u043E {{ priceInfo.max.toLocaleString() }} \u20BD</div>\n\n <ng-container *ngIf=\"history$ | async as history\">\n <div\n *ngIf=\"range$ | async as range\"\n class=\"relative h-56 w-full p-5 text-tui-primary\"\n >\n <tui-axes\n *ngIf=\"computeLabels$(range) | async as labels\"\n class=\"h-full\"\n [axisXLabels]=\"labels\"\n [horizontalLines]=\"4\"\n [verticalLines]=\"labels.length\"\n >\n <ng-container *tuiLet=\"priceInfo.max - priceInfo.min as height\">\n <tui-line-days-chart\n *ngIf=\"(height / 100) * paddingPercent as padding\"\n [height]=\"height + (height / 100) * paddingPercent * 2\"\n [smoothingFactor]=\"10\"\n [y]=\"priceInfo.min - (height / 100) * paddingPercent\"\n [value]=\"computeValue(range, history)\"\n [xStringify]=\"xStringify$ | async\"\n [yStringify]=\"yStringify\"\n [hintContent]=\"hint\"\n class=\"chart\"\n ></tui-line-days-chart>\n </ng-container>\n </tui-axes>\n </div>\n </ng-container>\n </ng-container>\n <ng-template #isNotExist>\n <p class=\"text-base font-bold\">\u0426\u0435\u043D\u0430 \u043D\u0430 \u0442\u043E\u0432\u0430\u0440 \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u044F\u043B\u0430\u0441\u044C</p>\n </ng-template>\n <ng-template\n #hint\n let-data\n >\n <div class=\"font-bold\">{{ data[1].toLocaleString() }} \u20BD</div>\n <div>{{ data[0] }}</div>\n </ng-template>\n</div>\n" }]
129
+ }], ctorParameters: () => [{ type: i1.ScCatalogService }, { type: i6.Observable, decorators: [{
116
130
  type: Inject,
117
131
  args: [TUI_MONTHS]
118
132
  }] }, { type: i1.ScUserMetrikaService }, { type: undefined, decorators: [{
@@ -123,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
123
137
  }] }], propDecorators: { product: [{
124
138
  type: Input
125
139
  }], computeLabels$: [], computeValue: [] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcHJpY2UtaGlzdG9yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY2F0YWxvZy9wcmljZS1oaXN0b3J5L3NjLXByaWNlLWhpc3RvcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhdGFsb2cvcHJpY2UtaGlzdG9yeS9zYy1wcmljZS1oaXN0b3J5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1RUFBdUU7QUFFdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQStCLHNCQUFzQixFQUF3QixNQUFNLHdCQUF3QixDQUFDO0FBQ25ILE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLFVBQVUsRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxXQUFXLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQUU1RTs7R0FFRztBQU1ILE1BQU0sT0FBTyx1QkFBdUI7SUFnRGhDOzs7Ozs7O09BT0c7SUFDSCxZQUNxQixjQUFnQyxFQUNaLE9BQXNDLEVBQzFELGtCQUF3QyxFQUd4QyxPQUF3RDtRQUx4RCxtQkFBYyxHQUFkLGNBQWMsQ0FBa0I7UUFDWixZQUFPLEdBQVAsT0FBTyxDQUErQjtRQUMxRCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXNCO1FBR3hDLFlBQU8sR0FBUCxP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QU07MkJBQUMsVUFBVTs7MEJBRWpCLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsb0JBQW9CO3lDQXBEaEIsT0FBTztzQkFBdEIsS0FBSztnQkErR0MsY0FBYyxNQWFkLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzLGxvZGFzaC9wcmVmZXItbG9kYXNoLW1ldGhvZCAqL1xuXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTY0NhdGFsb2dTZXJ2aWNlLCBTY1Byb2R1Y3QsIFNjVXNlck1ldHJpa2FHb2Fsc0VudW0sIFNjVXNlck1ldHJpa2FTZXJ2aWNlIH0gZnJvbSAnQHNuYWJjZW50ci9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBUdWlEYXksIFR1aURheVJhbmdlLCB0dWlJc0ZhbHN5LCB0dWlJc1ByZXNlbnQsIFR1aU1vbnRoLCB0dWlQdXJlLCBUdWlTdHJpbmdIYW5kbGVyIH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgeyBUVUlfTU9OVEhTLCBUdWlEaWFsb2dDb250ZXh0IH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHsgUE9MWU1PUlBIRVVTX0NPTlRFWFQgfSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgc3RhcnRXaXRoLCB0YXAgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiDQk9GA0LDRhNC40Log0LjRgdGC0L7RgNC40Lgg0YbQtdC9INGC0L7QstCw0YDQsCDQuNC70Lgg0YPRgdC70YPQs9C4LlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjLXByaWNlLWhpc3RvcnknLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy1wcmljZS1oaXN0b3J5LmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2NQcmljZUhpc3RvcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQstGA0LXQvNC10L3QvdC+0LPQviDQv9GA0L7QvNC10LbRg9GC0LrQsCDQuNGB0YLQvtGA0LjQuCDRhtC10L0uXG4gICAgICovXG4gICAgcHVibGljIHJhbmdlJDogT2JzZXJ2YWJsZTxUdWlEYXlSYW5nZT47XG5cbiAgICAvKipcbiAgICAgKiDQotC+0LLQsNGAINC40LvQuCDRg9GB0LvRg9Cz0LAsINC00LvRjyDQutC+0YLQvtGA0L7Qs9C+INC90LXQvtCx0YXQvtC00LjQvNC+INC+0YLQvtCx0YDQsNC30LjRgtGMINC40YHRgtC+0YDQuNGOINGG0LXQvS5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgcHJvZHVjdDogU2NQcm9kdWN0O1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40YHRgtC+0YDQuNC4INGG0LXQvS5cbiAgICAgKi9cbiAgICBwdWJsaWMgaGlzdG9yeSQ/OiBPYnNlcnZhYmxlPFJlYWRvbmx5QXJyYXk8W1R1aURheSwgbnVtYmVyXT4gfCBudWxsPjtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNC30LzQtdC90LXQvdC40Y8g0YHQvtGB0YLQvtGP0L3QuNGPINC30LDQs9GA0YPQt9C60Lgg0LTQsNC90L3Ri9GFINC40YHRgtC+0YDQuNC4INGG0LXQvS5cbiAgICAgKi9cbiAgICBwdWJsaWMgbG9hZGluZ0hpc3RvcnkkPzogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgIC8qKlxuICAgICAqINCc0LDQutGB0LjQvNCw0LvRjNC90LDRjyDRhtC10L3QsCDRgtC+0LLQsNGA0LAuXG4gICAgICovXG4gICAgcHVibGljIHByaWNlSW5mbyQ/OiBPYnNlcnZhYmxlPHtcbiAgICAgICAgbWluOiBudW1iZXI7XG4gICAgICAgIG1heDogbnVtYmVyO1xuICAgIH0+O1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INGE0YPQvdC60YbQuNGPINC00LvRjyDQv9GA0LXQvtCx0YDQsNC30L7QstCw0L3QuNGPINC30L3QsNGH0LXQvdC40Y8gbnVtYmVyINCyINGB0YLRgNC+0LrRgyDQsiDQv9C+0LTRgdC60LDQt9C60LUg0L/QviDQvtGB0LggWC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgeFN0cmluZ2lmeSQ6IE9ic2VydmFibGU8VHVpU3RyaW5nSGFuZGxlcjxUdWlEYXk+PiA9IHRoaXMubW9udGhzJC5waXBlKFxuICAgICAgICBtYXAoXG4gICAgICAgICAgICAobW9udGhzKSA9PlxuICAgICAgICAgICAgICAgICh7IG1vbnRoLCBkYXkgfSkgPT5cbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlY3VyaXR5L2RldGVjdC1vYmplY3QtaW5qZWN0aW9uXG4gICAgICAgICAgICAgICAgICAgIGAke21vbnRoc1ttb250aF19LCAke2RheX1gXG4gICAgICAgIClcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICog0KTRg9C90LrRhtC40Y8g0LTQu9GPINC/0YDQtdC+0LHRgNCw0LfQvtCy0LDQvdC40Y8g0LfQvdCw0YfQtdC90LjRjyBudW1iZXIg0LIg0YHRgtGA0L7QutGDINCyINC/0L7QtNGB0LrQsNC30LrQtSDQv9C+INC+0YHQuCBZLlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlINCX0L3QsNGH0LXQvdC40LUg0L7RgdC4IFkuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHlTdHJpbmdpZnk6IFR1aVN0cmluZ0hhbmRsZXI8bnVtYmVyPiA9ICh2YWx1ZSkgPT4gYCR7dmFsdWUudG9Mb2NhbGVTdHJpbmcoJ3J1LVJVJyl9IOKCvWA7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjUHJpY2VIaXN0b3J5Q29tcG9uZW50fS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXRhbG9nU2VydmljZSDQodC10YDQstC40YEg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSDQutCw0YLQsNC70L7Qs9C+0LwuXG4gICAgICogQHBhcmFtIG1vbnRocyQg0J/QtdGA0LXRh9C40YHQu9C10L3QuNC1INC80LXRgdGP0YbQtdCyLlxuICAgICAqIEBwYXJhbSB1c2VyTWV0cmlrYVNlcnZpY2Ug0KHQtdGA0LLQuNGBINC00LvRjyDRgdCx0L7RgNCwINC80LXRgtGA0LjQuiDQviDQtNC10LnRgdGC0LLQuNGP0YUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LkuXG4gICAgICogQHBhcmFtIGNvbnRleHQg0JrQvtC90YLQtdC60YHRgiDQtNC40LDQu9C+0LPQvtCy0L7Qs9C+INC+0LrQvdCwLCDQsiDQutC+0YLQvtGA0L7QvCDQvtGC0LrRgNGL0YIg0LrQvtC80L/QvtC90LXQvdGCLlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjYXRhbG9nU2VydmljZTogU2NDYXRhbG9nU2VydmljZSxcbiAgICAgICAgQEluamVjdChUVUlfTU9OVEhTKSBwcml2YXRlIHJlYWRvbmx5IG1vbnRocyQ6IE9ic2VydmFibGU8cmVhZG9ubHkgc3RyaW5nW10+LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJNZXRyaWthU2VydmljZTogU2NVc2VyTWV0cmlrYVNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoUE9MWU1PUlBIRVVTX0NPTlRFWFQpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGV4dD86IFR1aURpYWxvZ0NvbnRleHQ8dm9pZCwgeyBwcm9kdWN0OiBTY1Byb2R1Y3QgfT5cbiAgICApIHtcbiAgICAgICAgaWYgKGNvbnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMucHJvZHVjdCA9IGNvbnRleHQuZGF0YS5wcm9kdWN0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBpbmhlcml0RG9jICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhpc3RvcnkkID0gdGhpcy5jYXRhbG9nU2VydmljZS5nZXRQcmljZUhpc3RvcnkkKHRoaXMucHJvZHVjdCkucGlwZShcbiAgICAgICAgICAgIG1hcCgoaGlzdG9yeSkgPT5cbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhoaXN0b3J5KVxuICAgICAgICAgICAgICAgICAgICAubWFwKChpdGVtKTogW1R1aURheSwgbnVtYmVyXSA9PiBbVHVpRGF5Lm5vcm1hbGl6ZVBhcnNlKGl0ZW0sICdETVknKSwgaGlzdG9yeVtTdHJpbmcoaXRlbSldLmNvc3RdKVxuICAgICAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gKGFbMF0gPiBiWzBdID8gMSA6IC0xKSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGFydFdpdGgobnVsbCksXG4gICAgICAgICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5sb2FkaW5nSGlzdG9yeSQgPSB0aGlzLmhpc3RvcnkkLnBpcGUobWFwKHR1aUlzRmFsc3kpKTtcblxuICAgICAgICB0aGlzLnByaWNlSW5mbyQgPSB0aGlzLmhpc3RvcnkkLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VyTWV0cmlrYVNlcnZpY2UuZW1pdFVzZXJNZXRyaWthRXZlbnQoe1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IFNjVXNlck1ldHJpa2FHb2Fsc0VudW0ucHJvZHVjdFByaWNlSGlzdG9yeVNob3csXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdF9pZDogdGhpcy5wcm9kdWN0LmlkLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBmaWx0ZXIoKGhpc3RvcnkpID0+IGhpc3RvcnkubGVuZ3RoID4gMSksXG4gICAgICAgICAgICBtYXAoKGhpc3RvcnkpID0+IGhpc3RvcnkubWFwKChpdGVtKSA9PiBpdGVtWzFdKSksXG4gICAgICAgICAgICBtYXAoKHZhbHVlcykgPT4gKHtcbiAgICAgICAgICAgICAgICBtaW46IE1hdGgubWluKC4uLnZhbHVlcyksXG4gICAgICAgICAgICAgICAgbWF4OiBNYXRoLm1heCguLi52YWx1ZXMpLFxuICAgICAgICAgICAgfSkpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5yYW5nZSQgPSB0aGlzLmhpc3RvcnkkLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgICAgIGZpbHRlcigoaGlzdG9yeSkgPT4gaGlzdG9yeS5sZW5ndGggPiAxKSxcbiAgICAgICAgICAgIG1hcCgodmFsdWU6IFJlYWRvbmx5QXJyYXk8W1R1aURheSwgbnVtYmVyXT4pID0+ICh7IGZyb206IHZhbHVlLmF0KDApPy5bMF0sIHRvOiB2YWx1ZS5hdCgtMSk/LlswXSB9KSksXG4gICAgICAgICAgICBmaWx0ZXIoKHJhbmdlKTogcmFuZ2UgaXMgeyBmcm9tOiBUdWlEYXk7IHRvOiBUdWlEYXkgfSA9PiAhIXJhbmdlLmZyb20gJiYgISFyYW5nZS50byksXG4gICAgICAgICAgICBtYXAoKHJhbmdlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBUdWlEYXlSYW5nZShyYW5nZS5mcm9tLCByYW5nZS50byk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0YvRh9C40YHQu9GP0LXRgiDQv9C+0LTQv9C40YHQuCDQtNCw0YLRiyDQuiDQvtGB0LggWC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXJhbTAge0BsaW5rIFR1aURheVJhbmdlfSDQktGA0LXQvNC10L3QvdC+0Lkg0L/RgNC+0LzQtdC20YPRgtC+0Log0LjRgdGC0L7RgNC40Lgg0YbQtdC9LlxuICAgICAqIEBwYXJhbSBwYXJhbTAuZnJvbSB7QGxpbmsgVHVpRGF5fSDQlNCw0YLQsCDQvdCw0YfQsNC70LAg0LjRgdGC0L7RgNC40Lgg0YbQtdC9LlxuICAgICAqIEBwYXJhbSBwYXJhbTAudG8ge0BsaW5rIFR1aURheX0g0JTQsNGC0LAg0LrQvtC90YbQsCDQuNGB0YLQvtGA0LjQuCDRhtC10L0uXG4gICAgICovXG4gICAgQHR1aVB1cmVcbiAgICBwdWJsaWMgY29tcHV0ZUxhYmVscyQoeyBmcm9tLCB0byB9OiBUdWlEYXlSYW5nZSk6IE9ic2VydmFibGU8cmVhZG9ubHkgc3RyaW5nW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9udGhzJC5waXBlKG1hcCgobW9udGhzKSA9PiBbLi4uQXJyYXkuZnJvbSh7IGxlbmd0aDogVHVpTW9udGgubGVuZ3RoQmV0d2Vlbihmcm9tLCB0bykgKyAxIH0sIChfLCBpbmRleCkgPT4gbW9udGhzW2Zyb20uYXBwZW5kKHsgbW9udGg6IGluZGV4IH0pLm1vbnRoXSksICcnXSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0YvRh9C40YHQu9GP0LXRgiDQtNCw0L3QvdGL0LUg0LTQu9GPINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0L3QsCDQs9GA0LDRhNC40LrQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXJhbTAge0BsaW5rIFR1aURheVJhbmdlfSDQktGA0LXQvNC10L3QvdC+0Lkg0L/RgNC+0LzQtdC20YPRgtC+0Log0LjRgdGC0L7RgNC40Lgg0YbQtdC9LlxuICAgICAqIEBwYXJhbSBwYXJhbTAuZnJvbSB7QGxpbmsgVHVpRGF5fSDQlNCw0YLQsCDQvdCw0YfQsNC70LAg0LjRgdGC0L7RgNC40Lgg0YbQtdC9LlxuICAgICAqIEBwYXJhbSBwYXJhbTAudG8ge0BsaW5rIFR1aURheX0g0JTQsNGC0LAg0LrQvtC90YbQsCDQuNGB0YLQvtGA0LjQuCDRhtC10L0uXG4gICAgICogQHBhcmFtIGhpc3Rvcnkg0JjRgdGC0L7RgNC40Y8g0YbQtdC9LlxuICAgICAqL1xuICAgIEB0dWlQdXJlXG4gICAgcHVibGljIGNvbXB1dGVWYWx1ZSh7IGZyb20sIHRvIH06IFR1aURheVJhbmdlLCBoaXN0b3J5OiBSZWFkb25seUFycmF5PFtUdWlEYXksIG51bWJlcl0+KTogUmVhZG9ubHlBcnJheTxbVHVpRGF5LCBudW1iZXJdPiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBBcnJheS5mcm9tKHsgbGVuZ3RoOiBUdWlEYXkubGVuZ3RoQmV0d2Vlbihmcm9tLCB0bykgKyAxIH0pXG4gICAgICAgICAgICAgICAgLmZpbGwoMClcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9uby1hcnJheS1yZWR1Y2VcbiAgICAgICAgICAgICAgICAucmVkdWNlPFJlYWRvbmx5QXJyYXk8W1R1aURheSwgbnVtYmVyXT4+KChhcnJheSwgXywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGZyb20uYXBwZW5kKHsgZGF5OiBpbmRleCB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmFycmF5LFxuICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhpc3RvcnkuZmluZCgodmFsdWVIaXN0b3J5LCBpbmRleEhpc3RvcnksIGFycmF5SGlzdG9yeSkgPT4gZGF0YS5kYXlTYW1lKHZhbHVlSGlzdG9yeVswXSkgfHwgZGF0YS5kYXlCZWZvcmUoYXJyYXlIaXN0b3J5W2luZGV4SGlzdG9yeSArIDFdWzBdKSkgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlzdG9yeVswXSlbMV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIH0sIFtdKVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjx0dWktbG9hZGVyIFtzaG93TG9hZGVyXT1cIiEhKGxvYWRpbmdIaXN0b3J5JCB8IGFzeW5jKVwiPiA8L3R1aS1sb2FkZXI+XG5cbjxkaXZcbiAgICAqbmdJZj1cIihsb2FkaW5nSGlzdG9yeSQgfCBhc3luYykgPT09IGZhbHNlXCJcbiAgICBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicHJpY2VJbmZvJCB8IGFzeW5jIGFzIHByaWNlSW5mbzsgZWxzZSBpc05vdEV4aXN0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LTE3NCBtYi0xIHRleHQtZW5kIHRleHQtbGcgZm9udC1ib2xkXCI+0L7RgiB7eyBwcmljZUluZm8ubWluLnRvTG9jYWxlU3RyaW5nKCkgfX0g4oK9INC00L4ge3sgcHJpY2VJbmZvLm1heC50b0xvY2FsZVN0cmluZygpIH19IOKCvTwvZGl2PlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoaXN0b3J5JCB8IGFzeW5jIGFzIGhpc3RvcnlcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cInJhbmdlJCB8IGFzeW5jIGFzIHJhbmdlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInJlbGF0aXZlIGgtNTYgdy1mdWxsIHAtNSB0ZXh0LXR1aS1wcmltYXJ5XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8dHVpLWF4ZXNcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb21wdXRlTGFiZWxzJChyYW5nZSkgfCBhc3luYyBhcyBsYWJlbHNcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImgtZnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFtheGlzWExhYmVsc109XCJsYWJlbHNcIlxuICAgICAgICAgICAgICAgICAgICBbaG9yaXpvbnRhbExpbmVzXT1cIjRcIlxuICAgICAgICAgICAgICAgICAgICBbdmVydGljYWxMaW5lc109XCJsYWJlbHMubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDx0dWktbGluZS1kYXlzLWNoYXJ0XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoYXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwicHJpY2VJbmZvLm1heFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc21vb3RoaW5nRmFjdG9yXT1cIjEwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt5XT1cInByaWNlSW5mby5taW4gLSAocHJpY2VJbmZvLm1pbiAqIDEpIC8gNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiY29tcHV0ZVZhbHVlKHJhbmdlLCBoaXN0b3J5KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbeFN0cmluZ2lmeV09XCJ4U3RyaW5naWZ5JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt5U3RyaW5naWZ5XT1cInlTdHJpbmdpZnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2hpbnRDb250ZW50XT1cImhpbnRcIlxuICAgICAgICAgICAgICAgICAgICA+PC90dWktbGluZS1kYXlzLWNoYXJ0PlxuICAgICAgICAgICAgICAgIDwvdHVpLWF4ZXM+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNpc05vdEV4aXN0PlxuICAgICAgICA8cCBjbGFzcz1cInRleHQtYmFzZSBmb250LWJvbGRcIj7QptC10L3QsCDQvdCwINGC0L7QstCw0YAg0L3QtSDQuNC30LzQtdC90Y/Qu9Cw0YHRjDwvcD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAjaGludFxuICAgICAgICBsZXQtZGF0YVxuICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtYm9sZFwiPnt7IGRhdGFbMV0udG9Mb2NhbGVTdHJpbmcoKSB9fSDigr08L2Rpdj5cbiAgICAgICAgPGRpdj57eyBkYXRhWzBdIH19PC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcHJpY2UtaGlzdG9yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY2F0YWxvZy9wcmljZS1oaXN0b3J5L3NjLXByaWNlLWhpc3RvcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhdGFsb2cvcHJpY2UtaGlzdG9yeS9zYy1wcmljZS1oaXN0b3J5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1RUFBdUU7QUFFdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUErQixzQkFBc0IsRUFBd0IsTUFBTSx3QkFBd0IsQ0FBQztBQUNuSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUNsSSxPQUFPLEVBQUUsVUFBVSxFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQUU1RTs7R0FFRztBQU1ILE1BQU0sT0FBTyx1QkFBdUI7SUEwRGhDOzs7Ozs7O09BT0c7SUFDSCxZQUNxQixjQUFnQyxFQUNaLE9BQXNDLEVBQzFELGtCQUF3QyxFQUd4QyxPQUF3RDtRQUx4RCxtQkFBYyxHQUFkLGNBQWMsQ0FBa0I7UUFDWixZQUFPLEdBQVAsT0FBTyxDQUErQjtRQUMxRCx1QkFBa0IsR0FBbEIsa0JBQWtCLENB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WSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQzNJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDckI7YUFDSixDQUFDO1FBQ04sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUNiLENBQUM7SUFDTixDQUFDOzhHQXhLUSx1QkFBdUIsa0RBb0VwQixVQUFVLGlEQUdWLG9CQUFvQjtrR0F2RXZCLHVCQUF1Qix3RkNqQnBDLHF3RUFpREE7O0FEZ0dXO0lBRE4sT0FBTzs2REFhUDtBQVdNO0lBRE4sT0FBTzsyREFrQlA7MkZBeEtRLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDSSxrQkFBa0IsbUJBRVgsdUJBQXVCLENBQUMsTUFBTTs7MEJBc0UxQyxNQUFNOzJCQUFDLFVBQVU7OzBCQUVqQixRQUFROzswQkFDUixNQUFNOzJCQUFDLG9CQUFvQjt5Q0E5RGhCLE9BQU87c0JBQXRCLEtBQUs7Z0JBdUhDLGNBQWMsTUF1QmQsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXMsbG9kYXNoL3ByZWZlci1sb2Rhc2gtbWV0aG9kICovXG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCwgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2NDYXRhbG9nU2VydmljZSwgU2NQcm9kdWN0LCBTY1VzZXJNZXRyaWthR29hbHNFbnVtLCBTY1VzZXJNZXRyaWthU2VydmljZSB9IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgVFVJX0lTX01PQklMRSwgVHVpRGF5LCBUdWlEYXlSYW5nZSwgdHVpSXNGYWxzeSwgdHVpSXNQcmVzZW50LCBUdWlNb250aCwgdHVpUHVyZSwgVHVpU3RyaW5nSGFuZGxlciB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgVFVJX01PTlRIUywgVHVpRGlhbG9nQ29udGV4dCB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IFBPTFlNT1JQSEVVU19DT05URVhUIH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICog0JPRgNCw0YTQuNC6INC40YHRgtC+0YDQuNC4INGG0LXQvSDRgtC+0LLQsNGA0LAg0LjQu9C4INGD0YHQu9GD0LPQuC5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzYy1wcmljZS1oaXN0b3J5JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2MtcHJpY2UtaGlzdG9yeS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNjUHJpY2VIaXN0b3J5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LLRgNC10LzQtdC90L3QvtCz0L4g0L/RgNC+0LzQtdC20YPRgtC60LAg0LjRgdGC0L7RgNC40Lgg0YbQtdC9LlxuICAgICAqL1xuICAgIHB1YmxpYyByYW5nZSQ6IE9ic2VydmFibGU8VHVpRGF5UmFuZ2U+O1xuXG4gICAgLyoqXG4gICAgICog0KLQvtCy0LDRgCDQuNC70Lgg0YPRgdC70YPQs9CwLCDQtNC70Y8g0LrQvtGC0L7RgNC+0LPQviDQvdC10L7QsdGF0L7QtNC40LzQviDQvtGC0L7QsdGA0LDQt9C40YLRjCDQuNGB0YLQvtGA0LjRjiDRhtC10L0uXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHByb2R1Y3Q6IFNjUHJvZHVjdDtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNGB0YLQvtGA0LjQuCDRhtC10L0uXG4gICAgICovXG4gICAgcHVibGljIGhpc3RvcnkkPzogT2JzZXJ2YWJsZTxSZWFkb25seUFycmF5PFtUdWlEYXksIG51bWJlcl0+IHwgbnVsbD47XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINGB0L7RgdGC0L7Rj9C90LjRjyDQt9Cw0LPRgNGD0LfQutC4INC00LDQvdC90YvRhSDQuNGB0YLQvtGA0LjQuCDRhtC10L0uXG4gICAgICovXG4gICAgcHVibGljIGxvYWRpbmdIaXN0b3J5JD86IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICAvKipcbiAgICAgKiDQnNCw0LrRgdC40LzQsNC70YzQvdCw0Y8g0YbQtdC90LAg0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBwcmljZUluZm8kPzogT2JzZXJ2YWJsZTx7XG4gICAgICAgIG1pbjogbnVtYmVyO1xuICAgICAgICBtYXg6IG51bWJlcjtcbiAgICB9PjtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6INGC0L7Qs9C+LCDQvtGC0L7QsdGA0LDQttCw0LXRgtGB0Y8g0Y3RgtC+0YIg0LrQvtC80L/QvtC90LXQvdGCINC90LAg0LzQvtCx0LjQu9GM0L3QvtC8INGD0YHRgtGA0L7QudGB0YLQstC1INC40LvQuCDQvdC10YIuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGlzTW9iaWxlOiBib29sZWFuID0gaW5qZWN0KFRVSV9JU19NT0JJTEUpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INGE0YPQvdC60YbQuNGPINC00LvRjyDQv9GA0LXQvtCx0YDQsNC30L7QstCw0L3QuNGPINC30L3QsNGH0LXQvdC40Y8gbnVtYmVyINCyINGB0YLRgNC+0LrRgyDQsiDQv9C+0LTRgdC60LDQt9C60LUg0L/QviDQvtGB0LggWC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgeFN0cmluZ2lmeSQ6IE9ic2VydmFibGU8VHVpU3RyaW5nSGFuZGxlcjxUdWlEYXk+PiA9IHRoaXMubW9udGhzJC5waXBlKFxuICAgICAgICBtYXAoXG4gICAgICAgICAgICAobW9udGhzKSA9PlxuICAgICAgICAgICAgICAgICh7IG1vbnRoLCBkYXkgfSkgPT5cbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlY3VyaXR5L2RldGVjdC1vYmplY3QtaW5qZWN0aW9uXG4gICAgICAgICAgICAgICAgICAgIGAke21vbnRoc1ttb250aF19LCAke2RheX1gXG4gICAgICAgIClcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICog0J7RgtC90L7RgdC40YLQtdC70YzQvdGL0LUg0L7RgtGB0YLRg9C/0Ysg0L7RgiDQstC10YDRhdC90LXQs9C+INC4INC90LjQttC90LXQs9C+INC60YDQsNGPINCyINC/0YDQvtGG0LXQvdGC0LDRhS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgcGFkZGluZ1BlcmNlbnQ6IG51bWJlciA9IDEwO1xuXG4gICAgLyoqXG4gICAgICog0KTRg9C90LrRhtC40Y8g0LTQu9GPINC/0YDQtdC+0LHRgNCw0LfQvtCy0LDQvdC40Y8g0LfQvdCw0YfQtdC90LjRjyBudW1iZXIg0LIg0YHRgtGA0L7QutGDINCyINC/0L7QtNGB0LrQsNC30LrQtSDQv9C+INC+0YHQuCBZLlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlINCX0L3QsNGH0LXQvdC40LUg0L7RgdC4IFkuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHlTdHJpbmdpZnk6IFR1aVN0cmluZ0hhbmRsZXI8bnVtYmVyPiA9ICh2YWx1ZSkgPT4gYCR7dmFsdWUudG9Mb2NhbGVTdHJpbmcoJ3J1LVJVJyl9IOKCvWA7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjUHJpY2VIaXN0b3J5Q29tcG9uZW50fS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXRhbG9nU2VydmljZSDQodC10YDQstC40YEg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSDQutCw0YLQsNC70L7Qs9C+0LwuXG4gICAgICogQHBhcmFtIG1vbnRocyQg0J/QtdGA0LXRh9C40YHQu9C10L3QuNC1INC80LXRgdGP0YbQtdCyLlxuICAgICAqIEBwYXJhbSB1c2VyTWV0cmlrYVNlcnZpY2Ug0KHQtdGA0LLQuNGBINC00LvRjyDRgdCx0L7RgNCwINC80LXRgtGA0LjQuiDQviDQtNC10LnRgdGC0LLQuNGP0YUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LkuXG4gICAgICogQHBhcmFtIGNvbnRleHQg0JrQvtC90YLQtdC60YHRgiDQtNC40LDQu9C+0LPQvtCy0L7Qs9C+INC+0LrQvdCwLCDQsiDQutC+0YLQvtGA0L7QvCDQvtGC0LrRgNGL0YIg0LrQvtC80L/QvtC90LXQvdGCLlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjYXRhbG9nU2VydmljZTogU2NDYXRhbG9nU2VydmljZSxcbiAgICAgICAgQEluamVjdChUVUlfTU9OVEhTKSBwcml2YXRlIHJlYWRvbmx5IG1vbnRocyQ6IE9ic2VydmFibGU8cmVhZG9ubHkgc3RyaW5nW10+LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJNZXRyaWthU2VydmljZTogU2NVc2VyTWV0cmlrYVNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoUE9MWU1PUlBIRVVTX0NPTlRFWFQpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGV4dD86IFR1aURpYWxvZ0NvbnRleHQ8dm9pZCwgeyBwcm9kdWN0OiBTY1Byb2R1Y3QgfT5cbiAgICApIHtcbiAgICAgICAgaWYgKGNvbnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMucHJvZHVjdCA9IGNvbnRleHQuZGF0YS5wcm9kdWN0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBpbmhlcml0RG9jICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhpc3RvcnkkID0gdGhpcy5jYXRhbG9nU2VydmljZS5nZXRQcmljZUhpc3RvcnkkKHRoaXMucHJvZHVjdCkucGlwZShcbiAgICAgICAgICAgIG1hcCgoaGlzdG9yeSkgPT5cbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhoaXN0b3J5KVxuICAgICAgICAgICAgICAgICAgICAubWFwKChpdGVtKTogW1R1aURheSwgbnVtYmVyXSA9PiBbVHVpRGF5Lm5vcm1hbGl6ZVBhcnNlKGl0ZW0sICdETVknKSwgaGlzdG9yeVtTdHJpbmcoaXRlbSldLmNvc3RdKVxuICAgICAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gKGFbMF0gPiBiWzBdID8gMSA6IC0xKSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGFydFdpdGgobnVsbCksXG4gICAgICAgICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5sb2FkaW5nSGlzdG9yeSQgPSB0aGlzLmhpc3RvcnkkLnBpcGUobWFwKHR1aUlzRmFsc3kpKTtcblxuICAgICAgICB0aGlzLnByaWNlSW5mbyQgPSB0aGlzLmhpc3RvcnkkLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VyTWV0cmlrYVNlcnZpY2UuZW1pdFVzZXJNZXRyaWthRXZlbnQoe1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IFNjVXNlck1ldHJpa2FHb2Fsc0VudW0ucHJvZHVjdFByaWNlSGlzdG9yeVNob3csXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdF9pZDogdGhpcy5wcm9kdWN0LmlkLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBmaWx0ZXIoKGhpc3RvcnkpID0+IGhpc3RvcnkubGVuZ3RoID4gMSksXG4gICAgICAgICAgICBtYXAoKGhpc3RvcnkpID0+IGhpc3RvcnkubWFwKChpdGVtKSA9PiBpdGVtWzFdKSksXG4gICAgICAgICAgICBtYXAoKHZhbHVlcykgPT4gKHtcbiAgICAgICAgICAgICAgICBtaW46IE1hdGgubWluKC4uLnZhbHVlcyksXG4gICAgICAgICAgICAgICAgbWF4OiBNYXRoLm1heCguLi52YWx1ZXMpLFxuICAgICAgICAgICAgfSkpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5yYW5nZSQgPSB0aGlzLmhpc3RvcnkkLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgICAgIGZpbHRlcigoaGlzdG9yeSkgPT4gaGlzdG9yeS5sZW5ndGggPiAxKSxcbiAgICAgICAgICAgIG1hcCgodmFsdWU6IFJlYWRvbmx5QXJyYXk8W1R1aURheSwgbnVtYmVyXT4pID0+ICh7IGZyb206IHZhbHVlLmF0KDApPy5bMF0sIHRvOiB2YWx1ZS5hdCgtMSk/LlswXSB9KSksXG4gICAgICAgICAgICBmaWx0ZXIoKHJhbmdlKTogcmFuZ2UgaXMgeyBmcm9tOiBUdWlEYXk7IHRvOiBUdWlEYXkgfSA9PiAhIXJhbmdlLmZyb20gJiYgISFyYW5nZS50byksXG4gICAgICAgICAgICBtYXAoKHJhbmdlKSA9PiBuZXcgVHVpRGF5UmFuZ2UocmFuZ2UuZnJvbSwgcmFuZ2UudG8pKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0YvRh9C40YHQu9GP0LXRgiDQv9C+0LTQv9C40YHQuCDQtNCw0YLRiyDQuiDQvtGB0LggWC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXJhbTAge0BsaW5rIFR1aURheVJhbmdlfSDQktGA0LXQvNC10L3QvdC+0Lkg0L/RgNC+0LzQtdC20YPRgtC+0Log0LjRgdGC0L7RgNC40Lgg0YbQtdC9LlxuICAgICAqIEBwYXJhbSBwYXJhbTAuZnJvbSB7QGxpbmsgVHVpRGF5fSDQlNCw0YLQsCDQvdCw0YfQsNC70LAg0LjRgdGC0L7RgNC40Lgg0YbQtdC9LlxuICAgICAqIEBwYXJhbSBwYXJhbTAudG8ge0BsaW5rIFR1aURheX0g0JTQsNGC0LAg0LrQvtC90YbQsCDQuNGB0YLQvtGA0LjQuCDRhtC10L0uXG4gICAgICovXG4gICAgQHR1aVB1cmVcbiAgICBwdWJsaWMgY29tcHV0ZUxhYmVscyQoeyBmcm9tLCB0byB9OiBUdWlEYXlSYW5nZSk6IE9ic2VydmFibGU8cmVhZG9ubHkgc3RyaW5nW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9udGhzJC5waXBlKFxuICAgICAgICAgICAgbWFwKChtb250aHMpID0+IFtcbiAgICAgICAgICAgICAgICAuLi5BcnJheS5mcm9tKHsgbGVuZ3RoOiBUdWlNb250aC5sZW5ndGhCZXR3ZWVuKGZyb20sIHRvKSArIDEgfSwgKF8sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzWWVhciA9IGZyb20uYXBwZW5kKHsgbW9udGg6IGluZGV4IC0gMSB9KS55ZWFyOyAvLyDQndCw0YfQsNC70YzQvdGL0Lkg0LPQvtC0XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRZZWFyID0gZnJvbS5hcHBlbmQoeyBtb250aDogaW5kZXggfSkueWVhcjtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5pc01vYmlsZSB8fCBwcmV2aW91c1llYXIgPT09IGN1cnJlbnRZZWFyID8gJycgOiBjdXJyZW50WWVhcn0gJHttb250aHNbZnJvbS5hcHBlbmQoeyBtb250aDogaW5kZXggfSkubW9udGhdfWA7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICBdKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0YvRh9C40YHQu9GP0LXRgiDQtNCw0L3QvdGL0LUg0LTQu9GPINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0L3QsCDQs9GA0LDRhNC40LrQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXJhbTAge0BsaW5rIFR1aURheVJhbmdlfSDQktGA0LXQvNC10L3QvdC+0Lkg0L/RgNC+0LzQtdC20YPRgtC+0Log0LjRgdGC0L7RgNC40Lgg0YbQtdC9LlxuICAgICAqIEBwYXJhbSBwYXJhbTAuZnJvbSB7QGxpbmsgVHVpRGF5fSDQlNCw0YLQsCDQvdCw0YfQsNC70LAg0LjRgdGC0L7RgNC40Lgg0YbQtdC9LlxuICAgICAqIEBwYXJhbSBwYXJhbTAudG8ge0BsaW5rIFR1aURheX0g0JTQsNGC0LAg0LrQvtC90YbQsCDQuNGB0YLQvtGA0LjQuCDRhtC10L0uXG4gICAgICogQHBhcmFtIGhpc3Rvcnkg0JjRgdGC0L7RgNC40Y8g0YbQtdC9LlxuICAgICAqL1xuICAgIEB0dWlQdXJlXG4gICAgcHVibGljIGNvbXB1dGVWYWx1ZSh7IGZyb20sIHRvIH06IFR1aURheVJhbmdlLCBoaXN0b3J5OiBSZWFkb25seUFycmF5PFtUdWlEYXksIG51bWJlcl0+KTogUmVhZG9ubHlBcnJheTxbVHVpRGF5LCBudW1iZXJdPiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBBcnJheS5mcm9tKHsgbGVuZ3RoOiBUdWlEYXkubGVuZ3RoQmV0d2Vlbihmcm9tLCB0bykgKyAxIH0pXG4gICAgICAgICAgICAgICAgLmZpbGwoMClcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9uby1hcnJheS1yZWR1Y2VcbiAgICAgICAgICAgICAgICAucmVkdWNlPFJlYWRvbmx5QXJyYXk8W1R1aURheSwgbnVtYmVyXT4+KChhcnJheSwgXywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGZyb20uYXBwZW5kKHsgZGF5OiBpbmRleCB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmFycmF5LFxuICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhpc3RvcnkuZmluZCgodmFsdWVIaXN0b3J5LCBpbmRleEhpc3RvcnksIGFycmF5SGlzdG9yeSkgPT4gZGF0YS5kYXlTYW1lKHZhbHVlSGlzdG9yeVswXSkgfHwgZGF0YS5kYXlCZWZvcmUoYXJyYXlIaXN0b3J5W2luZGV4SGlzdG9yeSArIDFdWzBdKSkgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlzdG9yeVswXSlbMV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIH0sIFtdKVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjx0dWktbG9hZGVyIFtzaG93TG9hZGVyXT1cIiEhKGxvYWRpbmdIaXN0b3J5JCB8IGFzeW5jKVwiPiA8L3R1aS1sb2FkZXI+XG5cbjxkaXZcbiAgICAqbmdJZj1cIihsb2FkaW5nSGlzdG9yeSQgfCBhc3luYykgPT09IGZhbHNlXCJcbiAgICBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicHJpY2VJbmZvJCB8IGFzeW5jIGFzIHByaWNlSW5mbzsgZWxzZSBpc05vdEV4aXN0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LTE3NCBtYi0xIHRleHQtZW5kIHRleHQtbGcgZm9udC1ib2xkXCI+0L7RgiB7eyBwcmljZUluZm8ubWluLnRvTG9jYWxlU3RyaW5nKCkgfX0g4oK9INC00L4ge3sgcHJpY2VJbmZvLm1heC50b0xvY2FsZVN0cmluZygpIH19IOKCvTwvZGl2PlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoaXN0b3J5JCB8IGFzeW5jIGFzIGhpc3RvcnlcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cInJhbmdlJCB8IGFzeW5jIGFzIHJhbmdlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInJlbGF0aXZlIGgtNTYgdy1mdWxsIHAtNSB0ZXh0LXR1aS1wcmltYXJ5XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8dHVpLWF4ZXNcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb21wdXRlTGFiZWxzJChyYW5nZSkgfCBhc3luYyBhcyBsYWJlbHNcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImgtZnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFtheGlzWExhYmVsc109XCJsYWJlbHNcIlxuICAgICAgICAgICAgICAgICAgICBbaG9yaXpvbnRhbExpbmVzXT1cIjRcIlxuICAgICAgICAgICAgICAgICAgICBbdmVydGljYWxMaW5lc109XCJsYWJlbHMubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnR1aUxldD1cInByaWNlSW5mby5tYXggLSBwcmljZUluZm8ubWluIGFzIGhlaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHR1aS1saW5lLWRheXMtY2hhcnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIihoZWlnaHQgLyAxMDApICogcGFkZGluZ1BlcmNlbnQgYXMgcGFkZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hlaWdodF09XCJoZWlnaHQgKyAoaGVpZ2h0IC8gMTAwKSAqIHBhZGRpbmdQZXJjZW50ICogMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Ntb290aGluZ0ZhY3Rvcl09XCIxMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ldPVwicHJpY2VJbmZvLm1pbiAtIChoZWlnaHQgLyAxMDApICogcGFkZGluZ1BlcmNlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjb21wdXRlVmFsdWUocmFuZ2UsIGhpc3RvcnkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbeFN0cmluZ2lmeV09XCJ4U3RyaW5naWZ5JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbeVN0cmluZ2lmeV09XCJ5U3RyaW5naWZ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGludENvbnRlbnRdPVwiaGludFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGFydFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC90dWktbGluZS1kYXlzLWNoYXJ0PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L3R1aS1heGVzPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjaXNOb3RFeGlzdD5cbiAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWJhc2UgZm9udC1ib2xkXCI+0KbQtdC90LAg0L3QsCDRgtC+0LLQsNGAINC90LUg0LjQt9C80LXQvdGP0LvQsNGB0Yw8L3A+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgI2hpbnRcbiAgICAgICAgbGV0LWRhdGFcbiAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb250LWJvbGRcIj57eyBkYXRhWzFdLnRvTG9jYWxlU3RyaW5nKCkgfX0g4oK9PC9kaXY+XG4gICAgICAgIDxkaXY+e3sgZGF0YVswXSB9fTwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
@@ -1,8 +1,7 @@
1
1
  /* eslint-disable no-underscore-dangle */
2
2
  import { Directive, EventEmitter, inject, Input, Output } from '@angular/core';
3
3
  import { FormControl } from '@angular/forms';
4
- import { SC_PATH_IMAGE_NOT_FOUND, ScAuthService, ScImageHelper, ScWarehouseService, SEARCH_TERM } from '@snabcentr/client-core';
5
- import { ScUnitsHelper } from '../../helpers/sc-units-helper';
4
+ import { SC_PATH_IMAGE_NOT_FOUND, ScAuthService, ScImageHelper, ScUnitsHelper, ScWarehouseService, SEARCH_TERM } from '@snabcentr/client-core';
6
5
  import * as i0 from "@angular/core";
7
6
  /**
8
7
  * Директива абстрактной карточки товара.
@@ -128,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
128
127
  }], quantityValueChanges: [{
129
128
  type: Output
130
129
  }] } });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtc2MtcHJpY2UtY2FyZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZGlyZWN0aXZlcy9hYnN0cmFjdC1wcmljZS1jYXJkL2Fic3RyYWN0LXNjLXByaWNlLWNhcmQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlDQUF5QztBQUV6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGFBQWEsRUFBYyxhQUFhLEVBQTJCLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR3JLLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFFOUQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBRGhDO1FBd0JJOztXQUVHO1FBQ0ksb0JBQWUsR0FBK0IsSUFBSSxXQUFXLENBQWdCLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRTdHOztXQUVHO1FBQ0ksdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBRTNDOztXQUVHO1FBQ0ksdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBRTNDOztXQUVHO1FBQ2EscUJBQWdCLEdBQW9DLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFFM0g7O1dBRUc7UUFDYSxnQkFBVyxHQUF3QixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFekY7O1dBRUc7UUFDYSxZQUFPLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBUTlDOztXQUVHO1FBRUksd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBRTVDOztXQUVHO1FBRWEsdUJBQWtCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFbEY7O1dBRUc7UUFFYSx3QkFBbUIsR0FBNEIsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUU3Rjs7V0FFRztRQUVhLG9CQUFlLEdBQTZCLElBQUksWUFBWSxFQUFjLENBQUM7UUFFM0Y7O1dBRUc7UUFFYSxtQkFBYyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTlFOztXQUVHO1FBRWEsMkJBQXNCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFdEY7O1dBRUc7UUFFYSx5QkFBb0IsR0FBOEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUM7UUFFcEc7O1dBRUc7UUFDZ0IsZ0JBQVcsR0FBa0IsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXRFOztXQUVHO1FBQ2MsZ0JBQVcsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFckQ7O1dBRUc7UUFDYyxzQkFBaUIsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztLQXNCeEU7SUF2SUc7Ozs7T0FJRztJQUNILElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQ1csUUFBUSxDQUFDLEtBQTZCO1FBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBRXZCLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxJQUFJLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQXNHRDs7T0FFRztJQUNILElBQVcsZUFBZTtRQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxtQkFBbUI7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNsRyxDQUFDOzhHQXZJUSxtQkFBbUI7a0dBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEL0IsU0FBUzs4QkFpQkssUUFBUTtzQkFEbEIsS0FBSztnQkEwQ0MsT0FBTztzQkFEYixLQUFLO2dCQU9DLG1CQUFtQjtzQkFEekIsS0FBSztnQkFPVSxrQkFBa0I7c0JBRGpDLE1BQU07Z0JBT1MsbUJBQW1CO3NCQURsQyxNQUFNO2dCQU9TLGVBQWU7c0JBRDlCLE1BQU07Z0JBT1MsY0FBYztzQkFEN0IsTUFBTTtnQkFPUyxzQkFBc0I7c0JBRHJDLE1BQU07Z0JBT1Msb0JBQW9CO3NCQURuQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tdW5kZXJzY29yZS1kYW5nbGUgKi9cblxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTQ19QQVRIX0lNQUdFX05PVF9GT1VORCwgU2NBdXRoU2VydmljZSwgU2NDYXJ0SXRlbSwgU2NJbWFnZUhlbHBlciwgU2NJV2FyZWhvdXNlLCBTY1Byb2R1Y3QsIFNjV2FyZWhvdXNlU2VydmljZSwgU0VBUkNIX1RFUk0gfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2NVbml0c0hlbHBlciB9IGZyb20gJy4uLy4uL2hlbHBlcnMvc2MtdW5pdHMtaGVscGVyJztcblxuLyoqXG4gKiDQlNC40YDQtdC60YLQuNCy0LAg0LDQsdGB0YLRgNCw0LrRgtC90L7QuSDQutCw0YDRgtC+0YfQutC4INGC0L7QstCw0YDQsC5cbiAqL1xuQERpcmVjdGl2ZSgpIC8vINCQ0LHRgdGC0YDQsNC60YLQvdGL0Lkg0LrQu9Cw0YHRgSDQuNC80LXQtdGCINC00LXQutC+0YDQsNGC0L7RgCBARGlyZWN0aXZlKCkg0LTQu9GPINCy0L3QtdC00YDQtdC90LjRjyDQtdCz0L4g0LIgREksINGBINGG0LXQu9GM0Y4g0L/QvtC70YPRh9C10L3QuNGPINGE0YPQvdC60YbQuNC+0L3QsNC70LAgaW5qZWN0INCy0L3Rg9GC0YDQuCDQsNCx0YHRgtGA0LDQutGG0LjQuCwg0Lgg0LLQvtC30LzQvtC20L3QvtGB0YLQuCDQv9C+0LvRg9GH0LDRgtGMINC/0L7RgtC+0LzQutC+0LIg0YfQtdGA0LXQtyBESSDQuNC70Lgg0YfQtdGA0LXQtyDQtNC10LrQvtGA0LDRgtC+0YAgQFZpZXdDaGlsZC5cbmV4cG9ydCBjbGFzcyBBYnN0cmFjdFNjUHJpY2VDYXJkIHtcbiAgICAvKipcbiAgICAgKiDQn9C+0LfQuNGG0LjRjyDRgtC+0LLQsNGA0LAg0LIg0LrQvtGA0LfQuNC90LUuXG4gICAgICpcbiAgICAgKiBUT0RPOiDQodC00LXQu9Cw0YLRjCDRgtC+0LLQsNGAINCyINC60L7RgNC30LjQvdC1INC90LDQsdC70Y7QtNCw0LXQvNC+0Lkg0L/QtdGA0LXQvNC10L3QvdC+0Lkg0L/QvtGB0LvQtSDRgNC10LDQu9C40LfQsNGG0LjQuCBUQVNLOlsjNzE0NF0uXG4gICAgICovXG4gICAgcHVibGljIGdldCBjYXJ0SXRlbSgpOiBTY0NhcnRJdGVtIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NhcnRJdGVtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0L7Qt9C40YbQuNGPINGC0L7QstCw0YDQsCDQsiDQutC+0YDQt9C40L3QtVxuICAgICAqXG4gICAgICogVE9ETzog0KHQtNC10LvQsNGC0Ywg0YLQvtCy0LDRgCDQsiDQutC+0YDQt9C40L3QtSDQvdCw0LHQu9GO0LTQsNC10LzQvtC5INC/0LXRgNC10LzQtdC90L3QvtC5INC/0L7RgdC70LUg0YDQtdCw0LvQuNC30LDRhtC40LggVEFTSzpbIzcxNDRdLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBjYXJ0SXRlbSh2YWx1ZTogU2NDYXJ0SXRlbSB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9jYXJ0SXRlbSA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMucXVhbnRpdHlDb250cm9sLnBhdGNoVmFsdWUodGhpcy5fY2FydEl0ZW0/LnF1YW50aXR5ID8/IG51bGwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgdGhpcy5xdWFudGl0eVNob3dMb2FkZXIgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgRm9ybUNvbnRyb2x9INC/0L7Qu9GPINCy0LLQvtC00LAg0LrQvtC70LjRh9C10YHRgtCy0LAg0YLQvtCy0LDRgNCwINCyINC60L7RgNC30LjQvdC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBxdWFudGl0eUNvbnRyb2w6IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+ID0gbmV3IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+KDMsIHsgdXBkYXRlT246ICdibHVyJyB9KTtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0L3QtdC+0LHRhdC+0LTQuNC80L4g0L7RgtC+0LHRgNCw0LfQuNGC0Ywg0LvQvtCw0LTQtdGAINC00LvRjyDQv9C+0LvRjyDQstCy0L7QtNCwINC60L7Qu9C40YfQtdGB0YLQstCwINGC0L7QstCw0YDQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcXVhbnRpdHlTaG93TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC90LXQvtCx0YXQvtC00LjQvNC+INC+0YLQvtCx0YDQsNC30LjRgtGMINC70L7QsNC00LXRgCDQtNC70Y8g0LrQvdC+0L/QutC4INC40LfQsdGA0LDQvdC90YvRhSDRgtC+0LLQsNGA0L7QsiDQuCDQutCw0YLQtdCz0L7RgNC40LkuXG4gICAgICovXG4gICAgcHVibGljIGZhdm9yaXRlU2hvd0xvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDQstGL0LHRgNCw0L3QvdC+0LPQviDRgdC60LvQsNC00LAuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHdhcmVob3VzZVNlbGVjdCQ6IE9ic2VydmFibGU8U2NJV2FyZWhvdXNlIHwgbnVsbD4gPSBpbmplY3QoU2NXYXJlaG91c2VTZXJ2aWNlKS5nZXRXYXJlaG91c2VTZWxlY3RDaGFuZ2UkKCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINGB0YLQsNGC0YPRgdCwINCw0LLRgtC+0YDQuNC30LDRhtC40LguXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF1dGhTdGF0dXMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gaW5qZWN0KFNjQXV0aFNlcnZpY2UpLmdldEF1dGhDaGFuZ2UoKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQv9C+0LjRgdC60LAg0YLQtdGA0LzQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc2VhcmNoJCA9IGluamVjdChTRUFSQ0hfVEVSTSk7XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YrQtdC60YIg0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHByb2R1Y3Q/OiBTY1Byb2R1Y3Q7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC90LXQvtCx0YXQvtC00LjQvNC+INC+0YLQvtCx0YDQsNC30LjRgtGMINC/0L7Qu9C1INCy0LLQvtC00LAg0LrQvtC70LjRh9C10YHRgtCy0LAg0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dRdWFudGl0eUNvbnRyb2w6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDIFwi0JIg0LjQt9Cx0YDQsNC90L3QvtC1XCIuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlYWRvbmx5IGNsaWNrRmF2b3JpdGVFdmVudDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICog0KHQvtCx0YvRgtC40LUg0L3QsNC20LDRgtC40Y8g0L3QsCDQutC90L7Qv9C60YMgXCLQkiDQutC+0YDQt9C40L3Rg1wiLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSBjbGlja0FkZFRvQ2FydEV2ZW50OiBFdmVudEVtaXR0ZXI8U2NQcm9kdWN0PiA9IG5ldyBFdmVudEVtaXR0ZXI8U2NQcm9kdWN0PigpO1xuXG4gICAgLyoqXG4gICAgICog0KHQvtCx0YvRgtC40LUg0L3QsNC20LDRgtC40Y8g0L3QsCDQutC90L7Qv9C60YMg0L7Rh9C40YHRgtC60Lgg0LrQvtC70LjRh9C10YHRgtCy0LAg0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSBjbGlja0NsZWFyRXZlbnQ6IEV2ZW50RW1pdHRlcjxTY0NhcnRJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8U2NDYXJ0SXRlbT4oKTtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LrQsNGA0YLQvtGH0LrRgyDRgtC+0LLQsNGA0LAuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlYWRvbmx5IGNsaWNrQ2FyZEV2ZW50OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDQvdCw0LbQsNGC0LjRjyDQvdCwINC40YHRgtC+0YDQuNGOINGG0LXQvS5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2xpY2tQcmljZUhpc3RvcnlFdmVudDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDQutC+0LvQuNGH0LXRgdGC0LLQsCDRgtC+0LLQsNGA0LAg0LIg0LrQvtGA0LfQuNC90LUuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlYWRvbmx5IHF1YW50aXR5VmFsdWVDaGFuZ2VzOiBPYnNlcnZhYmxlPG51bWJlciB8IG51bGw+ID0gdGhpcy5xdWFudGl0eUNvbnRyb2wudmFsdWVDaGFuZ2VzO1xuXG4gICAgLyoqXG4gICAgICog0K3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsC3Qv9C+0LzQvtGJ0L3QuNC60LAg0LTQu9GPINGA0LDQsdC+0YLRiyDRgdC+INC30L3QsNGH0LXQvdC40Y/QvNC4INC10LTQuNC90LjRhiDQuNC30LzQtdGA0LXQvdC40Y8g0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSB1bml0c0hlbHBlcjogU2NVbml0c0hlbHBlciA9IGluamVjdChTY1VuaXRzSGVscGVyKTtcblxuICAgIC8qKlxuICAgICAqINCl0LXQu9C/0LXRgCDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINC40LfQvtCx0YDQsNC20LXQvdC40Y/QvNC4INGC0L7QstCw0YDQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGltYWdlSGVscGVyID0gaW5qZWN0KFNjSW1hZ2VIZWxwZXIpO1xuXG4gICAgLyoqXG4gICAgICog0J/Rg9GC0Ywg0LTQviDQuNC30L7QsdGA0LDQttC10L3QuNGPICfQotC+0LLQsNGAINC90LUg0L3QsNC50LTQtdC9Jy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhdGhJbWFnZU5vdEZvdW5kID0gaW5qZWN0KFNDX1BBVEhfSU1BR0VfTk9UX0ZPVU5EKTtcblxuICAgIC8qKlxuICAgICAqINCf0L7Qt9C40YbQuNGPINGC0L7QstCw0YDQsCDQsiDQutC+0YDQt9C40L3QtS5cbiAgICAgKlxuICAgICAqIFRPRE86INCh0LTQtdC70LDRgtGMINGC0L7QstCw0YAg0LIg0LrQvtGA0LfQuNC90LUg0L3QsNCx0LvRjtC00LDQtdC80L7QuSDQv9C10YDQtdC80LXQvdC90L7QuSDQv9C+0YHQu9C1INGA0LXQsNC70LjQt9Cw0YbQuNC4IFRBU0s6WyM3MTQ0XS5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9jYXJ0SXRlbT86IFNjQ2FydEl0ZW0gfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC90YPQttC90L4g0L/QvtC60LDQt9Cw0YLRjCDRgdC60LXQu9C10YLQvtC9LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgc2tlbGV0b25WaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMucHJvZHVjdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgdGB0YvQu9C60YMg0L3QsCBwcmV2aWV3LdC40LfQvtCx0YDQsNC20LXQvdC40LUg0LrQsNGA0YLQvtGH0LrQuCDRgtC+0LLQsNGA0LAuXG4gICAgICovXG4gICAgcHVibGljIGdldENhcmRJbWFnZVByZXZpZXcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdCA/IHRoaXMuaW1hZ2VIZWxwZXIuZ2V0SW1hZ2VQcmV2aWV3KHRoaXMucHJvZHVjdCkgOiB0aGlzLnBhdGhJbWFnZU5vdEZvdW5kO1xuICAgIH1cbn1cbiJdfQ==
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtc2MtcHJpY2UtY2FyZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZGlyZWN0aXZlcy9hYnN0cmFjdC1wcmljZS1jYXJkL2Fic3RyYWN0LXNjLXByaWNlLWNhcmQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlDQUF5QztBQUV6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGFBQWEsRUFBYyxhQUFhLEVBQTJCLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFHcEw7O0dBRUc7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBRGhDO1FBd0JJOztXQUVHO1FBQ0ksb0JBQWUsR0FBK0IsSUFBSSxXQUFXLENBQWdCLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRTdHOztXQUVHO1FBQ0ksdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBRTNDOztXQUVHO1FBQ0ksdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBRTNDOztXQUVHO1FBQ2EscUJBQWdCLEdBQW9DLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFFM0g7O1dBRUc7UUFDYSxnQkFBVyxHQUF3QixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFekY7O1dBRUc7UUFDYSxZQUFPLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBUTlDOztXQUVHO1FBRUksd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBRTVDOztXQUVHO1FBRWEsdUJBQWtCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFbEY7O1dBRUc7UUFFYSx3QkFBbUIsR0FBNEIsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUU3Rjs7V0FFRztRQUVhLG9CQUFlLEdBQTZCLElBQUksWUFBWSxFQUFjLENBQUM7UUFFM0Y7O1dBRUc7UUFFYSxtQkFBYyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTlFOztXQUVHO1FBRWEsMkJBQXNCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFdEY7O1dBRUc7UUFFYSx5QkFBb0IsR0FBOEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUM7UUFFcEc7O1dBRUc7UUFDZ0IsZ0JBQVcsR0FBa0IsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXRFOztXQUVHO1FBQ2MsZ0JBQVcsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFckQ7O1dBRUc7UUFDYyxzQkFBaUIsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztLQXNCeEU7SUF2SUc7Ozs7T0FJRztJQUNILElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQ1csUUFBUSxDQUFDLEtBQTZCO1FBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBRXZCLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxJQUFJLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQXNHRDs7T0FFRztJQUNILElBQVcsZUFBZTtRQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxtQkFBbUI7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNsRyxDQUFDOzhHQXZJUSxtQkFBbUI7a0dBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEL0IsU0FBUzs4QkFpQkssUUFBUTtzQkFEbEIsS0FBSztnQkEwQ0MsT0FBTztzQkFEYixLQUFLO2dCQU9DLG1CQUFtQjtzQkFEekIsS0FBSztnQkFPVSxrQkFBa0I7c0JBRGpDLE1BQU07Z0JBT1MsbUJBQW1CO3NCQURsQyxNQUFNO2dCQU9TLGVBQWU7c0JBRDlCLE1BQU07Z0JBT1MsY0FBYztzQkFEN0IsTUFBTTtnQkFPUyxzQkFBc0I7c0JBRHJDLE1BQU07Z0JBT1Msb0JBQW9CO3NCQURuQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tdW5kZXJzY29yZS1kYW5nbGUgKi9cblxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTQ19QQVRIX0lNQUdFX05PVF9GT1VORCwgU2NBdXRoU2VydmljZSwgU2NDYXJ0SXRlbSwgU2NJbWFnZUhlbHBlciwgU2NJV2FyZWhvdXNlLCBTY1Byb2R1Y3QsIFNjVW5pdHNIZWxwZXIsIFNjV2FyZWhvdXNlU2VydmljZSwgU0VBUkNIX1RFUk0gfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiDQlNC40YDQtdC60YLQuNCy0LAg0LDQsdGB0YLRgNCw0LrRgtC90L7QuSDQutCw0YDRgtC+0YfQutC4INGC0L7QstCw0YDQsC5cbiAqL1xuQERpcmVjdGl2ZSgpIC8vINCQ0LHRgdGC0YDQsNC60YLQvdGL0Lkg0LrQu9Cw0YHRgSDQuNC80LXQtdGCINC00LXQutC+0YDQsNGC0L7RgCBARGlyZWN0aXZlKCkg0LTQu9GPINCy0L3QtdC00YDQtdC90LjRjyDQtdCz0L4g0LIgREksINGBINGG0LXQu9GM0Y4g0L/QvtC70YPRh9C10L3QuNGPINGE0YPQvdC60YbQuNC+0L3QsNC70LAgaW5qZWN0INCy0L3Rg9GC0YDQuCDQsNCx0YHRgtGA0LDQutGG0LjQuCwg0Lgg0LLQvtC30LzQvtC20L3QvtGB0YLQuCDQv9C+0LvRg9GH0LDRgtGMINC/0L7RgtC+0LzQutC+0LIg0YfQtdGA0LXQtyBESSDQuNC70Lgg0YfQtdGA0LXQtyDQtNC10LrQvtGA0LDRgtC+0YAgQFZpZXdDaGlsZC5cbmV4cG9ydCBjbGFzcyBBYnN0cmFjdFNjUHJpY2VDYXJkIHtcbiAgICAvKipcbiAgICAgKiDQn9C+0LfQuNGG0LjRjyDRgtC+0LLQsNGA0LAg0LIg0LrQvtGA0LfQuNC90LUuXG4gICAgICpcbiAgICAgKiBUT0RPOiDQodC00LXQu9Cw0YLRjCDRgtC+0LLQsNGAINCyINC60L7RgNC30LjQvdC1INC90LDQsdC70Y7QtNCw0LXQvNC+0Lkg0L/QtdGA0LXQvNC10L3QvdC+0Lkg0L/QvtGB0LvQtSDRgNC10LDQu9C40LfQsNGG0LjQuCBUQVNLOlsjNzE0NF0uXG4gICAgICovXG4gICAgcHVibGljIGdldCBjYXJ0SXRlbSgpOiBTY0NhcnRJdGVtIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NhcnRJdGVtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0L7Qt9C40YbQuNGPINGC0L7QstCw0YDQsCDQsiDQutC+0YDQt9C40L3QtVxuICAgICAqXG4gICAgICogVE9ETzog0KHQtNC10LvQsNGC0Ywg0YLQvtCy0LDRgCDQsiDQutC+0YDQt9C40L3QtSDQvdCw0LHQu9GO0LTQsNC10LzQvtC5INC/0LXRgNC10LzQtdC90L3QvtC5INC/0L7RgdC70LUg0YDQtdCw0LvQuNC30LDRhtC40LggVEFTSzpbIzcxNDRdLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBjYXJ0SXRlbSh2YWx1ZTogU2NDYXJ0SXRlbSB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9jYXJ0SXRlbSA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMucXVhbnRpdHlDb250cm9sLnBhdGNoVmFsdWUodGhpcy5fY2FydEl0ZW0/LnF1YW50aXR5ID8/IG51bGwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgdGhpcy5xdWFudGl0eVNob3dMb2FkZXIgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgRm9ybUNvbnRyb2x9INC/0L7Qu9GPINCy0LLQvtC00LAg0LrQvtC70LjRh9C10YHRgtCy0LAg0YLQvtCy0LDRgNCwINCyINC60L7RgNC30LjQvdC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBxdWFudGl0eUNvbnRyb2w6IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+ID0gbmV3IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+KDMsIHsgdXBkYXRlT246ICdibHVyJyB9KTtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0L3QtdC+0LHRhdC+0LTQuNC80L4g0L7RgtC+0LHRgNCw0LfQuNGC0Ywg0LvQvtCw0LTQtdGAINC00LvRjyDQv9C+0LvRjyDQstCy0L7QtNCwINC60L7Qu9C40YfQtdGB0YLQstCwINGC0L7QstCw0YDQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcXVhbnRpdHlTaG93TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC90LXQvtCx0YXQvtC00LjQvNC+INC+0YLQvtCx0YDQsNC30LjRgtGMINC70L7QsNC00LXRgCDQtNC70Y8g0LrQvdC+0L/QutC4INC40LfQsdGA0LDQvdC90YvRhSDRgtC+0LLQsNGA0L7QsiDQuCDQutCw0YLQtdCz0L7RgNC40LkuXG4gICAgICovXG4gICAgcHVibGljIGZhdm9yaXRlU2hvd0xvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDQstGL0LHRgNCw0L3QvdC+0LPQviDRgdC60LvQsNC00LAuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHdhcmVob3VzZVNlbGVjdCQ6IE9ic2VydmFibGU8U2NJV2FyZWhvdXNlIHwgbnVsbD4gPSBpbmplY3QoU2NXYXJlaG91c2VTZXJ2aWNlKS5nZXRXYXJlaG91c2VTZWxlY3RDaGFuZ2UkKCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINGB0YLQsNGC0YPRgdCwINCw0LLRgtC+0YDQuNC30LDRhtC40LguXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF1dGhTdGF0dXMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gaW5qZWN0KFNjQXV0aFNlcnZpY2UpLmdldEF1dGhDaGFuZ2UoKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQv9C+0LjRgdC60LAg0YLQtdGA0LzQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc2VhcmNoJCA9IGluamVjdChTRUFSQ0hfVEVSTSk7XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YrQtdC60YIg0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHByb2R1Y3Q/OiBTY1Byb2R1Y3Q7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC90LXQvtCx0YXQvtC00LjQvNC+INC+0YLQvtCx0YDQsNC30LjRgtGMINC/0L7Qu9C1INCy0LLQvtC00LAg0LrQvtC70LjRh9C10YHRgtCy0LAg0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dRdWFudGl0eUNvbnRyb2w6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDIFwi0JIg0LjQt9Cx0YDQsNC90L3QvtC1XCIuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlYWRvbmx5IGNsaWNrRmF2b3JpdGVFdmVudDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICog0KHQvtCx0YvRgtC40LUg0L3QsNC20LDRgtC40Y8g0L3QsCDQutC90L7Qv9C60YMgXCLQkiDQutC+0YDQt9C40L3Rg1wiLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSBjbGlja0FkZFRvQ2FydEV2ZW50OiBFdmVudEVtaXR0ZXI8U2NQcm9kdWN0PiA9IG5ldyBFdmVudEVtaXR0ZXI8U2NQcm9kdWN0PigpO1xuXG4gICAgLyoqXG4gICAgICog0KHQvtCx0YvRgtC40LUg0L3QsNC20LDRgtC40Y8g0L3QsCDQutC90L7Qv9C60YMg0L7Rh9C40YHRgtC60Lgg0LrQvtC70LjRh9C10YHRgtCy0LAg0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSBjbGlja0NsZWFyRXZlbnQ6IEV2ZW50RW1pdHRlcjxTY0NhcnRJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8U2NDYXJ0SXRlbT4oKTtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LrQsNGA0YLQvtGH0LrRgyDRgtC+0LLQsNGA0LAuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlYWRvbmx5IGNsaWNrQ2FyZEV2ZW50OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDQvdCw0LbQsNGC0LjRjyDQvdCwINC40YHRgtC+0YDQuNGOINGG0LXQvS5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2xpY2tQcmljZUhpc3RvcnlFdmVudDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDQutC+0LvQuNGH0LXRgdGC0LLQsCDRgtC+0LLQsNGA0LAg0LIg0LrQvtGA0LfQuNC90LUuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlYWRvbmx5IHF1YW50aXR5VmFsdWVDaGFuZ2VzOiBPYnNlcnZhYmxlPG51bWJlciB8IG51bGw+ID0gdGhpcy5xdWFudGl0eUNvbnRyb2wudmFsdWVDaGFuZ2VzO1xuXG4gICAgLyoqXG4gICAgICog0K3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsC3Qv9C+0LzQvtGJ0L3QuNC60LAg0LTQu9GPINGA0LDQsdC+0YLRiyDRgdC+INC30L3QsNGH0LXQvdC40Y/QvNC4INC10LTQuNC90LjRhiDQuNC30LzQtdGA0LXQvdC40Y8g0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSB1bml0c0hlbHBlcjogU2NVbml0c0hlbHBlciA9IGluamVjdChTY1VuaXRzSGVscGVyKTtcblxuICAgIC8qKlxuICAgICAqINCl0LXQu9C/0LXRgCDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINC40LfQvtCx0YDQsNC20LXQvdC40Y/QvNC4INGC0L7QstCw0YDQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGltYWdlSGVscGVyID0gaW5qZWN0KFNjSW1hZ2VIZWxwZXIpO1xuXG4gICAgLyoqXG4gICAgICog0J/Rg9GC0Ywg0LTQviDQuNC30L7QsdGA0LDQttC10L3QuNGPICfQotC+0LLQsNGAINC90LUg0L3QsNC50LTQtdC9Jy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhdGhJbWFnZU5vdEZvdW5kID0gaW5qZWN0KFNDX1BBVEhfSU1BR0VfTk9UX0ZPVU5EKTtcblxuICAgIC8qKlxuICAgICAqINCf0L7Qt9C40YbQuNGPINGC0L7QstCw0YDQsCDQsiDQutC+0YDQt9C40L3QtS5cbiAgICAgKlxuICAgICAqIFRPRE86INCh0LTQtdC70LDRgtGMINGC0L7QstCw0YAg0LIg0LrQvtGA0LfQuNC90LUg0L3QsNCx0LvRjtC00LDQtdC80L7QuSDQv9C10YDQtdC80LXQvdC90L7QuSDQv9C+0YHQu9C1INGA0LXQsNC70LjQt9Cw0YbQuNC4IFRBU0s6WyM3MTQ0XS5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9jYXJ0SXRlbT86IFNjQ2FydEl0ZW0gfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC90YPQttC90L4g0L/QvtC60LDQt9Cw0YLRjCDRgdC60LXQu9C10YLQvtC9LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgc2tlbGV0b25WaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMucHJvZHVjdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgdGB0YvQu9C60YMg0L3QsCBwcmV2aWV3LdC40LfQvtCx0YDQsNC20LXQvdC40LUg0LrQsNGA0YLQvtGH0LrQuCDRgtC+0LLQsNGA0LAuXG4gICAgICovXG4gICAgcHVibGljIGdldENhcmRJbWFnZVByZXZpZXcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdCA/IHRoaXMuaW1hZ2VIZWxwZXIuZ2V0SW1hZ2VQcmV2aWV3KHRoaXMucHJvZHVjdCkgOiB0aGlzLnBhdGhJbWFnZU5vdEZvdW5kO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { HttpErrorResponse } from '@angular/common/http';
2
2
  import { ChangeDetectionStrategy, Component, EventEmitter, Inject, inject, Input, Output, SkipSelf } from '@angular/core';
3
3
  import { NgControl } from '@angular/forms';
4
- import { ScISuggestionType } from '@snabcentr/client-core';
4
+ import { SC_MIN_LENGTH_SEARCH_TERM, ScISuggestionType } from '@snabcentr/client-core';
5
5
  import { tuiControlValue, tuiIsFalsy, tuiIsPresent, tuiMarkControlAsTouchedAndValidate } from '@taiga-ui/cdk';
6
6
  import { TUI_DATA_LIST_HOST } from '@taiga-ui/core';
7
7
  import { catchError, debounceTime, filter, map, of, share, startWith, switchMap, throwError } from 'rxjs';
@@ -42,10 +42,14 @@ export class ScSuggestionFieldComponent {
42
42
  this.host = inject(TUI_DATA_LIST_HOST, {
43
43
  optional: true,
44
44
  });
45
+ /**
46
+ * Минимальная длина поискового запроса для получения данных.
47
+ */
48
+ this.minLengthSearchTerm = inject(SC_MIN_LENGTH_SEARCH_TERM);
45
49
  }
46
50
  /** @inheritDoc */
47
51
  ngOnInit() {
48
- const request$ = tuiControlValue(this.control).pipe(debounceTime(500), filter(tuiIsPresent), map((term) => term.trim()), filter((term) => term.length >= 3), switchMap((term) => this.suggestionService.getData(term, this.type).pipe(startWith(null))), catchError((error) => {
52
+ const request$ = tuiControlValue(this.control).pipe(debounceTime(500), filter(tuiIsPresent), map((term) => term.trim()), filter((term) => term.length >= this.minLengthSearchTerm), switchMap((term) => this.suggestionService.getData(term, this.type).pipe(startWith(null))), catchError((error) => {
49
53
  if (error instanceof HttpErrorResponse) {
50
54
  const errorResponse = error.error;
51
55
  if (this.control.control) {
@@ -131,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
131
135
  }], selectedClick: [{
132
136
  type: Output
133
137
  }] } });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc3VnZ2VzdGlvbi1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZm9ybS1maWVsZHMvc3VnZ2VzdGlvbi1maWVsZC9zYy1zdWdnZXN0aW9uLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9mb3JtLWZpZWxkcy9zdWdnZXN0aW9uLWZpZWxkL3NjLXN1Z2dlc3Rpb24tZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSSxPQUFPLEVBQWEsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFxQyxNQUFNLHdCQUF3QixDQUFDO0FBQzlGLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsa0JBQWtCLEVBQW1CLE1BQU0sZ0JBQWdCLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBSXRIOztHQUVHO0FBTUgsTUFBTSxPQUFPLDBCQUEwQjtJQW1DbkM7Ozs7O09BS0c7SUFDSCxZQUdvQixPQUFrQixFQUNqQixpQkFBc0M7UUFEdkMsWUFBTyxHQUFQLE9BQU8sQ0FB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QUUsQ0FBQztvQkFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDN0UsQ0FBQztnQkFDRCxNQUFNO1lBQ1Y7Z0JBQ0ksTUFBTTtRQUNkLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUM7WUFDMUIsK0hBQStIO1lBQy9ILElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7OEdBM0lRLDBCQUEwQixrQkEyQ3ZCLFNBQVM7a0dBM0NaLDBCQUEwQixrSUNsQnZDLDYyREF1Q0E7OzJGRHJCYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0kscUJBQXFCLG1CQUVkLHVCQUF1QixDQUFDLE1BQU07OzBCQTRDMUMsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxTQUFTOzJFQXRDZCxJQUFJO3NCQURWLEtBQUs7Z0JBT0MsYUFBYTtzQkFEbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTY0lTdWdnZXN0aW9uVHlwZSwgU2NTdWdnZXN0aW9uLCBTY1N1Z2dlc3Rpb25TZXJ2aWNlIH0gZnJvbSAnQHNuYWJjZW50ci9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyB0dWlDb250cm9sVmFsdWUsIHR1aUlzRmFsc3ksIHR1aUlzUHJlc2VudCwgdHVpTWFya0NvbnRyb2xBc1RvdWNoZWRBbmRWYWxpZGF0ZSB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgVFVJX0RBVEFfTElTVF9IT1NULCBUdWlEYXRhTGlzdEhvc3QgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmUsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFwaUVycm9yUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9hdXRoL2ludGVyZmFjZXMvYXBpLWVycm9yLXJlc3BvbnNlJztcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0L/QvtC00YHQutCw0LfQvtC6INC00LvRjyDQv9C+0LvRjyDQstCy0L7QtNCwLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjLXN1Z2dlc3Rpb24tZmllbGQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy1zdWdnZXN0aW9uLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2NTdWdnZXN0aW9uRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKlxuICAgICAqINCi0LjQvyDQv9C+0LTRgdC60LDQt9C+0LouXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdHlwZTogU2NJU3VnZ2VzdGlvblR5cGUgPSBTY0lTdWdnZXN0aW9uVHlwZS5maW87XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDQstGL0LHQvtGA0LAg0YDQtdC30YPQu9GM0YLQsNGC0LAg0L/QvtC00YHQutCw0LfQutC4LlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBzZWxlY3RlZENsaWNrOiBFdmVudEVtaXR0ZXI8U2NTdWdnZXN0aW9uPiA9IG5ldyBFdmVudEVtaXR0ZXI8U2NTdWdnZXN0aW9uPigpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC/0L7QtNGB0LrQsNC30L7Qui5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3VnZ2VzdGlvbnMkPzogT2JzZXJ2YWJsZTxTY1N1Z2dlc3Rpb25bXSB8IG51bGw+O1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INGB0L7RgdGC0L7Rj9C90LjQtSDQt9Cw0L/RgNC+0YHQsCDQv9C+0LTRgdC60LDQt9C+0LouXG4gICAgICovXG4gICAgcHVibGljIGxvYWRpbmckPzogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgIC8qKlxuICAgICAqINCf0LXRgNC10YfQuNGB0LvQtdC90LjQtSDRgtC40L/QvtCyINC/0L7QtNGB0LrQsNC30L7Qui5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc3VnZ2VzdGlvblR5cGU6IHR5cGVvZiBTY0lTdWdnZXN0aW9uVHlwZSA9IFNjSVN1Z2dlc3Rpb25UeXBlO1xuXG4gICAgLyoqXG4gICAgICog0JrQvtC80L/QvtC90LXQvdGCINC+0LHRkdGA0YLQutCwINCy0YvQv9Cw0LTQsNGO0YnQtdCz0L4g0YHQv9C40YHQutCwLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdDogVHVpRGF0YUxpc3RIb3N0PHVua25vd24+IHwgbnVsbCA9IGluamVjdDxUdWlEYXRhTGlzdEhvc3Q8dW5rbm93bj4+KFRVSV9EQVRBX0xJU1RfSE9TVCwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NTdWdnZXN0aW9uRmllbGRDb21wb25lbnR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbnRyb2wg0JrQvtC90YLRgNC+0Lsg0L/QvtC70Y8g0LLQstC+0LTQsC5cbiAgICAgKiBAcGFyYW0gc3VnZ2VzdGlvblNlcnZpY2Ug0KHQtdGA0LLQuNGBINGA0LDQsdC+0YLRiyDRgSBBUEkg0L/QvtC00YHQutCw0LfQvtC6LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgQFNraXBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBjb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc3VnZ2VzdGlvblNlcnZpY2U6IFNjU3VnZ2VzdGlvblNlcnZpY2VcbiAgICApIHt9XG5cbiAgICAvKiogQGluaGVyaXREb2MgKi9cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QkID0gdHVpQ29udHJvbFZhbHVlPHN0cmluZyB8IG51bGw+KHRoaXMuY29udHJvbCkucGlwZShcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSg1MDApLFxuICAgICAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudCksXG4gICAgICAgICAgICBtYXAoKHRlcm0pID0+IHRlcm0udHJpbSgpKSxcbiAgICAgICAgICAgIGZpbHRlcigodGVybSkgPT4gdGVybS5sZW5ndGggPj0gMyksXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKHRlcm06IHN0cmluZykgPT4gdGhpcy5zdWdnZXN0aW9uU2VydmljZS5nZXREYXRhPFNjU3VnZ2VzdGlvbj4odGVybSwgdGhpcy50eXBlKS5waXBlKHN0YXJ0V2l0aChudWxsKSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvclJlc3BvbnNlID0gZXJyb3IuZXJyb3IgYXMgQXBpRXJyb3JSZXNwb25zZTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jb250cm9sLmNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR1aU1hcmtDb250cm9sQXNUb3VjaGVkQW5kVmFsaWRhdGUodGhpcy5jb250cm9sLmNvbnRyb2wpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2wuY29udHJvbC5zZXRFcnJvcnMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclJlc3BvbnNlOiBbZXJyb3JSZXNwb25zZS5tZXNzYWdlIHx8ICfQntGI0LjQsdC60LAg0YHQtdGA0LLQtdGA0LA6INC/0L7QttCw0LvRg9C50YHRgtCwLCDQv9C10YDQtdC30LDQs9GA0YPQt9C40YLQtSDRgdGC0YDQsNC90LjRhtGDINC4L9C40LvQuCDQstGL0L/QvtC70L3QuNGC0LUg0LfQsNC/0YDQvtGBINC/0L7Qt9C20LUuJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG9mKFtdKSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHNoYXJlKClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnN1Z2dlc3Rpb25zJCA9IHJlcXVlc3QkLnBpcGUoZmlsdGVyKHR1aUlzUHJlc2VudCksIHN0YXJ0V2l0aChudWxsKSk7XG4gICAgICAgIHRoaXMubG9hZGluZyQgPSByZXF1ZXN0JC5waXBlKG1hcCh0dWlJc0ZhbHN5KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JfQsNC/0L7Qu9C90LXQvdC40LUg0L/QvtC70LXQuSDQvtGB0L3QvtCy0LUg0LLRi9Cx0YDQsNC90L3QvtC5INC/0L7QtNGB0LrQsNC30LrQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdWdnZXN0aW9uINCe0LHRitC10LrRgiDQv9C+0LTRgdC60LDQt9C60LguXG4gICAgICovXG4gICAgcHVibGljIG9uU2VsZWN0ZWQoc3VnZ2VzdGlvbjogU2NTdWdnZXN0aW9uKTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFNjSVN1Z2dlc3Rpb25UeXBlLmZpbzpcbiAgICAgICAgICAgICAgICBpZiAoJ2ZpbycgaW4gc3VnZ2VzdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2wuY29udHJvbD8ucGF0Y2hWYWx1ZShzdWdnZXN0aW9uLmZpbywgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgU2NJU3VnZ2VzdGlvblR5cGUuYWRkcmVzczpcbiAgICAgICAgICAgICAgICBpZiAoJ2FkZHJlc3NTdHJpbmcnIGluIHN1Z2dlc3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2w/LnBhdGNoVmFsdWUoc3VnZ2VzdGlvbi5hZGRyZXNzU3RyaW5nLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBTY0lTdWdnZXN0aW9uVHlwZS5iYW5rOlxuICAgICAgICAgICAgICAgIGlmICgnaW5uJyBpbiBzdWdnZXN0aW9uICYmICdiaWMnIGluIHN1Z2dlc3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuY29udHJvbC5jb250cm9sPy5wYXJlbnQgYXMgRm9ybUdyb3VwKS5wYXRjaFZhbHVlKFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhbmtOYW1lOiBzdWdnZXN0aW9uLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmljOiBzdWdnZXN0aW9uLmJpYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3JyZXNwb25kZW50QWNjb3VudDogc3VnZ2VzdGlvbi5jb3JyZXNwb25kZW50QWNjb3VudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGVtaXRFdmVudDogZmFsc2UgfVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgU2NJU3VnZ2VzdGlvblR5cGUub3JnYW5pemF0aW9uOlxuICAgICAgICAgICAgICAgIGlmICgnaW5uJyBpbiBzdWdnZXN0aW9uICYmICEoJ2JpYycgaW4gc3VnZ2VzdGlvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuY29udHJvbC5jb250cm9sPy5wYXJlbnQgYXMgRm9ybUdyb3VwKS5wYXRjaFZhbHVlKFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHN1Z2dlc3Rpb24ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbm46IHN1Z2dlc3Rpb24uaW5uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtwcDogc3VnZ2VzdGlvbi5rcHAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2twbzogc3VnZ2VzdGlvbi5va3BvLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yTmFtZTogc3VnZ2VzdGlvbi5kaXJlY3Rvck5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3JQb3NpdGlvbjogc3VnZ2VzdGlvbi5kaXJlY3RvclBvc2l0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2FsQWRkcmVzczogc3VnZ2VzdGlvbi5sZWdhbEFkZHJlc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdGFsQWRkcmVzczogc3VnZ2VzdGlvbi5wb3N0YWxBZGRyZXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbEFkZHJlc3M6IHN1Z2dlc3Rpb24uYWN0dWFsQWRkcmVzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGVtaXRFdmVudDogZmFsc2UgfVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgU2NJU3VnZ2VzdGlvblR5cGUuZW1haWw6XG4gICAgICAgICAgICAgICAgaWYgKCdlbWFpbCcgaW4gc3VnZ2VzdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2wuY29udHJvbD8ucGF0Y2hWYWx1ZShzdWdnZXN0aW9uLmVtYWlsLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmhvc3Q/LmhhbmRsZU9wdGlvbikge1xuICAgICAgICAgICAgLy8g0JTRkdGA0LPQsNC10Lwg0LLQvdGD0YLRgNC10L3QvdC40Lkg0L7QsdGA0LDQsdC+0YLRh9C40Log0LLRi9Cx0L7RgNCwINGN0LvQtdC80LXQvdGC0LAg0LLRi9C/0LDQtNCw0Y7RidC10LPQviDRgdC/0LjRgdC60LAg0LTQu9GPINGA0LXRiNC10L3QuNGPINC/0YDQvtCx0LvQtdC80Ysg0LfQsNC60YDRi9GC0LjRjyDQstGL0L/QsNC00LDRjtGJ0LXQs9C+INGB0L/QuNGB0LrQsCDQv9C+0LTRgdC60LDQt9C60LguXG4gICAgICAgICAgICB0aGlzLmhvc3QuaGFuZGxlT3B0aW9uKHRoaXMuY29udHJvbC52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RlZENsaWNrLmVtaXQoc3VnZ2VzdGlvbik7XG4gICAgfVxufVxuIiwiPHR1aS1sb2FkZXJcbiAgICBzaXplPVwibVwiXG4gICAgW292ZXJsYXldPVwidHJ1ZVwiXG4gICAgW3Nob3dMb2FkZXJdPVwiISEobG9hZGluZyQgfCBhc3luYylcIlxuPlxuICAgIDx0dWktZGF0YS1saXN0ICp0dWlMZXQ9XCJzdWdnZXN0aW9ucyQgfCBhc3luYyBhcyBvcHRpb25zXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiXG4gICAgICAgICAgICB0dWlPcHRpb25cbiAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdGVkKG9wdGlvbilcIlxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4LWNvbCAhaXRlbXMtc3RhcnRcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICp0dWlMZXQ9XCIkYW55KG9wdGlvbikgYXMgb3B0aW9uXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidHlwZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJzdWdnZXN0aW9uVHlwZS5maW9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10dWktbGlua1wiPnt7IG9wdGlvbi5maW8gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJzdWdnZXN0aW9uVHlwZS5vcmdhbml6YXRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10dWktbGlua1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG9wdGlvbi5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC0yIHRleHQtdHVpLXRleHQtMDJcIj7QuNC90L06IHt7IG9wdGlvbi5pbm4gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHVpLXRleHQtMDJcIj57eyBvcHRpb24/LmxlZ2FsQWRkcmVzcyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInN1Z2dlc3Rpb25UeXBlLmJhbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10dWktbGlua1wiPnt7IG9wdGlvbi5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXR1aS10ZXh0LTAyXCI+e3sgb3B0aW9uLmJpYyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInN1Z2dlc3Rpb25UeXBlLmVtYWlsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHVpLWxpbmtcIj57eyBvcHRpb24uZW1haWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJzdWdnZXN0aW9uVHlwZS5hZGRyZXNzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHVpLWxpbmtcIj57eyBvcHRpb24uYWRkcmVzc1N0cmluZyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC90dWktZGF0YS1saXN0PlxuPC90dWktbG9hZGVyPlxuIl19
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc3VnZ2VzdGlvbi1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZm9ybS1maWVsZHMvc3VnZ2VzdGlvbi1maWVsZC9zYy1zdWdnZXN0aW9uLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9mb3JtLWZpZWxkcy9zdWdnZXN0aW9uLWZpZWxkL3NjLXN1Z2dlc3Rpb24tZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSSxPQUFPLEVBQWEsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGlCQUFpQixFQUFxQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3pILE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsa0JBQWtCLEVBQW1CLE1BQU0sZ0JBQWdCLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBSXRIOztHQUVHO0FBTUgsTUFBTSxPQUFPLDBCQUEwQjtJQXdDbkM7Ozs7O09BS0c7SUFDSCxZQUdvQixPQUFrQixFQUNqQixpQkFBc0M7UUFEdkMsWUFBTyxH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QztnQkFDTixDQUFDO2dCQUNELE1BQU07WUFDVixLQUFLLGlCQUFpQixDQUFDLEtBQUs7Z0JBQ3hCLElBQUksT0FBTyxJQUFJLFVBQVUsRUFBRSxDQUFDO29CQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUM3RSxDQUFDO2dCQUNELE1BQU07WUFDVjtnQkFDSSxNQUFNO1FBQ2QsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQztZQUMxQiwrSEFBK0g7WUFDL0gsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEMsQ0FBQzs4R0FoSlEsMEJBQTBCLGtCQWdEdkIsU0FBUztrR0FoRFosMEJBQTBCLGtJQ2xCdkMsNjJEQXVDQTs7MkZEckJhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDSSxxQkFBcUIsbUJBRWQsdUJBQXVCLENBQUMsTUFBTTs7MEJBaUQxQyxRQUFROzswQkFDUixNQUFNOzJCQUFDLFNBQVM7MkVBM0NkLElBQUk7c0JBRFYsS0FBSztnQkFPQyxhQUFhO3NCQURuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFNraXBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNDX01JTl9MRU5HVEhfU0VBUkNIX1RFUk0sIFNjSVN1Z2dlc3Rpb25UeXBlLCBTY1N1Z2dlc3Rpb24sIFNjU3VnZ2VzdGlvblNlcnZpY2UgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IHR1aUNvbnRyb2xWYWx1ZSwgdHVpSXNGYWxzeSwgdHVpSXNQcmVzZW50LCB0dWlNYXJrQ29udHJvbEFzVG91Y2hlZEFuZFZhbGlkYXRlIH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgeyBUVUlfREFUQV9MSVNUX0hPU1QsIFR1aURhdGFMaXN0SG9zdCB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIG9mLCBzaGFyZSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQXBpRXJyb3JSZXNwb25zZSB9IGZyb20gJy4uLy4uL2F1dGgvaW50ZXJmYWNlcy9hcGktZXJyb3ItcmVzcG9uc2UnO1xuXG4vKipcbiAqINCa0L7QvNC/0L7QvdC10L3RgiDQv9C+0LTRgdC60LDQt9C+0Log0LTQu9GPINC/0L7Qu9GPINCy0LLQvtC00LAuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2Mtc3VnZ2VzdGlvbi1maWVsZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLXN1Z2dlc3Rpb24tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY1N1Z2dlc3Rpb25GaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqXG4gICAgICog0KLQuNC/INC/0L7QtNGB0LrQsNC30L7Qui5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0eXBlOiBTY0lTdWdnZXN0aW9uVHlwZSA9IFNjSVN1Z2dlc3Rpb25UeXBlLmZpbztcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INCy0YvQsdC+0YDQsCDRgNC10LfRg9C70YzRgtCw0YLQsCDQv9C+0LTRgdC60LDQt9C60LguXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHNlbGVjdGVkQ2xpY2s6IEV2ZW50RW1pdHRlcjxTY1N1Z2dlc3Rpb24+ID0gbmV3IEV2ZW50RW1pdHRlcjxTY1N1Z2dlc3Rpb24+KCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0L/QvtC00YHQutCw0LfQvtC6LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdWdnZXN0aW9ucyQ/OiBPYnNlcnZhYmxlPFNjU3VnZ2VzdGlvbltdIHwgbnVsbD47XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YHQvtGB0YLQvtGP0L3QuNC1INC30LDQv9GA0L7RgdCwINC/0L7QtNGB0LrQsNC30L7Qui5cbiAgICAgKi9cbiAgICBwdWJsaWMgbG9hZGluZyQ/OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICAgLyoqXG4gICAgICog0J/QtdGA0LXRh9C40YHQu9C10L3QuNC1INGC0LjQv9C+0LIg0L/QvtC00YHQutCw0LfQvtC6LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBzdWdnZXN0aW9uVHlwZTogdHlwZW9mIFNjSVN1Z2dlc3Rpb25UeXBlID0gU2NJU3VnZ2VzdGlvblR5cGU7XG5cbiAgICAvKipcbiAgICAgKiDQmtC+0LzQv9C+0L3QtdC90YIg0L7QsdGR0YDRgtC60LAg0LLRi9C/0LDQtNCw0Y7RidC10LPQviDRgdC/0LjRgdC60LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBob3N0OiBUdWlEYXRhTGlzdEhvc3Q8dW5rbm93bj4gfCBudWxsID0gaW5qZWN0PFR1aURhdGFMaXN0SG9zdDx1bmtub3duPj4oVFVJX0RBVEFfTElTVF9IT1NULCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICog0JzQuNC90LjQvNCw0LvRjNC90LDRjyDQtNC70LjQvdCwINC/0L7QuNGB0LrQvtCy0L7Qs9C+INC30LDQv9GA0L7RgdCwINC00LvRjyDQv9C+0LvRg9GH0LXQvdC40Y8g0LTQsNC90L3Ri9GFLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbWluTGVuZ3RoU2VhcmNoVGVybTogbnVtYmVyID0gaW5qZWN0KFNDX01JTl9MRU5HVEhfU0VBUkNIX1RFUk0pO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY1N1Z2dlc3Rpb25GaWVsZENvbXBvbmVudH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29udHJvbCDQmtC+0L3RgtGA0L7QuyDQv9C+0LvRjyDQstCy0L7QtNCwLlxuICAgICAqIEBwYXJhbSBzdWdnZXN0aW9uU2VydmljZSDQodC10YDQstC40YEg0YDQsNCx0L7RgtGLINGBIEFQSSDQv9C+0LTRgdC60LDQt9C+0LouXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBAU2tpcFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGNvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzdWdnZXN0aW9uU2VydmljZTogU2NTdWdnZXN0aW9uU2VydmljZVxuICAgICkge31cblxuICAgIC8qKiBAaW5oZXJpdERvYyAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCQgPSB0dWlDb250cm9sVmFsdWU8c3RyaW5nIHwgbnVsbD4odGhpcy5jb250cm9sKS5waXBlKFxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDUwMCksXG4gICAgICAgICAgICBmaWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgICAgIG1hcCgodGVybSkgPT4gdGVybS50cmltKCkpLFxuICAgICAgICAgICAgZmlsdGVyKCh0ZXJtKSA9PiB0ZXJtLmxlbmd0aCA+PSB0aGlzLm1pbkxlbmd0aFNlYXJjaFRlcm0pLFxuICAgICAgICAgICAgc3dpdGNoTWFwKCh0ZXJtOiBzdHJpbmcpID0+IHRoaXMuc3VnZ2VzdGlvblNlcnZpY2UuZ2V0RGF0YTxTY1N1Z2dlc3Rpb24+KHRlcm0sIHRoaXMudHlwZSkucGlwZShzdGFydFdpdGgobnVsbCkpKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3JSZXNwb25zZSA9IGVycm9yLmVycm9yIGFzIEFwaUVycm9yUmVzcG9uc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY29udHJvbC5jb250cm9sKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0dWlNYXJrQ29udHJvbEFzVG91Y2hlZEFuZFZhbGlkYXRlKHRoaXMuY29udHJvbC5jb250cm9sKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2wuc2V0RXJyb3JzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJSZXNwb25zZTogW2Vycm9yUmVzcG9uc2UubWVzc2FnZSB8fCAn0J7RiNC40LHQutCwINGB0LXRgNCy0LXRgNCwOiDQv9C+0LbQsNC70YPQudGB0YLQsCwg0L/QtdGA0LXQt9Cw0LPRgNGD0LfQuNGC0LUg0YHRgtGA0LDQvdC40YbRgyDQuC/QuNC70Lgg0LLRi9C/0L7Qu9C90LjRgtC1INC30LDQv9GA0L7RgSDQv9C+0LfQttC1LiddLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBvZihbXSkpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5zdWdnZXN0aW9ucyQgPSByZXF1ZXN0JC5waXBlKGZpbHRlcih0dWlJc1ByZXNlbnQpLCBzdGFydFdpdGgobnVsbCkpO1xuICAgICAgICB0aGlzLmxvYWRpbmckID0gcmVxdWVzdCQucGlwZShtYXAodHVpSXNGYWxzeSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCX0LDQv9C+0LvQvdC10L3QuNC1INC/0L7Qu9C10Lkg0L7RgdC90L7QstC1INCy0YvQsdGA0LDQvdC90L7QuSDQv9C+0LTRgdC60LDQt9C60LguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3VnZ2VzdGlvbiDQntCx0YrQtdC60YIg0L/QvtC00YHQutCw0LfQutC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBvblNlbGVjdGVkKHN1Z2dlc3Rpb246IFNjU3VnZ2VzdGlvbik6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBTY0lTdWdnZXN0aW9uVHlwZS5maW86XG4gICAgICAgICAgICAgICAgaWYgKCdmaW8nIGluIHN1Z2dlc3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2w/LnBhdGNoVmFsdWUoc3VnZ2VzdGlvbi5maW8sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFNjSVN1Z2dlc3Rpb25UeXBlLmFkZHJlc3M6XG4gICAgICAgICAgICAgICAgaWYgKCdhZGRyZXNzU3RyaW5nJyBpbiBzdWdnZXN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbC5jb250cm9sPy5wYXRjaFZhbHVlKHN1Z2dlc3Rpb24uYWRkcmVzc1N0cmluZywgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgU2NJU3VnZ2VzdGlvblR5cGUuYmFuazpcbiAgICAgICAgICAgICAgICBpZiAoJ2lubicgaW4gc3VnZ2VzdGlvbiAmJiAnYmljJyBpbiBzdWdnZXN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmNvbnRyb2wuY29udHJvbD8ucGFyZW50IGFzIEZvcm1Hcm91cCkucGF0Y2hWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYW5rTmFtZTogc3VnZ2VzdGlvbi5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpYzogc3VnZ2VzdGlvbi5iaWMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ycmVzcG9uZGVudEFjY291bnQ6IHN1Z2dlc3Rpb24uY29ycmVzcG9uZGVudEFjY291bnQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBlbWl0RXZlbnQ6IGZhbHNlIH1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFNjSVN1Z2dlc3Rpb25UeXBlLm9yZ2FuaXphdGlvbjpcbiAgICAgICAgICAgICAgICBpZiAoJ2lubicgaW4gc3VnZ2VzdGlvbiAmJiAhKCdiaWMnIGluIHN1Z2dlc3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmNvbnRyb2wuY29udHJvbD8ucGFyZW50IGFzIEZvcm1Hcm91cCkucGF0Y2hWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBzdWdnZXN0aW9uLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5uOiBzdWdnZXN0aW9uLmlubixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrcHA6IHN1Z2dlc3Rpb24ua3BwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9rcG86IHN1Z2dlc3Rpb24ub2twbyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rvck5hbWU6IHN1Z2dlc3Rpb24uZGlyZWN0b3JOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yUG9zaXRpb246IHN1Z2dlc3Rpb24uZGlyZWN0b3JQb3NpdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWdhbEFkZHJlc3M6IHN1Z2dlc3Rpb24ubGVnYWxBZGRyZXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RhbEFkZHJlc3M6IHN1Z2dlc3Rpb24ucG9zdGFsQWRkcmVzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWxBZGRyZXNzOiBzdWdnZXN0aW9uLmFjdHVhbEFkZHJlc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBlbWl0RXZlbnQ6IGZhbHNlIH1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFNjSVN1Z2dlc3Rpb25UeXBlLmVtYWlsOlxuICAgICAgICAgICAgICAgIGlmICgnZW1haWwnIGluIHN1Z2dlc3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2w/LnBhdGNoVmFsdWUoc3VnZ2VzdGlvbi5lbWFpbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5ob3N0Py5oYW5kbGVPcHRpb24pIHtcbiAgICAgICAgICAgIC8vINCU0ZHRgNCz0LDQtdC8INCy0L3Rg9GC0YDQtdC90L3QuNC5INC+0LHRgNCw0LHQvtGC0YfQuNC6INCy0YvQsdC+0YDQsCDRjdC70LXQvNC10L3RgtCwINCy0YvQv9Cw0LTQsNGO0YnQtdCz0L4g0YHQv9C40YHQutCwINC00LvRjyDRgNC10YjQtdC90LjRjyDQv9GA0L7QsdC70LXQvNGLINC30LDQutGA0YvRgtC40Y8g0LLRi9C/0LDQtNCw0Y7RidC10LPQviDRgdC/0LjRgdC60LAg0L/QvtC00YHQutCw0LfQutC4LlxuICAgICAgICAgICAgdGhpcy5ob3N0LmhhbmRsZU9wdGlvbih0aGlzLmNvbnRyb2wudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDbGljay5lbWl0KHN1Z2dlc3Rpb24pO1xuICAgIH1cbn1cbiIsIjx0dWktbG9hZGVyXG4gICAgc2l6ZT1cIm1cIlxuICAgIFtvdmVybGF5XT1cInRydWVcIlxuICAgIFtzaG93TG9hZGVyXT1cIiEhKGxvYWRpbmckIHwgYXN5bmMpXCJcbj5cbiAgICA8dHVpLWRhdGEtbGlzdCAqdHVpTGV0PVwic3VnZ2VzdGlvbnMkIHwgYXN5bmMgYXMgb3B0aW9uc1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIlxuICAgICAgICAgICAgdHVpT3B0aW9uXG4gICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3RlZChvcHRpb24pXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleC1jb2wgIWl0ZW1zLXN0YXJ0XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqdHVpTGV0PVwiJGFueShvcHRpb24pIGFzIG9wdGlvblwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwic3VnZ2VzdGlvblR5cGUuZmlvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHVpLWxpbmtcIj57eyBvcHRpb24uZmlvIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwic3VnZ2VzdGlvblR5cGUub3JnYW5pemF0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHVpLWxpbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvcHRpb24ubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWwtMiB0ZXh0LXR1aS10ZXh0LTAyXCI+0LjQvdC9OiB7eyBvcHRpb24uaW5uIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXR1aS10ZXh0LTAyXCI+e3sgb3B0aW9uPy5sZWdhbEFkZHJlc3MgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJzdWdnZXN0aW9uVHlwZS5iYW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHVpLWxpbmtcIj57eyBvcHRpb24ubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10dWktdGV4dC0wMlwiPnt7IG9wdGlvbi5iaWMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJzdWdnZXN0aW9uVHlwZS5lbWFpbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXR1aS1saW5rXCI+e3sgb3B0aW9uLmVtYWlsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwic3VnZ2VzdGlvblR5cGUuYWRkcmVzc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXR1aS1saW5rXCI+e3sgb3B0aW9uLmFkZHJlc3NTdHJpbmcgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvdHVpLWRhdGEtbGlzdD5cbjwvdHVpLWxvYWRlcj5cbiJdfQ==
@@ -1,4 +1,4 @@
1
- export * from './order-item-mobile/order-item-mobile.component';
1
+ export * from './order-item-mobile/sc-order-item-mobile.component';
2
2
  export * from './sc-payment-status/sc-payment-status.component';
3
3
  export * from './sc-order.module';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvb3JkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL29yZGVyLWl0ZW0tbW9iaWxlL29yZGVyLWl0ZW0tbW9iaWxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NjLXBheW1lbnQtc3RhdHVzL3NjLXBheW1lbnQtc3RhdHVzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NjLW9yZGVyLm1vZHVsZSc7XG4iXX0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvb3JkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL29yZGVyLWl0ZW0tbW9iaWxlL3NjLW9yZGVyLWl0ZW0tbW9iaWxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NjLXBheW1lbnQtc3RhdHVzL3NjLXBheW1lbnQtc3RhdHVzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NjLW9yZGVyLm1vZHVsZSc7XG4iXX0=