@ngageoint/mage.web-core-lib 6.2.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 (181) hide show
  1. package/README.md +24 -0
  2. package/bundles/ngageoint-mage.web-core-lib-common.umd.js +146 -0
  3. package/bundles/ngageoint-mage.web-core-lib-common.umd.js.map +1 -0
  4. package/bundles/ngageoint-mage.web-core-lib-common.umd.min.js +2 -0
  5. package/bundles/ngageoint-mage.web-core-lib-common.umd.min.js.map +1 -0
  6. package/bundles/ngageoint-mage.web-core-lib-event.umd.js +14 -0
  7. package/bundles/ngageoint-mage.web-core-lib-event.umd.js.map +1 -0
  8. package/bundles/ngageoint-mage.web-core-lib-event.umd.min.js +2 -0
  9. package/bundles/ngageoint-mage.web-core-lib-event.umd.min.js.map +1 -0
  10. package/bundles/ngageoint-mage.web-core-lib-feed.umd.js +114 -0
  11. package/bundles/ngageoint-mage.web-core-lib-feed.umd.js.map +1 -0
  12. package/bundles/ngageoint-mage.web-core-lib-feed.umd.min.js +2 -0
  13. package/bundles/ngageoint-mage.web-core-lib-feed.umd.min.js.map +1 -0
  14. package/bundles/ngageoint-mage.web-core-lib-paging.umd.js +313 -0
  15. package/bundles/ngageoint-mage.web-core-lib-paging.umd.js.map +1 -0
  16. package/bundles/ngageoint-mage.web-core-lib-paging.umd.min.js +16 -0
  17. package/bundles/ngageoint-mage.web-core-lib-paging.umd.min.js.map +1 -0
  18. package/bundles/ngageoint-mage.web-core-lib-plugin.umd.js +11 -0
  19. package/bundles/ngageoint-mage.web-core-lib-plugin.umd.js.map +1 -0
  20. package/bundles/ngageoint-mage.web-core-lib-plugin.umd.min.js +2 -0
  21. package/bundles/ngageoint-mage.web-core-lib-plugin.umd.min.js.map +1 -0
  22. package/bundles/ngageoint-mage.web-core-lib-static-icon.umd.js +391 -0
  23. package/bundles/ngageoint-mage.web-core-lib-static-icon.umd.js.map +1 -0
  24. package/bundles/ngageoint-mage.web-core-lib-static-icon.umd.min.js +2 -0
  25. package/bundles/ngageoint-mage.web-core-lib-static-icon.umd.min.js.map +1 -0
  26. package/bundles/ngageoint-mage.web-core-lib-user.umd.js +492 -0
  27. package/bundles/ngageoint-mage.web-core-lib-user.umd.js.map +1 -0
  28. package/bundles/ngageoint-mage.web-core-lib-user.umd.min.js +16 -0
  29. package/bundles/ngageoint-mage.web-core-lib-user.umd.min.js.map +1 -0
  30. package/bundles/ngageoint-mage.web-core-lib.umd.js +32 -0
  31. package/bundles/ngageoint-mage.web-core-lib.umd.js.map +1 -0
  32. package/bundles/ngageoint-mage.web-core-lib.umd.min.js +2 -0
  33. package/bundles/ngageoint-mage.web-core-lib.umd.min.js.map +1 -0
  34. package/common/mage-common.module.d.ts +7 -0
  35. package/common/ngageoint-mage.web-core-lib-common.d.ts +5 -0
  36. package/common/package.json +12 -0
  37. package/common/public-api.d.ts +2 -0
  38. package/common/xhr-img.component.d.ts +58 -0
  39. package/esm2015/common/mage-common.module.js +26 -0
  40. package/esm2015/common/ngageoint-mage.web-core-lib-common.js +5 -0
  41. package/esm2015/common/public-api.js +3 -0
  42. package/esm2015/common/xhr-img.component.js +109 -0
  43. package/esm2015/event/event-read.service.js +3 -0
  44. package/esm2015/event/event.model.js +1 -0
  45. package/esm2015/event/ngageoint-mage.web-core-lib-event.js +5 -0
  46. package/esm2015/event/public-api.js +2 -0
  47. package/esm2015/feed/feed.model.js +1 -0
  48. package/esm2015/feed/feed.service.js +105 -0
  49. package/esm2015/feed/ngageoint-mage.web-core-lib-feed.js +5 -0
  50. package/esm2015/feed/public-api.js +2 -0
  51. package/esm2015/mage-core-lib.module.js +20 -0
  52. package/esm2015/ngageoint-mage.web-core-lib.js +5 -0
  53. package/esm2015/paging/ngageoint-mage.web-core-lib-paging.js +5 -0
  54. package/esm2015/paging/paging.cdk-data-source.adapter.js +52 -0
  55. package/esm2015/paging/paging.model.js +25 -0
  56. package/esm2015/paging/public-api.js +3 -0
  57. package/esm2015/plugin/ngageoint-mage.web-core-lib-plugin.js +4 -0
  58. package/esm2015/plugin/plugin.model.js +1 -0
  59. package/esm2015/plugin/public-api.js +1 -0
  60. package/esm2015/public-api.js +5 -0
  61. package/esm2015/static-icon/ngageoint-mage.web-core-lib-static-icon.js +5 -0
  62. package/esm2015/static-icon/public-api.js +7 -0
  63. package/esm2015/static-icon/static-icon-form-field/static-icon-form-field.component.js +152 -0
  64. package/esm2015/static-icon/static-icon-img/static-icon-img.component.js +35 -0
  65. package/esm2015/static-icon/static-icon-select/static-icon-select.component.js +61 -0
  66. package/esm2015/static-icon/static-icon.model.js +10 -0
  67. package/esm2015/static-icon/static-icon.module.js +55 -0
  68. package/esm2015/static-icon/static-icon.service.js +82 -0
  69. package/esm2015/user/ngageoint-mage.web-core-lib-user.js +5 -0
  70. package/esm2015/user/public-api.js +4 -0
  71. package/esm2015/user/user-read.service.js +40 -0
  72. package/esm2015/user/user-select/user-select.component.js +165 -0
  73. package/esm2015/user/user.model.js +1 -0
  74. package/esm2015/user/user.module.js +65 -0
  75. package/esm5/common/mage-common.module.js +30 -0
  76. package/esm5/common/ngageoint-mage.web-core-lib-common.js +5 -0
  77. package/esm5/common/public-api.js +3 -0
  78. package/esm5/common/xhr-img.component.js +112 -0
  79. package/esm5/event/event-read.service.js +3 -0
  80. package/esm5/event/event.model.js +1 -0
  81. package/esm5/event/ngageoint-mage.web-core-lib-event.js +5 -0
  82. package/esm5/event/public-api.js +2 -0
  83. package/esm5/feed/feed.model.js +1 -0
  84. package/esm5/feed/feed.service.js +108 -0
  85. package/esm5/feed/ngageoint-mage.web-core-lib-feed.js +5 -0
  86. package/esm5/feed/public-api.js +2 -0
  87. package/esm5/mage-core-lib.module.js +24 -0
  88. package/esm5/ngageoint-mage.web-core-lib.js +5 -0
  89. package/esm5/paging/ngageoint-mage.web-core-lib-paging.js +5 -0
  90. package/esm5/paging/paging.cdk-data-source.adapter.js +60 -0
  91. package/esm5/paging/paging.model.js +25 -0
  92. package/esm5/paging/public-api.js +3 -0
  93. package/esm5/plugin/ngageoint-mage.web-core-lib-plugin.js +4 -0
  94. package/esm5/plugin/plugin.model.js +1 -0
  95. package/esm5/plugin/public-api.js +1 -0
  96. package/esm5/public-api.js +5 -0
  97. package/esm5/static-icon/ngageoint-mage.web-core-lib-static-icon.js +5 -0
  98. package/esm5/static-icon/public-api.js +7 -0
  99. package/esm5/static-icon/static-icon-form-field/static-icon-form-field.component.js +157 -0
  100. package/esm5/static-icon/static-icon-img/static-icon-img.component.js +38 -0
  101. package/esm5/static-icon/static-icon-select/static-icon-select.component.js +65 -0
  102. package/esm5/static-icon/static-icon.model.js +10 -0
  103. package/esm5/static-icon/static-icon.module.js +59 -0
  104. package/esm5/static-icon/static-icon.service.js +84 -0
  105. package/esm5/user/ngageoint-mage.web-core-lib-user.js +5 -0
  106. package/esm5/user/public-api.js +4 -0
  107. package/esm5/user/user-read.service.js +42 -0
  108. package/esm5/user/user-select/user-select.component.js +175 -0
  109. package/esm5/user/user.model.js +1 -0
  110. package/esm5/user/user.module.js +69 -0
  111. package/event/event-read.service.d.ts +11 -0
  112. package/event/event.model.d.ts +6 -0
  113. package/event/ngageoint-mage.web-core-lib-event.d.ts +5 -0
  114. package/event/package.json +12 -0
  115. package/event/public-api.d.ts +2 -0
  116. package/feed/feed.model.d.ts +83 -0
  117. package/feed/feed.service.d.ts +40 -0
  118. package/feed/ngageoint-mage.web-core-lib-feed.d.ts +5 -0
  119. package/feed/package.json +12 -0
  120. package/feed/public-api.d.ts +2 -0
  121. package/fesm2015/ngageoint-mage.web-core-lib-common.js +137 -0
  122. package/fesm2015/ngageoint-mage.web-core-lib-common.js.map +1 -0
  123. package/fesm2015/ngageoint-mage.web-core-lib-event.js +10 -0
  124. package/fesm2015/ngageoint-mage.web-core-lib-event.js.map +1 -0
  125. package/fesm2015/ngageoint-mage.web-core-lib-feed.js +111 -0
  126. package/fesm2015/ngageoint-mage.web-core-lib-feed.js.map +1 -0
  127. package/fesm2015/ngageoint-mage.web-core-lib-paging.js +83 -0
  128. package/fesm2015/ngageoint-mage.web-core-lib-paging.js.map +1 -0
  129. package/fesm2015/ngageoint-mage.web-core-lib-plugin.js +4 -0
  130. package/fesm2015/ngageoint-mage.web-core-lib-plugin.js.map +1 -0
  131. package/fesm2015/ngageoint-mage.web-core-lib-static-icon.js +379 -0
  132. package/fesm2015/ngageoint-mage.web-core-lib-static-icon.js.map +1 -0
  133. package/fesm2015/ngageoint-mage.web-core-lib-user.js +267 -0
  134. package/fesm2015/ngageoint-mage.web-core-lib-user.js.map +1 -0
  135. package/fesm2015/ngageoint-mage.web-core-lib.js +30 -0
  136. package/fesm2015/ngageoint-mage.web-core-lib.js.map +1 -0
  137. package/fesm5/ngageoint-mage.web-core-lib-common.js +142 -0
  138. package/fesm5/ngageoint-mage.web-core-lib-common.js.map +1 -0
  139. package/fesm5/ngageoint-mage.web-core-lib-event.js +10 -0
  140. package/fesm5/ngageoint-mage.web-core-lib-event.js.map +1 -0
  141. package/fesm5/ngageoint-mage.web-core-lib-feed.js +113 -0
  142. package/fesm5/ngageoint-mage.web-core-lib-feed.js.map +1 -0
  143. package/fesm5/ngageoint-mage.web-core-lib-paging.js +90 -0
  144. package/fesm5/ngageoint-mage.web-core-lib-paging.js.map +1 -0
  145. package/fesm5/ngageoint-mage.web-core-lib-plugin.js +4 -0
  146. package/fesm5/ngageoint-mage.web-core-lib-plugin.js.map +1 -0
  147. package/fesm5/ngageoint-mage.web-core-lib-static-icon.js +392 -0
  148. package/fesm5/ngageoint-mage.web-core-lib-static-icon.js.map +1 -0
  149. package/fesm5/ngageoint-mage.web-core-lib-user.js +280 -0
  150. package/fesm5/ngageoint-mage.web-core-lib-user.js.map +1 -0
  151. package/fesm5/ngageoint-mage.web-core-lib.js +33 -0
  152. package/fesm5/ngageoint-mage.web-core-lib.js.map +1 -0
  153. package/mage-core-lib.module.d.ts +6 -0
  154. package/ngageoint-mage.web-core-lib.d.ts +5 -0
  155. package/package.json +35 -0
  156. package/paging/ngageoint-mage.web-core-lib-paging.d.ts +5 -0
  157. package/paging/package.json +12 -0
  158. package/paging/paging.cdk-data-source.adapter.d.ts +20 -0
  159. package/paging/paging.model.d.ts +27 -0
  160. package/paging/public-api.d.ts +2 -0
  161. package/plugin/ngageoint-mage.web-core-lib-plugin.d.ts +5 -0
  162. package/plugin/package.json +12 -0
  163. package/plugin/plugin.model.d.ts +13 -0
  164. package/plugin/public-api.d.ts +1 -0
  165. package/public-api.d.ts +1 -0
  166. package/static-icon/ngageoint-mage.web-core-lib-static-icon.d.ts +5 -0
  167. package/static-icon/package.json +12 -0
  168. package/static-icon/public-api.d.ts +6 -0
  169. package/static-icon/static-icon-form-field/static-icon-form-field.component.d.ts +31 -0
  170. package/static-icon/static-icon-img/static-icon-img.component.d.ts +12 -0
  171. package/static-icon/static-icon-select/static-icon-select.component.d.ts +21 -0
  172. package/static-icon/static-icon.model.d.ts +19 -0
  173. package/static-icon/static-icon.module.d.ts +13 -0
  174. package/static-icon/static-icon.service.d.ts +20 -0
  175. package/user/ngageoint-mage.web-core-lib-user.d.ts +5 -0
  176. package/user/package.json +12 -0
  177. package/user/public-api.d.ts +4 -0
  178. package/user/user-read.service.d.ts +24 -0
  179. package/user/user-select/user-select.component.d.ts +38 -0
  180. package/user/user.model.d.ts +85 -0
  181. package/user/user.module.d.ts +16 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@ngageoint/mage.web-core-lib/user/user-read.service.ts","ng://@ngageoint/mage.web-core-lib/user/user-select/user-select.component.html","ng://@ngageoint/mage.web-core-lib/user/user-select/user-select.component.ts","ng://@ngageoint/mage.web-core-lib/user/user.module.ts"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","UserReadService","http","search","which","queryParams","page_size","String","pageSize","page","pageIndex","term","includeTotalCount","total","get","USER_READ_BASE_URL","params","core","ɵɵinject","HttpClient","factory","ɵfac","providedIn","USER_READ_SERVICE","InjectionToken","i0.ɵɵelementStart","i0.ɵɵtext","i0.ɵɵelementEnd","i0.ɵɵadvance","i0.ɵɵtextInterpolate1","i0.ɵɵtextInterpolate2","i0.ɵɵtextInterpolate","UserSelectComponent","userService","baseFindParams","freeze","nextPageScrollThreshold","searchTermDebounceTime","trackByUserId","x","id","users","totalCount","searchTerm$","Subject","currentSearchTerm","currentFetch","defineProperty","closed","ngOnInit","_this","pipe","distinctUntilChanged","debounceTime","subscribe","unsubscribe","fetchNextPage","ngOnChanges","changes","ngAfterViewInit","writeValue","userSelect","registerOnChange","fn","registerOnTouched","setDisabledState","isDisabled","onOpen","onScroll","_a","end","onScrollToEnd","nextPage","pageForItemIndex","findParams","concat","items","ɵɵdirectiveInject","selectors","viewQuery","rf","ctx","NgSelectComponent","provide","NG_VALUE_ACCESSOR","multi","useExisting","forwardRef","ɵɵNgOnChangesFeature","decls","vars","consts","template","i0.ɵɵlistener","$event","i0.ɵɵtemplate","i0.ɵɵproperty","loading","MageUserModule","imports","CommonModule","FormsModule","ReactiveFormsModule","ScrollingModule","MatAutocompleteModule","MatDialogModule","MatFormFieldModule","MatInputModule","MatListModule","MatSelectModule","NgSelectModule","declarations","exports"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { HttpClient } from '@angular/common/http'\nimport { InjectionToken, Injectable } from '@angular/core'\nimport { PageOf, PagingParameters } from '@ngageoint/mage.web-core-lib/paging'\nimport { Observable } from 'rxjs'\nimport { User } from './user.model'\n\nexport const USER_READ_BASE_URL = '/api/next-users'\n\ntype SearchQueryParams = {\n page_size: string,\n page: string,\n term?: string,\n total?: 'true' | 'false'\n}\n\nconst reqKeys: { [SearchParamKey in keyof UserSearchParams]: string } = {\n term: 'term',\n pageSize: 'page_size',\n pageIndex: 'page',\n includeTotalCount: 'total',\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserReadService {\n\n constructor(private http: HttpClient) { }\n\n search(which: UserSearchParams): Observable<PageOf<UserSearchResult>> {\n const queryParams: SearchQueryParams = {\n page_size: String(which.pageSize),\n page: String(which.pageIndex),\n }\n if (typeof which.term === 'string') {\n queryParams.term = which.term\n }\n if (typeof which.includeTotalCount === 'boolean') {\n queryParams.total = which.includeTotalCount ? 'true' : 'false'\n }\n return this.http.get<PageOf<UserSearchResult>>(`${USER_READ_BASE_URL}/search`, {\n params: queryParams\n })\n }\n}\n\nexport interface UserSearchParams extends PagingParameters {\n term?: string | null | undefined\n}\n\nexport type UserSearchResult = Pick<User, 'id' | 'username' | 'displayName' | 'email' | 'active' | 'enabled'> & {\n /**\n * A reduction of all the phone numbers to a single string\n */\n allPhones?: string | null | undefined\n}\n\nexport const USER_READ_SERVICE = new InjectionToken<UserReadService>('UserReadService')","<ng-select [items]=\"users\"\n [typeahead]=\"searchTerm$\"\n [virtualScroll]=\"true\"\n [loading]=\"loading\"\n [trackByFn]=\"trackByUserId\"\n appendTo=\"body\"\n placeholder=\"Choose a user\"\n bindLabel=\"displayName\"\n (open)=\"onOpen()\"\n (scroll)=\"onScroll($event)\"\n (scrollToEnd)=\"onScrollToEnd()\"\n >\n <ng-template ng-header-tmp>\n <small class=\"form-text text-muted\">{{totalCount}} matching users</small>\n </ng-template>\n <ng-template class=\"user-option\" ng-option-tmp let-user=\"item\" let-index=\"index\">\n <div class=\"user-option\">\n <p class=\"user-option__line primary\">{{user.displayName}} ({{user.username}})</p>\n <p class=\"user-option__line detail\">{{user.email || '[no email]'}}</p>\n <p class=\"user-option__line detail\">{{user.allPhones || '[no phone]'}}</p>\n </div>\n </ng-template>\n</ng-select>\n","import { AfterViewInit, Component, Input, OnChanges, SimpleChanges, ViewChild, forwardRef, OnInit } from '@angular/core'\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms'\nimport { NgSelectComponent } from '@ng-select/ng-select'\nimport { User } from '../user.model'\nimport { UserReadService, UserSearchParams, UserSearchResult } from '../user-read.service'\nimport { pageForItemIndex, itemRangeOfPage } from '@ngageoint/mage.web-core-lib/paging'\nimport { Subject, BehaviorSubject, SubscriptionLike, Unsubscribable } from 'rxjs'\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators'\nimport { X } from '@angular/cdk/keycodes'\n\n@Component({\n selector: 'mage-user-select',\n templateUrl: './user-select.component.html',\n styleUrls: [\n './user-select.component.scss'\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => UserSelectComponent)\n }\n ]\n})\nexport class UserSelectComponent implements OnInit, OnChanges, AfterViewInit, ControlValueAccessor {\n\n readonly baseFindParams: Readonly<UserSearchParams> = Object.freeze({\n pageSize: 100,\n pageIndex: 0,\n term: null\n })\n readonly nextPageScrollThreshold = 15\n readonly searchTermDebounceTime = 500\n readonly trackByUserId: (x: User) => User['id'] = x => x.id\n get loading(): boolean {\n return !!this.currentFetch && !this.currentFetch.closed\n }\n\n users: UserSearchResult[] = []\n totalCount = 0\n searchTerm$ = new Subject<string | null>()\n currentSearchTerm: string | null = null\n @ViewChild(NgSelectComponent, { static: true })\n userSelect: NgSelectComponent\n\n private currentFetch: SubscriptionLike | null = null\n\n constructor(private userService: UserReadService) { }\n\n ngOnInit() {\n this.searchTerm$.pipe(\n distinctUntilChanged(),\n debounceTime(this.searchTermDebounceTime),\n )\n .subscribe(x => {\n this.currentSearchTerm = x\n this.users = []\n this.totalCount = 0\n if (this.currentFetch) {\n this.currentFetch.unsubscribe()\n this.currentFetch = null\n }\n this.fetchNextPage()\n })\n }\n\n ngOnChanges(changes: SimpleChanges) {\n }\n\n ngAfterViewInit() {\n }\n\n writeValue(x: User | null): void {\n this.userSelect.writeValue(x)\n }\n\n registerOnChange(fn: (...args: any[]) => any): void {\n this.userSelect.registerOnChange(fn)\n }\n\n registerOnTouched(fn: (...args: any[]) => any): void {\n this.userSelect.registerOnTouched(fn)\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.userSelect.setDisabledState(isDisabled)\n }\n\n onOpen() {\n if (this.users.length === 0) {\n this.fetchNextPage()\n }\n }\n\n onScroll({ end }: { start: number, end: number }) {\n if (end < this.users.length - this.nextPageScrollThreshold || this.users.length === this.totalCount) {\n return\n }\n this.fetchNextPage()\n }\n\n onScrollToEnd() {\n\n }\n\n fetchNextPage() {\n if (this.currentFetch) {\n if (this.currentFetch.closed) {\n this.currentFetch = null\n }\n else {\n return\n }\n }\n const nextPage = pageForItemIndex(this.users.length, this.baseFindParams.pageSize)\n const findParams: UserSearchParams = {\n ...this.baseFindParams,\n pageIndex: nextPage\n }\n if (this.currentSearchTerm) {\n findParams.term = this.currentSearchTerm\n }\n this.currentFetch = this.userService.search(findParams).subscribe(page => {\n this.users = this.users.concat(page.items)\n if (typeof page.totalCount === 'number') {\n this.totalCount = page.totalCount\n }\n })\n }\n}","import { ScrollingModule } from '@angular/cdk/scrolling'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\nimport { MatAutocompleteModule } from '@angular/material/autocomplete'\nimport { MatDialogModule } from '@angular/material/dialog'\nimport { MatFormFieldModule } from '@angular/material/form-field'\nimport { MatInputModule } from '@angular/material/input'\nimport { MatListModule } from '@angular/material/list'\nimport { MatSelectModule } from '@angular/material/select'\nimport { UserSelectComponent } from './user-select/user-select.component'\nimport { NgSelectModule } from '@ng-select/ng-select'\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ScrollingModule,\n MatAutocompleteModule,\n MatDialogModule,\n MatFormFieldModule,\n MatInputModule,\n MatListModule,\n MatSelectModule,\n NgSelectModule,\n ],\n declarations: [\n UserSelectComponent\n ],\n exports: [\n UserSelectComponent\n ]\n})\nexport class MageUserModule {\n\n}"]}
