@ng-atomic/common 5.10.0 → 5.11.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,16 +1,17 @@
1
- import { Inject, InjectionToken, Pipe } from "@angular/core";
1
+ import { Inject, InjectionToken, Optional, Pipe } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  export const SELECT_ID = new InjectionToken('[@ng-atomic/common] Select Id');
4
4
  export const defaultSelectId = (entity) => entity.Id;
5
5
  export class SelectIdPipe {
6
6
  constructor(selectId) {
7
7
  this.selectId = selectId;
8
+ this.selectId ?? (this.selectId = defaultSelectId);
8
9
  }
9
10
  transform(entity) {
10
11
  return this.selectId(entity);
11
12
  }
12
13
  }
13
- SelectIdPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SelectIdPipe, deps: [{ token: SELECT_ID }], target: i0.ɵɵFactoryTarget.Pipe });
14
+ SelectIdPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SelectIdPipe, deps: [{ token: SELECT_ID, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
14
15
  SelectIdPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: SelectIdPipe, isStandalone: true, name: "selectId" });
15
16
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SelectIdPipe, decorators: [{
16
17
  type: Pipe,
@@ -20,7 +21,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImpor
20
21
  standalone: true,
21
22
  }]
22
23
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
24
+ type: Optional
25
+ }, {
23
26
  type: Inject,
24
27
  args: [SELECT_ID]
25
28
  }] }]; } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWlkLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvcGlwZXMvc2VsZWN0LWlkL3NlbGVjdC1pZC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHN0QsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksY0FBYyxDQUFXLCtCQUErQixDQUFDLENBQUM7QUFDdkYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFhLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO0FBT3BFLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQytCLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDOUMsQ0FBQztJQUVKLFNBQVMsQ0FBQyxNQUFXO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDOzt5R0FQVSxZQUFZLGtCQUViLFNBQVM7dUdBRlIsWUFBWTsyRkFBWixZQUFZO2tCQUx4QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxVQUFVO29CQUNoQixJQUFJLEVBQUUsSUFBSTtvQkFDVixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQUdJLE1BQU07MkJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0aW9uVG9rZW4sIFBpcGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5leHBvcnQgdHlwZSBTZWxlY3RJZCA9IChlbnRpdHk6IG9iamVjdCkgPT4gc3RyaW5nIHwgbnVtYmVyO1xuZXhwb3J0IGNvbnN0IFNFTEVDVF9JRCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTZWxlY3RJZD4oJ1tAbmctYXRvbWljL2NvbW1vbl0gU2VsZWN0IElkJyk7XG5leHBvcnQgY29uc3QgZGVmYXVsdFNlbGVjdElkOiBTZWxlY3RJZCA9IChlbnRpdHk6IGFueSkgPT4gZW50aXR5LklkO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdzZWxlY3RJZCcsXG4gIHB1cmU6IHRydWUsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdElkUGlwZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoU0VMRUNUX0lEKSBwcm90ZWN0ZWQgc2VsZWN0SWQ6IFNlbGVjdElkXG4gICkge31cblxuICB0cmFuc2Zvcm0oZW50aXR5OiBhbnkpOiBzdHJpbmcgfCBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdElkKGVudGl0eSk7XG4gIH1cbn1cbiJdfQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWlkLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvcGlwZXMvc2VsZWN0LWlkL3NlbGVjdC1pZC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR3ZFLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBVywrQkFBK0IsQ0FBQyxDQUFDO0FBQ3ZGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBYSxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztBQU9wRSxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUMyQyxRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRTNELElBQUksQ0FBQyxRQUFRLEtBQWIsSUFBSSxDQUFDLFFBQVEsR0FBSyxlQUFlLEVBQUM7SUFDcEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFXO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDOzt5R0FUVSxZQUFZLGtCQUVELFNBQVM7dUdBRnBCLFlBQVk7MkZBQVosWUFBWTtrQkFMeEIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsVUFBVTtvQkFDaEIsSUFBSSxFQUFFLElBQUk7b0JBQ1YsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkFHSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGlvblRva2VuLCBPcHRpb25hbCwgUGlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCB0eXBlIFNlbGVjdElkID0gKGVudGl0eTogb2JqZWN0KSA9PiBzdHJpbmcgfCBudW1iZXI7XG5leHBvcnQgY29uc3QgU0VMRUNUX0lEID0gbmV3IEluamVjdGlvblRva2VuPFNlbGVjdElkPignW0BuZy1hdG9taWMvY29tbW9uXSBTZWxlY3QgSWQnKTtcbmV4cG9ydCBjb25zdCBkZWZhdWx0U2VsZWN0SWQ6IFNlbGVjdElkID0gKGVudGl0eTogYW55KSA9PiBlbnRpdHkuSWQ7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3NlbGVjdElkJyxcbiAgcHVyZTogdHJ1ZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0SWRQaXBlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChTRUxFQ1RfSUQpIHByb3RlY3RlZCBzZWxlY3RJZDogU2VsZWN0SWRcbiAgKSB7XG4gICAgdGhpcy5zZWxlY3RJZCA/Pz0gZGVmYXVsdFNlbGVjdElkO1xuICB9XG5cbiAgdHJhbnNmb3JtKGVudGl0eTogYW55KTogc3RyaW5nIHwgbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RJZChlbnRpdHkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,25 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { unparse } from 'papaparse';
