modal-step-view.component.js 42.3 KB
/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
 */
import * as tslib_1 from "tslib";
import { Component, EventEmitter, Output, ViewChild } from '@angular/core';
import { ModalDirective } from 'ngx-bootstrap';
import { Common } from '../_services/common.service';
import { Request } from '../_services/request.service';
export class ModalStepViewComponent {
    /**
     * @param {?} request
     * @param {?} common
     */
    constructor(request, common) {
        this.request = request;
        this.common = common;
        this.onUpdateModal = new EventEmitter();
        this.submitted = false;
        this.title = 'สถานะขั้นตอน';
        this.selectList = [];
        this.list = [];
        this.modalConfig = {
            ignoreBackdropClick: true
        };
        this.selectedStep = {};
        this.isMore = false;
        this.moreField = [];
        this.stepData = {};
        this.lastStep = '';
        this.stepName = '';
        this.isSend = false;
        this.isRecieve = false;
        this.sendList = [];
        this.recieveList = [];
    }
    /**
     * @return {?}
     */
    ngOnInit() {
    }
    /**
     * @param {?=} options
     * @return {?}
     */
    open(options) {
        return tslib_1.__awaiter(this, void 0, void 0, function* () {
            console.log(options);
            this.stepData = {};
            if (options) {
                this.title = options.option.title || 'สถานะขั้นตอน';
                this.stepName = options.data.step_name || '';
                this.stepData = JSON.parse(JSON.stringify(options.data));
                this.downloadToken = options.downloadToken;
                // ต้องเปลี่ยนเป็นเรียก api
                if (this.stepData.step_id) {
                    this.selectList = yield this.request.get('/db/ct_step?_where=(id,eq,' + this.stepData.step_id + ')');
                    /** @type {?} */
                    const step = this.selectList[0];
                    if (step.flag) {
                        for (let i = 0; i < step.flag.length; i++) {
                            /** @type {?} */
                            const flag = step.flag.charAt(i);
                            /** @type {?} */
                            const ct_step_flag = yield this.request.get('/db/ct_step_flag?_where=(flag,eq,' + flag + ')');
                            /** @type {?} */
                            const newField = ct_step_flag[0];
                            this.moreField.push(newField);
                        }
                        this.isMore = true;
                    }
                    else {
                        this.isMore = false;
                        if (step.type_id === 8 || step.type_id === 13) {
                            /** @type {?} */
                            let filter = {
                                filter: {
                                    ct_step_data_id: this.stepData.id
                                },
                                order_by: ["is_important", "send_book_no", "created_at"]
                            };
                            /** @type {?} */
                            const sendDataList = yield this.request.post('/search/v_ct_step_sent', filter);
                            this.sendList = sendDataList.resultData;
                            this.isSend = true;
                            this.isRecieve = false;
                        }
                        else if (step.type_id === 9 || step.type_id === 14) {
                            /** @type {?} */
                            let filter = {
                                filter: {
                                    ct_step_data_id: this.stepData.id
                                },
                                order_by: ["is_important", "send_book_no", "created_at"]
                            };
                            /** @type {?} */
                            const recieveDataList = yield this.request.post('/search/v_ct_step_sent', filter);
                            this.recieveList = recieveDataList.resultData;
                            this.isRecieve = true;
                            this.isSend = false;
                        }
                        else {
                            this.isRecieve = false;
                            this.isSend = false;
                        }
                    }
                }
            }
            this.modal.show();
        });
    }
    /**
     * @return {?}
     */
    closeModal() {
        this.submitted = false;
        this.selectList = [];
        this.list = [];
        this.selectedStep = {};
        this.isMore = false;
        this.isSend = false;
        this.isRecieve = false;
        this.moreField = [];
        this.stepData = {};
        this.lastStep = '';
        this.modal.hide();
    }
    /**
     * @param {?} data
     * @return {?}
     */
    getFieldId(data) {
        /** @type {?} */
        let id = '';
        if (data.type === 'text') {
            id += 'txtView';
        }
        else if (data.type === 'datetime') {
            id += 'txtView';
        }
        /** @type {?} */
        const field = data.field_name.charAt(0).toLocaleUpperCase() + data.field_name.substring(1);
        id += field;
        return id;
    }
    /**
     * @param {?} data
     * @return {?}
     */
    getRowIndex(data) {
        if (!data.data) {
            return '';
        }
        /** @type {?} */
        const no = data.row.dataIndex + 1;
        return no;
    }
    /**
     * @param {?} e
     * @return {?}
     */
    onCellPrepared(e) {
        if (e.rowType === 'data') {
            for (const i in e.component.columns) {
                if (e.column.dataField === e.component.columns[i]) {
                    e.cellElement.accessKey = e.component.columns[i];
                }
            }
        }
    }
    /**
     * @param {?} data
     * @return {?}
     */
    isImportant(data) {
        return data.is_important ? "สำคัญ" : "";
    }
    /**
     * @param {?} data
     * @return {?}
     */
    getImageLink(data) {
        return data.url + '?downloadToken=' + this.downloadToken;
    }
}
ModalStepViewComponent.decorators = [
    { type: Component, args: [{
                selector: 'modal-step-view',
                template: "<div class=\"modal fade\" bsModal #modal=\"bs-modal\" [config]=\"{backdrop: 'static'}\"\n     tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"dialog-static-name\">\n    <div class=\"modal-dialog modal-lg\">\n        <div class=\"modal-content\">\n            <div class=\"modal-header\">\n                <h4 id=\"dialog-static-name\" class=\"modal-title pull-left\"><label>{{title}}</label></h4>\n                <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"closeModal()\">\n                    <span aria-hidden=\"true\">&times;</span>\n                </button>\n            </div>\n            <div class=\"modal-body\">\n                <div class=\"row\">\n                    <div class=\"col-lg-12\">\n                        <div class=\"m-portlet__body\">\n                            <div class=\"row\">\n                                <!-- \u0E2A\u0E16\u0E32\u0E19\u0E30\u0E43\u0E2B\u0E21\u0E48 -->\n                                <!--<div class=\"col-sm-2\">-->\n                                    <!--<span>\u0E2A\u0E16\u0E32\u0E19\u0E30 :</span>-->\n                                <!--</div>-->\n                                <div class=\"col-sm-6\">\n                                    <label class=\"control-label\">\u0E2A\u0E16\u0E32\u0E19\u0E30\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E32\u0E21</label>\n                                    <input type=\"text\" class=\"form-control m-input\" id=\"txtViewStepName\" [(ngModel)]=\"stepName\" disabled>\n                                </div>\n                                <!-- \u0E27\u0E31\u0E19\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23 -->\n                                <!--<div class=\"col-sm-2\">-->\n                                    <!--<span>\u0E27\u0E31\u0E19\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23 :</span>-->\n                                <!--</div>-->\n                                <div class=\"col-sm-6\">\n                                    <label class=\"control-label\">\u0E27\u0E31\u0E19\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23</label>\n                                    <soc-date-box [id]=\"'txtStepDate'\" [(value)]=\"stepData.step_date\" [disabled]=\"true\"></soc-date-box>\n                                </div>\n                            </div>\n                            <div class=\"row\" *ngIf=\"stepData.system_id === 23\">\n                                <div class=\"col-sm-6\">\n                                    <label class=\"control-label\">\u0E40\u0E25\u0E02\u0E17\u0E35\u0E48\u0E23\u0E31\u0E1A \u0E2A\u0E25\u0E04.</label>\n                                    <input type=\"text\" class=\"form-control m-input\" id=\"soc_recv_no\" [(ngModel)]=\"stepData.soc_recv_no\" [disabled]=\"true\">\n                                </div>\n                                <div class=\"col-sm-6\">\n                                    <label class=\"control-label\">\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E23\u0E31\u0E1A \u0E2A\u0E25\u0E04.</label>\n                                    <soc-date-box [id]=\"'soc_recv_date'\" [(value)]=\"stepData.soc_recv_date\"[disabled]=\"true\" ></soc-date-box>\n                                </div>\n                                <br>\n                            </div>\n                            <div class=\"row\" *ngIf=\"stepData.system_id === 23\">\n                                <div class=\"col-sm-6\">\n                                    <label class=\"control-label\">\u0E40\u0E25\u0E02\u0E17\u0E35\u0E48\u0E23\u0E31\u0E1A \u0E01\u0E2D\u0E04.</label>\n                                    <input type=\"text\" class=\"form-control m-input\" id=\"gtc_recv_no\" [(ngModel)]=\"stepData.gtc_recv_no\" [disabled]=\"true\">\n                                </div>\n                                <div class=\"col-sm-6\">\n                                    <label class=\"control-label\">\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E23\u0E31\u0E1A \u0E01\u0E2D\u0E04.</label>\n                                    <soc-date-box [id]=\"'gtc_recv_date'\" [(value)]=\"stepData.gtc_recv_date\" [disabled]=\"true\" ></soc-date-box>\n                                </div>\n                                <br>\n                            </div>\n\n                            <div class=\"row\" *ngIf=\"stepData.system_id === 23\">\n                              <div class=\"col-sm-6\">\n                                  <label class=\"control-label\">\u0E40\u0E25\u0E02\u0E17\u0E35\u0E48\u0E2B\u0E19\u0E31\u0E07\u0E2A\u0E37\u0E2D</label>\n                                  <input type=\"text\" class=\"form-control m-input\" id=\"book_no\" [(ngModel)]=\"stepData.book_no\" [disabled]=\"true\">\n                              </div>\n                              <div class=\"col-sm-6\">\n                                  <label class=\"control-label\">\u0E25\u0E07\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48</label>\n                                  <!-- <input type=\"text\" class=\"form-control m-input\" id=\"book_date\" [(ngModel)]=\"stepData.book_date\" [disabled]=\"true\"> -->\n                                  <soc-date-box [id]=\"'book_date'\"  [(value)]=\"stepData.book_date\" [disabled]=\"true\"></soc-date-box>\n                              </div>\n                                <br>\n                            </div>\n\n                            <div class=\"row\" *ngIf=\"stepData.system_id === 23\">\n                                <div class=\"col-sm-6\">\n                                    <label class=\"control-label\">\u0E40\u0E23\u0E35\u0E22\u0E19</label>\n                                    <input type=\"text\" class=\"form-control m-input\" id=\"for\" [(ngModel)]=\"stepData.for\" [disabled]=\"true\">\n                                </div>\n                                <br>\n                            </div>\n                            <div class=\"row\" *ngIf=\"stepData.system_id === 23\">\n                                <div class=\"col-sm-6\">\n                                    <label class=\"control-label\">\u0E01\u0E23\u0E30\u0E17\u0E23\u0E27\u0E07</label>\n                                    <input type=\"text\" class=\"form-control m-input\" id=\"for\" [(ngModel)]=\"stepData.ministry\" [disabled]=\"true\">\n                                    <!-- <soc-auto-complete-2 [id]=\"'ministry'\"  mode=\"local\"\n                                      [api]=\"'/db/ct_ext_department'\" [acceptCustomValue]=\"false\" field=\"name\" fieldApi=\"id,name,code,type\"\n                                      [filter]=\"'&_where=(type,in,1,9)'\" (valueSelete)=\"valueSeleteMinistry($event)\"\n                                      [(value)]=\"stepData.ministry\" [(ngModel)]=\"stepData.ministry\" [disabled]=\"true\">\n                                    </soc-auto-complete-2> -->\n                                </div>\n                                <div class=\"col-sm-6\">\n                                    <label class=\"control-label\">\u0E01\u0E23\u0E21</label>\n                                    <div>\n                                      <input type=\"text\" class=\"form-control m-input\" id=\"for\" [(ngModel)]=\"stepData.dept_name\" [disabled]=\"true\">\n                                    <!-- <soc-auto-complete-2 [acceptCustomValue]=\"false\" [id]=\"'dept_name'\"\n                                      mode=\"local\" [filter]=\"filter_ref_ext_department_id\"\n                                       [api]=\"'/db/ct_ext_department'\" field=\"name\"\n                                      fieldApi=\"id,name,code,type\" [(value)]=\"stepData.dept_name\" (valueSelete)=\"valueSeleteDeptName($event)\"\n                                      [(ngModel)]=\"stepData.dept_name\"  [disabled]=\"true\">\n                                    </soc-auto-complete-2> -->\n                                    </div>\n                                </div>\n                            </div>\n\n                            <br>\n                            <div class=\"row\">\n                                <!--<div class=\"col-sm-2\">-->\n                                <!--<span>\u0E40\u0E2D\u0E01\u0E2A\u0E32\u0E23\u0E41\u0E19\u0E1A :</span>-->\n                                <!--</div>-->\n                                <div class=\"col-sm-12\">\n                                    <label class=\"control-label\">\u0E40\u0E2D\u0E01\u0E2A\u0E32\u0E23\u0E41\u0E19\u0E1A</label>\n                                    <br>\n                                    <a [href]=\"getImageLink(stepData)\" target=\"_blank\">{{stepData.url}}</a>\n                                </div>\n                            </div>\n                            <br>\n                            <!-- \u0E2B\u0E21\u0E32\u0E22\u0E40\u0E2B\u0E15\u0E38 -->\n                            <div class=\"row\">\n                                <!--<div class=\"col-sm-2\">-->\n                                    <!--<span>\u0E2B\u0E21\u0E32\u0E22\u0E40\u0E2B\u0E15\u0E38 :</span>-->\n                                <!--</div>-->\n                                <div class=\"col-sm-12\">\n                                    <label class=\"control-label\">\u0E2B\u0E21\u0E32\u0E22\u0E40\u0E2B\u0E15\u0E38</label>\n                                    <textarea class=\"form-control m-input\" id=\"txtViewRemark\" rows=\"3\" [(ngModel)]=\"stepData.remark\" disabled></textarea>\n                                </div>\n                            </div>\n                            <br>\n                            <div *ngIf=\"isMore\">\n                                <div *ngFor=\"let field of moreField; let i=index\">\n                                    <div class=\"row\">\n                                        <!--<div class=\"col-sm-2\">-->\n                                            <!--<span>{{field.display_name}} :</span>-->\n                                        <!--</div>-->\n                                        <div *ngIf=\"field.type === 'text'\">\n                                            <div class=\"col-sm-12\">\n                                                <label class=\"control-label\">{{field.display_name}}</label>\n                                                <input type=\"text\" class=\"form-control m-input\" [id]=\"getFieldId(field)\" [(ngModel)]=\"stepData[field.field_name]\" disabled>\n                                            </div>\n                                        </div>\n                                        <!-- field \u0E40\u0E1E\u0E34\u0E48\u0E21\u0E40\u0E15\u0E34\u0E21 type datetime -->\n                                        <div *ngIf=\"field.type === 'datetime'\">\n                                            <div class=\"col-sm-6\">\n                                                <label class=\"control-label\">{{field.display_name}}</label>\n                                                <soc-date-box  [id]=\"getFieldId(field)\" [(value)]=\"stepData[field.field_name]\" [disabled]=\"true\"></soc-date-box>\n                                            </div>\n                                        </div>\n                                        <div *ngIf=\"field.type === 'number'\">\n                                            <div *ngIf=\"field.field_name === 'remind_date'\">\n                                                <div class=\"col-sm-6\">\n                                                    <label class=\"control-label\">{{field.display_name}}</label>\n                                                    <soc-date-box  [id]=\"getFieldId(field)\" [(value)]=\"stepData[field.field_name]\" [disabled]=\"true\"></soc-date-box>\n                                                </div>\n                                            </div>\n                                            <div *ngIf=\"field.field_name !== 'remind_date'\">\n                                                <div class=\"col-sm-6\">\n                                                    <label class=\"control-label\">{{field.display_name}}</label>\n                                                    <input type=\"number\" class=\"form-control m-input\" [id]=\"getFieldId(field)\" [(ngModel)]=\"stepData[field.field_name]\" disabled>\n                                                </div>\n                                            </div>\n                                        </div>\n                                        <div *ngIf=\"field.type === 'special'\">\n                                            <div *ngIf=\"field.field_name === 'term'\">\n\n                                            </div>\n                                            <div *ngIf=\"field.field_name === 'amount'\">\n                                                <div  class=\"col-sm-6\">\n                                                    <label class=\"control-label\">{{field.display_name}}</label>\n                                                    <input type=\"text\" class=\"form-control m-input\" [id]=\"getFieldId(field)\" [(ngModel)]=\"stepData[field.field_name]\" disabled>\n                                                </div>\n                                                <div class=\"col-sm-6\">\n                                                    <div class=\"m-radio-inline\">\n                                                        <label class=\"m-radio\">\n                                                            <input type=\"radio\" id=\"rdlAmountType1\" [value]=\"0\" [(ngModel)]=\"stepData['amount_type']\" disabled>\n                                                            \u0E19\u0E31\u0E1A\u0E41\u0E15\u0E48<span></span>\n                                                        </label>\n                                                        <label class=\"m-radio\">\n                                                            <input type=\"radio\" id=\"rdlAmountType2\" [value]=\"1\" [(ngModel)]=\"stepData['amount_type']\" disabled>\n                                                            \u0E19\u0E31\u0E1A\u0E16\u0E31\u0E14<span></span>\n                                                        </label>\n                                                    </div>\n                                                </div>\n                                            </div>\n                                            <div *ngIf=\"field.field_name === 'follow'\">\n                                                <div class=\"col-sm-6\">\n                                                    <label class=\"control-label\">{{field.display_name}}</label>\n                                                    <div class=\"m-radio-inline\">\n                                                        <label class=\"m-radio\">\n                                                            <input type=\"radio\" [id]=\"getFieldId(field) + '1'\" value=\"\u0E17\u0E32\u0E07\u0E01\u0E32\u0E23\" [(ngModel)]=\"stepData[field.field_name]\" disabled>\n                                                            \u0E17\u0E32\u0E07\u0E01\u0E32\u0E23<span></span>\n                                                        </label>\n                                                        <label class=\"m-radio\">\n                                                            <input type=\"radio\" [id]=\"getFieldId(field) + '2'\" value=\"\u0E44\u0E21\u0E48\u0E17\u0E32\u0E07\u0E01\u0E32\u0E23\" [(ngModel)]=\"stepData[field.field_name]\" disabled>\n                                                            \u0E44\u0E21\u0E48\u0E17\u0E32\u0E07\u0E01\u0E32\u0E23<span></span>\n                                                        </label>\n                                                    </div>\n                                                </div>\n                                                <!--<div class=\"col-sm-2\">-->\n                                                    <!--<span>\u0E2B\u0E21\u0E32\u0E22\u0E40\u0E2B\u0E15\u0E38 :</span>-->\n                                                <!--</div>-->\n                                                <div class=\"col-sm-6\">\n                                                    <label class=\"control-label\">\u0E2B\u0E21\u0E32\u0E22\u0E40\u0E2B\u0E15\u0E38</label>\n                                                    <input type=\"text\" class=\"form-control m-input\" id=\"txtFollowRemark\" [(ngModel)]=\"stepData['follow_remark']\" disabled>\n                                                </div>\n                                            </div>\n                                            <div *ngIf=\"field.field_name === 'cause'\">\n                                                <div  class=\"col-sm-6\">\n                                                    <label class=\"control-label\">{{field.display_name}}</label>\n                                                    <input type=\"text\" class=\"form-control m-input\" [id]=\"getFieldId(field)\" [(ngModel)]=\"stepData[field.field_name]\" disabled>\n                                                </div>\n                                            </div>\n                                        </div>\n                                    </div>\n                                    <br>\n                                </div>\n                                <br>\n                            </div>\n                            <div *ngIf=\"isSend\">\n                                <div class=\"row\">\n                                    <div class=\"col-sm-2\">\n                                        <span>\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E2A\u0E48\u0E07 :</span>\n                                    </div>\n                                </div>\n                                <br>\n                                <dx-data-grid #dxDataGridStepSendListView class=\"card-list-table\"\n                                              id=\"gridStepSendListView\" noDataText=\"\"\n                                              (onCellPrepared)=\"onCellPrepared($event)\" [dataSource]=\"sendList\"\n                                              [wordWrapEnabled]=\"true\"\n                                              [showBorders]=\"true\">\n                                    <dxi-column caption=\"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E17\u0E35\u0E48\" [allowSorting]=\"false\" cellTemplate=\"cellTemplate\" alignment=\"center\"></dxi-column>\n                                    <dxi-column dataField=\"send_to\" caption=\"\u0E2B\u0E19\u0E48\u0E27\u0E22\u0E07\u0E32\u0E19\"></dxi-column>\n                                    <dxi-column dataField=\"send_book_no\" caption=\"\u0E40\u0E25\u0E02\u0E17\u0E35\u0E48\u0E2B\u0E19\u0E31\u0E07\u0E2A\u0E37\u0E2D\u0E2A\u0E48\u0E07\u0E2D\u0E2D\u0E01\"></dxi-column>\n                                    <dxi-column dataField=\"send_date\" caption=\"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E2A\u0E48\u0E07\u0E2D\u0E2D\u0E01\" dataType=\"date\" alignment=\"center\"></dxi-column>\n                                    <dxi-column [calculateCellValue]=\"isImportant\" caption=\"\u0E04\u0E27\u0E32\u0E21\u0E2A\u0E33\u0E04\u0E31\u0E0D\"></dxi-column>\n                                    <div *dxTemplate=\"let data of 'cellTemplate'\">\n                                        {{getRowIndex(data)}}\n                                    </div>\n                                </dx-data-grid>\n                                <br>\n                            </div>\n                            <div *ngIf=\"isRecieve\">\n                                <div class=\"row\">\n                                    <div class=\"col-sm-2\">\n                                        <span>\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E23\u0E31\u0E1A :</span>\n                                    </div>\n                                </div>\n                                <br>\n                                <dx-data-grid #dxDataGridStepRecieveListView class=\"card-list-table\"\n                                              id=\"gridStepRecieveListView\" noDataText=\"\"\n                                              (onCellPrepared)=\"onCellPrepared($event)\" [dataSource]=\"recieveList\"\n                                              [wordWrapEnabled]=\"true\"\n                                              [showBorders]=\"true\">\n                                    <dxi-column caption=\"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E17\u0E35\u0E48\" [allowSorting]=\"false\" cellTemplate=\"cellTemplate\" alignment=\"center\"></dxi-column>\n                                    <dxi-column dataField=\"recv_from\" caption=\"\u0E2B\u0E19\u0E48\u0E27\u0E22\u0E07\u0E32\u0E19\"></dxi-column>\n                                    <dxi-column dataField=\"send_book_no\" caption=\"\u0E40\u0E25\u0E02\u0E17\u0E35\u0E48\u0E2B\u0E19\u0E31\u0E07\u0E2A\u0E37\u0E2D\u0E2A\u0E48\u0E07\u0E2D\u0E2D\u0E01\"></dxi-column>\n                                    <dxi-column dataField=\"send_date\" caption=\"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E2A\u0E48\u0E07\u0E2D\u0E2D\u0E01\" dataType=\"date\" alignment=\"center\"></dxi-column>\n                                    <dxi-column dataField=\"recv_no\" caption=\"\u0E40\u0E25\u0E02\u0E17\u0E35\u0E48\u0E23\u0E31\u0E1A\u0E2B\u0E19\u0E31\u0E07\u0E2A\u0E37\u0E2D\"></dxi-column>\n                                    <dxi-column dataField=\"recv_date\" caption=\"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E23\u0E31\u0E1A\" dataType=\"date\" alignment=\"center\"></dxi-column>\n                                    <div *dxTemplate=\"let data of 'cellTemplate'\">\n                                        {{getRowIndex(data)}}\n                                    </div>\n                                </dx-data-grid>\n                                <br>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>"
            }] }
];
/** @nocollapse */
ModalStepViewComponent.ctorParameters = () => [
    { type: Request },
    { type: Common }
];
ModalStepViewComponent.propDecorators = {
    onUpdateModal: [{ type: Output }],
    modal: [{ type: ViewChild, args: ['modal',] }]
};
if (false) {
    /** @type {?} */
    ModalStepViewComponent.prototype.onUpdateModal;
    /** @type {?} */
    ModalStepViewComponent.prototype.modal;
    /** @type {?} */
    ModalStepViewComponent.prototype.submitted;
    /** @type {?} */
    ModalStepViewComponent.prototype.title;
    /** @type {?} */
    ModalStepViewComponent.prototype.selectList;
    /** @type {?} */
    ModalStepViewComponent.prototype.list;
    /** @type {?} */
    ModalStepViewComponent.prototype.modalConfig;
    /** @type {?} */
    ModalStepViewComponent.prototype.th;
    /** @type {?} */
    ModalStepViewComponent.prototype.selectedStep;
    /** @type {?} */
    ModalStepViewComponent.prototype.isMore;
    /** @type {?} */
    ModalStepViewComponent.prototype.moreField;
    /** @type {?} */
    ModalStepViewComponent.prototype.config;
    /** @type {?} */
    ModalStepViewComponent.prototype.stepData;
    /** @type {?} */
    ModalStepViewComponent.prototype.lastStep;
    /** @type {?} */
    ModalStepViewComponent.prototype.stepName;
    /** @type {?} */
    ModalStepViewComponent.prototype.isSend;
    /** @type {?} */
    ModalStepViewComponent.prototype.isRecieve;
    /** @type {?} */
    ModalStepViewComponent.prototype.sendList;
    /** @type {?} */
    ModalStepViewComponent.prototype.recieveList;
    /** @type {?} */
    ModalStepViewComponent.prototype.downloadToken;
    /** @type {?} */
    ModalStepViewComponent.prototype.request;
    /** @type {?} */
    ModalStepViewComponent.prototype.common;
}

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtc3RlcC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3NvYy1hcHAtbGlicmFyeS8iLCJzb3VyY2VzIjpbImxpYi9tb2RhbC1zdGVwLXZpZXcvbW9kYWwtc3RlcC12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBZSxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQU12RCxNQUFNOzs7OztJQXdCRixZQUFvQixPQUFnQixFQUFTLE1BQWM7UUFBdkMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUFTLFdBQU0sR0FBTixNQUFNLENBQVE7NkJBdEJqQyxJQUFJLFlBQVksRUFBRTt5QkFFaEMsS0FBSztxQkFDSixjQUFjOzBCQUNULEVBQUU7b0JBQ1IsRUFBRTsyQkFDYztZQUN4QixtQkFBbUIsRUFBRSxJQUFJO1NBQzVCOzRCQUVtQixFQUFFO3NCQUNiLEtBQUs7eUJBQ0csRUFBRTt3QkFFSCxFQUFFO3dCQUNQLEVBQUU7d0JBQ0YsRUFBRTtzQkFDSixLQUFLO3lCQUNGLEtBQUs7d0JBQ0QsRUFBRTsyQkFDQyxFQUFFO0tBR3BCOzs7O0lBRUQsUUFBUTtLQUVQOzs7OztJQUVLLElBQUksQ0FBQyxPQUFhOztZQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1lBQ25CLElBQUksT0FBTyxFQUFFO2dCQUNULElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksY0FBYyxDQUFDO2dC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T0FBTyxFQUFFLENBQUM7S0FDYjs7Ozs7SUFFRCxXQUFXLENBQUMsSUFBSTtRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1osT0FBTyxFQUFFLENBQUM7U0FDYjs7UUFDRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEMsT0FBTyxFQUFFLENBQUM7S0FDYjs7Ozs7SUFFRCxjQUFjLENBQUMsQ0FBQztRQUNaLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxNQUFNLEVBQUU7WUFDdEIsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRTtnQkFDakMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDL0MsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3BEO2FBQ0o7U0FDSjtLQUNKOzs7OztJQUVELFdBQVcsQ0FBQyxJQUFJO1FBQ1osT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFBLENBQUMsQ0FBQSxPQUFPLENBQUEsQ0FBQyxDQUFBLEVBQUUsQ0FBQztLQUN2Qzs7Ozs7SUFFRCxZQUFZLENBQUMsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEdBQUcsR0FBQyxpQkFBaUIsR0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0tBQ3hEOzs7WUEzSUosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLGlqckJBQStDO2FBQ2xEOzs7O1lBTFEsT0FBTztZQURSLE1BQU07Ozs0QkFTVCxNQUFNO29CQUNOLFNBQVMsU0FBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TW9kYWxPcHRpb25zLCBNb2RhbERpcmVjdGl2ZX0gZnJvbSAnbmd4LWJvb3RzdHJhcCc7XG5pbXBvcnQge0NvbW1vbn0gZnJvbSAnLi4vX3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcbmltcG9ydCB7IFJlcXVlc3QgfSBmcm9tICcuLi9fc2VydmljZXMvcmVxdWVzdC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtb2RhbC1zdGVwLXZpZXcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC1zdGVwLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbFN0ZXBWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIEBPdXRwdXQoKSBvblVwZGF0ZU1vZGFsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBWaWV3Q2hpbGQoJ21vZGFsJykgbW9kYWw6IE1vZGFsRGlyZWN0aXZlO1xuICAgIHN1Ym1pdHRlZCA9IGZhbHNlO1xuICAgIHRpdGxlOiBhbnkgPSAn4Liq4LiW4Liy4LiZ4Liw4LiC4Lix4LmJ4LiZ4LiV4Lit4LiZJztcbiAgICBzZWxlY3RMaXN0OiBhbnkgPSBbXTtcbiAgICBsaXN0OiBhbnkgPSBbXTtcbiAgICBtb2RhbENvbmZpZzogTW9kYWxPcHRpb25zID0ge1xuICAgICAgICBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlXG4gICAgfTtcbiAgICB0aDtcbiAgICBzZWxlY3RlZFN0ZXA6IGFueSA9IHt9O1xuICAgIGlzTW9yZSA9IGZhbHNlO1xuICAgIG1vcmVGaWVsZDogYW55ID0gW107XG4gICAgcHVibGljIGNvbmZpZzogYW55O1xuICAgIHN0ZXBEYXRhOiBhbnkgPSB7fTtcbiAgICBsYXN0U3RlcCA9ICcnO1xuICAgIHN0ZXBOYW1lID0gJyc7XG4gICAgaXNTZW5kID0gZmFsc2U7XG4gICAgaXNSZWNpZXZlID0gZmFsc2U7XG4gICAgc2VuZExpc3Q6IGFueSA9IFtdO1xuICAgIHJlY2lldmVMaXN0OiBhbnkgPSBbXTtcbiAgICBkb3dubG9hZFRva2VuOmFueTtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcXVlc3Q6IFJlcXVlc3QsIHB1YmxpYyBjb21tb246IENvbW1vbikge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuXG4gICAgfVxuXG4gICAgYXN5bmMgb3BlbihvcHRpb25zPzogYW55KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKG9wdGlvbnMpO1xuICAgICAgICB0aGlzLnN0ZXBEYXRhID0ge307XG4gICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLnRpdGxlID0gb3B0aW9ucy5vcHRpb24udGl0bGUgfHwgJ+C4quC4luC4suC4meC4sOC4guC4seC5ieC4meC4leC4reC4mSc7XG4gICAgICAgICAgICB0aGlzLnN0ZXBOYW1lID0gb3B0aW9ucy5kYXRhLnN0ZXBfbmFtZSB8fCAnJztcbiAgICAgICAgICAgIHRoaXMuc3RlcERhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9wdGlvbnMuZGF0YSkpO1xuICAgICAgICAgICAgdGhpcy5kb3dubG9hZFRva2VuID0gb3B0aW9ucy5kb3dubG9hZFRva2VuO1xuICAgICAgICAgICAgLy8g4LiV4LmJ4Lit4LiH4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmA4Lib4LmH4LiZ4LmA4Lij4Li14Lii4LiBIGFwaVxuICAgICAgICAgICAgaWYodGhpcy5zdGVwRGF0YS5zdGVwX2lkKXtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdExpc3QgPSBhd2FpdCB0aGlzLnJlcXVlc3QuZ2V0KCcvZGIvY3Rfc3RlcD9fd2hlcmU9KGlkLGVxLCcgKyB0aGlzLnN0ZXBEYXRhLnN0ZXBfaWQgKyAnKScpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0ZXAgPSB0aGlzLnNlbGVjdExpc3RbMF07XG4gICAgICAgICAgICAgICAgaWYgKHN0ZXAuZmxhZykge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ZXAuZmxhZy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmxhZyA9IHN0ZXAuZmxhZy5jaGFyQXQoaSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjdF9zdGVwX2ZsYWcgPSBhd2FpdCB0aGlzLnJlcXVlc3QuZ2V0KCcvZGIvY3Rfc3RlcF9mbGFnP193aGVyZT0oZmxhZyxlcSwnICsgZmxhZyArICcpJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdGaWVsZCA9IGN0X3N0ZXBfZmxhZ1swXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW9yZUZpZWxkLnB1c2gobmV3RmllbGQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNNb3JlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTW9yZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RlcC50eXBlX2lkID09PSA4IHx8IHN0ZXAudHlwZV9pZCA9PT0gMTMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmaWx0ZXIgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyIDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdF9zdGVwX2RhdGFfaWQgOiB0aGlzLnN0ZXBEYXRhLmlkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmRlcl9ieTpbXCJpc19pbXBvcnRhbnRcIixcInNlbmRfYm9va19ub1wiLFwiY3JlYXRlZF9hdFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VuZERhdGFMaXN0ID0gYXdhaXQgdGhpcy5yZXF1ZXN0LnBvc3QoJy9zZWFyY2gvdl9jdF9zdGVwX3NlbnQnLGZpbHRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbmRMaXN0ID0gc2VuZERhdGFMaXN0LnJlc3VsdERhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU2VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUmVjaWV2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0ZXAudHlwZV9pZCA9PT0gOSB8fCBzdGVwLnR5cGVfaWQgPT09IDE0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmlsdGVyID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlciA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Rfc3RlcF9kYXRhX2lkIDogdGhpcy5zdGVwRGF0YS5pZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXJfYnk6W1wiaXNfaW1wb3J0YW50XCIsXCJzZW5kX2Jvb2tfbm9cIixcImNyZWF0ZWRfYXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlY2lldmVEYXRhTGlzdCA9IGF3YWl0IHRoaXMucmVxdWVzdC5wb3N0KCcvc2VhcmNoL3ZfY3Rfc3RlcF9zZW50JyxmaWx0ZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWNpZXZlTGlzdCA9IHJlY2lldmVEYXRhTGlzdC5yZXN1bHREYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1JlY2lldmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1NlbmQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNSZWNpZXZlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU2VuZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMubW9kYWwuc2hvdygpO1xuICAgIH1cblxuICAgIGNsb3NlTW9kYWwoKSB7XG4gICAgICAgIHRoaXMuc3VibWl0dGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2VsZWN0TGlzdCA9IFtdO1xuICAgICAgICB0aGlzLmxpc3QgPSBbXTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN0ZXAgPSB7fTtcbiAgICAgICAgdGhpcy5pc01vcmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc1NlbmQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc1JlY2lldmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5tb3JlRmllbGQgPSBbXTtcbiAgICAgICAgdGhpcy5zdGVwRGF0YSA9IHt9O1xuICAgICAgICB0aGlzLmxhc3RTdGVwID0gJyc7XG4gICAgICAgIHRoaXMubW9kYWwuaGlkZSgpO1xuICAgIH1cblxuICAgIGdldEZpZWxkSWQoZGF0YSkge1xuICAgICAgICBsZXQgaWQgPSAnJztcbiAgICAgICAgaWYgKGRhdGEudHlwZSA9PT0gJ3RleHQnKSB7XG4gICAgICAgICAgICBpZCArPSAndHh0Vmlldyc7XG4gICAgICAgIH0gZWxzZSBpZiAoZGF0YS50eXBlID09PSAnZGF0ZXRpbWUnKSB7XG4gICAgICAgICAgICBpZCArPSAndHh0Vmlldyc7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmllbGQgPSBkYXRhLmZpZWxkX25hbWUuY2hhckF0KDApLnRvTG9jYWxlVXBwZXJDYXNlKCkgKyBkYXRhLmZpZWxkX25hbWUuc3Vic3RyaW5nKDEpO1xuICAgICAgICBpZCArPSBmaWVsZDtcbiAgICAgICAgcmV0dXJuIGlkO1xuICAgIH1cblxuICAgIGdldFJvd0luZGV4KGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhLmRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBubyA9IGRhdGEucm93LmRhdGFJbmRleCArIDE7XG4gICAgICAgIHJldHVybiBubztcbiAgICB9XG5cbiAgICBvbkNlbGxQcmVwYXJlZChlKSB7XG4gICAgICAgIGlmIChlLnJvd1R5cGUgPT09ICdkYXRhJykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBpIGluIGUuY29tcG9uZW50LmNvbHVtbnMpIHtcbiAgICAgICAgICAgICAgICBpZiAoZS5jb2x1bW4uZGF0YUZpZWxkID09PSBlLmNvbXBvbmVudC5jb2x1bW5zW2ldKSB7XG4gICAgICAgICAgICAgICAgICAgIGUuY2VsbEVsZW1lbnQuYWNjZXNzS2V5ID0gZS5jb21wb25lbnQuY29sdW1uc1tpXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc0ltcG9ydGFudChkYXRhKXtcbiAgICAgICAgcmV0dXJuIGRhdGEuaXNfaW1wb3J0YW50P1wi4Liq4Liz4LiE4Lix4LiNXCI6XCJcIjtcbiAgICB9XG5cbiAgICBnZXRJbWFnZUxpbmsoZGF0YSl7XG4gICAgICAgIHJldHVybiBkYXRhLnVybCsnP2Rvd25sb2FkVG9rZW49Jyt0aGlzLmRvd25sb2FkVG9rZW47XG4gICAgfVxufVxuIl19