@coolon/angular-ui-powerups 12.4.0-alpha.48 → 12.4.0-alpha.5

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 (341) hide show
  1. package/assets/{activities/activities.scss → activities.scss} +11 -15
  2. package/assets/form.scss +2 -5
  3. package/assets/interaction.scss +7 -10
  4. package/assets/mixins.scss +7 -5
  5. package/assets/styles.scss +15 -8
  6. package/bundles/coolon-angular-ui-powerups-cypress.umd.js +320 -735
  7. package/bundles/coolon-angular-ui-powerups-cypress.umd.js.map +1 -1
  8. package/bundles/coolon-angular-ui-powerups.umd.js +144 -854
  9. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  10. package/coolon-angular-ui-powerups.metadata.json +1 -1
  11. package/cypress/components/aup-command-face.d.ts +8 -2
  12. package/cypress/components/aup-command.d.ts +1 -2
  13. package/cypress/components/aup-input.d.ts +5 -11
  14. package/cypress/components/aup-more-menu.d.ts +4 -0
  15. package/cypress/components/aup-popup-menu.d.ts +7 -0
  16. package/cypress/components/aup-table.d.ts +18 -5
  17. package/cypress/components/button-mixin.d.ts +19 -0
  18. package/cypress/components/button.d.ts +7 -11
  19. package/cypress/coolon-angular-ui-powerups-cypress.metadata.json +1 -1
  20. package/cypress/exports.d.ts +4 -25
  21. package/cypress/package.json +1 -1
  22. package/cypress/page-element.d.ts +12 -12
  23. package/cypress/page.d.ts +33 -8
  24. package/cypress/section.d.ts +52 -0
  25. package/esm2015/cypress/components/aup-command-face.js +22 -11
  26. package/esm2015/cypress/components/aup-command-face.js.map +1 -1
  27. package/esm2015/cypress/components/aup-command-face.metadata.json +1 -1
  28. package/esm2015/cypress/components/aup-command.js +6 -12
  29. package/esm2015/cypress/components/aup-command.js.map +1 -1
  30. package/esm2015/cypress/components/aup-command.metadata.json +1 -1
  31. package/esm2015/cypress/components/aup-input.js +5 -17
  32. package/esm2015/cypress/components/aup-input.js.map +1 -1
  33. package/esm2015/cypress/components/aup-input.metadata.json +1 -1
  34. package/esm2015/cypress/components/aup-more-menu.js +7 -0
  35. package/esm2015/cypress/components/aup-more-menu.js.map +1 -0
  36. package/esm2015/cypress/components/aup-more-menu.metadata.json +1 -0
  37. package/esm2015/cypress/components/aup-navigation.js +1 -1
  38. package/esm2015/cypress/components/aup-navigation.js.map +1 -1
  39. package/esm2015/cypress/components/aup-popup-menu.js +19 -0
  40. package/esm2015/cypress/components/aup-popup-menu.js.map +1 -0
  41. package/esm2015/cypress/components/aup-popup-menu.metadata.json +1 -0
  42. package/esm2015/cypress/components/aup-table.js +33 -5
  43. package/esm2015/cypress/components/aup-table.js.map +1 -1
  44. package/esm2015/cypress/components/aup-table.metadata.json +1 -1
  45. package/esm2015/cypress/components/button-mixin.js +15 -0
  46. package/esm2015/cypress/components/button-mixin.js.map +1 -0
  47. package/esm2015/cypress/components/button-mixin.metadata.json +1 -0
  48. package/esm2015/cypress/components/button.js +10 -4
  49. package/esm2015/cypress/components/button.js.map +1 -1
  50. package/esm2015/cypress/components/button.metadata.json +1 -1
  51. package/esm2015/cypress/exports.js +4 -25
  52. package/esm2015/cypress/exports.js.map +1 -1
  53. package/esm2015/cypress/exports.metadata.json +1 -1
  54. package/esm2015/cypress/page-element.js +19 -26
  55. package/esm2015/cypress/page-element.js.map +1 -1
  56. package/esm2015/cypress/page-element.metadata.json +1 -1
  57. package/esm2015/cypress/page.js +19 -31
  58. package/esm2015/cypress/page.js.map +1 -1
  59. package/esm2015/cypress/page.metadata.json +1 -1
  60. package/esm2015/cypress/path.js +1 -3
  61. package/esm2015/cypress/path.js.map +1 -1
  62. package/esm2015/cypress/section.js +72 -0
  63. package/esm2015/cypress/section.js.map +1 -0
  64. package/esm2015/cypress/section.metadata.json +1 -0
  65. package/esm2015/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  66. package/esm2015/lib/components/card-container/card-container.component.js +84 -0
  67. package/esm2015/lib/components/card-container/card-container.component.js.map +1 -0
  68. package/esm2015/lib/components/card-container/card-container.component.metadata.json +1 -0
  69. package/esm2015/lib/components/card-container/card-container.component.ngfactory.js.map +1 -0
  70. package/esm2015/lib/components/{labelled-value/labelled-value.component.scss.shim.ngstyle.js.map → card-container/card-container.component.scss.shim.ngstyle.js.map} +1 -1
  71. package/esm2015/lib/components/components.module.js +24 -37
  72. package/esm2015/lib/components/components.module.js.map +1 -1
  73. package/esm2015/lib/components/components.module.metadata.json +1 -1
  74. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  75. package/esm2015/lib/components/empty-state/empty-state.component.js +1 -1
  76. package/esm2015/lib/components/empty-state/empty-state.component.metadata.json +1 -1
  77. package/esm2015/lib/components/exports.js +1 -5
  78. package/esm2015/lib/components/exports.js.map +1 -1
  79. package/esm2015/lib/components/exports.metadata.json +1 -1
  80. package/esm2015/lib/components/forms/abstract-input.component.js +0 -1
  81. package/esm2015/lib/components/forms/abstract-input.component.js.map +1 -1
  82. package/esm2015/lib/components/section-header/section-header.component.js +5 -12
  83. package/esm2015/lib/components/section-header/section-header.component.js.map +1 -1
  84. package/esm2015/lib/components/section-header/section-header.component.metadata.json +1 -1
  85. package/esm2015/lib/components/tables/tree-table/flattened-tree-list-model.js +4 -4
  86. package/esm2015/lib/components/tables/tree-table/flattened-tree-list-model.js.map +1 -1
  87. package/esm2015/lib/components/tables/tree-table/flattened-tree-list-model.metadata.json +1 -1
  88. package/esm2015/lib/components/tables/tree-table/tree-table-model.js +0 -1
  89. package/esm2015/lib/components/tables/tree-table/tree-table-model.js.map +1 -1
  90. package/esm2015/lib/components/tables/tree-table/tree-table-model.metadata.json +1 -1
  91. package/esm2015/lib/components/track-by.js +0 -12
  92. package/esm2015/lib/components/track-by.js.map +1 -1
  93. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js +11 -17
  94. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js.map +1 -1
  95. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.metadata.json +1 -1
  96. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +1 -1
  97. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js.map +1 -1
  98. package/esm2015/lib/interaction/components/activity-container/activity-container.component.metadata.json +1 -1
  99. package/esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.js +0 -4
  100. package/esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.js.map +1 -1
  101. package/esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.metadata.json +1 -1
  102. package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.js +1 -4
  103. package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.js.map +1 -1
  104. package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.metadata.json +1 -1
  105. package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.js +1 -4
  106. package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.js.map +1 -1
  107. package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.metadata.json +1 -1
  108. package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.js +1 -4
  109. package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.js.map +1 -1
  110. package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.metadata.json +1 -1
  111. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js +2 -6
  112. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js.map +1 -1
  113. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.metadata.json +1 -1
  114. package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.js +43 -0
  115. package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.js.map +1 -0
  116. package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.metadata.json +1 -0
  117. package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.ngfactory.js.map +1 -0
  118. package/esm2015/lib/interaction/components/input-activities/input-activity-data.js +2 -0
  119. package/esm2015/lib/interaction/components/input-activities/input-activity-data.js.map +1 -0
  120. package/esm2015/lib/interaction/components/input-activities/input-activity-data.metadata.json +1 -0
  121. package/esm2015/lib/interaction/components/input-activities/select-input-activity-data.js +2 -0
  122. package/esm2015/lib/interaction/components/input-activities/select-input-activity-data.js.map +1 -0
  123. package/esm2015/lib/interaction/components/input-activities/select-input-activity-data.metadata.json +1 -0
  124. package/esm2015/lib/interaction/components/input-activities/select-input-activity.js +3 -5
  125. package/esm2015/lib/interaction/components/input-activities/select-input-activity.js.map +1 -1
  126. package/esm2015/lib/interaction/components/input-activities/select-input-activity.metadata.json +1 -1
  127. package/esm2015/lib/interaction/components/input-activities/string-input-activity.js +4 -6
  128. package/esm2015/lib/interaction/components/input-activities/string-input-activity.js.map +1 -1
  129. package/esm2015/lib/interaction/components/input-activities/string-input-activity.metadata.json +1 -1
  130. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js +0 -1
  131. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js.map +1 -1
  132. package/esm2015/lib/interaction/exports.js +3 -5
  133. package/esm2015/lib/interaction/exports.js.map +1 -1
  134. package/esm2015/lib/interaction/exports.metadata.json +1 -1
  135. package/esm2015/lib/interaction/interaction.module.js +5 -19
  136. package/esm2015/lib/interaction/interaction.module.js.map +1 -1
  137. package/esm2015/lib/interaction/interaction.module.metadata.json +1 -1
  138. package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  139. package/esm2015/lib/place/guards/consolidated-param-map.js +1 -2
  140. package/esm2015/lib/place/guards/consolidated-param-map.js.map +1 -1
  141. package/esm2015/lib/place/guards/consolidated-param-map.metadata.json +1 -1
  142. package/esm2015/lib/place/guards/place.guard.js +1 -2
  143. package/esm2015/lib/place/guards/place.guard.js.map +1 -1
  144. package/esm2015/lib/place/place-component.js +4 -31
  145. package/esm2015/lib/place/place-component.js.map +1 -1
  146. package/esm2015/lib/place/place-component.metadata.json +1 -1
  147. package/esm2015/lib/place/place-router.js +13 -10
  148. package/esm2015/lib/place/place-router.js.map +1 -1
  149. package/esm2015/lib/place/place-router.metadata.json +1 -1
  150. package/esm2015/lib/place/place.module.ngfactory.js.map +1 -1
  151. package/esm2015/lib/place/url-snapshot.js +7 -1
  152. package/esm2015/lib/place/url-snapshot.js.map +1 -1
  153. package/esm2015/lib/place/url-snapshot.metadata.json +1 -1
  154. package/esm2015/lib/place/visit.js +1 -5
  155. package/esm2015/lib/place/visit.js.map +1 -1
  156. package/esm2015/lib/place/visit.metadata.json +1 -1
  157. package/fesm2015/coolon-angular-ui-powerups-cypress.js +237 -550
  158. package/fesm2015/coolon-angular-ui-powerups-cypress.js.map +1 -1
  159. package/fesm2015/coolon-angular-ui-powerups.js +107 -715
  160. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  161. package/lib/components/{cards/card-container → card-container}/card-container.component.d.ts +9 -30
  162. package/lib/components/exports.d.ts +1 -5
  163. package/lib/components/section-header/section-header.component.d.ts +2 -5
  164. package/lib/components/tables/tree-table/flattened-tree-list-model.d.ts +1 -0
  165. package/lib/components/tables/tree-table/tree-table-model.d.ts +5 -4
  166. package/lib/components/track-by.d.ts +0 -9
  167. package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +3 -14
  168. package/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.d.ts +1 -1
  169. package/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.d.ts +1 -2
  170. package/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.d.ts +1 -2
  171. package/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.d.ts +1 -2
  172. package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +0 -1
  173. package/lib/interaction/components/input-activities/abstract-input-activity.d.ts +12 -0
  174. package/lib/interaction/components/input-activities/input-activity-data.d.ts +11 -0
  175. package/lib/interaction/components/input-activities/select-input-activity-data.d.ts +8 -0
  176. package/lib/interaction/components/input-activities/select-input-activity.d.ts +3 -11
  177. package/lib/interaction/components/input-activities/string-input-activity.d.ts +2 -6
  178. package/lib/interaction/exports.d.ts +3 -5
  179. package/lib/place/place-component.d.ts +1 -6
  180. package/lib/place/place-router.d.ts +2 -2
  181. package/package.json +1 -1
  182. package/schematics/activity/templates/component/__name@dasherize__.component.html.template +1 -1
  183. package/schematics/activity/templates/component/__name@dasherize__.component.ts.template +3 -5
  184. package/schematics/place-routes/place-class-scanner.js +1 -3
  185. package/schematics/place-routes/place-class-scanner.js.map +1 -1
  186. package/assets/activities/input-activities.scss +0 -20
  187. package/assets/cards.scss +0 -17
  188. package/assets/empty-state.scss +0 -11
  189. package/assets/forms/mixins.scss +0 -6
  190. package/assets/interaction/editor/inline-string-editor.scss +0 -93
  191. package/cypress/component-builder.d.ts +0 -71
  192. package/cypress/components/aup-abstract-activity.d.ts +0 -31
  193. package/cypress/components/aup-abstract-table.d.ts +0 -18
  194. package/cypress/components/aup-activity.d.ts +0 -9
  195. package/cypress/components/aup-alert-dialog.d.ts +0 -27
  196. package/cypress/components/aup-alert.d.ts +0 -9
  197. package/cypress/components/aup-confirm-dialog.d.ts +0 -27
  198. package/cypress/components/aup-confirm.d.ts +0 -11
  199. package/cypress/components/aup-empty-state.d.ts +0 -4
  200. package/cypress/components/aup-modal-activity.d.ts +0 -24
  201. package/cypress/components/aup-modal-mixin.d.ts +0 -23
  202. package/cypress/components/aup-tree-table.d.ts +0 -16
  203. package/cypress/components/form-element-mixin.d.ts +0 -22
  204. package/cypress/components/mat-checkbox.d.ts +0 -31
  205. package/cypress/components/popup/aup-abstract-popup-menu.d.ts +0 -15
  206. package/cypress/components/popup/aup-more-menu.d.ts +0 -5
  207. package/cypress/components/popup/aup-popup-menu-panel.d.ts +0 -3
  208. package/cypress/components/popup/aup-popup-menu.d.ts +0 -7
  209. package/cypress/components/table/aup-table-cell.d.ts +0 -9
  210. package/cypress/components/table/aup-table-column.d.ts +0 -10
  211. package/cypress/components/table/aup-table-row.d.ts +0 -17
  212. package/cypress/components/table/aup-table-selection-cell.d.ts +0 -5
  213. package/cypress/components/table/aup-table-selection-column.d.ts +0 -5
  214. package/cypress/element-locator.d.ts +0 -8
  215. package/cypress/page-builder.d.ts +0 -9
  216. package/esm2015/cypress/component-builder.js +0 -92
  217. package/esm2015/cypress/component-builder.js.map +0 -1
  218. package/esm2015/cypress/component-builder.metadata.json +0 -1
  219. package/esm2015/cypress/components/aup-abstract-activity.js +0 -12
  220. package/esm2015/cypress/components/aup-abstract-activity.js.map +0 -1
  221. package/esm2015/cypress/components/aup-abstract-activity.metadata.json +0 -1
  222. package/esm2015/cypress/components/aup-abstract-table.js +0 -50
  223. package/esm2015/cypress/components/aup-abstract-table.js.map +0 -1
  224. package/esm2015/cypress/components/aup-abstract-table.metadata.json +0 -1
  225. package/esm2015/cypress/components/aup-activity.js +0 -13
  226. package/esm2015/cypress/components/aup-activity.js.map +0 -1
  227. package/esm2015/cypress/components/aup-activity.metadata.json +0 -1
  228. package/esm2015/cypress/components/aup-alert-dialog.js +0 -8
  229. package/esm2015/cypress/components/aup-alert-dialog.js.map +0 -1
  230. package/esm2015/cypress/components/aup-alert-dialog.metadata.json +0 -1
  231. package/esm2015/cypress/components/aup-alert.js +0 -13
  232. package/esm2015/cypress/components/aup-alert.js.map +0 -1
  233. package/esm2015/cypress/components/aup-alert.metadata.json +0 -1
  234. package/esm2015/cypress/components/aup-confirm-dialog.js +0 -8
  235. package/esm2015/cypress/components/aup-confirm-dialog.js.map +0 -1
  236. package/esm2015/cypress/components/aup-confirm-dialog.metadata.json +0 -1
  237. package/esm2015/cypress/components/aup-confirm.js +0 -19
  238. package/esm2015/cypress/components/aup-confirm.js.map +0 -1
  239. package/esm2015/cypress/components/aup-confirm.metadata.json +0 -1
  240. package/esm2015/cypress/components/aup-empty-state.js +0 -7
  241. package/esm2015/cypress/components/aup-empty-state.js.map +0 -1
  242. package/esm2015/cypress/components/aup-empty-state.metadata.json +0 -1
  243. package/esm2015/cypress/components/aup-modal-activity.js +0 -5
  244. package/esm2015/cypress/components/aup-modal-activity.js.map +0 -1
  245. package/esm2015/cypress/components/aup-modal-activity.metadata.json +0 -1
  246. package/esm2015/cypress/components/aup-modal-mixin.js +0 -18
  247. package/esm2015/cypress/components/aup-modal-mixin.js.map +0 -1
  248. package/esm2015/cypress/components/aup-modal-mixin.metadata.json +0 -1
  249. package/esm2015/cypress/components/aup-tree-table.js +0 -34
  250. package/esm2015/cypress/components/aup-tree-table.js.map +0 -1
  251. package/esm2015/cypress/components/aup-tree-table.metadata.json +0 -1
  252. package/esm2015/cypress/components/form-element-mixin.js +0 -11
  253. package/esm2015/cypress/components/form-element-mixin.js.map +0 -1
  254. package/esm2015/cypress/components/form-element-mixin.metadata.json +0 -1
  255. package/esm2015/cypress/components/mat-checkbox.js +0 -34
  256. package/esm2015/cypress/components/mat-checkbox.js.map +0 -1
  257. package/esm2015/cypress/components/mat-checkbox.metadata.json +0 -1
  258. package/esm2015/cypress/components/popup/aup-abstract-popup-menu.js +0 -33
  259. package/esm2015/cypress/components/popup/aup-abstract-popup-menu.js.map +0 -1
  260. package/esm2015/cypress/components/popup/aup-abstract-popup-menu.metadata.json +0 -1
  261. package/esm2015/cypress/components/popup/aup-more-menu.js +0 -8
  262. package/esm2015/cypress/components/popup/aup-more-menu.js.map +0 -1
  263. package/esm2015/cypress/components/popup/aup-more-menu.metadata.json +0 -1
  264. package/esm2015/cypress/components/popup/aup-popup-menu-panel.js +0 -4
  265. package/esm2015/cypress/components/popup/aup-popup-menu-panel.js.map +0 -1
  266. package/esm2015/cypress/components/popup/aup-popup-menu-panel.metadata.json +0 -1
  267. package/esm2015/cypress/components/popup/aup-popup-menu.js +0 -12
  268. package/esm2015/cypress/components/popup/aup-popup-menu.js.map +0 -1
  269. package/esm2015/cypress/components/popup/aup-popup-menu.metadata.json +0 -1
  270. package/esm2015/cypress/components/table/aup-table-cell.js +0 -14
  271. package/esm2015/cypress/components/table/aup-table-cell.js.map +0 -1
  272. package/esm2015/cypress/components/table/aup-table-cell.metadata.json +0 -1
  273. package/esm2015/cypress/components/table/aup-table-column.js +0 -19
  274. package/esm2015/cypress/components/table/aup-table-column.js.map +0 -1
  275. package/esm2015/cypress/components/table/aup-table-column.metadata.json +0 -1
  276. package/esm2015/cypress/components/table/aup-table-row.js +0 -28
  277. package/esm2015/cypress/components/table/aup-table-row.js.map +0 -1
  278. package/esm2015/cypress/components/table/aup-table-row.metadata.json +0 -1
  279. package/esm2015/cypress/components/table/aup-table-selection-cell.js +0 -6
  280. package/esm2015/cypress/components/table/aup-table-selection-cell.js.map +0 -1
  281. package/esm2015/cypress/components/table/aup-table-selection-cell.metadata.json +0 -1
  282. package/esm2015/cypress/components/table/aup-table-selection-column.js +0 -6
  283. package/esm2015/cypress/components/table/aup-table-selection-column.js.map +0 -1
  284. package/esm2015/cypress/components/table/aup-table-selection-column.metadata.json +0 -1
  285. package/esm2015/cypress/element-locator.js +0 -16
  286. package/esm2015/cypress/element-locator.js.map +0 -1
  287. package/esm2015/cypress/element-locator.metadata.json +0 -1
  288. package/esm2015/cypress/page-builder.js +0 -16
  289. package/esm2015/cypress/page-builder.js.map +0 -1
  290. package/esm2015/cypress/page-builder.metadata.json +0 -1
  291. package/esm2015/lib/components/cards/abstract-card-container.component.js +0 -29
  292. package/esm2015/lib/components/cards/abstract-card-container.component.js.map +0 -1
  293. package/esm2015/lib/components/cards/abstract-card-container.component.metadata.json +0 -1
  294. package/esm2015/lib/components/cards/abstract-card-container.component.ngfactory.js.map +0 -1
  295. package/esm2015/lib/components/cards/card-container/card-container.component.js +0 -123
  296. package/esm2015/lib/components/cards/card-container/card-container.component.js.map +0 -1
  297. package/esm2015/lib/components/cards/card-container/card-container.component.metadata.json +0 -1
  298. package/esm2015/lib/components/cards/card-container/card-container.component.ngfactory.js.map +0 -1
  299. package/esm2015/lib/components/cards/card-container/card-container.component.scss.shim.ngstyle.js.map +0 -1
  300. package/esm2015/lib/components/cards/card-stack/card-stack.component.js +0 -78
  301. package/esm2015/lib/components/cards/card-stack/card-stack.component.js.map +0 -1
  302. package/esm2015/lib/components/cards/card-stack/card-stack.component.metadata.json +0 -1
  303. package/esm2015/lib/components/cards/card-stack/card-stack.component.ngfactory.js.map +0 -1
  304. package/esm2015/lib/components/cards/card-stack/card-stack.component.scss.shim.ngstyle.js.map +0 -1
  305. package/esm2015/lib/components/labelled-value/labelled-value.component.js +0 -22
  306. package/esm2015/lib/components/labelled-value/labelled-value.component.js.map +0 -1
  307. package/esm2015/lib/components/labelled-value/labelled-value.component.metadata.json +0 -1
  308. package/esm2015/lib/components/labelled-value/labelled-value.component.ngfactory.js.map +0 -1
  309. package/esm2015/lib/components/loading-container/loading-container.component.js +0 -45
  310. package/esm2015/lib/components/loading-container/loading-container.component.js.map +0 -1
  311. package/esm2015/lib/components/loading-container/loading-container.component.metadata.json +0 -1
  312. package/esm2015/lib/components/loading-container/loading-container.component.ngfactory.js.map +0 -1
  313. package/esm2015/lib/components/loading-container/loading-container.component.scss.shim.ngstyle.js.map +0 -1
  314. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.js +0 -77
  315. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.js.map +0 -1
  316. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.metadata.json +0 -1
  317. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.ngfactory.js.map +0 -1
  318. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.scss.shim.ngstyle.js.map +0 -1
  319. package/esm2015/lib/interaction/components/editors/edit-context.js +0 -2
  320. package/esm2015/lib/interaction/components/editors/edit-context.js.map +0 -1
  321. package/esm2015/lib/interaction/components/editors/edit-context.metadata.json +0 -1
  322. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.js +0 -50
  323. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.js.map +0 -1
  324. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.metadata.json +0 -1
  325. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js +0 -161
  326. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js.map +0 -1
  327. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.metadata.json +0 -1
  328. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.ngfactory.js.map +0 -1
  329. package/esm2015/lib/interaction/components/input-activities/input-activity.js +0 -95
  330. package/esm2015/lib/interaction/components/input-activities/input-activity.js.map +0 -1
  331. package/esm2015/lib/interaction/components/input-activities/input-activity.metadata.json +0 -1
  332. package/esm2015/lib/interaction/components/input-activities/input-activity.ngfactory.js.map +0 -1
  333. package/lib/components/cards/abstract-card-container.component.d.ts +0 -11
  334. package/lib/components/cards/card-stack/card-stack.component.d.ts +0 -65
  335. package/lib/components/labelled-value/labelled-value.component.d.ts +0 -7
  336. package/lib/components/loading-container/loading-container.component.d.ts +0 -11
  337. package/lib/interaction/components/add-card-activity/add-card-activity.component.d.ts +0 -39
  338. package/lib/interaction/components/editors/edit-context.d.ts +0 -3
  339. package/lib/interaction/components/editors/inline-string-editor/inline-editor-model.d.ts +0 -24
  340. package/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.d.ts +0 -57
  341. package/lib/interaction/components/input-activities/input-activity.d.ts +0 -41
