UNPKG

intervention-pages

Version:
110 lines (107 loc) 4.88 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; /* eslint-disable lit/no-legacy-template-syntax */ import { PolymerElement, html } from '@polymer/polymer'; import ReportingRequirementsCommonMixin from '../mixins/reporting-requirements-common-mixin'; import CONSTANTS from '../../../common/constants'; import { gridLayoutStylesPolymer } from '../../../common/styles/grid-layout-styles-polymer'; import { buttonsStylesPolymer } from '../styles/buttons-styles-polymer'; import GenerateQuarterlyReportingRequirementsMixin from '../mixins/generate-quarterly-reporting-requirements-mixin'; import '@polymer/paper-button/paper-button.js'; import { fireEvent } from '../../../utils/fire-custom-event'; import './edit-qpr-dialog.js'; import './qpr-list.js'; import { property } from '@polymer/decorators'; /** * @polymer * @customElement * @mixinFunction * @appliesMixin ReportingRequirementsCommonMixin * @appliesMixin GenerateQuarterlyReportingRequirementsMixin */ class QuarterlyReportingRequirements extends GenerateQuarterlyReportingRequirementsMixin(ReportingRequirementsCommonMixin(PolymerElement)) { static get template() { return html ` ${gridLayoutStylesPolymer()}${buttonsStylesPolymer()} <style> *[hidden] { display: none !important; } </style> <div class="flex-c" hidden$="[[_empty(reportingRequirements)]]"> <qpr-list qpr-data="[[reportingRequirements]]"></qpr-list> </div> <div hidden$="[[!_empty(reportingRequirements)]]"> <div class="row-h"> There are no quarterly reporting requirements set. </div> <div class="row-h" hidden$="[[!editMode]]"> <paper-button class="secondary-btn" on-click="openQuarterlyRepRequirementsDialog"> Add Requirements </paper-button> </div> </div> `; } ready() { super.ready(); this._createEditQprDialog(); } disconnectedCallback() { super.disconnectedCallback(); this._removeEditQprDialog(); } _createEditQprDialog() { this.editQprDialog = document.createElement('edit-qpr-dialog'); this.editQprDialog.set('toastMsgLoadingSource', this); this._onReportingRequirementsSaved = this._onReportingRequirementsSaved.bind(this); this.editQprDialog.addEventListener('reporting-requirements-saved', this._onReportingRequirementsSaved); document.querySelector('body').appendChild(this.editQprDialog); } _removeEditQprDialog() { if (this.editQprDialog) { this.editQprDialog.removeEventListener('reporting-requirements-saved', this._onReportingRequirementsSaved); document.querySelector('body').removeChild(this.editQprDialog); } } openQuarterlyRepRequirementsDialog() { if (!this.interventionStart || !this.interventionEnd) { fireEvent(this, 'toast', { text: 'You have to fill PD Start Date and End Date first!', showCloseBtn: true }); return; } let qprData = []; if (this.requirementsCount === 0) { qprData = this.generateQPRData(this.interventionStart, this.interventionEnd); } else { qprData = JSON.parse(JSON.stringify(this.reportingRequirements)); } this.editQprDialog.set('qprData', qprData); this.editQprDialog.set('interventionId', this.interventionId); this.editQprDialog.openQprDialog(); } _getReportType() { return CONSTANTS.REQUIREMENTS_REPORT_TYPE.QPR; } } __decorate([ property({ type: String }) ], QuarterlyReportingRequirements.prototype, "interventionStart", void 0); __decorate([ property({ type: String }) ], QuarterlyReportingRequirements.prototype, "interventionEnd", void 0); __decorate([ property({ type: Object }) ], QuarterlyReportingRequirements.prototype, "editQprDialog", void 0); __decorate([ property({ type: Boolean }) ], QuarterlyReportingRequirements.prototype, "editMode", void 0); window.customElements.define('quarterly-reporting-requirements', QuarterlyReportingRequirements); export { QuarterlyReportingRequirements as QuarterlyReportingRequirementsEL };