@coolon/angular-ui-powerups 12.4.0-alpha.40 → 12.4.0-alpha.42

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 (45) hide show
  1. package/assets/{activities.scss → activities/activities.scss} +15 -11
  2. package/assets/activities/input-activities.scss +20 -0
  3. package/assets/interaction.scss +3 -4
  4. package/assets/mixins.scss +5 -7
  5. package/assets/styles.scss +5 -5
  6. package/bundles/coolon-angular-ui-powerups.umd.js +42 -14
  7. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  8. package/coolon-angular-ui-powerups.metadata.json +1 -1
  9. package/esm2015/lib/components/cards/card-container/card-container.component.js +8 -2
  10. package/esm2015/lib/components/cards/card-container/card-container.component.js.map +1 -1
  11. package/esm2015/lib/components/cards/card-container/card-container.component.metadata.json +1 -1
  12. package/esm2015/lib/components/cards/card-stack/card-stack.component.js +1 -1
  13. package/esm2015/lib/components/cards/card-stack/card-stack.component.metadata.json +1 -1
  14. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  15. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +1 -1
  16. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js.map +1 -1
  17. package/esm2015/lib/interaction/components/activity-container/activity-container.component.metadata.json +1 -1
  18. package/esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.js.map +1 -1
  19. package/esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.metadata.json +1 -1
  20. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.js +1 -1
  21. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.metadata.json +1 -1
  22. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js +2 -1
  23. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js.map +1 -1
  24. package/esm2015/lib/interaction/components/input-activities/input-activity.js +21 -2
  25. package/esm2015/lib/interaction/components/input-activities/input-activity.js.map +1 -1
  26. package/esm2015/lib/interaction/components/input-activities/input-activity.metadata.json +1 -1
  27. package/esm2015/lib/interaction/components/input-activities/select-input-activity.js +3 -1
  28. package/esm2015/lib/interaction/components/input-activities/select-input-activity.js.map +1 -1
  29. package/esm2015/lib/interaction/components/input-activities/select-input-activity.metadata.json +1 -1
  30. package/esm2015/lib/interaction/components/input-activities/string-input-activity.js +4 -1
  31. package/esm2015/lib/interaction/components/input-activities/string-input-activity.js.map +1 -1
  32. package/esm2015/lib/interaction/components/input-activities/string-input-activity.metadata.json +1 -1
  33. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js +1 -0
  34. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js.map +1 -1
  35. package/esm2015/lib/interaction/interaction.module.js +2 -0
  36. package/esm2015/lib/interaction/interaction.module.js.map +1 -1
  37. package/esm2015/lib/interaction/interaction.module.metadata.json +1 -1
  38. package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  39. package/fesm2015/coolon-angular-ui-powerups.js +42 -9
  40. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  41. package/lib/components/cards/card-container/card-container.component.d.ts +5 -0
  42. package/lib/interaction/components/input-activities/input-activity.d.ts +8 -2
  43. package/lib/interaction/components/input-activities/string-input-activity.d.ts +4 -0
  44. package/package.json +1 -1
  45. package/assets/interaction/input-activity.scss +0 -12
@@ -1,5 +1,6 @@
1
- @use "~@angular/material/theming" as ng;
1
+ @use "~@angular/material" as mat;
2
2
  @use "sass:map";
3
+ @use "input-activities";
3
4
 
4
5
  @mixin apply-theme($color-config, $typography-config) {
5
6
 
@@ -19,10 +20,10 @@
19
20
 
20
21
  aup-activity-title {
21
22
  display: block;
22
- font-family: ng.mat-font-family($typography-config);
23
- font-size: ng.mat-font-size($typography-config, title);
24
- line-height: ng.mat-line-height($typography-config, title);
25
- letter-spacing: ng.mat-letter-spacing($typography-config, title);
23
+ font-family: mat.font-family($typography-config);
24
+ font-size: mat.font-size($typography-config, title);
25
+ line-height: mat.line-height($typography-config, title);
26
+ letter-spacing: mat.letter-spacing($typography-config, title);
26
27
  padding: var(--aup-activity-padding);
27
28
 
28
29
  &:not(.transparent-background) {
@@ -31,20 +32,20 @@
31
32
 
32
33
  &[color=primary] {
33
34
  $palette: $primary-palette;
34
- color: ng.mat-color($palette, default-contrast);
35
- background-color: ng.mat-color($palette, default);
35
+ color: mat.get-color-from-palette($palette, default-contrast);
36
+ background-color: mat.get-color-from-palette($palette, default);
36
37
  }
37
38
 
38
39
  &[color=accent] {
39
40
  $palette: $accent-palette;
40
- color: ng.mat-color($palette, default-contrast);
41
- background-color: ng.mat-color($palette, default);
41
+ color: mat.get-color-from-palette($palette, default-contrast);
42
+ background-color: mat.get-color-from-palette($palette, default);
42
43
  }
43
44
 
44
45
  &[color=warn] {
45
46
  $palette: $warn-palette;
46
- color: ng.mat-color($palette, default-contrast);
47
- background-color: ng.mat-color($palette, default);
47
+ color: mat.get-color-from-palette($palette, default-contrast);
48
+ background-color: mat.get-color-from-palette($palette, default);
48
49
  }
49
50
  }
50
51
 
@@ -65,6 +66,9 @@
65
66
  display: block;
66
67
  padding: var(--aup-activity-padding);
67
68
  }
69
+
70
+ @include input-activities.apply-theme($color-config, $typography-config)
71
+
68
72
  }
