modal-step-view.component.js 43.9 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';
var ModalStepViewComponent = /** @class */ (function () {
    function ModalStepViewComponent(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 {?}
     */
    ModalStepViewComponent.prototype.ngOnInit = /**
     * @return {?}
     */
    function () {
    };
    /**
     * @param {?=} options
     * @return {?}
     */
    ModalStepViewComponent.prototype.open = /**
     * @param {?=} options
     * @return {?}
     */
    function (options) {
        return tslib_1.__awaiter(this, void 0, void 0, function () {
            var _a, step, i, flag, ct_step_flag, newField, filter, sendDataList, filter, recieveDataList;
            return tslib_1.__generator(this, function (_b) {
                switch (_b.label) {
                    case 0:
                        console.log(options);
                        this.stepData = {};
                        if (!options) return [3 /*break*/, 11];
                        this.title = options.option.title || 'สถานะขั้นตอน';
                        this.stepName = options.data.step_name || '';
                        this.stepData = JSON.parse(JSON.stringify(options.data));
                        this.downloadToken = options.downloadToken;
                        if (!this.stepData.step_id) return [3 /*break*/, 11];
                        _a = this;
                        return [4 /*yield*/, this.request.get('/db/ct_step?_where=(id,eq,' + this.stepData.step_id + ')')];
                    case 1:
                        _a.selectList = _b.sent();
                        step = this.selectList[0];
                        if (!step.flag) return [3 /*break*/, 6];
                        i = 0;
                        _b.label = 2;
                    case 2:
                        if (!(i < step.flag.length)) return [3 /*break*/, 5];
                        flag = step.flag.charAt(i);
                        return [4 /*yield*/, this.request.get('/db/ct_step_flag?_where=(flag,eq,' + flag + ')')];
                    case 3:
                        ct_step_flag = _b.sent();
                        newField = ct_step_flag[0];
                        this.moreField.push(newField);
                        _b.label = 4;
                    case 4:
                        i++;
                        return [3 /*break*/, 2];
                    case 5:
                        this.isMore = true;
                        return [3 /*break*/, 11];
                    case 6:
                        this.isMore = false;
                        if (!(step.type_id === 8 || step.type_id === 13)) return [3 /*break*/, 8];
                        filter = {
                            filter: {
                                ct_step_data_id: this.stepData.id
                            },
                            order_by: ["is_important", "send_book_no", "created_at"]
                        };
                        return [4 /*yield*/, this.request.post('/search/v_ct_step_sent', filter)];
                    case 7:
                        sendDataList = _b.sent();
                        this.sendList = sendDataList.resultData;
                        this.isSend = true;
                        this.isRecieve = false;
                        return [3 /*break*/, 11];
                    case 8:
                        if (!(step.type_id === 9 || step.type_id === 14)) return [3 /*break*/, 10];
                        filter = {
                            filter: {
                                ct_step_data_id: this.stepData.id
                            },
                            order_by: ["is_important", "send_book_no", "created_at"]
                        };
                        return [4 /*yield*/, this.request.post('/search/v_ct_step_sent', filter)];
                    case 9:
                        recieveDataList = _b.sent();
                        this.recieveList = recieveDataList.resultData;
                        this.isRecieve = true;
                        this.isSend = false;
                        return [3 /*break*/, 11];
                    case 10:
                        this.isRecieve = false;
                        this.isSend = false;
                        _b.label = 11;
                    case 11:
                        this.modal.show();
                        return [2 /*return*/];
                }
            });
        });
    };
    /**
     * @return {?}
     */
    ModalStepViewComponent.prototype.closeModal = /**
     * @return {?}
     */
    function () {
        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 {?}
     */
    ModalStepViewComponent.prototype.getFieldId = /**
     * @param {?} data
     * @return {?}
     */
    function (data) {
        /** @type {?} */
        var id = '';
        if (data.type === 'text') {
            id += 'txtView';
        }
        else if (data.type === 'datetime') {
            id += 'txtView';
        }
        /** @type {?} */
        var field = data.field_name.charAt(0).toLocaleUpperCase() + data.field_name.substring(1);
        id += field;
        return id;
    };
    /**
     * @param {?} data
     * @return {?}
     */
    ModalStepViewComponent.prototype.getRowIndex = /**
     * @param {?} data
     * @return {?}
     */
    function (data) {
        if (!data.data) {
            return '';
        }
        /** @type {?} */
        var no = data.row.dataIndex + 1;
        return no;
    };
    /**
     * @param {?} e
     * @return {?}
     */
    ModalStepViewComponent.prototype.onCellPrepared = /**
     * @param {?} e
     * @return {?}
     */
    function (e) {
        if (e.rowType === 'data') {
            for (var i in e.component.columns) {
                if (e.column.dataField === e.component.columns[i]) {
                    e.cellElement.accessKey = e.component.columns[i];
                }
            }
        }
    };
    /**
     * @param {?} data
     * @return {?}
     */
    ModalStepViewComponent.prototype.isImportant = /**
     * @param {?} data
     * @return {?}
     */
    function (data) {
        return data.is_important ? "สำคัญ" : "";
    };
    /**
     * @param {?} data
     * @return {?}
     */
    ModalStepViewComponent.prototype.getImageLink = /**
     * @param {?} data
     * @return {?}
     */
    function (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 = function () { return [
        { type: Request },
        { type: Common }
    ]; };
    ModalStepViewComponent.propDecorators = {
        onUpdateModal: [{ type: Output }],
        modal: [{ type: ViewChild, args: ['modal',] }]
    };
    return ModalStepViewComponent;
}());
export { ModalStepViewComponent };
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtc3RlcC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3NvYy1hcHAtbGlicmFyeS8iLCJzb3VyY2VzIjpbImxpYi9tb2RhbC1zdGVwLXZpZXcvbW9kYWwtc3RlcC12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBZSxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7SUE4Qm5ELGdDQUFvQixPQUFnQixFQUFTLE1BQWM7UUFBdkMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUFTLFdBQU0sR0FBTixNQUFNLENBQVE7NkJBdEJqQyxJQUFJLFlBQVksRUFBRTt5QkFFaEMsS0FBSztxQkFDSixjQUFjOzBCQUNULEVBQUU7b0JBQ1IsRUFBRTsyQkFDYztZQUN4QixtQkFBbUIsRUFBRSxJQUFJO1NBQzVCOzRCQUVtQixFQUFFO3NCQUNiLEtBQUs7eUJBQ0csRUFBRTt3QkFFSCxFQUFFO3dCQUNQLEVBQUU7d0JBQ0YsRUFBRTtzQkFDSixLQUFLO3lCQUNGLEtBQUs7d0JBQ0QsRUFBRTsyQkFDQyxFQUFFO0tBR3BCOzs7O0lBRUQseUNBQVE7OztJQUFSO0tBRUM7Ozs7O0lBRUsscUNBQUk7Ozs7SUFBVixVQUFXLE9BQWE7Ozs7Ozt3QkFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7NkJBQ2YsT0FBTyxFQUFQLHlCQUFPO3dCQUNQLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUks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LE9BQU87O2lDQVp0Qjs7U0FTYSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNb2RhbE9wdGlvbnMsIE1vZGFsRGlyZWN0aXZlfSBmcm9tICduZ3gtYm9vdHN0cmFwJztcbmltcG9ydCB7Q29tbW9ufSBmcm9tICcuLi9fc2VydmljZXMvY29tbW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVxdWVzdCB9IGZyb20gJy4uL19zZXJ2aWNlcy9yZXF1ZXN0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21vZGFsLXN0ZXAtdmlldycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLXN0ZXAtdmlldy5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsU3RlcFZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgQE91dHB1dCgpIG9uVXBkYXRlTW9kYWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQFZpZXdDaGlsZCgnbW9kYWwnKSBtb2RhbDogTW9kYWxEaXJlY3RpdmU7XG4gICAgc3VibWl0dGVkID0gZmFsc2U7XG4gICAgdGl0bGU6IGFueSA9ICfguKrguJbguLLguJnguLDguILguLHguYnguJnguJXguK3guJknO1xuICAgIHNlbGVjdExpc3Q6IGFueSA9IFtdO1xuICAgIGxpc3Q6IGFueSA9IFtdO1xuICAgIG1vZGFsQ29uZmlnOiBNb2RhbE9wdGlvbnMgPSB7XG4gICAgICAgIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWVcbiAgICB9O1xuICAgIHRoO1xuICAgIHNlbGVjdGVkU3RlcDogYW55ID0ge307XG4gICAgaXNNb3JlID0gZmFsc2U7XG4gICAgbW9yZUZpZWxkOiBhbnkgPSBbXTtcbiAgICBwdWJsaWMgY29uZmlnOiBhbnk7XG4gICAgc3RlcERhdGE6IGFueSA9IHt9O1xuICAgIGxhc3RTdGVwID0gJyc7XG4gICAgc3RlcE5hbWUgPSAnJztcbiAgICBpc1NlbmQgPSBmYWxzZTtcbiAgICBpc1JlY2lldmUgPSBmYWxzZTtcbiAgICBzZW5kTGlzdDogYW55ID0gW107XG4gICAgcmVjaWV2ZUxpc3Q6IGFueSA9IFtdO1xuICAgIGRvd25sb2FkVG9rZW46YW55O1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVxdWVzdDogUmVxdWVzdCwgcHVibGljIGNvbW1vbjogQ29tbW9uKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG5cbiAgICB9XG5cbiAgICBhc3luYyBvcGVuKG9wdGlvbnM/OiBhbnkpIHtcbiAgICAgICAgY29uc29sZS5sb2cob3B0aW9ucyk7XG4gICAgICAgIHRoaXMuc3RlcERhdGEgPSB7fTtcbiAgICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMudGl0bGUgPSBvcHRpb25zLm9wdGlvbi50aXRsZSB8fCAn4Liq4LiW4Liy4LiZ4Liw4LiC4Lix4LmJ4LiZ4LiV4Lit4LiZJztcbiAgICAgICAgICAgIHRoaXMuc3RlcE5hbWUgPSBvcHRpb25zLmRhdGEuc3RlcF9uYW1lIHx8ICcnO1xuICAgICAgICAgICAgdGhpcy5zdGVwRGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob3B0aW9ucy5kYXRhKSk7XG4gICAgICAgICAgICB0aGlzLmRvd25sb2FkVG9rZW4gPSBvcHRpb25zLmRvd25sb2FkVG9rZW47XG4gICAgICAgICAgICAvLyDguJXguYnguK3guIfguYDguJvguKXguLXguYjguKLguJnguYDguJvguYfguJnguYDguKPguLXguKLguIEgYXBpXG4gICAgICAgICAgICBpZih0aGlzLnN0ZXBEYXRhLnN0ZXBfaWQpe1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0TGlzdCA9IGF3YWl0IHRoaXMucmVxdWVzdC5nZXQoJy9kYi9jdF9zdGVwP193aGVyZT0oaWQsZXEsJyArIHRoaXMuc3RlcERhdGEuc3RlcF9pZCArICcpJyk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RlcCA9IHRoaXMuc2VsZWN0TGlzdFswXTtcbiAgICAgICAgICAgICAgICBpZiAoc3RlcC5mbGFnKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RlcC5mbGFnLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmbGFnID0gc3RlcC5mbGFnLmNoYXJBdChpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGN0X3N0ZXBfZmxhZyA9IGF3YWl0IHRoaXMucmVxdWVzdC5nZXQoJy9kYi9jdF9zdGVwX2ZsYWc/X3doZXJlPShmbGFnLGVxLCcgKyBmbGFnICsgJyknKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0ZpZWxkID0gY3Rfc3RlcF9mbGFnWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3JlRmllbGQucHVzaChuZXdGaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc01vcmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNNb3JlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGVwLnR5cGVfaWQgPT09IDggfHwgc3RlcC50eXBlX2lkID09PSAxMykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZpbHRlciA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0X3N0ZXBfZGF0YV9pZCA6IHRoaXMuc3RlcERhdGEuaWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyX2J5OltcImlzX2ltcG9ydGFudFwiLFwic2VuZF9ib29rX25vXCIsXCJjcmVhdGVkX2F0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZW5kRGF0YUxpc3QgPSBhd2FpdCB0aGlzLnJlcXVlc3QucG9zdCgnL3NlYXJjaC92X2N0X3N0ZXBfc2VudCcsZmlsdGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VuZExpc3QgPSBzZW5kRGF0YUxpc3QucmVzdWx0RGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTZW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNSZWNpZXZlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RlcC50eXBlX2lkID09PSA5IHx8IHN0ZXAudHlwZV9pZCA9PT0gMTQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmaWx0ZXIgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyIDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdF9zdGVwX2RhdGFfaWQgOiB0aGlzLnN0ZXBEYXRhLmlkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmRlcl9ieTpbXCJpc19pbXBvcnRhbnRcIixcInNlbmRfYm9va19ub1wiLFwiY3JlYXRlZF9hdFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVjaWV2ZURhdGFMaXN0ID0gYXdhaXQgdGhpcy5yZXF1ZXN0LnBvc3QoJy9zZWFyY2gvdl9jdF9zdGVwX3NlbnQnLGZpbHRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlY2lldmVMaXN0ID0gcmVjaWV2ZURhdGFMaXN0LnJlc3VsdERhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUmVjaWV2ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU2VuZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1JlY2lldmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTZW5kID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tb2RhbC5zaG93KCk7XG4gICAgfVxuXG4gICAgY2xvc2VNb2RhbCgpIHtcbiAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZWxlY3RMaXN0ID0gW107XG4gICAgICAgIHRoaXMubGlzdCA9IFtdO1xuICAgICAgICB0aGlzLnNlbGVjdGVkU3RlcCA9IHt9O1xuICAgICAgICB0aGlzLmlzTW9yZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzU2VuZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzUmVjaWV2ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1vcmVGaWVsZCA9IFtdO1xuICAgICAgICB0aGlzLnN0ZXBEYXRhID0ge307XG4gICAgICAgIHRoaXMubGFzdFN0ZXAgPSAnJztcbiAgICAgICAgdGhpcy5tb2RhbC5oaWRlKCk7XG4gICAgfVxuXG4gICAgZ2V0RmllbGRJZChkYXRhKSB7XG4gICAgICAgIGxldCBpZCA9ICcnO1xuICAgICAgICBpZiAoZGF0YS50eXBlID09PSAndGV4dCcpIHtcbiAgICAgICAgICAgIGlkICs9ICd0eHRWaWV3JztcbiAgICAgICAgfSBlbHNlIGlmIChkYXRhLnR5cGUgPT09ICdkYXRldGltZScpIHtcbiAgICAgICAgICAgIGlkICs9ICd0eHRWaWV3JztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmaWVsZCA9IGRhdGEuZmllbGRfbmFtZS5jaGFyQXQoMCkudG9Mb2NhbGVVcHBlckNhc2UoKSArIGRhdGEuZmllbGRfbmFtZS5zdWJzdHJpbmcoMSk7XG4gICAgICAgIGlkICs9IGZpZWxkO1xuICAgICAgICByZXR1cm4gaWQ7XG4gICAgfVxuXG4gICAgZ2V0Um93SW5kZXgoZGF0YSkge1xuICAgICAgICBpZiAoIWRhdGEuZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5vID0gZGF0YS5yb3cuZGF0YUluZGV4ICsgMTtcbiAgICAgICAgcmV0dXJuIG5vO1xuICAgIH1cblxuICAgIG9uQ2VsbFByZXBhcmVkKGUpIHtcbiAgICAgICAgaWYgKGUucm93VHlwZSA9PT0gJ2RhdGEnKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGkgaW4gZS5jb21wb25lbnQuY29sdW1ucykge1xuICAgICAgICAgICAgICAgIGlmIChlLmNvbHVtbi5kYXRhRmllbGQgPT09IGUuY29tcG9uZW50LmNvbHVtbnNbaV0pIHtcbiAgICAgICAgICAgICAgICAgICAgZS5jZWxsRWxlbWVudC5hY2Nlc3NLZXkgPSBlLmNvbXBvbmVudC5jb2x1bW5zW2ldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzSW1wb3J0YW50KGRhdGEpe1xuICAgICAgICByZXR1cm4gZGF0YS5pc19pbXBvcnRhbnQ/XCLguKrguLPguITguLHguI1cIjpcIlwiO1xuICAgIH1cblxuICAgIGdldEltYWdlTGluayhkYXRhKXtcbiAgICAgICAgcmV0dXJuIGRhdGEudXJsKyc/ZG93bmxvYWRUb2tlbj0nK3RoaXMuZG93bmxvYWRUb2tlbjtcbiAgICB9XG59XG4iXX0=