UNPKG

armisa-models

Version:
108 lines (107 loc) 5.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SendByLetterFactory = void 0; const ElementsOfFormFactory_1 = require("../Page/ElementsOfFormFactory"); class SendByLetterFactory { get any() { return this; } constructor(mainStateManager, onCloseSendByLetterForm) { this.mainStateManager = mainStateManager; this.onCloseSendByLetterForm = onCloseSendByLetterForm; this.forceUpdate = () => { }; this.payLoad = 'forms'; this.forms = []; this.addForm = (type, object) => { this.forms.push({ type, object }); }; this.remove = (id) => { const findIndex = this.forms.findIndex(i => i.object.id === id); if (findIndex > -1) { this.forms.splice(findIndex, 1); this.forceUpdate(); } }; this.getPayLoad = () => { return { [this.payLoad]: this.forms.map(i => { return { id: i.object.getProp('id'), yearId: i.object.getProp('yearId'), formType: i.type }; }) }; }; this.dispose = () => { this.sendByLetterRoot.removeChild(this.mainDivElement); // this.sendByLetterRoot.removeChild(this.backdropDivElement); }; this.axiosDate = {}; this.accept = (afterSuccess) => { const elementErrorCount = this.elementsOfForm.validate(); if (elementErrorCount) { this.elementsOfForm.showThereAreSomeErrorYouCanNot(elementErrorCount); return; } this.saveData(afterSuccess); }; this.saveData = (afterSuccess) => { this.elementsOfForm.showWaitingFormSpinner(); this.elementsOfForm.customPayLoad = { ...this.elementsOfForm.customPayLoad, ...this.getPayLoad() }; const api = this.axiosDate.axios(this.axiosDate.controllerPath); api.post(this.axiosDate.acceptPath, this.elementsOfForm.headPayLoad, this.mainStateManager.tokenInfo.headerOfAxios) .then(response => { if (response.data.isSuccess) { if (response.data.getProp('isSuccess')) { this.elementsOfForm.closeWaitingFormSpinner(); if (afterSuccess) { this.elementsOfForm.showSuccessFullMessageBox(undefined, undefined, undefined, () => afterSuccess(response.data.getProp('data'))); } else { this.elementsOfForm.showSuccessFullMessageBox(undefined, undefined, undefined); } this.forceUpdate(); } else { this.elementsOfForm.closeWaitingFormSpinner(); this.elementsOfForm.showInvalidArgumentMessageBox(response.data.getProp('messageRoot')); } } else { this.elementsOfForm.closeWaitingFormSpinner(); this.elementsOfForm.showInvalidArgumentMessageBox(response.data.getProp('messageRoot')); } }) .catch(e => { this.elementsOfForm.closeWaitingFormSpinner(); this.elementsOfForm.showErrorMessageBox(e); }); }; this.id = Math.random().toString() + '-' + new Date().getMilliseconds().toString(); this.elementsOfForm = new ElementsOfFormFactory_1.ElementsOfFormFactory(this); let tempSendByLetterFormRoot = document.getElementById('send_by_letter_form__container'); if (!tempSendByLetterFormRoot) { tempSendByLetterFormRoot = document.createElement('div'); tempSendByLetterFormRoot.className = "send_by_letter_form__container"; tempSendByLetterFormRoot.id = "send_by_letter_form__container"; const root = document.getElementById('root'); root.insertAdjacentElement('beforebegin', tempSendByLetterFormRoot); } this.sendByLetterRoot = tempSendByLetterFormRoot; // this.backdropDivElement = document.createElement('div'); // this.backdropDivElement.classList.add('backdrop-popup'); // this.backdropDivElement.style.zIndex = '2000'; // this.backdropDivElement.style.opacity = '0'; // this.backdropDivElement.onclick = (e: any) => this.closeByClick(this); this.mainDivElement = document.createElement('div'); this.mainDivElement.classList.add('send_by_letter'); this.mainDivElement.style.position = 'fixed'; this.mainDivElement.style.right = `${20}px`; this.mainDivElement.style.bottom = `${20}px`; this.mainDivElement.style.zIndex = '3000'; this.mainDivElement.style.background = '#d4ecff'; // this.sendByLetterRoot.appendChild(this.backdropDivElement); this.sendByLetterRoot.appendChild(this.mainDivElement); } closeByClick(e) { e.close(); } close() { this.mainStateManager.closeSendByLetterForm(); this.onCloseSendByLetterForm && this.onCloseSendByLetterForm(); } } exports.SendByLetterFactory = SendByLetterFactory;