@coolon/angular-ui-powerups 12.0.0-alpha.2 → 12.0.0

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 (97) hide show
  1. package/bundles/coolon-angular-ui-powerups.umd.js +429 -292
  2. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  3. package/coolon-angular-ui-powerups.metadata.json +1 -1
  4. package/esm2015/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  5. package/esm2015/lib/components/alignment.js +7 -0
  6. package/esm2015/lib/components/alignment.js.map +1 -0
  7. package/esm2015/lib/components/alignment.metadata.json +1 -0
  8. package/esm2015/lib/components/commands/command/command.component.js +7 -4
  9. package/esm2015/lib/components/commands/command/command.component.js.map +1 -1
  10. package/esm2015/lib/components/commands/command/command.component.metadata.json +1 -1
  11. package/esm2015/lib/components/commands/command-face/command-face.component.js +1 -1
  12. package/esm2015/lib/components/commands/command-face/command-face.component.metadata.json +1 -1
  13. package/esm2015/lib/components/commands/group/popup-menu/abstract-popup-menu.component.js.map +1 -1
  14. package/esm2015/lib/components/commands/group/popup-menu/abstract-popup-menu.component.metadata.json +1 -1
  15. package/esm2015/lib/components/commands/group/popup-menu/more-menu.component.js +1 -1
  16. package/esm2015/lib/components/commands/group/popup-menu/more-menu.component.js.map +1 -1
  17. package/esm2015/lib/components/commands/group/popup-menu/more-menu.component.metadata.json +1 -1
  18. package/esm2015/lib/components/commands/group/popup-menu/popup-menu.component.js +1 -1
  19. package/esm2015/lib/components/commands/group/popup-menu/popup-menu.component.js.map +1 -1
  20. package/esm2015/lib/components/commands/group/popup-menu/popup-menu.component.metadata.json +1 -1
  21. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  22. package/esm2015/lib/components/exports.js +1 -0
  23. package/esm2015/lib/components/exports.js.map +1 -1
  24. package/esm2015/lib/components/exports.metadata.json +1 -1
  25. package/esm2015/lib/components/table/abstract-table-model.js +15 -10
  26. package/esm2015/lib/components/table/abstract-table-model.js.map +1 -1
  27. package/esm2015/lib/components/table/abstract-table-model.metadata.json +1 -1
  28. package/esm2015/lib/components/table/column-model.js +19 -31
  29. package/esm2015/lib/components/table/column-model.js.map +1 -1
  30. package/esm2015/lib/components/table/column-model.metadata.json +1 -1
  31. package/esm2015/lib/components/table/table-model.js +2 -2
  32. package/esm2015/lib/components/table/table-model.js.map +1 -1
  33. package/esm2015/lib/components/tree-table/tree-label-column-model.js +3 -3
  34. package/esm2015/lib/components/tree-table/tree-label-column-model.js.map +1 -1
  35. package/esm2015/lib/components/tree-table/tree-label-column-model.metadata.json +1 -1
  36. package/esm2015/lib/components/tree-table/tree-table-model.js +3 -0
  37. package/esm2015/lib/components/tree-table/tree-table-model.js.map +1 -1
  38. package/esm2015/lib/components/tree-table/tree-table-model.metadata.json +1 -1
  39. package/esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.js +74 -0
  40. package/esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.js.map +1 -0
  41. package/esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.metadata.json +1 -0
  42. package/esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.ngfactory.js.map +1 -0
  43. package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.js +20 -0
  44. package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.js.map +1 -0
  45. package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.metadata.json +1 -0
  46. package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.ngfactory.js.map +1 -0
  47. package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.scss.shim.ngstyle.js.map +1 -0
  48. package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.js +20 -0
  49. package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.js.map +1 -0
  50. package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.metadata.json +1 -0
  51. package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.ngfactory.js.map +1 -0
  52. package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.scss.shim.ngstyle.js.map +1 -0
  53. package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.js +24 -0
  54. package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.js.map +1 -0
  55. package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.metadata.json +1 -0
  56. package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.ngfactory.js.map +1 -0
  57. package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.scss.shim.ngstyle.js.map +1 -0
  58. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js +0 -1
  59. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js.map +1 -1
  60. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.metadata.json +1 -1
  61. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js +11 -1
  62. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js.map +1 -1
  63. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.metadata.json +1 -1
  64. package/esm2015/lib/interaction/exports.js +4 -0
  65. package/esm2015/lib/interaction/exports.js.map +1 -1
  66. package/esm2015/lib/interaction/exports.metadata.json +1 -1
  67. package/esm2015/lib/interaction/interaction.module.js +13 -2
  68. package/esm2015/lib/interaction/interaction.module.js.map +1 -1
  69. package/esm2015/lib/interaction/interaction.module.metadata.json +1 -1
  70. package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  71. package/esm2015/lib/place/navigation/session/event-cleanup/wait-until-link-triggered-navigation-interaction-cancelation-type-determined.js +3 -15
  72. package/esm2015/lib/place/navigation/session/event-cleanup/wait-until-link-triggered-navigation-interaction-cancelation-type-determined.js.map +1 -1
  73. package/esm2015/lib/place/navigation/session/event-cleanup/wait-until-link-triggered-navigation-interaction-cancelation-type-determined.metadata.json +1 -1
  74. package/esm2015/lib/place/place-component.js +5 -17
  75. package/esm2015/lib/place/place-component.js.map +1 -1
  76. package/esm2015/lib/place/place-component.metadata.json +1 -1
  77. package/esm2015/lib/place/route/parameter-definition.js +2 -11
  78. package/esm2015/lib/place/route/parameter-definition.js.map +1 -1
  79. package/esm2015/lib/place/route/parameter-definition.metadata.json +1 -1
  80. package/fesm2015/coolon-angular-ui-powerups.js +404 -287
  81. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  82. package/lib/components/alignment.d.ts +7 -0
  83. package/lib/components/commands/command/command.component.d.ts +2 -0
  84. package/lib/components/exports.d.ts +1 -0
  85. package/lib/components/table/abstract-table-model.d.ts +4 -4
  86. package/lib/components/table/column-model.d.ts +7 -10
  87. package/lib/components/table/table-model.d.ts +2 -2
  88. package/lib/components/tree-table/tree-label-column-model.d.ts +1 -1
  89. package/lib/components/tree-table/tree-table-model.d.ts +3 -1
  90. package/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.d.ts +23 -0
  91. package/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.d.ts +6 -0
  92. package/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.d.ts +7 -0
  93. package/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.d.ts +8 -0
  94. package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +0 -1
  95. package/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.d.ts +10 -0
  96. package/lib/interaction/exports.d.ts +4 -0
  97. package/package.json +1 -1
@@ -1047,7 +1047,7 @@
1047
1047
  selector: 'aup-command-face',
1048
1048
  template: "<div class=\"face-container\" *ngFor=\"let face of faceAdapters.value\">\n <aup-icon *ngIf=\"hasIconStart(face)\" [icon]=\"face.icon\"></aup-icon>\n <span *ngIf=\"face.text\">{{face.text}}</span>\n <aup-icon *ngIf=\"hasIconEnd(face)\" [icon]=\"face.icon\"></aup-icon>\n</div>\n",
1049
1049
  encapsulation: i0.ViewEncapsulation.None,
1050
- styles: ["aup-command-face{--icon-gap:var(--aup-command-face-icon-gap);display:inline-grid}aup-command-face>.face-container{grid-column:1;grid-row:1;display:inline-flex;flex-direction:row;align-items:center}aup-command-face>.face-container:not(:first-child){visibility:hidden}aup-command-face>.face-container *+*{margin-left:var(--icon-gap)}aup-command-face.hide-icon aup-icon{visibility:hidden}aup-command-face.centered{justify-items:center}"]
1050
+ styles: ["aup-command-face{--icon-gap:var(--aup-command-face-icon-gap);display:inline-grid}aup-command-face>.face-container{grid-column:1;grid-row:1;display:inline-flex;flex-direction:row;align-items:center}aup-command-face>.face-container:not(:first-child){visibility:hidden}aup-command-face>.face-container *+*{margin-left:var(--icon-gap)}aup-command-face.hide-icon aup-icon{visibility:hidden}aup-command-face.centered{justify-items:center}aup-command-face.start{justify-items:self-start}aup-command-face.end{justify-items:self-end}"]
1051
1051
  },] }
1052
1052
  ];
1053
1053
  CommandFaceComponent.ctorParameters = function () { return []; };
@@ -1064,6 +1064,12 @@
1064
1064
  __metadata("design:type", Array)
1065
1065
  ], CommandFaceComponent.prototype, "_rawFaces", void 0);
1066
1066
 