@@ -0,0 +1,32 @@
1
+ (function (global, factory) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common')) :
3
+ typeof define === 'function' && define.amd ? define('@ngageoint/mage.web-core-lib', ['exports', '@angular/core', '@angular/common'], factory) :
4
+ (global = global || self, factory((global.ngageoint = global.ngageoint || {}, global.ngageoint.mage = global.ngageoint.mage || {}, global.ngageoint.mage['web-core-lib'] = {}), global.ng.core, global.ng.common));
5
+ }(this, (function (exports, core, common) { 'use strict';
6
+
7
+ var MageCoreLibModule = /** @class */ (function () {
8
+ function MageCoreLibModule() {
9
+ }
10
+ MageCoreLibModule.ɵmod = core.ɵɵdefineNgModule({ type: MageCoreLibModule });
11
+ MageCoreLibModule.ɵinj = core.ɵɵdefineInjector({ factory: function MageCoreLibModule_Factory(t) { return new (t || MageCoreLibModule)(); }, imports: [[
12
+ common.CommonModule
13
+ ]] });
14
+ return MageCoreLibModule;
15
+ }());
16
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && core.ɵɵsetNgModuleScope(MageCoreLibModule, { imports: [common.CommonModule] }); })();
17
+ /*@__PURE__*/ (function () { core.ɵsetClassMetadata(MageCoreLibModule, [{
18
+ type: core.NgModule,
19
+ args: [{
20
+ declarations: [],
21
+ imports: [
22
+ common.CommonModule
23
+ ]
24
+ }]
25
+ }], null, null); })();
26
+
27
+ exports.MageCoreLibModule = MageCoreLibModule;
28
+
29
+ Object.defineProperty(exports, '__esModule', { value: true });
30
+
31
+ })));
32
+ //# sourceMappingURL=ngageoint-mage.web-core-lib.umd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngageoint-mage.web-core-lib.umd.js","sources":["ng://@ngageoint/mage.web-core-lib/mage-core-lib.module.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule\n ]\n})\nexport class MageCoreLibModule { }\n"],"names":["CommonModule","NgModule"],"mappings":";;;;;;;QAKA;SAMkC;+DAArB,iBAAiB;2HAAjB,iBAAiB,kBAJnB;oBACPA,mBAAY;iBACb;gCATH;KAKA,IAMkC;8FAArB,iBAAiB,cAH1BA,mBAAY;wDAGH,iBAAiB;kBAN7BC,aAAQ;mBAAC;oBACR,YAAY,EAAE,EAAE;oBAChB,OAAO,EAAE;wBACPD,mBAAY;qBACb;iBACF;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@angular/core"),require("@angular/common")):"function"==typeof define&&define.amd?define("@ngageoint/mage.web-core-lib",["exports","@angular/core","@angular/common"],n):n(((e=e||self).ngageoint=e.ngageoint||{},e.ngageoint.mage=e.ngageoint.mage||{},e.ngageoint.mage["web-core-lib"]={}),e.ng.core,e.ng.common)}(this,(function(e,n,o){"use strict";var t=function(){function e(){}return e.ɵmod=n.ɵɵdefineNgModule({type:e}),e.ɵinj=n.ɵɵdefineInjector({factory:function(n){return new(n||e)},imports:[[o.CommonModule]]}),e}();("undefined"==typeof ngJitMode||ngJitMode)&&n.ɵɵsetNgModuleScope(t,{imports:[o.CommonModule]}),e.MageCoreLibModule=t,Object.defineProperty(e,"__esModule",{value:!0})}));
2
+ //# sourceMappingURL=ngageoint-mage.web-core-lib.umd.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["ng://@ngageoint/mage.web-core-lib/mage-core-lib.module.ts"],"names":["MageCoreLibModule","imports","CommonModule"],"mappings":"gcAKA,SAAAA,4CAMaA,iEAAAA,IAAiBC,QAAA,CAJnB,CACPC,EAAAA,uFAGSF,EAAiB,CAAAC,QAAA,CAH1BC,EAAAA","sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule\n ]\n})\nexport class MageCoreLibModule { }\n"]}
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./xhr-img.component";
3
+ import * as i2 from "@angular/platform-browser";
4
+ export declare class MageCommonModule {
5
+ static ɵmod: i0.ɵɵNgModuleDefWithMeta<MageCommonModule, [typeof i1.XhrImgComponent], [typeof i2.BrowserModule], [typeof i1.XhrImgComponent]>;
6
+ static ɵinj: i0.ɵɵInjectorDef<MageCommonModule>;
7
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@ngageoint/mage.web-core-lib/common" />
5
+ export * from './public-api';
@@ -0,0 +1,12 @@
1
+ {
2
+ "main": "../bundles/ngageoint-mage.web-core-lib-common.umd.js",
3
+ "module": "../fesm5/ngageoint-mage.web-core-lib-common.js",
4
+ "es2015": "../fesm2015/ngageoint-mage.web-core-lib-common.js",
5
+ "esm5": "../esm5/common/ngageoint-mage.web-core-lib-common.js",
6
+ "esm2015": "../esm2015/common/ngageoint-mage.web-core-lib-common.js",
7
+ "fesm5": "../fesm5/ngageoint-mage.web-core-lib-common.js",
8
+ "fesm2015": "../fesm2015/ngageoint-mage.web-core-lib-common.js",
9
+ "typings": "ngageoint-mage.web-core-lib-common.d.ts",
10
+ "sideEffects": false,
11
+ "name": "@ngageoint/mage.web-core-lib/common"
12
+ }
@@ -0,0 +1,2 @@
1
+ export * from './xhr-img.component';
2
+ export * from './mage-common.module';
@@ -0,0 +1,58 @@
1
+ import { InjectionToken, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { DomSanitizer, SafeUrl } from '@angular/platform-browser';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * This is a simple interface that includes the [methods](https://www.w3.org/TR/FileAPI/#creating-revoking)
7
+ * from the [URL API](https://developer.mozilla.org/en-US/docs/Web/API/URL) for
8
+ * managing blob URLs. This allows a service to be injected into
9
+ * `XhrImgComponent` and overridden for testing.
10
+ */
11
+ export interface ObjectUrlService {
12
+ createObjectURL: (typeof URL)['createObjectURL'];
13
+ revokeObjectURL: (typeof URL)['revokeObjectURL'];
14
+ }
15
+ export declare const OBJECT_URL_SERVICE: InjectionToken<ObjectUrlService>;
16
+ /**
17
+ * This component allows fetching images by `XMLHttpRequest` rather than the
18
+ * browser's native mechanism. These image requests are subject to HTTP
19
+ * interceptors that can add authorization headers to the request instead of
20
+ * using cache-defeating URL query parameters to set an auth token. Applying
21
+ * headers to the browser's native `img` requests is impossible, so a query
22
+ * parameter is necessary for authorization, but adding the parameter to the
23
+ * URL effectively bypasses the browser's caching mechanism when the auth token
24
+ * changes for images that
25
+ * should otherwise be subject to caching.
26
+ *
27
+ * The catch to fetching images by XHR is the response must be fetched as a
28
+ * `Blob`. The user then gets a browser-specific URL for the blob by
29
+ * `URL.createObjectURL(blob)`, which can then be assigned to the `src`
30
+ * attribute of an `img` tag. These blob URLs must then be "revoked" by
31
+ * `URL.revokeObjectURL(url)` in order to reclaim object URL's associated
32
+ * 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)
33
+ * on the subject.
34
+ *
35
+ * To use the component, simply add the tag to a template and bind the `src`
36
+ * attribute to the source URL of the desired image.
37
+ * ```
38
+ * <mage-xhr-img [src]="someComponent.imageUrlRequiresAuth"></mage-xhr-img>
39
+ * ```
40
+ * The component encapsulates the logic of creating and releasing the object
41
+ * URLs for the image data, preventing memory leaks.
42
+ */
43
+ export declare class XhrImgComponent implements OnChanges, OnDestroy {
44
+ private objectUrlService;
45
+ private http;
46
+ private sanitizer;
47
+ sourceUrl: string | null;
48
+ safeBlobUrl: SafeUrl | null;
49
+ private blobUrl;
50
+ private subscription;
51
+ constructor(objectUrlService: ObjectUrlService, http: HttpClient, sanitizer: DomSanitizer);
52
+ ngOnChanges(changes: SimpleChanges): void;
53
+ ngOnDestroy(): void;
54
+ onImgLoad(): void;
55
+ private disposeCurrent;
56
+ static ɵfac: i0.ɵɵFactoryDef<XhrImgComponent, never>;
57
+ static ɵcmp: i0.ɵɵComponentDefWithMeta<XhrImgComponent, "mage-xhr-img", never, { "sourceUrl": "src"; }, {}, never, never>;
58
+ }
@@ -0,0 +1,26 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { BrowserModule } from '@angular/platform-browser';
3
+ import { XhrImgComponent } from './xhr-img.component';
4
+ import * as i0 from "@angular/core";
5
+ export class MageCommonModule {
6
+ }
7
+ MageCommonModule.ɵmod = i0.ɵɵdefineNgModule({ type: MageCommonModule });
8
+ MageCommonModule.ɵinj = i0.ɵɵdefineInjector({ factory: function MageCommonModule_Factory(t) { return new (t || MageCommonModule)(); }, imports: [[
9
+ BrowserModule
10
+ ]] });
11
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MageCommonModule, { declarations: [XhrImgComponent], imports: [BrowserModule], exports: [XhrImgComponent] }); })();
12
+ /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(MageCommonModule, [{
13
+ type: NgModule,
14
+ args: [{
15
+ imports: [
16
+ BrowserModule
17
+ ],
18
+ declarations: [
19
+ XhrImgComponent
20
+ ],
21
+ exports: [
22
+ XhrImgComponent
23
+ ]
24
+ }]
25
+ }], null, null); })();
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnZS1jb21tb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nYWdlb2ludC9tYWdlLndlYi1jb3JlLWxpYi9jb21tb24vIiwic291cmNlcyI6WyJtYWdlLWNvbW1vbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBOztBQWFyRCxNQUFNLE9BQU8sZ0JBQWdCOztvREFBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0Isa0JBVmxCO1lBQ1AsYUFBYTtTQUNkO3dGQVFVLGdCQUFnQixtQkFOekIsZUFBZSxhQUhmLGFBQWEsYUFNYixlQUFlO2tEQUdOLGdCQUFnQjtjQVg1QixRQUFRO2VBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLGFBQWE7aUJBQ2Q7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLGVBQWU7aUJBQ2hCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxlQUFlO2lCQUNoQjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQnJvd3Nlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInXG5pbXBvcnQgeyBYaHJJbWdDb21wb25lbnQgfSBmcm9tICcuL3hoci1pbWcuY29tcG9uZW50J1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQnJvd3Nlck1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBYaHJJbWdDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFhockltZ0NvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE1hZ2VDb21tb25Nb2R1bGUge30iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdhZ2VvaW50LW1hZ2Uud2ViLWNvcmUtbGliLWNvbW1vbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ2FnZW9pbnQvbWFnZS53ZWItY29yZS1saWIvY29tbW9uLyIsInNvdXJjZXMiOlsibmdhZ2VvaW50LW1hZ2Uud2ViLWNvcmUtbGliLWNvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,3 @@
1
+ export * from './xhr-img.component';
2
+ export * from './mage-common.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ2FnZW9pbnQvbWFnZS53ZWItY29yZS1saWIvY29tbW9uLyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWMsc0JBQXNCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3hoci1pbWcuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9tYWdlLWNvbW1vbi5tb2R1bGUnIl19
@@ -0,0 +1,109 @@
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, http, sanitizer) {
36
+ this.objectUrlService = objectUrlService;
37
+ this.http = http;
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.http.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 = 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
+ /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(XhrImgComponent, [{
90
+ type: Component,
91
+ args: [{
92
+ selector: `${selector}`,
93
+ template: `<img [attr.src]="safeBlobUrl" (load)="onImgLoad()"/>`,
94
+ styles: [`img { height: 100%; width: 100% }`],
95
+ providers: [
96
+ {
97
+ provide: OBJECT_URL_SERVICE,
98
+ useValue: URL
99
+ }
100
+ ]
101
+ }]
102
+ }], function () { return [{ type: undefined, decorators: [{
103
+ type: Inject,
104
+ args: [OBJECT_URL_SERVICE]
105
+ }] }, { type: i1.HttpClient }, { type: i2.DomSanitizer }]; }, { sourceUrl: [{
106
+ type: Input,
107
+ args: ['src']
108
+ }] }); })();
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGhyLWltZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmdhZ2VvaW50L21hZ2Uud2ViLWNvcmUtbGliL2NvbW1vbi8iLCJzb3VyY2VzIjpbInhoci1pbWcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQXVDLE1BQU0sZUFBZSxDQUFBOzs7O0FBS3pILE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQTtBQVkvQixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FBbUIsR0FBRyxRQUFRLG1CQUFtQixDQUFDLENBQUE7QUFFdEc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJHO0FBWUgsTUFBTSxPQUFPLGVBQWU7SUFTMUIsWUFBZ0QsZ0JBQWtDLEVBQVUsSUFBZ0IsRUFBVSxTQUF1QjtRQUE3RixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFON0ksY0FBUyxHQUFrQixJQUFJLENBQUE7UUFDL0IsZ0JBQVcsR0FBbUIsSUFBSSxDQUFBO0lBSzhHLENBQUM7SUFFakosV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ3RCLE9BQU07U0FDUDtRQUNELElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDeEQsT0FBTTtTQUNQO1FBQ0QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFBO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25CLE9BQU07U0FDUDtRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUN4RSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDYixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDdkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUN4RSxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFBO0lBQ3ZCLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFBO0lBQ3ZCLENBQUM7SUFFTyxjQUFjO1FBQ3BCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtTQUNwRDtRQUNELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFBO1NBQ2hDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7SUFDckIsQ0FBQzs7OEVBOUNVLGVBQWUsdUJBU04sa0JBQWtCO29EQVQzQixlQUFlLCtHQVBmO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsUUFBUSxFQUFFLEdBQUc7YUFDZDtTQUNGO1FBUFUsOEJBQW9EO1FBQXRCLHVGQUFRLGVBQVcsSUFBQztRQUFsRCxpQkFBb0Q7O1FBQS9DLHdEQUF3Qjs7a0RBUzdCLGVBQWU7Y0FYM0IsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxHQUFHLFFBQVEsRUFBRTtnQkFDdkIsUUFBUSxFQUFFLHNEQUFzRDtnQkFDaEUsTUFBTSxFQUFFLENBQUUsbUNBQW1DLENBQUU7Z0JBQy9DLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsa0JBQWtCO3dCQUMzQixRQUFRLEVBQUUsR0FBRztxQkFDZDtpQkFDRjthQUNGOztzQkFVYyxNQUFNO3VCQUFDLGtCQUFrQjs7a0JBUHJDLEtBQUs7bUJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuXG5jb25zdCBzZWxlY3RvciA9ICdtYWdlLXhoci1pbWcnXG5cbi8qKlxuICogVGhpcyBpcyBhIHNpbXBsZSBpbnRlcmZhY2UgdGhhdCBpbmNsdWRlcyB0aGUgW21ldGhvZHNdKGh0dHBzOi8vd3d3LnczLm9yZy9UUi9GaWxlQVBJLyNjcmVhdGluZy1yZXZva2luZylcbiAqIGZyb20gdGhlIFtVUkwgQVBJXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvVVJMKSBmb3JcbiAqIG1hbmFnaW5nIGJsb2IgVVJMcy4gIFRoaXMgYWxsb3dzIGEgc2VydmljZSB0byBiZSBpbmplY3RlZCBpbnRvXG4gKiBgWGhySW1nQ29tcG9uZW50YCBhbmQgb3ZlcnJpZGRlbiBmb3IgdGVzdGluZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPYmplY3RVcmxTZXJ2aWNlIHtcbiAgY3JlYXRlT2JqZWN0VVJMOiAodHlwZW9mIFVSTClbJ2NyZWF0ZU9iamVjdFVSTCddXG4gIHJldm9rZU9iamVjdFVSTDogKHR5cGVvZiBVUkwpWydyZXZva2VPYmplY3RVUkwnXVxufVxuZXhwb3J0IGNvbnN0IE9CSkVDVF9VUkxfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPYmplY3RVcmxTZXJ2aWNlPihgJHtzZWxlY3Rvcn0ub2JqZWN0VXJsU2VydmljZWApXG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgYWxsb3dzIGZldGNoaW5nIGltYWdlcyBieSBgWE1MSHR0cFJlcXVlc3RgIHJhdGhlciB0aGFuIHRoZVxuICogYnJvd3NlcidzIG5hdGl2ZSBtZWNoYW5pc20uICBUaGVzZSBpbWFnZSByZXF1ZXN0cyBhcmUgc3ViamVjdCB0byBIVFRQXG4gKiBpbnRlcmNlcHRvcnMgdGhhdCBjYW4gYWRkIGF1dGhvcml6YXRpb24gaGVhZGVycyB0byB0aGUgcmVxdWVzdCBpbnN0ZWFkIG9mXG4gKiB1c2luZyBjYWNoZS1kZWZlYXRpbmcgVVJMIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gc2V0IGFuIGF1dGggdG9rZW4uICBBcHBseWluZ1xuICogaGVhZGVycyB0byB0aGUgYnJvd3NlcidzIG5hdGl2ZSBgaW1nYCByZXF1ZXN0cyBpcyBpbXBvc3NpYmxlLCBzbyBhIHF1ZXJ5XG4gKiBwYXJhbWV0ZXIgaXMgbmVjZXNzYXJ5IGZvciBhdXRob3JpemF0aW9uLCBidXQgYWRkaW5nIHRoZSBwYXJhbWV0ZXIgdG8gdGhlXG4gKiBVUkwgZWZmZWN0aXZlbHkgYnlwYXNzZXMgdGhlIGJyb3dzZXIncyBjYWNoaW5nIG1lY2hhbmlzbSB3aGVuIHRoZSBhdXRoIHRva2VuXG4gKiBjaGFuZ2VzIGZvciBpbWFnZXMgdGhhdFxuICogc2hvdWxkIG90aGVyd2lzZSBiZSBzdWJqZWN0IHRvIGNhY2hpbmcuXG4gKlxuICogVGhlIGNhdGNoIHRvIGZldGNoaW5nIGltYWdlcyBieSBYSFIgaXMgdGhlIHJlc3BvbnNlIG11c3QgYmUgZmV0Y2hlZCBhcyBhXG4gKiBgQmxvYmAuICBUaGUgdXNlciB0aGVuIGdldHMgYSBicm93c2VyLXNwZWNpZmljIFVSTCBmb3IgdGhlIGJsb2IgYnlcbiAqIGBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpYCwgd2hpY2ggY2FuIHRoZW4gYmUgYXNzaWduZWQgdG8gdGhlIGBzcmNgXG4gKiBhdHRyaWJ1dGUgb2YgYW4gYGltZ2AgdGFnLiAgVGhlc2UgYmxvYiBVUkxzIG11c3QgdGhlbiBiZSBcInJldm9rZWRcIiBieVxuICogYFVSTC5yZXZva2VPYmplY3RVUkwodXJsKWAgaW4gb3JkZXIgdG8gcmVjbGFpbSBvYmplY3QgVVJMJ3MgYXNzb2NpYXRlZFxuICogcmVzb3VyY2VzLiAgU2VlIFtNb3ppbGxhJ3MgZG9jc10oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0ZpbGUvVXNpbmdfZmlsZXNfZnJvbV93ZWJfYXBwbGljYXRpb25zI2V4YW1wbGVfdXNpbmdfb2JqZWN0X3VybHNfdG9fZGlzcGxheV9pbWFnZXMpXG4gKiBvbiB0aGUgc3ViamVjdC5cbiAqXG4gKiBUbyB1c2UgdGhlIGNvbXBvbmVudCwgc2ltcGx5IGFkZCB0aGUgdGFnIHRvIGEgdGVtcGxhdGUgYW5kIGJpbmQgdGhlIGBzcmNgXG4gKiBhdHRyaWJ1dGUgdG8gdGhlIHNvdXJjZSBVUkwgb2YgdGhlIGRlc2lyZWQgaW1hZ2UuXG4gKiBgYGBcbiAqIDxtYWdlLXhoci1pbWcgW3NyY109XCJzb21lQ29tcG9uZW50LmltYWdlVXJsUmVxdWlyZXNBdXRoXCI+PC9tYWdlLXhoci1pbWc+XG4gKiBgYGBcbiAqIFRoZSBjb21wb25lbnQgZW5jYXBzdWxhdGVzIHRoZSBsb2dpYyBvZiBjcmVhdGluZyBhbmQgcmVsZWFzaW5nIHRoZSBvYmplY3RcbiAqIFVSTHMgZm9yIHRoZSBpbWFnZSBkYXRhLCBwcmV2ZW50aW5nIG1lbW9yeSBsZWFrcy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBgJHtzZWxlY3Rvcn1gLFxuICB0ZW1wbGF0ZTogYDxpbWcgW2F0dHIuc3JjXT1cInNhZmVCbG9iVXJsXCIgKGxvYWQpPVwib25JbWdMb2FkKClcIi8+YCxcbiAgc3R5bGVzOiBbIGBpbWcgeyBoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlIH1gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE9CSkVDVF9VUkxfU0VSVklDRSxcbiAgICAgIHVzZVZhbHVlOiBVUkxcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgWGhySW1nQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgnc3JjJylcbiAgc291cmNlVXJsOiBzdHJpbmcgfCBudWxsID0gbnVsbFxuICBzYWZlQmxvYlVybDogU2FmZVVybCB8IG51bGwgPSBudWxsXG5cbiAgcHJpdmF0ZSBibG9iVXJsOiBzdHJpbmdcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvblxuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoT0JKRUNUX1VSTF9TRVJWSUNFKSBwcml2YXRlIG9iamVjdFVybFNlcnZpY2U6IE9iamVjdFVybFNlcnZpY2UsIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKCFjaGFuZ2VzLnNvdXJjZVVybCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLnNvdXJjZVVybC5pc0ZpcnN0Q2hhbmdlKCkgJiYgIXRoaXMuc291cmNlVXJsKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGhpcy5kaXNwb3NlQ3VycmVudCgpXG4gICAgaWYgKCF0aGlzLnNvdXJjZVVybCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5odHRwLmdldCh0aGlzLnNvdXJjZVVybCwgeyByZXNwb25zZVR5cGU6ICdibG9iJyB9KVxuICAgICAgLnN1YnNjcmliZSh4ID0+IHtcbiAgICAgICAgdGhpcy5vYmplY3RVcmxTZXJ2aWNlLnJldm9rZU9iamVjdFVSTCh0aGlzLmJsb2JVcmwpXG4gICAgICAgIHRoaXMuYmxvYlVybCA9IHRoaXMub2JqZWN0VXJsU2VydmljZS5jcmVhdGVPYmplY3RVUkwoeClcbiAgICAgICAgdGhpcy5zYWZlQmxvYlVybCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwodGhpcy5ibG9iVXJsKVxuICAgICAgfSlcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGlzcG9zZUN1cnJlbnQoKVxuICB9XG5cbiAgb25JbWdMb2FkKCkge1xuICAgIHRoaXMuZGlzcG9zZUN1cnJlbnQoKVxuICB9XG5cbiAgcHJpdmF0ZSBkaXNwb3NlQ3VycmVudCgpIHtcbiAgICBpZiAodGhpcy5ibG9iVXJsKSB7XG4gICAgICB0aGlzLm9iamVjdFVybFNlcnZpY2UucmV2b2tlT2JqZWN0VVJMKHRoaXMuYmxvYlVybClcbiAgICB9XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gICAgfVxuICAgIHRoaXMuYmxvYlVybCA9IG51bGxcbiAgfVxufSJdfQ==
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const EVENT_READ_SERVICE = new InjectionToken('EventReadService');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtcmVhZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nYWdlb2ludC9tYWdlLndlYi1jb3JlLWxpYi9ldmVudC8iLCJzb3VyY2VzIjpbImV2ZW50LXJlYWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBYTlDLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFtQixrQkFBa0IsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgUGFnaW5nUGFyYW1ldGVycyB9IGZyb20gJ0BuZ2FnZW9pbnQvbWFnZS53ZWItY29yZS1saWIvcGFnaW5nJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBNYWdlRXZlbnQgfSBmcm9tICcuL2V2ZW50Lm1vZGVsJ1xuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50UmVhZFNlcnZpY2Uge1xuICBmaW5kKHdoaWNoOiBFdmVudFJlYWRQYXJhbXMpOiBPYnNlcnZhYmxlPE1hZ2VFdmVudFtdPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50UmVhZFBhcmFtcyB7XG4gIHBhZ2U6IFBhZ2luZ1BhcmFtZXRlcnNcbn1cblxuZXhwb3J0IGNvbnN0IEVWRU5UX1JFQURfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFdmVudFJlYWRTZXJ2aWNlPignRXZlbnRSZWFkU2VydmljZScpIl19
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQubW9kZWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmdhZ2VvaW50L21hZ2Uud2ViLWNvcmUtbGliL2V2ZW50LyIsInNvdXJjZXMiOlsiZXZlbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgTWFnZUV2ZW50IHtcbiAgaWQ6IG51bWJlclxuICBuYW1lOiBzdHJpbmdcbiAgZGVzY3JpcHRpb246IHN0cmluZ1xuICBmZWVkSWRzOiBzdHJpbmdbXVxufSJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdhZ2VvaW50LW1hZ2Uud2ViLWNvcmUtbGliLWV2ZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nYWdlb2ludC9tYWdlLndlYi1jb3JlLWxpYi9ldmVudC8iLCJzb3VyY2VzIjpbIm5nYWdlb2ludC1tYWdlLndlYi1jb3JlLWxpYi1ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './event-read.service';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ2FnZW9pbnQvbWFnZS53ZWItY29yZS1saWIvZXZlbnQvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLGNBQWMsc0JBQXNCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2V2ZW50Lm1vZGVsJ1xuZXhwb3J0ICogZnJvbSAnLi9ldmVudC1yZWFkLnNlcnZpY2UnIl19
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ2FnZW9pbnQvbWFnZS53ZWItY29yZS1saWIvZmVlZC8iLCJzb3VyY2VzIjpbImZlZWQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZlYXR1cmUsIEZlYXR1cmVDb2xsZWN0aW9uIH0gZnJvbSAnZ2VvanNvbic7XG5pbXBvcnQgeyBSZWdpc3RlcmVkU3RhdGljSWNvblJlZmVyZW5jZSwgU291cmNlVXJsU3RhdGljSWNvblJlZmVyZW5jZSwgU3RhdGljSWNvblJlZmVyZW5jZSB9IGZyb20gJ0BuZ2FnZW9pbnQvbWFnZS53ZWItY29yZS1saWIvc3RhdGljLWljb24nXG5cbmV4cG9ydCBpbnRlcmZhY2UgRmVlZCB7XG4gIGlkOiBzdHJpbmc7XG4gIHNlcnZpY2U6IHN0cmluZztcbiAgdG9waWM6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgc3VtbWFyeT86IHN0cmluZztcbiAgaWNvbj86IFJlZ2lzdGVyZWRTdGF0aWNJY29uUmVmZXJlbmNlO1xuICBtYXBTdHlsZT86IFJlZ2lzdGVyZWRNYXBTdHlsZTtcbiAgaXRlbVRlbXBvcmFsUHJvcGVydHk/OiBzdHJpbmc7XG4gIGl0ZW1QcmltYXJ5UHJvcGVydHk/OiBzdHJpbmc7XG4gIGl0ZW1TZWNvbmRhcnlQcm9wZXJ0eT86IHN0cmluZztcbiAgaXRlbXNIYXZlU3BhdGlhbERpbWVuc2lvbj86IGJvb2xlYW47XG4gIGl0ZW1zSGF2ZUlkZW50aXR5PzogYm9vbGVhbjtcbiAgY29uc3RhbnRQYXJhbXM/OiBhbnk7XG4gIHZhcmlhYmxlUGFyYW1zU2NoZW1hPzogYW55O1xuICB1cGRhdGVGcmVxdWVuY3lTZWNvbmRzPzogbnVtYmVyO1xuICBpdGVtUHJvcGVydGllc1NjaGVtYT86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBTdHlsZSB7XG4gIGljb24/OiBTb3VyY2VVcmxTdGF0aWNJY29uUmVmZXJlbmNlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJlZE1hcFN0eWxlIHtcbiAgaWNvbj86IFJlZ2lzdGVyZWRTdGF0aWNJY29uUmVmZXJlbmNlO1xufVxuXG5leHBvcnQgdHlwZSBTdHlsZWRGZWF0dXJlID0gRmVhdHVyZSAmIHsgc3R5bGU6IE1hcFN0eWxlIH1cbmV4cG9ydCBpbnRlcmZhY2UgRmVlZENvbnRlbnQge1xuICBpdGVtczogRmVhdHVyZUNvbGxlY3Rpb25cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlVHlwZSB7XG4gIC8qKlxuICAgKiBXZWxsLWtub3duIGlkZW50aWZpZXIgdGhhdCB0aGUgZmVlZCBwbHVnaW4gY3JlYXRvciBhc3NpZ25zXG4gICAqL1xuICBwbHVnaW5TZXJ2aWNlVHlwZUlkOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBNQUdFIHNlcnZlciBnZW5lcmF0ZXMgdG8gcmVmZXJlbmNlIHRoZSBzZXJ2aWNlIHR5cGVcbiAgICovXG4gIGlkOiBzdHJpbmdcbiAgdGl0bGU6IHN0cmluZ1xuICBzdW1tYXJ5OiBzdHJpbmdcbiAgY29uZmlnU2NoZW1hOiBhbnlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlIHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgc2VydmljZVR5cGU6IFNlcnZpY2VUeXBlIHwgc3RyaW5nXG4gIHN1bW1hcnk6IHN0cmluZyB8IG51bGxcbiAgY29uZmlnOiBhbnlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGZWVkVG9waWMge1xuICBpZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBzdW1tYXJ5Pzogc3RyaW5nO1xuICBpY29uPzogU291cmNlVXJsU3RhdGljSWNvblJlZmVyZW5jZTtcbiAgcGFyYW1zU2NoZW1hPzogYW55O1xuICB1cGRhdGVGcmVxdWVuY3lTZWNvbmRzPzogbnVtYmVyO1xuICBpdGVtc0hhdmVJZGVudGl0eT86IGJvb2xlYW47XG4gIGl0ZW1zSGF2ZVNwYXRpYWxEaW1lbnNpb24/OiBib29sZWFuO1xuICBpdGVtVGVtcG9yYWxQcm9wZXJ0eT86IHN0cmluZztcbiAgaXRlbVByaW1hcnlQcm9wZXJ0eT86IHN0cmluZztcbiAgaXRlbVNlY29uZGFyeVByb3BlcnR5Pzogc3RyaW5nO1xuICBpdGVtUHJvcGVydGllc1NjaGVtYT86IGFueTtcbiAgbWFwU3R5bGU/OiBNYXBTdHlsZVxufVxuXG5leHBvcnQgdHlwZSBGZWVkRXhwYW5kZWQgPSBPbWl0PEZlZWQsICdzZXJ2aWNlJyB8ICd0b3BpYyc+ICYge1xuICBzZXJ2aWNlOiBTZXJ2aWNlLFxuICB0b3BpYzogRmVlZFRvcGljXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmVlZENvbnRlbnQge1xuICBmZWVkOiBzdHJpbmdcbiAgdmFyaWFibGVQYXJhbXM/OiBhbnlcbiAgaXRlbXM6IEZlYXR1cmVDb2xsZWN0aW9uXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmVlZFByZXZpZXcge1xuICBmZWVkOiBGZWVkXG4gIGNvbnRlbnQ/OiBGZWVkQ29udGVudFxufVxuXG5leHBvcnQgdHlwZSBGZWVkUG9zdCA9IFBhcnRpYWw8T21pdDxGZWVkLCAnc2VydmljZScgfCAndG9waWMnIHwgJ2ljb24nPj4gJiBQaWNrPEZlZWQsICdzZXJ2aWNlJyB8ICd0b3BpYyc+ICYge1xuICBpY29uPzogU3RhdGljSWNvblJlZmVyZW5jZVxufVxuIl19
@@ -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(http) {
8
+ this.http = http;
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.http.get('/api/feeds/');
19
+ }
20
+ fetchFeed(feedId) {
21
+ return this.http.get(`/api/feeds/${feedId}`);
22
+ }
23
+ fetchService(serviceId) {
24
+ return this.http.get(`/api/feeds/services/${serviceId}`);
25
+ }
26
+ createService(service) {
27
+ return this.http.post(`/api/feeds/services`, service);
28
+ }
29
+ fetchServices() {
30
+ return this.http.get(`/api/feeds/services`);
31
+ }
32
+ fetchServiceFeeds(serviceId) {
33
+ return this.http.get(`/api/feeds/services/${serviceId}/feeds`);
34
+ }
35
+ fetchServiceType(serviceTypeId) {
36
+ return this.http.get(`/api/feeds/service_types/${serviceTypeId}`);
37
+ }
38
+ fetchTopics(serviceId) {
39
+ return this.http.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.http.post(`/api/feeds/services/${serviceId}/topics/${topicId}/feed_preview?skip_content_fetch=${skipContentFetch}`, { feed: feedSpec });
45
+ }
46
+ fetchTopic(serviceId, topicId) {
47
+ return this.http.get(`/api/feeds/services/${serviceId}/topics/${topicId}`);
48
+ }
49
+ fetchServiceTypes() {
50
+ return this.http.get(`/api/feeds/service_types`);
51
+ }
52
+ createFeed(serviceId, topicId, feedConfiguration) {
53
+ return this.http.post(`/api/feeds/services/${serviceId}/topics/${topicId}/feeds`, feedConfiguration);
54
+ }
55
+ updateFeed(feed) {
56
+ return this.http.put(`/api/feeds/${feed.id}`, feed);
57
+ }
58
+ deleteFeed(feed) {
59
+ return this.http.delete(`/api/feeds/${feed.id}`, { responseType: 'text' });
60
+ }
61
+ deleteService(service) {
62
+ console.log('delete');
63
+ return this.http.delete(`/api/feeds/services/${service.id}`, { responseType: 'text' });
64
+ }
65
+ fetchFeeds(eventId) {
66
+ const subject = new Subject();
67
+ this.http.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.http.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 = i0.ɵɵdefineInjectable({ token: FeedService, factory: FeedService.ɵfac, providedIn: 'root' });
99
+ /*@__PURE__*/ (function () { 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nYWdlb2ludC9tYWdlLndlYi1jb3JlLWxpYi9mZWVkLyIsInNvdXJjZXMiOlsiZmVlZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDM0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7QUFXcEMsTUFBTSxPQUFPLFdBQVc7SUFFdEIsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUVwQywyRUFBMkU7UUFDbkUsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLFVBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXBDLGVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBMkMsQ0FBQztJQU5oQyxDQUFDO0lBT3pDLFNBQVMsQ0FBQyxNQUFjO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFjLGFBQWEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxTQUFTLENBQUMsTUFBYztRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFlLGNBQWMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQWlCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVUsdUJBQXVCLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELGFBQWEsQ0FBQyxPQUE2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QUFJLEVBQUUsQ0FBQTtZQUMvQyxDQUFDLENBQUMsQ0FBQTtZQUNGLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDeEIsT0FBTyxPQUFPLENBQUE7UUFDaEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7O3NFQWxIVSxXQUFXO21EQUFYLFdBQVcsV0FBWCxXQUFXLG1CQUZWLE1BQU07a0RBRVAsV0FBVztjQUh2QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJ2dlb2pzb24nXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBGZWVkLCBGZWVkQ29udGVudCwgRmVlZEV4cGFuZGVkLCBGZWVkUG9zdCwgRmVlZFByZXZpZXcsIEZlZWRUb3BpYywgU2VydmljZSwgU2VydmljZVR5cGUsIFN0eWxlZEZlYXR1cmUgfSBmcm9tICcuL2ZlZWQubW9kZWwnXG5cblxuZXhwb3J0IGludGVyZmFjZSBGZWVkUHJldmlld09wdGlvbnMge1xuICBza2lwQ29udGVudEZldGNoPzogYm9vbGVhblxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGZWVkU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7IH1cblxuICAvLyBUT0RPOiB0aGVyZSBpcyBwcm9iYWJseSBhIGJldHRlciBzb2x1dGlvbiB0aGFuIG1haW50YWluaW5nIHRoaXMgbWFwIGhlcmVcbiAgcHJpdmF0ZSBfZmVlZHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PEZlZWQ+PihbXSk7XG4gIHJlYWRvbmx5IGZlZWRzID0gdGhpcy5fZmVlZHMuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSBfZmVlZEl0ZW1zID0gbmV3IE1hcDxzdHJpbmcsIEJlaGF2aW9yU3ViamVjdDxBcnJheTxGZWF0dXJlPj4+KCk7XG4gIGZlZWRJdGVtcyhmZWVkSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QXJyYXk8RmVhdHVyZT4+IHtcbiAgICByZXR1cm4gdGhpcy5fZmVlZEl0ZW1zLmdldChmZWVkSWQpLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZmV0Y2hBbGxGZWVkcygpOiBPYnNlcnZhYmxlPEFycmF5PEZlZWQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXJyYXk8RmVlZD4+KCcvYXBpL2ZlZWRzLycpO1xuICB9XG5cbiAgZmV0Y2hGZWVkKGZlZWRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxGZWVkRXhwYW5kZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxGZWVkRXhwYW5kZWQ+KGAvYXBpL2ZlZWRzLyR7ZmVlZElkfWApO1xuICB9XG5cbiAgZmV0Y2hTZXJ2aWNlKHNlcnZpY2VJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxTZXJ2aWNlPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8U2VydmljZT4oYC9hcGkvZmVlZHMvc2VydmljZXMvJHtzZXJ2aWNlSWR9YCk7XG4gIH1cblxuICBjcmVhdGVTZXJ2aWNlKHNlcnZpY2U6IHsgdGl0bGU6IHN0cmluZywgc3VtbWFyeT86IHN0cmluZywgc2VydmljZVR5cGU6IHN0cmluZywgY29uZmlnOiBhbnl9KTogT2JzZXJ2YWJsZTxTZXJ2aWNlPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFNlcnZpY2U+KGAvYXBpL2ZlZWRzL3NlcnZpY2VzYCwgc2VydmljZSk7XG4gIH1cblxuICBmZXRjaFNlcnZpY2VzKCk6IE9ic2VydmFibGU8QXJyYXk8U2VydmljZT4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcnJheTxTZXJ2aWNlPj4oYC9hcGkvZmVlZHMvc2VydmljZXNgKTtcbiAgfVxuXG4gIGZldGNoU2VydmljZUZlZWRzKHNlcnZpY2VJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxBcnJheTxGZWVkPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFycmF5PEZlZWQ+PihgL2FwaS9mZWVkcy9zZXJ2aWNlcy8ke3NlcnZpY2VJZH0vZmVlZHNgKTtcbiAgfVxuXG4gIGZldGNoU2VydmljZVR5cGUoc2VydmljZVR5cGVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxTZXJ2aWNlVHlwZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFNlcnZpY2VUeXBlPihgL2FwaS9mZWVkcy9zZXJ2aWNlX3R5cGVzLyR7c2VydmljZVR5cGVJZH1gKTtcbiAgfVxuXG4gIGZldGNoVG9waWNzKHNlcnZpY2VJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxBcnJheTxGZWVkVG9waWM+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXJyYXk8RmVlZFRvcGljPj4oYC9hcGkvZmVlZHMvc2VydmljZXMvJHtzZXJ2aWNlSWR9L3RvcGljc2ApO1xuICB9XG5cbiAgcHJldmlld0ZlZWQoc2VydmljZUlkOiBzdHJpbmcsIHRvcGljSWQ6IHN0cmluZywgZmVlZFNwZWM6IFBhcnRpYWw8T21pdDxGZWVkUG9zdCwgJ3NlcnZpY2UnIHwgJ3RvcGljJz4+LCBvcHRzPzogRmVlZFByZXZpZXdPcHRpb25zKTogT2JzZXJ2YWJsZTxGZWVkUHJldmlldz4ge1xuICAgIG9wdHMgPSBvcHRzIHx8IHt9XG4gICAgY29uc3Qgc2tpcENvbnRlbnRGZXRjaDogYm9vbGVhbiA9IG9wdHMuc2tpcENvbnRlbnRGZXRjaCA9PT0gdHJ1ZVxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxGZWVkUHJldmlldz4oXG4gICAgICBgL2FwaS9mZWVkcy9zZXJ2aWNlcy8ke3NlcnZpY2VJZH0vdG9waWNzLyR7dG9waWNJZH0vZmVlZF9wcmV2aWV3P3NraXBfY29udGVudF9mZXRjaD0ke3NraXBDb250ZW50RmV0Y2h9YCxcbiAgICAgIHsgZmVlZDogZmVlZFNwZWMgfSk7XG4gIH1cblxuICBmZXRjaFRvcGljKHNlcnZpY2VJZDogc3RyaW5nLCB0b3BpY0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEZlZWRUb3BpYz4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEZlZWRUb3BpYz4oYC9hcGkvZmVlZHMvc2VydmljZXMvJHtzZXJ2aWNlSWR9L3RvcGljcy8ke3RvcGljSWR9YCk7XG4gIH1cblxuICBmZXRjaFNlcnZpY2VUeXBlcygpOiBPYnNlcnZhYmxlPEFycmF5PFNlcnZpY2VUeXBlPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFycmF5PFNlcnZpY2VUeXBlPj4oYC9hcGkvZmVlZHMvc2VydmljZV90eXBlc2ApO1xuICB9XG5cbiAgY3JlYXRlRmVlZChzZXJ2aWNlSWQ6IHN0cmluZywgdG9waWNJZDogc3RyaW5nLCBmZWVkQ29uZmlndXJhdGlvbjogYW55KTogT2JzZXJ2YWJsZTxGZWVkRXhwYW5kZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8RmVlZEV4cGFuZGVkPihgL2FwaS9mZWVkcy9zZXJ2aWNlcy8ke3NlcnZpY2VJZH0vdG9waWNzLyR7dG9waWNJZH0vZmVlZHNgLCBmZWVkQ29uZmlndXJhdGlvbik7XG4gIH1cblxuICB1cGRhdGVGZWVkKGZlZWQ6IFBhcnRpYWw8T21pdDxGZWVkUG9zdCwgJ2lkJz4+ICYgUGljazxGZWVkLCAnaWQnPik6IE9ic2VydmFibGU8RmVlZEV4cGFuZGVkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8RmVlZEV4cGFuZGVkPihgL2FwaS9mZWVkcy8ke2ZlZWQuaWR9YCwgZmVlZCk7XG4gIH1cblxuICBkZWxldGVGZWVkKGZlZWQ6IEZlZWQgfCBGZWVkRXhwYW5kZWQpOiBPYnNlcnZhYmxlPHt9PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYC9hcGkvZmVlZHMvJHtmZWVkLmlkfWAsIHtyZXNwb25zZVR5cGU6ICd0ZXh0J30pO1xuICB9XG5cbiAgZGVsZXRlU2VydmljZShzZXJ2aWNlOiBTZXJ2aWNlKTogT2JzZXJ2YWJsZTx7fT4ge1xuICAgIGNvbnNvbGUubG9nKCdkZWxldGUnKVxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAvYXBpL2ZlZWRzL3NlcnZpY2VzLyR7c2VydmljZS5pZH1gLCB7IHJlc3BvbnNlVHlwZTogJ3RleHQnIH0pO1xuICB9XG5cbiAgZmV0Y2hGZWVkcyhldmVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPEFycmF5PEZlZWQ+PiB7XG4gICAgY29uc3Qgc3ViamVjdCA9IG5ldyBTdWJqZWN0PEFycmF5PEZlZWQ+PigpO1xuICAgIHRoaXMuaHR0cC5nZXQ8QXJyYXk8RmVlZD4+KGAvYXBpL2V2ZW50cy8ke2V2ZW50SWR9L2ZlZWRzYCkuc3Vic2NyaWJlKGZlZWRzID0+IHtcbiAgICAgIGZlZWRzLm1hcChmZWVkID0+IHtcbiAgICAgICAgZmVlZC5pZCA9IGZlZWQuaWQudG9TdHJpbmcoKTtcbiAgICAgICAgcmV0dXJuIGZlZWQ7XG4gICAgICB9KTtcblxuICAgICAgZmVlZHMuZm9yRWFjaChmZWVkID0+IHtcbiAgICAgICAgbGV0IGZlZWRJdGVtcyA9IHRoaXMuX2ZlZWRJdGVtcy5nZXQoZmVlZC5pZCk7XG4gICAgICAgIGlmICghZmVlZEl0ZW1zKSB7XG4gICAgICAgICAgZmVlZEl0ZW1zID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxGZWF0dXJlPj4oW10pO1xuICAgICAgICAgIHRoaXMuX2ZlZWRJdGVtcy5zZXQoZmVlZC5pZCwgZmVlZEl0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgc3ViamVjdC5uZXh0KGZlZWRzKTtcbiAgICAgIHRoaXMuX2ZlZWRzLm5leHQoZmVlZHMpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHN1YmplY3Q7XG4gIH1cblxuICBmZXRjaEZlZWRJdGVtcyhldmVudDogYW55LCBmZWVkOiBGZWVkKTogT2JzZXJ2YWJsZTxGZWVkQ29udGVudD4ge1xuICAgIGNvbnN0IGZlZWRJdGVtcyA9IHRoaXMuX2ZlZWRJdGVtcy5nZXQoZmVlZC5pZClcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8RmVlZENvbnRlbnQ+KGAvYXBpL2V2ZW50cy8ke2V2ZW50LmlkfS9mZWVkcy8ke2ZlZWQuaWR9L2NvbnRlbnRgLCB7fSkucGlwZShcbiAgICAgIG1hcChjb250ZW50ID0+IHtcbiAgICAgICAgY29uc3QgZmVhdHVyZXMgPSBjb250ZW50Lml0ZW1zLmZlYXR1cmVzXG4gICAgICAgIGZlYXR1cmVzLmZvckVhY2goKGZlYXR1cmU6IFN0eWxlZEZlYXR1cmUpID0+IHtcbiAgICAgICAgICBmZWF0dXJlLmlkID0gU3RyaW5nKGZlYXR1cmUuaWQpXG4gICAgICAgICAgZmVhdHVyZS5wcm9wZXJ0aWVzID0gZmVhdHVyZS5wcm9wZXJ0aWVzIHx8IHt9XG4gICAgICAgIH0pXG4gICAgICAgIGZlZWRJdGVtcy5uZXh0KGZlYXR1cmVzKVxuICAgICAgICByZXR1cm4gY29udGVudFxuICAgICAgfSlcbiAgICApXG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdhZ2VvaW50LW1hZ2Uud2ViLWNvcmUtbGliLWZlZWQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmdhZ2VvaW50L21hZ2Uud2ViLWNvcmUtbGliL2ZlZWQvIiwic291cmNlcyI6WyJuZ2FnZW9pbnQtbWFnZS53ZWItY29yZS1saWItZmVlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './feed.service';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ2FnZW9pbnQvbWFnZS53ZWItY29yZS1saWIvZmVlZC8iLCJzb3VyY2VzIjpbInB1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsY0FBYyxnQkFBZ0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZmVlZC5tb2RlbCdcbmV4cG9ydCAqIGZyb20gJy4vZmVlZC5zZXJ2aWNlJyJdfQ==
@@ -0,0 +1,20 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ export class MageCoreLibModule {
5
+ }
6
+ MageCoreLibModule.ɵmod = i0.ɵɵdefineNgModule({ type: MageCoreLibModule });
7
+ MageCoreLibModule.ɵinj = i0.ɵɵdefineInjector({ factory: function MageCoreLibModule_Factory(t) { return new (t || MageCoreLibModule)(); }, imports: [[
8
+ CommonModule
9
+ ]] });
10
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MageCoreLibModule, { imports: [CommonModule] }); })();
11
+ /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(MageCoreLibModule, [{
12
+ type: NgModule,
13
+ args: [{
14
+ declarations: [],
15
+ imports: [
16
+ CommonModule
17
+ ]
18
+ }]
19
+ }], null, null); })();
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnZS1jb3JlLWxpYi5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmdhZ2VvaW50L21hZ2Uud2ViLWNvcmUtbGliLyIsInNvdXJjZXMiOlsibWFnZS1jb3JlLWxpYi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBVS9DLE1BQU0sT0FBTyxpQkFBaUI7O3FEQUFqQixpQkFBaUI7aUhBQWpCLGlCQUFpQixrQkFKbkI7WUFDUCxZQUFZO1NBQ2I7d0ZBRVUsaUJBQWlCLGNBSDFCLFlBQVk7a0RBR0gsaUJBQWlCO2NBTjdCLFFBQVE7ZUFBQztnQkFDUixZQUFZLEVBQUUsRUFBRTtnQkFDaEIsT0FBTyxFQUFFO29CQUNQLFlBQVk7aUJBQ2I7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE1hZ2VDb3JlTGliTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdhZ2VvaW50LW1hZ2Uud2ViLWNvcmUtbGliLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nYWdlb2ludC9tYWdlLndlYi1jb3JlLWxpYi8iLCJzb3VyY2VzIjpbIm5nYWdlb2ludC1tYWdlLndlYi1jb3JlLWxpYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdhZ2VvaW50LW1hZ2Uud2ViLWNvcmUtbGliLXBhZ2luZy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ2FnZW9pbnQvbWFnZS53ZWItY29yZS1saWIvcGFnaW5nLyIsInNvdXJjZXMiOlsibmdhZ2VvaW50LW1hZ2Uud2ViLWNvcmUtbGliLXBhZ2luZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19