@@ -1 +1 @@
1
- {"version":3,"file":"place-component.js","sourceRoot":"","sources":["../../../../../../libs/angular-ui-powerups/src/lib/place/place-component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Directive } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\nimport {\n assert,\n Binding,\n Constructable,\n DebugContext,\n Dsl,\n Guard,\n IMutableHasValue,\n lang,\n MutableValueModel,\n ValueModel\n} from '@coolon/pectin';\nimport { Klass } from '@coolon/typescript-utilities';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator';\nimport 'reflect-metadata';\nimport { DisposableComponent } from '../components/disposable-component';\nimport { InteractionContext } from '../interaction/interaction-context';\nimport { PlaceDefinition } from './place-definition';\nimport { ParameterDefinition } from './route/parameter-definition';\nimport { UrlSnapshot } from './url-snapshot';\nimport { Visit } from './visit';\nimport * as _ from 'lodash';\n\n// RAKE: making this Symbol(...) broke things.\nexport const DEFINITION_META_DATA_KEY = 'PLACE_DEFINITION_OPTIONS';\n// this one seems ok.\nexport const ROUTE_PARAMETER_LIST_KEY = Symbol('place:route:parameters');\n\n\nclass ParameterChangeInterceptor<T> {\n constructor(parameterDef: ParameterDefinition<T>, model: ValueModel<T>, callback: PlaceComponent.InterceptCallback<T>, options: PlaceComponent.InterceptOptions) {\n }\n\n async canProceed(nextState: Visit, interactionContext: InteractionContext) {\n return true;\n }\n}\n\n@Directive()\nexport class PlaceComponent extends DisposableComponent {\n\n private readonly _placeReadyCallbacks: Function[] = [];\n private visitModel = new MutableValueModel<Visit>();\n private _inVisitUpdate = new Guard();\n private _active = new MutableValueModel<boolean>(false);\n\n interactionContext?: InteractionContext;\n readonly childPlaces: ReadonlyArray<Constructable<PlaceComponent>>;\n private readonly _parameterChangeInterceptors: ParameterChangeInterceptor<any>[] = [];\n\n canDeactivate?(interactionContext: InteractionContext): boolean | Promise<boolean>;\n\n constructor() {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n when(this._active).becomesTruthy(() => this._notifyPlaceReady());\n this.childPlaces = this.placeDefinition.children.map(d => d.component);\n }\n\n public initialiseVisit(visit: Visit, notifyVisitChanged: (current: Visit, previous: Visit) => void) {\n assert.isNil(this.visitModel.value);\n\n const { when } = Dsl.disposeWith(this);\n\n this.visitModel.value = visit;\n DebugContext.getOrCreate(this.visitModel).tag(`${this.placeDefinition.component.name}.visitModel`);\n\n // we track if the any of the bindings updated the route. If so we remember it and update the\n // route in one go at the end.\n this.placeDefinition\n .getVisitParameterDefs()\n .forEach(parameterDef => this.installAndInitialiseBinding(visit, parameterDef));\n\n when(this.visitModel).changes((current, previous) => {\n notifyVisitChanged(current, previous);\n }, { unless: this._inVisitUpdate });\n\n // TODO: this needs to do a replace url option so that the new url isn't put in the history.... for\n // now we're not doing it as it's a fair bit of effort and will only affect people if they're\n // cutting and pasting urls to each other.\n // // the binding process can update the visit (e.g. if a selection model has already selected during\n // // component construction) and there was no value specified in the route\n // if (visit.hasRoutingChangedFrom(this.visitModel.value)) {\n // notifyVisitChanged(this.visitModel.value, visit)\n // }\n }\n\n public updateVisit(visit: Visit) {\n assert.isTruthy(this.isInitialised());\n assert.notNil(visit);\n this._inVisitUpdate.whileTrue(() => {\n this.visitModel.value = visit;\n });\n }\n\n isInitialised() {\n return !!this.visitModel.value;\n }\n\n // @Trace()\n /**\n * Initialised the component bindings. If any binding has an initial model value (e.g. a selection model\n * initialised during the constructor) and the route has nothing, then the visit will be udpated and this\n * method will return ture to nofiy the the visit has changed.\n */\n private installAndInitialiseBinding<T, S>(initialVisit: Visit, parameterDef: ParameterDefinition<T, S>) {\n const model = this[parameterDef.propertyName] as IMutableHasValue<T>;\n DebugContext.tag(model, `${this.placeDefinition.component.name}.${parameterDef.propertyName}`);\n const binding = this.registerDisposable(new Binding(this.visitModel, model, {\n toRight(visit: Visit): T {\n const value = visit.getParameterValue(parameterDef);\n // console.log('push to component', { name: parameterDef.name, value, visit });\n return value;\n },\n toLeft(value: T, currentVisit?: Visit): Visit {\n // console.log('push to route', { name: parameterDef.name, value, currentVisit });\n return currentVisit.replace(parameterDef, value);\n }\n }));\n\n // Now we need to initialise the binding direction. If we have a value in the Url then we should always push\n // that to the view. If we don't and the view already has a value (e.g. a selection model has already initialised in the\n // component constructor) then we should push that to the route.\n const isInVisit = !_.isNil(initialVisit.getParameterValue(parameterDef));\n const isInModel = !_.isNil(model.value);\n if (!isInVisit && isInModel) {\n binding.writeLeft(); // push it to the route\n } else {\n binding.writeRight(); // push it to the model\n }\n }\n\n @Memoize()\n get placeDefinition(): PlaceDefinition {\n const definition = PlaceComponent.getDefinition(this.constructor as any as Constructable<PlaceComponent>);\n if (!definition) {\n lang.illegalState(`${this.constructor.name} extends PlaceComponent but doesn't have @Place({..}) decorator.`)\n }\n return definition;\n }\n\n get active() {\n return this._active.readonly;\n }\n\n /**\n * Called by the router to see if this component can deactivate. This isn't called for route parameter changes.\n * @param interactionContext\n */\n async _canLeavePlace(interactionContext: InteractionContext): Promise<boolean> {\n return this.canDeactivate ? this.canDeactivate(interactionContext) : true;\n }\n\n /**\n * Called by the router to see if this component can deactivate. This isn't called for route parameter changes.\n * @param interactionContext\n * @param nextState\n */\n async _canChangeRouteParameters(interactionContext: InteractionContext, nextState: UrlSnapshot): Promise<boolean> {\n if (this._parameterChangeInterceptors.length > 0) {\n const visit = nextState.createVisitFor(this.placeDefinition);\n for (let i = 0; i < this._parameterChangeInterceptors.length; i++) {\n const interceptor = this._parameterChangeInterceptors[i];\n const keepGoing = await interceptor.canProceed(visit, interactionContext);\n if (!keepGoing) {\n return false;\n }\n }\n }\n return true;\n }\n\n\n /**\n * Called by the router when the place is ready to interact after any animations have run.\n */\n _notifyActive(active: boolean) {\n this._active.value = active;\n }\n\n /**\n * Called by the router when the place is ready to interact after any animations have run.\n */\n _notifyPlaceReady() {\n if (this.onPlaceReady.length === 1) {\n this._placeReadyCallbacks.forEach(callback => callback());\n } else {\n console.warn('Overriding PlaceComponent.onPlaceReady has been deprecated. Use PlaceComponent.onPlaceReady(() => {... do stuff...}) instead.');\n this.onPlaceReady(undefined);\n }\n }\n\n onPlaceReady(callback: () => void) {\n this._placeReadyCallbacks.push(callback);\n }\n\n interceptVisitParameterChange<T>(model: ValueModel<T>, callback: PlaceComponent.InterceptCallback<T>, options?: PlaceComponent.InterceptOptions) {\n const parameterDef = ParameterDefinition.get(model);\n this._parameterChangeInterceptors.push(new ParameterChangeInterceptor(parameterDef, model, callback, options));\n }\n\n}\n\nexport namespace PlaceComponent {\n\n export function isPlaceComponentConstructor(target: any): target is Constructable<PlaceComponent> {\n return lang.constructorChain(target as Constructable<any>).includes(PlaceComponent);\n }\n\n export function getRouteParameters(klass: Constructable<PlaceComponent>): ParameterDefinition<any>[] {\n return Klass.get(klass).getMetadataList(ROUTE_PARAMETER_LIST_KEY) as ParameterDefinition<any>[];\n }\n\n export function getDefinition(snapshotOrConstructor: ActivatedRouteSnapshot | Constructable<PlaceComponent>): PlaceDefinition {\n if (snapshotOrConstructor instanceof ActivatedRouteSnapshot) {\n const component = snapshotOrConstructor.component;\n if (!isPlaceComponentConstructor(component)) {\n throw new Error(`ActivatedRouteSnapshot component is not a PlaceComponent, got ${component}`);\n }\n return Reflect.getMetadata(DEFINITION_META_DATA_KEY, component);\n } else {\n return Reflect.getMetadata(DEFINITION_META_DATA_KEY, snapshotOrConstructor);\n }\n }\n\n export function injectDefinition(klass: Constructable<PlaceComponent>, definition: PlaceDefinition) {\n Reflect.defineMetadata(DEFINITION_META_DATA_KEY, definition, klass);\n }\n\n export type InterceptCallback<T> = (is: T, was: T, interactionContext: InteractionContext) => boolean | Promise<boolean>;\n\n export interface InterceptOptions {\n initialValue: 'evaluationUnlessNil' | 'evaluate'\n }\n\n\n}\n"]}
1
+ {"version":3,"file":"place-component.js","sourceRoot":"","sources":["../../../../../../libs/angular-ui-powerups/src/lib/place/place-component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Directive } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\nimport {\n assert,\n Binding,\n Constructable,\n DebugContext,\n Dsl,\n Guard,\n IMutableHasValue,\n lang,\n MutableValueModel,\n ValueModel\n} from '@coolon/pectin';\nimport { Klass } from '@coolon/typescript-utilities';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator';\nimport 'reflect-metadata';\nimport { DisposableComponent } from '../components/disposable-component';\nimport { InteractionContext } from '../interaction/interaction-context';\nimport { PlaceDefinition } from './place-definition';\nimport { ParameterDefinition } from './route/parameter-definition';\nimport { UrlSnapshot } from './url-snapshot';\nimport { Visit } from './visit';\n\n// RAKE: making this Symbol(...) broke things.\nexport const DEFINITION_META_DATA_KEY = 'PLACE_DEFINITION_OPTIONS';\n// this one seems ok.\nexport const ROUTE_PARAMETER_LIST_KEY = Symbol('place:route:parameters');\n\n\nclass ParameterChangeInterceptor<T> {\n constructor(parameterDef: ParameterDefinition<T>, model: ValueModel<T>, callback: PlaceComponent.InterceptCallback<T>, options: PlaceComponent.InterceptOptions) {\n }\n\n async canProceed(nextState: Visit, interactionContext: InteractionContext) {\n return true;\n }\n}\n\n@Directive()\nexport class PlaceComponent extends DisposableComponent {\n\n private readonly _placeReadyCallbacks: Function[] = [];\n private visitModel = new MutableValueModel<Visit>();\n private _inVisitUpdate = new Guard();\n private _active = new MutableValueModel<boolean>(false);\n\n interactionContext?: InteractionContext;\n readonly childPlaces: ReadonlyArray<Constructable<PlaceComponent>>;\n private readonly _parameterChangeInterceptors: ParameterChangeInterceptor<any>[] = [];\n\n canDeactivate?(interactionContext: InteractionContext): boolean | Promise<boolean>;\n\n constructor() {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n when(this._active).becomesTruthy(() => this._notifyPlaceReady());\n this.childPlaces = this.placeDefinition.children.map(d => d.component);\n }\n\n // @Trace()\n public initialiseVisit(visit: Visit, notifyVisitChanged: (current: Visit, previous: Visit) => void) {\n assert.isNil(this.visitModel.value);\n\n const { when } = Dsl.disposeWith(this);\n\n this.visitModel.value = visit;\n DebugContext.getOrCreate(this.visitModel).tag(`${this.placeDefinition.component.name}.visitModel`);\n this.placeDefinition.getVisitParameterDefs().forEach(parameterDef => this.installBinding(parameterDef));\n when(this.visitModel).changes((current, previous) => {\n notifyVisitChanged(current, previous);\n }, { unless: this._inVisitUpdate });\n }\n\n public updateVisit(visit: Visit) {\n assert.isTruthy(this.isInitialised());\n assert.notNil(visit);\n this._inVisitUpdate.whileTrue(() => {\n this.visitModel.value = visit;\n });\n }\n\n isInitialised() {\n return !!this.visitModel.value;\n }\n\n // @Trace()\n private installBinding<T, S>(parameterDef: ParameterDefinition<T, S>) {\n const model = this[parameterDef.propertyName] as IMutableHasValue<T>;\n DebugContext.tag(model, `${this.placeDefinition.component.name}.${parameterDef.propertyName}`);\n const binding = this.registerDisposable(new Binding(this.visitModel, model, {\n toRight(visit: Visit): T {\n const value = visit.getParameterValue(parameterDef);\n // console.log('push to component', { name: parameterDef.name, value, visit });\n return value;\n },\n toLeft(value: T, currentVisit?: Visit): Visit {\n // console.log('push to route', { name: parameterDef.name, value, currentVisit });\n return currentVisit.replace(parameterDef, value);\n }\n }));\n\n binding.writeRight();\n }\n\n @Memoize()\n get placeDefinition(): PlaceDefinition {\n const definition = PlaceComponent.getDefinition(this.constructor as any as Constructable<PlaceComponent>);\n if (!definition) {\n lang.illegalState(`${this.constructor.name} extends PlaceComponent but doesn't have @Place({..}) decorator.`)\n }\n return definition;\n }\n\n get active() {\n return this._active.readonly;\n }\n\n /**\n * Called by the router to see if this component can deactivate. This isn't called for route parameter changes.\n * @param interactionContext\n */\n async _canLeavePlace(interactionContext: InteractionContext): Promise<boolean> {\n return this.canDeactivate ? this.canDeactivate(interactionContext) : true;\n }\n\n /**\n * Called by the router to see if this component can deactivate. This isn't called for route parameter changes.\n * @param interactionContext\n * @param nextState\n */\n async _canChangeRouteParameters(interactionContext: InteractionContext, nextState: UrlSnapshot): Promise<boolean> {\n if (this._parameterChangeInterceptors.length > 0) {\n const visit = nextState.createVisitFor(this.placeDefinition);\n for (let i = 0; i < this._parameterChangeInterceptors.length; i++) {\n const interceptor = this._parameterChangeInterceptors[i];\n const keepGoing = await interceptor.canProceed(visit, interactionContext);\n if (!keepGoing) {\n return false;\n }\n }\n }\n return true;\n }\n\n\n /**\n * Called by the router when the place is ready to interact after any animations have run.\n */\n _notifyActive(active: boolean) {\n this._active.value = active;\n }\n\n /**\n * Called by the router when the place is ready to interact after any animations have run.\n */\n _notifyPlaceReady() {\n if (this.onPlaceReady.length === 1) {\n this._placeReadyCallbacks.forEach(callback => callback());\n } else {\n console.warn('Overriding PlaceComponent.onPlaceReady has been deprecated. Use PlaceComponent.onPlaceReady(() => {... do stuff...}) instead.');\n this.onPlaceReady(undefined);\n }\n }\n\n onPlaceReady(callback: () => void) {\n this._placeReadyCallbacks.push(callback);\n }\n\n interceptVisitParameterChange<T>(model: ValueModel<T>, callback: PlaceComponent.InterceptCallback<T>, options?: PlaceComponent.InterceptOptions) {\n const parameterDef = ParameterDefinition.get(model);\n this._parameterChangeInterceptors.push(new ParameterChangeInterceptor(parameterDef, model, callback, options));\n }\n\n}\n\nexport namespace PlaceComponent {\n\n export function isPlaceComponentConstructor(target: any): target is Constructable<PlaceComponent> {\n return lang.constructorChain(target as Constructable<any>).includes(PlaceComponent);\n }\n\n export function getRouteParameters(klass: Constructable<PlaceComponent>): ParameterDefinition<any>[] {\n return Klass.get(klass).getMetadataList(ROUTE_PARAMETER_LIST_KEY) as ParameterDefinition<any>[];\n }\n\n export function getDefinition(snapshotOrConstructor: ActivatedRouteSnapshot | Constructable<PlaceComponent>): PlaceDefinition {\n if (snapshotOrConstructor instanceof ActivatedRouteSnapshot) {\n const component = snapshotOrConstructor.component;\n if (!isPlaceComponentConstructor(component)) {\n throw new Error(`ActivatedRouteSnapshot component is not a PlaceComponent, got ${component}`);\n }\n return Reflect.getMetadata(DEFINITION_META_DATA_KEY, component);\n } else {\n return Reflect.getMetadata(DEFINITION_META_DATA_KEY, snapshotOrConstructor);\n }\n }\n\n export function injectDefinition(klass: Constructable<PlaceComponent>, definition: PlaceDefinition) {\n Reflect.defineMetadata(DEFINITION_META_DATA_KEY, definition, klass);\n }\n\n export type InterceptCallback<T> = (is: T, was: T, interactionContext: InteractionContext) => boolean | Promise<boolean>;\n\n export interface InterceptOptions {\n initialValue: 'evaluationUnlessNil' | 'evaluate'\n }\n\n\n}\n"]}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"DEFINITION_META_DATA_KEY":"PLACE_DEFINITION_OPTIONS","ROUTE_PARAMETER_LIST_KEY":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Symbol"},"arguments":["place:route:parameters"]},"PlaceComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../components/disposable-component","name":"DisposableComponent","line":41,"character":36},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":40,"character":1}}],"members":{"canDeactivate":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor"}],"initialiseVisit":[{"__symbolic":"method"}],"updateVisit":[{"__symbolic":"method"}],"isInitialised":[{"__symbolic":"method"}],"installAndInitialiseBinding":[{"__symbolic":"method"}],"placeDefinition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@typescript-plus/fast-memoize-decorator","name":"Memoize","line":134,"character":3}}]}],"_canLeavePlace":[{"__symbolic":"method"}],"_canChangeRouteParameters":[{"__symbolic":"method"}],"_notifyActive":[{"__symbolic":"method"}],"_notifyPlaceReady":[{"__symbolic":"method"}],"onPlaceReady":[{"__symbolic":"method"}],"interceptVisitParameterChange":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"DEFINITION_META_DATA_KEY":"PLACE_DEFINITION_OPTIONS","ROUTE_PARAMETER_LIST_KEY":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Symbol"},"arguments":["place:route:parameters"]},"PlaceComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../components/disposable-component","name":"DisposableComponent","line":40,"character":36},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":39,"character":1}}],"members":{"canDeactivate":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor"}],"initialiseVisit":[{"__symbolic":"method"}],"updateVisit":[{"__symbolic":"method"}],"isInitialised":[{"__symbolic":"method"}],"installBinding":[{"__symbolic":"method"}],"placeDefinition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@typescript-plus/fast-memoize-decorator","name":"Memoize","line":105,"character":3}}]}],"_canLeavePlace":[{"__symbolic":"method"}],"_canChangeRouteParameters":[{"__symbolic":"method"}],"_notifyActive":[{"__symbolic":"method"}],"_notifyPlaceReady":[{"__symbolic":"method"}],"onPlaceReady":[{"__symbolic":"method"}],"interceptVisitParameterChange":[{"__symbolic":"method"}]}}}}]
@@ -1,8 +1,8 @@
1
- import { __awaiter } from "tslib";
1
+ import { __awaiter, __decorate, __metadata } from "tslib";
2
2
  import { Location } from '@angular/common';
