slick-components 17.0.3 → 17.0.5

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.
@@ -1,7 +1,9 @@
1
1
  import { Component, Input, Output, EventEmitter, ViewChild, HostListener } from "@angular/core";
2
2
  import { SlickUtilsService } from "../utils/slick-utils.service";
3
3
  import { SlickFileModel } from "../slick-file-model/slick-file.model";
4
+ import { DOC_ORIENTATION, NgxImageCompressService } from 'ngx-image-compress';
4
5
  import * as i0 from "@angular/core";
6
+ import * as i1 from "ngx-image-compress";
5
7
  const imgExtensions = ['bmp', 'gif', 'jpeg', 'jpg', 'png', 'tif', 'tiff'];
6
8
  export class SlickFileDropComponent {
7
9
  onClick(e) {
@@ -41,7 +43,8 @@ export class SlickFileDropComponent {
41
43
  onDragLeave(e) {
42
44
  this.containerRef.nativeElement.classList.remove("slick-file-drop_drag-enter");
43
45
  }
44
- constructor() {
46
+ constructor(imageCompress) {
47
+ this.imageCompress = imageCompress;
45
48
  this.displayText = "Drop File or click to Upload";
46
49
  this.filesChangedEmitter = new EventEmitter();
47
50
  this.fnOnFileInputChange = (e) => this.onFileInputChange(e);
@@ -62,14 +65,11 @@ export class SlickFileDropComponent {
62
65
  let fileNameParts = slickFileModel.name.split('.');
63
66
  let ext = fileNameParts[fileNameParts.length - 1].toLowerCase();
64
67
  if (imgExtensions.indexOf(ext) >= 0) {
65
- let img = new Image;
66
- img.onload = () => {
67
- slickFileModel.thumbnailBase64Image = this.resizeImageToBase64(img, 90, 90);
68
- slickFileModel.base64Image = this.resizeImageToBase64(img, 1600, 1600);
69
- slickFileModels.push(slickFileModel);
70
- resolve(null);
71
- };
72
- img.src = await this.getBase64(file);
68
+ const enc64 = await this.getBase64(file);
69
+ slickFileModel.base64Image = await this.imageCompress.compressFile(enc64, DOC_ORIENTATION.Default, 100, 60);
70
+ slickFileModel.thumbnailBase64Image = await this.imageCompress.compressFile(enc64, DOC_ORIENTATION.Default, 100, 60, 90, 90);
71
+ slickFileModels.push(slickFileModel);
72
+ resolve(null);
73
73
  }
74
74
  else {
75
75
  slickFileModels.push(slickFileModel);
@@ -80,28 +80,6 @@ export class SlickFileDropComponent {
80
80
  await Promise.all(imageLoadPromises);
81
81
  this.filesChangedEmitter.emit(slickFileModels);
82
82
  }
83
- resizeImageToBase64(img, width, height) {
84
- let scale = 1;
85
- if (img.width > img.height) {
86
- if (img.width > width)
87
- scale = width / img.width;
88
- }
89
- else {
90
- if (img.height > height)
91
- scale = height / img.height;
92
- }
93
- let newWidth = img.width * scale;
94
- let newHeight = img.height * scale;
95
- // We create a canvas and get its context.
96
- var canvas = document.createElement('canvas');
97
- var ctx = canvas.getContext('2d');
98
- // We set the dimensions at the wanted size.
99
- canvas.width = newWidth;
100
- canvas.height = newHeight;
101
- // We resize the image with the canvas method drawImage();
102
- ctx.drawImage(img, 0, 0, newWidth, newHeight);
103
- return canvas.toDataURL("image/jpeg");
104
- }
105
83
  getBase64(file) {
106
84
  return new Promise((resolve, reject) => {
107
85
  // Capacitor fails on the FileReader, so we need to get _readReader
@@ -119,13 +97,13 @@ export class SlickFileDropComponent {
119
97
  fileReader.onerror = (error) => reject('Error: ' + error);
120
98
  });
121
99
  }
122
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickFileDropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
123
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: SlickFileDropComponent, selector: "slick-file-drop", inputs: { displayText: "displayText" }, outputs: { filesChangedEmitter: "filesChanged" }, host: { listeners: { "click": "onClick($event)", "drop": "onDrop($event)", "dragenter": "onDragEnter($event)", "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["containerRef"], descendants: true }, { propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<p #containerRef id=\"slick-file-drop_{{uuid}}\" class=\"slick-file-drop\">\r\n <i class=\"far fa-cloud-arrow-up me-1\"></i> {{displayText}}\r\n</p>\r\n<input type=\"file\" #fileInput style=\"display: none\" multiple />\r\n" }); }
100
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickFileDropComponent, deps: [{ token: i1.NgxImageCompressService }], target: i0.ɵɵFactoryTarget.Component }); }
101
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: SlickFileDropComponent, selector: "slick-file-drop", inputs: { displayText: "displayText" }, outputs: { filesChangedEmitter: "filesChanged" }, host: { listeners: { "click": "onClick($event)", "drop": "onDrop($event)", "dragenter": "onDragEnter($event)", "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)" } }, providers: [NgxImageCompressService], viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["containerRef"], descendants: true }, { propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<p #containerRef id=\"slick-file-drop_{{uuid}}\" class=\"slick-file-drop\">\r\n <i class=\"far fa-cloud-arrow-up me-1\"></i> {{displayText}}\r\n</p>\r\n<input type=\"file\" #fileInput style=\"display: none\" multiple />\r\n" }); }
124
102
  }
125
103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickFileDropComponent, decorators: [{
126
104
  type: Component,
127
- args: [{ selector: 'slick-file-drop', template: "<p #containerRef id=\"slick-file-drop_{{uuid}}\" class=\"slick-file-drop\">\r\n <i class=\"far fa-cloud-arrow-up me-1\"></i> {{displayText}}\r\n</p>\r\n<input type=\"file\" #fileInput style=\"display: none\" multiple />\r\n" }]
128
- }], ctorParameters: () => [], propDecorators: { displayText: [{
105
+ args: [{ selector: 'slick-file-drop', providers: [NgxImageCompressService], template: "<p #containerRef id=\"slick-file-drop_{{uuid}}\" class=\"slick-file-drop\">\r\n <i class=\"far fa-cloud-arrow-up me-1\"></i> {{displayText}}\r\n</p>\r\n<input type=\"file\" #fileInput style=\"display: none\" multiple />\r\n" }]
106
+ }], ctorParameters: () => [{ type: i1.NgxImageCompressService }], propDecorators: { displayText: [{
129
107
  type: Input,
130
108
  args: ["displayText"]
131
109
  }], filesChangedEmitter: [{
@@ -153,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
153
131
  type: HostListener,
154
132
  args: ['dragleave', ['$event']]
155
133
  }] } });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stZmlsZS1kcm9wLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLWZpbGUtZHJvcC9zbGljay1maWxlLWRyb3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stZmlsZS1kcm9wL3NsaWNrLWZpbGUtZHJvcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFjLFNBQVMsRUFBRSxZQUFZLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdkgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFtQixjQUFjLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFFdkYsTUFBTSxhQUFhLEdBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQTtBQU1uRixNQUFNLE9BQU8sc0JBQXNCO0lBVWxDLE9BQU8sQ0FBQyxDQUFDO1FBQ1IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFjLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1RixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFFRCxXQUFXO1FBQ1MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFjLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNoSCxDQUFDO0lBRU8saUJBQWlCLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUM7WUFDSixJQUFJLENBQUMsa0JBQWtCLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDekMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7WUFDckMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRVYsSUFBSSxDQUFDLFlBQVksQ0FBb0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFMUUsd0RBQXdEO1lBQ3hELFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQzdELENBQUM7UUFDRCxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ1osS0FBSyxDQUFDLHVCQUF1QixHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDRixDQUFDO0lBR0QsTUFBTSxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXBCLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUUvRSxJQUFJLENBQUMsWUFBWSxDQUFnQixDQUFDLENBQUMsWUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFHRCxXQUFXLENBQUMsQ0FBQztRQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBR0QsVUFBVSxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUdELFdBQVcsQ0FBQyxDQUFDO1FBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFJRDtRQS9Ec0IsZ0JBQVcsR0FBVyw4QkFBOEIsQ0FBQztRQUNuRCx3QkFBbUIsR0FBb0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUkxRix3QkFBbUIsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBMkQ5RCxJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFTyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQWU7UUFDekMsSUFBSSxlQUFlLEdBQXNCLEVBQUUsQ0FBQztRQUM1QyxJQUFJLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUUzQixJQUFJLFdBQVcsR0FBc0IsRUFBRSxDQUFDO1FBQ3hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDdkMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtnQkFDcEQsSUFBSSxJQUFJLEdBQVMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDL0IsSUFBSSxjQUFjLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDMUMsY0FBYyxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbEQsY0FBYyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7Z0JBQzNCLGNBQWMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDaEMsY0FBYyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUVqQyxJQUFJLGFBQWEsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbkQsSUFBSSxHQUFHLEdBQUcsYUFBYSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBRWhFLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDckMsSUFBSSxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUM7b0JBQ3BCLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO3dCQUNqQixjQUFjLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7d0JBQzVFLGNBQWMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7d0JBQ3ZFLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7d0JBQ3JDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDZixDQUFDLENBQUE7b0JBQ0QsR0FBRyxDQUFDLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3RDLENBQUM7cUJBQ0ksQ0FBQztvQkFDTCxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO29CQUNyQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2YsQ0FBQztZQUNGLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsR0FBcUIsRUFBRSxLQUFhLEVBQUUsTUFBYztRQUMvRSxJQUFJLEtBQUssR0FBVyxDQUFDLENBQUM7UUFDdEIsSUFBSSxHQUFHLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixJQUFJLEdBQUcsQ0FBQyxLQUFLLEdBQUcsS0FBSztnQkFDcEIsS0FBSyxHQUFHLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQzVCLENBQUM7YUFDSSxDQUFDO1lBQ0wsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU07Z0JBQ3RCLEtBQUssR0FBRyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUM5QixDQUFDO1FBRUQsSUFBSSxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDakMsSUFBSSxTQUFTLEdBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFFbkMsMENBQTBDO1FBQzFDLElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUMsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsQyw0Q0FBNEM7UUFDNUMsTUFBTSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7UUFDeEIsTUFBTSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFFMUIsMERBQTBEO1FBQzFELEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTlDLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU8sU0FBUyxDQUFDLElBQVU7UUFDM0IsT0FBTyxJQUFJLE9BQU8sQ0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUM5QyxtRUFBbUU7WUFDbkUsb0ZBQW9GO1lBQ3BGLElBQUksVUFBVSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7WUFFbEMsMEVBQTBFO1lBQzFFLE1BQU0sY0FBYyxHQUFJLFVBQWtCLENBQUMsV0FBVyxDQUFDO1lBRXZELHlEQUF5RDtZQUN6RCxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUNwQiw0REFBNEQ7Z0JBQzVELFVBQVUsR0FBRyxjQUFjLENBQUM7WUFDN0IsQ0FBQztZQUVELFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0IsVUFBVSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQVMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdELFVBQVUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO2lJQXpKVyxzQkFBc0I7cUhBQXRCLHNCQUFzQixpaEJDVm5DLG9PQUlBOzsyRkRNYSxzQkFBc0I7a0JBSmxDLFNBQVM7K0JBQ0MsaUJBQWlCO3dEQUlMLFdBQVc7c0JBQWhDLEtBQUs7dUJBQUMsYUFBYTtnQkFDSSxtQkFBbUI7c0JBQTFDLE1BQU07dUJBQUMsY0FBYztnQkFDSyxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ0QsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQU10QixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTZCakMsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFXaEMsV0FBVztzQkFEVixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNckMsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNcEMsV0FBVztzQkFEVixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgU2xpY2tVdGlsc1NlcnZpY2UgfSBmcm9tIFwiLi4vdXRpbHMvc2xpY2stdXRpbHMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBJU2xpY2tGaWxlTW9kZWwsIFNsaWNrRmlsZU1vZGVsIH0gZnJvbSBcIi4uL3NsaWNrLWZpbGUtbW9kZWwvc2xpY2stZmlsZS5tb2RlbFwiO1xyXG5cclxuY29uc3QgaW1nRXh0ZW5zaW9uczogc3RyaW5nW10gPSBbJ2JtcCcsICdnaWYnLCAnanBlZycsICdqcGcnLCAncG5nJywgJ3RpZicsICd0aWZmJ11cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnc2xpY2stZmlsZS1kcm9wJyxcclxuXHR0ZW1wbGF0ZVVybDogJ3NsaWNrLWZpbGUtZHJvcC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNsaWNrRmlsZURyb3BDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cdEBJbnB1dChcImRpc3BsYXlUZXh0XCIpIGRpc3BsYXlUZXh0OiBzdHJpbmcgPSBcIkRyb3AgRmlsZSBvciBjbGljayB0byBVcGxvYWRcIjtcclxuXHRAT3V0cHV0KFwiZmlsZXNDaGFuZ2VkXCIpIGZpbGVzQ2hhbmdlZEVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxJU2xpY2tGaWxlTW9kZWxbXT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0QFZpZXdDaGlsZChcImNvbnRhaW5lclJlZlwiKSBjb250YWluZXJSZWY6IEVsZW1lbnRSZWY7XHJcblx0QFZpZXdDaGlsZChcImZpbGVJbnB1dFwiKSBmaWxlSW5wdXQ6IEVsZW1lbnRSZWY7XHJcblxyXG5cdHByaXZhdGUgZm5PbkZpbGVJbnB1dENoYW5nZSA9IChlKSA9PiB0aGlzLm9uRmlsZUlucHV0Q2hhbmdlKGUpO1xyXG5cdHByaXZhdGUgcHJvY2Vzc0ZpbGVUaW1lb3V0OiBOb2RlSlMuVGltZW91dDtcclxuXHJcblx0QEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxyXG5cdG9uQ2xpY2soZSkge1xyXG5cdFx0dGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC5jbGljaygpO1xyXG5cdFx0KDxIVE1MSW5wdXRFbGVtZW50PnRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQpLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIiwgdGhpcy5mbk9uRmlsZUlucHV0Q2hhbmdlLCB0cnVlKTtcclxuXHRcdCg8SFRNTElucHV0RWxlbWVudD50aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50KS5hZGRFdmVudExpc3RlbmVyKFwiY2hhbmdlXCIsIHRoaXMuZm5PbkZpbGVJbnB1dENoYW5nZSwgdHJ1ZSk7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdCg8SFRNTElucHV0RWxlbWVudD50aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50KS5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2hhbmdlXCIsIHRoaXMuZm5PbkZpbGVJbnB1dENoYW5nZSwgdHJ1ZSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIG9uRmlsZUlucHV0Q2hhbmdlKGUpIHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdHRoaXMucHJvY2Vzc0ZpbGVUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0YWxlcnQoXCJQcm9jZXNzaW5nIGZpbGVzIHRpbWVkIG91dFwiKTtcclxuXHRcdFx0fSwgMTAwMDApO1xyXG5cclxuXHRcdFx0dGhpcy5wcm9jZXNzRmlsZXMoKDxIVE1MSW5wdXRFbGVtZW50PnRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQpLmZpbGVzKTtcclxuXHJcblx0XHRcdC8vIEEgdmFsaWRhdGlvbiB0byBtYWtlIHN1cmUgdGhlIGZpbGVzIGFsbCBnb3QgcHJvY2Vzc2VkXHJcblx0XHRcdGNsZWFyVGltZW91dCh0aGlzLnByb2Nlc3NGaWxlVGltZW91dCk7XHJcblx0XHRcdCg8SFRNTElucHV0RWxlbWVudD50aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50KS52YWx1ZSA9ICcnO1xyXG5cdFx0fVxyXG5cdFx0Y2F0Y2ggKGVycikge1xyXG5cdFx0XHRhbGVydChcIlNsaWNrRmlsZURyb3AgRXJyb3I6IFwiICsgZXJyKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxyXG5cdG9uRHJvcChlKSB7XHJcblx0XHRlLnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuXHRcdHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcInNsaWNrLWZpbGUtZHJvcF9kcmFnLWVudGVyXCIpO1xyXG5cclxuXHRcdHRoaXMucHJvY2Vzc0ZpbGVzKCg8RGF0YVRyYW5zZmVyPmUuZGF0YVRyYW5zZmVyKS5maWxlcyk7XHJcblx0fVxyXG5cclxuXHRASG9zdExpc3RlbmVyKCdkcmFnZW50ZXInLCBbJyRldmVudCddKVxyXG5cdG9uRHJhZ0VudGVyKGUpIHtcclxuXHRcdHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcInNsaWNrLWZpbGUtZHJvcF9kcmFnLWVudGVyXCIpO1xyXG5cdH1cclxuXHJcblx0QEhvc3RMaXN0ZW5lcignZHJhZ292ZXInLCBbJyRldmVudCddKVxyXG5cdG9uRHJhZ092ZXIoZSkge1xyXG5cdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdH1cclxuXHJcblx0QEhvc3RMaXN0ZW5lcignZHJhZ2xlYXZlJywgWyckZXZlbnQnXSlcclxuXHRvbkRyYWdMZWF2ZShlKSB7XHJcblx0XHR0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJzbGljay1maWxlLWRyb3BfZHJhZy1lbnRlclwiKTtcclxuXHR9XHJcblxyXG5cdHV1aWQ6IHN0cmluZztcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblx0XHR0aGlzLnV1aWQgPSBTbGlja1V0aWxzU2VydmljZS5uZXdHdWlkKCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGFzeW5jIHByb2Nlc3NGaWxlcyhmaWxlczogRmlsZUxpc3QpIHtcclxuXHRcdGxldCBzbGlja0ZpbGVNb2RlbHM6IElTbGlja0ZpbGVNb2RlbFtdID0gW107XHJcblx0XHRsZXQgaW1hZ2VMb2FkUHJvbWlzZXMgPSBbXTtcclxuXHJcblx0XHRsZXQgaW1nUHJvbWlzZXM6IFByb21pc2U8c3RyaW5nPltdID0gW107XHJcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdGltYWdlTG9hZFByb21pc2VzLnB1c2gobmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUpID0+IHtcclxuXHRcdFx0XHRsZXQgZmlsZTogRmlsZSA9IGZpbGVzLml0ZW0oaSk7XHJcblx0XHRcdFx0bGV0IHNsaWNrRmlsZU1vZGVsID0gbmV3IFNsaWNrRmlsZU1vZGVsKCk7XHJcblx0XHRcdFx0c2xpY2tGaWxlTW9kZWwudXVpZCA9IFNsaWNrVXRpbHNTZXJ2aWNlLm5ld0d1aWQoKTtcclxuXHRcdFx0XHRzbGlja0ZpbGVNb2RlbC5maWxlID0gZmlsZTtcclxuXHRcdFx0XHRzbGlja0ZpbGVNb2RlbC5uYW1lID0gZmlsZS5uYW1lO1xyXG5cdFx0XHRcdHNsaWNrRmlsZU1vZGVsLnRpdGxlID0gZmlsZS5uYW1lO1xyXG5cclxuXHRcdFx0XHRsZXQgZmlsZU5hbWVQYXJ0cyA9IHNsaWNrRmlsZU1vZGVsLm5hbWUuc3BsaXQoJy4nKTtcclxuXHRcdFx0XHRsZXQgZXh0ID0gZmlsZU5hbWVQYXJ0c1tmaWxlTmFtZVBhcnRzLmxlbmd0aCAtIDFdLnRvTG93ZXJDYXNlKCk7XHJcblxyXG5cdFx0XHRcdGlmIChpbWdFeHRlbnNpb25zLmluZGV4T2YoZXh0KSA+PSAwKSB7XHJcblx0XHRcdFx0XHRsZXQgaW1nID0gbmV3IEltYWdlO1xyXG5cdFx0XHRcdFx0aW1nLm9ubG9hZCA9ICgpID0+IHtcdFxyXG5cdFx0XHRcdFx0XHRzbGlja0ZpbGVNb2RlbC50aHVtYm5haWxCYXNlNjRJbWFnZSA9IHRoaXMucmVzaXplSW1hZ2VUb0Jhc2U2NChpbWcsIDkwLCA5MCk7XHJcblx0XHRcdFx0XHRcdHNsaWNrRmlsZU1vZGVsLmJhc2U2NEltYWdlID0gdGhpcy5yZXNpemVJbWFnZVRvQmFzZTY0KGltZywgMTYwMCwgMTYwMCk7XHJcblx0XHRcdFx0XHRcdHNsaWNrRmlsZU1vZGVscy5wdXNoKHNsaWNrRmlsZU1vZGVsKTtcclxuXHRcdFx0XHRcdFx0cmVzb2x2ZShudWxsKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGltZy5zcmMgPSBhd2FpdCB0aGlzLmdldEJhc2U2NChmaWxlKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0XHRzbGlja0ZpbGVNb2RlbHMucHVzaChzbGlja0ZpbGVNb2RlbCk7XHJcblx0XHRcdFx0XHRyZXNvbHZlKG51bGwpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSkpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGF3YWl0IFByb21pc2UuYWxsKGltYWdlTG9hZFByb21pc2VzKTtcclxuXHRcdHRoaXMuZmlsZXNDaGFuZ2VkRW1pdHRlci5lbWl0KHNsaWNrRmlsZU1vZGVscyk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHJlc2l6ZUltYWdlVG9CYXNlNjQoaW1nOiBIVE1MSW1hZ2VFbGVtZW50LCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcik6IHN0cmluZyB7XHJcblx0XHRsZXQgc2NhbGU6IG51bWJlciA9IDE7XHJcblx0XHRpZiAoaW1nLndpZHRoID4gaW1nLmhlaWdodCkge1xyXG5cdFx0XHRpZiAoaW1nLndpZHRoID4gd2lkdGgpXHJcblx0XHRcdFx0c2NhbGUgPSB3aWR0aCAvIGltZy53aWR0aDtcclxuXHRcdH1cclxuXHRcdGVsc2Uge1xyXG5cdFx0XHRpZiAoaW1nLmhlaWdodCA+IGhlaWdodClcclxuXHRcdFx0XHRzY2FsZSA9IGhlaWdodCAvIGltZy5oZWlnaHQ7XHJcblx0XHR9XHJcblxyXG5cdFx0bGV0IG5ld1dpZHRoID0gaW1nLndpZHRoICogc2NhbGU7XHJcblx0XHRsZXQgbmV3SGVpZ2h0ID0gaW1nLmhlaWdodCAqIHNjYWxlO1xyXG5cclxuXHRcdC8vIFdlIGNyZWF0ZSBhIGNhbnZhcyBhbmQgZ2V0IGl0cyBjb250ZXh0LlxyXG5cdFx0dmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xyXG5cdFx0dmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG5cclxuXHRcdC8vIFdlIHNldCB0aGUgZGltZW5zaW9ucyBhdCB0aGUgd2FudGVkIHNpemUuXHJcblx0XHRjYW52YXMud2lkdGggPSBuZXdXaWR0aDtcclxuXHRcdGNhbnZhcy5oZWlnaHQgPSBuZXdIZWlnaHQ7XHJcblxyXG5cdFx0Ly8gV2UgcmVzaXplIHRoZSBpbWFnZSB3aXRoIHRoZSBjYW52YXMgbWV0aG9kIGRyYXdJbWFnZSgpO1xyXG5cdFx0Y3R4LmRyYXdJbWFnZShpbWcsIDAsIDAsIG5ld1dpZHRoLCBuZXdIZWlnaHQpO1xyXG5cclxuXHRcdHJldHVybiBjYW52YXMudG9EYXRhVVJMKFwiaW1hZ2UvanBlZ1wiKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZ2V0QmFzZTY0KGZpbGU6IEZpbGUpOiBQcm9taXNlPHN0cmluZz4ge1xyXG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlPHN0cmluZz4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHQvLyBDYXBhY2l0b3IgZmFpbHMgb24gdGhlIEZpbGVSZWFkZXIsIHNvIHdlIG5lZWQgdG8gZ2V0IF9yZWFkUmVhZGVyXHJcblx0XHRcdC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2lvbmljLXRlYW0vaW9uaWMtbmF0aXZlL2lzc3Vlcy81MDUjaXNzdWVjb21tZW50LTUwMzMxNjMzM1xyXG5cdFx0XHRsZXQgZmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcblxyXG5cdFx0XHQvLyBHZXQgdGhlIG9yaWdpbmFsIHJlYWwgRmlsZVJlYWRlci4gVGhlIHBvbHlmaWxsIHNhdmVzIGEgcmVmZXJlbmNlIHRvIGl0LlxyXG5cdFx0XHRjb25zdCByZWFsRmlsZVJlYWRlciA9IChmaWxlUmVhZGVyIGFzIGFueSkuX3JlYWxSZWFkZXI7XHJcblxyXG5cdFx0XHQvLyBNYWtlIHN1cmUgd2Ugd2VyZSBhYmxlIHRvIGdldCB0aGUgb3JpZ2luYWwgRmlsZVJlYWRlciBcclxuXHRcdFx0aWYgKHJlYWxGaWxlUmVhZGVyKSB7XHJcblx0XHRcdFx0Ly8gU3dhcCBvdXQgdGhlIHBvbHlmaWxsIGluc3RhbmNlIGZvciB0aGUgb3JpZ2luYWwgaW5zdGFuY2UuXHJcblx0XHRcdFx0ZmlsZVJlYWRlciA9IHJlYWxGaWxlUmVhZGVyO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRmaWxlUmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcblx0XHRcdGZpbGVSZWFkZXIub25sb2FkID0gKCkgPT4gcmVzb2x2ZSg8c3RyaW5nPmZpbGVSZWFkZXIucmVzdWx0KTtcclxuXHRcdFx0ZmlsZVJlYWRlci5vbmVycm9yID0gKGVycm9yKSA9PiByZWplY3QoJ0Vycm9yOiAnICsgZXJyb3IpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG59XHJcbiIsIjxwICNjb250YWluZXJSZWYgaWQ9XCJzbGljay1maWxlLWRyb3Bfe3t1dWlkfX1cIiBjbGFzcz1cInNsaWNrLWZpbGUtZHJvcFwiPlxyXG4gICAgPGkgY2xhc3M9XCJmYXIgZmEtY2xvdWQtYXJyb3ctdXAgbWUtMVwiPjwvaT4ge3tkaXNwbGF5VGV4dH19XHJcbjwvcD5cclxuPGlucHV0IHR5cGU9XCJmaWxlXCIgI2ZpbGVJbnB1dCBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiBtdWx0aXBsZSAvPlxyXG4iXX0=
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stZmlsZS1kcm9wLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLWZpbGUtZHJvcC9zbGljay1maWxlLWRyb3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stZmlsZS1kcm9wL3NsaWNrLWZpbGUtZHJvcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFjLFNBQVMsRUFBRSxZQUFZLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdkgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFtQixjQUFjLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RixPQUFPLEVBQUUsZUFBZSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUU5RSxNQUFNLGFBQWEsR0FBYSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBT25GLE1BQU0sT0FBTyxzQkFBc0I7SUFVbEMsT0FBTyxDQUFDLENBQUM7UUFDUixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0csQ0FB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QUUsQ0FBQyxRQUFRLENBQUM7Z0JBV2hDLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTXJDLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTXBDLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgRWxlbWVudFJlZiwgVmlld0NoaWxkLCBIb3N0TGlzdGVuZXIsIE9uRGVzdHJveSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFNsaWNrVXRpbHNTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL3NsaWNrLXV0aWxzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgSVNsaWNrRmlsZU1vZGVsLCBTbGlja0ZpbGVNb2RlbCB9IGZyb20gXCIuLi9zbGljay1maWxlLW1vZGVsL3NsaWNrLWZpbGUubW9kZWxcIjtcclxuaW1wb3J0IHsgRE9DX09SSUVOVEFUSU9OLCBOZ3hJbWFnZUNvbXByZXNzU2VydmljZSB9IGZyb20gJ25neC1pbWFnZS1jb21wcmVzcyc7XHJcblxyXG5jb25zdCBpbWdFeHRlbnNpb25zOiBzdHJpbmdbXSA9IFsnYm1wJywgJ2dpZicsICdqcGVnJywgJ2pwZycsICdwbmcnLCAndGlmJywgJ3RpZmYnXVxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdzbGljay1maWxlLWRyb3AnLFxyXG5cdHRlbXBsYXRlVXJsOiAnc2xpY2stZmlsZS1kcm9wLmNvbXBvbmVudC5odG1sJyxcclxuXHRwcm92aWRlcnM6IFtOZ3hJbWFnZUNvbXByZXNzU2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbGlja0ZpbGVEcm9wQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHRASW5wdXQoXCJkaXNwbGF5VGV4dFwiKSBkaXNwbGF5VGV4dDogc3RyaW5nID0gXCJEcm9wIEZpbGUgb3IgY2xpY2sgdG8gVXBsb2FkXCI7XHJcblx0QE91dHB1dChcImZpbGVzQ2hhbmdlZFwiKSBmaWxlc0NoYW5nZWRFbWl0dGVyOiBFdmVudEVtaXR0ZXI8SVNsaWNrRmlsZU1vZGVsW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdEBWaWV3Q2hpbGQoXCJjb250YWluZXJSZWZcIikgY29udGFpbmVyUmVmOiBFbGVtZW50UmVmO1xyXG5cdEBWaWV3Q2hpbGQoXCJmaWxlSW5wdXRcIikgZmlsZUlucHV0OiBFbGVtZW50UmVmO1xyXG5cclxuXHRwcml2YXRlIGZuT25GaWxlSW5wdXRDaGFuZ2UgPSAoZSkgPT4gdGhpcy5vbkZpbGVJbnB1dENoYW5nZShlKTtcclxuXHRwcml2YXRlIHByb2Nlc3NGaWxlVGltZW91dDogTm9kZUpTLlRpbWVvdXQ7XHJcblxyXG5cdEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcclxuXHRvbkNsaWNrKGUpIHtcclxuXHRcdHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuXHRcdCg8SFRNTElucHV0RWxlbWVudD50aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50KS5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2hhbmdlXCIsIHRoaXMuZm5PbkZpbGVJbnB1dENoYW5nZSwgdHJ1ZSk7XHJcblx0XHQoPEhUTUxJbnB1dEVsZW1lbnQ+dGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudCkuYWRkRXZlbnRMaXN0ZW5lcihcImNoYW5nZVwiLCB0aGlzLmZuT25GaWxlSW5wdXRDaGFuZ2UsIHRydWUpO1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHQoPEhUTUxJbnB1dEVsZW1lbnQ+dGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudCkucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNoYW5nZVwiLCB0aGlzLmZuT25GaWxlSW5wdXRDaGFuZ2UsIHRydWUpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBvbkZpbGVJbnB1dENoYW5nZShlKSB7XHJcblx0XHR0cnkge1xyXG5cdFx0XHR0aGlzLnByb2Nlc3NGaWxlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdGFsZXJ0KFwiUHJvY2Vzc2luZyBmaWxlcyB0aW1lZCBvdXRcIik7XHJcblx0XHRcdH0sIDEwMDAwKTtcclxuXHJcblx0XHRcdHRoaXMucHJvY2Vzc0ZpbGVzKCg8SFRNTElucHV0RWxlbWVudD50aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50KS5maWxlcyk7XHJcblxyXG5cdFx0XHQvLyBBIHZhbGlkYXRpb24gdG8gbWFrZSBzdXJlIHRoZSBmaWxlcyBhbGwgZ290IHByb2Nlc3NlZFxyXG5cdFx0XHRjbGVhclRpbWVvdXQodGhpcy5wcm9jZXNzRmlsZVRpbWVvdXQpO1xyXG5cdFx0XHQoPEhUTUxJbnB1dEVsZW1lbnQ+dGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudCkudmFsdWUgPSAnJztcclxuXHRcdH1cclxuXHRcdGNhdGNoIChlcnIpIHtcclxuXHRcdFx0YWxlcnQoXCJTbGlja0ZpbGVEcm9wIEVycm9yOiBcIiArIGVycik7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRASG9zdExpc3RlbmVyKCdkcm9wJywgWyckZXZlbnQnXSlcclxuXHRvbkRyb3AoZSkge1xyXG5cdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0ZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcblx0XHR0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJzbGljay1maWxlLWRyb3BfZHJhZy1lbnRlclwiKTtcclxuXHJcblx0XHR0aGlzLnByb2Nlc3NGaWxlcygoPERhdGFUcmFuc2Zlcj5lLmRhdGFUcmFuc2ZlcikuZmlsZXMpO1xyXG5cdH1cclxuXHJcblx0QEhvc3RMaXN0ZW5lcignZHJhZ2VudGVyJywgWyckZXZlbnQnXSlcclxuXHRvbkRyYWdFbnRlcihlKSB7XHJcblx0XHR0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJzbGljay1maWxlLWRyb3BfZHJhZy1lbnRlclwiKTtcclxuXHR9XHJcblxyXG5cdEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnXSlcclxuXHRvbkRyYWdPdmVyKGUpIHtcclxuXHRcdGUucHJldmVudERlZmF1bHQoKTtcclxuXHR9XHJcblxyXG5cdEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pXHJcblx0b25EcmFnTGVhdmUoZSkge1xyXG5cdFx0dGhpcy5jb250YWluZXJSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwic2xpY2stZmlsZS1kcm9wX2RyYWctZW50ZXJcIik7XHJcblx0fVxyXG5cclxuXHR1dWlkOiBzdHJpbmc7XHJcblxyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgaW1hZ2VDb21wcmVzczogTmd4SW1hZ2VDb21wcmVzc1NlcnZpY2UpIHtcclxuXHRcdHRoaXMudXVpZCA9IFNsaWNrVXRpbHNTZXJ2aWNlLm5ld0d1aWQoKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgYXN5bmMgcHJvY2Vzc0ZpbGVzKGZpbGVzOiBGaWxlTGlzdCkge1xyXG5cdFx0bGV0IHNsaWNrRmlsZU1vZGVsczogSVNsaWNrRmlsZU1vZGVsW10gPSBbXTtcclxuXHRcdGxldCBpbWFnZUxvYWRQcm9taXNlcyA9IFtdO1xyXG5cclxuXHRcdGxldCBpbWdQcm9taXNlczogUHJvbWlzZTxzdHJpbmc+W10gPSBbXTtcclxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0aW1hZ2VMb2FkUHJvbWlzZXMucHVzaChuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSkgPT4ge1xyXG5cdFx0XHRcdGxldCBmaWxlOiBGaWxlID0gZmlsZXMuaXRlbShpKTtcclxuXHRcdFx0XHRsZXQgc2xpY2tGaWxlTW9kZWwgPSBuZXcgU2xpY2tGaWxlTW9kZWwoKTtcclxuXHRcdFx0XHRzbGlja0ZpbGVNb2RlbC51dWlkID0gU2xpY2tVdGlsc1NlcnZpY2UubmV3R3VpZCgpO1xyXG5cdFx0XHRcdHNsaWNrRmlsZU1vZGVsLmZpbGUgPSBmaWxlO1xyXG5cdFx0XHRcdHNsaWNrRmlsZU1vZGVsLm5hbWUgPSBmaWxlLm5hbWU7XHJcblx0XHRcdFx0c2xpY2tGaWxlTW9kZWwudGl0bGUgPSBmaWxlLm5hbWU7XHJcblxyXG5cdFx0XHRcdGxldCBmaWxlTmFtZVBhcnRzID0gc2xpY2tGaWxlTW9kZWwubmFtZS5zcGxpdCgnLicpO1xyXG5cdFx0XHRcdGxldCBleHQgPSBmaWxlTmFtZVBhcnRzW2ZpbGVOYW1lUGFydHMubGVuZ3RoIC0gMV0udG9Mb3dlckNhc2UoKTtcclxuXHJcblx0XHRcdFx0aWYgKGltZ0V4dGVuc2lvbnMuaW5kZXhPZihleHQpID49IDApIHtcclxuXHRcdFx0XHRcdGNvbnN0IGVuYzY0ID0gYXdhaXQgdGhpcy5nZXRCYXNlNjQoZmlsZSk7XHJcblx0XHRcdFx0XHRzbGlja0ZpbGVNb2RlbC5iYXNlNjRJbWFnZSA9IGF3YWl0IHRoaXMuaW1hZ2VDb21wcmVzcy5jb21wcmVzc0ZpbGUoZW5jNjQsIERPQ19PUklFTlRBVElPTi5EZWZhdWx0LCAxMDAsIDYwKTtcclxuXHRcdFx0XHRcdHNsaWNrRmlsZU1vZGVsLnRodW1ibmFpbEJhc2U2NEltYWdlID0gYXdhaXQgdGhpcy5pbWFnZUNvbXByZXNzLmNvbXByZXNzRmlsZShlbmM2NCwgRE9DX09SSUVOVEFUSU9OLkRlZmF1bHQsIDEwMCwgNjAsIDkwLCA5MCk7XHJcblx0XHRcdFx0XHRzbGlja0ZpbGVNb2RlbHMucHVzaChzbGlja0ZpbGVNb2RlbCk7XHJcblx0XHRcdFx0XHRyZXNvbHZlKG51bGwpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRlbHNlIHtcclxuXHRcdFx0XHRcdHNsaWNrRmlsZU1vZGVscy5wdXNoKHNsaWNrRmlsZU1vZGVsKTtcclxuXHRcdFx0XHRcdHJlc29sdmUobnVsbCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KSk7XHJcblx0XHR9XHJcblxyXG5cdFx0YXdhaXQgUHJvbWlzZS5hbGwoaW1hZ2VMb2FkUHJvbWlzZXMpO1xyXG5cdFx0dGhpcy5maWxlc0NoYW5nZWRFbWl0dGVyLmVtaXQoc2xpY2tGaWxlTW9kZWxzKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZ2V0QmFzZTY0KGZpbGU6IEZpbGUpOiBQcm9taXNlPHN0cmluZz4ge1xyXG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlPHN0cmluZz4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHQvLyBDYXBhY2l0b3IgZmFpbHMgb24gdGhlIEZpbGVSZWFkZXIsIHNvIHdlIG5lZWQgdG8gZ2V0IF9yZWFkUmVhZGVyXHJcblx0XHRcdC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2lvbmljLXRlYW0vaW9uaWMtbmF0aXZlL2lzc3Vlcy81MDUjaXNzdWVjb21tZW50LTUwMzMxNjMzM1xyXG5cdFx0XHRsZXQgZmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcblxyXG5cdFx0XHQvLyBHZXQgdGhlIG9yaWdpbmFsIHJlYWwgRmlsZVJlYWRlci4gVGhlIHBvbHlmaWxsIHNhdmVzIGEgcmVmZXJlbmNlIHRvIGl0LlxyXG5cdFx0XHRjb25zdCByZWFsRmlsZVJlYWRlciA9IChmaWxlUmVhZGVyIGFzIGFueSkuX3JlYWxSZWFkZXI7XHJcblxyXG5cdFx0XHQvLyBNYWtlIHN1cmUgd2Ugd2VyZSBhYmxlIHRvIGdldCB0aGUgb3JpZ2luYWwgRmlsZVJlYWRlciBcclxuXHRcdFx0aWYgKHJlYWxGaWxlUmVhZGVyKSB7XHJcblx0XHRcdFx0Ly8gU3dhcCBvdXQgdGhlIHBvbHlmaWxsIGluc3RhbmNlIGZvciB0aGUgb3JpZ2luYWwgaW5zdGFuY2UuXHJcblx0XHRcdFx0ZmlsZVJlYWRlciA9IHJlYWxGaWxlUmVhZGVyO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRmaWxlUmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcblx0XHRcdGZpbGVSZWFkZXIub25sb2FkID0gKCkgPT4gcmVzb2x2ZSg8c3RyaW5nPmZpbGVSZWFkZXIucmVzdWx0KTtcclxuXHRcdFx0ZmlsZVJlYWRlci5vbmVycm9yID0gKGVycm9yKSA9PiByZWplY3QoJ0Vycm9yOiAnICsgZXJyb3IpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG59XHJcbiIsIjxwICNjb250YWluZXJSZWYgaWQ9XCJzbGljay1maWxlLWRyb3Bfe3t1dWlkfX1cIiBjbGFzcz1cInNsaWNrLWZpbGUtZHJvcFwiPlxyXG4gICAgPGkgY2xhc3M9XCJmYXIgZmEtY2xvdWQtYXJyb3ctdXAgbWUtMVwiPjwvaT4ge3tkaXNwbGF5VGV4dH19XHJcbjwvcD5cclxuPGlucHV0IHR5cGU9XCJmaWxlXCIgI2ZpbGVJbnB1dCBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiBtdWx0aXBsZSAvPlxyXG4iXX0=
@@ -6,7 +6,7 @@ export class SlickInitParams {
6
6
  }
7
7
  }
8
8
  export class SlickInitService {
9
- static { this.version = "17.0.3"; }
9
+ static { this.version = "17.0.5"; }
10
10
  constructor() { }
11
11
  static init(initParams) {
12
12
  console.info(`Slick Components Version ${SlickInitService.version}`);
@@ -46,4 +46,4 @@ export class SlickInitService {
46
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickInitService, decorators: [{
47
47
  type: Injectable
48
48
  }], ctorParameters: () => [] });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2staW5pdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvdXRpbHMvc2xpY2staW5pdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTNDLE1BQU0sT0FBTyxlQUFlO0lBQTVCO1FBR0MsYUFBUSxHQUFXLFNBQVMsQ0FBQztJQUc5QixDQUFDO0NBQUE7QUFHRCxNQUFNLE9BQU8sZ0JBQWdCO2FBQ3JCLFlBQU8sR0FBRyxRQUFRLEFBQVgsQ0FBWTtJQUUxQixnQkFBZ0IsQ0FBQztJQUdqQixNQUFNLENBQUMsSUFBSSxDQUFDLFVBQTJCO1FBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsNEJBQTRCLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDckUsVUFBVSxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7UUFDeEMsTUFBTyxDQUFDLHFCQUFxQixHQUFHLFVBQVUsQ0FBQztRQUVqRCxPQUFhLE1BQU8sQ0FBQyxxQkFBcUIsQ0FBQztJQUM1QyxDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVM7UUFDZixJQUFJLENBQU8sTUFBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDMUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUM1QyxhQUFhLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztZQUMxQixNQUFPLENBQUMscUJBQXFCLEdBQUcsYUFBYSxDQUFDO1FBQ3JELENBQUM7UUFFRCxPQUE4QixNQUFPLENBQUMscUJBQXFCLENBQUM7SUFDN0QsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXO1FBQ2pCLE9BQU8sZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO0lBQzlDLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLGVBQXVCO1FBQ3pDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUM7SUFDekQsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXO1FBQ2pCLE9BQU8sZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO0lBQzlDLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQWdCO1FBQ2xDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXO1FBQ2pCLE9BQU8sZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO0lBQzlDLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQWdCO1FBQ2xDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDbEQsQ0FBQztpSUE5Q1csZ0JBQWdCO3FJQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBTbGlja0luaXRQYXJhbXMge1xyXG5cdGF0dGFjaFRvOiBzdHJpbmc7XHJcblx0cGxhdGZvcm06IHN0cmluZztcclxuXHRlcnJvckxvZzogc3RyaW5nID0gXCJtaW5pbWFsXCI7XHJcblx0dmVyc2lvbjogc3RyaW5nO1xyXG5cclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2xpY2tJbml0U2VydmljZSB7XHRcclxuXHRzdGF0aWMgdmVyc2lvbiA9IFwiMTcuMC4zXCI7XHJcblxyXG5cdGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG5cclxuXHRzdGF0aWMgaW5pdChpbml0UGFyYW1zOiBTbGlja0luaXRQYXJhbXMpOiBTbGlja0luaXRQYXJhbXMge1xyXG5cdFx0Y29uc29sZS5pbmZvKGBTbGljayBDb21wb25lbnRzIFZlcnNpb24gJHtTbGlja0luaXRTZXJ2aWNlLnZlcnNpb259YCk7XHJcblx0XHRpbml0UGFyYW1zLnZlcnNpb24gPSBTbGlja0luaXRTZXJ2aWNlLnZlcnNpb247XHJcblx0XHQoPGFueT53aW5kb3cpLnNsaWNrQ29tcG9uZW50c1BhcmFtcyA9IGluaXRQYXJhbXM7XHJcblxyXG5cdFx0cmV0dXJuICg8YW55PndpbmRvdykuc2xpY2tDb21wb25lbnRzUGFyYW1zO1xyXG5cdH1cclxuXHJcblx0c3RhdGljIGdldFBhcmFtcygpOiBTbGlja0luaXRQYXJhbXMge1xyXG5cdFx0aWYgKCEoPGFueT53aW5kb3cpLnNsaWNrQ29tcG9uZW50c1BhcmFtcykge1xyXG5cdFx0XHRjb25zdCBkZWZhdWx0UGFyYW1zID0gbmV3IFNsaWNrSW5pdFBhcmFtcygpO1xyXG5cdFx0XHRkZWZhdWx0UGFyYW1zLmF0dGFjaFRvID0gXCJib2R5XCI7XHJcblx0XHRcdCg8YW55PndpbmRvdykuc2xpY2tDb21wb25lbnRzUGFyYW1zID0gZGVmYXVsdFBhcmFtcztcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gPFNsaWNrSW5pdFBhcmFtcz4oPGFueT53aW5kb3cpLnNsaWNrQ29tcG9uZW50c1BhcmFtcztcclxuXHR9XHJcblxyXG5cdHN0YXRpYyBnZXRBdHRhY2hUbygpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIFNsaWNrSW5pdFNlcnZpY2UuZ2V0UGFyYW1zKCkuYXR0YWNoVG87XHJcblx0fVxyXG5cclxuXHRzdGF0aWMgc2V0QXR0YWNoVG8oYXR0YWNoVG9FbGVtZW50OiBzdHJpbmcpIHtcclxuXHRcdFNsaWNrSW5pdFNlcnZpY2UuZ2V0UGFyYW1zKCkuYXR0YWNoVG8gPSBhdHRhY2hUb0VsZW1lbnQ7XHJcblx0fVxyXG5cclxuXHRzdGF0aWMgZ2V0UGxhdGZvcm0oKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiBTbGlja0luaXRTZXJ2aWNlLmdldFBhcmFtcygpLnBsYXRmb3JtO1xyXG5cdH1cclxuXHJcblx0c3RhdGljIHNldFBsYXRmb3JtKHBsYXRmb3JtOiBzdHJpbmcpIHtcclxuXHRcdFNsaWNrSW5pdFNlcnZpY2UuZ2V0UGFyYW1zKCkucGxhdGZvcm0gPSBwbGF0Zm9ybTtcclxuXHR9XHJcblxyXG5cdHN0YXRpYyBnZXRFcnJvckxvZygpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIFNsaWNrSW5pdFNlcnZpY2UuZ2V0UGFyYW1zKCkuZXJyb3JMb2c7XHJcblx0fVxyXG5cclxuXHRzdGF0aWMgc2V0RXJyb3JMb2coZXJyb3JMb2c6IHN0cmluZykge1xyXG5cdFx0U2xpY2tJbml0U2VydmljZS5nZXRQYXJhbXMoKS5lcnJvckxvZyA9IGVycm9yTG9nO1xyXG5cdH1cclxufVxyXG5cclxuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2staW5pdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvdXRpbHMvc2xpY2staW5pdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTNDLE1BQU0sT0FBTyxlQUFlO0lBQTVCO1FBR0MsYUFBUSxHQUFXLFNBQVMsQ0FBQztJQUc5QixDQUFDO0NBQUE7QUFHRCxNQUFNLE9BQU8sZ0JBQWdCO2FBQ3JCLFlBQU8sR0FBRyxRQUFRLEFBQVgsQ0FBWTtJQUUxQixnQkFBZ0IsQ0FBQztJQUdqQixNQUFNLENBQUMsSUFBSSxDQUFDLFVBQTJCO1FBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsNEJBQTRCLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDckUsVUFBVSxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7UUFDeEMsTUFBTyxDQUFDLHFCQUFxQixHQUFHLFVBQVUsQ0FBQztRQUVqRCxPQUFhLE1BQU8sQ0FBQyxxQkFBcUIsQ0FBQztJQUM1QyxDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVM7UUFDZixJQUFJLENBQU8sTUFBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDMUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUM1QyxhQUFhLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztZQUMxQixNQUFPLENBQUMscUJBQXFCLEdBQUcsYUFBYSxDQUFDO1FBQ3JELENBQUM7UUFFRCxPQUE4QixNQUFPLENBQUMscUJBQXFCLENBQUM7SUFDN0QsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXO1FBQ2pCLE9BQU8sZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO0lBQzlDLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLGVBQXVCO1FBQ3pDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUM7SUFDekQsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXO1FBQ2pCLE9BQU8sZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO0lBQzlDLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQWdCO1FBQ2xDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXO1FBQ2pCLE9BQU8sZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO0lBQzlDLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQWdCO1FBQ2xDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDbEQsQ0FBQztpSUE5Q1csZ0JBQWdCO3FJQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBTbGlja0luaXRQYXJhbXMge1xyXG5cdGF0dGFjaFRvOiBzdHJpbmc7XHJcblx0cGxhdGZvcm06IHN0cmluZztcclxuXHRlcnJvckxvZzogc3RyaW5nID0gXCJtaW5pbWFsXCI7XHJcblx0dmVyc2lvbjogc3RyaW5nO1xyXG5cclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2xpY2tJbml0U2VydmljZSB7XHRcclxuXHRzdGF0aWMgdmVyc2lvbiA9IFwiMTcuMC41XCI7XHJcblxyXG5cdGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG5cclxuXHRzdGF0aWMgaW5pdChpbml0UGFyYW1zOiBTbGlja0luaXRQYXJhbXMpOiBTbGlja0luaXRQYXJhbXMge1xyXG5cdFx0Y29uc29sZS5pbmZvKGBTbGljayBDb21wb25lbnRzIFZlcnNpb24gJHtTbGlja0luaXRTZXJ2aWNlLnZlcnNpb259YCk7XHJcblx0XHRpbml0UGFyYW1zLnZlcnNpb24gPSBTbGlja0luaXRTZXJ2aWNlLnZlcnNpb247XHJcblx0XHQoPGFueT53aW5kb3cpLnNsaWNrQ29tcG9uZW50c1BhcmFtcyA9IGluaXRQYXJhbXM7XHJcblxyXG5cdFx0cmV0dXJuICg8YW55PndpbmRvdykuc2xpY2tDb21wb25lbnRzUGFyYW1zO1xyXG5cdH1cclxuXHJcblx0c3RhdGljIGdldFBhcmFtcygpOiBTbGlja0luaXRQYXJhbXMge1xyXG5cdFx0aWYgKCEoPGFueT53aW5kb3cpLnNsaWNrQ29tcG9uZW50c1BhcmFtcykge1xyXG5cdFx0XHRjb25zdCBkZWZhdWx0UGFyYW1zID0gbmV3IFNsaWNrSW5pdFBhcmFtcygpO1xyXG5cdFx0XHRkZWZhdWx0UGFyYW1zLmF0dGFjaFRvID0gXCJib2R5XCI7XHJcblx0XHRcdCg8YW55PndpbmRvdykuc2xpY2tDb21wb25lbnRzUGFyYW1zID0gZGVmYXVsdFBhcmFtcztcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gPFNsaWNrSW5pdFBhcmFtcz4oPGFueT53aW5kb3cpLnNsaWNrQ29tcG9uZW50c1BhcmFtcztcclxuXHR9XHJcblxyXG5cdHN0YXRpYyBnZXRBdHRhY2hUbygpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIFNsaWNrSW5pdFNlcnZpY2UuZ2V0UGFyYW1zKCkuYXR0YWNoVG87XHJcblx0fVxyXG5cclxuXHRzdGF0aWMgc2V0QXR0YWNoVG8oYXR0YWNoVG9FbGVtZW50OiBzdHJpbmcpIHtcclxuXHRcdFNsaWNrSW5pdFNlcnZpY2UuZ2V0UGFyYW1zKCkuYXR0YWNoVG8gPSBhdHRhY2hUb0VsZW1lbnQ7XHJcblx0fVxyXG5cclxuXHRzdGF0aWMgZ2V0UGxhdGZvcm0oKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiBTbGlja0luaXRTZXJ2aWNlLmdldFBhcmFtcygpLnBsYXRmb3JtO1xyXG5cdH1cclxuXHJcblx0c3RhdGljIHNldFBsYXRmb3JtKHBsYXRmb3JtOiBzdHJpbmcpIHtcclxuXHRcdFNsaWNrSW5pdFNlcnZpY2UuZ2V0UGFyYW1zKCkucGxhdGZvcm0gPSBwbGF0Zm9ybTtcclxuXHR9XHJcblxyXG5cdHN0YXRpYyBnZXRFcnJvckxvZygpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIFNsaWNrSW5pdFNlcnZpY2UuZ2V0UGFyYW1zKCkuZXJyb3JMb2c7XHJcblx0fVxyXG5cclxuXHRzdGF0aWMgc2V0RXJyb3JMb2coZXJyb3JMb2c6IHN0cmluZykge1xyXG5cdFx0U2xpY2tJbml0U2VydmljZS5nZXRQYXJhbXMoKS5lcnJvckxvZyA9IGVycm9yTG9nO1xyXG5cdH1cclxufVxyXG5cclxuIl19
@@ -9,9 +9,11 @@ import * as i3 from 'angular2-draggable';
9
9
  import { AngularDraggableModule } from 'angular2-draggable';
10
10
  import * as i1$1 from '@angular/common/http';
11
11
  import { HttpClientModule, HttpHeaders } from '@angular/common/http';
12
+ import * as i1$2 from 'ngx-image-compress';
13
+ import { DOC_ORIENTATION, NgxImageCompressService } from 'ngx-image-compress';
12
14
  import Swal from 'sweetalert2';
13
- import * as i1$2 from '@angular/platform-browser';
14
- import * as i1$3 from '@angular/router';
15
+ import * as i1$3 from '@angular/platform-browser';
16
+ import * as i1$4 from '@angular/router';
15
17
  import { RouterModule, NavigationStart } from '@angular/router';
16
18
 
17
19
  class SlickInitParams {
@@ -20,7 +22,7 @@ class SlickInitParams {
20
22
  }
21
23
  }
22
24
  class SlickInitService {
23
- static { this.version = "17.0.3"; }
25
+ static { this.version = "17.0.5"; }
24
26
  constructor() { }
25
27
  static init(initParams) {
26
28
  console.info(`Slick Components Version ${SlickInitService.version}`);
@@ -3746,7 +3748,8 @@ class SlickFileDropComponent {
3746
3748
  onDragLeave(e) {
3747
3749
  this.containerRef.nativeElement.classList.remove("slick-file-drop_drag-enter");
3748
3750
  }
3749
- constructor() {
3751
+ constructor(imageCompress) {
3752
+ this.imageCompress = imageCompress;
3750
3753
  this.displayText = "Drop File or click to Upload";
3751
3754
  this.filesChangedEmitter = new EventEmitter();
3752
3755
  this.fnOnFileInputChange = (e) => this.onFileInputChange(e);
@@ -3767,14 +3770,11 @@ class SlickFileDropComponent {
3767
3770
  let fileNameParts = slickFileModel.name.split('.');
3768
3771
  let ext = fileNameParts[fileNameParts.length - 1].toLowerCase();
3769
3772
  if (imgExtensions$1.indexOf(ext) >= 0) {
3770
- let img = new Image;
3771
- img.onload = () => {
3772
- slickFileModel.thumbnailBase64Image = this.resizeImageToBase64(img, 90, 90);
3773
- slickFileModel.base64Image = this.resizeImageToBase64(img, 1600, 1600);
3774
- slickFileModels.push(slickFileModel);
3775
- resolve(null);
3776
- };
3777
- img.src = await this.getBase64(file);
3773
+ const enc64 = await this.getBase64(file);
3774
+ slickFileModel.base64Image = await this.imageCompress.compressFile(enc64, DOC_ORIENTATION.Default, 100, 60);
3775
+ slickFileModel.thumbnailBase64Image = await this.imageCompress.compressFile(enc64, DOC_ORIENTATION.Default, 100, 60, 90, 90);
3776
+ slickFileModels.push(slickFileModel);
3777
+ resolve(null);
3778
3778
  }
3779
3779
  else {
3780
3780
  slickFileModels.push(slickFileModel);
@@ -3785,28 +3785,6 @@ class SlickFileDropComponent {
3785
3785
  await Promise.all(imageLoadPromises);
3786
3786
  this.filesChangedEmitter.emit(slickFileModels);
3787
3787
  }
3788
- resizeImageToBase64(img, width, height) {
3789
- let scale = 1;
3790
- if (img.width > img.height) {
3791
- if (img.width > width)
3792
- scale = width / img.width;
3793
- }
3794
- else {
3795
- if (img.height > height)
3796
- scale = height / img.height;
3797
- }
3798
- let newWidth = img.width * scale;
3799
- let newHeight = img.height * scale;
3800
- // We create a canvas and get its context.
3801
- var canvas = document.createElement('canvas');
3802
- var ctx = canvas.getContext('2d');
3803
- // We set the dimensions at the wanted size.
3804
- canvas.width = newWidth;
3805
- canvas.height = newHeight;
3806
- // We resize the image with the canvas method drawImage();
3807
- ctx.drawImage(img, 0, 0, newWidth, newHeight);
3808
- return canvas.toDataURL("image/jpeg");
3809
- }
3810
3788
  getBase64(file) {
3811
3789
  return new Promise((resolve, reject) => {
3812
3790
  // Capacitor fails on the FileReader, so we need to get _readReader
@@ -3824,13 +3802,13 @@ class SlickFileDropComponent {
3824
3802
  fileReader.onerror = (error) => reject('Error: ' + error);
3825
3803
  });
3826
3804
  }
3827
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickFileDropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3828
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: SlickFileDropComponent, selector: "slick-file-drop", inputs: { displayText: "displayText" }, outputs: { filesChangedEmitter: "filesChanged" }, host: { listeners: { "click": "onClick($event)", "drop": "onDrop($event)", "dragenter": "onDragEnter($event)", "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["containerRef"], descendants: true }, { propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<p #containerRef id=\"slick-file-drop_{{uuid}}\" class=\"slick-file-drop\">\r\n <i class=\"far fa-cloud-arrow-up me-1\"></i> {{displayText}}\r\n</p>\r\n<input type=\"file\" #fileInput style=\"display: none\" multiple />\r\n" }); }
3805
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickFileDropComponent, deps: [{ token: i1$2.NgxImageCompressService }], target: i0.ɵɵFactoryTarget.Component }); }
3806
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: SlickFileDropComponent, selector: "slick-file-drop", inputs: { displayText: "displayText" }, outputs: { filesChangedEmitter: "filesChanged" }, host: { listeners: { "click": "onClick($event)", "drop": "onDrop($event)", "dragenter": "onDragEnter($event)", "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)" } }, providers: [NgxImageCompressService], viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["containerRef"], descendants: true }, { propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<p #containerRef id=\"slick-file-drop_{{uuid}}\" class=\"slick-file-drop\">\r\n <i class=\"far fa-cloud-arrow-up me-1\"></i> {{displayText}}\r\n</p>\r\n<input type=\"file\" #fileInput style=\"display: none\" multiple />\r\n" }); }
3829
3807
  }
3830
3808
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickFileDropComponent, decorators: [{
3831
3809
  type: Component,
3832
- args: [{ selector: 'slick-file-drop', template: "<p #containerRef id=\"slick-file-drop_{{uuid}}\" class=\"slick-file-drop\">\r\n <i class=\"far fa-cloud-arrow-up me-1\"></i> {{displayText}}\r\n</p>\r\n<input type=\"file\" #fileInput style=\"display: none\" multiple />\r\n" }]
3833
- }], ctorParameters: () => [], propDecorators: { displayText: [{
3810
+ args: [{ selector: 'slick-file-drop', providers: [NgxImageCompressService], template: "<p #containerRef id=\"slick-file-drop_{{uuid}}\" class=\"slick-file-drop\">\r\n <i class=\"far fa-cloud-arrow-up me-1\"></i> {{displayText}}\r\n</p>\r\n<input type=\"file\" #fileInput style=\"display: none\" multiple />\r\n" }]
3811
+ }], ctorParameters: () => [{ type: i1$2.NgxImageCompressService }], propDecorators: { displayText: [{
3834
3812
  type: Input,
3835
3813
  args: ["displayText"]
3836
3814
  }], filesChangedEmitter: [{
@@ -5542,7 +5520,7 @@ class SlickGridSanitizeHtmlPipe {
5542
5520
  transform(v) {
5543
5521
  return this._sanitizer.bypassSecurityTrustHtml(v);
5544
5522
  }
5545
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickGridSanitizeHtmlPipe, deps: [{ token: i1$2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
5523
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickGridSanitizeHtmlPipe, deps: [{ token: i1$3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
5546
5524
  /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.1", ngImport: i0, type: SlickGridSanitizeHtmlPipe, name: "slickGridSanitizeHtml" }); }
5547
5525
  }
5548
5526
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickGridSanitizeHtmlPipe, decorators: [{
@@ -5550,7 +5528,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
5550
5528
  args: [{
5551
5529
  name: 'slickGridSanitizeHtml'
5552
5530
  }]
5553
- }], ctorParameters: () => [{ type: i1$2.DomSanitizer }] });
5531
+ }], ctorParameters: () => [{ type: i1$3.DomSanitizer }] });
5554
5532
 
5555
5533
  class DropDownModel {
5556
5534
  constructor(text) {
@@ -8279,12 +8257,12 @@ class SlickToastService {
8279
8257
  await SlickSleepService.sleep();
8280
8258
  document.getElementById("slick-toast_" + newMessage.uuid).style.opacity = "1";
8281
8259
  }
8282
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickToastService, deps: [{ token: i1$3.Router, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
8260
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickToastService, deps: [{ token: i1$4.Router, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
8283
8261
  /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickToastService }); }
8284
8262
  }
8285
8263
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickToastService, decorators: [{
8286
8264
  type: Injectable
8287
- }], ctorParameters: () => [{ type: i1$3.Router, decorators: [{
8265
+ }], ctorParameters: () => [{ type: i1$4.Router, decorators: [{
8288
8266
  type: Optional
8289
8267
  }] }] });
8290
8268