@hitsoft/abp.kadooglu 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/esm2020/lib/hit-components/hit-carrier-person/hit-carrier-person-form/hit-carrier-person-form.component.mjs +1 -1
  2. package/esm2020/lib/hit-components/hit-entry-weighing/hit-entry-weighing-form/hit-entry-weighing-form.component.mjs +112 -59
  3. package/esm2020/lib/hit-components/hit-entry-weighing/hit-entry-weighing-list/hit-entry-weighing-list.component.mjs +3 -21
  4. package/esm2020/lib/hit-components/hit-factory-entry/hit-factory-entry-form/hit-factory-entry-form.component.mjs +1 -1
  5. package/esm2020/lib/hit-components/hit-knt-item-esl/hit-knt-item-esl-form/hit-knt-item-esl-form.component.mjs +1 -1
  6. package/esm2020/lib/hit-components/hit-vehicle-type/hit-vehicle-type-form/hit-vehicle-type-form.component.mjs +1 -1
  7. package/esm2020/lib/hit-proxy/hit-entry-weighing/hit-entry-weighing.service.mjs +1 -4
  8. package/esm2020/lib/hit-proxy/hit-stock-transfer/models.mjs +1 -1
  9. package/esm2020/lib/services/scale-signalr.service.mjs +36 -8
  10. package/esm2020/lib/shared/hit-modal/hit-modal.component.mjs +75 -14
  11. package/esm2020/lib/shared/hit-modal/hit-ui.module.mjs +5 -2
  12. package/fesm2015/hitsoft-abp.kadooglu.mjs +271 -146
  13. package/fesm2015/hitsoft-abp.kadooglu.mjs.map +1 -1
  14. package/fesm2020/hitsoft-abp.kadooglu.mjs +269 -145
  15. package/fesm2020/hitsoft-abp.kadooglu.mjs.map +1 -1
  16. package/lib/hit-components/hit-entry-weighing/hit-entry-weighing-form/hit-entry-weighing-form.component.d.ts +16 -91
  17. package/lib/hit-components/hit-entry-weighing/hit-entry-weighing-list/hit-entry-weighing-list.component.d.ts +0 -1
  18. package/lib/hit-proxy/hit-entry-weighing/hit-entry-weighing.service.d.ts +0 -3
  19. package/lib/hit-proxy/hit-stock-transfer/models.d.ts +4 -0
  20. package/lib/services/scale-signalr.service.d.ts +5 -0
  21. package/lib/shared/hit-modal/hit-modal.component.d.ts +15 -3
  22. package/lib/shared/hit-modal/hit-ui.module.d.ts +1 -1
  23. package/package.json +1 -1
@@ -122,7 +122,7 @@ export class HitKntItemEslFormComponent {
122
122
  }
123
123
  }
