@colijnit/transaction 12.1.7 → 12.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -13
- package/bundles/colijnit-transaction.umd.js +7754 -6787
- package/bundles/colijnit-transaction.umd.js.map +1 -1
- package/colijnit-transaction.d.ts +106 -58
- package/colijnit-transaction.metadata.json +1 -1
- package/esm2015/colijnit-transaction.js +107 -59
- package/esm2015/lib/assets/dictionary/text.properties.js +456 -0
- package/esm2015/lib/component/checkout/checkout-login/checkout-login.component.js +106 -0
- package/esm2015/lib/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.js +47 -0
- package/esm2015/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +275 -0
- package/esm2015/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +538 -0
- package/esm2015/lib/component/checkout/checkout-relation-suggestions-list/checkout-relation-suggestions-list.component.js +30 -0
- package/esm2015/lib/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.js +31 -0
- package/esm2015/lib/component/checkout/checkout.component.js +132 -0
- package/esm2015/lib/component/checkout/checkout.module.js +86 -0
- package/esm2015/lib/component/confirmation-dialog/confirmation-dialog.component.js +52 -0
- package/esm2015/lib/component/confirmation-dialog/confirmation-dialog.module.js +24 -0
- package/esm2015/lib/component/core/base/default-ok-cancel-buttons.component.js +41 -0
- package/esm2015/lib/component/core/base/dialog-base.component.js +6 -0
- package/esm2015/lib/component/core/base/transaction-base.component.js +94 -0
- package/esm2015/lib/component/core/core.module.js +39 -0
- package/esm2015/lib/component/core/enum/app-popup-button-type.enum.js +11 -0
- package/esm2015/lib/component/core/enum/app-popup-type.enum.js +8 -0
- package/esm2015/{app → lib}/component/core/icon/icon.component.js +3 -4
- package/esm2015/lib/component/core/image-display/image-display.component.js +29 -0
- package/esm2015/lib/component/core/relation/customer-groups.component.js +41 -0
- package/esm2015/{app → lib}/component/core/stock-status-indicator/stock-status-indicator.component.js +2 -2
- package/esm2015/lib/component/delivery-type-tile/delivery-type-tile.component.js +40 -0
- package/esm2015/lib/component/delivery-type-tile/delivery-type-tile.module.js +26 -0
- package/esm2015/lib/component/discount/discount.component.js +107 -0
- package/esm2015/lib/component/discount/discount.module.js +29 -0
- package/esm2015/lib/component/order-confirmation-grid.component/order-confirmation-grid.component.js +70 -0
- package/esm2015/lib/component/order-confirmation-grid.component/order-confirmation-grid.module.js +29 -0
- package/esm2015/lib/component/order-grid/order-grid.component.js +99 -0
- package/esm2015/lib/component/order-grid/order-grid.module.js +28 -0
- package/esm2015/lib/component/payment/payment.component.js +73 -0
- package/esm2015/lib/component/payment/payment.module.js +27 -0
- package/esm2015/lib/component/payment-tile/payment-tile.component.js +32 -0
- package/esm2015/lib/component/payment-tile/payment-tile.module.js +25 -0
- package/esm2015/lib/component/relation-address/relation-address.component.js +125 -0
- package/esm2015/lib/component/relation-address/relation-address.module.js +28 -0
- package/esm2015/lib/component/relation-address-select/relation-address-select.component.js +146 -0
- package/esm2015/lib/component/relation-address-select/relation-address-select.module.js +33 -0
- package/esm2015/lib/component/relation-address-tile/relation-address-tile.component.js +61 -0
- package/esm2015/lib/component/relation-address-tile/relation-address-tile.module.js +32 -0
- package/esm2015/lib/component/seller-information/seller-information.component.js +61 -0
- package/esm2015/lib/component/seller-information/seller-information.module.js +21 -0
- package/esm2015/lib/component/shared/transaction-article-text/transaction-article-text.component.js +118 -0
- package/esm2015/lib/component/shared/transaction-article-text/transaction-article-text.module.js +31 -0
- package/esm2015/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.component.js +129 -0
- package/esm2015/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.module.js +34 -0
- package/esm2015/lib/component/shopping-cart/shopping-cart.component.js +57 -0
- package/esm2015/lib/component/shopping-cart/shopping-cart.module.js +27 -0
- package/esm2015/lib/component/shopping-cart-preview/shopping-cart-preview.component.js +55 -0
- package/esm2015/lib/component/shopping-cart-preview/shopping-cart-preview.module.js +29 -0
- package/esm2015/lib/component/stepper/component/stepper-step.component.js +40 -0
- package/esm2015/lib/component/stepper/stepper.component.js +124 -0
- package/esm2015/lib/component/stepper/stepper.module.js +29 -0
- package/esm2015/lib/component/tile/tile.component.js +32 -0
- package/esm2015/lib/component/tile/tile.module.js +19 -0
- package/esm2015/lib/component/transaction/transaction.component.js +154 -0
- package/esm2015/lib/component/transaction/transaction.module.js +47 -0
- package/esm2015/lib/component/transaction-commit-bar/transaction-commit-bar.component.js +46 -0
- package/esm2015/lib/component/transaction-commit-bar/transaction-commit-bar.module.js +27 -0
- package/esm2015/lib/component/transaction-confirmation-history/transaction-confirmation-history.component.js +28 -0
- package/esm2015/lib/component/transaction-confirmation-history/transaction-confirmation-history.module.js +27 -0
- package/esm2015/lib/component/transaction-header/transaction-header.component.js +46 -0
- package/esm2015/lib/component/transaction-header/transaction-header.module.js +27 -0
- package/esm2015/lib/component/transaction-header-contact/transaction-header-contact.component.js +34 -0
- package/esm2015/lib/component/transaction-header-contact/transaction-header-contact.module.js +19 -0
- package/esm2015/lib/component/transaction-header-delivery/transaction-header-delivery.component.js +60 -0
- package/esm2015/lib/component/transaction-header-delivery/transaction-header-delivery.module.js +21 -0
- package/esm2015/lib/component/transaction-header-relation/transaction-header-relation.component.js +35 -0
- package/esm2015/lib/component/transaction-header-relation/transaction-header-relation.module.js +19 -0
- package/esm2015/lib/component/transaction-history-grid/transaction-history-grid.component.js +47 -0
- package/esm2015/lib/component/transaction-history-grid/transaction-history-grid.module.js +27 -0
- package/esm2015/lib/component/transaction-history-grid-status/transaction-history-grid-status.component.js +36 -0
- package/esm2015/lib/component/transaction-history-grid-status/transaction-history-grid-status.module.js +23 -0
- package/esm2015/lib/component/transaction-line/transaction-line.component.js +282 -0
- package/esm2015/lib/component/transaction-line/transaction-line.module.js +30 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-code.component.js +49 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-code.module.js +23 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date.component.js +40 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date.module.js +23 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-method.component.js +48 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-method.module.js +23 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-discount-amount.component.js +50 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-discount-amount.module.js +23 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-fields-base.component.js +22 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-line-discount.component.js +50 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-line-discount.module.js +23 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-price-list.component.js +49 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-price-list.module.js +23 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-price.component.js +49 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-price.module.js +23 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-quantity.component.js +36 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-quantity.module.js +23 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-quantum-discount.component.js +50 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-quantum-discount.module.js +23 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-reference.component.js +48 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-reference.module.js +23 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-special-discount.component.js +50 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-special-discount.module.js +23 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-vat.component.js +49 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-vat.module.js +23 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse.component.js +49 -0
- package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse.module.js +24 -0
- package/esm2015/lib/component/transaction-line-grid/transaction-line-grid.component.js +23 -0
- package/esm2015/lib/component/transaction-line-grid/transaction-line-grid.module.js +21 -0
- package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.js +91 -0
- package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.module.js +36 -0
- package/esm2015/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.component.js +134 -0
- package/esm2015/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.module.js +56 -0
- package/esm2015/lib/component/transaction-lines/transaction-lines.component.js +128 -0
- package/esm2015/lib/component/transaction-lines/transaction-lines.module.js +31 -0
- package/esm2015/lib/component/transaction-lines-grid/transaction-lines-grid.component.js +63 -0
- package/esm2015/lib/component/transaction-lines-grid/transaction-lines-grid.module.js +27 -0
- package/esm2015/lib/component/transaction-nav-bar/transaction-nav-bar-button/transaction-nav-bar-button.component.js +29 -0
- package/esm2015/lib/component/transaction-nav-bar/transaction-nav-bar.component.js +65 -0
- package/esm2015/lib/component/transaction-nav-bar/transaction-nav-bar.module.js +26 -0
- package/esm2015/lib/component/transaction-receiving-goods-details/transaction-receiving-goods-details.component.js +39 -0
- package/esm2015/lib/component/transaction-receiving-goods-details/transaction-receiving-goods-details.module.js +25 -0
- package/esm2015/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.component.js +28 -0
- package/esm2015/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.module.js +27 -0
- package/esm2015/lib/component/transaction-totals/transaction-totals.component.js +44 -0
- package/esm2015/lib/component/transaction-totals/transaction-totals.module.js +23 -0
- package/esm2015/lib/enum/content-view-mode.enum.js +10 -0
- package/esm2015/lib/enum/icon.enum.js +28 -0
- package/esm2015/lib/enum/language-code.enum.js +8 -0
- package/esm2015/lib/enum/order-discount-type.enum.js +7 -0
- package/esm2015/lib/enum/status-type.enum.js +5 -0
- package/esm2015/lib/enum/tab-category.enum.js +10 -0
- package/esm2015/lib/enum/time-size.type.js +10 -0
- package/esm2015/lib/factory/business-object-factory.js +120 -0
- package/esm2015/lib/factory/decorators/boolean.decorator.js +102 -0
- package/esm2015/lib/factory/decorators/complex-array.decorator.js +55 -0
- package/esm2015/lib/factory/decorators/complex-field.decorator.js +57 -0
- package/esm2015/lib/factory/decorators/date-field.decorator.js +36 -0
- package/esm2015/lib/factory/decorators/string-number.decorator.js +43 -0
- package/esm2015/lib/model/business-object.js +81 -0
- package/esm2015/lib/model/delivery-type.js +3 -0
- package/esm2015/lib/model/icon-svg.js +27 -0
- package/esm2015/lib/model/standard-text.js +3 -0
- package/esm2015/lib/model/text-value-container.js +3 -0
- package/esm2015/lib/pipe/append.pipe.js +17 -0
- package/esm2015/lib/pipe/co-currency.pipe.js +47 -0
- package/esm2015/lib/pipe/date-duration.pipe.js +57 -0
- package/esm2015/lib/pipe/delivery-time.pipe.js +36 -0
- package/esm2015/lib/pipe/localize.pipe.js +28 -0
- package/esm2015/lib/pipe/pipe.module.js +37 -0
- package/esm2015/lib/pipe/safe-html.pipe.js +19 -0
- package/esm2015/lib/pipe/safe-style.pipe.js +19 -0
- package/esm2015/lib/service/dialog.service.js +76 -0
- package/esm2015/lib/service/dictionary.service.js +76 -0
- package/esm2015/lib/service/icon-cache.service.js +51 -0
- package/esm2015/lib/service/ione-connector-adapter.service.js +836 -0
- package/esm2015/lib/service/options.service.js +69 -0
- package/esm2015/lib/service/pending-reason.service.js +183 -0
- package/esm2015/lib/service/transaction.service.js +679 -0
- package/esm2015/lib/utils/array-utils.js +183 -0
- package/esm2015/lib/utils/is-nill.function.js +5 -0
- package/esm2015/lib/utils/string-utils.js +64 -0
- package/esm2015/public_api.js +28 -10
- package/fesm2015/colijnit-transaction.js +7894 -6976
- package/fesm2015/colijnit-transaction.js.map +1 -1
- package/{assets → lib/assets}/dictionary/text.properties.d.ts +0 -0
- package/{app → lib}/component/checkout/checkout-login/checkout-login.component.d.ts +0 -0
- package/{app → lib}/component/checkout/checkout-login/checkout-login.component.scss +0 -0
- package/{app → lib}/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.d.ts +0 -0
- package/{app → lib}/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.scss +0 -0
- package/{app → lib}/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.d.ts +23 -36
- package/lib/component/checkout/checkout-overview-delivery-edit/style/_layout.scss +98 -0
- package/lib/component/checkout/checkout-overview-delivery-edit/style/_material-definition.scss +12 -0
- package/lib/component/checkout/checkout-overview-delivery-edit/style/_theme.scss +17 -0
- package/lib/component/checkout/checkout-overview-delivery-edit/style/material.scss +7 -0
- package/{app → lib}/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.d.ts +40 -12
- package/lib/component/checkout/checkout-overview-relation-edit/style/_layout.scss +125 -0
- package/lib/component/checkout/checkout-overview-relation-edit/style/_material-definition.scss +18 -0
- package/{app → lib}/component/checkout/checkout-overview-relation-edit/style/_theme.scss +1 -1
- package/lib/component/checkout/checkout-overview-relation-edit/style/material.scss +10 -0
- package/{app → lib}/component/checkout/checkout-relation-suggestions-list/checkout-relation-suggestions-list.component.d.ts +0 -0
- package/{app → lib}/component/checkout/checkout-relation-suggestions-list/style/_layout.scss +3 -2
- package/{app/component/checkout/checkout-overview-relation-address → lib/component/checkout/checkout-relation-suggestions-list}/style/_material-definition.scss +0 -0
- package/{app → lib}/component/checkout/checkout-relation-suggestions-list/style/_theme.scss +1 -1
- package/{app → lib}/component/checkout/checkout-relation-suggestions-list/style/material.scss +1 -1
- package/{app → lib}/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.d.ts +0 -0
- package/{app → lib}/component/checkout/checkout-relation-suggestions-list-item/style/_layout.scss +1 -1
- package/{app → lib}/component/checkout/checkout-relation-suggestions-list-item/style/_material-definition.scss +0 -0
- package/{app → lib}/component/checkout/checkout-relation-suggestions-list-item/style/_theme.scss +1 -1
- package/{app/component/core/base → lib/component/checkout/checkout-relation-suggestions-list-item}/style/material.scss +1 -1
- package/lib/component/checkout/checkout.component.d.ts +36 -0
- package/lib/component/checkout/checkout.module.d.ts +2 -0
- package/lib/component/checkout/style/_layout.scss +31 -0
- package/lib/component/checkout/style/_material-definition.scss +5 -0
- package/lib/component/checkout/style/_theme.scss +8 -0
- package/lib/component/checkout/style/material.scss +10 -0
- package/lib/component/confirmation-dialog/confirmation-dialog.component.d.ts +12 -0
- package/lib/component/confirmation-dialog/confirmation-dialog.module.d.ts +2 -0
- package/lib/component/confirmation-dialog/style/_layout.scss +22 -0
- package/lib/component/confirmation-dialog/style/_material-definition.scss +2 -0
- package/lib/component/confirmation-dialog/style/_theme.scss +6 -0
- package/lib/component/confirmation-dialog/style/material.scss +5 -0
- package/{app → lib}/component/core/base/default-ok-cancel-buttons.component.d.ts +0 -0
- package/lib/component/core/base/dialog-base.component.d.ts +4 -0
- package/{app → lib}/component/core/base/style/_layout.scss +1 -1
- package/{app/component/checkout/checkout-relation-suggestions-list → lib/component/core/base}/style/_material-definition.scss +0 -0
- package/{app → lib}/component/core/base/style/_theme.scss +1 -1
- package/{app/component/checkout/checkout-overview-relation-address → lib/component/core/base}/style/material.scss +1 -1
- package/{app → lib}/component/core/base/transaction-base.component.d.ts +7 -23
- package/{app → lib}/component/core/characteristic-answer/characteristic-answer.component.scss +3 -1
- package/{app → lib}/component/core/core.module.d.ts +0 -0
- package/lib/component/core/enum/app-popup-button-type.enum.d.ts +9 -0
- package/lib/component/core/enum/app-popup-type.enum.d.ts +6 -0
- package/{app → lib}/component/core/icon/icon.component.d.ts +3 -2
- package/{app → lib}/component/core/icon/icon.component.scss +3 -1
- package/lib/component/core/image-display/image-display.component.d.ts +5 -0
- package/lib/component/core/image-display/style/_layout.scss +55 -0
- package/lib/component/core/image-display/style/_material-definition.scss +4 -0
- package/{app → lib}/component/core/image-display/style/_theme.scss +1 -1
- package/{app → lib}/component/core/image-display/style/material.scss +1 -1
- package/{app → lib}/component/core/relation/customer-groups.component.d.ts +0 -0
- package/lib/component/core/relation/relation-customer-groups.component.scss +6 -0
- package/{app → lib}/component/core/stock-status-indicator/stock-status-indicator.component.d.ts +0 -0
- package/{app → lib}/component/core/stock-status-indicator/stock-status-indicator.component.scss +3 -1
- package/lib/component/delivery-type-tile/delivery-type-tile.component.d.ts +10 -0
- package/lib/component/delivery-type-tile/delivery-type-tile.module.d.ts +2 -0
- package/lib/component/delivery-type-tile/style/_layout.scss +35 -0
- package/lib/component/delivery-type-tile/style/_material-definition.scss +16 -0
- package/lib/component/delivery-type-tile/style/_theme.scss +6 -0
- package/lib/component/delivery-type-tile/style/material.scss +5 -0
- package/lib/component/discount/discount.component.d.ts +19 -0
- package/lib/component/discount/discount.module.d.ts +2 -0
- package/{app/component/checkout/checkout-overview-block/checkout-overview-block.component.scss → lib/component/discount/style/_layout.scss} +0 -0
- package/{app/component/core/base → lib/component/discount}/style/_material-definition.scss +0 -0
- package/{app/component/checkout/checkout-overview/checkout-overview.component.scss → lib/component/discount/style/_theme.scss} +0 -0
- package/{app/component/core/image-display/style/_material-definition.scss → lib/component/discount/style/material.scss} +0 -0
- package/lib/component/order-confirmation-create/style/_layout.scss +5 -0
- package/lib/component/order-confirmation-create/style/_material-definition.scss +1 -0
- package/lib/component/order-confirmation-create/style/_theme.scss +5 -0
- package/{app/component/checkout/checkout-relation-suggestions-list-item → lib/component/order-confirmation-create}/style/material.scss +1 -1
- package/lib/component/order-confirmation-grid.component/order-confirmation-grid.component.d.ts +15 -0
- package/lib/component/order-confirmation-grid.component/order-confirmation-grid.module.d.ts +2 -0
- package/lib/component/order-confirmation-grid.component/style/_layout.scss +5 -0
- package/lib/component/order-confirmation-grid.component/style/_material-definition.scss +1 -0
- package/lib/component/order-confirmation-grid.component/style/_theme.scss +5 -0
- package/lib/component/order-confirmation-grid.component/style/material.scss +4 -0
- package/lib/component/order-grid/order-grid.component.d.ts +23 -0
- package/lib/component/order-grid/order-grid.module.d.ts +2 -0
- package/lib/component/order-grid/style/_layout.scss +21 -0
- package/lib/component/order-grid/style/_material-definition.scss +2 -0
- package/lib/component/order-grid/style/_theme.scss +6 -0
- package/lib/component/order-grid/style/material.scss +4 -0
- package/lib/component/payment/payment.component.d.ts +18 -0
- package/lib/component/payment/payment.module.d.ts +2 -0
- package/lib/component/payment/style/_layout.scss +54 -0
- package/lib/component/payment/style/_material-definition.scss +17 -0
- package/lib/component/payment/style/_theme.scss +16 -0
- package/lib/component/payment/style/material.scss +5 -0
- package/lib/component/payment-tile/payment-tile.component.d.ts +9 -0
- package/lib/component/payment-tile/payment-tile.module.d.ts +2 -0
- package/lib/component/payment-tile/style/_layout.scss +22 -0
- package/{app/component/core/no-image-display/no-image-display.component.scss → lib/component/payment-tile/style/_material-definition.scss} +0 -0
- package/lib/component/payment-tile/style/_theme.scss +6 -0
- package/lib/component/payment-tile/style/material.scss +5 -0
- package/lib/component/relation-address/relation-address.component.d.ts +28 -0
- package/lib/component/relation-address/relation-address.module.d.ts +2 -0
- package/lib/component/relation-address/style/_layout.scss +25 -0
- package/lib/component/relation-address/style/_material-definition.scss +3 -0
- package/lib/component/relation-address/style/_theme.scss +7 -0
- package/lib/component/relation-address/style/material.scss +5 -0
- package/lib/component/relation-address-select/relation-address-select.component.d.ts +33 -0
- package/lib/component/relation-address-select/relation-address-select.module.d.ts +2 -0
- package/lib/component/relation-address-select/style/_layout.scss +85 -0
- package/lib/component/relation-address-select/style/_material-definition.scss +4 -0
- package/lib/component/relation-address-select/style/_theme.scss +6 -0
- package/lib/component/relation-address-select/style/material.scss +5 -0
- package/lib/component/relation-address-tile/relation-address-tile.component.d.ts +14 -0
- package/lib/component/relation-address-tile/relation-address-tile.module.d.ts +2 -0
- package/lib/component/relation-address-tile/style/_layout.scss +42 -0
- package/lib/component/relation-address-tile/style/_material-definition.scss +16 -0
- package/lib/component/relation-address-tile/style/_theme.scss +21 -0
- package/lib/component/relation-address-tile/style/material.scss +5 -0
- package/lib/component/seller-information/seller-information.component.d.ts +13 -0
- package/lib/component/seller-information/seller-information.module.d.ts +2 -0
- package/lib/component/seller-information/style/_layout.scss +21 -0
- package/lib/component/seller-information/style/_material-definition.scss +2 -0
- package/lib/component/seller-information/style/_theme.scss +7 -0
- package/lib/component/seller-information/style/material.scss +4 -0
- package/lib/component/shared/transaction-article-text/style/_layout.scss +42 -0
- package/lib/component/shared/transaction-article-text/style/_material-definition.scss +7 -0
- package/lib/component/shared/transaction-article-text/style/_theme.scss +11 -0
- package/lib/component/shared/transaction-article-text/style/material.scss +5 -0
- package/lib/component/shared/transaction-article-text/transaction-article-text.component.d.ts +31 -0
- package/lib/component/shared/transaction-article-text/transaction-article-text.module.d.ts +2 -0
- package/lib/component/shared/transaction-article-text-overview/style/_layout.scss +56 -0
- package/lib/component/shared/transaction-article-text-overview/style/_material-definition.scss +9 -0
- package/lib/component/shared/transaction-article-text-overview/style/_theme.scss +9 -0
- package/lib/component/shared/transaction-article-text-overview/style/material.scss +4 -0
- package/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.component.d.ts +30 -0
- package/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.module.d.ts +2 -0
- package/lib/component/shopping-cart/shopping-cart.component.d.ts +15 -0
- package/lib/component/shopping-cart/shopping-cart.module.d.ts +2 -0
- package/lib/component/shopping-cart/style/_layout.scss +33 -0
- package/lib/component/shopping-cart/style/_material-definition.scss +10 -0
- package/lib/component/shopping-cart/style/_theme.scss +14 -0
- package/lib/component/shopping-cart/style/material.scss +4 -0
- package/{app/component/shopping-cart → lib/component/shopping-cart-OLD}/shopping-cart-manager/shopping-cart-manager.component.scss +4 -2
- package/lib/component/shopping-cart-preview/shopping-cart-preview.component.d.ts +13 -0
- package/lib/component/shopping-cart-preview/shopping-cart-preview.module.d.ts +2 -0
- package/lib/component/shopping-cart-preview/style/_layout.scss +48 -0
- package/lib/component/shopping-cart-preview/style/_material-definition.scss +20 -0
- package/lib/component/shopping-cart-preview/style/_theme.scss +17 -0
- package/lib/component/shopping-cart-preview/style/material.scss +4 -0
- package/lib/component/stepper/component/stepper-step.component.d.ts +12 -0
- package/lib/component/stepper/stepper.component.d.ts +35 -0
- package/lib/component/stepper/stepper.module.d.ts +2 -0
- package/lib/component/stepper/style/_layout.scss +107 -0
- package/lib/component/stepper/style/_material-definition.scss +18 -0
- package/lib/component/stepper/style/_theme.scss +43 -0
- package/lib/component/stepper/style/material.scss +4 -0
- package/lib/component/tile/style/_layout.scss +36 -0
- package/lib/component/tile/style/_material-definition.scss +16 -0
- package/lib/component/tile/style/_theme.scss +36 -0
- package/lib/component/tile/style/material.scss +4 -0
- package/lib/component/tile/tile.component.d.ts +6 -0
- package/lib/component/tile/tile.module.d.ts +2 -0
- package/lib/component/transaction/style/_layout.scss +31 -0
- package/lib/component/transaction/style/_material-definition.scss +7 -0
- package/lib/component/transaction/style/_theme.scss +24 -0
- package/lib/component/transaction/style/material.scss +11 -0
- package/lib/component/transaction/transaction.component.d.ts +39 -0
- package/lib/component/transaction/transaction.module.d.ts +2 -0
- package/lib/component/transaction-commit-bar/style/_layout.scss +16 -0
- package/lib/component/transaction-commit-bar/style/_material-definition.scss +1 -0
- package/lib/component/transaction-commit-bar/style/_theme.scss +7 -0
- package/lib/component/transaction-commit-bar/style/material.scss +4 -0
- package/lib/component/transaction-commit-bar/transaction-commit-bar.component.d.ts +11 -0
- package/lib/component/transaction-commit-bar/transaction-commit-bar.module.d.ts +2 -0
- package/lib/component/transaction-confirmation-history/style/_layout.scss +7 -0
- package/lib/component/transaction-confirmation-history/style/_material-definition.scss +1 -0
- package/lib/component/transaction-confirmation-history/style/_theme.scss +7 -0
- package/lib/component/transaction-confirmation-history/style/material.scss +4 -0
- package/lib/component/transaction-confirmation-history/transaction-confirmation-history.component.d.ts +5 -0
- package/lib/component/transaction-confirmation-history/transaction-confirmation-history.module.d.ts +2 -0
- package/lib/component/transaction-header/style/_layout.scss +38 -0
- package/lib/component/transaction-header/style/_material-definition.scss +8 -0
- package/lib/component/transaction-header/style/_theme.scss +11 -0
- package/lib/component/transaction-header/style/material.scss +7 -0
- package/lib/component/transaction-header/transaction-header.component.d.ts +12 -0
- package/lib/component/transaction-header/transaction-header.module.d.ts +2 -0
- package/lib/component/transaction-header-contact/style/_layout.scss +25 -0
- package/lib/component/transaction-header-contact/style/_material-definition.scss +7 -0
- package/lib/component/transaction-header-contact/style/_theme.scss +11 -0
- package/lib/component/transaction-header-contact/style/material.scss +4 -0
- package/lib/component/transaction-header-contact/transaction-header-contact.component.d.ts +4 -0
- package/lib/component/transaction-header-contact/transaction-header-contact.module.d.ts +2 -0
- package/lib/component/transaction-header-delivery/style/_layout.scss +54 -0
- package/lib/component/transaction-header-delivery/style/_material-definition.scss +12 -0
- package/lib/component/transaction-header-delivery/style/_theme.scss +24 -0
- package/lib/component/transaction-header-delivery/style/material.scss +4 -0
- package/lib/component/transaction-header-delivery/transaction-header-delivery.component.d.ts +13 -0
- package/lib/component/transaction-header-delivery/transaction-header-delivery.module.d.ts +2 -0
- package/lib/component/transaction-header-relation/style/_layout.scss +25 -0
- package/lib/component/transaction-header-relation/style/_material-definition.scss +7 -0
- package/lib/component/transaction-header-relation/style/_theme.scss +11 -0
- package/lib/component/transaction-header-relation/style/material.scss +4 -0
- package/lib/component/transaction-header-relation/transaction-header-relation.component.d.ts +4 -0
- package/lib/component/transaction-header-relation/transaction-header-relation.module.d.ts +2 -0
- package/lib/component/transaction-history-grid/style/_layout.scss +7 -0
- package/{app/component/service-order/transaction-edit-article-text/transaction-edit-article-text.component.scss → lib/component/transaction-history-grid/style/_material-definition.scss} +0 -0
- package/lib/component/transaction-history-grid/style/_theme.scss +7 -0
- package/lib/component/transaction-history-grid/style/material.scss +4 -0
- package/lib/component/transaction-history-grid/transaction-history-grid.component.d.ts +14 -0
- package/lib/component/transaction-history-grid/transaction-history-grid.module.d.ts +2 -0
- package/lib/component/transaction-history-grid-status/style/_layout.scss +28 -0
- package/{app/component/service-order/transaction-article-text-overview/transaction-article-text-overview.component.scss → lib/component/transaction-history-grid-status/style/_material-definition.scss} +0 -0
- package/lib/component/transaction-history-grid-status/style/_theme.scss +7 -0
- package/lib/component/transaction-history-grid-status/style/material.scss +4 -0
- package/lib/component/transaction-history-grid-status/transaction-history-grid-status.component.d.ts +9 -0
- package/lib/component/transaction-history-grid-status/transaction-history-grid-status.module.d.ts +2 -0
- package/lib/component/transaction-line/style/_layout.scss +143 -0
- package/lib/component/transaction-line/style/_material-definition.scss +29 -0
- package/lib/component/transaction-line/style/_theme.scss +41 -0
- package/lib/component/transaction-line/style/material.scss +9 -0
- package/lib/component/transaction-line/transaction-line.component.d.ts +52 -0
- package/lib/component/transaction-line/transaction-line.module.d.ts +2 -0
- package/lib/component/transaction-line-fields/transaction-line-commission-code.component.d.ts +12 -0
- package/lib/component/transaction-line-fields/transaction-line-commission-code.module.d.ts +2 -0
- package/lib/component/transaction-line-fields/transaction-line-delivery-date.component.d.ts +7 -0
- package/lib/component/transaction-line-fields/transaction-line-delivery-date.module.d.ts +2 -0
- package/lib/component/transaction-line-fields/transaction-line-delivery-method.component.d.ts +12 -0
- package/lib/component/transaction-line-fields/transaction-line-delivery-method.module.d.ts +2 -0
- package/lib/component/transaction-line-fields/transaction-line-discount-amount.component.d.ts +10 -0
- package/lib/component/transaction-line-fields/transaction-line-discount-amount.module.d.ts +2 -0
- package/lib/component/transaction-line-fields/transaction-line-fields-base.component.d.ts +6 -0
- package/lib/component/transaction-line-fields/transaction-line-line-discount.component.d.ts +10 -0
- package/lib/component/transaction-line-fields/transaction-line-line-discount.module.d.ts +2 -0
- package/lib/component/transaction-line-fields/transaction-line-price-list.component.d.ts +12 -0
- package/lib/component/transaction-line-fields/transaction-line-price-list.module.d.ts +2 -0
- package/lib/component/transaction-line-fields/transaction-line-price.component.d.ts +10 -0
- package/lib/component/transaction-line-fields/transaction-line-price.module.d.ts +2 -0
- package/lib/component/transaction-line-fields/transaction-line-quantity.component.d.ts +7 -0
- package/lib/component/transaction-line-fields/transaction-line-quantity.module.d.ts +2 -0
- package/lib/component/transaction-line-fields/transaction-line-quantum-discount.component.d.ts +10 -0
- package/lib/component/transaction-line-fields/transaction-line-quantum-discount.module.d.ts +2 -0
- package/lib/component/transaction-line-fields/transaction-line-reference.component.d.ts +10 -0
- package/lib/component/transaction-line-fields/transaction-line-reference.module.d.ts +2 -0
- package/lib/component/transaction-line-fields/transaction-line-special-discount.component.d.ts +10 -0
- package/lib/component/transaction-line-fields/transaction-line-special-discount.module.d.ts +2 -0
- package/lib/component/transaction-line-fields/transaction-line-vat.component.d.ts +12 -0
- package/lib/component/transaction-line-fields/transaction-line-vat.module.d.ts +2 -0
- package/lib/component/transaction-line-fields/transaction-line-warehouse.component.d.ts +12 -0
- package/lib/component/transaction-line-fields/transaction-line-warehouse.module.d.ts +2 -0
- package/lib/component/transaction-line-grid/style/_layout.scss +6 -0
- package/{app/component/service-order/transaction-sidebar/transaction-line-accordion.component.scss → lib/component/transaction-line-grid/style/_material-definition.scss} +0 -0
- package/lib/component/transaction-line-grid/style/_theme.scss +6 -0
- package/lib/component/transaction-line-grid/style/material.scss +4 -0
- package/lib/component/transaction-line-grid/transaction-line-grid.component.d.ts +5 -0
- package/lib/component/transaction-line-grid/transaction-line-grid.module.d.ts +2 -0
- package/lib/component/transaction-line-side-panel/style/_layout.scss +64 -0
- package/lib/component/transaction-line-side-panel/style/_material-definition.scss +8 -0
- package/lib/component/transaction-line-side-panel/style/_theme.scss +9 -0
- package/lib/component/transaction-line-side-panel/style/material.scss +9 -0
- package/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.d.ts +18 -0
- package/lib/component/transaction-line-side-panel/transaction-line-side-panel.module.d.ts +2 -0
- package/lib/component/transaction-line-side-panel-default/style/_layout.scss +29 -0
- package/lib/component/transaction-line-side-panel-default/style/_material-definition.scss +10 -0
- package/lib/component/transaction-line-side-panel-default/style/_theme.scss +7 -0
- package/lib/component/transaction-line-side-panel-default/style/material.scss +4 -0
- package/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.component.d.ts +16 -0
- package/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.module.d.ts +2 -0
- package/lib/component/transaction-lines/style/_layout.scss +33 -0
- package/lib/component/transaction-lines/style/_material-definition.scss +3 -0
- package/lib/component/transaction-lines/style/_theme.scss +19 -0
- package/lib/component/transaction-lines/style/material.scss +7 -0
- package/lib/component/transaction-lines/transaction-lines.component.d.ts +37 -0
- package/lib/component/transaction-lines/transaction-lines.module.d.ts +2 -0
- package/lib/component/transaction-lines-grid/style/_layout.scss +37 -0
- package/lib/component/transaction-lines-grid/style/_material-definition.scss +19 -0
- package/lib/component/transaction-lines-grid/style/_theme.scss +15 -0
- package/lib/component/transaction-lines-grid/style/material.scss +5 -0
- package/lib/component/transaction-lines-grid/transaction-lines-grid.component.d.ts +20 -0
- package/lib/component/transaction-lines-grid/transaction-lines-grid.module.d.ts +2 -0
- package/lib/component/transaction-nav-bar/style/_layout.scss +13 -0
- package/lib/component/transaction-nav-bar/style/_material-definition.scss +1 -0
- package/lib/component/transaction-nav-bar/style/_theme.scss +7 -0
- package/lib/component/transaction-nav-bar/style/material.scss +4 -0
- package/lib/component/transaction-nav-bar/transaction-nav-bar-button/transaction-nav-bar-button.component.d.ts +14 -0
- package/lib/component/transaction-nav-bar/transaction-nav-bar-button/transaction-nav-bar-button.component.scss +23 -0
- package/lib/component/transaction-nav-bar/transaction-nav-bar.component.d.ts +18 -0
- package/lib/component/transaction-nav-bar/transaction-nav-bar.module.d.ts +2 -0
- package/lib/component/transaction-receiving-goods-details/style/_layout.scss +38 -0
- package/lib/component/transaction-receiving-goods-details/style/_material-definition.scss +1 -0
- package/lib/component/transaction-receiving-goods-details/style/_theme.scss +7 -0
- package/lib/component/transaction-receiving-goods-details/style/material.scss +4 -0
- package/lib/component/transaction-receiving-goods-details/transaction-receiving-goods-details.component.d.ts +6 -0
- package/lib/component/transaction-receiving-goods-details/transaction-receiving-goods-details.module.d.ts +2 -0
- package/lib/component/transaction-receiving-goods-history/style/_layout.scss +7 -0
- package/lib/component/transaction-receiving-goods-history/style/_material-definition.scss +1 -0
- package/lib/component/transaction-receiving-goods-history/style/_theme.scss +7 -0
- package/lib/component/transaction-receiving-goods-history/style/material.scss +4 -0
- package/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.component.d.ts +5 -0
- package/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.module.d.ts +2 -0
- package/lib/component/transaction-totals/style/_layout.scss +35 -0
- package/lib/component/transaction-totals/style/_material-definition.scss +15 -0
- package/lib/component/transaction-totals/style/_theme.scss +10 -0
- package/lib/component/transaction-totals/style/material.scss +4 -0
- package/lib/component/transaction-totals/transaction-totals.component.d.ts +9 -0
- package/lib/component/transaction-totals/transaction-totals.module.d.ts +2 -0
- package/{app → lib}/enum/content-view-mode.enum.d.ts +0 -0
- package/lib/enum/icon.enum.d.ts +26 -0
- package/{app → lib}/enum/language-code.enum.d.ts +0 -0
- package/{app → lib}/enum/order-discount-type.enum.d.ts +0 -0
- package/lib/enum/status-type.enum.d.ts +3 -0
- package/lib/enum/tab-category.enum.d.ts +8 -0
- package/{app → lib}/enum/time-size.type.d.ts +0 -0
- package/{factory → lib/factory}/business-object-factory.d.ts +1 -1
- package/{factory → lib/factory}/decorators/boolean.decorator.d.ts +0 -0
- package/{factory → lib/factory}/decorators/complex-array.decorator.d.ts +0 -0
- package/{factory → lib/factory}/decorators/complex-field.decorator.d.ts +0 -0
- package/{factory → lib/factory}/decorators/date-field.decorator.d.ts +0 -0
- package/{factory → lib/factory}/decorators/string-number.decorator.d.ts +0 -0
- package/{app → lib}/model/business-object.d.ts +0 -0
- package/lib/model/delivery-type.d.ts +7 -0
- package/lib/model/icon-svg.d.ts +4 -0
- package/{app → lib}/model/standard-text.d.ts +0 -0
- package/{app → lib}/model/text-value-container.d.ts +0 -0
- package/{app → lib}/pipe/append.pipe.d.ts +0 -0
- package/{app → lib}/pipe/co-currency.pipe.d.ts +0 -0
- package/{app → lib}/pipe/date-duration.pipe.d.ts +0 -0
- package/{app → lib}/pipe/delivery-time.pipe.d.ts +0 -0
- package/{app → lib}/pipe/localize.pipe.d.ts +0 -0
- package/lib/pipe/pipe.module.d.ts +2 -0
- package/lib/pipe/safe-html.pipe.d.ts +7 -0
- package/{app/pipe/safe-style-pipe.d.ts → lib/pipe/safe-style.pipe.d.ts} +0 -0
- package/lib/service/dialog.service.d.ts +12 -0
- package/{app → lib}/service/dictionary.service.d.ts +0 -0
- package/lib/service/icon-cache.service.d.ts +18 -0
- package/{app → lib}/service/ione-connector-adapter.service.d.ts +34 -13
- package/{app → lib}/service/options.service.d.ts +3 -4
- package/lib/service/pending-reason.service.d.ts +32 -0
- package/{app → lib}/service/transaction.service.d.ts +35 -55
- package/{style → lib/style}/_mixin.scss +0 -0
- package/{style → lib/style}/_variables.scss +29 -3
- package/{utils → lib/utils}/array-utils.d.ts +0 -0
- package/{utils → lib/utils}/is-nill.function.d.ts +0 -0
- package/{app → lib}/utils/string-utils.d.ts +0 -0
- package/package.json +27 -33
- package/public_api.d.ts +27 -6
- package/app/app.component.scss +0 -39
- package/app/component/checkout/checkout/checkout.component.d.ts +0 -34
- package/app/component/checkout/checkout/checkout.component.scss +0 -137
- package/app/component/checkout/checkout-overview/checkout-overview.component.d.ts +0 -42
- package/app/component/checkout/checkout-overview-block/checkout-overview-block.component.d.ts +0 -12
- package/app/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.scss +0 -3
- package/app/component/checkout/checkout-overview-relation-address/checkout-overview-relation-address.component.d.ts +0 -23
- package/app/component/checkout/checkout-overview-relation-address/style/_layout.scss +0 -19
- package/app/component/checkout/checkout-overview-relation-address/style/_theme.scss +0 -7
- package/app/component/checkout/checkout-overview-relation-edit/style/_layout.scss +0 -92
- package/app/component/checkout/checkout-overview-relation-edit/style/_material-definition.scss +0 -15
- package/app/component/checkout/checkout-overview-relation-edit/style/material.scss +0 -5
- package/app/component/checkout/checkout-transaction/checkout-transaction.component.d.ts +0 -16
- package/app/component/checkout/checkout-transaction/checkout-transaction.component.scss +0 -11
- package/app/component/checkout/ione-checkout.component.d.ts +0 -41
- package/app/component/checkout/ione-checkout.module.d.ts +0 -2
- package/app/component/core/characteristic-answer/characteristic-answer.component.d.ts +0 -22
- package/app/component/core/directive/template-wrapper.directive.d.ts +0 -13
- package/app/component/core/image-display/image-display.component.d.ts +0 -14
- package/app/component/core/image-display/style/_layout.scss +0 -39
- package/app/component/core/no-image-display/no-image-display.component.d.ts +0 -5
- package/app/component/service-order/ione-service-order-module.d.ts +0 -2
- package/app/component/service-order/ione-service-order.component.d.ts +0 -25
- package/app/component/service-order/service-order.component.d.ts +0 -52
- package/app/component/service-order/service-order.component.scss +0 -152
- package/app/component/service-order/summary/transaction-article-summary.component.d.ts +0 -17
- package/app/component/service-order/summary/transaction-delivery-summary.component.d.ts +0 -20
- package/app/component/service-order/summary/transaction-delivery-summary.component.scss +0 -20
- package/app/component/service-order/summary/transaction-order-summary.component.d.ts +0 -16
- package/app/component/service-order/summary/transaction-payment-info.component.d.ts +0 -14
- package/app/component/service-order/summary/transaction-product-contract-summary.component.d.ts +0 -7
- package/app/component/service-order/summary/transaction-product-summary.component.d.ts +0 -15
- package/app/component/service-order/summary/transaction-service-status.component.d.ts +0 -15
- package/app/component/service-order/summary/transaction-service-summary.component.d.ts +0 -15
- package/app/component/service-order/summary/transaction-summary-block.component.d.ts +0 -16
- package/app/component/service-order/summary/transaction-summary-block.component.scss +0 -107
- package/app/component/service-order/transaction-article-text/transaction-article-text.component.d.ts +0 -33
- package/app/component/service-order/transaction-article-text/transaction-article-text.component.scss +0 -6
- package/app/component/service-order/transaction-article-text-overview/transaction-article-text-overview.component.d.ts +0 -23
- package/app/component/service-order/transaction-edit-article-text/transaction-edit-article-text.component.d.ts +0 -19
- package/app/component/service-order/transaction-header-block/transaction-header-block.component.d.ts +0 -15
- package/app/component/service-order/transaction-header-block/transaction-header-block.component.scss +0 -65
- package/app/component/service-order/transaction-manager/transaction-manager.component.d.ts +0 -64
- package/app/component/service-order/transaction-manager/transaction-manager.component.scss +0 -52
- package/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.d.ts +0 -16
- package/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.scss +0 -88
- package/app/component/service-order/transaction-order-lines/transaction-order-lines.component.d.ts +0 -25
- package/app/component/service-order/transaction-order-lines/transaction-order-lines.component.scss +0 -83
- package/app/component/service-order/transaction-order-totals/transaction-order-totals.component.d.ts +0 -6
- package/app/component/service-order/transaction-order-totals/transaction-order-totals.component.scss +0 -24
- package/app/component/service-order/transaction-relation/transaction-relation-address.component.d.ts +0 -22
- package/app/component/service-order/transaction-relation/transaction-relation-edit.component.d.ts +0 -29
- package/app/component/service-order/transaction-relation/transaction-relation-edit.component.scss +0 -24
- package/app/component/service-order/transaction-sidebar/transaction-line-accordion.component.d.ts +0 -11
- package/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.d.ts +0 -26
- package/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.scss +0 -17
- package/app/component/service-order/warehouse/warehouse.component.d.ts +0 -35
- package/app/component/service-order/warehouse/warehouse.component.scss +0 -52
- package/app/component/shopping-cart/ione-shopping-cart.component.d.ts +0 -71
- package/app/component/shopping-cart/ione-shopping-cart.module.d.ts +0 -2
- package/app/component/shopping-cart/shopping-cart/shopping-cart.component.d.ts +0 -61
- package/app/component/shopping-cart/shopping-cart/shopping-cart.component.scss +0 -79
- package/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.d.ts +0 -34
- package/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.scss +0 -107
- package/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.d.ts +0 -91
- package/app/enum/checkout-steps.enum.d.ts +0 -7
- package/app/enum/position-grid-row.enum.d.ts +0 -4
- package/app/model/transaction-add-text-line-request.d.ts +0 -9
- package/app/service/transaction-event.service.d.ts +0 -53
- package/esm2015/app/component/checkout/checkout/checkout.component.js +0 -157
- package/esm2015/app/component/checkout/checkout-login/checkout-login.component.js +0 -106
- package/esm2015/app/component/checkout/checkout-overview/checkout-overview.component.js +0 -185
- package/esm2015/app/component/checkout/checkout-overview-block/checkout-overview-block.component.js +0 -47
- package/esm2015/app/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.js +0 -47
- package/esm2015/app/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +0 -420
- package/esm2015/app/component/checkout/checkout-overview-relation-address/checkout-overview-relation-address.component.js +0 -103
- package/esm2015/app/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +0 -377
- package/esm2015/app/component/checkout/checkout-relation-suggestions-list/checkout-relation-suggestions-list.component.js +0 -30
- package/esm2015/app/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.js +0 -31
- package/esm2015/app/component/checkout/checkout-transaction/checkout-transaction.component.js +0 -55
- package/esm2015/app/component/checkout/ione-checkout.component.js +0 -137
- package/esm2015/app/component/checkout/ione-checkout.module.js +0 -76
- package/esm2015/app/component/core/base/default-ok-cancel-buttons.component.js +0 -41
- package/esm2015/app/component/core/base/transaction-base.component.js +0 -146
- package/esm2015/app/component/core/characteristic-answer/characteristic-answer.component.js +0 -100
- package/esm2015/app/component/core/core.module.js +0 -48
- package/esm2015/app/component/core/directive/template-wrapper.directive.js +0 -69
- package/esm2015/app/component/core/image-display/image-display.component.js +0 -45
- package/esm2015/app/component/core/no-image-display/no-image-display.component.js +0 -26
- package/esm2015/app/component/core/relation/customer-groups.component.js +0 -40
- package/esm2015/app/component/service-order/ione-service-order-module.js +0 -114
- package/esm2015/app/component/service-order/ione-service-order.component.js +0 -96
- package/esm2015/app/component/service-order/service-order.component.js +0 -199
- package/esm2015/app/component/service-order/summary/transaction-article-summary.component.js +0 -55
- package/esm2015/app/component/service-order/summary/transaction-delivery-summary.component.js +0 -59
- package/esm2015/app/component/service-order/summary/transaction-order-summary.component.js +0 -43
- package/esm2015/app/component/service-order/summary/transaction-payment-info.component.js +0 -35
- package/esm2015/app/component/service-order/summary/transaction-product-contract-summary.component.js +0 -38
- package/esm2015/app/component/service-order/summary/transaction-product-summary.component.js +0 -41
- package/esm2015/app/component/service-order/summary/transaction-service-status.component.js +0 -37
- package/esm2015/app/component/service-order/summary/transaction-service-summary.component.js +0 -38
- package/esm2015/app/component/service-order/summary/transaction-summary-block.component.js +0 -53
- package/esm2015/app/component/service-order/transaction-article-text/transaction-article-text.component.js +0 -140
- package/esm2015/app/component/service-order/transaction-article-text-overview/transaction-article-text-overview.component.js +0 -105
- package/esm2015/app/component/service-order/transaction-edit-article-text/transaction-edit-article-text.component.js +0 -73
- package/esm2015/app/component/service-order/transaction-header-block/transaction-header-block.component.js +0 -83
- package/esm2015/app/component/service-order/transaction-manager/transaction-manager.component.js +0 -314
- package/esm2015/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.js +0 -76
- package/esm2015/app/component/service-order/transaction-order-lines/transaction-order-lines.component.js +0 -71
- package/esm2015/app/component/service-order/transaction-order-totals/transaction-order-totals.component.js +0 -36
- package/esm2015/app/component/service-order/transaction-relation/transaction-relation-address.component.js +0 -116
- package/esm2015/app/component/service-order/transaction-relation/transaction-relation-edit.component.js +0 -225
- package/esm2015/app/component/service-order/transaction-sidebar/transaction-line-accordion.component.js +0 -172
- package/esm2015/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.js +0 -120
- package/esm2015/app/component/service-order/warehouse/warehouse.component.js +0 -133
- package/esm2015/app/component/shopping-cart/ione-shopping-cart.component.js +0 -185
- package/esm2015/app/component/shopping-cart/ione-shopping-cart.module.js +0 -62
- package/esm2015/app/component/shopping-cart/shopping-cart/shopping-cart.component.js +0 -294
- package/esm2015/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.js +0 -172
- package/esm2015/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.js +0 -451
- package/esm2015/app/enum/checkout-steps.enum.js +0 -10
- package/esm2015/app/enum/content-view-mode.enum.js +0 -10
- package/esm2015/app/enum/language-code.enum.js +0 -8
- package/esm2015/app/enum/order-discount-type.enum.js +0 -7
- package/esm2015/app/enum/position-grid-row.enum.js +0 -6
- package/esm2015/app/enum/time-size.type.js +0 -10
- package/esm2015/app/model/business-object.js +0 -81
- package/esm2015/app/model/standard-text.js +0 -3
- package/esm2015/app/model/text-value-container.js +0 -3
- package/esm2015/app/model/transaction-add-text-line-request.js +0 -11
- package/esm2015/app/pipe/append.pipe.js +0 -17
- package/esm2015/app/pipe/co-currency.pipe.js +0 -47
- package/esm2015/app/pipe/date-duration.pipe.js +0 -57
- package/esm2015/app/pipe/delivery-time.pipe.js +0 -33
- package/esm2015/app/pipe/localize.pipe.js +0 -28
- package/esm2015/app/pipe/safe-style-pipe.js +0 -19
- package/esm2015/app/service/dictionary.service.js +0 -76
- package/esm2015/app/service/ione-connector-adapter.service.js +0 -567
- package/esm2015/app/service/options.service.js +0 -91
- package/esm2015/app/service/transaction-event.service.js +0 -26
- package/esm2015/app/service/transaction.service.js +0 -584
- package/esm2015/app/utils/string-utils.js +0 -64
- package/esm2015/assets/dictionary/text.properties.js +0 -332
- package/esm2015/factory/business-object-factory.js +0 -120
- package/esm2015/factory/decorators/boolean.decorator.js +0 -102
- package/esm2015/factory/decorators/complex-array.decorator.js +0 -55
- package/esm2015/factory/decorators/complex-field.decorator.js +0 -57
- package/esm2015/factory/decorators/date-field.decorator.js +0 -36
- package/esm2015/factory/decorators/string-number.decorator.js +0 -43
- package/esm2015/utils/array-utils.js +0 -183
- package/esm2015/utils/is-nill.function.js +0 -5
- package/style/styles.scss +0 -367
- package/styles.scss +0 -11
|
@@ -1,584 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { EventEmitter, Injectable } from "@angular/core";
|
|
3
|
-
import { IOneConnectorAdapterService } from "./ione-connector-adapter.service";
|
|
4
|
-
import { CustomerFullObject } from "@colijnit/transactionapi/build/model/customer-full-object.bo";
|
|
5
|
-
import { NULL_CUSTOMER_FULL_OBJECT } from "@colijnit/transactionapi/build/model/nul-relation-object";
|
|
6
|
-
import { TransactionKind } from "@colijnit/transactionapi/build/enum/transaction-kind.enum";
|
|
7
|
-
import { SequenceName } from "@colijnit/transactionapi/build/enum/sequence-name.enum";
|
|
8
|
-
import { isNill } from "@colijnit/transactionapi/build/utils/function/is-nill.function";
|
|
9
|
-
import { ArrayUtils } from "@colijnit/transactionapi/build/utils/array-utils";
|
|
10
|
-
import { SetTransactionDeliveryOptionsRequest } from "@colijnit/transactionapi/build/model/set-transaction-delivery-options-request.bo";
|
|
11
|
-
import { TransactionTotal } from "@colijnit/transactionapi/build/model/transaction-total.bo";
|
|
12
|
-
import { TransactionLineType } from "@colijnit/transactionapi/build/enum/transaction-line-type.enum";
|
|
13
|
-
import { LineOperationStatus } from "@colijnit/transactionapi/build/model/line-operation-status.bo";
|
|
14
|
-
import { TransactionInfo } from "@colijnit/transactionapi/build/model/transaction-info.bo";
|
|
15
|
-
import { PendingReasonType } from "@colijnit/transactionapi/build/enum/pending-reason-type.enum";
|
|
16
|
-
import { PromptService } from "@colijnit/corecomponents_v12";
|
|
17
|
-
import { RelationStatus } from "@colijnit/transactionapi/build/enum/relation-status.enum";
|
|
18
|
-
export class TransactionService {
|
|
19
|
-
constructor(_connector, _prompt) {
|
|
20
|
-
this._connector = _connector;
|
|
21
|
-
this._prompt = _prompt;
|
|
22
|
-
this.transactionUpdated = new EventEmitter();
|
|
23
|
-
this.transactionLoaded = new EventEmitter();
|
|
24
|
-
this.applicationUser = false;
|
|
25
|
-
this.articleAmount = 0;
|
|
26
|
-
this._currentLines = [];
|
|
27
|
-
this._currentTotals = new TransactionTotal();
|
|
28
|
-
this._currentTransaction = new TransactionInfo();
|
|
29
|
-
this._currentLineOperationStatus = new LineOperationStatus();
|
|
30
|
-
this._currentLineOperationStatuses = [];
|
|
31
|
-
this._initializeTransaction();
|
|
32
|
-
}
|
|
33
|
-
get currentLines() {
|
|
34
|
-
return this._currentLines;
|
|
35
|
-
}
|
|
36
|
-
set currentLines(value) {
|
|
37
|
-
this._currentLines = value;
|
|
38
|
-
this.articleAmount = ArrayUtils.FindAll(this._currentLines, line => line.isArticle).length;
|
|
39
|
-
}
|
|
40
|
-
set currentTotals(value) {
|
|
41
|
-
this._currentTotals = value;
|
|
42
|
-
}
|
|
43
|
-
get currentTotals() {
|
|
44
|
-
return this._currentTotals;
|
|
45
|
-
}
|
|
46
|
-
get currentRelation() {
|
|
47
|
-
return this._currentRelation;
|
|
48
|
-
}
|
|
49
|
-
get currentTransaction() {
|
|
50
|
-
return this._currentTransaction;
|
|
51
|
-
}
|
|
52
|
-
set currentLineOperationStatuses(values) {
|
|
53
|
-
this._currentLineOperationStatuses = values;
|
|
54
|
-
}
|
|
55
|
-
get currentLineOperationStatuses() {
|
|
56
|
-
return this._currentLineOperationStatuses;
|
|
57
|
-
}
|
|
58
|
-
set currentLineOperationStatus(value) {
|
|
59
|
-
this._currentLineOperationStatus = value;
|
|
60
|
-
}
|
|
61
|
-
get currentLineOperationStatus() {
|
|
62
|
-
const status = this.currentLineOperationStatuses.find(line => line.pendingReasonType !== PendingReasonType.NONE
|
|
63
|
-
&& line.pendingReasonType !== PendingReasonType.NON_CRITICAL_DISCONTINUATION);
|
|
64
|
-
return status;
|
|
65
|
-
}
|
|
66
|
-
pendingLineOperationStatus(lineOperationStatuses) {
|
|
67
|
-
const status = lineOperationStatuses.find(line => line.pendingReasonType !== PendingReasonType.NONE
|
|
68
|
-
&& line.pendingReasonType !== PendingReasonType.NON_CRITICAL_DISCONTINUATION);
|
|
69
|
-
return status;
|
|
70
|
-
}
|
|
71
|
-
getArticleFullObject(goodId) {
|
|
72
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
73
|
-
return yield this._connector.getArticleFullObject(goodId);
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
getGoodIdFromArticleNr(sku) {
|
|
77
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
78
|
-
return yield this._connector.getGoodIdFromArticleNr(sku);
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
getRelation() {
|
|
82
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
83
|
-
const relationNo = yield this._connector.getRelationNumber(this._currentTransaction.relation.relationId);
|
|
84
|
-
if (relationNo) {
|
|
85
|
-
this._currentRelation = yield this._connector.getCustomerFullObject(Number(relationNo));
|
|
86
|
-
yield this.loadCountriesOfRelationAddresses();
|
|
87
|
-
}
|
|
88
|
-
return this._currentRelation;
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
loadCountriesOfRelationAddresses() {
|
|
92
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
93
|
-
for (const address of this.currentRelation.addresses) {
|
|
94
|
-
const country = yield this.getCountry(address.countryId);
|
|
95
|
-
address.countryName = country.description;
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
getCountry(countryCode) {
|
|
100
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
-
return yield this._connector.getCountry(countryCode);
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
getRelationNumber(relationId) {
|
|
105
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
106
|
-
return this._connector.getRelationNumber(relationId);
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
saveNewRelation() {
|
|
110
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
111
|
-
this.cleanRelationBeforeSave();
|
|
112
|
-
this._currentRelation = yield this._connector.insertCustomer(this._currentRelation);
|
|
113
|
-
yield this.addRelationToTransaction(this._currentRelation.relationId);
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
saveRelation() {
|
|
117
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
118
|
-
this.cleanRelationBeforeSave();
|
|
119
|
-
this._currentRelation = yield this._connector.updateCustomer(this._currentRelation);
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
cleanRelationBeforeSave() {
|
|
123
|
-
ArrayUtils.RemoveElementsByFilter(this._currentRelation.contactOptions, ((item) => {
|
|
124
|
-
return isNill(item.value);
|
|
125
|
-
}));
|
|
126
|
-
}
|
|
127
|
-
getSequenceValue() {
|
|
128
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
129
|
-
return yield this._connector.getSequenceValue(SequenceName.RelationId);
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
getRelationPrivacySettings() {
|
|
133
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
134
|
-
return yield this._connector.getRelationPrivacySettings();
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
createTransaction() {
|
|
138
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
139
|
-
return new Promise((resolve, reject) => {
|
|
140
|
-
this._connector.createTransaction(TransactionKind.SalesOrder, "1").then((response) => {
|
|
141
|
-
this._rememberCurrentTransaction(response);
|
|
142
|
-
resolve(true);
|
|
143
|
-
}, (error) => {
|
|
144
|
-
reject(error);
|
|
145
|
-
}).catch((reason) => {
|
|
146
|
-
reject(false);
|
|
147
|
-
});
|
|
148
|
-
});
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
resolvePendingLineReason(pendingLineValues, remember = true) {
|
|
152
|
-
return new Promise((resolve) => {
|
|
153
|
-
this._connector.resolvePendingLineReason(pendingLineValues).then((response) => __awaiter(this, void 0, void 0, function* () {
|
|
154
|
-
this._rememberResponse(remember, response);
|
|
155
|
-
resolve(response);
|
|
156
|
-
})).catch((reason) => {
|
|
157
|
-
resolve();
|
|
158
|
-
});
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
getTransaction(transactionNo) {
|
|
162
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
163
|
-
return yield this.openExistingTransaction(TransactionKind.SalesOrder, transactionNo);
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
openExistingTransaction(kind, transactionNr) {
|
|
167
|
-
return new Promise((resolve, reject) => {
|
|
168
|
-
this._connector.getTransactionByNrAndKind(kind, transactionNr)
|
|
169
|
-
.then((response) => __awaiter(this, void 0, void 0, function* () {
|
|
170
|
-
if (response.isSuccess) {
|
|
171
|
-
this.transactionLoaded.emit(response);
|
|
172
|
-
resolve(true);
|
|
173
|
-
}
|
|
174
|
-
else {
|
|
175
|
-
reject(false);
|
|
176
|
-
}
|
|
177
|
-
}))
|
|
178
|
-
.catch((reason) => {
|
|
179
|
-
reject(false);
|
|
180
|
-
});
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
getTransactionById(transactionId) {
|
|
184
|
-
return new Promise((resolve, reject) => {
|
|
185
|
-
this._connector.getTransactionById(transactionId)
|
|
186
|
-
.then((response) => __awaiter(this, void 0, void 0, function* () {
|
|
187
|
-
if (response.isSuccess) {
|
|
188
|
-
this.transactionLoaded.emit(response);
|
|
189
|
-
resolve(true);
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
reject(false);
|
|
193
|
-
}
|
|
194
|
-
}))
|
|
195
|
-
.catch((reason) => {
|
|
196
|
-
reject(false);
|
|
197
|
-
});
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
commit() {
|
|
201
|
-
return this._connector.commit();
|
|
202
|
-
}
|
|
203
|
-
saveTransaction(close = false) {
|
|
204
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
205
|
-
const response = yield this._connector.saveTransaction(this.currentTransaction.uuid);
|
|
206
|
-
if (response.isSuccess) {
|
|
207
|
-
this._rememberCurrentTransaction(response);
|
|
208
|
-
}
|
|
209
|
-
return response;
|
|
210
|
-
});
|
|
211
|
-
}
|
|
212
|
-
saveTransactionByUuid(transactionUuid) {
|
|
213
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
214
|
-
return new Promise((resolve, reject) => {
|
|
215
|
-
this._connector.saveTransaction(transactionUuid)
|
|
216
|
-
.then((response) => __awaiter(this, void 0, void 0, function* () {
|
|
217
|
-
if (response.isSuccess) {
|
|
218
|
-
this.transactionLoaded.emit(response);
|
|
219
|
-
resolve(true);
|
|
220
|
-
}
|
|
221
|
-
else {
|
|
222
|
-
reject(false);
|
|
223
|
-
}
|
|
224
|
-
}))
|
|
225
|
-
.catch((reason) => {
|
|
226
|
-
if (reason) {
|
|
227
|
-
this._prompt.showError(reason.getFullErrorString());
|
|
228
|
-
}
|
|
229
|
-
reject(false);
|
|
230
|
-
});
|
|
231
|
-
});
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
addRelationToTransaction(relationId) {
|
|
235
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
236
|
-
const success = yield this._connector.addRelationToTransaction(this._currentTransaction.uuid, relationId);
|
|
237
|
-
if (success) {
|
|
238
|
-
yield this.saveTransaction();
|
|
239
|
-
yield this.getTransaction(this._currentTransaction.transactionNr);
|
|
240
|
-
}
|
|
241
|
-
});
|
|
242
|
-
}
|
|
243
|
-
getCommissionCodes(languageCode) {
|
|
244
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
245
|
-
return yield this._connector.getCommissionCodes(languageCode);
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
getInOutCollection(languageCode) {
|
|
249
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
250
|
-
return yield this._connector.getInOutCollection(languageCode);
|
|
251
|
-
});
|
|
252
|
-
}
|
|
253
|
-
getTransactionArticleWarehouses(goodId) {
|
|
254
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
255
|
-
return this._connector.getTransactionArticleWarehouses(goodId);
|
|
256
|
-
});
|
|
257
|
-
}
|
|
258
|
-
getMarketingCodes() {
|
|
259
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
260
|
-
return yield this._connector.getMarketingCodes();
|
|
261
|
-
});
|
|
262
|
-
}
|
|
263
|
-
insertCustomer(relation) {
|
|
264
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
265
|
-
return yield this._connector.insertCustomer(relation);
|
|
266
|
-
});
|
|
267
|
-
}
|
|
268
|
-
updateCustomer(relation) {
|
|
269
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
270
|
-
return new Promise((resolve, reject) => {
|
|
271
|
-
this._connector.updateCustomer(relation).then((response) => __awaiter(this, void 0, void 0, function* () {
|
|
272
|
-
this._currentRelation = relation;
|
|
273
|
-
resolve(response);
|
|
274
|
-
}))
|
|
275
|
-
.catch((response) => {
|
|
276
|
-
resolve(response);
|
|
277
|
-
});
|
|
278
|
-
});
|
|
279
|
-
});
|
|
280
|
-
}
|
|
281
|
-
getDeliveryMethods() {
|
|
282
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
283
|
-
return yield this._connector.getDeliveryMethods();
|
|
284
|
-
});
|
|
285
|
-
}
|
|
286
|
-
getDeliveryOptions() {
|
|
287
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
288
|
-
return yield this._connector.getDeliveryOptions();
|
|
289
|
-
});
|
|
290
|
-
}
|
|
291
|
-
setTransactionDeliveryOptions() {
|
|
292
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
293
|
-
const transactionDeliveryOptionsRequest = this._getTransactionDeliveryOptions();
|
|
294
|
-
const response = yield this._connector.setTransactionDeliveryOptions(transactionDeliveryOptionsRequest)
|
|
295
|
-
.catch(() => {
|
|
296
|
-
return undefined;
|
|
297
|
-
});
|
|
298
|
-
if (response && response.isSuccess) {
|
|
299
|
-
return true;
|
|
300
|
-
}
|
|
301
|
-
else {
|
|
302
|
-
return false;
|
|
303
|
-
}
|
|
304
|
-
});
|
|
305
|
-
}
|
|
306
|
-
getRelationListObjects(relationRequest) {
|
|
307
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
308
|
-
return yield this._connector.getRelationListObjects(relationRequest);
|
|
309
|
-
});
|
|
310
|
-
}
|
|
311
|
-
retrieveLineImage(line) {
|
|
312
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
313
|
-
return yield this.getArticleImageByArticleNumber(line.articleNumber);
|
|
314
|
-
});
|
|
315
|
-
}
|
|
316
|
-
getArticleImageByArticleNumber(articleNumber) {
|
|
317
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
318
|
-
const goodId = yield this._connector.getGoodIdFromArticleNr(articleNumber);
|
|
319
|
-
return this.getArticleImageByGoodId(goodId);
|
|
320
|
-
});
|
|
321
|
-
}
|
|
322
|
-
getArticleImageByGoodId(goodId) {
|
|
323
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
324
|
-
if (!isNaN(goodId)) {
|
|
325
|
-
return this._connector.getSingleImage(goodId, 1, true, true);
|
|
326
|
-
}
|
|
327
|
-
else {
|
|
328
|
-
return "";
|
|
329
|
-
}
|
|
330
|
-
});
|
|
331
|
-
}
|
|
332
|
-
addArticle(articleNo, amount = 1, warehouseNo = 1, commissionCode = "2", isReturn = false, aboveLineNr = 0, belowLineNr = 0) {
|
|
333
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
334
|
-
return new Promise((resolve, reject) => {
|
|
335
|
-
this._connector.addTransactionLine(this._currentTransaction.uuid, TransactionLineType.ArticleLine, articleNo, amount, warehouseNo, commissionCode, isReturn, aboveLineNr, belowLineNr)
|
|
336
|
-
.then((response) => __awaiter(this, void 0, void 0, function* () {
|
|
337
|
-
resolve(true);
|
|
338
|
-
}), (error) => {
|
|
339
|
-
reject(error);
|
|
340
|
-
})
|
|
341
|
-
.catch((reason) => {
|
|
342
|
-
resolve(false);
|
|
343
|
-
});
|
|
344
|
-
});
|
|
345
|
-
});
|
|
346
|
-
}
|
|
347
|
-
addArticleToTransaction(transactionUuid, articleNo, amount = 1, warehouseNo = 1, commissionCode = "2", isReturn = false, aboveLineNr = 0, belowLineNr = 0) {
|
|
348
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
349
|
-
return new Promise((resolve, reject) => {
|
|
350
|
-
this._connector.addTransactionLine(transactionUuid, TransactionLineType.ArticleLine, articleNo, amount, warehouseNo, commissionCode, isReturn, aboveLineNr, belowLineNr)
|
|
351
|
-
.then((response) => __awaiter(this, void 0, void 0, function* () {
|
|
352
|
-
resolve(response);
|
|
353
|
-
}), (error) => {
|
|
354
|
-
this._prompt.showError(error);
|
|
355
|
-
reject(error);
|
|
356
|
-
})
|
|
357
|
-
.catch((reason) => {
|
|
358
|
-
this._prompt.showError(reason.getFullErrorString());
|
|
359
|
-
resolve(null);
|
|
360
|
-
});
|
|
361
|
-
});
|
|
362
|
-
});
|
|
363
|
-
}
|
|
364
|
-
addTransactionLine(lineType, articleNo, amount, warehouseNo, commissionCode, isReturn, aboveLineNr, belowLineNr, remember = true) {
|
|
365
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
366
|
-
return new Promise((resolve, reject) => {
|
|
367
|
-
this._connector.addTransactionLine(this.currentTransaction.uuid, lineType, articleNo, amount, warehouseNo, commissionCode, isReturn, aboveLineNr, belowLineNr)
|
|
368
|
-
.then((response) => __awaiter(this, void 0, void 0, function* () {
|
|
369
|
-
this._rememberResponse(remember, response);
|
|
370
|
-
resolve(response);
|
|
371
|
-
}), (error) => {
|
|
372
|
-
reject(error);
|
|
373
|
-
})
|
|
374
|
-
.catch((reason) => {
|
|
375
|
-
resolve(null);
|
|
376
|
-
});
|
|
377
|
-
});
|
|
378
|
-
});
|
|
379
|
-
}
|
|
380
|
-
addTextLine(showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr, remember = true) {
|
|
381
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
382
|
-
return new Promise((resolve, reject) => {
|
|
383
|
-
this._connector.addTextLineToTransaction(this.currentTransaction.uuid, showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr)
|
|
384
|
-
.then((response) => __awaiter(this, void 0, void 0, function* () {
|
|
385
|
-
this._rememberResponse(remember, response);
|
|
386
|
-
resolve(response);
|
|
387
|
-
}), (error) => {
|
|
388
|
-
reject(error);
|
|
389
|
-
})
|
|
390
|
-
.catch((reason) => {
|
|
391
|
-
resolve(null);
|
|
392
|
-
});
|
|
393
|
-
});
|
|
394
|
-
});
|
|
395
|
-
}
|
|
396
|
-
addTextLineToTransaction(transactionUuid, showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr) {
|
|
397
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
398
|
-
return new Promise((resolve, reject) => {
|
|
399
|
-
this._connector.addTextLineToTransaction(transactionUuid, showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr)
|
|
400
|
-
.then((response) => __awaiter(this, void 0, void 0, function* () {
|
|
401
|
-
resolve(response);
|
|
402
|
-
}), (error) => {
|
|
403
|
-
reject(error);
|
|
404
|
-
})
|
|
405
|
-
.catch((reason) => {
|
|
406
|
-
resolve(null);
|
|
407
|
-
});
|
|
408
|
-
});
|
|
409
|
-
});
|
|
410
|
-
}
|
|
411
|
-
changeLineSequence(lineUuid, aboveLineNr, belowLineNr, remember = true) {
|
|
412
|
-
return new Promise((resolve, reject) => {
|
|
413
|
-
this._connector.changeLineSequence(this.currentTransaction.uuid, lineUuid, aboveLineNr, belowLineNr)
|
|
414
|
-
.then((response) => __awaiter(this, void 0, void 0, function* () {
|
|
415
|
-
this._rememberResponse(remember, response);
|
|
416
|
-
resolve(response);
|
|
417
|
-
}), (error) => {
|
|
418
|
-
reject(error);
|
|
419
|
-
})
|
|
420
|
-
.catch((reason) => {
|
|
421
|
-
resolve(null);
|
|
422
|
-
});
|
|
423
|
-
});
|
|
424
|
-
}
|
|
425
|
-
cancelAddTransactionLine(lineUuid, remember = true) {
|
|
426
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
427
|
-
return new Promise((resolve, reject) => {
|
|
428
|
-
this._connector.cancelAddTransactionLine(lineUuid)
|
|
429
|
-
.then((response) => __awaiter(this, void 0, void 0, function* () {
|
|
430
|
-
if (remember) {
|
|
431
|
-
this._rememberCurrentTransaction(response);
|
|
432
|
-
}
|
|
433
|
-
if (response.isSuccess) {
|
|
434
|
-
resolve(response);
|
|
435
|
-
}
|
|
436
|
-
else {
|
|
437
|
-
reject(response);
|
|
438
|
-
}
|
|
439
|
-
}))
|
|
440
|
-
.catch((reason) => {
|
|
441
|
-
resolve(null);
|
|
442
|
-
});
|
|
443
|
-
});
|
|
444
|
-
});
|
|
445
|
-
}
|
|
446
|
-
deleteTransactionLine(transactionUuid, TransactionLineUuid, remember = true) {
|
|
447
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
448
|
-
return new Promise((resolve, reject) => {
|
|
449
|
-
this._connector.deleteTransactionLine(transactionUuid, TransactionLineUuid)
|
|
450
|
-
.then((response) => __awaiter(this, void 0, void 0, function* () {
|
|
451
|
-
this._rememberResponse(remember, response);
|
|
452
|
-
if (response.isSuccess) {
|
|
453
|
-
resolve(response);
|
|
454
|
-
}
|
|
455
|
-
else {
|
|
456
|
-
reject(response);
|
|
457
|
-
}
|
|
458
|
-
}))
|
|
459
|
-
.catch((reason) => {
|
|
460
|
-
resolve(null);
|
|
461
|
-
});
|
|
462
|
-
});
|
|
463
|
-
});
|
|
464
|
-
}
|
|
465
|
-
changeTransactionLineQuantity(lineUuid, newQuantity, remember = true) {
|
|
466
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
467
|
-
return new Promise((resolve) => {
|
|
468
|
-
this._connector.changeTransactionLineQuantity(this.currentTransaction.uuid, lineUuid, newQuantity)
|
|
469
|
-
.then((response) => __awaiter(this, void 0, void 0, function* () {
|
|
470
|
-
if (response.isSuccess) {
|
|
471
|
-
this._rememberResponse(remember, response);
|
|
472
|
-
}
|
|
473
|
-
resolve(response);
|
|
474
|
-
})).catch((reason) => {
|
|
475
|
-
resolve(null);
|
|
476
|
-
});
|
|
477
|
-
});
|
|
478
|
-
});
|
|
479
|
-
}
|
|
480
|
-
setRelationByUser(username, password) {
|
|
481
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
482
|
-
return new Promise((resolve) => {
|
|
483
|
-
this._connector.setRelationByUser(this.currentTransaction.uuid, username, password)
|
|
484
|
-
.then((isSuccess) => __awaiter(this, void 0, void 0, function* () {
|
|
485
|
-
resolve(isSuccess);
|
|
486
|
-
})).catch((reason) => {
|
|
487
|
-
resolve(false);
|
|
488
|
-
});
|
|
489
|
-
});
|
|
490
|
-
});
|
|
491
|
-
}
|
|
492
|
-
getCustomerFulObjectByRelationId(relationId) {
|
|
493
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
494
|
-
const relationNr = yield this._connector.getRelationNumber(relationId);
|
|
495
|
-
if (relationNr) {
|
|
496
|
-
return yield this._connector.getCustomerFullObject(Number(relationNr));
|
|
497
|
-
}
|
|
498
|
-
return NULL_CUSTOMER_FULL_OBJECT;
|
|
499
|
-
});
|
|
500
|
-
}
|
|
501
|
-
// public async setRelationByUser(username: string, password: string): Promise<boolean> {
|
|
502
|
-
// const response: boolean = await this._connector.setRelationByUser(this.currentTransaction.uuid, username, password);
|
|
503
|
-
// return response;
|
|
504
|
-
// }
|
|
505
|
-
getTextTypes(languageCode) {
|
|
506
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
507
|
-
return yield this._connector.getTextTypes(languageCode);
|
|
508
|
-
});
|
|
509
|
-
}
|
|
510
|
-
getStandardTexts(languageCode) {
|
|
511
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
512
|
-
let data = yield this._connector.getStandardTexts(languageCode);
|
|
513
|
-
return data;
|
|
514
|
-
});
|
|
515
|
-
}
|
|
516
|
-
_initializeTransaction() {
|
|
517
|
-
if (!this._currentRelation) {
|
|
518
|
-
this._currentRelation = new CustomerFullObject();
|
|
519
|
-
this._currentRelation.relationStatus = RelationStatus.RegularCustomer;
|
|
520
|
-
this._currentRelation.startDate = new Date();
|
|
521
|
-
}
|
|
522
|
-
if (this._currentTransaction.preferredDeliveryDate2 === undefined) {
|
|
523
|
-
this._currentTransaction.preferredDeliveryDate2 = "=";
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
_rememberCurrentTransaction(value) {
|
|
527
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
528
|
-
this._currentTransaction = value.transactionInfo;
|
|
529
|
-
this._initializeTransaction();
|
|
530
|
-
this.currentLines = value.transactionLines;
|
|
531
|
-
this.currentTotals = value.transactionTotal;
|
|
532
|
-
this.currentLineOperationStatuses = value.lineOperationStatuses;
|
|
533
|
-
yield this._updateRelation();
|
|
534
|
-
this.transactionUpdated.emit();
|
|
535
|
-
});
|
|
536
|
-
}
|
|
537
|
-
_rememberCurrentTransactionLineStatus(value) {
|
|
538
|
-
// this._currentLineOperationStatus.uuid = value.lineUuid;
|
|
539
|
-
// this._currentLineOperationStatus.pendingReason = value.pendingReason;
|
|
540
|
-
// this._currentLineOperationStatus.pendingReasonType = value.pendingReasonType;
|
|
541
|
-
}
|
|
542
|
-
_updateRelation() {
|
|
543
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
544
|
-
if (this.currentTransaction && this.currentTransaction.relation && this.currentTransaction.relation.relationId) {
|
|
545
|
-
if (!this._currentRelation || this._currentRelation.relationId !== this.currentTransaction.relation.relationId) {
|
|
546
|
-
this._currentRelation = yield this.getCustomerFulObjectByRelationId(this.currentTransaction.relation.relationId);
|
|
547
|
-
}
|
|
548
|
-
}
|
|
549
|
-
});
|
|
550
|
-
}
|
|
551
|
-
_getTransactionDeliveryOptions() {
|
|
552
|
-
const transactionDeliveryOptionsRequest = new SetTransactionDeliveryOptionsRequest();
|
|
553
|
-
transactionDeliveryOptionsRequest.allowPartialDelivery = this._currentTransaction.allowPartialDelivery;
|
|
554
|
-
transactionDeliveryOptionsRequest.deliveryDate = this._currentTransaction.deliveryDate;
|
|
555
|
-
transactionDeliveryOptionsRequest.deliveryMethod = this._currentTransaction.deliveryMethod;
|
|
556
|
-
transactionDeliveryOptionsRequest.deliveryOptions = this._currentTransaction.deliveryOptions;
|
|
557
|
-
transactionDeliveryOptionsRequest.marketingCode = this._currentTransaction.marketingCode;
|
|
558
|
-
transactionDeliveryOptionsRequest.ownReference = this._currentTransaction.ownReference;
|
|
559
|
-
transactionDeliveryOptionsRequest.preferredDeliveryDate = this._currentTransaction.preferredDeliveryDate;
|
|
560
|
-
transactionDeliveryOptionsRequest.preferredDeliveryDate2 = this._currentTransaction.preferredDeliveryDate2;
|
|
561
|
-
transactionDeliveryOptionsRequest.relationReference = this._currentTransaction.relationReference;
|
|
562
|
-
transactionDeliveryOptionsRequest.remark = this._currentTransaction.remark;
|
|
563
|
-
transactionDeliveryOptionsRequest.transactionUuid = this._currentTransaction.uuid;
|
|
564
|
-
transactionDeliveryOptionsRequest.transactionAddress = this._currentTransaction.transactionAddress.nawNr;
|
|
565
|
-
transactionDeliveryOptionsRequest.invoiceAddress = this._currentTransaction.invoiceAddress ?
|
|
566
|
-
this._currentTransaction.invoiceAddress.nawNr :
|
|
567
|
-
this._currentTransaction.transactionAddress.nawNr;
|
|
568
|
-
return transactionDeliveryOptionsRequest;
|
|
569
|
-
}
|
|
570
|
-
_rememberResponse(remember, response) {
|
|
571
|
-
if (remember) {
|
|
572
|
-
this._rememberCurrentTransaction(response);
|
|
573
|
-
this._rememberCurrentTransactionLineStatus(response);
|
|
574
|
-
}
|
|
575
|
-
}
|
|
576
|
-
}
|
|
577
|
-
TransactionService.decorators = [
|
|
578
|
-
{ type: Injectable }
|
|
579
|
-
];
|
|
580
|
-
TransactionService.ctorParameters = () => [
|
|
581
|
-
{ type: IOneConnectorAdapterService },
|
|
582
|
-
{ type: PromptService }
|
|
583
|
-
];
|
|
584
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUVoRyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUVuRyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFHMUYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBSXBGLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUN0RixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDNUUsT0FBTyxFQUFDLG9DQUFvQyxFQUFDLE1BQU0sa0ZBQWtGLENBQUM7QUFJdEksT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFFM0YsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFLbkcsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFHbEcsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBRXpGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBQy9GLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUUzRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMERBQTBELENBQUM7QUFJeEYsTUFBTSxPQUFPLGtCQUFrQjtJQTJEN0IsWUFDUyxVQUF1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QWlCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDO1FBQ2pHLGlDQUFpQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDO1FBQzNFLGlDQUFpQyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDO1FBQ2xGLGlDQUFpQyxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7UUFDekcsaUNBQWlDLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUMxRixJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7UUFDcEQsT0FBTyxpQ0FBaUMsQ0FBQztJQUMzQyxDQUFDO0lBRU8saUJBQWlCLENBQUMsUUFBaUIsRUFBRSxRQUErQjtRQUMxRSxJQUFJLFFBQVEsRUFBRTtZQUNaLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMscUNBQXFDLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdEQ7SUFDSCxDQUFDOzs7WUExakJGLFVBQVU7OztZQXBDSCwyQkFBMkI7WUErQjNCLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0V2ZW50RW1pdHRlciwgSW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7SU9uZUNvbm5lY3RvckFkYXB0ZXJTZXJ2aWNlfSBmcm9tIFwiLi9pb25lLWNvbm5lY3Rvci1hZGFwdGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7Q3VzdG9tZXJGdWxsT2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2N1c3RvbWVyLWZ1bGwtb2JqZWN0LmJvXCI7XG5pbXBvcnQge1JlbGF0aW9uQW55VHlwZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1hbnktdHlwZVwiO1xuaW1wb3J0IHtOVUxMX0NVU1RPTUVSX0ZVTExfT0JKRUNUfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL251bC1yZWxhdGlvbi1vYmplY3RcIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ib1wiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbktpbmR9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW1cIjtcbmltcG9ydCB7TWFya2V0aW5nfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL21hcmtldGluZy5ib1wiO1xuaW1wb3J0IHtSZWxhdGlvblByaXZhY3lTZXR0aW5nfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLXByaXZhY3ktc2V0dGluZy5ib1wiO1xuaW1wb3J0IHtTZXF1ZW5jZU5hbWV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9zZXF1ZW5jZS1uYW1lLmVudW1cIjtcbmltcG9ydCB7RGVsaXZlcnlNZXRob2R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZGVsaXZlcnktbWV0aG9kLmJvXCI7XG5pbXBvcnQge0RlbGl2ZXJ5T3B0aW9ufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2RlbGl2ZXJ5LW9wdGlvbi5ib1wiO1xuaW1wb3J0IHtDb250YWN0T3B0aW9ufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2NvbnRhY3Qtb3B0aW9uLmJvXCI7XG5pbXBvcnQge2lzTmlsbH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC91dGlscy9mdW5jdGlvbi9pcy1uaWxsLmZ1bmN0aW9uXCI7XG5pbXBvcnQge0FycmF5VXRpbHN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvdXRpbHMvYXJyYXktdXRpbHNcIjtcbmltcG9ydCB7U2V0VHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3NldC10cmFuc2FjdGlvbi1kZWxpdmVyeS1vcHRpb25zLXJlcXVlc3QuYm9cIjtcbmltcG9ydCB7UmVsYXRpb25MaXN0T2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLWxpc3Qtb2JqZWN0LmJvXCI7XG5pbXBvcnQge1JlbGF0aW9uUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1yZXF1ZXN0XCI7XG5pbXBvcnQge0NvdW50cnl9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY291bnRyeS5ib1wiO1xuaW1wb3J0IHtUcmFuc2FjdGlvblRvdGFsfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLXRvdGFsLmJvXCI7XG5pbXBvcnQge1ZhbGlkYXRpb25SZXN1bHR9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdmFsaWRhdGlvbi1yZXN1bHRcIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lVHlwZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWxpbmUtdHlwZS5lbnVtXCI7XG5pbXBvcnQge1Jlc29sdmVQZW5kaW5nTGluZVJlYXNvblJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVzb2x2ZS1wZW5kaW5nLXJlYXNvbi1yZXF1ZXN0LmJvXCI7XG5pbXBvcnQge0NvRG9tYWluVmFsdWV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY28tZG9tYWluLXZhbHVlLmJvXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uQXJ0aWNsZVdhcmVob3VzZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1hcnRpY2xlLXdhcmVob3VzZS5ib1wiO1xuaW1wb3J0IHtBcnRpY2xlRnVsbE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWZ1bGwtb2JqZWN0XCI7XG5pbXBvcnQge0xpbmVPcGVyYXRpb25TdGF0dXN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbGluZS1vcGVyYXRpb24tc3RhdHVzLmJvXCI7XG5pbXBvcnQge0xpbmVPcGVyYXRpb25SZXNwb25zZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9saW5lLW9wZXJhdGlvbi1yZXNwb25zZS5ib1wiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ib1wiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm99IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby5ib1wiO1xuaW1wb3J0IHtUcmFuc2FjdGlvblJlc3BvbnNlQmFzZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1yZXNwb25zZS1iYXNlLmJvXCI7XG5pbXBvcnQge1BlbmRpbmdSZWFzb25UeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vcGVuZGluZy1yZWFzb24tdHlwZS5lbnVtXCI7XG5pbXBvcnQge1Byb21wdFNlcnZpY2V9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XG5pbXBvcnQge1N0YW5kYXJkVGV4dH0gZnJvbSBcIi4uL21vZGVsL3N0YW5kYXJkLXRleHRcIjtcbmltcG9ydCB7UmVsYXRpb25TdGF0dXN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9yZWxhdGlvbi1zdGF0dXMuZW51bVwiO1xuaW1wb3J0IHtEYXRhU2VydmljZVJlc3BvbnNlRGF0YX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kYXRhLXNlcnZpY2UtcmVzcG9uc2UtZGF0YVwiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25TZXJ2aWNlIHtcbiAgcHVibGljIHRyYW5zYWN0aW9uVXBkYXRlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBwdWJsaWMgdHJhbnNhY3Rpb25Mb2FkZWQ6IEV2ZW50RW1pdHRlcjxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4gPSBuZXcgRXZlbnRFbWl0dGVyPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPigpO1xuXG4gIHB1YmxpYyBlbWFpbEFkZHJlc3M6IHN0cmluZztcbiAgcHVibGljIGFwcGxpY2F0aW9uVXNlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBnZXQgY3VycmVudExpbmVzKCk6IFRyYW5zYWN0aW9uTGluZUluZm9bXSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRMaW5lcztcbiAgfVxuXG4gIHB1YmxpYyBzZXQgY3VycmVudExpbmVzKHZhbHVlOiBUcmFuc2FjdGlvbkxpbmVJbmZvW10pIHtcbiAgICB0aGlzLl9jdXJyZW50TGluZXMgPSB2YWx1ZTtcbiAgICB0aGlzLmFydGljbGVBbW91bnQgPSBBcnJheVV0aWxzLkZpbmRBbGwodGhpcy5fY3VycmVudExpbmVzLCBsaW5lID0+IGxpbmUuaXNBcnRpY2xlKS5sZW5ndGg7XG4gIH1cblxuICBwdWJsaWMgc2V0IGN1cnJlbnRUb3RhbHModmFsdWU6IFRyYW5zYWN0aW9uVG90YWwpIHtcbiAgICB0aGlzLl9jdXJyZW50VG90YWxzID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1cnJlbnRUb3RhbHMoKTogVHJhbnNhY3Rpb25Ub3RhbCB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRUb3RhbHM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1cnJlbnRSZWxhdGlvbigpOiBSZWxhdGlvbkFueVR5cGUge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50UmVsYXRpb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1cnJlbnRUcmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbkluZm8ge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb247XG4gIH1cblxuICBwdWJsaWMgc2V0IGN1cnJlbnRMaW5lT3BlcmF0aW9uU3RhdHVzZXModmFsdWVzOiBMaW5lT3BlcmF0aW9uU3RhdHVzW10pIHtcbiAgICB0aGlzLl9jdXJyZW50TGluZU9wZXJhdGlvblN0YXR1c2VzID0gdmFsdWVzO1xuICB9XG5cbiAgcHVibGljIGdldCBjdXJyZW50TGluZU9wZXJhdGlvblN0YXR1c2VzKCk6IExpbmVPcGVyYXRpb25TdGF0dXNbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRMaW5lT3BlcmF0aW9uU3RhdHVzZXM7XG4gIH1cblxuICBwdWJsaWMgc2V0IGN1cnJlbnRMaW5lT3BlcmF0aW9uU3RhdHVzKHZhbHVlOiBMaW5lT3BlcmF0aW9uU3RhdHVzKSB7XG4gICAgdGhpcy5fY3VycmVudExpbmVPcGVyYXRpb25TdGF0dXMgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3VycmVudExpbmVPcGVyYXRpb25TdGF0dXMoKTogTGluZU9wZXJhdGlvblN0YXR1cyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgc3RhdHVzOiBMaW5lT3BlcmF0aW9uU3RhdHVzID0gdGhpcy5jdXJyZW50TGluZU9wZXJhdGlvblN0YXR1c2VzLmZpbmQobGluZSA9PiBsaW5lLnBlbmRpbmdSZWFzb25UeXBlICE9PSBQZW5kaW5nUmVhc29uVHlwZS5OT05FXG4gICAgICAmJiBsaW5lLnBlbmRpbmdSZWFzb25UeXBlICE9PSBQZW5kaW5nUmVhc29uVHlwZS5OT05fQ1JJVElDQUxfRElTQ09OVElOVUFUSU9OKTtcbiAgICByZXR1cm4gc3RhdHVzO1xuICB9XG5cbiAgcHVibGljIGFydGljbGVBbW91bnQ6IG51bWJlciA9IDA7XG5cbiAgcHJpdmF0ZSBfY3VycmVudExpbmVzOiBUcmFuc2FjdGlvbkxpbmVJbmZvW10gPSBbXTtcbiAgcHJpdmF0ZSBfY3VycmVudFRvdGFsczogVHJhbnNhY3Rpb25Ub3RhbCA9IG5ldyBUcmFuc2FjdGlvblRvdGFsKCk7XG4gIHByaXZhdGUgX2N1cnJlbnRSZWxhdGlvbjogUmVsYXRpb25BbnlUeXBlOyAvLyA9IE5VTExfUkVMQVRJT05fT0JKRUNUO1xuICBwcml2YXRlIF9jdXJyZW50VHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mbyA9IG5ldyBUcmFuc2FjdGlvbkluZm8oKTtcbiAgcHJpdmF0ZSBfY3VycmVudExpbmVPcGVyYXRpb25TdGF0dXM6IExpbmVPcGVyYXRpb25TdGF0dXMgPSBuZXcgTGluZU9wZXJhdGlvblN0YXR1cygpO1xuICBwcml2YXRlIF9jdXJyZW50TGluZU9wZXJhdGlvblN0YXR1c2VzOiBMaW5lT3BlcmF0aW9uU3RhdHVzW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgX2Nvbm5lY3RvcjogSU9uZUNvbm5lY3RvckFkYXB0ZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBfcHJvbXB0OiBQcm9tcHRTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLl9pbml0aWFsaXplVHJhbnNhY3Rpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBwZW5kaW5nTGluZU9wZXJhdGlvblN0YXR1cyhsaW5lT3BlcmF0aW9uU3RhdHVzZXM6IExpbmVPcGVyYXRpb25TdGF0dXNbXSk6IExpbmVPcGVyYXRpb25TdGF0dXMgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHN0YXR1czogTGluZU9wZXJhdGlvblN0YXR1cyA9IGxpbmVPcGVyYXRpb25TdGF0dXNlcy5maW5kKGxpbmUgPT4gbGluZS5wZW5kaW5nUmVhc29uVHlwZSAhPT0gUGVuZGluZ1JlYXNvblR5cGUuTk9ORVxuICAgICAgJiYgbGluZS5wZW5kaW5nUmVhc29uVHlwZSAhPT0gUGVuZGluZ1JlYXNvblR5cGUuTk9OX0NSSVRJQ0FMX0RJU0NPTlRJTlVBVElPTik7XG4gICAgcmV0dXJuIHN0YXR1cztcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRBcnRpY2xlRnVsbE9iamVjdChnb29kSWQ6IG51bWJlcik6IFByb21pc2U8QXJ0aWNsZUZ1bGxPYmplY3Q+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldEFydGljbGVGdWxsT2JqZWN0KGdvb2RJZCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0R29vZElkRnJvbUFydGljbGVOcihza3U6IHN0cmluZyk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXRHb29kSWRGcm9tQXJ0aWNsZU5yKHNrdSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0UmVsYXRpb24oKTogUHJvbWlzZTxSZWxhdGlvbkFueVR5cGU+IHtcbiAgICBjb25zdCByZWxhdGlvbk5vOiBzdHJpbmcgPSBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0UmVsYXRpb25OdW1iZXIodGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLnJlbGF0aW9uLnJlbGF0aW9uSWQpO1xuXG4gICAgaWYgKHJlbGF0aW9uTm8pIHtcbiAgICAgIHRoaXMuX2N1cnJlbnRSZWxhdGlvbiA9IGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXRDdXN0b21lckZ1bGxPYmplY3QoTnVtYmVyKHJlbGF0aW9uTm8pKTtcbiAgICAgIGF3YWl0IHRoaXMubG9hZENvdW50cmllc09mUmVsYXRpb25BZGRyZXNzZXMoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRSZWxhdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2FkQ291bnRyaWVzT2ZSZWxhdGlvbkFkZHJlc3NlcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBmb3IgKGNvbnN0IGFkZHJlc3Mgb2YgdGhpcy5jdXJyZW50UmVsYXRpb24uYWRkcmVzc2VzKSB7XG4gICAgICBjb25zdCBjb3VudHJ5OiBDb3VudHJ5ID0gYXdhaXQgdGhpcy5nZXRDb3VudHJ5KGFkZHJlc3MuY291bnRyeUlkKTtcbiAgICAgIGFkZHJlc3MuY291bnRyeU5hbWUgPSBjb3VudHJ5LmRlc2NyaXB0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRDb3VudHJ5KGNvdW50cnlDb2RlOiBzdHJpbmcpOiBQcm9taXNlPENvdW50cnk+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldENvdW50cnkoY291bnRyeUNvZGUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFJlbGF0aW9uTnVtYmVyKHJlbGF0aW9uSWQ6IG51bWJlcik6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rvci5nZXRSZWxhdGlvbk51bWJlcihyZWxhdGlvbklkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzYXZlTmV3UmVsYXRpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jbGVhblJlbGF0aW9uQmVmb3JlU2F2ZSgpO1xuICAgIHRoaXMuX2N1cnJlbnRSZWxhdGlvbiA9IGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5pbnNlcnRDdXN0b21lcih0aGlzLl9jdXJyZW50UmVsYXRpb24pO1xuICAgIGF3YWl0IHRoaXMuYWRkUmVsYXRpb25Ub1RyYW5zYWN0aW9uKHRoaXMuX2N1cnJlbnRSZWxhdGlvbi5yZWxhdGlvbklkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzYXZlUmVsYXRpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jbGVhblJlbGF0aW9uQmVmb3JlU2F2ZSgpO1xuICAgIHRoaXMuX2N1cnJlbnRSZWxhdGlvbiA9IGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci51cGRhdGVDdXN0b21lcih0aGlzLl9jdXJyZW50UmVsYXRpb24pO1xuICB9XG5cbiAgcHVibGljIGNsZWFuUmVsYXRpb25CZWZvcmVTYXZlKCk6IHZvaWQge1xuICAgIEFycmF5VXRpbHMuUmVtb3ZlRWxlbWVudHNCeUZpbHRlcih0aGlzLl9jdXJyZW50UmVsYXRpb24uY29udGFjdE9wdGlvbnMsICgoaXRlbTogQ29udGFjdE9wdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIGlzTmlsbChpdGVtLnZhbHVlKTtcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0U2VxdWVuY2VWYWx1ZSgpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0U2VxdWVuY2VWYWx1ZShTZXF1ZW5jZU5hbWUuUmVsYXRpb25JZCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0UmVsYXRpb25Qcml2YWN5U2V0dGluZ3MoKTogUHJvbWlzZTxSZWxhdGlvblByaXZhY3lTZXR0aW5nW10+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldFJlbGF0aW9uUHJpdmFjeVNldHRpbmdzKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY3JlYXRlVHJhbnNhY3Rpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgdGhpcy5fY29ubmVjdG9yLmNyZWF0ZVRyYW5zYWN0aW9uKFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyLCBcIjFcIikudGhlbigocmVzcG9uc2U6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuX3JlbWVtYmVyQ3VycmVudFRyYW5zYWN0aW9uKHJlc3BvbnNlKTtcbiAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICB9KS5jYXRjaCgocmVhc29uOiBWYWxpZGF0aW9uUmVzdWx0KSA9PiB7XG4gICAgICAgIHJlamVjdChmYWxzZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZXNvbHZlUGVuZGluZ0xpbmVSZWFzb24ocGVuZGluZ0xpbmVWYWx1ZXM6IFJlc29sdmVQZW5kaW5nTGluZVJlYXNvblJlcXVlc3QsIHJlbWVtYmVyOiBib29sZWFuID0gdHJ1ZSk6IFByb21pc2U8TGluZU9wZXJhdGlvblJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPExpbmVPcGVyYXRpb25SZXNwb25zZT4oKHJlc29sdmU6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICB0aGlzLl9jb25uZWN0b3IucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHBlbmRpbmdMaW5lVmFsdWVzKS50aGVuKGFzeW5jIChyZXNwb25zZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuX3JlbWVtYmVyUmVzcG9uc2UocmVtZW1iZXIsIHJlc3BvbnNlKTtcbiAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICB9KS5jYXRjaCgocmVhc29uOiBWYWxpZGF0aW9uUmVzdWx0KSA9PiB7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uTm86IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLm9wZW5FeGlzdGluZ1RyYW5zYWN0aW9uKFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyLCB0cmFuc2FjdGlvbk5vKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuRXhpc3RpbmdUcmFuc2FjdGlvbihraW5kOiBUcmFuc2FjdGlvbktpbmQsIHRyYW5zYWN0aW9uTnI6IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPigocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHRoaXMuX2Nvbm5lY3Rvci5nZXRUcmFuc2FjdGlvbkJ5TnJBbmRLaW5kKGtpbmQsIHRyYW5zYWN0aW9uTnIpXG4gICAgICAgIC50aGVuKGFzeW5jIChyZXNwb25zZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBpZiAocmVzcG9uc2UuaXNTdWNjZXNzKSB7XG4gICAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uTG9hZGVkLmVtaXQocmVzcG9uc2UpO1xuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVqZWN0KGZhbHNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgocmVhc29uOiBWYWxpZGF0aW9uUmVzdWx0KSA9PiB7XG4gICAgICAgICAgcmVqZWN0KGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuXG4gIHB1YmxpYyBnZXRUcmFuc2FjdGlvbkJ5SWQodHJhbnNhY3Rpb25JZDogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgdGhpcy5fY29ubmVjdG9yLmdldFRyYW5zYWN0aW9uQnlJZCh0cmFuc2FjdGlvbklkKVxuICAgICAgICAudGhlbihhc3luYyAocmVzcG9uc2U6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmlzU3VjY2Vzcykge1xuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkxvYWRlZC5lbWl0KHJlc3BvbnNlKTtcbiAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlamVjdChmYWxzZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKHJlYXNvbjogVmFsaWRhdGlvblJlc3VsdCkgPT4ge1xuICAgICAgICAgIHJlamVjdChmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNvbW1pdCgpOiBQcm9taXNlPERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rvci5jb21taXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzYXZlVHJhbnNhY3Rpb24oY2xvc2U6IGJvb2xlYW4gPSBmYWxzZSk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcbiAgICBjb25zdCByZXNwb25zZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UgPSBhd2FpdCB0aGlzLl9jb25uZWN0b3Iuc2F2ZVRyYW5zYWN0aW9uKHRoaXMuY3VycmVudFRyYW5zYWN0aW9uLnV1aWQpO1xuICAgIGlmIChyZXNwb25zZS5pc1N1Y2Nlc3MpIHtcbiAgICAgIHRoaXMuX3JlbWVtYmVyQ3VycmVudFRyYW5zYWN0aW9uKHJlc3BvbnNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNhdmVUcmFuc2FjdGlvbkJ5VXVpZCh0cmFuc2FjdGlvblV1aWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPigocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHRoaXMuX2Nvbm5lY3Rvci5zYXZlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb25VdWlkKVxuICAgICAgICAudGhlbihhc3luYyAocmVzcG9uc2U6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmlzU3VjY2Vzcykge1xuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkxvYWRlZC5lbWl0KHJlc3BvbnNlKTtcbiAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlamVjdChmYWxzZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKHJlYXNvbjogVmFsaWRhdGlvblJlc3VsdCkgPT4ge1xuICAgICAgICAgIGlmIChyZWFzb24pIHtcbiAgICAgICAgICAgIHRoaXMuX3Byb21wdC5zaG93RXJyb3IocmVhc29uLmdldEZ1bGxFcnJvclN0cmluZygpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVqZWN0KGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYWRkUmVsYXRpb25Ub1RyYW5zYWN0aW9uKHJlbGF0aW9uSWQ6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHN1Y2Nlc3M6IGJvb2xlYW4gPSAgYXdhaXQgdGhpcy5fY29ubmVjdG9yLmFkZFJlbGF0aW9uVG9UcmFuc2FjdGlvbih0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24udXVpZCwgcmVsYXRpb25JZCk7XG4gICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgIGF3YWl0IHRoaXMuc2F2ZVRyYW5zYWN0aW9uKCk7XG4gICAgICBhd2FpdCB0aGlzLmdldFRyYW5zYWN0aW9uKHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbk5yKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0Q29tbWlzc2lvbkNvZGVzKGxhbmd1YWdlQ29kZTogc3RyaW5nKTogUHJvbWlzZTxDb0RvbWFpblZhbHVlW10+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldENvbW1pc3Npb25Db2RlcyhsYW5ndWFnZUNvZGUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldEluT3V0Q29sbGVjdGlvbihsYW5ndWFnZUNvZGU6IHN0cmluZyk6IFByb21pc2U8Q29Eb21haW5WYWx1ZVtdPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXRJbk91dENvbGxlY3Rpb24obGFuZ3VhZ2VDb2RlKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRUcmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2VzKGdvb2RJZDogbnVtYmVyKTogUHJvbWlzZTxUcmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2VbXT4ge1xuICAgIHJldHVybiB0aGlzLl9jb25uZWN0b3IuZ2V0VHJhbnNhY3Rpb25BcnRpY2xlV2FyZWhvdXNlcyhnb29kSWQpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldE1hcmtldGluZ0NvZGVzKCk6IFByb21pc2U8TWFya2V0aW5nW10+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldE1hcmtldGluZ0NvZGVzKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaW5zZXJ0Q3VzdG9tZXIocmVsYXRpb246IEN1c3RvbWVyRnVsbE9iamVjdCk6IFByb21pc2U8Q3VzdG9tZXJGdWxsT2JqZWN0PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5pbnNlcnRDdXN0b21lcihyZWxhdGlvbik7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdXBkYXRlQ3VzdG9tZXIocmVsYXRpb246IEN1c3RvbWVyRnVsbE9iamVjdCk6IFByb21pc2U8Q3VzdG9tZXJGdWxsT2JqZWN0PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPEN1c3RvbWVyRnVsbE9iamVjdD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5fY29ubmVjdG9yLnVwZGF0ZUN1c3RvbWVyKHJlbGF0aW9uKS50aGVuKGFzeW5jKCByZXNwb25zZTogQ3VzdG9tZXJGdWxsT2JqZWN0KSA9PiB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRSZWxhdGlvbiA9IHJlbGF0aW9uO1xuICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKHJlc3BvbnNlOiBDdXN0b21lckZ1bGxPYmplY3QpID0+IHtcbiAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXREZWxpdmVyeU1ldGhvZHMoKTogUHJvbWlzZTxEZWxpdmVyeU1ldGhvZFtdPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXREZWxpdmVyeU1ldGhvZHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXREZWxpdmVyeU9wdGlvbnMoKTogUHJvbWlzZTxEZWxpdmVyeU9wdGlvbltdPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXREZWxpdmVyeU9wdGlvbnMoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZXRUcmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9ucygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3Q6IFNldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdCA9IHRoaXMuX2dldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zKCk7XG4gICAgY29uc3QgcmVzcG9uc2U6IFRyYW5zYWN0aW9uUmVzcG9uc2VCYXNlID0gYXdhaXQgdGhpcy5fY29ubmVjdG9yLnNldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zKHRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdClcbiAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9KTtcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UuaXNTdWNjZXNzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRSZWxhdGlvbkxpc3RPYmplY3RzKHJlbGF0aW9uUmVxdWVzdDogUmVsYXRpb25SZXF1ZXN0KTogUHJvbWlzZTxSZWxhdGlvbkxpc3RPYmplY3RbXT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0UmVsYXRpb25MaXN0T2JqZWN0cyhyZWxhdGlvblJlcXVlc3QpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHJldHJpZXZlTGluZUltYWdlKGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmdldEFydGljbGVJbWFnZUJ5QXJ0aWNsZU51bWJlcihsaW5lLmFydGljbGVOdW1iZXIpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldEFydGljbGVJbWFnZUJ5QXJ0aWNsZU51bWJlcihhcnRpY2xlTnVtYmVyOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGdvb2RJZDogbnVtYmVyID0gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldEdvb2RJZEZyb21BcnRpY2xlTnIoYXJ0aWNsZU51bWJlcik7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXJ0aWNsZUltYWdlQnlHb29kSWQoZ29vZElkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRBcnRpY2xlSW1hZ2VCeUdvb2RJZChnb29kSWQ6IG51bWJlcik6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgaWYgKCFpc05hTihnb29kSWQpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY29ubmVjdG9yLmdldFNpbmdsZUltYWdlKGdvb2RJZCwgMSwgdHJ1ZSwgdHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhZGRBcnRpY2xlKGFydGljbGVObzogc3RyaW5nLCBhbW91bnQ6IG51bWJlciA9IDEsIHdhcmVob3VzZU5vOiBudW1iZXIgPSAxLCBjb21taXNzaW9uQ29kZTogc3RyaW5nID0gXCIyXCIsIGlzUmV0dXJuOiBib29sZWFuID0gZmFsc2UsIGFib3ZlTGluZU5yOiBudW1iZXIgPSAwLCBiZWxvd0xpbmVOcjogbnVtYmVyID0gMCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLl9jb25uZWN0b3IuYWRkVHJhbnNhY3Rpb25MaW5lKHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi51dWlkLCBUcmFuc2FjdGlvbkxpbmVUeXBlLkFydGljbGVMaW5lLCBhcnRpY2xlTm8sIGFtb3VudCwgd2FyZWhvdXNlTm8sIGNvbW1pc3Npb25Db2RlLCBpc1JldHVybiwgYWJvdmVMaW5lTnIsIGJlbG93TGluZU5yKVxuICAgICAgICAudGhlbihhc3luYyggcmVzcG9uc2U6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChyZWFzb246IFZhbGlkYXRpb25SZXN1bHQpID0+IHtcbiAgICAgICAgcmVzb2x2ZShmYWxzZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhZGRBcnRpY2xlVG9UcmFuc2FjdGlvbih0cmFuc2FjdGlvblV1aWQ6IHN0cmluZywgYXJ0aWNsZU5vOiBzdHJpbmcsIGFtb3VudDogbnVtYmVyID0gMSwgd2FyZWhvdXNlTm86IG51bWJlciA9IDEsIGNvbW1pc3Npb25Db2RlOiBzdHJpbmcgPSBcIjJcIiwgaXNSZXR1cm46IGJvb2xlYW4gPSBmYWxzZSwgYWJvdmVMaW5lTnI6IG51bWJlciA9IDAsIGJlbG93TGluZU5yOiBudW1iZXIgPSAwKTogUHJvbWlzZTxMaW5lT3BlcmF0aW9uUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8TGluZU9wZXJhdGlvblJlc3BvbnNlPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLl9jb25uZWN0b3IuYWRkVHJhbnNhY3Rpb25MaW5lKHRyYW5zYWN0aW9uVXVpZCwgVHJhbnNhY3Rpb25MaW5lVHlwZS5BcnRpY2xlTGluZSwgYXJ0aWNsZU5vLCBhbW91bnQsIHdhcmVob3VzZU5vLCBjb21taXNzaW9uQ29kZSwgaXNSZXR1cm4sIGFib3ZlTGluZU5yLCBiZWxvd0xpbmVOcilcbiAgICAgICAgLnRoZW4oYXN5bmMoIHJlc3BvbnNlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5fcHJvbXB0LnNob3dFcnJvcihlcnJvcik7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChyZWFzb246IFZhbGlkYXRpb25SZXN1bHQpID0+IHtcbiAgICAgICAgICB0aGlzLl9wcm9tcHQuc2hvd0Vycm9yKHJlYXNvbi5nZXRGdWxsRXJyb3JTdHJpbmcoKSk7XG4gICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYWRkVHJhbnNhY3Rpb25MaW5lKGxpbmVUeXBlOiBUcmFuc2FjdGlvbkxpbmVUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFydGljbGVObzogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudDogbnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcmVob3VzZU5vPzogbnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1pc3Npb25Db2RlPzogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmV0dXJuPzogYm9vbGVhbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYm92ZUxpbmVOcj86IG51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWxvd0xpbmVOcj86IG51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1lbWJlcjogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPExpbmVPcGVyYXRpb25SZXNwb25zZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxMaW5lT3BlcmF0aW9uUmVzcG9uc2U+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuX2Nvbm5lY3Rvci5hZGRUcmFuc2FjdGlvbkxpbmUodGhpcy5jdXJyZW50VHJhbnNhY3Rpb24udXVpZCwgbGluZVR5cGUsIGFydGljbGVObywgYW1vdW50LCB3YXJlaG91c2VObywgY29tbWlzc2lvbkNvZGUsIGlzUmV0dXJuLCBhYm92ZUxpbmVOciwgYmVsb3dMaW5lTnIpXG4gICAgICAgIC50aGVuKGFzeW5jIChyZXNwb25zZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5fcmVtZW1iZXJSZXNwb25zZShyZW1lbWJlciwgcmVzcG9uc2UpO1xuICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UpO1xuICAgICAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgocmVhc29uOiBWYWxpZGF0aW9uUmVzdWx0KSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFkZFRleHRMaW5lKFxuICAgICAgICAgICAgICAgIHNob3dPbkRvY3VtZW50czogbnVtYmVyLFxuICAgICAgICAgICAgICAgIHRleHQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgICBhbW91bnQ6IG51bWJlcixcbiAgICAgICAgICAgICAgICBhcnRpY2xlQm91bmQ6IGJvb2xlYW4sXG4gICAgICAgICAgICAgICAgcmVmQXJ0aWNsZUxpbmVOcjogbnVtYmVyLFxuICAgICAgICAgICAgICAgIGFib3ZlTGluZU5yPzogbnVtYmVyLFxuICAgICAgICAgICAgICAgIGJlbG93TGluZU5yPzogbnVtYmVyLFxuICAgICAgICAgICAgICAgIHJlbWVtYmVyOiBib29sZWFuID0gdHJ1ZSk6IFByb21pc2U8TGluZU9wZXJhdGlvblJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPExpbmVPcGVyYXRpb25SZXNwb25zZT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5fY29ubmVjdG9yLmFkZFRleHRMaW5lVG9UcmFuc2FjdGlvbih0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbi51dWlkLCBzaG93T25Eb2N1bWVudHMsIHRleHQsIGFtb3VudCwgYXJ0aWNsZUJvdW5kLCByZWZBcnRpY2xlTGluZU5yLCBhYm92ZUxpbmVOciwgYmVsb3dMaW5lTnIpXG4gICAgICAgIC50aGVuKGFzeW5jIChyZXNwb25zZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5fcmVtZW1iZXJSZXNwb25zZShyZW1lbWJlciwgcmVzcG9uc2UpO1xuICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UpO1xuICAgICAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKHJlYXNvbjogVmFsaWRhdGlvblJlc3VsdCkgPT4ge1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFkZFRleHRMaW5lVG9UcmFuc2FjdGlvbihcbiAgICB0cmFuc2FjdGlvblV1aWQ6IHN0cmluZyxcbiAgICBzaG93T25Eb2N1bWVudHM6IG51bWJlcixcbiAgICB0ZXh0OiBzdHJpbmcsXG4gICAgYW1vdW50OiBudW1iZXIsXG4gICAgYXJ0aWNsZUJvdW5kOiBib29sZWFuLFxuICAgIHJlZkFydGljbGVMaW5lTnI6IG51bWJlcixcbiAgICBhYm92ZUxpbmVOcj86IG51bWJlcixcbiAgICBiZWxvd0xpbmVOcj86IG51bWJlcik6IFByb21pc2U8TGluZU9wZXJhdGlvblJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPExpbmVPcGVyYXRpb25SZXNwb25zZT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5fY29ubmVjdG9yLmFkZFRleHRMaW5lVG9UcmFuc2FjdGlvbih0cmFuc2FjdGlvblV1aWQsIHNob3dPbkRvY3VtZW50cywgdGV4dCwgYW1vdW50LCBhcnRpY2xlQm91bmQsIHJlZkFydGljbGVMaW5lTnIsIGFib3ZlTGluZU5yLCBiZWxvd0xpbmVOcilcbiAgICAgICAgLnRoZW4oYXN5bmMgKHJlc3BvbnNlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChyZWFzb246IFZhbGlkYXRpb25SZXN1bHQpID0+IHtcbiAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VMaW5lU2VxdWVuY2UoXG4gICAgbGluZVV1aWQ6IHN0cmluZyxcbiAgICBhYm92ZUxpbmVOcj86IG51bWJlcixcbiAgICBiZWxvd0xpbmVOcj86IG51bWJlcixcbiAgICByZW1lbWJlcjogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPExpbmVPcGVyYXRpb25SZXNwb25zZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxMaW5lT3BlcmF0aW9uUmVzcG9uc2U+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuX2Nvbm5lY3Rvci5jaGFuZ2VMaW5lU2VxdWVuY2UodGhpcy5jdXJyZW50VHJhbnNhY3Rpb24udXVpZCwgbGluZVV1aWQsIGFib3ZlTGluZU5yLCBiZWxvd0xpbmVOcilcbiAgICAgICAgLnRoZW4oYXN5bmMgKHJlc3BvbnNlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLl9yZW1lbWJlclJlc3BvbnNlKHJlbWVtYmVyLCByZXNwb25zZSk7XG4gICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgocmVhc29uOiBWYWxpZGF0aW9uUmVzdWx0KSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2FuY2VsQWRkVHJhbnNhY3Rpb25MaW5lKGxpbmVVdWlkOiBzdHJpbmcsIHJlbWVtYmVyOiBib29sZWFuID0gdHJ1ZSk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuX2Nvbm5lY3Rvci5jYW5jZWxBZGRUcmFuc2FjdGlvbkxpbmUobGluZVV1aWQpXG4gICAgICAgIC50aGVuKGFzeW5jIChyZXNwb25zZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBpZiAocmVtZW1iZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlbWVtYmVyQ3VycmVudFRyYW5zYWN0aW9uKHJlc3BvbnNlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmlzU3VjY2Vzcykge1xuICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlamVjdChyZXNwb25zZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKHJlYXNvbjogVmFsaWRhdGlvblJlc3VsdCkgPT4ge1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRlbGV0ZVRyYW5zYWN0aW9uTGluZSh0cmFuc2FjdGlvblV1aWQ6IHN0cmluZywgVHJhbnNhY3Rpb25MaW5lVXVpZDogc3RyaW5nLCByZW1lbWJlcjogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPExpbmVPcGVyYXRpb25SZXNwb25zZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxMaW5lT3BlcmF0aW9uUmVzcG9uc2U+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuX2Nvbm5lY3Rvci5kZWxldGVUcmFuc2FjdGlvbkxpbmUodHJhbnNhY3Rpb25VdWlkLCBUcmFuc2FjdGlvbkxpbmVVdWlkKVxuICAgICAgICAudGhlbihhc3luYyAocmVzcG9uc2U6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHRoaXMuX3JlbWVtYmVyUmVzcG9uc2UocmVtZW1iZXIsIHJlc3BvbnNlKTtcbiAgICAgICAgICBpZiAocmVzcG9uc2UuaXNTdWNjZXNzKSB7XG4gICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgocmVhc29uOiBWYWxpZGF0aW9uUmVzdWx0KSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2hhbmdlVHJhbnNhY3Rpb25MaW5lUXVhbnRpdHkobGluZVV1aWQ6IHN0cmluZywgbmV3UXVhbnRpdHk6IG51bWJlciwgcmVtZW1iZXI6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTxMaW5lT3BlcmF0aW9uUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8TGluZU9wZXJhdGlvblJlc3BvbnNlPigocmVzb2x2ZTogRnVuY3Rpb24pID0+IHtcbiAgICAgIHRoaXMuX2Nvbm5lY3Rvci5jaGFuZ2VUcmFuc2FjdGlvbkxpbmVRdWFudGl0eSh0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbi51dWlkLCBsaW5lVXVpZCwgbmV3UXVhbnRpdHkpXG4gICAgICAgIC50aGVuKGFzeW5jIChyZXNwb25zZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmlzU3VjY2Vzcykge1xuICAgICAgICAgICAgdGhpcy5fcmVtZW1iZXJSZXNwb25zZShyZW1lbWJlciwgcmVzcG9uc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgICAgfSkuY2F0Y2goKHJlYXNvbjogVmFsaWRhdGlvblJlc3VsdCkgPT4ge1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZXRSZWxhdGlvbkJ5VXNlcih1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KChyZXNvbHZlOiBGdW5jdGlvbikgPT4ge1xuICAgICAgdGhpcy5fY29ubmVjdG9yLnNldFJlbGF0aW9uQnlVc2VyKHRoaXMuY3VycmVudFRyYW5zYWN0aW9uLnV1aWQsIHVzZXJuYW1lLCBwYXNzd29yZClcbiAgICAgICAgLnRoZW4oYXN5bmMgKGlzU3VjY2VzczogYm9vbGVhbikgPT4ge1xuICAgICAgICAgIHJlc29sdmUoaXNTdWNjZXNzKTtcbiAgICAgICAgfSkuY2F0Y2goKHJlYXNvbjogVmFsaWRhdGlvblJlc3VsdCkgPT4ge1xuICAgICAgICByZXNvbHZlKGZhbHNlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldEN1c3RvbWVyRnVsT2JqZWN0QnlSZWxhdGlvbklkKHJlbGF0aW9uSWQ6IG51bWJlcik6IFByb21pc2U8Q3VzdG9tZXJGdWxsT2JqZWN0PiB7XG4gICAgY29uc3QgcmVsYXRpb25Ocjogc3RyaW5nID0gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldFJlbGF0aW9uTnVtYmVyKHJlbGF0aW9uSWQpO1xuICAgIGlmIChyZWxhdGlvbk5yKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldEN1c3RvbWVyRnVsbE9iamVjdChOdW1iZXIocmVsYXRpb25OcikpO1xuICAgIH1cbiAgICByZXR1cm4gTlVMTF9DVVNUT01FUl9GVUxMX09CSkVDVDtcbiAgfVxuXG4gIC8vIHB1YmxpYyBhc3luYyBzZXRSZWxhdGlvbkJ5VXNlcih1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIC8vICAgY29uc3QgcmVzcG9uc2U6IGJvb2xlYW4gPSBhd2FpdCB0aGlzLl9jb25uZWN0b3Iuc2V0UmVsYXRpb25CeVVzZXIodGhpcy5jdXJyZW50VHJhbnNhY3Rpb24udXVpZCwgdXNlcm5hbWUsIHBhc3N3b3JkKTtcbiAgLy8gICByZXR1cm4gcmVzcG9uc2U7XG4gIC8vIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0VGV4dFR5cGVzKGxhbmd1YWdlQ29kZTogc3RyaW5nKTogUHJvbWlzZTxDb0RvbWFpblZhbHVlW10+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldFRleHRUeXBlcyhsYW5ndWFnZUNvZGUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFN0YW5kYXJkVGV4dHMobGFuZ3VhZ2VDb2RlOiBzdHJpbmcpOiBQcm9taXNlPFN0YW5kYXJkVGV4dFtdPiB7XG4gICAgbGV0IGRhdGE6IFN0YW5kYXJkVGV4dFtdID0gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldFN0YW5kYXJkVGV4dHMobGFuZ3VhZ2VDb2RlKTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRpYWxpemVUcmFuc2FjdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2N1cnJlbnRSZWxhdGlvbikge1xuICAgICAgdGhpcy5fY3VycmVudFJlbGF0aW9uID0gbmV3IEN1c3RvbWVyRnVsbE9iamVjdCgpO1xuICAgICAgdGhpcy5fY3VycmVudFJlbGF0aW9uLnJlbGF0aW9uU3RhdHVzID0gUmVsYXRpb25TdGF0dXMuUmVndWxhckN1c3RvbWVyO1xuICAgICAgdGhpcy5fY3VycmVudFJlbGF0aW9uLnN0YXJ0RGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24ucHJlZmVycmVkRGVsaXZlcnlEYXRlMiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24ucHJlZmVycmVkRGVsaXZlcnlEYXRlMiA9IFwiPVwiO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGFzeW5jIF9yZW1lbWJlckN1cnJlbnRUcmFuc2FjdGlvbih2YWx1ZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24gPSB2YWx1ZS50cmFuc2FjdGlvbkluZm87XG4gICAgdGhpcy5faW5pdGlhbGl6ZVRyYW5zYWN0aW9uKCk7XG5cbiAgICB0aGlzLmN1cnJlbnRMaW5lcyA9IHZhbHVlLnRyYW5zYWN0aW9uTGluZXM7XG4gICAgdGhpcy5jdXJyZW50VG90YWxzID0gdmFsdWUudHJhbnNhY3Rpb25Ub3RhbDtcblxuICAgIHRoaXMuY3VycmVudExpbmVPcGVyYXRpb25TdGF0dXNlcyA9IHZhbHVlLmxpbmVPcGVyYXRpb25TdGF0dXNlcztcblxuICAgIGF3YWl0IHRoaXMuX3VwZGF0ZVJlbGF0aW9uKCk7XG4gICAgdGhpcy50cmFuc2FjdGlvblVwZGF0ZWQuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb25MaW5lU3RhdHVzKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpOiB2b2lkIHtcbiAgICAvLyB0aGlzLl9jdXJyZW50TGluZU9wZXJhdGlvblN0YXR1cy51dWlkID0gdmFsdWUubGluZVV1aWQ7XG4gICAgLy8gdGhpcy5fY3VycmVudExpbmVPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbiA9IHZhbHVlLnBlbmRpbmdSZWFzb247XG4gICAgLy8gdGhpcy5fY3VycmVudExpbmVPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvblR5cGUgPSB2YWx1ZS5wZW5kaW5nUmVhc29uVHlwZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3VwZGF0ZVJlbGF0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbiAmJiB0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbi5yZWxhdGlvbiAmJiB0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbi5yZWxhdGlvbi5yZWxhdGlvbklkKSB7XG4gICAgICBpZiAoIXRoaXMuX2N1cnJlbnRSZWxhdGlvbiB8fCB0aGlzLl9jdXJyZW50UmVsYXRpb24ucmVsYXRpb25JZCAhPT0gdGhpcy5jdXJyZW50VHJhbnNhY3Rpb24ucmVsYXRpb24ucmVsYXRpb25JZCkge1xuICAgICAgICB0aGlzLl9jdXJyZW50UmVsYXRpb24gPSBhd2FpdCB0aGlzLmdldEN1c3RvbWVyRnVsT2JqZWN0QnlSZWxhdGlvbklkKHRoaXMuY3VycmVudFRyYW5zYWN0aW9uLnJlbGF0aW9uLnJlbGF0aW9uSWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zKCk6IFNldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdCB7XG4gICAgY29uc3QgdHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0OiBTZXRUcmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QgPSBuZXcgU2V0VHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0ICgpO1xuICAgIHRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdC5hbGxvd1BhcnRpYWxEZWxpdmVyeSA9IHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi5hbGxvd1BhcnRpYWxEZWxpdmVyeTtcbiAgICB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QuZGVsaXZlcnlEYXRlID0gdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLmRlbGl2ZXJ5RGF0ZTtcbiAgICB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QuZGVsaXZlcnlNZXRob2QgPSB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24uZGVsaXZlcnlNZXRob2Q7XG4gICAgdHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0LmRlbGl2ZXJ5T3B0aW9ucyA9IHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi5kZWxpdmVyeU9wdGlvbnM7XG4gICAgdHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0Lm1hcmtldGluZ0NvZGUgPSB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24ubWFya2V0aW5nQ29kZTtcbiAgICB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3Qub3duUmVmZXJlbmNlID0gdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLm93blJlZmVyZW5jZTtcbiAgICB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QucHJlZmVycmVkRGVsaXZlcnlEYXRlID0gdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLnByZWZlcnJlZERlbGl2ZXJ5RGF0ZTtcbiAgICB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QucHJlZmVycmVkRGVsaXZlcnlEYXRlMiA9IHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi5wcmVmZXJyZWREZWxpdmVyeURhdGUyO1xuICAgIHRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdC5yZWxhdGlvblJlZmVyZW5jZSA9IHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi5yZWxhdGlvblJlZmVyZW5jZTtcbiAgICB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QucmVtYXJrID0gdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLnJlbWFyaztcbiAgICB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QudHJhbnNhY3Rpb25VdWlkID0gdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLnV1aWQ7XG4gICAgdHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0LnRyYW5zYWN0aW9uQWRkcmVzcyA9IHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkFkZHJlc3MubmF3TnI7XG4gICAgdHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0Lmludm9pY2VBZGRyZXNzID0gdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLmludm9pY2VBZGRyZXNzID9cbiAgICAgIHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi5pbnZvaWNlQWRkcmVzcy5uYXdOciA6XG4gICAgICB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25BZGRyZXNzLm5hd05yO1xuICAgIHJldHVybiB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3Q7XG4gIH1cblxuICBwcml2YXRlIF9yZW1lbWJlclJlc3BvbnNlKHJlbWVtYmVyOiBib29sZWFuLCByZXNwb25zZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKTogdm9pZCB7XG4gICAgaWYgKHJlbWVtYmVyKSB7XG4gICAgICB0aGlzLl9yZW1lbWJlckN1cnJlbnRUcmFuc2FjdGlvbihyZXNwb25zZSk7XG4gICAgICB0aGlzLl9yZW1lbWJlckN1cnJlbnRUcmFuc2FjdGlvbkxpbmVTdGF0dXMocmVzcG9uc2UpO1xuICAgIH1cbiAgfVxufVxuIl19
|