3
+ import dayjs from 'dayjs';
4
+ import * as i0 from "@angular/core";
5
+ export class CsvService {
6
+ downloadArrayAsCsv(array, fileName = `${dayjs().format()}.csv`) {
7
+ const UTF_8_BOM = '%EF%BB%BF';
8
+ const data = 'data:text/csv;charset=utf-8,' + UTF_8_BOM + encodeURIComponent(unparse(array));
9
+ const element = document.createElement('a');
10
+ element.href = data;
11
+ element.setAttribute('download', fileName);
12
+ document.body.appendChild(element);
13
+ element.click();
14
+ document.body.removeChild(element);
15
+ }
16
+ }
17
+ CsvService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: CsvService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
18
+ CsvService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: CsvService, providedIn: 'root' });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: CsvService, decorators: [{
20
+ type: Injectable,
21
+ args: [{
22
+ providedIn: 'root'
23
+ }]
24
+ }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvc2VydmljZXMvY3N2L2Nzdi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7O0FBSzFCLE1BQU0sT0FBTyxVQUFVO0lBQ3JCLGtCQUFrQixDQUFDLEtBQStCLEVBQUUsV0FBbUIsR0FBRyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTTtRQUM5RixNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUM7UUFDOUIsTUFBTSxJQUFJLEdBQUcsOEJBQThCLEdBQUcsU0FBUyxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzdGLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDcEIsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0MsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7O3VHQVZVLFVBQVU7MkdBQVYsVUFBVSxjQUZULE1BQU07MkZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB1bnBhcnNlIH0gZnJvbSAncGFwYXBhcnNlJztcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENzdlNlcnZpY2Uge1xuICBkb3dubG9hZEFycmF5QXNDc3YoYXJyYXk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5bXSwgZmlsZU5hbWU6IHN0cmluZyA9IGAke2RheWpzKCkuZm9ybWF0KCl9LmNzdmApIHtcbiAgICBjb25zdCBVVEZfOF9CT00gPSAnJUVGJUJCJUJGJztcbiAgICBjb25zdCBkYXRhID0gJ2RhdGE6dGV4dC9jc3Y7Y2hhcnNldD11dGYtOCwnICsgVVRGXzhfQk9NICsgZW5jb2RlVVJJQ29tcG9uZW50KHVucGFyc2UoYXJyYXkpKTtcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgIGVsZW1lbnQuaHJlZiA9IGRhdGE7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZU5hbWUpO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7XG4gICAgZWxlbWVudC5jbGljaygpO1xuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './csv.service';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvc2VydmljZXMvY3N2L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jc3Yuc2VydmljZSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1zZXJ2aWNlcy1jc3YuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvc2VydmljZXMvY3N2L25nLWF0b21pYy1jb21tb24tc2VydmljZXMtY3N2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -1,17 +1,19 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Pipe, Inject } from '@angular/core';
2
+ import { InjectionToken, Pipe, Optional, Inject } from '@angular/core';
3
3
 
4
4
  const SELECT_ID = new InjectionToken('[@ng-atomic/common] Select Id');
5
5
  const defaultSelectId = (entity) => entity.Id;