124
124
  HitKntItemEslFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitKntItemEslFormComponent, deps: [{ token: i1.HitKntItemEslService }, { token: i2.HitItemService }, { token: i3.ConfirmationService }, { token: i4.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
125
- HitKntItemEslFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitKntItemEslFormComponent, selector: "lib-hit-knt-item-esl-form", inputs: { visible: "visible", record: "record" }, outputs: { visibleChange: "visibleChange", saved: "saved", cancelled: "cancelled" }, usesOnChanges: true, ngImport: i0, template: "<abp-modal [visible]=\"visible\" (visibleChange)=\"onModalVisibleChange($event)\" [options]=\"{ size: 'lg', backdrop: 'static' }\">\r\n <ng-template #abpHeader>\r\n <h3>{{ record?.code ? ('AbpUi::Edit' | abpLocalization) : ('Kadooglu::NewRecord' | abpLocalization) }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <div class=\"border rounded p-3 mb-3\">\r\n <div class=\"border-bottom pb-2 mb-3 fw-bold text-secondary\">\r\n <i class=\"fa fa-link me-2\"></i>{{ 'Kadooglu::BasicInfo' | abpLocalization }}\r\n </div>\r\n <div class=\"row mb-3\">\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label mb-1 small fw-semibold text-muted\">{{ 'Kadooglu::ExitItemCode' | abpLocalization }} <span class=\"text-danger\">*</span></label>\r\n <hit-lookup-select\r\n [loadFn]=\"loadItems\"\r\n [columns]=\"itemColumns\"\r\n displayName=\"itemName\"\r\n keyExpr=\"itemCode\"\r\n [editingData]=\"u_CikisKalemTanimi\"\r\n [disabled]=\"!!record?.code\"\r\n (selected)=\"onExitItemSelected($event)\">\r\n </hit-lookup-select>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label mb-1 small fw-semibold text-muted\">{{ 'Kadooglu::ExitItemDesc' | abpLocalization }}</label>\r\n <dx-text-box [(value)]=\"u_CikisKalemTanimi\" [readOnly]=\"true\" width=\"100%\"></dx-text-box>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label mb-1 small fw-semibold text-muted\">{{ 'Kadooglu::EntryItemCode' | abpLocalization }} <span class=\"text-danger\">*</span></label>\r\n <hit-lookup-select\r\n [loadFn]=\"loadItems\"\r\n [columns]=\"itemColumns\"\r\n displayName=\"itemName\"\r\n keyExpr=\"itemCode\"\r\n [editingData]=\"u_GirisKalemTanimi\"\r\n (selected)=\"onEntryItemSelected($event)\">\r\n </hit-lookup-select>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label mb-1 small fw-semibold text-muted\">{{ 'Kadooglu::EntryItemDesc' | abpLocalization }}</label>\r\n <dx-text-box [(value)]=\"u_GirisKalemTanimi\" [readOnly]=\"true\" width=\"100%\"></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Durum -->\r\n <div class=\"border rounded p-3 mt-3\">\r\n <div class=\"border-bottom pb-2 mb-3 fw-bold text-secondary\">\r\n <i class=\"fa fa-toggle-on me-2\"></i>{{ 'Kadooglu::Status' | abpLocalization }}\r\n </div>\r\n <dx-check-box [(value)]=\"isActive\" [text]=\"'Kadooglu::IsActive' | abpLocalization\"></dx-check-box>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancel()\">\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-save\" buttonType=\"button\" [loading]=\"isLoading\" (click)=\"save()\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n", dependencies: [{ kind: "component", type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "component", type: i5.HitModalComponent, selector: "hit-lookup-select", inputs: ["displayName", "keyExpr", "modalSize", "getFn", "loadFn", "columns", "isVisible", "disabled", "readOnly", "editingData"], outputs: ["selected"] }, { kind: "component", type: i6.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i6.DxCheckBoxComponent, selector: "dx-check-box", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "enableThreeStateBehavior", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "iconSize", "isValid", "name", "readOnly", "rtlEnabled", "tabIndex", "text", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "enableThreeStateBehaviorChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconSizeChange", "isValidChange", "nameChange", "readOnlyChange", "rtlEnabledChange", "tabIndexChange", "textChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
125
+ HitKntItemEslFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitKntItemEslFormComponent, selector: "lib-hit-knt-item-esl-form", inputs: { visible: "visible", record: "record" }, outputs: { visibleChange: "visibleChange", saved: "saved", cancelled: "cancelled" }, usesOnChanges: true, ngImport: i0, template: "<abp-modal [visible]=\"visible\" (visibleChange)=\"onModalVisibleChange($event)\" [options]=\"{ size: 'lg', backdrop: 'static' }\">\r\n <ng-template #abpHeader>\r\n <h3>{{ record?.code ? ('AbpUi::Edit' | abpLocalization) : ('Kadooglu::NewRecord' | abpLocalization) }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <div class=\"border rounded p-3 mb-3\">\r\n <div class=\"border-bottom pb-2 mb-3 fw-bold text-secondary\">\r\n <i class=\"fa fa-link me-2\"></i>{{ 'Kadooglu::BasicInfo' | abpLocalization }}\r\n </div>\r\n <div class=\"row mb-3\">\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label mb-1 small fw-semibold text-muted\">{{ 'Kadooglu::ExitItemCode' | abpLocalization }} <span class=\"text-danger\">*</span></label>\r\n <hit-lookup-select\r\n [loadFn]=\"loadItems\"\r\n [columns]=\"itemColumns\"\r\n displayName=\"itemName\"\r\n keyExpr=\"itemCode\"\r\n [editingData]=\"u_CikisKalemTanimi\"\r\n [disabled]=\"!!record?.code\"\r\n (selected)=\"onExitItemSelected($event)\">\r\n </hit-lookup-select>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label mb-1 small fw-semibold text-muted\">{{ 'Kadooglu::ExitItemDesc' | abpLocalization }}</label>\r\n <dx-text-box [(value)]=\"u_CikisKalemTanimi\" [readOnly]=\"true\" width=\"100%\"></dx-text-box>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label mb-1 small fw-semibold text-muted\">{{ 'Kadooglu::EntryItemCode' | abpLocalization }} <span class=\"text-danger\">*</span></label>\r\n <hit-lookup-select\r\n [loadFn]=\"loadItems\"\r\n [columns]=\"itemColumns\"\r\n displayName=\"itemName\"\r\n keyExpr=\"itemCode\"\r\n [editingData]=\"u_GirisKalemTanimi\"\r\n (selected)=\"onEntryItemSelected($event)\">\r\n </hit-lookup-select>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label mb-1 small fw-semibold text-muted\">{{ 'Kadooglu::EntryItemDesc' | abpLocalization }}</label>\r\n <dx-text-box [(value)]=\"u_GirisKalemTanimi\" [readOnly]=\"true\" width=\"100%\"></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Durum -->\r\n <div class=\"border rounded p-3 mt-3\">\r\n <div class=\"border-bottom pb-2 mb-3 fw-bold text-secondary\">\r\n <i class=\"fa fa-toggle-on me-2\"></i>{{ 'Kadooglu::Status' | abpLocalization }}\r\n </div>\r\n <dx-check-box [(value)]=\"isActive\" [text]=\"'Kadooglu::IsActive' | abpLocalization\"></dx-check-box>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancel()\">\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-save\" buttonType=\"button\" [loading]=\"isLoading\" (click)=\"save()\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n", dependencies: [{ kind: "component", type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "component", type: i5.HitModalComponent, selector: "hit-lookup-select", inputs: ["displayName", "keyExpr", "modalSize", "getFn", "loadFn", "columns", "isVisible", "disabled", "readOnly", "showDateFilter", "defaultDateFrom", "defaultDateTo", "editingData"], outputs: ["selected"] }, { kind: "component", type: i6.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i6.DxCheckBoxComponent, selector: "dx-check-box", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "enableThreeStateBehavior", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "iconSize", "isValid", "name", "readOnly", "rtlEnabled", "tabIndex", "text", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "enableThreeStateBehaviorChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconSizeChange", "isValidChange", "nameChange", "readOnlyChange", "rtlEnabledChange", "tabIndexChange", "textChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] });
126
126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitKntItemEslFormComponent, decorators: [{
127
127
  type: Component,
128
128
  args: [{ selector: 'lib-hit-knt-item-esl-form', template: "<abp-modal [visible]=\"visible\" (visibleChange)=\"onModalVisibleChange($event)\" [options]=\"{ size: 'lg', backdrop: 'static' }\">\r\n <ng-template #abpHeader>\r\n <h3>{{ record?.code ? ('AbpUi::Edit' | abpLocalization) : ('Kadooglu::NewRecord' | abpLocalization) }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <div class=\"border rounded p-3 mb-3\">\r\n <div class=\"border-bottom pb-2 mb-3 fw-bold text-secondary\">\r\n <i class=\"fa fa-link me-2\"></i>{{ 'Kadooglu::BasicInfo' | abpLocalization }}\r\n </div>\r\n <div class=\"row mb-3\">\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label mb-1 small fw-semibold text-muted\">{{ 'Kadooglu::ExitItemCode' | abpLocalization }} <span class=\"text-danger\">*</span></label>\r\n <hit-lookup-select\r\n [loadFn]=\"loadItems\"\r\n [columns]=\"itemColumns\"\r\n displayName=\"itemName\"\r\n keyExpr=\"itemCode\"\r\n [editingData]=\"u_CikisKalemTanimi\"\r\n [disabled]=\"!!record?.code\"\r\n (selected)=\"onExitItemSelected($event)\">\r\n </hit-lookup-select>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label mb-1 small fw-semibold text-muted\">{{ 'Kadooglu::ExitItemDesc' | abpLocalization }}</label>\r\n <dx-text-box [(value)]=\"u_CikisKalemTanimi\" [readOnly]=\"true\" width=\"100%\"></dx-text-box>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label mb-1 small fw-semibold text-muted\">{{ 'Kadooglu::EntryItemCode' | abpLocalization }} <span class=\"text-danger\">*</span></label>\r\n <hit-lookup-select\r\n [loadFn]=\"loadItems\"\r\n [columns]=\"itemColumns\"\r\n displayName=\"itemName\"\r\n keyExpr=\"itemCode\"\r\n [editingData]=\"u_GirisKalemTanimi\"\r\n (selected)=\"onEntryItemSelected($event)\">\r\n </hit-lookup-select>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label mb-1 small fw-semibold text-muted\">{{ 'Kadooglu::EntryItemDesc' | abpLocalization }}</label>\r\n <dx-text-box [(value)]=\"u_GirisKalemTanimi\" [readOnly]=\"true\" width=\"100%\"></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Durum -->\r\n <div class=\"border rounded p-3 mt-3\">\r\n <div class=\"border-bottom pb-2 mb-3 fw-bold text-secondary\">\r\n <i class=\"fa fa-toggle-on me-2\"></i>{{ 'Kadooglu::Status' | abpLocalization }}\r\n </div>\r\n <dx-check-box [(value)]=\"isActive\" [text]=\"'Kadooglu::IsActive' | abpLocalization\"></dx-check-box>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancel()\">\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-save\" buttonType=\"button\" [loading]=\"isLoading\" (click)=\"save()\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n" }]
@@ -125,7 +125,7 @@ export class HitVehicleTypeFormComponent {
125
125
  }
126
126
  }
127
127
  HitVehicleTypeFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitVehicleTypeFormComponent, deps: [{ token: i1.HitVehicleTypeService }, { token: i2.HitWarehouseService }, { token: i3.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
128
- HitVehicleTypeFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitVehicleTypeFormComponent, selector: "lib-hit-vehicle-type-form", inputs: { visible: "visible", record: "record" }, outputs: { visibleChange: "visibleChange", saved: "saved", cancelled: "cancelled" }, usesOnChanges: true, ngImport: i0, template: "<abp-modal [visible]=\"visible\" (visibleChange)=\"onModalVisibleChange($event)\" [options]=\"{ size: 'lg', backdrop: 'static' }\">\r\n <ng-template #abpHeader>\r\n <h3>{{ record?.code ? ('AbpUi::Edit' | abpLocalization) : ('Kadooglu::NewRecord' | abpLocalization) }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <div class=\"border rounded p-3 mb-3\">\r\n <div class=\"border-bottom pb-2 mb-3 fw-bold text-secondary\">\r\n <i class=\"fa fa-truck me-2\"></i>{{ 'Kadooglu::BasicInfo' | abpLocalization }}\r\n </div>\r\n <div class=\"row mb-3\">\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label mb-1 small fw-semibold text-muted\">{{ 'Kadooglu::Code' | abpLocalization }} <span class=\"text-danger\">*</span></label>\r\n <dx-text-box [(value)]=\"code\" [disabled]=\"!!record?.code\" placeholder=\"Ara\u00E7 hareket t\u00FCr\u00FC kodu\" width=\"100%\"></dx-text-box>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label mb-1 small fw-semibold text-muted\">{{ 'Kadooglu::Name' | abpLocalization }} <span class=\"text-danger\">*</span></label>\r\n <dx-text-box [(value)]=\"name\" placeholder=\"Ara\u00E7 hareket t\u00FCr\u00FC ad\u0131\" width=\"100%\"></dx-text-box>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 mb-2\">\r\n <dx-check-box [(value)]=\"trtmYpilck\" [text]=\"'Kadooglu::IsWeighingRequired' | abpLocalization\"></dx-check-box>\r\n </div>\r\n <div class=\"col-md-12\">\r\n <dx-check-box [(value)]=\"malGC\" text=\"Mal G/\u00C7 Yap\u0131lacak M\u0131?\"></dx-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"malGC\" class=\"border rounded p-3\">\r\n <div class=\"border-bottom pb-2 mb-3 fw-bold text-secondary\">\r\n <i class=\"fa fa-warehouse me-2\"></i>{{ 'Kadooglu::WarehouseSettings' | abpLocalization }}\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label mb-1 small fw-semibold text-muted\">{{ 'Kadooglu::SourceWarehouse' | abpLocalization }}</label>\r\n <hit-lookup-select\r\n [getFn]=\"warehouseData\"\r\n [columns]=\"warehouseColumns\"\r\n displayName=\"warehouseCode\"\r\n keyExpr=\"warehouseCode\"\r\n [editingData]=\"sourceWH\"\r\n (selected)=\"onSourceWHSelected($event)\">\r\n </hit-lookup-select>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label mb-1 small fw-semibold text-muted\">{{ 'Kadooglu::TargetWarehouse' | abpLocalization }}</label>\r\n <hit-lookup-select\r\n [getFn]=\"warehouseData\"\r\n [columns]=\"warehouseColumns\"\r\n displayName=\"warehouseCode\"\r\n keyExpr=\"warehouseCode\"\r\n [editingData]=\"targetWH\"\r\n (selected)=\"onTargetWHSelected($event)\">\r\n </hit-lookup-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Durum -->\r\n <div class=\"border rounded p-3 mt-3\">\r\n <div class=\"border-bottom pb-2 mb-3 fw-bold text-secondary\">\r\n <i class=\"fa fa-toggle-on me-2\"></i>{{ 'Kadooglu::Status' | abpLocalization }}\r\n </div>\r\n <dx-check-box [(value)]=\"isActive\" [text]=\"'Kadooglu::IsActive' | abpLocalization\"></dx-check-box>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancel()\">\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-save\" buttonType=\"button\" [loading]=\"isLoading\" (click)=\"save()\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "component", type: i5.HitModalComponent, selector: "hit-lookup-select", inputs: ["displayName", "keyExpr", "modalSize", "getFn", "loadFn", "columns", "isVisible", "disabled", "readOnly", "editingData"], outputs: ["selected"] }, { kind: "component", type: i6.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i6.DxCheckBoxComponent, selector: "dx-check-box", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "enableThreeStateBehavior", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "iconSize", "isValid", "name", "readOnly", "rtlEnabled", "tabIndex", "text", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "enableThreeStateBehaviorChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconSizeChange", "isValidChange", "nameChange", "readOnlyChange", "rtlEnabledChange", "tabIndexChange", "textChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "pipe", type: i7.LocalizationPipe, name: "abpLocalization" }] });
128
+ HitVehicleTypeFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitVehicleTypeFormComponent, selector: "lib-hit-vehicle-type-form", inputs: { visible: "visible", record: "record" }, outputs: { visibleChange: "visibleChange", saved: "saved", cancelled: "cancelled" }, usesOnChanges: true, ngImport: i0, template: "<abp-modal [visible]=\"visible\" (visibleChange)=\"onModalVisibleChange($event)\" [options]=\"{ size: 'lg', backdrop: 'static' }\">\r\n <ng-template #abpHeader>\r\n <h3>{{ record?.code ? ('AbpUi::Edit' | abpLocalization) : ('Kadooglu::NewRecord' | abpLocalization) }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <div class=\"border rounded p-3 mb-3\">\r\n <div class=\"border-bottom pb-2 mb-3 fw-bold text-secondary\">\r\n <i class=\"fa fa-truck me-2\"></i>{{ 'Kadooglu::BasicInfo' | abpLocalization }}\r\n </div>\r\n <div class=\"row mb-3\">\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label mb-1 small fw-semibold text-muted\">{{ 'Kadooglu::Code' | abpLocalization }} <span class=\"text-danger\">*</span></label>\r\n <dx-text-box [(value)]=\"code\" [disabled]=\"!!record?.code\" placeholder=\"Ara\u00E7 hareket t\u00FCr\u00FC kodu\" width=\"100%\"></dx-text-box>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label mb-1 small fw-semibold text-muted\">{{ 'Kadooglu::Name' | abpLocalization }} <span class=\"text-danger\">*</span></label>\r\n <dx-text-box [(value)]=\"name\" placeholder=\"Ara\u00E7 hareket t\u00FCr\u00FC ad\u0131\" width=\"100%\"></dx-text-box>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 mb-2\">\r\n <dx-check-box [(value)]=\"trtmYpilck\" [text]=\"'Kadooglu::IsWeighingRequired' | abpLocalization\"></dx-check-box>\r\n </div>\r\n <div class=\"col-md-12\">\r\n <dx-check-box [(value)]=\"malGC\" text=\"Mal G/\u00C7 Yap\u0131lacak M\u0131?\"></dx-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"malGC\" class=\"border rounded p-3\">\r\n <div class=\"border-bottom pb-2 mb-3 fw-bold text-secondary\">\r\n <i class=\"fa fa-warehouse me-2\"></i>{{ 'Kadooglu::WarehouseSettings' | abpLocalization }}\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label mb-1 small fw-semibold text-muted\">{{ 'Kadooglu::SourceWarehouse' | abpLocalization }}</label>\r\n <hit-lookup-select\r\n [getFn]=\"warehouseData\"\r\n [columns]=\"warehouseColumns\"\r\n displayName=\"warehouseCode\"\r\n keyExpr=\"warehouseCode\"\r\n [editingData]=\"sourceWH\"\r\n (selected)=\"onSourceWHSelected($event)\">\r\n </hit-lookup-select>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label mb-1 small fw-semibold text-muted\">{{ 'Kadooglu::TargetWarehouse' | abpLocalization }}</label>\r\n <hit-lookup-select\r\n [getFn]=\"warehouseData\"\r\n [columns]=\"warehouseColumns\"\r\n displayName=\"warehouseCode\"\r\n keyExpr=\"warehouseCode\"\r\n [editingData]=\"targetWH\"\r\n (selected)=\"onTargetWHSelected($event)\">\r\n </hit-lookup-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Durum -->\r\n <div class=\"border rounded p-3 mt-3\">\r\n <div class=\"border-bottom pb-2 mb-3 fw-bold text-secondary\">\r\n <i class=\"fa fa-toggle-on me-2\"></i>{{ 'Kadooglu::Status' | abpLocalization }}\r\n </div>\r\n <dx-check-box [(value)]=\"isActive\" [text]=\"'Kadooglu::IsActive' | abpLocalization\"></dx-check-box>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancel()\">\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-save\" buttonType=\"button\" [loading]=\"isLoading\" (click)=\"save()\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "component", type: i5.HitModalComponent, selector: "hit-lookup-select", inputs: ["displayName", "keyExpr", "modalSize", "getFn", "loadFn", "columns", "isVisible", "disabled", "readOnly", "showDateFilter", "defaultDateFrom", "defaultDateTo", "editingData"], outputs: ["selected"] }, { kind: "component", type: i6.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i6.DxCheckBoxComponent, selector: "dx-check-box", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "enableThreeStateBehavior", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "iconSize", "isValid", "name", "readOnly", "rtlEnabled", "tabIndex", "text", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "enableThreeStateBehaviorChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconSizeChange", "isValidChange", "nameChange", "readOnlyChange", "rtlEnabledChange", "tabIndexChange", "textChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "pipe", type: i7.LocalizationPipe, name: "abpLocalization" }] });
129
129
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitVehicleTypeFormComponent, decorators: [{
130
130
  type: Component,
131
131
  args: [{ selector: 'lib-hit-vehicle-type-form', template: "<abp-modal [visible]=\"visible\" (visibleChange)=\"onModalVisibleChange($event)\" [options]=\"{ size: 'lg', backdrop: 'static' }\">\r\n <ng-template #abpHeader>\r\n <h3>{{ record?.code ? ('AbpUi::Edit' | abpLocalization) : ('Kadooglu::NewRecord' | abpLocalization) }}</h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <div class=\"border rounded p-3 mb-3\">\r\n <div class=\"border-bottom pb-2 mb-3 fw-bold text-secondary\">\r\n <i class=\"fa fa-truck me-2\"></i>{{ 'Kadooglu::BasicInfo' | abpLocalization }}\r\n </div>\r\n <div class=\"row mb-3\">\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label mb-1 small fw-semibold text-muted\">{{ 'Kadooglu::Code' | abpLocalization }} <span class=\"text-danger\">*</span></label>\r\n <dx-text-box [(value)]=\"code\" [disabled]=\"!!record?.code\" placeholder=\"Ara\u00E7 hareket t\u00FCr\u00FC kodu\" width=\"100%\"></dx-text-box>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label mb-1 small fw-semibold text-muted\">{{ 'Kadooglu::Name' | abpLocalization }} <span class=\"text-danger\">*</span></label>\r\n <dx-text-box [(value)]=\"name\" placeholder=\"Ara\u00E7 hareket t\u00FCr\u00FC ad\u0131\" width=\"100%\"></dx-text-box>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 mb-2\">\r\n <dx-check-box [(value)]=\"trtmYpilck\" [text]=\"'Kadooglu::IsWeighingRequired' | abpLocalization\"></dx-check-box>\r\n </div>\r\n <div class=\"col-md-12\">\r\n <dx-check-box [(value)]=\"malGC\" text=\"Mal G/\u00C7 Yap\u0131lacak M\u0131?\"></dx-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"malGC\" class=\"border rounded p-3\">\r\n <div class=\"border-bottom pb-2 mb-3 fw-bold text-secondary\">\r\n <i class=\"fa fa-warehouse me-2\"></i>{{ 'Kadooglu::WarehouseSettings' | abpLocalization }}\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label mb-1 small fw-semibold text-muted\">{{ 'Kadooglu::SourceWarehouse' | abpLocalization }}</label>\r\n <hit-lookup-select\r\n [getFn]=\"warehouseData\"\r\n [columns]=\"warehouseColumns\"\r\n displayName=\"warehouseCode\"\r\n keyExpr=\"warehouseCode\"\r\n [editingData]=\"sourceWH\"\r\n (selected)=\"onSourceWHSelected($event)\">\r\n </hit-lookup-select>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <label class=\"form-label mb-1 small fw-semibold text-muted\">{{ 'Kadooglu::TargetWarehouse' | abpLocalization }}</label>\r\n <hit-lookup-select\r\n [getFn]=\"warehouseData\"\r\n [columns]=\"warehouseColumns\"\r\n displayName=\"warehouseCode\"\r\n keyExpr=\"warehouseCode\"\r\n [editingData]=\"targetWH\"\r\n (selected)=\"onTargetWHSelected($event)\">\r\n </hit-lookup-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Durum -->\r\n <div class=\"border rounded p-3 mt-3\">\r\n <div class=\"border-bottom pb-2 mb-3 fw-bold text-secondary\">\r\n <i class=\"fa fa-toggle-on me-2\"></i>{{ 'Kadooglu::Status' | abpLocalization }}\r\n </div>\r\n <dx-check-box [(value)]=\"isActive\" [text]=\"'Kadooglu::IsActive' | abpLocalization\"></dx-check-box>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancel()\">\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <abp-button iconClass=\"fa fa-save\" buttonType=\"button\" [loading]=\"isLoading\" (click)=\"save()\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n" }]
@@ -85,9 +85,6 @@ export class HitEntryWeighingService {
85
85
  doGoodsMovement(docEntry) {
86
86
  return this.restService.request({ method: 'POST', url: `${this.baseUrl}/${docEntry}/do-goods-movement` }, { apiName: this.apiName }).pipe(map(r => r?.items));
87
87
  }
88
- getWeighingSlip(docEntry) {
89
- return this.restService.request({ method: 'GET', url: `${this.baseUrl}/${docEntry}/weighing-slip` }, { apiName: this.apiName });
90
- }
91
88
  }
92
89
  HitEntryWeighingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitEntryWeighingService, deps: [{ token: i1.RestService }, { token: i2.HitScaleService }, { token: i3.HitPlateService }, { token: i4.HitCarrierPersonService }, { token: i5.HitBusinessPartnerService }, { token: i6.HitItemService }, { token: i7.HitPurchaseDeliveryNoteService }, { token: i8.HitStockTransferService }, { token: i9.HitGateService }, { token: i10.HitVehicleTypeService }], target: i0.ɵɵFactoryTarget.Injectable });
93
90
  HitEntryWeighingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitEntryWeighingService, providedIn: 'root' });
