@dealpos-npm/ng-dealpos-library 4.0.0 → 4.0.2
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/components/serial-note/src/serial-note.component.d.ts +3 -2
- package/components/uppy-file-upload/src/uppy.component.d.ts +1 -1
- package/esm2022/components/serial-note/src/serial-note.component.mjs +11 -11
- package/esm2022/components/uppy-file-upload/src/uppy.component.mjs +3 -3
- package/fesm2022/dealpos-npm-ng-dealpos-library-components-serial-note.mjs +10 -10
- package/fesm2022/dealpos-npm-ng-dealpos-library-components-serial-note.mjs.map +1 -1
- package/fesm2022/dealpos-npm-ng-dealpos-library-components-uppy-file-upload.mjs +2 -2
- package/fesm2022/dealpos-npm-ng-dealpos-library-components-uppy-file-upload.mjs.map +1 -1
- package/package.json +40 -40
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
export declare class SerialNoteComponent {
|
|
3
|
+
serials: import("@angular/core").InputSignal<any[]>;
|
|
3
4
|
serialNote: string;
|
|
4
|
-
|
|
5
|
+
constructor();
|
|
5
6
|
static ɵfac: i0.ɵɵFactoryDeclaration<SerialNoteComponent, never>;
|
|
6
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SerialNoteComponent, "app-serial-note", never, { "serials": { "alias": "serials"; "required": false; }; }, {}, never, never, true, never>;
|
|
7
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SerialNoteComponent, "app-serial-note", never, { "serials": { "alias": "serials"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
7
8
|
}
|
|
@@ -10,7 +10,7 @@ export declare class UppyComponent {
|
|
|
10
10
|
showSample: boolean;
|
|
11
11
|
uppyCoreConfiguration: import("@angular/core").InputSignal<any>;
|
|
12
12
|
dashboardPropsConfiguration: import("@angular/core").InputSignal<any>;
|
|
13
|
-
fileUploaded: EventEmitter<
|
|
13
|
+
fileUploaded: EventEmitter<Blob | File>;
|
|
14
14
|
fileRemoved: EventEmitter<void>;
|
|
15
15
|
onParser: EventEmitter<any>;
|
|
16
16
|
http: HttpService;
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, effect, input } from '@angular/core';
|
|
2
2
|
import { Constants } from '@dealpos-npm/ng-dealpos-library/constants';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class SerialNoteComponent {
|
|
5
5
|
constructor() {
|
|
6
|
+
this.serials = input([]);
|
|
6
7
|
this.serialNote = '';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
effect(() => {
|
|
9
|
+
const currSerials = this.serials();
|
|
10
|
+
if (currSerials && currSerials.length > 0) {
|
|
11
|
+
this.serialNote = Constants.generateSerialasNote(currSerials);
|
|
12
|
+
}
|
|
13
|
+
});
|
|
12
14
|
}
|
|
13
15
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SerialNoteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
16
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", type: SerialNoteComponent, isStandalone: true, selector: "app-serial-note", inputs: { serials: { classPropertyName: "serials", publicName: "serials", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<span>{{serialNote}}</span>", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15
17
|
}
|
|
16
18
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SerialNoteComponent, decorators: [{
|
|
17
19
|
type: Component,
|
|
18
20
|
args: [{ selector: 'app-serial-note', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<span>{{serialNote}}</span>" }]
|
|
19
|
-
}],
|
|
20
|
-
|
|
21
|
-
}] } });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsLW5vdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVhbHBvcy1ucG0vbmctZGVhbHBvcy1saWJyYXJ5L2NvbXBvbmVudHMvc2VyaWFsLW5vdGUvc3JjL3NlcmlhbC1ub3RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RlYWxwb3MtbnBtL25nLWRlYWxwb3MtbGlicmFyeS9jb21wb25lbnRzL3NlcmlhbC1ub3RlL3NyYy9zZXJpYWwtbm90ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7O0FBU3RFLE1BQU0sT0FBTyxtQkFBbUI7SUFQaEM7UUFRUyxlQUFVLEdBQVcsRUFBRSxDQUFDO0tBTWhDO0lBTEMsSUFBYSxPQUFPLENBQUMsT0FBYztRQUNqQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUQsQ0FBQztJQUNILENBQUM7OEdBTlUsbUJBQW1CO2tHQUFuQixtQkFBbUIsMkdDVmhDLDZCQUEyQjs7MkZEVWQsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNFLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUk7OEJBSUgsT0FBTztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJ0BkZWFscG9zLW5wbS9uZy1kZWFscG9zLWxpYnJhcnkvY29uc3RhbnRzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXNlcmlhbC1ub3RlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VyaWFsLW5vdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NlcmlhbC1ub3RlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VyaWFsTm90ZUNvbXBvbmVudCB7XHJcbiAgcHVibGljIHNlcmlhbE5vdGU6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHNldCBzZXJpYWxzKHNlcmlhbHM6IGFueVtdKSB7XHJcbiAgICBpZiAoc2VyaWFscykge1xyXG4gICAgICB0aGlzLnNlcmlhbE5vdGUgPSBDb25zdGFudHMuZ2VuZXJhdGVTZXJpYWxhc05vdGUoc2VyaWFscyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxzcGFuPnt7c2VyaWFsTm90ZX19PC9zcGFuPiJdfQ==
|
|
21
|
+
}], ctorParameters: () => [] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsLW5vdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVhbHBvcy1ucG0vbmctZGVhbHBvcy1saWJyYXJ5L2NvbXBvbmVudHMvc2VyaWFsLW5vdGUvc3JjL3NlcmlhbC1ub3RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RlYWxwb3MtbnBtL25nLWRlYWxwb3MtbGlicmFyeS9jb21wb25lbnRzL3NlcmlhbC1ub3RlL3NyYy9zZXJpYWwtbm90ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOztBQVN0RSxNQUFNLE9BQU8sbUJBQW1CO0lBSTlCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBUSxFQUFFLENBQUMsQ0FBQTtRQUNuQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBRzdCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7WUFDbEMsSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDMUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDaEUsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs4R0FYVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixxTkNWaEMsNkJBQTJCOzsyRkRVZCxtQkFBbUI7a0JBUC9CLFNBQVM7K0JBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGVmZmVjdCwgaW5wdXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJ0BkZWFscG9zLW5wbS9uZy1kZWFscG9zLWxpYnJhcnkvY29uc3RhbnRzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXNlcmlhbC1ub3RlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VyaWFsLW5vdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NlcmlhbC1ub3RlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VyaWFsTm90ZUNvbXBvbmVudCB7XHJcbiAgc2VyaWFscyA9IGlucHV0PGFueVtdPihbXSlcclxuICBwdWJsaWMgc2VyaWFsTm90ZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgY29uc3QgY3VyclNlcmlhbHMgPSB0aGlzLnNlcmlhbHMoKVxyXG4gICAgICBpZiAoY3VyclNlcmlhbHMgJiYgY3VyclNlcmlhbHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuc2VyaWFsTm90ZSA9IENvbnN0YW50cy5nZW5lcmF0ZVNlcmlhbGFzTm90ZShjdXJyU2VyaWFscyk7XHJcbiAgICAgIH0gXHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG4iLCI8c3Bhbj57e3NlcmlhbE5vdGV9fTwvc3Bhbj4iXX0=
|
|
@@ -91,11 +91,11 @@ export class UppyComponent {
|
|
|
91
91
|
return `${size.toFixed(decimalPoints)} ${UppyComponent.sizes[i]}`;
|
|
92
92
|
}
|
|
93
93
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: UppyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
94
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: UppyComponent, isStandalone: true, selector: "POS-uppy", inputs: { sampleUrl: { classPropertyName: "sampleUrl", publicName: "sampleUrl", isSignal: false, isRequired: false, transformFunction: null }, uppyCoreConfiguration: { classPropertyName: "uppyCoreConfiguration", publicName: "uppyCoreConfiguration", isSignal: true, isRequired: false, transformFunction: null }, dashboardPropsConfiguration: { classPropertyName: "dashboardPropsConfiguration", publicName: "dashboardPropsConfiguration", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileUploaded: "fileUploaded", fileRemoved: "fileRemoved", onParser: "onParser" }, ngImport: i0, template: "<div class=\"position-relative\">\r\n <uppy-dashboard [uppy]=\"uppy\" [props]=\"dashboardProps\"> </uppy-dashboard>\r\n <!--put error message design here-->\r\n <a *ngIf=\"sampleUrl && showSample\" class=\"sample position-absolute\" role=\"button\" [href]=\"sampleUrl\">\r\n <i class=\"fa-solid fa-download ms-3\"></i> Download Template\r\n </a>\r\n\r\n @if (file() && file()?.type === 'text/csv') {\r\n <div class=\"alert alert-warning d-flex flex-column gap-2\" style=\"margin: 1rem 0 0 0;\" role=\"alert\">\r\n <h4 class=\"alert-heading\">CSV File Content Summary</h4>\r\n <hr>\r\n <p class=\"fs-6 m-0\">{{rowSummary().rowCount}} rows found - {{rowSummary().rowEmpty}} empty in the CSV you uploaded
|
|
94
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: UppyComponent, isStandalone: true, selector: "POS-uppy", inputs: { sampleUrl: { classPropertyName: "sampleUrl", publicName: "sampleUrl", isSignal: false, isRequired: false, transformFunction: null }, uppyCoreConfiguration: { classPropertyName: "uppyCoreConfiguration", publicName: "uppyCoreConfiguration", isSignal: true, isRequired: false, transformFunction: null }, dashboardPropsConfiguration: { classPropertyName: "dashboardPropsConfiguration", publicName: "dashboardPropsConfiguration", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileUploaded: "fileUploaded", fileRemoved: "fileRemoved", onParser: "onParser" }, ngImport: i0, template: "<div class=\"position-relative\">\r\n <uppy-dashboard [uppy]=\"uppy\" [props]=\"dashboardProps\"> </uppy-dashboard>\r\n <!--put error message design here-->\r\n <a *ngIf=\"sampleUrl && showSample\" class=\"sample position-absolute\" role=\"button\" [href]=\"sampleUrl\">\r\n <i class=\"fa-solid fa-download ms-3\"></i> Download Template\r\n </a>\r\n\r\n @if (file() && file()?.type === 'text/csv') {\r\n <div class=\"alert alert-warning d-flex flex-column gap-2\" style=\"margin: 1rem 0 0 0;\" role=\"alert\">\r\n <h4 class=\"alert-heading\">CSV File Content Summary</h4>\r\n <hr>\r\n <p class=\"fs-6 m-0\">{{rowSummary().rowCount}} rows found <ng-container *ngIf=\"rowSummary().rowEmpty > 0\">- {{rowSummary().rowEmpty}} empty in the CSV you uploaded</ng-container></p>\r\n </div>\r\n \r\n }\r\n</div>", styles: ["::ng-deep .uppy-Dashboard-AddFiles-info{display:none!important}.sample{top:53%;left:calc(50% - 63.5px)}\n"], dependencies: [{ kind: "ngmodule", type: UppyAngularDashboardModule }, { kind: "component", type: i1.DashboardComponent, selector: "uppy-dashboard", inputs: ["uppy", "props"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
95
95
|
}
|
|
96
96
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: UppyComponent, decorators: [{
|
|
97
97
|
type: Component,
|
|
98
|
-
args: [{ selector: 'POS-uppy', standalone: true, imports: [UppyAngularDashboardModule, CommonModule], template: "<div class=\"position-relative\">\r\n <uppy-dashboard [uppy]=\"uppy\" [props]=\"dashboardProps\"> </uppy-dashboard>\r\n <!--put error message design here-->\r\n <a *ngIf=\"sampleUrl && showSample\" class=\"sample position-absolute\" role=\"button\" [href]=\"sampleUrl\">\r\n <i class=\"fa-solid fa-download ms-3\"></i> Download Template\r\n </a>\r\n\r\n @if (file() && file()?.type === 'text/csv') {\r\n <div class=\"alert alert-warning d-flex flex-column gap-2\" style=\"margin: 1rem 0 0 0;\" role=\"alert\">\r\n <h4 class=\"alert-heading\">CSV File Content Summary</h4>\r\n <hr>\r\n <p class=\"fs-6 m-0\">{{rowSummary().rowCount}} rows found - {{rowSummary().rowEmpty}} empty in the CSV you uploaded
|
|
98
|
+
args: [{ selector: 'POS-uppy', standalone: true, imports: [UppyAngularDashboardModule, CommonModule], template: "<div class=\"position-relative\">\r\n <uppy-dashboard [uppy]=\"uppy\" [props]=\"dashboardProps\"> </uppy-dashboard>\r\n <!--put error message design here-->\r\n <a *ngIf=\"sampleUrl && showSample\" class=\"sample position-absolute\" role=\"button\" [href]=\"sampleUrl\">\r\n <i class=\"fa-solid fa-download ms-3\"></i> Download Template\r\n </a>\r\n\r\n @if (file() && file()?.type === 'text/csv') {\r\n <div class=\"alert alert-warning d-flex flex-column gap-2\" style=\"margin: 1rem 0 0 0;\" role=\"alert\">\r\n <h4 class=\"alert-heading\">CSV File Content Summary</h4>\r\n <hr>\r\n <p class=\"fs-6 m-0\">{{rowSummary().rowCount}} rows found <ng-container *ngIf=\"rowSummary().rowEmpty > 0\">- {{rowSummary().rowEmpty}} empty in the CSV you uploaded</ng-container></p>\r\n </div>\r\n \r\n }\r\n</div>", styles: ["::ng-deep .uppy-Dashboard-AddFiles-info{display:none!important}.sample{top:53%;left:calc(50% - 63.5px)}\n"] }]
|
|
99
99
|
}], ctorParameters: () => [], propDecorators: { sampleUrl: [{
|
|
100
100
|
type: Input
|
|
101
101
|
}], fileUploaded: [{
|
|
@@ -105,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
105
105
|
}], onParser: [{
|
|
106
106
|
type: Output
|
|
107
107
|
}] } });
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBweS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZWFscG9zLW5wbS9uZy1kZWFscG9zLWxpYnJhcnkvY29tcG9uZW50cy91cHB5LWZpbGUtdXBsb2FkL3NyYy91cHB5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RlYWxwb3MtbnBtL25nLWRlYWxwb3MtbGlicmFyeS9jb21wb25lbnRzL3VwcHktZmlsZS11cGxvYWQvc3JjL3VwcHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNsQyxPQUFPLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDOzs7O0FBUTdCLE1BQU0sT0FBTyxhQUFhO2FBZ0JULFVBQUssR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFVLEFBQXJFLENBQXFFO2FBQzFFLGFBQVEsR0FBRyxJQUFJLEFBQVAsQ0FBTztJQWtCOUI7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WUFDZixPQUFPLFNBQVMsQ0FBQTtRQUNsQixDQUFDO1FBRUQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7UUFDeEUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDekQsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ25FLENBQUM7OEdBOUZVLGFBQWE7a0dBQWIsYUFBYSxvcEJDaEIxQiwyMUJBZU0sa0tESE0sMEJBQTBCLHlJQUFFLFlBQVk7OzJGQUl2QyxhQUFhO2tCQVB6QixTQUFTOytCQUNFLFVBQVUsY0FDUixJQUFJLFdBQ1AsQ0FBQywwQkFBMEIsRUFBRSxZQUFZLENBQUM7d0RBSzFDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBSUksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIGVmZmVjdCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIGlucHV0LCBJbnB1dCwgT3V0cHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udmVydENzdlNlcnZpY2UgfSBmcm9tICdAZGVhbHBvcy1ucG0vbmctZGVhbHBvcy1saWJyYXJ5L3NlcnZpY2VzL2Nzdi1wYXJzZXInO1xyXG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJ0BkZWFscG9zLW5wbS9uZy1kZWFscG9zLWxpYnJhcnkvc2VydmljZXMvaHR0cCc7XHJcbmltcG9ydCB7IFVwcHlBbmd1bGFyRGFzaGJvYXJkTW9kdWxlIH0gZnJvbSAnQHVwcHkvYW5ndWxhcic7XHJcbmltcG9ydCB7IFVwcHkgfSBmcm9tICdAdXBweS9jb3JlJztcclxuaW1wb3J0ICdAdXBweS9jb3JlL2Rpc3Qvc3R5bGUubWluLmNzcyc7XHJcbmltcG9ydCAnQHVwcHkvZGFzaGJvYXJkL2Rpc3Qvc3R5bGUubWluLmNzcyc7XHJcbmltcG9ydCBQYXBhIGZyb20gJ3BhcGFwYXJzZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnUE9TLXVwcHknLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1VwcHlBbmd1bGFyRGFzaGJvYXJkTW9kdWxlLCBDb21tb25Nb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91cHB5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdXBweS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFVwcHlDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHNhbXBsZVVybDogc3RyaW5nID0gJydcclxuICBzaG93U2FtcGxlOiBib29sZWFuID0gdHJ1ZVxyXG4gIHVwcHlDb3JlQ29uZmlndXJhdGlvbiA9IGlucHV0PGFueT4oKTtcclxuICBkYXNoYm9hcmRQcm9wc0NvbmZpZ3VyYXRpb24gPSBpbnB1dDxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGZpbGVVcGxvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QmxvYiB8IEZpbGU+KClcclxuICBAT3V0cHV0KCkgZmlsZVJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KClcclxuICBAT3V0cHV0KCkgb25QYXJzZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxyXG5cclxuICBodHRwID0gaW5qZWN0KEh0dHBTZXJ2aWNlKVxyXG4gIGNzdlBhcnNlciA9IGluamVjdChDb252ZXJ0Q3N2U2VydmljZSlcclxuXHJcbiAgcm93U3VtbWFyeSA9IHNpZ25hbDx7cm93Q291bnQ6IG51bWJlciwgcm93RW1wdHk6IG51bWJlcn0+KHtyb3dDb3VudDogMCwgcm93RW1wdHk6IDB9KVxyXG5cclxuICBmaWxlID0gc2lnbmFsPEZpbGUgfCBudWxsPihudWxsKVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBzaXplcyA9IFsnQnl0ZXMnLCAnS0InLCAnTUInLCAnR0InLCAnVEInLCAnUEInLCAnRUInLCAnWkInLCAnWUInXSBhcyBjb25zdFxyXG4gIHByaXZhdGUgc3RhdGljIGtpbG9ieXRlID0gMTAyNFxyXG5cclxuICB1cHB5OiBVcHB5ID0gbmV3IFVwcHkoeyBcclxuICAgIGRlYnVnOiB0cnVlLCBcclxuICAgIGF1dG9Qcm9jZWVkOiB0cnVlLCBcclxuICAgIGFsbG93TXVsdGlwbGVVcGxvYWRCYXRjaGVzOiBmYWxzZSxcclxuICAgIHJlc3RyaWN0aW9uczoge1xyXG4gICAgICBhbGxvd2VkRmlsZVR5cGVzOiBbJy5jc3YnXSxcclxuICAgICAgbWF4VG90YWxGaWxlU2l6ZTogMTAwMDAwMFxyXG4gICAgfVxyXG4gIH0pO1xyXG4gIFxyXG4gIGRhc2hib2FyZFByb3BzID0ge1xyXG4gICAgaGlkZVVwbG9hZEJ1dHRvbjogdHJ1ZSxcclxuICAgIHdpZHRoOiA1ODAsXHJcbiAgICBoZWlnaHQ6IDM1MFxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy51cHB5LnNldE9wdGlvbnMoey4uLnRoaXMudXBweUNvcmVDb25maWd1cmF0aW9uKCl9KSlcclxuICAgIGVmZmVjdCgoKSA9PiB0aGlzLmRhc2hib2FyZFByb3BzID0gKHsuLi50aGlzLmRhc2hib2FyZFByb3BzLCAuLi50aGlzLmRhc2hib2FyZFByb3BzQ29uZmlndXJhdGlvbigpfSkpXHJcblxyXG4gICAgdGhpcy51cHB5Lm9uKCd1cGxvYWQnLCAoXywgdXBweUZpbGVzKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbGUgPSB1cHB5RmlsZXNbMF0/LmRhdGEgYXMgRmlsZVxyXG4gICAgICB0aGlzLnNob3dTYW1wbGUgPSBmYWxzZVxyXG5cclxuXHJcbiAgICAgIHRoaXMuZmlsZVVwbG9hZGVkLmVtaXQoZmlsZSlcclxuICAgICAgdGhpcy5maWxlLnNldCh1cHB5RmlsZXNbMF0uZGF0YSBhcyBGaWxlKVxyXG5cclxuICAgICAgUGFwYS5wYXJzZShmaWxlLCB7XHJcbiAgICAgICAgc2tpcEVtcHR5TGluZXM6ICdncmVlZHknLFxyXG4gICAgICAgIGhlYWRlcjogdHJ1ZSxcclxuICAgICAgICBiZWZvcmVGaXJzdENodW5rOiAoX2NodW5rKSA9PiB7XHJcbiAgXHJcbiAgICAgICAgICBjb25zdCB3aXRoT3V0SGVhZGVyID0gX2NodW5rLnNwbGl0KC9cXHI/XFxuLykuc2xpY2UoMSlcclxuICAgICAgICAgIGlmICh3aXRoT3V0SGVhZGVyW3dpdGhPdXRIZWFkZXIubGVuZ3RoIC0gMV0gPT09ICcnKSB3aXRoT3V0SGVhZGVyLnBvcCgpXHJcbiAgICAgICAgICB0aGlzLnJvd1N1bW1hcnkudXBkYXRlKHJlcyA9PiAoey4uLnJlcywgcm93Q291bnQ6IHdpdGhPdXRIZWFkZXIubGVuZ3RofSkpXHJcbiAgICAgICAgICB3aXRoT3V0SGVhZGVyLmZvckVhY2gocm93ID0+IHtcclxuICBcclxuICAgICAgICAgICAgY29uc3QgZW1wdHlSb3cgPSByb3cuc3BsaXQoJywnKS5ldmVyeShyb3cgPT4gcm93ID09PSAnJylcclxuICBcclxuICAgICAgICAgICAgaWYgKGVtcHR5Um93KSB0aGlzLnJvd1N1bW1hcnkudXBkYXRlKHJlcyA9PiAoey4uLnJlcywgcm93RW1wdHk6IHJlcy5yb3dFbXB0eSArIDF9KSlcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICByZXR1cm4gX2NodW5rOyAvLyBSZXR1cm4gdGhlIG9yaWdpbmFsIGNodW5rIHRvIGNvbnRpbnVlIHBhcnNpbmdcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yKGVycm9yLCBmaWxlKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnRVJST1InLCBlcnJvciwgZmlsZSlcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAocmVzdWx0cywgX2ZpbGUpID0+IHtcclxuICAgICAgICAgIHRoaXMub25QYXJzZXIuZW1pdChyZXN1bHRzLmRhdGEpXHJcbiAgICAgICAgfSxcclxuICAgICAgfSlcclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy51cHB5Lm9uKCdmaWxlLXJlbW92ZWQnLCAoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2hvd1NhbXBsZSA9IHRydWVcclxuICAgICAgdGhpcy5maWxlUmVtb3ZlZC5lbWl0KClcclxuICAgICAgdGhpcy5maWxlLnNldChudWxsKVxyXG4gICAgICB0aGlzLnJvd1N1bW1hcnkuc2V0KHtyb3dDb3VudDogMCwgcm93RW1wdHk6IDB9KVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb252ZXJ0cyBhIGdpdmVuIG51bWJlciBvZiBieXRlcyBpbnRvIGEgaHVtYW4tcmVhZGFibGUgc3RyaW5nLlxyXG4gICAqIEBwYXJhbSBieXRlcyBUaGUgbnVtYmVyIG9mIGJ5dGVzIHRvIGNvbnZlcnQuXHJcbiAgICogQHBhcmFtIGRlY2ltYWxQb2ludHMgVGhlIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyB0byBkaXNwbGF5LiBEZWZhdWx0cyB0byAyLlxyXG4gICAqIEByZXR1cm5zIEEgc3RyaW5nIGluIHRoZSBmb3JtIG9mIFwiWC5YWCBbdW5pdF1cIiB3aGVyZSBYIGlzIHRoZSBudW1lcmljYWwgdmFsdWUgYW5kIHVuaXQgaXMgdGhlIGFwcHJvcHJpYXRlIHVuaXQgb2YgbWVhc3VyZW1lbnQgKEJ5dGVzLCBLQiwgTUIsIEdCLCBldGMuKS5cclxuICAgKi9cclxuICBmb3JtYXRGaWxlU2l6ZShieXRlczogbnVtYmVyLCBkZWNpbWFsUG9pbnRzID0gMik6IHN0cmluZyB7XHJcbiAgICBpZihieXRlcyA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gYDAgYnl0ZXNgXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaSA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2coVXBweUNvbXBvbmVudC5raWxvYnl0ZSkpXHJcbiAgICBjb25zdCBzaXplID0gKGJ5dGVzIC8gTWF0aC5wb3coVXBweUNvbXBvbmVudC5raWxvYnl0ZSxpKSlcclxuICAgIHJldHVybiBgJHtzaXplLnRvRml4ZWQoZGVjaW1hbFBvaW50cyl9ICR7VXBweUNvbXBvbmVudC5zaXplc1tpXX1gXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgPHVwcHktZGFzaGJvYXJkIFt1cHB5XT1cInVwcHlcIiBbcHJvcHNdPVwiZGFzaGJvYXJkUHJvcHNcIj4gPC91cHB5LWRhc2hib2FyZD5cclxuICAgIDwhLS1wdXQgZXJyb3IgbWVzc2FnZSBkZXNpZ24gaGVyZS0tPlxyXG4gICAgPGEgKm5nSWY9XCJzYW1wbGVVcmwgJiYgc2hvd1NhbXBsZVwiIGNsYXNzPVwic2FtcGxlIHBvc2l0aW9uLWFic29sdXRlXCIgcm9sZT1cImJ1dHRvblwiIFtocmVmXT1cInNhbXBsZVVybFwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtZG93bmxvYWQgbXMtM1wiPjwvaT4gRG93bmxvYWQgVGVtcGxhdGVcclxuICAgIDwvYT5cclxuXHJcbiAgICBAaWYgKGZpbGUoKSAmJiBmaWxlKCk/LnR5cGUgPT09ICd0ZXh0L2NzdicpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtd2FybmluZyBkLWZsZXggZmxleC1jb2x1bW4gZ2FwLTJcIiBzdHlsZT1cIm1hcmdpbjogMXJlbSAwIDAgMDtcIiByb2xlPVwiYWxlcnRcIj5cclxuICAgICAgICAgICAgPGg0IGNsYXNzPVwiYWxlcnQtaGVhZGluZ1wiPkNTViBGaWxlIENvbnRlbnQgU3VtbWFyeTwvaDQ+XHJcbiAgICAgICAgICAgIDxocj5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJmcy02IG0tMFwiPnt7cm93U3VtbWFyeSgpLnJvd0NvdW50fX0gcm93cyBmb3VuZCAtIHt7cm93U3VtbWFyeSgpLnJvd0VtcHR5fX0gZW1wdHkgaW4gdGhlIENTViB5b3UgdXBsb2FkZWQgKHNpemUge3tmb3JtYXRGaWxlU2l6ZShmaWxlKCk/LnNpemUhKX19KTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgIH1cclxuPC9kaXY+Il19
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBweS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZWFscG9zLW5wbS9uZy1kZWFscG9zLWxpYnJhcnkvY29tcG9uZW50cy91cHB5LWZpbGUtdXBsb2FkL3NyYy91cHB5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RlYWxwb3MtbnBtL25nLWRlYWxwb3MtbGlicmFyeS9jb21wb25lbnRzL3VwcHktZmlsZS11cGxvYWQvc3JjL3VwcHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNsQyxPQUFPLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDOzs7O0FBUTdCLE1BQU0sT0FBTyxhQUFhO2FBZ0JULFVBQUssR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFVLEFBQXJFLENBQXFFO2FBQzFFLGFBQVEsR0FBRyxJQUFJLEFBQVAsQ0FBTztJQWtCOUI7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WUFDZixPQUFPLFNBQVMsQ0FBQTtRQUNsQixDQUFDO1FBRUQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7UUFDeEUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDekQsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ25FLENBQUM7OEdBOUZVLGFBQWE7a0dBQWIsYUFBYSxvcEJDaEIxQixtM0JBZU0sa0tESE0sMEJBQTBCLHlJQUFFLFlBQVk7OzJGQUl2QyxhQUFhO2tCQVB6QixTQUFTOytCQUNFLFVBQVUsY0FDUixJQUFJLFdBQ1AsQ0FBQywwQkFBMEIsRUFBRSxZQUFZLENBQUM7d0RBSzFDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBSUksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIGVmZmVjdCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIGlucHV0LCBJbnB1dCwgT3V0cHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udmVydENzdlNlcnZpY2UgfSBmcm9tICdAZGVhbHBvcy1ucG0vbmctZGVhbHBvcy1saWJyYXJ5L3NlcnZpY2VzL2Nzdi1wYXJzZXInO1xyXG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJ0BkZWFscG9zLW5wbS9uZy1kZWFscG9zLWxpYnJhcnkvc2VydmljZXMvaHR0cCc7XHJcbmltcG9ydCB7IFVwcHlBbmd1bGFyRGFzaGJvYXJkTW9kdWxlIH0gZnJvbSAnQHVwcHkvYW5ndWxhcic7XHJcbmltcG9ydCB7IFVwcHkgfSBmcm9tICdAdXBweS9jb3JlJztcclxuaW1wb3J0ICdAdXBweS9jb3JlL2Rpc3Qvc3R5bGUubWluLmNzcyc7XHJcbmltcG9ydCAnQHVwcHkvZGFzaGJvYXJkL2Rpc3Qvc3R5bGUubWluLmNzcyc7XHJcbmltcG9ydCBQYXBhIGZyb20gJ3BhcGFwYXJzZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnUE9TLXVwcHknLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1VwcHlBbmd1bGFyRGFzaGJvYXJkTW9kdWxlLCBDb21tb25Nb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91cHB5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdXBweS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFVwcHlDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHNhbXBsZVVybDogc3RyaW5nID0gJydcclxuICBzaG93U2FtcGxlOiBib29sZWFuID0gdHJ1ZVxyXG4gIHVwcHlDb3JlQ29uZmlndXJhdGlvbiA9IGlucHV0PGFueT4oKTtcclxuICBkYXNoYm9hcmRQcm9wc0NvbmZpZ3VyYXRpb24gPSBpbnB1dDxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGZpbGVVcGxvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QmxvYiB8IEZpbGU+KClcclxuICBAT3V0cHV0KCkgZmlsZVJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KClcclxuICBAT3V0cHV0KCkgb25QYXJzZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxyXG5cclxuICBodHRwID0gaW5qZWN0KEh0dHBTZXJ2aWNlKVxyXG4gIGNzdlBhcnNlciA9IGluamVjdChDb252ZXJ0Q3N2U2VydmljZSlcclxuXHJcbiAgcm93U3VtbWFyeSA9IHNpZ25hbDx7cm93Q291bnQ6IG51bWJlciwgcm93RW1wdHk6IG51bWJlcn0+KHtyb3dDb3VudDogMCwgcm93RW1wdHk6IDB9KVxyXG5cclxuICBmaWxlID0gc2lnbmFsPEZpbGUgfCBudWxsPihudWxsKVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBzaXplcyA9IFsnQnl0ZXMnLCAnS0InLCAnTUInLCAnR0InLCAnVEInLCAnUEInLCAnRUInLCAnWkInLCAnWUInXSBhcyBjb25zdFxyXG4gIHByaXZhdGUgc3RhdGljIGtpbG9ieXRlID0gMTAyNFxyXG5cclxuICB1cHB5OiBVcHB5ID0gbmV3IFVwcHkoeyBcclxuICAgIGRlYnVnOiB0cnVlLCBcclxuICAgIGF1dG9Qcm9jZWVkOiB0cnVlLCBcclxuICAgIGFsbG93TXVsdGlwbGVVcGxvYWRCYXRjaGVzOiBmYWxzZSxcclxuICAgIHJlc3RyaWN0aW9uczoge1xyXG4gICAgICBhbGxvd2VkRmlsZVR5cGVzOiBbJy5jc3YnXSxcclxuICAgICAgbWF4VG90YWxGaWxlU2l6ZTogMTAwMDAwMFxyXG4gICAgfVxyXG4gIH0pO1xyXG4gIFxyXG4gIGRhc2hib2FyZFByb3BzID0ge1xyXG4gICAgaGlkZVVwbG9hZEJ1dHRvbjogdHJ1ZSxcclxuICAgIHdpZHRoOiA1ODAsXHJcbiAgICBoZWlnaHQ6IDM1MFxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy51cHB5LnNldE9wdGlvbnMoey4uLnRoaXMudXBweUNvcmVDb25maWd1cmF0aW9uKCl9KSlcclxuICAgIGVmZmVjdCgoKSA9PiB0aGlzLmRhc2hib2FyZFByb3BzID0gKHsuLi50aGlzLmRhc2hib2FyZFByb3BzLCAuLi50aGlzLmRhc2hib2FyZFByb3BzQ29uZmlndXJhdGlvbigpfSkpXHJcblxyXG4gICAgdGhpcy51cHB5Lm9uKCd1cGxvYWQnLCAoXywgdXBweUZpbGVzKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbGUgPSB1cHB5RmlsZXNbMF0/LmRhdGEgYXMgRmlsZVxyXG4gICAgICB0aGlzLnNob3dTYW1wbGUgPSBmYWxzZVxyXG5cclxuXHJcbiAgICAgIHRoaXMuZmlsZVVwbG9hZGVkLmVtaXQoZmlsZSlcclxuICAgICAgdGhpcy5maWxlLnNldCh1cHB5RmlsZXNbMF0uZGF0YSBhcyBGaWxlKVxyXG5cclxuICAgICAgUGFwYS5wYXJzZShmaWxlLCB7XHJcbiAgICAgICAgc2tpcEVtcHR5TGluZXM6ICdncmVlZHknLFxyXG4gICAgICAgIGhlYWRlcjogdHJ1ZSxcclxuICAgICAgICBiZWZvcmVGaXJzdENodW5rOiAoX2NodW5rKSA9PiB7XHJcbiAgXHJcbiAgICAgICAgICBjb25zdCB3aXRoT3V0SGVhZGVyID0gX2NodW5rLnNwbGl0KC9cXHI/XFxuLykuc2xpY2UoMSlcclxuICAgICAgICAgIGlmICh3aXRoT3V0SGVhZGVyW3dpdGhPdXRIZWFkZXIubGVuZ3RoIC0gMV0gPT09ICcnKSB3aXRoT3V0SGVhZGVyLnBvcCgpXHJcbiAgICAgICAgICB0aGlzLnJvd1N1bW1hcnkudXBkYXRlKHJlcyA9PiAoey4uLnJlcywgcm93Q291bnQ6IHdpdGhPdXRIZWFkZXIubGVuZ3RofSkpXHJcbiAgICAgICAgICB3aXRoT3V0SGVhZGVyLmZvckVhY2gocm93ID0+IHtcclxuICBcclxuICAgICAgICAgICAgY29uc3QgZW1wdHlSb3cgPSByb3cuc3BsaXQoJywnKS5ldmVyeShyb3cgPT4gcm93ID09PSAnJylcclxuICBcclxuICAgICAgICAgICAgaWYgKGVtcHR5Um93KSB0aGlzLnJvd1N1bW1hcnkudXBkYXRlKHJlcyA9PiAoey4uLnJlcywgcm93RW1wdHk6IHJlcy5yb3dFbXB0eSArIDF9KSlcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICByZXR1cm4gX2NodW5rOyAvLyBSZXR1cm4gdGhlIG9yaWdpbmFsIGNodW5rIHRvIGNvbnRpbnVlIHBhcnNpbmdcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yKGVycm9yLCBmaWxlKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnRVJST1InLCBlcnJvciwgZmlsZSlcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAocmVzdWx0cywgX2ZpbGUpID0+IHtcclxuICAgICAgICAgIHRoaXMub25QYXJzZXIuZW1pdChyZXN1bHRzLmRhdGEpXHJcbiAgICAgICAgfSxcclxuICAgICAgfSlcclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy51cHB5Lm9uKCdmaWxlLXJlbW92ZWQnLCAoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2hvd1NhbXBsZSA9IHRydWVcclxuICAgICAgdGhpcy5maWxlUmVtb3ZlZC5lbWl0KClcclxuICAgICAgdGhpcy5maWxlLnNldChudWxsKVxyXG4gICAgICB0aGlzLnJvd1N1bW1hcnkuc2V0KHtyb3dDb3VudDogMCwgcm93RW1wdHk6IDB9KVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb252ZXJ0cyBhIGdpdmVuIG51bWJlciBvZiBieXRlcyBpbnRvIGEgaHVtYW4tcmVhZGFibGUgc3RyaW5nLlxyXG4gICAqIEBwYXJhbSBieXRlcyBUaGUgbnVtYmVyIG9mIGJ5dGVzIHRvIGNvbnZlcnQuXHJcbiAgICogQHBhcmFtIGRlY2ltYWxQb2ludHMgVGhlIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyB0byBkaXNwbGF5LiBEZWZhdWx0cyB0byAyLlxyXG4gICAqIEByZXR1cm5zIEEgc3RyaW5nIGluIHRoZSBmb3JtIG9mIFwiWC5YWCBbdW5pdF1cIiB3aGVyZSBYIGlzIHRoZSBudW1lcmljYWwgdmFsdWUgYW5kIHVuaXQgaXMgdGhlIGFwcHJvcHJpYXRlIHVuaXQgb2YgbWVhc3VyZW1lbnQgKEJ5dGVzLCBLQiwgTUIsIEdCLCBldGMuKS5cclxuICAgKi9cclxuICBmb3JtYXRGaWxlU2l6ZShieXRlczogbnVtYmVyLCBkZWNpbWFsUG9pbnRzID0gMik6IHN0cmluZyB7XHJcbiAgICBpZihieXRlcyA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gYDAgYnl0ZXNgXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaSA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2coVXBweUNvbXBvbmVudC5raWxvYnl0ZSkpXHJcbiAgICBjb25zdCBzaXplID0gKGJ5dGVzIC8gTWF0aC5wb3coVXBweUNvbXBvbmVudC5raWxvYnl0ZSxpKSlcclxuICAgIHJldHVybiBgJHtzaXplLnRvRml4ZWQoZGVjaW1hbFBvaW50cyl9ICR7VXBweUNvbXBvbmVudC5zaXplc1tpXX1gXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgPHVwcHktZGFzaGJvYXJkIFt1cHB5XT1cInVwcHlcIiBbcHJvcHNdPVwiZGFzaGJvYXJkUHJvcHNcIj4gPC91cHB5LWRhc2hib2FyZD5cclxuICAgIDwhLS1wdXQgZXJyb3IgbWVzc2FnZSBkZXNpZ24gaGVyZS0tPlxyXG4gICAgPGEgKm5nSWY9XCJzYW1wbGVVcmwgJiYgc2hvd1NhbXBsZVwiIGNsYXNzPVwic2FtcGxlIHBvc2l0aW9uLWFic29sdXRlXCIgcm9sZT1cImJ1dHRvblwiIFtocmVmXT1cInNhbXBsZVVybFwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtZG93bmxvYWQgbXMtM1wiPjwvaT4gRG93bmxvYWQgVGVtcGxhdGVcclxuICAgIDwvYT5cclxuXHJcbiAgICBAaWYgKGZpbGUoKSAmJiBmaWxlKCk/LnR5cGUgPT09ICd0ZXh0L2NzdicpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtd2FybmluZyBkLWZsZXggZmxleC1jb2x1bW4gZ2FwLTJcIiBzdHlsZT1cIm1hcmdpbjogMXJlbSAwIDAgMDtcIiByb2xlPVwiYWxlcnRcIj5cclxuICAgICAgICAgICAgPGg0IGNsYXNzPVwiYWxlcnQtaGVhZGluZ1wiPkNTViBGaWxlIENvbnRlbnQgU3VtbWFyeTwvaDQ+XHJcbiAgICAgICAgICAgIDxocj5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJmcy02IG0tMFwiPnt7cm93U3VtbWFyeSgpLnJvd0NvdW50fX0gcm93cyBmb3VuZCA8bmctY29udGFpbmVyICpuZ0lmPVwicm93U3VtbWFyeSgpLnJvd0VtcHR5ID4gMFwiPi0ge3tyb3dTdW1tYXJ5KCkucm93RW1wdHl9fSBlbXB0eSBpbiB0aGUgQ1NWIHlvdSB1cGxvYWRlZDwvbmctY29udGFpbmVyPjwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgIH1cclxuPC9kaXY+Il19
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, ChangeDetectionStrategy
|
|
2
|
+
import { input, effect, Component, ChangeDetectionStrategy } from '@angular/core';
|
|
3
3
|
import { Constants } from '@dealpos-npm/ng-dealpos-library/constants';
|
|
4
4
|
|
|
5
5
|
class SerialNoteComponent {
|
|
6
6
|
constructor() {
|
|
7
|
+
this.serials = input([]);
|
|
7
8
|
this.serialNote = '';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
effect(() => {
|
|
10
|
+
const currSerials = this.serials();
|
|
11
|
+
if (currSerials && currSerials.length > 0) {
|
|
12
|
+
this.serialNote = Constants.generateSerialasNote(currSerials);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
13
15
|
}
|
|
14
16
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SerialNoteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", type: SerialNoteComponent, isStandalone: true, selector: "app-serial-note", inputs: { serials: { classPropertyName: "serials", publicName: "serials", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<span>{{serialNote}}</span>", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
16
18
|
}
|
|
17
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SerialNoteComponent, decorators: [{
|
|
18
20
|
type: Component,
|
|
19
21
|
args: [{ selector: 'app-serial-note', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<span>{{serialNote}}</span>" }]
|
|
20
|
-
}],
|
|
21
|
-
type: Input
|
|
22
|
-
}] } });
|
|
22
|
+
}], ctorParameters: () => [] });
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dealpos-npm-ng-dealpos-library-components-serial-note.mjs","sources":["../../../projects/dealpos-npm/ng-dealpos-library/components/serial-note/src/serial-note.component.ts","../../../projects/dealpos-npm/ng-dealpos-library/components/serial-note/src/serial-note.component.html","../../../projects/dealpos-npm/ng-dealpos-library/components/serial-note/dealpos-npm-ng-dealpos-library-components-serial-note.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { Constants } from '@dealpos-npm/ng-dealpos-library/constants';\r\n\r\n@Component({\r\n selector: 'app-serial-note',\r\n templateUrl: './serial-note.component.html',\r\n styleUrls: ['./serial-note.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true\r\n})\r\nexport class SerialNoteComponent {\r\n public serialNote: string = '';\r\n
|
|
1
|
+
{"version":3,"file":"dealpos-npm-ng-dealpos-library-components-serial-note.mjs","sources":["../../../projects/dealpos-npm/ng-dealpos-library/components/serial-note/src/serial-note.component.ts","../../../projects/dealpos-npm/ng-dealpos-library/components/serial-note/src/serial-note.component.html","../../../projects/dealpos-npm/ng-dealpos-library/components/serial-note/dealpos-npm-ng-dealpos-library-components-serial-note.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, effect, input, Input } from '@angular/core';\r\nimport { Constants } from '@dealpos-npm/ng-dealpos-library/constants';\r\n\r\n@Component({\r\n selector: 'app-serial-note',\r\n templateUrl: './serial-note.component.html',\r\n styleUrls: ['./serial-note.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true\r\n})\r\nexport class SerialNoteComponent {\r\n serials = input<any[]>([])\r\n public serialNote: string = '';\r\n\r\n constructor() {\r\n effect(() => {\r\n const currSerials = this.serials()\r\n if (currSerials && currSerials.length > 0) {\r\n this.serialNote = Constants.generateSerialasNote(currSerials);\r\n } \r\n })\r\n }\r\n}\r\n","<span>{{serialNote}}</span>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAUa,mBAAmB,CAAA;AAI9B,IAAA,WAAA,GAAA;AAHA,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAQ,EAAE,CAAC,CAAA;QACnB,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;QAG7B,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;YAClC,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;aAC/D;AACH,SAAC,CAAC,CAAA;KACH;8GAXU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,qNCVhC,6BAA2B,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDUd,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAGV,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,QAAA,EAAA,6BAAA,EAAA,CAAA;;;AERlB;;AAEG;;;;"}
|
|
@@ -92,11 +92,11 @@ class UppyComponent {
|
|
|
92
92
|
return `${size.toFixed(decimalPoints)} ${UppyComponent.sizes[i]}`;
|
|
93
93
|
}
|
|
94
94
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: UppyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
95
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: UppyComponent, isStandalone: true, selector: "POS-uppy", inputs: { sampleUrl: { classPropertyName: "sampleUrl", publicName: "sampleUrl", isSignal: false, isRequired: false, transformFunction: null }, uppyCoreConfiguration: { classPropertyName: "uppyCoreConfiguration", publicName: "uppyCoreConfiguration", isSignal: true, isRequired: false, transformFunction: null }, dashboardPropsConfiguration: { classPropertyName: "dashboardPropsConfiguration", publicName: "dashboardPropsConfiguration", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileUploaded: "fileUploaded", fileRemoved: "fileRemoved", onParser: "onParser" }, ngImport: i0, template: "<div class=\"position-relative\">\r\n <uppy-dashboard [uppy]=\"uppy\" [props]=\"dashboardProps\"> </uppy-dashboard>\r\n <!--put error message design here-->\r\n <a *ngIf=\"sampleUrl && showSample\" class=\"sample position-absolute\" role=\"button\" [href]=\"sampleUrl\">\r\n <i class=\"fa-solid fa-download ms-3\"></i> Download Template\r\n </a>\r\n\r\n @if (file() && file()?.type === 'text/csv') {\r\n <div class=\"alert alert-warning d-flex flex-column gap-2\" style=\"margin: 1rem 0 0 0;\" role=\"alert\">\r\n <h4 class=\"alert-heading\">CSV File Content Summary</h4>\r\n <hr>\r\n <p class=\"fs-6 m-0\">{{rowSummary().rowCount}} rows found - {{rowSummary().rowEmpty}} empty in the CSV you uploaded
|
|
95
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: UppyComponent, isStandalone: true, selector: "POS-uppy", inputs: { sampleUrl: { classPropertyName: "sampleUrl", publicName: "sampleUrl", isSignal: false, isRequired: false, transformFunction: null }, uppyCoreConfiguration: { classPropertyName: "uppyCoreConfiguration", publicName: "uppyCoreConfiguration", isSignal: true, isRequired: false, transformFunction: null }, dashboardPropsConfiguration: { classPropertyName: "dashboardPropsConfiguration", publicName: "dashboardPropsConfiguration", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileUploaded: "fileUploaded", fileRemoved: "fileRemoved", onParser: "onParser" }, ngImport: i0, template: "<div class=\"position-relative\">\r\n <uppy-dashboard [uppy]=\"uppy\" [props]=\"dashboardProps\"> </uppy-dashboard>\r\n <!--put error message design here-->\r\n <a *ngIf=\"sampleUrl && showSample\" class=\"sample position-absolute\" role=\"button\" [href]=\"sampleUrl\">\r\n <i class=\"fa-solid fa-download ms-3\"></i> Download Template\r\n </a>\r\n\r\n @if (file() && file()?.type === 'text/csv') {\r\n <div class=\"alert alert-warning d-flex flex-column gap-2\" style=\"margin: 1rem 0 0 0;\" role=\"alert\">\r\n <h4 class=\"alert-heading\">CSV File Content Summary</h4>\r\n <hr>\r\n <p class=\"fs-6 m-0\">{{rowSummary().rowCount}} rows found <ng-container *ngIf=\"rowSummary().rowEmpty > 0\">- {{rowSummary().rowEmpty}} empty in the CSV you uploaded</ng-container></p>\r\n </div>\r\n \r\n }\r\n</div>", styles: ["::ng-deep .uppy-Dashboard-AddFiles-info{display:none!important}.sample{top:53%;left:calc(50% - 63.5px)}\n"], dependencies: [{ kind: "ngmodule", type: UppyAngularDashboardModule }, { kind: "component", type: i1.DashboardComponent, selector: "uppy-dashboard", inputs: ["uppy", "props"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
96
96
|
}
|
|
97
97
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: UppyComponent, decorators: [{
|
|
98
98
|
type: Component,
|
|
99
|
-
args: [{ selector: 'POS-uppy', standalone: true, imports: [UppyAngularDashboardModule, CommonModule], template: "<div class=\"position-relative\">\r\n <uppy-dashboard [uppy]=\"uppy\" [props]=\"dashboardProps\"> </uppy-dashboard>\r\n <!--put error message design here-->\r\n <a *ngIf=\"sampleUrl && showSample\" class=\"sample position-absolute\" role=\"button\" [href]=\"sampleUrl\">\r\n <i class=\"fa-solid fa-download ms-3\"></i> Download Template\r\n </a>\r\n\r\n @if (file() && file()?.type === 'text/csv') {\r\n <div class=\"alert alert-warning d-flex flex-column gap-2\" style=\"margin: 1rem 0 0 0;\" role=\"alert\">\r\n <h4 class=\"alert-heading\">CSV File Content Summary</h4>\r\n <hr>\r\n <p class=\"fs-6 m-0\">{{rowSummary().rowCount}} rows found - {{rowSummary().rowEmpty}} empty in the CSV you uploaded
|
|
99
|
+
args: [{ selector: 'POS-uppy', standalone: true, imports: [UppyAngularDashboardModule, CommonModule], template: "<div class=\"position-relative\">\r\n <uppy-dashboard [uppy]=\"uppy\" [props]=\"dashboardProps\"> </uppy-dashboard>\r\n <!--put error message design here-->\r\n <a *ngIf=\"sampleUrl && showSample\" class=\"sample position-absolute\" role=\"button\" [href]=\"sampleUrl\">\r\n <i class=\"fa-solid fa-download ms-3\"></i> Download Template\r\n </a>\r\n\r\n @if (file() && file()?.type === 'text/csv') {\r\n <div class=\"alert alert-warning d-flex flex-column gap-2\" style=\"margin: 1rem 0 0 0;\" role=\"alert\">\r\n <h4 class=\"alert-heading\">CSV File Content Summary</h4>\r\n <hr>\r\n <p class=\"fs-6 m-0\">{{rowSummary().rowCount}} rows found <ng-container *ngIf=\"rowSummary().rowEmpty > 0\">- {{rowSummary().rowEmpty}} empty in the CSV you uploaded</ng-container></p>\r\n </div>\r\n \r\n }\r\n</div>", styles: ["::ng-deep .uppy-Dashboard-AddFiles-info{display:none!important}.sample{top:53%;left:calc(50% - 63.5px)}\n"] }]
|
|
100
100
|
}], ctorParameters: () => [], propDecorators: { sampleUrl: [{
|
|
101
101
|
type: Input
|
|
102
102
|
}], fileUploaded: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dealpos-npm-ng-dealpos-library-components-uppy-file-upload.mjs","sources":["../../../projects/dealpos-npm/ng-dealpos-library/components/uppy-file-upload/src/uppy.component.ts","../../../projects/dealpos-npm/ng-dealpos-library/components/uppy-file-upload/src/uppy.component.html","../../../projects/dealpos-npm/ng-dealpos-library/components/uppy-file-upload/dealpos-npm-ng-dealpos-library-components-uppy-file-upload.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\r\nimport { Component, effect, EventEmitter, inject, input, Input, Output, signal } from '@angular/core';\r\nimport { ConvertCsvService } from '@dealpos-npm/ng-dealpos-library/services/csv-parser';\r\nimport { HttpService } from '@dealpos-npm/ng-dealpos-library/services/http';\r\nimport { UppyAngularDashboardModule } from '@uppy/angular';\r\nimport { Uppy } from '@uppy/core';\r\nimport '@uppy/core/dist/style.min.css';\r\nimport '@uppy/dashboard/dist/style.min.css';\r\nimport Papa from 'papaparse';\r\n@Component({\r\n selector: 'POS-uppy',\r\n standalone: true,\r\n imports: [UppyAngularDashboardModule, CommonModule],\r\n templateUrl: './uppy.component.html',\r\n styleUrl: './uppy.component.scss'\r\n})\r\nexport class UppyComponent {\r\n @Input() sampleUrl: string = ''\r\n showSample: boolean = true\r\n uppyCoreConfiguration = input<any>();\r\n dashboardPropsConfiguration = input<any>();\r\n @Output() fileUploaded = new EventEmitter<Blob | File>()\r\n @Output() fileRemoved = new EventEmitter<void>()\r\n @Output() onParser = new EventEmitter<any>()\r\n\r\n http = inject(HttpService)\r\n csvParser = inject(ConvertCsvService)\r\n\r\n rowSummary = signal<{rowCount: number, rowEmpty: number}>({rowCount: 0, rowEmpty: 0})\r\n\r\n file = signal<File | null>(null)\r\n\r\n private static sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] as const\r\n private static kilobyte = 1024\r\n\r\n uppy: Uppy = new Uppy({ \r\n debug: true, \r\n autoProceed: true, \r\n allowMultipleUploadBatches: false,\r\n restrictions: {\r\n allowedFileTypes: ['.csv'],\r\n maxTotalFileSize: 1000000\r\n }\r\n });\r\n \r\n dashboardProps = {\r\n hideUploadButton: true,\r\n width: 580,\r\n height: 350\r\n }\r\n\r\n constructor() {\r\n effect(() => this.uppy.setOptions({...this.uppyCoreConfiguration()}))\r\n effect(() => this.dashboardProps = ({...this.dashboardProps, ...this.dashboardPropsConfiguration()}))\r\n\r\n this.uppy.on('upload', (_, uppyFiles) => {\r\n const file = uppyFiles[0]?.data as File\r\n this.showSample = false\r\n\r\n\r\n this.fileUploaded.emit(file)\r\n this.file.set(uppyFiles[0].data as File)\r\n\r\n Papa.parse(file, {\r\n skipEmptyLines: 'greedy',\r\n header: true,\r\n beforeFirstChunk: (_chunk) => {\r\n \r\n const withOutHeader = _chunk.split(/\\r?\\n/).slice(1)\r\n if (withOutHeader[withOutHeader.length - 1] === '') withOutHeader.pop()\r\n this.rowSummary.update(res => ({...res, rowCount: withOutHeader.length}))\r\n withOutHeader.forEach(row => {\r\n \r\n const emptyRow = row.split(',').every(row => row === '')\r\n \r\n if (emptyRow) this.rowSummary.update(res => ({...res, rowEmpty: res.rowEmpty + 1}))\r\n })\r\n return _chunk; // Return the original chunk to continue parsing\r\n },\r\n error(error, file) {\r\n console.log('ERROR', error, file)\r\n },\r\n complete: (results, _file) => {\r\n this.onParser.emit(results.data)\r\n },\r\n })\r\n })\r\n\r\n this.uppy.on('file-removed', () => {\r\n this.showSample = true\r\n this.fileRemoved.emit()\r\n this.file.set(null)\r\n this.rowSummary.set({rowCount: 0, rowEmpty: 0})\r\n });\r\n }\r\n\r\n /**\r\n * Converts a given number of bytes into a human-readable string.\r\n * @param bytes The number of bytes to convert.\r\n * @param decimalPoints The number of decimal places to display. Defaults to 2.\r\n * @returns A string in the form of \"X.XX [unit]\" where X is the numerical value and unit is the appropriate unit of measurement (Bytes, KB, MB, GB, etc.).\r\n */\r\n formatFileSize(bytes: number, decimalPoints = 2): string {\r\n if(bytes === 0) {\r\n return `0 bytes`\r\n }\r\n\r\n const i = Math.floor(Math.log(bytes) / Math.log(UppyComponent.kilobyte))\r\n const size = (bytes / Math.pow(UppyComponent.kilobyte,i))\r\n return `${size.toFixed(decimalPoints)} ${UppyComponent.sizes[i]}`\r\n }\r\n}\r\n","<div class=\"position-relative\">\r\n <uppy-dashboard [uppy]=\"uppy\" [props]=\"dashboardProps\"> </uppy-dashboard>\r\n <!--put error message design here-->\r\n <a *ngIf=\"sampleUrl && showSample\" class=\"sample position-absolute\" role=\"button\" [href]=\"sampleUrl\">\r\n <i class=\"fa-solid fa-download ms-3\"></i> Download Template\r\n </a>\r\n\r\n @if (file() && file()?.type === 'text/csv') {\r\n <div class=\"alert alert-warning d-flex flex-column gap-2\" style=\"margin: 1rem 0 0 0;\" role=\"alert\">\r\n <h4 class=\"alert-heading\">CSV File Content Summary</h4>\r\n <hr>\r\n <p class=\"fs-6 m-0\">{{rowSummary().rowCount}} rows found - {{rowSummary().rowEmpty}} empty in the CSV you uploaded (size {{formatFileSize(file()?.size!)}})</p>\r\n </div>\r\n \r\n }\r\n</div>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dealpos-npm-ng-dealpos-library-components-uppy-file-upload.mjs","sources":["../../../projects/dealpos-npm/ng-dealpos-library/components/uppy-file-upload/src/uppy.component.ts","../../../projects/dealpos-npm/ng-dealpos-library/components/uppy-file-upload/src/uppy.component.html","../../../projects/dealpos-npm/ng-dealpos-library/components/uppy-file-upload/dealpos-npm-ng-dealpos-library-components-uppy-file-upload.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\r\nimport { Component, effect, EventEmitter, inject, input, Input, Output, signal } from '@angular/core';\r\nimport { ConvertCsvService } from '@dealpos-npm/ng-dealpos-library/services/csv-parser';\r\nimport { HttpService } from '@dealpos-npm/ng-dealpos-library/services/http';\r\nimport { UppyAngularDashboardModule } from '@uppy/angular';\r\nimport { Uppy } from '@uppy/core';\r\nimport '@uppy/core/dist/style.min.css';\r\nimport '@uppy/dashboard/dist/style.min.css';\r\nimport Papa from 'papaparse';\r\n@Component({\r\n selector: 'POS-uppy',\r\n standalone: true,\r\n imports: [UppyAngularDashboardModule, CommonModule],\r\n templateUrl: './uppy.component.html',\r\n styleUrl: './uppy.component.scss'\r\n})\r\nexport class UppyComponent {\r\n @Input() sampleUrl: string = ''\r\n showSample: boolean = true\r\n uppyCoreConfiguration = input<any>();\r\n dashboardPropsConfiguration = input<any>();\r\n @Output() fileUploaded = new EventEmitter<Blob | File>()\r\n @Output() fileRemoved = new EventEmitter<void>()\r\n @Output() onParser = new EventEmitter<any>()\r\n\r\n http = inject(HttpService)\r\n csvParser = inject(ConvertCsvService)\r\n\r\n rowSummary = signal<{rowCount: number, rowEmpty: number}>({rowCount: 0, rowEmpty: 0})\r\n\r\n file = signal<File | null>(null)\r\n\r\n private static sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] as const\r\n private static kilobyte = 1024\r\n\r\n uppy: Uppy = new Uppy({ \r\n debug: true, \r\n autoProceed: true, \r\n allowMultipleUploadBatches: false,\r\n restrictions: {\r\n allowedFileTypes: ['.csv'],\r\n maxTotalFileSize: 1000000\r\n }\r\n });\r\n \r\n dashboardProps = {\r\n hideUploadButton: true,\r\n width: 580,\r\n height: 350\r\n }\r\n\r\n constructor() {\r\n effect(() => this.uppy.setOptions({...this.uppyCoreConfiguration()}))\r\n effect(() => this.dashboardProps = ({...this.dashboardProps, ...this.dashboardPropsConfiguration()}))\r\n\r\n this.uppy.on('upload', (_, uppyFiles) => {\r\n const file = uppyFiles[0]?.data as File\r\n this.showSample = false\r\n\r\n\r\n this.fileUploaded.emit(file)\r\n this.file.set(uppyFiles[0].data as File)\r\n\r\n Papa.parse(file, {\r\n skipEmptyLines: 'greedy',\r\n header: true,\r\n beforeFirstChunk: (_chunk) => {\r\n \r\n const withOutHeader = _chunk.split(/\\r?\\n/).slice(1)\r\n if (withOutHeader[withOutHeader.length - 1] === '') withOutHeader.pop()\r\n this.rowSummary.update(res => ({...res, rowCount: withOutHeader.length}))\r\n withOutHeader.forEach(row => {\r\n \r\n const emptyRow = row.split(',').every(row => row === '')\r\n \r\n if (emptyRow) this.rowSummary.update(res => ({...res, rowEmpty: res.rowEmpty + 1}))\r\n })\r\n return _chunk; // Return the original chunk to continue parsing\r\n },\r\n error(error, file) {\r\n console.log('ERROR', error, file)\r\n },\r\n complete: (results, _file) => {\r\n this.onParser.emit(results.data)\r\n },\r\n })\r\n })\r\n\r\n this.uppy.on('file-removed', () => {\r\n this.showSample = true\r\n this.fileRemoved.emit()\r\n this.file.set(null)\r\n this.rowSummary.set({rowCount: 0, rowEmpty: 0})\r\n });\r\n }\r\n\r\n /**\r\n * Converts a given number of bytes into a human-readable string.\r\n * @param bytes The number of bytes to convert.\r\n * @param decimalPoints The number of decimal places to display. Defaults to 2.\r\n * @returns A string in the form of \"X.XX [unit]\" where X is the numerical value and unit is the appropriate unit of measurement (Bytes, KB, MB, GB, etc.).\r\n */\r\n formatFileSize(bytes: number, decimalPoints = 2): string {\r\n if(bytes === 0) {\r\n return `0 bytes`\r\n }\r\n\r\n const i = Math.floor(Math.log(bytes) / Math.log(UppyComponent.kilobyte))\r\n const size = (bytes / Math.pow(UppyComponent.kilobyte,i))\r\n return `${size.toFixed(decimalPoints)} ${UppyComponent.sizes[i]}`\r\n }\r\n}\r\n","<div class=\"position-relative\">\r\n <uppy-dashboard [uppy]=\"uppy\" [props]=\"dashboardProps\"> </uppy-dashboard>\r\n <!--put error message design here-->\r\n <a *ngIf=\"sampleUrl && showSample\" class=\"sample position-absolute\" role=\"button\" [href]=\"sampleUrl\">\r\n <i class=\"fa-solid fa-download ms-3\"></i> Download Template\r\n </a>\r\n\r\n @if (file() && file()?.type === 'text/csv') {\r\n <div class=\"alert alert-warning d-flex flex-column gap-2\" style=\"margin: 1rem 0 0 0;\" role=\"alert\">\r\n <h4 class=\"alert-heading\">CSV File Content Summary</h4>\r\n <hr>\r\n <p class=\"fs-6 m-0\">{{rowSummary().rowCount}} rows found <ng-container *ngIf=\"rowSummary().rowEmpty > 0\">- {{rowSummary().rowEmpty}} empty in the CSV you uploaded</ng-container></p>\r\n </div>\r\n \r\n }\r\n</div>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dealpos-npm/ng-dealpos-library",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.2",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^18.2.0",
|
|
6
6
|
"@angular/core": "^18.2.0",
|
|
@@ -44,18 +44,18 @@
|
|
|
44
44
|
"esm": "./esm2022/store-signal/dealpos-npm-ng-dealpos-library-store-signal.mjs",
|
|
45
45
|
"default": "./fesm2022/dealpos-npm-ng-dealpos-library-store-signal.mjs"
|
|
46
46
|
},
|
|
47
|
-
"./components/datepicker-range": {
|
|
48
|
-
"types": "./components/datepicker-range/index.d.ts",
|
|
49
|
-
"esm2022": "./esm2022/components/datepicker-range/dealpos-npm-ng-dealpos-library-components-datepicker-range.mjs",
|
|
50
|
-
"esm": "./esm2022/components/datepicker-range/dealpos-npm-ng-dealpos-library-components-datepicker-range.mjs",
|
|
51
|
-
"default": "./fesm2022/dealpos-npm-ng-dealpos-library-components-datepicker-range.mjs"
|
|
52
|
-
},
|
|
53
47
|
"./components/datepicker": {
|
|
54
48
|
"types": "./components/datepicker/index.d.ts",
|
|
55
49
|
"esm2022": "./esm2022/components/datepicker/dealpos-npm-ng-dealpos-library-components-datepicker.mjs",
|
|
56
50
|
"esm": "./esm2022/components/datepicker/dealpos-npm-ng-dealpos-library-components-datepicker.mjs",
|
|
57
51
|
"default": "./fesm2022/dealpos-npm-ng-dealpos-library-components-datepicker.mjs"
|
|
58
52
|
},
|
|
53
|
+
"./components/datepicker-range": {
|
|
54
|
+
"types": "./components/datepicker-range/index.d.ts",
|
|
55
|
+
"esm2022": "./esm2022/components/datepicker-range/dealpos-npm-ng-dealpos-library-components-datepicker-range.mjs",
|
|
56
|
+
"esm": "./esm2022/components/datepicker-range/dealpos-npm-ng-dealpos-library-components-datepicker-range.mjs",
|
|
57
|
+
"default": "./fesm2022/dealpos-npm-ng-dealpos-library-components-datepicker-range.mjs"
|
|
58
|
+
},
|
|
59
59
|
"./components/dialog": {
|
|
60
60
|
"types": "./components/dialog/index.d.ts",
|
|
61
61
|
"esm2022": "./esm2022/components/dialog/dealpos-npm-ng-dealpos-library-components-dialog.mjs",
|
|
@@ -80,18 +80,18 @@
|
|
|
80
80
|
"esm": "./esm2022/components/ng-select-infinite/dealpos-npm-ng-dealpos-library-components-ng-select-infinite.mjs",
|
|
81
81
|
"default": "./fesm2022/dealpos-npm-ng-dealpos-library-components-ng-select-infinite.mjs"
|
|
82
82
|
},
|
|
83
|
-
"./components/serial-note": {
|
|
84
|
-
"types": "./components/serial-note/index.d.ts",
|
|
85
|
-
"esm2022": "./esm2022/components/serial-note/dealpos-npm-ng-dealpos-library-components-serial-note.mjs",
|
|
86
|
-
"esm": "./esm2022/components/serial-note/dealpos-npm-ng-dealpos-library-components-serial-note.mjs",
|
|
87
|
-
"default": "./fesm2022/dealpos-npm-ng-dealpos-library-components-serial-note.mjs"
|
|
88
|
-
},
|
|
89
83
|
"./components/radio-options": {
|
|
90
84
|
"types": "./components/radio-options/index.d.ts",
|
|
91
85
|
"esm2022": "./esm2022/components/radio-options/dealpos-npm-ng-dealpos-library-components-radio-options.mjs",
|
|
92
86
|
"esm": "./esm2022/components/radio-options/dealpos-npm-ng-dealpos-library-components-radio-options.mjs",
|
|
93
87
|
"default": "./fesm2022/dealpos-npm-ng-dealpos-library-components-radio-options.mjs"
|
|
94
88
|
},
|
|
89
|
+
"./components/serial-note": {
|
|
90
|
+
"types": "./components/serial-note/index.d.ts",
|
|
91
|
+
"esm2022": "./esm2022/components/serial-note/dealpos-npm-ng-dealpos-library-components-serial-note.mjs",
|
|
92
|
+
"esm": "./esm2022/components/serial-note/dealpos-npm-ng-dealpos-library-components-serial-note.mjs",
|
|
93
|
+
"default": "./fesm2022/dealpos-npm-ng-dealpos-library-components-serial-note.mjs"
|
|
94
|
+
},
|
|
95
95
|
"./components/timepicker": {
|
|
96
96
|
"types": "./components/timepicker/index.d.ts",
|
|
97
97
|
"esm2022": "./esm2022/components/timepicker/dealpos-npm-ng-dealpos-library-components-timepicker.mjs",
|
|
@@ -128,23 +128,17 @@
|
|
|
128
128
|
"esm": "./esm2022/directives/file-drag-drop/dealpos-npm-ng-dealpos-library-directives-file-drag-drop.mjs",
|
|
129
129
|
"default": "./fesm2022/dealpos-npm-ng-dealpos-library-directives-file-drag-drop.mjs"
|
|
130
130
|
},
|
|
131
|
-
"./directives/form-or-floating-on-masked": {
|
|
132
|
-
"types": "./directives/form-or-floating-on-masked/index.d.ts",
|
|
133
|
-
"esm2022": "./esm2022/directives/form-or-floating-on-masked/dealpos-npm-ng-dealpos-library-directives-form-or-floating-on-masked.mjs",
|
|
134
|
-
"esm": "./esm2022/directives/form-or-floating-on-masked/dealpos-npm-ng-dealpos-library-directives-form-or-floating-on-masked.mjs",
|
|
135
|
-
"default": "./fesm2022/dealpos-npm-ng-dealpos-library-directives-form-or-floating-on-masked.mjs"
|
|
136
|
-
},
|
|
137
131
|
"./directives/file-size-check": {
|
|
138
132
|
"types": "./directives/file-size-check/index.d.ts",
|
|
139
133
|
"esm2022": "./esm2022/directives/file-size-check/dealpos-npm-ng-dealpos-library-directives-file-size-check.mjs",
|
|
140
134
|
"esm": "./esm2022/directives/file-size-check/dealpos-npm-ng-dealpos-library-directives-file-size-check.mjs",
|
|
141
135
|
"default": "./fesm2022/dealpos-npm-ng-dealpos-library-directives-file-size-check.mjs"
|
|
142
136
|
},
|
|
143
|
-
"./directives/
|
|
144
|
-
"types": "./directives/
|
|
145
|
-
"esm2022": "./esm2022/directives/
|
|
146
|
-
"esm": "./esm2022/directives/
|
|
147
|
-
"default": "./fesm2022/dealpos-npm-ng-dealpos-library-directives-
|
|
137
|
+
"./directives/form-or-floating-on-masked": {
|
|
138
|
+
"types": "./directives/form-or-floating-on-masked/index.d.ts",
|
|
139
|
+
"esm2022": "./esm2022/directives/form-or-floating-on-masked/dealpos-npm-ng-dealpos-library-directives-form-or-floating-on-masked.mjs",
|
|
140
|
+
"esm": "./esm2022/directives/form-or-floating-on-masked/dealpos-npm-ng-dealpos-library-directives-form-or-floating-on-masked.mjs",
|
|
141
|
+
"default": "./fesm2022/dealpos-npm-ng-dealpos-library-directives-form-or-floating-on-masked.mjs"
|
|
148
142
|
},
|
|
149
143
|
"./directives/numeric-input-only": {
|
|
150
144
|
"types": "./directives/numeric-input-only/index.d.ts",
|
|
@@ -152,23 +146,23 @@
|
|
|
152
146
|
"esm": "./esm2022/directives/numeric-input-only/dealpos-npm-ng-dealpos-library-directives-numeric-input-only.mjs",
|
|
153
147
|
"default": "./fesm2022/dealpos-npm-ng-dealpos-library-directives-numeric-input-only.mjs"
|
|
154
148
|
},
|
|
149
|
+
"./directives/is-invalid-email-or-phone": {
|
|
150
|
+
"types": "./directives/is-invalid-email-or-phone/index.d.ts",
|
|
151
|
+
"esm2022": "./esm2022/directives/is-invalid-email-or-phone/dealpos-npm-ng-dealpos-library-directives-is-invalid-email-or-phone.mjs",
|
|
152
|
+
"esm": "./esm2022/directives/is-invalid-email-or-phone/dealpos-npm-ng-dealpos-library-directives-is-invalid-email-or-phone.mjs",
|
|
153
|
+
"default": "./fesm2022/dealpos-npm-ng-dealpos-library-directives-is-invalid-email-or-phone.mjs"
|
|
154
|
+
},
|
|
155
155
|
"./directives/simple-keyboard": {
|
|
156
156
|
"types": "./directives/simple-keyboard/index.d.ts",
|
|
157
157
|
"esm2022": "./esm2022/directives/simple-keyboard/dealpos-npm-ng-dealpos-library-directives-simple-keyboard.mjs",
|
|
158
158
|
"esm": "./esm2022/directives/simple-keyboard/dealpos-npm-ng-dealpos-library-directives-simple-keyboard.mjs",
|
|
159
159
|
"default": "./fesm2022/dealpos-npm-ng-dealpos-library-directives-simple-keyboard.mjs"
|
|
160
160
|
},
|
|
161
|
-
"./pipes/
|
|
162
|
-
"types": "./pipes/
|
|
163
|
-
"esm2022": "./esm2022/pipes/
|
|
164
|
-
"esm": "./esm2022/pipes/
|
|
165
|
-
"default": "./fesm2022/dealpos-npm-ng-dealpos-library-pipes-
|
|
166
|
-
},
|
|
167
|
-
"./pipes/fraction": {
|
|
168
|
-
"types": "./pipes/fraction/index.d.ts",
|
|
169
|
-
"esm2022": "./esm2022/pipes/fraction/dealpos-npm-ng-dealpos-library-pipes-fraction.mjs",
|
|
170
|
-
"esm": "./esm2022/pipes/fraction/dealpos-npm-ng-dealpos-library-pipes-fraction.mjs",
|
|
171
|
-
"default": "./fesm2022/dealpos-npm-ng-dealpos-library-pipes-fraction.mjs"
|
|
161
|
+
"./pipes/duration": {
|
|
162
|
+
"types": "./pipes/duration/index.d.ts",
|
|
163
|
+
"esm2022": "./esm2022/pipes/duration/dealpos-npm-ng-dealpos-library-pipes-duration.mjs",
|
|
164
|
+
"esm": "./esm2022/pipes/duration/dealpos-npm-ng-dealpos-library-pipes-duration.mjs",
|
|
165
|
+
"default": "./fesm2022/dealpos-npm-ng-dealpos-library-pipes-duration.mjs"
|
|
172
166
|
},
|
|
173
167
|
"./pipes/filter": {
|
|
174
168
|
"types": "./pipes/filter/index.d.ts",
|
|
@@ -176,11 +170,17 @@
|
|
|
176
170
|
"esm": "./esm2022/pipes/filter/dealpos-npm-ng-dealpos-library-pipes-filter.mjs",
|
|
177
171
|
"default": "./fesm2022/dealpos-npm-ng-dealpos-library-pipes-filter.mjs"
|
|
178
172
|
},
|
|
179
|
-
"./pipes/
|
|
180
|
-
"types": "./pipes/
|
|
181
|
-
"esm2022": "./esm2022/pipes/
|
|
182
|
-
"esm": "./esm2022/pipes/
|
|
183
|
-
"default": "./fesm2022/dealpos-npm-ng-dealpos-library-pipes-
|
|
173
|
+
"./pipes/fraction": {
|
|
174
|
+
"types": "./pipes/fraction/index.d.ts",
|
|
175
|
+
"esm2022": "./esm2022/pipes/fraction/dealpos-npm-ng-dealpos-library-pipes-fraction.mjs",
|
|
176
|
+
"esm": "./esm2022/pipes/fraction/dealpos-npm-ng-dealpos-library-pipes-fraction.mjs",
|
|
177
|
+
"default": "./fesm2022/dealpos-npm-ng-dealpos-library-pipes-fraction.mjs"
|
|
178
|
+
},
|
|
179
|
+
"./pipes/newlines": {
|
|
180
|
+
"types": "./pipes/newlines/index.d.ts",
|
|
181
|
+
"esm2022": "./esm2022/pipes/newlines/dealpos-npm-ng-dealpos-library-pipes-newlines.mjs",
|
|
182
|
+
"esm": "./esm2022/pipes/newlines/dealpos-npm-ng-dealpos-library-pipes-newlines.mjs",
|
|
183
|
+
"default": "./fesm2022/dealpos-npm-ng-dealpos-library-pipes-newlines.mjs"
|
|
184
184
|
},
|
|
185
185
|
"./services/csv-parser": {
|
|
186
186
|
"types": "./services/csv-parser/index.d.ts",
|