1067
+ var HorizontalAlignment = typescriptStringEnums.Enum({
1068
+ START: 'start',
1069
+ CENTER: 'center',
1070
+ END: 'end'
1071
+ });
1072
+
1067
1073
  var PopupAwareComponent = /** @class */ (function (_super) {
1068
1074
  __extends(PopupAwareComponent, _super);
1069
1075
  function PopupAwareComponent(element, parent) {
@@ -1106,6 +1112,7 @@
1106
1112
  function CommandComponent(element, parent) {
1107
1113
  var _this = _super.call(this, element, parent) || this;
1108
1114
  _this.CommandFace = exports.CommandFace;
1115
+ _this.alignFace = HorizontalAlignment.CENTER;
1109
1116
  var _a = pectin.Dsl.disposeWith(_this), chain = _a.chain, switchOn = _a.switchOn;
1110
1117
  _this.faces = chain(_this.command.busy).mapToList(function (busy) {
1111
1118
  return busy ?
@@ -1138,8 +1145,8 @@
1138
1145
  CommandComponent.decorators = [
1139
1146
  { type: i0.Component, args: [{
1140
1147
  selector: 'aup-command',
1141
- template: "<ng-container *ngIf=\"iconOnly.value\">\n <button mat-icon-button [pectinCommand]=\"command\" [color]=\"colorModel.value\" [class.busy]=\"command.busy.value\" [matTooltip]=\"tooltipModel.value\">\n <aup-command-face class=\"centered\" [faces]=\"faces.value\"></aup-command-face>\n </button>\n</ng-container>\n<ng-container *ngIf=\"!iconOnly.value\">\n <ng-container [ngSwitch]=\"buttonStyle.value\">\n <ng-container *ngSwitchCase=\"CommandFace.Style.STROKED\">\n <button mat-stroked-button [pectinCommand]=\"command\" [color]=\"colorModel.value\" [class.busy]=\"command.busy.value\" [matTooltip]=\"tooltipModel.value\">\n <aup-command-face class=\"centered\" [faces]=\"faces.value\"></aup-command-face>\n </button>\n </ng-container>\n <ng-container *ngSwitchCase=\"CommandFace.Style.RAISED\">\n <button mat-raised-button [pectinCommand]=\"command\" [color]=\"colorModel.value\" [class.busy]=\"command.busy.value\" [matTooltip]=\"tooltipModel.value\">\n <aup-command-face class=\"centered\" [faces]=\"faces.value\"></aup-command-face>\n </button>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button mat-button [pectinCommand]=\"command\" [color]=\"colorModel.value\" [class.busy]=\"command.busy.value\" [matTooltip]=\"tooltipModel.value\">\n <aup-command-face class=\"centered\" [faces]=\"faces.value\"></aup-command-face>\n </button>\n </ng-container>\n </ng-container>\n</ng-container>\n",
1142
- styles: [":host{display:inline-flex;flex-direction:row;justify-content:stretch}button{flex:1}"]
1148
+ template: "<ng-container *ngIf=\"iconOnly.value\">\n <button mat-icon-button [pectinCommand]=\"command\" [color]=\"colorModel.value\" [class.busy]=\"command.busy.value\"\n [matTooltip]=\"tooltipModel.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces.value\"></aup-command-face>\n </button>\n</ng-container>\n<ng-container *ngIf=\"!iconOnly.value\">\n <ng-container [ngSwitch]=\"buttonStyle.value\">\n <ng-container *ngSwitchCase=\"CommandFace.Style.STROKED\">\n <button mat-stroked-button [pectinCommand]=\"command\" [color]=\"colorModel.value\" [class.busy]=\"command.busy.value\"\n [matTooltip]=\"tooltipModel.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces.value\"></aup-command-face>\n </button>\n </ng-container>\n <ng-container *ngSwitchCase=\"CommandFace.Style.RAISED\">\n <button mat-raised-button [pectinCommand]=\"command\" [color]=\"colorModel.value\" [class.busy]=\"command.busy.value\"\n [matTooltip]=\"tooltipModel.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces.value\"></aup-command-face>\n </button>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button mat-button [pectinCommand]=\"command\" [color]=\"colorModel.value\" [class.busy]=\"command.busy.value\"\n [matTooltip]=\"tooltipModel.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces.value\"></aup-command-face>\n </button>\n </ng-container>\n </ng-container>\n</ng-container>\n",
1149
+ styles: [":host{display:inline-flex;flex-direction:row;justify-content:stretch}:host.centered button{text-align:center}:host.start button{text-align:start}:host.end button{text-align:end}button{flex:1}"]
1143
1150
  },] }
1144
1151
  ];
1145
1152
  CommandComponent.ctorParameters = function () { return [
@@ -1151,7 +1158,8 @@
1151
1158
  faceModel: [{ type: i0.Input }],
1152
1159
  face: [{ type: i0.Input }],
1153
1160
  busyFaceModel: [{ type: i0.Input }],
1154
- busyFace: [{ type: i0.Input }]
1161
+ busyFace: [{ type: i0.Input }],
1162
+ alignFace: [{ type: i0.Input }, { type: i0.HostBinding, args: ["class",] }]
1155
1163
  };
1156
1164
  __decorate([
1157
1165
  pectin.TrackExternal(),
@@ -1306,7 +1314,7 @@
1306
1314
  MoreMenuComponent.decorators = [
1307
1315
  { type: i0.Component, args: [{
1308
1316
  selector: 'aup-more-menu',
1309
- template: "<div class=\"content\" style=\"display: none\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"isRoot()\">\n <ng-container *ngIf=\"faceAdapter.text\" [ngSwitch]=\"faceAdapter.style\">\n <ng-container *ngSwitchCase=\"'stroked'\">\n <button matMenuTrigger\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n [disabled]=\"!enabled\"\n mat-stroked-button>\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu\n [parent]=\"this\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'raised'\">\n <button matMenuTrigger\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n [disabled]=\"!enabled\"\n mat-raised-button>\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu\n [parent]=\"this\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <button matMenuTrigger\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n [disabled]=\"!enabled\"\n mat-button>\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu [parent]=\"this\" (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n </ng-container>\n\n <ng-container *ngIf=\"!faceAdapter.text\">\n <button matMenuTrigger\n mat-icon-button\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n [disabled]=\"!enabled\"\n >\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu\n [parent]=\"this\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n</ng-container>\n",
1317
+ template: "<div class=\"content\" style=\"display: none\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"isRoot()\">\n <ng-container *ngIf=\"faceAdapter.text\" [ngSwitch]=\"faceAdapter.style\">\n <ng-container *ngSwitchCase=\"'stroked'\">\n <button matMenuTrigger\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n (click) = \"$event.stopPropagation()\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n [disabled]=\"!enabled\"\n mat-stroked-button>\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu\n [parent]=\"this\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'raised'\">\n <button matMenuTrigger\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n (click) = \"$event.stopPropagation()\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n [disabled]=\"!enabled\"\n mat-raised-button>\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu\n [parent]=\"this\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <button matMenuTrigger\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n (click) = \"$event.stopPropagation()\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n [disabled]=\"!enabled\"\n mat-button>\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu [parent]=\"this\" (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n </ng-container>\n\n <ng-container *ngIf=\"!faceAdapter.text\">\n <button matMenuTrigger\n mat-icon-button\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n (click) = \"$event.stopPropagation()\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n [disabled]=\"!enabled\"\n >\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu\n [parent]=\"this\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n</ng-container>\n",
1310
1318
  providers: [
1311
1319
  { provide: POPUP_CONTAINER, useExisting: MoreMenuComponent }
1312
1320
  ]
@@ -1545,7 +1553,7 @@
1545
1553
  PopupMenuComponent.decorators = [
1546
1554
  { type: i0.Component, args: [{
1547
1555
  selector: 'aup-popup-menu',
1548
- template: "<div class=\"content\" style=\"display: none\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"isRoot()\">\n <ng-container *ngIf=\"faceAdapter.text\" [ngSwitch]=\"faceAdapter.style\">\n <ng-container *ngSwitchCase=\"'stroked'\">\n <button matMenuTrigger\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n [disabled]=\"!enabled\"\n mat-stroked-button>\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu\n [parent]=\"this\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'raised'\">\n <button matMenuTrigger\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n [disabled]=\"!enabled\"\n mat-raised-button>\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu\n [parent]=\"this\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <button matMenuTrigger\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n [disabled]=\"!enabled\"\n mat-button>\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu [parent]=\"this\" (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n </ng-container>\n\n <ng-container *ngIf=\"!faceAdapter.text\">\n <button matMenuTrigger\n mat-icon-button\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n [disabled]=\"!enabled\"\n >\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu\n [parent]=\"this\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n</ng-container>\n",
1556
+ template: "<div class=\"content\" style=\"display: none\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"isRoot()\">\n <ng-container *ngIf=\"faceAdapter.text\" [ngSwitch]=\"faceAdapter.style\">\n <ng-container *ngSwitchCase=\"'stroked'\">\n <button matMenuTrigger\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n (click) = \"$event.stopPropagation()\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n [disabled]=\"!enabled\"\n mat-stroked-button>\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu\n [parent]=\"this\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'raised'\">\n <button matMenuTrigger\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n (click) = \"$event.stopPropagation()\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n [disabled]=\"!enabled\"\n mat-raised-button>\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu\n [parent]=\"this\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <button matMenuTrigger\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n (click) = \"$event.stopPropagation()\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n [disabled]=\"!enabled\"\n mat-button>\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu [parent]=\"this\" (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n </ng-container>\n\n <ng-container *ngIf=\"!faceAdapter.text\">\n <button matMenuTrigger\n mat-icon-button\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n (click) = \"$event.stopPropagation()\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n [disabled]=\"!enabled\"\n >\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu\n [parent]=\"this\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n</ng-container>\n",
1549
1557
  providers: [
1550
1558
  { provide: POPUP_CONTAINER, useExisting: PopupMenuComponent }
1551
1559
  ]
@@ -2832,9 +2840,10 @@
2832
2840
  function ColumnModel(columnId, textPropertiesProvider) {
2833
2841
  this.columnId = columnId;
2834
2842
  this.textPropertiesProvider = textPropertiesProvider;
2835
- this._selectRowOnClick = undefined;
2843
+ this._enableRowSelection = true;
2836
2844
  this._flex = false;
2837
- this._visibleModel = new pectin.DelegatingValueModel().withDefault(true);
2845
+ this._defaultVisibility = new pectin.DelegatingValueModel().withDefault(true);
2846
+ this._visible = new pectin.DelegatingValueModel().withDefault(this._defaultVisibility);
2838
2847
  this.installHeaderRenderer();
2839
2848
  this.dasherisedColumnId = typescriptUtilities.Stringy.from(columnId).dasherize().toString();
2840
2849
  }
@@ -2852,15 +2861,18 @@
2852
2861
  };
2853
2862
  Object.defineProperty(ColumnModel.prototype, "visible", {
2854
2863
  get: function () {
2855
- return this._visibleModel.readonly;
2864
+ return this._visible.readonly;
2856
2865
  },
2857
2866
  enumerable: false,
2858
2867
  configurable: true
2859
2868
  });
2860
2869
  ColumnModel.prototype.visibleWhile = function (visible) {
2861
- this._visibleModel.setDelegate(visible);
2870
+ this._visible.setDelegate(visible);
2862
2871
  return this;
2863
2872
  };
2873
+ ColumnModel.prototype.setDefaultVisibility = function (visible) {
2874
+ this._defaultVisibility.setDelegate(visible);
2875
+ };
2864
2876
  ColumnModel.prototype.getDefaultHeaderText = function () {
2865
2877
  return this.columnId;
2866
2878
  };
@@ -2923,18 +2935,12 @@
2923
2935
  ColumnModel.prototype.updatePortalContent = function (host) {
2924
2936
  this._cellRendererPortalRef.pushState(host);
2925
2937
  };
2926
- ColumnModel.prototype.selectRowOnClick = function (selectOnRowClick) {
2927
- this._selectRowOnClick = selectOnRowClick;
2938
+ ColumnModel.prototype._selectRowOnClick = function (selectRowOnClick) {
2939
+ this._enableRowSelection = selectRowOnClick;
2928
2940
  return this;
2929
2941
  };
2930
2942
  ColumnModel.prototype.isRowSelectionEnabled = function () {
2931
- return this._selectRowOnClick;
2932
- };
2933
- ColumnModel.prototype.isRowSelectionExplicitlyEnabled = function () {
2934
- return this._selectRowOnClick === true;
2935
- };
2936
- ColumnModel.prototype.isRowSelectionExplicitlyDisabled = function () {
2937
- return this._selectRowOnClick === false;
2943
+ return this._enableRowSelection;
2938
2944
  };
2939
2945
  return ColumnModel;
2940
2946
  }());
@@ -3038,7 +3044,7 @@
3038
3044
  return this;
3039
3045
  };
3040
3046
  PropertyColumnModel.prototype.selectRowOnClick = function (selectOnRowClick) {
3041
- return _super.prototype.selectRowOnClick.call(this, selectOnRowClick);
3047
+ return this._selectRowOnClick(selectOnRowClick);
3042
3048
  };
3043
3049
  return PropertyColumnModel;
3044
3050
  }(ColumnModel));
@@ -3079,8 +3085,8 @@
3079
3085
  this._format = formatter;
3080
3086
  return this;
3081
3087
  };
3082
- ListPropertyColumnModel.prototype.selectRowOnClick = function (selectOnRowClick) {
3083
- return _super.prototype.selectRowOnClick.call(this, selectOnRowClick);
3088
+ ListPropertyColumnModel.prototype.selectRowOnClick = function (selectRowOnClick) {
3089
+ return this._selectRowOnClick(selectRowOnClick);
3084
3090
  };
3085
3091
  return ListPropertyColumnModel;
3086
3092
  }(ColumnModel));
@@ -3113,7 +3119,7 @@
3113
3119
  return this;
3114
3120
  };
3115
3121
  CustomValueColumnModel.prototype.selectRowOnClick = function (selectOnRowClick) {
3116
- return _super.prototype.selectRowOnClick.call(this, selectOnRowClick);
3122
+ return this._selectRowOnClick(selectOnRowClick);
3117
3123
  };
3118
3124
  return CustomValueColumnModel;
3119
3125
  }(ColumnModel));
@@ -3149,7 +3155,7 @@
3149
3155
  this.config.registerPortal(templateRef, viewContainer, fillCell, padChild);
3150
3156
  };
3151
3157
  CustomTemplateColumnModel.prototype.selectRowOnClick = function (selectOnRowClick) {
3152
- return _super.prototype.selectRowOnClick.call(this, selectOnRowClick);
3158
+ return this._selectRowOnClick(selectOnRowClick);
3153
3159
  };
3154
3160
  return CustomTemplateColumnModel;
3155
3161
  }(ColumnModel));
@@ -3159,8 +3165,7 @@
3159
3165
  var _this = _super.call(this, columnId, defaults) || this;
3160
3166
  _this._enableHeaderControls = true;
3161
3167
  _this.selectionModel = pectin.DelegatingSelectionModel.createDelegate();
3162
- _this.hasSelectionModel = new pectin.MutableValueModel(false);
3163
- _this.selectOnRowClick(false);
3168
+ _this._selectRowOnClick(false);
3164
3169
  _this.cellHeaderRenderer(SelectHeaderCellRendererComponent, function (component) {
3165
3170
  component.selectionModel = _this.selectionModel;
3166
3171
  component.enableHeaderControls = _this._enableHeaderControls;
@@ -3170,24 +3175,15 @@
3170
3175
  component.selectionModel = _this.selectionModel;
3171
3176
  }));
3172
3177
  _this.setSelectionModel(selectionModel);
3173
- _this.visibleWhile(_this.hasSelectionModel);
3174
3178
  return _this;
3175
3179
  }
3176
3180
  SelectionColumnModel.prototype.setSelectionModel = function (selectionModel) {
3177
3181
  this.selectionModel.setDelegate(selectionModel);
3178
- this.hasSelectionModel.value = !!selectionModel;
3182
+ this.setDefaultVisibility(selectionModel instanceof pectin.MultipleSelectionModel ? pectin.ValueModel.TRUE : pectin.ValueModel.FALSE);
3179
3183
  };
3180
3184
  SelectionColumnModel.prototype.getDefaultHeaderText = function () {
3181
3185
  return '';
3182
3186
  };
3183
- SelectionColumnModel.prototype.isRowSelectionEnabledByDefault = function () {
3184
- return this.isRowSelectionExplicitlyEnabled();
3185
- };
3186
- SelectionColumnModel.prototype.selectOnRowClick = function (selectOnRowClick) {
3187
- // note we're using different method name as the selection column treats this
3188
- // state as the default for all columns.
3189
- return _super.prototype.selectRowOnClick.call(this, selectOnRowClick);
3190
- };
3191
3187
  SelectionColumnModel.prototype.enableHeaderControls = function (enable) {
3192
3188
  this._enableHeaderControls = enable;
3193
3189
  return this;
@@ -3277,9 +3273,9 @@
3277
3273
  _this.editing = chain(_this._editorSessions).count().isGreaterThan(0);
3278
3274
  _this.dataSource = chain(_this.sourceOfTruth).replaceAll(_this.rowsBeingEdited);
3279
3275
  _this.firstEditableColumn = chain(_this.columns).select(function (c) { return c.hasEditorPortal(); }).first();
3280
- _this.hasColumnsWithRowSelectionExplicitlyEnabled = chain(_this._columns).findIndex(function (column) { return column.isRowSelectionExplicitlyEnabled(); }).isGreaterThanOrEqualTo(0);
3281
3276
  _this.firstVisibleColumn = chain(_this._visibleColumnTracker).first();
3282
3277
  _this.lastVisibleColumn = chain(_this._visibleColumnTracker).last();
3278
+ _this.rowSelectionDisabledOnAllColumns = chain(_this._visibleColumnTracker).select(function (column) { return column.isRowSelectionEnabled(); }).count().equals(0);
3283
3279
  return _this;
3284
3280
  }
3285
3281
  Object.defineProperty(AbstractTableModel.prototype, "rowsBeingEdited", {
@@ -3313,13 +3309,17 @@
3313
3309
  var columnId = (options === null || options === void 0 ? void 0 : options.columnId) || property.toString();
3314
3310
  return this.addColumn(new ListPropertyColumnModel(columnId, property, function () { return _this.getColumnTextProperties(columnId); }));
3315
3311
  };
3316
- AbstractTableModel.prototype._addSelectionColumn = function (selectionModel) {
3312
+ AbstractTableModel.prototype._addSelectionColumn = function (selectionModel, visible) {
3317
3313
  var _this = this;
3318
3314
  pectin.assert.isNil(this.selectionColumnModel);
3319
3315
  var columnId = 'selection-column';
3320
3316
  this.selectionColumnModel = new SelectionColumnModel(columnId, function () { return _this.getColumnTextProperties(columnId); }, selectionModel);
3321
3317
  this.addRowClass('aup-row-selected', function (row) { return _this.selectionColumnModel.isSelected(row); });
3322
- return this.addColumn(this.selectionColumnModel);
3318
+ var selectionColumnModel = this.addColumn(this.selectionColumnModel);
3319
+ if (!___namespace.isNil(visible)) {
3320
+ selectionColumnModel.visibleWhile(visible instanceof pectin.ValueModel ? visible : pectin.ValueModel.constant(visible));
3321
+ }
3322
+ return selectionColumnModel;
3323
3323
  };
3324
3324
  AbstractTableModel.prototype.addEditControls = function (saveCommand) {
3325
3325
  var _this = this;
@@ -3406,14 +3406,14 @@
3406
3406
  });
3407
3407
  };
3408
3408
  AbstractTableModel.prototype.isRowSelectionEnabledFor = function (column) {
3409
- var _a;
3410
- return this.selectionColumnModel && ((_a = column.isRowSelectionEnabled()) !== null && _a !== void 0 ? _a : this.isRowSelectionEnabledByDefault());
3411
- };
3412
- AbstractTableModel.prototype.isRowSelectionEnabledByDefault = function () {
3413
- return this.selectionColumnModel && this.selectionColumnModel.isRowSelectionEnabledByDefault();
3409
+ return this.isRowSelectionEnabled() && column.isRowSelectionEnabled();
3414
3410
  };
3415
3411
  AbstractTableModel.prototype.isRowSelectionEnabled = function () {
3416
- return this.hasColumnsWithRowSelectionExplicitlyEnabled.value || this.isRowSelectionEnabledByDefault();
3412
+ return this.hasSelectionModel() && !this.rowSelectionDisabledOnAllColumns.value;
3413
+ };
3414
+ AbstractTableModel.prototype.hasSelectionModel = function () {
3415
+ var _a;
3416
+ return !!((_a = this.selectionColumnModel) === null || _a === void 0 ? void 0 : _a.selectionModel.getDelegate());
3417
3417
  };
3418
3418
  AbstractTableModel.prototype.isHoverEnabled = function () {
3419
3419
  return this.isRowSelectionEnabled() || this.rowClickListeners.listenerCount > 0;
@@ -4009,7 +4009,7 @@
4009
4009
  function TreeLabelColumnModel(columnId, textPropertiesProvider, expansionModel) {
4010
4010
  var _this = _super.call(this, columnId, textPropertiesProvider) || this;
4011
4011
  _this.expansionModel = expansionModel;
4012
- _this.iconFactory = function (node, expanded) { return expanded ? 'mat:folder_open' : 'mat:folder'; };
4012
+ _this.iconFactory = function (node, expanded) { return expanded ? 'mat:expand_more' : 'mat:chevron_right'; };
4013
4013
  _this.cellRenderer(TreeLabelCellRendererComponent);
4014
4014
  return _this;
4015
4015
  }
@@ -4031,8 +4031,8 @@
4031
4031
  }));