6
6
  class SelectIdPipe {
7
7
  constructor(selectId) {
8
+ var _a;
8
9
  this.selectId = selectId;
10
+ (_a = this.selectId) !== null && _a !== void 0 ? _a : (this.selectId = defaultSelectId);
9
11
  }
10
12
  transform(entity) {
11
13
  return this.selectId(entity);
12
14
  }
13
15
  }
14
- SelectIdPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SelectIdPipe, deps: [{ token: SELECT_ID }], target: i0.ɵɵFactoryTarget.Pipe });
16
+ SelectIdPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SelectIdPipe, deps: [{ token: SELECT_ID, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
15
17
  SelectIdPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: SelectIdPipe, isStandalone: true, name: "selectId" });
16
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SelectIdPipe, decorators: [{
17
19
  type: Pipe,
@@ -22,6 +24,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImpor
22
24
  }]
23
25
  }], ctorParameters: function () {
24
26
  return [{ type: undefined, decorators: [{
27
+ type: Optional
28
+ }, {
25
29
  type: Inject,
26
30
  args: [SELECT_ID]
27
31
  }] }];
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-common-pipes-select-id.mjs","sources":["../../../../../packages/@ng-atomic/common/src/pipes/select-id/select-id.pipe.ts","../../../../../packages/@ng-atomic/common/src/pipes/select-id/ng-atomic-common-pipes-select-id.ts"],"sourcesContent":["import { Inject, InjectionToken, Pipe } from \"@angular/core\";\n\nexport type SelectId = (entity: object) => string | number;\nexport const SELECT_ID = new InjectionToken<SelectId>('[@ng-atomic/common] Select Id');\nexport const defaultSelectId: SelectId = (entity: any) => entity.Id;\n\n@Pipe({\n name: 'selectId',\n pure: true,\n standalone: true,\n})\nexport class SelectIdPipe {\n constructor(\n @Inject(SELECT_ID) protected selectId: SelectId\n ) {}\n\n transform(entity: any): string | number {\n return this.selectId(entity);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAGa,SAAS,GAAG,IAAI,cAAc,CAAW,+BAA+B,EAAE;AAChF,MAAM,eAAe,GAAa,CAAC,MAAW,KAAK,MAAM,CAAC,GAAG;MAOvD,YAAY,CAAA;AACvB,IAAA,WAAA,CAC+B,QAAkB,EAAA;AAAlB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;KAC7C;AAEJ,IAAA,SAAS,CAAC,MAAW,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KAC9B;;AAPU,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,kBAEb,SAAS,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;uGAFR,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,UAAU,EAAE,IAAI;iBACjB,CAAA;;;8BAGI,MAAM;+BAAC,SAAS,CAAA;;;;ACbrB;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-atomic-common-pipes-select-id.mjs","sources":["../../../../../packages/@ng-atomic/common/src/pipes/select-id/select-id.pipe.ts","../../../../../packages/@ng-atomic/common/src/pipes/select-id/ng-atomic-common-pipes-select-id.ts"],"sourcesContent":["import { Inject, InjectionToken, Optional, Pipe } from \"@angular/core\";\n\nexport type SelectId = (entity: object) => string | number;\nexport const SELECT_ID = new InjectionToken<SelectId>('[@ng-atomic/common] Select Id');\nexport const defaultSelectId: SelectId = (entity: any) => entity.Id;\n\n@Pipe({\n name: 'selectId',\n pure: true,\n standalone: true,\n})\nexport class SelectIdPipe {\n constructor(\n @Optional() @Inject(SELECT_ID) protected selectId: SelectId\n ) {\n this.selectId ??= defaultSelectId;\n }\n\n transform(entity: any): string | number {\n return this.selectId(entity);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAGa,SAAS,GAAG,IAAI,cAAc,CAAW,+BAA+B,EAAE;AAChF,MAAM,eAAe,GAAa,CAAC,MAAW,KAAK,MAAM,CAAC,GAAG;MAOvD,YAAY,CAAA;AACvB,IAAA,WAAA,CAC2C,QAAkB,EAAA;;AAAlB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAE3D,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAb,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,IAAA,IAAI,CAAC,QAAQ,GAAK,eAAe,CAAC,CAAA;KACnC;AAED,IAAA,SAAS,CAAC,MAAW,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KAC9B;;AATU,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,kBAED,SAAS,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;uGAFpB,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,UAAU,EAAE,IAAI;iBACjB,CAAA;;;8BAGI,QAAQ;;8BAAI,MAAM;+BAAC,SAAS,CAAA;;;;ACbjC;;AAEG;;;;"}
@@ -0,0 +1,32 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable } from '@angular/core';
3
+ import { unparse } from 'papaparse';
4
+ import dayjs from 'dayjs';
5
+
6
+ class CsvService {
7
+ downloadArrayAsCsv(array, fileName = `${dayjs().format()}.csv`) {
8
+ const UTF_8_BOM = '%EF%BB%BF';
9
+ const data = 'data:text/csv;charset=utf-8,' + UTF_8_BOM + encodeURIComponent(unparse(array));
10
+ const element = document.createElement('a');
11
+ element.href = data;
12
+ element.setAttribute('download', fileName);
13
+ document.body.appendChild(element);
14
+ element.click();
15
+ document.body.removeChild(element);
16
+ }
17
+ }
18
+ CsvService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: CsvService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
19
+ CsvService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: CsvService, providedIn: 'root' });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: CsvService, decorators: [{
21
+ type: Injectable,
22
+ args: [{
23
+ providedIn: 'root'
24
+ }]
25
+ }] });
26
+
27
+ /**
28
+ * Generated bundle index. Do not edit.
29
+ */
30
+
31
+ export { CsvService };
32
+ //# sourceMappingURL=ng-atomic-common-services-csv.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng-atomic-common-services-csv.mjs","sources":["../../../../../packages/@ng-atomic/common/src/services/csv/csv.service.ts","../../../../../packages/@ng-atomic/common/src/services/csv/ng-atomic-common-services-csv.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { unparse } from 'papaparse';\nimport dayjs from 'dayjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CsvService {\n downloadArrayAsCsv(array: Record<string, string>[], fileName: string = `${dayjs().format()}.csv`) {\n const UTF_8_BOM = '%EF%BB%BF';\n const data = 'data:text/csv;charset=utf-8,' + UTF_8_BOM + encodeURIComponent(unparse(array));\n const element = document.createElement('a');\n element.href = data;\n element.setAttribute('download', fileName);\n document.body.appendChild(element);\n element.click();\n document.body.removeChild(element);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAOa,UAAU,CAAA;IACrB,kBAAkB,CAAC,KAA+B,EAAE,QAAmB,GAAA,CAAG,EAAA,KAAK,EAAE,CAAC,MAAM,EAAE,CAAM,IAAA,CAAA,EAAA;QAC9F,MAAM,SAAS,GAAG,WAAW,CAAC;AAC9B,QAAA,MAAM,IAAI,GAAG,8BAA8B,GAAG,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7F,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAC5C,QAAA,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;AACpB,QAAA,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC3C,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,OAAO,CAAC,KAAK,EAAE,CAAC;AAChB,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KACpC;;uGAVU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAV,UAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cAFT,MAAM,EAAA,CAAA,CAAA;2FAEP,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;ACND;;AAEG;;;;"}
@@ -1,17 +1,18 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Pipe, Inject } from '@angular/core';
2
+ import { InjectionToken, Pipe, Optional, Inject } from '@angular/core';
3
3
 
