@dealpos-npm/ng-dealpos-library 4.2.0 → 4.3.0

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,8 +1,10 @@
1
+ import { ChangeDetectorRef } from '@angular/core';
1
2
  import * as i0 from "@angular/core";
2
3
  export declare class SerialNoteComponent {
4
+ private cdr;
3
5
  serials: import("@angular/core").InputSignal<any[]>;
4
6
  serialNote: string;
5
- constructor();
7
+ constructor(cdr: ChangeDetectorRef);
6
8
  static ɵfac: i0.ɵɵFactoryDeclaration<SerialNoteComponent, never>;
7
9
  static ɵcmp: i0.ɵɵComponentDeclaration<SerialNoteComponent, "app-serial-note", never, { "serials": { "alias": "serials"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
8
10
  }
@@ -9,9 +9,10 @@ export declare class UppyComponent {
9
9
  sampleUrl: string;
10
10
  subtitle: string;
11
11
  showSample: boolean;
12
+ showSubtitle: boolean;
12
13
  uppyCoreConfiguration: import("@angular/core").InputSignal<any>;
13
14
  dashboardPropsConfiguration: import("@angular/core").InputSignal<any>;
14
- fileUploaded: EventEmitter<Blob | File>;
15
+ fileUploaded: EventEmitter<File | Blob>;
15
16
  fileRemoved: EventEmitter<void>;
16
17
  onParser: EventEmitter<any>;
17
18
  http: HttpService;
@@ -2,21 +2,23 @@ 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
- constructor() {
5
+ constructor(cdr) {
6
+ this.cdr = cdr;
6
7
  this.serials = input([]);
7
8
  this.serialNote = '';
8
9
  effect(() => {
9
10
  const currSerials = this.serials();
10
11
  if (currSerials && currSerials.length > 0) {
11
12
  this.serialNote = Constants.generateSerialasNote(currSerials);
13
+ cdr.markForCheck();
12
14
  }
13
15
  });
14
16
  }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SerialNoteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SerialNoteComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
16
18
  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 }); }
17
19
  }
18
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SerialNoteComponent, decorators: [{
19
21
  type: Component,
20
22
  args: [{ selector: 'app-serial-note', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<span>{{serialNote}}</span>" }]
21
- }], ctorParameters: () => [] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsLW5vdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVhbHBvcy1ucG0vbmctZGVhbHBvcy1saWJyYXJ5L2NvbXBvbmVudHMvc2VyaWFsLW5vdGUvc3JjL3NlcmlhbC1ub3RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RlYWxwb3MtbnBtL25nLWRlYWxwb3MtbGlicmFyeS9jb21wb25lbnRzL3NlcmlhbC1ub3RlL3NyYy9zZXJpYWwtbm90ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOztBQVN0RSxNQUFNLE9BQU8sbUJBQW1CO0lBSTlCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBUSxFQUFFLENBQUMsQ0FBQTtRQUNuQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBRzdCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7WUFDbEMsSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDMUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDaEUsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs4R0FYVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixxTkNWaEMsNkJBQTJCOzsyRkRVZCxtQkFBbUI7a0JBUC9CLFNBQVM7K0JBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGVmZmVjdCwgaW5wdXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJ0BkZWFscG9zLW5wbS9uZy1kZWFscG9zLWxpYnJhcnkvY29uc3RhbnRzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXNlcmlhbC1ub3RlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VyaWFsLW5vdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NlcmlhbC1ub3RlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VyaWFsTm90ZUNvbXBvbmVudCB7XHJcbiAgc2VyaWFscyA9IGlucHV0PGFueVtdPihbXSlcclxuICBwdWJsaWMgc2VyaWFsTm90ZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgY29uc3QgY3VyclNlcmlhbHMgPSB0aGlzLnNlcmlhbHMoKVxyXG4gICAgICBpZiAoY3VyclNlcmlhbHMgJiYgY3VyclNlcmlhbHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuc2VyaWFsTm90ZSA9IENvbnN0YW50cy5nZW5lcmF0ZVNlcmlhbGFzTm90ZShjdXJyU2VyaWFscyk7XHJcbiAgICAgIH0gXHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG4iLCI8c3Bhbj57e3NlcmlhbE5vdGV9fTwvc3Bhbj4iXX0=
23
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsLW5vdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVhbHBvcy1ucG0vbmctZGVhbHBvcy1saWJyYXJ5L2NvbXBvbmVudHMvc2VyaWFsLW5vdGUvc3JjL3NlcmlhbC1ub3RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RlYWxwb3MtbnBtL25nLWRlYWxwb3MtbGlicmFyeS9jb21wb25lbnRzL3NlcmlhbC1ub3RlL3NyYy9zZXJpYWwtbm90ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7QUFTdEUsTUFBTSxPQUFPLG1CQUFtQjtJQUk5QixZQUNVLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBSmhDLFlBQU8sR0FBRyxLQUFLLENBQVEsRUFBRSxDQUFDLENBQUE7UUFDbkIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUs3QixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO1lBQ2xDLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUM5RCxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDckIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs4R0FkVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixxTkNWaEMsNkJBQTJCOzsyRkRVZCxtQkFBbUI7a0JBUC9CLFNBQVM7K0JBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBlZmZlY3QsIGlucHV0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb25zdGFudHMgfSBmcm9tICdAZGVhbHBvcy1ucG0vbmctZGVhbHBvcy1saWJyYXJ5L2NvbnN0YW50cyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zZXJpYWwtbm90ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlcmlhbC1ub3RlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zZXJpYWwtbm90ZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlcmlhbE5vdGVDb21wb25lbnQge1xyXG4gIHNlcmlhbHMgPSBpbnB1dDxhbnlbXT4oW10pXHJcbiAgcHVibGljIHNlcmlhbE5vdGU6IHN0cmluZyA9ICcnO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgY29uc3QgY3VyclNlcmlhbHMgPSB0aGlzLnNlcmlhbHMoKVxyXG4gICAgICBpZiAoY3VyclNlcmlhbHMgJiYgY3VyclNlcmlhbHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuc2VyaWFsTm90ZSA9IENvbnN0YW50cy5nZW5lcmF0ZVNlcmlhbGFzTm90ZShjdXJyU2VyaWFscyk7XHJcbiAgICAgICAgY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9IFxyXG4gICAgfSlcclxuICB9XHJcbn1cclxuIiwiPHNwYW4+e3tzZXJpYWxOb3RlfX08L3NwYW4+Il19
@@ -6,6 +6,8 @@ import { UppyAngularDashboardModule } from '@uppy/angular';
6
6
  import { Uppy } from '@uppy/core';
7
7
  import '@uppy/core/dist/style.min.css';
8
8
  import '@uppy/dashboard/dist/style.min.css';
9
+ import Transloadit, { COMPANION_ALLOWED_HOSTS, COMPANION_URL } from '@uppy/transloadit';
10
+ import Url from '@uppy/url';
9
11
  import Papa from 'papaparse';
10
12
  import * as i0 from "@angular/core";
11
13
  import * as i1 from "@uppy/angular";
@@ -17,6 +19,7 @@ export class UppyComponent {
17
19
  this.sampleUrl = '';
18
20
  this.subtitle = '';
19
21
  this.showSample = true;
22
+ this.showSubtitle = true;
20
23
  this.uppyCoreConfiguration = input();
21
24
  this.dashboardPropsConfiguration = input();
22
25
  this.fileUploaded = new EventEmitter();
@@ -34,6 +37,16 @@ export class UppyComponent {
34
37
  allowedFileTypes: ['.csv'],
35
38
  maxTotalFileSize: 1000000
36
39
  }
40
+ }).use(Transloadit, {
41
+ assemblyOptions: {
42
+ params: {
43
+ auth: { key: 'be93ff5b09084a3f8f7faa856c4b01f8' },
44
+ template_id: '745e5882f06a41b5bd383ba03c5b0dc1'
45
+ }
46
+ }
47
+ }).use(Url, {
48
+ companionUrl: COMPANION_URL,
49
+ companionAllowedHosts: COMPANION_ALLOWED_HOSTS
37
50
  });
38
51
  this.dashboardProps = {
39
52
  hideUploadButton: true,
@@ -44,6 +57,7 @@ export class UppyComponent {
44
57
  this.uppy.on('upload', (_, uppyFiles) => {
45
58
  const file = uppyFiles[0]?.data;
46
59
  this.showSample = false;
60
+ this.showSubtitle = false;
47
61
  this.fileUploaded.emit(file);
48
62
  this.file.set(uppyFiles[0].data);
49
63
  Papa.parse(file, {
@@ -71,6 +85,7 @@ export class UppyComponent {
71
85
  });
72
86
  this.uppy.on('file-removed', () => {
73
87
  this.showSample = true;
88
+ this.showSubtitle = true;
74
89
  this.fileRemoved.emit();
75
90
  this.file.set(null);
76
91
  this.rowSummary.set({ rowCount: 0, rowEmpty: 0 });
@@ -91,11 +106,11 @@ export class UppyComponent {
91
106
  return `${size.toFixed(decimalPoints)} ${UppyComponent.sizes[i]}`;
92
107
  }
93
108
  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 }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", 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 <small *ngIf=\"subtitle\" class=\"subtitle position-absolute\">{{subtitle}}</small>\r\n <a *ngIf=\"sampleUrl && showSample\" class=\"sample position-absolute\" [class.top-58]=\"subtitle\" role=\"button\"\r\n [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\">-\r\n {{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}::ng-deep .uppy-Dashboard-AddFiles-list{flex:none;flex-direction:row;flex-wrap:wrap;justify-content:center;max-width:600px;margin-top:15px;padding-top:0;overflow-y:visible}.sample,.subtitle{top:56%;width:100%;text-align:center}.top-58{top:61%}\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"] }] }); }
109
+ 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 }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", 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 <small *ngIf=\"subtitle && showSubtitle\" class=\"subtitle position-absolute\">{{subtitle}}</small>\r\n <a *ngIf=\"sampleUrl && showSample\" class=\"sample position-absolute\" [class.top-58]=\"subtitle\" role=\"button\"\r\n [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\">-\r\n {{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}::ng-deep .uppy-Dashboard-AddFiles-list{flex:none;flex-direction:row;flex-wrap:wrap;justify-content:center;max-width:600px;margin-top:15px;padding-top:0;overflow-y:visible}.sample,.subtitle{top:56%;width:100%;text-align:center}.top-58{top:61%}\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
110
  }