4032
4032
  return this;
4033
4033
  };
4034
- TreeLabelColumnModel.prototype.selectRowOnClick = function (selectOnRowClick) {
4035
- return _super.prototype.selectRowOnClick.call(this, selectOnRowClick);
4034
+ TreeLabelColumnModel.prototype._selectRowOnClick = function (selectOnRowClick) {
4035
+ return _super.prototype._selectRowOnClick.call(this, selectOnRowClick);
4036
4036
  };
4037
4037
  return TreeLabelColumnModel;
4038
4038
  }(ColumnModel));
@@ -4345,6 +4345,9 @@
4345
4345
  TreeTableModel.prototype.ensureAncestorsAndSelfVisible = function (node) {
4346
4346
  this.treeExpansionModel.ensureAncestorsAndSelfVisible(node);
4347
4347
  };
4348
+ TreeTableModel.prototype.addSelectionColumn = function (selectionModel, showSelectionColumn) {
4349
+ return this._addSelectionColumn(selectionModel, showSelectionColumn);
4350
+ };
4348
4351
  return TreeTableModel;
4349
4352
  }(AbstractTableModel));
4350
4353
  var FlattenStrategy = /** @class */ (function (_super) {
@@ -5503,6 +5506,81 @@
5503
5506
  color: [{ type: i0.Input }, { type: i0.HostBinding, args: ['attr.color',] }]
5504
5507
  };
5505
5508
 
5509
+ var AbstractActivityTriggerComponent = /** @class */ (function (_super) {
5510
+ __extends(AbstractActivityTriggerComponent, _super);
5511
+ function AbstractActivityTriggerComponent() {
5512
+ var _this = _super.call(this) || this;
5513
+ _this.alignFace = HorizontalAlignment.CENTER;
5514
+ _this.confirmEvent = new i0.EventEmitter();
5515
+ _this.cancelEvent = new i0.EventEmitter();
5516
+ _this.startActivityCommand = pectin.Command.create(function () {
5517
+ pectin.assert.notNil(_this.activityClass);
5518
+ pectin.assert.notNil(_this.interactionContext);
5519
+ _this.interactionContext.startActivity(_this.activityClass, _this.activityData)
5520
+ .then(function (result) {
5521
+ _this.confirmEvent.emit(result);
5522
+ }).catch(function (error) {
5523
+ _this.cancelEvent.emit(error);
5524
+ });
5525
+ });
5526
+ return _this;
5527
+ }
5528
+ AbstractActivityTriggerComponent.prototype.ngOnInit = function () {
5529
+ };
5530
+ Object.defineProperty(AbstractActivityTriggerComponent.prototype, "isActive", {
5531
+ get: function () {
5532
+ var _a;
5533
+ return (_a = this.interactionContext) === null || _a === void 0 ? void 0 : _a.isActive();
5534
+ },
5535
+ enumerable: false,
5536
+ configurable: true
5537
+ });
5538
+ return AbstractActivityTriggerComponent;
5539
+ }(DisposableComponent));
5540
+ AbstractActivityTriggerComponent.decorators = [
5541
+ { type: i0.Component, args: [{
5542
+ selector: 'aup-abstract-activity-trigger',
5543
+ template: ''
5544
+ },] }
5545
+ ];
5546
+ AbstractActivityTriggerComponent.ctorParameters = function () { return []; };
5547
+ AbstractActivityTriggerComponent.propDecorators = {
5548
+ activityClass: [{ type: i0.Input }],
5549
+ activityClassModel: [{ type: i0.Input }],
5550
+ activityData: [{ type: i0.Input }],
5551
+ activityDataModel: [{ type: i0.Input }],
5552
+ face: [{ type: i0.Input }],
5553
+ faceModel: [{ type: i0.Input }],
5554
+ alignFace: [{ type: i0.Input }],
5555
+ confirmEvent: [{ type: i0.Output }],
5556
+ cancelEvent: [{ type: i0.Output }],
5557
+ isActive: [{ type: i0.HostBinding, args: ['class.active',] }]
5558
+ };
5559
+ __decorate([
5560
+ pectin.StoreInValueModel('activityClassModel'),
5561
+ __metadata("design:type", Object)
5562
+ ], AbstractActivityTriggerComponent.prototype, "activityClass", void 0);
5563
+ __decorate([
5564
+ pectin.TrackExternal(),
5565
+ __metadata("design:type", pectin.ValueModel)
5566
+ ], AbstractActivityTriggerComponent.prototype, "activityClassModel", void 0);
5567
+ __decorate([
5568
+ pectin.StoreInValueModel('activityDataModel'),
5569
+ __metadata("design:type", Object)
5570
+ ], AbstractActivityTriggerComponent.prototype, "activityData", void 0);
5571
+ __decorate([
5572
+ pectin.TrackExternal(),
5573
+ __metadata("design:type", pectin.ValueModel)
5574
+ ], AbstractActivityTriggerComponent.prototype, "activityDataModel", void 0);
5575
+ __decorate([
5576
+ pectin.StoreInValueModel('faceModel'),
5577
+ __metadata("design:type", Object)
5578
+ ], AbstractActivityTriggerComponent.prototype, "face", void 0);
5579
+ __decorate([
5580
+ pectin.TrackExternal(),
5581
+ __metadata("design:type", pectin.ValueModel)
5582
+ ], AbstractActivityTriggerComponent.prototype, "faceModel", void 0);
5583
+
5506
5584
  var InteractionServiceRoutingAdapter = /** @class */ (function () {
5507
5585
  function InteractionServiceRoutingAdapter(activeInteractionContextIds, activeModalContext, createExclusiveInteractionContext) {
5508
5586
  this.activeInteractionContextIds = activeInteractionContextIds;
@@ -5684,10 +5762,29 @@
5684
5762
  InteractionService.ApiAdapter = ApiAdapter;
5685
5763
  })(exports.InteractionService || (exports.InteractionService = {}));
5686
5764
 
5765
+ var ModalActivityTriggerComponent = /** @class */ (function (_super) {
5766
+ __extends(ModalActivityTriggerComponent, _super);
5767
+ function ModalActivityTriggerComponent(interactionService) {
5768
+ var _this = _super.call(this) || this;
5769
+ _this.interactionContext = interactionService.createModalInteractionContextDisposedWith(_this);
5770
+ return _this;
5771
+ }
5772
+ return ModalActivityTriggerComponent;
5773
+ }(AbstractActivityTriggerComponent));
5774
+ ModalActivityTriggerComponent.decorators = [
5775
+ { type: i0.Component, args: [{
5776
+ selector: 'aup-modal-activity-trigger',
5777
+ template: "<aup-command [command]=\"startActivityCommand\" [faceModel]=\"faceModel\" [alignFace]=\"alignFace\"></aup-command>\n",
5778
+ styles: [":host{display:inline-block}"]
5779
+ },] }
5780
+ ];
5781
+ ModalActivityTriggerComponent.ctorParameters = function () { return [
5782
+ { type: exports.InteractionService }
5783
+ ]; };
5784
+
5687
5785
  /**
5688
5786
  * @example
5689
5787
  * <aup-in-place-interaction-context #inPlaceInteractionContext>
5690
- *
5691
5788
  * </aup-in-place-interaction-context>
5692
5789
  *
5693
5790
  * in your component
@@ -5833,6 +5930,35 @@
5833
5930
  __metadata("design:type", pectin.Command)
5834
5931
  ], AddItemInteractionContextComponent.prototype, "addCommand", void 0);
5835
5932
 
5933
+ var InlineActivityTriggerComponent = /** @class */ (function (_super) {
5934
+ __extends(InlineActivityTriggerComponent, _super);
5935
+ function InlineActivityTriggerComponent() {
5936
+ return _super.call(this) || this;
5937
+ }
5938
+ return InlineActivityTriggerComponent;
5939
+ }(AbstractActivityTriggerComponent));
5940
+ InlineActivityTriggerComponent.decorators = [
5941
+ { type: i0.Component, args: [{
5942
+ selector: 'aup-inline-activity-trigger',
5943
+ template: "<aup-in-place-interaction-context #interactionContext [animateFirstActivity]=\"false\">\n <aup-command [command]=\"startActivityCommand\" [faceModel]=\"faceModel\" [alignFace]=\"alignFace\"></aup-command>\n</aup-in-place-interaction-context>\n",
5944
+ styles: [":host{display:inline-block}"]
5945
+ },] }
5946
+ ];
5947
+ InlineActivityTriggerComponent.ctorParameters = function () { return []; };
5948
+ InlineActivityTriggerComponent.propDecorators = {
5949
+ interactionContext: [{ type: i0.ViewChild, args: [InPlaceInteractionContextComponent, { static: true },] }]
5950
+ };
5951
+
5952
+ /**
5953
+ * <aup-popup-interaction-context #ctx></aup-popup-interaction-context>
5954
+ *
5955
+ * in your component
5956
+ * @ViewChild('inPlaceInteractionContext', { static: true })
5957
+ * interactionContext: InteractionContext;
5958
+ * or
5959
+ * @ViewChild('ctx', { static: true })
5960
+ * interactionContext: InteractionContext;
5961
+ */
5836
5962
  var PopupInteractionContextComponent = /** @class */ (function (_super) {
5837
5963
  __extends(PopupInteractionContextComponent, _super);
5838
5964
  function PopupInteractionContextComponent(_element, _overlay, scrollable) {
@@ -5913,7 +6039,7 @@
5913
6039
  { type: i0.Component, args: [{
5914
6040
  selector: 'aup-popup-interaction-context',
5915
6041
  template: "<ng-content></ng-content>\n",
5916
- styles: [":host{display:inline}:host.interaction-active{background:rgba(0,0,0,.05)}"]
6042
+ styles: [":host{display:inline-block}:host.interaction-active{background:rgba(0,0,0,.05)}"]
5917
6043
  },] }
5918
6044
  ];
5919
6045
  PopupInteractionContextComponent.ctorParameters = function () { return [
@@ -6171,8 +6297,8 @@
6171
6297
  builder(model);
6172
6298
  return model;
6173
6299
  };
6174
- TableModel.prototype.addSelectionColumn = function (selectionModel) {
6175
- return this._addSelectionColumn(selectionModel);
6300
+ TableModel.prototype.addSelectionColumn = function (selectionModel, showSelectionColumn) {
6301
+ return this._addSelectionColumn(selectionModel, showSelectionColumn);
6176
6302
  };
6177
6303
  return TableModel;
6178
6304
  }(AbstractTableModel));
@@ -6181,6 +6307,30 @@
6181
6307
  * @file Automatically generated by barrelsby.
6182
6308
  */
6183
6309
 
6310
+ var PopupActivityTriggerComponent = /** @class */ (function (_super) {
6311
+ __extends(PopupActivityTriggerComponent, _super);
6312
+ function PopupActivityTriggerComponent() {
6313
+ var _this = _super.call(this) || this;
6314
+ _this.anchorX = 'start';
6315
+ _this.anchorY = 'bottom';
6316
+ return _this;
6317
+ }
6318
+ return PopupActivityTriggerComponent;
6319
+ }(AbstractActivityTriggerComponent));
6320
+ PopupActivityTriggerComponent.decorators = [
6321
+ { type: i0.Component, args: [{
6322
+ selector: 'aup-popup-activity-trigger',
6323
+ template: "<aup-popup-interaction-context [anchorX]=\"anchorX\" [anchorY]=\"anchorY\">\n <aup-command [command]=\"startActivityCommand\" [faceModel]=\"faceModel\" [alignFace]=\"alignFace\"></aup-command>\n</aup-popup-interaction-context>\n",
6324
+ styles: [":host{display:inline-block}"]
6325
+ },] }
6326
+ ];
6327
+ PopupActivityTriggerComponent.ctorParameters = function () { return []; };
6328
+ PopupActivityTriggerComponent.propDecorators = {
6329
+ anchorX: [{ type: i0.Input }],
6330
+ anchorY: [{ type: i0.Input }],
6331
+ interactionContext: [{ type: i0.ViewChild, args: [PopupInteractionContextComponent, { static: true },] }]
6332
+ };
6333
+
6184
6334
  var InteractionModule = /** @class */ (function () {
6185
6335
  function InteractionModule() {
6186
6336
  }
@@ -6218,7 +6368,11 @@
6218
6368
  Activity,
6219
6369
  ActivityTitleComponent,
6220
6370
  ActivityBodyComponent,
6221
- ActivityActionsComponent
6371
+ ActivityActionsComponent,
6372
+ AbstractActivityTriggerComponent,
6373
+ PopupActivityTriggerComponent,
6374
+ InlineActivityTriggerComponent,
6375
+ ModalActivityTriggerComponent
6222
6376
  ],
6223
6377
  exports: [
6224
6378
  ActivityContainerComponent,
@@ -6231,7 +6385,10 @@
6231
6385
  InteractionContextTriggerFor,
6232
6386
  StringInputActivity,
6233
6387
  SelectInputActivity,
6234
- ActivityBodyComponent
6388
+ ActivityBodyComponent,
6389
+ PopupActivityTriggerComponent,
6390
+ InlineActivityTriggerComponent,
6391
+ ModalActivityTriggerComponent
6235
6392
  ],
6236
6393
  entryComponents: [
6237
6394
  ActivityContainerComponent,
@@ -6248,212 +6405,6 @@
6248
6405
  },] }
6249
6406
  ];
6250
6407
 
6251
- exports.PlaceHistory = /** @class */ (function () {
6252
- function PlaceHistory() {
6253
- this._archive = new Map();
6254
- this.placeHistoryDepth = 4;
6255
- }
6256
- PlaceHistory.prototype.notifyNavigationStarted = function () {
6257
- if (this._activeVisits) {
6258
- this.archive(this._activeVisits.visits);
6259
- this._previousVisits = this._activeVisits;
6260
- }
6261
- };
6262
- PlaceHistory.prototype.notifyNavigationFinished = function (visits) {
6263
- this._activeVisits = new PlaceHistory.VisitRecord(visits);
6264
- };
6265
- PlaceHistory.prototype.updateVisit = function (visit) {
6266
- pectin.assert.isTruthy(this._activeVisits);
6267
- this._activeVisits.update(visit);
6268
- };
6269
- PlaceHistory.prototype.lastVisitIncluded = function (placeDef) {
6270
- var _a;
6271
- return !!((_a = this._previousVisits) === null || _a === void 0 ? void 0 : _a.getVisitFor(placeDef));
6272
- };
6273
- PlaceHistory.prototype.getMostRecentVisitFor = function (placeDef) {
6274
- return ___default['default'].first(this.getHistory(placeDef));
6275
- };
6276
- PlaceHistory.prototype.getHistory = function (placeDef) {
6277
- var history = this._archive.get(placeDef);
6278
- if (!history) {
6279
- history = [];
6280
- this.setHistory(placeDef, history);
6281
- }
6282
- return history;
6283
- };
6284
- PlaceHistory.prototype.setHistory = function (placeDef, history) {
6285
- this._archive.set(placeDef, history);
6286
- };
6287
- PlaceHistory.prototype.archive = function (visits) {
6288
- var _this = this;
6289
- visits.forEach(function (state) {
6290
- var history = _this.getHistory(state.placeDefinition);
6291
- var previousState = ___default['default'].first(history);
6292
- if (!previousState || state.hasChangedFrom(previousState)) {
6293
- history.unshift(state); // LIFO
6294
- _this.setHistory(state.placeDefinition, history.slice(0, _this.placeHistoryDepth));
6295
- }
6296
- });
6297
- };
6298
- return PlaceHistory;
6299
- }());
6300
- exports.PlaceHistory.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function PlaceHistory_Factory() { return new exports.PlaceHistory(); }, token: exports.PlaceHistory, providedIn: "root" });
6301
- exports.PlaceHistory.decorators = [
6302
- { type: i0.Injectable, args: [{
6303
- providedIn: 'root'
6304
- },] }
6305
- ];
6306
- exports.PlaceHistory.ctorParameters = function () { return []; };
6307
- (function (PlaceHistory) {
6308
- var VisitRecord = /** @class */ (function () {
6309
- function VisitRecord(visits) {
6310
- this.visits = visits;
6311
- }
6312
- VisitRecord.prototype.update = function (visit) {
6313
- this.visits = this.visits.filter(function (v) { return v.placeDefinition !== visit.placeDefinition; }).concat(visit);
6314
- };
6315
- VisitRecord.prototype.getVisitFor = function (placeDef) {
6316
- return this.visits.find(function (v) { return v.placeDefinition === placeDef; });
6317
- };
6318
- return VisitRecord;
6319
- }());
6320
- PlaceHistory.VisitRecord = VisitRecord;
6321
- // export class Query {
6322
- // private _history: Visit.State[];
6323
- // private _places: Place[];
6324
- // private _predicate: (visit: any) => boolean;
6325
- // private _limit: number;
6326
- //
6327
- // constructor(history, limit = history.length) {
6328
- // this._history = history;
6329
- // this._places = [];
6330
- // this._predicate = (visit => true);
6331
- // this._limit = limit;
6332
- // }
6333
- //
6334
- // to(...places:Place[]):this {
6335
- // this._places = places;
6336
- // return this;
6337
- // }
6338
- //
6339
- // with(parameters: { [parameter: string]: any }): this {
6340
- // this.matching(state => {
6341
- // return Object.keys(parameters).reduce((acc, key) => {
6342
- // const matchValue = parameters[key];
6343
- // const visitValue = state.get(key);
6344
- // const matched = matchValue === '*' ? !_.isNil(visitValue) : visitValue == matchValue;
6345
- // // Logger.get(this).info(`matched=${matched}`, parameters, visitValue);
6346
- // return acc && matched;
6347
- // }, true);
6348
- // });
6349
- // return this;
6350
- // }
6351
- //
6352
- // last(): Visit.State {
6353
- // return _.findLast(this._history, visit => this._matches(visit))
6354
- // }
6355
- //
6356
- // // @trace
6357
- // allThatMatch(): Visit.State[] {
6358
- // return _.filter(this._history, visit => this._matches(visit)).slice(-this._limit);
6359
- // }
6360
- //
6361
- // // @trace
6362
- // mostRecentValueOf<T=any>(param: string, defaultValue: T = null): T {
6363
- // const lastStateWithParam = _.findLast(this.allThatMatch(), state => !_.isNil(state.get(param)));
6364
- // return _.isNil(lastStateWithParam) ? defaultValue : lastStateWithParam.get(param);
6365
- // }
6366
- //
6367
- // limit(limit: number): this {
6368
- // this._limit = limit;
6369
- // return this;
6370
- // }
6371
- //
6372
- // matching(predicate: (visit: Visit.State) => boolean): this {
6373
- // this._predicate = predicate;
6374
- // return this;
6375
- // }
6376
- //
6377
- // _matches(visit: Visit.State) {
6378
- // return this._isPlaceMatch(visit) && this._predicate(visit);
6379
- // }
6380
- //
6381
- // _isPlaceMatch(visit: Visit.State) {
6382
- // return this._places.length < 1 || this._places.includes(visit.place)
6383
- // }
6384
- //
6385
- // }
6386
- })(exports.PlaceHistory || (exports.PlaceHistory = {}));
6387
-
6388
- var Visit = /** @class */ (function () {
6389
- function Visit(placeDefinition, visitParameters) {
6390
- if (visitParameters === void 0) { visitParameters = {}; }
6391
- this.placeDefinition = placeDefinition;
6392
- this.visitParameters = visitParameters;
6393
- }
6394
- // @Trace()
6395
- Visit.prototype.getRouteId = function () {
6396
- return this.placeDefinition.getRouteIdFrom(this);
6397
- };
6398
- // @Trace()
6399
- Visit.prototype.hasRouteId = function () {
6400
- return !___namespace.isNil(this.getRouteId());
6401
- };
6402
- /**
6403
- * Returns the value of the place parameter with the specified name. The parameter
6404
- * name is taken from the `as` option, e.g. {as: 'aCustomName'} otherwise it is the
6405
- * same as the the ValueModel property name.
6406
- * @param parameterName the field name of the property model or the `as` option if specified.
6407
- */
6408
- Visit.prototype.getParameter = function (parameterName) {
6409
- return this.visitParameters[parameterName];
6410
- };
6411
- // @Trace()
6412
- Visit.prototype.hasParameter = function (parameterName) {
6413
- return Object.keys(this.visitParameters).includes(parameterName);
6414
- };
6415
- Visit.prototype.replace = function (parameter, value) {
6416
- var _a;
6417
- return new Visit(this.placeDefinition, Object.assign(Object.assign({}, this.visitParameters), (_a = {}, _a[parameter.name] = value, _a)));
6418
- };
6419
- Visit.prototype.mergeRouteParameters = function (routeParams) {
6420
- var _this = this;
6421
- // todo: whitelist parameters.
6422
- var routeParameterKeys = Object.keys(routeParams);
6423
- var params = {};
6424
- this.placeDefinition.getVisitParameterDefs().forEach(function (def) {
6425
- if (def.isRouteId || def.isRouteParameter) {
6426
- if (routeParameterKeys.includes(def.name)) {
6427
- params[def.name] = routeParams[def.name];
6428
- }
6429
- }
6430
- else {
6431
- // copy non route params as is, but only if they already exist otherwise we'll inject nil values and break the
6432
- // defaults and remember sanitisation process.
6433
- var value = _this.getParameter(def.name);
6434
- if (_this.hasParameter(def.name)) {
6435
- params[def.name] = value;
6436
- }
6437
- }
6438
- });
6439
- return new Visit(this.placeDefinition, params);
6440
- };
6441
- Visit.prototype.hasRoutingChangedFrom = function (other) {
6442
- var samePlace = other.placeDefinition === this.placeDefinition;
6443
- var sameRouteParameters = ___namespace.isEqual(this.placeDefinition.getFormattedRouteParameters(this, true), this.placeDefinition.getFormattedRouteParameters(other, true));
6444
- return !samePlace || !sameRouteParameters;
6445
- };
6446
- Visit.prototype.hasChangedFrom = function (other) {
6447
- var sameNonRouteParameters = ___namespace.isEqual(this.placeDefinition.getNonRouteParameters(this), this.placeDefinition.getNonRouteParameters(other));
6448
- return !sameNonRouteParameters || this.hasRoutingChangedFrom(other);
6449
- };
6450
- Visit.prototype.toDebugString = function () {
6451
- var _this = this;
6452
- return Object.keys(this.visitParameters).map(function (k) { return k + "=" + _this.visitParameters[k]; }).join(',');
6453
- };
6454
- return Visit;
6455
- }());
6456
-
6457
6408
  exports.ParameterDefinition = /** @class */ (function () {
6458
6409
  function ParameterDefinition(propertyName, options, urlFormat) {
6459
6410
  this.propertyName = propertyName;
@@ -6480,6 +6431,7 @@
6480
6431
  ParameterDefinition.prototype.getOptionValue = function (key) {
6481
6432
  return this.options.getOptional(key, null);
6482
6433
  };
6434
+ // @Trace()
6483
6435
  ParameterDefinition.prototype.sanitise = function (value, visit, placeHistory, injector, isPopState) {
6484
6436
  return __awaiter(this, void 0, void 0, function () {
6485
6437
  var returningFromSomewhereElse, lastKnownVisit;
@@ -6504,12 +6456,6 @@
6504
6456
  };
6505
6457
  return ParameterDefinition;
6506
6458
  }());
6507
- __decorate([
6508
- pectin.Trace(),
6509
- __metadata("design:type", Function),
6510
- __metadata("design:paramtypes", [Object, Visit, exports.PlaceHistory, i0.Injector, Boolean]),
6511
- __metadata("design:returntype", Promise)
6512
- ], exports.ParameterDefinition.prototype, "sanitise", null);
6513
6459
  (function (ParameterDefinition) {
6514
6460
  var RouteId = /** @class */ (function (_super) {
6515
6461
  __extends(RouteId, _super);
@@ -6723,6 +6669,7 @@
6723
6669
  _this.childPlaces = _this.placeDefinition.children.map(function (d) { return d.component; });
6724
6670
  return _this;
6725
6671
  }
6672
+ // @Trace()
6726
6673
  PlaceComponent.prototype.initialiseVisit = function (visit, notifyVisitChanged) {
6727
6674
  var _this = this;
6728
6675
  pectin.assert.isNil(this.visitModel.value);
@@ -6745,17 +6692,18 @@
6745
6692
  PlaceComponent.prototype.isInitialised = function () {
6746
6693
  return !!this.visitModel.value;
6747
6694
  };
6695
+ // @Trace()
6748
6696
  PlaceComponent.prototype.installBinding = function (parameterDef) {
6749
6697
  var model = this[parameterDef.propertyName];
6750
6698
  pectin.DebugContext.tag(model, this.placeDefinition.component.name + "." + parameterDef.propertyName);
6751
6699
  var binding = this.registerDisposable(new pectin.Binding(this.visitModel, model, {
6752
6700
  toRight: function (visit) {
6753
6701
  var value = visit.getParameter(parameterDef.name);
6754
- console.log('push to component', { name: parameterDef.name, value: value, visit: visit });
6702
+ // console.log('push to component', { name: parameterDef.name, value, visit });
6755
6703
  return value;
6756
6704
  },
6757
6705
  toLeft: function (value, currentVisit) {
6758
- console.log('push to route', { name: parameterDef.name, value: value, currentVisit: currentVisit });
6706
+ // console.log('push to route', { name: parameterDef.name, value, currentVisit });
6759
6707
  return currentVisit.replace(parameterDef, value);
6760
6708
  }
6761
6709
  }));
@@ -6789,18 +6737,6 @@
6789
6737
  { type: i0.Directive }
6790
6738
  ];
6791
6739
  exports.PlaceComponent.ctorParameters = function () { return []; };
6792
- __decorate([
6793
- pectin.Trace(),
6794
- __metadata("design:type", Function),
6795
- __metadata("design:paramtypes", [Visit, Function]),
6796
- __metadata("design:returntype", void 0)
6797
- ], exports.PlaceComponent.prototype, "initialiseVisit", null);
6798
- __decorate([
6799
- pectin.Trace(),
6800
- __metadata("design:type", Function),
6801
- __metadata("design:paramtypes", [exports.ParameterDefinition]),
6802
- __metadata("design:returntype", void 0)
6803
- ], exports.PlaceComponent.prototype, "installBinding", null);
6804
6740
  __decorate([
6805
6741
  fastMemoizeDecorator.Memoize(),
6806
6742
  __metadata("design:type", PlaceDefinition),
@@ -7413,9 +7349,11 @@
7413
7349
  _this.debugPropertyKeys = ['idle', 'startingUrl', 'clickedLinkUrl', 'firstCancelEventUrl', 'clickedLinkMatchedBackButtonUrl', 'popStateEventUrl'];
7414
7350
  return _this;
7415
7351
  }
7352
+ // @Trace()
7416
7353
  WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined.prototype.onRouterStarted = function (event) {
7417
7354
  this.ignore(event);
7418
7355
  };
7356
+ // @Trace()
7419
7357
  WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined.prototype.onRouterCancelled = function (event) {
7420
7358
  if (event.url === this.clickedLinkUrl) {
7421
7359
  this.context.transitionTo(new WaitForLinkSameAsBackToPlayOut(this.context, this.startingUrl, this.clickedLinkUrl));
@@ -7433,18 +7371,6 @@
7433
7371
  };
7434
7372
  return WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined;
7435
7373
  }(EventCleanUpSession));
7436
- __decorate([
7437
- pectin.Trace(),
7438
- __metadata("design:type", Function),
7439
- __metadata("design:paramtypes", [i1$1.NavigationStart]),
7440
- __metadata("design:returntype", void 0)
7441
- ], WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined.prototype, "onRouterStarted", null);
7442
- __decorate([
7443
- pectin.Trace(),
7444
- __metadata("design:type", Function),
7445
- __metadata("design:paramtypes", [i1$1.NavigationCancel]),
7446
- __metadata("design:returntype", void 0)
7447
- ], WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined.prototype, "onRouterCancelled", null);
7448
7374
  var WaitForLinkSameAsBackToPlayOut = /** @class */ (function (_super) {
7449
7375
  __extends(WaitForLinkSameAsBackToPlayOut, _super);
7450
7376
  function WaitForLinkSameAsBackToPlayOut(context, startingUrl, clickedLinkUrl) {
@@ -7718,6 +7644,143 @@
7718
7644
  PlaceAccessGuard.NoAuth = NoAuth;
7719
7645
  })(exports.PlaceAccessGuard || (exports.PlaceAccessGuard = {}));
7720
7646
 
7647
+ exports.PlaceHistory = /** @class */ (function () {
7648
+ function PlaceHistory() {
7649
+ this._archive = new Map();
7650
+ this.placeHistoryDepth = 4;
7651
+ }
7652
+ PlaceHistory.prototype.notifyNavigationStarted = function () {
7653
+ if (this._activeVisits) {
7654
+ this.archive(this._activeVisits.visits);
7655
+ this._previousVisits = this._activeVisits;
7656
+ }
7657
+ };
7658
+ PlaceHistory.prototype.notifyNavigationFinished = function (visits) {
7659
+ this._activeVisits = new PlaceHistory.VisitRecord(visits);
7660
+ };
7661
+ PlaceHistory.prototype.updateVisit = function (visit) {
7662
+ pectin.assert.isTruthy(this._activeVisits);
7663
+ this._activeVisits.update(visit);
7664
+ };
7665
+ PlaceHistory.prototype.lastVisitIncluded = function (placeDef) {
7666
+ var _a;
7667
+ return !!((_a = this._previousVisits) === null || _a === void 0 ? void 0 : _a.getVisitFor(placeDef));
7668
+ };
7669
+ PlaceHistory.prototype.getMostRecentVisitFor = function (placeDef) {
7670
+ return ___default['default'].first(this.getHistory(placeDef));
7671
+ };
7672
+ PlaceHistory.prototype.getHistory = function (placeDef) {
7673
+ var history = this._archive.get(placeDef);
7674
+ if (!history) {
7675
+ history = [];
7676
+ this.setHistory(placeDef, history);
7677
+ }
7678
+ return history;
7679
+ };
7680
+ PlaceHistory.prototype.setHistory = function (placeDef, history) {
7681
+ this._archive.set(placeDef, history);
7682
+ };
7683
+ PlaceHistory.prototype.archive = function (visits) {
7684
+ var _this = this;
7685
+ visits.forEach(function (state) {
7686
+ var history = _this.getHistory(state.placeDefinition);
7687
+ var previousState = ___default['default'].first(history);
7688
+ if (!previousState || state.hasChangedFrom(previousState)) {
7689
+ history.unshift(state); // LIFO
7690
+ _this.setHistory(state.placeDefinition, history.slice(0, _this.placeHistoryDepth));
7691
+ }
7692
+ });
7693
+ };
7694
+ return PlaceHistory;
7695
+ }());
7696
+ exports.PlaceHistory.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function PlaceHistory_Factory() { return new exports.PlaceHistory(); }, token: exports.PlaceHistory, providedIn: "root" });
7697
+ exports.PlaceHistory.decorators = [
7698
+ { type: i0.Injectable, args: [{
7699
+ providedIn: 'root'
7700
+ },] }
7701
+ ];
7702
+ exports.PlaceHistory.ctorParameters = function () { return []; };
7703
+ (function (PlaceHistory) {
7704
+ var VisitRecord = /** @class */ (function () {
7705
+ function VisitRecord(visits) {
7706
+ this.visits = visits;
7707
+ }
7708
+ VisitRecord.prototype.update = function (visit) {
7709
+ this.visits = this.visits.filter(function (v) { return v.placeDefinition !== visit.placeDefinition; }).concat(visit);
7710
+ };
7711
+ VisitRecord.prototype.getVisitFor = function (placeDef) {
7712
+ return this.visits.find(function (v) { return v.placeDefinition === placeDef; });
7713
+ };
7714
+ return VisitRecord;
7715
+ }());
7716
+ PlaceHistory.VisitRecord = VisitRecord;
7717
+ // export class Query {
7718
+ // private _history: Visit.State[];
7719
+ // private _places: Place[];
7720
+ // private _predicate: (visit: any) => boolean;
7721
+ // private _limit: number;
7722
+ //
7723
+ // constructor(history, limit = history.length) {
7724
+ // this._history = history;
7725
+ // this._places = [];
7726
+ // this._predicate = (visit => true);
7727
+ // this._limit = limit;
7728
+ // }
7729
+ //
7730
+ // to(...places:Place[]):this {
7731
+ // this._places = places;
7732
+ // return this;
7733
+ // }
7734
+ //
7735
+ // with(parameters: { [parameter: string]: any }): this {
7736
+ // this.matching(state => {
7737
+ // return Object.keys(parameters).reduce((acc, key) => {
7738
+ // const matchValue = parameters[key];
7739
+ // const visitValue = state.get(key);
7740
+ // const matched = matchValue === '*' ? !_.isNil(visitValue) : visitValue == matchValue;
7741
+ // // Logger.get(this).info(`matched=${matched}`, parameters, visitValue);
7742
+ // return acc && matched;
7743
+ // }, true);
7744
+ // });
7745
+ // return this;
7746
+ // }
7747
+ //
7748
+ // last(): Visit.State {
7749
+ // return _.findLast(this._history, visit => this._matches(visit))
7750
+ // }
7751
+ //
7752
+ // // @trace
7753
+ // allThatMatch(): Visit.State[] {
7754
+ // return _.filter(this._history, visit => this._matches(visit)).slice(-this._limit);
7755
+ // }
7756
+ //
7757
+ // // @trace
7758
+ // mostRecentValueOf<T=any>(param: string, defaultValue: T = null): T {
7759
+ // const lastStateWithParam = _.findLast(this.allThatMatch(), state => !_.isNil(state.get(param)));
7760
+ // return _.isNil(lastStateWithParam) ? defaultValue : lastStateWithParam.get(param);
7761
+ // }
7762
+ //
7763
+ // limit(limit: number): this {
7764
+ // this._limit = limit;
7765
+ // return this;
7766
+ // }
7767
+ //
7768
+ // matching(predicate: (visit: Visit.State) => boolean): this {
7769
+ // this._predicate = predicate;
7770
+ // return this;
7771
+ // }
7772
+ //
7773
+ // _matches(visit: Visit.State) {
7774
+ // return this._isPlaceMatch(visit) && this._predicate(visit);
7775
+ // }
7776
+ //
7777
+ // _isPlaceMatch(visit: Visit.State) {
7778
+ // return this._places.length < 1 || this._places.includes(visit.place)
7779
+ // }
7780
+ //
7781
+ // }
7782
+ })(exports.PlaceHistory || (exports.PlaceHistory = {}));
7783
+
7721
7784
  exports.UrlSnapshot = /** @class */ (function () {
7722
7785
  // TODO: Update this accept a url Parser so it can be immutable and generate new trees on mutation using toString() are parseUrl.
7723
7786
  function UrlSnapshot(urlSerializer, url) {
@@ -8243,6 +8306,75 @@
8243
8306
  PlaceRouter.State = State;
8244
8307
  })(exports.PlaceRouter || (exports.PlaceRouter = {}));
8245
8308
 
8309
+ var Visit = /** @class */ (function () {
8310
+ function Visit(placeDefinition, visitParameters) {
8311
+ if (visitParameters === void 0) { visitParameters = {}; }
8312
+ this.placeDefinition = placeDefinition;
8313
+ this.visitParameters = visitParameters;
8314
+ }
8315
+ // @Trace()
8316
+ Visit.prototype.getRouteId = function () {
8317
+ return this.placeDefinition.getRouteIdFrom(this);
8318
+ };
8319
+ // @Trace()
8320
+ Visit.prototype.hasRouteId = function () {
8321
+ return !___namespace.isNil(this.getRouteId());
8322
+ };
8323
+ /**
8324
+ * Returns the value of the place parameter with the specified name. The parameter
8325
+ * name is taken from the `as` option, e.g. {as: 'aCustomName'} otherwise it is the
8326
+ * same as the the ValueModel property name.
8327
+ * @param parameterName the field name of the property model or the `as` option if specified.
8328
+ */
8329
+ Visit.prototype.getParameter = function (parameterName) {
8330
+ return this.visitParameters[parameterName];
8331
+ };
8332
+ // @Trace()
8333
+ Visit.prototype.hasParameter = function (parameterName) {
8334
+ return Object.keys(this.visitParameters).includes(parameterName);
8335
+ };
8336
+ Visit.prototype.replace = function (parameter, value) {
8337
+ var _a;
8338
+ return new Visit(this.placeDefinition, Object.assign(Object.assign({}, this.visitParameters), (_a = {}, _a[parameter.name] = value, _a)));
8339
+ };
8340
+ Visit.prototype.mergeRouteParameters = function (routeParams) {
8341
+ var _this = this;
8342
+ // todo: whitelist parameters.
8343
+ var routeParameterKeys = Object.keys(routeParams);
8344
+ var params = {};
8345
+ this.placeDefinition.getVisitParameterDefs().forEach(function (def) {
8346
+ if (def.isRouteId || def.isRouteParameter) {
8347
+ if (routeParameterKeys.includes(def.name)) {
8348
+ params[def.name] = routeParams[def.name];
8349
+ }
8350
+ }
8351
+ else {
8352
+ // copy non route params as is, but only if they already exist otherwise we'll inject nil values and break the
8353
+ // defaults and remember sanitisation process.
8354
+ var value = _this.getParameter(def.name);
8355
+ if (_this.hasParameter(def.name)) {
8356
+ params[def.name] = value;
8357
+ }
8358
+ }
8359
+ });
8360
+ return new Visit(this.placeDefinition, params);
8361
+ };
8362
+ Visit.prototype.hasRoutingChangedFrom = function (other) {
8363
+ var samePlace = other.placeDefinition === this.placeDefinition;
8364
+ var sameRouteParameters = ___namespace.isEqual(this.placeDefinition.getFormattedRouteParameters(this, true), this.placeDefinition.getFormattedRouteParameters(other, true));
8365
+ return !samePlace || !sameRouteParameters;
8366
+ };
8367
+ Visit.prototype.hasChangedFrom = function (other) {
8368
+ var sameNonRouteParameters = ___namespace.isEqual(this.placeDefinition.getNonRouteParameters(this), this.placeDefinition.getNonRouteParameters(other));
8369
+ return !sameNonRouteParameters || this.hasRoutingChangedFrom(other);
8370
+ };
8371
+ Visit.prototype.toDebugString = function () {
8372
+ var _this = this;
8373
+ return Object.keys(this.visitParameters).map(function (k) { return k + "=" + _this.visitParameters[k]; }).join(',');
8374
+ };
8375
+ return Visit;
8376
+ }());
8377
+
8246
8378
  var AUP_PLACE_CONFIG = new i0.InjectionToken('AUP_PLACE_CONFIG');
8247
8379
 
8248
8380
  var NotAuthorisedNoticeComponent = /** @class */ (function () {
@@ -9439,6 +9571,7 @@
9439
9571
  exports.ACTIVITY_DATA = ACTIVITY_DATA;
9440
9572
  exports.AUP_PLACE_CONFIG = AUP_PLACE_CONFIG;
9441
9573
  exports.AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT = AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT;
9574
+ exports.AbstractActivityTriggerComponent = AbstractActivityTriggerComponent;
9442
9575
  exports.AbstractInputActivity = AbstractInputActivity;
9443
9576
  exports.AbstractInputComponent = AbstractInputComponent;
9444
9577
  exports.AbstractInteractionContext = AbstractInteractionContext;
@@ -9504,13 +9637,16 @@
9504
9637
  exports.HEADER_CELL_RENDERER_PORTAL = HEADER_CELL_RENDERER_PORTAL;
9505
9638
  exports.HighlightPipe = HighlightPipe;
9506
9639
  exports.HighlightTextModelDirective = HighlightTextModelDirective;
9640
+ exports.HorizontalAlignment = HorizontalAlignment;
9507
9641
  exports.InPlaceInteractionContextComponent = InPlaceInteractionContextComponent;
9642
+ exports.InlineActivityTriggerComponent = InlineActivityTriggerComponent;
9508
9643
  exports.InteractionContextTriggerFor = InteractionContextTriggerFor;
9509
9644
  exports.InteractionModule = InteractionModule;
9510
9645
  exports.InteractionServiceRoutingAdapter = InteractionServiceRoutingAdapter;
9511
9646
  exports.LEFT_RIGHT_PLACE_ANIMATION = LEFT_RIGHT_PLACE_ANIMATION;
9512
9647
  exports.ListPlaceNavComponent = ListPlaceNavComponent;
9513
9648
  exports.ListPropertyColumnModel = ListPropertyColumnModel;
9649
+ exports.ModalActivityTriggerComponent = ModalActivityTriggerComponent;
9514
9650
  exports.ModalInteractionContextFactory = ModalInteractionContextFactory;
9515
9651
  exports.MoreMenuComponent = MoreMenuComponent;
9516
9652
  exports.MultipleSelectInputComponent = MultipleSelectInputComponent;
@@ -9535,6 +9671,7 @@
9535
9671
  exports.Point = Point;
9536
9672
  exports.PopStateDuringInteractionNavigation = PopStateDuringInteractionNavigation;
9537
9673
  exports.PopStateNavigation = PopStateNavigation;
9674
+ exports.PopupActivityTriggerComponent = PopupActivityTriggerComponent;
9538
9675
  exports.PopupAwareComponent = PopupAwareComponent;
9539
9676
  exports.PopupInteractionContextComponent = PopupInteractionContextComponent;
9540
9677
  exports.PopupMenuComponent = PopupMenuComponent;