4
4
  const SELECT_ID = new InjectionToken('[@ng-atomic/common] Select Id');
5
5
  const defaultSelectId = (entity) => entity.Id;
6
6
  class SelectIdPipe {
7
7
  constructor(selectId) {
8
8
  this.selectId = selectId;
9
+ this.selectId ?? (this.selectId = defaultSelectId);
9
10
  }
10
11
  transform(entity) {
11
12
  return this.selectId(entity);
12
13
  }
13
14
  }
14
- SelectIdPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SelectIdPipe, deps: [{ token: SELECT_ID }], target: i0.ɵɵFactoryTarget.Pipe });
15
+ SelectIdPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SelectIdPipe, deps: [{ token: SELECT_ID, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
15
16
  SelectIdPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: SelectIdPipe, isStandalone: true, name: "selectId" });
16
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SelectIdPipe, decorators: [{
17
18
  type: Pipe,
@@ -21,6 +22,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImpor
21
22
  standalone: true,
22
23
  }]
23
24
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
25
+ type: Optional
26
+ }, {
24
27
  type: Inject,
25
28
  args: [SELECT_ID]
26
29
  }] }]; } });
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-common-pipes-select-id.mjs","sources":["../../../../../packages/@ng-atomic/common/src/pipes/select-id/select-id.pipe.ts","../../../../../packages/@ng-atomic/common/src/pipes/select-id/ng-atomic-common-pipes-select-id.ts"],"sourcesContent":["import { Inject, InjectionToken, Pipe } from \"@angular/core\";\n\nexport type SelectId = (entity: object) => string | number;\nexport const SELECT_ID = new InjectionToken<SelectId>('[@ng-atomic/common] Select Id');\nexport const defaultSelectId: SelectId = (entity: any) => entity.Id;\n\n@Pipe({\n name: 'selectId',\n pure: true,\n standalone: true,\n})\nexport class SelectIdPipe {\n constructor(\n @Inject(SELECT_ID) protected selectId: SelectId\n ) {}\n\n transform(entity: any): string | number {\n return this.selectId(entity);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAGa,SAAS,GAAG,IAAI,cAAc,CAAW,+BAA+B,EAAE;AAChF,MAAM,eAAe,GAAa,CAAC,MAAW,KAAK,MAAM,CAAC,GAAG;MAOvD,YAAY,CAAA;AACvB,IAAA,WAAA,CAC+B,QAAkB,EAAA;QAAlB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;KAC7C;AAEJ,IAAA,SAAS,CAAC,MAAW,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KAC9B;;AAPU,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,kBAEb,SAAS,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;uGAFR,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;0BAGI,MAAM;2BAAC,SAAS,CAAA;;;ACbrB;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-atomic-common-pipes-select-id.mjs","sources":["../../../../../packages/@ng-atomic/common/src/pipes/select-id/select-id.pipe.ts","../../../../../packages/@ng-atomic/common/src/pipes/select-id/ng-atomic-common-pipes-select-id.ts"],"sourcesContent":["import { Inject, InjectionToken, Optional, Pipe } from \"@angular/core\";\n\nexport type SelectId = (entity: object) => string | number;\nexport const SELECT_ID = new InjectionToken<SelectId>('[@ng-atomic/common] Select Id');\nexport const defaultSelectId: SelectId = (entity: any) => entity.Id;\n\n@Pipe({\n name: 'selectId',\n pure: true,\n standalone: true,\n})\nexport class SelectIdPipe {\n constructor(\n @Optional() @Inject(SELECT_ID) protected selectId: SelectId\n ) {\n this.selectId ??= defaultSelectId;\n }\n\n transform(entity: any): string | number {\n return this.selectId(entity);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAGa,SAAS,GAAG,IAAI,cAAc,CAAW,+BAA+B,EAAE;AAChF,MAAM,eAAe,GAAa,CAAC,MAAW,KAAK,MAAM,CAAC,GAAG;MAOvD,YAAY,CAAA;AACvB,IAAA,WAAA,CAC2C,QAAkB,EAAA;QAAlB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAE3D,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,eAAe,CAAC,CAAA;KACnC;AAED,IAAA,SAAS,CAAC,MAAW,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KAC9B;;AATU,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,kBAED,SAAS,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;uGAFpB,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;0BAGI,QAAQ;;0BAAI,MAAM;2BAAC,SAAS,CAAA;;;ACbjC;;AAEG;;;;"}
@@ -0,0 +1,32 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable } from '@angular/core';
3
+ import { unparse } from 'papaparse';
4
+ import dayjs from 'dayjs';
5
+
6
+ class CsvService {
7
+ downloadArrayAsCsv(array, fileName = `${dayjs().format()}.csv`) {
8
+ const UTF_8_BOM = '%EF%BB%BF';
9
+ const data = 'data:text/csv;charset=utf-8,' + UTF_8_BOM + encodeURIComponent(unparse(array));
10
+ const element = document.createElement('a');
11
+ element.href = data;
12
+ element.setAttribute('download', fileName);
13
+ document.body.appendChild(element);
14
+ element.click();
15
+ document.body.removeChild(element);
16
+ }
17
+ }
18
+ CsvService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: CsvService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
19
+ CsvService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: CsvService, providedIn: 'root' });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: CsvService, decorators: [{
21
+ type: Injectable,
22
+ args: [{
23
+ providedIn: 'root'
24
+ }]
25
+ }] });
26
+
27
+ /**
28
+ * Generated bundle index. Do not edit.
29
+ */
30
+
31
+ export { CsvService };
32
+ //# sourceMappingURL=ng-atomic-common-services-csv.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng-atomic-common-services-csv.mjs","sources":["../../../../../packages/@ng-atomic/common/src/services/csv/csv.service.ts","../../../../../packages/@ng-atomic/common/src/services/csv/ng-atomic-common-services-csv.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { unparse } from 'papaparse';\nimport dayjs from 'dayjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CsvService {\n downloadArrayAsCsv(array: Record<string, string>[], fileName: string = `${dayjs().format()}.csv`) {\n const UTF_8_BOM = '%EF%BB%BF';\n const data = 'data:text/csv;charset=utf-8,' + UTF_8_BOM + encodeURIComponent(unparse(array));\n const element = document.createElement('a');\n element.href = data;\n element.setAttribute('download', fileName);\n document.body.appendChild(element);\n element.click();\n document.body.removeChild(element);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAOa,UAAU,CAAA;IACrB,kBAAkB,CAAC,KAA+B,EAAE,QAAmB,GAAA,CAAA,EAAG,KAAK,EAAE,CAAC,MAAM,EAAE,CAAM,IAAA,CAAA,EAAA;QAC9F,MAAM,SAAS,GAAG,WAAW,CAAC;AAC9B,QAAA,MAAM,IAAI,GAAG,8BAA8B,GAAG,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7F,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAC5C,QAAA,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;AACpB,QAAA,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC3C,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,OAAO,CAAC,KAAK,EAAE,CAAC;AAChB,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KACpC;;uGAVU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAV,UAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cAFT,MAAM,EAAA,CAAA,CAAA;2FAEP,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACND;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-atomic/common",
3
- "version": "5.10.0",
3
+ "version": "5.11.0",
4
4
  "license": "MIT",