@@ -95,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
95
92
  type: Injectable,
96
93
  args: [{ providedIn: 'root' }]
97
94
  }], ctorParameters: function () { return [{ type: i1.RestService }, { type: i2.HitScaleService }, { type: i3.HitPlateService }, { type: i4.HitCarrierPersonService }, { type: i5.HitBusinessPartnerService }, { type: i6.HitItemService }, { type: i7.HitPurchaseDeliveryNoteService }, { type: i8.HitStockTransferService }, { type: i9.HitGateService }, { type: i10.HitVehicleTypeService }]; } });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWVudHJ5LXdlaWdoaW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rYWRvb2dsdS9zcmMvbGliL2hpdC1wcm94eS9oaXQtZW50cnktd2VpZ2hpbmcvaGl0LWVudHJ5LXdlaWdoaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQWMsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7QUEwQnZDLE1BQU0sT0FBTyx1QkFBdUI7SUFJbEMsWUFDVSxXQUF3QixFQUN4QixZQUE2QixFQUM3QixZQUE2QixFQUM3QixvQkFBNkMsRUFDN0Msc0JBQWlELEVBQ2pELFdBQTJCLEVBQzNCLDJCQUEyRCxFQUMzRCxvQkFBNkMsRUFDN0MsV0FBMkIsRUFDM0Isa0JBQXlDO1FBVHpDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFpQjtRQUM3QixpQkFBWSxHQUFaLFlBQVksQ0FBaUI7UUFDN0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUF5QjtRQUM3QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQTJCO1FBQ2pELGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQixnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQWdDO1FBQzNELHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBeUI7UUFDN0MsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBdUI7UUFibkQsWUFBTyxHQUFHLFVBQVUsQ0FBQztRQUNyQixZQUFPLEdBQUcsMENBQTBDLENBQUM7SUFhbEQsQ0FBQztJQUVKLE9BQU8sQ0FBQyxNQUFZO1FBQ2xCLE1BQU0sYUFBYSxHQUFHLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxHQUFHLE1BQU0sRUFBRSxD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TUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLFFBQVEsZ0JBQWdCLEVBQUUsRUFDbkUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUMxQixDQUFDO0lBQ0osQ0FBQzs7b0hBdEpVLHVCQUF1Qjt3SEFBdkIsdUJBQXVCLGNBRFYsTUFBTTsyRkFDbkIsdUJBQXVCO2tCQURuQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBtYXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBFbnRyeVdlaWdoaW5nLFxyXG4gIEVudHJ5V2VpZ2hpbmdBY2NvdW50LFxyXG4gIEVudHJ5V2VpZ2hpbmdEb2N1bWVudCxcclxuICBFbnRyeVdlaWdoaW5nRHJpdmVyLFxyXG4gIEVudHJ5V2VpZ2hpbmdHYXRlLFxyXG4gIEVudHJ5V2VpZ2hpbmdTY2FsZSxcclxuICBFbnRyeVdlaWdoaW5nU3RvY2tJdGVtLFxyXG4gIEVudHJ5V2VpZ2hpbmdUcmFpbGVyUGxhdGUsXHJcbiAgRW50cnlXZWlnaGluZ1RydWNrUGxhdGUsXHJcbiAgRW50cnlXZWlnaGluZ1ZlaGljbGVUeXBlLFxyXG4gIFNhdmVFbnRyeVdlaWdoaW5nRHRvLFxyXG59IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgQXBpUmVzcG9uc2UgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBIaXRTY2FsZVNlcnZpY2UgfSBmcm9tICcuLi9oaXQtc2NhbGUvaGl0LXNjYWxlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIaXRQbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9oaXQtcGxhdGUvaGl0LXBsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIaXRDYXJyaWVyUGVyc29uU2VydmljZSB9IGZyb20gJy4uL2hpdC1jYXJyaWVyLXBlcnNvbi9oaXQtY2Fycmllci1wZXJzb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEhpdEJ1c2luZXNzUGFydG5lclNlcnZpY2UgfSBmcm9tICcuLi9oaXQtYnVzaW5lc3MtcGFydG5lci9oaXQtYnVzaW5lc3MtcGFydG5lci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSGl0SXRlbVNlcnZpY2UgfSBmcm9tICcuLi9oaXQtaXRlbS9oaXQtaXRlbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSGl0UHVyY2hhc2VEZWxpdmVyeU5vdGVTZXJ2aWNlIH0gZnJvbSAnLi4vaGl0LXB1cmNoYXNlLWRlbGl2ZXJ5LW5vdGUvaGl0LXB1cmNoYXNlLWRlbGl2ZXJ5LW5vdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEhpdFN0b2NrVHJhbnNmZXJTZXJ2aWNlIH0gZnJvbSAnLi4vaGl0LXN0b2NrLXRyYW5zZmVyL2hpdC1zdG9jay10cmFuc2Zlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSGl0R2F0ZVNlcnZpY2UgfSBmcm9tICcuLi9oaXQtZ2F0ZS9oaXQtZ2F0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSGl0VmVoaWNsZVR5cGVTZXJ2aWNlIH0gZnJvbSAnLi4vaGl0LXZlaGljbGUtdHlwZS9oaXQtdmVoaWNsZS10eXBlLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEhpdEVudHJ5V2VpZ2hpbmdTZXJ2aWNlIHtcclxuICBhcGlOYW1lID0gJ0thZG9vZ2x1JztcclxuICBiYXNlVXJsID0gJy9hcGkvZW50ZWdyYXRpb24tc2VydmljZS9lbnRyeS13ZWlnaGluZ3MnO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzY2FsZVNlcnZpY2U6IEhpdFNjYWxlU2VydmljZSxcclxuICAgIHByaXZhdGUgcGxhdGVTZXJ2aWNlOiBIaXRQbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNhcnJpZXJQZXJzb25TZXJ2aWNlOiBIaXRDYXJyaWVyUGVyc29uU2VydmljZSxcclxuICAgIHByaXZhdGUgYnVzaW5lc3NQYXJ0bmVyU2VydmljZTogSGl0QnVzaW5lc3NQYXJ0bmVyU2VydmljZSxcclxuICAgIHByaXZhdGUgaXRlbVNlcnZpY2U6IEhpdEl0ZW1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwdXJjaGFzZURlbGl2ZXJ5Tm90ZVNlcnZpY2U6IEhpdFB1cmNoYXNlRGVsaXZlcnlOb3RlU2VydmljZSxcclxuICAgIHByaXZhdGUgc3RvY2tUcmFuc2ZlclNlcnZpY2U6IEhpdFN0b2NrVHJhbnNmZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBnYXRlU2VydmljZTogSGl0R2F0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHZlaGljbGVUeXBlU2VydmljZTogSGl0VmVoaWNsZVR5cGVTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBnZXRMaXN0KHBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8RW50cnlXZWlnaGluZ1tdPiB7XHJcbiAgICBjb25zdCBkZWZhdWx0UGFyYW1zID0geyBtYXhSZXN1bHRDb3VudDogNTAsIC4uLnBhcmFtcyB9O1xyXG4gICAgcmV0dXJuIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDx2b2lkLCBBcGlSZXNwb25zZTxFbnRyeVdlaWdoaW5nW10+PihcclxuICAgICAgeyBtZXRob2Q6ICdHRVQnLCB1cmw6IHRoaXMuYmFzZVVybCwgcGFyYW1zOiBkZWZhdWx0UGFyYW1zIH0sXHJcbiAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH1cclxuICAgICkucGlwZShcclxuICAgICAgbWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlPy5pdGVtcyA/PyBbXSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXQoZG9jRW50cnk6IG51bWJlcik6IE9ic2VydmFibGU8RW50cnlXZWlnaGluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDx2b2lkLCBBcGlSZXNwb25zZTxFbnRyeVdlaWdoaW5nPj4oXHJcbiAgICAgIHsgbWV0aG9kOiAnR0VUJywgdXJsOiBgJHt0aGlzLmJhc2VVcmx9LyR7ZG9jRW50cnl9YCB9LFxyXG4gICAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSB9XHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZT8uaXRlbXMpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlKGJvZHk6IFNhdmVFbnRyeVdlaWdoaW5nRHRvKTogT2JzZXJ2YWJsZTxFbnRyeVdlaWdoaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PFNhdmVFbnRyeVdlaWdoaW5nRHRvLCBBcGlSZXNwb25zZTxFbnRyeVdlaWdoaW5nPj4oXHJcbiAgICAgIHsgbWV0aG9kOiAnUE9TVCcsIHVybDogdGhpcy5iYXNlVXJsLCBib2R5IH0sXHJcbiAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH1cclxuICAgICkucGlwZShcclxuICAgICAgbWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlPy5pdGVtcylcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGUoZG9jRW50cnk6IG51bWJlciwgYm9keTogU2F2ZUVudHJ5V2VpZ2hpbmdEdG8pOiBPYnNlcnZhYmxlPEVudHJ5V2VpZ2hpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8U2F2ZUVudHJ5V2VpZ2hpbmdEdG8sIEFwaVJlc3BvbnNlPEVudHJ5V2VpZ2hpbmc+PihcclxuICAgICAgeyBtZXRob2Q6ICdQQVRDSCcsIHVybDogYCR7dGhpcy5iYXNlVXJsfS8ke2RvY0VudHJ5fWAsIGJvZHkgfSxcclxuICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2U/Lml0ZW1zKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZShkb2NFbnRyeTogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8dm9pZCwgYW55PihcclxuICAgICAgeyBtZXRob2Q6ICdERUxFVEUnLCB1cmw6IGAke3RoaXMuYmFzZVVybH0vJHtkb2NFbnRyeX1gIH0sXHJcbiAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkb1dlaWdoaW5nKGRvY0VudHJ5OiBudW1iZXIsIGJvZHk6IHsgd2VpZ2hpbmdWYWx1ZTogbnVtYmVyOyBvcGVyYXRvckNvZGU6IHN0cmluZyB9KTogT2JzZXJ2YWJsZTxFbnRyeVdlaWdoaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgQXBpUmVzcG9uc2U8RW50cnlXZWlnaGluZz4+KFxyXG4gICAgICB7IG1ldGhvZDogJ1BPU1QnLCB1cmw6IGAke3RoaXMuYmFzZVVybH0vJHtkb2NFbnRyeX0vZG8td2VpZ2hpbmdgLCBib2R5IH0sXHJcbiAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH1cclxuICAgICkucGlwZShcclxuICAgICAgbWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlPy5pdGVtcylcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyAtLS0gTG9va3VwIG1ldGhvZHMgLS0tXHJcblxyXG4gIGdldERvY3VtZW50cygpOiBPYnNlcnZhYmxlPEVudHJ5V2VpZ2hpbmdEb2N1bWVudFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5wdXJjaGFzZURlbGl2ZXJ5Tm90ZVNlcnZpY2UuZ2V0TGlzdCgpLnBpcGUoXHJcbiAgICBtYXAobm90ZXMgPT4gbm90ZXMubWFwKG4gPT4gKHsgY29kZTogbi5kb2NOdW0udG9TdHJpbmcoKSwgbmFtZTogbi5jYXJkTmFtZSA/PyAnJyB9KSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2NhbGVzKCk6IE9ic2VydmFibGU8RW50cnlXZWlnaGluZ1NjYWxlW10+IHtcclxuICAgIHJldHVybiB0aGlzLnNjYWxlU2VydmljZS5nZXRMaXN0KCkucGlwZShcclxuICAgICAgbWFwKHNjYWxlcyA9PiBzY2FsZXMubWFwKHMgPT4gKHsgY29kZTogcy5jb2RlLCBuYW1lOiBzLm5hbWUgfSkpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFRydWNrUGxhdGVzKCk6IE9ic2VydmFibGU8RW50cnlXZWlnaGluZ1RydWNrUGxhdGVbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMucGxhdGVTZXJ2aWNlLmdldExpc3QoKS5waXBlKFxyXG4gICAgICBtYXAocGxhdGVzID0+IHBsYXRlc1xyXG4gICAgICAgIC5maWx0ZXIocCA9PiBwLnVfSXNUcmFpbGVyID09PSAnTicgfHwgIXAudV9Jc1RyYWlsZXIpXHJcbiAgICAgICAgLm1hcChwID0+ICh7IGNvZGU6IHAuY29kZSwgcGxhdGVObzogcC5jb2RlIH0pKVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VHJhaWxlclBsYXRlcygpOiBPYnNlcnZhYmxlPEVudHJ5V2VpZ2hpbmdUcmFpbGVyUGxhdGVbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMucGxhdGVTZXJ2aWNlLmdldExpc3QoKS5waXBlKFxyXG4gICAgICBtYXAocGxhdGVzID0+IHBsYXRlc1xyXG4gICAgICAgIC5maWx0ZXIocCA9PiBwLnVfSXNUcmFpbGVyID09PSAnWScpXHJcbiAgICAgICAgLm1hcChwID0+ICh7IGNvZGU6IHAuY29kZSwgcGxhdGVObzogcC5jb2RlIH0pKVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RHJpdmVycygpOiBPYnNlcnZhYmxlPEVudHJ5V2VpZ2hpbmdEcml2ZXJbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2FycmllclBlcnNvblNlcnZpY2UuZ2V0TGlzdCgpLnBpcGUoXHJcbiAgICAgIG1hcChwZXJzb25zID0+IHBlcnNvbnNcclxuICAgICAgICAuZmlsdGVyKHAgPT4gcC51X0FjdGl2ZSA9PT0gJ1knKVxyXG4gICAgICAgIC5tYXAocCA9PiAoeyBjb2RlOiBwLmNvZGUsIG5hbWU6IGAke3AudV9GaXJzdG5hbWUgPz8gJyd9ICR7cC51X0xhc3RuYW1lID8/ICcnfWAudHJpbSgpIH0pKVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWNjb3VudHMoKTogT2JzZXJ2YWJsZTxFbnRyeVdlaWdoaW5nQWNjb3VudFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5idXNpbmVzc1BhcnRuZXJTZXJ2aWNlLmdldExpc3QoKS5waXBlKFxyXG4gICAgICBtYXAocGFydG5lcnMgPT4gcGFydG5lcnMubWFwKHAgPT4gKHsgY29kZTogcC5jYXJkQ29kZSwgdGl0bGU6IHAuY2FyZE5hbWUgfSkpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFN0b2NrSXRlbXMoKTogT2JzZXJ2YWJsZTxFbnRyeVdlaWdoaW5nU3RvY2tJdGVtW10+IHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1TZXJ2aWNlLmdldExpc3QoKS5waXBlKFxyXG4gICAgICBtYXAoaXRlbXMgPT4gaXRlbXMubWFwKGkgPT4gKHsgY29kZTogaS5pdGVtQ29kZSwgbmFtZTogaS5pdGVtTmFtZSB9KSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0R2F0ZXMoKTogT2JzZXJ2YWJsZTxFbnRyeVdlaWdoaW5nR2F0ZVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5nYXRlU2VydmljZS5nZXRMaXN0KCkucGlwZShcclxuICAgICAgbWFwKGdhdGVzID0+IGdhdGVzLm1hcChnID0+ICh7IGNvZGU6IGcuY29kZSwgbmFtZTogZy5uYW1lIH0pKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRWZWhpY2xlVHlwZXMoKTogT2JzZXJ2YWJsZTxFbnRyeVdlaWdoaW5nVmVoaWNsZVR5cGVbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMudmVoaWNsZVR5cGVTZXJ2aWNlLmdldExpc3QoKS5waXBlKFxyXG4gICAgICBtYXAodHlwZXMgPT4gdHlwZXMubWFwKHQgPT4gKHtcclxuICAgICAgICBjb2RlOiB0LmNvZGUsIG5hbWU6IHQubmFtZSxcclxuICAgICAgICB1X1RydG1ZcGlsY2s6IHQudV9UcnRtWXBpbGNrLCB1X01hbEdDOiB0LnVfTWFsR0NcclxuICAgICAgfSkpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRvR29vZHNNb3ZlbWVudChkb2NFbnRyeTogbnVtYmVyKTogT2JzZXJ2YWJsZTxFbnRyeVdlaWdoaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PHZvaWQsIEFwaVJlc3BvbnNlPEVudHJ5V2VpZ2hpbmc+PihcclxuICAgICAgeyBtZXRob2Q6ICdQT1NUJywgdXJsOiBgJHt0aGlzLmJhc2VVcmx9LyR7ZG9jRW50cnl9L2RvLWdvb2RzLW1vdmVtZW50YCB9LFxyXG4gICAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSB9XHJcbiAgICApLnBpcGUobWFwKHIgPT4gcj8uaXRlbXMpKTtcclxuICB9XHJcblxyXG4gIGdldFdlaWdoaW5nU2xpcChkb2NFbnRyeTogbnVtYmVyKTogT2JzZXJ2YWJsZTx7IGJhc2U2NDogc3RyaW5nIH0+IHtcclxuICAgIHJldHVybiB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8dm9pZCwgeyBiYXNlNjQ6IHN0cmluZyB9PihcclxuICAgICAgeyBtZXRob2Q6ICdHRVQnLCB1cmw6IGAke3RoaXMuYmFzZVVybH0vJHtkb2NFbnRyeX0vd2VpZ2hpbmctc2xpcGAgfSxcclxuICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWVudHJ5LXdlaWdoaW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rYWRvb2dsdS9zcmMvbGliL2hpdC1wcm94eS9oaXQtZW50cnktd2VpZ2hpbmcvaGl0LWVudHJ5LXdlaWdoaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQWMsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7QUEwQnZDLE1BQU0sT0FBTyx1QkFBdUI7SUFJbEMsWUFDVSxXQUF3QixFQUN4QixZQUE2QixFQUM3QixZQUE2QixFQUM3QixvQkFBNkMsRUFDN0Msc0JBQWlELEVBQ2pELFdBQTJCLEVBQzNCLDJCQUEyRCxFQUMzRCxvQkFBNkMsRUFDN0MsV0FBMkIsRUFDM0Isa0JBQXlDO1FBVHpDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFpQjtRQUM3QixpQkFBWSxHQUFaLFlBQVksQ0FBaUI7UUFDN0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUF5QjtRQUM3QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQTJCO1FBQ2pELGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQixnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQWdDO1FBQzNELHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBeUI7UUFDN0MsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBdUI7UUFibkQsWUFBTyxHQUFHLFVBQVUsQ0FBQztRQUNyQixZQUFPLEdBQUcsMENBQTBDLENBQUM7SUFhbEQsQ0FBQztJQUVKLE9BQU8sQ0FBQyxNQUFZO1FBQ2xCLE1BQU0sYUFBYSxHQUFHLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxHQUFHLE1BQU0sRUFBRSxD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QUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG1hcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIEVudHJ5V2VpZ2hpbmcsXHJcbiAgRW50cnlXZWlnaGluZ0FjY291bnQsXHJcbiAgRW50cnlXZWlnaGluZ0RvY3VtZW50LFxyXG4gIEVudHJ5V2VpZ2hpbmdEcml2ZXIsXHJcbiAgRW50cnlXZWlnaGluZ0dhdGUsXHJcbiAgRW50cnlXZWlnaGluZ1NjYWxlLFxyXG4gIEVudHJ5V2VpZ2hpbmdTdG9ja0l0ZW0sXHJcbiAgRW50cnlXZWlnaGluZ1RyYWlsZXJQbGF0ZSxcclxuICBFbnRyeVdlaWdoaW5nVHJ1Y2tQbGF0ZSxcclxuICBFbnRyeVdlaWdoaW5nVmVoaWNsZVR5cGUsXHJcbiAgU2F2ZUVudHJ5V2VpZ2hpbmdEdG8sXHJcbn0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBBcGlSZXNwb25zZSB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEhpdFNjYWxlU2VydmljZSB9IGZyb20gJy4uL2hpdC1zY2FsZS9oaXQtc2NhbGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEhpdFBsYXRlU2VydmljZSB9IGZyb20gJy4uL2hpdC1wbGF0ZS9oaXQtcGxhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEhpdENhcnJpZXJQZXJzb25TZXJ2aWNlIH0gZnJvbSAnLi4vaGl0LWNhcnJpZXItcGVyc29uL2hpdC1jYXJyaWVyLXBlcnNvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSGl0QnVzaW5lc3NQYXJ0bmVyU2VydmljZSB9IGZyb20gJy4uL2hpdC1idXNpbmVzcy1wYXJ0bmVyL2hpdC1idXNpbmVzcy1wYXJ0bmVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIaXRJdGVtU2VydmljZSB9IGZyb20gJy4uL2hpdC1pdGVtL2hpdC1pdGVtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIaXRQdXJjaGFzZURlbGl2ZXJ5Tm90ZVNlcnZpY2UgfSBmcm9tICcuLi9oaXQtcHVyY2hhc2UtZGVsaXZlcnktbm90ZS9oaXQtcHVyY2hhc2UtZGVsaXZlcnktbm90ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSGl0U3RvY2tUcmFuc2ZlclNlcnZpY2UgfSBmcm9tICcuLi9oaXQtc3RvY2stdHJhbnNmZXIvaGl0LXN0b2NrLXRyYW5zZmVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIaXRHYXRlU2VydmljZSB9IGZyb20gJy4uL2hpdC1nYXRlL2hpdC1nYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIaXRWZWhpY2xlVHlwZVNlcnZpY2UgfSBmcm9tICcuLi9oaXQtdmVoaWNsZS10eXBlL2hpdC12ZWhpY2xlLXR5cGUuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgSGl0RW50cnlXZWlnaGluZ1NlcnZpY2Uge1xyXG4gIGFwaU5hbWUgPSAnS2Fkb29nbHUnO1xyXG4gIGJhc2VVcmwgPSAnL2FwaS9lbnRlZ3JhdGlvbi1zZXJ2aWNlL2VudHJ5LXdlaWdoaW5ncyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNjYWxlU2VydmljZTogSGl0U2NhbGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwbGF0ZVNlcnZpY2U6IEhpdFBsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgY2FycmllclBlcnNvblNlcnZpY2U6IEhpdENhcnJpZXJQZXJzb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBidXNpbmVzc1BhcnRuZXJTZXJ2aWNlOiBIaXRCdXNpbmVzc1BhcnRuZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBpdGVtU2VydmljZTogSGl0SXRlbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHB1cmNoYXNlRGVsaXZlcnlOb3RlU2VydmljZTogSGl0UHVyY2hhc2VEZWxpdmVyeU5vdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzdG9ja1RyYW5zZmVyU2VydmljZTogSGl0U3RvY2tUcmFuc2ZlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdhdGVTZXJ2aWNlOiBIaXRHYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgdmVoaWNsZVR5cGVTZXJ2aWNlOiBIaXRWZWhpY2xlVHlwZVNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIGdldExpc3QocGFyYW1zPzogYW55KTogT2JzZXJ2YWJsZTxFbnRyeVdlaWdoaW5nW10+IHtcclxuICAgIGNvbnN0IGRlZmF1bHRQYXJhbXMgPSB7IG1heFJlc3VsdENvdW50OiA1MCwgLi4ucGFyYW1zIH07XHJcbiAgICByZXR1cm4gdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PHZvaWQsIEFwaVJlc3BvbnNlPEVudHJ5V2VpZ2hpbmdbXT4+KFxyXG4gICAgICB7IG1ldGhvZDogJ0dFVCcsIHVybDogdGhpcy5iYXNlVXJsLCBwYXJhbXM6IGRlZmF1bHRQYXJhbXMgfSxcclxuICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2U/Lml0ZW1zID8/IFtdKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldChkb2NFbnRyeTogbnVtYmVyKTogT2JzZXJ2YWJsZTxFbnRyeVdlaWdoaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PHZvaWQsIEFwaVJlc3BvbnNlPEVudHJ5V2VpZ2hpbmc+PihcclxuICAgICAgeyBtZXRob2Q6ICdHRVQnLCB1cmw6IGAke3RoaXMuYmFzZVVybH0vJHtkb2NFbnRyeX1gIH0sXHJcbiAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH1cclxuICAgICkucGlwZShcclxuICAgICAgbWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlPy5pdGVtcylcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGUoYm9keTogU2F2ZUVudHJ5V2VpZ2hpbmdEdG8pOiBPYnNlcnZhYmxlPEVudHJ5V2VpZ2hpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8U2F2ZUVudHJ5V2VpZ2hpbmdEdG8sIEFwaVJlc3BvbnNlPEVudHJ5V2VpZ2hpbmc+PihcclxuICAgICAgeyBtZXRob2Q6ICdQT1NUJywgdXJsOiB0aGlzLmJhc2VVcmwsIGJvZHkgfSxcclxuICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2U/Lml0ZW1zKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZShkb2NFbnRyeTogbnVtYmVyLCBib2R5OiBTYXZlRW50cnlXZWlnaGluZ0R0byk6IE9ic2VydmFibGU8RW50cnlXZWlnaGluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxTYXZlRW50cnlXZWlnaGluZ0R0bywgQXBpUmVzcG9uc2U8RW50cnlXZWlnaGluZz4+KFxyXG4gICAgICB7IG1ldGhvZDogJ1BBVENIJywgdXJsOiBgJHt0aGlzLmJhc2VVcmx9LyR7ZG9jRW50cnl9YCwgYm9keSB9LFxyXG4gICAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSB9XHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZT8uaXRlbXMpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlKGRvY0VudHJ5OiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDx2b2lkLCBhbnk+KFxyXG4gICAgICB7IG1ldGhvZDogJ0RFTEVURScsIHVybDogYCR7dGhpcy5iYXNlVXJsfS8ke2RvY0VudHJ5fWAgfSxcclxuICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRvV2VpZ2hpbmcoZG9jRW50cnk6IG51bWJlciwgYm9keTogeyB3ZWlnaGluZ1ZhbHVlOiBudW1iZXI7IG9wZXJhdG9yQ29kZTogc3RyaW5nIH0pOiBPYnNlcnZhYmxlPEVudHJ5V2VpZ2hpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBBcGlSZXNwb25zZTxFbnRyeVdlaWdoaW5nPj4oXHJcbiAgICAgIHsgbWV0aG9kOiAnUE9TVCcsIHVybDogYCR7dGhpcy5iYXNlVXJsfS8ke2RvY0VudHJ5fS9kby13ZWlnaGluZ2AsIGJvZHkgfSxcclxuICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2U/Lml0ZW1zKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIC0tLSBMb29rdXAgbWV0aG9kcyAtLS1cclxuXHJcbiAgZ2V0RG9jdW1lbnRzKCk6IE9ic2VydmFibGU8RW50cnlXZWlnaGluZ0RvY3VtZW50W10+IHtcclxuICAgIHJldHVybiB0aGlzLnB1cmNoYXNlRGVsaXZlcnlOb3RlU2VydmljZS5nZXRMaXN0KCkucGlwZShcclxuICAgIG1hcChub3RlcyA9PiBub3Rlcy5tYXAobiA9PiAoeyBjb2RlOiBuLmRvY051bS50b1N0cmluZygpLCBuYW1lOiBuLmNhcmROYW1lID8/ICcnIH0pKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRTY2FsZXMoKTogT2JzZXJ2YWJsZTxFbnRyeVdlaWdoaW5nU2NhbGVbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2NhbGVTZXJ2aWNlLmdldExpc3QoKS5waXBlKFxyXG4gICAgICBtYXAoc2NhbGVzID0+IHNjYWxlcy5tYXAocyA9PiAoeyBjb2RlOiBzLmNvZGUsIG5hbWU6IHMubmFtZSB9KSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VHJ1Y2tQbGF0ZXMoKTogT2JzZXJ2YWJsZTxFbnRyeVdlaWdoaW5nVHJ1Y2tQbGF0ZVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5wbGF0ZVNlcnZpY2UuZ2V0TGlzdCgpLnBpcGUoXHJcbiAgICAgIG1hcChwbGF0ZXMgPT4gcGxhdGVzXHJcbiAgICAgICAgLmZpbHRlcihwID0+IHAudV9Jc1RyYWlsZXIgPT09ICdOJyB8fCAhcC51X0lzVHJhaWxlcilcclxuICAgICAgICAubWFwKHAgPT4gKHsgY29kZTogcC5jb2RlLCBwbGF0ZU5vOiBwLmNvZGUgfSkpXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUcmFpbGVyUGxhdGVzKCk6IE9ic2VydmFibGU8RW50cnlXZWlnaGluZ1RyYWlsZXJQbGF0ZVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5wbGF0ZVNlcnZpY2UuZ2V0TGlzdCgpLnBpcGUoXHJcbiAgICAgIG1hcChwbGF0ZXMgPT4gcGxhdGVzXHJcbiAgICAgICAgLmZpbHRlcihwID0+IHAudV9Jc1RyYWlsZXIgPT09ICdZJylcclxuICAgICAgICAubWFwKHAgPT4gKHsgY29kZTogcC5jb2RlLCBwbGF0ZU5vOiBwLmNvZGUgfSkpXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXREcml2ZXJzKCk6IE9ic2VydmFibGU8RW50cnlXZWlnaGluZ0RyaXZlcltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5jYXJyaWVyUGVyc29uU2VydmljZS5nZXRMaXN0KCkucGlwZShcclxuICAgICAgbWFwKHBlcnNvbnMgPT4gcGVyc29uc1xyXG4gICAgICAgIC5maWx0ZXIocCA9PiBwLnVfQWN0aXZlID09PSAnWScpXHJcbiAgICAgICAgLm1hcChwID0+ICh7IGNvZGU6IHAuY29kZSwgbmFtZTogYCR7cC51X0ZpcnN0bmFtZSA/PyAnJ30gJHtwLnVfTGFzdG5hbWUgPz8gJyd9YC50cmltKCkgfSkpXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRBY2NvdW50cygpOiBPYnNlcnZhYmxlPEVudHJ5V2VpZ2hpbmdBY2NvdW50W10+IHtcclxuICAgIHJldHVybiB0aGlzLmJ1c2luZXNzUGFydG5lclNlcnZpY2UuZ2V0TGlzdCgpLnBpcGUoXHJcbiAgICAgIG1hcChwYXJ0bmVycyA9PiBwYXJ0bmVycy5tYXAocCA9PiAoeyBjb2RlOiBwLmNhcmRDb2RlLCB0aXRsZTogcC5jYXJkTmFtZSB9KSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RvY2tJdGVtcygpOiBPYnNlcnZhYmxlPEVudHJ5V2VpZ2hpbmdTdG9ja0l0ZW1bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbVNlcnZpY2UuZ2V0TGlzdCgpLnBpcGUoXHJcbiAgICAgIG1hcChpdGVtcyA9PiBpdGVtcy5tYXAoaSA9PiAoeyBjb2RlOiBpLml0ZW1Db2RlLCBuYW1lOiBpLml0ZW1OYW1lIH0pKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRHYXRlcygpOiBPYnNlcnZhYmxlPEVudHJ5V2VpZ2hpbmdHYXRlW10+IHtcclxuICAgIHJldHVybiB0aGlzLmdhdGVTZXJ2aWNlLmdldExpc3QoKS5waXBlKFxyXG4gICAgICBtYXAoZ2F0ZXMgPT4gZ2F0ZXMubWFwKGcgPT4gKHsgY29kZTogZy5jb2RlLCBuYW1lOiBnLm5hbWUgfSkpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFZlaGljbGVUeXBlcygpOiBPYnNlcnZhYmxlPEVudHJ5V2VpZ2hpbmdWZWhpY2xlVHlwZVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy52ZWhpY2xlVHlwZVNlcnZpY2UuZ2V0TGlzdCgpLnBpcGUoXHJcbiAgICAgIG1hcCh0eXBlcyA9PiB0eXBlcy5tYXAodCA9PiAoe1xyXG4gICAgICAgIGNvZGU6IHQuY29kZSwgbmFtZTogdC5uYW1lLFxyXG4gICAgICAgIHVfVHJ0bVlwaWxjazogdC51X1RydG1ZcGlsY2ssIHVfTWFsR0M6IHQudV9NYWxHQ1xyXG4gICAgICB9KSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZG9Hb29kc01vdmVtZW50KGRvY0VudHJ5OiBudW1iZXIpOiBPYnNlcnZhYmxlPEVudHJ5V2VpZ2hpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8dm9pZCwgQXBpUmVzcG9uc2U8RW50cnlXZWlnaGluZz4+KFxyXG4gICAgICB7IG1ldGhvZDogJ1BPU1QnLCB1cmw6IGAke3RoaXMuYmFzZVVybH0vJHtkb2NFbnRyeX0vZG8tZ29vZHMtbW92ZW1lbnRgIH0sXHJcbiAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH1cclxuICAgICkucGlwZShtYXAociA9PiByPy5pdGVtcykpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Fkb29nbHUvc3JjL2xpYi9oaXQtcHJveHkvaGl0LXN0b2NrLXRyYW5zZmVyL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTdG9ja1RyYW5zZmVyTGluZSB7XHJcbiAgaXRlbUNvZGU6IHN0cmluZztcclxuICBpdGVtRGVzY3JpcHRpb246IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTdG9ja1RyYW5zZmVyIHtcclxuICBkb2NFbnRyeTogbnVtYmVyO1xyXG4gIGRvY051bTogbnVtYmVyO1xyXG4gIGNhcmRDb2RlOiBzdHJpbmc7XHJcbiAgY2FyZE5hbWU6IHN0cmluZztcclxuICBkb2NEYXRlOiBzdHJpbmc7XHJcbiAgZnJvbVdhcmVob3VzZTogc3RyaW5nO1xyXG4gIHRvV2FyZWhvdXNlOiBzdHJpbmc7XHJcbiAgY29tbWVudHM6IHN0cmluZztcclxuICBzdG9ja1RyYW5zZmVyTGluZXM/OiBTdG9ja1RyYW5zZmVyTGluZVtdO1xyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Fkb29nbHUvc3JjL2xpYi9oaXQtcHJveHkvaGl0LXN0b2NrLXRyYW5zZmVyL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTdG9ja1RyYW5zZmVyTGluZSB7XHJcbiAgaXRlbUNvZGU6IHN0cmluZztcclxuICBpdGVtRGVzY3JpcHRpb246IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTdG9ja1RyYW5zZmVyIHtcclxuICBkb2NFbnRyeTogbnVtYmVyO1xyXG4gIGRvY051bTogbnVtYmVyO1xyXG4gIHVfRUZBVE5PPzogc3RyaW5nO1xyXG4gIGNhcmRDb2RlOiBzdHJpbmc7XHJcbiAgY2FyZE5hbWU6IHN0cmluZztcclxuICBkb2NEYXRlOiBzdHJpbmc7XHJcbiAgZnJvbVdhcmVob3VzZTogc3RyaW5nO1xyXG4gIHRvV2FyZWhvdXNlOiBzdHJpbmc7XHJcbiAgY29tbWVudHM6IHN0cmluZztcclxuICB1X1NvZm9yQWQ/OiBzdHJpbmc7XHJcbiAgdV9Tb2ZvclNveWFkaT86IHN0cmluZztcclxuICB1X0FyYWNQbGFrYXNpPzogc3RyaW5nO1xyXG4gIHN0b2NrVHJhbnNmZXJMaW5lcz86IFN0b2NrVHJhbnNmZXJMaW5lW107XHJcbn1cclxuIl19
