intervention-pages
Version:
110 lines (107 loc) • 4.88 kB
JavaScript
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 };