@coolon/angular-ui-powerups 3.11.2 → 3.13.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.
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.13.0](https://bitbucket.org/coolon/angular-ui-powerups/compare/v3.12.0...v3.13.0) (2021-02-22)
6
+
7
+
8
+ ### Features
9
+
10
+ * added [showHeader] property to aup-table ([1146932](https://bitbucket.org/coolon/angular-ui-powerups/commit/11469328c1b7381a32bad67b09caef194823ea6e))
11
+
12
+ ## [3.12.0](https://bitbucket.org/coolon/angular-ui-powerups/compare/v3.11.2...v3.12.0) (2021-02-22)
13
+
14
+
15
+ ### Features
16
+
17
+ * added visible row count model to tables to support paging ([e33e8c3](https://bitbucket.org/coolon/angular-ui-powerups/commit/e33e8c328bb43481f638db42bdee8852d843ca1c))
18
+
5
19
  ### [3.11.2](https://bitbucket.org/coolon/angular-ui-powerups/compare/v3.11.1...v3.11.2) (2021-02-11)
6
20
 
7
21
 
package/assets/table.scss CHANGED
@@ -3,6 +3,12 @@ aup-table {
3
3
  --resolved-row-selected-background-color: var(--row-selected-background-color, rgba(0, 0, 255, 0.04));
4
4
  --resolved-row-hover-background-color: var(--row-hover-background-color, rgba(0, 0, 0, 0.05));
5
5
 
6
+ &.hide-header {
7
+ .mat-table thead {
8
+ display: none;
9
+ }
10
+ }
11
+
6
12
  .mat-table {
7
13
 
8
14
  th.mat-header-cell:first-of-type, td.mat-cell:first-of-type, td.mat-footer-cell:first-of-type {
@@ -1,14 +1,14 @@
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('@typescript-plus/fast-memoize-decorator/dist/src'), require('lodash'), require('typescript-string-enums'), require('@coolon/typescript-utilities'), require('immer'), require('@angular/flex-layout'), require('@angular/material/dialog'), require('@angular/router'), require('@angular/cdk/overlay'), require('resize-observer-polyfill'), require('@angular/material/list'), require('@typescript-plus/fast-memoize-decorator'), require('reflect-metadata'), require('@angular/animations')) :
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', '@typescript-plus/fast-memoize-decorator/dist/src', 'lodash', 'typescript-string-enums', '@coolon/typescript-utilities', 'immer', '@angular/flex-layout', '@angular/material/dialog', '@angular/router', '@angular/cdk/overlay', 'resize-observer-polyfill', '@angular/material/list', '@typescript-plus/fast-memoize-decorator', 'reflect-metadata', '@angular/animations'], 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.src, global._, global.typescriptStringEnums, global.typescriptUtilities, global.produce, global.ng.flexLayout, global.ng.material.dialog, global.ng.router, global.ng.cdk.overlay, global.ResizeObserver, global.ng.material.list, global.fastMemoizeDecorator, null, global.ng.animations));
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, src, _, typescriptStringEnums, typescriptUtilities, produce, flexLayout, i1, i1$1, overlay, ResizeObserver, list, fastMemoizeDecorator, reflectMetadata, animations$1) { '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('@typescript-plus/fast-memoize-decorator/dist/src'), require('lodash'), require('typescript-string-enums'), require('resize-observer-polyfill'), require('@coolon/typescript-utilities'), 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')) :
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', '@typescript-plus/fast-memoize-decorator/dist/src', 'lodash', 'typescript-string-enums', 'resize-observer-polyfill', '@coolon/typescript-utilities', 'immer', '@angular/flex-layout', '@angular/material/dialog', '@angular/router', '@angular/cdk/overlay', '@angular/material/list', '@typescript-plus/fast-memoize-decorator', 'reflect-metadata', '@angular/animations'], 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.src, global._, global.typescriptStringEnums, global.ResizeObserver, global.typescriptUtilities, 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));
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, src, _, typescriptStringEnums, ResizeObserver, typescriptUtilities, produce, flexLayout, i1, i1$1, overlay, list, fastMemoizeDecorator, reflectMetadata, animations$1) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
9
9
  var ___default = /*#__PURE__*/_interopDefaultLegacy(_);
10
- var produce__default = /*#__PURE__*/_interopDefaultLegacy(produce);
11
10
  var ResizeObserver__default = /*#__PURE__*/_interopDefaultLegacy(ResizeObserver);
11
+ var produce__default = /*#__PURE__*/_interopDefaultLegacy(produce);
12
12
 
13
13
  /*! *****************************************************************************
14
14
  Copyright (c) Microsoft Corporation.
@@ -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;margin-bottom:var(--default-padding)}.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.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 .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}aup-table aup-table-cell-renderer.first-column,aup-table aup-table-cell-renderer:not(.first-column),aup-table aup-table-header-cell-renderer.first-column,aup-table aup-table-header-cell-renderer:not(.first-column){padding-left: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: [":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;margin-bottom:var(--default-padding)}.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.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{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}aup-table aup-table-cell-renderer.first-column,aup-table aup-table-cell-renderer:not(.first-column),aup-table aup-table-header-cell-renderer.first-column,aup-table aup-table-header-cell-renderer:not(.first-column){padding-left: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)}"]
733
733
  },] }
734
734
  ];
735
735
  CardContainerComponent.ctorParameters = function () { return []; };
@@ -2328,6 +2328,113 @@
2328
2328
  __metadata("design:type", Object)
2329
2329
  ], SwitchCaseComponent.prototype, "switch", void 0);
2330
2330
 
2331
+ var Dimension = /** @class */ (function () {
2332
+ function Dimension(width, height) {
2333
+ this.width = width;
2334
+ this.height = height;
2335
+ }
2336
+ return Dimension;
2337
+ }());
2338
+
2339
+ var Point = /** @class */ (function () {
2340
+ function Point(x, y) {
2341
+ this.x = x;
2342
+ this.y = y;
2343
+ }
2344
+ Point.from = function (data) {
2345
+ return new Point(data.x, data.y);
2346
+ };
2347
+ Point.prototype.translate = function (x, y) {
2348
+ return new Point(this.x + x, this.y + y);
2349
+ };
2350
+ return Point;
2351
+ }());
2352
+
2353
+ exports.Bounds = /** @class */ (function (_super) {
2354
+ __extends(Bounds, _super);
2355
+ function Bounds(top, left, width, height) {
2356
+ var _this = _super.call(this, width, height) || this;
2357
+ _this.top = top;
2358
+ _this.left = left;
2359
+ _this.width = width;
2360
+ _this.height = height;
2361
+ return _this;
2362
+ }
2363
+ Bounds.prototype.relativePositionOf = function (point) {
2364
+ if (point instanceof MouseEvent) {
2365
+ return new Point(point.clientX - this.left, point.clientY - this.top);
2366
+ }
2367
+ else {
2368
+ return new Point(point.x - this.left, point.y - this.top);
2369
+ }
2370
+ };
2371
+ return Bounds;
2372
+ }(Dimension));
2373
+ (function (Bounds) {
2374
+ function ofElement(element) {
2375
+ var rect = element.getBoundingClientRect();
2376
+ return new Bounds(rect.top, rect.left, rect.width, rect.height);
2377
+ }
2378
+ Bounds.ofElement = ofElement;
2379
+ })(exports.Bounds || (exports.Bounds = {}));
2380
+
2381
+ var ResizeAwareComponent = /** @class */ (function (_super) {
2382
+ __extends(ResizeAwareComponent, _super);
2383
+ function ResizeAwareComponent(elementRef, ngZone) {
2384
+ var _this = _super.call(this) || this;
2385
+ _this.elementRef = elementRef;
2386
+ _this.ngZone = ngZone;
2387
+ _this._boundsModel = new pectin.MutableValueModel(new exports.Bounds(0, 0, 0, 0));
2388
+ return _this;
2389
+ }
2390
+ ResizeAwareComponent.prototype.ngAfterViewInit = function () {
2391
+ var _this = this;
2392
+ this._updateBounds();
2393
+ var element = this.elementRef.nativeElement;
2394
+ var ro = new ResizeObserver__default['default'](function (entries, observer) {
2395
+ _this.ngZone.run(function () { return _this._updateBounds(); });
2396
+ });
2397
+ ro.observe(element);
2398
+ this.onDispose(function () { return ro.disconnect(); });
2399
+ };
2400
+ Object.defineProperty(ResizeAwareComponent.prototype, "boundsModel", {
2401
+ get: function () {
2402
+ return this._boundsModel.readonly;
2403
+ },
2404
+ enumerable: false,
2405
+ configurable: true
2406
+ });
2407
+ Object.defineProperty(ResizeAwareComponent.prototype, "nativeElement", {
2408
+ get: function () {
2409
+ return this.elementRef.nativeElement;
2410
+ },
2411
+ enumerable: false,
2412
+ configurable: true
2413
+ });
2414
+ // TODO: Make this handle body scroll
2415
+ ResizeAwareComponent.prototype.relativePositionOf = function (point) {
2416
+ return this.bounds.relativePositionOf(point);
2417
+ };
2418
+ Object.defineProperty(ResizeAwareComponent.prototype, "bounds", {
2419
+ get: function () {
2420
+ return this._boundsModel.value;
2421
+ },
2422
+ enumerable: false,
2423
+ configurable: true
2424
+ });
2425
+ ResizeAwareComponent.prototype._updateBounds = function () {
2426
+ this._boundsModel.value = exports.Bounds.ofElement(this.nativeElement);
2427
+ };
2428
+ return ResizeAwareComponent;
2429
+ }(DisposableComponent));
2430
+ ResizeAwareComponent.decorators = [
2431
+ { type: i0.Directive }
2432
+ ];
2433
+ ResizeAwareComponent.ctorParameters = function () { return [
2434
+ { type: i0.ElementRef },
2435
+ { type: i0.NgZone }
2436
+ ]; };
2437
+
2331
2438
  var HEADER_CELL_RENDERER_PORTAL = Symbol('aup-cell-header-renderer-component-ref');
2332
2439
  var CELL_RENDERER_PORTAL = Symbol('aup-cell-renderer-component-ref');
2333
2440
  var CELL_EDITOR_PORTAL = Symbol('aup-cell-editor-component-ref');
@@ -3176,9 +3283,32 @@
3176
3283
  */
3177
3284
  var TableComponent = /** @class */ (function (_super) {
3178
3285
  __extends(TableComponent, _super);
3179
- function TableComponent() {
3180
- return _super.call(this) || this;
3286
+ function TableComponent(elementRef, ngZone) {
3287
+ var _this = _super.call(this, elementRef, ngZone) || this;
3288
+ // TODO: support user defined header and row heights via css vars.
3289
+ _this.headerHeight = new pectin.MutableValueModel(56);
3290
+ _this.rowHeight = new pectin.MutableValueModel(48);
3291
+ var _a = pectin.Dsl.disposeWith(_this), chain = _a.chain, when = _a.when;
3292
+ var actualHeaderHeight = chain(_this.showHeaderModel).map(function (show) {
3293
+ return show ? _this.headerHeight.value : 0;
3294
+ }, { dependsOn: _this.headerHeight });
3295
+ _this.visibleRowCount = chain(_this.boundsModel).map(function (bounds) {
3296
+ // TODO: this doesn't take into account any css styling adjustments etc. Will invistigate if it's an issue.
3297
+ var rawRowCount = (bounds.height - actualHeaderHeight.value) / _this.rowHeight.value;
3298
+ return rawRowCount < 1 ? 0 : Math.floor(rawRowCount);
3299
+ }, {
3300
+ dependsOn: [actualHeaderHeight, _this.rowHeight],
3301
+ postponeWhile: chain(_this.boundsModel).pluckNumeric('height').isLessThan(1)
3302
+ });
3303
+ return _this;
3181
3304
  }
3305
+ Object.defineProperty(TableComponent.prototype, "hideHeader", {
3306
+ get: function () {
3307
+ return !this.showHeader;
3308
+ },
3309
+ enumerable: false,
3310
+ configurable: true
3311
+ });
3182
3312
  TableComponent.prototype.ngOnInit = function () {
3183
3313
  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;
3184
3314
  this.columns = chain(this.tableModel.columns);
@@ -3198,22 +3328,36 @@
3198
3328
  this.tableModel._notifyCellClicked(columnModel, row);
3199
3329
  };
3200
3330
  return TableComponent;
3201
- }(DisposableComponent));
3331
+ }(ResizeAwareComponent));
3202
3332
  TableComponent.decorators = [
3203
3333
  { type: i0.Component, args: [{
3204
3334
  selector: 'aup-table',
3205
3335
  template: "<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()\">\n <aup-table-header-cell-renderer [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class.first-column]=\"first\"\n [class.last-column]=\"last\"\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 >\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]=\"first\"\n [class.last-column]=\"last\"\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",
3206
- styles: [":host{align-items:stretch;display:flex;flex-direction:column}:host table{flex:1;width:100%}"]
3336
+ styles: [":host{align-items:stretch;display:flex;flex-direction:column}:host table{width:100%}"]
3207
3337
  },] }
3208
3338
  ];
3209
- TableComponent.ctorParameters = function () { return []; };
3339
+ TableComponent.ctorParameters = function () { return [
3340
+ { type: i0.ElementRef },
3341
+ { type: i0.NgZone }
3342
+ ]; };
3210
3343
  TableComponent.propDecorators = {
3211
- tableModel: [{ type: i0.Input }]
3344
+ tableModel: [{ type: i0.Input }],
3345
+ showHeaderModel: [{ type: i0.Input }],
3346
+ showHeader: [{ type: i0.Input }],
3347
+ hideHeader: [{ type: i0.HostBinding, args: ["class.hide-header",] }]
3212
3348
  };
3213
3349
  __decorate([
3214
3350
  pectin.TrackExternal(),
3215
3351
  __metadata("design:type", exports.AbstractTableModel)
3216
3352
  ], TableComponent.prototype, "tableModel", void 0);
3353
+ __decorate([
3354
+ pectin.TrackExternal({ defaultValue: true }),
3355
+ __metadata("design:type", pectin.ValueModel)
3356
+ ], TableComponent.prototype, "showHeaderModel", void 0);
3357
+ __decorate([
3358
+ pectin.StoreInValueModel("showHeaderModel"),
3359
+ __metadata("design:type", Boolean)
3360
+ ], TableComponent.prototype, "showHeader", void 0);
3217
3361
 
3218
3362
  var ColumnTemplateDirective = /** @class */ (function () {
3219
3363
  function ColumnTemplateDirective(host, templateRef, viewContainer) {
@@ -5507,113 +5651,6 @@
5507
5651
  },] }
5508
5652
  ];
5509
5653
 
5510
- var Dimension = /** @class */ (function () {
5511
- function Dimension(width, height) {
5512
- this.width = width;
5513
- this.height = height;
5514
- }
5515
- return Dimension;
5516
- }());
5517
-
5518
- var Point = /** @class */ (function () {
5519
- function Point(x, y) {
5520
- this.x = x;
5521
- this.y = y;
5522
- }
5523
- Point.from = function (data) {
5524
- return new Point(data.x, data.y);
5525
- };
5526
- Point.prototype.translate = function (x, y) {
5527
- return new Point(this.x + x, this.y + y);
5528
- };
5529
- return Point;
5530
- }());
5531
-
5532
- exports.Bounds = /** @class */ (function (_super) {
5533
- __extends(Bounds, _super);
5534
- function Bounds(top, left, width, height) {
5535
- var _this = _super.call(this, width, height) || this;
5536
- _this.top = top;
5537
- _this.left = left;
5538
- _this.width = width;
5539
- _this.height = height;
5540
- return _this;
5541
- }
5542
- Bounds.prototype.relativePositionOf = function (point) {
5543
- if (point instanceof MouseEvent) {
5544
- return new Point(point.clientX - this.left, point.clientY - this.top);
5545
- }
5546
- else {
5547
- return new Point(point.x - this.left, point.y - this.top);
5548
- }
5549
- };
5550
- return Bounds;
5551
- }(Dimension));
5552
- (function (Bounds) {
5553
- function ofElement(element) {
5554
- var rect = element.getBoundingClientRect();
5555
- return new Bounds(rect.top, rect.left, rect.width, rect.height);
5556
- }
5557
- Bounds.ofElement = ofElement;
5558
- })(exports.Bounds || (exports.Bounds = {}));
5559
-
5560
- var ResizeAwareComponent = /** @class */ (function (_super) {
5561
- __extends(ResizeAwareComponent, _super);
5562
- function ResizeAwareComponent(elementRef, ngZone) {
5563
- var _this = _super.call(this) || this;
5564
- _this.elementRef = elementRef;
5565
- _this.ngZone = ngZone;
5566
- _this._boundsModel = new pectin.MutableValueModel(new exports.Bounds(0, 0, 0, 0));
5567
- return _this;
5568
- }
5569
- ResizeAwareComponent.prototype.ngAfterViewInit = function () {
5570
- var _this = this;
5571
- this.updateBounds();
5572
- var element = this.elementRef.nativeElement;
5573
- var ro = new ResizeObserver__default['default'](function (entries, observer) {
5574
- _this.ngZone.run(function () { return _this.updateBounds(); });
5575
- });
5576
- ro.observe(element);
5577
- this.onDispose(function () { return ro.disconnect(); });
5578
- };
5579
- Object.defineProperty(ResizeAwareComponent.prototype, "boundsModel", {
5580
- get: function () {
5581
- return this._boundsModel.readonly;
5582
- },
5583
- enumerable: false,
5584
- configurable: true
5585
- });
5586
- Object.defineProperty(ResizeAwareComponent.prototype, "nativeElement", {
5587
- get: function () {
5588
- return this.elementRef.nativeElement;
5589
- },
5590
- enumerable: false,
5591
- configurable: true
5592
- });
5593
- // TODO: Make this handle body scroll
5594
- ResizeAwareComponent.prototype.relativePositionOf = function (point) {
5595
- return this.bounds.relativePositionOf(point);
5596
- };
5597
- Object.defineProperty(ResizeAwareComponent.prototype, "bounds", {
5598
- get: function () {
5599
- return this._boundsModel.value;
5600
- },
5601
- enumerable: false,
5602
- configurable: true
5603
- });
5604
- ResizeAwareComponent.prototype.updateBounds = function () {
5605
- this._boundsModel.value = exports.Bounds.ofElement(this.nativeElement);
5606
- };
5607
- return ResizeAwareComponent;
5608
- }(DisposableComponent));
5609
- ResizeAwareComponent.decorators = [
5610
- { type: i0.Directive }
5611
- ];
5612
- ResizeAwareComponent.ctorParameters = function () { return [
5613
- { type: i0.ElementRef },
5614
- { type: i0.NgZone }
5615
- ]; };
5616
-
5617
5654
  /**
5618
5655
  * Example:
5619
5656
  * @example