@ngageoint/mage.web-core-lib 6.6.1 → 6.6.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/angular-cli/builders/fesm-amd.js +64 -36
- package/angular-cli/builders/fesm-amd.js.map +1 -1
- package/angular-cli/schematics/plugin-library/index.js.map +1 -1
- package/common/xhr-img.component.d.ts +1 -1
- package/{esm2020 → esm2022}/common/mage-common.module.mjs +5 -5
- package/esm2022/common/xhr-img.component.mjs +105 -0
- package/esm2022/feed/feed.service.mjs +105 -0
- package/{esm2020 → esm2022}/mage-core-lib.module.mjs +5 -5
- package/esm2022/paging/paging.cdk-data-source.adapter.mjs +52 -0
- package/esm2022/paging/paging.model.mjs +25 -0
- package/esm2022/static-icon/static-icon-form-field/static-icon-form-field.component.mjs +146 -0
- package/esm2022/static-icon/static-icon-img/static-icon-img.component.mjs +36 -0
- package/{esm2020 → esm2022}/static-icon/static-icon-select/static-icon-select.component.mjs +16 -15
- package/esm2022/static-icon/static-icon.model.mjs +10 -0
- package/esm2022/static-icon/static-icon.module.mjs +54 -0
- package/esm2022/static-icon/static-icon.service.mjs +82 -0
- package/esm2022/user/user-read.service.mjs +34 -0
- package/esm2022/user/user-select/user-select.component.mjs +159 -0
- package/esm2022/user/user.module.mjs +64 -0
- package/feed/feed.model.d.ts +3 -3
- package/feed/feed.model.d.ts.map +1 -1
- package/{fesm2020 → fesm2022}/ngageoint-mage.web-core-lib-common.mjs +21 -20
- package/{fesm2020 → fesm2022}/ngageoint-mage.web-core-lib-common.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/ngageoint-mage.web-core-lib-feed.mjs +4 -4
- package/{fesm2015 → fesm2022}/ngageoint-mage.web-core-lib-feed.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/ngageoint-mage.web-core-lib-paging.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/ngageoint-mage.web-core-lib-static-icon.mjs +61 -58
- package/fesm2022/ngageoint-mage.web-core-lib-static-icon.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/ngageoint-mage.web-core-lib-user.mjs +45 -45
- package/fesm2022/ngageoint-mage.web-core-lib-user.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/ngageoint-mage.web-core-lib.mjs +4 -4
- package/{fesm2015 → fesm2022}/ngageoint-mage.web-core-lib.mjs.map +1 -1
- package/package.json +26 -46
- package/static-icon/static-icon-form-field/static-icon-form-field.component.d.ts +1 -1
- package/static-icon/static-icon-img/static-icon-img.component.d.ts +1 -1
- package/static-icon/static-icon-select/static-icon-select.component.d.ts +1 -1
- package/static-icon/static-icon.model.d.ts +1 -1
- package/static-icon/static-icon.model.d.ts.map +1 -1
- package/user/user-read.service.d.ts +1 -1
- package/user/user-read.service.d.ts.map +1 -1
- package/user/user-select/user-select.component.d.ts +1 -1
- package/angular-cli/README.md +0 -30
- package/esm2020/common/xhr-img.component.mjs +0 -104
- package/esm2020/feed/feed.service.mjs +0 -105
- package/esm2020/paging/paging.cdk-data-source.adapter.mjs +0 -52
- package/esm2020/paging/paging.model.mjs +0 -25
- package/esm2020/static-icon/static-icon-form-field/static-icon-form-field.component.mjs +0 -145
- package/esm2020/static-icon/static-icon-img/static-icon-img.component.mjs +0 -35
- package/esm2020/static-icon/static-icon.model.mjs +0 -10
- package/esm2020/static-icon/static-icon.module.mjs +0 -54
- package/esm2020/static-icon/static-icon.service.mjs +0 -82
- package/esm2020/user/user-read.service.mjs +0 -34
- package/esm2020/user/user-select/user-select.component.mjs +0 -159
- package/esm2020/user/user.module.mjs +0 -64
- package/fesm2015/ngageoint-mage.web-core-lib-common.mjs +0 -142
- package/fesm2015/ngageoint-mage.web-core-lib-common.mjs.map +0 -1
- package/fesm2015/ngageoint-mage.web-core-lib-feed.mjs +0 -114
- package/fesm2015/ngageoint-mage.web-core-lib-paging.mjs.map +0 -1
- package/fesm2015/ngageoint-mage.web-core-lib-static-icon.mjs +0 -392
- package/fesm2015/ngageoint-mage.web-core-lib-static-icon.mjs.map +0 -1
- package/fesm2015/ngageoint-mage.web-core-lib-user.mjs +0 -273
- package/fesm2015/ngageoint-mage.web-core-lib-user.mjs.map +0 -1
- package/fesm2015/ngageoint-mage.web-core-lib.mjs +0 -32
- package/fesm2020/ngageoint-mage.web-core-lib-event.mjs +0 -10
- package/fesm2020/ngageoint-mage.web-core-lib-event.mjs.map +0 -1
- package/fesm2020/ngageoint-mage.web-core-lib-feed.mjs.map +0 -1
- package/fesm2020/ngageoint-mage.web-core-lib-paging.mjs +0 -83
- package/fesm2020/ngageoint-mage.web-core-lib-plugin.mjs +0 -4
- package/fesm2020/ngageoint-mage.web-core-lib-plugin.mjs.map +0 -1
- package/fesm2020/ngageoint-mage.web-core-lib-static-icon.mjs.map +0 -1
- package/fesm2020/ngageoint-mage.web-core-lib-user.mjs.map +0 -1
- package/fesm2020/ngageoint-mage.web-core-lib.mjs.map +0 -1
- /package/{esm2020 → esm2022}/common/ngageoint-mage.web-core-lib-common.mjs +0 -0
- /package/{esm2020 → esm2022}/common/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/event/event-read.service.mjs +0 -0
- /package/{esm2020 → esm2022}/event/event.model.mjs +0 -0
- /package/{esm2020 → esm2022}/event/ngageoint-mage.web-core-lib-event.mjs +0 -0
- /package/{esm2020 → esm2022}/event/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/feed/feed.model.mjs +0 -0
- /package/{esm2020 → esm2022}/feed/ngageoint-mage.web-core-lib-feed.mjs +0 -0
- /package/{esm2020 → esm2022}/feed/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/ngageoint-mage.web-core-lib.mjs +0 -0
- /package/{esm2020 → esm2022}/paging/ngageoint-mage.web-core-lib-paging.mjs +0 -0
- /package/{esm2020 → esm2022}/paging/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/plugin/ngageoint-mage.web-core-lib-plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugin/plugin.model.mjs +0 -0
- /package/{esm2020 → esm2022}/plugin/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/static-icon/ngageoint-mage.web-core-lib-static-icon.mjs +0 -0
- /package/{esm2020 → esm2022}/static-icon/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/user/ngageoint-mage.web-core-lib-user.mjs +0 -0
- /package/{esm2020 → esm2022}/user/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/user/user.model.mjs +0 -0
- /package/{fesm2015 → fesm2022}/ngageoint-mage.web-core-lib-event.mjs +0 -0
- /package/{fesm2015 → fesm2022}/ngageoint-mage.web-core-lib-event.mjs.map +0 -0
- /package/{fesm2015 → fesm2022}/ngageoint-mage.web-core-lib-paging.mjs +0 -0
- /package/{fesm2015 → fesm2022}/ngageoint-mage.web-core-lib-plugin.mjs +0 -0
- /package/{fesm2015 → fesm2022}/ngageoint-mage.web-core-lib-plugin.mjs.map +0 -0
|
@@ -3,39 +3,63 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const path = require("path");
|
|
4
4
|
const build_angular_1 = require("@angular-devkit/build-angular");
|
|
5
5
|
const architect_1 = require("@angular-devkit/architect");
|
|
6
|
-
const rxjs_1 = require("rxjs");
|
|
7
6
|
const rollup_1 = require("rollup");
|
|
8
7
|
const discover_packages_1 = require("ng-packagr/lib/ng-package/discover-packages");
|
|
9
8
|
const plugin_node_resolve_1 = require("@rollup/plugin-node-resolve");
|
|
10
9
|
const plugin_commonjs_1 = require("@rollup/plugin-commonjs");
|
|
11
10
|
const promises_1 = require("fs/promises");
|
|
12
|
-
function
|
|
13
|
-
return
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
11
|
+
function firstValueFromSubscribable(source) {
|
|
12
|
+
return new Promise((resolve, reject) => {
|
|
13
|
+
let done = false;
|
|
14
|
+
let subscription;
|
|
15
|
+
subscription = source.subscribe((value) => {
|
|
16
|
+
if (done)
|
|
17
|
+
return;
|
|
18
|
+
done = true;
|
|
19
|
+
if (subscription && typeof subscription.unsubscribe === 'function') {
|
|
20
|
+
subscription.unsubscribe();
|
|
21
|
+
}
|
|
22
|
+
resolve(value);
|
|
23
|
+
}, (err) => {
|
|
24
|
+
if (done)
|
|
25
|
+
return;
|
|
26
|
+
done = true;
|
|
27
|
+
reject(err);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
async function ngPackagrThenAmd(options, context) {
|
|
32
|
+
let ngPackagrResult;
|
|
33
|
+
try {
|
|
34
|
+
ngPackagrResult = await firstValueFromSubscribable((0, build_angular_1.executeNgPackagrBuilder)(options, context));
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
const message = err instanceof Error ? err.stack || err.message : String(err);
|
|
38
|
+
context.logger.error(message);
|
|
39
|
+
return {
|
|
40
|
+
success: false,
|
|
41
|
+
error: message
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
if (ngPackagrResult.error) {
|
|
45
|
+
context.logger.error(ngPackagrResult.error);
|
|
46
|
+
}
|
|
47
|
+
if (!ngPackagrResult.success) {
|
|
48
|
+
return ngPackagrResult;
|
|
49
|
+
}
|
|
50
|
+
const buildInfo = await resolveBuildInfo(options, context);
|
|
51
|
+
const rollupResult = await rollupFesmToAmd(buildInfo);
|
|
52
|
+
if (!rollupResult.success) {
|
|
53
|
+
return rollupResult;
|
|
54
|
+
}
|
|
55
|
+
return await writeDistPackageJson(buildInfo);
|
|
32
56
|
}
|
|
33
57
|
async function resolveBuildInfo(options, context) {
|
|
34
58
|
const root = context.workspaceRoot;
|
|
35
59
|
const ngPackagePath = path.resolve(root, options.project);
|
|
36
60
|
const packages = await (0, discover_packages_1.discoverPackages)({ project: ngPackagePath });
|
|
37
61
|
const destDir = packages.dest;
|
|
38
|
-
const
|
|
62
|
+
const fesm2022Path = packages.primary.destinationFiles.fesm2022;
|
|
39
63
|
const amdName = `${packages.primary.flatModuleFile}.amd.js`;
|
|
40
64
|
const amdPath = path.resolve(destDir, amdName);
|
|
41
65
|
return {
|
|
@@ -44,20 +68,20 @@ async function resolveBuildInfo(options, context) {
|
|
|
44
68
|
packages,
|
|
45
69
|
ngPackagePath,
|
|
46
70
|
destDir,
|
|
47
|
-
|
|
48
|
-
amdName
|
|
49
|
-
amdPath
|
|
71
|
+
fesm2022Path,
|
|
72
|
+
amdName,
|
|
73
|
+
amdPath
|
|
50
74
|
};
|
|
51
75
|
}
|
|
52
76
|
async function rollupFesmToAmd(buildInfo) {
|
|
53
|
-
const { context,
|
|
54
|
-
context.logger.info(`rolling
|
|
55
|
-
|
|
77
|
+
const { context, fesm2022Path, amdPath } = buildInfo;
|
|
78
|
+
context.logger.info(`rolling FESM2022 to AMD ${JSON.stringify({
|
|
79
|
+
fesm2022Path,
|
|
56
80
|
amdPath
|
|
57
81
|
}, null, 2)}`);
|
|
58
82
|
try {
|
|
59
83
|
const roller = await (0, rollup_1.rollup)({
|
|
60
|
-
input:
|
|
84
|
+
input: fesm2022Path,
|
|
61
85
|
plugins: [
|
|
62
86
|
(0, plugin_node_resolve_1.nodeResolve)({
|
|
63
87
|
resolveOnly: moduleId => {
|
|
@@ -70,7 +94,7 @@ async function rollupFesmToAmd(buildInfo) {
|
|
|
70
94
|
preferBuiltins: false
|
|
71
95
|
}),
|
|
72
96
|
(0, plugin_commonjs_1.default)()
|
|
73
|
-
]
|
|
97
|
+
]
|
|
74
98
|
});
|
|
75
99
|
const rolled = await roller.write({
|
|
76
100
|
format: 'amd',
|
|
@@ -79,16 +103,15 @@ async function rollupFesmToAmd(buildInfo) {
|
|
|
79
103
|
for (const rollOut of rolled.output) {
|
|
80
104
|
context.logger.info(`rolled ${rollOut.name} ${rollOut.type} ${rollOut.fileName}`);
|
|
81
105
|
}
|
|
82
|
-
return {
|
|
83
|
-
success: true
|
|
84
|
-
};
|
|
106
|
+
return { success: true };
|
|
85
107
|
}
|
|
86
108
|
catch (err) {
|
|
87
|
-
|
|
109
|
+
const message = err instanceof Error ? err.stack || err.message : String(err);
|
|
110
|
+
context.logger.error('error creating amd module from fesm: ' + message);
|
|
88
111
|
console.error(err);
|
|
89
112
|
return {
|
|
90
113
|
success: false,
|
|
91
|
-
error:
|
|
114
|
+
error: message
|
|
92
115
|
};
|
|
93
116
|
}
|
|
94
117
|
}
|
|
@@ -104,7 +127,12 @@ async function writeDistPackageJson(buildInfo) {
|
|
|
104
127
|
await (0, promises_1.writeFile)(distPkgPath, distPkgContent);
|
|
105
128
|
}
|
|
106
129
|
catch (err) {
|
|
107
|
-
|
|
130
|
+
const message = err instanceof Error ? err.stack || err.message : String(err);
|
|
131
|
+
buildInfo.context.logger.error(`error writing dist package ${distPkgPath}: ${message}`);
|
|
132
|
+
return {
|
|
133
|
+
success: false,
|
|
134
|
+
error: message
|
|
135
|
+
};
|
|
108
136
|
}
|
|
109
137
|
return { success: true };
|
|
110
138
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fesm-amd.js","sourceRoot":"","sources":["../../../../projects/core-lib/angular-cli/builders/fesm-amd.ts"],"names":[],"mappings":";;AAAA,6BAA4B;AAC5B,iEAAuE;AACvE,yDAAwF;AACxF
|
|
1
|
+
{"version":3,"file":"fesm-amd.js","sourceRoot":"","sources":["../../../../projects/core-lib/angular-cli/builders/fesm-amd.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../projects/core-lib/angular-cli/schematics/plugin-library/index.ts"],"names":[],"mappings":";;;AAAA,2DAAkH;AAElH,qEAAuF;AACvF,qEAA0G;AAC1G,+DAAsF;AACtF,qGAAoG;AAEpG,mCAA6C;AAE7C,SAAS,yBAAyB,CAAC,OAA6B;IAC9D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;IACnC,IAAI,CAAC,SAAS,EAAE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../projects/core-lib/angular-cli/schematics/plugin-library/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,6 +54,6 @@ export declare class XhrImgComponent implements OnChanges, OnDestroy {
|
|
|
54
54
|
onImgLoad(): void;
|
|
55
55
|
private disposeCurrent;
|
|
56
56
|
static ɵfac: i0.ɵɵFactoryDeclaration<XhrImgComponent, never>;
|
|
57
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<XhrImgComponent, "mage-xhr-img", never, { "sourceUrl": "src"; }, {}, never, never, false>;
|
|
57
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<XhrImgComponent, "mage-xhr-img", never, { "sourceUrl": { "alias": "src"; "required": false; }; }, {}, never, never, false, never>;
|
|
58
58
|
}
|
|
59
59
|
//# sourceMappingURL=xhr-img.component.d.ts.map
|
|
@@ -3,11 +3,11 @@ import { XhrImgComponent } from './xhr-img.component';
|
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class MageCommonModule {
|
|
6
|
+
static { this.ɵfac = function MageCommonModule_Factory(t) { return new (t || MageCommonModule)(); }; }
|
|
7
|
+
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MageCommonModule }); }
|
|
8
|
+
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule] }); }
|
|
6
9
|
}
|
|
7
|
-
|
|
8
|
-
MageCommonModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MageCommonModule });
|
|
9
|
-
MageCommonModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule] });
|
|
10
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MageCommonModule, [{
|
|
10
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MageCommonModule, [{
|
|
11
11
|
type: NgModule,
|
|
12
12
|
args: [{
|
|
13
13
|
imports: [
|
|
@@ -22,4 +22,4 @@ MageCommonModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonM
|
|
|
22
22
|
}]
|
|
23
23
|
}], null, null); })();
|
|
24
24
|
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MageCommonModule, { declarations: [XhrImgComponent], imports: [CommonModule], exports: [XhrImgComponent] }); })();
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnZS1jb21tb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1saWIvY29tbW9uL21hZ2UtY29tbW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7O0FBYTlDLE1BQU0sT0FBTyxnQkFBZ0I7aUZBQWhCLGdCQUFnQjttRUFBaEIsZ0JBQWdCO3VFQVR6QixZQUFZOztpRkFTSCxnQkFBZ0I7Y0FYNUIsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO2lCQUNiO2dCQUNELFlBQVksRUFBRTtvQkFDWixlQUFlO2lCQUNoQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsZUFBZTtpQkFDaEI7YUFDRjs7d0ZBQ1ksZ0JBQWdCLG1CQU56QixlQUFlLGFBSGYsWUFBWSxhQU1aLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBYaHJJbWdDb21wb25lbnQgfSBmcm9tICcuL3hoci1pbWcuY29tcG9uZW50J1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFhockltZ0NvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgWGhySW1nQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTWFnZUNvbW1vbk1vZHVsZSB7fSJdfQ==
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { Component, Inject, InjectionToken, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common/http";
|
|
4
|
+
import * as i2 from "@angular/platform-browser";
|
|
5
|
+
const selector = 'mage-xhr-img';
|
|
6
|
+
export const OBJECT_URL_SERVICE = new InjectionToken(`${selector}.objectUrlService`);
|
|
7
|
+
/**
|
|
8
|
+
* This component allows fetching images by `XMLHttpRequest` rather than the
|
|
9
|
+
* browser's native mechanism. These image requests are subject to HTTP
|
|
10
|
+
* interceptors that can add authorization headers to the request instead of
|
|
11
|
+
* using cache-defeating URL query parameters to set an auth token. Applying
|
|
12
|
+
* headers to the browser's native `img` requests is impossible, so a query
|
|
13
|
+
* parameter is necessary for authorization, but adding the parameter to the
|
|
14
|
+
* URL effectively bypasses the browser's caching mechanism when the auth token
|
|
15
|
+
* changes for images that
|
|
16
|
+
* should otherwise be subject to caching.
|
|
17
|
+
*
|
|
18
|
+
* The catch to fetching images by XHR is the response must be fetched as a
|
|
19
|
+
* `Blob`. The user then gets a browser-specific URL for the blob by
|
|
20
|
+
* `URL.createObjectURL(blob)`, which can then be assigned to the `src`
|
|
21
|
+
* attribute of an `img` tag. These blob URLs must then be "revoked" by
|
|
22
|
+
* `URL.revokeObjectURL(url)` in order to reclaim object URL's associated
|
|
23
|
+
* resources. See [Mozilla's docs](https://developer.mozilla.org/en-US/docs/Web/API/File/Using_files_from_web_applications#example_using_object_urls_to_display_images)
|
|
24
|
+
* on the subject.
|
|
25
|
+
*
|
|
26
|
+
* To use the component, simply add the tag to a template and bind the `src`
|
|
27
|
+
* attribute to the source URL of the desired image.
|
|
28
|
+
* ```
|
|
29
|
+
* <mage-xhr-img [src]="someComponent.imageUrlRequiresAuth"></mage-xhr-img>
|
|
30
|
+
* ```
|
|
31
|
+
* The component encapsulates the logic of creating and releasing the object
|
|
32
|
+
* URLs for the image data, preventing memory leaks.
|
|
33
|
+
*/
|
|
34
|
+
export class XhrImgComponent {
|
|
35
|
+
constructor(objectUrlService, webClient, sanitizer) {
|
|
36
|
+
this.objectUrlService = objectUrlService;
|
|
37
|
+
this.webClient = webClient;
|
|
38
|
+
this.sanitizer = sanitizer;
|
|
39
|
+
this.sourceUrl = null;
|
|
40
|
+
this.safeBlobUrl = null;
|
|
41
|
+
}
|
|
42
|
+
ngOnChanges(changes) {
|
|
43
|
+
if (!changes.sourceUrl) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (changes.sourceUrl.isFirstChange() && !this.sourceUrl) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
this.disposeCurrent();
|
|
50
|
+
if (!this.sourceUrl) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
this.subscription = this.webClient.get(this.sourceUrl, { responseType: 'blob' })
|
|
54
|
+
.subscribe(x => {
|
|
55
|
+
this.objectUrlService.revokeObjectURL(this.blobUrl);
|
|
56
|
+
this.blobUrl = this.objectUrlService.createObjectURL(x);
|
|
57
|
+
this.safeBlobUrl = this.sanitizer.bypassSecurityTrustUrl(this.blobUrl);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
ngOnDestroy() {
|
|
61
|
+
this.disposeCurrent();
|
|
62
|
+
}
|
|
63
|
+
onImgLoad() {
|
|
64
|
+
this.disposeCurrent();
|
|
65
|
+
}
|
|
66
|
+
disposeCurrent() {
|
|
67
|
+
if (this.blobUrl) {
|
|
68
|
+
this.objectUrlService.revokeObjectURL(this.blobUrl);
|
|
69
|
+
}
|
|
70
|
+
if (this.subscription) {
|
|
71
|
+
this.subscription.unsubscribe();
|
|
72
|
+
}
|
|
73
|
+
this.blobUrl = null;
|
|
74
|
+
}
|
|
75
|
+
static { this.ɵfac = function XhrImgComponent_Factory(t) { return new (t || XhrImgComponent)(i0.ɵɵdirectiveInject(OBJECT_URL_SERVICE), i0.ɵɵdirectiveInject(i1.HttpClient), i0.ɵɵdirectiveInject(i2.DomSanitizer)); }; }
|
|
76
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: XhrImgComponent, selectors: [["mage-xhr-img"]], inputs: { sourceUrl: [i0.ɵɵInputFlags.None, "src", "sourceUrl"] }, features: [i0.ɵɵProvidersFeature([
|
|
77
|
+
{
|
|
78
|
+
provide: OBJECT_URL_SERVICE,
|
|
79
|
+
useValue: URL
|
|
80
|
+
}
|
|
81
|
+
]), i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [[3, "load"]], template: function XhrImgComponent_Template(rf, ctx) { if (rf & 1) {
|
|
82
|
+
i0.ɵɵelementStart(0, "img", 0);
|
|
83
|
+
i0.ɵɵlistener("load", function XhrImgComponent_Template_img_load_0_listener() { return ctx.onImgLoad(); });
|
|
84
|
+
i0.ɵɵelementEnd();
|
|
85
|
+
} if (rf & 2) {
|
|
86
|
+
i0.ɵɵattribute("src", ctx.safeBlobUrl, i0.ɵɵsanitizeUrl);
|
|
87
|
+
} }, styles: ["img[_ngcontent-%COMP%]{height:100%;width:100%}"] }); }
|
|
88
|
+
}
|
|
89
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(XhrImgComponent, [{
|
|
90
|
+
type: Component,
|
|
91
|
+
args: [{ selector: `${selector}`, template: `<img [attr.src]="safeBlobUrl" (load)="onImgLoad()"/>`, providers: [
|
|
92
|
+
{
|
|
93
|
+
provide: OBJECT_URL_SERVICE,
|
|
94
|
+
useValue: URL
|
|
95
|
+
}
|
|
96
|
+
], styles: ["img{height:100%;width:100%}\n"] }]
|
|
97
|
+
}], () => [{ type: undefined, decorators: [{
|
|
98
|
+
type: Inject,
|
|
99
|
+
args: [OBJECT_URL_SERVICE]
|
|
100
|
+
}] }, { type: i1.HttpClient }, { type: i2.DomSanitizer }], { sourceUrl: [{
|
|
101
|
+
type: Input,
|
|
102
|
+
args: ['src']
|
|
103
|
+
}] }); })();
|
|
104
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(XhrImgComponent, { className: "XhrImgComponent", filePath: "xhr-img.component.ts", lineNumber: 58 }); })();
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGhyLWltZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWxpYi9jb21tb24veGhyLWltZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBdUMsTUFBTSxlQUFlLENBQUE7Ozs7QUFLN0csTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFBO0FBWS9CLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFtQixHQUFHLFFBQVEsbUJBQW1CLENBQUMsQ0FBQTtBQUV0Rzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQkc7QUFZSCxNQUFNLE9BQU8sZUFBZTtJQVMxQixZQUFnRCxnQkFBa0MsRUFBVSxTQUFxQixFQUFVLFNBQXVCO1FBQWxHLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFZO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBYztRQU5sSixjQUFTLEdBQWtCLElBQUksQ0FBQTtRQUMvQixnQkFBVyxHQUFtQixJQUFJLENBQUE7SUFLbUgsQ0FBQztJQUV0SixXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN2QixPQUFNO1FBQ1IsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN6RCxPQUFNO1FBQ1IsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLE9BQU07UUFDUixDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQzdFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNiLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQ25ELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUN2RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3hFLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUE7SUFDdkIsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUE7SUFDdkIsQ0FBQztJQUVPLGNBQWM7UUFDcEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDckQsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUE7UUFDakMsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFBO0lBQ3JCLENBQUM7Z0ZBOUNVLGVBQWUsdUJBU04sa0JBQWtCO29FQVQzQixlQUFlLHFJQVBmO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxrQkFBa0I7b0JBQzNCLFFBQVEsRUFBRSxHQUFHO2lCQUNkO2FBQ0Y7WUFQVSw4QkFBb0Q7WUFBdEIsdUZBQVEsZUFBVyxJQUFDO1lBQWxELGlCQUFvRDs7Ozs7aUZBU3BELGVBQWU7Y0FYM0IsU0FBUzsyQkFDRSxHQUFHLFFBQVEsRUFBRSxZQUNiLHNEQUFzRCxhQUVyRDtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsa0JBQWtCO3dCQUMzQixRQUFRLEVBQUUsR0FBRztxQkFDZDtpQkFDRjs7c0JBV1ksTUFBTTt1QkFBQyxrQkFBa0I7eUVBTnRDLFNBQVM7a0JBRFIsS0FBSzttQkFBQyxLQUFLOztrRkFGRCxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIEluamVjdGlvblRva2VuLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlcidcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXG5cbmNvbnN0IHNlbGVjdG9yID0gJ21hZ2UteGhyLWltZydcblxuLyoqXG4gKiBUaGlzIGlzIGEgc2ltcGxlIGludGVyZmFjZSB0aGF0IGluY2x1ZGVzIHRoZSBbbWV0aG9kc10oaHR0cHM6Ly93d3cudzMub3JnL1RSL0ZpbGVBUEkvI2NyZWF0aW5nLXJldm9raW5nKVxuICogZnJvbSB0aGUgW1VSTCBBUEldKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9VUkwpIGZvclxuICogbWFuYWdpbmcgYmxvYiBVUkxzLiAgVGhpcyBhbGxvd3MgYSBzZXJ2aWNlIHRvIGJlIGluamVjdGVkIGludG9cbiAqIGBYaHJJbWdDb21wb25lbnRgIGFuZCBvdmVycmlkZGVuIGZvciB0ZXN0aW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9iamVjdFVybFNlcnZpY2Uge1xuICBjcmVhdGVPYmplY3RVUkw6ICh0eXBlb2YgVVJMKVsnY3JlYXRlT2JqZWN0VVJMJ11cbiAgcmV2b2tlT2JqZWN0VVJMOiAodHlwZW9mIFVSTClbJ3Jldm9rZU9iamVjdFVSTCddXG59XG5leHBvcnQgY29uc3QgT0JKRUNUX1VSTF9TRVJWSUNFID0gbmV3IEluamVjdGlvblRva2VuPE9iamVjdFVybFNlcnZpY2U+KGAke3NlbGVjdG9yfS5vYmplY3RVcmxTZXJ2aWNlYClcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBhbGxvd3MgZmV0Y2hpbmcgaW1hZ2VzIGJ5IGBYTUxIdHRwUmVxdWVzdGAgcmF0aGVyIHRoYW4gdGhlXG4gKiBicm93c2VyJ3MgbmF0aXZlIG1lY2hhbmlzbS4gIFRoZXNlIGltYWdlIHJlcXVlc3RzIGFyZSBzdWJqZWN0IHRvIEhUVFBcbiAqIGludGVyY2VwdG9ycyB0aGF0IGNhbiBhZGQgYXV0aG9yaXphdGlvbiBoZWFkZXJzIHRvIHRoZSByZXF1ZXN0IGluc3RlYWQgb2ZcbiAqIHVzaW5nIGNhY2hlLWRlZmVhdGluZyBVUkwgcXVlcnkgcGFyYW1ldGVycyB0byBzZXQgYW4gYXV0aCB0b2tlbi4gIEFwcGx5aW5nXG4gKiBoZWFkZXJzIHRvIHRoZSBicm93c2VyJ3MgbmF0aXZlIGBpbWdgIHJlcXVlc3RzIGlzIGltcG9zc2libGUsIHNvIGEgcXVlcnlcbiAqIHBhcmFtZXRlciBpcyBuZWNlc3NhcnkgZm9yIGF1dGhvcml6YXRpb24sIGJ1dCBhZGRpbmcgdGhlIHBhcmFtZXRlciB0byB0aGVcbiAqIFVSTCBlZmZlY3RpdmVseSBieXBhc3NlcyB0aGUgYnJvd3NlcidzIGNhY2hpbmcgbWVjaGFuaXNtIHdoZW4gdGhlIGF1dGggdG9rZW5cbiAqIGNoYW5nZXMgZm9yIGltYWdlcyB0aGF0XG4gKiBzaG91bGQgb3RoZXJ3aXNlIGJlIHN1YmplY3QgdG8gY2FjaGluZy5cbiAqXG4gKiBUaGUgY2F0Y2ggdG8gZmV0Y2hpbmcgaW1hZ2VzIGJ5IFhIUiBpcyB0aGUgcmVzcG9uc2UgbXVzdCBiZSBmZXRjaGVkIGFzIGFcbiAqIGBCbG9iYC4gIFRoZSB1c2VyIHRoZW4gZ2V0cyBhIGJyb3dzZXItc3BlY2lmaWMgVVJMIGZvciB0aGUgYmxvYiBieVxuICogYFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYilgLCB3aGljaCBjYW4gdGhlbiBiZSBhc3NpZ25lZCB0byB0aGUgYHNyY2BcbiAqIGF0dHJpYnV0ZSBvZiBhbiBgaW1nYCB0YWcuICBUaGVzZSBibG9iIFVSTHMgbXVzdCB0aGVuIGJlIFwicmV2b2tlZFwiIGJ5XG4gKiBgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpYCBpbiBvcmRlciB0byByZWNsYWltIG9iamVjdCBVUkwncyBhc3NvY2lhdGVkXG4gKiByZXNvdXJjZXMuICBTZWUgW01vemlsbGEncyBkb2NzXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRmlsZS9Vc2luZ19maWxlc19mcm9tX3dlYl9hcHBsaWNhdGlvbnMjZXhhbXBsZV91c2luZ19vYmplY3RfdXJsc190b19kaXNwbGF5X2ltYWdlcylcbiAqIG9uIHRoZSBzdWJqZWN0LlxuICpcbiAqIFRvIHVzZSB0aGUgY29tcG9uZW50LCBzaW1wbHkgYWRkIHRoZSB0YWcgdG8gYSB0ZW1wbGF0ZSBhbmQgYmluZCB0aGUgYHNyY2BcbiAqIGF0dHJpYnV0ZSB0byB0aGUgc291cmNlIFVSTCBvZiB0aGUgZGVzaXJlZCBpbWFnZS5cbiAqIGBgYFxuICogPG1hZ2UteGhyLWltZyBbc3JjXT1cInNvbWVDb21wb25lbnQuaW1hZ2VVcmxSZXF1aXJlc0F1dGhcIj48L21hZ2UteGhyLWltZz5cbiAqIGBgYFxuICogVGhlIGNvbXBvbmVudCBlbmNhcHN1bGF0ZXMgdGhlIGxvZ2ljIG9mIGNyZWF0aW5nIGFuZCByZWxlYXNpbmcgdGhlIG9iamVjdFxuICogVVJMcyBmb3IgdGhlIGltYWdlIGRhdGEsIHByZXZlbnRpbmcgbWVtb3J5IGxlYWtzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IGAke3NlbGVjdG9yfWAsXG4gIHRlbXBsYXRlOiBgPGltZyBbYXR0ci5zcmNdPVwic2FmZUJsb2JVcmxcIiAobG9hZCk9XCJvbkltZ0xvYWQoKVwiLz5gLFxuICBzdHlsZXM6IFsgYGltZyB7IGhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCUgfWAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogT0JKRUNUX1VSTF9TRVJWSUNFLFxuICAgICAgdXNlVmFsdWU6IFVSTFxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBYaHJJbWdDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCdzcmMnKVxuICBzb3VyY2VVcmw6IHN0cmluZyB8IG51bGwgPSBudWxsXG4gIHNhZmVCbG9iVXJsOiBTYWZlVXJsIHwgbnVsbCA9IG51bGxcblxuICBwcml2YXRlIGJsb2JVcmw6IHN0cmluZ1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uXG5cbiAgY29uc3RydWN0b3IoQEluamVjdChPQkpFQ1RfVVJMX1NFUlZJQ0UpIHByaXZhdGUgb2JqZWN0VXJsU2VydmljZTogT2JqZWN0VXJsU2VydmljZSwgcHJpdmF0ZSB3ZWJDbGllbnQ6IEh0dHBDbGllbnQsIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICghY2hhbmdlcy5zb3VyY2VVcmwpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAoY2hhbmdlcy5zb3VyY2VVcmwuaXNGaXJzdENoYW5nZSgpICYmICF0aGlzLnNvdXJjZVVybCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRoaXMuZGlzcG9zZUN1cnJlbnQoKVxuICAgIGlmICghdGhpcy5zb3VyY2VVcmwpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMud2ViQ2xpZW50LmdldCh0aGlzLnNvdXJjZVVybCwgeyByZXNwb25zZVR5cGU6ICdibG9iJyB9KVxuICAgICAgLnN1YnNjcmliZSh4ID0+IHtcbiAgICAgICAgdGhpcy5vYmplY3RVcmxTZXJ2aWNlLnJldm9rZU9iamVjdFVSTCh0aGlzLmJsb2JVcmwpXG4gICAgICAgIHRoaXMuYmxvYlVybCA9IHRoaXMub2JqZWN0VXJsU2VydmljZS5jcmVhdGVPYmplY3RVUkwoeClcbiAgICAgICAgdGhpcy5zYWZlQmxvYlVybCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwodGhpcy5ibG9iVXJsKVxuICAgICAgfSlcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcG9zZUN1cnJlbnQoKVxuICB9XG5cbiAgb25JbWdMb2FkKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcG9zZUN1cnJlbnQoKVxuICB9XG5cbiAgcHJpdmF0ZSBkaXNwb3NlQ3VycmVudCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ibG9iVXJsKSB7XG4gICAgICB0aGlzLm9iamVjdFVybFNlcnZpY2UucmV2b2tlT2JqZWN0VVJMKHRoaXMuYmxvYlVybClcbiAgICB9XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gICAgfVxuICAgIHRoaXMuYmxvYlVybCA9IG51bGxcbiAgfVxufSJdfQ==
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, Subject } from 'rxjs';
|
|
3
|
+
import { map } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common/http";
|
|
6
|
+
export class FeedService {
|
|
7
|
+
constructor(webClient) {
|
|
8
|
+
this.webClient = webClient;
|
|
9
|
+
// TODO: there is probably a better solution than maintaining this map here
|
|
10
|
+
this._feeds = new BehaviorSubject([]);
|
|
11
|
+
this.feeds$ = this._feeds.asObservable();
|
|
12
|
+
this._feedItems = new Map();
|
|
13
|
+
}
|
|
14
|
+
feedItems(feedId) {
|
|
15
|
+
return this._feedItems.get(feedId).asObservable();
|
|
16
|
+
}
|
|
17
|
+
fetchAllFeeds() {
|
|
18
|
+
return this.webClient.get('/api/feeds/');
|
|
19
|
+
}
|
|
20
|
+
fetchFeed(feedId) {
|
|
21
|
+
return this.webClient.get(`/api/feeds/${feedId}`);
|
|
22
|
+
}
|
|
23
|
+
fetchService(serviceId) {
|
|
24
|
+
return this.webClient.get(`/api/feeds/services/${serviceId}`);
|
|
25
|
+
}
|
|
26
|
+
createService(service) {
|
|
27
|
+
return this.webClient.post(`/api/feeds/services`, service);
|
|
28
|
+
}
|
|
29
|
+
fetchServices() {
|
|
30
|
+
return this.webClient.get(`/api/feeds/services`);
|
|
31
|
+
}
|
|
32
|
+
fetchServiceFeeds(serviceId) {
|
|
33
|
+
return this.webClient.get(`/api/feeds/services/${serviceId}/feeds`);
|
|
34
|
+
}
|
|
35
|
+
fetchServiceType(serviceTypeId) {
|
|
36
|
+
return this.webClient.get(`/api/feeds/service_types/${serviceTypeId}`);
|
|
37
|
+
}
|
|
38
|
+
fetchTopics(serviceId) {
|
|
39
|
+
return this.webClient.get(`/api/feeds/services/${serviceId}/topics`);
|
|
40
|
+
}
|
|
41
|
+
previewFeed(serviceId, topicId, feedSpec, opts) {
|
|
42
|
+
opts = opts || {};
|
|
43
|
+
const skipContentFetch = opts.skipContentFetch === true;
|
|
44
|
+
return this.webClient.post(`/api/feeds/services/${serviceId}/topics/${topicId}/feed_preview?skip_content_fetch=${skipContentFetch}`, { feed: feedSpec });
|
|
45
|
+
}
|
|
46
|
+
fetchTopic(serviceId, topicId) {
|
|
47
|
+
return this.webClient.get(`/api/feeds/services/${serviceId}/topics/${topicId}`);
|
|
48
|
+
}
|
|
49
|
+
fetchServiceTypes() {
|
|
50
|
+
return this.webClient.get(`/api/feeds/service_types`);
|
|
51
|
+
}
|
|
52
|
+
createFeed(serviceId, topicId, feedConfiguration) {
|
|
53
|
+
return this.webClient.post(`/api/feeds/services/${serviceId}/topics/${topicId}/feeds`, feedConfiguration);
|
|
54
|
+
}
|
|
55
|
+
updateFeed(feed) {
|
|
56
|
+
return this.webClient.put(`/api/feeds/${feed.id}`, feed);
|
|
57
|
+
}
|
|
58
|
+
deleteFeed(feed) {
|
|
59
|
+
return this.webClient.delete(`/api/feeds/${feed.id}`, { responseType: 'text' });
|
|
60
|
+
}
|
|
61
|
+
deleteService(service) {
|
|
62
|
+
console.log('delete');
|
|
63
|
+
return this.webClient.delete(`/api/feeds/services/${service.id}`, { responseType: 'text' });
|
|
64
|
+
}
|
|
65
|
+
fetchFeeds(eventId) {
|
|
66
|
+
const subject = new Subject();
|
|
67
|
+
this.webClient.get(`/api/events/${eventId}/feeds`).subscribe(feeds => {
|
|
68
|
+
feeds.map(feed => {
|
|
69
|
+
feed.id = feed.id.toString();
|
|
70
|
+
return feed;
|
|
71
|
+
});
|
|
72
|
+
feeds.forEach(feed => {
|
|
73
|
+
let feedItems = this._feedItems.get(feed.id);
|
|
74
|
+
if (!feedItems) {
|
|
75
|
+
feedItems = new BehaviorSubject([]);
|
|
76
|
+
this._feedItems.set(feed.id, feedItems);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
subject.next(feeds);
|
|
80
|
+
this._feeds.next(feeds);
|
|
81
|
+
});
|
|
82
|
+
return subject;
|
|
83
|
+
}
|
|
84
|
+
fetchFeedItems(event, feed) {
|
|
85
|
+
const feedItems = this._feedItems.get(feed.id);
|
|
86
|
+
return this.webClient.post(`/api/events/${event.id}/feeds/${feed.id}/content`, {}).pipe(map(content => {
|
|
87
|
+
const features = content.items.features;
|
|
88
|
+
features.forEach((feature) => {
|
|
89
|
+
feature.id = String(feature.id);
|
|
90
|
+
feature.properties = feature.properties || {};
|
|
91
|
+
});
|
|
92
|
+
feedItems.next(features);
|
|
93
|
+
return content;
|
|
94
|
+
}));
|
|
95
|
+
}
|
|
96
|
+
static { this.ɵfac = function FeedService_Factory(t) { return new (t || FeedService)(i0.ɵɵinject(i1.HttpClient)); }; }
|
|
97
|
+
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FeedService, factory: FeedService.ɵfac, providedIn: 'root' }); }
|
|
98
|
+
}
|
|
99
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeedService, [{
|
|
100
|
+
type: Injectable,
|
|
101
|
+
args: [{
|
|
102
|
+
providedIn: 'root'
|
|
103
|
+
}]
|
|
104
|
+
}], () => [{ type: i1.HttpClient }], null); })();
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1saWIvZmVlZC9mZWVkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUMzRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7OztBQVdwQyxNQUFNLE9BQU8sV0FBVztJQUV0QixZQUFvQixTQUFxQjtRQUFyQixjQUFTLEdBQVQsU0FBUyxDQUFZO1FBRXpDLDJFQUEyRTtRQUNuRSxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQWMsRUFBRSxDQUFDLENBQUM7UUFDN0MsV0FBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFckMsZUFBVSxHQUFHLElBQUksR0FBRyxFQUEyQyxDQUFDO0lBTjNCLENBQUM7SUFPOUMsU0FBUyxDQUFDLE1BQWM7UUFDdEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQWMsYUFBYSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFjO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQWUsY0FBYyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBaUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBVSx1QkFBdUIsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQTZFO1FB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VUFBVSxJQUFJLEVBQUUsQ0FBQTtZQUMvQyxDQUFDLENBQUMsQ0FBQTtZQUNGLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDeEIsT0FBTyxPQUFPLENBQUE7UUFDaEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7NEVBbEhVLFdBQVc7dUVBQVgsV0FBVyxXQUFYLFdBQVcsbUJBRlYsTUFBTTs7aUZBRVAsV0FBVztjQUh2QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJ2dlb2pzb24nXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBGZWVkLCBGZWVkQ29udGVudCwgRmVlZEV4cGFuZGVkLCBGZWVkUG9zdCwgRmVlZFByZXZpZXcsIEZlZWRUb3BpYywgU2VydmljZSwgU2VydmljZVR5cGUsIFN0eWxlZEZlYXR1cmUgfSBmcm9tICcuL2ZlZWQubW9kZWwnXG5cblxuZXhwb3J0IGludGVyZmFjZSBGZWVkUHJldmlld09wdGlvbnMge1xuICBza2lwQ29udGVudEZldGNoPzogYm9vbGVhblxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGZWVkU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB3ZWJDbGllbnQ6IEh0dHBDbGllbnQpIHsgfVxuXG4gIC8vIFRPRE86IHRoZXJlIGlzIHByb2JhYmx5IGEgYmV0dGVyIHNvbHV0aW9uIHRoYW4gbWFpbnRhaW5pbmcgdGhpcyBtYXAgaGVyZVxuICBwcml2YXRlIF9mZWVkcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8RmVlZD4+KFtdKTtcbiAgcmVhZG9ubHkgZmVlZHMkID0gdGhpcy5fZmVlZHMuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSBfZmVlZEl0ZW1zID0gbmV3IE1hcDxzdHJpbmcsIEJlaGF2aW9yU3ViamVjdDxBcnJheTxGZWF0dXJlPj4+KCk7XG4gIGZlZWRJdGVtcyhmZWVkSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QXJyYXk8RmVhdHVyZT4+IHtcbiAgICByZXR1cm4gdGhpcy5fZmVlZEl0ZW1zLmdldChmZWVkSWQpLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZmV0Y2hBbGxGZWVkcygpOiBPYnNlcnZhYmxlPEFycmF5PEZlZWQ+PiB7XG4gICAgcmV0dXJuIHRoaXMud2ViQ2xpZW50LmdldDxBcnJheTxGZWVkPj4oJy9hcGkvZmVlZHMvJyk7XG4gIH1cblxuICBmZXRjaEZlZWQoZmVlZElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEZlZWRFeHBhbmRlZD4ge1xuICAgIHJldHVybiB0aGlzLndlYkNsaWVudC5nZXQ8RmVlZEV4cGFuZGVkPihgL2FwaS9mZWVkcy8ke2ZlZWRJZH1gKTtcbiAgfVxuXG4gIGZldGNoU2VydmljZShzZXJ2aWNlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8U2VydmljZT4ge1xuICAgIHJldHVybiB0aGlzLndlYkNsaWVudC5nZXQ8U2VydmljZT4oYC9hcGkvZmVlZHMvc2VydmljZXMvJHtzZXJ2aWNlSWR9YCk7XG4gIH1cblxuICBjcmVhdGVTZXJ2aWNlKHNlcnZpY2U6IHsgdGl0bGU6IHN0cmluZywgc3VtbWFyeT86IHN0cmluZywgc2VydmljZVR5cGU6IHN0cmluZywgY29uZmlnOiBhbnl9KTogT2JzZXJ2YWJsZTxTZXJ2aWNlPiB7XG4gICAgcmV0dXJuIHRoaXMud2ViQ2xpZW50LnBvc3Q8U2VydmljZT4oYC9hcGkvZmVlZHMvc2VydmljZXNgLCBzZXJ2aWNlKTtcbiAgfVxuXG4gIGZldGNoU2VydmljZXMoKTogT2JzZXJ2YWJsZTxBcnJheTxTZXJ2aWNlPj4ge1xuICAgIHJldHVybiB0aGlzLndlYkNsaWVudC5nZXQ8QXJyYXk8U2VydmljZT4+KGAvYXBpL2ZlZWRzL3NlcnZpY2VzYCk7XG4gIH1cblxuICBmZXRjaFNlcnZpY2VGZWVkcyhzZXJ2aWNlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QXJyYXk8RmVlZD4+IHtcbiAgICByZXR1cm4gdGhpcy53ZWJDbGllbnQuZ2V0PEFycmF5PEZlZWQ+PihgL2FwaS9mZWVkcy9zZXJ2aWNlcy8ke3NlcnZpY2VJZH0vZmVlZHNgKTtcbiAgfVxuXG4gIGZldGNoU2VydmljZVR5cGUoc2VydmljZVR5cGVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxTZXJ2aWNlVHlwZT4ge1xuICAgIHJldHVybiB0aGlzLndlYkNsaWVudC5nZXQ8U2VydmljZVR5cGU+KGAvYXBpL2ZlZWRzL3NlcnZpY2VfdHlwZXMvJHtzZXJ2aWNlVHlwZUlkfWApO1xuICB9XG5cbiAgZmV0Y2hUb3BpY3Moc2VydmljZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFycmF5PEZlZWRUb3BpYz4+IHtcbiAgICByZXR1cm4gdGhpcy53ZWJDbGllbnQuZ2V0PEFycmF5PEZlZWRUb3BpYz4+KGAvYXBpL2ZlZWRzL3NlcnZpY2VzLyR7c2VydmljZUlkfS90b3BpY3NgKTtcbiAgfVxuXG4gIHByZXZpZXdGZWVkKHNlcnZpY2VJZDogc3RyaW5nLCB0b3BpY0lkOiBzdHJpbmcsIGZlZWRTcGVjOiBQYXJ0aWFsPE9taXQ8RmVlZFBvc3QsICdzZXJ2aWNlJyB8ICd0b3BpYyc+Piwgb3B0cz86IEZlZWRQcmV2aWV3T3B0aW9ucyk6IE9ic2VydmFibGU8RmVlZFByZXZpZXc+IHtcbiAgICBvcHRzID0gb3B0cyB8fCB7fVxuICAgIGNvbnN0IHNraXBDb250ZW50RmV0Y2g6IGJvb2xlYW4gPSBvcHRzLnNraXBDb250ZW50RmV0Y2ggPT09IHRydWVcbiAgICByZXR1cm4gdGhpcy53ZWJDbGllbnQucG9zdDxGZWVkUHJldmlldz4oXG4gICAgICBgL2FwaS9mZWVkcy9zZXJ2aWNlcy8ke3NlcnZpY2VJZH0vdG9waWNzLyR7dG9waWNJZH0vZmVlZF9wcmV2aWV3P3NraXBfY29udGVudF9mZXRjaD0ke3NraXBDb250ZW50RmV0Y2h9YCxcbiAgICAgIHsgZmVlZDogZmVlZFNwZWMgfSk7XG4gIH1cblxuICBmZXRjaFRvcGljKHNlcnZpY2VJZDogc3RyaW5nLCB0b3BpY0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEZlZWRUb3BpYz4ge1xuICAgIHJldHVybiB0aGlzLndlYkNsaWVudC5nZXQ8RmVlZFRvcGljPihgL2FwaS9mZWVkcy9zZXJ2aWNlcy8ke3NlcnZpY2VJZH0vdG9waWNzLyR7dG9waWNJZH1gKTtcbiAgfVxuXG4gIGZldGNoU2VydmljZVR5cGVzKCk6IE9ic2VydmFibGU8QXJyYXk8U2VydmljZVR5cGU+PiB7XG4gICAgcmV0dXJuIHRoaXMud2ViQ2xpZW50LmdldDxBcnJheTxTZXJ2aWNlVHlwZT4+KGAvYXBpL2ZlZWRzL3NlcnZpY2VfdHlwZXNgKTtcbiAgfVxuXG4gIGNyZWF0ZUZlZWQoc2VydmljZUlkOiBzdHJpbmcsIHRvcGljSWQ6IHN0cmluZywgZmVlZENvbmZpZ3VyYXRpb246IGFueSk6IE9ic2VydmFibGU8RmVlZEV4cGFuZGVkPiB7XG4gICAgcmV0dXJuIHRoaXMud2ViQ2xpZW50LnBvc3Q8RmVlZEV4cGFuZGVkPihgL2FwaS9mZWVkcy9zZXJ2aWNlcy8ke3NlcnZpY2VJZH0vdG9waWNzLyR7dG9waWNJZH0vZmVlZHNgLCBmZWVkQ29uZmlndXJhdGlvbik7XG4gIH1cblxuICB1cGRhdGVGZWVkKGZlZWQ6IFBhcnRpYWw8T21pdDxGZWVkUG9zdCwgJ2lkJz4+ICYgUGljazxGZWVkLCAnaWQnPik6IE9ic2VydmFibGU8RmVlZEV4cGFuZGVkPiB7XG4gICAgcmV0dXJuIHRoaXMud2ViQ2xpZW50LnB1dDxGZWVkRXhwYW5kZWQ+KGAvYXBpL2ZlZWRzLyR7ZmVlZC5pZH1gLCBmZWVkKTtcbiAgfVxuXG4gIGRlbGV0ZUZlZWQoZmVlZDogRmVlZCB8IEZlZWRFeHBhbmRlZCk6IE9ic2VydmFibGU8e30+IHtcbiAgICByZXR1cm4gdGhpcy53ZWJDbGllbnQuZGVsZXRlKGAvYXBpL2ZlZWRzLyR7ZmVlZC5pZH1gLCB7cmVzcG9uc2VUeXBlOiAndGV4dCd9KTtcbiAgfVxuXG4gIGRlbGV0ZVNlcnZpY2Uoc2VydmljZTogU2VydmljZSk6IE9ic2VydmFibGU8e30+IHtcbiAgICBjb25zb2xlLmxvZygnZGVsZXRlJylcbiAgICByZXR1cm4gdGhpcy53ZWJDbGllbnQuZGVsZXRlKGAvYXBpL2ZlZWRzL3NlcnZpY2VzLyR7c2VydmljZS5pZH1gLCB7IHJlc3BvbnNlVHlwZTogJ3RleHQnIH0pO1xuICB9XG5cbiAgZmV0Y2hGZWVkcyhldmVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPEFycmF5PEZlZWQ+PiB7XG4gICAgY29uc3Qgc3ViamVjdCA9IG5ldyBTdWJqZWN0PEFycmF5PEZlZWQ+PigpO1xuICAgIHRoaXMud2ViQ2xpZW50LmdldDxBcnJheTxGZWVkPj4oYC9hcGkvZXZlbnRzLyR7ZXZlbnRJZH0vZmVlZHNgKS5zdWJzY3JpYmUoZmVlZHMgPT4ge1xuICAgICAgZmVlZHMubWFwKGZlZWQgPT4ge1xuICAgICAgICBmZWVkLmlkID0gZmVlZC5pZC50b1N0cmluZygpO1xuICAgICAgICByZXR1cm4gZmVlZDtcbiAgICAgIH0pO1xuXG4gICAgICBmZWVkcy5mb3JFYWNoKGZlZWQgPT4ge1xuICAgICAgICBsZXQgZmVlZEl0ZW1zID0gdGhpcy5fZmVlZEl0ZW1zLmdldChmZWVkLmlkKTtcbiAgICAgICAgaWYgKCFmZWVkSXRlbXMpIHtcbiAgICAgICAgICBmZWVkSXRlbXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PEZlYXR1cmU+PihbXSk7XG4gICAgICAgICAgdGhpcy5fZmVlZEl0ZW1zLnNldChmZWVkLmlkLCBmZWVkSXRlbXMpO1xuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBzdWJqZWN0Lm5leHQoZmVlZHMpO1xuICAgICAgdGhpcy5fZmVlZHMubmV4dChmZWVkcyk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc3ViamVjdDtcbiAgfVxuXG4gIGZldGNoRmVlZEl0ZW1zKGV2ZW50OiBhbnksIGZlZWQ6IEZlZWQpOiBPYnNlcnZhYmxlPEZlZWRDb250ZW50PiB7XG4gICAgY29uc3QgZmVlZEl0ZW1zID0gdGhpcy5fZmVlZEl0ZW1zLmdldChmZWVkLmlkKVxuICAgIHJldHVybiB0aGlzLndlYkNsaWVudC5wb3N0PEZlZWRDb250ZW50PihgL2FwaS9ldmVudHMvJHtldmVudC5pZH0vZmVlZHMvJHtmZWVkLmlkfS9jb250ZW50YCwge30pLnBpcGUoXG4gICAgICBtYXAoY29udGVudCA9PiB7XG4gICAgICAgIGNvbnN0IGZlYXR1cmVzID0gY29udGVudC5pdGVtcy5mZWF0dXJlc1xuICAgICAgICBmZWF0dXJlcy5mb3JFYWNoKChmZWF0dXJlOiBTdHlsZWRGZWF0dXJlKSA9PiB7XG4gICAgICAgICAgZmVhdHVyZS5pZCA9IFN0cmluZyhmZWF0dXJlLmlkKVxuICAgICAgICAgIGZlYXR1cmUucHJvcGVydGllcyA9IGZlYXR1cmUucHJvcGVydGllcyB8fCB7fVxuICAgICAgICB9KVxuICAgICAgICBmZWVkSXRlbXMubmV4dChmZWF0dXJlcylcbiAgICAgICAgcmV0dXJuIGNvbnRlbnRcbiAgICAgIH0pXG4gICAgKVxuICB9XG59XG4iXX0=
|
|
@@ -2,11 +2,11 @@ import { NgModule } from '@angular/core';
|
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class MageCoreLibModule {
|
|
5
|
+
static { this.ɵfac = function MageCoreLibModule_Factory(t) { return new (t || MageCoreLibModule)(); }; }
|
|
6
|
+
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MageCoreLibModule }); }
|
|
7
|
+
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule] }); }
|
|
5
8
|
}
|
|
6
|
-
|
|
7
|
-
MageCoreLibModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MageCoreLibModule });
|
|
8
|
-
MageCoreLibModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule] });
|
|
9
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MageCoreLibModule, [{
|
|
9
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MageCoreLibModule, [{
|
|
10
10
|
type: NgModule,
|
|
11
11
|
args: [{
|
|
12
12
|
declarations: [],
|
|
@@ -16,4 +16,4 @@ MageCoreLibModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Common
|
|
|
16
16
|
}]
|
|
17
17
|
}], null, null); })();
|
|
18
18
|
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MageCoreLibModule, { imports: [CommonModule] }); })();
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnZS1jb3JlLWxpYi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWxpYi9zcmMvbWFnZS1jb3JlLWxpYi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBVS9DLE1BQU0sT0FBTyxpQkFBaUI7a0ZBQWpCLGlCQUFpQjttRUFBakIsaUJBQWlCO3VFQUgxQixZQUFZOztpRkFHSCxpQkFBaUI7Y0FON0IsUUFBUTtlQUFDO2dCQUNSLFlBQVksRUFBRSxFQUFFO2dCQUNoQixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtpQkFDYjthQUNGOzt3RkFDWSxpQkFBaUIsY0FIMUIsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE1hZ2VDb3JlTGliTW9kdWxlIHsgfVxuIl19
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { DataSource } from '@angular/cdk/collections';
|
|
2
|
+
import { BehaviorSubject, Subscription } from 'rxjs';
|
|
3
|
+
import { pageForItemIndex } from './paging.model';
|
|
4
|
+
/**
|
|
5
|
+
* This class is an adaptation from the [Angular Material Guide](https://v8.material.angular.io/cdk/scrolling/overview), _"Specifying data" example_, also
|
|
6
|
+
* available on [StackBlitz](https://stackblitz.com/angular/mrbkjagnnra?file=src%2Fapp%2Fcdk-virtual-scroll-data-source-example.ts).
|
|
7
|
+
*/
|
|
8
|
+
export class PagingDataSource extends DataSource {
|
|
9
|
+
constructor(pageSize, fetchPage) {
|
|
10
|
+
super();
|
|
11
|
+
this.pageSize = pageSize;
|
|
12
|
+
this.fetchPage = fetchPage;
|
|
13
|
+
this.data = null;
|
|
14
|
+
this.data$ = new BehaviorSubject([]);
|
|
15
|
+
this.fetchedPages = new Set();
|
|
16
|
+
this.subscription = new Subscription();
|
|
17
|
+
}
|
|
18
|
+
connect(collectionViewer) {
|
|
19
|
+
this.subscription.add(collectionViewer.viewChange.subscribe(range => {
|
|
20
|
+
const startPage = this.pageForItemIndex(range.start);
|
|
21
|
+
const endPage = this.pageForItemIndex(range.end - 1);
|
|
22
|
+
for (let page = startPage; page <= endPage; page++) {
|
|
23
|
+
this.fetch(page);
|
|
24
|
+
}
|
|
25
|
+
}));
|
|
26
|
+
return this.data$;
|
|
27
|
+
}
|
|
28
|
+
disconnect() {
|
|
29
|
+
this.subscription.unsubscribe();
|
|
30
|
+
}
|
|
31
|
+
pageForItemIndex(index) {
|
|
32
|
+
return pageForItemIndex(index, this.pageSize);
|
|
33
|
+
}
|
|
34
|
+
fetch(pageIndex) {
|
|
35
|
+
if (this.fetchedPages.has(pageIndex)) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
this.fetchedPages.add(pageIndex);
|
|
39
|
+
const includeTotalCount = !this.data;
|
|
40
|
+
this.fetchPage({ pageSize: this.pageSize, pageIndex: pageIndex, includeTotalCount }).subscribe(page => {
|
|
41
|
+
if (!this.data) {
|
|
42
|
+
if (typeof (page.totalCount) !== 'number') {
|
|
43
|
+
throw new Error('data is null and no total count is available to inform allocation');
|
|
44
|
+
}
|
|
45
|
+
this.data = Array.from({ length: page.totalCount });
|
|
46
|
+
}
|
|
47
|
+
this.data.splice(pageIndex * this.pageSize, this.pageSize, ...page.items);
|
|
48
|
+
this.data$.next(this.data);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5nLmNkay1kYXRhLXNvdXJjZS5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1saWIvcGFnaW5nL3BhZ2luZy5jZGstZGF0YS1zb3VyY2UuYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBNEIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUzRTs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sZ0JBQW9CLFNBQVEsVUFBYTtJQU9wRCxZQUFvQixRQUFnQixFQUFVLFNBQThEO1FBQzFHLEtBQUssRUFBRSxDQUFBO1FBRFcsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQXFEO1FBTHBHLFNBQUksR0FBZSxJQUFJLENBQUE7UUFDdkIsVUFBSyxHQUFHLElBQUksZUFBZSxDQUFNLEVBQUUsQ0FBQyxDQUFBO1FBQ3BDLGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQTtRQUNoQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUE7SUFJekMsQ0FBQztJQUVELE9BQU8sQ0FBQyxnQkFBa0M7UUFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNsRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ3BELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFBO1lBQ3BELEtBQUssSUFBSSxJQUFJLEdBQUcsU0FBUyxFQUFFLElBQUksSUFBSSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDbkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNsQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQTtJQUNuQixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDakMsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQWE7UUFDcEMsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQy9DLENBQUM7SUFFTyxLQUFLLENBQUMsU0FBaUI7UUFDN0IsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE9BQU07UUFDUixDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDaEMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUE7UUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNwRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNmLElBQUksT0FBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDekMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtRUFBbUUsQ0FBQyxDQUFBO2dCQUN0RixDQUFDO2dCQUNELElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQTtZQUNyRCxDQUFDO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUN6RSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDNUIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uVmlld2VyLCBEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgcGFnZUZvckl0ZW1JbmRleCwgUGFnZU9mLCBQYWdpbmdQYXJhbWV0ZXJzIH0gZnJvbSAnLi9wYWdpbmcubW9kZWwnXG5cbi8qKlxuICogVGhpcyBjbGFzcyBpcyBhbiBhZGFwdGF0aW9uIGZyb20gdGhlIFtBbmd1bGFyIE1hdGVyaWFsIEd1aWRlXShodHRwczovL3Y4Lm1hdGVyaWFsLmFuZ3VsYXIuaW8vY2RrL3Njcm9sbGluZy9vdmVydmlldyksIF9cIlNwZWNpZnlpbmcgZGF0YVwiIGV4YW1wbGVfLCBhbHNvXG4gKiBhdmFpbGFibGUgb24gW1N0YWNrQmxpdHpdKGh0dHBzOi8vc3RhY2tibGl0ei5jb20vYW5ndWxhci9tcmJramFnbm5yYT9maWxlPXNyYyUyRmFwcCUyRmNkay12aXJ0dWFsLXNjcm9sbC1kYXRhLXNvdXJjZS1leGFtcGxlLnRzKS5cbiAqL1xuZXhwb3J0IGNsYXNzIFBhZ2luZ0RhdGFTb3VyY2U8VD4gZXh0ZW5kcyBEYXRhU291cmNlPFQ+IHtcblxuICBwcml2YXRlIGRhdGE6IFRbXSB8IG51bGwgPSBudWxsXG4gIHByaXZhdGUgZGF0YSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRbXT4oW10pXG4gIHByaXZhdGUgZmV0Y2hlZFBhZ2VzID0gbmV3IFNldDxudW1iZXI+KClcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKClcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhZ2VTaXplOiBudW1iZXIsIHByaXZhdGUgZmV0Y2hQYWdlOiAocGFnaW5nOiBQYWdpbmdQYXJhbWV0ZXJzKSA9PiBPYnNlcnZhYmxlPFBhZ2VPZjxUPj4pIHtcbiAgICBzdXBlcigpXG4gIH1cblxuICBjb25uZWN0KGNvbGxlY3Rpb25WaWV3ZXI6IENvbGxlY3Rpb25WaWV3ZXIpOiBPYnNlcnZhYmxlPHJlYWRvbmx5IFRbXT4ge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChjb2xsZWN0aW9uVmlld2VyLnZpZXdDaGFuZ2Uuc3Vic2NyaWJlKHJhbmdlID0+IHtcbiAgICAgIGNvbnN0IHN0YXJ0UGFnZSA9IHRoaXMucGFnZUZvckl0ZW1JbmRleChyYW5nZS5zdGFydClcbiAgICAgIGNvbnN0IGVuZFBhZ2UgPSB0aGlzLnBhZ2VGb3JJdGVtSW5kZXgocmFuZ2UuZW5kIC0gMSlcbiAgICAgIGZvciAobGV0IHBhZ2UgPSBzdGFydFBhZ2U7IHBhZ2UgPD0gZW5kUGFnZTsgcGFnZSsrKSB7XG4gICAgICAgIHRoaXMuZmV0Y2gocGFnZSlcbiAgICAgIH1cbiAgICB9KSlcbiAgICByZXR1cm4gdGhpcy5kYXRhJFxuICB9XG5cbiAgZGlzY29ubmVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gIH1cblxuICBwcml2YXRlIHBhZ2VGb3JJdGVtSW5kZXgoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIHBhZ2VGb3JJdGVtSW5kZXgoaW5kZXgsIHRoaXMucGFnZVNpemUpXG4gIH1cblxuICBwcml2YXRlIGZldGNoKHBhZ2VJbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZmV0Y2hlZFBhZ2VzLmhhcyhwYWdlSW5kZXgpKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGhpcy5mZXRjaGVkUGFnZXMuYWRkKHBhZ2VJbmRleClcbiAgICBjb25zdCBpbmNsdWRlVG90YWxDb3VudCA9ICF0aGlzLmRhdGFcbiAgICB0aGlzLmZldGNoUGFnZSh7IHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBwYWdlSW5kZXg6IHBhZ2VJbmRleCwgaW5jbHVkZVRvdGFsQ291bnQgfSkuc3Vic2NyaWJlKHBhZ2UgPT4ge1xuICAgICAgaWYgKCF0aGlzLmRhdGEpIHtcbiAgICAgICAgaWYgKHR5cGVvZihwYWdlLnRvdGFsQ291bnQpICE9PSAnbnVtYmVyJykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignZGF0YSBpcyBudWxsIGFuZCBubyB0b3RhbCBjb3VudCBpcyBhdmFpbGFibGUgdG8gaW5mb3JtIGFsbG9jYXRpb24nKVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGF0YSA9IEFycmF5LmZyb20oeyBsZW5ndGg6IHBhZ2UudG90YWxDb3VudCB9KVxuICAgICAgfVxuICAgICAgdGhpcy5kYXRhLnNwbGljZShwYWdlSW5kZXggKiB0aGlzLnBhZ2VTaXplLCB0aGlzLnBhZ2VTaXplLCAuLi5wYWdlLml0ZW1zKVxuICAgICAgdGhpcy5kYXRhJC5uZXh0KHRoaXMuZGF0YSlcbiAgICB9KVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export const pageForItemIndex = (itemIndex, pageSize) => {
|
|
2
|
+
if (typeof pageSize === 'object') {
|
|
3
|
+
pageSize = pageSize.pageSize;
|
|
4
|
+
}
|
|
5
|
+
return Math.floor(itemIndex / pageSize);
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Return the range of item indexes for the given page and page size. The last
|
|
9
|
+
* end portion of the range is exclusive, so when indexing an array the last
|
|
10
|
+
* item of the page would have position `end - 1`. This allows one to pass the
|
|
11
|
+
* values to `Array.slice()`.
|
|
12
|
+
* @param pageIndex
|
|
13
|
+
* @param pageSize
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
export const itemRangeOfPage = (pageIndex, pageSize) => {
|
|
17
|
+
if (typeof pageIndex === 'object') {
|
|
18
|
+
pageSize = pageIndex.pageSize;
|
|
19
|
+
pageIndex = pageIndex.pageIndex;
|
|
20
|
+
}
|
|
21
|
+
const start = pageSize * pageIndex;
|
|
22
|
+
const end = start + pageSize;
|
|
23
|
+
return [start, end];
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5nLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1saWIvcGFnaW5nL3BhZ2luZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQkEsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxTQUFpQixFQUFFLFFBQW1DLEVBQVUsRUFBRTtJQUNqRyxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ2pDLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFBO0lBQzlCLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxDQUFBO0FBQ3pDLENBQUMsQ0FBQTtBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUd4QixDQUFDLFNBQW9DLEVBQUUsUUFBaUIsRUFBc0IsRUFBRTtJQUNsRixJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ2xDLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFBO1FBQzdCLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFBO0lBQ2pDLENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRyxRQUFRLEdBQUcsU0FBUyxDQUFBO0lBQ2xDLE1BQU0sR0FBRyxHQUFHLEtBQUssR0FBRyxRQUFRLENBQUE7SUFDNUIsT0FBTyxDQUFFLEtBQUssRUFBRSxHQUFHLENBQUUsQ0FBQTtBQUN2QixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5nUGFyYW1ldGVycyB7XG4gIHBhZ2VTaXplOiBudW1iZXIsXG4gIHBhZ2VJbmRleDogbnVtYmVyLFxuICBpbmNsdWRlVG90YWxDb3VudD86IGJvb2xlYW4gfCBudWxsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZU9mPFQ+IHtcbiAgcGFnZVNpemU6IG51bWJlcixcbiAgcGFnZUluZGV4OiBudW1iZXIsXG4gIHRvdGFsQ291bnQ/OiBudW1iZXIgfCBudWxsLFxuICBuZXh0PzogUGFnaW5nUGFyYW1ldGVycyB8IG51bGxcbiAgcHJldj86IFBhZ2luZ1BhcmFtZXRlcnMgfCBudWxsXG4gIGl0ZW1zOiBUW11cbn1cblxuZXhwb3J0IGNvbnN0IHBhZ2VGb3JJdGVtSW5kZXggPSAoaXRlbUluZGV4OiBudW1iZXIsIHBhZ2VTaXplOiBudW1iZXIgfCBQYWdpbmdQYXJhbWV0ZXJzKTogbnVtYmVyID0+IHtcbiAgaWYgKHR5cGVvZiBwYWdlU2l6ZSA9PT0gJ29iamVjdCcpIHtcbiAgICBwYWdlU2l6ZSA9IHBhZ2VTaXplLnBhZ2VTaXplXG4gIH1cbiAgcmV0dXJuIE1hdGguZmxvb3IoaXRlbUluZGV4IC8gcGFnZVNpemUpXG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSByYW5nZSBvZiBpdGVtIGluZGV4ZXMgZm9yIHRoZSBnaXZlbiBwYWdlIGFuZCBwYWdlIHNpemUuICBUaGUgbGFzdFxuICogZW5kIHBvcnRpb24gb2YgdGhlIHJhbmdlIGlzIGV4Y2x1c2l2ZSwgc28gd2hlbiBpbmRleGluZyBhbiBhcnJheSB0aGUgbGFzdFxuICogaXRlbSBvZiB0aGUgcGFnZSB3b3VsZCBoYXZlIHBvc2l0aW9uIGBlbmQgLSAxYC4gIFRoaXMgYWxsb3dzIG9uZSB0byBwYXNzIHRoZVxuICogdmFsdWVzIHRvIGBBcnJheS5zbGljZSgpYC5cbiAqIEBwYXJhbSBwYWdlSW5kZXhcbiAqIEBwYXJhbSBwYWdlU2l6ZVxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGNvbnN0IGl0ZW1SYW5nZU9mUGFnZToge1xuICAocGFnZUluZGV4OiBudW1iZXIsIHBhZ2VTaXplOiBudW1iZXIpOiBbIG51bWJlciwgbnVtYmVyIF1cbiAgKHBhZ2luZzogUGFnaW5nUGFyYW1ldGVycylcbn0gPSAocGFnZUluZGV4OiBudW1iZXIgfCBQYWdpbmdQYXJhbWV0ZXJzLCBwYWdlU2l6ZT86IG51bWJlcik6IFsgbnVtYmVyLCBudW1iZXIgXSA9PiB7XG4gIGlmICh0eXBlb2YgcGFnZUluZGV4ID09PSAnb2JqZWN0Jykge1xuICAgIHBhZ2VTaXplID0gcGFnZUluZGV4LnBhZ2VTaXplXG4gICAgcGFnZUluZGV4ID0gcGFnZUluZGV4LnBhZ2VJbmRleFxuICB9XG4gIGNvbnN0IHN0YXJ0ID0gcGFnZVNpemUgKiBwYWdlSW5kZXhcbiAgY29uc3QgZW5kID0gc3RhcnQgKyBwYWdlU2l6ZVxuICByZXR1cm4gWyBzdGFydCwgZW5kIF1cbn1cbiJdfQ==
|