@hitsoft/kadooglu.kalite 0.0.0-stage → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -2
- package/config/enums/index.d.ts +1 -0
- package/config/enums/route-names.d.ts +5 -0
- package/config/index.d.ts +5 -0
- package/config/kalite-config.module.d.ts +8 -0
- package/config/providers/index.d.ts +1 -0
- package/config/providers/route.provider.d.ts +4 -0
- package/config/public-api.d.ts +3 -0
- package/esm2020/config/enums/index.mjs +2 -0
- package/esm2020/config/enums/route-names.mjs +2 -0
- package/esm2020/config/hitsoft-kadooglu.kalite-config.mjs +5 -0
- package/esm2020/config/kalite-config.module.mjs +18 -0
- package/esm2020/config/providers/index.mjs +2 -0
- package/esm2020/config/providers/route.provider.mjs +57 -0
- package/esm2020/config/public-api.mjs +4 -0
- package/esm2020/hitsoft-kadooglu.kalite.mjs +5 -0
- package/esm2020/lib/components/intake-form.component.mjs +162 -0
- package/esm2020/lib/components/intake-list.component.mjs +80 -0
- package/esm2020/lib/components/kalite.component.mjs +18 -0
- package/esm2020/lib/components/process-analysis.component.mjs +197 -0
- package/esm2020/lib/components/quality-definitions.component.mjs +97 -0
- package/esm2020/lib/components/quality-notifications.component.mjs +64 -0
- package/esm2020/lib/components/quality-parameters.component.mjs +332 -0
- package/esm2020/lib/components/quality-reports.component.mjs +107 -0
- package/esm2020/lib/kalite-notification.module.mjs +23 -0
- package/esm2020/lib/kalite-routing.module.mjs +41 -0
- package/esm2020/lib/kalite.module.mjs +41 -0
- package/esm2020/lib/models/intake.models.mjs +2 -0
- package/esm2020/lib/models/quality.models.mjs +2 -0
- package/esm2020/lib/services/kalite.service.mjs +21 -0
- package/esm2020/lib/services/print-form.mjs +96 -0
- package/esm2020/lib/services/quality-api.service.mjs +119 -0
- package/esm2020/lib/services/quality-measurements.mjs +127 -0
- package/esm2020/public-api.mjs +16 -0
- package/fesm2015/hitsoft-kadooglu.kalite-config.mjs +80 -0
- package/fesm2015/hitsoft-kadooglu.kalite-config.mjs.map +1 -0
- package/fesm2015/hitsoft-kadooglu.kalite.mjs +1483 -0
- package/fesm2015/hitsoft-kadooglu.kalite.mjs.map +1 -0
- package/fesm2020/hitsoft-kadooglu.kalite-config.mjs +80 -0
- package/fesm2020/hitsoft-kadooglu.kalite-config.mjs.map +1 -0
- package/fesm2020/hitsoft-kadooglu.kalite.mjs +1442 -0
- package/fesm2020/hitsoft-kadooglu.kalite.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/intake-form.component.d.ts +50 -0
- package/lib/components/intake-list.component.d.ts +48 -0
- package/lib/components/kalite.component.d.ts +10 -0
- package/lib/components/process-analysis.component.d.ts +46 -0
- package/lib/components/quality-definitions.component.d.ts +46 -0
- package/lib/components/quality-notifications.component.d.ts +44 -0
- package/lib/components/quality-parameters.component.d.ts +82 -0
- package/lib/components/quality-reports.component.d.ts +31 -0
- package/lib/kalite-notification.module.d.ts +14 -0
- package/lib/kalite-routing.module.d.ts +7 -0
- package/lib/kalite.module.d.ts +23 -0
- package/lib/models/intake.models.d.ts +185 -0
- package/lib/models/quality.models.d.ts +114 -0
- package/lib/services/kalite.service.d.ts +10 -0
- package/lib/services/print-form.d.ts +2 -0
- package/lib/services/quality-api.service.d.ts +71 -0
- package/lib/services/quality-measurements.d.ts +8 -0
- package/package.json +42 -3
- package/public-api.d.ts +12 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { download, errorMessage, localDate, statusLabel } from '../services/quality-measurements';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../services/quality-api.service";
|
|
5
|
+
import * as i2 from "@angular/router";
|
|
6
|
+
import * as i3 from "@abp/ng.core";
|
|
7
|
+
import * as i4 from "@angular/common";
|
|
8
|
+
import * as i5 from "@angular/forms";
|
|
9
|
+
export class QualityReportsComponent {
|
|
10
|
+
constructor(api, route, permissions) {
|
|
11
|
+
this.api = api;
|
|
12
|
+
this.route = route;
|
|
13
|
+
this.permissions = permissions;
|
|
14
|
+
this.filter = { type: 'Input', from: localDate(new Date(new Date().getFullYear(), new Date().getMonth(), 1)), until: localDate(), groupBy: 'None' };
|
|
15
|
+
this.report = null;
|
|
16
|
+
this.forms = [];
|
|
17
|
+
this.facilities = [];
|
|
18
|
+
this.types = [];
|
|
19
|
+
this.busy = false;
|
|
20
|
+
this.error = '';
|
|
21
|
+
this.statusLabel = statusLabel;
|
|
22
|
+
}
|
|
23
|
+
ngOnInit() {
|
|
24
|
+
this.filter.type = this.route.snapshot.data['type'] || 'Input';
|
|
25
|
+
this.api.reportForms().subscribe({ next: x => this.forms = x, error: e => this.error = errorMessage(e) });
|
|
26
|
+
this.api.definitionFacilities().subscribe({ next: x => this.facilities = x, error: e => this.error = errorMessage(e) });
|
|
27
|
+
this.api.qualityMovementTypes().subscribe({ next: x => this.types = x, error: e => this.error = errorMessage(e) });
|
|
28
|
+
}
|
|
29
|
+
get canExport() { return this.permissions.getGrantedPolicy('Kalite.Reports.Export'); }
|
|
30
|
+
get visibleForms() { return this.forms.filter(x => (x.controlType || 'Process') === (this.filter.type === 'Process' ? 'Process' : 'Input')); }
|
|
31
|
+
load() { this.busy = true; this.error = ''; this.api.report(this.filter).subscribe({ next: x => { this.report = x; this.busy = false; }, error: e => { this.error = errorMessage(e); this.busy = false; } }); }
|
|
32
|
+
measurement(row, p) { return row.measurements.find(x => x.parameterCode === p.code); }
|
|
33
|
+
pdf() { this.api.reportPdf(this.filter).subscribe({ next: b => download(b, `Kalite-${this.filter.type}-${this.filter.from}.pdf`), error: e => this.error = errorMessage(e) }); }
|
|
34
|
+
excel() {
|
|
35
|
+
this.busy = true;
|
|
36
|
+
this.error = '';
|
|
37
|
+
this.api.report(this.filter, true).subscribe({ next: async (report) => {
|
|
38
|
+
try {
|
|
39
|
+
const { Workbook } = await import('exceljs');
|
|
40
|
+
const workbook = new Workbook();
|
|
41
|
+
workbook.creator = 'Kalite';
|
|
42
|
+
let index = 0;
|
|
43
|
+
if (report.type === 'Rejected') {
|
|
44
|
+
const summary = workbook.addWorksheet('Ret Özeti');
|
|
45
|
+
summary.addRow(['Grup', 'Toplam Kayıt', 'Ret Adedi', 'Ret Oranı (%)']);
|
|
46
|
+
report.rejectionSummary.forEach(g => summary.addRow([g.groupName, g.total, g.rejected, g.rate]));
|
|
47
|
+
summary.columns.forEach(c => c.width = 25);
|
|
48
|
+
}
|
|
49
|
+
for (const section of report.sections) {
|
|
50
|
+
const sheet = workbook.addWorksheet(`Form ${++index}`);
|
|
51
|
+
sheet.addRow([section.form.name]);
|
|
52
|
+
sheet.addRow(['Doküman', section.form.documentCode, 'Yayın', section.form.publicationDate.slice(0, 10), 'Revizyon', section.form.revisionDate.slice(0, 10), section.form.revisionNumber]);
|
|
53
|
+
sheet.addRow([section.groupName]);
|
|
54
|
+
const divisor = section.form.quantityUnit === 't' ? 1000 : 1;
|
|
55
|
+
const fixed = ['Tarih / Saat', 'Plaka', 'Dorse', 'Muhatap', 'Gemi', 'Hareket Türü', 'Detay', 'Menşei', 'Stok Nakli', 'Tank', 'Aktarılan Tank', 'Yağ Cinsi', `Miktar (${section.form.quantityUnit || 'kg'})`, 'Kalite Durumu', 'Analizi Yapan', 'Açıklama'];
|
|
56
|
+
const header = sheet.addRow([...fixed, ...section.columns.map(p => p.name + (p.unit ? ` (${p.unit})` : ''))]);
|
|
57
|
+
header.font = { bold: true };
|
|
58
|
+
header.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FFE8E1EF' } };
|
|
59
|
+
for (const row of section.rows) {
|
|
60
|
+
const excelRow = sheet.addRow([new Date(row.date), row.composite ? 'Gemi Kompozit Numunesi' : row.plate, row.trailerPlate,
|
|
61
|
+
row.partner, row.ship, row.movementType, row.detail, row.origin === 'Imported' ? 'İthal' : row.origin === 'Domestic' ? 'İç Piyasa' : '',
|
|
62
|
+
row.stockTransfer, row.tank, row.outputTank, row.oilType, row.quantityKg == null ? null : row.quantityKg / divisor, statusLabel(row.status), row.analyst, row.notes,
|
|
63
|
+
...section.columns.map(p => { const m = this.measurement(row, p); return m?.number ?? m?.text ?? ''; })]);
|
|
64
|
+
excelRow.getCell(1).numFmt = 'dd.mm.yyyy hh:mm';
|
|
65
|
+
excelRow.getCell(13).numFmt = '#,##0.00';
|
|
66
|
+
if (row.status === 'Rejected')
|
|
67
|
+
excelRow.eachCell(c => c.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FFFFE1E6' } });
|
|
68
|
+
section.columns.forEach((p, i) => {
|
|
69
|
+
const cell = excelRow.getCell(fixed.length + i + 1);
|
|
70
|
+
cell.numFmt = p.decimalPlaces ? '0.' + '0'.repeat(p.decimalPlaces) : '0';
|
|
71
|
+
if (this.measurement(row, p)?.outOfLimit)
|
|
72
|
+
cell.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FFFFAAAA' } };
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
const totals = Array(fixed.length).fill(null);
|
|
76
|
+
totals[0] = 'ORTALAMA';
|
|
77
|
+
totals[1] = section.averageMode === 'Weighted' ? 'Miktar ağırlıklı' : 'Aritmetik';
|
|
78
|
+
totals[12] = section.totalKg / divisor;
|
|
79
|
+
sheet.addRow([...totals, ...section.columns.map(p => section.averages[p.code] ?? null)]).font = { bold: true };
|
|
80
|
+
sheet.addRow(['Analizi Yapan / Kontrol Eden', ...Array.from(new Set(section.rows.map(r => r.analyst).filter(Boolean)))]);
|
|
81
|
+
if (section.form.documentCode === 'FR.85')
|
|
82
|
+
sheet.addRow(['KABUL', '', 'RED', '', 'ŞARTLI KABUL', '']);
|
|
83
|
+
sheet.columns.forEach(c => { c.width = 20; c.alignment = { vertical: 'middle', wrapText: true }; });
|
|
84
|
+
sheet.views = [{ state: 'frozen', ySplit: 4, xSplit: 2 }];
|
|
85
|
+
sheet.pageSetup = { orientation: 'landscape', paperSize: 8, fitToPage: true, fitToWidth: 1, fitToHeight: 0 };
|
|
86
|
+
}
|
|
87
|
+
if (!workbook.worksheets.length)
|
|
88
|
+
workbook.addWorksheet('Kayıt Yok').addRow(['Seçilen filtrelerde kayıt bulunamadı.']);
|
|
89
|
+
const data = await workbook.xlsx.writeBuffer();
|
|
90
|
+
download(new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }), `Kalite-${report.type}-${this.filter.from}.xlsx`);
|
|
91
|
+
}
|
|
92
|
+
catch (e) {
|
|
93
|
+
this.error = errorMessage(e);
|
|
94
|
+
}
|
|
95
|
+
finally {
|
|
96
|
+
this.busy = false;
|
|
97
|
+
}
|
|
98
|
+
}, error: e => { this.error = errorMessage(e); this.busy = false; } });
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
QualityReportsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: QualityReportsComponent, deps: [{ token: i1.QualityApiService }, { token: i2.ActivatedRoute }, { token: i3.PermissionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
102
|
+
QualityReportsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: QualityReportsComponent, selector: "lib-quality-reports", ngImport: i0, template: "<div class=\"container-fluid\"><h3>{{ filter.type === 'Process' ? 'Rafineri Proses Analiz Raporu' : filter.type === 'Rejected' ? 'Kalite Kontrol Ret Raporu' : 'Girdi Kontrol Raporlar\u0131' }}</h3>\r\n <div class=\"card\"><div class=\"card-body\"><div class=\"row\">\r\n <div class=\"col-md-3\"><label>Ba\u015Flang\u0131\u00E7</label><input type=\"date\" class=\"form-control\" [(ngModel)]=\"filter.from\" /></div><div class=\"col-md-3\"><label>Biti\u015F</label><input type=\"date\" class=\"form-control\" [(ngModel)]=\"filter.until\" /></div>\r\n <div class=\"col-md-3\"><label>Form</label><select class=\"form-control\" [(ngModel)]=\"filter.formCode\"><option value=\"\">T\u00FCm\u00FC</option><option *ngFor=\"let form of visibleForms\" [value]=\"form.code\">{{ form.documentCode }} \u2013 {{ form.name }}</option></select></div>\r\n <div class=\"col-md-3\" *ngIf=\"filter.type === 'Process'\"><label>Tesis</label><select class=\"form-control\" [(ngModel)]=\"filter.facilityCode\"><option value=\"\">T\u00FCm\u00FC</option><option *ngFor=\"let facility of facilities\" [value]=\"facility.code\">{{ facility.name }}</option></select></div>\r\n <div class=\"col-md-3\" *ngIf=\"filter.type !== 'Process'\"><label>Hareket T\u00FCr\u00FC</label><select class=\"form-control\" [(ngModel)]=\"filter.movementTypeCode\"><option value=\"\">T\u00FCm\u00FC</option><option *ngFor=\"let type of types\" [value]=\"type.code\">{{ type.name }}</option></select></div>\r\n <div class=\"col-md-3 mt-3\" *ngIf=\"filter.type !== 'Process'\"><label>Muhatap</label><input class=\"form-control\" [(ngModel)]=\"filter.partner\" /></div><div class=\"col-md-3 mt-3\" *ngIf=\"filter.type !== 'Process'\"><label>Gemi</label><input class=\"form-control\" [(ngModel)]=\"filter.ship\" /></div>\r\n <div class=\"col-md-3 mt-3\" *ngIf=\"filter.type !== 'Process'\"><label>Gruplama</label><select class=\"form-control\" [(ngModel)]=\"filter.groupBy\"><option value=\"None\">Yok</option><option value=\"Ship\">Gemi / Parti</option><option value=\"Partner\">Muhatap</option><option value=\"Movement\">Hareket T\u00FCr\u00FC / Malzeme</option><option value=\"Month\">Ay</option></select></div>\r\n <div class=\"col-md-3 mt-3\"><label>Durum</label><select class=\"form-control\" [(ngModel)]=\"filter.status\"><option value=\"\">T\u00FCm\u00FC</option><ng-container *ngIf=\"filter.type === 'Process'\"><option value=\"Draft\">Taslak</option><option value=\"LaborantSigned\">Laborant \u0130mzal\u0131</option><option value=\"Checked\">Kontrol Edildi</option><option value=\"Approved\">Onayl\u0131</option></ng-container><ng-container *ngIf=\"filter.type !== 'Process'\"><option value=\"Draft\">Taslak</option><option value=\"Accepted\">Kabul</option><option value=\"Rejected\">Ret</option></ng-container></select></div>\r\n </div><div class=\"mt-3\"><button class=\"btn btn-primary mr-2\" (click)=\"load()\" [disabled]=\"busy\">Raporu Getir</button><button *ngIf=\"canExport\" class=\"btn btn-outline-primary mr-2\" (click)=\"pdf()\" [disabled]=\"busy\">PDF</button><button *ngIf=\"canExport\" class=\"btn btn-outline-primary\" (click)=\"excel()\" [disabled]=\"busy\">Excel</button></div>\r\n <div *ngIf=\"error\" class=\"alert alert-danger mt-3\">{{ error }}</div><div *ngIf=\"busy\" class=\"quality-loading\" role=\"status\">Rapor haz\u0131rlan\u0131yor\u2026</div>\r\n </div></div>\r\n <ng-container *ngIf=\"report as r\"><div class=\"card mt-3\"><div class=\"card-body\">Toplam Kay\u0131t: <strong>{{ r.totalRecords }}</strong> \u00B7 Ret: <strong>{{ r.rejectedRecords }}</strong> \u00B7 Ret Oran\u0131: <strong>% {{ r.rejectionRate }}</strong>\r\n <table *ngIf=\"r.type === 'Rejected'\" class=\"table table-sm mt-3\"><thead><tr><th>Grup</th><th>Toplam</th><th>Ret</th><th>Ret Oran\u0131 (%)</th></tr></thead><tbody><tr *ngFor=\"let g of r.rejectionSummary\"><td>{{ g.groupName }}</td><td>{{ g.total }}</td><td>{{ g.rejected }}</td><td>{{ g.rate }}</td></tr></tbody></table>\r\n </div></div>\r\n <div class=\"card mt-3\" *ngFor=\"let section of r.sections\"><div class=\"card-body\"><h5>{{ section.form.name }} \u2013 {{ section.groupName }}</h5><p class=\"text-muted\">{{ section.form.documentCode }} \u00B7 Yay\u0131n: {{ section.form.publicationDate | date:'dd.MM.yyyy' }} \u00B7 Revizyon: {{ section.form.revisionDate | date:'dd.MM.yyyy' }} / {{ section.form.revisionNumber }}</p>\r\n <div class=\"table-responsive\"><table class=\"table table-bordered table-sm\"><thead><tr><th>Tarih / Saat</th><th>{{ r.type === 'Process' ? 'Tank / Aktar\u0131lan Tank' : 'Plaka / Firma / Gemi' }}</th><th>Durum</th><th>Miktar ({{ section.form.quantityUnit || 'kg' }})</th><th *ngFor=\"let p of section.columns\">{{ p.name }} <small>{{ p.unit }}</small></th><th>Analizi Yapan / A\u00E7\u0131klama</th></tr></thead>\r\n <tbody><tr *ngFor=\"let row of section.rows\" [class.rejected-row]=\"row.status === 'Rejected'\"><td>{{ row.date | date:'dd.MM.yyyy HH:mm' }}</td><td>{{ row.composite ? 'Gemi Kompozit Numunesi' : r.type === 'Process' ? ((row.tank || row.outputTank) ? (row.tank || '') + ' / ' + (row.outputTank || '') : '') : row.plate }}<br />{{ row.partner }} {{ row.ship }}</td><td>{{ statusLabel(row.status) }}</td><td>{{ row.quantityKg == null ? '' : row.quantityKg / (section.form.quantityUnit === 't' ? 1000 : 1) }}</td><td *ngFor=\"let p of section.columns\" [class.out-of-limit]=\"measurement(row, p)?.outOfLimit\">{{ measurement(row, p)?.number != null ? (measurement(row, p)?.number | number:'1.0-8') : measurement(row, p)?.text }}</td><td>{{ row.analyst }}<br />{{ row.notes }}</td></tr>\r\n <tr class=\"bg-light\"><th>ORTALAMA</th><th>{{ section.averageMode === 'Weighted' ? 'Miktar a\u011F\u0131rl\u0131kl\u0131' : 'Aritmetik' }}</th><th>TOPLAM</th><th>{{ section.totalKg / (section.form.quantityUnit === 't' ? 1000 : 1) | number:'1.0-2' }}</th><td *ngFor=\"let p of section.columns\">{{ section.averages[p.code] | number:'1.0-8' }}</td><td></td></tr></tbody></table></div>\r\n </div></div><p *ngIf=\"!r.sections.length\" class=\"text-muted mt-3\">Se\u00E7ilen filtrelerde kay\u0131t bulunamad\u0131.</p>\r\n </ng-container>\r\n</div>\r\n", styles: [".quality-loading{padding:1.5rem;text-align:center;color:#5b526c}.print-only{display:none}.quality-status{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem .85rem;border:1px solid transparent;border-radius:.4rem;font-size:.9375rem;font-weight:600;line-height:1.4}.quality-status-accepted{color:#166534;background:#dcfce7;border-color:#86efac}.quality-status-rejected{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.quality-status-draft{color:#1e40af;background:#dbeafe;border-color:#93c5fd}.quality-status-waiting{color:#854d0e;background:#fef3c7;border-color:#fcd34d}.vehicle-table{min-width:1950px;white-space:nowrap}.actions{min-width:130px}.quality-questions-link{display:inline-flex;align-items:center;min-height:calc(1.5em + .5rem + 2px);margin-left:.4rem;padding:.25rem .5rem;color:#9a5a00;background:#fff3d6;border:1px solid #edb85b;border-radius:.2rem;font-size:.875rem;line-height:1.5;text-decoration:none}.quality-questions-link:hover,.quality-questions-link:focus{color:#fff;background:#b86b00;border-color:#b86b00;text-decoration:none}.intake-actions-cell{display:flex;align-items:center}:host ::ng-deep .intake-grid .dx-data-row>td{vertical-align:middle}.intake-actions-toggle{display:inline-flex;align-items:center;gap:.5rem;padding:.3rem .65rem;font-family:inherit;font-size:.8125rem;line-height:1.3}.intake-action-menu{min-width:210px;margin-top:.35rem;padding:.3rem;background:#fff;border:1px solid #dee2e6;border-radius:.375rem;box-shadow:0 .25rem .75rem #0000001a}.intake-action-menu .dropdown-item{display:block;text-align:left;border:0;border-radius:.25rem;background:none;color:#343a40;padding:.5rem .65rem;font-family:inherit;font-size:.8125rem;font-weight:400;line-height:1.4;text-decoration:none;white-space:nowrap;cursor:pointer}.intake-action-menu .dropdown-item:hover,.intake-action-menu .dropdown-item:focus-visible{background:#eef2ff;color:#2446b5}.page-size{width:85px}.vehicle-info{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:1rem 0}.vehicle-info label{font-size:.8rem;color:#6c757d;margin-bottom:.2rem}.vehicle-info p{background:#f5f3f8;padding:.55rem;min-height:2.5rem;overflow-wrap:anywhere}.measurement-table{min-width:700px}.measurement-table th{background:#f2edf7}.measurement-table td{vertical-align:middle}.out-of-limit,.rejected-row{background:#ffe6e9!important}.out-of-limit input,.out-of-limit select{border-color:#dc3545}@media (max-width: 900px){.vehicle-info{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 550px){.vehicle-info{grid-template-columns:1fr}}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i4.DecimalPipe, name: "number" }, { kind: "pipe", type: i4.DatePipe, name: "date" }] });
|
|
103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: QualityReportsComponent, decorators: [{
|
|
104
|
+
type: Component,
|
|
105
|
+
args: [{ selector: 'lib-quality-reports', template: "<div class=\"container-fluid\"><h3>{{ filter.type === 'Process' ? 'Rafineri Proses Analiz Raporu' : filter.type === 'Rejected' ? 'Kalite Kontrol Ret Raporu' : 'Girdi Kontrol Raporlar\u0131' }}</h3>\r\n <div class=\"card\"><div class=\"card-body\"><div class=\"row\">\r\n <div class=\"col-md-3\"><label>Ba\u015Flang\u0131\u00E7</label><input type=\"date\" class=\"form-control\" [(ngModel)]=\"filter.from\" /></div><div class=\"col-md-3\"><label>Biti\u015F</label><input type=\"date\" class=\"form-control\" [(ngModel)]=\"filter.until\" /></div>\r\n <div class=\"col-md-3\"><label>Form</label><select class=\"form-control\" [(ngModel)]=\"filter.formCode\"><option value=\"\">T\u00FCm\u00FC</option><option *ngFor=\"let form of visibleForms\" [value]=\"form.code\">{{ form.documentCode }} \u2013 {{ form.name }}</option></select></div>\r\n <div class=\"col-md-3\" *ngIf=\"filter.type === 'Process'\"><label>Tesis</label><select class=\"form-control\" [(ngModel)]=\"filter.facilityCode\"><option value=\"\">T\u00FCm\u00FC</option><option *ngFor=\"let facility of facilities\" [value]=\"facility.code\">{{ facility.name }}</option></select></div>\r\n <div class=\"col-md-3\" *ngIf=\"filter.type !== 'Process'\"><label>Hareket T\u00FCr\u00FC</label><select class=\"form-control\" [(ngModel)]=\"filter.movementTypeCode\"><option value=\"\">T\u00FCm\u00FC</option><option *ngFor=\"let type of types\" [value]=\"type.code\">{{ type.name }}</option></select></div>\r\n <div class=\"col-md-3 mt-3\" *ngIf=\"filter.type !== 'Process'\"><label>Muhatap</label><input class=\"form-control\" [(ngModel)]=\"filter.partner\" /></div><div class=\"col-md-3 mt-3\" *ngIf=\"filter.type !== 'Process'\"><label>Gemi</label><input class=\"form-control\" [(ngModel)]=\"filter.ship\" /></div>\r\n <div class=\"col-md-3 mt-3\" *ngIf=\"filter.type !== 'Process'\"><label>Gruplama</label><select class=\"form-control\" [(ngModel)]=\"filter.groupBy\"><option value=\"None\">Yok</option><option value=\"Ship\">Gemi / Parti</option><option value=\"Partner\">Muhatap</option><option value=\"Movement\">Hareket T\u00FCr\u00FC / Malzeme</option><option value=\"Month\">Ay</option></select></div>\r\n <div class=\"col-md-3 mt-3\"><label>Durum</label><select class=\"form-control\" [(ngModel)]=\"filter.status\"><option value=\"\">T\u00FCm\u00FC</option><ng-container *ngIf=\"filter.type === 'Process'\"><option value=\"Draft\">Taslak</option><option value=\"LaborantSigned\">Laborant \u0130mzal\u0131</option><option value=\"Checked\">Kontrol Edildi</option><option value=\"Approved\">Onayl\u0131</option></ng-container><ng-container *ngIf=\"filter.type !== 'Process'\"><option value=\"Draft\">Taslak</option><option value=\"Accepted\">Kabul</option><option value=\"Rejected\">Ret</option></ng-container></select></div>\r\n </div><div class=\"mt-3\"><button class=\"btn btn-primary mr-2\" (click)=\"load()\" [disabled]=\"busy\">Raporu Getir</button><button *ngIf=\"canExport\" class=\"btn btn-outline-primary mr-2\" (click)=\"pdf()\" [disabled]=\"busy\">PDF</button><button *ngIf=\"canExport\" class=\"btn btn-outline-primary\" (click)=\"excel()\" [disabled]=\"busy\">Excel</button></div>\r\n <div *ngIf=\"error\" class=\"alert alert-danger mt-3\">{{ error }}</div><div *ngIf=\"busy\" class=\"quality-loading\" role=\"status\">Rapor haz\u0131rlan\u0131yor\u2026</div>\r\n </div></div>\r\n <ng-container *ngIf=\"report as r\"><div class=\"card mt-3\"><div class=\"card-body\">Toplam Kay\u0131t: <strong>{{ r.totalRecords }}</strong> \u00B7 Ret: <strong>{{ r.rejectedRecords }}</strong> \u00B7 Ret Oran\u0131: <strong>% {{ r.rejectionRate }}</strong>\r\n <table *ngIf=\"r.type === 'Rejected'\" class=\"table table-sm mt-3\"><thead><tr><th>Grup</th><th>Toplam</th><th>Ret</th><th>Ret Oran\u0131 (%)</th></tr></thead><tbody><tr *ngFor=\"let g of r.rejectionSummary\"><td>{{ g.groupName }}</td><td>{{ g.total }}</td><td>{{ g.rejected }}</td><td>{{ g.rate }}</td></tr></tbody></table>\r\n </div></div>\r\n <div class=\"card mt-3\" *ngFor=\"let section of r.sections\"><div class=\"card-body\"><h5>{{ section.form.name }} \u2013 {{ section.groupName }}</h5><p class=\"text-muted\">{{ section.form.documentCode }} \u00B7 Yay\u0131n: {{ section.form.publicationDate | date:'dd.MM.yyyy' }} \u00B7 Revizyon: {{ section.form.revisionDate | date:'dd.MM.yyyy' }} / {{ section.form.revisionNumber }}</p>\r\n <div class=\"table-responsive\"><table class=\"table table-bordered table-sm\"><thead><tr><th>Tarih / Saat</th><th>{{ r.type === 'Process' ? 'Tank / Aktar\u0131lan Tank' : 'Plaka / Firma / Gemi' }}</th><th>Durum</th><th>Miktar ({{ section.form.quantityUnit || 'kg' }})</th><th *ngFor=\"let p of section.columns\">{{ p.name }} <small>{{ p.unit }}</small></th><th>Analizi Yapan / A\u00E7\u0131klama</th></tr></thead>\r\n <tbody><tr *ngFor=\"let row of section.rows\" [class.rejected-row]=\"row.status === 'Rejected'\"><td>{{ row.date | date:'dd.MM.yyyy HH:mm' }}</td><td>{{ row.composite ? 'Gemi Kompozit Numunesi' : r.type === 'Process' ? ((row.tank || row.outputTank) ? (row.tank || '') + ' / ' + (row.outputTank || '') : '') : row.plate }}<br />{{ row.partner }} {{ row.ship }}</td><td>{{ statusLabel(row.status) }}</td><td>{{ row.quantityKg == null ? '' : row.quantityKg / (section.form.quantityUnit === 't' ? 1000 : 1) }}</td><td *ngFor=\"let p of section.columns\" [class.out-of-limit]=\"measurement(row, p)?.outOfLimit\">{{ measurement(row, p)?.number != null ? (measurement(row, p)?.number | number:'1.0-8') : measurement(row, p)?.text }}</td><td>{{ row.analyst }}<br />{{ row.notes }}</td></tr>\r\n <tr class=\"bg-light\"><th>ORTALAMA</th><th>{{ section.averageMode === 'Weighted' ? 'Miktar a\u011F\u0131rl\u0131kl\u0131' : 'Aritmetik' }}</th><th>TOPLAM</th><th>{{ section.totalKg / (section.form.quantityUnit === 't' ? 1000 : 1) | number:'1.0-2' }}</th><td *ngFor=\"let p of section.columns\">{{ section.averages[p.code] | number:'1.0-8' }}</td><td></td></tr></tbody></table></div>\r\n </div></div><p *ngIf=\"!r.sections.length\" class=\"text-muted mt-3\">Se\u00E7ilen filtrelerde kay\u0131t bulunamad\u0131.</p>\r\n </ng-container>\r\n</div>\r\n", styles: [".quality-loading{padding:1.5rem;text-align:center;color:#5b526c}.print-only{display:none}.quality-status{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem .85rem;border:1px solid transparent;border-radius:.4rem;font-size:.9375rem;font-weight:600;line-height:1.4}.quality-status-accepted{color:#166534;background:#dcfce7;border-color:#86efac}.quality-status-rejected{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.quality-status-draft{color:#1e40af;background:#dbeafe;border-color:#93c5fd}.quality-status-waiting{color:#854d0e;background:#fef3c7;border-color:#fcd34d}.vehicle-table{min-width:1950px;white-space:nowrap}.actions{min-width:130px}.quality-questions-link{display:inline-flex;align-items:center;min-height:calc(1.5em + .5rem + 2px);margin-left:.4rem;padding:.25rem .5rem;color:#9a5a00;background:#fff3d6;border:1px solid #edb85b;border-radius:.2rem;font-size:.875rem;line-height:1.5;text-decoration:none}.quality-questions-link:hover,.quality-questions-link:focus{color:#fff;background:#b86b00;border-color:#b86b00;text-decoration:none}.intake-actions-cell{display:flex;align-items:center}:host ::ng-deep .intake-grid .dx-data-row>td{vertical-align:middle}.intake-actions-toggle{display:inline-flex;align-items:center;gap:.5rem;padding:.3rem .65rem;font-family:inherit;font-size:.8125rem;line-height:1.3}.intake-action-menu{min-width:210px;margin-top:.35rem;padding:.3rem;background:#fff;border:1px solid #dee2e6;border-radius:.375rem;box-shadow:0 .25rem .75rem #0000001a}.intake-action-menu .dropdown-item{display:block;text-align:left;border:0;border-radius:.25rem;background:none;color:#343a40;padding:.5rem .65rem;font-family:inherit;font-size:.8125rem;font-weight:400;line-height:1.4;text-decoration:none;white-space:nowrap;cursor:pointer}.intake-action-menu .dropdown-item:hover,.intake-action-menu .dropdown-item:focus-visible{background:#eef2ff;color:#2446b5}.page-size{width:85px}.vehicle-info{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:1rem 0}.vehicle-info label{font-size:.8rem;color:#6c757d;margin-bottom:.2rem}.vehicle-info p{background:#f5f3f8;padding:.55rem;min-height:2.5rem;overflow-wrap:anywhere}.measurement-table{min-width:700px}.measurement-table th{background:#f2edf7}.measurement-table td{vertical-align:middle}.out-of-limit,.rejected-row{background:#ffe6e9!important}.out-of-limit input,.out-of-limit select{border-color:#dc3545}@media (max-width: 900px){.vehicle-info{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 550px){.vehicle-info{grid-template-columns:1fr}}\n"] }]
|
|
106
|
+
}], ctorParameters: function () { return [{ type: i1.QualityApiService }, { type: i2.ActivatedRoute }, { type: i3.PermissionService }]; } });
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhbGl0eS1yZXBvcnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2thbGl0ZS9zcmMvbGliL2NvbXBvbmVudHMvcXVhbGl0eS1yZXBvcnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2thbGl0ZS9zcmMvbGliL2NvbXBvbmVudHMvcXVhbGl0eS1yZXBvcnRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFNbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7O0FBR2xHLE1BQU0sT0FBTyx1QkFBdUI7SUFHbEMsWUFBb0IsR0FBc0IsRUFBVSxLQUFxQixFQUFVLFdBQThCO1FBQTdGLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFGakgsV0FBTSxHQUFpQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQzdKLFdBQU0sR0FBeUIsSUFBSSxDQUFDO1FBQUMsVUFBSyxHQUFrQixFQUFFLENBQUM7UUFBQyxlQUFVLEdBQXNCLEVBQUUsQ0FBQztRQUFDLFVBQUssR0FBbUIsRUFBRSxDQUFDO1FBQUMsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUFDLFVBQUssR0FBRyxFQUFFLENBQUM7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TyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7cUJBQzVDO29CQUNELEtBQUssTUFBTSxPQUFPLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRTt3QkFDckMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzt3QkFDdkQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFDbEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7d0JBQzFMLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQzt3QkFDbEMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDN0QsTUFBTSxLQUFLLEdBQUcsQ0FBQyxjQUFjLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFdBQVcsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxHQUFHLEVBQUUsZUFBZSxF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LFdBQVcsRUFBRSxDQUFDO29CQUMvQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFnQixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsbUVBQW1FLEVBQUUsQ0FBQyxFQUFFLFVBQVUsTUFBTSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLENBQUM7aUJBQ3pLO2dCQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUFFO3dCQUFTO29CQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO2lCQUFFO1lBQzlFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6RSxDQUFDOztvSEEvRFUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsMkRDVHBDLHFoTUFzQkE7MkZEYmEsdUJBQXVCO2tCQURuQyxTQUFTOytCQUFhLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBRdWFsaXR5QXBpU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3F1YWxpdHktYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgTW92ZW1lbnRUeXBlLCBSZXBvcnRGaWx0ZXIsIFF1YWxpdHlSZXBvcnQsIFJlcG9ydFJvdywgUmVwb3J0U2VjdGlvbiB9IGZyb20gJy4uL21vZGVscy9pbnRha2UubW9kZWxzJztcbmltcG9ydCB7IFF1YWxpdHlGb3JtLCBRdWFsaXR5RmFjaWxpdHksIFF1YWxpdHlQYXJhbWV0ZXIgfSBmcm9tICcuLi9tb2RlbHMvcXVhbGl0eS5tb2RlbHMnO1xuaW1wb3J0IHsgZG93bmxvYWQsIGVycm9yTWVzc2FnZSwgbG9jYWxEYXRlLCBzdGF0dXNMYWJlbCB9IGZyb20gJy4uL3NlcnZpY2VzL3F1YWxpdHktbWVhc3VyZW1lbnRzJztcblxuQENvbXBvbmVudCh7IHNlbGVjdG9yOiAnbGliLXF1YWxpdHktcmVwb3J0cycsIHRlbXBsYXRlVXJsOiAnLi9xdWFsaXR5LXJlcG9ydHMuY29tcG9uZW50Lmh0bWwnLCBzdHlsZVVybHM6IFsnLi9pbnRha2UuY29tcG9uZW50LnNjc3MnXSB9KVxuZXhwb3J0IGNsYXNzIFF1YWxpdHlSZXBvcnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZmlsdGVyOiBSZXBvcnRGaWx0ZXIgPSB7IHR5cGU6ICdJbnB1dCcsIGZyb206IGxvY2FsRGF0ZShuZXcgRGF0ZShuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCksIG5ldyBEYXRlKCkuZ2V0TW9udGgoKSwgMSkpLCB1bnRpbDogbG9jYWxEYXRlKCksIGdyb3VwQnk6ICdOb25lJyB9O1xuICByZXBvcnQ6IFF1YWxpdHlSZXBvcnQgfCBudWxsID0gbnVsbDsgZm9ybXM6IFF1YWxpdHlGb3JtW10gPSBbXTsgZmFjaWxpdGllczogUXVhbGl0eUZhY2lsaXR5W10gPSBbXTsgdHlwZXM6IE1vdmVtZW50VHlwZVtdID0gW107IGJ1c3kgPSBmYWxzZTsgZXJyb3IgPSAnJzsgc3RhdHVzTGFiZWwgPSBzdGF0dXNMYWJlbDtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGk6IFF1YWxpdHlBcGlTZXJ2aWNlLCBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSBwZXJtaXNzaW9uczogUGVybWlzc2lvblNlcnZpY2UpIHt9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyLnR5cGUgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbJ3R5cGUnXSB8fCAnSW5wdXQnO1xuICAgIHRoaXMuYXBpLnJlcG9ydEZvcm1zKCkuc3Vic2NyaWJlKHsgbmV4dDogeCA9PiB0aGlzLmZvcm1zID0geCwgZXJyb3I6IGUgPT4gdGhpcy5lcnJvciA9IGVycm9yTWVzc2FnZShlKSB9KTtcbiAgICB0aGlzLmFwaS5kZWZpbml0aW9uRmFjaWxpdGllcygpLnN1YnNjcmliZSh7IG5leHQ6IHggPT4gdGhpcy5mYWNpbGl0aWVzID0geCwgZXJyb3I6IGUgPT4gdGhpcy5lcnJvciA9IGVycm9yTWVzc2FnZShlKSB9KTtcbiAgICB0aGlzLmFwaS5xdWFsaXR5TW92ZW1lbnRUeXBlcygpLnN1YnNjcmliZSh7IG5leHQ6IHggPT4gdGhpcy50eXBlcyA9IHgsIGVycm9yOiBlID0+IHRoaXMuZXJyb3IgPSBlcnJvck1lc3NhZ2UoZSkgfSk7XG4gIH1cbiAgZ2V0IGNhbkV4cG9ydCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMucGVybWlzc2lvbnMuZ2V0R3JhbnRlZFBvbGljeSgnS2FsaXRlLlJlcG9ydHMuRXhwb3J0Jyk7IH1cbiAgZ2V0IHZpc2libGVGb3JtcygpOiBRdWFsaXR5Rm9ybVtdIHsgcmV0dXJuIHRoaXMuZm9ybXMuZmlsdGVyKHggPT4gKHguY29udHJvbFR5cGUgfHwgJ1Byb2Nlc3MnKSA9PT0gKHRoaXMuZmlsdGVyLnR5cGUgPT09ICdQcm9jZXNzJyA/ICdQcm9jZXNzJyA6ICdJbnB1dCcpKTsgfVxuICBsb2FkKCk6IHZvaWQgeyB0aGlzLmJ1c3kgPSB0cnVlOyB0aGlzLmVycm9yID0gJyc7IHRoaXMuYXBpLnJlcG9ydCh0aGlzLmZpbHRlcikuc3Vic2NyaWJlKHsgbmV4dDogeCA9PiB7IHRoaXMucmVwb3J0ID0geDsgdGhpcy5idXN5ID0gZmFsc2U7IH0sIGVycm9yOiBlID0+IHsgdGhpcy5lcnJvciA9IGVycm9yTWVzc2FnZShlKTsgdGhpcy5idXN5ID0gZmFsc2U7IH0gfSk7IH1cbiAgbWVhc3VyZW1lbnQocm93OiBSZXBvcnRSb3csIHA6IFF1YWxpdHlQYXJhbWV0ZXIpIHsgcmV0dXJuIHJvdy5tZWFzdXJlbWVudHMuZmluZCh4ID0+IHgucGFyYW1ldGVyQ29kZSA9PT0gcC5jb2RlKTsgfVxuICBwZGYoKTogdm9pZCB7IHRoaXMuYXBpLnJlcG9ydFBkZih0aGlzLmZpbHRlcikuc3Vic2NyaWJlKHsgbmV4dDogYiA9PiBkb3dubG9hZChiLCBgS2FsaXRlLSR7dGhpcy5maWx0ZXIudHlwZX0tJHt0aGlzLmZpbHRlci5mcm9tfS5wZGZgKSwgZXJyb3I6IGUgPT4gdGhpcy5lcnJvciA9IGVycm9yTWVzc2FnZShlKSB9KTsgfVxuICBleGNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmJ1c3kgPSB0cnVlOyB0aGlzLmVycm9yID0gJyc7XG4gICAgdGhpcy5hcGkucmVwb3J0KHRoaXMuZmlsdGVyLCB0cnVlKS5zdWJzY3JpYmUoeyBuZXh0OiBhc3luYyByZXBvcnQgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyBXb3JrYm9vayB9ID0gYXdhaXQgaW1wb3J0KCdleGNlbGpzJyk7XG4gICAgICAgIGNvbnN0IHdvcmtib29rID0gbmV3IFdvcmtib29rKCk7IHdvcmtib29rLmNyZWF0b3IgPSAnS2FsaXRlJztcbiAgICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgICAgaWYgKHJlcG9ydC50eXBlID09PSAnUmVqZWN0ZWQnKSB7XG4gICAgICAgICAgY29uc3Qgc3VtbWFyeSA9IHdvcmtib29rLmFkZFdvcmtzaGVldCgnUmV0IMOWemV0aScpO1xuICAgICAgICAgIHN1bW1hcnkuYWRkUm93KFsnR3J1cCcsICdUb3BsYW0gS2F5xLF0JywgJ1JldCBBZGVkaScsICdSZXQgT3JhbsSxICglKSddKTtcbiAgICAgICAgICByZXBvcnQucmVqZWN0aW9uU3VtbWFyeS5mb3JFYWNoKGcgPT4gc3VtbWFyeS5hZGRSb3coW2cuZ3JvdXBOYW1lLCBnLnRvdGFsLCBnLnJlamVjdGVkLCBnLnJhdGVdKSk7XG4gICAgICAgICAgc3VtbWFyeS5jb2x1bW5zLmZvckVhY2goYyA9PiBjLndpZHRoID0gMjUpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3Qgc2VjdGlvbiBvZiByZXBvcnQuc2VjdGlvbnMpIHtcbiAgICAgICAgICBjb25zdCBzaGVldCA9IHdvcmtib29rLmFkZFdvcmtzaGVldChgRm9ybSAkeysraW5kZXh9YCk7XG4gICAgICAgICAgc2hlZXQuYWRkUm93KFtzZWN0aW9uLmZvcm0ubmFtZV0pO1xuICAgICAgICAgIHNoZWV0LmFkZFJvdyhbJ0Rva8O8bWFuJywgc2VjdGlvbi5mb3JtLmRvY3VtZW50Q29kZSwgJ1lhecSxbicsIHNlY3Rpb24uZm9ybS5wdWJsaWNhdGlvbkRhdGUuc2xpY2UoMCwgMTApLCAnUmV2aXp5b24nLCBzZWN0aW9uLmZvcm0ucmV2aXNpb25EYXRlLnNsaWNlKDAsIDEwKSwgc2VjdGlvbi5mb3JtLnJldmlzaW9uTnVtYmVyXSk7XG4gICAgICAgICAgc2hlZXQuYWRkUm93KFtzZWN0aW9uLmdyb3VwTmFtZV0pO1xuICAgICAgICAgIGNvbnN0IGRpdmlzb3IgPSBzZWN0aW9uLmZvcm0ucXVhbnRpdHlVbml0ID09PSAndCcgPyAxMDAwIDogMTtcbiAgICAgICAgICBjb25zdCBmaXhlZCA9IFsnVGFyaWggLyBTYWF0JywgJ1BsYWthJywgJ0RvcnNlJywgJ011aGF0YXAnLCAnR2VtaScsICdIYXJla2V0IFTDvHLDvCcsICdEZXRheScsICdNZW7Fn2VpJywgJ1N0b2sgTmFrbGknLCAnVGFuaycsICdBa3RhcsSxbGFuIFRhbmsnLCAnWWHEnyBDaW5zaScsIGBNaWt0YXIgKCR7c2VjdGlvbi5mb3JtLnF1YW50aXR5VW5pdCB8fCAna2cnfSlgLCAnS2FsaXRlIER1cnVtdScsICdBbmFsaXppIFlhcGFuJywgJ0HDp8Sxa2xhbWEnXTtcbiAgICAgICAgICBjb25zdCBoZWFkZXIgPSBzaGVldC5hZGRSb3coWy4uLmZpeGVkLCAuLi5zZWN0aW9uLmNvbHVtbnMubWFwKHAgPT4gcC5uYW1lICsgKHAudW5pdCA/IGAgKCR7cC51bml0fSlgIDogJycpKV0pO1xuICAgICAgICAgIGhlYWRlci5mb250ID0geyBib2xkOiB0cnVlIH07IGhlYWRlci5maWxsID0geyB0eXBlOiAncGF0dGVybicsIHBhdHRlcm46ICdzb2xpZCcsIGZnQ29sb3I6IHsgYXJnYjogJ0ZGRThFMUVGJyB9IH07XG4gICAgICAgICAgZm9yIChjb25zdCByb3cgb2Ygc2VjdGlvbi5yb3dzKSB7XG4gICAgICAgICAgICBjb25zdCBleGNlbFJvdyA9IHNoZWV0LmFkZFJvdyhbbmV3IERhdGUocm93LmRhdGUpLCByb3cuY29tcG9zaXRlID8gJ0dlbWkgS29tcG96aXQgTnVtdW5lc2knIDogcm93LnBsYXRlLCByb3cudHJhaWxlclBsYXRlLFxuICAgICAgICAgICAgICByb3cucGFydG5lciwgcm93LnNoaXAsIHJvdy5tb3ZlbWVudFR5cGUsIHJvdy5kZXRhaWwsIHJvdy5vcmlnaW4gPT09ICdJbXBvcnRlZCcgPyAnxLB0aGFsJyA6IHJvdy5vcmlnaW4gPT09ICdEb21lc3RpYycgPyAnxLDDpyBQaXlhc2EnIDogJycsXG4gICAgICAgICAgICAgIHJvdy5zdG9ja1RyYW5zZmVyLCByb3cudGFuaywgcm93Lm91dHB1dFRhbmssIHJvdy5vaWxUeXBlLCByb3cucXVhbnRpdHlLZyA9PSBudWxsID8gbnVsbCA6IHJvdy5xdWFudGl0eUtnIC8gZGl2aXNvciwgc3RhdHVzTGFiZWwocm93LnN0YXR1cyksIHJvdy5hbmFseXN0LCByb3cubm90ZXMsXG4gICAgICAgICAgICAgIC4uLnNlY3Rpb24uY29sdW1ucy5tYXAocCA9PiB7IGNvbnN0IG0gPSB0aGlzLm1lYXN1cmVtZW50KHJvdywgcCk7IHJldHVybiBtPy5udW1iZXIgPz8gbT8udGV4dCA/PyAnJzsgfSldKTtcbiAgICAgICAgICAgIGV4Y2VsUm93LmdldENlbGwoMSkubnVtRm10ID0gJ2RkLm1tLnl5eXkgaGg6bW0nOyBleGNlbFJvdy5nZXRDZWxsKDEzKS5udW1GbXQgPSAnIywjIzAuMDAnO1xuICAgICAgICAgICAgaWYgKHJvdy5zdGF0dXMgPT09ICdSZWplY3RlZCcpIGV4Y2VsUm93LmVhY2hDZWxsKGMgPT4gYy5maWxsID0geyB0eXBlOiAncGF0dGVybicsIHBhdHRlcm46ICdzb2xpZCcsIGZnQ29sb3I6IHsgYXJnYjogJ0ZGRkZFMUU2JyB9IH0pO1xuICAgICAgICAgICAgc2VjdGlvbi5jb2x1bW5zLmZvckVhY2goKHAsIGkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY2VsbCA9IGV4Y2VsUm93LmdldENlbGwoZml4ZWQubGVuZ3RoICsgaSArIDEpO1xuICAgICAgICAgICAgICBjZWxsLm51bUZtdCA9IHAuZGVjaW1hbFBsYWNlcyA/ICcwLicgKyAnMCcucmVwZWF0KHAuZGVjaW1hbFBsYWNlcykgOiAnMCc7XG4gICAgICAgICAgICAgIGlmICh0aGlzLm1lYXN1cmVtZW50KHJvdywgcCk/Lm91dE9mTGltaXQpIGNlbGwuZmlsbCA9IHsgdHlwZTogJ3BhdHRlcm4nLCBwYXR0ZXJuOiAnc29saWQnLCBmZ0NvbG9yOiB7IGFyZ2I6ICdGRkZGQUFBQScgfSB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHRvdGFsczogKHN0cmluZyB8IG51bWJlciB8IG51bGwpW10gPSBBcnJheShmaXhlZC5sZW5ndGgpLmZpbGwobnVsbCk7IHRvdGFsc1swXSA9ICdPUlRBTEFNQSc7IHRvdGFsc1sxXSA9IHNlY3Rpb24uYXZlcmFnZU1vZGUgPT09ICdXZWlnaHRlZCcgPyAnTWlrdGFyIGHEn8SxcmzEsWtsxLEnIDogJ0FyaXRtZXRpayc7IHRvdGFsc1sxMl0gPSBzZWN0aW9uLnRvdGFsS2cgLyBkaXZpc29yO1xuICAgICAgICAgIHNoZWV0LmFkZFJvdyhbLi4udG90YWxzLCAuLi5zZWN0aW9uLmNvbHVtbnMubWFwKHAgPT4gc2VjdGlvbi5hdmVyYWdlc1twLmNvZGVdID8/IG51bGwpXSkuZm9udCA9IHsgYm9sZDogdHJ1ZSB9O1xuICAgICAgICAgIHNoZWV0LmFkZFJvdyhbJ0FuYWxpemkgWWFwYW4gLyBLb250cm9sIEVkZW4nLCAuLi5BcnJheS5mcm9tKG5ldyBTZXQoc2VjdGlvbi5yb3dzLm1hcChyID0+IHIuYW5hbHlzdCkuZmlsdGVyKEJvb2xlYW4pKSldKTtcbiAgICAgICAgICBpZiAoc2VjdGlvbi5mb3JtLmRvY3VtZW50Q29kZSA9PT0gJ0ZSLjg1Jykgc2hlZXQuYWRkUm93KFsnS0FCVUwnLCAnJywgJ1JFRCcsICcnLCAnxZ5BUlRMSSBLQUJVTCcsICcnXSk7XG4gICAgICAgICAgc2hlZXQuY29sdW1ucy5mb3JFYWNoKGMgPT4geyBjLndpZHRoID0gMjA7IGMuYWxpZ25tZW50ID0geyB2ZXJ0aWNhbDogJ21pZGRsZScsIHdyYXBUZXh0OiB0cnVlIH07IH0pO1xuICAgICAgICAgIHNoZWV0LnZpZXdzID0gW3sgc3RhdGU6ICdmcm96ZW4nLCB5U3BsaXQ6IDQsIHhTcGxpdDogMiB9XTtcbiAgICAgICAgICBzaGVldC5wYWdlU2V0dXAgPSB7IG9yaWVudGF0aW9uOiAnbGFuZHNjYXBlJywgcGFwZXJTaXplOiA4LCBmaXRUb1BhZ2U6IHRydWUsIGZpdFRvV2lkdGg6IDEsIGZpdFRvSGVpZ2h0OiAwIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF3b3JrYm9vay53b3Jrc2hlZXRzLmxlbmd0aCkgd29ya2Jvb2suYWRkV29ya3NoZWV0KCdLYXnEsXQgWW9rJykuYWRkUm93KFsnU2XDp2lsZW4gZmlsdHJlbGVyZGUga2F5xLF0IGJ1bHVuYW1hZMSxLiddKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHdvcmtib29rLnhsc3gud3JpdGVCdWZmZXIoKTtcbiAgICAgICAgZG93bmxvYWQobmV3IEJsb2IoW2RhdGEgYXMgQmxvYlBhcnRdLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcgfSksIGBLYWxpdGUtJHtyZXBvcnQudHlwZX0tJHt0aGlzLmZpbHRlci5mcm9tfS54bHN4YCk7XG4gICAgICB9IGNhdGNoIChlKSB7IHRoaXMuZXJyb3IgPSBlcnJvck1lc3NhZ2UoZSk7IH0gZmluYWxseSB7IHRoaXMuYnVzeSA9IGZhbHNlOyB9XG4gICAgfSwgZXJyb3I6IGUgPT4geyB0aGlzLmVycm9yID0gZXJyb3JNZXNzYWdlKGUpOyB0aGlzLmJ1c3kgPSBmYWxzZTsgfSB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPjxoMz57eyBmaWx0ZXIudHlwZSA9PT0gJ1Byb2Nlc3MnID8gJ1JhZmluZXJpIFByb3NlcyBBbmFsaXogUmFwb3J1JyA6IGZpbHRlci50eXBlID09PSAnUmVqZWN0ZWQnID8gJ0thbGl0ZSBLb250cm9sIFJldCBSYXBvcnUnIDogJ0dpcmRpIEtvbnRyb2wgUmFwb3JsYXLEsScgfX08L2gzPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkXCI+PGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPjxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPjxsYWJlbD5CYcWfbGFuZ8Sxw6c8L2xhYmVsPjxpbnB1dCB0eXBlPVwiZGF0ZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJmaWx0ZXIuZnJvbVwiIC8+PC9kaXY+PGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+PGxhYmVsPkJpdGnFnzwvbGFiZWw+PGlucHV0IHR5cGU9XCJkYXRlXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImZpbHRlci51bnRpbFwiIC8+PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj48bGFiZWw+Rm9ybTwvbGFiZWw+PHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwiZmlsdGVyLmZvcm1Db2RlXCI+PG9wdGlvbiB2YWx1ZT1cIlwiPlTDvG3DvDwvb3B0aW9uPjxvcHRpb24gKm5nRm9yPVwibGV0IGZvcm0gb2YgdmlzaWJsZUZvcm1zXCIgW3ZhbHVlXT1cImZvcm0uY29kZVwiPnt7IGZvcm0uZG9jdW1lbnRDb2RlIH19IOKAkyB7eyBmb3JtLm5hbWUgfX08L29wdGlvbj48L3NlbGVjdD48L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0lmPVwiZmlsdGVyLnR5cGUgPT09ICdQcm9jZXNzJ1wiPjxsYWJlbD5UZXNpczwvbGFiZWw+PHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwiZmlsdGVyLmZhY2lsaXR5Q29kZVwiPjxvcHRpb24gdmFsdWU9XCJcIj5Uw7xtw7w8L29wdGlvbj48b3B0aW9uICpuZ0Zvcj1cImxldCBmYWNpbGl0eSBvZiBmYWNpbGl0aWVzXCIgW3ZhbHVlXT1cImZhY2lsaXR5LmNvZGVcIj57eyBmYWNpbGl0eS5uYW1lIH19PC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIiAqbmdJZj1cImZpbHRlci50eXBlICE9PSAnUHJvY2VzcydcIj48bGFiZWw+SGFyZWtldCBUw7xyw7w8L2xhYmVsPjxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImZpbHRlci5tb3ZlbWVudFR5cGVDb2RlXCI+PG9wdGlvbiB2YWx1ZT1cIlwiPlTDvG3DvDwvb3B0aW9uPjxvcHRpb24gKm5nRm9yPVwibGV0IHR5cGUgb2YgdHlwZXNcIiBbdmFsdWVdPVwidHlwZS5jb2RlXCI+e3sgdHlwZS5uYW1lIH19PC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgbXQtM1wiICpuZ0lmPVwiZmlsdGVyLnR5cGUgIT09ICdQcm9jZXNzJ1wiPjxsYWJlbD5NdWhhdGFwPC9sYWJlbD48aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImZpbHRlci5wYXJ0bmVyXCIgLz48L2Rpdj48ZGl2IGNsYXNzPVwiY29sLW1kLTMgbXQtM1wiICpuZ0lmPVwiZmlsdGVyLnR5cGUgIT09ICdQcm9jZXNzJ1wiPjxsYWJlbD5HZW1pPC9sYWJlbD48aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImZpbHRlci5zaGlwXCIgLz48L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMyBtdC0zXCIgKm5nSWY9XCJmaWx0ZXIudHlwZSAhPT0gJ1Byb2Nlc3MnXCI+PGxhYmVsPkdydXBsYW1hPC9sYWJlbD48c2VsZWN0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJmaWx0ZXIuZ3JvdXBCeVwiPjxvcHRpb24gdmFsdWU9XCJOb25lXCI+WW9rPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1cIlNoaXBcIj5HZW1pIC8gUGFydGk8L29wdGlvbj48b3B0aW9uIHZhbHVlPVwiUGFydG5lclwiPk11aGF0YXA8L29wdGlvbj48b3B0aW9uIHZhbHVlPVwiTW92ZW1lbnRcIj5IYXJla2V0IFTDvHLDvCAvIE1hbHplbWU8L29wdGlvbj48b3B0aW9uIHZhbHVlPVwiTW9udGhcIj5BeTwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zIG10LTNcIj48bGFiZWw+RHVydW08L2xhYmVsPjxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImZpbHRlci5zdGF0dXNcIj48b3B0aW9uIHZhbHVlPVwiXCI+VMO8bcO8PC9vcHRpb24+PG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbHRlci50eXBlID09PSAnUHJvY2VzcydcIj48b3B0aW9uIHZhbHVlPVwiRHJhZnRcIj5UYXNsYWs8L29wdGlvbj48b3B0aW9uIHZhbHVlPVwiTGFib3JhbnRTaWduZWRcIj5MYWJvcmFudCDEsG16YWzEsTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9XCJDaGVja2VkXCI+S29udHJvbCBFZGlsZGk8L29wdGlvbj48b3B0aW9uIHZhbHVlPVwiQXBwcm92ZWRcIj5PbmF5bMSxPC9vcHRpb24+PC9uZy1jb250YWluZXI+PG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbHRlci50eXBlICE9PSAnUHJvY2VzcydcIj48b3B0aW9uIHZhbHVlPVwiRHJhZnRcIj5UYXNsYWs8L29wdGlvbj48b3B0aW9uIHZhbHVlPVwiQWNjZXB0ZWRcIj5LYWJ1bDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9XCJSZWplY3RlZFwiPlJldDwvb3B0aW9uPjwvbmctY29udGFpbmVyPjwvc2VsZWN0PjwvZGl2PlxyXG4gIDwvZGl2PjxkaXYgY2xhc3M9XCJtdC0zXCI+PGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtci0yXCIgKGNsaWNrKT1cImxvYWQoKVwiIFtkaXNhYmxlZF09XCJidXN5XCI+UmFwb3J1IEdldGlyPC9idXR0b24+PGJ1dHRvbiAqbmdJZj1cImNhbkV4cG9ydFwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgbXItMlwiIChjbGljayk9XCJwZGYoKVwiIFtkaXNhYmxlZF09XCJidXN5XCI+UERGPC9idXR0b24+PGJ1dHRvbiAqbmdJZj1cImNhbkV4cG9ydFwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnlcIiAoY2xpY2spPVwiZXhjZWwoKVwiIFtkaXNhYmxlZF09XCJidXN5XCI+RXhjZWw8L2J1dHRvbj48L2Rpdj5cclxuICA8ZGl2ICpuZ0lmPVwiZXJyb3JcIiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWRhbmdlciBtdC0zXCI+e3sgZXJyb3IgfX08L2Rpdj48ZGl2ICpuZ0lmPVwiYnVzeVwiIGNsYXNzPVwicXVhbGl0eS1sb2FkaW5nXCIgcm9sZT1cInN0YXR1c1wiPlJhcG9yIGhhesSxcmxhbsSxeW9y4oCmPC9kaXY+XHJcbiAgPC9kaXY+PC9kaXY+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlcG9ydCBhcyByXCI+PGRpdiBjbGFzcz1cImNhcmQgbXQtM1wiPjxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5Ub3BsYW0gS2F5xLF0OiA8c3Ryb25nPnt7IHIudG90YWxSZWNvcmRzIH19PC9zdHJvbmc+IMK3IFJldDogPHN0cm9uZz57eyByLnJlamVjdGVkUmVjb3JkcyB9fTwvc3Ryb25nPiDCtyBSZXQgT3JhbsSxOiA8c3Ryb25nPiUge3sgci5yZWplY3Rpb25SYXRlIH19PC9zdHJvbmc+XHJcbiAgICA8dGFibGUgKm5nSWY9XCJyLnR5cGUgPT09ICdSZWplY3RlZCdcIiBjbGFzcz1cInRhYmxlIHRhYmxlLXNtIG10LTNcIj48dGhlYWQ+PHRyPjx0aD5HcnVwPC90aD48dGg+VG9wbGFtPC90aD48dGg+UmV0PC90aD48dGg+UmV0IE9yYW7EsSAoJSk8L3RoPjwvdHI+PC90aGVhZD48dGJvZHk+PHRyICpuZ0Zvcj1cImxldCBnIG9mIHIucmVqZWN0aW9uU3VtbWFyeVwiPjx0ZD57eyBnLmdyb3VwTmFtZSB9fTwvdGQ+PHRkPnt7IGcudG90YWwgfX08L3RkPjx0ZD57eyBnLnJlamVjdGVkIH19PC90ZD48dGQ+e3sgZy5yYXRlIH19PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT5cclxuICA8L2Rpdj48L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkIG10LTNcIiAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiByLnNlY3Rpb25zXCI+PGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPjxoNT57eyBzZWN0aW9uLmZvcm0ubmFtZSB9fSDigJMge3sgc2VjdGlvbi5ncm91cE5hbWUgfX08L2g1PjxwIGNsYXNzPVwidGV4dC1tdXRlZFwiPnt7IHNlY3Rpb24uZm9ybS5kb2N1bWVudENvZGUgfX0gwrcgWWF5xLFuOiB7eyBzZWN0aW9uLmZvcm0ucHVibGljYXRpb25EYXRlIHwgZGF0ZTonZGQuTU0ueXl5eScgfX0gwrcgUmV2aXp5b246IHt7IHNlY3Rpb24uZm9ybS5yZXZpc2lvbkRhdGUgfCBkYXRlOidkZC5NTS55eXl5JyB9fSAvIHt7IHNlY3Rpb24uZm9ybS5yZXZpc2lvbk51bWJlciB9fTwvcD5cclxuICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj48dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1ib3JkZXJlZCB0YWJsZS1zbVwiPjx0aGVhZD48dHI+PHRoPlRhcmloIC8gU2FhdDwvdGg+PHRoPnt7IHIudHlwZSA9PT0gJ1Byb2Nlc3MnID8gJ1RhbmsgLyBBa3RhcsSxbGFuIFRhbmsnIDogJ1BsYWthIC8gRmlybWEgLyBHZW1pJyB9fTwvdGg+PHRoPkR1cnVtPC90aD48dGg+TWlrdGFyICh7eyBzZWN0aW9uLmZvcm0ucXVhbnRpdHlVbml0IHx8ICdrZycgfX0pPC90aD48dGggKm5nRm9yPVwibGV0IHAgb2Ygc2VjdGlvbi5jb2x1bW5zXCI+e3sgcC5uYW1lIH19IDxzbWFsbD57eyBwLnVuaXQgfX08L3NtYWxsPjwvdGg+PHRoPkFuYWxpemkgWWFwYW4gLyBBw6fEsWtsYW1hPC90aD48L3RyPjwvdGhlYWQ+XHJcbiAgICAgIDx0Ym9keT48dHIgKm5nRm9yPVwibGV0IHJvdyBvZiBzZWN0aW9uLnJvd3NcIiBbY2xhc3MucmVqZWN0ZWQtcm93XT1cInJvdy5zdGF0dXMgPT09ICdSZWplY3RlZCdcIj48dGQ+e3sgcm93LmRhdGUgfCBkYXRlOidkZC5NTS55eXl5IEhIOm1tJyB9fTwvdGQ+PHRkPnt7IHJvdy5jb21wb3NpdGUgPyAnR2VtaSBLb21wb3ppdCBOdW11bmVzaScgOiByLnR5cGUgPT09ICdQcm9jZXNzJyA/ICgocm93LnRhbmsgfHwgcm93Lm91dHB1dFRhbmspID8gKHJvdy50YW5rIHx8ICcnKSArICcgLyAnICsgKHJvdy5vdXRwdXRUYW5rIHx8ICcnKSA6ICcnKSA6IHJvdy5wbGF0ZSB9fTxiciAvPnt7IHJvdy5wYXJ0bmVyIH19IHt7IHJvdy5zaGlwIH19PC90ZD48dGQ+e3sgc3RhdHVzTGFiZWwocm93LnN0YXR1cykgfX08L3RkPjx0ZD57eyByb3cucXVhbnRpdHlLZyA9PSBudWxsID8gJycgOiByb3cucXVhbnRpdHlLZyAvIChzZWN0aW9uLmZvcm0ucXVhbnRpdHlVbml0ID09PSAndCcgPyAxMDAwIDogMSkgfX08L3RkPjx0ZCAqbmdGb3I9XCJsZXQgcCBvZiBzZWN0aW9uLmNvbHVtbnNcIiBbY2xhc3Mub3V0LW9mLWxpbWl0XT1cIm1lYXN1cmVtZW50KHJvdywgcCk/Lm91dE9mTGltaXRcIj57eyBtZWFzdXJlbWVudChyb3csIHApPy5udW1iZXIgIT0gbnVsbCA/IChtZWFzdXJlbWVudChyb3csIHApPy5udW1iZXIgfCBudW1iZXI6JzEuMC04JykgOiBtZWFzdXJlbWVudChyb3csIHApPy50ZXh0IH19PC90ZD48dGQ+e3sgcm93LmFuYWx5c3QgfX08YnIgLz57eyByb3cubm90ZXMgfX08L3RkPjwvdHI+XHJcbiAgICAgIDx0ciBjbGFzcz1cImJnLWxpZ2h0XCI+PHRoPk9SVEFMQU1BPC90aD48dGg+e3sgc2VjdGlvbi5hdmVyYWdlTW9kZSA9PT0gJ1dlaWdodGVkJyA/ICdNaWt0YXIgYcSfxLFybMSxa2zEsScgOiAnQXJpdG1ldGlrJyB9fTwvdGg+PHRoPlRPUExBTTwvdGg+PHRoPnt7IHNlY3Rpb24udG90YWxLZyAvIChzZWN0aW9uLmZvcm0ucXVhbnRpdHlVbml0ID09PSAndCcgPyAxMDAwIDogMSkgfCBudW1iZXI6JzEuMC0yJyB9fTwvdGg+PHRkICpuZ0Zvcj1cImxldCBwIG9mIHNlY3Rpb24uY29sdW1uc1wiPnt7IHNlY3Rpb24uYXZlcmFnZXNbcC5jb2RlXSB8IG51bWJlcjonMS4wLTgnIH19PC90ZD48dGQ+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj5cclxuICAgIDwvZGl2PjwvZGl2PjxwICpuZ0lmPVwiIXIuc2VjdGlvbnMubGVuZ3RoXCIgY2xhc3M9XCJ0ZXh0LW11dGVkIG10LTNcIj5TZcOnaWxlbiBmaWx0cmVsZXJkZSBrYXnEsXQgYnVsdW5hbWFkxLEuPC9wPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { APP_INITIALIZER, NgModule } from '@angular/core';
|
|
2
|
+
import { CoreModule } from '@abp/ng.core';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { RouterModule } from '@angular/router';
|
|
5
|
+
import { NavItemsService } from '@abp/ng.theme.shared';
|
|
6
|
+
import { QualityNotificationsComponent, QualityNotificationBellComponent, QualityNotificationSettingsComponent } from './components/quality-notifications.component';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class KaliteNotificationModule {
|
|
9
|
+
static forRoot() {
|
|
10
|
+
return { ngModule: KaliteNotificationModule, providers: [{ provide: APP_INITIALIZER, multi: true, deps: [NavItemsService], useFactory: configureNotifications }] };
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
KaliteNotificationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KaliteNotificationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
14
|
+
KaliteNotificationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: KaliteNotificationModule, declarations: [QualityNotificationsComponent, QualityNotificationBellComponent, QualityNotificationSettingsComponent], imports: [CoreModule, FormsModule, RouterModule], exports: [QualityNotificationBellComponent, QualityNotificationsComponent, QualityNotificationSettingsComponent] });
|
|
15
|
+
KaliteNotificationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KaliteNotificationModule, imports: [CoreModule, FormsModule, RouterModule] });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KaliteNotificationModule, decorators: [{
|
|
17
|
+
type: NgModule,
|
|
18
|
+
args: [{ declarations: [QualityNotificationsComponent, QualityNotificationBellComponent, QualityNotificationSettingsComponent], imports: [CoreModule, FormsModule, RouterModule], exports: [QualityNotificationBellComponent, QualityNotificationsComponent, QualityNotificationSettingsComponent] }]
|
|
19
|
+
}] });
|
|
20
|
+
export function configureNotifications(nav) {
|
|
21
|
+
return () => nav.addItems([{ id: 'Kalite.Notifications', component: QualityNotificationBellComponent, order: 90 }]);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FsaXRlLW5vdGlmaWNhdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9rYWxpdGUvc3JjL2xpYi9rYWxpdGUtbm90aWZpY2F0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsZ0NBQWdDLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7QUFHckssTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxNQUFNLENBQUMsT0FBTztRQUNaLE9BQU8sRUFBRSxRQUFRLEVBQUUsd0JBQXdCLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsVUFBVSxFQUFFLHNCQUFzQixFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3JLLENBQUM7O3FIQUhVLHdCQUF3QjtzSEFBeEIsd0JBQXdCLGlCQURWLDZCQUE2QixFQUFFLGdDQUFnQyxFQUFFLG9DQUFvQyxhQUFhLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxhQUFhLGdDQUFnQyxFQUFFLDZCQUE2QixFQUFFLG9DQUFvQztzSEFDdlIsd0JBQXdCLFlBRHdHLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWTsyRkFDckssd0JBQXdCO2tCQURwQyxRQUFRO21CQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsNkJBQTZCLEVBQUUsZ0NBQWdDLEVBQUUsb0NBQW9DLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLGdDQUFnQyxFQUFFLDZCQUE2QixFQUFFLG9DQUFvQyxDQUFDLEVBQUU7O0FBTXZTLE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxHQUFvQjtJQUN6RCxPQUFPLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxzQkFBc0IsRUFBRSxTQUFTLEVBQUUsZ0NBQWdDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN0SCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOYXZJdGVtc1NlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBRdWFsaXR5Tm90aWZpY2F0aW9uc0NvbXBvbmVudCwgUXVhbGl0eU5vdGlmaWNhdGlvbkJlbGxDb21wb25lbnQsIFF1YWxpdHlOb3RpZmljYXRpb25TZXR0aW5nc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xdWFsaXR5LW5vdGlmaWNhdGlvbnMuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHsgZGVjbGFyYXRpb25zOiBbUXVhbGl0eU5vdGlmaWNhdGlvbnNDb21wb25lbnQsIFF1YWxpdHlOb3RpZmljYXRpb25CZWxsQ29tcG9uZW50LCBRdWFsaXR5Tm90aWZpY2F0aW9uU2V0dGluZ3NDb21wb25lbnRdLCBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgRm9ybXNNb2R1bGUsIFJvdXRlck1vZHVsZV0sIGV4cG9ydHM6IFtRdWFsaXR5Tm90aWZpY2F0aW9uQmVsbENvbXBvbmVudCwgUXVhbGl0eU5vdGlmaWNhdGlvbnNDb21wb25lbnQsIFF1YWxpdHlOb3RpZmljYXRpb25TZXR0aW5nc0NvbXBvbmVudF0gfSlcbmV4cG9ydCBjbGFzcyBLYWxpdGVOb3RpZmljYXRpb25Nb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEthbGl0ZU5vdGlmaWNhdGlvbk1vZHVsZT4ge1xuICAgIHJldHVybiB7IG5nTW9kdWxlOiBLYWxpdGVOb3RpZmljYXRpb25Nb2R1bGUsIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLCBtdWx0aTogdHJ1ZSwgZGVwczogW05hdkl0ZW1zU2VydmljZV0sIHVzZUZhY3Rvcnk6IGNvbmZpZ3VyZU5vdGlmaWNhdGlvbnMgfV0gfTtcbiAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGNvbmZpZ3VyZU5vdGlmaWNhdGlvbnMobmF2OiBOYXZJdGVtc1NlcnZpY2UpIHtcbiAgcmV0dXJuICgpID0+IG5hdi5hZGRJdGVtcyhbeyBpZDogJ0thbGl0ZS5Ob3RpZmljYXRpb25zJywgY29tcG9uZW50OiBRdWFsaXR5Tm90aWZpY2F0aW9uQmVsbENvbXBvbmVudCwgb3JkZXI6IDkwIH1dKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { RouterModule } from '@angular/router';
|
|
3
|
+
import { ProcessAnalysisComponent } from './components/process-analysis.component';
|
|
4
|
+
import { QualityParametersComponent } from './components/quality-parameters.component';
|
|
5
|
+
import { IntakeListComponent } from './components/intake-list.component';
|
|
6
|
+
import { IntakeFormComponent } from './components/intake-form.component';
|
|
7
|
+
import { QualityDefinitionsComponent } from './components/quality-definitions.component';
|
|
8
|
+
import { QualityReportsComponent } from './components/quality-reports.component';
|
|
9
|
+
import { QualityNotificationsComponent, QualityNotificationSettingsComponent } from './components/quality-notifications.component';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/router";
|
|
12
|
+
const routes = [
|
|
13
|
+
{
|
|
14
|
+
path: '',
|
|
15
|
+
pathMatch: 'full',
|
|
16
|
+
redirectTo: 'process-analysis',
|
|
17
|
+
},
|
|
18
|
+
{ path: 'process-analysis', component: ProcessAnalysisComponent },
|
|
19
|
+
{ path: 'parameters', component: QualityParametersComponent },
|
|
20
|
+
{ path: 'intake', component: IntakeListComponent },
|
|
21
|
+
{ path: 'intake/:id', component: IntakeFormComponent },
|
|
22
|
+
{ path: 'definitions', component: QualityDefinitionsComponent },
|
|
23
|
+
{ path: 'reports/input', component: QualityReportsComponent, data: { type: 'Input' } },
|
|
24
|
+
{ path: 'reports/process', component: QualityReportsComponent, data: { type: 'Process' } },
|
|
25
|
+
{ path: 'reports/rejected', component: QualityReportsComponent, data: { type: 'Rejected' } },
|
|
26
|
+
{ path: 'notifications', component: QualityNotificationsComponent },
|
|
27
|
+
{ path: 'notification-settings', component: QualityNotificationSettingsComponent },
|
|
28
|
+
];
|
|
29
|
+
export class KaliteRoutingModule {
|
|
30
|
+
}
|
|
31
|
+
KaliteRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KaliteRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
32
|
+
KaliteRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: KaliteRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] });
|
|
33
|
+
KaliteRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KaliteRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KaliteRoutingModule, decorators: [{
|
|
35
|
+
type: NgModule,
|
|
36
|
+
args: [{
|
|
37
|
+
imports: [RouterModule.forChild(routes)],
|
|
38
|
+
exports: [RouterModule],
|
|
39
|
+
}]
|
|
40
|
+
}] });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FsaXRlLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMva2FsaXRlL3NyYy9saWIva2FsaXRlLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7QUFFbkksTUFBTSxNQUFNLEdBQVc7SUFDckI7UUFDRSxJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSxNQUFNO1FBQ2pCLFVBQVUsRUFBRSxrQkFBa0I7S0FDL0I7SUFDRCxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUU7SUFDakUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsRUFBRTtJQUM3RCxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFO0lBQ2xELEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUU7SUFDdEQsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSwyQkFBMkIsRUFBRTtJQUMvRCxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUN0RixFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFO0lBQzFGLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUU7SUFDNUYsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSw2QkFBNkIsRUFBRTtJQUNuRSxFQUFFLElBQUksRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsb0NBQW9DLEVBQUU7Q0FDbkYsQ0FBQztBQU1GLE1BQU0sT0FBTyxtQkFBbUI7O2dIQUFuQixtQkFBbUI7aUhBQW5CLG1CQUFtQix3Q0FGcEIsWUFBWTtpSEFFWCxtQkFBbUIsWUFIcEIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFDN0IsWUFBWTsyRkFFWCxtQkFBbUI7a0JBSi9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDeEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQcm9jZXNzQW5hbHlzaXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvY2Vzcy1hbmFseXNpcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUXVhbGl0eVBhcmFtZXRlcnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcXVhbGl0eS1wYXJhbWV0ZXJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnRha2VMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ludGFrZS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnRha2VGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ludGFrZS1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRdWFsaXR5RGVmaW5pdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcXVhbGl0eS1kZWZpbml0aW9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUXVhbGl0eVJlcG9ydHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcXVhbGl0eS1yZXBvcnRzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRdWFsaXR5Tm90aWZpY2F0aW9uc0NvbXBvbmVudCwgUXVhbGl0eU5vdGlmaWNhdGlvblNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3F1YWxpdHktbm90aWZpY2F0aW9ucy5jb21wb25lbnQnO1xuXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICcnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxuICAgIHJlZGlyZWN0VG86ICdwcm9jZXNzLWFuYWx5c2lzJyxcbiAgfSxcbiAgeyBwYXRoOiAncHJvY2Vzcy1hbmFseXNpcycsIGNvbXBvbmVudDogUHJvY2Vzc0FuYWx5c2lzQ29tcG9uZW50IH0sXG4gIHsgcGF0aDogJ3BhcmFtZXRlcnMnLCBjb21wb25lbnQ6IFF1YWxpdHlQYXJhbWV0ZXJzQ29tcG9uZW50IH0sXG4gIHsgcGF0aDogJ2ludGFrZScsIGNvbXBvbmVudDogSW50YWtlTGlzdENvbXBvbmVudCB9LFxuICB7IHBhdGg6ICdpbnRha2UvOmlkJywgY29tcG9uZW50OiBJbnRha2VGb3JtQ29tcG9uZW50IH0sXG4gIHsgcGF0aDogJ2RlZmluaXRpb25zJywgY29tcG9uZW50OiBRdWFsaXR5RGVmaW5pdGlvbnNDb21wb25lbnQgfSxcbiAgeyBwYXRoOiAncmVwb3J0cy9pbnB1dCcsIGNvbXBvbmVudDogUXVhbGl0eVJlcG9ydHNDb21wb25lbnQsIGRhdGE6IHsgdHlwZTogJ0lucHV0JyB9IH0sXG4gIHsgcGF0aDogJ3JlcG9ydHMvcHJvY2VzcycsIGNvbXBvbmVudDogUXVhbGl0eVJlcG9ydHNDb21wb25lbnQsIGRhdGE6IHsgdHlwZTogJ1Byb2Nlc3MnIH0gfSxcbiAgeyBwYXRoOiAncmVwb3J0cy9yZWplY3RlZCcsIGNvbXBvbmVudDogUXVhbGl0eVJlcG9ydHNDb21wb25lbnQsIGRhdGE6IHsgdHlwZTogJ1JlamVjdGVkJyB9IH0sXG4gIHsgcGF0aDogJ25vdGlmaWNhdGlvbnMnLCBjb21wb25lbnQ6IFF1YWxpdHlOb3RpZmljYXRpb25zQ29tcG9uZW50IH0sXG4gIHsgcGF0aDogJ25vdGlmaWNhdGlvbi1zZXR0aW5ncycsIGNvbXBvbmVudDogUXVhbGl0eU5vdGlmaWNhdGlvblNldHRpbmdzQ29tcG9uZW50IH0sXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgS2FsaXRlUm91dGluZ01vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { FormsModule } from '@angular/forms';
|
|
3
|
+
import { CoreModule, LazyModuleFactory } from '@abp/ng.core';
|
|
4
|
+
import { ThemeSharedModule } from '@abp/ng.theme.shared';
|
|
5
|
+
import { KaliteComponent } from './components/kalite.component';
|
|
6
|
+
import { KaliteRoutingModule } from './kalite-routing.module';
|
|
7
|
+
import { ProcessAnalysisComponent } from './components/process-analysis.component';
|
|
8
|
+
import { QualityParametersComponent } from './components/quality-parameters.component';
|
|
9
|
+
import { IntakeListComponent } from './components/intake-list.component';
|
|
10
|
+
import { IntakeFormComponent } from './components/intake-form.component';
|
|
11
|
+
import { QualityDefinitionsComponent } from './components/quality-definitions.component';
|
|
12
|
+
import { QualityReportsComponent } from './components/quality-reports.component';
|
|
13
|
+
import { KaliteNotificationModule } from './kalite-notification.module';
|
|
14
|
+
import { DxDataGridModule } from 'devextreme-angular';
|
|
15
|
+
import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
|
|
16
|
+
import * as i0 from "@angular/core";
|
|
17
|
+
export class KaliteModule {
|
|
18
|
+
static forChild() {
|
|
19
|
+
return {
|
|
20
|
+
ngModule: KaliteModule,
|
|
21
|
+
providers: [],
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
static forLazy() {
|
|
25
|
+
return new LazyModuleFactory(KaliteModule.forChild());
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
KaliteModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KaliteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
29
|
+
KaliteModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: KaliteModule, declarations: [KaliteComponent, ProcessAnalysisComponent, QualityParametersComponent, IntakeListComponent,
|
|
30
|
+
IntakeFormComponent, QualityDefinitionsComponent, QualityReportsComponent], imports: [CoreModule, ThemeSharedModule, FormsModule, DxDataGridModule, NgbDropdownModule, KaliteNotificationModule, KaliteRoutingModule], exports: [ProcessAnalysisComponent, QualityParametersComponent] });
|
|
31
|
+
KaliteModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KaliteModule, imports: [CoreModule, ThemeSharedModule, FormsModule, DxDataGridModule, NgbDropdownModule, KaliteNotificationModule, KaliteRoutingModule] });
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KaliteModule, decorators: [{
|
|
33
|
+
type: NgModule,
|
|
34
|
+
args: [{
|
|
35
|
+
declarations: [KaliteComponent, ProcessAnalysisComponent, QualityParametersComponent, IntakeListComponent,
|
|
36
|
+
IntakeFormComponent, QualityDefinitionsComponent, QualityReportsComponent],
|
|
37
|
+
imports: [CoreModule, ThemeSharedModule, FormsModule, DxDataGridModule, NgbDropdownModule, KaliteNotificationModule, KaliteRoutingModule],
|
|
38
|
+
exports: [ProcessAnalysisComponent, QualityParametersComponent],
|
|
39
|
+
}]
|
|
40
|
+
}] });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FsaXRlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2thbGl0ZS9zcmMvbGliL2thbGl0ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBd0MsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQVEvRCxNQUFNLE9BQU8sWUFBWTtJQUN2QixNQUFNLENBQUMsUUFBUTtRQUNiLE9BQU87WUFDTCxRQUFRLEVBQUUsWUFBWTtZQUN0QixTQUFTLEVBQUUsRUFBRTtTQUNkLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPLElBQUksaUJBQWlCLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQzs7eUdBVlUsWUFBWTswR0FBWixZQUFZLGlCQUxSLGVBQWUsRUFBRSx3QkFBd0IsRUFBRSwwQkFBMEIsRUFBRSxtQkFBbUI7UUFDdkcsbUJBQW1CLEVBQUUsMkJBQTJCLEVBQUUsdUJBQXVCLGFBQ2pFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsbUJBQW1CLGFBQzlILHdCQUF3QixFQUFFLDBCQUEwQjswR0FFbkQsWUFBWSxZQUhiLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsbUJBQW1COzJGQUc3SCxZQUFZO2tCQU54QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGVBQWUsRUFBRSx3QkFBd0IsRUFBRSwwQkFBMEIsRUFBRSxtQkFBbUI7d0JBQ3ZHLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLHVCQUF1QixDQUFDO29CQUM1RSxPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLG1CQUFtQixDQUFDO29CQUN6SSxPQUFPLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSwwQkFBMEIsQ0FBQztpQkFDaEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTmdNb2R1bGVGYWN0b3J5LCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvcmVNb2R1bGUsIExhenlNb2R1bGVGYWN0b3J5IH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFRoZW1lU2hhcmVkTW9kdWxlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgS2FsaXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2thbGl0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgS2FsaXRlUm91dGluZ01vZHVsZSB9IGZyb20gJy4va2FsaXRlLXJvdXRpbmcubW9kdWxlJztcbmltcG9ydCB7IFByb2Nlc3NBbmFseXNpc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9jZXNzLWFuYWx5c2lzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRdWFsaXR5UGFyYW1ldGVyc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xdWFsaXR5LXBhcmFtZXRlcnMuY29tcG9uZW50JztcbmltcG9ydCB7IEludGFrZUxpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaW50YWtlLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IEludGFrZUZvcm1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaW50YWtlLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFF1YWxpdHlEZWZpbml0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xdWFsaXR5LWRlZmluaXRpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRdWFsaXR5UmVwb3J0c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xdWFsaXR5LXJlcG9ydHMuY29tcG9uZW50JztcbmltcG9ydCB7IEthbGl0ZU5vdGlmaWNhdGlvbk1vZHVsZSB9IGZyb20gJy4va2FsaXRlLW5vdGlmaWNhdGlvbi5tb2R1bGUnO1xuaW1wb3J0IHsgRHhEYXRhR3JpZE1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhcic7XG5pbXBvcnQgeyBOZ2JEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbS2FsaXRlQ29tcG9uZW50LCBQcm9jZXNzQW5hbHlzaXNDb21wb25lbnQsIFF1YWxpdHlQYXJhbWV0ZXJzQ29tcG9uZW50LCBJbnRha2VMaXN0Q29tcG9uZW50LFxuICAgIEludGFrZUZvcm1Db21wb25lbnQsIFF1YWxpdHlEZWZpbml0aW9uc0NvbXBvbmVudCwgUXVhbGl0eVJlcG9ydHNDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgVGhlbWVTaGFyZWRNb2R1bGUsIEZvcm1zTW9kdWxlLCBEeERhdGFHcmlkTW9kdWxlLCBOZ2JEcm9wZG93bk1vZHVsZSwgS2FsaXRlTm90aWZpY2F0aW9uTW9kdWxlLCBLYWxpdGVSb3V0aW5nTW9kdWxlXSxcbiAgZXhwb3J0czogW1Byb2Nlc3NBbmFseXNpc0NvbXBvbmVudCwgUXVhbGl0eVBhcmFtZXRlcnNDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBLYWxpdGVNb2R1bGUge1xuICBzdGF0aWMgZm9yQ2hpbGQoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxLYWxpdGVNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEthbGl0ZU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW10sXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBmb3JMYXp5KCk6IE5nTW9kdWxlRmFjdG9yeTxLYWxpdGVNb2R1bGU+IHtcbiAgICByZXR1cm4gbmV3IExhenlNb2R1bGVGYWN0b3J5KEthbGl0ZU1vZHVsZS5mb3JDaGlsZCgpKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50YWtlLm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2thbGl0ZS9zcmMvbGliL21vZGVscy9pbnRha2UubW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWFsaXR5TWVhc3VyZW1lbnQsIFF1YWxpdHlUZW1wbGF0ZSwgUXVhbGl0eVBhcmFtZXRlciwgUXVhbGl0eUZvcm0gfSBmcm9tICcuL3F1YWxpdHkubW9kZWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBNb3ZlbWVudFR5cGUgeyBjb2RlOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgfVxuZXhwb3J0IGludGVyZmFjZSBNb3ZlbWVudERldGFpbCB7IGNvZGU6IHN0cmluZzsgbW92ZW1lbnRUeXBlQ29kZTogc3RyaW5nOyBkZXRhaWxDb2RlOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgcHJvZmlsZTogc3RyaW5nOyBhY3RpdmU6IGJvb2xlYW47IH1cbmV4cG9ydCBpbnRlcmZhY2UgUXVhbGl0eVRhbmsgeyBjb2RlOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgdHlwZTogc3RyaW5nOyBjYXBhY2l0eTogbnVtYmVyIHwgbnVsbDsgYWN0aXZlOiBib29sZWFuOyB9XG5leHBvcnQgaW50ZXJmYWNlIFF1YWxpdHlTaGlmdCB7IGNvZGU6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBzdGFydEhvdXI6IG51bWJlcjsgZW5kSG91cjogbnVtYmVyOyBhbmFseXN0OiBzdHJpbmc7IGFuYWx5c3RVc2VySWQ/OiBzdHJpbmcgfCBudWxsOyBhY3RpdmU6IGJvb2xlYW47IH1cbmV4cG9ydCBpbnRlcmZhY2UgUXVhbGl0eUxhYm9yYW50IHsgaWQ6IHN0cmluZzsgdXNlck5hbWU6IHN0cmluZzsgfVxuZXhwb3J0IGludGVyZmFjZSBJbnRha2VWZWhpY2xlIHtcbiAgaGFzRXhpdGVkPzogYm9vbGVhbjtcbiAgZG9jRW50cnk6IG51bWJlcjsgZG9jTnVtOiBudW1iZXI7IHNlcXVlbmNlTnVtYmVyOiBzdHJpbmc7IGdhdGVDb2RlOiBzdHJpbmc7IGVudHJ5RGF0ZTogc3RyaW5nO1xuICBtb3ZlbWVudFR5cGVDb2RlOiBzdHJpbmc7IG1vdmVtZW50VHlwZU5hbWU6IHN0cmluZzsgcGxhdGU6IHN0cmluZzsgdHJhaWxlclBsYXRlOiBzdHJpbmc7XG4gIGRyaXZlcjogc3RyaW5nOyBkcml2ZXJQaG9uZTogc3RyaW5nOyBpZGVudGl0eU51bWJlcjogc3RyaW5nOyBzZWFsTnVtYmVyOiBzdHJpbmc7XG4gIHZlaGljbGVTdGF0dXM6IHN0cmluZzsgZmlyc3RXZWlnaHQ6IG51bWJlciB8IG51bGw7IGxhc3RXZWlnaHQ6IG51bWJlciB8IG51bGw7IG5ldEtnOiBudW1iZXIgfCBudWxsO1xuICBvcmlnaW46IHN0cmluZzsgc3RvY2tUcmFuc2Zlck51bWJlcjogc3RyaW5nOyByZWNlaXB0RG9jRW50cnk6IG51bWJlciB8IG51bGw7IHJlY2VpcHROdW1iZXI6IHN0cmluZztcbiAgcGFydG5lckNvZGU6IHN0cmluZzsgcGFydG5lck5hbWU6IHN0cmluZzsgc2hpcE5hbWU6IHN0cmluZzsgb3JkZXJOdW1iZXI6IHN0cmluZztcbiAgcXVhbGl0eVN0YXR1czogc3RyaW5nOyBtb3ZlbWVudERldGFpbE5hbWU6IHN0cmluZzsgYW5hbHlzdDogc3RyaW5nOyBpbnNwZWN0ZWRBdDogc3RyaW5nOyBub3Rlczogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBJbnRha2VJbnNwZWN0aW9uIHtcbiAgY29kZTogc3RyaW5nOyB2ZWhpY2xlRW50cnlJZDogbnVtYmVyOyBtb3ZlbWVudERldGFpbENvZGU6IHN0cmluZzsgc3RhdHVzOiBzdHJpbmc7IG9yaWdpbjogc3RyaW5nO1xuICB0YW5rQ29kZTogc3RyaW5nOyBvaWxUeXBlOiBzdHJpbmc7IGJhdGNoTnVtYmVyOiBzdHJpbmc7IGNvbXBvc2l0ZVNhbXBsZUNvZGU6IHN0cmluZzsgcXVhbnRpdHlLZzogbnVtYmVyIHwgbnVsbDtcbiAgbm90ZXM6IHN0cmluZzsgYW5hbHlzdDogc3RyaW5nOyBpbnNwZWN0ZWRBdDogc3RyaW5nOyByZXZpc2lvbjogbnVtYmVyO1xuICB2ZWhpY2xlU25hcHNob3Q6IEludGFrZVZlaGljbGU7IHRlbXBsYXRlU25hcHNob3Q6IFF1YWxpdHlUZW1wbGF0ZTsgbWVhc3VyZW1lbnRzOiBRdWFsaXR5TWVhc3VyZW1lbnRbXTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9zaXRlU2FtcGxlIHtcbiAgY29kZTogc3RyaW5nOyBtb3ZlbWVudERldGFpbENvZGU6IHN0cmluZzsgcmVjZWlwdERvY0VudHJ5OiBudW1iZXIgfCBudWxsOyBiYXRjaE51bWJlcjogc3RyaW5nO1xuICBzaGlwTmFtZTogc3RyaW5nOyBhbmFseXN0OiBzdHJpbmc7IHNhbXBsZWRBdDogc3RyaW5nOyByZXZpc2lvbjogbnVtYmVyOyB0ZW1wbGF0ZVNuYXBzaG90OiBRdWFsaXR5VGVtcGxhdGU7XG4gIG1lYXN1cmVtZW50czogUXVhbGl0eU1lYXN1cmVtZW50W107XG59XG5leHBvcnQgaW50ZXJmYWNlIEludGFrZUZvcm0geyB2ZWhpY2xlOiBJbnRha2VWZWhpY2xlOyBkZXRhaWxzOiBNb3ZlbWVudERldGFpbFtdOyBpbnNwZWN0aW9uOiBJbnRha2VJbnNwZWN0aW9uOyBjb21wb3NpdGVTYW1wbGU6IENvbXBvc2l0ZVNhbXBsZSB8IG51bGw7IGNhbkVkaXQ6IGJvb2xlYW47IH1cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZWQ8VD4geyBpdGVtczogVFtdOyB0b3RhbENvdW50OiBudW1iZXI7IH1cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0RmlsdGVyIHtcbiAgdHlwZTogc3RyaW5nOyBmcm9tOiBzdHJpbmc7IHVudGlsOiBzdHJpbmc7IGZvcm1Db2RlPzogc3RyaW5nOyBtb3ZlbWVudFR5cGVDb2RlPzogc3RyaW5nO1xuICBtb3ZlbWVudERldGFpbENvZGU/OiBzdHJpbmc7IGZhY2lsaXR5Q29kZT86IHN0cmluZzsgcGFydG5lcj86IHN0cmluZzsgc2hpcD86IHN0cmluZzsgc3RhdHVzPzogc3RyaW5nOyBncm91cEJ5OiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydFJvdyB7XG4gIHJlY29yZENvZGU6IHN0cmluZzsgZGF0ZTogc3RyaW5nOyBwbGF0ZTogc3RyaW5nOyB0cmFpbGVyUGxhdGU6IHN0cmluZzsgcGFydG5lcjogc3RyaW5nOyBzaGlwOiBzdHJpbmc7XG4gIG1vdmVtZW50VHlwZTogc3RyaW5nOyBkZXRhaWw6IHN0cmluZzsgc3RhdHVzOiBzdHJpbmc7IGFuYWx5c3Q6IHN0cmluZzsgbm90ZXM6IHN0cmluZzsgb3JpZ2luOiBzdHJpbmc7XG4gIHN0b2NrVHJhbnNmZXI6IHN0cmluZzsgdGFuazogc3RyaW5nOyBvdXRwdXRUYW5rOiBzdHJpbmc7IG9pbFR5cGU6IHN0cmluZzsgcXVhbnRpdHlLZzogbnVtYmVyIHwgbnVsbDtcbiAgY29tcG9zaXRlOiBib29sZWFuOyBtZWFzdXJlbWVudHM6IFF1YWxpdHlNZWFzdXJlbWVudFtdO1xufVxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRTZWN0aW9uIHsgZm9ybTogUXVhbGl0eUZvcm07IGdyb3VwTmFtZTogc3RyaW5nOyBhdmVyYWdlTW9kZTogc3RyaW5nOyBjb2x1bW5zOiBRdWFsaXR5UGFyYW1ldGVyW107IHJvd3M6IFJlcG9ydFJvd1tdOyBhdmVyYWdlczogUmVjb3JkPHN0cmluZywgbnVtYmVyPjsgdG90YWxLZzogbnVtYmVyOyB9XG5leHBvcnQgaW50ZXJmYWNlIFF1YWxpdHlSZXBvcnQge1xuICB0eXBlOiBzdHJpbmc7IGZyb206IHN0cmluZzsgdW50aWw6IHN0cmluZzsgdG90YWxSZWNvcmRzOiBudW1iZXI7IHJlamVjdGVkUmVjb3JkczogbnVtYmVyOyByZWplY3Rpb25SYXRlOiBudW1iZXI7XG4gIHNlY3Rpb25zOiBSZXBvcnRTZWN0aW9uW107IHJlamVjdGlvblN1bW1hcnk6IHsgZ3JvdXBOYW1lOiBzdHJpbmc7IHRvdGFsOiBudW1iZXI7IHJlamVjdGVkOiBudW1iZXI7IHJhdGU6IG51bWJlciB9W107XG59XG5leHBvcnQgaW50ZXJmYWNlIFF1YWxpdHlOb3RpZmljYXRpb24geyBjb2RlOiBzdHJpbmc7IHRpdGxlOiBzdHJpbmc7IGJvZHk6IHN0cmluZzsgdXJsOiBzdHJpbmc7IGlzUmVhZDogYm9vbGVhbjsgY3JlYXRlZEF0OiBzdHJpbmc7IGRlbGl2ZXJ5U3RhdHVzOiBzdHJpbmc7IGVycm9yOiBzdHJpbmc7IH1cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uU2V0dGluZ3MgeyBwb3J0YWxFbmFibGVkOiBib29sZWFuOyBlbWFpbEVuYWJsZWQ6IGJvb2xlYW47IHJlbWluZGVyRW5hYmxlZDogYm9vbGVhbjsgcmVtaW5kZXJNaW51dGVzOiBudW1iZXI7IHBvcnRhbEJhc2VVcmw/OiBzdHJpbmc7IHF1YWxpdHlSb2xlczogc3RyaW5nW107IHNlY3VyaXR5Um9sZXM6IHN0cmluZ1tdOyB9XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhbGl0eS5tb2RlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rYWxpdGUvc3JjL2xpYi9tb2RlbHMvcXVhbGl0eS5tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUXVhbGl0eUZvcm0ge1xuICBjb250cm9sVHlwZT86ICdJbnB1dCcgfCAnUHJvY2Vzcyc7XG4gIG1vdmVtZW50RGV0YWlsQ29kZT86IHN0cmluZztcbiAgYXZlcmFnZU1vZGU/OiAnV2VpZ2h0ZWQnIHwgJ0FyaXRobWV0aWMnO1xuICBxdWFudGl0eVVuaXQ/OiAna2cnIHwgJ3QnO1xuICBjb2RlOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZG9jdW1lbnRDb2RlOiBzdHJpbmc7XG4gIHB1YmxpY2F0aW9uRGF0ZTogc3RyaW5nO1xuICByZXZpc2lvbkRhdGU6IHN0cmluZztcbiAgcmV2aXNpb25OdW1iZXI6IHN0cmluZztcbiAgYWN0aXZlOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFF1YWxpdHlGYWNpbGl0eSB7XG4gIGNvZGU6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBmb3JtQ29kZTogc3RyaW5nO1xuICBhY3RpdmU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVhbGl0eVN0ZXAge1xuICBjb2RlOiBzdHJpbmc7XG4gIGZhY2lsaXR5Q29kZTogc3RyaW5nO1xuICBwcm9jZXNzQ29kZTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIG9yZGVyOiBudW1iZXI7XG4gIGFjdGl2ZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBRdWFsaXR5UGFyYW1ldGVyIHtcbiAgY29kZTogc3RyaW5nO1xuICBmb3JtQ29kZTogc3RyaW5nO1xuICBzdGVwQ29kZTogc3RyaW5nO1xuICBvcmRlcjogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIHVuaXQ6IHN0cmluZztcbiAgdmFsdWVUeXBlOiAnTnVtYmVyJyB8ICdUZXh0JyB8ICdDaG9pY2UnO1xuICBkZWNpbWFsUGxhY2VzOiBudW1iZXI7XG4gIHJlcXVpcmVkOiBib29sZWFuO1xuICBjYWxjdWxhdGVkOiBib29sZWFuO1xuICBmb3JtdWxhOiBzdHJpbmc7XG4gIG9wdGlvbnM6IHN0cmluZ1tdO1xuICBhY3RpdmU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVhbGl0eUxpbWl0IHtcbiAgb3JpZ2luPzogc3RyaW5nO1xuICBjb2RlOiBzdHJpbmc7XG4gIHBhcmFtZXRlckNvZGU6IHN0cmluZztcbiAgb2lsVHlwZTogc3RyaW5nO1xuICBtaW5pbXVtOiBudW1iZXIgfCBudWxsO1xuICBtYXhpbXVtOiBudW1iZXIgfCBudWxsO1xuICBub21pbmFsOiBudW1iZXIgfCBudWxsO1xuICBleHBlY3RlZFRleHQ6IHN0cmluZztcbiAgdmFsaWRGcm9tOiBzdHJpbmcgfCBudWxsO1xuICB2YWxpZFVudGlsOiBzdHJpbmcgfCBudWxsO1xuICBhY3RpdmU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVhbGl0eVRlbXBsYXRlIHtcbiAgZm9ybTogUXVhbGl0eUZvcm07XG4gIHN0ZXBzOiBRdWFsaXR5U3RlcFtdO1xuICBwYXJhbWV0ZXJzOiBRdWFsaXR5UGFyYW1ldGVyW107XG4gIGxpbWl0czogUXVhbGl0eUxpbWl0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVhbGl0eU1lYXN1cmVtZW50IHtcbiAgcGFyYW1ldGVyQ29kZTogc3RyaW5nO1xuICBwYXJhbWV0ZXJOYW1lPzogc3RyaW5nO1xuICB1bml0Pzogc3RyaW5nO1xuICBudW1iZXI6IG51bWJlciB8IG51bGw7XG4gIHRleHQ6IHN0cmluZztcbiAgYXBwbGllZE1pbmltdW0/OiBudW1iZXIgfCBudWxsO1xuICBhcHBsaWVkTWF4aW11bT86IG51bWJlciB8IG51bGw7XG4gIGFwcGxpZWROb21pbmFsPzogbnVtYmVyIHwgbnVsbDtcbiAgYXBwbGllZEV4cGVjdGVkVGV4dD86IHN0cmluZztcbiAgb3V0T2ZMaW1pdD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVhbGl0eUhvdXIge1xuICBzaGlmdENvZGU/OiBzdHJpbmc7XG4gIGFuYWx5c3Q/OiBzdHJpbmc7XG4gIGFuYWx5c3RVc2VySWQ/OiBzdHJpbmcgfCBudWxsO1xuICBob3VyOiBudW1iZXI7XG4gIGludGFrZVRhbms6IHN0cmluZztcbiAgb3V0cHV0VGFuazogc3RyaW5nO1xuICBtZWFzdXJlbWVudHM6IFF1YWxpdHlNZWFzdXJlbWVudFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFF1YWxpdHlTaWduYXR1cmUge1xuICB1c2VySWQ6IHN0cmluZztcbiAgdXNlck5hbWU6IHN0cmluZztcbiAgc2lnbmVkQXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBRdWFsaXR5RXZlbnQge1xuICBjb2RlOiBzdHJpbmc7XG4gIGFuYWx5c2lzQ29kZTogc3RyaW5nO1xuICBhY3Rpb246IHN0cmluZztcbiAgdXNlcklkOiBzdHJpbmc7XG4gIHVzZXJOYW1lOiBzdHJpbmc7XG4gIG9jY3VycmVkQXQ6IHN0cmluZztcbiAgcmVhc29uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVhbGl0eUFuYWx5c2lzIHtcbiAgY29kZTogc3RyaW5nO1xuICBmYWNpbGl0eUNvZGU6IHN0cmluZztcbiAgYnVzaW5lc3NEYXRlOiBzdHJpbmc7XG4gIG9pbFR5cGU6IHN0cmluZztcbiAgc3RhdHVzOiAnRHJhZnQnIHwgJ0xhYm9yYW50U2lnbmVkJyB8ICdDaGVja2VkJyB8ICdBcHByb3ZlZCc7XG4gIG5vdGVzOiBzdHJpbmc7XG4gIG91dE9mTGltaXRSZWFzb246IHN0cmluZztcbiAgZm9ybVNuYXBzaG90OiBRdWFsaXR5Rm9ybTtcbiAgdGVtcGxhdGVTbmFwc2hvdDogUXVhbGl0eVRlbXBsYXRlO1xuICBsYWJvcmFudDogUXVhbGl0eVNpZ25hdHVyZSB8IG51bGw7XG4gIGVuZ2luZWVyOiBRdWFsaXR5U2lnbmF0dXJlIHwgbnVsbDtcbiAgYXBwcm92ZXI6IFF1YWxpdHlTaWduYXR1cmUgfCBudWxsO1xuICByZXZpc2lvbjogbnVtYmVyO1xuICBpc0RlbGV0ZWQ6IGJvb2xlYW47XG4gIGhpc3Rvcnk6IFF1YWxpdHlFdmVudFtdO1xuICBob3VyczogUXVhbGl0eUhvdXJbXTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@abp/ng.core";
|
|
4
|
+
export class KaliteService {
|
|
5
|
+
constructor(restService) {
|
|
6
|
+
this.restService = restService;
|
|
7
|
+
this.apiName = 'Kalite';
|
|
8
|
+
}
|
|
9
|
+
sample() {
|
|
10
|
+
return this.restService.request({ method: 'GET', url: '/api/Kalite/sample' }, { apiName: this.apiName });
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
KaliteService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KaliteService, deps: [{ token: i1.RestService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
14
|
+
KaliteService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KaliteService, providedIn: 'root' });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KaliteService, decorators: [{
|
|
16
|
+
type: Injectable,
|
|
17
|
+
args: [{
|
|
18
|
+
providedIn: 'root',
|
|
19
|
+
}]
|
|
20
|
+
}], ctorParameters: function () { return [{ type: i1.RestService }]; } });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FsaXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rYWxpdGUvc3JjL2xpYi9zZXJ2aWNlcy9rYWxpdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFNM0MsTUFBTSxPQUFPLGFBQWE7SUFHeEIsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFGNUMsWUFBTyxHQUFHLFFBQVEsQ0FBQztJQUU0QixDQUFDO0lBRWhELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUM3QixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLG9CQUFvQixFQUFFLEVBQzVDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FDMUIsQ0FBQztJQUNKLENBQUM7OzBHQVZVLGFBQWE7OEdBQWIsYUFBYSxjQUZaLE1BQU07MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBLYWxpdGVTZXJ2aWNlIHtcbiAgYXBpTmFtZSA9ICdLYWxpdGUnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlKSB7fVxuXG4gIHNhbXBsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PHZvaWQsIGFueT4oXG4gICAgICB7IG1ldGhvZDogJ0dFVCcsIHVybDogJy9hcGkvS2FsaXRlL3NhbXBsZScgfSxcbiAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH1cbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
const PRINT_STYLES = `
|
|
2
|
+
@page { size: A4 portrait; margin: 10mm; }
|
|
3
|
+
html, body { margin: 0; background: #fff !important; color: #212529; }
|
|
4
|
+
body { font-family: Arial, sans-serif; font-size: 10pt; }
|
|
5
|
+
* { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
|
|
6
|
+
.print-surface { width: 100%; padding: 0; }
|
|
7
|
+
.print-surface .card { box-shadow: none; border: 1px solid #ddd; margin-bottom: 4mm; }
|
|
8
|
+
.print-surface .card-body { padding: 4mm; }
|
|
9
|
+
.print-surface .vehicle-info { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 3mm; }
|
|
10
|
+
.print-surface .vehicle-info p { min-height: 0; margin-bottom: 2mm; }
|
|
11
|
+
.print-surface .row { display: flex; flex-wrap: wrap; }
|
|
12
|
+
.print-surface .col-md-3 { flex: 0 0 25%; max-width: 25%; }
|
|
13
|
+
.print-surface .col-md-4 { flex: 0 0 33.333%; max-width: 33.333%; }
|
|
14
|
+
.print-surface .col-md-12 { flex: 0 0 100%; max-width: 100%; }
|
|
15
|
+
.print-surface .table-responsive { overflow: visible; }
|
|
16
|
+
.print-surface .measurement-table { min-width: 0; width: 100%; table-layout: fixed; }
|
|
17
|
+
.print-surface .measurement-table th, .print-surface .measurement-table td { padding: 2mm; overflow-wrap: anywhere; }
|
|
18
|
+
.print-surface .measurement-table th:nth-child(1) { width: 29%; }
|
|
19
|
+
.print-surface .measurement-table th:nth-child(2) { width: 7%; }
|
|
20
|
+
.print-surface .measurement-table th:nth-child(3) { width: 25%; }
|
|
21
|
+
.print-surface .measurement-table th:nth-child(4) { width: 28%; }
|
|
22
|
+
.print-surface .measurement-table th:nth-child(5) { width: 11%; }
|
|
23
|
+
.print-surface thead { display: table-header-group; }
|
|
24
|
+
.print-surface tr, .print-surface .vehicle-info > div, .print-surface .quality-status { break-inside: avoid; }
|
|
25
|
+
.print-surface h5, .print-surface h6 { break-after: avoid; }
|
|
26
|
+
.print-value { display: block; min-height: 1.4em; white-space: pre-wrap; overflow-wrap: anywhere; }
|
|
27
|
+
.print-surface .print-only { display: block !important; }
|
|
28
|
+
`;
|
|
29
|
+
/** Print only the form, with current control values and the application's existing colors. */
|
|
30
|
+
export async function printForm(source, title) {
|
|
31
|
+
const owner = source.ownerDocument;
|
|
32
|
+
const content = source.cloneNode(true);
|
|
33
|
+
content.classList.add('print-surface');
|
|
34
|
+
content.querySelectorAll('button, .print-exclude, .alert, .quality-loading').forEach(x => x.remove());
|
|
35
|
+
const originals = source.querySelectorAll('input, select, textarea');
|
|
36
|
+
const copies = content.querySelectorAll('input, select, textarea');
|
|
37
|
+
// Ignore excluded editor controls before pairing, so control indexes remain identical.
|
|
38
|
+
const printableOriginals = Array.from(originals).filter(x => !x.closest('.print-exclude'));
|
|
39
|
+
copies.forEach((copy, index) => {
|
|
40
|
+
const control = printableOriginals[index];
|
|
41
|
+
const value = owner.createElement('span');
|
|
42
|
+
value.className = 'print-value';
|
|
43
|
+
let text = control.getAttribute('data-print-value');
|
|
44
|
+
if (text == null) {
|
|
45
|
+
if (control.tagName === 'SELECT')
|
|
46
|
+
text = control.selectedOptions[0]?.textContent || '';
|
|
47
|
+
else if (control instanceof HTMLInputElement && control.type === 'datetime-local' && control.value)
|
|
48
|
+
text = new Date(control.value).toLocaleString('tr-TR');
|
|
49
|
+
else if (control instanceof HTMLInputElement && control.type === 'number')
|
|
50
|
+
text = control.value.replace('.', ',');
|
|
51
|
+
else
|
|
52
|
+
text = control.value;
|
|
53
|
+
}
|
|
54
|
+
value.textContent = text || '—';
|
|
55
|
+
copy.replaceWith(value);
|
|
56
|
+
});
|
|
57
|
+
const frame = owner.createElement('iframe');
|
|
58
|
+
frame.title = 'Kalite formu yazdırma';
|
|
59
|
+
frame.setAttribute('aria-hidden', 'true');
|
|
60
|
+
frame.style.cssText = 'position:fixed;left:-10000px;top:0;width:718px;height:1047px;border:0;';
|
|
61
|
+
owner.body.appendChild(frame);
|
|
62
|
+
try {
|
|
63
|
+
const doc = frame.contentDocument;
|
|
64
|
+
const win = frame.contentWindow;
|
|
65
|
+
doc.title = title;
|
|
66
|
+
const base = doc.createElement('base');
|
|
67
|
+
base.href = owner.baseURI;
|
|
68
|
+
doc.head.appendChild(base);
|
|
69
|
+
const stylesReady = [];
|
|
70
|
+
owner.querySelectorAll('style, link[rel="stylesheet"]').forEach(style => {
|
|
71
|
+
const copy = style.cloneNode(true);
|
|
72
|
+
if (style.tagName === 'LINK') {
|
|
73
|
+
copy.href = style.href;
|
|
74
|
+
stylesReady.push(new Promise(resolve => { copy.onload = () => resolve(); copy.onerror = () => resolve(); }));
|
|
75
|
+
}
|
|
76
|
+
doc.head.appendChild(copy);
|
|
77
|
+
});
|
|
78
|
+
const style = doc.createElement('style');
|
|
79
|
+
style.textContent = PRINT_STYLES;
|
|
80
|
+
doc.head.appendChild(style);
|
|
81
|
+
doc.body.appendChild(doc.importNode(content, true));
|
|
82
|
+
await Promise.all(stylesReady);
|
|
83
|
+
await doc.fonts.ready;
|
|
84
|
+
await new Promise(resolve => win.requestAnimationFrame(() => win.requestAnimationFrame(() => resolve())));
|
|
85
|
+
win.addEventListener('afterprint', () => frame.remove(), { once: true });
|
|
86
|
+
win.focus();
|
|
87
|
+
win.print();
|
|
88
|
+
// Fallback for browsers that omit afterprint, without removing the frame during preview.
|
|
89
|
+
owner.defaultView?.setTimeout(() => frame.remove(), 300000);
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
frame.remove();
|
|
93
|
+
throw error;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQtZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2thbGl0ZS9zcmMvbGliL3NlcnZpY2VzL3ByaW50LWZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxZQUFZLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTJCcEIsQ0FBQztBQUVGLDhGQUE4RjtBQUM5RixNQUFNLENBQUMsS0FBSyxVQUFVLFNBQVMsQ0FBQyxNQUFtQixFQUFFLEtBQWE7SUFDaEUsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQztJQUNuQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBZ0IsQ0FBQztJQUN0RCxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN2QyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsa0RBQWtELENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN0RyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQTZELHlCQUF5QixDQUFDLENBQUM7SUFDakksTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUE2RCx5QkFBeUIsQ0FBQyxDQUFDO0lBQy9ILHVGQUF1RjtJQUN2RixNQUFNLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztJQUMzRixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQzdCLE1BQU0sT0FBTyxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFD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LENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUM7UUFBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4RyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvQixNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxPQUFPLENBQU8sT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hILEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDekUsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3pCLHlGQUF5RjtRQUN6RixLQUFLLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDN0Q7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUFDLE1BQU0sS0FBSyxDQUFDO0tBQUU7QUFDbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFBSSU5UX1NUWUxFUyA9IGBcbiAgQHBhZ2UgeyBzaXplOiBBNCBwb3J0cmFpdDsgbWFyZ2luOiAxMG1tOyB9XG4gIGh0bWwsIGJvZHkgeyBtYXJnaW46IDA7IGJhY2tncm91bmQ6ICNmZmYgIWltcG9ydGFudDsgY29sb3I6ICMyMTI1Mjk7IH1cbiAgYm9keSB7IGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMHB0OyB9XG4gICogeyAtd2Via2l0LXByaW50LWNvbG9yLWFkanVzdDogZXhhY3Q7IHByaW50LWNvbG9yLWFkanVzdDogZXhhY3Q7IH1cbiAgLnByaW50LXN1cmZhY2UgeyB3aWR0aDogMTAwJTsgcGFkZGluZzogMDsgfVxuICAucHJpbnQtc3VyZmFjZSAuY2FyZCB7IGJveC1zaGFkb3c6IG5vbmU7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7IG1hcmdpbi1ib3R0b206IDRtbTsgfVxuICAucHJpbnQtc3VyZmFjZSAuY2FyZC1ib2R5IHsgcGFkZGluZzogNG1tOyB9XG4gIC5wcmludC1zdXJmYWNlIC52ZWhpY2xlLWluZm8geyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7IGdhcDogM21tOyB9XG4gIC5wcmludC1zdXJmYWNlIC52ZWhpY2xlLWluZm8gcCB7IG1pbi1oZWlnaHQ6IDA7IG1hcmdpbi1ib3R0b206IDJtbTsgfVxuICAucHJpbnQtc3VyZmFjZSAucm93IHsgZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5wcmludC1zdXJmYWNlIC5jb2wtbWQtMyB7IGZsZXg6IDAgMCAyNSU7IG1heC13aWR0aDogMjUlOyB9XG4gIC5wcmludC1zdXJmYWNlIC5jb2wtbWQtNCB7IGZsZXg6IDAgMCAzMy4zMzMlOyBtYXgtd2lkdGg6IDMzLjMzMyU7IH1cbiAgLnByaW50LXN1cmZhY2UgLmNvbC1tZC0xMiB7IGZsZXg6IDAgMCAxMDAlOyBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLnByaW50LXN1cmZhY2UgLnRhYmxlLXJlc3BvbnNpdmUgeyBvdmVyZmxvdzogdmlzaWJsZTsgfVxuICAucHJpbnQtc3VyZmFjZSAubWVhc3VyZW1lbnQtdGFibGUgeyBtaW4td2lkdGg6IDA7IHdpZHRoOiAxMDAlOyB0YWJsZS1sYXlvdXQ6IGZpeGVkOyB9XG4gIC5wcmludC1zdXJmYWNlIC5tZWFzdXJlbWVudC10YWJsZSB0aCwgLnByaW50LXN1cmZhY2UgLm1lYXN1cmVtZW50LXRhYmxlIHRkIHsgcGFkZGluZzogMm1tOyBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTsgfVxuICAucHJpbnQtc3VyZmFjZSAubWVhc3VyZW1lbnQtdGFibGUgdGg6bnRoLWNoaWxkKDEpIHsgd2lkdGg6IDI5JTsgfVxuICAucHJpbnQtc3VyZmFjZSAubWVhc3VyZW1lbnQtdGFibGUgdGg6bnRoLWNoaWxkKDIpIHsgd2lkdGg6IDclOyB9XG4gIC5wcmludC1zdXJmYWNlIC5tZWFzdXJlbWVudC10YWJsZSB0aDpudGgtY2hpbGQoMykgeyB3aWR0aDogMjUlOyB9XG4gIC5wcmludC1zdXJmYWNlIC5tZWFzdXJlbWVudC10YWJsZSB0aDpudGgtY2hpbGQoNCkgeyB3aWR0aDogMjglOyB9XG4gIC5wcmludC1zdXJmYWNlIC5tZWFzdXJlbWVudC10YWJsZSB0aDpudGgtY2hpbGQoNSkgeyB3aWR0aDogMTElOyB9XG4gIC5wcmludC1zdXJmYWNlIHRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG4gIC5wcmludC1zdXJmYWNlIHRyLCAucHJpbnQtc3VyZmFjZSAudmVoaWNsZS1pbmZvID4gZGl2LCAucHJpbnQtc3VyZmFjZSAucXVhbGl0eS1zdGF0dXMgeyBicmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIC5wcmludC1zdXJmYWNlIGg1LCAucHJpbnQtc3VyZmFjZSBoNiB7IGJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuICAucHJpbnQtdmFsdWUgeyBkaXNwbGF5OiBibG9jazsgbWluLWhlaWdodDogMS40ZW07IHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7IH1cbiAgLnByaW50LXN1cmZhY2UgLnByaW50LW9ubHkgeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG5gO1xuXG4vKiogUHJpbnQgb25seSB0aGUgZm9ybSwgd2l0aCBjdXJyZW50IGNvbnRyb2wgdmFsdWVzIGFuZCB0aGUgYXBwbGljYXRpb24ncyBleGlzdGluZyBjb2xvcnMuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJpbnRGb3JtKHNvdXJjZTogSFRNTEVsZW1lbnQsIHRpdGxlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qgb3duZXIgPSBzb3VyY2Uub3duZXJEb2N1bWVudDtcbiAgY29uc3QgY29udGVudCA9IHNvdXJjZS5jbG9uZU5vZGUodHJ1ZSkgYXMgSFRNTEVsZW1lbnQ7XG4gIGNvbnRlbnQuY2xhc3NMaXN0LmFkZCgncHJpbnQtc3VyZmFjZScpO1xuICBjb250ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbiwgLnByaW50LWV4Y2x1ZGUsIC5hbGVydCwgLnF1YWxpdHktbG9hZGluZycpLmZvckVhY2goeCA9PiB4LnJlbW92ZSgpKTtcbiAgY29uc3Qgb3JpZ2luYWxzID0gc291cmNlLnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTElucHV0RWxlbWVudCB8IEhUTUxTZWxlY3RFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudD4oJ2lucHV0LCBzZWxlY3QsIHRleHRhcmVhJyk7XG4gIGNvbnN0IGNvcGllcyA9IGNvbnRlbnQucXVlcnlTZWxlY3RvckFsbDxIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFNlbGVjdEVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50PignaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEnKTtcbiAgLy8gSWdub3JlIGV4Y2x1ZGVkIGVkaXRvciBjb250cm9scyBiZWZvcmUgcGFpcmluZywgc28gY29udHJvbCBpbmRleGVzIHJlbWFpbiBpZGVudGljYWwuXG4gIGNvbnN0IHByaW50YWJsZU9yaWdpbmFscyA9IEFycmF5LmZyb20ob3JpZ2luYWxzKS5maWx0ZXIoeCA9PiAheC5jbG9zZXN0KCcucHJpbnQtZXhjbHVkZScpKTtcbiAgY29waWVzLmZvckVhY2goKGNvcHksIGluZGV4KSA9PiB7XG4gICAgY29uc3QgY29udHJvbCA9IHByaW50YWJsZU9yaWdpbmFsc1tpbmRleF07XG4gICAgY29uc3QgdmFsdWUgPSBvd25lci5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgdmFsdWUuY2xhc3NOYW1lID0gJ3ByaW50LXZhbHVlJztcbiAgICBsZXQgdGV4dCA9IGNvbnRyb2wuZ2V0QXR0cmlidXRlKCdkYXRhLXByaW50LXZhbHVlJyk7XG4gICAgaWYgKHRleHQgPT0gbnVsbCkge1xuICAgICAgaWYgKGNvbnRyb2wudGFnTmFtZSA9PT0gJ1NFTEVDVCcpIHRleHQgPSAoY29udHJvbCBhcyBIVE1MU2VsZWN0RWxlbWVudCkuc2VsZWN0ZWRPcHRpb25zWzBdPy50ZXh0Q29udGVudCB8fCAnJztcbiAgICAgIGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50ICYmIGNvbnRyb2wudHlwZSA9PT0gJ2RhdGV0aW1lLWxvY2FsJyAmJiBjb250cm9sLnZhbHVlKVxuICAgICAgICB0ZXh0ID0gbmV3IERhdGUoY29udHJvbC52YWx1ZSkudG9Mb2NhbGVTdHJpbmcoJ3RyLVRSJyk7XG4gICAgICBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCAmJiBjb250cm9sLnR5cGUgPT09ICdudW1iZXInKSB0ZXh0ID0gY29udHJvbC52YWx1ZS5yZXBsYWNlKCcuJywgJywnKTtcbiAgICAgIGVsc2UgdGV4dCA9IGNvbnRyb2wudmFsdWU7XG4gICAgfVxuICAgIHZhbHVlLnRleHRDb250ZW50ID0gdGV4dCB8fCAn4oCUJztcbiAgICBjb3B5LnJlcGxhY2VXaXRoKHZhbHVlKTtcbiAgfSk7XG5cbiAgY29uc3QgZnJhbWUgPSBvd25lci5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtcbiAgZnJhbWUudGl0bGUgPSAnS2FsaXRlIGZvcm11IHlhemTEsXJtYSc7XG4gIGZyYW1lLnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAndHJ1ZScpO1xuICBmcmFtZS5zdHlsZS5jc3NUZXh0ID0gJ3Bvc2l0aW9uOmZpeGVkO2xlZnQ6LTEwMDAwcHg7dG9wOjA7d2lkdGg6NzE4cHg7aGVpZ2h0OjEwNDdweDtib3JkZXI6MDsnO1xuICBvd25lci5ib2R5LmFwcGVuZENoaWxkKGZyYW1lKTtcbiAgdHJ5IHtcbiAgICBjb25zdCBkb2MgPSBmcmFtZS5jb250ZW50RG9jdW1lbnQhO1xuICAgIGNvbnN0IHdpbiA9IGZyYW1lLmNvbnRlbnRXaW5kb3chO1xuICAgIGRvYy50aXRsZSA9IHRpdGxlO1xuICAgIGNvbnN0IGJhc2UgPSBkb2MuY3JlYXRlRWxlbWVudCgnYmFzZScpOyBiYXNlLmhyZWYgPSBvd25lci5iYXNlVVJJOyBkb2MuaGVhZC5hcHBlbmRDaGlsZChiYXNlKTtcbiAgICBjb25zdCBzdHlsZXNSZWFkeTogUHJvbWlzZTx2b2lkPltdID0gW107XG4gICAgb3duZXIucXVlcnlTZWxlY3RvckFsbDxIVE1MU3R5bGVFbGVtZW50IHwgSFRNTExpbmtFbGVtZW50Pignc3R5bGUsIGxpbmtbcmVsPVwic3R5bGVzaGVldFwiXScpLmZvckVhY2goc3R5bGUgPT4ge1xuICAgICAgY29uc3QgY29weSA9IHN0eWxlLmNsb25lTm9kZSh0cnVlKSBhcyBIVE1MU3R5bGVFbGVtZW50IHwgSFRNTExpbmtFbGVtZW50O1xuICAgICAgaWYgKHN0eWxlLnRhZ05hbWUgPT09ICdMSU5LJykge1xuICAgICAgICAoY29weSBhcyBIVE1MTGlua0VsZW1lbnQpLmhyZWYgPSAoc3R5bGUgYXMgSFRNTExpbmtFbGVtZW50KS5ocmVmO1xuICAgICAgICBzdHlsZXNSZWFkeS5wdXNoKG5ldyBQcm9taXNlKHJlc29sdmUgPT4geyBjb3B5Lm9ubG9hZCA9ICgpID0+IHJlc29sdmUoKTsgY29weS5vbmVycm9yID0gKCkgPT4gcmVzb2x2ZSgpOyB9KSk7XG4gICAgICB9XG4gICAgICBkb2MuaGVhZC5hcHBlbmRDaGlsZChjb3B5KTtcbiAgICB9KTtcbiAgICBjb25zdCBzdHlsZSA9IGRvYy5jcmVhdGVFbGVtZW50KCdzdHlsZScpOyBzdHlsZS50ZXh0Q29udGVudCA9IFBSSU5UX1NUWUxFUzsgZG9jLmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xuICAgIGRvYy5ib2R5LmFwcGVuZENoaWxkKGRvYy5pbXBvcnROb2RlKGNvbnRlbnQsIHRydWUpKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChzdHlsZXNSZWFkeSk7XG4gICAgYXdhaXQgZG9jLmZvbnRzLnJlYWR5O1xuICAgIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KHJlc29sdmUgPT4gd2luLnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB3aW4ucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHJlc29sdmUoKSkpKTtcbiAgICB3aW4uYWRkRXZlbnRMaXN0ZW5lcignYWZ0ZXJwcmludCcsICgpID0+IGZyYW1lLnJlbW92ZSgpLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgd2luLmZvY3VzKCk7IHdpbi5wcmludCgpO1xuICAgIC8vIEZhbGxiYWNrIGZvciBicm93c2VycyB0aGF0IG9taXQgYWZ0ZXJwcmludCwgd2l0aG91dCByZW1vdmluZyB0aGUgZnJhbWUgZHVyaW5nIHByZXZpZXcuXG4gICAgb3duZXIuZGVmYXVsdFZpZXc/LnNldFRpbWVvdXQoKCkgPT4gZnJhbWUucmVtb3ZlKCksIDMwMDAwMCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IGZyYW1lLnJlbW92ZSgpOyB0aHJvdyBlcnJvcjsgfVxufVxuIl19
|