3
3
  import { Injectable } from '@angular/core';
4
4
  import { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router } from '@angular/router';
5
- import { assert, Binding, DebugContext, DelegatingValueModel, Dsl, GarbageCollector, lang, MutableListModel, MutableValueModel } from '@coolon/pectin';
5
+ import { assert, Binding, DebugContext, DelegatingValueModel, Dsl, GarbageCollector, lang, MutableListModel, MutableValueModel, Trace } from '@coolon/pectin';
6
6
  import { InteractionService } from '../interaction/services/interaction.service';
7
7
  import { NavigatingDuringInteraction } from './navigation/session/interactions/navigating-during-interaction';
8
8
  import { PopStateDuringInteractionNavigation } from './navigation/session/interactions/pop-state-during-interaction-navigation';
@@ -19,9 +19,6 @@ import * as i2 from "@angular/common";
19
19
  import * as i3 from "../interaction/services/interaction.service";
20
20
  import * as i4 from "./url-service";
21
21
  import * as i5 from "./place-history";
22
- function asArray(item) {
23
- return Array.isArray(item) ? item : [item];
24
- }
25
22
  export class PlaceRouter extends GarbageCollector {
26
23
  constructor(angularRouter, angularLocation, interactionService, urlService, placeHistory) {
27
24
  super();
@@ -185,10 +182,11 @@ export class PlaceRouter extends GarbageCollector {
185
182
  this.currentSession.onRouterEnd(event);
186
183
  }
187
184
  navigate(visit, options) {
188
- const commands = asArray(visit).reduce((result, v) => {
189
- return [...result, v.placeDefinition.path, ...this.createRouteParameters(v)];
190
- }, []);
191
185
  return this.doNavigation(visit, (router) => __awaiter(this, void 0, void 0, function* () {
186
+ const commands = [
187
+ visit.placeDefinition.path,
188
+ ...this.createRouteParameters(visit)
189
+ ];
192
190
  yield this.angularRouter.navigate(commands, {
193
191
  relativeTo: options ? options.relativeTo : null
194
192
  });
@@ -201,7 +199,7 @@ export class PlaceRouter extends GarbageCollector {
201
199
  lang.illegalState('Navigation already in progress');
202
200
  }
203
201
  const navigation = this.createNavigationSession(this.urlService.getCurrentRouterUrl());
204
- asArray(visit).forEach(v => navigation.storeVisit(v));
202
+ navigation.storeVisit(visit);
205
203
  this.transitionTo(navigation);
206
204
  try {
207
205
  yield runNavigationCommands(this.angularRouter);
@@ -282,7 +280,6 @@ export class PlaceRouter extends GarbageCollector {
282
280
  * to be able to capture the back button on the first page. If we don't then the back click will exit
283
281
  * the app directly and we don't get to ask.
284
282
  */
285
- // @Trace()
286
283
  syncInteractionContextIdsWithRouter() {
287
284
  if (this.navigationSession) {
288
285
  // console.log(`Navigation active -> ${this.navigationSession.toString()}, sync delayed until finished.`);
@@ -324,6 +321,12 @@ PlaceRouter.ctorParameters = () => [
324
321
  { type: UrlService },
325
322
  { type: PlaceHistory }
326
323
  ];
324
+ __decorate([
325
+ Trace(),
326
+ __metadata("design:type", Function),
327
+ __metadata("design:paramtypes", []),
328
+ __metadata("design:returntype", Promise)
329
+ ], PlaceRouter.prototype, "syncInteractionContextIdsWithRouter", null);
327
330
  (function (PlaceRouter) {
328
331
  class State {
329
332
  constructor(activeVisits) {
@@ -1 +1 @@
1
- {"version":3,"file":"place-router.js","sourceRoot":"","sources":["../../../../../../libs/angular-ui-powerups/src/lib/place/place-router.ts"],"names":[],"mappings":"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","sourcesContent":["import { Location } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport {\n ActivatedRoute,\n ActivatedRouteSnapshot,\n NavigationCancel,\n NavigationEnd,\n NavigationError,\n NavigationExtras,\n NavigationStart,\n Router,\n RouterStateSnapshot\n} from '@angular/router';\nimport {\n assert,\n Binding,\n DebugContext,\n DelegatingValueModel,\n Dsl,\n GarbageCollector,\n lang,\n ListModel,\n MutableListModel,\n MutableValueModel,\n ValueModel,\n ValueModelChain\n} from '@coolon/pectin';\nimport { InteractionServiceRoutingAdapter } from '../interaction/services/interaction-service-routing-adapter';\nimport { InteractionService } from '../interaction/services/interaction.service';\nimport { NavigatingDuringInteraction } from './navigation/session/interactions/navigating-during-interaction';\nimport { PopStateDuringInteractionNavigation } from './navigation/session/interactions/pop-state-during-interaction-navigation';\nimport { SynchroniseInteractionContextIdsWithRoute } from './navigation/session/interactions/synchronise-interaction-context-ids-with-route';\nimport { Navigating } from './navigation/session/navigating';\nimport { NavigationContext } from './navigation/session/navigation-context';\nimport { NavigationSession } from './navigation/session/navigation-session';\nimport { PopStateNavigation } from './navigation/session/pop-state-navigation';\nimport { PlaceAccessGuard } from './place-access-guard';\nimport { PlaceDefinition } from './place-definition';\nimport { PlaceHistory } from './place-history';\nimport { UrlService } from './url-service';\nimport { UrlSnapshot } from './url-snapshot';\nimport { Visit } from './visit';\n\nfunction asArray<T>(item: T | T[]):T[] {\n return Array.isArray(item) ? item : [item];\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlaceRouter extends GarbageCollector {\n\n readonly navigationSessionModel = new MutableValueModel<NavigationSession>();\n readonly navigationInProgress: ValueModelChain<boolean>;\n readonly navigationSessionName: ValueModelChain<string>; // used by tests\n\n private readonly navigationContext: NavigationContext.Impl;\n\n private readonly _activeVisits = new MutableListModel<Visit>();\n private readonly routerInteractionAdapter: InteractionServiceRoutingAdapter;\n private sessionFinishedJobs: (() => void)[] = [];\n\n public readonly state: ValueModel<PlaceRouter.State>;\n\n /**\n * An observable model containing the authoriser function. This allows places to react to changes\n * in permissions when any underlying auth logic changes, e.g. a role being removed from a user.\n */\n private readonly _accessGuard = new DelegatingValueModel<PlaceAccessGuard>().withDefault(new PlaceAccessGuard.NoAuth());\n private redirections: PlaceRouter.Redirections;\n\n constructor(private readonly angularRouter: Router,\n private readonly angularLocation: Location,\n private readonly interactionService: InteractionService,\n private readonly urlService: UrlService,\n private readonly placeHistory: PlaceHistory) {\n super();\n\n if (window['Cypress']) {\n window['aup.PlaceRouter'] = this;\n }\n\n this.routerInteractionAdapter = interactionService.registerPlaceRouter(this);\n\n // TODO: Make this an interface and use 'this' instead.\n this.navigationContext = new NavigationContext.Impl(\n this.urlService,\n this.routerInteractionAdapter,\n (urlSnapshot: UrlSnapshot, options: { replaceUrl: boolean }) => {\n return this.navigateByUrl(urlSnapshot, options);\n },\n state => {\n this.transitionTo(state);\n },\n visits => {\n this.routingSessionFinished(visits);\n });\n\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n this.navigationInProgress = chain(this.navigationSessionModel).isNotNil();\n\n const idleStateName = chain(this.interactionService.active).map(active => active ? 'IdleDuringInteraction' : 'Idle');\n this.navigationSessionName = chain(this.navigationSessionModel)\n .pluck('name')\n .otherwise(idleStateName);\n\n DebugContext.tag(this._activeVisits, 'PlaceRouter.activeVisits');\n this.state = chain(this._activeVisits).reduce(visits => new PlaceRouter.State(visits));\n\n // TODO: make setup the callbacks in during module initiation to make this testable.\n angularRouter.events.subscribe(event => {\n // Routing event sequence\n // ======================\n // NavigationStart -> .... -> NavigationCancel --> redirect, go around again in the same session\n // NavigationStart -> .... -> NavigationEnd --> navigation complete, end session.\n // NavigationStart -> .... -> NavigationError --> navigation aborted, end session.\n // =======================\n if (event instanceof NavigationStart) {\n // console.log(`---> NavigationStart[${event.id}]: ${event.url} (${event.navigationTrigger})`);\n if (event.navigationTrigger === 'popstate') {\n this.onPopState(event);\n } else {\n this.onRouterStarted(event);\n }\n // console.log(`<--- NavigationStart[${event.id}]: ${event.url} (${event.navigationTrigger})`);\n }\n if (event instanceof NavigationEnd) {\n // console.log(`---> NavigationEnd[${event.id}]: ${event.url}`);\n this.onRouterEnd(event);\n // console.log(`<--- NavigationEnd[${event.id}]: ${event.url}`);\n }\n if (event instanceof NavigationError) {\n // console.log(`---> NavigationError[${event.id}]: ${event.url}`);\n this.onRouterError(event);\n // console.log(`<--- NavigationError[${event.id}]: ${event.url}`);\n }\n if (event instanceof NavigationCancel) {\n // console.log(`---> NavigationCancel[${event.id}]: ${event.url}`);\n this.onRouterCancelled(event);\n // console.log(`<--- NavigationCancel[${event.id}]: ${event.url}`);\n }\n });\n\n // The router needs to know about url changes and in some cases they are the only way the router can know if\n // the back button was clicked.\n angularLocation.onUrlChange(url => this.onUrlChanged(url));\n\n }\n\n get accessGuard(): ValueModel<PlaceAccessGuard> {\n return this._accessGuard.readonly;\n }\n\n // @Trace()\n configureAuth(accessGrant: ValueModel<PlaceAccessGuard>, redirections: PlaceRouter.Redirections) {\n // We need a shitty mutable model until setDelegate is clever enough to work with readonly models.\n const hackyMutableModel = new MutableValueModel<PlaceAccessGuard>();\n const binding = new Binding(hackyMutableModel, accessGrant, {\n toRight(leftValue: PlaceAccessGuard) {\n return lang.illegalState('hackyMutableModel is read only');\n },\n toLeft: (rightValue: PlaceAccessGuard) => rightValue\n });\n binding.writeLeft();\n this._accessGuard.setDelegate(hackyMutableModel);\n this.redirections = redirections;\n }\n\n getAuthenticationFailureRedirect(activatedRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): Visit {\n return this.redirections.onAuthenticationFailure(activatedRoute, state);\n }\n\n get navigationSession() {\n return this.navigationSessionModel.value;\n }\n\n get currentSession() {\n return this.navigationSessionModel.value;\n }\n\n isNavigating(): boolean {\n return this.navigationInProgress.value;\n }\n\n waitUntilIdle(): Promise<this> {\n const { when } = Dsl.disposeWith(this);\n return new Promise<this>(resolve => {\n when(this.navigationInProgress).becomesFalsey(() => resolve(this), {\n initialValue: 'evaluate',\n once: true\n });\n });\n }\n\n // @Trace()\n onPopState(event: NavigationStart) {\n assert.isTruthy(event.navigationTrigger === 'popstate');\n if (this.currentSession) {\n this.currentSession.onPopState(event);\n } else {\n const poppedHistoryUrl = event.url;\n const currentRouterUrl = this.urlService.getCurrentRouterUrl();\n const session = this.interactionService.isActive() ?\n new PopStateDuringInteractionNavigation(this.navigationContext, currentRouterUrl, poppedHistoryUrl) :\n new PopStateNavigation(this.navigationContext, currentRouterUrl, poppedHistoryUrl);\n this.transitionTo(session);\n }\n }\n\n // @Trace()\n onRouterStarted(event: NavigationStart) {\n assert.isFalsey(event.navigationTrigger === 'popstate');\n const inInteraction = this.interactionService.isActive();\n if (this.currentSession) {\n this.currentSession.onRouterStarted(event);\n } else {\n this.transitionTo(this.createNavigationSession(this.urlService.getCurrentRouterUrl()));\n }\n }\n\n // @Trace()\n onUrlChanged(newUrl: string) {\n // the back button can trigger a url change without a navigation session in progress so we\n // console.log(`---> Url Changed ${newUrl}`);\n if (this.currentSession) {\n this.currentSession.onUrlChange(newUrl);\n } else {\n console.log('FYI: url changed without a navigation session in progress');\n }\n // console.log(`<--- Url Changed`);\n }\n\n // @Trace()\n onRouterCancelled(event: NavigationCancel) {\n this.currentSession.onRouterCancelled(event);\n }\n\n // @Trace()\n onRouterError(event: NavigationError) {\n this.currentSession.onRouterError(event);\n }\n\n // @Trace()\n onRouterEnd(event: NavigationEnd) {\n this.currentSession.onRouterEnd(event);\n }\n\n navigate(visit: Visit | Visit[], options?: { relativeTo: ActivatedRoute }) {\n const commands = asArray(visit).reduce((result, v) => {\n return [...result, v.placeDefinition.path, ...this.createRouteParameters(v)];\n }, []);\n return this.doNavigation(visit, async router => {\n await this.angularRouter.navigate(commands, {\n relativeTo: options ? options.relativeTo : null\n });\n });\n }\n\n // @Trace()\n async doNavigation(visit: Visit| Visit[], runNavigationCommands: (router: Router) => any) {\n if (this.navigationInProgress.value) {\n lang.illegalState('Navigation already in progress');\n }\n const navigation = this.createNavigationSession(this.urlService.getCurrentRouterUrl());\n asArray(visit).forEach(v => navigation.storeVisit(v));\n this.transitionTo(navigation);\n try {\n await runNavigationCommands(this.angularRouter);\n } finally {\n // Check if the router has finished (in the case where no router change required) and we're still in a\n // transient state and finish of the transition.\n if (!this.angularRouter.getCurrentNavigation() && this.currentSession) {\n this.currentSession.onRouterEnd(new NavigationEnd(-1, '', ''));\n }\n }\n }\n\n navigateByUrl(urlSnapshot: UrlSnapshot, navigationExtras?: NavigationExtras): Promise<boolean> {\n console.log(`### navigationByUrl -> ${urlSnapshot.urlTree.toString()}`);\n return this.angularRouter.navigateByUrl(urlSnapshot.urlTree, navigationExtras);\n }\n\n get activeVisits(): ListModel<Visit> {\n return this._activeVisits.readonly;\n }\n\n // @Trace()\n async pushVisitChangesToRoute(previous: Visit, next: Visit): Promise<void> {\n this.placeHistory.updateVisit(next);\n\n // FIXME: no route id -> route id duplicates route parameters\n if (next.hasRoutingChangedFrom(previous)) {\n return this.doNavigation(next, router => {\n const urlSnapshot = this.urlService.parseUrl(this.angularRouter.routerState.snapshot.url).updateVisitSegments(next);\n // console.log('### Push Changes to route Redirect', { commands: urlSnapshot.url });\n return this.navigateByUrl(urlSnapshot);\n });\n }\n }\n\n\n private createNavigationSession(currentRouterUrl: string): NavigationSession {\n const inInteraction = this.interactionService.isActive();\n return inInteraction ?\n new NavigatingDuringInteraction(this.navigationContext, currentRouterUrl) :\n new Navigating(this.navigationContext, currentRouterUrl);\n }\n\n // @Trace()\n protected transitionTo(next: NavigationSession) {\n const previous = this.navigationSessionModel.value;\n if (!previous) {\n this.placeHistory.notifyNavigationStarted();\n }\n assert.isTruthy(next !== previous);\n // Logger.get(this).info(`### Router State Transition: ${previous ? previous.toString() : 'null'} -> ${next.toString()}`);\n this.navigationSessionModel.value = next;\n if (!!previous) {\n previous.dispose();\n }\n next.notifyActive();\n }\n\n // @Trace()\n private routingSessionFinished(visits: Visit[]) {\n if (visits && visits.length > 0) {\n assert.isTruthy(this.navigationInProgress.value);\n this.placeHistory.notifyNavigationFinished(visits);\n // We update the active visits before we finish the session so the\n // place outlets can ignore the incoming changes until things are\n // settled. TODO: can we removed the event'ness here and just do a push?\n this._activeVisits.value = visits;\n }\n const session = this.currentSession;\n session.dispose();\n this.navigationSessionModel.value = null;\n // console.log(`### Router Session Finished (was ${session.toString()})`);\n this.sessionFinishedJobs.forEach(job => job());\n this.sessionFinishedJobs = [];\n }\n\n private runAfterRoutingSessionFinishes(func: () => void) {\n assert.isTruthy(this.navigationInProgress);\n this.sessionFinishedJobs.push(func);\n }\n\n\n /**\n * Sync's the current interaction state with the URL. We need to push something in the URL in order\n * to be able to capture the back button on the first page. If we don't then the back click will exit\n * the app directly and we don't get to ask.\n */\n // @Trace()\n syncInteractionContextIdsWithRouter(): Promise<void> {\n if (this.navigationSession) {\n // console.log(`Navigation active -> ${this.navigationSession.toString()}, sync delayed until finished.`);\n const session = this.navigationSession;\n return new Promise<void>((resolve, reject) => {\n this.runAfterRoutingSessionFinishes(() => {\n this.runAfterRoutingSessionFinishes(resolve);\n const syncSession = new SynchroniseInteractionContextIdsWithRoute(this.navigationContext, this.urlService.getCurrentRouterUrl(), false);\n this.transitionTo(syncSession);\n });\n });\n } else {\n return new Promise<void>(((resolve, reject) => {\n // console.log(`No navigation in progress, starting synchronisation job`);\n this.runAfterRoutingSessionFinishes(resolve);\n const session = new SynchroniseInteractionContextIdsWithRoute(this.navigationContext, this.urlService.getCurrentRouterUrl(), false);\n this.transitionTo(session);\n }));\n\n }\n }\n\n\n private createRouteParameters(visit: Visit) {\n const def = visit.placeDefinition;\n return visit.hasRouteId() ?\n [def.getFormattedRouteId(visit), def.getFormattedRouteParameters(visit)] :\n [def.getFormattedRouteParameters(visit)];\n }\n\n}\n\nexport namespace PlaceRouter {\n\n export interface Redirections {\n onAuthenticationFailure(activatedRoute?: ActivatedRouteSnapshot, state?: RouterStateSnapshot): Visit;\n }\n\n export class State {\n constructor(private readonly activeVisits: Visit[]) {\n }\n\n isPlaceActive(placeDefinition: PlaceDefinition): boolean {\n return !!this.getVisitFor(placeDefinition);\n }\n\n getVisitFor(placeDefinition: PlaceDefinition): Visit {\n return this.activeVisits.find(v => v.placeDefinition === placeDefinition);\n }\n }\n\n}\n"]}
1
+ {"version":3,"file":"place-router.js","sourceRoot":"","sources":["../../../../../../libs/angular-ui-powerups/src/lib/place/place-router.ts"],"names":[],"mappings":"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","sourcesContent":["import { Location } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport {\n ActivatedRoute,\n ActivatedRouteSnapshot,\n NavigationCancel,\n NavigationEnd,\n NavigationError,\n NavigationExtras,\n NavigationStart,\n Router,\n RouterStateSnapshot\n} from '@angular/router';\nimport {\n assert,\n Binding,\n DebugContext,\n DelegatingValueModel,\n Dsl,\n GarbageCollector,\n lang,\n ListModel,\n MutableListModel,\n MutableValueModel,\n Trace,\n ValueModel,\n ValueModelChain\n} from '@coolon/pectin';\nimport { InteractionServiceRoutingAdapter } from '../interaction/services/interaction-service-routing-adapter';\nimport { InteractionService } from '../interaction/services/interaction.service';\nimport { NavigatingDuringInteraction } from './navigation/session/interactions/navigating-during-interaction';\nimport { PopStateDuringInteractionNavigation } from './navigation/session/interactions/pop-state-during-interaction-navigation';\nimport { SynchroniseInteractionContextIdsWithRoute } from './navigation/session/interactions/synchronise-interaction-context-ids-with-route';\nimport { Navigating } from './navigation/session/navigating';\nimport { NavigationContext } from './navigation/session/navigation-context';\nimport { NavigationSession } from './navigation/session/navigation-session';\nimport { PopStateNavigation } from './navigation/session/pop-state-navigation';\nimport { PlaceAccessGuard } from './place-access-guard';\nimport { PlaceDefinition } from './place-definition';\nimport { PlaceHistory } from './place-history';\nimport { UrlService } from './url-service';\nimport { UrlSnapshot } from './url-snapshot';\nimport { Visit } from './visit';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlaceRouter extends GarbageCollector {\n\n readonly navigationSessionModel = new MutableValueModel<NavigationSession>();\n readonly navigationInProgress: ValueModelChain<boolean>;\n readonly navigationSessionName: ValueModelChain<string>; // used by tests\n\n private readonly navigationContext: NavigationContext.Impl;\n\n private readonly _activeVisits = new MutableListModel<Visit>();\n private readonly routerInteractionAdapter: InteractionServiceRoutingAdapter;\n private sessionFinishedJobs: (() => void)[] = [];\n\n public readonly state: ValueModel<PlaceRouter.State>;\n\n /**\n * An observable model containing the authoriser function. This allows places to react to changes\n * in permissions when any underlying auth logic changes, e.g. a role being removed from a user.\n */\n private readonly _accessGuard = new DelegatingValueModel<PlaceAccessGuard>().withDefault(new PlaceAccessGuard.NoAuth());\n private redirections: PlaceRouter.Redirections;\n\n constructor(private readonly angularRouter: Router,\n private readonly angularLocation: Location,\n private readonly interactionService: InteractionService,\n private readonly urlService: UrlService,\n private readonly placeHistory: PlaceHistory) {\n super();\n\n if (window['Cypress']) {\n window['aup.PlaceRouter'] = this;\n }\n\n this.routerInteractionAdapter = interactionService.registerPlaceRouter(this);\n\n // TODO: Make this an interface and use 'this' instead.\n this.navigationContext = new NavigationContext.Impl(\n this.urlService,\n this.routerInteractionAdapter,\n (urlSnapshot: UrlSnapshot, options: { replaceUrl: boolean }) => {\n return this.navigateByUrl(urlSnapshot, options);\n },\n state => {\n this.transitionTo(state);\n },\n visits => {\n this.routingSessionFinished(visits);\n });\n\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n this.navigationInProgress = chain(this.navigationSessionModel).isNotNil();\n\n const idleStateName = chain(this.interactionService.active).map(active => active ? 'IdleDuringInteraction' : 'Idle');\n this.navigationSessionName = chain(this.navigationSessionModel)\n .pluck('name')\n .otherwise(idleStateName);\n\n DebugContext.tag(this._activeVisits, 'PlaceRouter.activeVisits');\n this.state = chain(this._activeVisits).reduce(visits => new PlaceRouter.State(visits));\n\n // TODO: make setup the callbacks in during module initiation to make this testable.\n angularRouter.events.subscribe(event => {\n // Routing event sequence\n // ======================\n // NavigationStart -> .... -> NavigationCancel --> redirect, go around again in the same session\n // NavigationStart -> .... -> NavigationEnd --> navigation complete, end session.\n // NavigationStart -> .... -> NavigationError --> navigation aborted, end session.\n // =======================\n if (event instanceof NavigationStart) {\n // console.log(`---> NavigationStart[${event.id}]: ${event.url} (${event.navigationTrigger})`);\n if (event.navigationTrigger === 'popstate') {\n this.onPopState(event);\n } else {\n this.onRouterStarted(event);\n }\n // console.log(`<--- NavigationStart[${event.id}]: ${event.url} (${event.navigationTrigger})`);\n }\n if (event instanceof NavigationEnd) {\n // console.log(`---> NavigationEnd[${event.id}]: ${event.url}`);\n this.onRouterEnd(event);\n // console.log(`<--- NavigationEnd[${event.id}]: ${event.url}`);\n }\n if (event instanceof NavigationError) {\n // console.log(`---> NavigationError[${event.id}]: ${event.url}`);\n this.onRouterError(event);\n // console.log(`<--- NavigationError[${event.id}]: ${event.url}`);\n }\n if (event instanceof NavigationCancel) {\n // console.log(`---> NavigationCancel[${event.id}]: ${event.url}`);\n this.onRouterCancelled(event);\n // console.log(`<--- NavigationCancel[${event.id}]: ${event.url}`);\n }\n });\n\n // The router needs to know about url changes and in some cases they are the only way the router can know if\n // the back button was clicked.\n angularLocation.onUrlChange(url => this.onUrlChanged(url));\n\n }\n\n get accessGuard(): ValueModel<PlaceAccessGuard> {\n return this._accessGuard.readonly;\n }\n\n // @Trace()\n configureAuth(accessGrant: ValueModel<PlaceAccessGuard>, redirections: PlaceRouter.Redirections) {\n // We need a shitty mutable model until setDelegate is clever enough to work with readonly models.\n const hackyMutableModel = new MutableValueModel<PlaceAccessGuard>();\n const binding = new Binding(hackyMutableModel, accessGrant, {\n toRight(leftValue: PlaceAccessGuard) {\n return lang.illegalState('hackyMutableModel is read only');\n },\n toLeft: (rightValue: PlaceAccessGuard) => rightValue\n });\n binding.writeLeft();\n this._accessGuard.setDelegate(hackyMutableModel);\n this.redirections = redirections;\n }\n\n getAuthenticationFailureRedirect(activatedRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): Visit {\n return this.redirections.onAuthenticationFailure(activatedRoute, state);\n }\n\n get navigationSession() {\n return this.navigationSessionModel.value;\n }\n\n get currentSession() {\n return this.navigationSessionModel.value;\n }\n\n isNavigating(): boolean {\n return this.navigationInProgress.value;\n }\n\n waitUntilIdle(): Promise<this> {\n const { when } = Dsl.disposeWith(this);\n return new Promise<this>(resolve => {\n when(this.navigationInProgress).becomesFalsey(() => resolve(this), {\n initialValue: 'evaluate',\n once: true\n });\n });\n }\n\n // @Trace()\n onPopState(event: NavigationStart) {\n assert.isTruthy(event.navigationTrigger === 'popstate');\n if (this.currentSession) {\n this.currentSession.onPopState(event);\n } else {\n const poppedHistoryUrl = event.url;\n const currentRouterUrl = this.urlService.getCurrentRouterUrl();\n const session = this.interactionService.isActive() ?\n new PopStateDuringInteractionNavigation(this.navigationContext, currentRouterUrl, poppedHistoryUrl) :\n new PopStateNavigation(this.navigationContext, currentRouterUrl, poppedHistoryUrl);\n this.transitionTo(session);\n }\n }\n\n // @Trace()\n onRouterStarted(event: NavigationStart) {\n assert.isFalsey(event.navigationTrigger === 'popstate');\n const inInteraction = this.interactionService.isActive();\n if (this.currentSession) {\n this.currentSession.onRouterStarted(event);\n } else {\n this.transitionTo(this.createNavigationSession(this.urlService.getCurrentRouterUrl()));\n }\n }\n\n // @Trace()\n onUrlChanged(newUrl: string) {\n // the back button can trigger a url change without a navigation session in progress so we\n // console.log(`---> Url Changed ${newUrl}`);\n if (this.currentSession) {\n this.currentSession.onUrlChange(newUrl);\n } else {\n console.log('FYI: url changed without a navigation session in progress');\n }\n // console.log(`<--- Url Changed`);\n }\n\n // @Trace()\n onRouterCancelled(event: NavigationCancel) {\n this.currentSession.onRouterCancelled(event);\n }\n\n // @Trace()\n onRouterError(event: NavigationError) {\n this.currentSession.onRouterError(event);\n }\n\n // @Trace()\n onRouterEnd(event: NavigationEnd) {\n this.currentSession.onRouterEnd(event);\n }\n\n navigate(visit: Visit, options?: { relativeTo: ActivatedRoute }) {\n return this.doNavigation(visit, async router => {\n const commands = [\n visit.placeDefinition.path,\n ...this.createRouteParameters(visit)\n ];\n await this.angularRouter.navigate(commands, {\n relativeTo: options ? options.relativeTo : null\n });\n });\n }\n\n // @Trace()\n async doNavigation(visit: Visit, runNavigationCommands: (router: Router) => any) {\n if (this.navigationInProgress.value) {\n lang.illegalState('Navigation already in progress');\n }\n const navigation = this.createNavigationSession(this.urlService.getCurrentRouterUrl());\n navigation.storeVisit(visit);\n this.transitionTo(navigation);\n try {\n await runNavigationCommands(this.angularRouter);\n } finally {\n // Check if the router has finished (in the case where no router change required) and we're still in a\n // transient state and finish of the transition.\n if (!this.angularRouter.getCurrentNavigation() && this.currentSession) {\n this.currentSession.onRouterEnd(new NavigationEnd(-1, '', ''));\n }\n }\n }\n\n navigateByUrl(urlSnapshot: UrlSnapshot, navigationExtras?: NavigationExtras): Promise<boolean> {\n console.log(`### navigationByUrl -> ${urlSnapshot.urlTree.toString()}`);\n return this.angularRouter.navigateByUrl(urlSnapshot.urlTree, navigationExtras);\n }\n\n get activeVisits(): ListModel<Visit> {\n return this._activeVisits.readonly;\n }\n\n // @Trace()\n async pushVisitChangesToRoute(previous: Visit, next: Visit): Promise<void> {\n this.placeHistory.updateVisit(next);\n\n // FIXME: no route id -> route id duplicates route parameters\n if (next.hasRoutingChangedFrom(previous)) {\n return this.doNavigation(next, router => {\n const urlSnapshot = this.urlService.parseUrl(this.angularRouter.routerState.snapshot.url).updateVisitSegments(next);\n // console.log('### Push Changes to route Redirect', { commands: urlSnapshot.url });\n return this.navigateByUrl(urlSnapshot);\n });\n }\n }\n\n\n private createNavigationSession(currentRouterUrl: string): NavigationSession {\n const inInteraction = this.interactionService.isActive();\n return inInteraction ?\n new NavigatingDuringInteraction(this.navigationContext, currentRouterUrl) :\n new Navigating(this.navigationContext, currentRouterUrl);\n }\n\n // @Trace()\n protected transitionTo(next: NavigationSession) {\n const previous = this.navigationSessionModel.value;\n if (!previous) {\n this.placeHistory.notifyNavigationStarted();\n }\n assert.isTruthy(next !== previous);\n // Logger.get(this).info(`### Router State Transition: ${previous ? previous.toString() : 'null'} -> ${next.toString()}`);\n this.navigationSessionModel.value = next;\n if (!!previous) {\n previous.dispose();\n }\n next.notifyActive();\n }\n\n // @Trace()\n private routingSessionFinished(visits: Visit[]) {\n if (visits && visits.length > 0) {\n assert.isTruthy(this.navigationInProgress.value);\n this.placeHistory.notifyNavigationFinished(visits);\n // We update the active visits before we finish the session so the\n // place outlets can ignore the incoming changes until things are\n // settled. TODO: can we removed the event'ness here and just do a push?\n this._activeVisits.value = visits;\n }\n const session = this.currentSession;\n session.dispose();\n this.navigationSessionModel.value = null;\n // console.log(`### Router Session Finished (was ${session.toString()})`);\n this.sessionFinishedJobs.forEach(job => job());\n this.sessionFinishedJobs = [];\n }\n\n private runAfterRoutingSessionFinishes(func: () => void) {\n assert.isTruthy(this.navigationInProgress);\n this.sessionFinishedJobs.push(func);\n }\n\n\n /**\n * Sync's the current interaction state with the URL. We need to push something in the URL in order\n * to be able to capture the back button on the first page. If we don't then the back click will exit\n * the app directly and we don't get to ask.\n */\n @Trace()\n syncInteractionContextIdsWithRouter(): Promise<void> {\n if (this.navigationSession) {\n // console.log(`Navigation active -> ${this.navigationSession.toString()}, sync delayed until finished.`);\n const session = this.navigationSession;\n return new Promise<void>((resolve, reject) => {\n this.runAfterRoutingSessionFinishes(() => {\n this.runAfterRoutingSessionFinishes(resolve);\n const syncSession = new SynchroniseInteractionContextIdsWithRoute(this.navigationContext, this.urlService.getCurrentRouterUrl(), false);\n this.transitionTo(syncSession);\n });\n });\n } else {\n return new Promise<void>(((resolve, reject) => {\n // console.log(`No navigation in progress, starting synchronisation job`);\n this.runAfterRoutingSessionFinishes(resolve);\n const session = new SynchroniseInteractionContextIdsWithRoute(this.navigationContext, this.urlService.getCurrentRouterUrl(), false);\n this.transitionTo(session);\n }));\n\n }\n }\n\n\n private createRouteParameters(visit: Visit) {\n const def = visit.placeDefinition;\n return visit.hasRouteId() ?\n [def.getFormattedRouteId(visit), def.getFormattedRouteParameters(visit)] :\n [def.getFormattedRouteParameters(visit)];\n }\n\n}\n\nexport namespace PlaceRouter {\n\n export interface Redirections {\n onAuthenticationFailure(activatedRoute?: ActivatedRouteSnapshot, state?: RouterStateSnapshot): Visit;\n }\n\n export class State {\n constructor(private readonly activeVisits: Visit[]) {\n }\n\n isPlaceActive(placeDefinition: PlaceDefinition): boolean {\n return !!this.getVisitFor(placeDefinition);\n }\n\n getVisitFor(placeDefinition: PlaceDefinition): Visit {\n return this.activeVisits.find(v => v.placeDefinition === placeDefinition);\n }\n }\n\n}\n"]}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"PlaceRouter":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@coolon/pectin","name":"GarbageCollector","line":50,"character":33},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":47,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":71,"character":46},{"__symbolic":"reference","module":"@angular/common","name":"Location","line":72,"character":48},{"__symbolic":"reference","module":"../interaction/services/interaction.service","name":"InteractionService","line":73,"character":51},{"__symbolic":"reference","module":"./url-service","name":"UrlService","line":74,"character":43},{"__symbolic":"reference","module":"./place-history","name":"PlaceHistory","line":75,"character":45}]}],"configureAuth":[{"__symbolic":"method"}],"getAuthenticationFailureRedirect":[{"__symbolic":"method"}],"isNavigating":[{"__symbolic":"method"}],"waitUntilIdle":[{"__symbolic":"method"}],"onPopState":[{"__symbolic":"method"}],"onRouterStarted":[{"__symbolic":"method"}],"onUrlChanged":[{"__symbolic":"method"}],"onRouterCancelled":[{"__symbolic":"method"}],"onRouterError":[{"__symbolic":"method"}],"onRouterEnd":[{"__symbolic":"method"}],"navigate":[{"__symbolic":"method"}],"doNavigation":[{"__symbolic":"method"}],"navigateByUrl":[{"__symbolic":"method"}],"pushVisitChangesToRoute":[{"__symbolic":"method"}],"createNavigationSession":[{"__symbolic":"method"}],"transitionTo":[{"__symbolic":"method"}],"routingSessionFinished":[{"__symbolic":"method"}],"runAfterRoutingSessionFinishes":[{"__symbolic":"method"}],"syncInteractionContextIdsWithRouter":[{"__symbolic":"method"}],"createRouteParameters":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"PlaceRouter":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@coolon/pectin","name":"GarbageCollector","line":47,"character":33},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":44,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":68,"character":46},{"__symbolic":"reference","module":"@angular/common","name":"Location","line":69,"character":48},{"__symbolic":"reference","module":"../interaction/services/interaction.service","name":"InteractionService","line":70,"character":51},{"__symbolic":"reference","module":"./url-service","name":"UrlService","line":71,"character":43},{"__symbolic":"reference","module":"./place-history","name":"PlaceHistory","line":72,"character":45}]}],"configureAuth":[{"__symbolic":"method"}],"getAuthenticationFailureRedirect":[{"__symbolic":"method"}],"isNavigating":[{"__symbolic":"method"}],"waitUntilIdle":[{"__symbolic":"method"}],"onPopState":[{"__symbolic":"method"}],"onRouterStarted":[{"__symbolic":"method"}],"onUrlChanged":[{"__symbolic":"method"}],"onRouterCancelled":[{"__symbolic":"method"}],"onRouterError":[{"__symbolic":"method"}],"onRouterEnd":[{"__symbolic":"method"}],"navigate":[{"__symbolic":"method"}],"doNavigation":[{"__symbolic":"method"}],"navigateByUrl":[{"__symbolic":"method"}],"pushVisitChangesToRoute":[{"__symbolic":"method"}],"createNavigationSession":[{"__symbolic":"method"}],"transitionTo":[{"__symbolic":"method"}],"routingSessionFinished":[{"__symbolic":"method"}],"runAfterRoutingSessionFinishes":[{"__symbolic":"method"}],"syncInteractionContextIdsWithRouter":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"Trace","line":350,"character":3}}]}],"createRouteParameters":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}}}}]
@@ -1 +1 @@
1
- {"version":3,"file":"place.module.ngfactory.js","sourceRoot":"","sources":["../../../../../../libs/angular-ui-powerups/src/lib/place/place.module.ngfactory.ts"],"names":[],"mappings":"","sourcesContent":["import * as i0 from '@angular/core';\nimport * as i1 from './place.module';\nimport * as i2 from '@angular/common';\nimport * as i3 from '@angular/cdk/bidi';\nimport * as i4 from '@angular/material/progress-spinner';\nimport * as i5 from '@angular/router';\nimport * as i6 from '@angular/material/tabs';\nimport * as i7 from '@angular/material/core';\nimport * as i8 from '@angular/material/divider';\nimport * as i9 from '@angular/material/list';\nimport * as i10 from '@angular/cdk/scrolling';\nimport * as i11 from '@angular/material/tooltip';\nimport * as i12 from '@angular/material/icon';\nimport * as i13 from '../directives/command.directive';\nimport * as i14 from '../directives/focus-binding.directive';\nimport * as i15 from '../directives/highlight-text-model.directive';\nimport * as i16 from '@angular/flex-layout/flex';\nimport * as i17 from '../components/forms/number-input/number-input.component';\nimport * as i18 from '../components/forms/string-input/string-input.component';\nimport * as i19 from '../components/forms/text-input/text-input.component';\nimport * as i20 from '../components/forms/password-input/password-input.component';\nimport * as i21 from '../components/forms/checkbox-input/checkbox-input.component';\nimport * as i22 from '../components/forms/select-input/select-input.component';\nimport * as i23 from '../components/forms/multiple-select-input/multiple-select-input.component';\nimport * as i24 from '../components/forms/autocomplete-input/autocomplete-input.component';\nimport * as i25 from '../components/scroll-container/scroll-container.component';\nimport * as i26 from '../components/noop/noop.component';\nimport * as i27 from '../components/switch-case/switch-case.component';\nimport * as i28 from '../components/focus-container/focus-container.component';\nimport * as i29 from '../components/vertical-focus-container/vertical-focus-container.component';\nimport * as i30 from '../components/focusable.component';\nimport * as i31 from '../components/cards/card-container/card-container.component';\nimport * as i32 from '../components/tables/table/table.component';\nimport * as i33 from '../components/tables/table/edit-row-controls/edit-row-controls.component';\nimport * as i34 from '../components/tables/table/column-template/column-template.directive';\nimport * as i35 from '../components/icon/icon.component';\nimport * as i36 from '../components/section-header/section-header.component';\nimport * as i37 from '../components/tables/table/table-row-menu/table-row-menu.component';\nimport * as i38 from '../components/commands/group/tool-bar/tool-bar.component';\nimport * as i39 from '../components/commands/command/command.component';\nimport * as i40 from '../components/commands/group/popup-menu/popup-menu.component';\nimport * as i41 from '../components/commands/command-face/command-face.component';\nimport * as i42 from '../components/commands/group/popup-menu/more-menu.component';\nimport * as i43 from '../components/commands/separator.component';\nimport * as i44 from '../components/commands/flex.component';\nimport * as i45 from '../components/tables/tree-table/tree-table-component';\nimport * as i46 from '../components/busy-overlay/busy-overlay.component';\nimport * as i47 from '../components/empty-state/empty-state.component';\nimport * as i48 from '../components/tables/table/paginator/paginator.component';\nimport * as i49 from '../components/cards/card-stack/card-stack.component';\nimport * as i50 from '../components/labelled-value/labelled-value.component';\nimport * as i51 from '../components/loading-container/loading-container.component';\nimport * as i52 from '@angular/cdk/portal';\nimport * as i53 from './components/place-outlet/place-outlet.component';\nimport * as i54 from './components/tabbed-place-navigation/tabbed-place-navigation.component';\nimport * as i55 from './components/list-place-nav/list-place-nav.component';\nimport * as i56 from './components/side-place-navigation/side-place-navigation.component';\nimport * as i57 from './components/abstract-place-navigation.component';\nimport * as i58 from './components/not-authorised-notice/not-authorised-notice.component';\nimport * as i59 from '../directives/highlight.pipe';\nimport * as i60 from '@angular/platform-browser/animations';\nimport * as i61 from '../directives/directives.module';\nimport * as i62 from '../components/components.module';\nexport const PlaceModuleNgFactory:i0.NgModuleFactory<i1.PlaceModule> = (null as any);\nvar _decl0_0:i2.NgClass = (<any>(null as any));\nvar _decl0_1:i2.NgComponentOutlet = (<any>(null as any));\nvar _decl0_2:i2.NgForOf<any,any> = (<any>(null as any));\nvar _decl0_3:i2.NgIf<any> = (<any>(null as any));\nvar _decl0_4:i2.NgTemplateOutlet = (<any>(null as any));\nvar _decl0_5:i2.NgStyle = (<any>(null as any));\nvar _decl0_6:i2.NgSwitch = (<any>(null as any));\nvar _decl0_7:i2.NgSwitchCase = (<any>(null as any));\nvar _decl0_8:i2.NgSwitchDefault = (<any>(null as any));\nvar _decl0_9:i2.NgPlural = (<any>(null as any));\nvar _decl0_10:i2.NgPluralCase = (<any>(null as any));\nvar _decl0_11:i3.Dir = (<any>(null as any));\nvar _decl0_12:i4.MatProgressSpinner = (<any>(null as any));\nvar _decl0_13:i4.MatSpinner = (<any>(null as any));\nvar _decl0_14:i5.RouterOutlet = (<any>(null as any));\nvar _decl0_15:i5.RouterLink = (<any>(null as any));\nvar _decl0_16:i5.RouterLinkWithHref = (<any>(null as any));\nvar _decl0_17:i5.RouterLinkActive = (<any>(null as any));\nvar _decl0_18:i5.ɵangular_packages_router_router_l = (<any>(null as any));\nvar _decl0_19:i6.MatTabGroup = (<any>(null as any));\nvar _decl0_20:i6.MatTabLabel = (<any>(null as any));\nvar _decl0_21:i6.MatTab = (<any>(null as any));\nvar _decl0_22:i6.MatTabNav = (<any>(null as any));\nvar _decl0_23:i6.MatTabLink = (<any>(null as any));\nvar _decl0_24:i6.MatTabContent = (<any>(null as any));\nvar _decl0_25:i7.MatLine = (<any>(null as any));\nvar _decl0_26:i7.MatPseudoCheckbox = (<any>(null as any));\nvar _decl0_27:i8.MatDivider = (<any>(null as any));\nvar _decl0_28:i9.MatList = (<any>(null as any));\nvar _decl0_29:i9.MatNavList = (<any>(null as any));\nvar _decl0_30:i9.MatListItem = (<any>(null as any));\nvar _decl0_31:i9.MatListAvatarCssMatStyler = (<any>(null as any));\nvar _decl0_32:i9.MatListIconCssMatStyler = (<any>(null as any));\nvar _decl0_33:i9.MatListSubheaderCssMatStyler = (<any>(null as any));\nvar _decl0_34:i9.MatSelectionList = (<any>(null as any));\nvar _decl0_35:i9.MatListOption = (<any>(null as any));\nvar _decl0_36:i10.CdkScrollable = (<any>(null as any));\nvar _decl0_37:i11.MatTooltip = (<any>(null as any));\nvar _decl0_38:i11.TooltipComponent = (<any>(null as any));\nvar _decl0_39:i12.MatIcon = (<any>(null as any));\nvar _decl0_40:i13.CommandDirective<any> = (<any>(null as any));\nvar _decl0_41:i14.FocusBindingDirective = (<any>(null as any));\nvar _decl0_42:i15.HighlightTextModelDirective = (<any>(null as any));\nvar _decl0_43:i16.DefaultLayoutDirective = (<any>(null as any));\nvar _decl0_44:i16.DefaultLayoutGapDirective = (<any>(null as any));\nvar _decl0_45:i16.DefaultLayoutAlignDirective = (<any>(null as any));\nvar _decl0_46:i16.DefaultFlexOrderDirective = (<any>(null as any));\nvar _decl0_47:i16.DefaultFlexOffsetDirective = (<any>(null as any));\nvar _decl0_48:i16.FlexFillDirective = (<any>(null as any));\nvar _decl0_49:i16.DefaultFlexAlignDirective = (<any>(null as any));\nvar _decl0_50:i16.DefaultFlexDirective = (<any>(null as any));\nvar _decl0_51:i17.NumberInputComponent = (<any>(null as any));\nvar _decl0_52:i18.StringInputComponent = (<any>(null as any));\nvar _decl0_53:i19.TextInputComponent = (<any>(null as any));\nvar _decl0_54:i20.PasswordInputComponent = (<any>(null as any));\nvar _decl0_55:i21.CheckboxInputComponent = (<any>(null as any));\nvar _decl0_56:i22.SelectInputComponent<any> = (<any>(null as any));\nvar _decl0_57:i23.MultipleSelectInputComponent<any> = (<any>(null as any));\nvar _decl0_58:i24.AutocompleteInputComponent<any> = (<any>(null as any));\nvar _decl0_59:i25.ScrollContainerComponent = (<any>(null as any));\nvar _decl0_60:i26.NoopComponent = (<any>(null as any));\nvar _decl0_61:i27.SwitchCaseComponent<any> = (<any>(null as any));\nvar _decl0_62:i27.SwitchCaseWhenDirective<any> = (<any>(null as any));\nvar _decl0_63:i27.SwitchCaseDefaultDirective<any> = (<any>(null as any));\nvar _decl0_64:i28.FocusContainerComponent = (<any>(null as any));\nvar _decl0_65:i29.VerticalFocusContainerComponent = (<any>(null as any));\nvar _decl0_66:i30.FocusableComponent = (<any>(null as any));\nvar _decl0_67:i31.CardContainerComponent = (<any>(null as any));\nvar _decl0_68:i32.TableComponent<any> = (<any>(null as any));\nvar _decl0_69:i33.EditRowControls<any> = (<any>(null as any));\nvar _decl0_70:i34.ColumnTemplateDirective = (<any>(null as any));\nvar _decl0_71:i35.IconComponent = (<any>(null as any));\nvar _decl0_72:i36.SectionHeaderComponent = (<any>(null as any));\nvar _decl0_73:i37.TableRowMenuComponent<any> = (<any>(null as any));\nvar _decl0_74:i38.ToolBarComponent = (<any>(null as any));\nvar _decl0_75:i39.CommandComponent = (<any>(null as any));\nvar _decl0_76:i40.PopupMenuComponent = (<any>(null as any));\nvar _decl0_77:i41.CommandFaceComponent<any> = (<any>(null as any));\nvar _decl0_78:i42.MoreMenuComponent = (<any>(null as any));\nvar _decl0_79:i43.SeparatorComponent = (<any>(null as any));\nvar _decl0_80:i44.FlexComponent = (<any>(null as any));\nvar _decl0_81:i45.TreeTableComponent<any> = (<any>(null as any));\nvar _decl0_82:i46.BusyOverlayComponent = (<any>(null as any));\nvar _decl0_83:i47.EmptyStateComponent = (<any>(null as any));\nvar _decl0_84:i48.PaginatorComponent = (<any>(null as any));\nvar _decl0_85:i49.CardStackComponent = (<any>(null as any));\nvar _decl0_86:i50.LabelledValueComponent = (<any>(null as any));\nvar _decl0_87:i51.LoadingContainerComponent = (<any>(null as any));\nvar _decl0_88:i52.CdkPortal = (<any>(null as any));\nvar _decl0_89:i52.CdkPortalOutlet = (<any>(null as any));\nvar _decl0_90:i52.TemplatePortalDirective = (<any>(null as any));\nvar _decl0_91:i52.PortalHostDirective = (<any>(null as any));\nvar _decl0_92:i53.PlaceOutletComponent = (<any>(null as any));\nvar _decl0_93:i54.TabbedPlaceNavigationComponent = (<any>(null as any));\nvar _decl0_94:i55.ListPlaceNavComponent = (<any>(null as any));\nvar _decl0_95:i56.SidePlaceNavigationComponent = (<any>(null as any));\nvar _decl0_96:i57.AbstractPlaceNavigationComponent = (<any>(null as any));\nvar _decl0_97:i58.NotAuthorisedNoticeComponent = (<any>(null as any));\nvar _decl0_98:i2.AsyncPipe = (<any>(null as any));\nvar _decl0_99:i2.UpperCasePipe = (<any>(null as any));\nvar _decl0_100:i2.LowerCasePipe = (<any>(null as any));\nvar _decl0_101:i2.JsonPipe = (<any>(null as any));\nvar _decl0_102:i2.SlicePipe = (<any>(null as any));\nvar _decl0_103:i2.DecimalPipe = (<any>(null as any));\nvar _decl0_104:i2.PercentPipe = (<any>(null as any));\nvar _decl0_105:i2.TitleCasePipe = (<any>(null as any));\nvar _decl0_106:i2.CurrencyPipe = (<any>(null as any));\nvar _decl0_107:i2.DatePipe = (<any>(null as any));\nvar _decl0_108:i2.I18nPluralPipe = (<any>(null as any));\nvar _decl0_109:i2.I18nSelectPipe = (<any>(null as any));\nvar _decl0_110:i2.KeyValuePipe = (<any>(null as any));\nvar _decl0_111:i59.HighlightPipe = (<any>(null as any));\nvar _decl0_112:i2.CommonModule = (<any>(null as any));\nvar _decl0_113:i60.BrowserAnimationsModule = (<any>(null as any));\nvar _decl0_114:i4.MatProgressSpinnerModule = (<any>(null as any));\nvar _decl0_115:i5.RouterModule = (<any>(null as any));\nvar _decl0_116:i6.MatTabsModule = (<any>(null as any));\nvar _decl0_117:i9.MatListModule = (<any>(null as any));\nvar _decl0_118:i11.MatTooltipModule = (<any>(null as any));\nvar _decl0_119:i12.MatIconModule = (<any>(null as any));\nvar _decl0_120:i61.DirectivesModule = (<any>(null as any));\nvar _decl0_121:i16.FlexModule = (<any>(null as any));\nvar _decl0_122:i62.ComponentsModule = (<any>(null as any));\nvar _decl0_123:i52.PortalModule = (<any>(null as any));\nvar _decl0_124:i0.TemplateRef<any> = (<any>(null as any));\nvar _decl0_125:i0.ElementRef<any> = (<any>(null as any));\nfunction _View_PlaceOutletComponent_Host_1_0():void {\n var _any:any = (null as any);\n const currVal_0:any = _decl0_92.isAuthorised;\n currVal_0;\n}\nfunction _View_PlaceOutletComponent_1_1():void {\n if (_decl0_92.animationEnabled.value) {\n var _any:any = (null as any);\n const currVal_0:any = {value:_decl0_92.getAnimationOrder(),params:{duration:_decl0_92.animationDuration}};\n currVal_0;\n const pd_1:any = ((<any>_decl0_92.animationStarted()) !== false);\n const pd_2:any = ((<any>_decl0_92.animationDone()) !== false);\n const pd_3:any = ((<any>_decl0_92.onOutletActivated(_decl0_14,_any)) !== false);\n const pd_4:any = ((<any>_decl0_92.onOutletDeactivated()) !== false);\n }\n}\nfunction _View_PlaceOutletComponent_1_2():void {\n if (!_decl0_92.animationEnabled.value) {\n var _any:any = (null as any);\n const pd_0:any = ((<any>_decl0_92.onOutletActivated(_decl0_14,_any)) !== false);\n const pd_1:any = ((<any>_decl0_92.onOutletDeactivated()) !== false);\n }\n}\nfunction _View_PlaceOutletComponent_1_4():void {\n if (!_decl0_92.authorised.value) { var _any:any = (null as any); }\n}\nfunction _View_PlaceOutletComponent_1_3():void {\n if (!_decl0_92.authorised.value) {\n var _any:any = (null as any);\n const currVal_0:any = _decl0_92.notAuthorisedNoticePortal;\n currVal_0;\n }\n}\nfunction _View_PlaceOutletComponent_1_0():void {\n var _any:any = (null as any);\n const currVal_0:any = _decl0_92.animationEnabled.value;\n currVal_0;\n const currVal_1:any = !_decl0_92.animationEnabled.value;\n currVal_1;\n const currVal_2:any = !_decl0_92.authorised.value;\n currVal_2;\n}\nfunction _View_TabbedPlaceNavigationComponent_Host_2_0():void {\n var _any:any = (null as any);\n}\nfunction _View_TabbedPlaceNavigationComponent_2_1():void {\n var _any:any = (null as any);\n const currVal_0:any = _any.active;\n currVal_0;\n const currVal_1:any = (_decl0_23.active? 'page': null);\n currVal_1;\n const currVal_2:any = _decl0_23.disabled;\n currVal_2;\n const currVal_3:any = _decl0_23.tabIndex;\n currVal_3;\n const currVal_4:any = _decl0_23.disabled;\n currVal_4;\n const currVal_5:any = _decl0_23.active;\n currVal_5;\n const currVal_6:any = _decl0_93.getNavigationFace(_any.place).tooltip();\n currVal_6;\n const currVal_7:any = _decl0_93.commandFactory.create(_any.place);\n currVal_7;\n const currVal_8:any = [_decl0_93.getNavigationFace(_any.place)];\n currVal_8;\n const currVal_9:any = _decl0_77.requiresMissingIconInLayout;\n currVal_9;\n const currVal_10:any = _decl0_77.color;\n currVal_10;\n const pd_11:any = ((<any>_decl0_40.notifyClick(_any)) !== false);\n}\nfunction _View_TabbedPlaceNavigationComponent_2_0():void {\n var _any:any = (null as any);\n const currVal_0:any = _decl0_22._showPaginationControls;\n currVal_0;\n const currVal_1:any = (_decl0_22._getLayoutDirection() == 'rtl');\n currVal_1;\n const currVal_2:any = ((_decl0_22.color !== 'warn') && (_decl0_22.color !== 'accent'));\n currVal_2;\n const currVal_3:any = (_decl0_22.color === 'accent');\n currVal_3;\n const currVal_4:any = (_decl0_22.color === 'warn');\n currVal_4;\n const currVal_5:any = _decl0_93.menuItems.value;\n currVal_5;\n const currVal_6:any = _decl0_93.trackByPlaceDef;\n currVal_6;\n}\nfunction _View_ListPlaceNavComponent_Host_3_0():void {\n var _any:any = (null as any);\n}\nfunction _View_ListPlaceNavComponent_3_1():void {\n var _any:any = (null as any);\n const currVal_0:any = _decl0_30.disabled;\n currVal_0;\n const currVal_1:any = (_decl0_30._avatar || _decl0_30._icon);\n currVal_1;\n const currVal_2:any = (_decl0_30._avatar || _decl0_30._icon);\n currVal_2;\n const currVal_3:any = _decl0_94.getNavigationFace(_any.place).tooltip();\n currVal_3;\n const currVal_4:any = _decl0_94.commandFactory.create(_any.place);\n currVal_4;\n const currVal_5:any = _any.active;\n currVal_5;\n const currVal_6:any = [_decl0_94.getNavigationFace(_any.place)];\n currVal_6;\n const currVal_7:any = _decl0_77.requiresMissingIconInLayout;\n currVal_7;\n const currVal_8:any = _decl0_77.color;\n currVal_8;\n const pd_9:any = ((<any>_decl0_40.notifyClick(_any)) !== false);\n}\nfunction _View_ListPlaceNavComponent_3_0():void {\n var _any:any = (null as any);\n const currVal_0:any = '';\n currVal_0;\n const currVal_1:any = _decl0_94.menuItems.value;\n currVal_1;\n const currVal_2:any = _decl0_94.trackByPlaceDef;\n currVal_2;\n}\nfunction _View_SidePlaceNavigationComponent_Host_4_0():void {\n var _any:any = (null as any);\n const currVal_0:any = _decl0_95.expanded;\n currVal_0;\n}\nfunction _View_SidePlaceNavigationComponent_4_2():void {\n if (_decl0_95.getNavigationFace(_any.place).icon()) {\n var _any:any = (null as any);\n const currVal_0:any = _decl0_95.getNavigationFace(_any.place).icon();\n currVal_0;\n }\n}\nfunction _View_SidePlaceNavigationComponent_4_1():void {\n var _any:any = (null as any);\n const currVal_0:any = _decl0_30.disabled;\n currVal_0;\n const currVal_1:any = (_decl0_30._avatar || _decl0_30._icon);\n currVal_1;\n const currVal_2:any = (_decl0_30._avatar || _decl0_30._icon);\n currVal_2;\n const currVal_3:any = _decl0_95.getNavigationFace(_any.place).tooltip();\n currVal_3;\n const currVal_4:any = _decl0_95.commandFactory.create(_any.place);\n currVal_4;\n const currVal_5:any = _any.active;\n currVal_5;\n const currVal_6:any = _decl0_95.getNavigationFace(_any.place).icon();\n currVal_6;\n const currVal_7:any = _decl0_95.getNavigationFace(_any.place).text();\n currVal_7;\n const pd_8:any = ((<any>_decl0_40.notifyClick(_any)) !== false);\n}\nfunction _View_SidePlaceNavigationComponent_4_3():void {\n if (_decl0_95.navEndTemplate) {\n var _any:any = (null as any);\n const currVal_0:any = _decl0_95.navEndTemplate;\n currVal_0;\n }\n}\nfunction _View_SidePlaceNavigationComponent_4_0():void {\n var _any:any = (null as any);\n const currVal_0:any = _decl0_30.disabled;\n currVal_0;\n const currVal_1:any = (_decl0_30._avatar || _decl0_30._icon);\n currVal_1;\n const currVal_2:any = (_decl0_30._avatar || _decl0_30._icon);\n currVal_2;\n const currVal_3:any = 'mat:menu';\n currVal_3;\n const currVal_4:any = 'mat:arrow_back';\n currVal_4;\n const currVal_5:any = _decl0_95.menuItems.value;\n currVal_5;\n const currVal_6:any = _decl0_95.trackByPlaceDef;\n currVal_6;\n const currVal_7:any = 1;\n currVal_7;\n const currVal_8:any = _decl0_95.navEndTemplate;\n currVal_8;\n const pd_9:any = ((<any>_decl0_95.toggleMenu()) !== false);\n}\nfunction _View_AbstractPlaceNavigationComponent_Host_5_0():void {\n var _any:any = (null as any);\n}\nfunction _View_AbstractPlaceNavigationComponent_5_0():void {\n var _any:any = (null as any);\n}\nfunction _View_NotAuthorisedNoticeComponent_Host_6_0():void {\n var _any:any = (null as any);\n}\nfunction _View_NotAuthorisedNoticeComponent_6_0():void {\n var _any:any = (null as any);\n}\n"]}
1
+ {"version":3,"file":"place.module.ngfactory.js","sourceRoot":"","sources":["../../../../../../libs/angular-ui-powerups/src/lib/place/place.module.ngfactory.ts"],"names":[],"mappings":"","sourcesContent":["import * as i0 from '@angular/core';\nimport * as i1 from './place.module';\nimport * as i2 from '@angular/common';\nimport * as i3 from '@angular/cdk/bidi';\nimport * as i4 from '@angular/material/progress-spinner';\nimport * as i5 from '@angular/router';\nimport * as i6 from '@angular/material/tabs';\nimport * as i7 from '@angular/material/core';\nimport * as i8 from '@angular/material/divider';\nimport * as i9 from '@angular/material/list';\nimport * as i10 from '@angular/cdk/scrolling';\nimport * as i11 from '@angular/material/tooltip';\nimport * as i12 from '@angular/material/icon';\nimport * as i13 from '../directives/command.directive';\nimport * as i14 from '../directives/focus-binding.directive';\nimport * as i15 from '../directives/highlight-text-model.directive';\nimport * as i16 from '@angular/flex-layout/flex';\nimport * as i17 from '../components/forms/number-input/number-input.component';\nimport * as i18 from '../components/forms/string-input/string-input.component';\nimport * as i19 from '../components/forms/text-input/text-input.component';\nimport * as i20 from '../components/forms/password-input/password-input.component';\nimport * as i21 from '../components/forms/checkbox-input/checkbox-input.component';\nimport * as i22 from '../components/forms/select-input/select-input.component';\nimport * as i23 from '../components/forms/multiple-select-input/multiple-select-input.component';\nimport * as i24 from '../components/forms/autocomplete-input/autocomplete-input.component';\nimport * as i25 from '../components/scroll-container/scroll-container.component';\nimport * as i26 from '../components/noop/noop.component';\nimport * as i27 from '../components/switch-case/switch-case.component';\nimport * as i28 from '../components/focus-container/focus-container.component';\nimport * as i29 from '../components/vertical-focus-container/vertical-focus-container.component';\nimport * as i30 from '../components/focusable.component';\nimport * as i31 from '../components/card-container/card-container.component';\nimport * as i32 from '../components/tables/table/table.component';\nimport * as i33 from '../components/tables/table/edit-row-controls/edit-row-controls.component';\nimport * as i34 from '../components/tables/table/column-template/column-template.directive';\nimport * as i35 from '../components/icon/icon.component';\nimport * as i36 from '../components/section-header/section-header.component';\nimport * as i37 from '../components/tables/table/table-row-menu/table-row-menu.component';\nimport * as i38 from '../components/commands/group/tool-bar/tool-bar.component';\nimport * as i39 from '../components/commands/command/command.component';\nimport * as i40 from '../components/commands/group/popup-menu/popup-menu.component';\nimport * as i41 from '../components/commands/command-face/command-face.component';\nimport * as i42 from '../components/commands/group/popup-menu/more-menu.component';\nimport * as i43 from '../components/commands/separator.component';\nimport * as i44 from '../components/commands/flex.component';\nimport * as i45 from '../components/tables/tree-table/tree-table-component';\nimport * as i46 from '../components/busy-overlay/busy-overlay.component';\nimport * as i47 from '../components/empty-state/empty-state.component';\nimport * as i48 from '../components/tables/table/paginator/paginator.component';\nimport * as i49 from '@angular/cdk/portal';\nimport * as i50 from './components/place-outlet/place-outlet.component';\nimport * as i51 from './components/tabbed-place-navigation/tabbed-place-navigation.component';\nimport * as i52 from './components/list-place-nav/list-place-nav.component';\nimport * as i53 from './components/side-place-navigation/side-place-navigation.component';\nimport * as i54 from './components/abstract-place-navigation.component';\nimport * as i55 from './components/not-authorised-notice/not-authorised-notice.component';\nimport * as i56 from '../directives/highlight.pipe';\nimport * as i57 from '@angular/platform-browser/animations';\nimport * as i58 from '../directives/directives.module';\nimport * as i59 from '../components/components.module';\nexport const PlaceModuleNgFactory:i0.NgModuleFactory<i1.PlaceModule> = (null as any);\nvar _decl0_0:i2.NgClass = (<any>(null as any));\nvar _decl0_1:i2.NgComponentOutlet = (<any>(null as any));\nvar _decl0_2:i2.NgForOf<any,any> = (<any>(null as any));\nvar _decl0_3:i2.NgIf<any> = (<any>(null as any));\nvar _decl0_4:i2.NgTemplateOutlet = (<any>(null as any));\nvar _decl0_5:i2.NgStyle = (<any>(null as any));\nvar _decl0_6:i2.NgSwitch = (<any>(null as any));\nvar _decl0_7:i2.NgSwitchCase = (<any>(null as any));\nvar _decl0_8:i2.NgSwitchDefault = (<any>(null as any));\nvar _decl0_9:i2.NgPlural = (<any>(null as any));\nvar _decl0_10:i2.NgPluralCase = (<any>(null as any));\nvar _decl0_11:i3.Dir = (<any>(null as any));\nvar _decl0_12:i4.MatProgressSpinner = (<any>(null as any));\nvar _decl0_13:i4.MatSpinner = (<any>(null as any));\nvar _decl0_14:i5.RouterOutlet = (<any>(null as any));\nvar _decl0_15:i5.RouterLink = (<any>(null as any));\nvar _decl0_16:i5.RouterLinkWithHref = (<any>(null as any));\nvar _decl0_17:i5.RouterLinkActive = (<any>(null as any));\nvar _decl0_18:i5.ɵangular_packages_router_router_l = (<any>(null as any));\nvar _decl0_19:i6.MatTabGroup = (<any>(null as any));\nvar _decl0_20:i6.MatTabLabel = (<any>(null as any));\nvar _decl0_21:i6.MatTab = (<any>(null as any));\nvar _decl0_22:i6.MatTabNav = (<any>(null as any));\nvar _decl0_23:i6.MatTabLink = (<any>(null as any));\nvar _decl0_24:i6.MatTabContent = (<any>(null as any));\nvar _decl0_25:i7.MatLine = (<any>(null as any));\nvar _decl0_26:i7.MatPseudoCheckbox = (<any>(null as any));\nvar _decl0_27:i8.MatDivider = (<any>(null as any));\nvar _decl0_28:i9.MatList = (<any>(null as any));\nvar _decl0_29:i9.MatNavList = (<any>(null as any));\nvar _decl0_30:i9.MatListItem = (<any>(null as any));\nvar _decl0_31:i9.MatListAvatarCssMatStyler = (<any>(null as any));\nvar _decl0_32:i9.MatListIconCssMatStyler = (<any>(null as any));\nvar _decl0_33:i9.MatListSubheaderCssMatStyler = (<any>(null as any));\nvar _decl0_34:i9.MatSelectionList = (<any>(null as any));\nvar _decl0_35:i9.MatListOption = (<any>(null as any));\nvar _decl0_36:i10.CdkScrollable = (<any>(null as any));\nvar _decl0_37:i11.MatTooltip = (<any>(null as any));\nvar _decl0_38:i11.TooltipComponent = (<any>(null as any));\nvar _decl0_39:i12.MatIcon = (<any>(null as any));\nvar _decl0_40:i13.CommandDirective<any> = (<any>(null as any));\nvar _decl0_41:i14.FocusBindingDirective = (<any>(null as any));\nvar _decl0_42:i15.HighlightTextModelDirective = (<any>(null as any));\nvar _decl0_43:i16.DefaultLayoutDirective = (<any>(null as any));\nvar _decl0_44:i16.DefaultLayoutGapDirective = (<any>(null as any));\nvar _decl0_45:i16.DefaultLayoutAlignDirective = (<any>(null as any));\nvar _decl0_46:i16.DefaultFlexOrderDirective = (<any>(null as any));\nvar _decl0_47:i16.DefaultFlexOffsetDirective = (<any>(null as any));\nvar _decl0_48:i16.FlexFillDirective = (<any>(null as any));\nvar _decl0_49:i16.DefaultFlexAlignDirective = (<any>(null as any));\nvar _decl0_50:i16.DefaultFlexDirective = (<any>(null as any));\nvar _decl0_51:i17.NumberInputComponent = (<any>(null as any));\nvar _decl0_52:i18.StringInputComponent = (<any>(null as any));\nvar _decl0_53:i19.TextInputComponent = (<any>(null as any));\nvar _decl0_54:i20.PasswordInputComponent = (<any>(null as any));\nvar _decl0_55:i21.CheckboxInputComponent = (<any>(null as any));\nvar _decl0_56:i22.SelectInputComponent<any> = (<any>(null as any));\nvar _decl0_57:i23.MultipleSelectInputComponent<any> = (<any>(null as any));\nvar _decl0_58:i24.AutocompleteInputComponent<any> = (<any>(null as any));\nvar _decl0_59:i25.ScrollContainerComponent = (<any>(null as any));\nvar _decl0_60:i26.NoopComponent = (<any>(null as any));\nvar _decl0_61:i27.SwitchCaseComponent<any> = (<any>(null as any));\nvar _decl0_62:i27.SwitchCaseWhenDirective<any> = (<any>(null as any));\nvar _decl0_63:i27.SwitchCaseDefaultDirective<any> = (<any>(null as any));\nvar _decl0_64:i28.FocusContainerComponent = (<any>(null as any));\nvar _decl0_65:i29.VerticalFocusContainerComponent = (<any>(null as any));\nvar _decl0_66:i30.FocusableComponent = (<any>(null as any));\nvar _decl0_67:i31.CardContainerComponent = (<any>(null as any));\nvar _decl0_68:i32.TableComponent<any> = (<any>(null as any));\nvar _decl0_69:i33.EditRowControls<any> = (<any>(null as any));\nvar _decl0_70:i34.ColumnTemplateDirective = (<any>(null as any));\nvar _decl0_71:i35.IconComponent = (<any>(null as any));\nvar _decl0_72:i36.SectionHeaderComponent = (<any>(null as any));\nvar _decl0_73:i37.TableRowMenuComponent<any> = (<any>(null as any));\nvar _decl0_74:i38.ToolBarComponent = (<any>(null as any));\nvar _decl0_75:i39.CommandComponent = (<any>(null as any));\nvar _decl0_76:i40.PopupMenuComponent = (<any>(null as any));\nvar _decl0_77:i41.CommandFaceComponent<any> = (<any>(null as any));\nvar _decl0_78:i42.MoreMenuComponent = (<any>(null as any));\nvar _decl0_79:i43.SeparatorComponent = (<any>(null as any));\nvar _decl0_80:i44.FlexComponent = (<any>(null as any));\nvar _decl0_81:i45.TreeTableComponent<any> = (<any>(null as any));\nvar _decl0_82:i46.BusyOverlayComponent = (<any>(null as any));\nvar _decl0_83:i47.EmptyStateComponent = (<any>(null as any));\nvar _decl0_84:i48.PaginatorComponent = (<any>(null as any));\nvar _decl0_85:i49.CdkPortal = (<any>(null as any));\nvar _decl0_86:i49.CdkPortalOutlet = (<any>(null as any));\nvar _decl0_87:i49.TemplatePortalDirective = (<any>(null as any));\nvar _decl0_88:i49.PortalHostDirective = (<any>(null as any));\nvar _decl0_89:i50.PlaceOutletComponent = (<any>(null as any));\nvar _decl0_90:i51.TabbedPlaceNavigationComponent = (<any>(null as any));\nvar _decl0_91:i52.ListPlaceNavComponent = (<any>(null as any));\nvar _decl0_92:i53.SidePlaceNavigationComponent = (<any>(null as any));\nvar _decl0_93:i54.AbstractPlaceNavigationComponent = (<any>(null as any));\nvar _decl0_94:i55.NotAuthorisedNoticeComponent = (<any>(null as any));\nvar _decl0_95:i2.AsyncPipe = (<any>(null as any));\nvar _decl0_96:i2.UpperCasePipe = (<any>(null as any));\nvar _decl0_97:i2.LowerCasePipe = (<any>(null as any));\nvar _decl0_98:i2.JsonPipe = (<any>(null as any));\nvar _decl0_99:i2.SlicePipe = (<any>(null as any));\nvar _decl0_100:i2.DecimalPipe = (<any>(null as any));\nvar _decl0_101:i2.PercentPipe = (<any>(null as any));\nvar _decl0_102:i2.TitleCasePipe = (<any>(null as any));\nvar _decl0_103:i2.CurrencyPipe = (<any>(null as any));\nvar _decl0_104:i2.DatePipe = (<any>(null as any));\nvar _decl0_105:i2.I18nPluralPipe = (<any>(null as any));\nvar _decl0_106:i2.I18nSelectPipe = (<any>(null as any));\nvar _decl0_107:i2.KeyValuePipe = (<any>(null as any));\nvar _decl0_108:i56.HighlightPipe = (<any>(null as any));\nvar _decl0_109:i2.CommonModule = (<any>(null as any));\nvar _decl0_110:i57.BrowserAnimationsModule = (<any>(null as any));\nvar _decl0_111:i4.MatProgressSpinnerModule = (<any>(null as any));\nvar _decl0_112:i5.RouterModule = (<any>(null as any));\nvar _decl0_113:i6.MatTabsModule = (<any>(null as any));\nvar _decl0_114:i9.MatListModule = (<any>(null as any));\nvar _decl0_115:i11.MatTooltipModule = (<any>(null as any));\nvar _decl0_116:i12.MatIconModule = (<any>(null as any));\nvar _decl0_117:i58.DirectivesModule = (<any>(null as any));\nvar _decl0_118:i16.FlexModule = (<any>(null as any));\nvar _decl0_119:i59.ComponentsModule = (<any>(null as any));\nvar _decl0_120:i49.PortalModule = (<any>(null as any));\nvar _decl0_121:i0.TemplateRef<any> = (<any>(null as any));\nvar _decl0_122:i0.ElementRef<any> = (<any>(null as any));\nfunction _View_PlaceOutletComponent_Host_1_0():void {\n var _any:any = (null as any);\n const currVal_0:any = _decl0_89.isAuthorised;\n currVal_0;\n}\nfunction _View_PlaceOutletComponent_1_1():void {\n if (_decl0_89.animationEnabled.value) {\n var _any:any = (null as any);\n const currVal_0:any = {value:_decl0_89.getAnimationOrder(),params:{duration:_decl0_89.animationDuration}};\n currVal_0;\n const pd_1:any = ((<any>_decl0_89.animationStarted()) !== false);\n const pd_2:any = ((<any>_decl0_89.animationDone()) !== false);\n const pd_3:any = ((<any>_decl0_89.onOutletActivated(_decl0_14,_any)) !== false);\n const pd_4:any = ((<any>_decl0_89.onOutletDeactivated()) !== false);\n }\n}\nfunction _View_PlaceOutletComponent_1_2():void {\n if (!_decl0_89.animationEnabled.value) {\n var _any:any = (null as any);\n const pd_0:any = ((<any>_decl0_89.onOutletActivated(_decl0_14,_any)) !== false);\n const pd_1:any = ((<any>_decl0_89.onOutletDeactivated()) !== false);\n }\n}\nfunction _View_PlaceOutletComponent_1_4():void {\n if (!_decl0_89.authorised.value) { var _any:any = (null as any); }\n}\nfunction _View_PlaceOutletComponent_1_3():void {\n if (!_decl0_89.authorised.value) {\n var _any:any = (null as any);\n const currVal_0:any = _decl0_89.notAuthorisedNoticePortal;\n currVal_0;\n }\n}\nfunction _View_PlaceOutletComponent_1_0():void {\n var _any:any = (null as any);\n const currVal_0:any = _decl0_89.animationEnabled.value;\n currVal_0;\n const currVal_1:any = !_decl0_89.animationEnabled.value;\n currVal_1;\n const currVal_2:any = !_decl0_89.authorised.value;\n currVal_2;\n}\nfunction _View_TabbedPlaceNavigationComponent_Host_2_0():void {\n var _any:any = (null as any);\n}\nfunction _View_TabbedPlaceNavigationComponent_2_1():void {\n var _any:any = (null as any);\n const currVal_0:any = _any.active;\n currVal_0;\n const currVal_1:any = (_decl0_23.active? 'page': null);\n currVal_1;\n const currVal_2:any = _decl0_23.disabled;\n currVal_2;\n const currVal_3:any = _decl0_23.tabIndex;\n currVal_3;\n const currVal_4:any = _decl0_23.disabled;\n currVal_4;\n const currVal_5:any = _decl0_23.active;\n currVal_5;\n const currVal_6:any = _decl0_90.getNavigationFace(_any.place).tooltip();\n currVal_6;\n const currVal_7:any = _decl0_90.commandFactory.create(_any.place);\n currVal_7;\n const currVal_8:any = [_decl0_90.getNavigationFace(_any.place)];\n currVal_8;\n const currVal_9:any = _decl0_77.requiresMissingIconInLayout;\n currVal_9;\n const currVal_10:any = _decl0_77.color;\n currVal_10;\n const pd_11:any = ((<any>_decl0_40.notifyClick(_any)) !== false);\n}\nfunction _View_TabbedPlaceNavigationComponent_2_0():void {\n var _any:any = (null as any);\n const currVal_0:any = _decl0_22._showPaginationControls;\n currVal_0;\n const currVal_1:any = (_decl0_22._getLayoutDirection() == 'rtl');\n currVal_1;\n const currVal_2:any = ((_decl0_22.color !== 'warn') && (_decl0_22.color !== 'accent'));\n currVal_2;\n const currVal_3:any = (_decl0_22.color === 'accent');\n currVal_3;\n const currVal_4:any = (_decl0_22.color === 'warn');\n currVal_4;\n const currVal_5:any = _decl0_90.menuItems.value;\n currVal_5;\n const currVal_6:any = _decl0_90.trackByPlaceDef;\n currVal_6;\n}\nfunction _View_ListPlaceNavComponent_Host_3_0():void {\n var _any:any = (null as any);\n}\nfunction _View_ListPlaceNavComponent_3_1():void {\n var _any:any = (null as any);\n const currVal_0:any = _decl0_30.disabled;\n currVal_0;\n const currVal_1:any = (_decl0_30._avatar || _decl0_30._icon);\n currVal_1;\n const currVal_2:any = (_decl0_30._avatar || _decl0_30._icon);\n currVal_2;\n const currVal_3:any = _decl0_91.getNavigationFace(_any.place).tooltip();\n currVal_3;\n const currVal_4:any = _decl0_91.commandFactory.create(_any.place);\n currVal_4;\n const currVal_5:any = _any.active;\n currVal_5;\n const currVal_6:any = [_decl0_91.getNavigationFace(_any.place)];\n currVal_6;\n const currVal_7:any = _decl0_77.requiresMissingIconInLayout;\n currVal_7;\n const currVal_8:any = _decl0_77.color;\n currVal_8;\n const pd_9:any = ((<any>_decl0_40.notifyClick(_any)) !== false);\n}\nfunction _View_ListPlaceNavComponent_3_0():void {\n var _any:any = (null as any);\n const currVal_0:any = '';\n currVal_0;\n const currVal_1:any = _decl0_91.menuItems.value;\n currVal_1;\n const currVal_2:any = _decl0_91.trackByPlaceDef;\n currVal_2;\n}\nfunction _View_SidePlaceNavigationComponent_Host_4_0():void {\n var _any:any = (null as any);\n const currVal_0:any = _decl0_92.expanded;\n currVal_0;\n}\nfunction _View_SidePlaceNavigationComponent_4_2():void {\n if (_decl0_92.getNavigationFace(_any.place).icon()) {\n var _any:any = (null as any);\n const currVal_0:any = _decl0_92.getNavigationFace(_any.place).icon();\n currVal_0;\n }\n}\nfunction _View_SidePlaceNavigationComponent_4_1():void {\n var _any:any = (null as any);\n const currVal_0:any = _decl0_30.disabled;\n currVal_0;\n const currVal_1:any = (_decl0_30._avatar || _decl0_30._icon);\n currVal_1;\n const currVal_2:any = (_decl0_30._avatar || _decl0_30._icon);\n currVal_2;\n const currVal_3:any = _decl0_92.getNavigationFace(_any.place).tooltip();\n currVal_3;\n const currVal_4:any = _decl0_92.commandFactory.create(_any.place);\n currVal_4;\n const currVal_5:any = _any.active;\n currVal_5;\n const currVal_6:any = _decl0_92.getNavigationFace(_any.place).icon();\n currVal_6;\n const currVal_7:any = _decl0_92.getNavigationFace(_any.place).text();\n currVal_7;\n const pd_8:any = ((<any>_decl0_40.notifyClick(_any)) !== false);\n}\nfunction _View_SidePlaceNavigationComponent_4_3():void {\n if (_decl0_92.navEndTemplate) {\n var _any:any = (null as any);\n const currVal_0:any = _decl0_92.navEndTemplate;\n currVal_0;\n }\n}\nfunction _View_SidePlaceNavigationComponent_4_0():void {\n var _any:any = (null as any);\n const currVal_0:any = _decl0_30.disabled;\n currVal_0;\n const currVal_1:any = (_decl0_30._avatar || _decl0_30._icon);\n currVal_1;\n const currVal_2:any = (_decl0_30._avatar || _decl0_30._icon);\n currVal_2;\n const currVal_3:any = 'mat:menu';\n currVal_3;\n const currVal_4:any = 'mat:arrow_back';\n currVal_4;\n const currVal_5:any = _decl0_92.menuItems.value;\n currVal_5;\n const currVal_6:any = _decl0_92.trackByPlaceDef;\n currVal_6;\n const currVal_7:any = 1;\n currVal_7;\n const currVal_8:any = _decl0_92.navEndTemplate;\n currVal_8;\n const pd_9:any = ((<any>_decl0_92.toggleMenu()) !== false);\n}\nfunction _View_AbstractPlaceNavigationComponent_Host_5_0():void {\n var _any:any = (null as any);\n}\nfunction _View_AbstractPlaceNavigationComponent_5_0():void {\n var _any:any = (null as any);\n}\nfunction _View_NotAuthorisedNoticeComponent_Host_6_0():void {\n var _any:any = (null as any);\n}\nfunction _View_NotAuthorisedNoticeComponent_6_0():void {\n var _any:any = (null as any);\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { UrlSegment } from '@angular/router';
3
+ import { Trace } from '@coolon/pectin';
3
4
  import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
4
5
  import _ from 'lodash';
5
6
  import { ConsolidatedParameterMap } from './guards/consolidated-param-map';
@@ -14,7 +15,6 @@ export class UrlSnapshot {
14
15
  this.url = url;
15
16
  this.urlTree = urlSerializer.parse(url);
16
17
  }
17
- // @Trace()
18
18
  updateVisitSegments(visit) {
19
19
  const newUrlTree = this.urlSerializer.parse(this.url);
20
20
  // Ugly, but it works for now.
@@ -91,6 +91,12 @@ export class UrlSnapshot {
91
91
  return `UrlSnapshot(${this.url})`;
92
92
  }
93
93
  }
94
+ __decorate([
95
+ Trace(),
96
+ __metadata("design:type", Function),
97
+ __metadata("design:paramtypes", [Visit]),
98
+ __metadata("design:returntype", UrlSnapshot)
99
+ ], UrlSnapshot.prototype, "updateVisitSegments", null);
94
100
  __decorate([
95
101
  Memoize(),
96
102
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"url-snapshot.js","sourceRoot":"","sources":["../../../../../../libs/angular-ui-powerups/src/lib/place/url-snapshot.ts"],"names":[],"mappings":"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","sourcesContent":["import { UrlSegment, UrlSerializer, UrlTree } from '@angular/router';\nimport { Trace } from '@coolon/pectin';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport _ from 'lodash';\nimport { ConsolidatedParameterMap } from './guards/consolidated-param-map';\nimport { PlaceDefinition } from './place-definition';\nimport { Visit } from './visit';\n\nfunction extractPrimarySegments(urlTree: UrlTree): UrlSegment[] {\n return urlTree.root.children.primary.segments;\n}\n\nexport class UrlSnapshot {\n\n readonly urlTree: UrlTree;\n\n // TODO: Update this accept a url Parser so it can be immutable and generate new trees on mutation using toString() are parseUrl.\n constructor(readonly urlSerializer: UrlSerializer, readonly url: string) {\n this.urlTree = urlSerializer.parse(url);\n }\n\n // @Trace()\n public updateVisitSegments(visit: Visit): UrlSnapshot {\n const newUrlTree = this.urlSerializer.parse(this.url);\n // Ugly, but it works for now.\n const segments = [...extractPrimarySegments(newUrlTree)];\n const visitSegments = this.getSegmentsFor(visit);\n const replaceAt = segments.findIndex(segment => segment.path === visitSegments[0].path);\n // do not use the return value, it's the items that were removed!\n segments.splice(replaceAt, visitSegments.length, ...visitSegments);\n newUrlTree.root.children.primary.segments = segments;\n return new UrlSnapshot(this.urlSerializer, newUrlTree.toString());\n }\n\n @Memoize()\n private getPrimarySegments(): UrlSegment[] {\n return extractPrimarySegments(this.urlTree);\n }\n\n /**\n * Converts the visit into segments. Please not that these segments are not e\n * @param visit\n */\n protected getSegmentsFor(visit: Visit): UrlSegment[] {\n return visit.placeDefinition.hasRouteId() ?\n [\n // NOTE:\n // It's important to attach the params to the root path and not the id. If we attach them\n // to an empty id then the angular router won't match the pattern.\n new UrlSegment(visit.placeDefinition.path, visit.placeDefinition.getFormattedRouteParameters(visit)),\n new UrlSegment(visit.placeDefinition.getFormattedRouteId(visit), {})]\n :\n [\n new UrlSegment(visit.placeDefinition.path, visit.placeDefinition.getFormattedRouteParameters(visit))\n ];\n }\n\n includesPathOf(placeDef: PlaceDefinition) {\n return this.getPrimarySegments().find(s => s.path === placeDef.path);\n }\n\n createVisitFor(placeDef: PlaceDefinition) {\n return new Visit(placeDef, new ConsolidatedParameterMap(this.getPrimarySegments()));\n }\n\n getInteractionIds() {\n const queryParam = this.urlTree.queryParams[UrlSnapshot.INTERACTION_QUERY_PARAM];\n if (queryParam) {\n return UrlSnapshot.parseInteractionIds(queryParam);\n } else {\n return [];\n }\n }\n\n hasInteractions() {\n return this.getInteractionIds().length > 0;\n }\n\n hasInteractionIds(ids: string[]): boolean {\n return _.isEqual(this.getInteractionIds(), ids);\n }\n\n // @Trace()\n updateInteractionIds(ids: string[]): UrlSnapshot {\n if (ids.length === 0) {\n return this.removeInteractionIds();\n } else {\n const urlTree = this.urlSerializer.parse(this.url);\n urlTree.queryParams[UrlSnapshot.INTERACTION_QUERY_PARAM] = UrlSnapshot.createPathIdFor(ids);\n return new UrlSnapshot(this.urlSerializer, urlTree.toString());\n }\n }\n\n // @Trace()\n removeInteractionIds(): UrlSnapshot {\n const urlTree = this.urlSerializer.parse(this.url);\n if (urlTree.queryParams && urlTree.queryParams[UrlSnapshot.INTERACTION_QUERY_PARAM]) {\n urlTree.queryParams = {};//[UrlSnapshot.INTERACTION_ROUTER_OUTLET]\n }\n return new UrlSnapshot(this.urlSerializer, urlTree.toString());\n }\n\n toString(): string {\n return `UrlSnapshot(${this.url})`;\n }\n\n // withOptions(options: NavigationExtras) {\n // return new UrlSnapshot(this.urlSerializer, this.url, options);\n // }\n //\n // @Trace()\n // getNavigationExtras(): NavigationExtras {\n // return this.options;\n // }\n\n}\n\nexport namespace UrlSnapshot {\n\n export const INTERACTION_QUERY_PARAM = 'aup-interactions';\n export const INTERACTION_ID_SEPARATOR = '--';\n\n export function parseInteractionIds(path: string) {\n return path.split(INTERACTION_ID_SEPARATOR);\n }\n\n export function createPathIdFor(interactionIds: string[]) {\n return interactionIds.join(INTERACTION_ID_SEPARATOR);\n }\n\n export interface NavigationOptions {\n replaceUrl?: boolean;\n }\n}\n"]}
1
+ {"version":3,"file":"url-snapshot.js","sourceRoot":"","sources":["../../../../../../libs/angular-ui-powerups/src/lib/place/url-snapshot.ts"],"names":[],"mappings":"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","sourcesContent":["import { UrlSegment, UrlSerializer, UrlTree } from '@angular/router';\nimport { Trace } from '@coolon/pectin';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport _ from 'lodash';\nimport { ConsolidatedParameterMap } from './guards/consolidated-param-map';\nimport { PlaceDefinition } from './place-definition';\nimport { Visit } from './visit';\n\nfunction extractPrimarySegments(urlTree: UrlTree): UrlSegment[] {\n return urlTree.root.children.primary.segments;\n}\n\nexport class UrlSnapshot {\n\n readonly urlTree: UrlTree;\n\n // TODO: Update this accept a url Parser so it can be immutable and generate new trees on mutation using toString() are parseUrl.\n constructor(readonly urlSerializer: UrlSerializer, readonly url: string) {\n this.urlTree = urlSerializer.parse(url);\n }\n\n @Trace()\n public updateVisitSegments(visit: Visit): UrlSnapshot {\n const newUrlTree = this.urlSerializer.parse(this.url);\n // Ugly, but it works for now.\n const segments = [...extractPrimarySegments(newUrlTree)];\n const visitSegments = this.getSegmentsFor(visit);\n const replaceAt = segments.findIndex(segment => segment.path === visitSegments[0].path);\n // do not use the return value, it's the items that were removed!\n segments.splice(replaceAt, visitSegments.length, ...visitSegments);\n newUrlTree.root.children.primary.segments = segments;\n return new UrlSnapshot(this.urlSerializer, newUrlTree.toString());\n }\n\n @Memoize()\n private getPrimarySegments(): UrlSegment[] {\n return extractPrimarySegments(this.urlTree);\n }\n\n /**\n * Converts the visit into segments. Please not that these segments are not e\n * @param visit\n */\n protected getSegmentsFor(visit: Visit): UrlSegment[] {\n return visit.placeDefinition.hasRouteId() ?\n [\n // NOTE:\n // It's important to attach the params to the root path and not the id. If we attach them\n // to an empty id then the angular router won't match the pattern.\n new UrlSegment(visit.placeDefinition.path, visit.placeDefinition.getFormattedRouteParameters(visit)),\n new UrlSegment(visit.placeDefinition.getFormattedRouteId(visit), {})]\n :\n [\n new UrlSegment(visit.placeDefinition.path, visit.placeDefinition.getFormattedRouteParameters(visit))\n ];\n }\n\n includesPathOf(placeDef: PlaceDefinition) {\n return this.getPrimarySegments().find(s => s.path === placeDef.path);\n }\n\n createVisitFor(placeDef: PlaceDefinition) {\n return new Visit(placeDef, new ConsolidatedParameterMap(this.getPrimarySegments()));\n }\n\n getInteractionIds() {\n const queryParam = this.urlTree.queryParams[UrlSnapshot.INTERACTION_QUERY_PARAM];\n if (queryParam) {\n return UrlSnapshot.parseInteractionIds(queryParam);\n } else {\n return [];\n }\n }\n\n hasInteractions() {\n return this.getInteractionIds().length > 0;\n }\n\n hasInteractionIds(ids: string[]): boolean {\n return _.isEqual(this.getInteractionIds(), ids);\n }\n\n // @Trace()\n updateInteractionIds(ids: string[]): UrlSnapshot {\n if (ids.length === 0) {\n return this.removeInteractionIds();\n } else {\n const urlTree = this.urlSerializer.parse(this.url);\n urlTree.queryParams[UrlSnapshot.INTERACTION_QUERY_PARAM] = UrlSnapshot.createPathIdFor(ids);\n return new UrlSnapshot(this.urlSerializer, urlTree.toString());\n }\n }\n\n // @Trace()\n removeInteractionIds(): UrlSnapshot {\n const urlTree = this.urlSerializer.parse(this.url);\n if (urlTree.queryParams && urlTree.queryParams[UrlSnapshot.INTERACTION_QUERY_PARAM]) {\n urlTree.queryParams = {};//[UrlSnapshot.INTERACTION_ROUTER_OUTLET]\n }\n return new UrlSnapshot(this.urlSerializer, urlTree.toString());\n }\n\n toString(): string {\n return `UrlSnapshot(${this.url})`;\n }\n\n // withOptions(options: NavigationExtras) {\n // return new UrlSnapshot(this.urlSerializer, this.url, options);\n // }\n //\n // @Trace()\n // getNavigationExtras(): NavigationExtras {\n // return this.options;\n // }\n\n}\n\nexport namespace UrlSnapshot {\n\n export const INTERACTION_QUERY_PARAM = 'aup-interactions';\n export const INTERACTION_ID_SEPARATOR = '--';\n\n export function parseInteractionIds(path: string) {\n return path.split(INTERACTION_ID_SEPARATOR);\n }\n\n export function createPathIdFor(interactionIds: string[]) {\n return interactionIds.join(INTERACTION_ID_SEPARATOR);\n }\n\n export interface NavigationOptions {\n replaceUrl?: boolean;\n }\n}\n"]}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"UrlSnapshot":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"UrlSerializer","line":17,"character":38},{"__symbolic":"reference","name":"string"}]}],"updateVisitSegments":[{"__symbolic":"method"}],"getPrimarySegments":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@typescript-plus/fast-memoize-decorator/dist/src","name":"Memoize","line":34,"character":3}}]}],"getSegmentsFor":[{"__symbolic":"method"}],"includesPathOf":[{"__symbolic":"method"}],"createVisitFor":[{"__symbolic":"method"}],"getInteractionIds":[{"__symbolic":"method"}],"hasInteractions":[{"__symbolic":"method"}],"hasInteractionIds":[{"__symbolic":"method"}],"updateInteractionIds":[{"__symbolic":"method"}],"removeInteractionIds":[{"__symbolic":"method"}],"toString":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"UrlSnapshot":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"UrlSerializer","line":17,"character":38},{"__symbolic":"reference","name":"string"}]}],"updateVisitSegments":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"Trace","line":21,"character":3}}]}],"getPrimarySegments":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@typescript-plus/fast-memoize-decorator/dist/src","name":"Memoize","line":34,"character":3}}]}],"getSegmentsFor":[{"__symbolic":"method"}],"includesPathOf":[{"__symbolic":"method"}],"createVisitFor":[{"__symbolic":"method"}],"getInteractionIds":[{"__symbolic":"method"}],"hasInteractions":[{"__symbolic":"method"}],"hasInteractionIds":[{"__symbolic":"method"}],"updateInteractionIds":[{"__symbolic":"method"}],"removeInteractionIds":[{"__symbolic":"method"}],"toString":[{"__symbolic":"method"}]}}}}]
@@ -49,13 +49,9 @@ export class Visit {
49
49
  });
