@ngageoint/mage.web-core-lib 6.6.1 → 6.6.3

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
@@ -1 +1 @@
1
- {"version":3,"file":"static-icon.model.d.ts","sourceRoot":"","sources":["../../../projects/core-lib/static-icon/static-icon.model.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,CAAC,EAAE,KAAK,CAAA;CAClB;AAED,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,MAAM,CAAA;IACjB,EAAE,CAAC,EAAE,KAAK,CAAA;CACX;AAED,eAAO,MAAM,iBAAiB,UAAW,UAAU,GAAG,6BAA6B,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,MAAM,GAAG,SAQ1H,CAAA;AAED,oBAAY,mBAAmB,GAAG,6BAA6B,GAAG,4BAA4B,CAAA"}
1
+ {"version":3,"file":"static-icon.model.d.ts","sourceRoot":"","sources":["../../../projects/core-lib/static-icon/static-icon.model.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,CAAC,EAAE,KAAK,CAAA;CAClB;AAED,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,MAAM,CAAA;IACjB,EAAE,CAAC,EAAE,KAAK,CAAA;CACX;AAED,eAAO,MAAM,iBAAiB,UAAW,UAAU,GAAG,6BAA6B,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,MAAM,GAAG,SAQ1H,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,6BAA6B,GAAG,4BAA4B,CAAA"}
@@ -15,7 +15,7 @@ export declare class UserReadService {
15
15
  export interface UserSearchParams extends PagingParameters {
16
16
  term?: string | null | undefined;
17
17
  }
18
- export declare type UserSearchResult = Pick<User, 'id' | 'username' | 'displayName' | 'email' | 'active' | 'enabled'> & {
18
+ export type UserSearchResult = Pick<User, 'id' | 'username' | 'displayName' | 'email' | 'active' | 'enabled'> & {
19
19
  /**
20
20
  * A reduction of all the phone numbers to a single string
21
21
  */
@@ -1 +1 @@
1
- {"version":3,"file":"user-read.service.d.ts","sourceRoot":"","sources":["../../../projects/core-lib/user/user-read.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAc,MAAM,eAAe,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;;AAEnC,eAAO,MAAM,kBAAkB,oBAAoB,CAAA;AAUnD,qBAGa,eAAe;IAEd,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,UAAU;IAEzC,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;yCAJ1D,eAAe;6CAAf,eAAe;CAmB3B;AAED,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CACjC;AAED,oBAAY,gBAAgB,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,GAAG,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG;IAC9G;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CACtC,CAAA;AAED,eAAO,MAAM,iBAAiB,iCAAyD,CAAA"}
1
+ {"version":3,"file":"user-read.service.d.ts","sourceRoot":"","sources":["../../../projects/core-lib/user/user-read.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAc,MAAM,eAAe,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;;AAEnC,eAAO,MAAM,kBAAkB,oBAAoB,CAAA;AAUnD,qBAGa,eAAe;IAEd,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,UAAU;IAEzC,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;yCAJ1D,eAAe;6CAAf,eAAe;CAmB3B;AAED,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CACjC;AAED,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,GAAG,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG;IAC9G;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CACtC,CAAA;AAED,eAAO,MAAM,iBAAiB,iCAAyD,CAAA"}
@@ -34,6 +34,6 @@ export declare class UserSelectComponent implements OnInit, OnChanges, AfterView
34
34
  onScrollToEnd(): void;
35
35
  fetchNextPage(): void;
36
36
  static ɵfac: i0.ɵɵFactoryDeclaration<UserSelectComponent, never>;
37
- static ɵcmp: i0.ɵɵComponentDeclaration<UserSelectComponent, "mage-user-select", never, {}, {}, never, never, false>;
37
+ static ɵcmp: i0.ɵɵComponentDeclaration<UserSelectComponent, "mage-user-select", never, {}, {}, never, never, false, never>;
38
38
  }
39
39
  //# sourceMappingURL=user-select.component.d.ts.map
@@ -1,30 +0,0 @@
1
- # Angular CLI Integration
2
-
3
- This subfolder of modules contains Angular CLI integrations, including a [schematic]() and
4
- [builder](), that facilitates creating Mage web plugin bundles.
5
-
6
- ## Background
7
- Before Angular 13, the Angular [Library](https://angular.dev/tools/libraries/creating-libraries) CLI tools and
8
- [Angular Package Format](https://docs.google.com/document/d/1CZC2rcpxffTDfRDs6p1cfbmKNLA6x5O-NtkJglDaBVs/preview#heading=h.k0mh3o8u5hx)
9
- produced a [UMD](https://github.com/umdjs/umd) bundle by default. The UMD bundle was suitable to include in a plugin's
10
- NPM package and for the core web app to download directly and load with [SystemJS](https://github.com/systemjs/systemjs)
11
- at runtime to hook the plugin module into the web app. Angular 13, however, eliminated the UMD bundle output from the
12
- [Angular Package Format](https://angular.dev/tools/libraries/angular-package-format) leaving only ECMAScript Module
13
- (ESM) outputs, as opposed to a concatenated, resolved bundle. Angular's intention is that libraries are strictly a
14
- development time construct, with the hosting application left to resolving, bundling, and tree-shaking the library's
15
- `import` statements. Mage, however, is using Angular libraries differently, creating a bundle that excludes shared
16
- dependencies the host web app provides, but including dependencies specific to the library, such that the host web app
17
- can load the library as one chunk dynamically at runtime. While native ESM could be a possibility for Mage in the
18
- future, a significant amount of evaluation and testing is necessary, and at minimum Mage would require all instances to
19
- run on HTTP/2 to maximize performance. The major issue would be all the transactions required to load the large number
20
- of module entry points that Mage, Angular, Angular Material, and others comprise. Whereas a conventional web app can
21
- provide all the shared entry points by bare module specifier to SystemJS's named registry from a single bundle
22
- downloaded initially, an ESM app must download each module separately on-demand as the JS engine processes `import`
23
- statements. Even with HTTP/2 multiplexing, this could be a serious performance hit.
24
-
25
- ## Plugin Library Schematic
26
-
27
- ## AMD Builder
28
-
29
- ## TODO
30
-
@@ -1,104 +0,0 @@
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
- }
76
- XhrImgComponent.ɵfac = function XhrImgComponent_Factory(t) { return new (t || XhrImgComponent)(i0.ɵɵdirectiveInject(OBJECT_URL_SERVICE), i0.ɵɵdirectiveInject(i1.HttpClient), i0.ɵɵdirectiveInject(i2.DomSanitizer)); };
77
- XhrImgComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: XhrImgComponent, selectors: [["mage-xhr-img"]], inputs: { sourceUrl: ["src", "sourceUrl"] }, features: [i0.ɵɵProvidersFeature([
78
- {
79
- provide: OBJECT_URL_SERVICE,
80
- useValue: URL
81
- }
82
- ]), i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [[3, "load"]], template: function XhrImgComponent_Template(rf, ctx) { if (rf & 1) {
83
- i0.ɵɵelementStart(0, "img", 0);
84
- i0.ɵɵlistener("load", function XhrImgComponent_Template_img_load_0_listener() { return ctx.onImgLoad(); });
85
- i0.ɵɵelementEnd();
86
- } if (rf & 2) {
87
- i0.ɵɵattribute("src", ctx.safeBlobUrl, i0.ɵɵsanitizeUrl);
88
- } }, styles: ["img[_ngcontent-%COMP%]{height:100%;width:100%}"] });
89
- (function () { (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
- }], function () { return [{ 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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGhyLWltZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWxpYi9jb21tb24veGhyLWltZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBdUMsTUFBTSxlQUFlLENBQUE7Ozs7QUFLN0csTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFBO0FBWS9CLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFtQixHQUFHLFFBQVEsbUJBQW1CLENBQUMsQ0FBQTtBQUV0Rzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQkc7QUFZSCxNQUFNLE9BQU8sZUFBZTtJQVMxQixZQUFnRCxnQkFBa0MsRUFBVSxTQUFxQixFQUFVLFNBQXVCO1FBQWxHLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFZO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBYztRQU5sSixjQUFTLEdBQWtCLElBQUksQ0FBQTtRQUMvQixnQkFBVyxHQUFtQixJQUFJLENBQUE7SUFLbUgsQ0FBQztJQUV0SixXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDdEIsT0FBTTtTQUNQO1FBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN4RCxPQUFNO1NBQ1A7UUFDRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUE7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsT0FBTTtTQUNQO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQzdFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNiLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQ25ELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUN2RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3hFLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUE7SUFDdkIsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUE7SUFDdkIsQ0FBQztJQUVPLGNBQWM7UUFDcEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQ3BEO1FBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUE7U0FDaEM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTtJQUNyQixDQUFDOzs4RUE5Q1UsZUFBZSx1QkFTTixrQkFBa0I7a0VBVDNCLGVBQWUsK0dBUGY7WUFDVDtnQkFDRSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixRQUFRLEVBQUUsR0FBRzthQUNkO1NBQ0Y7UUFQVSw4QkFBb0Q7UUFBdEIsdUZBQVEsZUFBVyxJQUFDO1FBQWxELGlCQUFvRDs7UUFBL0Msd0RBQXdCOzt1RkFTN0IsZUFBZTtjQVgzQixTQUFTOzJCQUNFLEdBQUcsUUFBUSxFQUFFLFlBQ2Isc0RBQXNELGFBRXJEO29CQUNUO3dCQUNFLE9BQU8sRUFBRSxrQkFBa0I7d0JBQzNCLFFBQVEsRUFBRSxHQUFHO3FCQUNkO2lCQUNGOztzQkFXWSxNQUFNO3VCQUFDLGtCQUFrQjs0RUFOdEMsU0FBUztrQkFEUixLQUFLO21CQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5qZWN0aW9uVG9rZW4sIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJ1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcydcblxuY29uc3Qgc2VsZWN0b3IgPSAnbWFnZS14aHItaW1nJ1xuXG4vKipcbiAqIFRoaXMgaXMgYSBzaW1wbGUgaW50ZXJmYWNlIHRoYXQgaW5jbHVkZXMgdGhlIFttZXRob2RzXShodHRwczovL3d3dy53My5vcmcvVFIvRmlsZUFQSS8jY3JlYXRpbmctcmV2b2tpbmcpXG4gKiBmcm9tIHRoZSBbVVJMIEFQSV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1VSTCkgZm9yXG4gKiBtYW5hZ2luZyBibG9iIFVSTHMuICBUaGlzIGFsbG93cyBhIHNlcnZpY2UgdG8gYmUgaW5qZWN0ZWQgaW50b1xuICogYFhockltZ0NvbXBvbmVudGAgYW5kIG92ZXJyaWRkZW4gZm9yIHRlc3RpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JqZWN0VXJsU2VydmljZSB7XG4gIGNyZWF0ZU9iamVjdFVSTDogKHR5cGVvZiBVUkwpWydjcmVhdGVPYmplY3RVUkwnXVxuICByZXZva2VPYmplY3RVUkw6ICh0eXBlb2YgVVJMKVsncmV2b2tlT2JqZWN0VVJMJ11cbn1cbmV4cG9ydCBjb25zdCBPQkpFQ1RfVVJMX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48T2JqZWN0VXJsU2VydmljZT4oYCR7c2VsZWN0b3J9Lm9iamVjdFVybFNlcnZpY2VgKVxuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGFsbG93cyBmZXRjaGluZyBpbWFnZXMgYnkgYFhNTEh0dHBSZXF1ZXN0YCByYXRoZXIgdGhhbiB0aGVcbiAqIGJyb3dzZXIncyBuYXRpdmUgbWVjaGFuaXNtLiAgVGhlc2UgaW1hZ2UgcmVxdWVzdHMgYXJlIHN1YmplY3QgdG8gSFRUUFxuICogaW50ZXJjZXB0b3JzIHRoYXQgY2FuIGFkZCBhdXRob3JpemF0aW9uIGhlYWRlcnMgdG8gdGhlIHJlcXVlc3QgaW5zdGVhZCBvZlxuICogdXNpbmcgY2FjaGUtZGVmZWF0aW5nIFVSTCBxdWVyeSBwYXJhbWV0ZXJzIHRvIHNldCBhbiBhdXRoIHRva2VuLiAgQXBwbHlpbmdcbiAqIGhlYWRlcnMgdG8gdGhlIGJyb3dzZXIncyBuYXRpdmUgYGltZ2AgcmVxdWVzdHMgaXMgaW1wb3NzaWJsZSwgc28gYSBxdWVyeVxuICogcGFyYW1ldGVyIGlzIG5lY2Vzc2FyeSBmb3IgYXV0aG9yaXphdGlvbiwgYnV0IGFkZGluZyB0aGUgcGFyYW1ldGVyIHRvIHRoZVxuICogVVJMIGVmZmVjdGl2ZWx5IGJ5cGFzc2VzIHRoZSBicm93c2VyJ3MgY2FjaGluZyBtZWNoYW5pc20gd2hlbiB0aGUgYXV0aCB0b2tlblxuICogY2hhbmdlcyBmb3IgaW1hZ2VzIHRoYXRcbiAqIHNob3VsZCBvdGhlcndpc2UgYmUgc3ViamVjdCB0byBjYWNoaW5nLlxuICpcbiAqIFRoZSBjYXRjaCB0byBmZXRjaGluZyBpbWFnZXMgYnkgWEhSIGlzIHRoZSByZXNwb25zZSBtdXN0IGJlIGZldGNoZWQgYXMgYVxuICogYEJsb2JgLiAgVGhlIHVzZXIgdGhlbiBnZXRzIGEgYnJvd3Nlci1zcGVjaWZpYyBVUkwgZm9yIHRoZSBibG9iIGJ5XG4gKiBgVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKWAsIHdoaWNoIGNhbiB0aGVuIGJlIGFzc2lnbmVkIHRvIHRoZSBgc3JjYFxuICogYXR0cmlidXRlIG9mIGFuIGBpbWdgIHRhZy4gIFRoZXNlIGJsb2IgVVJMcyBtdXN0IHRoZW4gYmUgXCJyZXZva2VkXCIgYnlcbiAqIGBVUkwucmV2b2tlT2JqZWN0VVJMKHVybClgIGluIG9yZGVyIHRvIHJlY2xhaW0gb2JqZWN0IFVSTCdzIGFzc29jaWF0ZWRcbiAqIHJlc291cmNlcy4gIFNlZSBbTW96aWxsYSdzIGRvY3NdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9GaWxlL1VzaW5nX2ZpbGVzX2Zyb21fd2ViX2FwcGxpY2F0aW9ucyNleGFtcGxlX3VzaW5nX29iamVjdF91cmxzX3RvX2Rpc3BsYXlfaW1hZ2VzKVxuICogb24gdGhlIHN1YmplY3QuXG4gKlxuICogVG8gdXNlIHRoZSBjb21wb25lbnQsIHNpbXBseSBhZGQgdGhlIHRhZyB0byBhIHRlbXBsYXRlIGFuZCBiaW5kIHRoZSBgc3JjYFxuICogYXR0cmlidXRlIHRvIHRoZSBzb3VyY2UgVVJMIG9mIHRoZSBkZXNpcmVkIGltYWdlLlxuICogYGBgXG4gKiA8bWFnZS14aHItaW1nIFtzcmNdPVwic29tZUNvbXBvbmVudC5pbWFnZVVybFJlcXVpcmVzQXV0aFwiPjwvbWFnZS14aHItaW1nPlxuICogYGBgXG4gKiBUaGUgY29tcG9uZW50IGVuY2Fwc3VsYXRlcyB0aGUgbG9naWMgb2YgY3JlYXRpbmcgYW5kIHJlbGVhc2luZyB0aGUgb2JqZWN0XG4gKiBVUkxzIGZvciB0aGUgaW1hZ2UgZGF0YSwgcHJldmVudGluZyBtZW1vcnkgbGVha3MuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogYCR7c2VsZWN0b3J9YCxcbiAgdGVtcGxhdGU6IGA8aW1nIFthdHRyLnNyY109XCJzYWZlQmxvYlVybFwiIChsb2FkKT1cIm9uSW1nTG9hZCgpXCIvPmAsXG4gIHN0eWxlczogWyBgaW1nIHsgaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJSB9YCBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBPQkpFQ1RfVVJMX1NFUlZJQ0UsXG4gICAgICB1c2VWYWx1ZTogVVJMXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFhockltZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblxuICBASW5wdXQoJ3NyYycpXG4gIHNvdXJjZVVybDogc3RyaW5nIHwgbnVsbCA9IG51bGxcbiAgc2FmZUJsb2JVcmw6IFNhZmVVcmwgfCBudWxsID0gbnVsbFxuXG4gIHByaXZhdGUgYmxvYlVybDogc3RyaW5nXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb25cblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KE9CSkVDVF9VUkxfU0VSVklDRSkgcHJpdmF0ZSBvYmplY3RVcmxTZXJ2aWNlOiBPYmplY3RVcmxTZXJ2aWNlLCBwcml2YXRlIHdlYkNsaWVudDogSHR0cENsaWVudCwgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKCFjaGFuZ2VzLnNvdXJjZVVybCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLnNvdXJjZVVybC5pc0ZpcnN0Q2hhbmdlKCkgJiYgIXRoaXMuc291cmNlVXJsKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGhpcy5kaXNwb3NlQ3VycmVudCgpXG4gICAgaWYgKCF0aGlzLnNvdXJjZVVybCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy53ZWJDbGllbnQuZ2V0KHRoaXMuc291cmNlVXJsLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pXG4gICAgICAuc3Vic2NyaWJlKHggPT4ge1xuICAgICAgICB0aGlzLm9iamVjdFVybFNlcnZpY2UucmV2b2tlT2JqZWN0VVJMKHRoaXMuYmxvYlVybClcbiAgICAgICAgdGhpcy5ibG9iVXJsID0gdGhpcy5vYmplY3RVcmxTZXJ2aWNlLmNyZWF0ZU9iamVjdFVSTCh4KVxuICAgICAgICB0aGlzLnNhZmVCbG9iVXJsID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybCh0aGlzLmJsb2JVcmwpXG4gICAgICB9KVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwb3NlQ3VycmVudCgpXG4gIH1cblxuICBvbkltZ0xvYWQoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwb3NlQ3VycmVudCgpXG4gIH1cblxuICBwcml2YXRlIGRpc3Bvc2VDdXJyZW50KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmJsb2JVcmwpIHtcbiAgICAgIHRoaXMub2JqZWN0VXJsU2VydmljZS5yZXZva2VPYmplY3RVUkwodGhpcy5ibG9iVXJsKVxuICAgIH1cbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKClcbiAgICB9XG4gICAgdGhpcy5ibG9iVXJsID0gbnVsbFxuICB9XG59Il19
@@ -1,105 +0,0 @@
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
- }
97
- FeedService.ɵfac = function FeedService_Factory(t) { return new (t || FeedService)(i0.ɵɵinject(i1.HttpClient)); };
98
- FeedService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FeedService, factory: FeedService.ɵfac, providedIn: 'root' });
99
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FeedService, [{
100
- type: Injectable,
101
- args: [{
102
- providedIn: 'root'
103
- }]
104
- }], function () { return [{ type: i1.HttpClient }]; }, null); })();
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1saWIvZmVlZC9mZWVkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUMzRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7OztBQVdwQyxNQUFNLE9BQU8sV0FBVztJQUV0QixZQUFvQixTQUFxQjtRQUFyQixjQUFTLEdBQVQsU0FBUyxDQUFZO1FBRXpDLDJFQUEyRTtRQUNuRSxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQWMsRUFBRSxDQUFDLENBQUM7UUFDN0MsV0FBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFckMsZUFBVSxHQUFHLElBQUksR0FBRyxFQUEyQyxDQUFDO0lBTjNCLENBQUM7SUFPOUMsU0FBUyxDQUFDLE1BQWM7UUFDdEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQWMsYUFBYSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFjO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQWUsY0FBYyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBaUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBVSx1QkFBdUIsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQTZFO1FB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RUFBRSxDQUFBO1lBQy9DLENBQUMsQ0FBQyxDQUFBO1lBQ0YsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUN4QixPQUFPLE9BQU8sQ0FBQTtRQUNoQixDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQzs7c0VBbEhVLFdBQVc7aUVBQVgsV0FBVyxXQUFYLFdBQVcsbUJBRlYsTUFBTTt1RkFFUCxXQUFXO2NBSHZCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IEZlZWQsIEZlZWRDb250ZW50LCBGZWVkRXhwYW5kZWQsIEZlZWRQb3N0LCBGZWVkUHJldmlldywgRmVlZFRvcGljLCBTZXJ2aWNlLCBTZXJ2aWNlVHlwZSwgU3R5bGVkRmVhdHVyZSB9IGZyb20gJy4vZmVlZC5tb2RlbCdcblxuXG5leHBvcnQgaW50ZXJmYWNlIEZlZWRQcmV2aWV3T3B0aW9ucyB7XG4gIHNraXBDb250ZW50RmV0Y2g/OiBib29sZWFuXG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZlZWRTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHdlYkNsaWVudDogSHR0cENsaWVudCkgeyB9XG5cbiAgLy8gVE9ETzogdGhlcmUgaXMgcHJvYmFibHkgYSBiZXR0ZXIgc29sdXRpb24gdGhhbiBtYWludGFpbmluZyB0aGlzIG1hcCBoZXJlXG4gIHByaXZhdGUgX2ZlZWRzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxGZWVkPj4oW10pO1xuICByZWFkb25seSBmZWVkcyQgPSB0aGlzLl9mZWVkcy5hc09ic2VydmFibGUoKTtcblxuICBwcml2YXRlIF9mZWVkSXRlbXMgPSBuZXcgTWFwPHN0cmluZywgQmVoYXZpb3JTdWJqZWN0PEFycmF5PEZlYXR1cmU+Pj4oKTtcbiAgZmVlZEl0ZW1zKGZlZWRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxBcnJheTxGZWF0dXJlPj4ge1xuICAgIHJldHVybiB0aGlzLl9mZWVkSXRlbXMuZ2V0KGZlZWRJZCkuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBmZXRjaEFsbEZlZWRzKCk6IE9ic2VydmFibGU8QXJyYXk8RmVlZD4+IHtcbiAgICByZXR1cm4gdGhpcy53ZWJDbGllbnQuZ2V0PEFycmF5PEZlZWQ+PignL2FwaS9mZWVkcy8nKTtcbiAgfVxuXG4gIGZldGNoRmVlZChmZWVkSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8RmVlZEV4cGFuZGVkPiB7XG4gICAgcmV0dXJuIHRoaXMud2ViQ2xpZW50LmdldDxGZWVkRXhwYW5kZWQ+KGAvYXBpL2ZlZWRzLyR7ZmVlZElkfWApO1xuICB9XG5cbiAgZmV0Y2hTZXJ2aWNlKHNlcnZpY2VJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxTZXJ2aWNlPiB7XG4gICAgcmV0dXJuIHRoaXMud2ViQ2xpZW50LmdldDxTZXJ2aWNlPihgL2FwaS9mZWVkcy9zZXJ2aWNlcy8ke3NlcnZpY2VJZH1gKTtcbiAgfVxuXG4gIGNyZWF0ZVNlcnZpY2Uoc2VydmljZTogeyB0aXRsZTogc3RyaW5nLCBzdW1tYXJ5Pzogc3RyaW5nLCBzZXJ2aWNlVHlwZTogc3RyaW5nLCBjb25maWc6IGFueX0pOiBPYnNlcnZhYmxlPFNlcnZpY2U+IHtcbiAgICByZXR1cm4gdGhpcy53ZWJDbGllbnQucG9zdDxTZXJ2aWNlPihgL2FwaS9mZWVkcy9zZXJ2aWNlc2AsIHNlcnZpY2UpO1xuICB9XG5cbiAgZmV0Y2hTZXJ2aWNlcygpOiBPYnNlcnZhYmxlPEFycmF5PFNlcnZpY2U+PiB7XG4gICAgcmV0dXJuIHRoaXMud2ViQ2xpZW50LmdldDxBcnJheTxTZXJ2aWNlPj4oYC9hcGkvZmVlZHMvc2VydmljZXNgKTtcbiAgfVxuXG4gIGZldGNoU2VydmljZUZlZWRzKHNlcnZpY2VJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxBcnJheTxGZWVkPj4ge1xuICAgIHJldHVybiB0aGlzLndlYkNsaWVudC5nZXQ8QXJyYXk8RmVlZD4+KGAvYXBpL2ZlZWRzL3NlcnZpY2VzLyR7c2VydmljZUlkfS9mZWVkc2ApO1xuICB9XG5cbiAgZmV0Y2hTZXJ2aWNlVHlwZShzZXJ2aWNlVHlwZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNlcnZpY2VUeXBlPiB7XG4gICAgcmV0dXJuIHRoaXMud2ViQ2xpZW50LmdldDxTZXJ2aWNlVHlwZT4oYC9hcGkvZmVlZHMvc2VydmljZV90eXBlcy8ke3NlcnZpY2VUeXBlSWR9YCk7XG4gIH1cblxuICBmZXRjaFRvcGljcyhzZXJ2aWNlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QXJyYXk8RmVlZFRvcGljPj4ge1xuICAgIHJldHVybiB0aGlzLndlYkNsaWVudC5nZXQ8QXJyYXk8RmVlZFRvcGljPj4oYC9hcGkvZmVlZHMvc2VydmljZXMvJHtzZXJ2aWNlSWR9L3RvcGljc2ApO1xuICB9XG5cbiAgcHJldmlld0ZlZWQoc2VydmljZUlkOiBzdHJpbmcsIHRvcGljSWQ6IHN0cmluZywgZmVlZFNwZWM6IFBhcnRpYWw8T21pdDxGZWVkUG9zdCwgJ3NlcnZpY2UnIHwgJ3RvcGljJz4+LCBvcHRzPzogRmVlZFByZXZpZXdPcHRpb25zKTogT2JzZXJ2YWJsZTxGZWVkUHJldmlldz4ge1xuICAgIG9wdHMgPSBvcHRzIHx8IHt9XG4gICAgY29uc3Qgc2tpcENvbnRlbnRGZXRjaDogYm9vbGVhbiA9IG9wdHMuc2tpcENvbnRlbnRGZXRjaCA9PT0gdHJ1ZVxuICAgIHJldHVybiB0aGlzLndlYkNsaWVudC5wb3N0PEZlZWRQcmV2aWV3PihcbiAgICAgIGAvYXBpL2ZlZWRzL3NlcnZpY2VzLyR7c2VydmljZUlkfS90b3BpY3MvJHt0b3BpY0lkfS9mZWVkX3ByZXZpZXc/c2tpcF9jb250ZW50X2ZldGNoPSR7c2tpcENvbnRlbnRGZXRjaH1gLFxuICAgICAgeyBmZWVkOiBmZWVkU3BlYyB9KTtcbiAgfVxuXG4gIGZldGNoVG9waWMoc2VydmljZUlkOiBzdHJpbmcsIHRvcGljSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8RmVlZFRvcGljPiB7XG4gICAgcmV0dXJuIHRoaXMud2ViQ2xpZW50LmdldDxGZWVkVG9waWM+KGAvYXBpL2ZlZWRzL3NlcnZpY2VzLyR7c2VydmljZUlkfS90b3BpY3MvJHt0b3BpY0lkfWApO1xuICB9XG5cbiAgZmV0Y2hTZXJ2aWNlVHlwZXMoKTogT2JzZXJ2YWJsZTxBcnJheTxTZXJ2aWNlVHlwZT4+IHtcbiAgICByZXR1cm4gdGhpcy53ZWJDbGllbnQuZ2V0PEFycmF5PFNlcnZpY2VUeXBlPj4oYC9hcGkvZmVlZHMvc2VydmljZV90eXBlc2ApO1xuICB9XG5cbiAgY3JlYXRlRmVlZChzZXJ2aWNlSWQ6IHN0cmluZywgdG9waWNJZDogc3RyaW5nLCBmZWVkQ29uZmlndXJhdGlvbjogYW55KTogT2JzZXJ2YWJsZTxGZWVkRXhwYW5kZWQ+IHtcbiAgICByZXR1cm4gdGhpcy53ZWJDbGllbnQucG9zdDxGZWVkRXhwYW5kZWQ+KGAvYXBpL2ZlZWRzL3NlcnZpY2VzLyR7c2VydmljZUlkfS90b3BpY3MvJHt0b3BpY0lkfS9mZWVkc2AsIGZlZWRDb25maWd1cmF0aW9uKTtcbiAgfVxuXG4gIHVwZGF0ZUZlZWQoZmVlZDogUGFydGlhbDxPbWl0PEZlZWRQb3N0LCAnaWQnPj4gJiBQaWNrPEZlZWQsICdpZCc+KTogT2JzZXJ2YWJsZTxGZWVkRXhwYW5kZWQ+IHtcbiAgICByZXR1cm4gdGhpcy53ZWJDbGllbnQucHV0PEZlZWRFeHBhbmRlZD4oYC9hcGkvZmVlZHMvJHtmZWVkLmlkfWAsIGZlZWQpO1xuICB9XG5cbiAgZGVsZXRlRmVlZChmZWVkOiBGZWVkIHwgRmVlZEV4cGFuZGVkKTogT2JzZXJ2YWJsZTx7fT4ge1xuICAgIHJldHVybiB0aGlzLndlYkNsaWVudC5kZWxldGUoYC9hcGkvZmVlZHMvJHtmZWVkLmlkfWAsIHtyZXNwb25zZVR5cGU6ICd0ZXh0J30pO1xuICB9XG5cbiAgZGVsZXRlU2VydmljZShzZXJ2aWNlOiBTZXJ2aWNlKTogT2JzZXJ2YWJsZTx7fT4ge1xuICAgIGNvbnNvbGUubG9nKCdkZWxldGUnKVxuICAgIHJldHVybiB0aGlzLndlYkNsaWVudC5kZWxldGUoYC9hcGkvZmVlZHMvc2VydmljZXMvJHtzZXJ2aWNlLmlkfWAsIHsgcmVzcG9uc2VUeXBlOiAndGV4dCcgfSk7XG4gIH1cblxuICBmZXRjaEZlZWRzKGV2ZW50SWQ6IG51bWJlcik6IE9ic2VydmFibGU8QXJyYXk8RmVlZD4+IHtcbiAgICBjb25zdCBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8QXJyYXk8RmVlZD4+KCk7XG4gICAgdGhpcy53ZWJDbGllbnQuZ2V0PEFycmF5PEZlZWQ+PihgL2FwaS9ldmVudHMvJHtldmVudElkfS9mZWVkc2ApLnN1YnNjcmliZShmZWVkcyA9PiB7XG4gICAgICBmZWVkcy5tYXAoZmVlZCA9PiB7XG4gICAgICAgIGZlZWQuaWQgPSBmZWVkLmlkLnRvU3RyaW5nKCk7XG4gICAgICAgIHJldHVybiBmZWVkO1xuICAgICAgfSk7XG5cbiAgICAgIGZlZWRzLmZvckVhY2goZmVlZCA9PiB7XG4gICAgICAgIGxldCBmZWVkSXRlbXMgPSB0aGlzLl9mZWVkSXRlbXMuZ2V0KGZlZWQuaWQpO1xuICAgICAgICBpZiAoIWZlZWRJdGVtcykge1xuICAgICAgICAgIGZlZWRJdGVtcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8RmVhdHVyZT4+KFtdKTtcbiAgICAgICAgICB0aGlzLl9mZWVkSXRlbXMuc2V0KGZlZWQuaWQsIGZlZWRJdGVtcyk7XG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIHN1YmplY3QubmV4dChmZWVkcyk7XG4gICAgICB0aGlzLl9mZWVkcy5uZXh0KGZlZWRzKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBzdWJqZWN0O1xuICB9XG5cbiAgZmV0Y2hGZWVkSXRlbXMoZXZlbnQ6IGFueSwgZmVlZDogRmVlZCk6IE9ic2VydmFibGU8RmVlZENvbnRlbnQ+IHtcbiAgICBjb25zdCBmZWVkSXRlbXMgPSB0aGlzLl9mZWVkSXRlbXMuZ2V0KGZlZWQuaWQpXG4gICAgcmV0dXJuIHRoaXMud2ViQ2xpZW50LnBvc3Q8RmVlZENvbnRlbnQ+KGAvYXBpL2V2ZW50cy8ke2V2ZW50LmlkfS9mZWVkcy8ke2ZlZWQuaWR9L2NvbnRlbnRgLCB7fSkucGlwZShcbiAgICAgIG1hcChjb250ZW50ID0+IHtcbiAgICAgICAgY29uc3QgZmVhdHVyZXMgPSBjb250ZW50Lml0ZW1zLmZlYXR1cmVzXG4gICAgICAgIGZlYXR1cmVzLmZvckVhY2goKGZlYXR1cmU6IFN0eWxlZEZlYXR1cmUpID0+IHtcbiAgICAgICAgICBmZWF0dXJlLmlkID0gU3RyaW5nKGZlYXR1cmUuaWQpXG4gICAgICAgICAgZmVhdHVyZS5wcm9wZXJ0aWVzID0gZmVhdHVyZS5wcm9wZXJ0aWVzIHx8IHt9XG4gICAgICAgIH0pXG4gICAgICAgIGZlZWRJdGVtcy5uZXh0KGZlYXR1cmVzKVxuICAgICAgICByZXR1cm4gY29udGVudFxuICAgICAgfSlcbiAgICApXG4gIH1cbn1cbiJdfQ==
@@ -1,52 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5nLmNkay1kYXRhLXNvdXJjZS5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1saWIvcGFnaW5nL3BhZ2luZy5jZGstZGF0YS1zb3VyY2UuYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBNEIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUzRTs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sZ0JBQW9CLFNBQVEsVUFBYTtJQU9wRCxZQUFvQixRQUFnQixFQUFVLFNBQThEO1FBQzFHLEtBQUssRUFBRSxDQUFBO1FBRFcsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQXFEO1FBTHBHLFNBQUksR0FBZSxJQUFJLENBQUE7UUFDdkIsVUFBSyxHQUFHLElBQUksZUFBZSxDQUFNLEVBQUUsQ0FBQyxDQUFBO1FBQ3BDLGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQTtRQUNoQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUE7SUFJekMsQ0FBQztJQUVELE9BQU8sQ0FBQyxnQkFBa0M7UUFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNsRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ3BELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFBO1lBQ3BELEtBQUssSUFBSSxJQUFJLEdBQUcsU0FBUyxFQUFFLElBQUksSUFBSSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0JBQ2xELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7YUFDakI7UUFDSCxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ0gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFBO0lBQ25CLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUNqQyxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsS0FBYTtRQUNwQyxPQUFPLGdCQUFnQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUVPLEtBQUssQ0FBQyxTQUFpQjtRQUM3QixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3BDLE9BQU07U0FDUDtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ2hDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFBO1FBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDcEcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ2QsSUFBSSxPQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLFFBQVEsRUFBRTtvQkFDeEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtRUFBbUUsQ0FBQyxDQUFBO2lCQUNyRjtnQkFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7YUFDcEQ7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ3pFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM1QixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb25WaWV3ZXIsIERhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBwYWdlRm9ySXRlbUluZGV4LCBQYWdlT2YsIFBhZ2luZ1BhcmFtZXRlcnMgfSBmcm9tICcuL3BhZ2luZy5tb2RlbCdcblxuLyoqXG4gKiBUaGlzIGNsYXNzIGlzIGFuIGFkYXB0YXRpb24gZnJvbSB0aGUgW0FuZ3VsYXIgTWF0ZXJpYWwgR3VpZGVdKGh0dHBzOi8vdjgubWF0ZXJpYWwuYW5ndWxhci5pby9jZGsvc2Nyb2xsaW5nL292ZXJ2aWV3KSwgX1wiU3BlY2lmeWluZyBkYXRhXCIgZXhhbXBsZV8sIGFsc29cbiAqIGF2YWlsYWJsZSBvbiBbU3RhY2tCbGl0el0oaHR0cHM6Ly9zdGFja2JsaXR6LmNvbS9hbmd1bGFyL21yYmtqYWdubnJhP2ZpbGU9c3JjJTJGYXBwJTJGY2RrLXZpcnR1YWwtc2Nyb2xsLWRhdGEtc291cmNlLWV4YW1wbGUudHMpLlxuICovXG5leHBvcnQgY2xhc3MgUGFnaW5nRGF0YVNvdXJjZTxUPiBleHRlbmRzIERhdGFTb3VyY2U8VD4ge1xuXG4gIHByaXZhdGUgZGF0YTogVFtdIHwgbnVsbCA9IG51bGxcbiAgcHJpdmF0ZSBkYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VFtdPihbXSlcbiAgcHJpdmF0ZSBmZXRjaGVkUGFnZXMgPSBuZXcgU2V0PG51bWJlcj4oKVxuICBwcml2YXRlIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFnZVNpemU6IG51bWJlciwgcHJpdmF0ZSBmZXRjaFBhZ2U6IChwYWdpbmc6IFBhZ2luZ1BhcmFtZXRlcnMpID0+IE9ic2VydmFibGU8UGFnZU9mPFQ+Pikge1xuICAgIHN1cGVyKClcbiAgfVxuXG4gIGNvbm5lY3QoY29sbGVjdGlvblZpZXdlcjogQ29sbGVjdGlvblZpZXdlcik6IE9ic2VydmFibGU8cmVhZG9ubHkgVFtdPiB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKGNvbGxlY3Rpb25WaWV3ZXIudmlld0NoYW5nZS5zdWJzY3JpYmUocmFuZ2UgPT4ge1xuICAgICAgY29uc3Qgc3RhcnRQYWdlID0gdGhpcy5wYWdlRm9ySXRlbUluZGV4KHJhbmdlLnN0YXJ0KVxuICAgICAgY29uc3QgZW5kUGFnZSA9IHRoaXMucGFnZUZvckl0ZW1JbmRleChyYW5nZS5lbmQgLSAxKVxuICAgICAgZm9yIChsZXQgcGFnZSA9IHN0YXJ0UGFnZTsgcGFnZSA8PSBlbmRQYWdlOyBwYWdlKyspIHtcbiAgICAgICAgdGhpcy5mZXRjaChwYWdlKVxuICAgICAgfVxuICAgIH0pKVxuICAgIHJldHVybiB0aGlzLmRhdGEkXG4gIH1cblxuICBkaXNjb25uZWN0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKClcbiAgfVxuXG4gIHByaXZhdGUgcGFnZUZvckl0ZW1JbmRleChpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gcGFnZUZvckl0ZW1JbmRleChpbmRleCwgdGhpcy5wYWdlU2l6ZSlcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2gocGFnZUluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5mZXRjaGVkUGFnZXMuaGFzKHBhZ2VJbmRleCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aGlzLmZldGNoZWRQYWdlcy5hZGQocGFnZUluZGV4KVxuICAgIGNvbnN0IGluY2x1ZGVUb3RhbENvdW50ID0gIXRoaXMuZGF0YVxuICAgIHRoaXMuZmV0Y2hQYWdlKHsgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIHBhZ2VJbmRleDogcGFnZUluZGV4LCBpbmNsdWRlVG90YWxDb3VudCB9KS5zdWJzY3JpYmUocGFnZSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZGF0YSkge1xuICAgICAgICBpZiAodHlwZW9mKHBhZ2UudG90YWxDb3VudCkgIT09ICdudW1iZXInKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdkYXRhIGlzIG51bGwgYW5kIG5vIHRvdGFsIGNvdW50IGlzIGF2YWlsYWJsZSB0byBpbmZvcm0gYWxsb2NhdGlvbicpXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kYXRhID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogcGFnZS50b3RhbENvdW50IH0pXG4gICAgICB9XG4gICAgICB0aGlzLmRhdGEuc3BsaWNlKHBhZ2VJbmRleCAqIHRoaXMucGFnZVNpemUsIHRoaXMucGFnZVNpemUsIC4uLnBhZ2UuaXRlbXMpXG4gICAgICB0aGlzLmRhdGEkLm5leHQodGhpcy5kYXRhKVxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
@@ -1,25 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5nLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1saWIvcGFnaW5nL3BhZ2luZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQkEsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxTQUFpQixFQUFFLFFBQW1DLEVBQVUsRUFBRTtJQUNqRyxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRTtRQUNoQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQTtLQUM3QjtJQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLENBQUE7QUFDekMsQ0FBQyxDQUFBO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBR3hCLENBQUMsU0FBb0MsRUFBRSxRQUFpQixFQUFzQixFQUFFO0lBQ2xGLElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxFQUFFO1FBQ2pDLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFBO1FBQzdCLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFBO0tBQ2hDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsUUFBUSxHQUFHLFNBQVMsQ0FBQTtJQUNsQyxNQUFNLEdBQUcsR0FBRyxLQUFLLEdBQUcsUUFBUSxDQUFBO0lBQzVCLE9BQU8sQ0FBRSxLQUFLLEVBQUUsR0FBRyxDQUFFLENBQUE7QUFDdkIsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luZ1BhcmFtZXRlcnMge1xuICBwYWdlU2l6ZTogbnVtYmVyLFxuICBwYWdlSW5kZXg6IG51bWJlcixcbiAgaW5jbHVkZVRvdGFsQ291bnQ/OiBib29sZWFuIHwgbnVsbFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VPZjxUPiB7XG4gIHBhZ2VTaXplOiBudW1iZXIsXG4gIHBhZ2VJbmRleDogbnVtYmVyLFxuICB0b3RhbENvdW50PzogbnVtYmVyIHwgbnVsbCxcbiAgbmV4dD86IFBhZ2luZ1BhcmFtZXRlcnMgfCBudWxsXG4gIHByZXY/OiBQYWdpbmdQYXJhbWV0ZXJzIHwgbnVsbFxuICBpdGVtczogVFtdXG59XG5cbmV4cG9ydCBjb25zdCBwYWdlRm9ySXRlbUluZGV4ID0gKGl0ZW1JbmRleDogbnVtYmVyLCBwYWdlU2l6ZTogbnVtYmVyIHwgUGFnaW5nUGFyYW1ldGVycyk6IG51bWJlciA9PiB7XG4gIGlmICh0eXBlb2YgcGFnZVNpemUgPT09ICdvYmplY3QnKSB7XG4gICAgcGFnZVNpemUgPSBwYWdlU2l6ZS5wYWdlU2l6ZVxuICB9XG4gIHJldHVybiBNYXRoLmZsb29yKGl0ZW1JbmRleCAvIHBhZ2VTaXplKVxufVxuXG4vKipcbiAqIFJldHVybiB0aGUgcmFuZ2Ugb2YgaXRlbSBpbmRleGVzIGZvciB0aGUgZ2l2ZW4gcGFnZSBhbmQgcGFnZSBzaXplLiAgVGhlIGxhc3RcbiAqIGVuZCBwb3J0aW9uIG9mIHRoZSByYW5nZSBpcyBleGNsdXNpdmUsIHNvIHdoZW4gaW5kZXhpbmcgYW4gYXJyYXkgdGhlIGxhc3RcbiAqIGl0ZW0gb2YgdGhlIHBhZ2Ugd291bGQgaGF2ZSBwb3NpdGlvbiBgZW5kIC0gMWAuICBUaGlzIGFsbG93cyBvbmUgdG8gcGFzcyB0aGVcbiAqIHZhbHVlcyB0byBgQXJyYXkuc2xpY2UoKWAuXG4gKiBAcGFyYW0gcGFnZUluZGV4XG4gKiBAcGFyYW0gcGFnZVNpemVcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBjb25zdCBpdGVtUmFuZ2VPZlBhZ2U6IHtcbiAgKHBhZ2VJbmRleDogbnVtYmVyLCBwYWdlU2l6ZTogbnVtYmVyKTogWyBudW1iZXIsIG51bWJlciBdXG4gIChwYWdpbmc6IFBhZ2luZ1BhcmFtZXRlcnMpXG59ID0gKHBhZ2VJbmRleDogbnVtYmVyIHwgUGFnaW5nUGFyYW1ldGVycywgcGFnZVNpemU/OiBudW1iZXIpOiBbIG51bWJlciwgbnVtYmVyIF0gPT4ge1xuICBpZiAodHlwZW9mIHBhZ2VJbmRleCA9PT0gJ29iamVjdCcpIHtcbiAgICBwYWdlU2l6ZSA9IHBhZ2VJbmRleC5wYWdlU2l6ZVxuICAgIHBhZ2VJbmRleCA9IHBhZ2VJbmRleC5wYWdlSW5kZXhcbiAgfVxuICBjb25zdCBzdGFydCA9IHBhZ2VTaXplICogcGFnZUluZGV4XG4gIGNvbnN0IGVuZCA9IHN0YXJ0ICsgcGFnZVNpemVcbiAgcmV0dXJuIFsgc3RhcnQsIGVuZCBdXG59XG4iXX0=
@@ -1,145 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { UntypedFormControl, UntypedFormGroup, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../static-icon.service";
5
- import * as i2 from "@angular/common/http";
6
- import * as i3 from "@angular/platform-browser";
7
- import * as i4 from "@angular/forms";
8
- import * as i5 from "@ngageoint/mage.web-core-lib/common";
9
- export class StaticIconFormFieldComponent {
10
- constructor(iconService, httpClient, sanitizer) {
11
- this.iconService = iconService;
12
- this.httpClient = httpClient;
13
- this.sanitizer = sanitizer;
14
- this.iconRef = null;
15
- this.form = new UntypedFormGroup({
16
- iconRefToken: new UntypedFormControl(null),
17
- iconRefType: new UntypedFormControl(null, Validators.required)
18
- });
19
- this.onChange = (iconRef) => { };
20
- this.onValidatorChange = () => { };
21
- this.onTouched = () => { };
22
- this.form.valueChanges.subscribe((x) => {
23
- this.iconRef = iconRefForFormValue(x);
24
- this.onChange(this.iconRef);
25
- });
26
- }
27
- registerOnValidatorChange(fn) {
28
- this.onValidatorChange = fn;
29
- }
30
- ngOnChanges(changes) { }
31
- ngOnDestroy() { }
32
- onSelectIcon() { }
33
- writeValue(iconRef) {
34
- this.iconRef = iconRef;
35
- const formValue = formValueForIconRef(iconRef);
36
- this.form.setValue(formValue, { emitEvent: false });
37
- this.resolveIconRef();
38
- }
39
- registerOnChange(fn) {
40
- this.onChange = fn;
41
- }
42
- registerOnTouched(fn) {
43
- this.onTouched = fn;
44
- }
45
- setDisabledState(isDisabled) {
46
- if (isDisabled) {
47
- this.form.disable();
48
- }
49
- else {
50
- this.form.enable();
51
- }
52
- }
53
- validate(control) {
54
- return this.form.errors;
55
- }
56
- resolveIconRef() {
57
- if (!this.iconRef) {
58
- this.icon = null;
59
- return;
60
- }
61
- this.iconService.fetchIconByReference(this.iconRef).subscribe(x => {
62
- this.icon = x;
63
- if (!this.icon) {
64
- return;
65
- }
66
- });
67
- }
68
- }
69
- StaticIconFormFieldComponent.ɵfac = function StaticIconFormFieldComponent_Factory(t) { return new (t || StaticIconFormFieldComponent)(i0.ɵɵdirectiveInject(i1.StaticIconService), i0.ɵɵdirectiveInject(i2.HttpClient), i0.ɵɵdirectiveInject(i3.DomSanitizer)); };
70
- StaticIconFormFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: StaticIconFormFieldComponent, selectors: [["mage-static-icon-form-field"]], features: [i0.ɵɵProvidersFeature([
71
- {
72
- provide: NG_VALUE_ACCESSOR,
73
- multi: true,
74
- useExisting: StaticIconFormFieldComponent
75
- },
76
- {
77
- provide: NG_VALIDATORS,
78
- multi: true,
79
- useExisting: StaticIconFormFieldComponent
80
- },
81
- ]), i0.ɵɵNgOnChangesFeature], decls: 4, vars: 2, consts: [[3, "formGroup"], [1, "icon-image", 3, "src"], ["type", "hidden", "formControlName", "iconRefType"], ["type", "hidden", "formControlName", "iconRefToken"]], template: function StaticIconFormFieldComponent_Template(rf, ctx) { if (rf & 1) {
82
- i0.ɵɵelementStart(0, "div", 0);
83
- i0.ɵɵelement(1, "mage-xhr-img", 1)(2, "input", 2)(3, "input", 3);
84
- i0.ɵɵelementEnd();
85
- } if (rf & 2) {
86
- i0.ɵɵproperty("formGroup", ctx.form);
87
- i0.ɵɵadvance(1);
88
- i0.ɵɵproperty("src", ctx.icon == null ? null : ctx.icon.contentPath);
89
- } }, dependencies: [i4.DefaultValueAccessor, i4.NgControlStatus, i4.NgControlStatusGroup, i4.FormGroupDirective, i4.FormControlName, i5.XhrImgComponent], styles: [".icon-image[_ngcontent-%COMP%]{display:block;height:3em;width:3em}"] });
90
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StaticIconFormFieldComponent, [{
91
- type: Component,
92
- args: [{ selector: 'mage-static-icon-form-field', providers: [
93
- {
94
- provide: NG_VALUE_ACCESSOR,
95
- multi: true,
96
- useExisting: StaticIconFormFieldComponent
97
- },
98
- {
99
- provide: NG_VALIDATORS,
100
- multi: true,
101
- useExisting: StaticIconFormFieldComponent
102
- },
103
- ], template: "<div [formGroup]=\"form\">\n <mage-xhr-img class=\"icon-image\" [src]=\"icon?.contentPath\"></mage-xhr-img>\n <input type=\"hidden\" formControlName=\"iconRefType\"/>\n <input type=\"hidden\" formControlName=\"iconRefToken\"/>\n</div>", styles: [".icon-image{display:block;height:3em;width:3em}\n"] }]
104
- }], function () { return [{ type: i1.StaticIconService }, { type: i2.HttpClient }, { type: i3.DomSanitizer }]; }, null); })();
105
- var IconRefType;
106
- (function (IconRefType) {
107
- IconRefType["Registered"] = "id";
108
- IconRefType["SourceUrl"] = "sourceUrl";
109
- })(IconRefType || (IconRefType = {}));
110
- function iconRefForFormValue(x) {
111
- if (!x.iconRefType) {
112
- return null;
113
- }
114
- switch (x.iconRefType) {
115
- case IconRefType.Registered:
116
- return { [IconRefType.Registered]: x.iconRefToken };
117
- case IconRefType.SourceUrl:
118
- return { [IconRefType.SourceUrl]: x.iconRefToken };
119
- default:
120
- throw new Error('invalid icon ref type: ' + x.iconRefToken);
121
- }
122
- }
123
- function formValueForIconRef(x) {
124
- if (!x) {
125
- return {
126
- iconRefType: null,
127
- iconRefToken: null
128
- };
129
- }
130
- let iconRefType = null;
131
- let iconRefToken = null;
132
- if (x.hasOwnProperty(IconRefType.Registered)) {
133
- iconRefType = IconRefType.Registered || null;
134
- iconRefToken = x[IconRefType.Registered] || null;
135
- }
136
- else if (x.hasOwnProperty(IconRefType.SourceUrl)) {
137
- iconRefType = IconRefType.SourceUrl || null;
138
- iconRefToken = x[IconRefType.SourceUrl] || null;
139
- }
140
- return {
141
- iconRefType,
142
- iconRefToken
143
- };
144
- }
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLWljb24tZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWxpYi9zdGF0aWMtaWNvbi9zdGF0aWMtaWNvbi1mb3JtLWZpZWxkL3N0YXRpYy1pY29uLWZvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1saWIvc3RhdGljLWljb24vc3RhdGljLWljb24tZm9ybS1maWVsZC9zdGF0aWMtaWNvbi1mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQXVDLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFBeUMsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUErQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTs7Ozs7OztBQXVCdkwsTUFBTSxPQUFPLDRCQUE0QjtJQWN2QyxZQUFvQixXQUE4QixFQUFVLFVBQXNCLEVBQVUsU0FBdUI7UUFBL0YsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFabkgsWUFBTyxHQUF3QixJQUFJLENBQUE7UUFFbkMsU0FBSSxHQUFxQixJQUFJLGdCQUFnQixDQUFDO1lBQzVDLFlBQVksRUFBRSxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQztZQUMxQyxXQUFXLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUMvRCxDQUFDLENBQUE7UUFHTSxhQUFRLEdBQTJDLENBQUMsT0FBNEIsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFBO1FBQ3ZGLHNCQUFpQixHQUFlLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQTtRQUN4QyxjQUFTLEdBQWUsR0FB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QTtRQUMzQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUE7S0FDaEQ7SUFDRCxPQUFPO1FBQ0wsV0FBVztRQUNYLFlBQVk7S0FDYixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcbmltcG9ydCB7IENvbXBvbmVudCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJ1xuaW1wb3J0IHsgU3RhdGljSWNvbiwgU3RhdGljSWNvblJlZmVyZW5jZSB9IGZyb20gJy4uL3N0YXRpYy1pY29uLm1vZGVsJ1xuaW1wb3J0IHsgU3RhdGljSWNvblNlcnZpY2UgfSBmcm9tICcuLi9zdGF0aWMtaWNvbi5zZXJ2aWNlJ1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hZ2Utc3RhdGljLWljb24tZm9ybS1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGF0aWMtaWNvbi1mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3RhdGljLWljb24tZm9ybS1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IFN0YXRpY0ljb25Gb3JtRmllbGRDb21wb25lbnRcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBTdGF0aWNJY29uRm9ybUZpZWxkQ29tcG9uZW50XG4gICAgfSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTdGF0aWNJY29uRm9ybUZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3Ige1xuXG4gIGljb25SZWY6IFN0YXRpY0ljb25SZWZlcmVuY2UgPSBudWxsXG5cbiAgZm9ybTogVW50eXBlZEZvcm1Hcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICBpY29uUmVmVG9rZW46IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCksXG4gICAgaWNvblJlZlR5cGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgfSlcbiAgaWNvbjogU3RhdGljSWNvbiB8IG51bGxcblxuICBwcml2YXRlIG9uQ2hhbmdlOiAoaWNvblJlZjogU3RhdGljSWNvblJlZmVyZW5jZSkgPT4gdm9pZCA9IChpY29uUmVmOiBTdGF0aWNJY29uUmVmZXJlbmNlKSA9PiB7fVxuICBwcml2YXRlIG9uVmFsaWRhdG9yQ2hhbmdlOiAoKSA9PiB2b2lkID0gKCkgPT4ge31cbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaWNvblNlcnZpY2U6IFN0YXRpY0ljb25TZXJ2aWNlLCBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHtcbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoeDogSWNvblJlZkZvcm1WYWx1ZSkgPT4ge1xuICAgICAgdGhpcy5pY29uUmVmID0gaWNvblJlZkZvckZvcm1WYWx1ZSh4KVxuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmljb25SZWYpXG4gICAgfSlcbiAgfVxuXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2U/KGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblZhbGlkYXRvckNoYW5nZSA9IGZuXG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7IH1cblxuICBuZ09uRGVzdHJveSgpIHsgfVxuXG4gIG9uU2VsZWN0SWNvbigpIHsgfVxuXG4gIHdyaXRlVmFsdWUoaWNvblJlZjogU3RhdGljSWNvblJlZmVyZW5jZSk6IHZvaWQge1xuICAgIHRoaXMuaWNvblJlZiA9IGljb25SZWZcbiAgICBjb25zdCBmb3JtVmFsdWUgPSBmb3JtVmFsdWVGb3JJY29uUmVmKGljb25SZWYpXG4gICAgdGhpcy5mb3JtLnNldFZhbHVlKGZvcm1WYWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pXG4gICAgdGhpcy5yZXNvbHZlSWNvblJlZigpXG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoeDogU3RhdGljSWNvblJlZmVyZW5jZSB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm5cbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmblxuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICB0aGlzLmZvcm0uZGlzYWJsZSgpXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5mb3JtLmVuYWJsZSgpXG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5lcnJvcnNcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUljb25SZWYoKSB7XG4gICAgaWYgKCF0aGlzLmljb25SZWYpIHtcbiAgICAgIHRoaXMuaWNvbiA9IG51bGxcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aGlzLmljb25TZXJ2aWNlLmZldGNoSWNvbkJ5UmVmZXJlbmNlKHRoaXMuaWNvblJlZikuc3Vic2NyaWJlKHggPT4ge1xuICAgICAgdGhpcy5pY29uID0geFxuICAgICAgaWYgKCF0aGlzLmljb24pIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgfSlcbiAgfVxufVxuXG5lbnVtIEljb25SZWZUeXBlIHtcbiAgUmVnaXN0ZXJlZCA9ICdpZCcsXG4gIFNvdXJjZVVybCA9ICdzb3VyY2VVcmwnXG59XG5cbnR5cGUgSWNvblJlZkZvcm1WYWx1ZSA9IHtcbiAgaWNvblJlZlRva2VuOiBzdHJpbmcgfCBudWxsXG4gIGljb25SZWZUeXBlOiBJY29uUmVmVHlwZSB8IG51bGxcbn1cblxuZnVuY3Rpb24gaWNvblJlZkZvckZvcm1WYWx1ZSh4OiBJY29uUmVmRm9ybVZhbHVlKTogU3RhdGljSWNvblJlZmVyZW5jZSB8IG51bGwge1xuICBpZiAoIXguaWNvblJlZlR5cGUpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIHN3aXRjaCAoeC5pY29uUmVmVHlwZSkge1xuICAgIGNhc2UgSWNvblJlZlR5cGUuUmVnaXN0ZXJlZDpcbiAgICAgIHJldHVybiB7IFtJY29uUmVmVHlwZS5SZWdpc3RlcmVkXTogeC5pY29uUmVmVG9rZW4gfVxuICAgIGNhc2UgSWNvblJlZlR5cGUuU291cmNlVXJsOlxuICAgICAgcmV0dXJuIHsgW0ljb25SZWZUeXBlLlNvdXJjZVVybF06IHguaWNvblJlZlRva2VuIH1cbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIGljb24gcmVmIHR5cGU6ICcgKyB4Lmljb25SZWZUb2tlbilcbiAgfVxufVxuXG5mdW5jdGlvbiBmb3JtVmFsdWVGb3JJY29uUmVmKHg6IFN0YXRpY0ljb25SZWZlcmVuY2UgfCBudWxsKTogSWNvblJlZkZvcm1WYWx1ZSB7XG4gIGlmICgheCkge1xuICAgIHJldHVybiB7XG4gICAgICBpY29uUmVmVHlwZTogbnVsbCxcbiAgICAgIGljb25SZWZUb2tlbjogbnVsbFxuICAgIH1cbiAgfVxuICBsZXQgaWNvblJlZlR5cGU6IEljb25SZWZUeXBlIHwgbnVsbCA9IG51bGxcbiAgbGV0IGljb25SZWZUb2tlbjogc3RyaW5nIHwgbnVsbCA9IG51bGxcbiAgaWYgKHguaGFzT3duUHJvcGVydHkoSWNvblJlZlR5cGUuUmVnaXN0ZXJlZCkpIHtcbiAgICBpY29uUmVmVHlwZSA9IEljb25SZWZUeXBlLlJlZ2lzdGVyZWQgfHwgbnVsbFxuICAgIGljb25SZWZUb2tlbiA9IHhbSWNvblJlZlR5cGUuUmVnaXN0ZXJlZF0gfHwgbnVsbFxuICB9XG4gIGVsc2UgaWYgKHguaGFzT3duUHJvcGVydHkoSWNvblJlZlR5cGUuU291cmNlVXJsKSkge1xuICAgIGljb25SZWZUeXBlID0gSWNvblJlZlR5cGUuU291cmNlVXJsIHx8IG51bGxcbiAgICBpY29uUmVmVG9rZW4gPSB4W0ljb25SZWZUeXBlLlNvdXJjZVVybF0gfHwgbnVsbFxuICB9XG4gIHJldHVybiB7XG4gICAgaWNvblJlZlR5cGUsXG4gICAgaWNvblJlZlRva2VuXG4gIH1cbn1cbiIsIjxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gIDxtYWdlLXhoci1pbWcgY2xhc3M9XCJpY29uLWltYWdlXCIgW3NyY109XCJpY29uPy5jb250ZW50UGF0aFwiPjwvbWFnZS14aHItaW1nPlxuICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIGZvcm1Db250cm9sTmFtZT1cImljb25SZWZUeXBlXCIvPlxuICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIGZvcm1Db250cm9sTmFtZT1cImljb25SZWZUb2tlblwiLz5cbjwvZGl2PiJdfQ==
@@ -1,35 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { contentPathOfIcon } from '../static-icon.model';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@ngageoint/mage.web-core-lib/common";
5
- export class StaticIconImgComponent {
6
- constructor() { }
7
- ngOnInit() {
8
- }
9
- ngOnChanges(changes) {
10
- if (changes.iconRef) {
11
- if (this.iconRef) {
12
- this.iconPath = contentPathOfIcon(this.iconRef);
13
- }
14
- else {
15
- this.iconPath = null;
16
- }
17
- }
18
- }
19
- }
20
- StaticIconImgComponent.ɵfac = function StaticIconImgComponent_Factory(t) { return new (t || StaticIconImgComponent)(); };
21
- StaticIconImgComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: StaticIconImgComponent, selectors: [["mage-static-icon-img"]], inputs: { iconRef: "iconRef" }, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [[3, "src"]], template: function StaticIconImgComponent_Template(rf, ctx) { if (rf & 1) {
22
- i0.ɵɵelement(0, "mage-xhr-img", 0);
23
- } if (rf & 2) {
24
- i0.ɵɵproperty("src", ctx.iconPath);
25
- } }, dependencies: [i1.XhrImgComponent], encapsulation: 2 });
26
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StaticIconImgComponent, [{
27
- type: Component,
28
- args: [{
29
- selector: 'mage-static-icon-img',
30
- template: `<mage-xhr-img [src]="iconPath"></mage-xhr-img>`,
31
- }]
32
- }], function () { return []; }, { iconRef: [{
33
- type: Input
34
- }] }); })();
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLWljb24taW1nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtbGliL3N0YXRpYy1pY29uL3N0YXRpYy1pY29uLWltZy9zdGF0aWMtaWNvbi1pbWcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQWlDLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7OztBQU12RixNQUFNLE9BQU8sc0JBQXNCO0lBTWpDLGdCQUFnQixDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxRQUFRLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO2FBQ2hEO2lCQUNJO2dCQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBO2FBQ3JCO1NBQ0Y7SUFDSCxDQUFDOzs0RkFwQlUsc0JBQXNCO3lFQUF0QixzQkFBc0I7UUFGdEIsa0NBQThDOztRQUFoQyxrQ0FBZ0I7O3VGQUU5QixzQkFBc0I7Y0FKbEMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLFFBQVEsRUFBRSxnREFBZ0Q7YUFDM0Q7c0NBSUMsT0FBTztrQkFETixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlZ2lzdGVyZWRTdGF0aWNJY29uUmVmZXJlbmNlLCBjb250ZW50UGF0aE9mSWNvbiB9IGZyb20gJy4uL3N0YXRpYy1pY29uLm1vZGVsJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYWdlLXN0YXRpYy1pY29uLWltZycsXG4gIHRlbXBsYXRlOiBgPG1hZ2UteGhyLWltZyBbc3JjXT1cImljb25QYXRoXCI+PC9tYWdlLXhoci1pbWc+YCxcbn0pXG5leHBvcnQgY2xhc3MgU3RhdGljSWNvbkltZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKVxuICBpY29uUmVmOiBSZWdpc3RlcmVkU3RhdGljSWNvblJlZmVyZW5jZSB8IHN0cmluZyB8IG51bGxcbiAgaWNvblBhdGg6IHN0cmluZyB8IG51bGxcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmljb25SZWYpIHtcbiAgICAgIGlmICh0aGlzLmljb25SZWYpIHtcbiAgICAgICAgdGhpcy5pY29uUGF0aCA9IGNvbnRlbnRQYXRoT2ZJY29uKHRoaXMuaWNvblJlZilcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLmljb25QYXRoID0gbnVsbFxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -1,10 +0,0 @@
1
- export const contentPathOfIcon = (icon) => {
2
- if (!icon) {
3
- return;
4
- }
5
- if (typeof icon !== 'string') {
6
- icon = icon.id;
7
- }
8
- return `/api/icons/${icon}/content`;
9
- };
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLWljb24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWxpYi9zdGF0aWMtaWNvbi9zdGF0aWMtaWNvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxQkEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUE2RSxFQUFzQixFQUFFO0lBQ3JJLElBQUksQ0FBQyxJQUFJLEVBQUU7UUFDVCxPQUFNO0tBQ1A7SUFDRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM1QixJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQTtLQUNmO0lBQ0QsT0FBTyxjQUFjLElBQUksVUFBVSxDQUFBO0FBQ3JDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IGludGVyZmFjZSBTdGF0aWNJY29uIHtcbiAgaWQ6IHN0cmluZ1xuICBzb3VyY2VVcmw6IHN0cmluZ1xuICBjb250ZW50UGF0aDogc3RyaW5nXG4gIHRpdGxlPzogc3RyaW5nXG4gIHN1bW1hcnk/OiBzdHJpbmdcbiAgZmlsZU5hbWU/OiBzdHJpbmdcbiAgdGFncz86IHN0cmluZ1tdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJlZFN0YXRpY0ljb25SZWZlcmVuY2Uge1xuICBpZDogc3RyaW5nXG4gIHNvdXJjZVVybD86IG5ldmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlVXJsU3RhdGljSWNvblJlZmVyZW5jZSB7XG4gIHNvdXJjZVVybDogc3RyaW5nXG4gIGlkPzogbmV2ZXJcbn1cblxuZXhwb3J0IGNvbnN0IGNvbnRlbnRQYXRoT2ZJY29uID0gKGljb24/OiBTdGF0aWNJY29uIHwgUmVnaXN0ZXJlZFN0YXRpY0ljb25SZWZlcmVuY2UgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKCFpY29uKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgaWYgKHR5cGVvZiBpY29uICE9PSAnc3RyaW5nJykge1xuICAgIGljb24gPSBpY29uLmlkXG4gIH1cbiAgcmV0dXJuIGAvYXBpL2ljb25zLyR7aWNvbn0vY29udGVudGBcbn1cblxuZXhwb3J0IHR5cGUgU3RhdGljSWNvblJlZmVyZW5jZSA9IFJlZ2lzdGVyZWRTdGF0aWNJY29uUmVmZXJlbmNlIHwgU291cmNlVXJsU3RhdGljSWNvblJlZmVyZW5jZVxuIl19