@sd-angular/core 1.3.238 → 1.3.240
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/sd-angular-core-export.umd.js +95 -88
- package/bundles/sd-angular-core-export.umd.js.map +1 -1
- package/bundles/sd-angular-core-export.umd.min.js +1 -1
- package/bundles/sd-angular-core-export.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-table.umd.js +514 -90
- package/bundles/sd-angular-core-table.umd.js.map +1 -1
- package/bundles/sd-angular-core-table.umd.min.js +2 -2
- package/bundles/sd-angular-core-table.umd.min.js.map +1 -1
- package/esm2015/export/src/lib/export.service.js +93 -90
- package/esm2015/table/sd-angular-core-table.js +19 -18
- package/esm2015/table/src/lib/components/popup-export/popup-export.component.js +289 -0
- package/esm2015/table/src/lib/models/table-option-export.model.js +1 -1
- package/esm2015/table/src/lib/table.component.js +32 -16
- package/esm2015/table/src/lib/table.module.js +6 -2
- package/export/src/lib/export.service.d.ts +4 -0
- package/fesm2015/sd-angular-core-export.js +92 -89
- package/fesm2015/sd-angular-core-export.js.map +1 -1
- package/fesm2015/sd-angular-core-table.js +319 -18
- package/fesm2015/sd-angular-core-table.js.map +1 -1
- package/package.json +1 -1
- package/{sd-angular-core-1.3.238.tgz → sd-angular-core-1.3.240.tgz} +0 -0
- package/table/sd-angular-core-table.d.ts +18 -17
- package/table/sd-angular-core-table.metadata.json +1 -1
- package/table/src/lib/components/popup-export/popup-export.component.d.ts +56 -0
- package/table/src/lib/models/table-option-export.model.d.ts +7 -6
- package/table/src/lib/table.component.d.ts +8 -1
|
@@ -44,6 +44,8 @@ import { SdTableQuickAction } from './components/quick-action/quick-action.compo
|
|
|
44
44
|
import { SdCommonModule } from '@sd-angular/core/common';
|
|
45
45
|
import { SdGroupPipe } from './pipes/sd-group.pipe';
|
|
46
46
|
import { SdGroupModule } from '@sd-angular/core/group';
|
|
47
|
+
import { SdPopupExport } from './components/popup-export/popup-export.component';
|
|
48
|
+
import { MatChipsModule } from '@angular/material/chips';
|
|
47
49
|
export class MatPaginatorIntlCro extends MatPaginatorIntl {
|
|
48
50
|
constructor() {
|
|
49
51
|
super(...arguments);
|
|
@@ -58,7 +60,7 @@ export class MatPaginatorIntlCro extends MatPaginatorIntl {
|
|
|
58
60
|
}
|
|
59
61
|
const from = page * pageSize + 1;
|
|
60
62
|
const to = from + (length - page * pageSize > pageSize ? pageSize : length - page * pageSize) - 1;
|
|
61
|
-
return `${from}-${to}
|
|
63
|
+
return `${from}-${to}/${length}`;
|
|
62
64
|
};
|
|
63
65
|
}
|
|
64
66
|
}
|
|
@@ -82,6 +84,7 @@ SdTableModule.decorators = [
|
|
|
82
84
|
MatSlideToggleModule,
|
|
83
85
|
MatCheckboxModule,
|
|
84
86
|
MatListModule,
|
|
87
|
+
MatChipsModule,
|
|
85
88
|
CdkTableModule,
|
|
86
89
|
DragDropModule,
|
|
87
90
|
SdFormModule,
|
|
@@ -103,6 +106,7 @@ SdTableModule.decorators = [
|
|
|
103
106
|
SdPopupConfiguration,
|
|
104
107
|
SdTableFilter,
|
|
105
108
|
SdPopupFilter,
|
|
109
|
+
SdPopupExport,
|
|
106
110
|
// Pipes
|
|
107
111
|
SdCommandFilterPipe,
|
|
108
112
|
SdCommandDisablePipe,
|
|
@@ -137,4 +141,4 @@ SdTableModule.decorators = [
|
|
|
137
141
|
],
|
|
138
142
|
},] }
|
|
139
143
|
];
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS90YWJsZS8iLCJzb3VyY2VzIjpbInNyYy9saWIvdGFibGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUs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QztpQkFDckM7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULFFBQVE7b0JBQ1IsV0FBVztvQkFDWCxZQUFZO29CQUNaLG9CQUFvQjtvQkFDcEIsMkJBQTJCO29CQUMzQjt3QkFDRSxPQUFPLEVBQUUsZ0JBQWdCO3dCQUN6QixRQUFRLEVBQUUsbUJBQW1CO3FCQUM5QjtpQkFDRjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBEYXRlUGlwZSwgRGVjaW1hbFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IFNkVGFibGUgfSBmcm9tICcuL3RhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdFNvcnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgTWF0UGFnaW5hdG9ySW50bCwgTWF0UGFnaW5hdG9yTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xyXG5pbXBvcnQgeyBDZGtUYWJsZU1vZHVsZSwgQ2RrQ29sdW1uRGVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RhYmxlJztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBTZENvbW1hbmRGaWx0ZXJQaXBlIH0gZnJvbSAnLi9waXBlcy9jb21tYW5kLWZpbHRlci5waXBlJztcclxuaW1wb3J0IHsgU2RDb21tYW5kRGlzYWJsZVBpcGUgfSBmcm9tICcuL3BpcGVzL2NvbW1hbmQtZGlzYWJsZS5waXBlJztcclxuaW1wb3J0IHsgU2RDb21tYW5kSWNvblBpcGUgfSBmcm9tICcuL3BpcGVzL2NvbW1hbmQtaWNvbi5waXBlJztcclxuaW1wb3J0IHsgU2RDb21tYW5kVGl0bGVQaXBlIH0gZnJvbSAnLi9waXBlcy9jb21tYW5kLXRpdGxlLnBpcGUnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBTZERlc2t0b3BDZWxsVmlldyB9IGZyb20gJy4vY29tcG9uZW50cy9kZXNrdG9wLWNlbGwtdmlldy9kZXNrdG9wLWNlbGwtdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZFNlcnZpY2VNb2R1bGUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL3NlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IFNkVGFiZWxDZWxsRGVmRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3NkLXRhYmxlLWNlbGwtZGVmLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcclxuaW1wb3J0IHsgU2RGaWx0ZXJFeHRlcm5hbFBpcGUgfSBmcm9tICcuL3BpcGVzL2ZpbHRlci1leHRlcm5hbC5waXBlJztcclxuaW1wb3J0IHsgU2RGaWx0ZXJDb2x1bW5QaXBlIH0gZnJvbSAnLi9waXBlcy9maWx0ZXItY29sdW1uLnBpcGUnO1xyXG5pbXBvcnQgeyBTZFRhYmxlRmlsdGVyIH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlLWZpbHRlci90YWJsZS1maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2RQb3B1cEZpbHRlciB9IGZyb20gJy4vY29tcG9uZW50cy9wb3B1cC1maWx0ZXIvcG9wdXAtZmlsdGVyLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBTZFRhYmxlRmlsdGVyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdGFibGUtZmlsdGVyL3RhYmxlLWZpbHRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2REZXNrdG9wQ29tbWFuZCB9IGZyb20gJy4vY29tcG9uZW50cy9kZXNrdG9wLWNvbW1hbmQvZGVza3RvcC1jb21tYW5kLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNkVGFibGVGaWx0ZXJEZWZEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvc2QtdGFibGUtZmlsdGVyLWRlZi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTZE1hdGVyaWFsRm9vdGVyRGVmRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3NkLXRhYmxlLWZvb3Rlci1kZWYuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2RNYXRlcmlhbFN1YkluZm9ybWF0aW9uRGVmRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3NkLXRhYmxlLWV4cGFuZC1kZWYuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2RGb3JtTW9kdWxlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9mb3JtJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IFNkUG9wdXBDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9jb21wb25lbnRzL3BvcHVwLWNvbmZpZ3VyYXRpb24vcG9wdXAtY29uZmlndXJhdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZFRhYmxlQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3RhYmxlLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcclxuaW1wb3J0IHsgU2RDb2x1bW5Ub29sdGlwUGlwZSB9IGZyb20gJy4vcGlwZXMvY29sdW1uLXRvb2x0aXAucGlwZSc7XHJcbmltcG9ydCB7IFNkU2VsZWN0aW9uQWN0aW9uRmlsdGVyUGlwZSB9IGZyb20gJy4vcGlwZXMvc2VsZWN0aW9uLWFjdGlvbi1maWx0ZXIucGlwZSc7XHJcbmltcG9ydCB7IFNkU2VsZWN0aW9uRGlzYWJsZVBpcGUgfSBmcm9tICcuL3BpcGVzL3NlbGVjdGlvbi1kaXNhYmxlLnBpcGUnO1xyXG5pbXBvcnQgeyBTZFNlbGVjdGlvblZpc2libGVTZWxlY3RBbGxQaXBlIH0gZnJvbSAnLi9waXBlcy9zZWxlY3Rpb24tdmlzaWJsZS1zZWxlY3QtYWxsLnBpcGUnO1xyXG5pbXBvcnQgeyBTZERlc2t0b3BDZWxsIH0gZnJvbSAnLi9jb21wb25lbnRzL2Rlc2t0b3AtY2VsbC9kZXNrdG9wLWNlbGwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2RDb2x1bW5JbmxpbmVGaWx0ZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sdW1uLWlubGluZS1maWx0ZXIvY29sdW1uLWlubGluZS1maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2RTZWxlY3Rpb25WaXNpYmxlUGlwZSB9IGZyb20gJy4vcGlwZXMvc2VsZWN0aW9uLXZpc2libGUucGlwZSc7XHJcbmltcG9ydCB7IFNkVGFibGVRdWlja0FjdGlvbiB9IGZyb20gJy4vY29tcG9uZW50cy9xdWljay1hY3Rpb24vcXVpY2stYWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNkQ29tbW9uTW9kdWxlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9jb21tb24nO1xyXG5pbXBvcnQgeyBTZEdyb3VwUGlwZSB9IGZyb20gJy4vcGlwZXMvc2QtZ3JvdXAucGlwZSc7XHJcbmltcG9ydCB7IFNkR3JvdXBNb2R1bGUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2dyb3VwJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE1hdFBhZ2luYXRvckludGxDcm8gZXh0ZW5kcyBNYXRQYWdpbmF0b3JJbnRsIHtcclxuICBmaXJzdFBhZ2VMYWJlbCA9ICdUcmFuZyDEkeG6p3UnO1xyXG4gIGxhc3RQYWdlTGFiZWwgPSAnVHJhbmcgY3Xhu5FpJztcclxuICBpdGVtc1BlclBhZ2VMYWJlbCA9ICdLw61jaCB0aMaw4bubYyB0cmFuZyc7XHJcbiAgbmV4dFBhZ2VMYWJlbCA9ICdUcmFuZyBzYXUnO1xyXG4gIHByZXZpb3VzUGFnZUxhYmVsID0gJ1RyYW5nIHRyxrDhu5tjJztcclxuXHJcbiAgZ2V0UmFuZ2VMYWJlbCA9IChwYWdlOiBudW1iZXIsIHBhZ2VTaXplOiBudW1iZXIsIGxlbmd0aDogbnVtYmVyKSA9PiB7XHJcbiAgICBpZiAobGVuZ3RoID09PSAwIHx8IHBhZ2VTaXplID09PSAwKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIGNvbnN0IGZyb20gPSBwYWdlICogcGFnZVNpemUgKyAxO1xyXG4gICAgY29uc3QgdG8gPSBmcm9tICsgKGxlbmd0aCAtIHBhZ2UgKiBwYWdlU2l6ZSA+IHBhZ2VTaXplID8gcGFnZVNpemUgOiBsZW5ndGggLSBwYWdlICogcGFnZVNpemUpIC0gMTtcclxuICAgIHJldHVybiBgJHtmcm9tfS0ke3RvfSB0csOqbiAke2xlbmd0aH1gO1xyXG4gIH07XHJcbn1cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0U29ydE1vZHVsZSxcclxuICAgIE1hdFBhZ2luYXRvck1vZHVsZSxcclxuICAgIE1hdFRhYmxlTW9kdWxlLFxyXG4gICAgTWF0TWVudU1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxyXG4gICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXHJcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgIE1hdExpc3RNb2R1bGUsXHJcbiAgICBDZGtUYWJsZU1vZHVsZSxcclxuICAgIERyYWdEcm9wTW9kdWxlLFxyXG4gICAgU2RGb3JtTW9kdWxlLFxyXG4gICAgU2RTZXJ2aWNlTW9kdWxlLFxyXG4gICAgU2RDb21tb25Nb2R1bGUsXHJcbiAgICBTZEdyb3VwTW9kdWxlLFxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBTZFRhYmxlUXVpY2tBY3Rpb24sXHJcbiAgICBTZERlc2t0b3BDZWxsLFxyXG4gICAgU2REZXNrdG9wQ2VsbFZpZXcsXHJcbiAgICBTZERlc2t0b3BDb21tYW5kLFxyXG4gICAgU2RDb2x1bW5JbmxpbmVGaWx0ZXIsXHJcbiAgICBTZFRhYmxlLFxyXG5cclxuICAgIFNkTWF0ZXJpYWxGb290ZXJEZWZEaXJlY3RpdmUsXHJcbiAgICBTZFRhYmVsQ2VsbERlZkRpcmVjdGl2ZSxcclxuICAgIFNkVGFibGVGaWx0ZXJEZWZEaXJlY3RpdmUsXHJcbiAgICBTZE1hdGVyaWFsU3ViSW5mb3JtYXRpb25EZWZEaXJlY3RpdmUsXHJcbiAgICBTZFBvcHVwQ29uZmlndXJhdGlvbixcclxuICAgIFNkVGFibGVGaWx0ZXIsXHJcbiAgICBTZFBvcHVwRmlsdGVyLFxyXG5cclxuICAgIC8vIFBpcGVzXHJcbiAgICBTZENvbW1hbmRGaWx0ZXJQaXBlLFxyXG4gICAgU2RDb21tYW5kRGlzYWJsZVBpcGUsXHJcbiAgICBTZENvbW1hbmRJY29uUGlwZSxcclxuICAgIFNkQ29tbWFuZFRpdGxlUGlwZSxcclxuICAgIFNkQ29sdW1uVG9vbHRpcFBpcGUsXHJcbiAgICBTZEZpbHRlckNvbHVtblBpcGUsXHJcbiAgICBTZEZpbHRlckV4dGVybmFsUGlwZSxcclxuICAgIFNkU2VsZWN0aW9uQWN0aW9uRmlsdGVyUGlwZSxcclxuICAgIFNkU2VsZWN0aW9uVmlzaWJsZVBpcGUsXHJcbiAgICBTZFNlbGVjdGlvbkRpc2FibGVQaXBlLFxyXG4gICAgU2RTZWxlY3Rpb25WaXNpYmxlU2VsZWN0QWxsUGlwZSxcclxuICAgIFNkR3JvdXBQaXBlLFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgU2RUYWJsZSxcclxuICAgIFNkTWF0ZXJpYWxGb290ZXJEZWZEaXJlY3RpdmUsXHJcbiAgICBTZFRhYmVsQ2VsbERlZkRpcmVjdGl2ZSxcclxuICAgIFNkVGFibGVGaWx0ZXJEZWZEaXJlY3RpdmUsXHJcbiAgICBTZE1hdGVyaWFsU3ViSW5mb3JtYXRpb25EZWZEaXJlY3RpdmUsXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIERhdGVQaXBlLFxyXG4gICAgRGVjaW1hbFBpcGUsXHJcbiAgICBDZGtDb2x1bW5EZWYsXHJcbiAgICBTZFRhYmxlRmlsdGVyU2VydmljZSxcclxuICAgIFNkVGFibGVDb25maWd1cmF0aW9uU2VydmljZSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTWF0UGFnaW5hdG9ySW50bCxcclxuICAgICAgdXNlQ2xhc3M6IE1hdFBhZ2luYXRvckludGxDcm8sXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZFRhYmxlTW9kdWxlIHt9XHJcbiJdfQ==
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS90YWJsZS8iLCJzb3VyY2VzIjpbInNyYy9saWIvdGFibGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUs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dEIsK0JBQStCO29CQUMvQixXQUFXO2lCQUNaO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxPQUFPO29CQUNQLDRCQUE0QjtvQkFDNUIsdUJBQXVCO29CQUN2Qix5QkFBeUI7b0JBQ3pCLG9DQUFvQztpQkFDckM7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULFFBQVE7b0JBQ1IsV0FBVztvQkFDWCxZQUFZO29CQUNaLG9CQUFvQjtvQkFDcEIsMkJBQTJCO29CQUMzQjt3QkFDRSxPQUFPLEVBQUUsZ0JBQWdCO3dCQUN6QixRQUFRLEVBQUUsbUJBQW1CO3FCQUM5QjtpQkFDRjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBEYXRlUGlwZSwgRGVjaW1hbFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IFNkVGFibGUgfSBmcm9tICcuL3RhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdFNvcnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgTWF0UGFnaW5hdG9ySW50bCwgTWF0UGFnaW5hdG9yTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xyXG5pbXBvcnQgeyBDZGtUYWJsZU1vZHVsZSwgQ2RrQ29sdW1uRGVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RhYmxlJztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBTZENvbW1hbmRGaWx0ZXJQaXBlIH0gZnJvbSAnLi9waXBlcy9jb21tYW5kLWZpbHRlci5waXBlJztcclxuaW1wb3J0IHsgU2RDb21tYW5kRGlzYWJsZVBpcGUgfSBmcm9tICcuL3BpcGVzL2NvbW1hbmQtZGlzYWJsZS5waXBlJztcclxuaW1wb3J0IHsgU2RDb21tYW5kSWNvblBpcGUgfSBmcm9tICcuL3BpcGVzL2NvbW1hbmQtaWNvbi5waXBlJztcclxuaW1wb3J0IHsgU2RDb21tYW5kVGl0bGVQaXBlIH0gZnJvbSAnLi9waXBlcy9jb21tYW5kLXRpdGxlLnBpcGUnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBTZERlc2t0b3BDZWxsVmlldyB9IGZyb20gJy4vY29tcG9uZW50cy9kZXNrdG9wLWNlbGwtdmlldy9kZXNrdG9wLWNlbGwtdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZFNlcnZpY2VNb2R1bGUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL3NlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IFNkVGFiZWxDZWxsRGVmRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3NkLXRhYmxlLWNlbGwtZGVmLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcclxuaW1wb3J0IHsgU2RGaWx0ZXJFeHRlcm5hbFBpcGUgfSBmcm9tICcuL3BpcGVzL2ZpbHRlci1leHRlcm5hbC5waXBlJztcclxuaW1wb3J0IHsgU2RGaWx0ZXJDb2x1bW5QaXBlIH0gZnJvbSAnLi9waXBlcy9maWx0ZXItY29sdW1uLnBpcGUnO1xyXG5pbXBvcnQgeyBTZFRhYmxlRmlsdGVyIH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlLWZpbHRlci90YWJsZS1maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2RQb3B1cEZpbHRlciB9IGZyb20gJy4vY29tcG9uZW50cy9wb3B1cC1maWx0ZXIvcG9wdXAtZmlsdGVyLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBTZFRhYmxlRmlsdGVyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdGFibGUtZmlsdGVyL3RhYmxlLWZpbHRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2REZXNrdG9wQ29tbWFuZCB9IGZyb20gJy4vY29tcG9uZW50cy9kZXNrdG9wLWNvbW1hbmQvZGVza3RvcC1jb21tYW5kLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNkVGFibGVGaWx0ZXJEZWZEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvc2QtdGFibGUtZmlsdGVyLWRlZi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTZE1hdGVyaWFsRm9vdGVyRGVmRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3NkLXRhYmxlLWZvb3Rlci1kZWYuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2RNYXRlcmlhbFN1YkluZm9ybWF0aW9uRGVmRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3NkLXRhYmxlLWV4cGFuZC1kZWYuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2RGb3JtTW9kdWxlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9mb3JtJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IFNkUG9wdXBDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9jb21wb25lbnRzL3BvcHVwLWNvbmZpZ3VyYXRpb24vcG9wdXAtY29uZmlndXJhdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZFRhYmxlQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3RhYmxlLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcclxuaW1wb3J0IHsgU2RDb2x1bW5Ub29sdGlwUGlwZSB9IGZyb20gJy4vcGlwZXMvY29sdW1uLXRvb2x0aXAucGlwZSc7XHJcbmltcG9ydCB7IFNkU2VsZWN0aW9uQWN0aW9uRmlsdGVyUGlwZSB9IGZyb20gJy4vcGlwZXMvc2VsZWN0aW9uLWFjdGlvbi1maWx0ZXIucGlwZSc7XHJcbmltcG9ydCB7IFNkU2VsZWN0aW9uRGlzYWJsZVBpcGUgfSBmcm9tICcuL3BpcGVzL3NlbGVjdGlvbi1kaXNhYmxlLnBpcGUnO1xyXG5pbXBvcnQgeyBTZFNlbGVjdGlvblZpc2libGVTZWxlY3RBbGxQaXBlIH0gZnJvbSAnLi9waXBlcy9zZWxlY3Rpb24tdmlzaWJsZS1zZWxlY3QtYWxsLnBpcGUnO1xyXG5pbXBvcnQgeyBTZERlc2t0b3BDZWxsIH0gZnJvbSAnLi9jb21wb25lbnRzL2Rlc2t0b3AtY2VsbC9kZXNrdG9wLWNlbGwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2RDb2x1bW5JbmxpbmVGaWx0ZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sdW1uLWlubGluZS1maWx0ZXIvY29sdW1uLWlubGluZS1maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2RTZWxlY3Rpb25WaXNpYmxlUGlwZSB9IGZyb20gJy4vcGlwZXMvc2VsZWN0aW9uLXZpc2libGUucGlwZSc7XHJcbmltcG9ydCB7IFNkVGFibGVRdWlja0FjdGlvbiB9IGZyb20gJy4vY29tcG9uZW50cy9xdWljay1hY3Rpb24vcXVpY2stYWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNkQ29tbW9uTW9kdWxlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9jb21tb24nO1xyXG5pbXBvcnQgeyBTZEdyb3VwUGlwZSB9IGZyb20gJy4vcGlwZXMvc2QtZ3JvdXAucGlwZSc7XHJcbmltcG9ydCB7IFNkR3JvdXBNb2R1bGUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2dyb3VwJztcclxuaW1wb3J0IHsgU2RQb3B1cEV4cG9ydCB9IGZyb20gJy4vY29tcG9uZW50cy9wb3B1cC1leHBvcnQvcG9wdXAtZXhwb3J0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTWF0UGFnaW5hdG9ySW50bENybyBleHRlbmRzIE1hdFBhZ2luYXRvckludGwge1xyXG4gIGZpcnN0UGFnZUxhYmVsID0gJ1RyYW5nIMSR4bqndSc7XHJcbiAgbGFzdFBhZ2VMYWJlbCA9ICdUcmFuZyBjdeG7kWknO1xyXG4gIGl0ZW1zUGVyUGFnZUxhYmVsID0gJ0vDrWNoIHRoxrDhu5tjIHRyYW5nJztcclxuICBuZXh0UGFnZUxhYmVsID0gJ1RyYW5nIHNhdSc7XHJcbiAgcHJldmlvdXNQYWdlTGFiZWwgPSAnVHJhbmcgdHLGsOG7m2MnO1xyXG5cclxuICBnZXRSYW5nZUxhYmVsID0gKHBhZ2U6IG51bWJlciwgcGFnZVNpemU6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpID0+IHtcclxuICAgIGlmIChsZW5ndGggPT09IDAgfHwgcGFnZVNpemUgPT09IDApIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZnJvbSA9IHBhZ2UgKiBwYWdlU2l6ZSArIDE7XHJcbiAgICBjb25zdCB0byA9IGZyb20gKyAobGVuZ3RoIC0gcGFnZSAqIHBhZ2VTaXplID4gcGFnZVNpemUgPyBwYWdlU2l6ZSA6IGxlbmd0aCAtIHBhZ2UgKiBwYWdlU2l6ZSkgLSAxO1xyXG4gICAgcmV0dXJuIGAke2Zyb219LSR7dG99LyR7bGVuZ3RofWA7XHJcbiAgfTtcclxufVxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRTb3J0TW9kdWxlLFxyXG4gICAgTWF0UGFnaW5hdG9yTW9kdWxlLFxyXG4gICAgTWF0VGFibGVNb2R1bGUsXHJcbiAgICBNYXRNZW51TW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXHJcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcclxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgTWF0TGlzdE1vZHVsZSxcclxuICAgIE1hdENoaXBzTW9kdWxlLFxyXG4gICAgQ2RrVGFibGVNb2R1bGUsXHJcbiAgICBEcmFnRHJvcE1vZHVsZSxcclxuICAgIFNkRm9ybU1vZHVsZSxcclxuICAgIFNkU2VydmljZU1vZHVsZSxcclxuICAgIFNkQ29tbW9uTW9kdWxlLFxyXG4gICAgU2RHcm91cE1vZHVsZSxcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgU2RUYWJsZVF1aWNrQWN0aW9uLFxyXG4gICAgU2REZXNrdG9wQ2VsbCxcclxuICAgIFNkRGVza3RvcENlbGxWaWV3LFxyXG4gICAgU2REZXNrdG9wQ29tbWFuZCxcclxuICAgIFNkQ29sdW1uSW5saW5lRmlsdGVyLFxyXG4gICAgU2RUYWJsZSxcclxuXHJcbiAgICBTZE1hdGVyaWFsRm9vdGVyRGVmRGlyZWN0aXZlLFxyXG4gICAgU2RUYWJlbENlbGxEZWZEaXJlY3RpdmUsXHJcbiAgICBTZFRhYmxlRmlsdGVyRGVmRGlyZWN0aXZlLFxyXG4gICAgU2RNYXRlcmlhbFN1YkluZm9ybWF0aW9uRGVmRGlyZWN0aXZlLFxyXG4gICAgU2RQb3B1cENvbmZpZ3VyYXRpb24sXHJcbiAgICBTZFRhYmxlRmlsdGVyLFxyXG4gICAgU2RQb3B1cEZpbHRlcixcclxuICAgIFNkUG9wdXBFeHBvcnQsXHJcbiAgICAvLyBQaXBlc1xyXG4gICAgU2RDb21tYW5kRmlsdGVyUGlwZSxcclxuICAgIFNkQ29tbWFuZERpc2FibGVQaXBlLFxyXG4gICAgU2RDb21tYW5kSWNvblBpcGUsXHJcbiAgICBTZENvbW1hbmRUaXRsZVBpcGUsXHJcbiAgICBTZENvbHVtblRvb2x0aXBQaXBlLFxyXG4gICAgU2RGaWx0ZXJDb2x1bW5QaXBlLFxyXG4gICAgU2RGaWx0ZXJFeHRlcm5hbFBpcGUsXHJcbiAgICBTZFNlbGVjdGlvbkFjdGlvbkZpbHRlclBpcGUsXHJcbiAgICBTZFNlbGVjdGlvblZpc2libGVQaXBlLFxyXG4gICAgU2RTZWxlY3Rpb25EaXNhYmxlUGlwZSxcclxuICAgIFNkU2VsZWN0aW9uVmlzaWJsZVNlbGVjdEFsbFBpcGUsXHJcbiAgICBTZEdyb3VwUGlwZSxcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFNkVGFibGUsXHJcbiAgICBTZE1hdGVyaWFsRm9vdGVyRGVmRGlyZWN0aXZlLFxyXG4gICAgU2RUYWJlbENlbGxEZWZEaXJlY3RpdmUsXHJcbiAgICBTZFRhYmxlRmlsdGVyRGVmRGlyZWN0aXZlLFxyXG4gICAgU2RNYXRlcmlhbFN1YkluZm9ybWF0aW9uRGVmRGlyZWN0aXZlLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBEYXRlUGlwZSxcclxuICAgIERlY2ltYWxQaXBlLFxyXG4gICAgQ2RrQ29sdW1uRGVmLFxyXG4gICAgU2RUYWJsZUZpbHRlclNlcnZpY2UsXHJcbiAgICBTZFRhYmxlQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE1hdFBhZ2luYXRvckludGwsXHJcbiAgICAgIHVzZUNsYXNzOiBNYXRQYWdpbmF0b3JJbnRsQ3JvLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RUYWJsZU1vZHVsZSB7fVxyXG4iXX0=
|
|
@@ -27,12 +27,12 @@ class SdExportService {
|
|
|
27
27
|
border: {
|
|
28
28
|
bottom: { style: 'thin' },
|
|
29
29
|
left: { style: 'thin' },
|
|
30
|
-
right: { style: 'thin' }
|
|
30
|
+
right: { style: 'thin' },
|
|
31
31
|
},
|
|
32
32
|
alignment: {
|
|
33
33
|
vertical: 'middle',
|
|
34
34
|
horizontal: 'center',
|
|
35
|
-
wrapText: true
|
|
35
|
+
wrapText: true,
|
|
36
36
|
},
|
|
37
37
|
font: {
|
|
38
38
|
bold: true,
|
|
@@ -43,9 +43,9 @@ class SdExportService {
|
|
|
43
43
|
type: 'pattern',
|
|
44
44
|
pattern: 'solid',
|
|
45
45
|
fgColor: {
|
|
46
|
-
argb: 'FAFAFA'
|
|
47
|
-
}
|
|
48
|
-
}
|
|
46
|
+
argb: 'FAFAFA',
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
49
|
});
|
|
50
50
|
_titleColor.set(this, 'FFFFFF');
|
|
51
51
|
_titleFgColor.set(this, '143180');
|
|
@@ -53,12 +53,12 @@ class SdExportService {
|
|
|
53
53
|
border: {
|
|
54
54
|
bottom: { style: 'thin' },
|
|
55
55
|
left: { style: 'thin' },
|
|
56
|
-
right: { style: 'thin' }
|
|
56
|
+
right: { style: 'thin' },
|
|
57
57
|
},
|
|
58
58
|
alignment: {
|
|
59
59
|
vertical: 'middle',
|
|
60
60
|
horizontal: 'center',
|
|
61
|
-
wrapText: true
|
|
61
|
+
wrapText: true,
|
|
62
62
|
},
|
|
63
63
|
font: {
|
|
64
64
|
bold: true,
|
|
@@ -70,19 +70,19 @@ class SdExportService {
|
|
|
70
70
|
pattern: 'solid',
|
|
71
71
|
fgColor: {
|
|
72
72
|
argb: __classPrivateFieldGet(this, _titleFgColor),
|
|
73
|
-
}
|
|
74
|
-
}
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
75
|
});
|
|
76
76
|
_requiredStyle.set(this, {
|
|
77
77
|
border: {
|
|
78
78
|
bottom: { style: 'thin' },
|
|
79
79
|
left: { style: 'thin' },
|
|
80
|
-
right: { style: 'thin' }
|
|
80
|
+
right: { style: 'thin' },
|
|
81
81
|
},
|
|
82
82
|
alignment: {
|
|
83
83
|
vertical: 'middle',
|
|
84
84
|
horizontal: 'center',
|
|
85
|
-
wrapText: true
|
|
85
|
+
wrapText: true,
|
|
86
86
|
},
|
|
87
87
|
font: {
|
|
88
88
|
italic: true,
|
|
@@ -93,18 +93,18 @@ class SdExportService {
|
|
|
93
93
|
type: 'pattern',
|
|
94
94
|
pattern: 'solid',
|
|
95
95
|
fgColor: {
|
|
96
|
-
argb: 'FF1744'
|
|
97
|
-
}
|
|
98
|
-
}
|
|
96
|
+
argb: 'FF1744',
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
99
|
});
|
|
100
100
|
_descriptionStyle.set(this, {
|
|
101
101
|
border: {
|
|
102
102
|
bottom: { style: 'thin' },
|
|
103
103
|
left: { style: 'thin' },
|
|
104
|
-
right: { style: 'thin' }
|
|
104
|
+
right: { style: 'thin' },
|
|
105
105
|
},
|
|
106
106
|
alignment: {
|
|
107
|
-
wrapText: true
|
|
107
|
+
wrapText: true,
|
|
108
108
|
},
|
|
109
109
|
font: {
|
|
110
110
|
italic: true,
|
|
@@ -115,27 +115,27 @@ class SdExportService {
|
|
|
115
115
|
type: 'pattern',
|
|
116
116
|
pattern: 'solid',
|
|
117
117
|
fgColor: {
|
|
118
|
-
argb: 'CFD8DC'
|
|
119
|
-
}
|
|
120
|
-
}
|
|
118
|
+
argb: 'CFD8DC',
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
121
|
});
|
|
122
122
|
_cellStyle.set(this, {
|
|
123
123
|
alignment: {
|
|
124
124
|
vertical: 'middle',
|
|
125
|
-
wrapText: true
|
|
126
|
-
}
|
|
125
|
+
wrapText: true,
|
|
126
|
+
},
|
|
127
127
|
});
|
|
128
128
|
_directory.set(this, (key, group) => {
|
|
129
129
|
let hashedFolder = hash({
|
|
130
130
|
folder: this.folder,
|
|
131
|
-
userFolder: this.userFolder
|
|
131
|
+
userFolder: this.userFolder,
|
|
132
132
|
});
|
|
133
133
|
if (!group) {
|
|
134
134
|
return `dir1=${this.folder}&dir2=U-${hashedFolder}&dir3=${key || ''}`;
|
|
135
135
|
}
|
|
136
136
|
hashedFolder = hash({
|
|
137
137
|
folder: this.folder,
|
|
138
|
-
group
|
|
138
|
+
group,
|
|
139
139
|
});
|
|
140
140
|
return `dir1=${this.folder}&dir2=G-${hashedFolder}&dir3=${key || ''}`;
|
|
141
141
|
});
|
|
@@ -177,8 +177,8 @@ class SdExportService {
|
|
|
177
177
|
type: 'pattern',
|
|
178
178
|
pattern: 'solid',
|
|
179
179
|
fgColor: {
|
|
180
|
-
argb: fill || __classPrivateFieldGet(this, _titleFgColor)
|
|
181
|
-
}
|
|
180
|
+
argb: fill || __classPrivateFieldGet(this, _titleFgColor),
|
|
181
|
+
},
|
|
182
182
|
} });
|
|
183
183
|
cellField.value = column.field;
|
|
184
184
|
cellTitle.value = column.title;
|
|
@@ -215,7 +215,7 @@ class SdExportService {
|
|
|
215
215
|
const file = yield SdUtility.upload({
|
|
216
216
|
extensions: ['xlsx'],
|
|
217
217
|
maxSizeInMb: 0.1,
|
|
218
|
-
validator
|
|
218
|
+
validator,
|
|
219
219
|
});
|
|
220
220
|
if (file) {
|
|
221
221
|
const { filePath, fileName } = yield this.apiService.upload(url, file).catch((err) => {
|
|
@@ -248,10 +248,10 @@ class SdExportService {
|
|
|
248
248
|
const { filesInFolder } = API;
|
|
249
249
|
const url = `${this.functionUrl}${filesInFolder}?${__classPrivateFieldGet(this, _directory).call(this, key, group)}`;
|
|
250
250
|
const res = yield this.apiService.get(url);
|
|
251
|
-
return ((_a = res.files) === null || _a === void 0 ? void 0 : _a.map(e => ({
|
|
251
|
+
return (((_a = res.files) === null || _a === void 0 ? void 0 : _a.map(e => ({
|
|
252
252
|
filePath: e.publicUrl,
|
|
253
|
-
fileName: e.name
|
|
254
|
-
}))) || [];
|
|
253
|
+
fileName: e.name,
|
|
254
|
+
}))) || []);
|
|
255
255
|
});
|
|
256
256
|
this.download = (filePath, fileName) => {
|
|
257
257
|
const link = document.createElement('a');
|
|
@@ -269,9 +269,9 @@ class SdExportService {
|
|
|
269
269
|
filePath,
|
|
270
270
|
columns,
|
|
271
271
|
items,
|
|
272
|
-
fileName
|
|
272
|
+
fileName,
|
|
273
273
|
}, null, {
|
|
274
|
-
responseType: 'arraybuffer'
|
|
274
|
+
responseType: 'arraybuffer',
|
|
275
275
|
});
|
|
276
276
|
const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,' });
|
|
277
277
|
SdUtility.downloadBlob(blob, fileName);
|
|
@@ -351,7 +351,7 @@ class SdExportService {
|
|
|
351
351
|
const fromRow = hasDescription ? 4 : 3;
|
|
352
352
|
items.forEach((e, idx1) => {
|
|
353
353
|
columns.forEach((column, idx2) => {
|
|
354
|
-
if (typeof
|
|
354
|
+
if (typeof e[column.field] === 'number') {
|
|
355
355
|
firstSheet.getCell(fromRow + idx1, 1 + idx2).value = +e[column.field];
|
|
356
356
|
firstSheet.getCell(fromRow + idx1, 1 + idx2).numFmt = '#';
|
|
357
357
|
}
|
|
@@ -374,7 +374,7 @@ class SdExportService {
|
|
|
374
374
|
for (const [idx, sheet] of sheets.entries()) {
|
|
375
375
|
const { name, columns, cells } = sheet;
|
|
376
376
|
const worksheet = workbook.addWorksheet(name || `Sheet ${idx + 1}`);
|
|
377
|
-
for (const column of
|
|
377
|
+
for (const column of columns || []) {
|
|
378
378
|
worksheet.getColumn(column.index).style = column.style;
|
|
379
379
|
worksheet.getColumn(column.index).width = column.width;
|
|
380
380
|
}
|
|
@@ -391,9 +391,9 @@ class SdExportService {
|
|
|
391
391
|
const { sdMergePDF } = API;
|
|
392
392
|
const url = `${this.functionUrl}${sdMergePDF}`;
|
|
393
393
|
const buffer = yield this.apiService.post(url, {
|
|
394
|
-
urls
|
|
394
|
+
urls,
|
|
395
395
|
}, null, {
|
|
396
|
-
responseType: 'arraybuffer'
|
|
396
|
+
responseType: 'arraybuffer',
|
|
397
397
|
});
|
|
398
398
|
SdUtility.downloadBlob(new Blob([buffer], { type: 'application/pdf' }));
|
|
399
399
|
});
|
|
@@ -402,62 +402,65 @@ class SdExportService {
|
|
|
402
402
|
extensions: ['xlsx'],
|
|
403
403
|
maxSizeInMb: 10,
|
|
404
404
|
}).then(file => {
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
405
|
+
return this.parseXlsx(file);
|
|
406
|
+
});
|
|
407
|
+
});
|
|
408
|
+
this.parseXlsx = (file) => __awaiter(this, void 0, void 0, function* () {
|
|
409
|
+
if (file) {
|
|
410
|
+
return new Promise((resolve, reject) => {
|
|
411
|
+
const wb = new Workbook();
|
|
412
|
+
const reader = new FileReader();
|
|
413
|
+
reader.onload = () => {
|
|
414
|
+
const buffer = reader.result;
|
|
415
|
+
if (!buffer) {
|
|
416
|
+
reject('Có lỗi xảy ra khi đọc file');
|
|
417
|
+
return;
|
|
418
|
+
}
|
|
419
|
+
wb.xlsx.load(buffer).then(workbook => {
|
|
420
|
+
const sheet = workbook.worksheets[0];
|
|
421
|
+
if (!sheet) {
|
|
422
|
+
reject('Không tìm thấy dữ liệu');
|
|
413
423
|
return;
|
|
414
424
|
}
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
headers.forEach((cellValue, index) => {
|
|
430
|
-
if (cellValue) {
|
|
431
|
-
const field = cellValue.toString();
|
|
432
|
-
item[field] = values[index];
|
|
433
|
-
if (typeof (item[field]) === 'string') {
|
|
434
|
-
item[field] = item[field].trim();
|
|
435
|
-
}
|
|
436
|
-
if (item[field] === '' || item[field] === undefined) {
|
|
437
|
-
item[field] = null;
|
|
438
|
-
}
|
|
425
|
+
const items = [];
|
|
426
|
+
const headers = sheet.getRow(1).values;
|
|
427
|
+
if (Array.isArray(headers)) {
|
|
428
|
+
sheet.eachRow((row, rowIndex) => {
|
|
429
|
+
const { hasValues, values } = row;
|
|
430
|
+
// console.log(row, hasValues, values)
|
|
431
|
+
if (hasValues && rowIndex > 1) {
|
|
432
|
+
const item = {};
|
|
433
|
+
headers.forEach((cellValue, index) => {
|
|
434
|
+
if (cellValue) {
|
|
435
|
+
const field = cellValue.toString();
|
|
436
|
+
item[field] = values[index];
|
|
437
|
+
if (typeof item[field] === 'string') {
|
|
438
|
+
item[field] = item[field].trim();
|
|
439
439
|
}
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
items
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
else {
|
|
455
|
-
return {
|
|
456
|
-
items: [],
|
|
457
|
-
file: null
|
|
440
|
+
if (item[field] === '' || item[field] === undefined) {
|
|
441
|
+
item[field] = null;
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
});
|
|
445
|
+
items.push(item);
|
|
446
|
+
}
|
|
447
|
+
});
|
|
448
|
+
resolve({
|
|
449
|
+
items,
|
|
450
|
+
file,
|
|
451
|
+
});
|
|
452
|
+
}
|
|
453
|
+
});
|
|
458
454
|
};
|
|
459
|
-
|
|
460
|
-
|
|
455
|
+
reader.readAsArrayBuffer(file);
|
|
456
|
+
});
|
|
457
|
+
}
|
|
458
|
+
else {
|
|
459
|
+
return {
|
|
460
|
+
items: [],
|
|
461
|
+
file: null,
|
|
462
|
+
};
|
|
463
|
+
}
|
|
461
464
|
});
|
|
462
465
|
}
|
|
463
466
|
get functionUrl() {
|
|
@@ -473,7 +476,7 @@ class SdExportService {
|
|
|
473
476
|
if (!folder) {
|
|
474
477
|
return;
|
|
475
478
|
}
|
|
476
|
-
if (typeof
|
|
479
|
+
if (typeof folder === 'string') {
|
|
477
480
|
return folder;
|
|
478
481
|
}
|
|
479
482
|
return folder();
|
|
@@ -483,7 +486,7 @@ _fieldStyle = new WeakMap(), _titleColor = new WeakMap(), _titleFgColor = new We
|
|
|
483
486
|
SdExportService.ɵprov = ɵɵdefineInjectable({ factory: function SdExportService_Factory() { return new SdExportService(ɵɵinject(SdApiService), ɵɵinject(SdNotifyService), ɵɵinject(FIREBASE_CONFIG, 8)); }, token: SdExportService, providedIn: "root" });
|
|
484
487
|
SdExportService.decorators = [
|
|
485
488
|
{ type: Injectable, args: [{
|
|
486
|
-
providedIn: 'root'
|
|
489
|
+
providedIn: 'root',
|
|
487
490
|
},] }
|
|
488
491
|
];
|
|
489
492
|
SdExportService.ctorParameters = () => [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-angular-core-export.js","sources":["../../../../projects/sd-core/export/src/lib/export.model.ts","../../../../projects/sd-core/export/src/lib/export.service.ts","../../../../projects/sd-core/export/sd-angular-core-export.ts"],"sourcesContent":["export * from './excel.model';\r\nexport interface SdExportTemplate {\r\n fileName?: string;\r\n columns: SdExportTempateColumn[];\r\n sheets?: {\r\n name: string,\r\n items: any[],\r\n fields: string[]\r\n }[];\r\n}\r\n\r\nexport interface SdExportTempateColumn {\r\n field: string;\r\n title: string;\r\n required?: boolean;\r\n color?: string;\r\n width?: string;\r\n description?: string;\r\n fontColor?: string;\r\n fill?: string;\r\n}\r\n\r\nexport interface SdExportFile {\r\n fileName?: string;\r\n filePath?: string;\r\n}\r\n\r\nexport interface SdExportColumn {\r\n field: string;\r\n title: string;\r\n description?: string;\r\n width?: string;\r\n}\r\n\r\nexport interface IExportOption {\r\n columns: SdExportTempateColumn[];\r\n items: any[];\r\n fileName?: string;\r\n sheets?: {\r\n name: string,\r\n items: any[],\r\n fields: string[]\r\n }[];\r\n}\r\n\r\nexport interface IBigExportRequest {\r\n filePath?: string;\r\n destination?: string;\r\n latestRow: number;\r\n columns: {\r\n field: string,\r\n title: string,\r\n description?: string,\r\n width?: string,\r\n }[];\r\n items: any[];\r\n}\r\n\r\nexport interface IBigExportResponse {\r\n filePath: string;\r\n destination: string;\r\n latestRow: number;\r\n}\r\n\r\nexport type GroupPermission = 'view' | 'add' | 'delete';\r\n\r\nexport const API = {\r\n uploadTemplate: '/excel/uploadTemplate',\r\n generateUploadTemplate: '/excel/generateUploadTemplate',\r\n filesInFolder: '/excel/filesInFolder',\r\n removeFile: '/excel/remove',\r\n sdExportByTemplate: '/excel/sd-export-by-template',\r\n sdMergePDF: '/excel/sd-merge-pdf',\r\n};\r\n","import { Optional } from '@angular/core';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { SdApiService } from '@sd-angular/core/api';\r\nimport * as uuid from 'uuid';\r\nimport hash from 'object-hash';\r\nimport { ExportToCsv } from 'export-to-csv';\r\nimport { Workbook, Style } from 'exceljs';\r\nimport { SdExportTemplate, IExportOption, API, SdExportFile, SdExportCustomOption } from './export.model';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport { FIREBASE_CONFIG, IFirebaseConfiguration } from '@sd-angular/core/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdExportService {\r\n private get functionUrl() {\r\n return this.firebaseConfiguration?.functionUrl;\r\n }\r\n\r\n private get folder() {\r\n const { project, env } = this.firebaseConfiguration;\r\n return `${project}-${env}`;\r\n }\r\n\r\n private get userFolder() {\r\n const { folder } = this.firebaseConfiguration;\r\n if (!folder) {\r\n return;\r\n }\r\n if (typeof (folder) === 'string') {\r\n return folder;\r\n }\r\n return folder();\r\n }\r\n\r\n #fieldStyle: Partial<Style> = {\r\n border: {\r\n bottom: { style: 'thin' },\r\n left: { style: 'thin' },\r\n right: { style: 'thin' }\r\n },\r\n alignment: {\r\n vertical: 'middle',\r\n horizontal: 'center',\r\n wrapText: true\r\n },\r\n font: {\r\n bold: true,\r\n size: 11,\r\n color: { argb: '000000' },\r\n },\r\n fill: {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: {\r\n argb: 'FAFAFA'\r\n }\r\n }\r\n }\r\n #titleColor = 'FFFFFF';\r\n #titleFgColor = '143180';\r\n #titleStyle: Partial<Style> = {\r\n border: {\r\n bottom: { style: 'thin' },\r\n left: { style: 'thin' },\r\n right: { style: 'thin' }\r\n },\r\n alignment: {\r\n vertical: 'middle',\r\n horizontal: 'center',\r\n wrapText: true\r\n },\r\n font: {\r\n bold: true,\r\n size: 11,\r\n color: { argb: this.#titleColor },\r\n },\r\n fill: {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: {\r\n argb: this.#titleFgColor,\r\n }\r\n }\r\n }\r\n\r\n #requiredStyle: Partial<Style> = {\r\n border: {\r\n bottom: { style: 'thin' },\r\n left: { style: 'thin' },\r\n right: { style: 'thin' }\r\n },\r\n alignment: {\r\n vertical: 'middle',\r\n horizontal: 'center',\r\n wrapText: true\r\n },\r\n font: {\r\n italic: true,\r\n size: 11,\r\n color: { argb: 'FFFFFF' },\r\n },\r\n fill: {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: {\r\n argb: 'FF1744'\r\n }\r\n }\r\n }\r\n\r\n #descriptionStyle: Partial<Style> = {\r\n border: {\r\n bottom: { style: 'thin' },\r\n left: { style: 'thin' },\r\n right: { style: 'thin' }\r\n },\r\n alignment: {\r\n wrapText: true\r\n },\r\n font: {\r\n italic: true,\r\n size: 9,\r\n color: { argb: '000000' },\r\n },\r\n fill: {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: {\r\n argb: 'CFD8DC'\r\n }\r\n }\r\n }\r\n\r\n #cellStyle: Partial<Style> = {\r\n alignment: {\r\n vertical: 'middle',\r\n wrapText: true\r\n }\r\n }\r\n\r\n constructor(\r\n private apiService: SdApiService,\r\n private notifyService: SdNotifyService,\r\n @Inject(FIREBASE_CONFIG) @Optional() private firebaseConfiguration: IFirebaseConfiguration) {\r\n }\r\n\r\n #directory = (key: string, group: string) => {\r\n let hashedFolder = hash({\r\n folder: this.folder,\r\n userFolder: this.userFolder\r\n });\r\n if (!group) {\r\n return `dir1=${this.folder}&dir2=U-${hashedFolder}&dir3=${key || ''}`;\r\n }\r\n hashedFolder = hash({\r\n folder: this.folder,\r\n group\r\n });\r\n return `dir1=${this.folder}&dir2=G-${hashedFolder}&dir3=${key || ''}`;\r\n }\r\n\r\n generateTemplate = async (template: SdExportTemplate) => {\r\n const { fileName, columns, sheets } = template;\r\n if (!Array.isArray(columns)) {\r\n throw new Error('Excel template columns must be an array');\r\n }\r\n for (const [idx, column] of columns.entries()) {\r\n if (!column.field) {\r\n throw new Error(`Column ${idx + 1}: Field is required`);\r\n }\r\n if (!column.title) {\r\n throw new Error(`Column ${idx + 1}: Title is required`);\r\n }\r\n }\r\n const hasDescription = columns.some(column => column.description);\r\n const workbook = new Workbook(); //await XlsxPopulate.fromBlankAsync(); // Đọc file sau khi đã download\r\n const firstSheet = workbook.addWorksheet('template'); // Lấy ra sheet đầu tiên\r\n columns.forEach((column, index) => {\r\n const { required, fill, fontColor } = column;\r\n const cellField = firstSheet.getCell(1, index + 1);\r\n const cellTitle = firstSheet.getCell(2, index + 1);\r\n const cellDescription = firstSheet.getCell(3, index + 1);\r\n let width = 120;\r\n if (column.width && column.width.endsWith('px')) {\r\n width = +column.width.replace('px', '');\r\n }\r\n firstSheet.getColumn(index + 1).width = width / 7 || 20;\r\n cellField.style = this.#fieldStyle;\r\n if (required) {\r\n cellField.style = this.#requiredStyle;\r\n } else {\r\n cellField.style = this.#fieldStyle;\r\n }\r\n cellTitle.style = {\r\n ...this.#titleStyle,\r\n font: {\r\n ...this.#titleStyle?.font,\r\n color: {\r\n ...this.#titleStyle?.font?.color,\r\n argb: fontColor || this.#titleStyle?.font?.color?.argb\r\n }\r\n },\r\n fill: {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: {\r\n argb: fill || this.#titleFgColor\r\n }\r\n }\r\n };\r\n cellField.value = column.field;\r\n cellTitle.value = column.title;\r\n if (hasDescription) {\r\n cellDescription.style = this.#descriptionStyle;\r\n cellDescription.value = column.description || '';\r\n }\r\n });\r\n if (sheets?.length) {\r\n for (const sheet of sheets) {\r\n if (sheet.name && Array.isArray(sheet.items) && Array.isArray(sheet.fields)) {\r\n const newSheet = workbook.addWorksheet(sheet.name);\r\n sheet.fields.forEach((field, index) => {\r\n newSheet.getColumn(index + 1).width = 30;\r\n newSheet.getCell(1, index + 1).style = this.#titleStyle;\r\n newSheet.getCell(1, index + 1).value = field;\r\n });\r\n sheet.items.forEach((item, idx1) => {\r\n sheet.fields.forEach((field, idx2) => {\r\n newSheet.getCell(2 + idx1, 1 + idx2).value = item[field];\r\n newSheet.getCell(2 + idx1, 1 + idx2).style = this.#cellStyle;\r\n });\r\n });\r\n }\r\n }\r\n }\r\n const file = await workbook.xlsx.writeBuffer();\r\n SdUtility.downloadBlob(new Blob([file], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }), fileName);\r\n }\r\n\r\n uploadTemplate = async (args: {\r\n key: string;\r\n group?: string;\r\n validator?: (fileName: string) => string\r\n }): Promise<SdExportFile> => {\r\n const { key, group, validator } = args;\r\n const { uploadTemplate } = API;\r\n const url = `${this.functionUrl}${uploadTemplate}?${this.#directory(key, group)}`;\r\n const file = await SdUtility.upload({\r\n extensions: ['xlsx'],\r\n maxSizeInMb: 0.1,\r\n validator\r\n });\r\n if (file) {\r\n const { filePath, fileName } = await this.apiService.upload(url, file).catch((err: Error) => {\r\n this.notifyService.notify.warning(err?.message);\r\n throw err;\r\n });\r\n return {\r\n filePath,\r\n fileName,\r\n };\r\n }\r\n return null;\r\n }\r\n\r\n generateUploadTemplate = async (args: {\r\n key: string;\r\n template: SdExportTemplate;\r\n group?: string;\r\n }) => {\r\n const { key, template, group } = args;\r\n const { generateUploadTemplate } = API;\r\n const url = `${this.functionUrl}${generateUploadTemplate}?${this.#directory(key, group)}`;\r\n const { filePath, fileName } = await this.apiService.post(url, template);\r\n return { filePath, fileName };\r\n }\r\n\r\n removeFile = async (args: {\r\n key: string;\r\n group?: string;\r\n fileName?: string;\r\n }) => {\r\n const { key, group, fileName } = args;\r\n const { removeFile } = API;\r\n const url = `${this.functionUrl}${removeFile}?${this.#directory(key, group)}&name=${fileName}`;\r\n await this.apiService.post(url);\r\n }\r\n\r\n filesInFolder = async (args: {\r\n key: string;\r\n group?: string;\r\n }): Promise<SdExportFile[]> => {\r\n interface FilesInFolderRes {\r\n directory: string;\r\n files: {\r\n publicUrl: string, fullPath: string, name: string\r\n }[];\r\n }\r\n const { key, group } = args;\r\n const { filesInFolder } = API;\r\n const url = `${this.functionUrl}${filesInFolder}?${this.#directory(key, group)}`;\r\n const res = await this.apiService.get<FilesInFolderRes>(url);\r\n return res.files?.map(e => ({\r\n filePath: e.publicUrl,\r\n fileName: e.name\r\n })) || [];\r\n }\r\n\r\n download = (filePath: string, fileName?: string) => {\r\n const link: any = document.createElement('a');\r\n link.download = `${fileName || uuid.v4()}.xlsx`;\r\n link.href = filePath;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n\r\n exportByTemplate = async (args: {\r\n filePath: string,\r\n columns: any[],\r\n items: any[],\r\n fileName?: string\r\n }) => {\r\n const { filePath, columns, items, fileName } = args;\r\n const { sdExportByTemplate } = API;\r\n const url = `${this.functionUrl}${sdExportByTemplate}`;\r\n const buffer = await this.apiService.post(url, {\r\n filePath,\r\n columns,\r\n items,\r\n fileName\r\n }, null, {\r\n responseType: 'arraybuffer'\r\n });\r\n const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,' });\r\n SdUtility.downloadBlob(blob, fileName);\r\n }\r\n\r\n exportCSV = async (option: IExportOption) => {\r\n const { columns, items, fileName } = option;\r\n const headerCSV = {};\r\n for (const column of columns) {\r\n headerCSV[column.field] = column.title;\r\n }\r\n const csvExporter = new ExportToCsv({\r\n filename: `${fileName || 'CSV'}_${Date.toFormat(new Date(), 'yyyy-MM-dd-HH-mm-ss')}`,\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalSeparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n title: fileName || 'CSV',\r\n useBom: true,\r\n });\r\n csvExporter.generateCsv([headerCSV, ...items]);\r\n }\r\n\r\n export = async (option: IExportOption) => {\r\n const { columns, items, fileName, sheets } = option;\r\n let hasDescription = false;\r\n for (const [idx, column] of columns.entries()) {\r\n if (!column.field) {\r\n throw new Error(`Column ${idx + 1}: Field is required`);\r\n }\r\n if (!column.title) {\r\n throw new Error(`Column ${idx + 1}: Title is required`);\r\n }\r\n if (column.description) {\r\n hasDescription = true;\r\n }\r\n }\r\n const workbook = new Workbook(); //await XlsxPopulate.fromBlankAsync(); // Đọc file sau khi đã download\r\n const firstSheet = workbook.addWorksheet('data'); // Lấy ra sheet đầu tiên\r\n columns.forEach((column, index) => {\r\n let width = 120;\r\n if (column.width && column.width.endsWith('px')) {\r\n width = +column.width.replace('px', '');\r\n }\r\n firstSheet.getColumn(index + 1).width = width / 7 || 20;\r\n firstSheet.getCell(1, index + 1).style = this.#fieldStyle\r\n if (column.required) {\r\n firstSheet.getCell(2, index + 1).style = this.#requiredStyle;\r\n } else {\r\n firstSheet.getCell(2, index + 1).style = this.#titleStyle;\r\n }\r\n firstSheet.getCell(1, index + 1).value = column.field;\r\n firstSheet.getCell(2, index + 1).value = column.title;\r\n if (hasDescription) {\r\n firstSheet.getCell(3, index + 1).style = this.#descriptionStyle;\r\n firstSheet.getCell(3, index + 1).value = column.description || '';\r\n }\r\n });\r\n if (sheets?.length) {\r\n for (const sheet of sheets) {\r\n if (sheet.name && Array.isArray(sheet.items) && Array.isArray(sheet.fields)) {\r\n const newSheet = workbook.addWorksheet(sheet.name);\r\n sheet.fields.forEach((field, index) => {\r\n newSheet.getColumn(index + 1).width = 30;\r\n newSheet.getCell(1, index + 1).style = this.#titleStyle;\r\n newSheet.getCell(1, index + 1).value = field;\r\n });\r\n sheet.items.forEach((item, idx1) => {\r\n sheet.fields.forEach((field, idx2) => {\r\n newSheet.getCell(2 + idx1, 1 + idx2).value = item[field];\r\n newSheet.getCell(2 + idx1, 1 + idx2).style = this.#cellStyle;\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n const fromRow = hasDescription ? 4 : 3;\r\n items.forEach((e, idx1) => {\r\n columns.forEach((column, idx2) => {\r\n if (typeof (e[column.field]) === 'number') {\r\n firstSheet.getCell(fromRow + idx1, 1 + idx2).value = +e[column.field];\r\n firstSheet.getCell(fromRow + idx1, 1 + idx2).numFmt = '#';\r\n } else {\r\n firstSheet.getCell(fromRow + idx1, 1 + idx2).value = e[column.field];\r\n }\r\n firstSheet.getCell(fromRow + idx1, 1 + idx2).style = this.#cellStyle;\r\n });\r\n });\r\n const file = await workbook.xlsx.writeBuffer();\r\n SdUtility.downloadBlob(new Blob([file], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }), fileName);\r\n }\r\n\r\n exportCustom = async (option: SdExportCustomOption) => {\r\n const { fileName, sheets } = option;\r\n if (!sheets?.length) {\r\n this.notifyService.notify.warning('Phải có ít nhất 1 sheet');\r\n return;\r\n }\r\n const workbook = new Workbook();\r\n for (const [idx, sheet] of sheets.entries()) {\r\n const { name, columns, cells } = sheet\r\n const worksheet = workbook.addWorksheet(name || `Sheet ${idx + 1}`);\r\n for (const column of (columns || [])) {\r\n worksheet.getColumn(column.index).style = column.style;\r\n worksheet.getColumn(column.index).width = column.width;\r\n }\r\n for (const cell of cells) {\r\n const { row, column, value, style } = cell;\r\n worksheet.getCell(row, column).style = style || worksheet.getColumn(column).style;\r\n worksheet.getCell(row, column).value = value;\r\n }\r\n }\r\n const file = await workbook.xlsx.writeBuffer();\r\n SdUtility.downloadBlob(new Blob([file], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }), fileName);\r\n }\r\n\r\n mergePDF = async (urls: string[]) => {\r\n const { sdMergePDF } = API;\r\n const url = `${this.functionUrl}${sdMergePDF}`;\r\n const buffer = await this.apiService.post(url, {\r\n urls\r\n }, null, {\r\n responseType: 'arraybuffer'\r\n });\r\n SdUtility.downloadBlob(new Blob([buffer], { type: 'application/pdf' }));\r\n }\r\n\r\n uploadXlsx = async (): Promise<{ items: any[], file: File } | undefined> => {\r\n return await SdUtility.upload({\r\n extensions: ['xlsx'],\r\n maxSizeInMb: 10,\r\n }).then(file => {\r\n if (file) {\r\n return new Promise<{ items: any[], file: File }>((resolve, reject) => {\r\n const wb = new Workbook();\r\n const reader: FileReader = new FileReader();\r\n reader.onload = () => {\r\n const buffer = reader.result as ArrayBuffer;\r\n if (!buffer) {\r\n reject('Có lỗi xảy ra khi đọc file');\r\n return;\r\n }\r\n wb.xlsx.load(buffer).then(workbook => {\r\n const sheet = workbook.worksheets[0];\r\n if (!sheet) {\r\n reject('Không tìm thấy dữ liệu import');\r\n return;\r\n }\r\n const items: any[] = [];\r\n const headers = sheet.getRow(1).values;\r\n if (Array.isArray(headers)) {\r\n sheet.eachRow((row, rowIndex) => {\r\n const { hasValues, values, } = row;\r\n // console.log(row, hasValues, values)\r\n if (hasValues && rowIndex > 1) {\r\n const item: any = {};\r\n headers.forEach((cellValue, index) => {\r\n if (cellValue) {\r\n const field = cellValue.toString();\r\n item[field] = values[index];\r\n if (typeof (item[field]) === 'string') {\r\n item[field] = item[field].trim();\r\n }\r\n if (item[field] === '' || item[field] === undefined) {\r\n item[field] = null;\r\n }\r\n }\r\n });\r\n items.push(item);\r\n }\r\n });\r\n resolve({\r\n items,\r\n file\r\n })\r\n }\r\n })\r\n };\r\n reader.readAsArrayBuffer(file);\r\n })\r\n } else {\r\n return {\r\n items: [],\r\n file: null\r\n };\r\n }\r\n });\r\n }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["uuid.v4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sd-angular-core-export.js","sources":["../../../../projects/sd-core/export/src/lib/export.model.ts","../../../../projects/sd-core/export/src/lib/export.service.ts","../../../../projects/sd-core/export/sd-angular-core-export.ts"],"sourcesContent":["export * from './excel.model';\r\nexport interface SdExportTemplate {\r\n fileName?: string;\r\n columns: SdExportTempateColumn[];\r\n sheets?: {\r\n name: string,\r\n items: any[],\r\n fields: string[]\r\n }[];\r\n}\r\n\r\nexport interface SdExportTempateColumn {\r\n field: string;\r\n title: string;\r\n required?: boolean;\r\n color?: string;\r\n width?: string;\r\n description?: string;\r\n fontColor?: string;\r\n fill?: string;\r\n}\r\n\r\nexport interface SdExportFile {\r\n fileName?: string;\r\n filePath?: string;\r\n}\r\n\r\nexport interface SdExportColumn {\r\n field: string;\r\n title: string;\r\n description?: string;\r\n width?: string;\r\n}\r\n\r\nexport interface IExportOption {\r\n columns: SdExportTempateColumn[];\r\n items: any[];\r\n fileName?: string;\r\n sheets?: {\r\n name: string,\r\n items: any[],\r\n fields: string[]\r\n }[];\r\n}\r\n\r\nexport interface IBigExportRequest {\r\n filePath?: string;\r\n destination?: string;\r\n latestRow: number;\r\n columns: {\r\n field: string,\r\n title: string,\r\n description?: string,\r\n width?: string,\r\n }[];\r\n items: any[];\r\n}\r\n\r\nexport interface IBigExportResponse {\r\n filePath: string;\r\n destination: string;\r\n latestRow: number;\r\n}\r\n\r\nexport type GroupPermission = 'view' | 'add' | 'delete';\r\n\r\nexport const API = {\r\n uploadTemplate: '/excel/uploadTemplate',\r\n generateUploadTemplate: '/excel/generateUploadTemplate',\r\n filesInFolder: '/excel/filesInFolder',\r\n removeFile: '/excel/remove',\r\n sdExportByTemplate: '/excel/sd-export-by-template',\r\n sdMergePDF: '/excel/sd-merge-pdf',\r\n};\r\n","import { Optional } from '@angular/core';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { SdApiService } from '@sd-angular/core/api';\r\nimport * as uuid from 'uuid';\r\nimport hash from 'object-hash';\r\nimport { ExportToCsv } from 'export-to-csv';\r\nimport { Workbook, Style } from 'exceljs';\r\nimport { SdExportTemplate, IExportOption, API, SdExportFile, SdExportCustomOption } from './export.model';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport { FIREBASE_CONFIG, IFirebaseConfiguration } from '@sd-angular/core/common';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SdExportService {\r\n private get functionUrl() {\r\n return this.firebaseConfiguration?.functionUrl;\r\n }\r\n\r\n private get folder() {\r\n const { project, env } = this.firebaseConfiguration;\r\n return `${project}-${env}`;\r\n }\r\n\r\n private get userFolder() {\r\n const { folder } = this.firebaseConfiguration;\r\n if (!folder) {\r\n return;\r\n }\r\n if (typeof folder === 'string') {\r\n return folder;\r\n }\r\n return folder();\r\n }\r\n\r\n #fieldStyle: Partial<Style> = {\r\n border: {\r\n bottom: { style: 'thin' },\r\n left: { style: 'thin' },\r\n right: { style: 'thin' },\r\n },\r\n alignment: {\r\n vertical: 'middle',\r\n horizontal: 'center',\r\n wrapText: true,\r\n },\r\n font: {\r\n bold: true,\r\n size: 11,\r\n color: { argb: '000000' },\r\n },\r\n fill: {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: {\r\n argb: 'FAFAFA',\r\n },\r\n },\r\n };\r\n #titleColor = 'FFFFFF';\r\n #titleFgColor = '143180';\r\n #titleStyle: Partial<Style> = {\r\n border: {\r\n bottom: { style: 'thin' },\r\n left: { style: 'thin' },\r\n right: { style: 'thin' },\r\n },\r\n alignment: {\r\n vertical: 'middle',\r\n horizontal: 'center',\r\n wrapText: true,\r\n },\r\n font: {\r\n bold: true,\r\n size: 11,\r\n color: { argb: this.#titleColor },\r\n },\r\n fill: {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: {\r\n argb: this.#titleFgColor,\r\n },\r\n },\r\n };\r\n\r\n #requiredStyle: Partial<Style> = {\r\n border: {\r\n bottom: { style: 'thin' },\r\n left: { style: 'thin' },\r\n right: { style: 'thin' },\r\n },\r\n alignment: {\r\n vertical: 'middle',\r\n horizontal: 'center',\r\n wrapText: true,\r\n },\r\n font: {\r\n italic: true,\r\n size: 11,\r\n color: { argb: 'FFFFFF' },\r\n },\r\n fill: {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: {\r\n argb: 'FF1744',\r\n },\r\n },\r\n };\r\n\r\n #descriptionStyle: Partial<Style> = {\r\n border: {\r\n bottom: { style: 'thin' },\r\n left: { style: 'thin' },\r\n right: { style: 'thin' },\r\n },\r\n alignment: {\r\n wrapText: true,\r\n },\r\n font: {\r\n italic: true,\r\n size: 9,\r\n color: { argb: '000000' },\r\n },\r\n fill: {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: {\r\n argb: 'CFD8DC',\r\n },\r\n },\r\n };\r\n\r\n #cellStyle: Partial<Style> = {\r\n alignment: {\r\n vertical: 'middle',\r\n wrapText: true,\r\n },\r\n };\r\n\r\n constructor(\r\n private apiService: SdApiService,\r\n private notifyService: SdNotifyService,\r\n @Inject(FIREBASE_CONFIG) @Optional() private firebaseConfiguration: IFirebaseConfiguration\r\n ) {}\r\n\r\n #directory = (key: string, group: string) => {\r\n let hashedFolder = hash({\r\n folder: this.folder,\r\n userFolder: this.userFolder,\r\n });\r\n if (!group) {\r\n return `dir1=${this.folder}&dir2=U-${hashedFolder}&dir3=${key || ''}`;\r\n }\r\n hashedFolder = hash({\r\n folder: this.folder,\r\n group,\r\n });\r\n return `dir1=${this.folder}&dir2=G-${hashedFolder}&dir3=${key || ''}`;\r\n };\r\n\r\n generateTemplate = async (template: SdExportTemplate) => {\r\n const { fileName, columns, sheets } = template;\r\n if (!Array.isArray(columns)) {\r\n throw new Error('Excel template columns must be an array');\r\n }\r\n for (const [idx, column] of columns.entries()) {\r\n if (!column.field) {\r\n throw new Error(`Column ${idx + 1}: Field is required`);\r\n }\r\n if (!column.title) {\r\n throw new Error(`Column ${idx + 1}: Title is required`);\r\n }\r\n }\r\n const hasDescription = columns.some(column => column.description);\r\n const workbook = new Workbook(); //await XlsxPopulate.fromBlankAsync(); // Đọc file sau khi đã download\r\n const firstSheet = workbook.addWorksheet('template'); // Lấy ra sheet đầu tiên\r\n columns.forEach((column, index) => {\r\n const { required, fill, fontColor } = column;\r\n const cellField = firstSheet.getCell(1, index + 1);\r\n const cellTitle = firstSheet.getCell(2, index + 1);\r\n const cellDescription = firstSheet.getCell(3, index + 1);\r\n let width = 120;\r\n if (column.width && column.width.endsWith('px')) {\r\n width = +column.width.replace('px', '');\r\n }\r\n firstSheet.getColumn(index + 1).width = width / 7 || 20;\r\n cellField.style = this.#fieldStyle;\r\n if (required) {\r\n cellField.style = this.#requiredStyle;\r\n } else {\r\n cellField.style = this.#fieldStyle;\r\n }\r\n cellTitle.style = {\r\n ...this.#titleStyle,\r\n font: {\r\n ...this.#titleStyle?.font,\r\n color: {\r\n ...this.#titleStyle?.font?.color,\r\n argb: fontColor || this.#titleStyle?.font?.color?.argb,\r\n },\r\n },\r\n fill: {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: {\r\n argb: fill || this.#titleFgColor,\r\n },\r\n },\r\n };\r\n cellField.value = column.field;\r\n cellTitle.value = column.title;\r\n if (hasDescription) {\r\n cellDescription.style = this.#descriptionStyle;\r\n cellDescription.value = column.description || '';\r\n }\r\n });\r\n if (sheets?.length) {\r\n for (const sheet of sheets) {\r\n if (sheet.name && Array.isArray(sheet.items) && Array.isArray(sheet.fields)) {\r\n const newSheet = workbook.addWorksheet(sheet.name);\r\n sheet.fields.forEach((field, index) => {\r\n newSheet.getColumn(index + 1).width = 30;\r\n newSheet.getCell(1, index + 1).style = this.#titleStyle;\r\n newSheet.getCell(1, index + 1).value = field;\r\n });\r\n sheet.items.forEach((item, idx1) => {\r\n sheet.fields.forEach((field, idx2) => {\r\n newSheet.getCell(2 + idx1, 1 + idx2).value = item[field];\r\n newSheet.getCell(2 + idx1, 1 + idx2).style = this.#cellStyle;\r\n });\r\n });\r\n }\r\n }\r\n }\r\n const file = await workbook.xlsx.writeBuffer();\r\n SdUtility.downloadBlob(new Blob([file], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }), fileName);\r\n };\r\n\r\n uploadTemplate = async (args: { key: string; group?: string; validator?: (fileName: string) => string }): Promise<SdExportFile> => {\r\n const { key, group, validator } = args;\r\n const { uploadTemplate } = API;\r\n const url = `${this.functionUrl}${uploadTemplate}?${this.#directory(key, group)}`;\r\n const file = await SdUtility.upload({\r\n extensions: ['xlsx'],\r\n maxSizeInMb: 0.1,\r\n validator,\r\n });\r\n if (file) {\r\n const { filePath, fileName } = await this.apiService.upload(url, file).catch((err: Error) => {\r\n this.notifyService.notify.warning(err?.message);\r\n throw err;\r\n });\r\n return {\r\n filePath,\r\n fileName,\r\n };\r\n }\r\n return null;\r\n };\r\n\r\n generateUploadTemplate = async (args: { key: string; template: SdExportTemplate; group?: string }) => {\r\n const { key, template, group } = args;\r\n const { generateUploadTemplate } = API;\r\n const url = `${this.functionUrl}${generateUploadTemplate}?${this.#directory(key, group)}`;\r\n const { filePath, fileName } = await this.apiService.post(url, template);\r\n return { filePath, fileName };\r\n };\r\n\r\n removeFile = async (args: { key: string; group?: string; fileName?: string }) => {\r\n const { key, group, fileName } = args;\r\n const { removeFile } = API;\r\n const url = `${this.functionUrl}${removeFile}?${this.#directory(key, group)}&name=${fileName}`;\r\n await this.apiService.post(url);\r\n };\r\n\r\n filesInFolder = async (args: { key: string; group?: string }): Promise<SdExportFile[]> => {\r\n interface FilesInFolderRes {\r\n directory: string;\r\n files: {\r\n publicUrl: string;\r\n fullPath: string;\r\n name: string;\r\n }[];\r\n }\r\n const { key, group } = args;\r\n const { filesInFolder } = API;\r\n const url = `${this.functionUrl}${filesInFolder}?${this.#directory(key, group)}`;\r\n const res = await this.apiService.get<FilesInFolderRes>(url);\r\n return (\r\n res.files?.map(e => ({\r\n filePath: e.publicUrl,\r\n fileName: e.name,\r\n })) || []\r\n );\r\n };\r\n\r\n download = (filePath: string, fileName?: string) => {\r\n const link: any = document.createElement('a');\r\n link.download = `${fileName || uuid.v4()}.xlsx`;\r\n link.href = filePath;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n };\r\n\r\n exportByTemplate = async (args: { filePath: string; columns: any[]; items: any[]; fileName?: string }) => {\r\n const { filePath, columns, items, fileName } = args;\r\n const { sdExportByTemplate } = API;\r\n const url = `${this.functionUrl}${sdExportByTemplate}`;\r\n const buffer = await this.apiService.post(\r\n url,\r\n {\r\n filePath,\r\n columns,\r\n items,\r\n fileName,\r\n },\r\n null,\r\n {\r\n responseType: 'arraybuffer',\r\n }\r\n );\r\n const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,' });\r\n SdUtility.downloadBlob(blob, fileName);\r\n };\r\n\r\n exportCSV = async (option: IExportOption) => {\r\n const { columns, items, fileName } = option;\r\n const headerCSV = {};\r\n for (const column of columns) {\r\n headerCSV[column.field] = column.title;\r\n }\r\n const csvExporter = new ExportToCsv({\r\n filename: `${fileName || 'CSV'}_${Date.toFormat(new Date(), 'yyyy-MM-dd-HH-mm-ss')}`,\r\n fieldSeparator: ',',\r\n quoteStrings: '\"',\r\n decimalSeparator: '.',\r\n showLabels: true,\r\n showTitle: false,\r\n title: fileName || 'CSV',\r\n useBom: true,\r\n });\r\n csvExporter.generateCsv([headerCSV, ...items]);\r\n };\r\n\r\n export = async (option: IExportOption) => {\r\n const { columns, items, fileName, sheets } = option;\r\n let hasDescription = false;\r\n for (const [idx, column] of columns.entries()) {\r\n if (!column.field) {\r\n throw new Error(`Column ${idx + 1}: Field is required`);\r\n }\r\n if (!column.title) {\r\n throw new Error(`Column ${idx + 1}: Title is required`);\r\n }\r\n if (column.description) {\r\n hasDescription = true;\r\n }\r\n }\r\n const workbook = new Workbook(); //await XlsxPopulate.fromBlankAsync(); // Đọc file sau khi đã download\r\n const firstSheet = workbook.addWorksheet('data'); // Lấy ra sheet đầu tiên\r\n columns.forEach((column, index) => {\r\n let width = 120;\r\n if (column.width && column.width.endsWith('px')) {\r\n width = +column.width.replace('px', '');\r\n }\r\n firstSheet.getColumn(index + 1).width = width / 7 || 20;\r\n firstSheet.getCell(1, index + 1).style = this.#fieldStyle;\r\n if (column.required) {\r\n firstSheet.getCell(2, index + 1).style = this.#requiredStyle;\r\n } else {\r\n firstSheet.getCell(2, index + 1).style = this.#titleStyle;\r\n }\r\n firstSheet.getCell(1, index + 1).value = column.field;\r\n firstSheet.getCell(2, index + 1).value = column.title;\r\n if (hasDescription) {\r\n firstSheet.getCell(3, index + 1).style = this.#descriptionStyle;\r\n firstSheet.getCell(3, index + 1).value = column.description || '';\r\n }\r\n });\r\n if (sheets?.length) {\r\n for (const sheet of sheets) {\r\n if (sheet.name && Array.isArray(sheet.items) && Array.isArray(sheet.fields)) {\r\n const newSheet = workbook.addWorksheet(sheet.name);\r\n sheet.fields.forEach((field, index) => {\r\n newSheet.getColumn(index + 1).width = 30;\r\n newSheet.getCell(1, index + 1).style = this.#titleStyle;\r\n newSheet.getCell(1, index + 1).value = field;\r\n });\r\n sheet.items.forEach((item, idx1) => {\r\n sheet.fields.forEach((field, idx2) => {\r\n newSheet.getCell(2 + idx1, 1 + idx2).value = item[field];\r\n newSheet.getCell(2 + idx1, 1 + idx2).style = this.#cellStyle;\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n const fromRow = hasDescription ? 4 : 3;\r\n items.forEach((e, idx1) => {\r\n columns.forEach((column, idx2) => {\r\n if (typeof e[column.field] === 'number') {\r\n firstSheet.getCell(fromRow + idx1, 1 + idx2).value = +e[column.field];\r\n firstSheet.getCell(fromRow + idx1, 1 + idx2).numFmt = '#';\r\n } else {\r\n firstSheet.getCell(fromRow + idx1, 1 + idx2).value = e[column.field];\r\n }\r\n firstSheet.getCell(fromRow + idx1, 1 + idx2).style = this.#cellStyle;\r\n });\r\n });\r\n const file = await workbook.xlsx.writeBuffer();\r\n SdUtility.downloadBlob(new Blob([file], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }), fileName);\r\n };\r\n\r\n exportCustom = async (option: SdExportCustomOption) => {\r\n const { fileName, sheets } = option;\r\n if (!sheets?.length) {\r\n this.notifyService.notify.warning('Phải có ít nhất 1 sheet');\r\n return;\r\n }\r\n const workbook = new Workbook();\r\n for (const [idx, sheet] of sheets.entries()) {\r\n const { name, columns, cells } = sheet;\r\n const worksheet = workbook.addWorksheet(name || `Sheet ${idx + 1}`);\r\n for (const column of columns || []) {\r\n worksheet.getColumn(column.index).style = column.style;\r\n worksheet.getColumn(column.index).width = column.width;\r\n }\r\n for (const cell of cells) {\r\n const { row, column, value, style } = cell;\r\n worksheet.getCell(row, column).style = style || worksheet.getColumn(column).style;\r\n worksheet.getCell(row, column).value = value;\r\n }\r\n }\r\n const file = await workbook.xlsx.writeBuffer();\r\n SdUtility.downloadBlob(new Blob([file], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }), fileName);\r\n };\r\n\r\n mergePDF = async (urls: string[]) => {\r\n const { sdMergePDF } = API;\r\n const url = `${this.functionUrl}${sdMergePDF}`;\r\n const buffer = await this.apiService.post(\r\n url,\r\n {\r\n urls,\r\n },\r\n null,\r\n {\r\n responseType: 'arraybuffer',\r\n }\r\n );\r\n SdUtility.downloadBlob(new Blob([buffer], { type: 'application/pdf' }));\r\n };\r\n\r\n uploadXlsx = async (): Promise<{ items: any[]; file: File } | undefined> => {\r\n return await SdUtility.upload({\r\n extensions: ['xlsx'],\r\n maxSizeInMb: 10,\r\n }).then(file => {\r\n return this.parseXlsx(file);\r\n });\r\n };\r\n\r\n parseXlsx = async (file: File): Promise<{ items: any[]; file: File } | undefined> => {\r\n if (file) {\r\n return new Promise<{ items: any[]; file: File }>((resolve, reject) => {\r\n const wb = new Workbook();\r\n const reader: FileReader = new FileReader();\r\n reader.onload = () => {\r\n const buffer = reader.result as ArrayBuffer;\r\n if (!buffer) {\r\n reject('Có lỗi xảy ra khi đọc file');\r\n return;\r\n }\r\n wb.xlsx.load(buffer).then(workbook => {\r\n const sheet = workbook.worksheets[0];\r\n if (!sheet) {\r\n reject('Không tìm thấy dữ liệu');\r\n return;\r\n }\r\n const items: any[] = [];\r\n const headers = sheet.getRow(1).values;\r\n if (Array.isArray(headers)) {\r\n sheet.eachRow((row, rowIndex) => {\r\n const { hasValues, values } = row;\r\n // console.log(row, hasValues, values)\r\n if (hasValues && rowIndex > 1) {\r\n const item: any = {};\r\n headers.forEach((cellValue, index) => {\r\n if (cellValue) {\r\n const field = cellValue.toString();\r\n item[field] = values[index];\r\n if (typeof item[field] === 'string') {\r\n item[field] = item[field].trim();\r\n }\r\n if (item[field] === '' || item[field] === undefined) {\r\n item[field] = null;\r\n }\r\n }\r\n });\r\n items.push(item);\r\n }\r\n });\r\n resolve({\r\n items,\r\n file,\r\n });\r\n }\r\n });\r\n };\r\n reader.readAsArrayBuffer(file);\r\n });\r\n } else {\r\n return {\r\n items: [],\r\n file: null,\r\n };\r\n }\r\n };\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["uuid.v4"],"mappings":"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"}
|