69
73
 
70
74
 
@@ -0,0 +1,20 @@
1
+ @mixin apply-theme($color-config, $typography-config) {
2
+
3
+ .aup-input-activity {
4
+
5
+ &[layout=block] {
6
+ padding: var(--aup-activity-padding);
7
+ }
8
+
9
+ // used for inline editors
10
+ &[layout=inline] {
11
+ padding: 0 var(--aup-activity-padding);
12
+ display: flex;
13
+ flex-direction: row;
14
+ }
15
+
16
+ aup-activity-actions {
17
+ padding: 0 0 0 var(--aup-activity-padding);
18
+ }
19
+ }
20
+ }
@@ -1,7 +1,6 @@
1
- @use "~@angular/material/theming";
1
+ @use "~@angular/material" as mat;
2
2
 
3
3
  @use "./interaction/editor/inline-string-editor";
4
- @use "./interaction/input-activity";
5
4
 
6
5
  @mixin apply-theme($color-config, $typography-config) {
7
6
  @include inline-string-editor.apply-theme($color-config, $typography-config)
@@ -27,7 +26,7 @@
27
26
 
28
27
  .aup-popup-interaction-panel {
29
28
  background: var(--aup-default-background, white);
30
- @include theming.mat-elevation(1);
31
- @include theming.mat-elevation-transition;
29
+ @include mat.elevation(1);
30
+ @include mat.elevation-transition;
32
31
  }
33
32
 
@@ -1,26 +1,24 @@
1
- @use "~@angular/material/theming" as ng;
1
+ @use "~@angular/material" as mat;
2
+ @use "~@angular/material/theming" as theme;
2
3
 
3
4
  @mixin elevate-on-hover($height:2) {
4
- @include ng.mat-elevation-transition();
5
+ @include mat.elevation-transition();
5
6
  &:hover {
6
- @include ng.mat-elevation($height);
7
+ @include mat.elevation($height);
7
8
  }
8
9
  }
9
10
 
10
11
  @mixin aup-card-container-new-card-style($color: rgba(0,0,0,0.54), $background-color: rgba(255,255,255,0.8), $hover-color: $color, $background-hover-color: white) {
12
+ @include elevate-on-hover();
11
13
  box-sizing: border-box;
12
14
  border: 2px dashed rgba(0, 0, 0, 0.1);
13
15
  border-radius: 6px;
14
-
15
16
  font-weight: 300;
16
17
  cursor: pointer;
17
18
  color: $color;
18
19
  background-color: $background-color;
19
- transition: all ng.$mat-elevation-transition-duration ng.$mat-elevation-transition-timing-function;
20
20
 
21
21
  &:hover {
22
- @include elevate-on-hover(4);
23
- transition: all ng.$mat-elevation-transition-duration ng.$mat-elevation-transition-timing-function;
24
22
  border-color: transparent;
25
23
  background-color: $background-hover-color;
26
24
  color: $hover-color;
@@ -1,7 +1,7 @@
1
- @use "~@angular/material/theming" as ng;
1
+ @use "~@angular/material" as mat;
2
2
 
3
3
  @use "./mixins";
4
- @use "./activities";
4
+ @use "./activities/activities";
5
5
  @use "./cards";
6
6
  @use "./router";
7
7
  @use "./tabs";
@@ -14,11 +14,11 @@
14
14
 
15
15
  @mixin apply-light-theme($theme, $typography) {
16
16
 
17
- $color-config: ng.mat-get-color-config($theme);
17
+ $color-config: mat.get-color-config($theme);
18
18
 
19
- @include activities.apply-theme($color-config, $typography);
20
- @include cards.apply-theme($color-config, $typography);
21
19
  @include interaction.apply-theme($color-config, $typography);
20
+ @include cards.apply-theme($color-config, $typography);
21
+ @include activities.apply-theme($color-config, $typography);
22
22
 
23
23
  :root {
24
24
  --aup-default-padding: var(--default-padding, 16px);
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/forms'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/material/select'), require('@angular/material/tabs'), require('@angular/platform-browser/animations'), require('@angular/cdk/portal'), require('@angular/cdk/scrolling'), require('@angular/material/autocomplete'), require('@angular/material/button'), require('@angular/material/checkbox'), require('@angular/material/divider'), require('@angular/material/icon'), require('@angular/material/menu'), require('@angular/material/progress-spinner'), require('@angular/material/table'), require('@angular/material/tooltip'), require('@fortawesome/angular-fontawesome'), require('@fortawesome/free-solid-svg-icons'), require('@coolon/pectin'), require('@angular/platform-browser'), require('lodash'), require('@coolon/typescript-utilities'), require('@typescript-plus/fast-memoize-decorator/dist/src'), require('typescript-string-enums'), require('resize-observer-polyfill'), require('immer'), require('@angular/flex-layout'), require('@angular/material/dialog'), require('@angular/router'), require('@angular/cdk/overlay'), require('@angular/material/list'), require('@typescript-plus/fast-memoize-decorator'), require('reflect-metadata'), require('@angular/animations'), require('wake-event')) :
3
- typeof define === 'function' && define.amd ? define('@coolon/angular-ui-powerups', ['exports', '@angular/common', '@angular/core', '@angular/forms', '@angular/material/form-field', '@angular/material/input', '@angular/material/select', '@angular/material/tabs', '@angular/platform-browser/animations', '@angular/cdk/portal', '@angular/cdk/scrolling', '@angular/material/autocomplete', '@angular/material/button', '@angular/material/checkbox', '@angular/material/divider', '@angular/material/icon', '@angular/material/menu', '@angular/material/progress-spinner', '@angular/material/table', '@angular/material/tooltip', '@fortawesome/angular-fontawesome', '@fortawesome/free-solid-svg-icons', '@coolon/pectin', '@angular/platform-browser', 'lodash', '@coolon/typescript-utilities', '@typescript-plus/fast-memoize-decorator/dist/src', 'typescript-string-enums', 'resize-observer-polyfill', 'immer', '@angular/flex-layout', '@angular/material/dialog', '@angular/router', '@angular/cdk/overlay', '@angular/material/list', '@typescript-plus/fast-memoize-decorator', 'reflect-metadata', '@angular/animations', 'wake-event'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.coolon = global.coolon || {}, global.coolon['angular-ui-powerups'] = {}), global.ng.common, global.ng.core, global.ng.forms, global.ng.material.formField, global.ng.material.input, global.ng.material.select, global.ng.material.tabs, global.ng.platformBrowser.animations, global.ng.cdk.portal, global.ng.cdk.scrolling, global.ng.material.autocomplete, global.ng.material.button, global.ng.material.checkbox, global.ng.material.divider, global.ng.material.icon, global.ng.material.menu, global.ng.material.progressSpinner, global.ng.material.table, global.ng.material.tooltip, global.angularFontawesome, global.freeSolidSvgIcons, global.pectin, global.ng.platformBrowser, global._, global.typescriptUtilities, global.src, global.typescriptStringEnums, global.ResizeObserver, global.produce, global.ng.flexLayout, global.ng.material.dialog, global.ng.router, global.ng.cdk.overlay, global.ng.material.list, global.fastMemoizeDecorator, null, global.ng.animations, global.wakeEvent));
5
- }(this, (function (exports, i2, i0, forms, formField, input, select, tabs, animations, portal, scrolling, autocomplete, button, checkbox, divider, icon, menu, progressSpinner, table, tooltip, angularFontawesome, freeSolidSvgIcons, pectin, platformBrowser, _, typescriptUtilities, src, typescriptStringEnums, ResizeObserver, produce, flexLayout, i1, i1$1, overlay, list, fastMemoizeDecorator, reflectMetadata, animations$1, wakeEvent) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/forms'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/material/select'), require('@angular/material/tabs'), require('@angular/platform-browser/animations'), require('@angular/cdk/portal'), require('@angular/cdk/scrolling'), require('@angular/material/autocomplete'), require('@angular/material/button'), require('@angular/material/checkbox'), require('@angular/material/divider'), require('@angular/material/icon'), require('@angular/material/menu'), require('@angular/material/progress-spinner'), require('@angular/material/table'), require('@angular/material/tooltip'), require('@fortawesome/angular-fontawesome'), require('@fortawesome/free-solid-svg-icons'), require('@coolon/pectin'), require('@angular/platform-browser'), require('lodash'), require('@coolon/typescript-utilities'), require('@typescript-plus/fast-memoize-decorator/dist/src'), require('typescript-string-enums'), require('resize-observer-polyfill'), require('immer'), require('@angular/cdk/a11y'), require('@angular/flex-layout'), require('@angular/material/dialog'), require('@angular/router'), require('@angular/cdk/overlay'), require('@angular/material/list'), require('@typescript-plus/fast-memoize-decorator'), require('reflect-metadata'), require('@angular/animations'), require('wake-event')) :
3
+ typeof define === 'function' && define.amd ? define('@coolon/angular-ui-powerups', ['exports', '@angular/common', '@angular/core', '@angular/forms', '@angular/material/form-field', '@angular/material/input', '@angular/material/select', '@angular/material/tabs', '@angular/platform-browser/animations', '@angular/cdk/portal', '@angular/cdk/scrolling', '@angular/material/autocomplete', '@angular/material/button', '@angular/material/checkbox', '@angular/material/divider', '@angular/material/icon', '@angular/material/menu', '@angular/material/progress-spinner', '@angular/material/table', '@angular/material/tooltip', '@fortawesome/angular-fontawesome', '@fortawesome/free-solid-svg-icons', '@coolon/pectin', '@angular/platform-browser', 'lodash', '@coolon/typescript-utilities', '@typescript-plus/fast-memoize-decorator/dist/src', 'typescript-string-enums', 'resize-observer-polyfill', 'immer', '@angular/cdk/a11y', '@angular/flex-layout', '@angular/material/dialog', '@angular/router', '@angular/cdk/overlay', '@angular/material/list', '@typescript-plus/fast-memoize-decorator', 'reflect-metadata', '@angular/animations', 'wake-event'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.coolon = global.coolon || {}, global.coolon['angular-ui-powerups'] = {}), global.ng.common, global.ng.core, global.ng.forms, global.ng.material.formField, global.ng.material.input, global.ng.material.select, global.ng.material.tabs, global.ng.platformBrowser.animations, global.ng.cdk.portal, global.ng.cdk.scrolling, global.ng.material.autocomplete, global.ng.material.button, global.ng.material.checkbox, global.ng.material.divider, global.ng.material.icon, global.ng.material.menu, global.ng.material.progressSpinner, global.ng.material.table, global.ng.material.tooltip, global.angularFontawesome, global.freeSolidSvgIcons, global.pectin, global.ng.platformBrowser, global._, global.typescriptUtilities, global.src, global.typescriptStringEnums, global.ResizeObserver, global.produce, global.ng.cdk.a11y, global.ng.flexLayout, global.ng.material.dialog, global.ng.router, global.ng.cdk.overlay, global.ng.material.list, global.fastMemoizeDecorator, null, global.ng.animations, global.wakeEvent));
5
+ }(this, (function (exports, i2, i0, forms, formField, input, select, tabs, animations, portal, scrolling, autocomplete, button, checkbox, divider, icon, menu, progressSpinner, table, tooltip, angularFontawesome, freeSolidSvgIcons, pectin, platformBrowser, _, typescriptUtilities, src, typescriptStringEnums, ResizeObserver, produce, a11y, flexLayout, i1, i1$1, overlay, list, fastMemoizeDecorator, reflectMetadata, animations$1, wakeEvent) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -861,6 +861,11 @@
861
861
  function CardContainerComponent(elementRef) {
862
862
  var _this = _super.call(this) || this;
863
863
  _this.elementRef = elementRef;
864
+ /**
865
+ * Enable scrolling. If true the container will have height==0 so you must set it's height explicitly
866
+ * or place in a layout that will stretch it such as a grid or flex layout.
867
+ */
868
+ _this.enabledScroll = false;
864
869
  return _this;
865
870
  }
866
871
  Object.defineProperty(CardContainerComponent.prototype, "columnCount", {
@@ -909,8 +914,8 @@
909
914
  CardContainerComponent.decorators = [
910
915
  { type: i0.Component, args: [{
911
916
  selector: 'aup-card-container',
912
- template: "<div class=\"header-container\">\n <ng-content select=\"[card-container-header]\"></ng-content>\n</div>\n<aup-scroll-container>\n <div class=\"card-container\">\n <ng-content></ng-content>\n\n <div class=\"add-card-container\" *ngIf=\"addCardCommand.enabled.value\" [pectinCommand]=\"addCardCommand\">\n <aup-command-face *ngIf=\"addCardFace\" [faces]=\"[addCardFace]\"></aup-command-face>\n <aup-icon *ngIf=\"!addCardFace\" icon=\"mat:add\"></aup-icon>\n </div>\n\n <div class=\"add-card-template\" *ngIf=\"addCardTemplate\">\n <ng-container [ngTemplateOutlet]=\"addCardTemplate\"></ng-container>\n </div>\n </div>\n</aup-scroll-container>\n<div class=\"footer-container\">\n <ng-content select=\"[card-container-footer]\"></ng-content>\n</div>\n\n",
913
- styles: [":host{--resolved-card-gap:var(--card-gap,16px);--resolved-card-width:var(--card-width,300px);--resolved-card-width-max:var(--card-width-max,auto);--resolved-card-height:var(--card-height,auto);--resolved-card-min-height:var(--card-min-height,auto);--resolved-card-background:var(--card-background,var(--aup-card-container-default-background-color));flex:1;display:flex;flex-direction:column;align-items:stretch;background:var(--resolved-card-background)}:host.auto-columns .card-container{grid-template-columns:repeat(auto-fit,minmax(var(--resolved-card-width),auto));min-width:calc(var(--resolved-card-width) + 2 * var(--resolved-card-gap));width:calc((var(--resolved-card-width) + var(--resolved-card-gap)) * 2 + var(--grid-gap))}:host:not(.auto-columns) .card-container{grid-template-columns:repeat(var(--aup-card-container-column-count),1fr)}.card-container{display:grid;box-sizing:border-box;padding:var(--resolved-card-gap);min-height:calc(var(--resolved-card-height) + 2 * var(--resolved-card-gap));max-width:100%;grid-auto-rows:minmax(var(--resolved-card-min-height),var(--resolved-card-height));grid-gap:var(--resolved-card-gap)}aup-scroll-container{flex:1}.add-card-container{width:var(--resolved-card-width);height:var(--resolved-card-height);min-height:var(--resolved-card-min-height);display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:rgba(0,0,0,.54);background-color:hsla(0,0%,100%,.8);transition:all .28s cubic-bezier(.4,0,.2,1)}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{transition:box-shadow .28s cubic-bezier(.4,0,.2,1);transition:all .28s cubic-bezier(.4,0,.2,1);border-color:transparent;background-color:#fff;color:rgba(0,0,0,.54)}.add-card-container:hover:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.add-card-template-container{width:var(--resolved-card-width);height:var(--resolved-card-height);display:flex;flex-direction:column;align-items:stretch;justify-content:stretch}"]
917
+ template: "<div class=\"header-container\">\n <ng-content select=\"[card-container-header]\"></ng-content>\n</div>\n\n<ng-template #content>\n <div class=\"card-container\">\n <ng-content></ng-content>\n\n <div class=\"add-card-container\" *ngIf=\"addCardCommand.enabled.value\" [pectinCommand]=\"addCardCommand\">\n <aup-command-face *ngIf=\"addCardFace\" [faces]=\"[addCardFace]\"></aup-command-face>\n <aup-icon *ngIf=\"!addCardFace\" icon=\"mat:add\"></aup-icon>\n </div>\n\n <div class=\"add-card-template\" *ngIf=\"addCardTemplate\">\n <ng-container [ngTemplateOutlet]=\"addCardTemplate\"></ng-container>\n </div>\n </div>\n</ng-template>\n\n<div class=\"no-scroll-container\" *ngIf=\"!enabledScroll\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n\n<aup-scroll-container *ngIf=\"enabledScroll\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</aup-scroll-container>\n\n<div class=\"footer-container\">\n <ng-content select=\"[card-container-footer]\"></ng-content>\n</div>\n\n",
918
+ styles: [":host{--resolved-card-gap:var(--card-gap,16px);--resolved-card-width:var(--card-width,300px);--resolved-card-width-max:var(--card-width-max,auto);--resolved-card-height:var(--card-height,auto);--resolved-card-min-height:var(--card-min-height,auto);--resolved-card-background:var(--card-background,var(--aup-card-container-default-background-color));flex:1;display:flex;flex-direction:column;align-items:stretch;background:var(--resolved-card-background)}:host.auto-columns .card-container{grid-template-columns:repeat(auto-fit,minmax(var(--resolved-card-width),auto));min-width:calc(var(--resolved-card-width) + 2 * var(--resolved-card-gap));width:calc((var(--resolved-card-width) + var(--resolved-card-gap)) * 2 + var(--grid-gap))}:host:not(.auto-columns) .card-container{grid-template-columns:repeat(var(--aup-card-container-column-count),1fr)}.card-container{display:grid;box-sizing:border-box;padding:var(--resolved-card-gap);min-height:calc(var(--resolved-card-height) + 2 * var(--resolved-card-gap));max-width:100%;grid-auto-rows:minmax(var(--resolved-card-min-height),var(--resolved-card-height));grid-gap:var(--resolved-card-gap)}.no-scroll-container,aup-scroll-container{flex:1}.add-card-container{width:var(--resolved-card-width);height:var(--resolved-card-height);min-height:var(--resolved-card-min-height);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:box-shadow .28s cubic-bezier(.4,0,.2,1);box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:rgba(0,0,0,.54);background-color:hsla(0,0%,100%,.8)}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);border-color:transparent;background-color:#fff;color:rgba(0,0,0,.54)}.add-card-template-container{width:var(--resolved-card-width);height:var(--resolved-card-height);display:flex;flex-direction:column;align-items:stretch;justify-content:stretch}"]
914
919
  },] }
915
920
  ];
916
921
  CardContainerComponent.ctorParameters = function () { return [
@@ -918,6 +923,7 @@
918
923
  ]; };
919
924
  CardContainerComponent.propDecorators = {
920
925
  columnCount: [{ type: i0.Input }],
926
+ enabledScroll: [{ type: i0.Input }],
921
927
  isAutoColumns: [{ type: i0.HostBinding, args: ['class.auto-columns',] }],
922
928
  isSingleColumn: [{ type: i0.HostBinding, args: ['class.single-column',] }]
923
929
  };
@@ -996,7 +1002,7 @@
996
1002
  { type: i0.Component, args: [{
997
1003
  selector: 'aup-card-stack',
998
1004
  template: "<div class=\"card-container\">\n <ng-content></ng-content>\n</div>\n<div class=\"footer\">\n <div class=\"add-card-container\" *ngIf=\"addCardCommand.enabled.value\" [pectinCommand]=\"addCardCommand\">\n <aup-command-face *ngIf=\"addCardFace\" [faces]=\"[addCardFace]\"></aup-command-face>\n <aup-icon *ngIf=\"!addCardFace\" icon=\"mat:add\"></aup-icon>\n </div>\n\n <div class=\"add-card-template\" *ngIf=\"addCardTemplate\">\n <ng-container [ngTemplateOutlet]=\"addCardTemplate\"></ng-container>\n </div>\n <ng-content select=\"[aup-card-stack-footer]\"></ng-content>\n</div>\n",
999
- styles: [":host{--resolved-card-gap:var(--card-gap,16px);--resolved-card-height:var(--card-height,auto);--resolved-card-min-height:var(--card-min-height,auto);--resolved-card-background:var(--card-background,#fcfcfb);flex:1;display:block;background:var(--resolved-card-background)}.card-container{display:grid;grid-template-columns:1fr;grid-auto-rows:minmax(var(--resolved-card-min-height),var(--resolved-card-height));grid-gap:var(--resolved-card-gap);box-sizing:border-box;padding:var(--resolved-card-gap);max-width:100%}.footer{align-items:stretch;padding:0 var(--resolved-card-gap) var(--resolved-card-gap)}.add-card-container,.footer{display:flex;flex-direction:column}.add-card-container{width:var(--resolved-card-width);height:var(--resolved-card-height);min-height:var(--resolved-card-min-height);align-items:center;justify-content:center;box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:rgba(0,0,0,.54);background-color:hsla(0,0%,100%,.8);transition:all .28s cubic-bezier(.4,0,.2,1)}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{transition:box-shadow .28s cubic-bezier(.4,0,.2,1);transition:all .28s cubic-bezier(.4,0,.2,1);border-color:transparent;background-color:#fff;color:rgba(0,0,0,.54)}.add-card-container:hover:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.add-card-template-container{width:var(--resolved-card-width);height:var(--resolved-card-height);display:flex;flex-direction:column;align-items:stretch;justify-content:stretch}"]
1005
+ styles: [":host{--resolved-card-gap:var(--card-gap,16px);--resolved-card-height:var(--card-height,auto);--resolved-card-min-height:var(--card-min-height,auto);--resolved-card-background:var(--card-background,#fcfcfb);flex:1;display:block;background:var(--resolved-card-background)}.card-container{display:grid;grid-template-columns:1fr;grid-auto-rows:minmax(var(--resolved-card-min-height),var(--resolved-card-height));grid-gap:var(--resolved-card-gap);box-sizing:border-box;padding:var(--resolved-card-gap);max-width:100%}.footer{align-items:stretch;padding:0 var(--resolved-card-gap) var(--resolved-card-gap)}.add-card-container,.footer{display:flex;flex-direction:column}.add-card-container{width:var(--resolved-card-width);height:var(--resolved-card-height);min-height:var(--resolved-card-min-height);align-items:center;justify-content:center;transition:box-shadow .28s cubic-bezier(.4,0,.2,1);box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:rgba(0,0,0,.54);background-color:hsla(0,0%,100%,.8)}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);border-color:transparent;background-color:#fff;color:rgba(0,0,0,.54)}.add-card-template-container{width:var(--resolved-card-width);height:var(--resolved-card-height);display:flex;flex-direction:column;align-items:stretch;justify-content:stretch}"]
1000
1006
  },] }
1001
1007
  ];
1002
1008
  CardStackComponent.ctorParameters = function () { return []; };
@@ -5708,7 +5714,7 @@
5708
5714
  ActivityContainerComponent.decorators = [
5709
5715
  { type: i0.Component, args: [{
5710
5716
  selector: 'aup-activity-container',
5711
- template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\">\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <aup-busy-overlay [busyModel]=\"busy\">\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </aup-busy-overlay>\n </mat-tab>\n</mat-tab-group>\n",
5717
+ template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\">\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <aup-busy-overlay [busyModel]=\"busy\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </aup-busy-overlay>\n </mat-tab>\n</mat-tab-group>\n",
5712
5718
  styles: [":host{display:flex;flex-direction:column}aup-busy-overlay,mat-tab-group{flex:1}"]
5713
5719
  },] }
5714
5720
  ];
@@ -6229,7 +6235,7 @@
6229
6235
  { type: i0.Component, args: [{
6230
6236
  selector: 'aup-add-card-activity',
6231
6237
  template: "<aup-in-place-interaction-context [animateFirstActivity]=\"false\" [pectinCommand]=\"startActivityCommand\">\n <aup-command *ngIf=\"isRenderAsButton()\" [command]=\"startActivityCommand\" [faceModel]=\"faceModel\" [alignFace]=\"alignFace\"></aup-command>\n <section *ngIf=\"isRenderAsCard()\" class=\"face-wrapper\">\n <aup-command-face class=\"mat-button\" [faces]=\"faceList.value\"></aup-command-face>\n </section>\n</aup-in-place-interaction-context>\n",
6232
- styles: [":host{display:flex;flex-direction:column;align-items:stretch;background-color:#fff}:host[interactionStyle=inline][renderas=card]:not(.active){box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:rgba(0,0,0,.54);background-color:hsla(0,0%,100%,.8);transition:all .28s cubic-bezier(.4,0,.2,1)}:host[interactionStyle=inline][renderas=card]:not(.active):hover{transition:box-shadow .28s cubic-bezier(.4,0,.2,1);transition:all .28s cubic-bezier(.4,0,.2,1);border-color:transparent;background-color:#fff;color:rgba(0,0,0,.54)}:host[interactionStyle=inline][renderas=card]:not(.active):hover:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}:host[interactionStyle=modal][renderas=card]{box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:rgba(0,0,0,.54);background-color:hsla(0,0%,100%,.8);transition:all .28s cubic-bezier(.4,0,.2,1)}:host[interactionStyle=modal][renderas=card]:hover{transition:box-shadow .28s cubic-bezier(.4,0,.2,1);transition:all .28s cubic-bezier(.4,0,.2,1);border-color:transparent;background-color:#fff;color:rgba(0,0,0,.54)}:host[interactionStyle=modal][renderas=card]:hover:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}:host-context(aup-card-container)[renderas=button]{align-self:start}section.face-wrapper{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}aup-in-place-interaction-context{flex:1}aup-in-place-interaction-context.active{border:3px solid #6273c7;border-radius:4px;overflow:hidden}"]
6238
+ styles: [":host{display:flex;flex-direction:column;align-items:stretch;background-color:#fff}:host[interactionStyle=inline][renderas=card]:not(.active){transition:box-shadow .28s cubic-bezier(.4,0,.2,1);box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:rgba(0,0,0,.54);background-color:hsla(0,0%,100%,.8)}:host[interactionStyle=inline][renderas=card]:not(.active):hover{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}:host[interactionStyle=inline][renderas=card]:not(.active):hover{border-color:transparent;background-color:#fff;color:rgba(0,0,0,.54)}:host[interactionStyle=modal][renderas=card]{transition:box-shadow .28s cubic-bezier(.4,0,.2,1);box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:rgba(0,0,0,.54);background-color:hsla(0,0%,100%,.8)}:host[interactionStyle=modal][renderas=card]:hover{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}:host[interactionStyle=modal][renderas=card]:hover{border-color:transparent;background-color:#fff;color:rgba(0,0,0,.54)}:host-context(aup-card-container)[renderas=button]{align-self:start}section.face-wrapper{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}aup-in-place-interaction-context{flex:1}aup-in-place-interaction-context.active{border:3px solid #6273c7;border-radius:4px;overflow:hidden}"]
6233
6239
  },] }
6234
6240
  ];
6235
6241
  exports.AddCardActivityComponent.ctorParameters = function () { return [
@@ -6379,6 +6385,7 @@
6379
6385
  var self = this;
6380
6386
  var overlayRef = this._overlay.create({
6381
6387
  hasBackdrop: false,
6388
+ disposeOnNavigation: true,
6382
6389
  panelClass: 'aup-popup-interaction-panel',
6383
6390
  positionStrategy: this._overlay.position()
6384
6391
  .flexibleConnectedTo(this._element)
@@ -6517,12 +6524,21 @@
6517
6524
  exports.InputActivity = /** @class */ (function (_super) {
6518
6525
  __extends(InputActivity, _super);
6519
6526
  function InputActivity(data) {
6520
- var _this = _super.call(this) || this;
6527
+ var _this = this;
6528
+ var _a, _b;
6529
+ _this = _super.call(this) || this;
6521
6530
  _this.data = data;
6522
6531
  _this.class = 'aup-input-activity';
6523
6532
  var form = new pectin.DirtyTrackingForm();
6524
6533
  _this.valueModel = form.valueModel(_this.data.initialValue);
6525
6534
  _this.valueModel.validateUsing(data.validators || []);
6535
+ // TODO: move to global configuration
6536
+ _this.confirmFace = (_a = data.confirmFace) !== null && _a !== void 0 ? _a : {
6537
+ icon: function () { return 'mat:check'; }
6538
+ };
6539
+ _this.cancelFace = (_b = data.cancelFace) !== null && _b !== void 0 ? _b : {
6540
+ icon: function () { return 'mat:clear'; }
6541
+ };
6526
6542
  _this.confirmCommand = pectin.Command.create(function () { return __awaiter(_this, void 0, void 0, function () {
6527
6543
  var self_1, allGood_1, result, e_1;
6528
6544
  return __generator(this, function (_c) {
@@ -6576,6 +6592,15 @@
6576
6592
  InputActivity.prototype.onActivityReady = function () {
6577
6593
  this.valueModel.focusContext.requestFocus();
6578
6594
  };
6595
+ InputActivity.prototype.onEscape = function () {
6596
+ if (this.shouldCancelOnEscape() && this.cancelCommand.enabled.value) {
6597
+ this.cancelCommand.execute();
6598
+ }
6599
+ };
6600
+ InputActivity.prototype.shouldCancelOnEscape = function () {
6601
+ return ___namespace.isNil(this.data.cancelOnEscape) // we default to true..
6602
+ || this.data.cancelOnEscape;
6603
+ };
6579
6604
  return InputActivity;
6580
6605
  }(Activity));
6581
6606
  exports.InputActivity.decorators = [
@@ -6586,7 +6611,8 @@
6586
6611
  ]; };
6587
6612
  exports.InputActivity.propDecorators = {
6588
6613
  class: [{ type: i0.HostBinding, args: ['class',] }],
6589
- layout: [{ type: i0.Input }, { type: i0.HostBinding, args: ['attr.layout',] }]
6614
+ layout: [{ type: i0.Input }, { type: i0.HostBinding, args: ['attr.layout',] }],
6615
+ onEscape: [{ type: i0.HostListener, args: ['keydown.escape',] }]
6590
6616
  };
6591
6617
  (function (InputActivity) {
6592
6618
  InputActivity.Layout = typescriptStringEnums.Enum({
@@ -6605,7 +6631,7 @@
6605
6631
  StringInputActivity.decorators = [
6606
6632
  { type: i0.Component, args: [{
6607
6633
  selector: 'aup-string-input-activity',
6608
- template: "\n <aup-string-input [valueModel]=\"valueModel\"\n [label]=\"data.label\"\n [placeholder]=\"data.placeholder\"\n [command.enter]=\"confirmCommand\"\n [command.escape]=\"cancelCommand\"></aup-string-input>\n <aup-activity-actions [layout]=\"layout\" align=\"end\" [faces]=\"data.buttonStyle\"></aup-activity-actions>\n "
6634
+ template: "\n <aup-string-input [valueModel]=\"valueModel\"\n [label]=\"data.label\"\n [placeholder]=\"data.placeholder\"\n [command.enter]=\"confirmCommand\"\n [command.escape]=\"cancelCommand\"></aup-string-input>\n <aup-activity-actions [layout]=\"layout\" align=\"end\"\n [confirmFace]=\"confirmFace\"\n [cancelFace]=\"cancelFace\"\n ></aup-activity-actions>\n "
6609
6635
  },] }
6610
6636
  ];
6611
6637
 
@@ -6639,7 +6665,7 @@
6639
6665
  SelectInputActivity.decorators = [
6640
6666
  { type: i0.Component, args: [{
6641
6667
  selector: 'aup-select-input-activity',
6642
- template: "\n <aup-select-input [valueModel]=\"valueModel\"\n [label]=\"data.label\"\n [placeholder]=\"data.placeholder\"\n [command.enter]=\"confirmCommand\"\n [command.escape]=\"cancelCommand\"\n [options]=\"options\"\n [optionLabelFormat]=\"optionLabelFormat\"\n ></aup-select-input>\n <aup-activity-actions [layout]=\"layout\" align=\"end\" [faces]=\"data.buttonStyle\"\n ></aup-activity-actions>\n "
6668
+ template: "\n <aup-select-input [valueModel]=\"valueModel\"\n [label]=\"data.label\"\n [placeholder]=\"data.placeholder\"\n [command.enter]=\"confirmCommand\"\n [command.escape]=\"cancelCommand\"\n [options]=\"options\"\n [optionLabelFormat]=\"optionLabelFormat\"\n ></aup-select-input>\n <aup-activity-actions [layout]=\"layout\" align=\"end\"\n [confirmFace]=\"confirmFace\"\n [cancelFace]=\"cancelFace\"\n ></aup-activity-actions>\n "
6643
6669
  },] }
6644
6670
  ];
6645
6671
 
@@ -6953,7 +6979,8 @@
6953
6979
  var self = this;
6954
6980
  return {
6955
6981
  initialValue: self.editorModel.valueModel.value,
6956
- buttonStyle: { confirm: self.saveFace.value, cancel: self.cancelFace.value },
6982
+ confirmFace: self.saveFace.value,
6983
+ cancelFace: self.cancelFace.value,
6957
6984
  placeholder: self.placeHolderModel.value,
6958
6985
  label: self.label,
6959
6986
  layout: exports.InputActivity.Layout.INLINE,
@@ -7064,6 +7091,7 @@
7064
7091
  forms.FormsModule,
7065
7092
  input.MatInputModule,
7066
7093
  formField.MatFormFieldModule,
7094
+ a11y.A11yModule
7067
7095
  ],
7068
7096
  declarations: [
7069
7097
  ActivityContainerComponent,