sk-front-lib 0.15.11 → 0.16.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -65
- package/api/model/api-config.d.ts +0 -6
- package/api/model/api-pageable-param.d.ts +0 -11
- package/api/model/api-pageable.d.ts +0 -11
- package/api/model/api-response.d.ts +0 -8
- package/api/model/index.d.ts +0 -4
- package/api/package.json +0 -10
- package/api/public_api.d.ts +0 -3
- package/api/sk-api.module.d.ts +0 -12
- package/api/sk-api.service.d.ts +0 -34
- package/api/sk-front-lib-api.d.ts +0 -5
- package/article/package.json +0 -10
- package/article/public_api.d.ts +0 -6
- package/article/sk-article-editor-server.component.d.ts +0 -23
- package/article/sk-article-editor.component.d.ts +0 -27
- package/article/sk-article-server.module.d.ts +0 -10
- package/article/sk-article.module.d.ts +0 -9
- package/article/sk-article.service.d.ts +0 -96
- package/article/sk-froala-editor.directive.d.ts +0 -40
- package/article/sk-front-lib-article.d.ts +0 -5
- package/crud/package.json +0 -10
- package/crud/public_api.d.ts +0 -23
- package/crud/sk-account.service.d.ts +0 -16
- package/crud/sk-auth-admin.guard.d.ts +0 -13
- package/crud/sk-auth.guard.d.ts +0 -13
- package/crud/sk-auth.service.d.ts +0 -33
- package/crud/sk-board.service.d.ts +0 -21
- package/crud/sk-brand.service.d.ts +0 -19
- package/crud/sk-cart.service.d.ts +0 -72
- package/crud/sk-category.service.d.ts +0 -28
- package/crud/sk-comment.service.d.ts +0 -15
- package/crud/sk-config.service.d.ts +0 -13
- package/crud/sk-contact.service.d.ts +0 -15
- package/crud/sk-coupon.service.d.ts +0 -24
- package/crud/sk-document.service.d.ts +0 -47
- package/crud/sk-etc.service.d.ts +0 -12
- package/crud/sk-file.service.d.ts +0 -18
- package/crud/sk-front-lib-crud.d.ts +0 -5
- package/crud/sk-keyword.service.d.ts +0 -19
- package/crud/sk-order.service.d.ts +0 -45
- package/crud/sk-point.service.d.ts +0 -17
- package/crud/sk-product.service.d.ts +0 -80
- package/crud/sk-promotion.service.d.ts +0 -41
- package/crud/sk-search.service.d.ts +0 -12
- package/crud/sk-store.service.d.ts +0 -17
- package/crud/sk-user.service.d.ts +0 -25
- package/esm2020/api/model/api-config.mjs +0 -2
- package/esm2020/api/model/api-pageable-param.mjs +0 -29
- package/esm2020/api/model/api-pageable.mjs +0 -3
- package/esm2020/api/model/api-response.mjs +0 -3
- package/esm2020/api/model/index.mjs +0 -4
- package/esm2020/api/public_api.mjs +0 -4
- package/esm2020/api/sk-api.module.mjs +0 -35
- package/esm2020/api/sk-api.service.mjs +0 -145
- package/esm2020/api/sk-front-lib-api.mjs +0 -5
- package/esm2020/article/public_api.mjs +0 -7
- package/esm2020/article/sk-article-editor-server.component.mjs +0 -51
- package/esm2020/article/sk-article-editor.component.mjs +0 -93
- package/esm2020/article/sk-article-server.module.mjs +0 -33
- package/esm2020/article/sk-article.module.mjs +0 -32
- package/esm2020/article/sk-article.service.mjs +0 -248
- package/esm2020/article/sk-froala-editor.directive.mjs +0 -325
- package/esm2020/article/sk-front-lib-article.mjs +0 -5
- package/esm2020/crud/public_api.mjs +0 -24
- package/esm2020/crud/sk-account.service.mjs +0 -36
- package/esm2020/crud/sk-auth-admin.guard.mjs +0 -31
- package/esm2020/crud/sk-auth.guard.mjs +0 -31
- package/esm2020/crud/sk-auth.service.mjs +0 -67
- package/esm2020/crud/sk-board.service.mjs +0 -54
- package/esm2020/crud/sk-brand.service.mjs +0 -46
- package/esm2020/crud/sk-cart.service.mjs +0 -255
- package/esm2020/crud/sk-category.service.mjs +0 -63
- package/esm2020/crud/sk-comment.service.mjs +0 -43
- package/esm2020/crud/sk-config.service.mjs +0 -31
- package/esm2020/crud/sk-contact.service.mjs +0 -39
- package/esm2020/crud/sk-coupon.service.mjs +0 -62
- package/esm2020/crud/sk-document.service.mjs +0 -98
- package/esm2020/crud/sk-etc.service.mjs +0 -25
- package/esm2020/crud/sk-file.service.mjs +0 -37
- package/esm2020/crud/sk-front-lib-crud.mjs +0 -5
- package/esm2020/crud/sk-keyword.service.mjs +0 -46
- package/esm2020/crud/sk-order.service.mjs +0 -133
- package/esm2020/crud/sk-point.service.mjs +0 -45
- package/esm2020/crud/sk-product.service.mjs +0 -156
- package/esm2020/crud/sk-promotion.service.mjs +0 -84
- package/esm2020/crud/sk-search.service.mjs +0 -25
- package/esm2020/crud/sk-store.service.mjs +0 -47
- package/esm2020/crud/sk-user.service.mjs +0 -73
- package/esm2020/google-analytics/google-analytics-router.module.mjs +0 -30
- package/esm2020/google-analytics/google-analytics.module.mjs +0 -40
- package/esm2020/google-analytics/initializers/google-analytics-router.initializer.mjs +0 -24
- package/esm2020/google-analytics/initializers/google-analytics.initializer.mjs +0 -46
- package/esm2020/google-analytics/interfaces/google-analytics-command.mjs +0 -2
- package/esm2020/google-analytics/interfaces/google-analytics-settings.mjs +0 -2
- package/esm2020/google-analytics/public_api.mjs +0 -11
- package/esm2020/google-analytics/services/google-analytics.service.mjs +0 -200
- package/esm2020/google-analytics/sk-front-lib-google-analytics.mjs +0 -5
- package/esm2020/google-analytics/tokens/google-analytics-settings-token.mjs +0 -5
- package/esm2020/google-analytics/types/ga-action.type.mjs +0 -2
- package/esm2020/google-analytics/types/ga-bind.type.mjs +0 -2
- package/esm2020/image/public_api.mjs +0 -3
- package/esm2020/image/sk-front-lib-image.mjs +0 -5
- package/esm2020/image/sk-image.component.mjs +0 -262
- package/esm2020/image/sk-image.module.mjs +0 -43
- package/esm2020/model/lib/article.mjs +0 -11
- package/esm2020/model/lib/audit.mjs +0 -12
- package/esm2020/model/lib/auth.mjs +0 -2
- package/esm2020/model/lib/board.mjs +0 -21
- package/esm2020/model/lib/cart.mjs +0 -29
- package/esm2020/model/lib/comment.mjs +0 -25
- package/esm2020/model/lib/contact.mjs +0 -28
- package/esm2020/model/lib/coupon.mjs +0 -23
- package/esm2020/model/lib/document.mjs +0 -49
- package/esm2020/model/lib/etc.mjs +0 -38
- package/esm2020/model/lib/file.mjs +0 -8
- package/esm2020/model/lib/filetype.mjs +0 -179
- package/esm2020/model/lib/grid.mjs +0 -83
- package/esm2020/model/lib/nicepay.mjs +0 -81
- package/esm2020/model/lib/order.mjs +0 -106
- package/esm2020/model/lib/payment.mjs +0 -30
- package/esm2020/model/lib/point.mjs +0 -47
- package/esm2020/model/lib/product-series.mjs +0 -2
- package/esm2020/model/lib/product.mjs +0 -128
- package/esm2020/model/lib/promotion.mjs +0 -79
- package/esm2020/model/lib/shipping.mjs +0 -37
- package/esm2020/model/lib/user.mjs +0 -60
- package/esm2020/model/public_api.mjs +0 -23
- package/esm2020/model/sk-front-lib-model.mjs +0 -5
- package/esm2020/search-address/dialog/dialog.component.mjs +0 -27
- package/esm2020/search-address/public_api.mjs +0 -4
- package/esm2020/search-address/sk-front-lib-search-address.mjs +0 -5
- package/esm2020/search-address/sk-search-address.directive.mjs +0 -41
- package/esm2020/search-address/sk-search-address.model.mjs +0 -8
- package/esm2020/search-address/sk-search-address.module.mjs +0 -52
- package/esm2020/search-address/sk-search-address.service.mjs +0 -65
- package/esm2020/uploader/public_api.mjs +0 -4
- package/esm2020/uploader/sk-front-lib-uploader.mjs +0 -5
- package/esm2020/uploader/sk-uploader-file-item.model.mjs +0 -95
- package/esm2020/uploader/sk-uploader.animation.mjs +0 -47
- package/esm2020/uploader/sk-uploader.class.mjs +0 -188
- package/esm2020/uploader/sk-uploader.component.mjs +0 -120
- package/esm2020/uploader/sk-uploader.directive.mjs +0 -44
- package/esm2020/uploader/sk-uploader.module.mjs +0 -62
- package/fesm2015/sk-front-lib-api.mjs +0 -218
- package/fesm2015/sk-front-lib-api.mjs.map +0 -1
- package/fesm2015/sk-front-lib-article.mjs +0 -762
- package/fesm2015/sk-front-lib-article.mjs.map +0 -1
- package/fesm2015/sk-front-lib-crud.mjs +0 -1413
- package/fesm2015/sk-front-lib-crud.mjs.map +0 -1
- package/fesm2015/sk-front-lib-google-analytics.mjs +0 -339
- package/fesm2015/sk-front-lib-google-analytics.mjs.map +0 -1
- package/fesm2015/sk-front-lib-image.mjs +0 -306
- package/fesm2015/sk-front-lib-image.mjs.map +0 -1
- package/fesm2015/sk-front-lib-model.mjs +0 -1056
- package/fesm2015/sk-front-lib-model.mjs.map +0 -1
- package/fesm2015/sk-front-lib-search-address.mjs +0 -188
- package/fesm2015/sk-front-lib-search-address.mjs.map +0 -1
- package/fesm2015/sk-front-lib-uploader.mjs +0 -551
- package/fesm2015/sk-front-lib-uploader.mjs.map +0 -1
- package/fesm2020/sk-front-lib-api.mjs +0 -216
- package/fesm2020/sk-front-lib-api.mjs.map +0 -1
- package/fesm2020/sk-front-lib-article.mjs +0 -771
- package/fesm2020/sk-front-lib-article.mjs.map +0 -1
- package/fesm2020/sk-front-lib-crud.mjs +0 -1411
- package/fesm2020/sk-front-lib-crud.mjs.map +0 -1
- package/fesm2020/sk-front-lib-google-analytics.mjs +0 -336
- package/fesm2020/sk-front-lib-google-analytics.mjs.map +0 -1
- package/fesm2020/sk-front-lib-image.mjs +0 -309
- package/fesm2020/sk-front-lib-image.mjs.map +0 -1
- package/fesm2020/sk-front-lib-model.mjs +0 -1056
- package/fesm2020/sk-front-lib-model.mjs.map +0 -1
- package/fesm2020/sk-front-lib-search-address.mjs +0 -186
- package/fesm2020/sk-front-lib-search-address.mjs.map +0 -1
- package/fesm2020/sk-front-lib-uploader.mjs +0 -549
- package/fesm2020/sk-front-lib-uploader.mjs.map +0 -1
- package/google-analytics/google-analytics-router.module.d.ts +0 -8
- package/google-analytics/google-analytics.module.d.ts +0 -10
- package/google-analytics/initializers/google-analytics-router.initializer.d.ts +0 -5
- package/google-analytics/initializers/google-analytics.initializer.d.ts +0 -4
- package/google-analytics/interfaces/google-analytics-command.d.ts +0 -4
- package/google-analytics/interfaces/google-analytics-settings.d.ts +0 -6
- package/google-analytics/package.json +0 -10
- package/google-analytics/public_api.d.ts +0 -10
- package/google-analytics/services/google-analytics.service.d.ts +0 -84
- package/google-analytics/sk-front-lib-google-analytics.d.ts +0 -5
- package/google-analytics/tokens/google-analytics-settings-token.d.ts +0 -3
- package/google-analytics/types/ga-action.type.d.ts +0 -1
- package/google-analytics/types/ga-bind.type.d.ts +0 -1
- package/image/package.json +0 -10
- package/image/public_api.d.ts +0 -3
- package/image/sk-front-lib-image.d.ts +0 -5
- package/image/sk-image.component.d.ts +0 -112
- package/image/sk-image.module.d.ts +0 -12
- package/model/lib/article.d.ts +0 -13
- package/model/lib/audit.d.ts +0 -13
- package/model/lib/auth.d.ts +0 -8
- package/model/lib/board.d.ts +0 -39
- package/model/lib/cart.d.ts +0 -45
- package/model/lib/comment.d.ts +0 -43
- package/model/lib/contact.d.ts +0 -40
- package/model/lib/coupon.d.ts +0 -114
- package/model/lib/document.d.ts +0 -95
- package/model/lib/etc.d.ts +0 -144
- package/model/lib/file.d.ts +0 -24
- package/model/lib/filetype.d.ts +0 -10
- package/model/lib/grid.d.ts +0 -97
- package/model/lib/nicepay.d.ts +0 -39
- package/model/lib/order.d.ts +0 -161
- package/model/lib/payment.d.ts +0 -27
- package/model/lib/point.d.ts +0 -30
- package/model/lib/product-series.d.ts +0 -25
- package/model/lib/product.d.ts +0 -295
- package/model/lib/promotion.d.ts +0 -166
- package/model/lib/shipping.d.ts +0 -44
- package/model/lib/user.d.ts +0 -53
- package/model/package.json +0 -10
- package/model/public_api.d.ts +0 -22
- package/model/sk-front-lib-model.d.ts +0 -5
- package/search-address/dialog/dialog.component.d.ts +0 -13
- package/search-address/package.json +0 -10
- package/search-address/public_api.d.ts +0 -3
- package/search-address/sk-front-lib-search-address.d.ts +0 -5
- package/search-address/sk-search-address.directive.d.ts +0 -15
- package/search-address/sk-search-address.model.d.ts +0 -40
- package/search-address/sk-search-address.module.d.ts +0 -14
- package/search-address/sk-search-address.service.d.ts +0 -13
- package/uploader/package.json +0 -10
- package/uploader/public_api.d.ts +0 -4
- package/uploader/sk-front-lib-uploader.d.ts +0 -5
- package/uploader/sk-uploader-file-item.model.d.ts +0 -29
- package/uploader/sk-uploader.animation.d.ts +0 -1
- package/uploader/sk-uploader.class.d.ts +0 -47
- package/uploader/sk-uploader.component.d.ts +0 -28
- package/uploader/sk-uploader.directive.d.ts +0 -15
- package/uploader/sk-uploader.module.d.ts +0 -16
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { FormsModule } from '@angular/forms';
|
|
4
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
-
import { MatDialogModule } from '@angular/material/dialog';
|
|
6
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
7
|
-
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
8
|
-
import { SearchAddressDialogComponent } from './dialog/dialog.component';
|
|
9
|
-
import { SkSearchAddressDirective } from "./sk-search-address.directive";
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
export class SkSearchAddressModule {
|
|
12
|
-
}
|
|
13
|
-
SkSearchAddressModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkSearchAddressModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
14
|
-
SkSearchAddressModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkSearchAddressModule, declarations: [SearchAddressDialogComponent,
|
|
15
|
-
SkSearchAddressDirective], imports: [CommonModule,
|
|
16
|
-
FormsModule,
|
|
17
|
-
MatToolbarModule,
|
|
18
|
-
MatIconModule,
|
|
19
|
-
MatButtonModule,
|
|
20
|
-
MatDialogModule], exports: [SkSearchAddressDirective] });
|
|
21
|
-
SkSearchAddressModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkSearchAddressModule, imports: [[
|
|
22
|
-
CommonModule,
|
|
23
|
-
FormsModule,
|
|
24
|
-
MatToolbarModule,
|
|
25
|
-
MatIconModule,
|
|
26
|
-
MatButtonModule,
|
|
27
|
-
MatDialogModule
|
|
28
|
-
]] });
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkSearchAddressModule, decorators: [{
|
|
30
|
-
type: NgModule,
|
|
31
|
-
args: [{
|
|
32
|
-
imports: [
|
|
33
|
-
CommonModule,
|
|
34
|
-
FormsModule,
|
|
35
|
-
MatToolbarModule,
|
|
36
|
-
MatIconModule,
|
|
37
|
-
MatButtonModule,
|
|
38
|
-
MatDialogModule
|
|
39
|
-
],
|
|
40
|
-
exports: [
|
|
41
|
-
SkSearchAddressDirective
|
|
42
|
-
],
|
|
43
|
-
entryComponents: [
|
|
44
|
-
SearchAddressDialogComponent
|
|
45
|
-
],
|
|
46
|
-
declarations: [
|
|
47
|
-
SearchAddressDialogComponent,
|
|
48
|
-
SkSearchAddressDirective
|
|
49
|
-
]
|
|
50
|
-
}]
|
|
51
|
-
}] });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2stc2VhcmNoLWFkZHJlc3MubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2stZnJvbnQtbGliL3NlYXJjaC1hZGRyZXNzL3NyYy9zay1zZWFyY2gtYWRkcmVzcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLCtCQUErQixDQUFDOztBQXNCdkUsTUFBTSxPQUFPLHFCQUFxQjs7a0hBQXJCLHFCQUFxQjttSEFBckIscUJBQXFCLGlCQUoxQiw0QkFBNEI7UUFDNUIsd0JBQXdCLGFBZnhCLFlBQVk7UUFDWixXQUFXO1FBQ1gsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixlQUFlO1FBQ2YsZUFBZSxhQUdmLHdCQUF3QjttSEFVbkIscUJBQXFCLFlBbkJyQjtZQUNMLFlBQVk7WUFDWixXQUFXO1lBQ1gsZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixlQUFlO1lBQ2YsZUFBZTtTQUNsQjsyRkFZUSxxQkFBcUI7a0JBcEJqQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsZUFBZTtxQkFDbEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLHdCQUF3QjtxQkFDM0I7b0JBQ0QsZUFBZSxFQUFFO3dCQUNiLDRCQUE0QjtxQkFDL0I7b0JBQ0QsWUFBWSxFQUFFO3dCQUNWLDRCQUE0Qjt3QkFDNUIsd0JBQXdCO3FCQUMzQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge01hdEJ1dHRvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7TWF0RGlhbG9nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHtNYXRJY29uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7TWF0VG9vbGJhck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbGJhcic7XG5pbXBvcnQge1NlYXJjaEFkZHJlc3NEaWFsb2dDb21wb25lbnR9IGZyb20gJy4vZGlhbG9nL2RpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHtTa1NlYXJjaEFkZHJlc3NEaXJlY3RpdmV9IGZyb20gXCIuL3NrLXNlYXJjaC1hZGRyZXNzLmRpcmVjdGl2ZVwiO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgTWF0VG9vbGJhck1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICBNYXREaWFsb2dNb2R1bGVcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgU2tTZWFyY2hBZGRyZXNzRGlyZWN0aXZlXG4gICAgXSxcbiAgICBlbnRyeUNvbXBvbmVudHM6IFtcbiAgICAgICAgU2VhcmNoQWRkcmVzc0RpYWxvZ0NvbXBvbmVudFxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIFNlYXJjaEFkZHJlc3NEaWFsb2dDb21wb25lbnQsXG4gICAgICAgIFNrU2VhcmNoQWRkcmVzc0RpcmVjdGl2ZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU2tTZWFyY2hBZGRyZXNzTW9kdWxlIHtcbn1cbiJdfQ==
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable, PLATFORM_ID } from '@angular/core';
|
|
2
|
-
import { isPlatformBrowser } from '@angular/common';
|
|
3
|
-
import { SkSearchAddressModel } from "./sk-search-address.model";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
const url = '//t1.daumcdn.net/mapjsapi/bundle/postcode/prod/postcode.v2.js';
|
|
6
|
-
export class SkSearchAddressService {
|
|
7
|
-
constructor(platformId) {
|
|
8
|
-
this.platformId = platformId;
|
|
9
|
-
this.injected = false;
|
|
10
|
-
this.injectScript();
|
|
11
|
-
}
|
|
12
|
-
injectDialogContent(element) {
|
|
13
|
-
return new Promise(resolve => {
|
|
14
|
-
new daum.Postcode({
|
|
15
|
-
oncomplete: (data) => {
|
|
16
|
-
resolve(this.buildSearchAddressModel(data));
|
|
17
|
-
},
|
|
18
|
-
width: '100%',
|
|
19
|
-
height: element.nativeElement.offsetHeight,
|
|
20
|
-
animation: true
|
|
21
|
-
}).embed(element.nativeElement, { autoClose: false });
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
injectScript() {
|
|
25
|
-
if (isPlatformBrowser(this.platformId) && !this.injected) {
|
|
26
|
-
const script = document.createElement('script');
|
|
27
|
-
script.src = url;
|
|
28
|
-
script.type = 'text/javascript';
|
|
29
|
-
script.async = true;
|
|
30
|
-
document.body.appendChild(script);
|
|
31
|
-
this.injected = true;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
buildSearchAddressModel(data) {
|
|
35
|
-
// 아래의 코드는 다음 주소찾기에서 주소 파싱하는 부분을 그대로 가져옴
|
|
36
|
-
// 각 주소의 노출 규칙에 따라 주소를 조합한다.
|
|
37
|
-
// 내려오는 변수가 값이 없는 경우엔 공백('')값을 가지므로, 이를 참고하여 분기 한다.
|
|
38
|
-
let fullAddr = data.address; // 최종 주소 변수
|
|
39
|
-
let extraAddr = ''; // 조합형 주소 변수
|
|
40
|
-
// 기본 주소가 도로명 타입일때 조합한다.
|
|
41
|
-
if (data.addressType === 'R') {
|
|
42
|
-
// 법정동명이 있을 경우 추가한다.
|
|
43
|
-
if (data.bname !== '') {
|
|
44
|
-
extraAddr += data.bname;
|
|
45
|
-
}
|
|
46
|
-
// 건물명이 있을 경우 추가한다.
|
|
47
|
-
if (data.buildingName !== '') {
|
|
48
|
-
extraAddr += (extraAddr !== '' ? ', ' + data.buildingName : data.buildingName);
|
|
49
|
-
}
|
|
50
|
-
// 조합형주소의 유무에 따라 양쪽에 괄호를 추가하여 최종 주소를 만든다.
|
|
51
|
-
fullAddr += (extraAddr !== '' ? ' (' + extraAddr + ')' : '');
|
|
52
|
-
}
|
|
53
|
-
return new SkSearchAddressModel(data.zonecode, fullAddr);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
SkSearchAddressService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkSearchAddressService, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
57
|
-
SkSearchAddressService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkSearchAddressService, providedIn: 'root' });
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkSearchAddressService, decorators: [{
|
|
59
|
-
type: Injectable,
|
|
60
|
-
args: [{ providedIn: 'root' }]
|
|
61
|
-
}], ctorParameters: function () { return [{ type: Object, decorators: [{
|
|
62
|
-
type: Inject,
|
|
63
|
-
args: [PLATFORM_ID]
|
|
64
|
-
}] }]; } });
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2stc2VhcmNoLWFkZHJlc3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NrLWZyb250LWxpYi9zZWFyY2gtYWRkcmVzcy9zcmMvc2stc2VhcmNoLWFkZHJlc3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUE4QixvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDOztBQUc1RixNQUFNLEdBQUcsR0FBRywrREFBK0QsQ0FBQztBQUc1RSxNQUFNLE9BQU8sc0JBQXNCO0lBSS9CLFlBQXlDLFVBQWtCO1FBQWxCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFGM0QsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUdiLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsbUJBQW1CLENBQUMsT0FBbUI7UUFDbkMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNyQixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQ2QsVUFBVSxFQUFFLENBQUMsSUFBaUMsRUFBRSxFQUFFO29CQUM5QyxPQUFPLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ2hELENBQUM7Z0JBQ0QsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsTUFBTSxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsWUFBWTtnQkFDMUMsU0FBUyxFQUFFLElBQUk7YUFDbEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7UUFDNUQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN0RCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hELE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUM7WUFDaEMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDcEIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDeEI7SUFDTCxDQUFDO0lBRU8sdUJBQXVCLENBQUMsSUFBaUM7UUFFN0Qsd0NBQXdDO1FBRXhDLDRCQUE0QjtRQUM1QixtREFBbUQ7UUFDbkQsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVc7UUFDeEMsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDLENBQUMsWUFBWTtRQUVoQyx3QkFBd0I7UUFDeEIsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLEdBQUcsRUFBRTtZQUMxQixvQkFBb0I7WUFDcEIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRTtnQkFDbkIsU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUM7YUFDM0I7WUFDRCxtQkFBbUI7WUFDbkIsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLEVBQUUsRUFBRTtnQkFDMUIsU0FBUyxJQUFJLENBQUMsU0FBUyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNsRjtZQUNELHlDQUF5QztZQUN6QyxRQUFRLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsU0FBUyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDaEU7UUFFRCxPQUFPLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM3RCxDQUFDOzttSEF4RFEsc0JBQXNCLGtCQUlYLFdBQVc7dUhBSnRCLHNCQUFzQixjQURWLE1BQU07MkZBQ2xCLHNCQUFzQjtrQkFEbEMsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUM7MERBS3lCLE1BQU07MEJBQTlDLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RWxlbWVudFJlZiwgSW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2lzUGxhdGZvcm1Ccm93c2VyfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtTa0RhdW1BZGRyZXNzTW9kZWxJbnRlcmZhY2UsIFNrU2VhcmNoQWRkcmVzc01vZGVsfSBmcm9tIFwiLi9zay1zZWFyY2gtYWRkcmVzcy5tb2RlbFwiO1xuXG5kZWNsYXJlIHZhciBkYXVtOiBhbnk7XG5jb25zdCB1cmwgPSAnLy90MS5kYXVtY2RuLm5ldC9tYXBqc2FwaS9idW5kbGUvcG9zdGNvZGUvcHJvZC9wb3N0Y29kZS52Mi5qcyc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFNrU2VhcmNoQWRkcmVzc1NlcnZpY2Uge1xuXG4gICAgaW5qZWN0ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogT2JqZWN0KSB7XG4gICAgICAgIHRoaXMuaW5qZWN0U2NyaXB0KCk7XG4gICAgfVxuXG4gICAgaW5qZWN0RGlhbG9nQ29udGVudChlbGVtZW50OiBFbGVtZW50UmVmKTogUHJvbWlzZTxTa1NlYXJjaEFkZHJlc3NNb2RlbD4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICAgICAgICAgICAgbmV3IGRhdW0uUG9zdGNvZGUoe1xuICAgICAgICAgICAgICAgICAgICBvbmNvbXBsZXRlOiAoZGF0YTogU2tEYXVtQWRkcmVzc01vZGVsSW50ZXJmYWNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHRoaXMuYnVpbGRTZWFyY2hBZGRyZXNzTW9kZWwoZGF0YSkpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pLmVtYmVkKGVsZW1lbnQubmF0aXZlRWxlbWVudCwge2F1dG9DbG9zZTogZmFsc2V9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaW5qZWN0U2NyaXB0KCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSAmJiAhdGhpcy5pbmplY3RlZCkge1xuICAgICAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICAgICAgICBzY3JpcHQuc3JjID0gdXJsO1xuICAgICAgICAgICAgc2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcbiAgICAgICAgICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgICAgICAgICB0aGlzLmluamVjdGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRTZWFyY2hBZGRyZXNzTW9kZWwoZGF0YTogU2tEYXVtQWRkcmVzc01vZGVsSW50ZXJmYWNlKTogU2tTZWFyY2hBZGRyZXNzTW9kZWwge1xuXG4gICAgICAgIC8vIOyVhOuemOydmCDsvZTrk5zripQg64uk7J2MIOyjvOyGjOywvuq4sOyXkOyEnCDso7zshowg7YyM7Iux7ZWY64qUIOu2gOu2hOydhCDqt7jrjIDroZwg6rCA7KC47Ji0XG5cbiAgICAgICAgLy8g6rCBIOyjvOyGjOydmCDrhbjstpwg6rec7LmZ7JeQIOuUsOudvCDso7zshozrpbwg7KGw7ZWp7ZWc64ukLlxuICAgICAgICAvLyDrgrTroKTsmKTripQg67OA7IiY6rCAIOqwkuydtCDsl4bripQg6rK97Jqw7JeUIOqzteuwsSgnJynqsJLsnYQg6rCA7KeA66+A66GcLCDsnbTrpbwg7LC46rOg7ZWY7JesIOu2hOq4sCDtlZzri6QuXG4gICAgICAgIGxldCBmdWxsQWRkciA9IGRhdGEuYWRkcmVzczsgLy8g7LWc7KKFIOyjvOyGjCDrs4DsiJhcbiAgICAgICAgbGV0IGV4dHJhQWRkciA9ICcnOyAvLyDsobDtlantmJUg7KO87IaMIOuzgOyImFxuXG4gICAgICAgIC8vIOq4sOuzuCDso7zshozqsIAg64+E66Gc66qFIO2DgOyeheydvOuVjCDsobDtlantlZzri6QuXG4gICAgICAgIGlmIChkYXRhLmFkZHJlc3NUeXBlID09PSAnUicpIHtcbiAgICAgICAgICAgIC8vIOuyleygleuPmeuqheydtCDsnojsnYQg6rK97JqwIOy2lOqwgO2VnOuLpC5cbiAgICAgICAgICAgIGlmIChkYXRhLmJuYW1lICE9PSAnJykge1xuICAgICAgICAgICAgICAgIGV4dHJhQWRkciArPSBkYXRhLmJuYW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8g6rG066y866qF7J20IOyeiOydhCDqsr3smrAg7LaU6rCA7ZWc64ukLlxuICAgICAgICAgICAgaWYgKGRhdGEuYnVpbGRpbmdOYW1lICE9PSAnJykge1xuICAgICAgICAgICAgICAgIGV4dHJhQWRkciArPSAoZXh0cmFBZGRyICE9PSAnJyA/ICcsICcgKyBkYXRhLmJ1aWxkaW5nTmFtZSA6IGRhdGEuYnVpbGRpbmdOYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIOyhsO2Vqe2YleyjvOyGjOydmCDsnKDrrLTsl5Ag65Sw6528IOyWkeyqveyXkCDqtITtmLjrpbwg7LaU6rCA7ZWY7JesIOy1nOyihSDso7zshozrpbwg66eM65Og64ukLlxuICAgICAgICAgICAgZnVsbEFkZHIgKz0gKGV4dHJhQWRkciAhPT0gJycgPyAnICgnICsgZXh0cmFBZGRyICsgJyknIDogJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBTa1NlYXJjaEFkZHJlc3NNb2RlbChkYXRhLnpvbmVjb2RlLCBmdWxsQWRkcik7XG4gICAgfVxufVxuIl19
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { SkUploaderModule } from './sk-uploader.module';
|
|
2
|
-
export { SkUploaderComponent } from './sk-uploader.component';
|
|
3
|
-
export { SkUploaderDirective } from './sk-uploader.directive';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NrLWZyb250LWxpYi91cGxvYWRlci9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFNrVXBsb2FkZXJNb2R1bGUgfSBmcm9tICcuL3NrLXVwbG9hZGVyLm1vZHVsZSc7XG5leHBvcnQgeyBTa1VwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zay11cGxvYWRlci5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2tVcGxvYWRlckRpcmVjdGl2ZSB9IGZyb20gJy4vc2stdXBsb2FkZXIuZGlyZWN0aXZlJztcbmV4cG9ydCB7IFNrRmlsZVVwbG9hZGVyT3B0aW9ucyB9IGZyb20gJy4vc2stdXBsb2FkZXIuY2xhc3MnO1xuIl19
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public_api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2stZnJvbnQtbGliLXVwbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2stZnJvbnQtbGliL3VwbG9hZGVyL3NyYy9zay1mcm9udC1saWItdXBsb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { FileType } from 'sk-front-lib/model';
|
|
2
|
-
export var SkUploaderFileItemType;
|
|
3
|
-
(function (SkUploaderFileItemType) {
|
|
4
|
-
SkUploaderFileItemType[SkUploaderFileItemType["Local"] = 0] = "Local";
|
|
5
|
-
SkUploaderFileItemType[SkUploaderFileItemType["API"] = 1] = "API";
|
|
6
|
-
SkUploaderFileItemType[SkUploaderFileItemType["Unidentified"] = 2] = "Unidentified";
|
|
7
|
-
})(SkUploaderFileItemType || (SkUploaderFileItemType = {}));
|
|
8
|
-
export var SkUploaderFileItemStatus;
|
|
9
|
-
(function (SkUploaderFileItemStatus) {
|
|
10
|
-
SkUploaderFileItemStatus[SkUploaderFileItemStatus["WAIT"] = 0] = "WAIT";
|
|
11
|
-
SkUploaderFileItemStatus[SkUploaderFileItemStatus["READY"] = 1] = "READY";
|
|
12
|
-
SkUploaderFileItemStatus[SkUploaderFileItemStatus["UPLOADING"] = 2] = "UPLOADING";
|
|
13
|
-
SkUploaderFileItemStatus[SkUploaderFileItemStatus["PROCESS"] = 3] = "PROCESS";
|
|
14
|
-
SkUploaderFileItemStatus[SkUploaderFileItemStatus["DONE"] = 4] = "DONE";
|
|
15
|
-
SkUploaderFileItemStatus[SkUploaderFileItemStatus["ERROR"] = 5] = "ERROR";
|
|
16
|
-
})(SkUploaderFileItemStatus || (SkUploaderFileItemStatus = {}));
|
|
17
|
-
export class SkUploaderFileItem {
|
|
18
|
-
constructor(localFile, skFile) {
|
|
19
|
-
this.localFile = localFile;
|
|
20
|
-
this.skFile = skFile;
|
|
21
|
-
this.state = SkUploaderFileItemStatus.WAIT;
|
|
22
|
-
this.progress = 0;
|
|
23
|
-
if (this.localFile && !this.skFile) {
|
|
24
|
-
this.itemType = SkUploaderFileItemType.Local;
|
|
25
|
-
}
|
|
26
|
-
else if (!this.localFile && this.skFile) {
|
|
27
|
-
this.itemType = SkUploaderFileItemType.API;
|
|
28
|
-
this.state = SkUploaderFileItemStatus.DONE;
|
|
29
|
-
this.progress = 100;
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
this.itemType = SkUploaderFileItemType.Unidentified;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
get filename() {
|
|
36
|
-
if (this.itemType === SkUploaderFileItemType.Local) {
|
|
37
|
-
return this.localFile.name;
|
|
38
|
-
}
|
|
39
|
-
else if (this.itemType === SkUploaderFileItemType.API) {
|
|
40
|
-
return this.skFile.sourceFilename;
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
return 'Unknown File';
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
get size() {
|
|
47
|
-
if (this.itemType === SkUploaderFileItemType.Local) {
|
|
48
|
-
return this.localFile.size;
|
|
49
|
-
}
|
|
50
|
-
else if (this.itemType === SkUploaderFileItemType.API) {
|
|
51
|
-
return this.skFile.fileSize;
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
return -1;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
get mime() {
|
|
58
|
-
if (this.itemType === SkUploaderFileItemType.Local) {
|
|
59
|
-
return this.localFile.type;
|
|
60
|
-
}
|
|
61
|
-
else if (this.itemType === SkUploaderFileItemType.API) {
|
|
62
|
-
return this.skFile.mime;
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
return '';
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
get icon() {
|
|
69
|
-
if (this.itemType === SkUploaderFileItemType.Local) {
|
|
70
|
-
return FileType.getMimeClass(this.localFile);
|
|
71
|
-
}
|
|
72
|
-
else if (this.itemType === SkUploaderFileItemType.API) {
|
|
73
|
-
return FileType.getMimeClass(this.skFile);
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
return 'application';
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
// -----------------------------------------------------------------------------------------------------
|
|
80
|
-
// @ Static Builder
|
|
81
|
-
// -----------------------------------------------------------------------------------------------------
|
|
82
|
-
static fromLocalFile(localFile) {
|
|
83
|
-
return new SkUploaderFileItem(localFile);
|
|
84
|
-
}
|
|
85
|
-
static fromApi(skFile) {
|
|
86
|
-
return new SkUploaderFileItem(null, skFile);
|
|
87
|
-
}
|
|
88
|
-
// -----------------------------------------------------------------------------------------------------
|
|
89
|
-
// @ State Method
|
|
90
|
-
// -----------------------------------------------------------------------------------------------------
|
|
91
|
-
prepareUpload() {
|
|
92
|
-
this.state = SkUploaderFileItemStatus.READY;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2stdXBsb2FkZXItZmlsZS1pdGVtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2stZnJvbnQtbGliL3VwbG9hZGVyL3NyYy9zay11cGxvYWRlci1maWxlLWl0ZW0ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBUyxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE1BQU0sQ0FBTixJQUFZLHNCQUlYO0FBSkQsV0FBWSxzQkFBc0I7SUFDOUIscUVBQUssQ0FBQTtJQUNMLGlFQUFHLENBQUE7SUFDSCxtRkFBWSxDQUFBO0FBQ2hCLENBQUMsRUFKVyxzQkFBc0IsS0FBdEIsc0JBQXNCLFFBSWpDO0FBRUQsTUFBTSxDQUFOLElBQVksd0JBT1g7QUFQRCxXQUFZLHdCQUF3QjtJQUNoQyx1RUFBSSxDQUFBO0lBQ0oseUVBQUssQ0FBQTtJQUNMLGlGQUFTLENBQUE7SUFDVCw2RUFBTyxDQUFBO0lBQ1AsdUVBQUksQ0FBQTtJQUNKLHlFQUFLLENBQUE7QUFDVCxDQUFDLEVBUFcsd0JBQXdCLEtBQXhCLHdCQUF3QixRQU9uQztBQUVELE1BQU0sT0FBTyxrQkFBa0I7SUFFM0IsWUFBb0IsU0FBZ0IsRUFBRSxNQUFlO1FBQ2pELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBRXJCLElBQUksQ0FBQyxLQUFLLEdBQUcsd0JBQXdCLENBQUMsSUFBSSxDQUFDO1FBQzNDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBRWxCLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQyxLQUFLLENBQUM7U0FDaEQ7YUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsc0JBQXNCLENBQUMsR0FBRyxDQUFDO1lBQzNDLElBQUksQ0FBQyxLQUFLLEdBQUcsd0JBQXdCLENBQUMsSUFBSSxDQUFDO1lBQzNDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO1NBQ3ZCO2FBQU07WUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLHNCQUFzQixDQUFDLFlBQVksQ0FBQztTQUN2RDtJQUNMLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDUixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssc0JBQXNCLENBQUMsS0FBSyxFQUFFO1lBQ2hELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7U0FDOUI7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssc0JBQXNCLENBQUMsR0FBRyxFQUFFO1lBQ3JELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUM7U0FDckM7YUFBTTtZQUNILE9BQU8sY0FBYyxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUU7WUFDaEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztTQUM5QjthQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUU7WUFDckQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztTQUMvQjthQUFNO1lBQ0gsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNiO0lBQ0wsQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUU7WUFDaEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztTQUM5QjthQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUU7WUFDckQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztTQUMzQjthQUFNO1lBQ0gsT0FBTyxFQUFFLENBQUM7U0FDYjtJQUNMLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDSixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssc0JBQXNCLENBQUMsS0FBSyxFQUFFO1lBQ2hELE9BQU8sUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDaEQ7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssc0JBQXNCLENBQUMsR0FBRyxFQUFFO1lBQ3JELE9BQU8sUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDN0M7YUFBTTtZQUNILE9BQU8sYUFBYSxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQVdELHdHQUF3RztJQUN4RyxtQkFBbUI7SUFDbkIsd0dBQXdHO0lBRXhHLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBZTtRQUNoQyxPQUFPLElBQUksa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBYztRQUN6QixPQUFPLElBQUksa0JBQWtCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCx3R0FBd0c7SUFDeEcsaUJBQWlCO0lBQ2pCLHdHQUF3RztJQUVqRyxhQUFhO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsd0JBQXdCLENBQUMsS0FBSyxDQUFDO0lBQ2hELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RmlsZVR5cGUsIFNrRmlsZX0gZnJvbSAnc2stZnJvbnQtbGliL21vZGVsJztcblxuZXhwb3J0IGVudW0gU2tVcGxvYWRlckZpbGVJdGVtVHlwZSB7XG4gICAgTG9jYWwsXG4gICAgQVBJLFxuICAgIFVuaWRlbnRpZmllZFxufVxuXG5leHBvcnQgZW51bSBTa1VwbG9hZGVyRmlsZUl0ZW1TdGF0dXMge1xuICAgIFdBSVQsXG4gICAgUkVBRFksXG4gICAgVVBMT0FESU5HLFxuICAgIFBST0NFU1MsXG4gICAgRE9ORSxcbiAgICBFUlJPUlxufVxuXG5leHBvcnQgY2xhc3MgU2tVcGxvYWRlckZpbGVJdGVtIHtcblxuICAgIHByaXZhdGUgY29uc3RydWN0b3IobG9jYWxGaWxlPzogRmlsZSwgc2tGaWxlPzogU2tGaWxlKSB7XG4gICAgICAgIHRoaXMubG9jYWxGaWxlID0gbG9jYWxGaWxlO1xuICAgICAgICB0aGlzLnNrRmlsZSA9IHNrRmlsZTtcblxuICAgICAgICB0aGlzLnN0YXRlID0gU2tVcGxvYWRlckZpbGVJdGVtU3RhdHVzLldBSVQ7XG4gICAgICAgIHRoaXMucHJvZ3Jlc3MgPSAwO1xuXG4gICAgICAgIGlmICh0aGlzLmxvY2FsRmlsZSAmJiAhdGhpcy5za0ZpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbVR5cGUgPSBTa1VwbG9hZGVyRmlsZUl0ZW1UeXBlLkxvY2FsO1xuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmxvY2FsRmlsZSAmJiB0aGlzLnNrRmlsZSkge1xuICAgICAgICAgICAgdGhpcy5pdGVtVHlwZSA9IFNrVXBsb2FkZXJGaWxlSXRlbVR5cGUuQVBJO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFNrVXBsb2FkZXJGaWxlSXRlbVN0YXR1cy5ET05FO1xuICAgICAgICAgICAgdGhpcy5wcm9ncmVzcyA9IDEwMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbVR5cGUgPSBTa1VwbG9hZGVyRmlsZUl0ZW1UeXBlLlVuaWRlbnRpZmllZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBmaWxlbmFtZSgpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5pdGVtVHlwZSA9PT0gU2tVcGxvYWRlckZpbGVJdGVtVHlwZS5Mb2NhbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxGaWxlLm5hbWU7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pdGVtVHlwZSA9PT0gU2tVcGxvYWRlckZpbGVJdGVtVHlwZS5BUEkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNrRmlsZS5zb3VyY2VGaWxlbmFtZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAnVW5rbm93biBGaWxlJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBzaXplKCk6IG51bWJlciB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1UeXBlID09PSBTa1VwbG9hZGVyRmlsZUl0ZW1UeXBlLkxvY2FsKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbEZpbGUuc2l6ZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLml0ZW1UeXBlID09PSBTa1VwbG9hZGVyRmlsZUl0ZW1UeXBlLkFQSSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2tGaWxlLmZpbGVTaXplO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IG1pbWUoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbVR5cGUgPT09IFNrVXBsb2FkZXJGaWxlSXRlbVR5cGUuTG9jYWwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsRmlsZS50eXBlO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXRlbVR5cGUgPT09IFNrVXBsb2FkZXJGaWxlSXRlbVR5cGUuQVBJKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5za0ZpbGUubWltZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBpY29uKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1UeXBlID09PSBTa1VwbG9hZGVyRmlsZUl0ZW1UeXBlLkxvY2FsKSB7XG4gICAgICAgICAgICByZXR1cm4gRmlsZVR5cGUuZ2V0TWltZUNsYXNzKHRoaXMubG9jYWxGaWxlKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLml0ZW1UeXBlID09PSBTa1VwbG9hZGVyRmlsZUl0ZW1UeXBlLkFQSSkge1xuICAgICAgICAgICAgcmV0dXJuIEZpbGVUeXBlLmdldE1pbWVDbGFzcyh0aGlzLnNrRmlsZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBsb2NhbEZpbGU6IEZpbGU7XG4gICAgcHVibGljIHNrRmlsZTogU2tGaWxlO1xuICAgIHB1YmxpYyBpdGVtVHlwZTogU2tVcGxvYWRlckZpbGVJdGVtVHlwZTtcblxuICAgIHB1YmxpYyBzdGF0ZTogU2tVcGxvYWRlckZpbGVJdGVtU3RhdHVzO1xuICAgIHB1YmxpYyBwcm9ncmVzczogbnVtYmVyO1xuXG5cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gQCBTdGF0aWMgQnVpbGRlclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBzdGF0aWMgZnJvbUxvY2FsRmlsZShsb2NhbEZpbGU6IEZpbGUpOiBTa1VwbG9hZGVyRmlsZUl0ZW0ge1xuICAgICAgICByZXR1cm4gbmV3IFNrVXBsb2FkZXJGaWxlSXRlbShsb2NhbEZpbGUpO1xuICAgIH1cblxuICAgIHN0YXRpYyBmcm9tQXBpKHNrRmlsZTogU2tGaWxlKTogU2tVcGxvYWRlckZpbGVJdGVtIHtcbiAgICAgICAgcmV0dXJuIG5ldyBTa1VwbG9hZGVyRmlsZUl0ZW0obnVsbCwgc2tGaWxlKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIEAgU3RhdGUgTWV0aG9kXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBwcmVwYXJlVXBsb2FkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0YXRlID0gU2tVcGxvYWRlckZpbGVJdGVtU3RhdHVzLlJFQURZO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { animate, animateChild, animation, query, stagger, style, transition, trigger, useAnimation } from '@angular/animations';
|
|
2
|
-
const customAnimation = animation([
|
|
3
|
-
style({
|
|
4
|
-
opacity: '{{opacity}}',
|
|
5
|
-
transform: 'scale({{scale}}) translate3d({{x}}, {{y}}, {{z}})'
|
|
6
|
-
}),
|
|
7
|
-
animate('{{duration}} {{delay}} cubic-bezier(0.0, 0.0, 0.2, 1)', style('*'))
|
|
8
|
-
], {
|
|
9
|
-
params: {
|
|
10
|
-
duration: '200ms',
|
|
11
|
-
delay: '0ms',
|
|
12
|
-
opacity: '0',
|
|
13
|
-
scale: '1',
|
|
14
|
-
x: '0',
|
|
15
|
-
y: '0',
|
|
16
|
-
z: '0'
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
const customOutAnimation = animation([
|
|
20
|
-
style('*'),
|
|
21
|
-
animate('{{duration}} {{delay}} cubic-bezier(0.0, 0.0, 0.2, 1)', style({
|
|
22
|
-
opacity: '{{opacity}}',
|
|
23
|
-
transform: 'scale({{scale}}) translate3d({{x}}, {{y}}, {{z}})'
|
|
24
|
-
}))
|
|
25
|
-
], {
|
|
26
|
-
params: {
|
|
27
|
-
duration: '200ms',
|
|
28
|
-
delay: '0ms',
|
|
29
|
-
opacity: '0',
|
|
30
|
-
scale: '1',
|
|
31
|
-
x: '0',
|
|
32
|
-
y: '0',
|
|
33
|
-
z: '0'
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
export const uploaderAnimations = [
|
|
37
|
-
trigger('animate', [transition('void => *', [useAnimation(customAnimation)])]),
|
|
38
|
-
trigger('animateOut', [transition('* => void', [useAnimation(customOutAnimation)])]),
|
|
39
|
-
trigger('animateStagger', [
|
|
40
|
-
transition('* => *', query('@*', [
|
|
41
|
-
stagger('100ms', [
|
|
42
|
-
animateChild()
|
|
43
|
-
])
|
|
44
|
-
], { optional: true })),
|
|
45
|
-
]),
|
|
46
|
-
];
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2stdXBsb2FkZXIuYW5pbWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2stZnJvbnQtbGliL3VwbG9hZGVyL3NyYy9zay11cGxvYWRlci5hbmltYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFL0gsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0lBQzlCLEtBQUssQ0FBQztRQUNGLE9BQU8sRUFBSSxhQUFhO1FBQ3hCLFNBQVMsRUFBRSxtREFBbUQ7S0FDakUsQ0FBQztJQUNGLE9BQU8sQ0FBQyx1REFBdUQsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Q0FDL0UsRUFBRTtJQUNDLE1BQU0sRUFBRTtRQUNKLFFBQVEsRUFBRSxPQUFPO1FBQ2pCLEtBQUssRUFBSyxLQUFLO1FBQ2YsT0FBTyxFQUFHLEdBQUc7UUFDYixLQUFLLEVBQUssR0FBRztRQUNiLENBQUMsRUFBUyxHQUFHO1FBQ2IsQ0FBQyxFQUFTLEdBQUc7UUFDYixDQUFDLEVBQVMsR0FBRztLQUNoQjtDQUNKLENBQUMsQ0FBQztBQUVILE1BQU0sa0JBQWtCLEdBQUcsU0FBUyxDQUFDO0lBQ2pDLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDVixPQUFPLENBQUMsdURBQXVELEVBQUUsS0FBSyxDQUFDO1FBQ25FLE9BQU8sRUFBSSxhQUFhO1FBQ3hCLFNBQVMsRUFBRSxtREFBbUQ7S0FDakUsQ0FBQyxDQUFDO0NBQ04sRUFBRTtJQUNDLE1BQU0sRUFBRTtRQUNKLFFBQVEsRUFBRSxPQUFPO1FBQ2pCLEtBQUssRUFBSyxLQUFLO1FBQ2YsT0FBTyxFQUFHLEdBQUc7UUFDYixLQUFLLEVBQUssR0FBRztRQUNiLENBQUMsRUFBUyxHQUFHO1FBQ2IsQ0FBQyxFQUFTLEdBQUc7UUFDYixDQUFDLEVBQVMsR0FBRztLQUNoQjtDQUNKLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQzlCLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlFLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFcEYsT0FBTyxDQUFDLGdCQUFnQixFQUFFO1FBQ3RCLFVBQVUsQ0FBQyxRQUFRLEVBQ2YsS0FBSyxDQUFDLElBQUksRUFDTjtZQUNJLE9BQU8sQ0FBQyxPQUFPLEVBQUU7Z0JBQ2IsWUFBWSxFQUFFO2FBQ2pCLENBQUM7U0FDTCxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7S0FDaEMsQ0FBQztDQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2FuaW1hdGUsIGFuaW1hdGVDaGlsZCwgYW5pbWF0aW9uLCBxdWVyeSwgc3RhZ2dlciwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIsIHVzZUFuaW1hdGlvbn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmNvbnN0IGN1c3RvbUFuaW1hdGlvbiA9IGFuaW1hdGlvbihbXG4gICAgc3R5bGUoe1xuICAgICAgICBvcGFjaXR5ICA6ICd7e29wYWNpdHl9fScsXG4gICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlKHt7c2NhbGV9fSkgdHJhbnNsYXRlM2Qoe3t4fX0sIHt7eX19LCB7e3p9fSknXG4gICAgfSksXG4gICAgYW5pbWF0ZSgne3tkdXJhdGlvbn19IHt7ZGVsYXl9fSBjdWJpYy1iZXppZXIoMC4wLCAwLjAsIDAuMiwgMSknLCBzdHlsZSgnKicpKVxuXSwge1xuICAgIHBhcmFtczoge1xuICAgICAgICBkdXJhdGlvbjogJzIwMG1zJyxcbiAgICAgICAgZGVsYXkgICA6ICcwbXMnLFxuICAgICAgICBvcGFjaXR5IDogJzAnLFxuICAgICAgICBzY2FsZSAgIDogJzEnLFxuICAgICAgICB4ICAgICAgIDogJzAnLFxuICAgICAgICB5ICAgICAgIDogJzAnLFxuICAgICAgICB6ICAgICAgIDogJzAnXG4gICAgfVxufSk7XG5cbmNvbnN0IGN1c3RvbU91dEFuaW1hdGlvbiA9IGFuaW1hdGlvbihbXG4gICAgc3R5bGUoJyonKSxcbiAgICBhbmltYXRlKCd7e2R1cmF0aW9ufX0ge3tkZWxheX19IGN1YmljLWJlemllcigwLjAsIDAuMCwgMC4yLCAxKScsIHN0eWxlKHtcbiAgICAgICAgb3BhY2l0eSAgOiAne3tvcGFjaXR5fX0nLFxuICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSh7e3NjYWxlfX0pIHRyYW5zbGF0ZTNkKHt7eH19LCB7e3l9fSwge3t6fX0pJ1xuICAgIH0pKVxuXSwge1xuICAgIHBhcmFtczoge1xuICAgICAgICBkdXJhdGlvbjogJzIwMG1zJyxcbiAgICAgICAgZGVsYXkgICA6ICcwbXMnLFxuICAgICAgICBvcGFjaXR5IDogJzAnLFxuICAgICAgICBzY2FsZSAgIDogJzEnLFxuICAgICAgICB4ICAgICAgIDogJzAnLFxuICAgICAgICB5ICAgICAgIDogJzAnLFxuICAgICAgICB6ICAgICAgIDogJzAnXG4gICAgfVxufSk7XG5cbmV4cG9ydCBjb25zdCB1cGxvYWRlckFuaW1hdGlvbnMgPSBbXG4gICAgdHJpZ2dlcignYW5pbWF0ZScsIFt0cmFuc2l0aW9uKCd2b2lkID0+IConLCBbdXNlQW5pbWF0aW9uKGN1c3RvbUFuaW1hdGlvbildKV0pLFxuICAgIHRyaWdnZXIoJ2FuaW1hdGVPdXQnLCBbdHJhbnNpdGlvbignKiA9PiB2b2lkJywgW3VzZUFuaW1hdGlvbihjdXN0b21PdXRBbmltYXRpb24pXSldKSxcblxuICAgIHRyaWdnZXIoJ2FuaW1hdGVTdGFnZ2VyJywgW1xuICAgICAgICB0cmFuc2l0aW9uKCcqID0+IConLFxuICAgICAgICAgICAgcXVlcnkoJ0AqJyxcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgIHN0YWdnZXIoJzEwMG1zJywgW1xuICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZUNoaWxkKClcbiAgICAgICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgICBdLCB7b3B0aW9uYWw6IHRydWV9KSksXG4gICAgXSksXG5dO1xuIl19
|
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
import { HttpEventType, HttpHeaders, HttpRequest } from '@angular/common/http';
|
|
2
|
-
import { of } from 'rxjs';
|
|
3
|
-
import { catchError, last, map, tap } from 'rxjs/operators';
|
|
4
|
-
import { FileType, SkFile } from 'sk-front-lib/model';
|
|
5
|
-
import { SkUploaderFileItem, SkUploaderFileItemStatus } from './sk-uploader-file-item.model';
|
|
6
|
-
export class SkFileUploader {
|
|
7
|
-
constructor(apiService, options, selectedFiles = []) {
|
|
8
|
-
this.apiService = apiService;
|
|
9
|
-
this.queue = [];
|
|
10
|
-
this.progress = 0;
|
|
11
|
-
this.options = {
|
|
12
|
-
autoUpload: false,
|
|
13
|
-
filters: [],
|
|
14
|
-
maxFileSize: 2 * 1024 * 1024 * 1024,
|
|
15
|
-
queueLimit: 1,
|
|
16
|
-
asyncLimit: 2,
|
|
17
|
-
};
|
|
18
|
-
this.setOptions(options);
|
|
19
|
-
this.setSelectedFiles(selectedFiles);
|
|
20
|
-
}
|
|
21
|
-
// -----------------------------------------------------------------------------------------------------
|
|
22
|
-
// @ Data Accessor
|
|
23
|
-
// -----------------------------------------------------------------------------------------------------
|
|
24
|
-
// -----------------------------------------------------------------------------------------------------
|
|
25
|
-
// @ Uploader - Public methods
|
|
26
|
-
// -----------------------------------------------------------------------------------------------------
|
|
27
|
-
setOptions(options) {
|
|
28
|
-
this.options = Object.assign(this.options, options);
|
|
29
|
-
this.options.filters.unshift({ name: 'queueLimit', fn: this._queueLimitFilter });
|
|
30
|
-
if (this.options.maxFileSize) {
|
|
31
|
-
this.options.filters.unshift({ name: 'fileSize', fn: this._fileSizeFilter });
|
|
32
|
-
}
|
|
33
|
-
if (this.options.allowedFileType) {
|
|
34
|
-
this.options.filters.unshift({ name: 'fileType', fn: this._fileTypeFilter });
|
|
35
|
-
}
|
|
36
|
-
if (this.options.allowedMimeType) {
|
|
37
|
-
this.options.filters.unshift({ name: 'mimeType', fn: this._mimeTypeFilter });
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
setSelectedFiles(files) {
|
|
41
|
-
const items = files.map(file => SkUploaderFileItem.fromApi(file));
|
|
42
|
-
this.addToQueue(items);
|
|
43
|
-
}
|
|
44
|
-
addToQueue(files, filters) {
|
|
45
|
-
const arrayOfFilters = this._getFilters(filters);
|
|
46
|
-
files.forEach(item => {
|
|
47
|
-
if (this._isValidFile(item, arrayOfFilters, this.options) && !this._findByFilenameInQueue(item.filename)) {
|
|
48
|
-
this.queue.push(item);
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
this.updateProgress();
|
|
52
|
-
}
|
|
53
|
-
removeFromQueue(file) {
|
|
54
|
-
const index = this.queue.findIndex(value => value.filename === file.filename);
|
|
55
|
-
this.queue.splice(index, 1);
|
|
56
|
-
this.updateProgress();
|
|
57
|
-
}
|
|
58
|
-
clearQueue() {
|
|
59
|
-
while (this.queue.length) {
|
|
60
|
-
this.removeFromQueue(this.queue[0]);
|
|
61
|
-
}
|
|
62
|
-
this.progress = 0;
|
|
63
|
-
}
|
|
64
|
-
upload(item) {
|
|
65
|
-
this._processUpload(item);
|
|
66
|
-
}
|
|
67
|
-
uploadAll() {
|
|
68
|
-
const targetItems = this.getNotUploadedItems();
|
|
69
|
-
targetItems.forEach(item => {
|
|
70
|
-
item.prepareUpload();
|
|
71
|
-
});
|
|
72
|
-
if (targetItems.length > 0) {
|
|
73
|
-
const max = Math.min(targetItems.length, this.options.asyncLimit);
|
|
74
|
-
for (let i = 0; i < max; i++) {
|
|
75
|
-
this.upload(targetItems[i]);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
// -----------------------------------------------------------------------------------------------------
|
|
80
|
-
// @ Private methods.
|
|
81
|
-
// -----------------------------------------------------------------------------------------------------
|
|
82
|
-
updateProgress() {
|
|
83
|
-
const uploaded = this.getDoneItems().length;
|
|
84
|
-
const current = uploaded / this.queue.length * 100;
|
|
85
|
-
this.progress = Math.ceil(current);
|
|
86
|
-
}
|
|
87
|
-
// -----------------------------------------------------------------------------------------------------
|
|
88
|
-
// @ Uploader - Filters
|
|
89
|
-
// -----------------------------------------------------------------------------------------------------
|
|
90
|
-
_isValidFile(file, filters, options) {
|
|
91
|
-
this._failFilterIndex = -1;
|
|
92
|
-
return !filters.length ? true : filters.every((filter) => {
|
|
93
|
-
this._failFilterIndex++;
|
|
94
|
-
return filter.fn.call(this, file, options);
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
_getFilters(filters) {
|
|
98
|
-
if (!filters) {
|
|
99
|
-
return this.options.filters;
|
|
100
|
-
}
|
|
101
|
-
if (Array.isArray(filters)) {
|
|
102
|
-
return filters;
|
|
103
|
-
}
|
|
104
|
-
if (typeof filters === 'string') {
|
|
105
|
-
const names = filters.match(/[^\s,]+/g);
|
|
106
|
-
return this.options.filters
|
|
107
|
-
.filter((filter) => names.indexOf(filter.name) !== -1);
|
|
108
|
-
}
|
|
109
|
-
return this.options.filters;
|
|
110
|
-
}
|
|
111
|
-
_queueLimitFilter() {
|
|
112
|
-
return this.options.queueLimit === undefined || this.queue.length < this.options.queueLimit;
|
|
113
|
-
}
|
|
114
|
-
_mimeTypeFilter(item) {
|
|
115
|
-
return !(this.options.allowedMimeType && this.options.allowedMimeType.indexOf(item.mime) === -1);
|
|
116
|
-
}
|
|
117
|
-
_fileSizeFilter(item) {
|
|
118
|
-
return !(this.options.maxFileSize && item.size > this.options.maxFileSize);
|
|
119
|
-
}
|
|
120
|
-
_fileTypeFilter(item) {
|
|
121
|
-
return !(this.options.allowedFileType &&
|
|
122
|
-
this.options.allowedFileType.indexOf(FileType.getMimeClass(item.localFile ? item.localFile : item.skFile)) === -1);
|
|
123
|
-
}
|
|
124
|
-
// -----------------------------------------------------------------------------------------------------
|
|
125
|
-
// @ Uploader - Upload biz logic
|
|
126
|
-
// -----------------------------------------------------------------------------------------------------
|
|
127
|
-
_processUpload(item) {
|
|
128
|
-
if (item.state !== SkUploaderFileItemStatus.READY) {
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
const formData = new FormData();
|
|
132
|
-
formData.append('file', item.localFile, item.filename);
|
|
133
|
-
const request = new HttpRequest('POST', this.apiService.apiServer + '/api/public/files/upload', formData, {
|
|
134
|
-
reportProgress: true,
|
|
135
|
-
headers: new HttpHeaders().set('Authorization', 'Bearer ' + this.apiService.getToken()).set('ngsw-bypass', 'true')
|
|
136
|
-
});
|
|
137
|
-
this.apiService.rawRequest(request).pipe(tap(event => {
|
|
138
|
-
switch (event.type) {
|
|
139
|
-
case HttpEventType.UploadProgress:
|
|
140
|
-
// Compute and show the % done:
|
|
141
|
-
const percentDone = Math.ceil(100 * event.loaded / event.total);
|
|
142
|
-
item.progress = percentDone;
|
|
143
|
-
if (item.progress >= 99) {
|
|
144
|
-
item.state = SkUploaderFileItemStatus.PROCESS;
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
item.state = SkUploaderFileItemStatus.UPLOADING;
|
|
148
|
-
}
|
|
149
|
-
return;
|
|
150
|
-
case HttpEventType.Response:
|
|
151
|
-
item.state = SkUploaderFileItemStatus.DONE;
|
|
152
|
-
return;
|
|
153
|
-
default:
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
|
-
}), last(), // return last (completed) message to caller
|
|
157
|
-
map((result) => result.body.data ? new SkFile(result.body.data) : null), catchError(err => {
|
|
158
|
-
console.log(err);
|
|
159
|
-
item.state = SkUploaderFileItemStatus.ERROR;
|
|
160
|
-
return of(null);
|
|
161
|
-
})).subscribe(result => {
|
|
162
|
-
if (result instanceof SkFile) {
|
|
163
|
-
item.skFile = result;
|
|
164
|
-
}
|
|
165
|
-
this.updateProgress();
|
|
166
|
-
const nextItems = this.getReadyItems();
|
|
167
|
-
if (nextItems.length > 0) {
|
|
168
|
-
this.upload(nextItems[0]);
|
|
169
|
-
}
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
// -----------------------------------------------------------------------------------------------------
|
|
173
|
-
// @ Data Handlers
|
|
174
|
-
// -----------------------------------------------------------------------------------------------------
|
|
175
|
-
_findByFilenameInQueue(name) {
|
|
176
|
-
return this.queue.findIndex(value => value.filename === name) > -1;
|
|
177
|
-
}
|
|
178
|
-
getNotUploadedItems() {
|
|
179
|
-
return this.queue.filter((item) => item.state === SkUploaderFileItemStatus.WAIT);
|
|
180
|
-
}
|
|
181
|
-
getReadyItems() {
|
|
182
|
-
return this.queue.filter((item) => item.state === SkUploaderFileItemStatus.READY);
|
|
183
|
-
}
|
|
184
|
-
getDoneItems() {
|
|
185
|
-
return this.queue.filter((item) => item.state === SkUploaderFileItemStatus.DONE);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2stdXBsb2FkZXIuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zay1mcm9udC1saWIvdXBsb2FkZXIvc3JjL3NrLXVwbG9hZGVyLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBZSxNQUFNLHNCQUFzQixDQUFDO0FBQzNGLE9BQU8sRUFBQyxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRzFELE9BQU8sRUFBQyxRQUFRLEVBQUUsTUFBTSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFDLGtCQUFrQixFQUFFLHdCQUF3QixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFtQjNGLE1BQU0sT0FBTyxjQUFjO0lBZXZCLFlBQW9CLFVBQXdCLEVBQUUsT0FBK0IsRUFBRSxnQkFBMEIsRUFBRTtRQUF2RixlQUFVLEdBQVYsVUFBVSxDQUFjO1FBYnJDLFVBQUssR0FBeUIsRUFBRSxDQUFDO1FBQ2pDLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFJYixZQUFPLEdBQTBCO1lBQ3BDLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLE9BQU8sRUFBRSxFQUFFO1lBQ1gsV0FBVyxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUk7WUFDbkMsVUFBVSxFQUFFLENBQUM7WUFDYixVQUFVLEVBQUUsQ0FBQztTQUNoQixDQUFDO1FBR0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELHdHQUF3RztJQUN4RyxrQkFBa0I7SUFDbEIsd0dBQXdHO0lBR3hHLHdHQUF3RztJQUN4Ryw4QkFBOEI7SUFDOUIsd0dBQXdHO0lBRWpHLFVBQVUsQ0FBQyxPQUE4QjtRQUM1QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVwRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBRWpGLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7U0FDaEY7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFO1lBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1NBQ2hGO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRTtZQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztTQUNoRjtJQUNMLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxLQUFlO1FBQ25DLE1BQU0sS0FBSyxHQUF5QixLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQTJCLEVBQUUsT0FBbUM7UUFDOUUsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVqRCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2pCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3RHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3pCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxJQUF3QjtRQUMzQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTlFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLFVBQVU7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUF3QjtRQUNsQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTSxTQUFTO1FBQ1osTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDL0MsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN2QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2xFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDL0I7U0FDSjtJQUNMLENBQUM7SUFFRCx3R0FBd0c7SUFDeEcscUJBQXFCO0lBQ3JCLHdHQUF3RztJQUVoRyxjQUFjO1FBQ2xCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFDNUMsTUFBTSxPQUFPLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUNuRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELHdHQUF3RztJQUN4Ryx1QkFBdUI7SUFDdkIsd0dBQXdHO0lBRTlGLFlBQVksQ0FBQyxJQUF3QixFQUFFLE9BQXlCLEVBQUUsT0FBOEI7UUFDdEcsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNCLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFzQixFQUFFLEVBQUU7WUFDckUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDeEIsT0FBTyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVTLFdBQVcsQ0FBQyxPQUFrQztRQUNwRCxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztTQUMvQjtRQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN4QixPQUFPLE9BQU8sQ0FBQztTQUNsQjtRQUNELElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO1lBQzdCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDeEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87aUJBQ3RCLE1BQU0sQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNuRTtRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDaEMsQ0FBQztJQUVTLGlCQUFpQjtRQUN2QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUNoRyxDQUFDO0lBRU0sZUFBZSxDQUFDLElBQXdCO1FBQzNDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBRU0sZUFBZSxDQUFDLElBQXdCO1FBQzNDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRU0sZUFBZSxDQUFDLElBQXdCO1FBQzNDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZTtZQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNILENBQUM7SUFFRCx3R0FBd0c7SUFDeEcsZ0NBQWdDO0lBQ2hDLHdHQUF3RztJQUVoRyxjQUFjLENBQUMsSUFBd0I7UUFDM0MsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLHdCQUF3QixDQUFDLEtBQUssRUFBRTtZQUMvQyxPQUFPO1NBQ1Y7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXZELE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxDQUFNLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsR0FBRywwQkFBMEIsRUFBRSxRQUFRLEVBQUU7WUFDM0csY0FBYyxFQUFFLElBQUk7WUFDcEIsT0FBTyxFQUFFLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDO1NBQ3JILENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFTLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDNUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1IsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFO2dCQUNoQixLQUFLLGFBQWEsQ0FBQyxjQUFjO29CQUM3QiwrQkFBK0I7b0JBQy9CLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNoRSxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQztvQkFFNUIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRTt3QkFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyx3QkFBd0IsQ0FBQyxPQUFPLENBQUM7cUJBQ2pEO3lCQUFNO3dCQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsd0JBQXdCLENBQUMsU0FBUyxDQUFDO3FCQUNuRDtvQkFDRCxPQUFPO2dCQUNYLEtBQUssYUFBYSxDQUFDLFFBQVE7b0JBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsd0JBQXdCLENBQUMsSUFBSSxDQUFDO29CQUMzQyxPQUFPO2dCQUNYO29CQUNJLE9BQU87YUFDZDtRQUNMLENBQUMsQ0FBQyxFQUNGLElBQUksRUFBRSxFQUFFLDRDQUE0QztRQUNwRCxHQUFHLENBQUMsQ0FBQyxNQUF5QixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQzFGLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyx3QkFBd0IsQ0FBQyxLQUFLLENBQUM7WUFDNUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQ0wsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDakIsSUFBSSxNQUFNLFlBQVksTUFBTSxFQUFFO2dCQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQzthQUN4QjtZQUVELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkMsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM3QjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQVNELHdHQUF3RztJQUN4RyxrQkFBa0I7SUFDbEIsd0dBQXdHO0lBRWhHLHNCQUFzQixDQUFDLElBQVk7UUFDdkMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVNLG1CQUFtQjtRQUN0QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBd0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6RyxDQUFDO0lBRU0sYUFBYTtRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBd0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRyxDQUFDO0lBRU0sWUFBWTtRQUNmLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUF3QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pHLENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cEV2ZW50VHlwZSwgSHR0cEhlYWRlcnMsIEh0dHBSZXF1ZXN0LCBIdHRwUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7b2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBsYXN0LCBtYXAsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1NrQXBpU2VydmljZX0gZnJvbSAnc2stZnJvbnQtbGliL2FwaSc7XG5pbXBvcnQge0ZpbGVUeXBlLCBTa0ZpbGV9IGZyb20gJ3NrLWZyb250LWxpYi9tb2RlbCc7XG5pbXBvcnQge1NrVXBsb2FkZXJGaWxlSXRlbSwgU2tVcGxvYWRlckZpbGVJdGVtU3RhdHVzfSBmcm9tICcuL3NrLXVwbG9hZGVyLWZpbGUtaXRlbS5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyRnVuY3Rpb24ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBmbjogKGl0ZW0/OiBTa1VwbG9hZGVyRmlsZUl0ZW0sIG9wdGlvbnM/OiBTa0ZpbGVVcGxvYWRlck9wdGlvbnMpID0+IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2tGaWxlVXBsb2FkZXJPcHRpb25zIHtcbiAgICBhbGxvd2VkTWltZVR5cGU/OiBzdHJpbmdbXTtcbiAgICBhbGxvd2VkRmlsZVR5cGU/OiBzdHJpbmdbXTtcbiAgICBhdXRvVXBsb2FkPzogYm9vbGVhbjtcbiAgICBmaWx0ZXJzPzogRmlsdGVyRnVuY3Rpb25bXTtcbiAgICBtYXhGaWxlU2l6ZT86IG51bWJlcjtcbiAgICBxdWV1ZUxpbWl0PzogbnVtYmVyO1xuICAgIGFzeW5jTGltaXQ/OiBudW1iZXI7XG4gICAgYWRkaXRpb25hbFBhcmFtZXRlcj86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG4gICAgcGFyYW1ldGVyc0JlZm9yZUZpbGVzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFNrRmlsZVVwbG9hZGVyIHtcblxuICAgIHB1YmxpYyBxdWV1ZTogU2tVcGxvYWRlckZpbGVJdGVtW10gPSBbXTtcbiAgICBwdWJsaWMgcHJvZ3Jlc3MgPSAwO1xuXG4gICAgcHJpdmF0ZSBfZmFpbEZpbHRlckluZGV4OiBudW1iZXI7XG5cbiAgICBwdWJsaWMgb3B0aW9uczogU2tGaWxlVXBsb2FkZXJPcHRpb25zID0ge1xuICAgICAgICBhdXRvVXBsb2FkOiBmYWxzZSxcbiAgICAgICAgZmlsdGVyczogW10sXG4gICAgICAgIG1heEZpbGVTaXplOiAyICogMTAyNCAqIDEwMjQgKiAxMDI0LCAvLyAyR0JcbiAgICAgICAgcXVldWVMaW1pdDogMSxcbiAgICAgICAgYXN5bmNMaW1pdDogMixcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGlTZXJ2aWNlOiBTa0FwaVNlcnZpY2UsIG9wdGlvbnM/OiBTa0ZpbGVVcGxvYWRlck9wdGlvbnMsIHNlbGVjdGVkRmlsZXM6IFNrRmlsZVtdID0gW10pIHtcbiAgICAgICAgdGhpcy5zZXRPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICB0aGlzLnNldFNlbGVjdGVkRmlsZXMoc2VsZWN0ZWRGaWxlcyk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBAIERhdGEgQWNjZXNzb3JcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIEAgVXBsb2FkZXIgLSBQdWJsaWMgbWV0aG9kc1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgc2V0T3B0aW9ucyhvcHRpb25zOiBTa0ZpbGVVcGxvYWRlck9wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbih0aGlzLm9wdGlvbnMsIG9wdGlvbnMpO1xuXG4gICAgICAgIHRoaXMub3B0aW9ucy5maWx0ZXJzLnVuc2hpZnQoeyBuYW1lOiAncXVldWVMaW1pdCcsIGZuOiB0aGlzLl9xdWV1ZUxpbWl0RmlsdGVyIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMubWF4RmlsZVNpemUpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5maWx0ZXJzLnVuc2hpZnQoeyBuYW1lOiAnZmlsZVNpemUnLCBmbjogdGhpcy5fZmlsZVNpemVGaWx0ZXIgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmFsbG93ZWRGaWxlVHlwZSkge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLmZpbHRlcnMudW5zaGlmdCh7IG5hbWU6ICdmaWxlVHlwZScsIGZuOiB0aGlzLl9maWxlVHlwZUZpbHRlciB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYWxsb3dlZE1pbWVUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMuZmlsdGVycy51bnNoaWZ0KHsgbmFtZTogJ21pbWVUeXBlJywgZm46IHRoaXMuX21pbWVUeXBlRmlsdGVyIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNldFNlbGVjdGVkRmlsZXMoZmlsZXM6IFNrRmlsZVtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGl0ZW1zOiBTa1VwbG9hZGVyRmlsZUl0ZW1bXSA9IGZpbGVzLm1hcChmaWxlID0+IFNrVXBsb2FkZXJGaWxlSXRlbS5mcm9tQXBpKGZpbGUpKTtcbiAgICAgICAgdGhpcy5hZGRUb1F1ZXVlKGl0ZW1zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkVG9RdWV1ZShmaWxlczogU2tVcGxvYWRlckZpbGVJdGVtW10sIGZpbHRlcnM/OiBGaWx0ZXJGdW5jdGlvbltdIHwgc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFycmF5T2ZGaWx0ZXJzID0gdGhpcy5fZ2V0RmlsdGVycyhmaWx0ZXJzKTtcblxuICAgICAgICBmaWxlcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2lzVmFsaWRGaWxlKGl0ZW0sIGFycmF5T2ZGaWx0ZXJzLCB0aGlzLm9wdGlvbnMpICYmICF0aGlzLl9maW5kQnlGaWxlbmFtZUluUXVldWUoaXRlbS5maWxlbmFtZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnF1ZXVlLnB1c2goaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudXBkYXRlUHJvZ3Jlc3MoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlRnJvbVF1ZXVlKGZpbGU6IFNrVXBsb2FkZXJGaWxlSXRlbSk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMucXVldWUuZmluZEluZGV4KHZhbHVlID0+IHZhbHVlLmZpbGVuYW1lID09PSBmaWxlLmZpbGVuYW1lKTtcblxuICAgICAgICB0aGlzLnF1ZXVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIHRoaXMudXBkYXRlUHJvZ3Jlc3MoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJRdWV1ZSgpOiB2b2lkIHtcbiAgICAgICAgd2hpbGUgKHRoaXMucXVldWUubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZUZyb21RdWV1ZSh0aGlzLnF1ZXVlWzBdKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByb2dyZXNzID0gMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBsb2FkKGl0ZW06IFNrVXBsb2FkZXJGaWxlSXRlbSkge1xuICAgICAgICB0aGlzLl9wcm9jZXNzVXBsb2FkKGl0ZW0pO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGxvYWRBbGwoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhcmdldEl0ZW1zID0gdGhpcy5nZXROb3RVcGxvYWRlZEl0ZW1zKCk7XG4gICAgICAgIHRhcmdldEl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBpdGVtLnByZXBhcmVVcGxvYWQoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRhcmdldEl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IG1heCA9IE1hdGgubWluKHRhcmdldEl0ZW1zLmxlbmd0aCwgdGhpcy5vcHRpb25zLmFzeW5jTGltaXQpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXg7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkKHRhcmdldEl0ZW1zW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gQCBQcml2YXRlIG1ldGhvZHMuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByaXZhdGUgdXBkYXRlUHJvZ3Jlc3MoKSB7XG4gICAgICAgIGNvbnN0IHVwbG9hZGVkID0gdGhpcy5nZXREb25lSXRlbXMoKS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSB1cGxvYWRlZCAvIHRoaXMucXVldWUubGVuZ3RoICogMTAwO1xuICAgICAgICB0aGlzLnByb2dyZXNzID0gTWF0aC5jZWlsKGN1cnJlbnQpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gQCBVcGxvYWRlciAtIEZpbHRlcnNcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIF9pc1ZhbGlkRmlsZShmaWxlOiBTa1VwbG9hZGVyRmlsZUl0ZW0sIGZpbHRlcnM6IEZpbHRlckZ1bmN0aW9uW10sIG9wdGlvbnM6IFNrRmlsZVVwbG9hZGVyT3B0aW9ucyk6IGJvb2xlYW4ge1xuICAgICAgICB0aGlzLl9mYWlsRmlsdGVySW5kZXggPSAtMTtcbiAgICAgICAgcmV0dXJuICFmaWx0ZXJzLmxlbmd0aCA/IHRydWUgOiBmaWx0ZXJzLmV2ZXJ5KChmaWx0ZXI6IEZpbHRlckZ1bmN0aW9uKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9mYWlsRmlsdGVySW5kZXgrKztcbiAgICAgICAgICAgIHJldHVybiBmaWx0ZXIuZm4uY2FsbCh0aGlzLCBmaWxlLCBvcHRpb25zKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9nZXRGaWx0ZXJzKGZpbHRlcnM6IEZpbHRlckZ1bmN0aW9uW10gfCBzdHJpbmcpOiBGaWx0ZXJGdW5jdGlvbltdIHtcbiAgICAgICAgaWYgKCFmaWx0ZXJzKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmZpbHRlcnM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsdGVycykpIHtcbiAgICAgICAgICAgIHJldHVybiBmaWx0ZXJzO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgZmlsdGVycyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWVzID0gZmlsdGVycy5tYXRjaCgvW15cXHMsXSsvZyk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmZpbHRlcnNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChmaWx0ZXI6IGFueSkgPT4gbmFtZXMuaW5kZXhPZihmaWx0ZXIubmFtZSkgIT09IC0xKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmZpbHRlcnM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9xdWV1ZUxpbWl0RmlsdGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLnF1ZXVlTGltaXQgPT09IHVuZGVmaW5lZCB8fCB0aGlzLnF1ZXVlLmxlbmd0aCA8IHRoaXMub3B0aW9ucy5xdWV1ZUxpbWl0O1xuICAgIH1cblxuICAgIHB1YmxpYyBfbWltZVR5cGVGaWx0ZXIoaXRlbTogU2tVcGxvYWRlckZpbGVJdGVtKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhKHRoaXMub3B0aW9ucy5hbGxvd2VkTWltZVR5cGUgJiYgdGhpcy5vcHRpb25zLmFsbG93ZWRNaW1lVHlwZS5pbmRleE9mKGl0ZW0ubWltZSkgPT09IC0xKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgX2ZpbGVTaXplRmlsdGVyKGl0ZW06IFNrVXBsb2FkZXJGaWxlSXRlbSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISh0aGlzLm9wdGlvbnMubWF4RmlsZVNpemUgJiYgaXRlbS5zaXplID4gdGhpcy5vcHRpb25zLm1heEZpbGVTaXplKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgX2ZpbGVUeXBlRmlsdGVyKGl0ZW06IFNrVXBsb2FkZXJGaWxlSXRlbSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISh0aGlzLm9wdGlvbnMuYWxsb3dlZEZpbGVUeXBlICYmXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMuYWxsb3dlZEZpbGVUeXBlLmluZGV4T2YoRmlsZVR5cGUuZ2V0TWltZUNsYXNzKGl0ZW0ubG9jYWxGaWxlID8gaXRlbS5sb2NhbEZpbGUgOiBpdGVtLnNrRmlsZSkpID09PSAtMSk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBAIFVwbG9hZGVyIC0gVXBsb2FkIGJpeiBsb2dpY1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcml2YXRlIF9wcm9jZXNzVXBsb2FkKGl0ZW06IFNrVXBsb2FkZXJGaWxlSXRlbSkge1xuICAgICAgICBpZiAoaXRlbS5zdGF0ZSAhPT0gU2tVcGxvYWRlckZpbGVJdGVtU3RhdHVzLlJFQURZKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBpdGVtLmxvY2FsRmlsZSwgaXRlbS5maWxlbmFtZSk7XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBIdHRwUmVxdWVzdDxhbnk+KCdQT1NUJywgdGhpcy5hcGlTZXJ2aWNlLmFwaVNlcnZlciArICcvYXBpL3B1YmxpYy9maWxlcy91cGxvYWQnLCBmb3JtRGF0YSwge1xuICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXG4gICAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0F1dGhvcml6YXRpb24nLCAnQmVhcmVyICcgKyB0aGlzLmFwaVNlcnZpY2UuZ2V0VG9rZW4oKSkuc2V0KCduZ3N3LWJ5cGFzcycsICd0cnVlJylcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5hcGlTZXJ2aWNlLnJhd1JlcXVlc3Q8U2tGaWxlPihyZXF1ZXN0KS5waXBlKFxuICAgICAgICAgICAgdGFwKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzOlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ29tcHV0ZSBhbmQgc2hvdyB0aGUgJSBkb25lOlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGVyY2VudERvbmUgPSBNYXRoLmNlaWwoMTAwICogZXZlbnQubG9hZGVkIC8gZXZlbnQudG90YWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5wcm9ncmVzcyA9IHBlcmNlbnREb25lO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5wcm9ncmVzcyA+PSA5OSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uc3RhdGUgPSBTa1VwbG9hZGVyRmlsZUl0ZW1TdGF0dXMuUFJPQ0VTUztcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5zdGF0ZSA9IFNrVXBsb2FkZXJGaWxlSXRlbVN0YXR1cy5VUExPQURJTkc7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5SZXNwb25zZTpcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uc3RhdGUgPSBTa1VwbG9hZGVyRmlsZUl0ZW1TdGF0dXMuRE9ORTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGxhc3QoKSwgLy8gcmV0dXJuIGxhc3QgKGNvbXBsZXRlZCkgbWVzc2FnZSB0byBjYWxsZXJcbiAgICAgICAgICAgIG1hcCgocmVzdWx0OiBIdHRwUmVzcG9uc2U8YW55PikgPT4gcmVzdWx0LmJvZHkuZGF0YSA/IG5ldyBTa0ZpbGUocmVzdWx0LmJvZHkuZGF0YSkgOiBudWxsKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgIGl0ZW0uc3RhdGUgPSBTa1VwbG9hZGVyRmlsZUl0ZW1TdGF0dXMuRVJST1I7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBTa0ZpbGUpIHtcbiAgICAgICAgICAgICAgICBpdGVtLnNrRmlsZSA9IHJlc3VsdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy51cGRhdGVQcm9ncmVzcygpO1xuICAgICAgICAgICAgY29uc3QgbmV4dEl0ZW1zID0gdGhpcy5nZXRSZWFkeUl0ZW1zKCk7XG4gICAgICAgICAgICBpZiAobmV4dEl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZChuZXh0SXRlbXNbMF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cblxuXG5cblxuXG5cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gQCBEYXRhIEhhbmRsZXJzXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByaXZhdGUgX2ZpbmRCeUZpbGVuYW1lSW5RdWV1ZShuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVldWUuZmluZEluZGV4KHZhbHVlID0+IHZhbHVlLmZpbGVuYW1lID09PSBuYW1lKSA+IC0xO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXROb3RVcGxvYWRlZEl0ZW1zKCk6IFNrVXBsb2FkZXJGaWxlSXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVldWUuZmlsdGVyKChpdGVtOiBTa1VwbG9hZGVyRmlsZUl0ZW0pID0+IGl0ZW0uc3RhdGUgPT09IFNrVXBsb2FkZXJGaWxlSXRlbVN0YXR1cy5XQUlUKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UmVhZHlJdGVtcygpOiBTa1VwbG9hZGVyRmlsZUl0ZW1bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXVlLmZpbHRlcigoaXRlbTogU2tVcGxvYWRlckZpbGVJdGVtKSA9PiBpdGVtLnN0YXRlID09PSBTa1VwbG9hZGVyRmlsZUl0ZW1TdGF0dXMuUkVBRFkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREb25lSXRlbXMoKTogU2tVcGxvYWRlckZpbGVJdGVtW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5xdWV1ZS5maWx0ZXIoKGl0ZW06IFNrVXBsb2FkZXJGaWxlSXRlbSkgPT4gaXRlbS5zdGF0ZSA9PT0gU2tVcGxvYWRlckZpbGVJdGVtU3RhdHVzLkRPTkUpO1xuICAgIH1cblxufVxuIl19
|