@coolon/angular-ui-powerups 0.0.24 → 0.0.26

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 (286) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/jest.config.js +9 -0
  3. package/ng-package.json +13 -0
  4. package/package.json +12 -14
  5. package/schematics/ng-add/index.ts +10 -0
  6. package/schematics/place-routes/index.ts +152 -0
  7. package/schematics/place-routes/place-def.ts +93 -0
  8. package/schematics/place-routes/scanner.ts +145 -0
  9. package/schematics/place-routes/schema.ts +7 -0
  10. package/src/lib/angular-ui-powerups.module.spec.ts +14 -0
  11. package/src/lib/angular-ui-powerups.module.ts +49 -0
  12. package/{lib/animations/index.d.ts → src/lib/animations/index.ts} +1 -0
  13. package/src/lib/animations/slideDownAndUpAnimation.ts +39 -0
  14. package/src/lib/components/disposable-component.ts +9 -0
  15. package/src/lib/components/forms/abstract-input.component.ts +108 -0
  16. package/src/lib/components/forms/number-input/number-input.component.html +15 -0
  17. package/src/lib/components/forms/number-input/number-input.component.scss +3 -0
  18. package/src/lib/components/forms/number-input/number-input.component.spec.ts +25 -0
  19. package/src/lib/components/forms/number-input/number-input.component.ts +19 -0
  20. package/src/lib/components/forms/password-input/password-input.component.html +16 -0
  21. package/src/lib/components/forms/password-input/password-input.component.scss +3 -0
  22. package/src/lib/components/forms/password-input/password-input.component.spec.ts +25 -0
  23. package/src/lib/components/forms/password-input/password-input.component.ts +18 -0
  24. package/src/lib/components/forms/scss/mixins.scss +16 -0
  25. package/src/lib/components/forms/select-input/select-input.component.html +16 -0
  26. package/src/lib/components/forms/select-input/select-input.component.scss +7 -0
  27. package/src/lib/components/forms/select-input/select-input.component.spec.ts +25 -0
  28. package/src/lib/components/forms/select-input/select-input.component.ts +31 -0
  29. package/src/lib/components/forms/string-input/string-input.component.html +15 -0
  30. package/src/lib/components/forms/string-input/string-input.component.scss +3 -0
  31. package/src/lib/components/forms/string-input/string-input.component.spec.ts +25 -0
  32. package/src/lib/components/forms/string-input/string-input.component.ts +18 -0
  33. package/{lib/components/index.d.ts → src/lib/components/index.ts} +1 -0
  34. package/src/lib/components/resize-aware.component.ts +52 -0
  35. package/src/lib/components/types/bounds.class.ts +25 -0
  36. package/src/lib/components/types/dimension.class.ts +3 -0
  37. package/src/lib/components/types/point.class.ts +13 -0
  38. package/src/lib/directives/command.directive.spec.ts +73 -0
  39. package/src/lib/directives/command.directive.ts +81 -0
  40. package/src/lib/directives/focus-binding.directive.spec.ts +8 -0
  41. package/src/lib/directives/focus-binding.directive.ts +108 -0
  42. package/{lib/directives/index.d.ts → src/lib/directives/index.ts} +1 -0
  43. package/src/lib/interaction/abstract-activity.ts +57 -0
  44. package/src/lib/interaction/activity.ts +17 -0
  45. package/src/lib/interaction/alert.ts +6 -0
  46. package/src/lib/interaction/components/activity-container/activity-container.component.html +8 -0
  47. package/src/lib/interaction/components/activity-container/activity-container.component.scss +3 -0
  48. package/src/lib/interaction/components/activity-container/activity-container.component.spec.ts +25 -0
  49. package/src/lib/interaction/components/activity-container/activity-container.component.ts +93 -0
  50. package/{lib/interaction/components/activity-outlet/activity-outlet-context.d.ts → src/lib/interaction/components/activity-outlet/activity-outlet-context.ts} +7 -5
  51. package/src/lib/interaction/components/activity-outlet/activity-outlet.component.scss +3 -0
  52. package/src/lib/interaction/components/activity-outlet/activity-outlet.component.spec.ts +25 -0
  53. package/src/lib/interaction/components/activity-outlet/activity-outlet.component.ts +96 -0
  54. package/src/lib/interaction/components/alert-dialog/alert-dialog.component.html +7 -0
  55. package/src/lib/interaction/components/alert-dialog/alert-dialog.component.scss +7 -0
  56. package/src/lib/interaction/components/alert-dialog/alert-dialog.component.spec.ts +25 -0
  57. package/src/lib/interaction/components/alert-dialog/alert-dialog.component.ts +20 -0
  58. package/src/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.html +9 -0
  59. package/src/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.scss +8 -0
  60. package/src/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.spec.ts +25 -0
  61. package/src/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.ts +26 -0
  62. package/{lib/interaction/confirm.d.ts → src/lib/interaction/confirm.ts} +3 -2
  63. package/{lib/interaction/index.d.ts → src/lib/interaction/index.ts} +1 -0
  64. package/src/lib/interaction/interaction-context.ts +16 -0
  65. package/src/lib/interaction/interaction.module.ts +35 -0
  66. package/src/lib/interaction/result.ts +16 -0
  67. package/src/lib/interaction/services/dialog-interaction.service.scss +11 -0
  68. package/src/lib/interaction/services/dialog-interaction.service.spec.ts +12 -0
  69. package/src/lib/interaction/services/dialog-interaction.service.ts +63 -0
  70. package/src/lib/place/abstract-place-component.ts +33 -0
  71. package/src/lib/place/components/busy-overlay/busy-overlay.component.html +4 -0
  72. package/src/lib/place/components/busy-overlay/busy-overlay.component.scss +27 -0
  73. package/src/lib/place/components/busy-overlay/busy-overlay.component.spec.ts +25 -0
  74. package/src/lib/place/components/busy-overlay/busy-overlay.component.ts +23 -0
  75. package/src/lib/place/components/empty-state/empty-state.component.scss +15 -0
  76. package/src/lib/place/components/empty-state/empty-state.component.spec.ts +25 -0
  77. package/src/lib/place/components/empty-state/empty-state.component.ts +19 -0
  78. package/src/lib/place/components/place-outlet/place-outlet.component.html +7 -0
  79. package/src/lib/place/components/place-outlet/place-outlet.component.scss +12 -0
  80. package/src/lib/place/components/place-outlet/place-outlet.component.spec.ts +25 -0
  81. package/src/lib/place/components/place-outlet/place-outlet.component.ts +37 -0
  82. package/src/lib/place/components/place-outlet/route-animations.ts +30 -0
  83. package/src/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.html +7 -0
  84. package/src/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.scss +100 -0
  85. package/src/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.spec.ts +25 -0
  86. package/src/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.ts +30 -0
  87. package/src/lib/place/guards/leave-place.guard.spec.ts +15 -0
  88. package/src/lib/place/guards/leave-place.guard.ts +18 -0
  89. package/src/lib/place/guards/place-route.guard.ts +37 -0
  90. package/{lib/place/index.d.ts → src/lib/place/index.ts} +1 -0
  91. package/src/lib/place/place-component.ts +6 -0
  92. package/src/lib/place/place.decorator.ts +40 -0
  93. package/src/lib/place/place.module.ts +44 -0
  94. package/src/lib/place/place.service.spec.ts +12 -0
  95. package/src/lib/place/place.service.ts +29 -0
  96. package/src/lib/place/route/json-types.ts +5 -0
  97. package/src/lib/place/route/parameter-decorators.ts +99 -0
  98. package/src/lib/place/route/parameter-definition.class.ts +12 -0
  99. package/{lib/place/route/parameter-sanitiser.d.ts → src/lib/place/route/parameter-sanitiser.ts} +1 -1
  100. package/src/lib/place/route/parameter-type.ts +31 -0
  101. package/src/lib/place/route/route-parameter-bindings.ts +140 -0
  102. package/src/lib/place/route/route-parameter-sanitiser.ts +135 -0
  103. package/src/test-setup.ts +1 -0
  104. package/tsconfig.json +7 -0
  105. package/tsconfig.lib.json +20 -0
  106. package/tsconfig.schematics.json +35 -0
  107. package/tsconfig.spec.json +10 -0
  108. package/tslint.json +7 -0
  109. package/bundles/coolon-angular-ui-powerups.umd.js +0 -3926
  110. package/bundles/coolon-angular-ui-powerups.umd.js.map +0 -1
  111. package/bundles/coolon-angular-ui-powerups.umd.min.js +0 -2
  112. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +0 -1
  113. package/coolon-angular-ui-powerups.d.ts +0 -30
  114. package/coolon-angular-ui-powerups.metadata.json +0 -1
  115. package/esm2015/coolon-angular-ui-powerups.js +0 -33
  116. package/esm2015/index.js +0 -6
  117. package/esm2015/lib/angular-ui-powerups.module.js +0 -54
  118. package/esm2015/lib/animations/index.js +0 -9
  119. package/esm2015/lib/animations/slideDownAndUpAnimation.js +0 -30
  120. package/esm2015/lib/components/disposable-component.js +0 -14
  121. package/esm2015/lib/components/forms/abstract-input.component.js +0 -183
  122. package/esm2015/lib/components/forms/number-input/number-input.component.js +0 -26
  123. package/esm2015/lib/components/forms/password-input/password-input.component.js +0 -26
  124. package/esm2015/lib/components/forms/select-input/select-input.component.js +0 -60
  125. package/esm2015/lib/components/forms/string-input/string-input.component.js +0 -26
  126. package/esm2015/lib/components/index.js +0 -18
  127. package/esm2015/lib/components/resize-aware.component.js +0 -96
  128. package/esm2015/lib/components/types/bounds.class.js +0 -56
  129. package/esm2015/lib/components/types/dimension.class.js +0 -21
  130. package/esm2015/lib/components/types/point.class.js +0 -36
  131. package/esm2015/lib/directives/command.directive.js +0 -135
  132. package/esm2015/lib/directives/focus-binding.directive.js +0 -179
  133. package/esm2015/lib/directives/index.js +0 -10
  134. package/esm2015/lib/interaction/abstract-activity.js +0 -129
  135. package/esm2015/lib/interaction/activity.js +0 -27
  136. package/esm2015/lib/interaction/alert.js +0 -23
  137. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +0 -144
  138. package/esm2015/lib/interaction/components/activity-outlet/activity-outlet-context.js +0 -22
  139. package/esm2015/lib/interaction/components/activity-outlet/activity-outlet.component.js +0 -169
  140. package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js +0 -37
  141. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +0 -46
  142. package/esm2015/lib/interaction/confirm.js +0 -17
  143. package/esm2015/lib/interaction/index.js +0 -21
  144. package/esm2015/lib/interaction/interaction-context.js +0 -35
  145. package/esm2015/lib/interaction/interaction.module.js +0 -41
  146. package/esm2015/lib/interaction/result.js +0 -24
  147. package/esm2015/lib/interaction/services/dialog-interaction.service.js +0 -114
  148. package/esm2015/lib/place/abstract-place-component.js +0 -59
  149. package/esm2015/lib/place/components/busy-overlay/busy-overlay.component.js +0 -44
  150. package/esm2015/lib/place/components/empty-state/empty-state.component.js +0 -28
  151. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +0 -67
  152. package/esm2015/lib/place/components/place-outlet/route-animations.js +0 -35
  153. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +0 -50
  154. package/esm2015/lib/place/guards/leave-place.guard.js +0 -52
  155. package/esm2015/lib/place/guards/place-route.guard.js +0 -74
  156. package/esm2015/lib/place/index.js +0 -27
  157. package/esm2015/lib/place/place-component.js +0 -17
  158. package/esm2015/lib/place/place.decorator.js +0 -72
  159. package/esm2015/lib/place/place.module.js +0 -49
  160. package/esm2015/lib/place/place.service.js +0 -61
  161. package/esm2015/lib/place/route/json-types.js +0 -13
  162. package/esm2015/lib/place/route/parameter-decorators.js +0 -178
  163. package/esm2015/lib/place/route/parameter-definition.class.js +0 -24
  164. package/esm2015/lib/place/route/parameter-sanitiser.js +0 -17
  165. package/esm2015/lib/place/route/parameter-type.js +0 -43
  166. package/esm2015/lib/place/route/route-parameter-bindings.js +0 -294
  167. package/esm2015/lib/place/route/route-parameter-sanitiser.js +0 -280
  168. package/esm2015/public_api.js +0 -11
  169. package/esm5/coolon-angular-ui-powerups.js +0 -33
  170. package/esm5/index.js +0 -6
  171. package/esm5/lib/angular-ui-powerups.module.js +0 -58
  172. package/esm5/lib/animations/index.js +0 -9
  173. package/esm5/lib/animations/slideDownAndUpAnimation.js +0 -30
  174. package/esm5/lib/components/disposable-component.js +0 -24
  175. package/esm5/lib/components/forms/abstract-input.component.js +0 -232
  176. package/esm5/lib/components/forms/number-input/number-input.component.js +0 -33
  177. package/esm5/lib/components/forms/password-input/password-input.component.js +0 -33
  178. package/esm5/lib/components/forms/select-input/select-input.component.js +0 -67
  179. package/esm5/lib/components/forms/string-input/string-input.component.js +0 -33
  180. package/esm5/lib/components/index.js +0 -18
  181. package/esm5/lib/components/resize-aware.component.js +0 -124
  182. package/esm5/lib/components/types/bounds.class.js +0 -59
  183. package/esm5/lib/components/types/dimension.class.js +0 -19
  184. package/esm5/lib/components/types/point.class.js +0 -43
  185. package/esm5/lib/directives/command.directive.js +0 -155
  186. package/esm5/lib/directives/focus-binding.directive.js +0 -231
  187. package/esm5/lib/directives/index.js +0 -10
  188. package/esm5/lib/interaction/abstract-activity.js +0 -173
  189. package/esm5/lib/interaction/activity.js +0 -27
  190. package/esm5/lib/interaction/alert.js +0 -23
  191. package/esm5/lib/interaction/components/activity-container/activity-container.component.js +0 -181
  192. package/esm5/lib/interaction/components/activity-outlet/activity-outlet-context.js +0 -22
  193. package/esm5/lib/interaction/components/activity-outlet/activity-outlet.component.js +0 -206
  194. package/esm5/lib/interaction/components/alert-dialog/alert-dialog.component.js +0 -42
  195. package/esm5/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +0 -54
  196. package/esm5/lib/interaction/confirm.js +0 -17
  197. package/esm5/lib/interaction/index.js +0 -21
  198. package/esm5/lib/interaction/interaction-context.js +0 -45
  199. package/esm5/lib/interaction/interaction.module.js +0 -45
  200. package/esm5/lib/interaction/result.js +0 -24
  201. package/esm5/lib/interaction/services/dialog-interaction.service.js +0 -140
  202. package/esm5/lib/place/abstract-place-component.js +0 -66
  203. package/esm5/lib/place/components/busy-overlay/busy-overlay.component.js +0 -49
  204. package/esm5/lib/place/components/empty-state/empty-state.component.js +0 -29
  205. package/esm5/lib/place/components/place-outlet/place-outlet.component.js +0 -81
  206. package/esm5/lib/place/components/place-outlet/route-animations.js +0 -35
  207. package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +0 -57
  208. package/esm5/lib/place/guards/leave-place.guard.js +0 -57
  209. package/esm5/lib/place/guards/place-route.guard.js +0 -78
  210. package/esm5/lib/place/index.js +0 -27
  211. package/esm5/lib/place/place-component.js +0 -17
  212. package/esm5/lib/place/place.decorator.js +0 -69
  213. package/esm5/lib/place/place.module.js +0 -53
  214. package/esm5/lib/place/place.service.js +0 -75
  215. package/esm5/lib/place/route/json-types.js +0 -13
  216. package/esm5/lib/place/route/parameter-decorators.js +0 -178
  217. package/esm5/lib/place/route/parameter-definition.class.js +0 -24
  218. package/esm5/lib/place/route/parameter-sanitiser.js +0 -17
  219. package/esm5/lib/place/route/parameter-type.js +0 -65
  220. package/esm5/lib/place/route/route-parameter-bindings.js +0 -339
  221. package/esm5/lib/place/route/route-parameter-sanitiser.js +0 -395
  222. package/esm5/public_api.js +0 -11
  223. package/fesm2015/coolon-angular-ui-powerups.js +0 -3145
  224. package/fesm2015/coolon-angular-ui-powerups.js.map +0 -1
  225. package/fesm5/coolon-angular-ui-powerups.js +0 -3699
  226. package/fesm5/coolon-angular-ui-powerups.js.map +0 -1
  227. package/lib/angular-ui-powerups.module.d.ts +0 -2
  228. package/lib/animations/slideDownAndUpAnimation.d.ts +0 -5
  229. package/lib/components/disposable-component.d.ts +0 -5
  230. package/lib/components/forms/abstract-input.component.d.ts +0 -35
  231. package/lib/components/forms/number-input/number-input.component.d.ts +0 -6
  232. package/lib/components/forms/password-input/password-input.component.d.ts +0 -6
  233. package/lib/components/forms/select-input/select-input.component.d.ts +0 -11
  234. package/lib/components/forms/string-input/string-input.component.d.ts +0 -6
  235. package/lib/components/resize-aware.component.d.ts +0 -22
  236. package/lib/components/types/bounds.class.d.ts +0 -16
  237. package/lib/components/types/dimension.class.d.ts +0 -5
  238. package/lib/components/types/point.class.d.ts +0 -10
  239. package/lib/directives/command.directive.d.ts +0 -14
  240. package/lib/directives/focus-binding.directive.d.ts +0 -22
  241. package/lib/interaction/abstract-activity.d.ts +0 -17
  242. package/lib/interaction/activity.d.ts +0 -11
  243. package/lib/interaction/alert.d.ts +0 -5
  244. package/lib/interaction/components/activity-container/activity-container.component.d.ts +0 -32
  245. package/lib/interaction/components/activity-outlet/activity-outlet.component.d.ts +0 -30
  246. package/lib/interaction/components/alert-dialog/alert-dialog.component.d.ts +0 -8
  247. package/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.d.ts +0 -9
  248. package/lib/interaction/interaction-context.d.ts +0 -11
  249. package/lib/interaction/interaction.module.d.ts +0 -2
  250. package/lib/interaction/result.d.ts +0 -8
  251. package/lib/interaction/services/dialog-interaction.service.d.ts +0 -14
  252. package/lib/place/abstract-place-component.d.ts +0 -13
  253. package/lib/place/components/busy-overlay/busy-overlay.component.d.ts +0 -8
  254. package/lib/place/components/empty-state/empty-state.component.d.ts +0 -5
  255. package/lib/place/components/place-outlet/place-outlet.component.d.ts +0 -13
  256. package/lib/place/components/place-outlet/route-animations.d.ts +0 -1
  257. package/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.d.ts +0 -11
  258. package/lib/place/guards/leave-place.guard.d.ts +0 -10
  259. package/lib/place/guards/place-route.guard.d.ts +0 -9
  260. package/lib/place/place-component.d.ts +0 -5
  261. package/lib/place/place.decorator.d.ts +0 -20
  262. package/lib/place/place.module.d.ts +0 -2
  263. package/lib/place/place.service.d.ts +0 -8
  264. package/lib/place/route/json-types.d.ts +0 -7
  265. package/lib/place/route/parameter-decorators.d.ts +0 -26
  266. package/lib/place/route/parameter-definition.class.d.ts +0 -11
  267. package/lib/place/route/parameter-type.d.ts +0 -16
  268. package/lib/place/route/route-parameter-bindings.d.ts +0 -18
  269. package/lib/place/route/route-parameter-sanitiser.d.ts +0 -42
  270. package/schematics/ng-add/index.d.ts +0 -2
  271. package/schematics/ng-add/index.js +0 -12
  272. package/schematics/ng-add/index.js.map +0 -1
  273. package/schematics/place-routes/index.d.ts +0 -3
  274. package/schematics/place-routes/index.js +0 -114
  275. package/schematics/place-routes/index.js.map +0 -1
  276. package/schematics/place-routes/place-def.d.ts +0 -34
  277. package/schematics/place-routes/place-def.js +0 -84
  278. package/schematics/place-routes/place-def.js.map +0 -1
  279. package/schematics/place-routes/scanner.d.ts +0 -26
  280. package/schematics/place-routes/scanner.js +0 -125
  281. package/schematics/place-routes/scanner.js.map +0 -1
  282. package/schematics/place-routes/schema.d.ts +0 -7
  283. package/schematics/place-routes/schema.js +0 -3
  284. package/schematics/place-routes/schema.js.map +0 -1
  285. /package/{index.d.ts → src/index.ts} +0 -0
  286. /package/{public_api.d.ts → src/public_api.ts} +0 -0
