@dealpos-npm/ng-dealpos-library 20.0.0 → 20.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.
@@ -6,8 +6,8 @@ import { DashboardComponent } from '@uppy/angular';
6
6
  import Compressor from '@uppy/compressor';
7
7
  import { Uppy } from '@uppy/core';
8
8
  import '@uppy/core/dist/style.min.css';
9
- import '@uppy/dashboard/dist/style.min.css';
10
- import '@uppy/image-editor/dist/style.min.css';
9
+ import '@uppy/dashboard/css/style.min.css';
10
+ import '@uppy/image-editor/css/style.min.css';
11
11
  import ImageEditor from '@uppy/image-editor';
12
12
  import Papa from 'papaparse';
13
13
 
@@ -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":["\r\nimport {\r\n Component,\r\n effect,\r\n EventEmitter,\r\n inject,\r\n input,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n signal,\r\n} 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 { DashboardComponent } from '@uppy/angular';\r\nimport Compressor from '@uppy/compressor';\r\nimport { Uppy } from '@uppy/core';\r\nimport '@uppy/core/dist/style.min.css';\r\nimport '@uppy/dashboard/dist/style.min.css';\r\nimport '@uppy/image-editor/dist/style.min.css';\r\nimport ImageEditor from '@uppy/image-editor';\r\nimport Papa from 'papaparse';\r\n\r\n@Component({\r\n selector: 'POS-uppy',\r\n imports: [DashboardComponent],\r\n templateUrl: './uppy.component.html',\r\n styleUrl: './uppy.component.scss',\r\n})\r\nexport class UppyComponent implements OnDestroy {\r\n @Input() folder: string = 'test';\r\n @Input() thumbnailSize: 'small' | 'medium' = 'small';\r\n @Input() sampleUrl: string = '';\r\n @Input() subtitle: string = '';\r\n @Input()\r\n showSample: boolean = true;\r\n /**\r\n * For manually resetting Uppy after a successful upload\r\n */\r\n clear = input<boolean>(false);\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() fileUploadComplete = new EventEmitter<Blob | File>();\r\n @Output() fileRemoved = new EventEmitter<string>();\r\n @Output() onParser = new EventEmitter<any>();\r\n @Output() multipleFilesUploaded = new EventEmitter<\r\n { file: Blob | File; id: string }[]\r\n >();\r\n\r\n http = inject(HttpService);\r\n csvParser = inject(ConvertCsvService);\r\n\r\n rowSummary = signal<{ rowCount: number; rowEmpty: number }>({\r\n rowCount: 0,\r\n rowEmpty: 0,\r\n });\r\n\r\n file = signal<File | null>(null);\r\n multipleFiles = signal<{ file: Blob | File; id: string }[]>([]);\r\n\r\n private static sizes = [\r\n 'Bytes',\r\n 'KB',\r\n 'MB',\r\n 'GB',\r\n 'TB',\r\n 'PB',\r\n 'EB',\r\n 'ZB',\r\n 'YB',\r\n ] 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 onBeforeFileAdded: (currentFile, files) => {\r\n const modifiedFile = {\r\n ...currentFile,\r\n name: currentFile.name?.replace(/ /g, '_'),\r\n };\r\n return modifiedFile;\r\n },\r\n })\r\n .use(Compressor, {\r\n mimeType: 'image/jpeg',\r\n convertSize: Infinity,\r\n convertTypes: ['image/png'],\r\n })\r\n .use(ImageEditor);\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(\r\n () =>\r\n (this.dashboardProps = {\r\n ...this.dashboardProps,\r\n ...this.dashboardPropsConfiguration(),\r\n })\r\n );\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 this.emitFileUpload(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 const withOutHeader = _chunk.split(/\\r?\\n/).slice(1);\r\n if (withOutHeader[withOutHeader.length - 1] === '')\r\n withOutHeader.pop();\r\n this.rowSummary.update((res) => ({\r\n ...res,\r\n rowCount: withOutHeader.length,\r\n }));\r\n withOutHeader.forEach((row) => {\r\n const emptyRow = row.split(',').every((row) => row === '');\r\n\r\n if (emptyRow)\r\n this.rowSummary.update((res) => ({\r\n ...res,\r\n rowEmpty: res.rowEmpty + 1,\r\n }));\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('complete', (uppyFiles) => {\r\n const multipleFiles =\r\n uppyFiles.successful?.map((d) => ({ file: d.data, id: d.id })) ?? [];\r\n const file = uppyFiles.successful![0]?.data;\r\n this.showSample = false;\r\n this.showSubtitle = false;\r\n this.emitFileUploadComplete(file as File);\r\n this.emitMultipleFilesUploaded(multipleFiles as any);\r\n this.onResetUppy();\r\n this.file.set(file as File);\r\n this.multipleFiles.set(multipleFiles as any);\r\n });\r\n\r\n this.uppy.on('file-removed', (f) => {\r\n this.showSample = true;\r\n this.showSubtitle = true;\r\n this.file.set(null);\r\n const currentFiles = this.multipleFiles();\r\n const updatedFiles = currentFiles.filter((r) => r.id != f.id);\r\n this.multipleFiles.set(updatedFiles);\r\n this.fileRemoved.emit(f.id);\r\n this.rowSummary.set({ rowCount: 0, rowEmpty: 0 });\r\n });\r\n\r\n this.onFileEdited();\r\n }\r\n\r\n /**\r\n * Sets up event listeners for the Uppy file editor events.\r\n *\r\n * - Listens for the `file-editor:complete` event, triggered when the file editor finishes editing a file.\r\n * Calls the `handlingEditedImage` method to process the edited file.\r\n * @private\r\n */\r\n private onFileEdited() {\r\n if (this.clear() == false) {\r\n this.uppy.on('file-editor:start', (result: any) => {\r\n // do nothing\r\n });\r\n\r\n this.uppy.on(\r\n 'file-editor:complete',\r\n (result: any) => {\r\n //result = { data: Blob, id: string }\r\n this.handlingEditedImage(result);\r\n }\r\n );\r\n\r\n this.uppy.on('file-editor:cancel', (result: any) => {\r\n // do nothing\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Updates the `multipleFiles` state by replacing the file with the matching ID\r\n * with the new edited image data. Sets the first file in the updated list as the\r\n * current file and emits the following events:\r\n * - `fileUploadComplete`: Emits the updated file as a `File` object.\r\n * - `multipleFilesUploaded`: Emits the updated list of files.\r\n */\r\n private handlingEditedImage(result: { data: Blob; id: string }) {\r\n this.multipleFiles.update((res) => {\r\n return res.map((r) => {\r\n if (r.id === result.id) {\r\n return { ...r, file: result.data };\r\n }\r\n return r;\r\n });\r\n });\r\n this.file.set(this.multipleFiles()[0].file as File);\r\n\r\n this.emitFileUploadComplete(this.file() as File);\r\n this.emitMultipleFilesUploaded(this.multipleFiles());\r\n }\r\n\r\n private onResetUppy() {\r\n if (this.clear()) {\r\n this.uppy.clear();\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 ngOnDestroy(): void {\r\n this.file.set(null);\r\n this.multipleFiles.set([]);\r\n }\r\n\r\n emitFileUpload(f: File) {\r\n const renamedFile = new File([f], f.name.replace(/ /g, '_'), {\r\n type: f.type,\r\n });\r\n this.fileUploaded.emit(renamedFile);\r\n }\r\n\r\n emitFileUploadComplete(f: File) {\r\n const renamedFile = new File([f], f.name.replace(/ /g, '_'), {\r\n type: f.type,\r\n });\r\n this.fileUploadComplete.emit(renamedFile);\r\n }\r\n emitMultipleFilesUploaded(data: { file: Blob | File; id: string }[]) {\r\n const renamedData = data.map((d) => ({\r\n file: new File([d.file], (d.file as File).name.replace(/ /g, '_'), {\r\n type: d.file.type,\r\n }),\r\n id: d.id,\r\n }));\r\n this.multipleFilesUploaded.emit(renamedData);\r\n }\r\n}\r\n","<div class=\"position-relative\">\n <uppy-dashboard [uppy]=\"uppy\" [props]=\"dashboardProps\"> </uppy-dashboard>\n\n @if (!file()) {\n <div class=\"wrapper\">\n @if (subtitle && showSubtitle) {\n <small class=\"subtitle\">{{\n subtitle\n }}</small>\n }\n @if (sampleUrl && showSample) {\n <a\n class=\"sample\"\n role=\"button\"\n [href]=\"sampleUrl\"\n >\n <i class=\"fa-solid fa-download ms-3\"></i> Download Template\n </a>\n }\n <ng-content></ng-content>\n </div>\n }\n\n @if (file() && file()?.type === 'text/csv') {\n <div\n class=\"alert alert-warning d-flex flex-column gap-2\"\n style=\"margin: 1rem 0 0 0\"\n role=\"alert\"\n >\n <h4 class=\"alert-heading\">CSV File Content Summary</h4>\n <hr />\n <p class=\"fs-6 m-0\">\n {{ rowSummary().rowCount }} rows found\n @if (rowSummary().rowEmpty > 0) {\n - {{ rowSummary().rowEmpty }} empty in the CSV you\n uploaded\n }\n </p>\n </div>\n\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;MA6Ba,aAAa,CAAA;AAiCT,IAAA,SAAA,IAAA,CAAA,KAAK,GAAG;QACrB,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;AACI,KAVU,CAUT;aACI,IAAA,CAAA,QAAQ,GAAG,IAAH,CAAQ;AA8B/B,IAAA,WAAA,GAAA;QAzES,IAAA,CAAA,MAAM,GAAW,MAAM;QACvB,IAAA,CAAA,aAAa,GAAuB,OAAO;QAC3C,IAAA,CAAA,SAAS,GAAW,EAAE;QACtB,IAAA,CAAA,QAAQ,GAAW,EAAE;QAE9B,IAAA,CAAA,UAAU,GAAY,IAAI;AAC1B;;AAEG;AACH,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAU,KAAK,iDAAC;QAC7B,IAAA,CAAA,YAAY,GAAY,IAAI;QAC5B,IAAA,CAAA,qBAAqB,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAO;QACpC,IAAA,CAAA,2BAA2B,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,6BAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAO;AAChC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAe;AAC9C,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAe;AACpD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU;AACxC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAO;AAClC,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAE/C;AAEH,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;AAC1B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAErC,IAAA,CAAA,UAAU,GAAG,MAAM,CAAyC;AAC1D,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,CAAC;AACZ,SAAA,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAEF,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAc,IAAI,gDAAC;AAChC,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAsC,EAAE,yDAAC;QAe/D,IAAA,CAAA,IAAI,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;AACD,YAAA,iBAAiB,EAAE,CAAC,WAAW,EAAE,KAAK,KAAI;AACxC,gBAAA,MAAM,YAAY,GAAG;AACnB,oBAAA,GAAG,WAAW;oBACd,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;iBAC3C;AACD,gBAAA,OAAO,YAAY;YACrB,CAAC;SACF;aACE,GAAG,CAAC,UAAU,EAAE;AACf,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,WAAW,EAAE,QAAQ;YACrB,YAAY,EAAE,CAAC,WAAW,CAAC;SAC5B;aACA,GAAG,CAAC,WAAW,CAAC;AAEnB,QAAA,IAAA,CAAA,cAAc,GAAG;AACf,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,MAAM,EAAE,GAAG;SACZ;AAGC,QAAA,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;QACvE,MAAM,CACJ,OACG,IAAI,CAAC,cAAc,GAAG;YACrB,GAAG,IAAI,CAAC,cAAc;YACtB,GAAG,IAAI,CAAC,2BAA2B,EAAE;AACtC,SAAA,CAAC,CACL;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,SAAS,KAAI;YACtC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,IAAY;AACvC,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACzB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAY,CAAC;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;AAC3B,oBAAA,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBACpD,IAAI,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE;wBAChD,aAAa,CAAC,GAAG,EAAE;oBACrB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM;AAC/B,wBAAA,GAAG,GAAG;wBACN,QAAQ,EAAE,aAAa,CAAC,MAAM;AAC/B,qBAAA,CAAC,CAAC;AACH,oBAAA,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;wBAC5B,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC;AAE1D,wBAAA,IAAI,QAAQ;4BACV,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM;AAC/B,gCAAA,GAAG,GAAG;AACN,gCAAA,QAAQ,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAC;AAC3B,6BAAA,CAAC,CAAC;AACP,oBAAA,CAAC,CAAC;oBACF,OAAO,MAAM,CAAC;gBAChB,CAAC;gBACD,KAAK,CAAC,KAAK,EAAE,IAAI,EAAA;oBACf,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;gBACnC,CAAC;AACD,gBAAA,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,KAAI;oBAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAClC,CAAC;AACF,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,SAAS,KAAI;AACrC,YAAA,MAAM,aAAa,GACjB,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;YACtE,MAAM,IAAI,GAAG,SAAS,CAAC,UAAW,CAAC,CAAC,CAAC,EAAE,IAAI;AAC3C,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAY,CAAC;AACzC,YAAA,IAAI,CAAC,yBAAyB,CAAC,aAAoB,CAAC;YACpD,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAY,CAAC;AAC3B,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAoB,CAAC;AAC9C,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC,KAAI;AACjC,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE;AACzC,YAAA,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;AAC7D,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC;YACpC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AACnD,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,YAAY,EAAE;IACrB;AAEA;;;;;;AAMG;IACK,YAAY,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,KAAK,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,MAAW,KAAI;;AAElD,YAAA,CAAC,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,EAAE,CACV,sBAAsB,EACtB,CAAC,MAAW,KAAI;;AAEd,gBAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;AAClC,YAAA,CAAC,CACF;YAED,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAW,KAAI;;AAEnD,YAAA,CAAC,CAAC;QACJ;IACF;AAEA;;;;;;AAMG;AACK,IAAA,mBAAmB,CAAC,MAAkC,EAAA;QAC5D,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,KAAI;AAChC,YAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;gBACnB,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE;oBACtB,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;gBACpC;AACA,gBAAA,OAAO,CAAC;AACV,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,IAAY,CAAC;QAEnD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAU,CAAC;QAChD,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;IACtD;IAEQ,WAAW,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;AAChB,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;QACnB;IACF;AAEA;;;;;AAKG;AACH,IAAA,cAAc,CAAC,KAAa,EAAE,aAAa,GAAG,CAAC,EAAA;AAC7C,QAAA,IAAI,KAAK,KAAK,CAAC,EAAE;AACf,YAAA,OAAO,SAAS;QAClB;QAEA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACxE,QAAA,MAAM,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxD,QAAA,OAAO,CAAA,EAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA,CAAA,EAAI,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IACnE;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;IAC5B;AAEA,IAAA,cAAc,CAAC,CAAO,EAAA;AACpB,QAAA,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;YAC3D,IAAI,EAAE,CAAC,CAAC,IAAI;AACb,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;IACrC;AAEA,IAAA,sBAAsB,CAAC,CAAO,EAAA;AAC5B,QAAA,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;YAC3D,IAAI,EAAE,CAAC,CAAC,IAAI;AACb,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;IAC3C;AACA,IAAA,yBAAyB,CAAC,IAAyC,EAAA;QACjE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;YACnC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAG,CAAC,CAAC,IAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACjE,gBAAA,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;aAClB,CAAC;YACF,EAAE,EAAE,CAAC,CAAC,EAAE;AACT,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC;IAC9C;8GAtPW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,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,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,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,kBAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7B1B,0lCA0CA,EAAA,MAAA,EAAA,CAAA,odAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDjBY,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAIjB,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;+BACE,UAAU,EAAA,OAAA,EACX,CAAC,kBAAkB,CAAC,EAAA,QAAA,EAAA,0lCAAA,EAAA,MAAA,EAAA,CAAA,odAAA,CAAA,EAAA;;sBAK5B;;sBACA;;sBACA;;sBACA;;sBACA;;sBASA;;sBACA;;sBACA;;sBACA;;sBACA;;;AE/CH;;AAEG;;;;"}
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 {\r\n Component,\r\n effect,\r\n EventEmitter,\r\n inject,\r\n input,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n signal,\r\n} 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 { DashboardComponent } from '@uppy/angular';\r\nimport Compressor from '@uppy/compressor';\r\nimport { Uppy } from '@uppy/core';\r\nimport '@uppy/core/dist/style.min.css';\r\nimport '@uppy/dashboard/css/style.min.css';\r\nimport '@uppy/image-editor/css/style.min.css';\r\nimport ImageEditor from '@uppy/image-editor';\r\nimport Papa from 'papaparse';\r\n\r\n@Component({\r\n selector: 'POS-uppy',\r\n imports: [DashboardComponent],\r\n templateUrl: './uppy.component.html',\r\n styleUrl: './uppy.component.scss',\r\n})\r\nexport class UppyComponent implements OnDestroy {\r\n @Input() folder: string = 'test';\r\n @Input() thumbnailSize: 'small' | 'medium' = 'small';\r\n @Input() sampleUrl: string = '';\r\n @Input() subtitle: string = '';\r\n @Input()\r\n showSample: boolean = true;\r\n /**\r\n * For manually resetting Uppy after a successful upload\r\n */\r\n clear = input<boolean>(false);\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() fileUploadComplete = new EventEmitter<Blob | File>();\r\n @Output() fileRemoved = new EventEmitter<string>();\r\n @Output() onParser = new EventEmitter<any>();\r\n @Output() multipleFilesUploaded = new EventEmitter<\r\n { file: Blob | File; id: string }[]\r\n >();\r\n\r\n http = inject(HttpService);\r\n csvParser = inject(ConvertCsvService);\r\n\r\n rowSummary = signal<{ rowCount: number; rowEmpty: number }>({\r\n rowCount: 0,\r\n rowEmpty: 0,\r\n });\r\n\r\n file = signal<File | null>(null);\r\n multipleFiles = signal<{ file: Blob | File; id: string }[]>([]);\r\n\r\n private static sizes = [\r\n 'Bytes',\r\n 'KB',\r\n 'MB',\r\n 'GB',\r\n 'TB',\r\n 'PB',\r\n 'EB',\r\n 'ZB',\r\n 'YB',\r\n ] 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 onBeforeFileAdded: (currentFile, files) => {\r\n const modifiedFile = {\r\n ...currentFile,\r\n name: currentFile.name?.replace(/ /g, '_'),\r\n };\r\n return modifiedFile;\r\n },\r\n })\r\n .use(Compressor, {\r\n mimeType: 'image/jpeg',\r\n convertSize: Infinity,\r\n convertTypes: ['image/png'],\r\n })\r\n .use(ImageEditor);\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(\r\n () =>\r\n (this.dashboardProps = {\r\n ...this.dashboardProps,\r\n ...this.dashboardPropsConfiguration(),\r\n })\r\n );\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 this.emitFileUpload(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 const withOutHeader = _chunk.split(/\\r?\\n/).slice(1);\r\n if (withOutHeader[withOutHeader.length - 1] === '')\r\n withOutHeader.pop();\r\n this.rowSummary.update((res) => ({\r\n ...res,\r\n rowCount: withOutHeader.length,\r\n }));\r\n withOutHeader.forEach((row) => {\r\n const emptyRow = row.split(',').every((row) => row === '');\r\n\r\n if (emptyRow)\r\n this.rowSummary.update((res) => ({\r\n ...res,\r\n rowEmpty: res.rowEmpty + 1,\r\n }));\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('complete', (uppyFiles) => {\r\n const multipleFiles =\r\n uppyFiles.successful?.map((d) => ({ file: d.data, id: d.id })) ?? [];\r\n const file = uppyFiles.successful![0]?.data;\r\n this.showSample = false;\r\n this.showSubtitle = false;\r\n this.emitFileUploadComplete(file as File);\r\n this.emitMultipleFilesUploaded(multipleFiles as any);\r\n this.onResetUppy();\r\n this.file.set(file as File);\r\n this.multipleFiles.set(multipleFiles as any);\r\n });\r\n\r\n this.uppy.on('file-removed', (f) => {\r\n this.showSample = true;\r\n this.showSubtitle = true;\r\n this.file.set(null);\r\n const currentFiles = this.multipleFiles();\r\n const updatedFiles = currentFiles.filter((r) => r.id != f.id);\r\n this.multipleFiles.set(updatedFiles);\r\n this.fileRemoved.emit(f.id);\r\n this.rowSummary.set({ rowCount: 0, rowEmpty: 0 });\r\n });\r\n\r\n this.onFileEdited();\r\n }\r\n\r\n /**\r\n * Sets up event listeners for the Uppy file editor events.\r\n *\r\n * - Listens for the `file-editor:complete` event, triggered when the file editor finishes editing a file.\r\n * Calls the `handlingEditedImage` method to process the edited file.\r\n * @private\r\n */\r\n private onFileEdited() {\r\n if (this.clear() == false) {\r\n this.uppy.on('file-editor:start', (result: any) => {\r\n // do nothing\r\n });\r\n\r\n this.uppy.on(\r\n 'file-editor:complete',\r\n (result: any) => {\r\n //result = { data: Blob, id: string }\r\n this.handlingEditedImage(result);\r\n }\r\n );\r\n\r\n this.uppy.on('file-editor:cancel', (result: any) => {\r\n // do nothing\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Updates the `multipleFiles` state by replacing the file with the matching ID\r\n * with the new edited image data. Sets the first file in the updated list as the\r\n * current file and emits the following events:\r\n * - `fileUploadComplete`: Emits the updated file as a `File` object.\r\n * - `multipleFilesUploaded`: Emits the updated list of files.\r\n */\r\n private handlingEditedImage(result: { data: Blob; id: string }) {\r\n this.multipleFiles.update((res) => {\r\n return res.map((r) => {\r\n if (r.id === result.id) {\r\n return { ...r, file: result.data };\r\n }\r\n return r;\r\n });\r\n });\r\n this.file.set(this.multipleFiles()[0].file as File);\r\n\r\n this.emitFileUploadComplete(this.file() as File);\r\n this.emitMultipleFilesUploaded(this.multipleFiles());\r\n }\r\n\r\n private onResetUppy() {\r\n if (this.clear()) {\r\n this.uppy.clear();\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 ngOnDestroy(): void {\r\n this.file.set(null);\r\n this.multipleFiles.set([]);\r\n }\r\n\r\n emitFileUpload(f: File) {\r\n const renamedFile = new File([f], f.name.replace(/ /g, '_'), {\r\n type: f.type,\r\n });\r\n this.fileUploaded.emit(renamedFile);\r\n }\r\n\r\n emitFileUploadComplete(f: File) {\r\n const renamedFile = new File([f], f.name.replace(/ /g, '_'), {\r\n type: f.type,\r\n });\r\n this.fileUploadComplete.emit(renamedFile);\r\n }\r\n emitMultipleFilesUploaded(data: { file: Blob | File; id: string }[]) {\r\n const renamedData = data.map((d) => ({\r\n file: new File([d.file], (d.file as File).name.replace(/ /g, '_'), {\r\n type: d.file.type,\r\n }),\r\n id: d.id,\r\n }));\r\n this.multipleFilesUploaded.emit(renamedData);\r\n }\r\n}\r\n","<div class=\"position-relative\">\n <uppy-dashboard [uppy]=\"uppy\" [props]=\"dashboardProps\"> </uppy-dashboard>\n\n @if (!file()) {\n <div class=\"wrapper\">\n @if (subtitle && showSubtitle) {\n <small class=\"subtitle\">{{\n subtitle\n }}</small>\n }\n @if (sampleUrl && showSample) {\n <a\n class=\"sample\"\n role=\"button\"\n [href]=\"sampleUrl\"\n >\n <i class=\"fa-solid fa-download ms-3\"></i> Download Template\n </a>\n }\n <ng-content></ng-content>\n </div>\n }\n\n @if (file() && file()?.type === 'text/csv') {\n <div\n class=\"alert alert-warning d-flex flex-column gap-2\"\n style=\"margin: 1rem 0 0 0\"\n role=\"alert\"\n >\n <h4 class=\"alert-heading\">CSV File Content Summary</h4>\n <hr />\n <p class=\"fs-6 m-0\">\n {{ rowSummary().rowCount }} rows found\n @if (rowSummary().rowEmpty > 0) {\n - {{ rowSummary().rowEmpty }} empty in the CSV you\n uploaded\n }\n </p>\n </div>\n\n }\n</div>\n","/**\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,8 +1,8 @@
1
1
  {
2
2
  "name": "@dealpos-npm/ng-dealpos-library",
3
- "version": "20.0.0",
3
+ "version": "20.0.2",
4
4
  "peerDependencies": {
5
- "@angular/common": "20.3.64",
5
+ "@angular/common": "20.3.6",
6
6
  "@angular/core": "20.3.6",
7
7
  "@angular/material": "20.2.9",
8
8
  "bootstrap": "^5.3.0",