5
5
  "module": "fesm2015/ng-atomic-common.mjs",
6
6
  "es2020": "fesm2020/ng-atomic-common.mjs",
@@ -108,6 +108,14 @@
108
108
  "node": "./fesm2015/ng-atomic-common-services-chips-manager.mjs",
109
109
  "default": "./fesm2020/ng-atomic-common-services-chips-manager.mjs"
110
110
  },
111
+ "./services/csv": {
112
+ "types": "./services/csv/index.d.ts",
113
+ "esm2020": "./esm2020/services/csv/ng-atomic-common-services-csv.mjs",
114
+ "es2020": "./fesm2020/ng-atomic-common-services-csv.mjs",
115
+ "es2015": "./fesm2015/ng-atomic-common-services-csv.mjs",
116
+ "node": "./fesm2015/ng-atomic-common-services-csv.mjs",
117
+ "default": "./fesm2020/ng-atomic-common-services-csv.mjs"
118
+ },
111
119
  "./services/form": {
112
120
  "types": "./services/form/index.d.ts",
113
121
  "esm2020": "./esm2020/services/form/ng-atomic-common-services-form.mjs",
@@ -215,6 +223,7 @@
215
223
  "rxjs": "^7.0.0",
216
224
  "lodash": "4.17.21",
217
225
  "dayjs": "1.11.7",
226
+ "papaparse": "^5.4.1",
218
227
  "flat": "^5.0.2",
219
228
  "@angular/material": "^15.0.0"
220
229
  }
@@ -7,6 +7,6 @@ export declare class SelectIdPipe {
7
7
  protected selectId: SelectId;
8
8
  constructor(selectId: SelectId);
9
9
  transform(entity: any): string | number;
10
- static ɵfac: i0.ɵɵFactoryDeclaration<SelectIdPipe, never>;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<SelectIdPipe, [{ optional: true; }]>;
11
11
  static ɵpipe: i0.ɵɵPipeDeclaration<SelectIdPipe, "selectId", true>;
12
12
  }
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class CsvService {
3
+ downloadArrayAsCsv(array: Record<string, string>[], fileName?: string): void;
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<CsvService, never>;
5
+ static ɵprov: i0.ɵɵInjectableDeclaration<CsvService>;
6
+ }
@@ -0,0 +1 @@
1
+ export * from './csv.service';