96
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: UppyComponent, decorators: [{
97
112
  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 <small *ngIf=\"subtitle\" class=\"subtitle position-absolute\">{{subtitle}}</small>\r\n <a *ngIf=\"sampleUrl && showSample\" class=\"sample position-absolute\" [class.top-58]=\"subtitle\" role=\"button\"\r\n [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\">-\r\n {{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}::ng-deep .uppy-Dashboard-AddFiles-list{flex:none;flex-direction:row;flex-wrap:wrap;justify-content:center;max-width:600px;margin-top:15px;padding-top:0;overflow-y:visible}.sample,.subtitle{top:56%;width:100%;text-align:center}.top-58{top:61%}\n"] }]
113
+ 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 <small *ngIf=\"subtitle && showSubtitle\" class=\"subtitle position-absolute\">{{subtitle}}</small>\r\n <a *ngIf=\"sampleUrl && showSample\" class=\"sample position-absolute\" [class.top-58]=\"subtitle\" role=\"button\"\r\n [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\">-\r\n {{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}::ng-deep .uppy-Dashboard-AddFiles-list{flex:none;flex-direction:row;flex-wrap:wrap;justify-content:center;max-width:600px;margin-top:15px;padding-top:0;overflow-y:visible}.sample,.subtitle{top:56%;width:100%;text-align:center}.top-58{top:61%}\n"] }]
99
114
  }], ctorParameters: () => [], propDecorators: { sampleUrl: [{
100
115
  type: Input
101
116
  }], subtitle: [{
@@ -107,4 +122,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
107
122
  }], onParser: [{
108
123
  type: Output
109
124
  }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBweS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZWFscG9zLW5wbS9uZy1kZWFscG9zLWxpYnJhcnkvY29tcG9uZW50cy91cHB5LWZpbGUtdXBsb2FkL3NyYy91cHB5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RlYWxwb3MtbnBtL25nLWRlYWxwb3MtbGlicmFyeS9jb21wb25lbnRzL3VwcHktZmlsZS11cGxvYWQvc3JjL3VwcHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNsQyxPQUFPLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDOzs7O0FBUzdCLE1BQU0sT0FBTyxhQUFhO2FBaUJULFVBQUssR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFVLEFBQXJFLENBQXFFO2FBQzFFLGFBQVEsR0FBRyxJQUFJLEFBQVAsQ0FBTztJQWlCOUI7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LENBQUM7WUFDZixPQUFPLFNBQVMsQ0FBQTtRQUNsQixDQUFDO1FBRUQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7UUFDeEUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDekQsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ25FLENBQUM7OEdBOUZVLGFBQWE7a0dBQWIsYUFBYSxzeEJDakIxQixnOEJBaUJNLDZXREpNLDBCQUEwQix5SUFBRSxZQUFZOzsyRkFJdkMsYUFBYTtrQkFQekIsU0FBUzsrQkFDRSxVQUFVLGNBQ1IsSUFBSSxXQUNQLENBQUMsMEJBQTBCLEVBQUUsWUFBWSxDQUFDO3dEQUsxQyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIGVmZmVjdCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIGlucHV0LCBJbnB1dCwgT3V0cHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udmVydENzdlNlcnZpY2UgfSBmcm9tICdAZGVhbHBvcy1ucG0vbmctZGVhbHBvcy1saWJyYXJ5L3NlcnZpY2VzL2Nzdi1wYXJzZXInO1xyXG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJ0BkZWFscG9zLW5wbS9uZy1kZWFscG9zLWxpYnJhcnkvc2VydmljZXMvaHR0cCc7XHJcbmltcG9ydCB7IFVwcHlBbmd1bGFyRGFzaGJvYXJkTW9kdWxlIH0gZnJvbSAnQHVwcHkvYW5ndWxhcic7XHJcbmltcG9ydCB7IFVwcHkgfSBmcm9tICdAdXBweS9jb3JlJztcclxuaW1wb3J0ICdAdXBweS9jb3JlL2Rpc3Qvc3R5bGUubWluLmNzcyc7XHJcbmltcG9ydCAnQHVwcHkvZGFzaGJvYXJkL2Rpc3Qvc3R5bGUubWluLmNzcyc7XHJcbmltcG9ydCBQYXBhIGZyb20gJ3BhcGFwYXJzZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ1BPUy11cHB5JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtVcHB5QW5ndWxhckRhc2hib2FyZE1vZHVsZSwgQ29tbW9uTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXBweS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3VwcHkuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcHB5Q29tcG9uZW50IHtcclxuICBASW5wdXQoKSBzYW1wbGVVcmw6IHN0cmluZyA9ICcnXHJcbiAgQElucHV0KCkgc3VidGl0bGU6IHN0cmluZyA9ICcnXHJcbiAgc2hvd1NhbXBsZTogYm9vbGVhbiA9IHRydWVcclxuICB1cHB5Q29yZUNvbmZpZ3VyYXRpb24gPSBpbnB1dDxhbnk+KCk7XHJcbiAgZGFzaGJvYXJkUHJvcHNDb25maWd1cmF0aW9uID0gaW5wdXQ8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBmaWxlVXBsb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEJsb2IgfCBGaWxlPigpXHJcbiAgQE91dHB1dCgpIGZpbGVSZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpXHJcbiAgQE91dHB1dCgpIG9uUGFyc2VyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcclxuXHJcbiAgaHR0cCA9IGluamVjdChIdHRwU2VydmljZSlcclxuICBjc3ZQYXJzZXIgPSBpbmplY3QoQ29udmVydENzdlNlcnZpY2UpXHJcblxyXG4gIHJvd1N1bW1hcnkgPSBzaWduYWw8e3Jvd0NvdW50OiBudW1iZXIsIHJvd0VtcHR5OiBudW1iZXJ9Pih7cm93Q291bnQ6IDAsIHJvd0VtcHR5OiAwfSlcclxuXHJcbiAgZmlsZSA9IHNpZ25hbDxGaWxlIHwgbnVsbD4obnVsbClcclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgc2l6ZXMgPSBbJ0J5dGVzJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJywgJ0VCJywgJ1pCJywgJ1lCJ10gYXMgY29uc3RcclxuICBwcml2YXRlIHN0YXRpYyBraWxvYnl0ZSA9IDEwMjRcclxuXHJcbiAgdXBweTogVXBweSA9IG5ldyBVcHB5KHsgXHJcbiAgICBkZWJ1ZzogdHJ1ZSwgXHJcbiAgICBhdXRvUHJvY2VlZDogdHJ1ZSwgXHJcbiAgICBhbGxvd011bHRpcGxlVXBsb2FkQmF0Y2hlczogZmFsc2UsXHJcbiAgICByZXN0cmljdGlvbnM6IHtcclxuICAgICAgYWxsb3dlZEZpbGVUeXBlczogWycuY3N2J10sXHJcbiAgICAgIG1heFRvdGFsRmlsZVNpemU6IDEwMDAwMDBcclxuICAgIH1cclxuICB9KTtcclxuICBcclxuICBkYXNoYm9hcmRQcm9wcyA9IHtcclxuICAgIGhpZGVVcGxvYWRCdXR0b246IHRydWUsXHJcbiAgICBoZWlnaHQ6IDM1MFxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy51cHB5LnNldE9wdGlvbnMoey4uLnRoaXMudXBweUNvcmVDb25maWd1cmF0aW9uKCl9KSlcclxuICAgIGVmZmVjdCgoKSA9PiB0aGlzLmRhc2hib2FyZFByb3BzID0gKHsuLi50aGlzLmRhc2hib2FyZFByb3BzLCAuLi50aGlzLmRhc2hib2FyZFByb3BzQ29uZmlndXJhdGlvbigpfSkpXHJcblxyXG4gICAgdGhpcy51cHB5Lm9uKCd1cGxvYWQnLCAoXywgdXBweUZpbGVzKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbGUgPSB1cHB5RmlsZXNbMF0/LmRhdGEgYXMgRmlsZVxyXG4gICAgICB0aGlzLnNob3dTYW1wbGUgPSBmYWxzZVxyXG5cclxuXHJcbiAgICAgIHRoaXMuZmlsZVVwbG9hZGVkLmVtaXQoZmlsZSlcclxuICAgICAgdGhpcy5maWxlLnNldCh1cHB5RmlsZXNbMF0uZGF0YSBhcyBGaWxlKVxyXG5cclxuICAgICAgUGFwYS5wYXJzZShmaWxlLCB7XHJcbiAgICAgICAgc2tpcEVtcHR5TGluZXM6ICdncmVlZHknLFxyXG4gICAgICAgIGhlYWRlcjogdHJ1ZSxcclxuICAgICAgICBiZWZvcmVGaXJzdENodW5rOiAoX2NodW5rKSA9PiB7XHJcbiAgXHJcbiAgICAgICAgICBjb25zdCB3aXRoT3V0SGVhZGVyID0gX2NodW5rLnNwbGl0KC9cXHI/XFxuLykuc2xpY2UoMSlcclxuICAgICAgICAgIGlmICh3aXRoT3V0SGVhZGVyW3dpdGhPdXRIZWFkZXIubGVuZ3RoIC0gMV0gPT09ICcnKSB3aXRoT3V0SGVhZGVyLnBvcCgpXHJcbiAgICAgICAgICB0aGlzLnJvd1N1bW1hcnkudXBkYXRlKHJlcyA9PiAoey4uLnJlcywgcm93Q291bnQ6IHdpdGhPdXRIZWFkZXIubGVuZ3RofSkpXHJcbiAgICAgICAgICB3aXRoT3V0SGVhZGVyLmZvckVhY2gocm93ID0+IHtcclxuICBcclxuICAgICAgICAgICAgY29uc3QgZW1wdHlSb3cgPSByb3cuc3BsaXQoJywnKS5ldmVyeShyb3cgPT4gcm93ID09PSAnJylcclxuICBcclxuICAgICAgICAgICAgaWYgKGVtcHR5Um93KSB0aGlzLnJvd1N1bW1hcnkudXBkYXRlKHJlcyA9PiAoey4uLnJlcywgcm93RW1wdHk6IHJlcy5yb3dFbXB0eSArIDF9KSlcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICByZXR1cm4gX2NodW5rOyAvLyBSZXR1cm4gdGhlIG9yaWdpbmFsIGNodW5rIHRvIGNvbnRpbnVlIHBhcnNpbmdcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yKGVycm9yLCBmaWxlKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnRVJST1InLCBlcnJvciwgZmlsZSlcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAocmVzdWx0cywgX2ZpbGUpID0+IHtcclxuICAgICAgICAgIHRoaXMub25QYXJzZXIuZW1pdChyZXN1bHRzLmRhdGEpXHJcbiAgICAgICAgfSxcclxuICAgICAgfSlcclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy51cHB5Lm9uKCdmaWxlLXJlbW92ZWQnLCAoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2hvd1NhbXBsZSA9IHRydWVcclxuICAgICAgdGhpcy5maWxlUmVtb3ZlZC5lbWl0KClcclxuICAgICAgdGhpcy5maWxlLnNldChudWxsKVxyXG4gICAgICB0aGlzLnJvd1N1bW1hcnkuc2V0KHtyb3dDb3VudDogMCwgcm93RW1wdHk6IDB9KVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb252ZXJ0cyBhIGdpdmVuIG51bWJlciBvZiBieXRlcyBpbnRvIGEgaHVtYW4tcmVhZGFibGUgc3RyaW5nLlxyXG4gICAqIEBwYXJhbSBieXRlcyBUaGUgbnVtYmVyIG9mIGJ5dGVzIHRvIGNvbnZlcnQuXHJcbiAgICogQHBhcmFtIGRlY2ltYWxQb2ludHMgVGhlIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyB0byBkaXNwbGF5LiBEZWZhdWx0cyB0byAyLlxyXG4gICAqIEByZXR1cm5zIEEgc3RyaW5nIGluIHRoZSBmb3JtIG9mIFwiWC5YWCBbdW5pdF1cIiB3aGVyZSBYIGlzIHRoZSBudW1lcmljYWwgdmFsdWUgYW5kIHVuaXQgaXMgdGhlIGFwcHJvcHJpYXRlIHVuaXQgb2YgbWVhc3VyZW1lbnQgKEJ5dGVzLCBLQiwgTUIsIEdCLCBldGMuKS5cclxuICAgKi9cclxuICBmb3JtYXRGaWxlU2l6ZShieXRlczogbnVtYmVyLCBkZWNpbWFsUG9pbnRzID0gMik6IHN0cmluZyB7XHJcbiAgICBpZihieXRlcyA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gYDAgYnl0ZXNgXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaSA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2coVXBweUNvbXBvbmVudC5raWxvYnl0ZSkpXHJcbiAgICBjb25zdCBzaXplID0gKGJ5dGVzIC8gTWF0aC5wb3coVXBweUNvbXBvbmVudC5raWxvYnl0ZSxpKSlcclxuICAgIHJldHVybiBgJHtzaXplLnRvRml4ZWQoZGVjaW1hbFBvaW50cyl9ICR7VXBweUNvbXBvbmVudC5zaXplc1tpXX1gXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgPHVwcHktZGFzaGJvYXJkIFt1cHB5XT1cInVwcHlcIiBbcHJvcHNdPVwiZGFzaGJvYXJkUHJvcHNcIj4gPC91cHB5LWRhc2hib2FyZD5cclxuICAgIDxzbWFsbCAqbmdJZj1cInN1YnRpdGxlXCIgY2xhc3M9XCJzdWJ0aXRsZSBwb3NpdGlvbi1hYnNvbHV0ZVwiPnt7c3VidGl0bGV9fTwvc21hbGw+XHJcbiAgICA8YSAqbmdJZj1cInNhbXBsZVVybCAmJiBzaG93U2FtcGxlXCIgY2xhc3M9XCJzYW1wbGUgcG9zaXRpb24tYWJzb2x1dGVcIiBbY2xhc3MudG9wLTU4XT1cInN1YnRpdGxlXCIgcm9sZT1cImJ1dHRvblwiXHJcbiAgICAgICAgW2hyZWZdPVwic2FtcGxlVXJsXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1kb3dubG9hZCBtcy0zXCI+PC9pPiBEb3dubG9hZCBUZW1wbGF0ZVxyXG4gICAgPC9hPlxyXG5cclxuICAgIEBpZiAoZmlsZSgpICYmIGZpbGUoKT8udHlwZSA9PT0gJ3RleHQvY3N2Jykge1xyXG4gICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LXdhcm5pbmcgZC1mbGV4IGZsZXgtY29sdW1uIGdhcC0yXCIgc3R5bGU9XCJtYXJnaW46IDFyZW0gMCAwIDA7XCIgcm9sZT1cImFsZXJ0XCI+XHJcbiAgICAgICAgPGg0IGNsYXNzPVwiYWxlcnQtaGVhZGluZ1wiPkNTViBGaWxlIENvbnRlbnQgU3VtbWFyeTwvaDQ+XHJcbiAgICAgICAgPGhyPlxyXG4gICAgICAgIDxwIGNsYXNzPVwiZnMtNiBtLTBcIj57e3Jvd1N1bW1hcnkoKS5yb3dDb3VudH19IHJvd3MgZm91bmQgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJvd1N1bW1hcnkoKS5yb3dFbXB0eSA+IDBcIj4tXHJcbiAgICAgICAgICAgICAgICB7e3Jvd1N1bW1hcnkoKS5yb3dFbXB0eX19IGVtcHR5IGluIHRoZSBDU1YgeW91IHVwbG9hZGVkPC9uZy1jb250YWluZXI+PC9wPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgfVxyXG48L2Rpdj4iXX0=
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBweS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZWFscG9zLW5wbS9uZy1kZWFscG9zLWxpYnJhcnkvY29tcG9uZW50cy91cHB5LWZpbGUtdXBsb2FkL3NyYy91cHB5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RlYWxwb3MtbnBtL25nLWRlYWxwb3MtbGlicmFyeS9jb21wb25lbnRzL3VwcHktZmlsZS11cGxvYWQvc3JjL3VwcHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNsQyxPQUFPLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxXQUFXLEVBQUUsRUFBRSx1QkFBdUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RixPQUFPLEdBQUcsTUFBTSxXQUFXLENBQUM7QUFDNUIsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDOzs7O0FBUzdCLE1BQU0sT0FBTyxhQUFhO2FBa0JULFVBQUssR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJ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LDBCQUEwQixFQUFFLFlBQVksQ0FBQzt3REFLMUMsU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBpbnB1dCwgSW5wdXQsIE91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnZlcnRDc3ZTZXJ2aWNlIH0gZnJvbSAnQGRlYWxwb3MtbnBtL25nLWRlYWxwb3MtbGlicmFyeS9zZXJ2aWNlcy9jc3YtcGFyc2VyJztcclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICdAZGVhbHBvcy1ucG0vbmctZGVhbHBvcy1saWJyYXJ5L3NlcnZpY2VzL2h0dHAnO1xyXG5pbXBvcnQgeyBVcHB5QW5ndWxhckRhc2hib2FyZE1vZHVsZSB9IGZyb20gJ0B1cHB5L2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBVcHB5IH0gZnJvbSAnQHVwcHkvY29yZSc7XHJcbmltcG9ydCAnQHVwcHkvY29yZS9kaXN0L3N0eWxlLm1pbi5jc3MnO1xyXG5pbXBvcnQgJ0B1cHB5L2Rhc2hib2FyZC9kaXN0L3N0eWxlLm1pbi5jc3MnO1xyXG5pbXBvcnQgVHJhbnNsb2FkaXQsIHsgQ09NUEFOSU9OX0FMTE9XRURfSE9TVFMsIENPTVBBTklPTl9VUkwgfSBmcm9tICdAdXBweS90cmFuc2xvYWRpdCc7XHJcbmltcG9ydCBVcmwgZnJvbSAnQHVwcHkvdXJsJztcclxuaW1wb3J0IFBhcGEgZnJvbSAncGFwYXBhcnNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnUE9TLXVwcHknLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1VwcHlBbmd1bGFyRGFzaGJvYXJkTW9kdWxlLCBDb21tb25Nb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91cHB5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdXBweS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFVwcHlDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHNhbXBsZVVybDogc3RyaW5nID0gJydcclxuICBASW5wdXQoKSBzdWJ0aXRsZTogc3RyaW5nID0gJydcclxuICBzaG93U2FtcGxlOiBib29sZWFuID0gdHJ1ZVxyXG4gIHNob3dTdWJ0aXRsZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgdXBweUNvcmVDb25maWd1cmF0aW9uID0gaW5wdXQ8YW55PigpO1xyXG4gIGRhc2hib2FyZFByb3BzQ29uZmlndXJhdGlvbiA9IGlucHV0PGFueT4oKTtcclxuICBAT3V0cHV0KCkgZmlsZVVwbG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxCbG9iIHwgRmlsZT4oKVxyXG4gIEBPdXRwdXQoKSBmaWxlUmVtb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKVxyXG4gIEBPdXRwdXQoKSBvblBhcnNlciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXHJcblxyXG4gIGh0dHAgPSBpbmplY3QoSHR0cFNlcnZpY2UpXHJcbiAgY3N2UGFyc2VyID0gaW5qZWN0KENvbnZlcnRDc3ZTZXJ2aWNlKVxyXG5cclxuICByb3dTdW1tYXJ5ID0gc2lnbmFsPHtyb3dDb3VudDogbnVtYmVyLCByb3dFbXB0eTogbnVtYmVyfT4oe3Jvd0NvdW50OiAwLCByb3dFbXB0eTogMH0pXHJcblxyXG4gIGZpbGUgPSBzaWduYWw8RmlsZSB8IG51bGw+KG51bGwpXHJcblxyXG4gIHByaXZhdGUgc3RhdGljIHNpemVzID0gWydCeXRlcycsICdLQicsICdNQicsICdHQicsICdUQicsICdQQicsICdFQicsICdaQicsICdZQiddIGFzIGNvbnN0XHJcbiAgcHJpdmF0ZSBzdGF0aWMga2lsb2J5dGUgPSAxMDI0XHJcblxyXG4gIHVwcHk6IFVwcHkgPSBuZXcgVXBweSh7IFxyXG4gICAgZGVidWc6IHRydWUsIFxyXG4gICAgYXV0b1Byb2NlZWQ6IHRydWUsIFxyXG4gICAgYWxsb3dNdWx0aXBsZVVwbG9hZEJhdGNoZXM6IGZhbHNlLFxyXG4gICAgcmVzdHJpY3Rpb25zOiB7XHJcbiAgICAgIGFsbG93ZWRGaWxlVHlwZXM6IFsnLmNzdiddLFxyXG4gICAgICBtYXhUb3RhbEZpbGVTaXplOiAxMDAwMDAwXHJcbiAgICB9XHJcbiAgfSkudXNlKFxyXG4gICAgVHJhbnNsb2FkaXQsIHtcclxuICAgICAgYXNzZW1ibHlPcHRpb25zOiB7XHJcbiAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICBhdXRoOiB7a2V5OiAnYmU5M2ZmNWIwOTA4NGEzZjhmN2ZhYTg1NmM0YjAxZjgnfSxcclxuICAgICAgICAgIHRlbXBsYXRlX2lkOiAnNzQ1ZTU4ODJmMDZhNDFiNWJkMzgzYmEwM2M1YjBkYzEnXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgKS51c2UoXHJcbiAgICBVcmwsIHtcclxuICAgICAgY29tcGFuaW9uVXJsOiBDT01QQU5JT05fVVJMLFxyXG4gICAgICBjb21wYW5pb25BbGxvd2VkSG9zdHM6IENPTVBBTklPTl9BTExPV0VEX0hPU1RTXHJcbiAgICB9XHJcbiAgKTtcclxuICBcclxuICBkYXNoYm9hcmRQcm9wcyA9IHtcclxuICAgIGhpZGVVcGxvYWRCdXR0b246IHRydWUsXHJcbiAgICBoZWlnaHQ6IDM1MFxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy51cHB5LnNldE9wdGlvbnMoey4uLnRoaXMudXBweUNvcmVDb25maWd1cmF0aW9uKCl9KSlcclxuICAgIGVmZmVjdCgoKSA9PiB0aGlzLmRhc2hib2FyZFByb3BzID0gKHsuLi50aGlzLmRhc2hib2FyZFByb3BzLCAuLi50aGlzLmRhc2hib2FyZFByb3BzQ29uZmlndXJhdGlvbigpfSkpXHJcblxyXG4gICAgdGhpcy51cHB5Lm9uKCd1cGxvYWQnLCAoXywgdXBweUZpbGVzKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbGUgPSB1cHB5RmlsZXNbMF0/LmRhdGEgYXMgRmlsZVxyXG4gICAgICB0aGlzLnNob3dTYW1wbGUgPSBmYWxzZVxyXG4gICAgICB0aGlzLnNob3dTdWJ0aXRsZSA9IGZhbHNlXHJcblxyXG5cclxuICAgICAgdGhpcy5maWxlVXBsb2FkZWQuZW1pdChmaWxlKVxyXG4gICAgICB0aGlzLmZpbGUuc2V0KHVwcHlGaWxlc1swXS5kYXRhIGFzIEZpbGUpXHJcblxyXG4gICAgICBQYXBhLnBhcnNlKGZpbGUsIHtcclxuICAgICAgICBza2lwRW1wdHlMaW5lczogJ2dyZWVkeScsXHJcbiAgICAgICAgaGVhZGVyOiB0cnVlLFxyXG4gICAgICAgIGJlZm9yZUZpcnN0Q2h1bms6IChfY2h1bmspID0+IHtcclxuICBcclxuICAgICAgICAgIGNvbnN0IHdpdGhPdXRIZWFkZXIgPSBfY2h1bmsuc3BsaXQoL1xccj9cXG4vKS5zbGljZSgxKVxyXG4gICAgICAgICAgaWYgKHdpdGhPdXRIZWFkZXJbd2l0aE91dEhlYWRlci5sZW5ndGggLSAxXSA9PT0gJycpIHdpdGhPdXRIZWFkZXIucG9wKClcclxuICAgICAgICAgIHRoaXMucm93U3VtbWFyeS51cGRhdGUocmVzID0+ICh7Li4ucmVzLCByb3dDb3VudDogd2l0aE91dEhlYWRlci5sZW5ndGh9KSlcclxuICAgICAgICAgIHdpdGhPdXRIZWFkZXIuZm9yRWFjaChyb3cgPT4ge1xyXG4gIFxyXG4gICAgICAgICAgICBjb25zdCBlbXB0eVJvdyA9IHJvdy5zcGxpdCgnLCcpLmV2ZXJ5KHJvdyA9PiByb3cgPT09ICcnKVxyXG4gIFxyXG4gICAgICAgICAgICBpZiAoZW1wdHlSb3cpIHRoaXMucm93U3VtbWFyeS51cGRhdGUocmVzID0+ICh7Li4ucmVzLCByb3dFbXB0eTogcmVzLnJvd0VtcHR5ICsgMX0pKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIHJldHVybiBfY2h1bms7IC8vIFJldHVybiB0aGUgb3JpZ2luYWwgY2h1bmsgdG8gY29udGludWUgcGFyc2luZ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3IoZXJyb3IsIGZpbGUpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdFUlJPUicsIGVycm9yLCBmaWxlKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29tcGxldGU6IChyZXN1bHRzLCBfZmlsZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5vblBhcnNlci5lbWl0KHJlc3VsdHMuZGF0YSlcclxuICAgICAgICB9LFxyXG4gICAgICB9KVxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLnVwcHkub24oJ2ZpbGUtcmVtb3ZlZCcsICgpID0+IHtcclxuICAgICAgdGhpcy5zaG93U2FtcGxlID0gdHJ1ZVxyXG4gICAgICB0aGlzLnNob3dTdWJ0aXRsZSA9IHRydWVcclxuICAgICAgdGhpcy5maWxlUmVtb3ZlZC5lbWl0KClcclxuICAgICAgdGhpcy5maWxlLnNldChudWxsKVxyXG4gICAgICB0aGlzLnJvd1N1bW1hcnkuc2V0KHtyb3dDb3VudDogMCwgcm93RW1wdHk6IDB9KVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb252ZXJ0cyBhIGdpdmVuIG51bWJlciBvZiBieXRlcyBpbnRvIGEgaHVtYW4tcmVhZGFibGUgc3RyaW5nLlxyXG4gICAqIEBwYXJhbSBieXRlcyBUaGUgbnVtYmVyIG9mIGJ5dGVzIHRvIGNvbnZlcnQuXHJcbiAgICogQHBhcmFtIGRlY2ltYWxQb2ludHMgVGhlIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyB0byBkaXNwbGF5LiBEZWZhdWx0cyB0byAyLlxyXG4gICAqIEByZXR1cm5zIEEgc3RyaW5nIGluIHRoZSBmb3JtIG9mIFwiWC5YWCBbdW5pdF1cIiB3aGVyZSBYIGlzIHRoZSBudW1lcmljYWwgdmFsdWUgYW5kIHVuaXQgaXMgdGhlIGFwcHJvcHJpYXRlIHVuaXQgb2YgbWVhc3VyZW1lbnQgKEJ5dGVzLCBLQiwgTUIsIEdCLCBldGMuKS5cclxuICAgKi9cclxuICBmb3JtYXRGaWxlU2l6ZShieXRlczogbnVtYmVyLCBkZWNpbWFsUG9pbnRzID0gMik6IHN0cmluZyB7XHJcbiAgICBpZihieXRlcyA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gYDAgYnl0ZXNgXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaSA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2coVXBweUNvbXBvbmVudC5raWxvYnl0ZSkpXHJcbiAgICBjb25zdCBzaXplID0gKGJ5dGVzIC8gTWF0aC5wb3coVXBweUNvbXBvbmVudC5raWxvYnl0ZSxpKSlcclxuICAgIHJldHVybiBgJHtzaXplLnRvRml4ZWQoZGVjaW1hbFBvaW50cyl9ICR7VXBweUNvbXBvbmVudC5zaXplc1tpXX1gXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgPHVwcHktZGFzaGJvYXJkIFt1cHB5XT1cInVwcHlcIiBbcHJvcHNdPVwiZGFzaGJvYXJkUHJvcHNcIj4gPC91cHB5LWRhc2hib2FyZD5cclxuICAgIDxzbWFsbCAqbmdJZj1cInN1YnRpdGxlICYmIHNob3dTdWJ0aXRsZVwiIGNsYXNzPVwic3VidGl0bGUgcG9zaXRpb24tYWJzb2x1dGVcIj57e3N1YnRpdGxlfX08L3NtYWxsPlxyXG4gICAgPGEgKm5nSWY9XCJzYW1wbGVVcmwgJiYgc2hvd1NhbXBsZVwiIGNsYXNzPVwic2FtcGxlIHBvc2l0aW9uLWFic29sdXRlXCIgW2NsYXNzLnRvcC01OF09XCJzdWJ0aXRsZVwiIHJvbGU9XCJidXR0b25cIlxyXG4gICAgICAgIFtocmVmXT1cInNhbXBsZVVybFwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtZG93bmxvYWQgbXMtM1wiPjwvaT4gRG93bmxvYWQgVGVtcGxhdGVcclxuICAgIDwvYT5cclxuXHJcbiAgICBAaWYgKGZpbGUoKSAmJiBmaWxlKCk/LnR5cGUgPT09ICd0ZXh0L2NzdicpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC13YXJuaW5nIGQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMlwiIHN0eWxlPVwibWFyZ2luOiAxcmVtIDAgMCAwO1wiIHJvbGU9XCJhbGVydFwiPlxyXG4gICAgICAgIDxoNCBjbGFzcz1cImFsZXJ0LWhlYWRpbmdcIj5DU1YgRmlsZSBDb250ZW50IFN1bW1hcnk8L2g0PlxyXG4gICAgICAgIDxocj5cclxuICAgICAgICA8cCBjbGFzcz1cImZzLTYgbS0wXCI+e3tyb3dTdW1tYXJ5KCkucm93Q291bnR9fSByb3dzIGZvdW5kIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3dTdW1tYXJ5KCkucm93RW1wdHkgPiAwXCI+LVxyXG4gICAgICAgICAgICAgICAge3tyb3dTdW1tYXJ5KCkucm93RW1wdHl9fSBlbXB0eSBpbiB0aGUgQ1NWIHlvdSB1cGxvYWRlZDwvbmctY29udGFpbmVyPjwvcD5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIH1cclxuPC9kaXY+Il19
@@ -3,23 +3,25 @@ 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
- constructor() {
6
+ constructor(cdr) {
7
+ this.cdr = cdr;
7
8
  this.serials = input([]);
8
9
  this.serialNote = '';
9
10
  effect(() => {
10
11
  const currSerials = this.serials();
11
12
  if (currSerials && currSerials.length > 0) {
12
13
  this.serialNote = Constants.generateSerialasNote(currSerials);
14
+ cdr.markForCheck();
13
15
  }
14
16
  });
15
17
  }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SerialNoteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SerialNoteComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
17
19
  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 }); }