50
50
  return new Visit(this.placeDefinition, params);
51
51
  }
52
- // @Trace()
53
52
  hasRoutingChangedFrom(other) {
54
53
  const samePlace = other.placeDefinition === this.placeDefinition;
55
- const currentParams = this.placeDefinition.getFormattedRouteParameters(this, true);
56
- const otherParams = this.placeDefinition.getFormattedRouteParameters(other, true);
57
- // console.log({currentParams, otherParams});
58
- const sameRouteParameters = _.isEqual(currentParams, otherParams);
54
+ const sameRouteParameters = _.isEqual(this.placeDefinition.getFormattedRouteParameters(this, true), this.placeDefinition.getFormattedRouteParameters(other, true));
59
55
  return !samePlace || !sameRouteParameters;
60
56
  }
61
57
  hasChangedFrom(other) {
@@ -1 +1 @@
1
- {"version":3,"file":"visit.js","sourceRoot":"","sources":["../../../../../../libs/angular-ui-powerups/src/lib/place/visit.ts"],"names":[],"mappings":"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","sourcesContent":["import { Trace } from '@coolon/pectin';\nimport * as _ from 'lodash';\nimport { PlaceDefinition } from './place-definition';\nimport { ParameterDefinition } from './route/parameter-definition';\n\ninterface Params {\n [p: string]: any;\n}\n\n\nexport class Visit {\n\n constructor(readonly placeDefinition: PlaceDefinition, private readonly visitParameters: Params = {}) {\n }\n\n // @Trace()\n getRouteId(): any {\n return this.placeDefinition.getRouteIdFrom(this);\n }\n\n // @Trace()\n hasRouteId(): boolean {\n return !_.isNil(this.getRouteId());\n }\n\n /**\n * Returns the value of the place parameter with the specified name. The parameter\n * name is taken from the `as` option, e.g. {as: 'aCustomName'} otherwise it is the\n * same as the the ValueModel property name.\n * @param parameterDef the visit parameter definition\n */\n getParameterValue<T, S>(parameterDef: ParameterDefinition<T, S>): T {\n return this.visitParameters[parameterDef.name];\n }\n\n // @Trace()\n hasParameter(parameterDef: ParameterDefinition<any>): boolean {\n return Object.keys(this.visitParameters).includes(parameterDef.name);\n }\n\n replace<T>(parameter: ParameterDefinition<T, any>, value: T): Visit {\n return new Visit(this.placeDefinition, { ...this.visitParameters, [parameter.name]: value });\n }\n\n mergeRouteParameters<S>(routeParams: { [p: string]: any }): Visit {\n // todo: whitelist parameters.\n const routeParameterKeys = Object.keys(routeParams);\n const params = {};\n this.placeDefinition.getVisitParameterDefs().forEach(def => {\n if (def.isRouteId || def.isRouteParameter) {\n if (routeParameterKeys.includes(def.name)) {\n params[def.name] = routeParams[def.name];\n }\n } else {\n // copy non route params as is, but only if they already exist otherwise we'll inject nil values and break the\n // defaults and remember sanitisation process.\n const value = this.getParameterValue(def);\n if (this.hasParameter(def)) {\n params[def.name] = value;\n }\n }\n });\n return new Visit(this.placeDefinition, params);\n }\n\n // @Trace()\n hasRoutingChangedFrom(other: Visit): boolean {\n const samePlace = other.placeDefinition === this.placeDefinition;\n const currentParams = this.placeDefinition.getFormattedRouteParameters(this, true);\n const otherParams = this.placeDefinition.getFormattedRouteParameters(other, true);\n // console.log({currentParams, otherParams});\n const sameRouteParameters = _.isEqual(currentParams, otherParams);\n return !samePlace || !sameRouteParameters;\n }\n\n hasChangedFrom(other: Visit) {\n const sameNonRouteParameters = _.isEqual(\n this.placeDefinition.getNonRouteParameters(this),\n this.placeDefinition.getNonRouteParameters(other)\n );\n return !sameNonRouteParameters || this.hasRoutingChangedFrom(other);\n }\n\n toDebugString() {\n return Object.keys(this.visitParameters).map(k => `${k}=${this.visitParameters[k]}`).join(',');\n }\n\n}\n"]}
1
+ {"version":3,"file":"visit.js","sourceRoot":"","sources":["../../../../../../libs/angular-ui-powerups/src/lib/place/visit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAS5B,MAAM,OAAO,KAAK;IAEhB,YAAqB,eAAgC,EAAmB,kBAA0B,EAAE;QAA/E,oBAAe,GAAf,eAAe,CAAiB;QAAmB,oBAAe,GAAf,eAAe,CAAa;IACpG,CAAC;IAED,WAAW;IACX,UAAU;QACR,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,WAAW;IACX,UAAU;QACR,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAO,YAAuC;QAC7D,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,WAAW;IACX,YAAY,CAAC,YAAsC;QACjD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,CAAI,SAAsC,EAAE,KAAQ;QACzD,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,eAAe,kCAAO,IAAI,CAAC,eAAe,KAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,IAAG,CAAC;IAC/F,CAAC;IAED,oBAAoB,CAAI,WAAiC;QACvD,8BAA8B;QAC9B,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACzD,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,gBAAgB,EAAE;gBACzC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBACzC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;iBAC1C;aACF;iBAAM;gBACL,8GAA8G;gBAC9G,8CAA8C;gBAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;gBAC1C,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;oBAC1B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;iBAC1B;aACF;QACH,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,qBAAqB,CAAC,KAAY;QAChC,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,KAAK,IAAI,CAAC,eAAe,CAAC;QACjE,MAAM,mBAAmB,GAAG,CAAC,CAAC,OAAO,CACnC,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,EAC5D,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAAC,KAAK,EAAE,IAAI,CAAC,CAC9D,CAAC;QACF,OAAO,CAAC,SAAS,IAAI,CAAC,mBAAmB,CAAC;IAC5C,CAAC;IAED,cAAc,CAAC,KAAY;QACzB,MAAM,sBAAsB,GAAG,CAAC,CAAC,OAAO,CACtC,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAChD,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAClD,CAAC;QACF,OAAO,CAAC,sBAAsB,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACtE,CAAC;IAED,aAAa;QACX,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjG,CAAC;CAEF","sourcesContent":["import * as _ from 'lodash';\nimport { PlaceDefinition } from './place-definition';\nimport { ParameterDefinition } from './route/parameter-definition';\n\ninterface Params {\n [p: string]: any\n}\n\n\nexport class Visit {\n\n constructor(readonly placeDefinition: PlaceDefinition, private readonly visitParameters: Params = {}) {\n }\n\n // @Trace()\n getRouteId(): any {\n return this.placeDefinition.getRouteIdFrom(this);\n }\n\n // @Trace()\n hasRouteId(): boolean {\n return !_.isNil(this.getRouteId());\n }\n\n /**\n * Returns the value of the place parameter with the specified name. The parameter\n * name is taken from the `as` option, e.g. {as: 'aCustomName'} otherwise it is the\n * same as the the ValueModel property name.\n * @param parameterDef the visit parameter definition\n */\n getParameterValue<T, S>(parameterDef: ParameterDefinition<T, S>): T {\n return this.visitParameters[parameterDef.name];\n }\n\n // @Trace()\n hasParameter(parameterDef: ParameterDefinition<any>): boolean {\n return Object.keys(this.visitParameters).includes(parameterDef.name);\n }\n\n replace<T>(parameter: ParameterDefinition<T, any>, value: T): Visit {\n return new Visit(this.placeDefinition, { ...this.visitParameters, [parameter.name]: value });\n }\n\n mergeRouteParameters<S>(routeParams: { [p: string]: any }): Visit {\n // todo: whitelist parameters.\n const routeParameterKeys = Object.keys(routeParams);\n const params = {};\n this.placeDefinition.getVisitParameterDefs().forEach(def => {\n if (def.isRouteId || def.isRouteParameter) {\n if (routeParameterKeys.includes(def.name)) {\n params[def.name] = routeParams[def.name];\n }\n } else {\n // copy non route params as is, but only if they already exist otherwise we'll inject nil values and break the\n // defaults and remember sanitisation process.\n const value = this.getParameterValue(def);\n if (this.hasParameter(def)) {\n params[def.name] = value;\n }\n }\n });\n return new Visit(this.placeDefinition, params);\n }\n\n hasRoutingChangedFrom(other: Visit): boolean {\n const samePlace = other.placeDefinition === this.placeDefinition;\n const sameRouteParameters = _.isEqual(\n this.placeDefinition.getFormattedRouteParameters(this, true),\n this.placeDefinition.getFormattedRouteParameters(other, true)\n );\n return !samePlace || !sameRouteParameters;\n }\n\n hasChangedFrom(other: Visit) {\n const sameNonRouteParameters = _.isEqual(\n this.placeDefinition.getNonRouteParameters(this),\n this.placeDefinition.getNonRouteParameters(other)\n );\n return !sameNonRouteParameters || this.hasRoutingChangedFrom(other);\n }\n\n toDebugString() {\n return Object.keys(this.visitParameters).map(k => `${k}=${this.visitParameters[k]}`).join(',');\n }\n\n}\n"]}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"Visit":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./place-definition","name":"PlaceDefinition","line":12,"character":40},{"__symbolic":"reference","name":"any"}]}],"getRouteId":[{"__symbolic":"method"}],"hasRouteId":[{"__symbolic":"method"}],"getParameterValue":[{"__symbolic":"method"}],"hasParameter":[{"__symbolic":"method"}],"replace":[{"__symbolic":"method"}],"mergeRouteParameters":[{"__symbolic":"method"}],"hasRoutingChangedFrom":[{"__symbolic":"method"}],"hasChangedFrom":[{"__symbolic":"method"}],"toDebugString":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"Visit":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"./place-definition","name":"PlaceDefinition","line":11,"character":40},{"__symbolic":"reference","name":"any"}]}],"getRouteId":[{"__symbolic":"method"}],"hasRouteId":[{"__symbolic":"method"}],"getParameterValue":[{"__symbolic":"method"}],"hasParameter":[{"__symbolic":"method"}],"replace":[{"__symbolic":"method"}],"mergeRouteParameters":[{"__symbolic":"method"}],"hasRoutingChangedFrom":[{"__symbolic":"method"}],"hasChangedFrom":[{"__symbolic":"method"}],"toDebugString":[{"__symbolic":"method"}]}}}}]