@coolon/angular-ui-powerups 3.17.2 → 3.18.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 (60) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/assets/activities.scss +66 -9
  3. package/assets/form.scss +2 -0
  4. package/assets/interaction.scss +2 -0
  5. package/assets/mixins.scss +6 -5
  6. package/assets/styles.scss +33 -15
  7. package/assets/table.scss +13 -6
  8. package/bundles/coolon-angular-ui-powerups.umd.js +74 -44
  9. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  10. package/bundles/coolon-angular-ui-powerups.umd.min.js +1 -1
  11. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
  12. package/coolon-angular-ui-powerups.metadata.json +1 -1
  13. package/esm2015/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  14. package/esm2015/lib/components/card-container/card-container.component.js +1 -1
  15. package/esm2015/lib/components/card-container/card-container.component.metadata.json +1 -1
  16. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  17. package/esm2015/lib/components/table/abstract-table-model.js +5 -3
  18. package/esm2015/lib/components/table/abstract-table-model.js.map +1 -1
  19. package/esm2015/lib/components/table/abstract-table-model.metadata.json +1 -1
  20. package/esm2015/lib/components/table/table.component.js +12 -8
  21. package/esm2015/lib/components/table/table.component.js.map +1 -1
  22. package/esm2015/lib/components/table/table.component.metadata.json +1 -1
  23. package/esm2015/lib/interaction/components/activity-body/activity-body.component.html.shim.ngstyle.js.map +1 -0
  24. package/esm2015/lib/interaction/components/activity-body/activity-body.component.js +21 -0
  25. package/esm2015/lib/interaction/components/activity-body/activity-body.component.js.map +1 -0
  26. package/esm2015/lib/interaction/components/{activity-content → activity-body}/activity-body.component.metadata.json +1 -1
  27. package/esm2015/lib/interaction/components/activity-body/activity-body.component.ngfactory.js.map +1 -0
  28. package/esm2015/lib/interaction/components/activity-title/activity-title.component.js +22 -13
  29. package/esm2015/lib/interaction/components/activity-title/activity-title.component.js.map +1 -1
  30. package/esm2015/lib/interaction/components/activity-title/activity-title.component.metadata.json +1 -1
  31. package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js +1 -1
  32. package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js.map +1 -1
  33. package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.metadata.json +1 -1
  34. package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js +5 -2
  35. package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js.map +1 -1
  36. package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.metadata.json +1 -1
  37. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +5 -2
  38. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js.map +1 -1
  39. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.metadata.json +1 -1
  40. package/esm2015/lib/interaction/exports.js +1 -1
  41. package/esm2015/lib/interaction/exports.js.map +1 -1
  42. package/esm2015/lib/interaction/exports.metadata.json +1 -1
  43. package/esm2015/lib/interaction/interaction.module.js +1 -1
  44. package/esm2015/lib/interaction/interaction.module.js.map +1 -1
  45. package/esm2015/lib/interaction/interaction.module.metadata.json +1 -1
  46. package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  47. package/fesm2015/coolon-angular-ui-powerups.js +56 -41
  48. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  49. package/lib/components/table/table.component.d.ts +2 -2
  50. package/lib/interaction/components/{activity-content → activity-body}/activity-body.component.d.ts +1 -0
  51. package/lib/interaction/components/activity-title/activity-title.component.d.ts +11 -0
  52. package/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.d.ts +1 -0
  53. package/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.d.ts +1 -0
  54. package/lib/interaction/exports.d.ts +1 -1
  55. package/package.json +1 -1
  56. package/assets/typography.scss +0 -5
  57. package/esm2015/lib/interaction/components/activity-content/activity-body.component.html.shim.ngstyle.js.map +0 -1
  58. package/esm2015/lib/interaction/components/activity-content/activity-body.component.js +0 -26
  59. package/esm2015/lib/interaction/components/activity-content/activity-body.component.js.map +0 -1
  60. package/esm2015/lib/interaction/components/activity-content/activity-body.component.ngfactory.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [3.18.0](https://bitbucket.org/coolon/angular-ui-powerups/compare/v3.17.3...v3.18.0) (2021-03-01)
6
+
7
+
8
+ ### Features
9
+
10
+ * #AUP-119 ([e54ec11](https://bitbucket.org/coolon/angular-ui-powerups/commit/e54ec11fa5002fd2bfcec289a08d42e498eda6c1)), closes [#AUP-119](https://bitbucket.org/coolon/angular-ui-powerups/issues/AUP-119)
11
+
12
+ ### [3.17.3](https://bitbucket.org/coolon/angular-ui-powerups/compare/v3.17.2...v3.17.3) (2021-03-01)
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * last visible column not computing until visibility was changed ([f3e70d6](https://bitbucket.org/coolon/angular-ui-powerups/commit/f3e70d6476a2433afc07e623907dc38e5552f43c))
18
+
5
19
  ### [3.17.2](https://bitbucket.org/coolon/angular-ui-powerups/compare/v3.17.1...v3.17.2) (2021-02-28)
6
20
 
7
21
 
@@ -1,12 +1,69 @@
1
- @import "./typography";
1
+ @use "~@angular/material/theming" as ng;
2
+ @use "sass:map";
2
3
 
3
- aup-activity-title {
4
- font-family: mat-font-family($typographyConfig);
5
- font-size: mat-font-size($typographyConfig, title);
6
- line-height: mat-line-height($typographyConfig, title);
7
- letter-spacing: mat-letter-spacing($typographyConfig, title);
8
- }
4
+ @mixin apply-theme($color-config, $typography-config) {
5
+
6
+ :root {
7
+ --aup-activity-padding: var(--default-padding);
8
+ }
9
+
10
+ // Extract the palettes you need from the theme definition.
11
+ $primary-palette: map-get($color-config, primary);
12
+ $accent-palette: map-get($color-config, accent);
13
+ $warn-palette: map-get($color-config, warn);
14
+
15
+ .dialog-interaction-context {
16
+ --aup-activity-padding: calc(var(--default-padding) / 1.5);
17
+ }
18
+
19
+ aup-activity-title {
20
+ display: block;
21
+ font-family: ng.mat-font-family($typography-config);
22
+ font-size: ng.mat-font-size($typography-config, title);
23
+ line-height: ng.mat-line-height($typography-config, title);
24
+ letter-spacing: ng.mat-letter-spacing($typography-config, title);
25
+ padding: var(--aup-activity-padding);
26
+
27
+ &:not(.transparent-background) {
28
+ padding: calc(var(--aup-activity-padding) / 2) var(--aup-activity-padding);
29
+ }
30
+
31
+ &[color=primary] {
32
+ $palette: $primary-palette;
33
+ color: ng.mat-color($palette, default-contrast);
34
+ background-color: ng.mat-color($palette, default);
35
+ }
9
36
 
10
- aup-activity-body {
11
- padding: var(--default-padding) 0;
37
+ &[color=accent] {
38
+ $palette: $accent-palette;
39
+ color: ng.mat-color($palette, default-contrast);
40
+ background-color: ng.mat-color($palette, default);
41
+ }
42
+
43
+ &[color=warn] {
44
+ $palette: $warn-palette;
45
+ color: ng.mat-color($palette, default-contrast);
46
+ background-color: ng.mat-color($palette, default);
47
+ }
48
+ }
49
+
50
+ aup-activity-body {
51
+ display: block;
52
+
53
+ &:not(.full-width) {
54
+ padding-left: var(--aup-activity-padding);
55
+ padding-right: var(--aup-activity-padding);
56
+ }
57
+ }
58
+
59
+ aup-activity-title:not(.transparent-background) + aup-activity-body {
60
+ padding-top: var(--aup-activity-padding);
61
+ }
62
+
63
+ aup-activity-actions {
64
+ display: block;
65
+ padding: var(--aup-activity-padding);
66
+ }
12
67
  }
68
+
69
+
package/assets/form.scss CHANGED
@@ -1,3 +1,5 @@
1
+ @import "~@angular/material/theming";
2
+
1
3
  .aup-input-component {
2
4
 
3
5
  display: block;
@@ -1,3 +1,5 @@
1
+ @import "~@angular/material/theming";
2
+
1
3
  .dialog-interaction-context {
2
4
  max-width: 95vw !important;
3
5
  max-height: 95vh !important;
@@ -1,8 +1,9 @@
1
+ @use "~@angular/material/theming" as ng;
2
+
1
3
  @mixin elevate-on-hover($height:2) {
2
- @include mat-elevation-transition;
3
- //@include mat-elevation(2);
4
+ @include ng.mat-elevation-transition();
4
5
  &:hover {
5
- @include mat-elevation($height);
6
+ @include ng.mat-elevation($height);
6
7
  }
7
8
  }
8
9
 
@@ -15,11 +16,11 @@
15
16
  cursor: pointer;
16
17
  color: $color;
17
18
  background-color: $background-color;
18
- transition: all $mat-elevation-transition-duration $mat-elevation-transition-timing-function;
19
+ transition: all ng.$mat-elevation-transition-duration ng.$mat-elevation-transition-timing-function;
19
20
 
20
21
  &:hover {
21
22
  @include elevate-on-hover(4);
22
- transition: all $mat-elevation-transition-duration $mat-elevation-transition-timing-function;
23
+ transition: all ng.$mat-elevation-transition-duration ng.$mat-elevation-transition-timing-function;
23
24
  border-color: transparent;
24
25
  background-color: $background-hover-color;
25
26
  color: $hover-color;
@@ -1,17 +1,35 @@
1
- @import "~@angular/material/theming";
1
+ @use "~@angular/material/theming" as ng;
2
2
 
3
- :root {
4
- --aup-default-padding: var(--default-padding, 18px);
5
- --aup-default-background: white;
6
- }
3
+ @use "./mixins";
4
+ @use "./activities";
5
+ @use "./router";
6
+ @use "./tabs";
7
+ @use "./interaction";
8
+ @use "./form";
9
+ @use "./table";
10
+ @use "./commands";
11
+ @use "./icons";
12
+
13
+
14
+ @mixin apply-light-theme($primary, $accent, $warn:ng.mat-palette(ng.$mat-red), $typography: ng.mat-typography-config()) {
15
+
16
+ $theme: ng.mat-light-theme((
17
+ color: (
18
+ primary: $primary,
19
+ accent: $accent,
20
+ warn: $warn,
21
+ )
22
+ ));
7
23
 
8
- @import "./mixins";
9
- @import "./typography";
10
- @import "./activities";
11
- @import "./router";
12
- @import "./tabs";
13
- @import "./interaction";
14
- @import "./form";
15
- @import "./table";
16
- @import "./commands";
17
- @import "./icons";
24
+ @include ng.mat-core($typography);
25
+ @include ng.angular-material-theme($theme);
26
+
27
+ $color-config: ng.mat-get-color-config($theme);
28
+
29
+ @include activities.apply-theme($color-config, $typography);
30
+
31
+ :root {
32
+ --aup-default-padding: var(--default-padding, 18px);
33
+ --aup-default-background: white;
34
+ }
35
+ }
package/assets/table.scss CHANGED
@@ -16,10 +16,18 @@ aup-table {
16
16
  }
17
17
  }
18
18
 
19
- th.mat-header-cell:first-of-type, td.mat-cell:first-of-type, td.mat-footer-cell:first-of-type {
19
+ th.mat-header-cell:first-of-type,
20
+ td.mat-cell:first-of-type,
21
+ td.mat-footer-cell:first-of-type {
20
22
  padding-left: 0;
21
23
  }
22
24
 
25
+ th.mat-header-cell:last-of-type,
26
+ td.mat-cell:last-of-type,
27
+ td.mat-footer-cell:last-of-type {
28
+ padding-right: 0;
29
+ }
30
+
23
31
  tr {
24
32
  &.enable-hover:hover {
25
33
  background-color: var(--resolved-row-hover-background-color);
@@ -36,7 +44,7 @@ aup-table {
36
44
 
37
45
  //TODO: think about this a bit more. Table with acts a bit like flex:
38
46
  // - columns for which the width is 0 (or not defined) will expand equally to fill the table.
39
- // - columns with an explicit with will try to remain that width, but will expand to fit thier content.
47
+ // - columns with an explicit with will try to remain that width, but will expand to fit their content.
40
48
  // - extra space will be allocated to columns that have the same width... e.g. setting all columns to 1px results
41
49
  // in the same scenario as not specifying the width.
42
50
  .mat-cell, .mat-header-cell {
@@ -45,6 +53,7 @@ aup-table {
45
53
  white-space: nowrap;
46
54
  }
47
55
  }
56
+
48
57
  }
49
58
 
50
59
  aup-table-cell-renderer, aup-table-header-cell-renderer {
@@ -53,14 +62,12 @@ aup-table {
53
62
  align-items: stretch;
54
63
  justify-content: center;
55
64
  height: 100%;
65
+ min-height: 47px; // same as mat table row height - border bottom.
56
66
 
57
67
  padding-left: var(--default-column-gap);
58
-
59
- &.last-column {
68
+ &.last-visible-column {
60
69
  padding-right: var(--default-column-gap);
61
70
  }
62
-
63
- min-height: 47px; // same as mat table row height - border bottom.
64
71
  }
65
72
 
66
73
  aup-table-cell-renderer {
@@ -729,7 +729,7 @@
729
729
  { type: i0.Component, args: [{
730
730
  selector: 'aup-card-container',
731
731
  template: "<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\n</div>\n",
732
- styles: [":root{--aup-default-background:#fff;--aup-default-padding:var(--default-padding,18px)}aup-activity-title{font-family:Roboto,Helvetica Neue,sans-serif;font-size:20px;letter-spacing:normal;line-height:32px}aup-activity-body{padding:var(--default-padding) 0}.router-outlet-container>*{bottom:0;left:0;position:absolute;right:0;top:0}[no-tab-header]>mat-tab-header{display:none}[full-height-tabs] .mat-tab-body-wrapper,mat-tab-group.full-height-tabs .mat-tab-body-wrapper{flex:1}[full-height-tabs] .mat-tab-body-wrapper .mat-tab-body-content,[full-height-tabs] .mat-tab-body-wrapper mat-tab-body,mat-tab-group.full-height-tabs .mat-tab-body-wrapper .mat-tab-body-content,mat-tab-group.full-height-tabs .mat-tab-body-wrapper mat-tab-body{display:flex;flex-direction:column;justify-content:stretch}.dialog-interaction-context,.dialog-interaction-context mat-dialog-container{max-height:95vh!important;max-width:95vw!important}.dialog-interaction-context mat-dialog-container{padding:0}.activity-outlet-wrapper{align-items:stretch;display:flex;flex-direction:column}.aup-popup-interaction-panel{background:var(--aup-default-background,#fff);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);transition:box-shadow .28s cubic-bezier(.4,0,.2,1)}.aup-input-activity{padding:calc(var(--aup-default-padding)/2)}.aup-input-component{display:block}.aup-input-component input,.aup-input-component mat-form-field{width:100%}.aup-input-component input mat-hint.faux-error,.aup-input-component mat-form-field mat-hint.faux-error{color:#f44336}.aup-input-component mat-form-field .mat-form-field-prefix{align-items:center;align-self:flex-end;display:inline-flex;flex-direction:row;height:35px}.aup-input-component mat-form-field .mat-form-field-suffix .mat-icon-button{line-height:2.5em}.aup-input-component.dense mat-form-field .mat-form-field-infix{border-top:none}.aup-input-component.dense mat-form-field .mat-form-field-flex{padding-top:0}.aup-input-component.dense mat-form-field .mat-form-field-wrapper{border-bottom:0;padding-bottom:0}.aup-input-component.dense mat-form-field .mat-form-field-underline{bottom:0}.aup-input-component.dense mat-form-field.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label-wrapper{display:none}.aup-input-component.dense mat-form-field.mat-form-field-appearance-standard.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper{transform:translateY(0)}aup-table-cell-renderer>.aup-input-component .mat-form-field-flex{padding-top:0}aup-table-cell-renderer>.aup-input-component .mat-form-field-infix{width:0}aup-table-cell-renderer>.aup-input-component .mat-form-field-label-wrapper{display:none}aup-table{--default-column-gap:var(--column-gap,24px);--resolved-row-hover-background-color:var(--row-hover-background-color,rgba(0,0,0,0.05));--resolved-row-selected-background-color:var(--row-selected-background-color,rgba(0,0,255,0.04))}aup-table.hide-header .mat-table thead,aup-table .mat-table td.hide,aup-table .mat-table th.hide{display:none}aup-table .mat-table td.mat-cell:first-of-type,aup-table .mat-table td.mat-footer-cell:first-of-type,aup-table .mat-table th.mat-header-cell:first-of-type{padding-left:0}aup-table .mat-table tr.enable-hover:hover{background-color:var(--resolved-row-hover-background-color)}aup-table .mat-table tr.aup-row-selected,aup-table .mat-table tr.aup-row-selected.enable-hover:hover{background-color:var(--resolved-row-selected-background-color)}aup-table .mat-table td.enable-cursor{cursor:pointer}aup-table .mat-table .mat-cell:not(.flex),aup-table .mat-table .mat-header-cell:not(.flex){white-space:nowrap;width:1px}aup-table aup-table-cell-renderer,aup-table aup-table-header-cell-renderer{align-items:stretch;display:flex;flex-direction:column;height:100%;justify-content:center;min-height:47px;padding-left:var(--default-column-gap)}aup-table aup-table-cell-renderer.last-column,aup-table aup-table-header-cell-renderer.last-column{padding-right:var(--default-column-gap)}aup-table aup-table-cell-renderer.fillCell{justify-content:stretch;padding-left:0!important}aup-table aup-table-cell-renderer.padChild>:first-child{flex:1;padding-left:var(--default-column-gap)}:root{--aup-command-face-icon-gap:8px;--aup-fa-icon-width:18px;--aup-icon-width:24px}aup-icon{--fa-icon-offset:calc((var(--aup-icon-width) - var(--aup-fa-icon-width))/2);position:relative}aup-icon fa-icon .svg-inline--fa{height:var(--aup-fa-icon-width)!important;left:var(--fa-icon-offset);position:absolute;top:var(--fa-icon-offset);width:var(--aup-fa-icon-width)!important}.mat-menu-panel aup-icon .svg-inline--fa{opacity:.54}:host{--resolved-card-background:var(--card-background,#fcfcfb);--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-width:var(--card-width,300px);background:var(--resolved-card-background);display:block;flex:1}.card-container{box-sizing:border-box;display:-ms-grid;display:grid;grid-gap:var(--resolved-card-gap);grid-template-columns:repeat(auto-fill,var(--resolved-card-width));grid-template-rows:repeat(auto-fit,minmax(var(--resolved-card-min-height),var(--resolved-card-height)));max-width:100%;min-height:calc(var(--resolved-card-height) + 2*var(--resolved-card-gap));min-width:calc(var(--resolved-card-width) + 2*var(--resolved-card-gap));padding:var(--resolved-card-gap);width:calc((var(--resolved-card-width) + var(--resolved-card-gap))*2 + var(--grid-gap))}.add-card-container{align-items:center;background-color:hsla(0,0%,100%,.8);border:2px dashed rgba(0,0,0,.1);border-radius:6px;box-sizing:border-box;color:rgba(0,0,0,.54);cursor:pointer;display:flex;flex-direction:column;font-weight:300;height:var(--resolved-card-height);justify-content:center;min-height:var(--resolved-card-min-height);transition:all .28s cubic-bezier(.4,0,.2,1);width:var(--resolved-card-width)}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{background-color:#fff;border-color:transparent;color:rgba(0,0,0,.54);transition:box-shadow .28s cubic-bezier(.4,0,.2,1);transition:all .28s cubic-bezier(.4,0,.2,1)}.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{align-items:stretch;display:flex;flex-direction:column;height:var(--resolved-card-height);justify-content:stretch;width:var(--resolved-card-width)}"]
732
+ styles: [":host{--resolved-card-background:var(--card-background,#fcfcfb);--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-width:var(--card-width,300px);background:var(--resolved-card-background);display:block;flex:1}.card-container{box-sizing:border-box;display:-ms-grid;display:grid;grid-gap:var(--resolved-card-gap);grid-template-columns:repeat(auto-fill,var(--resolved-card-width));grid-template-rows:repeat(auto-fit,minmax(var(--resolved-card-min-height),var(--resolved-card-height)));max-width:100%;min-height:calc(var(--resolved-card-height) + 2*var(--resolved-card-gap));min-width:calc(var(--resolved-card-width) + 2*var(--resolved-card-gap));padding:var(--resolved-card-gap);width:calc((var(--resolved-card-width) + var(--resolved-card-gap))*2 + var(--grid-gap))}.add-card-container{align-items:center;background-color:hsla(0,0%,100%,.8);border:2px dashed rgba(0,0,0,.1);border-radius:6px;box-sizing:border-box;color:rgba(0,0,0,.54);cursor:pointer;display:flex;flex-direction:column;font-weight:300;height:var(--resolved-card-height);justify-content:center;min-height:var(--resolved-card-min-height);transition:all .28s cubic-bezier(.4,0,.2,1);width:var(--resolved-card-width)}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{background-color:#fff;border-color:transparent;color:rgba(0,0,0,.54);transition:box-shadow .28s cubic-bezier(.4,0,.2,1);transition:all .28s cubic-bezier(.4,0,.2,1)}.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{align-items:stretch;display:flex;flex-direction:column;height:var(--resolved-card-height);justify-content:stretch;width:var(--resolved-card-width)}"]
733
733
  },] }
734
734
  ];
735
735
  CardContainerComponent.ctorParameters = function () { return []; };
@@ -3105,8 +3105,11 @@
3105
3105
  return _this;
3106
3106
  }
3107
3107
  VisibleColumnListModel.prototype.addColumn = function (column) {
3108
- this.columns.push(column);
3109
- this.trackSource(column.visible);
3108
+ var _this = this;
3109
+ this.runInTransaction(function () {
3110
+ _this.columns.push(column);
3111
+ _this.trackSource(column.visible);
3112
+ });
3110
3113
  };
3111
3114
  VisibleColumnListModel.prototype.doComputeValue = function () {
3112
3115
  return this.columns.filter(function (c) { return c.visible.value; });
@@ -3178,7 +3181,7 @@
3178
3181
  pectin.assert.isNil(this.selectionColumnModel);
3179
3182
  var columnId = 'selection-column';
3180
3183
  this.selectionColumnModel = new SelectionColumnModel(columnId, function () { return _this.getColumnTextProperties(columnId); }, selectionModel);
3181
- this.addRowClass("aup-row-selected", function (row) { return _this.selectionColumnModel.isSelected(row); });
3184
+ this.addRowClass('aup-row-selected', function (row) { return _this.selectionColumnModel.isSelected(row); });
3182
3185
  return this.addColumn(this.selectionColumnModel);
3183
3186
  };
3184
3187
  AbstractTableModel.prototype.addEditControls = function (saveCommand) {
@@ -3356,7 +3359,7 @@
3356
3359
  // TODO: support user defined header and row heights via css vars.
3357
3360
  _this.headerHeight = new pectin.MutableValueModel(56);
3358
3361
  _this.rowHeight = new pectin.MutableValueModel(48);
3359
- var _a = pectin.Dsl.disposeWith(_this), chain = _a.chain, when = _a.when;
3362
+ var _b = pectin.Dsl.disposeWith(_this), chain = _b.chain, when = _b.when;
3360
3363
  var actualHeaderHeight = chain(_this.showHeaderModel).map(function (show) {
3361
3364
  return show ? _this.headerHeight.value : 0;
3362
3365
  }, { dependsOn: _this.headerHeight });
@@ -3380,7 +3383,7 @@
3380
3383
  configurable: true
3381
3384
  });
3382
3385
  TableComponent.prototype.ngOnInit = function () {
3383
- var _a = pectin.Dsl.disposeWith(this), chain = _a.chain, valueOf = _a.valueOf, before = _a.before, when = _a.when, after = _a.after, observe = _a.observe, switchOn = _a.switchOn;
3386
+ var _b = pectin.Dsl.disposeWith(this), chain = _b.chain, valueOf = _b.valueOf, before = _b.before, when = _b.when, after = _b.after, observe = _b.observe, switchOn = _b.switchOn;
3384
3387
  this.columns = chain(this.tableModel.columns);
3385
3388
  this.columnIds = chain(this.columns).pluck('columnId');
3386
3389
  this.columnsById = chain(this.columns).indexBy('columnId');
@@ -3397,18 +3400,22 @@
3397
3400
  TableComponent.prototype.notifyCellClicked = function (columnModel, row) {
3398
3401
  this.tableModel._notifyCellClicked(columnModel, row);
3399
3402
  };
3400
- TableComponent.prototype.isFirstVisibleColumn = function (column) {
3401
- return this.tableModel.firstVisibleColumn.query().equals(column);
3403
+ // @Trace()
3404
+ TableComponent.prototype.isFirstVisibleColumn = function (columnId) {
3405
+ var _a;
3406
+ return ((_a = this.tableModel.firstVisibleColumn.query().value) === null || _a === void 0 ? void 0 : _a.columnId) === columnId;
3402
3407
  };
3403
- TableComponent.prototype.isLastVisibleColumn = function (column) {
3404
- return this.tableModel.lastVisibleColumn.query().equals(column);
3408
+ // @Trace()
3409
+ TableComponent.prototype.isLastVisibleColumn = function (columnId) {
3410
+ var _a;
3411
+ return ((_a = this.tableModel.lastVisibleColumn.query().value) === null || _a === void 0 ? void 0 : _a.columnId) === columnId;
3405
3412
  };
3406
3413
  return TableComponent;
3407
3414
  }(ResizeAwareComponent));
3408
3415
  TableComponent.decorators = [
3409
3416
  { type: i0.Component, args: [{
3410
3417
  selector: 'aup-table',
3411
- template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"tableModel.dataSource.value\" [trackBy]=\"tableModel.trackBy\">\n\n <ng-container *ngFor=\"let column of columns.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell-renderer [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class.first-column]=\"isFirstVisibleColumn(column)\"\n [class.last-column]=\"isLastVisibleColumn(column)\"\n ></aup-table-header-cell-renderer>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell-renderer [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"tableModel\"\n [editSession]=\"tableModel.getEditSessionFor(row)\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class.first-column]=\"isFirstVisibleColumn(column)\"\n [class.last-column]=\"isLastVisibleColumn(column)\"\n ></aup-table-cell-renderer>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds.value\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\" [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [attr.trackBy]=\"tableModel.trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\n",
3418
+ template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"tableModel.dataSource.value\" [trackBy]=\"tableModel.trackBy\">\n\n <ng-container *ngFor=\"let column of columns.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell-renderer [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class.first-visible-column]=\"isFirstVisibleColumn(column.columnId)\"\n [class.last-visible-column]=\"isLastVisibleColumn(column.columnId)\"\n ></aup-table-header-cell-renderer>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell-renderer [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"tableModel\"\n [editSession]=\"tableModel.getEditSessionFor(row)\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class.first-visible-column]=\"isFirstVisibleColumn(column.columnId)\"\n [class.last-visible-column]=\"isLastVisibleColumn(column.columnId)\"\n ></aup-table-cell-renderer>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds.value\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\" [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [attr.trackBy]=\"tableModel.trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\n",
3412
3419
  styles: [":host{align-items:stretch;display:flex;flex-direction:column}:host table{width:100%}:host.enable-scrolling{min-height:0}:host.enable-scrolling .scroll-container{align-items:stretch;display:flex;flex:1;flex-basis:0;flex-direction:column;overflow-y:scroll}"]
3413
3420
  },] }
3414
3421
  ];
@@ -3420,8 +3427,8 @@
3420
3427
  tableModel: [{ type: i0.Input }],
3421
3428
  showHeaderModel: [{ type: i0.Input }],
3422
3429
  showHeader: [{ type: i0.Input }],
3423
- enableScrolling: [{ type: i0.Input }, { type: i0.HostBinding, args: ["class.enable-scrolling",] }],
3424
- hideHeader: [{ type: i0.HostBinding, args: ["class.hide-header",] }]
3430
+ enableScrolling: [{ type: i0.Input }, { type: i0.HostBinding, args: ['class.enable-scrolling',] }],
3431
+ hideHeader: [{ type: i0.HostBinding, args: ['class.hide-header',] }]
3425
3432
  };
3426
3433
  __decorate([
3427
3434
  pectin.TrackExternal(),
@@ -3432,7 +3439,7 @@
3432
3439
  __metadata("design:type", pectin.ValueModel)
3433
3440
  ], TableComponent.prototype, "showHeaderModel", void 0);
3434
3441
  __decorate([
3435
- pectin.StoreInValueModel("showHeaderModel"),
3442
+ pectin.StoreInValueModel('showHeaderModel'),
3436
3443
  __metadata("design:type", Boolean)
3437
3444
  ], TableComponent.prototype, "showHeader", void 0);
3438
3445
 
@@ -4758,7 +4765,7 @@
4758
4765
  { type: i0.Component, args: [{
4759
4766
  selector: 'aup-alert-dialog',
4760
4767
  template: "<aup-activity-title *ngIf=\"alert.title\">{{alert.title()}}</aup-activity-title>\n<aup-activity-body>\n <p *ngFor=\"let line of alert.content()\">{{line}}</p>\n</aup-activity-body>\n<aup-activity-actions [confirmFace]=\"confirmFace\"></aup-activity-actions>\n",
4761
- styles: [":host{display:block;padding:var(--aup-default-padding)}.mat-dialog-content{margin:0;padding:0}.mat-dialog-actions{align-items:flex-end;justify-content:flex-end;margin-bottom:0!important;padding:0}"]
4768
+ styles: [":host{display:block}.mat-dialog-content{margin:0;padding:0}.mat-dialog-actions{align-items:flex-end;justify-content:flex-end;margin-bottom:0!important;padding:0}"]
4762
4769
  },] }
4763
4770
  ];
4764
4771
  AlertDialogComponent.ctorParameters = function () { return [
@@ -4798,6 +4805,13 @@
4798
4805
  enumerable: false,
4799
4806
  configurable: true
4800
4807
  });
4808
+ Object.defineProperty(ConfirmThenDialogComponent.prototype, "titleColor", {
4809
+ get: function () {
4810
+ return this.isDestructive() ? 'warn' : undefined;
4811
+ },
4812
+ enumerable: false,
4813
+ configurable: true
4814
+ });
4801
4815
  ConfirmThenDialogComponent.prototype.isDestructive = function () {
4802
4816
  return this.confirm.destructive && this.confirm.destructive();
4803
4817
  };
@@ -4806,8 +4820,8 @@
4806
4820
  ConfirmThenDialogComponent.decorators = [
4807
4821
  { type: i0.Component, args: [{
4808
4822
  selector: 'aup-confirmation-dialog',
4809
- template: "<aup-activity-title *ngIf=\"confirm.title\">{{confirm.title()}}</aup-activity-title>\n<aup-activity-body>\n <p *ngFor=\"let line of confirm.content()\">{{line}}</p>\n</aup-activity-body>\n<aup-activity-actions [confirmFace]=\"confirmFace\" [cancelFace]=\"cancelFace\"></aup-activity-actions>\n",
4810
- styles: [":host{display:block;padding:var(--aup-default-padding)}.mat-dialog-content{margin:0;padding:0}.mat-dialog-actions{align-items:flex-end;justify-content:flex-end;margin-bottom:0!important;padding:0}"]
4823
+ template: "<aup-activity-title *ngIf=\"confirm.title\" [color]=\"titleColor\">{{confirm.title()}}</aup-activity-title>\n<aup-activity-body>\n <p *ngFor=\"let line of confirm.content()\">{{line}}</p>\n</aup-activity-body>\n<aup-activity-actions [confirmFace]=\"confirmFace\" [cancelFace]=\"cancelFace\"></aup-activity-actions>\n",
4824
+ styles: [":host{display:block}.mat-dialog-content{margin:0;padding:0}.mat-dialog-actions{align-items:flex-end;justify-content:flex-end;margin-bottom:0!important;padding:0}"]
4811
4825
  },] }
4812
4826
  ];
4813
4827
  ConfirmThenDialogComponent.ctorParameters = function () { return [
@@ -4838,6 +4852,13 @@
4838
4852
  }
4839
4853
  ConfirmationDialogComponent.prototype.ngOnInit = function () {
4840
4854
  };
4855
+ Object.defineProperty(ConfirmationDialogComponent.prototype, "titleColor", {
4856
+ get: function () {
4857
+ return this.isDestructive() ? 'warn' : undefined;
4858
+ },
4859
+ enumerable: false,
4860
+ configurable: true
4861
+ });
4841
4862
  ConfirmationDialogComponent.prototype.isDestructive = function () {
4842
4863
  return this.confirm.destructive && this.confirm.destructive();
4843
4864
  };
@@ -4846,8 +4867,8 @@
4846
4867
  ConfirmationDialogComponent.decorators = [
4847
4868
  { type: i0.Component, args: [{
4848
4869
  selector: 'aup-confirmation-dialog',
4849
- template: "<aup-activity-title *ngIf=\"confirm.title\">{{confirm.title()}}</aup-activity-title>\n<aup-activity-body>\n <p *ngFor=\"let line of confirm.content()\">{{line}}</p>\n</aup-activity-body>\n<aup-activity-actions [confirmFace]=\"confirmFace\" [cancelFace]=\"cancelFace\"></aup-activity-actions>\n\n",
4850
- styles: [":host{display:block;padding:var(--aup-default-padding)}.mat-dialog-content{margin:0;padding:0}.mat-dialog-actions{align-items:flex-end;justify-content:flex-end;margin-bottom:0!important;padding:0}"]
4870
+ template: "<aup-activity-title *ngIf=\"confirm.title\" [color]=\"titleColor\">{{confirm.title()}}</aup-activity-title>\n<aup-activity-body>\n <p *ngFor=\"let line of confirm.content()\">{{line}}</p>\n</aup-activity-body>\n<aup-activity-actions [confirmFace]=\"confirmFace\" [cancelFace]=\"cancelFace\"></aup-activity-actions>\n\n",
4871
+ styles: [":host{display:block}.mat-dialog-content{margin:0;padding:0}.mat-dialog-actions{align-items:flex-end;justify-content:flex-end;margin-bottom:0!important;padding:0}"]
4851
4872
  },] }
4852
4873
  ];
4853
4874
  ConfirmationDialogComponent.ctorParameters = function () { return [
@@ -5246,20 +5267,10 @@
5246
5267
  var ActivityBodyComponent = /** @class */ (function (_super) {
5247
5268
  __extends(ActivityBodyComponent, _super);
5248
5269
  function ActivityBodyComponent() {
5249
- return _super !== null && _super.apply(this, arguments) || this;
5270
+ var _this = _super.apply(this, __spread(arguments)) || this;
5271
+ _this.fullWidth = false;
5272
+ return _this;
5250
5273
  }
5251
- // @Input()
5252
- // align: 'start' | 'end' | 'stretch' = 'start';
5253
- //
5254
- // @HostBinding('class.align-end')
5255
- // get alignEnd():boolean {
5256
- // return this.align === 'end'
5257
- // }
5258
- //
5259
- // @HostBinding('class.align-stretch')
5260
- // get alignStretch():boolean {
5261
- // return this.align === 'stretch'
5262
- // }
5263
5274
  ActivityBodyComponent.prototype.ngOnInit = function () {
5264
5275
  };
5265
5276
  return ActivityBodyComponent;
@@ -5271,24 +5282,39 @@
5271
5282
  styles: ["<ng-content></ng-content>\n"]
5272
5283
  },] }
5273
5284
  ];
5285
+ ActivityBodyComponent.propDecorators = {
5286
+ fullWidth: [{ type: i0.Input }, { type: i0.HostBinding, args: ["class.full-width",] }]
5287
+ };
5274
5288
 
5275
5289
  var ActivityTitleComponent = /** @class */ (function (_super) {
5276
5290
  __extends(ActivityTitleComponent, _super);
5277
5291
  function ActivityTitleComponent() {
5278
5292
  return _super !== null && _super.apply(this, arguments) || this;
5279
5293
  }
5280
- // @Input()
5281
- // align: 'start' | 'end' | 'stretch' = 'start';
5282
- //
5283
- // @HostBinding('class.align-end')
5284
- // get alignEnd():boolean {
5285
- // return this.align === 'end'
5286
- // }
5287
- //
5288
- // @HostBinding('class.align-stretch')
5289
- // get alignStretch():boolean {
5290
- // return this.align === 'stretch'
5291
- // }
5294
+ Object.defineProperty(ActivityTitleComponent.prototype, "hasTransparentBackground", {
5295
+ get: function () {
5296
+ return ___default['default'].isNil(this._hasUserTransparentBackground) ? !this._color : this._hasUserTransparentBackground;
5297
+ },
5298
+ /**
5299
+ * Adjusts layout to ensure the title and body are cleanly separated with even
5300
+ * gaps for teh case where the title component has a painted background.
5301
+ */
5302
+ set: function (value) {
5303
+ this._hasUserTransparentBackground = value;
5304
+ },
5305
+ enumerable: false,
5306
+ configurable: true
5307
+ });
5308
+ Object.defineProperty(ActivityTitleComponent.prototype, "color", {
5309
+ get: function () {
5310
+ return this._color;
5311
+ },
5312
+ set: function (color) {
5313
+ this._color = color;
5314
+ },
5315
+ enumerable: false,
5316
+ configurable: true
5317
+ });
5292
5318
  ActivityTitleComponent.prototype.ngOnInit = function () {
5293
5319
  };
5294
5320
  return ActivityTitleComponent;
@@ -5300,6 +5326,10 @@
5300
5326
  styles: [":host{display:block}"]
5301
5327
  },] }
5302
5328
  ];
5329
+ ActivityTitleComponent.propDecorators = {
5330
+ hasTransparentBackground: [{ type: i0.Input }, { type: i0.HostBinding, args: ['class.transparent-background',] }],
5331
+ color: [{ type: i0.Input }, { type: i0.HostBinding, args: ['attr.color',] }]
5332
+ };
5303
5333
 
5304
5334
  var InteractionServiceRoutingAdapter = /** @class */ (function () {
5305
5335
  function InteractionServiceRoutingAdapter(activeInteractionContextIds, activeModalContext, createExclusiveInteractionContext) {