18
20
  }
19
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SerialNoteComponent, decorators: [{
20
22
  type: Component,
21
23
  args: [{ selector: 'app-serial-note', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<span>{{serialNote}}</span>" }]
22
- }], ctorParameters: () => [] });
24
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
23
25
 
24
26
  /**
25
27
  * 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, 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;;;;"}
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, ChangeDetectorRef, 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 private cdr: ChangeDetectorRef\r\n ) {\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 cdr.markForCheck();\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,CACU,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAJhC,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAQ,EAAE,CAAC,CAAA;QACnB,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;QAK7B,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;gBAC9D,GAAG,CAAC,YAAY,EAAE,CAAC;aACpB;AACH,SAAC,CAAC,CAAA;KACH;8GAdU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,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;;;;"}
@@ -9,6 +9,8 @@ import { UppyAngularDashboardModule } from '@uppy/angular';
9
9
  import { Uppy } from '@uppy/core';
10
10
  import '@uppy/core/dist/style.min.css';
11
11
  import '@uppy/dashboard/dist/style.min.css';
12
+ import Transloadit, { COMPANION_URL, COMPANION_ALLOWED_HOSTS } from '@uppy/transloadit';
13
+ import Url from '@uppy/url';
12
14
  import Papa from 'papaparse';
13
15
 
14
16
  class UppyComponent {
@@ -18,6 +20,7 @@ class UppyComponent {
18
20
  this.sampleUrl = '';
19
21
  this.subtitle = '';
20
22
  this.showSample = true;
23
+ this.showSubtitle = true;
21
24
  this.uppyCoreConfiguration = input();
22
25
  this.dashboardPropsConfiguration = input();
23
26
  this.fileUploaded = new EventEmitter();
@@ -35,6 +38,16 @@ class UppyComponent {
35
38
  allowedFileTypes: ['.csv'],
36
39
  maxTotalFileSize: 1000000
37
40
  }
41
+ }).use(Transloadit, {
42
+ assemblyOptions: {
43
+ params: {
44
+ auth: { key: 'be93ff5b09084a3f8f7faa856c4b01f8' },
45
+ template_id: '745e5882f06a41b5bd383ba03c5b0dc1'
46
+ }
47
+ }
48
+ }).use(Url, {
49
+ companionUrl: COMPANION_URL,
50
+ companionAllowedHosts: COMPANION_ALLOWED_HOSTS
38
51
  });
39
52
  this.dashboardProps = {
40
53
  hideUploadButton: true,
@@ -45,6 +58,7 @@ class UppyComponent {
45
58
  this.uppy.on('upload', (_, uppyFiles) => {
46
59
  const file = uppyFiles[0]?.data;
47
60
  this.showSample = false;
61
+ this.showSubtitle = false;
48
62
  this.fileUploaded.emit(file);
49
63
  this.file.set(uppyFiles[0].data);
50
64
  Papa.parse(file, {
@@ -72,6 +86,7 @@ class UppyComponent {
72
86
  });
73
87
  this.uppy.on('file-removed', () => {
74
88
  this.showSample = true;
89
+ this.showSubtitle = true;
75
90
  this.fileRemoved.emit();
76
91
  this.file.set(null);
77
92
  this.rowSummary.set({ rowCount: 0, rowEmpty: 0 });
@@ -92,11 +107,11 @@ class UppyComponent {
92
107
  return `${size.toFixed(decimalPoints)} ${UppyComponent.sizes[i]}`;
93
108
  }
94
109
  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 }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", 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 <small *ngIf=\"subtitle\" class=\"subtitle position-absolute\">{{subtitle}}</small>\r\n <a *ngIf=\"sampleUrl && showSample\" class=\"sample position-absolute\" [class.top-58]=\"subtitle\" role=\"button\"\r\n [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\">-\r\n {{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}::ng-deep .uppy-Dashboard-AddFiles-list{flex:none;flex-direction:row;flex-wrap:wrap;justify-content:center;max-width:600px;margin-top:15px;padding-top:0;overflow-y:visible}.sample,.subtitle{top:56%;width:100%;text-align:center}.top-58{top:61%}\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"] }] }); }
110
+ 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 }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", 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 <small *ngIf=\"subtitle && showSubtitle\" class=\"subtitle position-absolute\">{{subtitle}}</small>\r\n <a *ngIf=\"sampleUrl && showSample\" class=\"sample position-absolute\" [class.top-58]=\"subtitle\" role=\"button\"\r\n [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\">-\r\n {{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}::ng-deep .uppy-Dashboard-AddFiles-list{flex:none;flex-direction:row;flex-wrap:wrap;justify-content:center;max-width:600px;margin-top:15px;padding-top:0;overflow-y:visible}.sample,.subtitle{top:56%;width:100%;text-align:center}.top-58{top:61%}\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
111
  }
97
112
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: UppyComponent, decorators: [{
98
113
  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 <small *ngIf=\"subtitle\" class=\"subtitle position-absolute\">{{subtitle}}</small>\r\n <a *ngIf=\"sampleUrl && showSample\" class=\"sample position-absolute\" [class.top-58]=\"subtitle\" role=\"button\"\r\n [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\">-\r\n {{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}::ng-deep .uppy-Dashboard-AddFiles-list{flex:none;flex-direction:row;flex-wrap:wrap;justify-content:center;max-width:600px;margin-top:15px;padding-top:0;overflow-y:visible}.sample,.subtitle{top:56%;width:100%;text-align:center}.top-58{top:61%}\n"] }]
114
+ 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 <small *ngIf=\"subtitle && showSubtitle\" class=\"subtitle position-absolute\">{{subtitle}}</small>\r\n <a *ngIf=\"sampleUrl && showSample\" class=\"sample position-absolute\" [class.top-58]=\"subtitle\" role=\"button\"\r\n [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\">-\r\n {{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}::ng-deep .uppy-Dashboard-AddFiles-list{flex:none;flex-direction:row;flex-wrap:wrap;justify-content:center;max-width:600px;margin-top:15px;padding-top:0;overflow-y:visible}.sample,.subtitle{top:56%;width:100%;text-align:center}.top-58{top:61%}\n"] }]
100
115
  }], ctorParameters: () => [], propDecorators: { sampleUrl: [{
101
116
  type: Input
102
117
  }], subtitle: [{
@@ -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\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 @Input() subtitle: 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 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 <small *ngIf=\"subtitle\" class=\"subtitle position-absolute\">{{subtitle}}</small>\r\n <a *ngIf=\"sampleUrl && showSample\" class=\"sample position-absolute\" [class.top-58]=\"subtitle\" role=\"button\"\r\n [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\">-\r\n {{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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"}
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 Transloadit, { COMPANION_ALLOWED_HOSTS, COMPANION_URL } from '@uppy/transloadit';\r\nimport Url from '@uppy/url';\r\nimport Papa from 'papaparse';\r\n\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 @Input() subtitle: string = ''\r\n showSample: boolean = true\r\n showSubtitle: 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 }).use(\r\n Transloadit, {\r\n assemblyOptions: {\r\n params: {\r\n auth: {key: 'be93ff5b09084a3f8f7faa856c4b01f8'},\r\n template_id: '745e5882f06a41b5bd383ba03c5b0dc1'\r\n }\r\n }\r\n }\r\n ).use(\r\n Url, {\r\n companionUrl: COMPANION_URL,\r\n companionAllowedHosts: COMPANION_ALLOWED_HOSTS\r\n }\r\n );\r\n \r\n dashboardProps = {\r\n hideUploadButton: true,\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 this.showSubtitle = 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.showSubtitle = 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 <small *ngIf=\"subtitle && showSubtitle\" class=\"subtitle position-absolute\">{{subtitle}}</small>\r\n <a *ngIf=\"sampleUrl && showSample\" class=\"sample position-absolute\" [class.top-58]=\"subtitle\" role=\"button\"\r\n [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\">-\r\n {{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":";;;;;;;;;;;;;;;MAmBa,aAAa,CAAA;aAkBT,IAAK,CAAA,KAAA,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAA3D,CAAqE,EAAA;aAC1E,IAAQ,CAAA,QAAA,GAAG,IAAH,CAAO,EAAA;AA+B9B,IAAA,WAAA,GAAA;QAjDS,IAAS,CAAA,SAAA,GAAW,EAAE,CAAA;QACtB,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAA;QAC9B,IAAU,CAAA,UAAA,GAAY,IAAI,CAAA;QAC1B,IAAY,CAAA,YAAA,GAAY,IAAI,CAAC;QAC7B,IAAqB,CAAA,qBAAA,GAAG,KAAK,EAAO,CAAC;QACrC,IAA2B,CAAA,2BAAA,GAAG,KAAK,EAAO,CAAC;AACjC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAe,CAAA;AAC9C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAQ,CAAA;AACtC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAO,CAAA;AAE5C,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;AAC1B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;AAErC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAuC,EAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAC,CAAC,CAAA;AAErF,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAc,IAAI,CAAC,CAAA;QAKhC,IAAI,CAAA,IAAA,GAAS,IAAI,IAAI,CAAC;AACpB,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,0BAA0B,EAAE,KAAK;AACjC,YAAA,YAAY,EAAE;gBACZ,gBAAgB,EAAE,CAAC,MAAM,CAAC;AAC1B,gBAAA,gBAAgB,EAAE,OAAO;AAC1B,aAAA;AACF,SAAA,CAAC,CAAC,GAAG,CACJ,WAAW,EAAE;AACX,YAAA,eAAe,EAAE;AACf,gBAAA,MAAM,EAAE;AACN,oBAAA,IAAI,EAAE,EAAC,GAAG,EAAE,kCAAkC,EAAC;AAC/C,oBAAA,WAAW,EAAE,kCAAkC;AAChD,iBAAA;AACF,aAAA;AACF,SAAA,CACF,CAAC,GAAG,CACH,GAAG,EAAE;AACH,YAAA,YAAY,EAAE,aAAa;AAC3B,YAAA,qBAAqB,EAAE,uBAAuB;AAC/C,SAAA,CACF,CAAC;AAEF,QAAA,IAAA,CAAA,cAAc,GAAG;AACf,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,MAAM,EAAE,GAAG;SACZ,CAAA;AAGC,QAAA,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAC,GAAG,IAAI,CAAC,qBAAqB,EAAE,EAAC,CAAC,CAAC,CAAA;QACrE,MAAM,CAAC,MAAM,IAAI,CAAC,cAAc,IAAI,EAAC,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,2BAA2B,EAAE,EAAC,CAAC,CAAC,CAAA;AAErG,QAAA,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,SAAS,KAAI;YACtC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,IAAY,CAAA;AACvC,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;AACvB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;AAGzB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC5B,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAY,CAAC,CAAA;AAExC,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACf,gBAAA,cAAc,EAAE,QAAQ;AACxB,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,gBAAgB,EAAE,CAAC,MAAM,KAAI;AAE3B,oBAAA,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;oBACpD,IAAI,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE;wBAAE,aAAa,CAAC,GAAG,EAAE,CAAA;oBACvE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,KAAK,EAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,aAAa,CAAC,MAAM,EAAC,CAAC,CAAC,CAAA;AACzE,oBAAA,aAAa,CAAC,OAAO,CAAC,GAAG,IAAG;AAE1B,wBAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC,CAAA;AAExD,wBAAA,IAAI,QAAQ;4BAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,KAAK,EAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAC,CAAC,CAAC,CAAA;AACrF,qBAAC,CAAC,CAAA;oBACF,OAAO,MAAM,CAAC;iBACf;gBACD,KAAK,CAAC,KAAK,EAAE,IAAI,EAAA;oBACf,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;iBAClC;AACD,gBAAA,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,KAAI;oBAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;iBACjC;AACF,aAAA,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;QAEF,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,MAAK;AAChC,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;AACtB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;AACxB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;AACvB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAC,CAAC,CAAA;AACjD,SAAC,CAAC,CAAC;KACJ;AAED;;;;;AAKG;AACH,IAAA,cAAc,CAAC,KAAa,EAAE,aAAa,GAAG,CAAC,EAAA;AAC7C,QAAA,IAAG,KAAK,KAAK,CAAC,EAAE;AACd,YAAA,OAAO,SAAS,CAAA;SACjB;QAED,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAA;AACxE,QAAA,MAAM,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAC,CAAC,CAAC,CAAC,CAAA;AACzD,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAI,CAAA,EAAA,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;KAClE;8GA/GU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,ECnB1B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,2BAAA,EAAA,EAAA,iBAAA,EAAA,6BAAA,EAAA,UAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,g9BAiBM,EDFM,MAAA,EAAA,CAAA,sTAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,0BAA0B,yIAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIvC,aAAa,EAAA,UAAA,EAAA,CAAA;kBAPzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,cACR,IAAI,EAAA,OAAA,EACP,CAAC,0BAA0B,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,g9BAAA,EAAA,MAAA,EAAA,CAAA,sTAAA,CAAA,EAAA,CAAA;wDAK1C,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAKI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;;;AE5BT;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dealpos-npm/ng-dealpos-library",
3
- "version": "4.2.0",
3
+ "version": "4.3.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.2.0",
6
6
  "@angular/core": "^18.2.0",
@@ -50,11 +50,11 @@
50
50
  "esm": "./esm2022/components/datepicker/dealpos-npm-ng-dealpos-library-components-datepicker.mjs",
51
51
  "default": "./fesm2022/dealpos-npm-ng-dealpos-library-components-datepicker.mjs"
52
52
  },
53
- "./components/info-page-input": {
54
- "types": "./components/info-page-input/index.d.ts",
55
- "esm2022": "./esm2022/components/info-page-input/dealpos-npm-ng-dealpos-library-components-info-page-input.mjs",
56
- "esm": "./esm2022/components/info-page-input/dealpos-npm-ng-dealpos-library-components-info-page-input.mjs",
57
- "default": "./fesm2022/dealpos-npm-ng-dealpos-library-components-info-page-input.mjs"
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
58
  },
59
59
  "./components/dialog": {
60
60
  "types": "./components/dialog/index.d.ts",
@@ -62,18 +62,18 @@
62
62
  "esm": "./esm2022/components/dialog/dealpos-npm-ng-dealpos-library-components-dialog.mjs",
63
63
  "default": "./fesm2022/dealpos-npm-ng-dealpos-library-components-dialog.mjs"
64
64
  },
65
+ "./components/info-page-input": {
66
+ "types": "./components/info-page-input/index.d.ts",
67
+ "esm2022": "./esm2022/components/info-page-input/dealpos-npm-ng-dealpos-library-components-info-page-input.mjs",
68
+ "esm": "./esm2022/components/info-page-input/dealpos-npm-ng-dealpos-library-components-info-page-input.mjs",
69
+ "default": "./fesm2022/dealpos-npm-ng-dealpos-library-components-info-page-input.mjs"
70
+ },
65
71
  "./components/modal-changelog": {
66
72
  "types": "./components/modal-changelog/index.d.ts",
67
73
  "esm2022": "./esm2022/components/modal-changelog/dealpos-npm-ng-dealpos-library-components-modal-changelog.mjs",
68
74
  "esm": "./esm2022/components/modal-changelog/dealpos-npm-ng-dealpos-library-components-modal-changelog.mjs",
69
75
  "default": "./fesm2022/dealpos-npm-ng-dealpos-library-components-modal-changelog.mjs"
70
76
  },
71
- "./components/datepicker-range": {
72
- "types": "./components/datepicker-range/index.d.ts",
73
- "esm2022": "./esm2022/components/datepicker-range/dealpos-npm-ng-dealpos-library-components-datepicker-range.mjs",
74
- "esm": "./esm2022/components/datepicker-range/dealpos-npm-ng-dealpos-library-components-datepicker-range.mjs",
75
- "default": "./fesm2022/dealpos-npm-ng-dealpos-library-components-datepicker-range.mjs"
76
- },
77
77
  "./components/ng-select-infinite": {
78
78
  "types": "./components/ng-select-infinite/index.d.ts",
79
79
  "esm2022": "./esm2022/components/ng-select-infinite/dealpos-npm-ng-dealpos-library-components-ng-select-infinite.mjs",
@@ -86,11 +86,11 @@
86
86
  "esm": "./esm2022/components/radio-options/dealpos-npm-ng-dealpos-library-components-radio-options.mjs",
87
87
  "default": "./fesm2022/dealpos-npm-ng-dealpos-library-components-radio-options.mjs"
88
88
  },
89
- "./components/tinymce-editor": {
90
- "types": "./components/tinymce-editor/index.d.ts",
91
- "esm2022": "./esm2022/components/tinymce-editor/dealpos-npm-ng-dealpos-library-components-tinymce-editor.mjs",
92
- "esm": "./esm2022/components/tinymce-editor/dealpos-npm-ng-dealpos-library-components-tinymce-editor.mjs",
93
- "default": "./fesm2022/dealpos-npm-ng-dealpos-library-components-tinymce-editor.mjs"
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
94
  },
95
95
  "./components/timepicker": {
96
96
  "types": "./components/timepicker/index.d.ts",
@@ -98,11 +98,11 @@
98
98
  "esm": "./esm2022/components/timepicker/dealpos-npm-ng-dealpos-library-components-timepicker.mjs",
99
99
  "default": "./fesm2022/dealpos-npm-ng-dealpos-library-components-timepicker.mjs"
100
100
  },
101
- "./components/uppy-file-upload": {
102
- "types": "./components/uppy-file-upload/index.d.ts",
103
- "esm2022": "./esm2022/components/uppy-file-upload/dealpos-npm-ng-dealpos-library-components-uppy-file-upload.mjs",
104
- "esm": "./esm2022/components/uppy-file-upload/dealpos-npm-ng-dealpos-library-components-uppy-file-upload.mjs",
105
- "default": "./fesm2022/dealpos-npm-ng-dealpos-library-components-uppy-file-upload.mjs"
101
+ "./components/tinymce-editor": {
102
+ "types": "./components/tinymce-editor/index.d.ts",
103
+ "esm2022": "./esm2022/components/tinymce-editor/dealpos-npm-ng-dealpos-library-components-tinymce-editor.mjs",
104
+ "esm": "./esm2022/components/tinymce-editor/dealpos-npm-ng-dealpos-library-components-tinymce-editor.mjs",
105
+ "default": "./fesm2022/dealpos-npm-ng-dealpos-library-components-tinymce-editor.mjs"
106
106
  },
107
107
  "./components/toastr": {
108
108
  "types": "./components/toastr/index.d.ts",
@@ -110,11 +110,11 @@
110
110
  "esm": "./esm2022/components/toastr/dealpos-npm-ng-dealpos-library-components-toastr.mjs",
111
111
  "default": "./fesm2022/dealpos-npm-ng-dealpos-library-components-toastr.mjs"
112
112
  },
113
- "./components/serial-note": {
114
- "types": "./components/serial-note/index.d.ts",
115
- "esm2022": "./esm2022/components/serial-note/dealpos-npm-ng-dealpos-library-components-serial-note.mjs",
116
- "esm": "./esm2022/components/serial-note/dealpos-npm-ng-dealpos-library-components-serial-note.mjs",
117
- "default": "./fesm2022/dealpos-npm-ng-dealpos-library-components-serial-note.mjs"
113
+ "./components/uppy-file-upload": {
114
+ "types": "./components/uppy-file-upload/index.d.ts",
115
+ "esm2022": "./esm2022/components/uppy-file-upload/dealpos-npm-ng-dealpos-library-components-uppy-file-upload.mjs",
116
+ "esm": "./esm2022/components/uppy-file-upload/dealpos-npm-ng-dealpos-library-components-uppy-file-upload.mjs",
117
+ "default": "./fesm2022/dealpos-npm-ng-dealpos-library-components-uppy-file-upload.mjs"
118
118
  },
119
119
  "./directives/autonumeric": {
120
120
  "types": "./directives/autonumeric/index.d.ts",
@@ -140,17 +140,11 @@
140
140
  "esm": "./esm2022/directives/is-invalid-email-or-phone/dealpos-npm-ng-dealpos-library-directives-is-invalid-email-or-phone.mjs",
141
141
  "default": "./fesm2022/dealpos-npm-ng-dealpos-library-directives-is-invalid-email-or-phone.mjs"
142
142
  },
143
- "./pipes/filter": {
144
- "types": "./pipes/filter/index.d.ts",
145
- "esm2022": "./esm2022/pipes/filter/dealpos-npm-ng-dealpos-library-pipes-filter.mjs",
146
- "esm": "./esm2022/pipes/filter/dealpos-npm-ng-dealpos-library-pipes-filter.mjs",
147
- "default": "./fesm2022/dealpos-npm-ng-dealpos-library-pipes-filter.mjs"
148
- },
149
- "./pipes/fraction": {
150
- "types": "./pipes/fraction/index.d.ts",
151
- "esm2022": "./esm2022/pipes/fraction/dealpos-npm-ng-dealpos-library-pipes-fraction.mjs",
152
- "esm": "./esm2022/pipes/fraction/dealpos-npm-ng-dealpos-library-pipes-fraction.mjs",
153
- "default": "./fesm2022/dealpos-npm-ng-dealpos-library-pipes-fraction.mjs"
143
+ "./directives/numeric-input-only": {
144
+ "types": "./directives/numeric-input-only/index.d.ts",
145
+ "esm2022": "./esm2022/directives/numeric-input-only/dealpos-npm-ng-dealpos-library-directives-numeric-input-only.mjs",
146
+ "esm": "./esm2022/directives/numeric-input-only/dealpos-npm-ng-dealpos-library-directives-numeric-input-only.mjs",
147
+ "default": "./fesm2022/dealpos-npm-ng-dealpos-library-directives-numeric-input-only.mjs"
154
148
  },
155
149
  "./directives/simple-keyboard": {
156
150
  "types": "./directives/simple-keyboard/index.d.ts",
@@ -164,17 +158,17 @@
164
158
  "esm": "./esm2022/pipes/duration/dealpos-npm-ng-dealpos-library-pipes-duration.mjs",
165
159
  "default": "./fesm2022/dealpos-npm-ng-dealpos-library-pipes-duration.mjs"
166
160
  },
167
- "./directives/numeric-input-only": {
168
- "types": "./directives/numeric-input-only/index.d.ts",
169
- "esm2022": "./esm2022/directives/numeric-input-only/dealpos-npm-ng-dealpos-library-directives-numeric-input-only.mjs",
170
- "esm": "./esm2022/directives/numeric-input-only/dealpos-npm-ng-dealpos-library-directives-numeric-input-only.mjs",
171
- "default": "./fesm2022/dealpos-npm-ng-dealpos-library-directives-numeric-input-only.mjs"
161
+ "./pipes/fraction": {
162
+ "types": "./pipes/fraction/index.d.ts",
163
+ "esm2022": "./esm2022/pipes/fraction/dealpos-npm-ng-dealpos-library-pipes-fraction.mjs",
164
+ "esm": "./esm2022/pipes/fraction/dealpos-npm-ng-dealpos-library-pipes-fraction.mjs",
165
+ "default": "./fesm2022/dealpos-npm-ng-dealpos-library-pipes-fraction.mjs"
172
166
  },
173
- "./services/csv-parser": {
174
- "types": "./services/csv-parser/index.d.ts",
175
- "esm2022": "./esm2022/services/csv-parser/dealpos-npm-ng-dealpos-library-services-csv-parser.mjs",
176
- "esm": "./esm2022/services/csv-parser/dealpos-npm-ng-dealpos-library-services-csv-parser.mjs",
177
- "default": "./fesm2022/dealpos-npm-ng-dealpos-library-services-csv-parser.mjs"
167
+ "./pipes/filter": {
168
+ "types": "./pipes/filter/index.d.ts",
169
+ "esm2022": "./esm2022/pipes/filter/dealpos-npm-ng-dealpos-library-pipes-filter.mjs",
170
+ "esm": "./esm2022/pipes/filter/dealpos-npm-ng-dealpos-library-pipes-filter.mjs",
171
+ "default": "./fesm2022/dealpos-npm-ng-dealpos-library-pipes-filter.mjs"
178
172
  },
179
173
  "./pipes/newlines": {
180
174
  "types": "./pipes/newlines/index.d.ts",
@@ -187,6 +181,12 @@
187
181
  "esm2022": "./esm2022/services/http/dealpos-npm-ng-dealpos-library-services-http.mjs",
188
182
  "esm": "./esm2022/services/http/dealpos-npm-ng-dealpos-library-services-http.mjs",
189
183
  "default": "./fesm2022/dealpos-npm-ng-dealpos-library-services-http.mjs"
184
+ },
185
+ "./services/csv-parser": {
186
+ "types": "./services/csv-parser/index.d.ts",
187
+ "esm2022": "./esm2022/services/csv-parser/dealpos-npm-ng-dealpos-library-services-csv-parser.mjs",
188
+ "esm": "./esm2022/services/csv-parser/dealpos-npm-ng-dealpos-library-services-csv-parser.mjs",
189
+ "default": "./fesm2022/dealpos-npm-ng-dealpos-library-services-csv-parser.mjs"
190
190
  }
191
191
  }
192
192
  }