@ngageoint/mage.web-core-lib 6.6.0 → 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.
Files changed (98) hide show
  1. package/angular-cli/builders/fesm-amd.js +64 -36
  2. package/angular-cli/builders/fesm-amd.js.map +1 -1
  3. package/angular-cli/schematics/plugin-library/index.js.map +1 -1
  4. package/common/xhr-img.component.d.ts +1 -1
  5. package/{esm2020 → esm2022}/common/mage-common.module.mjs +5 -5
  6. package/esm2022/common/xhr-img.component.mjs +105 -0
  7. package/esm2022/feed/feed.service.mjs +105 -0
  8. package/{esm2020 → esm2022}/mage-core-lib.module.mjs +5 -5
  9. package/esm2022/paging/paging.cdk-data-source.adapter.mjs +52 -0
  10. package/esm2022/paging/paging.model.mjs +25 -0
  11. package/esm2022/static-icon/static-icon-form-field/static-icon-form-field.component.mjs +146 -0
  12. package/esm2022/static-icon/static-icon-img/static-icon-img.component.mjs +36 -0
  13. package/{esm2020 → esm2022}/static-icon/static-icon-select/static-icon-select.component.mjs +16 -15
  14. package/esm2022/static-icon/static-icon.model.mjs +10 -0
  15. package/esm2022/static-icon/static-icon.module.mjs +54 -0
  16. package/esm2022/static-icon/static-icon.service.mjs +82 -0
  17. package/esm2022/user/user-read.service.mjs +34 -0
  18. package/esm2022/user/user-select/user-select.component.mjs +159 -0
  19. package/esm2022/user/user.module.mjs +64 -0
  20. package/feed/feed.model.d.ts +3 -3
  21. package/feed/feed.model.d.ts.map +1 -1
  22. package/{fesm2020 → fesm2022}/ngageoint-mage.web-core-lib-common.mjs +21 -20
  23. package/{fesm2020 → fesm2022}/ngageoint-mage.web-core-lib-common.mjs.map +1 -1
  24. package/{fesm2020 → fesm2022}/ngageoint-mage.web-core-lib-feed.mjs +4 -4
  25. package/{fesm2015 → fesm2022}/ngageoint-mage.web-core-lib-feed.mjs.map +1 -1
  26. package/{fesm2020 → fesm2022}/ngageoint-mage.web-core-lib-paging.mjs.map +1 -1
  27. package/{fesm2020 → fesm2022}/ngageoint-mage.web-core-lib-static-icon.mjs +61 -58
  28. package/fesm2022/ngageoint-mage.web-core-lib-static-icon.mjs.map +1 -0
  29. package/{fesm2020 → fesm2022}/ngageoint-mage.web-core-lib-user.mjs +45 -45
  30. package/fesm2022/ngageoint-mage.web-core-lib-user.mjs.map +1 -0
  31. package/{fesm2020 → fesm2022}/ngageoint-mage.web-core-lib.mjs +4 -4
  32. package/{fesm2015 → fesm2022}/ngageoint-mage.web-core-lib.mjs.map +1 -1
  33. package/package.json +26 -46
  34. package/static-icon/static-icon-form-field/static-icon-form-field.component.d.ts +1 -1
  35. package/static-icon/static-icon-img/static-icon-img.component.d.ts +1 -1
  36. package/static-icon/static-icon-select/static-icon-select.component.d.ts +1 -1
  37. package/static-icon/static-icon.model.d.ts +1 -1
  38. package/static-icon/static-icon.model.d.ts.map +1 -1
  39. package/user/user-read.service.d.ts +1 -1
  40. package/user/user-read.service.d.ts.map +1 -1
  41. package/user/user-select/user-select.component.d.ts +1 -1
  42. package/angular-cli/README.md +0 -30
  43. package/esm2020/common/xhr-img.component.mjs +0 -104
  44. package/esm2020/feed/feed.service.mjs +0 -105
  45. package/esm2020/paging/paging.cdk-data-source.adapter.mjs +0 -52
  46. package/esm2020/paging/paging.model.mjs +0 -25
  47. package/esm2020/static-icon/static-icon-form-field/static-icon-form-field.component.mjs +0 -145
  48. package/esm2020/static-icon/static-icon-img/static-icon-img.component.mjs +0 -35
  49. package/esm2020/static-icon/static-icon.model.mjs +0 -10
  50. package/esm2020/static-icon/static-icon.module.mjs +0 -54
  51. package/esm2020/static-icon/static-icon.service.mjs +0 -82
  52. package/esm2020/user/user-read.service.mjs +0 -34
  53. package/esm2020/user/user-select/user-select.component.mjs +0 -159
  54. package/esm2020/user/user.module.mjs +0 -64
  55. package/fesm2015/ngageoint-mage.web-core-lib-common.mjs +0 -142
  56. package/fesm2015/ngageoint-mage.web-core-lib-common.mjs.map +0 -1
  57. package/fesm2015/ngageoint-mage.web-core-lib-feed.mjs +0 -114
  58. package/fesm2015/ngageoint-mage.web-core-lib-paging.mjs.map +0 -1
  59. package/fesm2015/ngageoint-mage.web-core-lib-static-icon.mjs +0 -392
  60. package/fesm2015/ngageoint-mage.web-core-lib-static-icon.mjs.map +0 -1
  61. package/fesm2015/ngageoint-mage.web-core-lib-user.mjs +0 -273
  62. package/fesm2015/ngageoint-mage.web-core-lib-user.mjs.map +0 -1
  63. package/fesm2015/ngageoint-mage.web-core-lib.mjs +0 -32
  64. package/fesm2020/ngageoint-mage.web-core-lib-event.mjs +0 -10
  65. package/fesm2020/ngageoint-mage.web-core-lib-event.mjs.map +0 -1
  66. package/fesm2020/ngageoint-mage.web-core-lib-feed.mjs.map +0 -1
  67. package/fesm2020/ngageoint-mage.web-core-lib-paging.mjs +0 -83
  68. package/fesm2020/ngageoint-mage.web-core-lib-plugin.mjs +0 -4
  69. package/fesm2020/ngageoint-mage.web-core-lib-plugin.mjs.map +0 -1
  70. package/fesm2020/ngageoint-mage.web-core-lib-static-icon.mjs.map +0 -1
  71. package/fesm2020/ngageoint-mage.web-core-lib-user.mjs.map +0 -1
  72. package/fesm2020/ngageoint-mage.web-core-lib.mjs.map +0 -1
  73. /package/{esm2020 → esm2022}/common/ngageoint-mage.web-core-lib-common.mjs +0 -0
  74. /package/{esm2020 → esm2022}/common/public-api.mjs +0 -0
  75. /package/{esm2020 → esm2022}/event/event-read.service.mjs +0 -0
  76. /package/{esm2020 → esm2022}/event/event.model.mjs +0 -0
  77. /package/{esm2020 → esm2022}/event/ngageoint-mage.web-core-lib-event.mjs +0 -0
  78. /package/{esm2020 → esm2022}/event/public-api.mjs +0 -0
  79. /package/{esm2020 → esm2022}/feed/feed.model.mjs +0 -0
  80. /package/{esm2020 → esm2022}/feed/ngageoint-mage.web-core-lib-feed.mjs +0 -0
  81. /package/{esm2020 → esm2022}/feed/public-api.mjs +0 -0
  82. /package/{esm2020 → esm2022}/ngageoint-mage.web-core-lib.mjs +0 -0
  83. /package/{esm2020 → esm2022}/paging/ngageoint-mage.web-core-lib-paging.mjs +0 -0
  84. /package/{esm2020 → esm2022}/paging/public-api.mjs +0 -0
  85. /package/{esm2020 → esm2022}/plugin/ngageoint-mage.web-core-lib-plugin.mjs +0 -0
  86. /package/{esm2020 → esm2022}/plugin/plugin.model.mjs +0 -0
  87. /package/{esm2020 → esm2022}/plugin/public-api.mjs +0 -0
  88. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  89. /package/{esm2020 → esm2022}/static-icon/ngageoint-mage.web-core-lib-static-icon.mjs +0 -0
  90. /package/{esm2020 → esm2022}/static-icon/public-api.mjs +0 -0
  91. /package/{esm2020 → esm2022}/user/ngageoint-mage.web-core-lib-user.mjs +0 -0
  92. /package/{esm2020 → esm2022}/user/public-api.mjs +0 -0
  93. /package/{esm2020 → esm2022}/user/user.model.mjs +0 -0
  94. /package/{fesm2015 → fesm2022}/ngageoint-mage.web-core-lib-event.mjs +0 -0
  95. /package/{fesm2015 → fesm2022}/ngageoint-mage.web-core-lib-event.mjs.map +0 -0
  96. /package/{fesm2015 → fesm2022}/ngageoint-mage.web-core-lib-paging.mjs +0 -0
  97. /package/{fesm2015 → fesm2022}/ngageoint-mage.web-core-lib-plugin.mjs +0 -0
  98. /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 ngPackagrThenAmd(options, context) {
13
- return (0, rxjs_1.concat)((0, build_angular_1.executeNgPackagrBuilder)(options, context).pipe((0, rxjs_1.tap)((x) => {
14
- if (x.error) {
15
- context.logger.error(x.error);
16
- }
17
- })),
18
- /*
19
- TODO:
20
- cast to any works around type incompatibility between rxjs 6.6.7 from @angular-devkit/*
21
- packages and rxjs 7 other angular packages. hopefully that goes away with an angular upgrade.
22
- */
23
- (0, rxjs_1.defer)(async () => {
24
- const buildInfo = await resolveBuildInfo(options, context);
25
- const rollupResult = await rollupFesmToAmd(buildInfo);
26
- if (rollupResult.success !== true) {
27
- return rollupResult;
28
- }
29
- const packageJsonResult = await writeDistPackageJson(buildInfo);
30
- return packageJsonResult;
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 fesm2020Path = packages.primary.destinationFiles.fesm2020;
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
- fesm2020Path,
48
- amdName: amdName,
49
- amdPath: amdPath
71
+ fesm2022Path,
72
+ amdName,
73
+ amdPath
50
74
  };
51
75
  }
52
76
  async function rollupFesmToAmd(buildInfo) {
53
- const { context, fesm2020Path, amdPath } = buildInfo;
54
- context.logger.info(`rolling FESM2020 to AMD ${JSON.stringify({
55
- fesm2020Path,
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: fesm2020Path,
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
- context.logger.error('error creating amd module from fesm: ' + err);
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: err
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
- buildInfo.context.logger.error(`error writing dist package ${distPkgPath}: ${err}`);
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":"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"}
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;QACd,MAAM,IAAI,gCAAmB,CAAC,mBAAmB,CAAC,CAAA;KACnD;IACD,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAC9B,MAAM,SAAS,GAAG,MAAM,IAAA,wBAAY,EAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACpD,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,gCAAmB,CAAC,mCAAmC,OAAO,EAAE,CAAC,CAAA;SAC5E;QACD,MAAM,UAAU,GAAG,GAAG,OAAO,CAAC,UAAU,MAAM,CAAA;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACtC,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAChD,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAA;QACnD,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACpD,MAAM,kBAAkB,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAA;QACzD,MAAM,aAAa,GAAG,GAAG,OAAO,CAAC,UAAU,IAAI,SAAS,KAAK,CAAA;QAC7D,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;QAClD,MAAM,WAAW,GAAG,EAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE,aAAa,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACnG,MAAM,gBAAgB,GAAG,IAAA,wBAAY,EAAC,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,qCAAqC,CAAC,CAAA;QACvH,MAAM,kBAAkB,GAAG,eAAe,CAAC,CAAC,CAAC,IAAA,wBAAY,EAAC,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,mBAAU,EAAE,CAAA;QAC7K,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAA,wBAAY,EAAC,WAAW,EAAE,aAAa,EAAE,kBAAkB,EAAE,SAAS,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,mBAAU,EAAE,CAAA;QACzL,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,eAAe,CAAe,CAAA;QAC/E,MAAM,WAAW,GAAG,WAAW,CAAC,IAAc,CAAA;QAC9C,MAAM,YAAY,GACtB;;YAEY,eAAe;;cAEb,WAAW;2BACE,kBAAkB;;;CAG5C,CAAA;QAEG,MAAM,WAAW,GAAG,IAAA,qBAAS,EAAc,WAAW,EAAE,CAAC,CAAC,CAAU,EAAE,EAAE;YACtE,OAAO;gBACL,EAAE,CAAC,UAAU,CAAC,gBAAgB;gBAC9B,EAAE,CAAC,UAAU,CAAC,iBAAiB;gBAC/B,EAAE,CAAC,UAAU,CAAC,eAAe;gBAC7B,EAAE,CAAC,UAAU,CAAC,YAAY;aAC3B,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACpB,CAAC,CAA6C,CAAC;aAC9C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC5C,MAAM,kBAAkB,GAAG,IAAA,qCAAyB,EAAC,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,CAAC,GAAG,CAAC,CAAA;QAC/G,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAA;QAC5C,IAAA,8BAAqB,EAAC,IAAI,EAAE,CAAE,gBAAgB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,kBAAkB,CAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACjI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC,CAAA;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAU,EAAE,OAAiB;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC1E,MAAM,QAAQ,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAA;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACxC,MAAM,MAAM,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACpF,MAAM,SAAS,GAAG,IAAA,qBAAS,EAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAwB,CAAA;IAC7F,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA;AACrD,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAU,EAAE,OAAiB;IACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC7E,MAAM,QAAQ,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAA;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACxC,MAAM,MAAM,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACpF,MAAM,SAAS,GAAG,IAAA,qBAAS,EAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAwB,CAAA;IAC7F,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA;AACrD,CAAC;AAED,SAAS,gBAAgB,CAAC,OAA6B;IACrD,OAAO,IAAA,2BAAe,EAAC,SAAS,CAAC,EAAE;QACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAA;QAC7B,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAChD,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,gCAAmB,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAA;SAC7E;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAC3C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;YAC3B,GAAG,MAAM;YACT,OAAO,EAAE,kCAAkC;SAC5C,CAAC,CAAA;QACF,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,OAA6B;IAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,2CAA2C,CAAC,CAAA;QACpE,MAAM,WAAW,GAAG,IAAA,cAAW,EAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAChD,MAAM,qBAAqB,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QACtH,MAAM,SAAS,GAAG,MAAM,IAAA,wBAAY,EAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACpD,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,gCAAmB,CAAC,mCAAmC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;SACjF;QACD,MAAM,eAAe,GAAG,GAAG,OAAO,CAAC,IAAI,eAAe,CAAA;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAe,CAAA;QAChE,MAAM,cAAc,GAAG;YACrB,GAAG,WAAW;YACd,YAAY,EAAE,EAAE;YAChB,gBAAgB,EAAE;gBAChB,yBAAyB,EAAE,qBAAqB;aACjD;SACF,CAAA;QACD,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAC1E,CAAC,CAAA;AACH,CAAC;AAED,SAAgB,oBAAoB,CAAC,OAA6B;IAChE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACjB,MAAM,IAAI,gCAAmB,CAAC,yCAAyC,CAAC,CAAA;KACzE;IACD,OAAO,IAAA,kBAAK,EAAC;QACX,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACjB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;QACzE,CAAC;QACD,IAAA,8BAAiB,EAAC,qBAAqB,EAAE,SAAS,EAAE,OAAO,CAAC;QAC5D,gBAAgB,CAAC,OAAO,CAAC;QACzB,yBAAyB,CAAC,OAAO,CAAC;QAClC,qBAAqB,CAAC,OAAO,CAAC;KAC/B,CAAC,CAAA;AACJ,CAAC;AAbD,oDAaC"}
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
- MageCommonModule.ɵfac = function MageCommonModule_Factory(t) { return new (t || MageCommonModule)(); };
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnZS1jb21tb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1saWIvY29tbW9uL21hZ2UtY29tbW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7O0FBYTlDLE1BQU0sT0FBTyxnQkFBZ0I7O2dGQUFoQixnQkFBZ0I7a0VBQWhCLGdCQUFnQjtzRUFUekIsWUFBWTt1RkFTSCxnQkFBZ0I7Y0FYNUIsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO2lCQUNiO2dCQUNELFlBQVksRUFBRTtvQkFDWixlQUFlO2lCQUNoQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsZUFBZTtpQkFDaEI7YUFDRjs7d0ZBQ1ksZ0JBQWdCLG1CQU56QixlQUFlLGFBSGYsWUFBWSxhQU1aLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBYaHJJbWdDb21wb25lbnQgfSBmcm9tICcuL3hoci1pbWcuY29tcG9uZW50J1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFhockltZ0NvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgWGhySW1nQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTWFnZUNvbW1vbk1vZHVsZSB7fSJdfQ==
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
- MageCoreLibModule.ɵfac = function MageCoreLibModule_Factory(t) { return new (t || MageCoreLibModule)(); };
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnZS1jb3JlLWxpYi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWxpYi9zcmMvbWFnZS1jb3JlLWxpYi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBVS9DLE1BQU0sT0FBTyxpQkFBaUI7O2tGQUFqQixpQkFBaUI7bUVBQWpCLGlCQUFpQjt1RUFIMUIsWUFBWTt1RkFHSCxpQkFBaUI7Y0FON0IsUUFBUTtlQUFDO2dCQUNSLFlBQVksRUFBRSxFQUFFO2dCQUNoQixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtpQkFDYjthQUNGOzt3RkFDWSxpQkFBaUIsY0FIMUIsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE1hZ2VDb3JlTGliTW9kdWxlIHsgfVxuIl19
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==