@@ -1,12 +1,17 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { HubConnectionBuilder, HubConnectionState, LogLevel, } from '@microsoft/signalr';
3
- import { BehaviorSubject } from 'rxjs';
3
+ import { BehaviorSubject, Subject } from 'rxjs';
4
4
  import * as i0 from "@angular/core";
5
5
  export class ScaleSignalRService {
6
6
  constructor() {
7
7
  this.connection = null;
8
+ this._stopping = false;
8
9
  this._weight$ = new BehaviorSubject(null);
10
+ this._connectionLost$ = new Subject();
11
+ this._reconnecting$ = new Subject();
9
12
  this.weight$ = this._weight$.asObservable();
13
+ this.connectionLost$ = this._connectionLost$.asObservable();
14
+ this.reconnecting$ = this._reconnecting$.asObservable();
10
15
  }
11
16
  /**
12
17
  * SignalR bağlantısını başlatır ve ilgili kantar grubuna abone olur.
@@ -25,11 +30,31 @@ export class ScaleSignalRService {
25
30
  this.connection.on('ReceiveWeight', (reading) => {
26
31
  this._weight$.next(reading.weightKg);
27
32
  });
33
+ this.connection.onreconnecting(() => {
34
+ this._reconnecting$.next();
35
+ });
28
36
  this.connection.onreconnected(async () => {
29
37
  await this.connection.invoke('SubscribeToScale', scaleId);
30
38
  });
31
- await this.connection.start();
32
- await this.connection.invoke('SubscribeToScale', scaleId);
39
+ this.connection.onclose(() => {
40
+ if (!this._stopping)
41
+ this._connectionLost$.next();
42
+ });
43
+ const MAX_RETRIES = 10;
44
+ const RETRY_DELAY_MS = 1000;
45
+ for (let attempt = 1; attempt <= MAX_RETRIES; attempt++) {
46
+ try {
47
+ await this.connection.start();
48
+ await this.connection.invoke('SubscribeToScale', scaleId);
49
+ return;
50
+ }
51
+ catch {
52
+ if (attempt === MAX_RETRIES) {
53
+ throw new Error('ScaleConnectionMaxRetriesReached');
54
+ }
55
+ await new Promise(resolve => setTimeout(resolve, RETRY_DELAY_MS));
56
+ }
57
+ }
33
58
  }
34
59
  /**
35
60
  * Kantar grubundan çıkar ve bağlantıyı kapatır.
@@ -37,14 +62,17 @@ export class ScaleSignalRService {
37
62
  async stop(scaleId) {
38
63
  if (!this.connection)
39
64
  return;
65
+ this._stopping = true;
66
+ const conn = this.connection;
67
+ this.connection = null;
40
68
  try {
41
- if (this.connection.state === HubConnectionState.Connected) {
42
- await this.connection.invoke('UnsubscribeFromScale', scaleId);
69
+ if (conn.state === HubConnectionState.Connected) {
70
+ await conn.invoke('UnsubscribeFromScale', scaleId);
43
71
  }
44
- await this.connection.stop();
72
+ await conn.stop();
45
73
  }
46
74
  finally {
47
- this.connection = null;
75
+ this._stopping = false;
48
76
  this._weight$.next(null);
49
77
  }
50
78
  }
@@ -58,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
58
86
  type: Injectable,
59
87
  args: [{ providedIn: 'root' }]
60
88
  }] });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGUtc2lnbmFsci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Fkb29nbHUvc3JjL2xpYi9zZXJ2aWNlcy9zY2FsZS1zaWduYWxyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBRUwsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixRQUFRLEdBQ1QsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOztBQUduRCxNQUFNLE9BQU8sbUJBQW1CO0lBRGhDO1FBRVUsZUFBVSxHQUF5QixJQUFJLENBQUM7UUFDL0IsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUU1RCxZQUFPLEdBQThCLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7S0FpRDVFO0lBL0NDOzs7T0FHRztJQUNILEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBa0IsRUFBRSxPQUFlO1FBQzdDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLEtBQUssa0JBQWtCLENBQUMsU0FBUyxFQUFFO1lBQzNELE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDMUQsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLG9CQUFvQixFQUFFO2FBQ3pDLE9BQU8sQ0FBQyxHQUFHLFVBQVUsYUFBYSxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDO2FBQzlELHNCQUFzQixDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ3JELGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7YUFDbEMsS0FBSyxFQUFFLENBQUM7UUFFWCxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxPQUE2QixFQUFFLEVBQUU7WUFDcEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDdkMsTUFBTSxJQUFJLENBQUMsVUFBVyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5QixNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBZTtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPO1FBQzdCLElBQUk7WUFDRixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxLQUFLLGtCQUFrQixDQUFDLFNBQVMsRUFBRTtnQkFDMUQsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxPQUFPLENBQUMsQ0FBQzthQUMvRDtZQUNELE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUM5QjtnQkFBUztZQUNSLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7O2dIQXBEVSxtQkFBbUI7b0hBQW5CLG1CQUFtQixjQUROLE1BQU07MkZBQ25CLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEh1YkNvbm5lY3Rpb24sXG4gIEh1YkNvbm5lY3Rpb25CdWlsZGVyLFxuICBIdWJDb25uZWN0aW9uU3RhdGUsXG4gIExvZ0xldmVsLFxufSBmcm9tICdAbWljcm9zb2Z0L3NpZ25hbHInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgU2NhbGVTaWduYWxSU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgY29ubmVjdGlvbjogSHViQ29ubmVjdGlvbiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IF93ZWlnaHQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXIgfCBudWxsPihudWxsKTtcblxuICByZWFkb25seSB3ZWlnaHQkOiBPYnNlcnZhYmxlPG51bWJlciB8IG51bGw+ID0gdGhpcy5fd2VpZ2h0JC5hc09ic2VydmFibGUoKTtcblxuICAvKipcbiAgICogU2lnbmFsUiBiYcSfbGFudMSxc8SxbsSxIGJhxZ9sYXTEsXIgdmUgaWxnaWxpIGthbnRhciBncnVidW5hIGFib25lIG9sdXIuXG4gICAqIFphdGVuIGJhxJ9sxLF5c2Egc2FkZWNlIGdydWJhIGFib25lIG9sdXIuXG4gICAqL1xuICBhc3luYyBzdGFydChhcGlCYXNlVXJsOiBzdHJpbmcsIHNjYWxlSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmNvbm5lY3Rpb24/LnN0YXRlID09PSBIdWJDb25uZWN0aW9uU3RhdGUuQ29ubmVjdGVkKSB7XG4gICAgICBhd2FpdCB0aGlzLmNvbm5lY3Rpb24uaW52b2tlKCdTdWJzY3JpYmVUb1NjYWxlJywgc2NhbGVJZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jb25uZWN0aW9uID0gbmV3IEh1YkNvbm5lY3Rpb25CdWlsZGVyKClcbiAgICAgIC53aXRoVXJsKGAke2FwaUJhc2VVcmx9L2h1YnMvc2NhbGVgLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KVxuICAgICAgLndpdGhBdXRvbWF0aWNSZWNvbm5lY3QoWzAsIDIwMDAsIDUwMDAsIDEwMDAwLCAzMDAwMF0pXG4gICAgICAuY29uZmlndXJlTG9nZ2luZyhMb2dMZXZlbC5XYXJuaW5nKVxuICAgICAgLmJ1aWxkKCk7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb24ub24oJ1JlY2VpdmVXZWlnaHQnLCAocmVhZGluZzogeyB3ZWlnaHRLZzogbnVtYmVyIH0pID0+IHtcbiAgICAgIHRoaXMuX3dlaWdodCQubmV4dChyZWFkaW5nLndlaWdodEtnKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY29ubmVjdGlvbi5vbnJlY29ubmVjdGVkKGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IHRoaXMuY29ubmVjdGlvbiEuaW52b2tlKCdTdWJzY3JpYmVUb1NjYWxlJywgc2NhbGVJZCk7XG4gICAgfSk7XG5cbiAgICBhd2FpdCB0aGlzLmNvbm5lY3Rpb24uc3RhcnQoKTtcbiAgICBhd2FpdCB0aGlzLmNvbm5lY3Rpb24uaW52b2tlKCdTdWJzY3JpYmVUb1NjYWxlJywgc2NhbGVJZCk7XG4gIH1cblxuICAvKipcbiAgICogS2FudGFyIGdydWJ1bmRhbiDDp8Sxa2FyIHZlIGJhxJ9sYW50xLF5xLEga2FwYXTEsXIuXG4gICAqL1xuICBhc3luYyBzdG9wKHNjYWxlSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5jb25uZWN0aW9uKSByZXR1cm47XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLmNvbm5lY3Rpb24uc3RhdGUgPT09IEh1YkNvbm5lY3Rpb25TdGF0ZS5Db25uZWN0ZWQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5jb25uZWN0aW9uLmludm9rZSgnVW5zdWJzY3JpYmVGcm9tU2NhbGUnLCBzY2FsZUlkKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMuY29ubmVjdGlvbi5zdG9wKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuY29ubmVjdGlvbiA9IG51bGw7XG4gICAgICB0aGlzLl93ZWlnaHQkLm5leHQobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jb25uZWN0aW9uPy5zdG9wKCk7XG4gIH1cbn1cbiJdfQ==
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGUtc2lnbmFsci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Fkb29nbHUvc3JjL2xpYi9zZXJ2aWNlcy9zY2FsZS1zaWduYWxyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBRUwsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixRQUFRLEdBQ1QsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHNUQsTUFBTSxPQUFPLG1CQUFtQjtJQURoQztRQUVVLGVBQVUsR0FBeUIsSUFBSSxDQUFDO1FBQ3hDLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDVCxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQWdCLElBQUksQ0FBQyxDQUFDO1FBQ3BELHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDdkMsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRTdDLFlBQU8sR0FBOEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsRSxvQkFBZSxHQUFxQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekUsa0JBQWEsR0FBcUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztLQXdFL0U7SUF0RUM7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFrQixFQUFFLE9BQWU7UUFDN0MsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssS0FBSyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUU7WUFDM0QsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMxRCxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksb0JBQW9CLEVBQUU7YUFDekMsT0FBTyxDQUFDLEdBQUcsVUFBVSxhQUFhLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDOUQsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDckQsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQzthQUNsQyxLQUFLLEVBQUUsQ0FBQztRQUVYLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDLE9BQTZCLEVBQUUsRUFBRTtZQUNwRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3ZDLE1BQU0sSUFBSSxDQUFDLFVBQVcsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO2dCQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN2QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDNUIsS0FBSyxJQUFJLE9BQU8sR0FBRyxDQUFDLEVBQUUsT0FBTyxJQUFJLFdBQVcsRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUN2RCxJQUFJO2dCQUNGLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDOUIsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDMUQsT0FBTzthQUNSO1lBQUMsTUFBTTtnQkFDTixJQUFJLE9BQU8sS0FBSyxXQUFXLEVBQUU7b0JBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztpQkFDckQ7Z0JBQ0QsTUFBTSxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQzthQUNuRTtTQUNGO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFlO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJO1lBQ0YsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLGtCQUFrQixDQUFDLFNBQVMsRUFBRTtnQkFDL0MsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLE9BQU8sQ0FBQyxDQUFDO2FBQ3BEO1lBQ0QsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDbkI7Z0JBQVM7WUFDUixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDOztnSEFoRlUsbUJBQW1CO29IQUFuQixtQkFBbUIsY0FETixNQUFNOzJGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBIdWJDb25uZWN0aW9uLFxuICBIdWJDb25uZWN0aW9uQnVpbGRlcixcbiAgSHViQ29ubmVjdGlvblN0YXRlLFxuICBMb2dMZXZlbCxcbn0gZnJvbSAnQG1pY3Jvc29mdC9zaWduYWxyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFNjYWxlU2lnbmFsUlNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGNvbm5lY3Rpb246IEh1YkNvbm5lY3Rpb24gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfc3RvcHBpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBfd2VpZ2h0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Nvbm5lY3Rpb25Mb3N0JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3JlY29ubmVjdGluZyQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHJlYWRvbmx5IHdlaWdodCQ6IE9ic2VydmFibGU8bnVtYmVyIHwgbnVsbD4gPSB0aGlzLl93ZWlnaHQkLmFzT2JzZXJ2YWJsZSgpO1xuICByZWFkb25seSBjb25uZWN0aW9uTG9zdCQ6IE9ic2VydmFibGU8dm9pZD4gPSB0aGlzLl9jb25uZWN0aW9uTG9zdCQuYXNPYnNlcnZhYmxlKCk7XG4gIHJlYWRvbmx5IHJlY29ubmVjdGluZyQ6IE9ic2VydmFibGU8dm9pZD4gPSB0aGlzLl9yZWNvbm5lY3RpbmckLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIC8qKlxuICAgKiBTaWduYWxSIGJhxJ9sYW50xLFzxLFuxLEgYmHFn2xhdMSxciB2ZSBpbGdpbGkga2FudGFyIGdydWJ1bmEgYWJvbmUgb2x1ci5cbiAgICogWmF0ZW4gYmHEn2zEsXlzYSBzYWRlY2UgZ3J1YmEgYWJvbmUgb2x1ci5cbiAgICovXG4gIGFzeW5jIHN0YXJ0KGFwaUJhc2VVcmw6IHN0cmluZywgc2NhbGVJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuY29ubmVjdGlvbj8uc3RhdGUgPT09IEh1YkNvbm5lY3Rpb25TdGF0ZS5Db25uZWN0ZWQpIHtcbiAgICAgIGF3YWl0IHRoaXMuY29ubmVjdGlvbi5pbnZva2UoJ1N1YnNjcmliZVRvU2NhbGUnLCBzY2FsZUlkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNvbm5lY3Rpb24gPSBuZXcgSHViQ29ubmVjdGlvbkJ1aWxkZXIoKVxuICAgICAgLndpdGhVcmwoYCR7YXBpQmFzZVVybH0vaHVicy9zY2FsZWAsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG4gICAgICAud2l0aEF1dG9tYXRpY1JlY29ubmVjdChbMCwgMjAwMCwgNTAwMCwgMTAwMDAsIDMwMDAwXSlcbiAgICAgIC5jb25maWd1cmVMb2dnaW5nKExvZ0xldmVsLldhcm5pbmcpXG4gICAgICAuYnVpbGQoKTtcblxuICAgIHRoaXMuY29ubmVjdGlvbi5vbignUmVjZWl2ZVdlaWdodCcsIChyZWFkaW5nOiB7IHdlaWdodEtnOiBudW1iZXIgfSkgPT4ge1xuICAgICAgdGhpcy5fd2VpZ2h0JC5uZXh0KHJlYWRpbmcud2VpZ2h0S2cpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5jb25uZWN0aW9uLm9ucmVjb25uZWN0aW5nKCgpID0+IHtcbiAgICAgIHRoaXMuX3JlY29ubmVjdGluZyQubmV4dCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5jb25uZWN0aW9uLm9ucmVjb25uZWN0ZWQoYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgdGhpcy5jb25uZWN0aW9uIS5pbnZva2UoJ1N1YnNjcmliZVRvU2NhbGUnLCBzY2FsZUlkKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY29ubmVjdGlvbi5vbmNsb3NlKCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5fc3RvcHBpbmcpIHRoaXMuX2Nvbm5lY3Rpb25Mb3N0JC5uZXh0KCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBNQVhfUkVUUklFUyA9IDEwO1xuICAgIGNvbnN0IFJFVFJZX0RFTEFZX01TID0gMTAwMDtcbiAgICBmb3IgKGxldCBhdHRlbXB0ID0gMTsgYXR0ZW1wdCA8PSBNQVhfUkVUUklFUzsgYXR0ZW1wdCsrKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLmNvbm5lY3Rpb24uc3RhcnQoKTtcbiAgICAgICAgYXdhaXQgdGhpcy5jb25uZWN0aW9uLmludm9rZSgnU3Vic2NyaWJlVG9TY2FsZScsIHNjYWxlSWQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgaWYgKGF0dGVtcHQgPT09IE1BWF9SRVRSSUVTKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTY2FsZUNvbm5lY3Rpb25NYXhSZXRyaWVzUmVhY2hlZCcpO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCBSRVRSWV9ERUxBWV9NUykpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBLYW50YXIgZ3J1YnVuZGFuIMOnxLFrYXIgdmUgYmHEn2xhbnTEsXnEsSBrYXBhdMSxci5cbiAgICovXG4gIGFzeW5jIHN0b3Aoc2NhbGVJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmNvbm5lY3Rpb24pIHJldHVybjtcbiAgICB0aGlzLl9zdG9wcGluZyA9IHRydWU7XG4gICAgY29uc3QgY29ubiA9IHRoaXMuY29ubmVjdGlvbjtcbiAgICB0aGlzLmNvbm5lY3Rpb24gPSBudWxsO1xuICAgIHRyeSB7XG4gICAgICBpZiAoY29ubi5zdGF0ZSA9PT0gSHViQ29ubmVjdGlvblN0YXRlLkNvbm5lY3RlZCkge1xuICAgICAgICBhd2FpdCBjb25uLmludm9rZSgnVW5zdWJzY3JpYmVGcm9tU2NhbGUnLCBzY2FsZUlkKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IGNvbm4uc3RvcCgpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLl9zdG9wcGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5fd2VpZ2h0JC5uZXh0KG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY29ubmVjdGlvbj8uc3RvcCgpO1xuICB9XG59XG4iXX0=