@@ -1,294 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import * as tslib_1 from "tslib";
6
- import { ActivatedRoute, Router } from '@angular/router';
7
- import { Binding, Dsl, GarbageCollector, MutableValueModel, Trace, TransactionObserver } from '@coolon/pectin';
8
- import { Klass } from '@coolon/typescript-utilities';
9
- /**
10
- * @record
11
- * @template T
12
- */
13
- function ResolvedParameter() { }
14
- if (false) {
15
- /** @type {?} */
16
- ResolvedParameter.prototype.parameterDef;
17
- /** @type {?} */
18
- ResolvedParameter.prototype.resolvedValue;
19
- }
20
- class ResolvedParameters {
21
- /**
22
- * @param {?} parameters
23
- */
24
- constructor(parameters) {
25
- this.parameters = parameters;
26
- }
27
- /**
28
- * @template T
29
- * @param {?} parameter
30
- * @return {?}
31
- */
32
- get(parameter) {
33
- /** @type {?} */
34
- const resolved = this.parameters.find((/**
35
- * @param {?} p
36
- * @return {?}
37
- */
38
- p => p.parameterDef === parameter));
39
- return resolved ? resolved.resolvedValue : null;
40
- }
41
- /**
42
- * @template T
43
- * @param {?} parameter
44
- * @param {?} value
45
- * @return {?}
46
- */
47
- replace(parameter, value) {
48
- return new ResolvedParameters(this.parameters.filter((/**
49
- * @param {?} p
50
- * @return {?}
51
- */
52
- p => p.parameterDef !== parameter)).concat({
53
- parameterDef: parameter,
54
- resolvedValue: value
55
- }));
56
- }
57
- /**
58
- * @protected
59
- * @return {?}
60
- */
61
- getFormattedRouteId() {
62
- /** @type {?} */
63
- const routeIdParam = this.getRouteIdParam();
64
- return routeIdParam ? routeIdParam.parameterDef.type.format(routeIdParam.resolvedValue) : null;
65
- }
66
- /**
67
- * @private
68
- * @return {?}
69
- */
70
- getRouteIdParam() {
71
- return this.parameters.find((/**
72
- * @param {?} p
73
- * @return {?}
74
- */
75
- p => p.parameterDef.isRouteId));
76
- }
77
- /**
78
- * @protected
79
- * @return {?}
80
- */
81
- getFormattedParameters() {
82
- /** @type {?} */
83
- const params = {};
84
- /** @type {?} */
85
- const routeIdParam = this.parameters.filter((/**
86
- * @param {?} p
87
- * @return {?}
88
- */
89
- p => !p.parameterDef.isRouteId)).forEach((/**
90
- * @param {?} p
91
- * @return {?}
92
- */
93
- p => {
94
- params[p.parameterDef.name] = p.parameterDef.type.format(p.resolvedValue);
95
- }));
96
- return params;
97
- }
98
- /**
99
- * @return {?}
100
- */
101
- hasRouteId() {
102
- return !!this.getRouteIdParam();
103
- }
104
- /**
105
- * @param {?} previous
106
- * @param {?} router
107
- * @param {?} activatedRoute
108
- * @return {?}
109
- */
110
- redirect(previous, router, activatedRoute) {
111
- /** @type {?} */
112
- const routeId = this.getFormattedRouteId();
113
- /** @type {?} */
114
- const relativePath = !!previous.hasRouteId() ? '..' : '.';
115
- /** @type {?} */
116
- const path = routeId ? [relativePath, routeId, this.getFormattedParameters()] : [relativePath, this.getFormattedParameters()];
117
- router.navigate(path, {
118
- relativeTo: activatedRoute
119
- });
120
- }
121
- }
122
- tslib_1.__decorate([
123
- Trace(),
124
- tslib_1.__metadata("design:type", Function),
125
- tslib_1.__metadata("design:paramtypes", []),
126
- tslib_1.__metadata("design:returntype", void 0)
127
- ], ResolvedParameters.prototype, "getFormattedRouteId", null);
128
- tslib_1.__decorate([
129
- Trace(),
130
- tslib_1.__metadata("design:type", Function),
131
- tslib_1.__metadata("design:paramtypes", []),
132
- tslib_1.__metadata("design:returntype", void 0)
133
- ], ResolvedParameters.prototype, "getFormattedParameters", null);
134
- tslib_1.__decorate([
135
- Trace(),
136
- tslib_1.__metadata("design:type", Function),
137
- tslib_1.__metadata("design:paramtypes", [ResolvedParameters, Router, ActivatedRoute]),
138
- tslib_1.__metadata("design:returntype", void 0)
139
- ], ResolvedParameters.prototype, "redirect", null);
140
- if (false) {
141
- /** @type {?} */
142
- ResolvedParameters.prototype.parameters;
143
- }
144
- export class RouteParameterBindings extends GarbageCollector {
145
- /**
146
- * @param {?} component
147
- * @param {?} router
148
- * @param {?} activatedRoute
149
- */
150
- constructor(component, router, activatedRoute) {
151
- super();
152
- this.component = component;
153
- this.router = router;
154
- this.activatedRoute = activatedRoute;
155
- this._incomingRouteChange = new MutableValueModel(false);
156
- this.resolvedParameters = new MutableValueModel();
157
- const { chain, valueOf, before, when, after, observe } = Dsl.disposeWith(this);
158
- this.txo = new TransactionObserver(); //.onEvent(e => console.log(e.toString()));
159
- //.onEvent(e => console.log(e.toString()));
160
- /** @type {?} */
161
- const routeParameterDefs = Klass.get(component).getMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY);
162
- routeParameterDefs.forEach((/**
163
- * @param {?} parameter
164
- * @return {?}
165
- */
166
- parameter => this.installBinding(parameter)));
167
- /** @type {?} */
168
- const incomingResolvedRouteParameters = observe.valuesFrom(activatedRoute.paramMap)
169
- .last()
170
- .map((/**
171
- * @param {?} params
172
- * @return {?}
173
- */
174
- params => {
175
- /** @type {?} */
176
- const result = [];
177
- routeParameterDefs.forEach((/**
178
- * @param {?} parameterDef
179
- * @return {?}
180
- */
181
- parameterDef => {
182
- /** @type {?} */
183
- let resolvedValue;
184
- if (parameterDef.isArray) {
185
- resolvedValue = params.getAll(parameterDef.name).map((/**
186
- * @param {?} v
187
- * @return {?}
188
- */
189
- v => parameterDef.type.parse(v)));
190
- }
191
- else {
192
- resolvedValue = parameterDef.type.parse(params.get(parameterDef.name));
193
- }
194
- result.push({ parameterDef: parameterDef, resolvedValue: resolvedValue });
195
- }));
196
- return new ResolvedParameters(result);
197
- }));
198
- incomingResolvedRouteParameters.subscribe((/**
199
- * @param {?} resolvedParameters
200
- * @return {?}
201
- */
202
- resolvedParameters => {
203
- this._incomingRouteChange.value = true;
204
- this.resolvedParameters.value = resolvedParameters;
205
- this._incomingRouteChange.value = false;
206
- }));
207
- when.valueOf(this.resolvedParameters).changes((/**
208
- * @param {?} params
209
- * @param {?} previous
210
- * @return {?}
211
- */
212
- (params, previous) => {
213
- params.redirect(previous, router, activatedRoute);
214
- }), { unless: this.incomingRouteChange });
215
- this.txo.observe('incomingResolvedRouteParameters', incomingResolvedRouteParameters);
216
- this.txo.observe('this.routeIsChanging', this.incomingRouteChange);
217
- }
218
- /**
219
- * @return {?}
220
- */
221
- get incomingRouteChange() {
222
- return this._incomingRouteChange.readonly;
223
- }
224
- /**
225
- * @protected
226
- * @template T
227
- * @param {?} parameter
228
- * @return {?}
229
- */
230
- installBinding(parameter) {
231
- /** @type {?} */
232
- const model = this.getModelFor(parameter);
233
- // this.txo.observe(parameter.propertyName, model);
234
- this.registerDisposable(new Binding(this.resolvedParameters, model, {
235
- /**
236
- * @param {?} parameters
237
- * @return {?}
238
- */
239
- toRight(parameters) {
240
- return parameters.get(parameter);
241
- },
242
- /**
243
- * @param {?} value
244
- * @param {?=} currentParameters
245
- * @return {?}
246
- */
247
- toLeft(value, currentParameters) {
248
- return currentParameters.replace(parameter, value);
249
- }
250
- }));
251
- }
252
- /**
253
- * @private
254
- * @template T
255
- * @param {?} parameter
256
- * @return {?}
257
- */
258
- getModelFor(parameter) {
259
- return this.component[parameter.propertyName];
260
- }
261
- }
262
- if (false) {
263
- /** @type {?} */
264
- RouteParameterBindings.prototype._incomingRouteChange;
265
- /**
266
- * @type {?}
267
- * @private
268
- */
269
- RouteParameterBindings.prototype.txo;
270
- /**
271
- * @type {?}
272
- * @private
273
- */
274
- RouteParameterBindings.prototype.resolvedParameters;
275
- /**
276
- * @type {?}
277
- * @private
278
- */
279
- RouteParameterBindings.prototype.component;
280
- /**
281
- * @type {?}
282
- * @private
283
- */
284
- RouteParameterBindings.prototype.router;
285
- /**
286
- * @type {?}
287
- * @private
288
- */
289
- RouteParameterBindings.prototype.activatedRoute;
290
- }
291
- (function (RouteParameterBindings) {
292
- RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY = Symbol('place:route:parameters');
293
- })(RouteParameterBindings || (RouteParameterBindings = {}));
294
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtcGFyYW1ldGVyLWJpbmRpbmdzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3JvdXRlL3JvdXRlLXBhcmFtZXRlci1iaW5kaW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNMLE9BQU8sRUFDUCxHQUFHLEVBQ0gsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixLQUFLLEVBQ0wsbUJBQW1CLEVBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7OztBQUdyRCxnQ0FHQzs7O0lBRkMseUNBQXFDOztJQUNyQywwQ0FBaUI7O0FBR25CLE1BQU0sa0JBQWtCOzs7O0lBQ3RCLFlBQXFCLFVBQW9DO1FBQXBDLGVBQVUsR0FBVixVQUFVLENBQTBCO0lBQ3pELENBQUM7Ozs7OztJQUVELEdBQUcsQ0FBSSxTQUFpQzs7Y0FDaEMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSTs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUM7UUFDeEUsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNsRCxDQUFDOzs7Ozs7O0lBRUQsT0FBTyxDQUFJLFNBQWlDLEVBQUUsS0FBUTtRQUNwRCxPQUFPLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBQyxDQUFDLE1BQU0sQ0FBQztZQUM3RixZQUFZLEVBQUUsU0FBUztZQUN2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O0lBQ04sQ0FBQzs7Ozs7OztJQUdPLFdBQVcsQ0FBSSxTQUFpQztRQUN0RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2hELENBQUM7Q0FDRjs7O0lBbEVDLHNEQUE2RTs7Ozs7SUFFN0UscUNBQWlDOzs7OztJQUVqQyxvREFBa0Y7Ozs7O0lBRXRFLDJDQUErQjs7Ozs7SUFBRSx3Q0FBK0I7Ozs7O0lBQUUsZ0RBQStDOztBQThEL0gsV0FBaUIsc0JBQXNCO0lBQ3hCLCtDQUF3QixHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQztBQUMxRSxDQUFDLEVBRmdCLHNCQUFzQixLQUF0QixzQkFBc0IsUUFFdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEJpbmRpbmcsXG4gIERzbCxcbiAgR2FyYmFnZUNvbGxlY3RvciwgSU11dGFibGVIYXNWYWx1ZSxcbiAgTXV0YWJsZVZhbHVlTW9kZWwsXG4gIFRyYWNlLFxuICBUcmFuc2FjdGlvbk9ic2VydmVyXG59IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IEtsYXNzIH0gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJEZWZpbml0aW9uIH0gZnJvbSAnLi9wYXJhbWV0ZXItZGVmaW5pdGlvbi5jbGFzcyc7XG5cbmludGVyZmFjZSBSZXNvbHZlZFBhcmFtZXRlcjxUPiB7XG4gIHBhcmFtZXRlckRlZjogUGFyYW1ldGVyRGVmaW5pdGlvbjxUPjtcbiAgcmVzb2x2ZWRWYWx1ZTogVDtcbn1cblxuY2xhc3MgUmVzb2x2ZWRQYXJhbWV0ZXJzIHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgcGFyYW1ldGVyczogUmVzb2x2ZWRQYXJhbWV0ZXI8YW55PltdKSB7XG4gIH1cblxuICBnZXQ8VD4ocGFyYW1ldGVyOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQ+KTogVCB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSB0aGlzLnBhcmFtZXRlcnMuZmluZChwID0+IHAucGFyYW1ldGVyRGVmID09PSBwYXJhbWV0ZXIpO1xuICAgIHJldHVybiByZXNvbHZlZCA/IHJlc29sdmVkLnJlc29sdmVkVmFsdWUgOiBudWxsO1xuICB9XG5cbiAgcmVwbGFjZTxUPihwYXJhbWV0ZXI6IFBhcmFtZXRlckRlZmluaXRpb248VD4sIHZhbHVlOiBUKTogUmVzb2x2ZWRQYXJhbWV0ZXJzIHtcbiAgICByZXR1cm4gbmV3IFJlc29sdmVkUGFyYW1ldGVycyh0aGlzLnBhcmFtZXRlcnMuZmlsdGVyKHAgPT4gcC5wYXJhbWV0ZXJEZWYgIT09IHBhcmFtZXRlcikuY29uY2F0KHtcbiAgICAgIHBhcmFtZXRlckRlZjogcGFyYW1ldGVyLFxuICAgICAgcmVzb2x2ZWRWYWx1ZTogdmFsdWVcbiAgICB9KSk7XG4gIH1cblxuICBAVHJhY2UoKVxuICBwcm90ZWN0ZWQgZ2V0Rm9ybWF0dGVkUm91dGVJZCgpIHtcbiAgICBjb25zdCByb3V0ZUlkUGFyYW0gPSB0aGlzLmdldFJvdXRlSWRQYXJhbSgpO1xuICAgIHJldHVybiByb3V0ZUlkUGFyYW0gPyByb3V0ZUlkUGFyYW0ucGFyYW1ldGVyRGVmLnR5cGUuZm9ybWF0KHJvdXRlSWRQYXJhbS5yZXNvbHZlZFZhbHVlKSA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGdldFJvdXRlSWRQYXJhbSgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzLmZpbmQocCA9PiBwLnBhcmFtZXRlckRlZi5pc1JvdXRlSWQpO1xuICB9XG5cbiAgQFRyYWNlKClcbiAgcHJvdGVjdGVkIGdldEZvcm1hdHRlZFBhcmFtZXRlcnMoKSB7XG4gICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgY29uc3Qgcm91dGVJZFBhcmFtID0gdGhpcy5wYXJhbWV0ZXJzLmZpbHRlcihwID0+ICFwLnBhcmFtZXRlckRlZi5pc1JvdXRlSWQpLmZvckVhY2gocCA9PiB7XG4gICAgICBwYXJhbXNbcC5wYXJhbWV0ZXJEZWYubmFtZV0gPSBwLnBhcmFtZXRlckRlZi50eXBlLmZvcm1hdChwLnJlc29sdmVkVmFsdWUpO1xuICAgIH0pO1xuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cblxuICBoYXNSb3V0ZUlkKCkge1xuICAgIHJldHVybiAhIXRoaXMuZ2V0Um91dGVJZFBhcmFtKCk7XG4gIH1cblxuICBAVHJhY2UoKVxuICByZWRpcmVjdChwcmV2aW91czogUmVzb2x2ZWRQYXJhbWV0ZXJzLCByb3V0ZXI6IFJvdXRlciwgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgY29uc3Qgcm91dGVJZCA9IHRoaXMuZ2V0Rm9ybWF0dGVkUm91dGVJZCgpO1xuICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9ICEhcHJldmlvdXMuaGFzUm91dGVJZCgpID8gJy4uJyA6ICcuJztcbiAgICBjb25zdCBwYXRoID0gcm91dGVJZCA/IFtyZWxhdGl2ZVBhdGgsIHJvdXRlSWQsIHRoaXMuZ2V0Rm9ybWF0dGVkUGFyYW1ldGVycygpXSA6IFtyZWxhdGl2ZVBhdGgsIHRoaXMuZ2V0Rm9ybWF0dGVkUGFyYW1ldGVycygpXTtcbiAgICByb3V0ZXIubmF2aWdhdGUocGF0aCwge1xuICAgICAgcmVsYXRpdmVUbzogYWN0aXZhdGVkUm91dGVcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUm91dGVQYXJhbWV0ZXJCaW5kaW5ncyBleHRlbmRzIEdhcmJhZ2VDb2xsZWN0b3Ige1xuXG4gIHB1YmxpYyByZWFkb25seSBfaW5jb21pbmdSb3V0ZUNoYW5nZSA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSB0eG86IFRyYW5zYWN0aW9uT2JzZXJ2ZXI7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZXNvbHZlZFBhcmFtZXRlcnMgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8UmVzb2x2ZWRQYXJhbWV0ZXJzPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50OiBhbnksIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7IGNoYWluLCB2YWx1ZU9mLCBiZWZvcmUsIHdoZW4sIGFmdGVyLCBvYnNlcnZlIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgdGhpcy50eG8gPSBuZXcgVHJhbnNhY3Rpb25PYnNlcnZlcigpOy8vLm9uRXZlbnQoZSA9PiBjb25zb2xlLmxvZyhlLnRvU3RyaW5nKCkpKTtcblxuICAgIGNvbnN0IHJvdXRlUGFyYW1ldGVyRGVmczogUGFyYW1ldGVyRGVmaW5pdGlvbjxhbnk+W10gPSBLbGFzcy5nZXQoY29tcG9uZW50KS5nZXRNZXRhZGF0YUxpc3QoUm91dGVQYXJhbWV0ZXJCaW5kaW5ncy5ST1VURV9QQVJBTUVURVJfTElTVF9LRVkpO1xuICAgIHJvdXRlUGFyYW1ldGVyRGVmcy5mb3JFYWNoKHBhcmFtZXRlciA9PiB0aGlzLmluc3RhbGxCaW5kaW5nKHBhcmFtZXRlcikpO1xuXG4gICAgY29uc3QgaW5jb21pbmdSZXNvbHZlZFJvdXRlUGFyYW1ldGVycyA9IG9ic2VydmUudmFsdWVzRnJvbShhY3RpdmF0ZWRSb3V0ZS5wYXJhbU1hcClcbiAgICAgIC5sYXN0KClcbiAgICAgIC5tYXAocGFyYW1zID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBSZXNvbHZlZFBhcmFtZXRlcjxhbnk+W10gPSBbXTtcbiAgICAgICAgcm91dGVQYXJhbWV0ZXJEZWZzLmZvckVhY2gocGFyYW1ldGVyRGVmID0+IHtcbiAgICAgICAgICBsZXQgcmVzb2x2ZWRWYWx1ZTtcbiAgICAgICAgICBpZiAocGFyYW1ldGVyRGVmLmlzQXJyYXkpIHtcbiAgICAgICAgICAgIHJlc29sdmVkVmFsdWUgPSBwYXJhbXMuZ2V0QWxsKHBhcmFtZXRlckRlZi5uYW1lKS5tYXAodiA9PiBwYXJhbWV0ZXJEZWYudHlwZS5wYXJzZSh2KSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc29sdmVkVmFsdWUgPSBwYXJhbWV0ZXJEZWYudHlwZS5wYXJzZShwYXJhbXMuZ2V0KHBhcmFtZXRlckRlZi5uYW1lKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc3VsdC5wdXNoKHsgcGFyYW1ldGVyRGVmOiBwYXJhbWV0ZXJEZWYsIHJlc29sdmVkVmFsdWU6IHJlc29sdmVkVmFsdWUgfSk7XG5cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXcgUmVzb2x2ZWRQYXJhbWV0ZXJzKHJlc3VsdCk7XG4gICAgICB9KTtcblxuICAgIGluY29taW5nUmVzb2x2ZWRSb3V0ZVBhcmFtZXRlcnMuc3Vic2NyaWJlKHJlc29sdmVkUGFyYW1ldGVycyA9PiB7XG4gICAgICB0aGlzLl9pbmNvbWluZ1JvdXRlQ2hhbmdlLnZhbHVlID0gdHJ1ZTtcbiAgICAgIHRoaXMucmVzb2x2ZWRQYXJhbWV0ZXJzLnZhbHVlID0gcmVzb2x2ZWRQYXJhbWV0ZXJzO1xuICAgICAgdGhpcy5faW5jb21pbmdSb3V0ZUNoYW5nZS52YWx1ZSA9IGZhbHNlO1xuICAgIH0pO1xuXG4gICAgd2hlbi52YWx1ZU9mKHRoaXMucmVzb2x2ZWRQYXJhbWV0ZXJzKS5jaGFuZ2VzKChwYXJhbXMsIHByZXZpb3VzKSA9PiB7XG4gICAgICBwYXJhbXMucmVkaXJlY3QocHJldmlvdXMsIHJvdXRlciwgYWN0aXZhdGVkUm91dGUpO1xuICAgIH0sIHsgdW5sZXNzOiB0aGlzLmluY29taW5nUm91dGVDaGFuZ2UgfSk7XG5cbiAgICB0aGlzLnR4by5vYnNlcnZlKCdpbmNvbWluZ1Jlc29sdmVkUm91dGVQYXJhbWV0ZXJzJywgaW5jb21pbmdSZXNvbHZlZFJvdXRlUGFyYW1ldGVycyk7XG4gICAgdGhpcy50eG8ub2JzZXJ2ZSgndGhpcy5yb3V0ZUlzQ2hhbmdpbmcnLCB0aGlzLmluY29taW5nUm91dGVDaGFuZ2UpO1xuICB9XG5cbiAgZ2V0IGluY29taW5nUm91dGVDaGFuZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2luY29taW5nUm91dGVDaGFuZ2UucmVhZG9ubHk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zdGFsbEJpbmRpbmc8VD4ocGFyYW1ldGVyOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQ+KSB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLmdldE1vZGVsRm9yKHBhcmFtZXRlcik7XG4gICAgLy8gdGhpcy50eG8ub2JzZXJ2ZShwYXJhbWV0ZXIucHJvcGVydHlOYW1lLCBtb2RlbCk7XG4gICAgdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IEJpbmRpbmcodGhpcy5yZXNvbHZlZFBhcmFtZXRlcnMsIG1vZGVsLCB7XG4gICAgICB0b1JpZ2h0KHBhcmFtZXRlcnM6IFJlc29sdmVkUGFyYW1ldGVycyk6IFQge1xuICAgICAgICByZXR1cm4gcGFyYW1ldGVycy5nZXQocGFyYW1ldGVyKTtcbiAgICAgIH0sXG4gICAgICB0b0xlZnQodmFsdWU6IFQsIGN1cnJlbnRQYXJhbWV0ZXJzPzogUmVzb2x2ZWRQYXJhbWV0ZXJzKTogUmVzb2x2ZWRQYXJhbWV0ZXJzIHtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRQYXJhbWV0ZXJzLnJlcGxhY2UocGFyYW1ldGVyLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cblxuICBwcml2YXRlIGdldE1vZGVsRm9yPFQ+KHBhcmFtZXRlcjogUGFyYW1ldGVyRGVmaW5pdGlvbjxUPik6IElNdXRhYmxlSGFzVmFsdWU8VD4ge1xuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFtwYXJhbWV0ZXIucHJvcGVydHlOYW1lXTtcbiAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFJvdXRlUGFyYW1ldGVyQmluZGluZ3Mge1xuICBleHBvcnQgY29uc3QgUk9VVEVfUEFSQU1FVEVSX0xJU1RfS0VZID0gU3ltYm9sKCdwbGFjZTpyb3V0ZTpwYXJhbWV0ZXJzJyk7XG59XG4iXX0=
@@ -1,280 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import * as tslib_1 from "tslib";
6
- import { assert } from '@coolon/pectin';
7
- import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
8
- import * as _ from 'lodash';
9
- /**
10
- * @abstract
11
- * @template T, S
12
- */
13
- export class Sanitiser {
14
- /**
15
- * @param {?} parameterDef
16
- * @param {?} snapshot
17
- * @param {?} sanitiser
18
- */
19
- constructor(parameterDef, snapshot, sanitiser) {
20
- this.parameterDef = parameterDef;
21
- this.snapshot = snapshot;
22
- this.sanitiser = sanitiser;
23
- }
24
- /**
25
- * @return {?}
26
- */
27
- isRouteId() {
28
- return this.parameterDef.isRouteId;
29
- }
30
- /**
31
- * @return {?}
32
- */
33
- get valueChanged() {
34
- return !_.isNil(this.initialValue) && this.hasChanged(this.initialValue, this.sanitisedValue);
35
- }
36
- /**
37
- * @return {?}
38
- */
39
- get sanitisedValue() {
40
- return this._sanitisedValue;
41
- }
42
- /**
43
- * @return {?}
44
- */
45
- sanitize() {
46
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
47
- if (this.sanitiser) {
48
- this.initialValue = this.readFrom(this.snapshot);
49
- this._sanitisedValue = yield this.sanitiser.sanitise(this.initialValue);
50
- if (this.initialValue !== this._sanitisedValue) {
51
- return false;
52
- }
53
- }
54
- return true;
55
- });
56
- }
57
- }
58
- if (false) {
59
- /**
60
- * @type {?}
61
- * @private
62
- */
63
- Sanitiser.prototype.initialValue;
64
- /**
65
- * @type {?}
66
- * @private
67
- */
68
- Sanitiser.prototype._sanitisedValue;
69
- /** @type {?} */
70
- Sanitiser.prototype.parameterDef;
71
- /** @type {?} */
72
- Sanitiser.prototype.snapshot;
73
- /** @type {?} */
74
- Sanitiser.prototype.sanitiser;
75
- /**
76
- * @abstract
77
- * @protected
78
- * @param {?} snapshot
79
- * @return {?}
80
- */
81
- Sanitiser.prototype.readFrom = function (snapshot) { };
82
- /**
83
- * @abstract
84
- * @protected
85
- * @param {?} initialValue
86
- * @param {?} sanitisedValue
87
- * @return {?}
88
- */
89
- Sanitiser.prototype.hasChanged = function (initialValue, sanitisedValue) { };
90
- /**
91
- * @abstract
92
- * @param {?} dest
93
- * @return {?}
94
- */
95
- Sanitiser.prototype.injectRouteParam = function (dest) { };
96
- }
97
- export class RouteParameterSanitiser {
98
- /**
99
- * @param {?} parameterDefs
100
- * @param {?} snapshot
101
- * @param {?} injector
102
- */
103
- constructor(parameterDefs, snapshot, injector) {
104
- this.parameterDefs = parameterDefs;
105
- this.snapshot = snapshot;
106
- this.injector = injector;
107
- this.parameterSanitisers = [];
108
- /** @type {?} */
109
- const sanitisers = parameterDefs.map((/**
110
- * @param {?} def
111
- * @return {?}
112
- */
113
- def => {
114
- return def.isArray ?
115
- new Sanitiser.Array(def, snapshot, this.getSanitiser(def)) :
116
- new Sanitiser.Value(def, snapshot, this.getSanitiser(def));
117
- }));
118
- this.routeIdSanitiser = sanitisers.find((/**
119
- * @param {?} p
120
- * @return {?}
121
- */
122
- p => p.isRouteId()));
123
- this.parameterSanitisers = sanitisers.filter((/**
124
- * @param {?} p
125
- * @return {?}
126
- */
127
- p => !p.isRouteId()));
128
- }
129
- /**
130
- * @return {?}
131
- */
132
- sanitise() {
133
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
134
- if (this.routeIdSanitiser) {
135
- yield this.routeIdSanitiser.sanitize();
136
- if (this.routeIdSanitiser.valueChanged) {
137
- // if the route id isn't ok we redirect immediately as the query params may need to be sanitised in the
138
- // context of the route id.
139
- return false;
140
- }
141
- }
142
- for (const sanitiser of this.parameterSanitisers) {
143
- yield sanitiser.sanitize();
144
- }
145
- return !this.parameterSanitisers.find((/**
146
- * @param {?} s
147
- * @return {?}
148
- */
149
- s => s.valueChanged));
150
- });
151
- }
152
- /**
153
- * @param {?} router
154
- * @return {?}
155
- */
156
- redirect(router) {
157
- assert.isTruthy(this.parameterSanitisers.length !== 0);
158
- if (this.routeIdSanitiser.valueChanged) {
159
- return router.navigate(['..', this.routeIdSanitiser.sanitisedValue]);
160
- }
161
- else {
162
- /** @type {?} */
163
- const routeParams = {};
164
- this.parameterSanitisers.forEach((/**
165
- * @param {?} s
166
- * @return {?}
167
- */
168
- s => s.injectRouteParam(routeParams)));
169
- return router.navigate(['.', routeParams]);
170
- }
171
- }
172
- /**
173
- * @private
174
- * @template T, S
175
- * @param {?} def
176
- * @return {?}
177
- */
178
- getSanitiser(def) {
179
- return def.sanitiser ? this.injector.get(def.sanitiser, new def.sanitiser()) : null;
180
- }
181
- }
182
- tslib_1.__decorate([
183
- Memoize(),
184
- tslib_1.__metadata("design:type", Function),
185
- tslib_1.__metadata("design:paramtypes", [Object]),
186
- tslib_1.__metadata("design:returntype", Object)
187
- ], RouteParameterSanitiser.prototype, "getSanitiser", null);
188
- if (false) {
189
- /**
190
- * @type {?}
191
- * @private
192
- */
193
- RouteParameterSanitiser.prototype.routeIdSanitiser;
194
- /**
195
- * @type {?}
196
- * @private
197
- */
198
- RouteParameterSanitiser.prototype.parameterSanitisers;
199
- /** @type {?} */
200
- RouteParameterSanitiser.prototype.parameterDefs;
201
- /** @type {?} */
202
- RouteParameterSanitiser.prototype.snapshot;
203
- /** @type {?} */
204
- RouteParameterSanitiser.prototype.injector;
205
- }
206
- (function (Sanitiser) {
207
- /**
208
- * @template T
209
- */
210
- class Value extends Sanitiser {
211
- /**
212
- * @param {?} snapshot
213
- * @return {?}
214
- */
215
- readFrom(snapshot) {
216
- /** @type {?} */
217
- const rawValue = this.parameterDef.isRouteId ?
218
- snapshot.paramMap.get(this.parameterDef.name) :
219
- snapshot.queryParamMap.get(this.parameterDef.name);
220
- return this.parameterDef.type.parse(rawValue);
221
- }
222
- /**
223
- * @protected
224
- * @param {?} initialValue
225
- * @param {?} sanitisedValue
226
- * @return {?}
227
- */
228
- hasChanged(initialValue, sanitisedValue) {
229
- return initialValue !== sanitisedValue;
230
- }
231
- /**
232
- * @param {?} dest
233
- * @return {?}
234
- */
235
- injectRouteParam(dest) {
236
- dest[this.parameterDef.name] = this.parameterDef.type.format(this.sanitisedValue);
237
- }
238
- }
239
- Sanitiser.Value = Value;
240
- /**
241
- * @template T
242
- */
243
- class Array extends Sanitiser {
244
- /**
245
- * @param {?} snapshot
246
- * @return {?}
247
- */
248
- readFrom(snapshot) {
249
- /** @type {?} */
250
- const rawValues = snapshot.queryParamMap.getAll(this.parameterDef.name);
251
- return rawValues.map((/**
252
- * @param {?} value
253
- * @return {?}
254
- */
255
- value => this.parameterDef.type.parse(value)));
256
- }
257
- /**
258
- * @protected
259
- * @param {?} initialValue
260
- * @param {?} sanitisedValue
261
- * @return {?}
262
- */
263
- hasChanged(initialValue, sanitisedValue) {
264
- return initialValue !== sanitisedValue;
265
- }
266
- /**
267
- * @param {?} dest
268
- * @return {?}
269
- */
270
- injectRouteParam(dest) {
271
- dest[this.parameterDef.name] = this.sanitisedValue.map((/**
272
- * @param {?} v
273
- * @return {?}
274
- */
275
- v => this.parameterDef.type.format(v)));
276
- }
277
- }
278
- Sanitiser.Array = Array;
279
- })(Sanitiser || (Sanitiser = {}));
280
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtcGFyYW1ldGVyLXNhbml0aXNlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9yb3V0ZS9yb3V0ZS1wYXJhbWV0ZXItc2FuaXRpc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUczRSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQzs7Ozs7QUFFNUIsTUFBTSxPQUFnQixTQUFTOzs7Ozs7SUFLN0IsWUFBcUIsWUFBb0MsRUFBVyxRQUErQixFQUFXLFNBQWdDO1FBQXpILGlCQUFZLEdBQVosWUFBWSxDQUF3QjtRQUFXLGFBQVEsR0FBUixRQUFRLENBQXVCO1FBQVcsY0FBUyxHQUFULFNBQVMsQ0FBdUI7SUFDOUksQ0FBQzs7OztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDO0lBQ3JDLENBQUM7Ozs7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNoRyxDQUFDOzs7O0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDOzs7O0lBT0ssUUFBUTs7WUFDWixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxJQUFJ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QyxDQUFDO1FBQ3BGLENBQUM7S0FFRjtJQWxCWSxlQUFLLFFBa0JqQixDQUFBOzs7O0lBRUQsTUFBYSxLQUFTLFNBQVEsU0FBaUI7Ozs7O1FBRTdDLFFBQVEsQ0FBQyxRQUFnQzs7a0JBQ2pDLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztZQUN2RSxPQUFPLFNBQVMsQ0FBQyxHQUFHOzs7O1lBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQztRQUNyRSxDQUFDOzs7Ozs7O1FBRVMsVUFBVSxDQUFDLFlBQWlCLEVBQUUsY0FBbUI7WUFDekQsT0FBTyxZQUFZLEtBQUssY0FBYyxDQUFDO1FBQ3pDLENBQUM7Ozs7O1FBR0QsZ0JBQWdCLENBQUMsSUFBUTtZQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUc7Ozs7WUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO1FBQ2hHLENBQUM7S0FHRjtJQWpCWSxlQUFLLFFBaUJqQixDQUFBO0FBRUgsQ0FBQyxFQXpDZ0IsU0FBUyxLQUFULFNBQVMsUUF5Q3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBhc3NlcnQgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBNZW1vaXplIH0gZnJvbSAnQHR5cGVzY3JpcHQtcGx1cy9mYXN0LW1lbW9pemUtZGVjb3JhdG9yL2Rpc3Qvc3JjJztcbmltcG9ydCB7IFBhcmFtZXRlckRlZmluaXRpb24gfSBmcm9tICcuL3BhcmFtZXRlci1kZWZpbml0aW9uLmNsYXNzJztcbmltcG9ydCB7IFBhcmFtZXRlclNhbml0aXNlciB9IGZyb20gJy4vcGFyYW1ldGVyLXNhbml0aXNlcic7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYW5pdGlzZXI8VCwgUz4ge1xuXG4gIHByaXZhdGUgaW5pdGlhbFZhbHVlOiBTO1xuICBwcml2YXRlIF9zYW5pdGlzZWRWYWx1ZTogUztcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBwYXJhbWV0ZXJEZWY6IFBhcmFtZXRlckRlZmluaXRpb248VD4sIHJlYWRvbmx5IHNuYXBzaG90OkFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHJlYWRvbmx5IHNhbml0aXNlcjogUGFyYW1ldGVyU2FuaXRpc2VyPFM+KSB7XG4gIH1cblxuICBpc1JvdXRlSWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1ldGVyRGVmLmlzUm91dGVJZDtcbiAgfVxuXG4gIGdldCB2YWx1ZUNoYW5nZWQoKTpib29sZWFuIHtcbiAgICByZXR1cm4gIV8uaXNOaWwodGhpcy5pbml0aWFsVmFsdWUpICYmIHRoaXMuaGFzQ2hhbmdlZCh0aGlzLmluaXRpYWxWYWx1ZSwgdGhpcy5zYW5pdGlzZWRWYWx1ZSk7XG4gIH1cblxuICBnZXQgc2FuaXRpc2VkVmFsdWUoKTpTIHtcbiAgICByZXR1cm4gdGhpcy5fc2FuaXRpc2VkVmFsdWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZEZyb20oc25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBTO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgaGFzQ2hhbmdlZChpbml0aWFsVmFsdWU6Uywgc2FuaXRpc2VkVmFsdWU6Uyk6IGJvb2xlYW47XG5cbiAgYWJzdHJhY3QgaW5qZWN0Um91dGVQYXJhbShkZXN0OiB7fSk7XG5cbiAgYXN5bmMgc2FuaXRpemUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKHRoaXMuc2FuaXRpc2VyKSB7XG4gICAgICB0aGlzLmluaXRpYWxWYWx1ZSA9IHRoaXMucmVhZEZyb20odGhpcy5zbmFwc2hvdCk7XG4gICAgICB0aGlzLl9zYW5pdGlzZWRWYWx1ZSA9IGF3YWl0IHRoaXMuc2FuaXRpc2VyLnNhbml0aXNlKHRoaXMuaW5pdGlhbFZhbHVlKTtcbiAgICAgIGlmICh0aGlzLmluaXRpYWxWYWx1ZSAhPT0gdGhpcy5fc2FuaXRpc2VkVmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBSb3V0ZVBhcmFtZXRlclNhbml0aXNlciB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZUlkU2FuaXRpc2VyOiBTYW5pdGlzZXI8YW55LCBhbnk+O1xuICBwcml2YXRlIHJlYWRvbmx5IHBhcmFtZXRlclNhbml0aXNlcnM6IFNhbml0aXNlcjxhbnksIGFueT5bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHBhcmFtZXRlckRlZnM6IFBhcmFtZXRlckRlZmluaXRpb248YW55PltdLCByZWFkb25seSBzbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgY29uc3Qgc2FuaXRpc2VycyA9IHBhcmFtZXRlckRlZnMubWFwKGRlZiA9PiB7XG4gICAgICByZXR1cm4gZGVmLmlzQXJyYXkgP1xuICAgICAgICBuZXcgU2FuaXRpc2VyLkFycmF5KGRlZiwgc25hcHNob3QsIHRoaXMuZ2V0U2FuaXRpc2VyKGRlZikpIDpcbiAgICAgICAgbmV3IFNhbml0aXNlci5WYWx1ZShkZWYsIHNuYXBzaG90LCB0aGlzLmdldFNhbml0aXNlcihkZWYpKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlSWRTYW5pdGlzZXIgPSBzYW5pdGlzZXJzLmZpbmQocCA9PiBwLmlzUm91dGVJZCgpKTtcbiAgICB0aGlzLnBhcmFtZXRlclNhbml0aXNlcnMgPSBzYW5pdGlzZXJzLmZpbHRlcihwID0+ICFwLmlzUm91dGVJZCgpKTtcbiAgfVxuXG4gIGFzeW5jIHNhbml0aXNlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICh0aGlzLnJvdXRlSWRTYW5pdGlzZXIpIHtcbiAgICAgIGF3YWl0IHRoaXMucm91dGVJZFNhbml0aXNlci5zYW5pdGl6ZSgpO1xuICAgICAgaWYgKHRoaXMucm91dGVJZFNhbml0aXNlci52YWx1ZUNoYW5nZWQpIHtcbiAgICAgICAgLy8gaWYgdGhlIHJvdXRlIGlkIGlzbid0IG9rIHdlIHJlZGlyZWN0IGltbWVkaWF0ZWx5IGFzIHRoZSBxdWVyeSBwYXJhbXMgbWF5IG5lZWQgdG8gYmUgc2FuaXRpc2VkIGluIHRoZVxuICAgICAgICAvLyBjb250ZXh0IG9mIHRoZSByb3V0ZSBpZC5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IHNhbml0aXNlciBvZiB0aGlzLnBhcmFtZXRlclNhbml0aXNlcnMpIHtcbiAgICAgICAgYXdhaXQgc2FuaXRpc2VyLnNhbml0aXplKCk7XG4gICAgfVxuICAgIHJldHVybiAhdGhpcy5wYXJhbWV0ZXJTYW5pdGlzZXJzLmZpbmQocyA9PiBzLnZhbHVlQ2hhbmdlZCk7XG4gIH1cblxuICByZWRpcmVjdChyb3V0ZXI6IFJvdXRlcikge1xuICAgIGFzc2VydC5pc1RydXRoeSh0aGlzLnBhcmFtZXRlclNhbml0aXNlcnMubGVuZ3RoICE9PSAwKTtcbiAgICBpZiAodGhpcy5yb3V0ZUlkU2FuaXRpc2VyLnZhbHVlQ2hhbmdlZCkge1xuICAgICAgcmV0dXJuIHJvdXRlci5uYXZpZ2F0ZShbJy4uJywgdGhpcy5yb3V0ZUlkU2FuaXRpc2VyLnNhbml0aXNlZFZhbHVlXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJvdXRlUGFyYW1zID0ge307XG4gICAgICB0aGlzLnBhcmFtZXRlclNhbml0aXNlcnMuZm9yRWFjaChzID0+IHMuaW5qZWN0Um91dGVQYXJhbShyb3V0ZVBhcmFtcykpO1xuICAgICAgcmV0dXJuIHJvdXRlci5uYXZpZ2F0ZShbJy4nLCByb3V0ZVBhcmFtc10pO1xuICAgIH1cbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgcHJpdmF0ZSBnZXRTYW5pdGlzZXI8VCwgUz4oZGVmOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQsIFM+KTogUGFyYW1ldGVyU2FuaXRpc2VyPFM+IHtcbiAgICByZXR1cm4gZGVmLnNhbml0aXNlciA/IHRoaXMuaW5qZWN0b3IuZ2V0PFBhcmFtZXRlclNhbml0aXNlcjxTPj4oZGVmLnNhbml0aXNlciwgbmV3IGRlZi5zYW5pdGlzZXIoKSkgOiBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgU2FuaXRpc2VyIHtcblxuICBleHBvcnQgY2xhc3MgVmFsdWU8VD4gZXh0ZW5kcyBTYW5pdGlzZXI8VCwgVD4ge1xuXG4gICAgcmVhZEZyb20oc25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBUIHtcbiAgICAgIGNvbnN0IHJhd1ZhbHVlID0gdGhpcy5wYXJhbWV0ZXJEZWYuaXNSb3V0ZUlkID9cbiAgICAgICAgc25hcHNob3QucGFyYW1NYXAuZ2V0KHRoaXMucGFyYW1ldGVyRGVmLm5hbWUpIDpcbiAgICAgICAgc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQodGhpcy5wYXJhbWV0ZXJEZWYubmFtZSk7XG5cbiAgICAgIHJldHVybiB0aGlzLnBhcmFtZXRlckRlZi50eXBlLnBhcnNlKHJhd1ZhbHVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaGFzQ2hhbmdlZChpbml0aWFsVmFsdWU6IFQsIHNhbml0aXNlZFZhbHVlOiBUKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gaW5pdGlhbFZhbHVlICE9PSBzYW5pdGlzZWRWYWx1ZTtcbiAgICB9XG5cbiAgICBpbmplY3RSb3V0ZVBhcmFtKGRlc3Q6IHt9KSB7XG4gICAgICBkZXN0W3RoaXMucGFyYW1ldGVyRGVmLm5hbWVdID0gdGhpcy5wYXJhbWV0ZXJEZWYudHlwZS5mb3JtYXQodGhpcy5zYW5pdGlzZWRWYWx1ZSk7XG4gICAgfVxuXG4gIH1cblxuICBleHBvcnQgY2xhc3MgQXJyYXk8VD4gZXh0ZW5kcyBTYW5pdGlzZXI8VCwgVFtdPiB7XG5cbiAgICByZWFkRnJvbShzbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IFRbXSB7XG4gICAgICBjb25zdCByYXdWYWx1ZXMgPSBzbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldEFsbCh0aGlzLnBhcmFtZXRlckRlZi5uYW1lKTtcbiAgICAgIHJldHVybiByYXdWYWx1ZXMubWFwKHZhbHVlID0+IHRoaXMucGFyYW1ldGVyRGVmLnR5cGUucGFyc2UodmFsdWUpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaGFzQ2hhbmdlZChpbml0aWFsVmFsdWU6IFRbXSwgc2FuaXRpc2VkVmFsdWU6IFRbXSk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGluaXRpYWxWYWx1ZSAhPT0gc2FuaXRpc2VkVmFsdWU7XG4gICAgfVxuXG5cbiAgICBpbmplY3RSb3V0ZVBhcmFtKGRlc3Q6IHt9KSB7XG4gICAgICBkZXN0W3RoaXMucGFyYW1ldGVyRGVmLm5hbWVdID0gdGhpcy5zYW5pdGlzZWRWYWx1ZS5tYXAodiA9PiB0aGlzLnBhcmFtZXRlckRlZi50eXBlLmZvcm1hdCh2KSk7XG4gICAgfVxuXG5cbiAgfVxuXG59XG4iXX0=
@@ -1,11 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- export { AngularUiPowerupsModule } from './lib/angular-ui-powerups.module';
6
- export { slideDownAndUpAnimation } from './lib/animations';
7
- export { DisposableComponent, ResizeAwareComponent, AbstractInputComponent, NumberInputComponent, PasswordInputComponent, SelectInputComponent, StringInputComponent, Bounds, Dimension, Point } from './lib/components';
8
- export { CommandDirective, FocusBindingDirective } from './lib/directives';
9
- export { AbstractActivity, ACTIVITY_DATA, INTERACTION_CONTEXT, InteractionContext, InteractionModule, ActivityContainerComponent, ActivityOutletComponent, AlertDialogComponent, ConfirmationDialogComponent, DialogInteractionService } from './lib/interaction';
10
- export { AbstractPlaceComponent, Place, PlaceModule, PlaceService, BusyOverlayComponent, EmptyStateComponent, PlaceOutletComponent, LEFT_RIGHT_PLACE_ANIMATION, TabbedPlaceNavigationComponent, LeavePlaceGuard, PlaceRouteGuard, RouteId, QueryParameter, RouteParameter, QueryParameterList, RouteParameterList, ParameterType, RouteParameterBindings, Sanitiser, RouteParameterSanitiser } from './lib/place';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbInB1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHdDQUFjLGtDQUFrQyxDQUFDO0FBQ2pELHdDQUFjLGtCQUFrQixDQUFDO0FBQ2pDLHNNQUFjLGtCQUFrQixDQUFDO0FBQ2pDLHdEQUFjLGtCQUFrQixDQUFDO0FBQ2pDLDhPQUFjLG1CQUFtQixDQUFDO0FBQ2xDLG9ZQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2FuZ3VsYXItdWktcG93ZXJ1cHMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FuaW1hdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BsYWNlJztcbiJdfQ==
@@ -1,33 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- /**
6
- * Generated bundle index. Do not edit.
7
- */
8
- export { AngularUiPowerupsModule, slideDownAndUpAnimation, DisposableComponent, ResizeAwareComponent, AbstractInputComponent, NumberInputComponent, PasswordInputComponent, SelectInputComponent, StringInputComponent, Bounds, Dimension, Point, CommandDirective, FocusBindingDirective, AbstractActivity, ACTIVITY_DATA, INTERACTION_CONTEXT, InteractionContext, InteractionModule, ActivityContainerComponent, ActivityOutletComponent, AlertDialogComponent, ConfirmationDialogComponent, DialogInteractionService, AbstractPlaceComponent, Place, PlaceModule, PlaceService, BusyOverlayComponent, EmptyStateComponent, PlaceOutletComponent, LEFT_RIGHT_PLACE_ANIMATION, TabbedPlaceNavigationComponent, LeavePlaceGuard, PlaceRouteGuard, RouteId, QueryParameter, RouteParameter, QueryParameterList, RouteParameterList, ParameterType, RouteParameterBindings, Sanitiser, RouteParameterSanitiser } from './index';
9
- export { DisposableComponent as ɵc } from './lib/components/disposable-component';
10
- export { AbstractInputComponent as ɵe } from './lib/components/forms/abstract-input.component';
11
- export { NumberInputComponent as ɵd } from './lib/components/forms/number-input/number-input.component';
12
- export { PasswordInputComponent as ɵg } from './lib/components/forms/password-input/password-input.component';
13
- export { SelectInputComponent as ɵh } from './lib/components/forms/select-input/select-input.component';
14
- export { StringInputComponent as ɵf } from './lib/components/forms/string-input/string-input.component';
15
- export { CommandDirective as ɵa } from './lib/directives/command.directive';
16
- export { FocusBindingDirective as ɵb } from './lib/directives/focus-binding.directive';
17
- export { AbstractActivity as ɵs } from './lib/interaction/abstract-activity';
18
- export { ACTIVITY_DATA as ɵt } from './lib/interaction/activity';
19
- export { ActivityContainerComponent as ɵq } from './lib/interaction/components/activity-container/activity-container.component';
20
- export { ActivityOutletComponent as ɵx } from './lib/interaction/components/activity-outlet/activity-outlet.component';
21
- export { AlertDialogComponent as ɵv } from './lib/interaction/components/alert-dialog/alert-dialog.component';
22
- export { ConfirmationDialogComponent as ɵr } from './lib/interaction/components/confirmation-dialog/confirmation-dialog.component';
23
- export { InteractionContext as ɵz } from './lib/interaction/interaction-context';
24
- export { InteractionModule as ɵp } from './lib/interaction/interaction.module';
25
- export { DialogInteractionService as ɵy } from './lib/interaction/services/dialog-interaction.service';
26
- export { BusyOverlayComponent as ɵk } from './lib/place/components/busy-overlay/busy-overlay.component';
27
- export { EmptyStateComponent as ɵj } from './lib/place/components/empty-state/empty-state.component';
28
- export { PlaceOutletComponent as ɵl } from './lib/place/components/place-outlet/place-outlet.component';
29
- export { LEFT_RIGHT_PLACE_ANIMATION as ɵm } from './lib/place/components/place-outlet/route-animations';
30
- export { TabbedPlaceNavigationComponent as ɵo } from './lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component';
31
- export { PlaceModule as ɵi } from './lib/place/place.module';
32
- export { PlaceService as ɵn } from './lib/place/place.service';
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vbG9uLWFuZ3VsYXItdWktcG93ZXJ1cHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJjb29sb24tYW5ndWxhci11aS1wb3dlcnVwcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEscTNCQUFjLFNBQVMsQ0FBQztBQUV4QixPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQzdGLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDNUcsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEVBQUUsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDMUUsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRS9ELE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4RUFBOEUsQ0FBQztBQUM5SCxPQUFPLEVBQUMsdUJBQXVCLElBQUksRUFBRSxFQUFDLE1BQU0sd0VBQXdFLENBQUM7QUFDckgsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEVBQUUsRUFBQyxNQUFNLGtFQUFrRSxDQUFDO0FBQzVHLE9BQU8sRUFBQywyQkFBMkIsSUFBSSxFQUFFLEVBQUMsTUFBTSxnRkFBZ0YsQ0FBQztBQUVqSSxPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBQyx3QkFBd0IsSUFBSSxFQUFFLEVBQUMsTUFBTSx1REFBdUQsQ0FBQztBQUNyRyxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQ25HLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsMEJBQTBCLElBQUksRUFBRSxFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDdEcsT0FBTyxFQUFDLDhCQUE4QixJQUFJLEVBQUUsRUFBQyxNQUFNLGtGQUFrRixDQUFDO0FBQ3RJLE9BQU8sRUFBQyxXQUFXLElBQUksRUFBRSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFlBQVksSUFBSSxFQUFFLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG5cbmV4cG9ydCB7RGlzcG9zYWJsZUNvbXBvbmVudCBhcyDJtWN9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGlzcG9zYWJsZS1jb21wb25lbnQnO1xuZXhwb3J0IHtBYnN0cmFjdElucHV0Q29tcG9uZW50IGFzIMm1ZX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3Jtcy9hYnN0cmFjdC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0IHtOdW1iZXJJbnB1dENvbXBvbmVudCBhcyDJtWR9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybXMvbnVtYmVyLWlucHV0L251bWJlci1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0IHtQYXNzd29yZElucHV0Q29tcG9uZW50IGFzIMm1Z30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3Jtcy9wYXNzd29yZC1pbnB1dC9wYXNzd29yZC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0IHtTZWxlY3RJbnB1dENvbXBvbmVudCBhcyDJtWh9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybXMvc2VsZWN0LWlucHV0L3NlbGVjdC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0IHtTdHJpbmdJbnB1dENvbXBvbmVudCBhcyDJtWZ9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybXMvc3RyaW5nLWlucHV0L3N0cmluZy1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0IHtDb21tYW5kRGlyZWN0aXZlIGFzIMm1YX0gZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9jb21tYW5kLmRpcmVjdGl2ZSc7XG5leHBvcnQge0ZvY3VzQmluZGluZ0RpcmVjdGl2ZSBhcyDJtWJ9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvZm9jdXMtYmluZGluZy5kaXJlY3RpdmUnO1xuZXhwb3J0IHtBYnN0cmFjdEFjdGl2aXR5IGFzIMm1c30gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vYWJzdHJhY3QtYWN0aXZpdHknO1xuZXhwb3J0IHtBQ1RJVklUWV9EQVRBIGFzIMm1dH0gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vYWN0aXZpdHknO1xuZXhwb3J0IHtBbGVydCBhcyDJtXd9IGZyb20gJy4vbGliL2ludGVyYWN0aW9uL2FsZXJ0JztcbmV4cG9ydCB7QWN0aXZpdHlDb250YWluZXJDb21wb25lbnQgYXMgybVxfSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LWNvbnRhaW5lci9hY3Rpdml0eS1jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCB7QWN0aXZpdHlPdXRsZXRDb21wb25lbnQgYXMgybV4fSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LW91dGxldC9hY3Rpdml0eS1vdXRsZXQuY29tcG9uZW50JztcbmV4cG9ydCB7QWxlcnREaWFsb2dDb21wb25lbnQgYXMgybV2fSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FsZXJ0LWRpYWxvZy9hbGVydC1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCB7Q29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50IGFzIMm1cn0gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vY29tcG9uZW50cy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCB7Q29uZmlybSBhcyDJtXV9IGZyb20gJy4vbGliL2ludGVyYWN0aW9uL2NvbmZpcm0nO1xuZXhwb3J0IHtJbnRlcmFjdGlvbkNvbnRleHQgYXMgybV6fSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9pbnRlcmFjdGlvbi1jb250ZXh0JztcbmV4cG9ydCB7SW50ZXJhY3Rpb25Nb2R1bGUgYXMgybVwfSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9pbnRlcmFjdGlvbi5tb2R1bGUnO1xuZXhwb3J0IHtEaWFsb2dJbnRlcmFjdGlvblNlcnZpY2UgYXMgybV5fSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9zZXJ2aWNlcy9kaWFsb2ctaW50ZXJhY3Rpb24uc2VydmljZSc7XG5leHBvcnQge0J1c3lPdmVybGF5Q29tcG9uZW50IGFzIMm1a30gZnJvbSAnLi9saWIvcGxhY2UvY29tcG9uZW50cy9idXN5LW92ZXJsYXkvYnVzeS1vdmVybGF5LmNvbXBvbmVudCc7XG5leHBvcnQge0VtcHR5U3RhdGVDb21wb25lbnQgYXMgybVqfSBmcm9tICcuL2xpYi9wbGFjZS9jb21wb25lbnRzL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmNvbXBvbmVudCc7XG5leHBvcnQge1BsYWNlT3V0bGV0Q29tcG9uZW50IGFzIMm1bH0gZnJvbSAnLi9saWIvcGxhY2UvY29tcG9uZW50cy9wbGFjZS1vdXRsZXQvcGxhY2Utb3V0bGV0LmNvbXBvbmVudCc7XG5leHBvcnQge0xFRlRfUklHSFRfUExBQ0VfQU5JTUFUSU9OIGFzIMm1bX0gZnJvbSAnLi9saWIvcGxhY2UvY29tcG9uZW50cy9wbGFjZS1vdXRsZXQvcm91dGUtYW5pbWF0aW9ucyc7XG5leHBvcnQge1RhYmJlZFBsYWNlTmF2aWdhdGlvbkNvbXBvbmVudCBhcyDJtW99IGZyb20gJy4vbGliL3BsYWNlL2NvbXBvbmVudHMvdGFiYmVkLXBsYWNlLW5hdmlnYXRpb24vdGFiYmVkLXBsYWNlLW5hdmlnYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7UGxhY2VNb2R1bGUgYXMgybVpfSBmcm9tICcuL2xpYi9wbGFjZS9wbGFjZS5tb2R1bGUnO1xuZXhwb3J0IHtQbGFjZVNlcnZpY2UgYXMgybVufSBmcm9tICcuL2xpYi9wbGFjZS9wbGFjZS5zZXJ2aWNlJzsiXX0=