@coolon/angular-ui-powerups 2.0.0-alpha.1 → 2.0.0-alpha.10

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 (152) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/assets/form.scss +33 -0
  3. package/bundles/coolon-angular-ui-powerups.umd.js +418 -233
  4. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  5. package/bundles/coolon-angular-ui-powerups.umd.min.js +2 -2
  6. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
  7. package/coolon-angular-ui-powerups.d.ts +55 -54
  8. package/coolon-angular-ui-powerups.metadata.json +1 -1
  9. package/esm2015/coolon-angular-ui-powerups.js +53 -52
  10. package/esm2015/coolon-angular-ui-powerups.js.map +1 -1
  11. package/esm2015/coolon-angular-ui-powerups.metadata.json +1 -1
  12. package/esm2015/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  13. package/esm2015/lib/components/card-container/card-container.component.js +1 -1
  14. package/esm2015/lib/components/card-container/card-container.component.metadata.json +1 -1
  15. package/esm2015/lib/components/components.module.js +29 -12
  16. package/esm2015/lib/components/components.module.js.map +1 -1
  17. package/esm2015/lib/components/components.module.metadata.json +1 -1
  18. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  19. package/esm2015/lib/components/forms/abstract-input.component.js +14 -2
  20. package/esm2015/lib/components/forms/abstract-input.component.js.map +1 -1
  21. package/esm2015/lib/components/forms/abstract-input.component.metadata.json +1 -1
  22. package/esm2015/lib/components/forms/abstract-list-input.component.js +37 -5
  23. package/esm2015/lib/components/forms/abstract-list-input.component.js.map +1 -1
  24. package/esm2015/lib/components/forms/abstract-list-input.component.metadata.json +1 -1
  25. package/esm2015/lib/components/forms/abstract-value-input.component.js +35 -6
  26. package/esm2015/lib/components/forms/abstract-value-input.component.js.map +1 -1
  27. package/esm2015/lib/components/forms/abstract-value-input.component.metadata.json +1 -1
  28. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.js +64 -0
  29. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.js.map +1 -0
  30. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.metadata.json +1 -0
  31. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.ngfactory.js.map +1 -0
  32. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.scss.shim.ngstyle.js.map +1 -0
  33. package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.js +4 -7
  34. package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.js.map +1 -1
  35. package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.metadata.json +1 -1
  36. package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.js +8 -5
  37. package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.js.map +1 -1
  38. package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.metadata.json +1 -1
  39. package/esm2015/lib/components/forms/number-input/number-input.component.js +4 -7
  40. package/esm2015/lib/components/forms/number-input/number-input.component.js.map +1 -1
  41. package/esm2015/lib/components/forms/number-input/number-input.component.metadata.json +1 -1
  42. package/esm2015/lib/components/forms/password-input/password-input.component.js +5 -8
  43. package/esm2015/lib/components/forms/password-input/password-input.component.js.map +1 -1
  44. package/esm2015/lib/components/forms/password-input/password-input.component.metadata.json +1 -1
  45. package/esm2015/lib/components/forms/select-input/select-input.component.js +8 -5
  46. package/esm2015/lib/components/forms/select-input/select-input.component.js.map +1 -1
  47. package/esm2015/lib/components/forms/select-input/select-input.component.metadata.json +1 -1
  48. package/esm2015/lib/components/forms/string-input/string-input.component.js +2 -6
  49. package/esm2015/lib/components/forms/string-input/string-input.component.js.map +1 -1
  50. package/esm2015/lib/components/forms/string-input/string-input.component.metadata.json +1 -1
  51. package/esm2015/lib/components/forms/text-input/text-input.component.js +4 -7
  52. package/esm2015/lib/components/forms/text-input/text-input.component.js.map +1 -1
  53. package/esm2015/lib/components/forms/text-input/text-input.component.metadata.json +1 -1
  54. package/esm2015/lib/components/index.js +2 -1
  55. package/esm2015/lib/components/index.js.map +1 -1
  56. package/esm2015/lib/components/index.metadata.json +1 -1
  57. package/esm2015/lib/components/table/cell-editors.js.map +1 -1
  58. package/esm2015/lib/components/table/{cell-protal-ref.js → cell-portal-ref.js} +7 -3
  59. package/esm2015/lib/components/table/cell-portal-ref.js.map +1 -0
  60. package/esm2015/lib/components/table/{cell-protal-ref.metadata.json → cell-portal-ref.metadata.json} +1 -1
  61. package/esm2015/lib/components/table/column-model.js +27 -11
  62. package/esm2015/lib/components/table/column-model.js.map +1 -1
  63. package/esm2015/lib/components/table/column-model.metadata.json +1 -1
  64. package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.js +1 -1
  65. package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.js.map +1 -1
  66. package/esm2015/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js +1 -1
  67. package/esm2015/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js.map +1 -1
  68. package/esm2015/lib/components/table/table-model.js +8 -5
  69. package/esm2015/lib/components/table/table-model.js.map +1 -1
  70. package/esm2015/lib/components/table/table-model.metadata.json +1 -1
  71. package/esm2015/lib/components/table/table.component.js +1 -2
  72. package/esm2015/lib/components/table/table.component.js.map +1 -1
  73. package/esm2015/lib/components/table/table.component.metadata.json +1 -1
  74. package/esm2015/lib/components/table/table.component.scss.shim.ngstyle.js.map +1 -0
  75. package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  76. package/esm2015/lib/place/place.module.ngfactory.js.map +1 -1
  77. package/esm5/coolon-angular-ui-powerups.js +53 -52
  78. package/esm5/coolon-angular-ui-powerups.js.map +1 -1
  79. package/esm5/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  80. package/esm5/lib/components/card-container/card-container.component.js +1 -1
  81. package/esm5/lib/components/components.module.js +29 -12
  82. package/esm5/lib/components/components.module.js.map +1 -1
  83. package/esm5/lib/components/components.module.ngfactory.js.map +1 -1
  84. package/esm5/lib/components/forms/abstract-input.component.js +22 -2
  85. package/esm5/lib/components/forms/abstract-input.component.js.map +1 -1
  86. package/esm5/lib/components/forms/abstract-list-input.component.js +42 -5
  87. package/esm5/lib/components/forms/abstract-list-input.component.js.map +1 -1
  88. package/esm5/lib/components/forms/abstract-value-input.component.js +40 -6
  89. package/esm5/lib/components/forms/abstract-value-input.component.js.map +1 -1
  90. package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.js +67 -0
  91. package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.js.map +1 -0
  92. package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.ngfactory.js.map +1 -0
  93. package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.scss.shim.ngstyle.js.map +1 -0
  94. package/esm5/lib/components/forms/checkbox-input/checkbox-input.component.js +4 -7
  95. package/esm5/lib/components/forms/checkbox-input/checkbox-input.component.js.map +1 -1
  96. package/esm5/lib/components/forms/multiple-select-input/multiple-select-input.component.js +8 -5
  97. package/esm5/lib/components/forms/multiple-select-input/multiple-select-input.component.js.map +1 -1
  98. package/esm5/lib/components/forms/number-input/number-input.component.js +4 -7
  99. package/esm5/lib/components/forms/number-input/number-input.component.js.map +1 -1
  100. package/esm5/lib/components/forms/password-input/password-input.component.js +5 -8
  101. package/esm5/lib/components/forms/password-input/password-input.component.js.map +1 -1
  102. package/esm5/lib/components/forms/select-input/select-input.component.js +8 -5
  103. package/esm5/lib/components/forms/select-input/select-input.component.js.map +1 -1
  104. package/esm5/lib/components/forms/string-input/string-input.component.js +2 -6
  105. package/esm5/lib/components/forms/string-input/string-input.component.js.map +1 -1
  106. package/esm5/lib/components/forms/text-input/text-input.component.js +4 -7
  107. package/esm5/lib/components/forms/text-input/text-input.component.js.map +1 -1
  108. package/esm5/lib/components/index.js +2 -1
  109. package/esm5/lib/components/index.js.map +1 -1
  110. package/esm5/lib/components/table/cell-editors.js.map +1 -1
  111. package/esm5/lib/components/table/{cell-protal-ref.js → cell-portal-ref.js} +7 -3
  112. package/esm5/lib/components/table/cell-portal-ref.js.map +1 -0
  113. package/esm5/lib/components/table/column-model.js +27 -11
  114. package/esm5/lib/components/table/column-model.js.map +1 -1
  115. package/esm5/lib/components/table/table-cell-renderer/table-cell-renderer.component.js +1 -1
  116. package/esm5/lib/components/table/table-cell-renderer/table-cell-renderer.component.js.map +1 -1
  117. package/esm5/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js +1 -1
  118. package/esm5/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js.map +1 -1
  119. package/esm5/lib/components/table/table-model.js +8 -5
  120. package/esm5/lib/components/table/table-model.js.map +1 -1
  121. package/esm5/lib/components/table/table.component.js +1 -2
  122. package/esm5/lib/components/table/table.component.js.map +1 -1
  123. package/esm5/lib/components/table/table.component.scss.shim.ngstyle.js.map +1 -0
  124. package/esm5/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  125. package/esm5/lib/place/place.module.ngfactory.js.map +1 -1
  126. package/fesm2015/coolon-angular-ui-powerups.js +320 -157
  127. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  128. package/fesm5/coolon-angular-ui-powerups.js +351 -167
  129. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  130. package/lib/components/forms/abstract-input.component.d.ts +4 -1
  131. package/lib/components/forms/abstract-list-input.component.d.ts +8 -2
  132. package/lib/components/forms/abstract-value-input.component.d.ts +7 -2
  133. package/lib/components/forms/autocomplete-input/autocomplete-input.component.d.ts +22 -0
  134. package/lib/components/forms/checkbox-input/checkbox-input.component.d.ts +0 -2
  135. package/lib/components/forms/multiple-select-input/multiple-select-input.component.d.ts +8 -2
  136. package/lib/components/forms/number-input/number-input.component.d.ts +0 -2
  137. package/lib/components/forms/password-input/password-input.component.d.ts +0 -2
  138. package/lib/components/forms/select-input/select-input.component.d.ts +8 -2
  139. package/lib/components/forms/string-input/string-input.component.d.ts +1 -2
  140. package/lib/components/forms/text-input/text-input.component.d.ts +0 -2
  141. package/lib/components/index.d.ts +2 -1
  142. package/lib/components/table/cell-editors.d.ts +3 -3
  143. package/lib/components/table/{cell-protal-ref.d.ts → cell-portal-ref.d.ts} +4 -4
  144. package/lib/components/table/column-model.d.ts +15 -7
  145. package/lib/components/table/table-cell-renderer/table-cell-renderer.component.d.ts +1 -1
  146. package/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.d.ts +1 -1
  147. package/lib/components/table/table-model.d.ts +10 -2
  148. package/package.json +2 -2
  149. package/esm2015/lib/components/table/cell-protal-ref.js.map +0 -1
  150. package/esm2015/lib/components/table/table.component.scss.ngstyle.js.map +0 -1
  151. package/esm5/lib/components/table/cell-protal-ref.js.map +0 -1
  152. package/esm5/lib/components/table/table.component.scss.ngstyle.js.map +0 -1
@@ -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/button'), require('@angular/material/checkbox'), require('@angular/material/icon'), require('@angular/material/table'), require('@coolon/pectin'), require('@coolon/typescript-utilities'), require('@typescript-plus/fast-memoize-decorator/dist/src'), require('lodash'), require('immer'), require('@fortawesome/angular-fontawesome'), require('@fortawesome/free-solid-svg-icons'), require('@angular/material/tooltip'), require('@angular/flex-layout'), require('@angular/material/dialog'), require('@angular/router'), require('@angular/cdk/overlay'), require('resize-observer-polyfill'), require('@angular/material/progress-spinner'), require('@angular/material/list'), require('@typescript-plus/fast-memoize-decorator'), require('reflect-metadata'), require('@angular/animations'), require('rxjs')) :
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/button', '@angular/material/checkbox', '@angular/material/icon', '@angular/material/table', '@coolon/pectin', '@coolon/typescript-utilities', '@typescript-plus/fast-memoize-decorator/dist/src', 'lodash', 'immer', '@fortawesome/angular-fontawesome', '@fortawesome/free-solid-svg-icons', '@angular/material/tooltip', '@angular/flex-layout', '@angular/material/dialog', '@angular/router', '@angular/cdk/overlay', 'resize-observer-polyfill', '@angular/material/progress-spinner', '@angular/material/list', '@typescript-plus/fast-memoize-decorator', 'reflect-metadata', '@angular/animations', 'rxjs'], factory) :
4
- (global = 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.button, global.ng.material.checkbox, global.ng.material.icon, global.ng.material.table, global.pectin, global.typescriptUtilities, global.src, global.___default, global.produce, global.angularFontawesome, global.freeSolidSvgIcons, global.ng.material.tooltip, global.ng.flexLayout, global.ng.material.dialog, global.ng.router, global.ng.cdk.overlay, global.ResizeObserver, global.ng.material.progressSpinner, global.ng.material.list, global.fastMemoizeDecorator, null, global.ng.animations, global.rxjs));
5
- }(this, (function (exports, common, core, forms, formField, input, select, tabs, animations, portal, scrolling, button, checkbox, icon, table, pectin, typescriptUtilities, src, ___default, produce, angularFontawesome, freeSolidSvgIcons, tooltip, flexLayout, dialog, router, overlay, ResizeObserver, progressSpinner, list, fastMemoizeDecorator, reflectMetadata, animations$1, rxjs) { '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/icon'), require('@angular/material/table'), require('@angular/material/tooltip'), require('@fortawesome/angular-fontawesome'), require('@fortawesome/free-solid-svg-icons'), require('@coolon/pectin'), require('lodash'), require('@coolon/typescript-utilities'), require('@typescript-plus/fast-memoize-decorator/dist/src'), require('immer'), require('@angular/flex-layout'), require('@angular/material/dialog'), require('@angular/router'), require('@angular/cdk/overlay'), require('resize-observer-polyfill'), require('@angular/material/progress-spinner'), require('@angular/material/list'), require('@typescript-plus/fast-memoize-decorator'), require('reflect-metadata'), require('@angular/animations'), require('rxjs')) :
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/icon', '@angular/material/table', '@angular/material/tooltip', '@fortawesome/angular-fontawesome', '@fortawesome/free-solid-svg-icons', '@coolon/pectin', 'lodash', '@coolon/typescript-utilities', '@typescript-plus/fast-memoize-decorator/dist/src', 'immer', '@angular/flex-layout', '@angular/material/dialog', '@angular/router', '@angular/cdk/overlay', 'resize-observer-polyfill', '@angular/material/progress-spinner', '@angular/material/list', '@typescript-plus/fast-memoize-decorator', 'reflect-metadata', '@angular/animations', 'rxjs'], factory) :
4
+ (global = 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.icon, global.ng.material.table, global.ng.material.tooltip, global.angularFontawesome, global.freeSolidSvgIcons, global.pectin, global.___default, global.typescriptUtilities, global.src, global.produce, global.ng.flexLayout, global.ng.material.dialog, global.ng.router, global.ng.cdk.overlay, global.ResizeObserver, global.ng.material.progressSpinner, global.ng.material.list, global.fastMemoizeDecorator, null, global.ng.animations, global.rxjs));
5
+ }(this, (function (exports, common, core, forms, formField, input, select, tabs, animations, portal, scrolling, autocomplete, button, checkbox, icon, table, tooltip, angularFontawesome, freeSolidSvgIcons, pectin, ___default, typescriptUtilities, src, produce, flexLayout, dialog, router, overlay, ResizeObserver, progressSpinner, list, fastMemoizeDecorator, reflectMetadata, animations$1, rxjs) { 'use strict';
6
6
 
7
7
  var ___default__default = 'default' in ___default ? ___default['default'] : ___default;
8
8
  produce = produce && Object.prototype.hasOwnProperty.call(produce, 'default') ? produce['default'] : produce;
@@ -578,7 +578,7 @@
578
578
  core.Component({
579
579
  selector: 'aup-card-container',
580
580
  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-icon 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",
581
- styles: [":root{--aup-default-padding:var(--default-padding, 18px);--aup-default-background:white}.router-outlet-container>*{position:absolute;top:0;left:0;bottom:0;right: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{max-width:95vw!important;max-height:95vh!important}.dialog-interaction-context mat-dialog-container{max-width:95vw!important;max-height:95vh!important;padding:0}.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 280ms 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-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))}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 td.enable-cursor{cursor:pointer}aup-table aup-table-cell-renderer,aup-table aup-table-header-cell-renderer{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%;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{padding-left:var(--default-column-gap);flex:1}:host{--resolved-card-gap:var(--card-gap, 16px);--resolved-card-width:var(--card-width, 300px);--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:-ms-grid;display:grid;grid-template-columns:repeat(auto-fill,var(--resolved-card-width));grid-template-rows:repeat(auto-fit,minmax(0,var(--resolved-card-height)));grid-gap:var(--resolved-card-gap);box-sizing:border-box;padding:var(--resolved-card-gap);min-height:calc(var(--resolved-card-height) + 2 * var(--resolved-card-gap));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));max-width:100%}.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:rgba(255,255,255,.8);transition:280ms cubic-bezier(.4,0,.2,1)}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{transition:280ms 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}"]
581
+ styles: [":root{--aup-default-padding:var(--default-padding, 18px);--aup-default-background:white}.router-outlet-container>*{position:absolute;top:0;left:0;bottom:0;right: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{max-width:95vw!important;max-height:95vh!important}.dialog-interaction-context mat-dialog-container{max-width:95vw!important;max-height:95vh!important;padding:0}.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 280ms 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{padding-bottom:0;border-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))}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 td.enable-cursor{cursor:pointer}aup-table aup-table-cell-renderer,aup-table aup-table-header-cell-renderer{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%;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{padding-left:var(--default-column-gap);flex:1}:host{--resolved-card-gap:var(--card-gap, 16px);--resolved-card-width:var(--card-width, 300px);--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:-ms-grid;display:grid;grid-template-columns:repeat(auto-fill,var(--resolved-card-width));grid-template-rows:repeat(auto-fit,minmax(0,var(--resolved-card-height)));grid-gap:var(--resolved-card-gap);box-sizing:border-box;padding:var(--resolved-card-gap);min-height:calc(var(--resolved-card-height) + 2 * var(--resolved-card-gap));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));max-width:100%}.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:rgba(255,255,255,.8);transition:280ms cubic-bezier(.4,0,.2,1)}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{transition:280ms 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}"]
582
582
  }),
583
583
  __metadata("design:paramtypes", [])
584
584
  ], CardContainerComponent);
@@ -693,6 +693,7 @@
693
693
  __extends(AbstractInputComponent, _super);
694
694
  function AbstractInputComponent() {
695
695
  var _this = _super.call(this) || this;
696
+ _this.dense = false;
696
697
  // TODO: fix this.
697
698
  // tslint:disable-next-line:no-output-native
698
699
  _this.focus = new core.EventEmitter();
@@ -771,14 +772,28 @@
771
772
  enumerable: true,
772
773
  configurable: true
773
774
  });
775
+ Object.defineProperty(AbstractInputComponent.prototype, "floatLabel", {
776
+ get: function () {
777
+ return this.dense ? 'never' : this.userFloatLabel;
778
+ },
779
+ enumerable: true,
780
+ configurable: true
781
+ });
782
+ Object.defineProperty(AbstractInputComponent.prototype, "showHint", {
783
+ get: function () {
784
+ return this.dense ? false : !!this.hint;
785
+ },
786
+ enumerable: true,
787
+ configurable: true
788
+ });
774
789
  __decorate([
775
790
  core.Input(),
776
791
  __metadata("design:type", String)
777
792
  ], AbstractInputComponent.prototype, "label", void 0);
778
793
  __decorate([
779
- core.Input(),
794
+ core.Input('floatLabel'),
780
795
  __metadata("design:type", String)
781
- ], AbstractInputComponent.prototype, "floatLabel", void 0);
796
+ ], AbstractInputComponent.prototype, "userFloatLabel", void 0);
782
797
  __decorate([
783
798
  core.Input(),
784
799
  __metadata("design:type", String)
@@ -787,6 +802,11 @@
787
802
  core.Input(),
788
803
  __metadata("design:type", String)
789
804
  ], AbstractInputComponent.prototype, "placeholder", void 0);
805
+ __decorate([
806
+ core.HostBinding('class.dense'),
807
+ core.Input(),
808
+ __metadata("design:type", Object)
809
+ ], AbstractInputComponent.prototype, "dense", void 0);
790
810
  __decorate([
791
811
  core.Input('command.focus'),
792
812
  __metadata("design:type", pectin.Command)
@@ -855,7 +875,7 @@
855
875
  var AbstractListInputComponent = /** @class */ (function (_super) {
856
876
  __extends(AbstractListInputComponent, _super);
857
877
  function AbstractListInputComponent() {
858
- var _this = _super !== null && _super.apply(this, arguments) || this;
878
+ var _this = _super.call(this) || this;
859
879
  /**
860
880
  * A backing model for all our @Input() valueModel properties which should be defined as follows.
861
881
  *
@@ -868,10 +888,47 @@
868
888
  */
869
889
  // We have to register it as a disposable so it ditches any listeners when we're disposed.
870
890
  _this.inputModel = _this.registerDisposable(new pectin.Form.DelegatingListModel());
891
+ _this.setValueIsInitialising = new pectin.Guard();
892
+ _this.valueChange = new core.EventEmitter();
893
+ var when = pectin.Dsl.disposeWith(_this).when;
894
+ when(_this.inputModel).changes(function (value) { return _this.valueChange.emit(value); }, {
895
+ initialValue: 'ignore',
896
+ unless: _this.setValueIsInitialising
897
+ });
871
898
  return _this;
872
899
  }
900
+ Object.defineProperty(AbstractListInputComponent.prototype, "value", {
901
+ set: function (value) {
902
+ var _this = this;
903
+ if (!this.listHolder) {
904
+ this.setValueIsInitialising.whileTrue(function () {
905
+ _this.listHolder = new pectin.MutableListModel(value);
906
+ _this.listModel = _this.listHolder;
907
+ });
908
+ }
909
+ else {
910
+ this.listHolder.value = value;
911
+ }
912
+ },
913
+ enumerable: true,
914
+ configurable: true
915
+ });
916
+ __decorate([
917
+ core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
918
+ __metadata("design:type", Object)
919
+ ], AbstractListInputComponent.prototype, "listModel", void 0);
920
+ __decorate([
921
+ core.Input(),
922
+ __metadata("design:type", Array),
923
+ __metadata("design:paramtypes", [Array])
924
+ ], AbstractListInputComponent.prototype, "value", null);
925
+ __decorate([
926
+ core.Output(),
927
+ __metadata("design:type", Object)
928
+ ], AbstractListInputComponent.prototype, "valueChange", void 0);
873
929
  AbstractListInputComponent = __decorate([
874
- core.Component({ template: '' })
930
+ core.Component({ template: '' }),
931
+ __metadata("design:paramtypes", [])
875
932
  ], AbstractListInputComponent);
876
933
  return AbstractListInputComponent;
877
934
  }(AbstractInputComponent));
@@ -892,13 +949,47 @@
892
949
  */
893
950
  // We have to register it as a disposable so it ditches any listeners when we're disposed.
894
951
  _this.inputModel = _this.registerDisposable(new pectin.Form.DelegatingValueModel());
895
- _this.inputModel.onTransactionStart(function (tx) {
896
- tx.onRootTransactionFinalised(function () {
897
- console.log({ changed: tx.hasChanged() });
898
- });
952
+ _this.setValueInProgress = new pectin.Guard();
953
+ _this.valueChange = new core.EventEmitter();
954
+ var when = pectin.Dsl.disposeWith(_this).when;
955
+ when(_this.inputModel).changes(function (value) { return _this.valueChange.emit(value); }, {
956
+ initialValue: 'ignore',
957
+ unless: _this.setValueInProgress
899
958
  });
900
959
  return _this;
901
960
  }
961
+ Object.defineProperty(AbstractValueInputComponent.prototype, "value", {
962
+ set: function (value) {
963
+ var _this = this;
964
+ // we never fire events during an external set value operation. This allows
965
+ // the component to behave when used in the conventional angular
966
+ // fashion, i.e. [(value)]="..."
967
+ this.setValueInProgress.whileTrue(function () {
968
+ if (!_this.valueHolder) {
969
+ _this.valueHolder = new pectin.MutableValueModel(value);
970
+ _this.valueModel = _this.valueHolder;
971
+ }
972
+ else {
973
+ _this.valueHolder.value = value;
974
+ }
975
+ });
976
+ },
977
+ enumerable: true,
978
+ configurable: true
979
+ });
980
+ __decorate([
981
+ core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
982
+ __metadata("design:type", Object)
983
+ ], AbstractValueInputComponent.prototype, "valueModel", void 0);
984
+ __decorate([
985
+ core.Input(),
986
+ __metadata("design:type", Object),
987
+ __metadata("design:paramtypes", [Object])
988
+ ], AbstractValueInputComponent.prototype, "value", null);
989
+ __decorate([
990
+ core.Output(),
991
+ __metadata("design:type", Object)
992
+ ], AbstractValueInputComponent.prototype, "valueChange", void 0);
902
993
  AbstractValueInputComponent = __decorate([
903
994
  core.Component({ template: '' }),
904
995
  __metadata("design:paramtypes", [])
@@ -906,20 +997,79 @@
906
997
  return AbstractValueInputComponent;
907
998
  }(AbstractInputComponent));
908
999
 
1000
+ /**
1001
+ * Using templates (not only supported for nil values:
1002
+ * <aup-autocomplete-input [valueModel]="myModel" [options]="myOptions">
1003
+ * <ng-template #nilOptionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
1004
+ * </aup-autocomplete-input>
1005
+ */
1006
+ var AutocompleteInputComponent = /** @class */ (function (_super) {
1007
+ __extends(AutocompleteInputComponent, _super);
1008
+ function AutocompleteInputComponent() {
1009
+ var _this = _super.call(this) || this;
1010
+ _this.filterValue = new pectin.MutableValueModel();
1011
+ _this.optionLabelFormat = function (option) { return (option && _this.optionLabel) ? option[_this.optionLabel] : option; };
1012
+ 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;
1013
+ var lowerCaseFilterValue = chain(_this.filterValue)
1014
+ .map(function (v) { return ___default__default.isString(v) ? v.toLowerCase() : ''; });
1015
+ _this.filteredOptions = chain(_this.optionsModel)
1016
+ .select(function (option) {
1017
+ return ___default__default.isEmpty(_this.filterValue.value) || _this.optionLabelFormat(option).toString().toLowerCase().includes(lowerCaseFilterValue.value);
1018
+ }, { dependsOn: lowerCaseFilterValue });
1019
+ return _this;
1020
+ }
1021
+ AutocompleteInputComponent.prototype.ngOnInit = function () {
1022
+ };
1023
+ AutocompleteInputComponent.prototype.updateFilter = function ($event) {
1024
+ this.filterValue.value = $event;
1025
+ };
1026
+ __decorate([
1027
+ core.Input(), pectin.TrackExternal(),
1028
+ __metadata("design:type", pectin.ListModel)
1029
+ ], AutocompleteInputComponent.prototype, "optionsModel", void 0);
1030
+ __decorate([
1031
+ core.Input(), pectin.StoreInListModel('optionsModel'),
1032
+ __metadata("design:type", Array)
1033
+ ], AutocompleteInputComponent.prototype, "options", void 0);
1034
+ __decorate([
1035
+ core.Input(),
1036
+ __metadata("design:type", Object)
1037
+ ], AutocompleteInputComponent.prototype, "optionLabel", void 0);
1038
+ __decorate([
1039
+ core.Input(),
1040
+ __metadata("design:type", Boolean)
1041
+ ], AutocompleteInputComponent.prototype, "allowNil", void 0);
1042
+ __decorate([
1043
+ core.ContentChild('nilOptionTemplate'),
1044
+ __metadata("design:type", core.TemplateRef)
1045
+ ], AutocompleteInputComponent.prototype, "nilOptionTemplateRef", void 0);
1046
+ __decorate([
1047
+ core.Input(),
1048
+ __metadata("design:type", Function)
1049
+ ], AutocompleteInputComponent.prototype, "optionLabelFormat", void 0);
1050
+ AutocompleteInputComponent = __decorate([
1051
+ core.Component({
1052
+ selector: 'aup-autocomplete-input',
1053
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"string\"\n matInput\n [matAutocomplete]=\"autocomplete\"\n placeholder=\"{{placeholder}}\"\n [ngModel]=\"optionLabelFormat(valueModel.value)\"\n (ngModelChange)=\"updateFilter($event)\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-autocomplete #autocomplete [displayWith]=\"optionLabelFormat\" [autoActiveFirstOption]=\"true\">\n <mat-option *ngFor=\"let option of filteredOptions.value; let i = index\"\n [value]=\"option\"\n >{{optionLabelFormat(option)}}</mat-option>\n <mat-option *ngIf=\"allowNil\">{{placeholder}}</mat-option>\n </mat-autocomplete>\n\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
1054
+ styles: [":host{display:inline-block}mat-form-field{width:100%}"]
1055
+ }),
1056
+ __metadata("design:paramtypes", [])
1057
+ ], AutocompleteInputComponent);
1058
+ return AutocompleteInputComponent;
1059
+ }(AbstractValueInputComponent));
1060
+
909
1061
  var CheckboxInputComponent = /** @class */ (function (_super) {
910
1062
  __extends(CheckboxInputComponent, _super);
911
1063
  function CheckboxInputComponent() {
912
1064
  var _this = _super.call(this) || this;
1065
+ // @Input() @TrackExternal({ delegateTo: 'inputModel' })
1066
+ // valueModel: Form.ValueModelBase<boolean> | IMutableValueModel<boolean>;
913
1067
  _this.color = 'accent';
914
1068
  _this.labelPosition = 'after';
915
1069
  return _this;
916
1070
  }
917
1071
  CheckboxInputComponent.prototype.ngOnInit = function () {
918
1072
  };
919
- __decorate([
920
- core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
921
- __metadata("design:type", Object)
922
- ], CheckboxInputComponent.prototype, "valueModel", void 0);
923
1073
  __decorate([
924
1074
  core.Input(),
925
1075
  __metadata("design:type", String)
@@ -931,28 +1081,81 @@
931
1081
  CheckboxInputComponent = __decorate([
932
1082
  core.Component({
933
1083
  selector: 'aup-checkbox-input',
934
- template: "<!-- TODO: add focus binding -->\n<mat-checkbox\n [(ngModel)]=\"valueModel.value\"\n [color]=\"color\"\n [labelPosition]=\"labelPosition\"\n [disabled]=\"!isEnabled()\"\n>{{label}}</mat-checkbox>\n<mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n<mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n",
935
- styles: [":host{display:inline-flex;flex-direction:column;margin-top:24px;margin-bottom:16px}mat-error,mat-hint{margin-top:4px;margin-left:24px;font-size:12px;font-weight:400;line-height:13.5px}"]
1084
+ template: "<!-- TODO: add focus binding -->\n<mat-checkbox\n [(ngModel)]=\"valueModel.value\"\n [color]=\"color\"\n [labelPosition]=\"labelPosition\"\n [disabled]=\"!isEnabled()\"\n>{{label}}</mat-checkbox>\n<mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n<mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n",
1085
+ styles: [":host{display:inline-flex;flex-direction:column;padding:24px 0 16px}:host.dense{padding:6px 0 2px}mat-error,mat-hint{margin-top:4px;margin-left:24px;font-size:12px;font-weight:400;line-height:13.5px}"]
936
1086
  }),
937
1087
  __metadata("design:paramtypes", [])
938
1088
  ], CheckboxInputComponent);
939
1089
  return CheckboxInputComponent;
940
1090
  }(AbstractValueInputComponent));
941
1091
 
1092
+ /**
1093
+ * Using templates:
1094
+ * <aup-multiple-select-input [valueModel]="myModel" [options]="myOptions">
1095
+ * <ng-template #optionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
1096
+ * <ng-template #nilOptionTemplateRef let-option>{{option.thePropertyYouWant}}</ng-template>
1097
+ * </aup-multiple-select_input>
1098
+ */
1099
+ var MultipleSelectInputComponent = /** @class */ (function (_super) {
1100
+ __extends(MultipleSelectInputComponent, _super);
1101
+ function MultipleSelectInputComponent() {
1102
+ var _this = _super.call(this) || this;
1103
+ _this.optionLabelFormat = function (option) { return (option && _this.optionLabel) ? option[_this.optionLabel] : option; };
1104
+ return _this;
1105
+ }
1106
+ MultipleSelectInputComponent.prototype.ngOnInit = function () {
1107
+ };
1108
+ __decorate([
1109
+ core.Input(), pectin.TrackExternal(),
1110
+ __metadata("design:type", pectin.ListModel)
1111
+ ], MultipleSelectInputComponent.prototype, "optionsModel", void 0);
1112
+ __decorate([
1113
+ core.Input(), pectin.StoreInListModel('optionsModel'),
1114
+ __metadata("design:type", Array)
1115
+ ], MultipleSelectInputComponent.prototype, "options", void 0);
1116
+ __decorate([
1117
+ core.Input(),
1118
+ __metadata("design:type", Object)
1119
+ ], MultipleSelectInputComponent.prototype, "optionLabel", void 0);
1120
+ __decorate([
1121
+ core.Input(),
1122
+ __metadata("design:type", Boolean)
1123
+ ], MultipleSelectInputComponent.prototype, "allowNil", void 0);
1124
+ __decorate([
1125
+ core.ContentChild('optionTemplate'),
1126
+ __metadata("design:type", core.TemplateRef)
1127
+ ], MultipleSelectInputComponent.prototype, "optionTemplateRef", void 0);
1128
+ __decorate([
1129
+ core.ContentChild('nilOptionTemplate'),
1130
+ __metadata("design:type", core.TemplateRef)
1131
+ ], MultipleSelectInputComponent.prototype, "nilOptionTemplateRef", void 0);
1132
+ __decorate([
1133
+ core.Input(),
1134
+ __metadata("design:type", Function)
1135
+ ], MultipleSelectInputComponent.prototype, "optionLabelFormat", void 0);
1136
+ MultipleSelectInputComponent = __decorate([
1137
+ core.Component({
1138
+ selector: 'aup-multiple-select-input',
1139
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n multiple\n [(ngModel)]=\"listModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-option *ngIf=\"allowNil\">{{placeholder}}</mat-option>\n <mat-option *ngFor=\"let option of optionsModel.value; let i = index\" [value]=\"option\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{optionLabelFormat(option)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: option, index: i }\"\n >\n </ng-container>\n </mat-option>\n </mat-select>\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
1140
+ styles: [":host{display:inline-block}mat-form-field{width:100%}"]
1141
+ }),
1142
+ __metadata("design:paramtypes", [])
1143
+ ], MultipleSelectInputComponent);
1144
+ return MultipleSelectInputComponent;
1145
+ }(AbstractListInputComponent));
1146
+
942
1147
  var NumberInputComponent = /** @class */ (function (_super) {
943
1148
  __extends(NumberInputComponent, _super);
944
1149
  function NumberInputComponent() {
945
1150
  var _this = _super.call(this) || this;
1151
+ // @Input() @TrackExternal({ delegateTo: 'inputModel' })
1152
+ // valueModel: Form.ValueModelBase<number> | IMutableValueModel<number>;
946
1153
  _this.min = Number.MIN_SAFE_INTEGER;
947
1154
  _this.max = Number.MAX_SAFE_INTEGER;
948
1155
  return _this;
949
1156
  }
950
1157
  NumberInputComponent.prototype.ngOnInit = function () {
951
1158
  };
952
- __decorate([
953
- core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
954
- __metadata("design:type", Object)
955
- ], NumberInputComponent.prototype, "valueModel", void 0);
956
1159
  __decorate([
957
1160
  core.Input(),
958
1161
  __metadata("design:type", Object)
@@ -964,8 +1167,8 @@
964
1167
  NumberInputComponent = __decorate([
965
1168
  core.Component({
966
1169
  selector: 'aup-number-input',
967
- template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"number\"\n matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [min]=\"min\"\n [max]=\"max\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
968
- styles: [":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}:host-context(aup-table-cell-renderer) mat-form-field div.mat-form-field-infix{width:auto}"]
1170
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"number\"\n matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [min]=\"min\"\n [max]=\"max\"\n >\n <mat-hint *ngIf=\"hint && !dense\" >{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
1171
+ styles: [""]
969
1172
  }),
970
1173
  __metadata("design:paramtypes", [])
971
1174
  ], NumberInputComponent);
@@ -974,26 +1177,31 @@
974
1177
 
975
1178
  var PasswordInputComponent = /** @class */ (function (_super) {
976
1179
  __extends(PasswordInputComponent, _super);
1180
+ // @Input() @TrackExternal({ delegateTo: 'inputModel' })
1181
+ // valueModel: Form.ValueModelBase<string> | IMutableValueModel<string>;
977
1182
  function PasswordInputComponent() {
978
1183
  return _super.call(this) || this;
979
1184
  }
980
1185
  PasswordInputComponent.prototype.ngOnInit = function () {
981
1186
  };
982
- __decorate([
983
- core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
984
- __metadata("design:type", Object)
985
- ], PasswordInputComponent.prototype, "valueModel", void 0);
986
1187
  PasswordInputComponent = __decorate([
987
1188
  core.Component({
988
1189
  selector: 'aup-password-input',
989
- template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"password\"\n matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n",
990
- styles: [":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}:host-context(aup-table-cell-renderer) mat-form-field div.mat-form-field-infix{width:auto}"]
1190
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"password\"\n matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n",
1191
+ styles: [""]
991
1192
  }),
992
1193
  __metadata("design:paramtypes", [])
993
1194
  ], PasswordInputComponent);
994
1195
  return PasswordInputComponent;
995
1196
  }(AbstractValueInputComponent));
996
1197
 
1198
+ /**
1199
+ * Using templates:
1200
+ * <aup-select-input [valueModel]="myModel" [options]="myOptions">
1201
+ * <ng-template #optionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
1202
+ * <ng-template #nilOptionTemplateRef let-option>{{option.thePropertyYouWant}}</ng-template>
1203
+ * </aup-select_input>
1204
+ */
997
1205
  var SelectInputComponent = /** @class */ (function (_super) {
998
1206
  __extends(SelectInputComponent, _super);
999
1207
  function SelectInputComponent() {
@@ -1003,10 +1211,6 @@
1003
1211
  }
1004
1212
  SelectInputComponent.prototype.ngOnInit = function () {
1005
1213
  };
1006
- __decorate([
1007
- core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
1008
- __metadata("design:type", Object)
1009
- ], SelectInputComponent.prototype, "valueModel", void 0);
1010
1214
  __decorate([
1011
1215
  core.Input(), pectin.TrackExternal(),
1012
1216
  __metadata("design:type", pectin.ListModel)
@@ -1038,7 +1242,7 @@
1038
1242
  SelectInputComponent = __decorate([
1039
1243
  core.Component({
1040
1244
  selector: 'aup-select-input',
1041
- template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-option *ngIf=\"allowNil\">{{placeholder}}</mat-option>\n <mat-option *ngFor=\"let option of optionsModel.value; let i = index\" [value]=\"option\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{optionLabelFormat(option)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: option, index: i }\"\n >\n </ng-container>\n </mat-option>\n </mat-select>\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
1245
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-option *ngIf=\"allowNil\">{{placeholder}}</mat-option>\n <mat-option *ngFor=\"let option of optionsModel.value; let i = index\" [value]=\"option\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{optionLabelFormat(option)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: option, index: i }\"\n >\n </ng-container>\n </mat-option>\n </mat-select>\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
1042
1246
  styles: [":host{display:inline-block}mat-form-field{width:100%}"]
1043
1247
  }),
1044
1248
  __metadata("design:paramtypes", [])
@@ -1059,10 +1263,6 @@
1059
1263
  }
1060
1264
  StringInputComponent.prototype.ngOnInit = function () {
1061
1265
  };
1062
- __decorate([
1063
- core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
1064
- __metadata("design:type", Object)
1065
- ], StringInputComponent.prototype, "valueModel", void 0);
1066
1266
  __decorate([
1067
1267
  core.Input(), pectin.TrackExternal({ defaultValue: false }),
1068
1268
  __metadata("design:type", pectin.ValueModel)
@@ -1074,8 +1274,8 @@
1074
1274
  StringInputComponent = __decorate([
1075
1275
  core.Component({
1076
1276
  selector: 'aup-string-input',
1077
- template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n <button mat-button mat-icon-button matSuffix *ngIf=\"enableClear\" [pectinCommand]=\"clearCommand\">\n <aup-icon icon=\"mat:close\"></aup-icon>\n </button>\n</mat-form-field>\n\n",
1078
- styles: [":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}:host-context(aup-table-cell-renderer) mat-form-field div.mat-form-field-infix{width:auto}button[disabled]{visibility:hidden}"]
1277
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n <button mat-button mat-icon-button matSuffix *ngIf=\"enableClear\" [pectinCommand]=\"clearCommand\">\n <aup-icon icon=\"mat:close\"></aup-icon>\n </button>\n</mat-form-field>\n\n",
1278
+ styles: ["button[disabled]{visibility:hidden}"]
1079
1279
  }),
1080
1280
  __metadata("design:paramtypes", [])
1081
1281
  ], StringInputComponent);
@@ -1086,16 +1286,14 @@
1086
1286
  __extends(TextInputComponent, _super);
1087
1287
  function TextInputComponent() {
1088
1288
  var _this = _super.call(this) || this;
1289
+ // @Input() @TrackExternal({ delegateTo: 'inputModel' })
1290
+ // valueModel: Form.ValueModelBase<string> | IMutableValueModel<string>;
1089
1291
  _this.rows = 2;
1090
1292
  return _this;
1091
1293
  // const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
1092
1294
  }
1093
1295
  TextInputComponent.prototype.ngOnInit = function () {
1094
1296
  };
1095
- __decorate([
1096
- core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
1097
- __metadata("design:type", Object)
1098
- ], TextInputComponent.prototype, "valueModel", void 0);
1099
1297
  __decorate([
1100
1298
  core.Input(),
1101
1299
  __metadata("design:type", Object)
@@ -1107,14 +1305,56 @@
1107
1305
  TextInputComponent = __decorate([
1108
1306
  core.Component({
1109
1307
  selector: 'aup-text-input',
1110
- template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <textarea matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [rows]=\"rows\"\n [cols]=\"cols\"\n >\n </textarea>\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n",
1111
- styles: [":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}:host-context(aup-table-cell-renderer) mat-form-field div.mat-form-field-infix{width:auto}button[disabled]{visibility:hidden}textarea{overflow:auto}"]
1308
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <textarea matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [rows]=\"rows\"\n [cols]=\"cols\"\n >\n </textarea>\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n",
1309
+ styles: ["button[disabled]{visibility:hidden}textarea{overflow:auto}"]
1112
1310
  }),
1113
1311
  __metadata("design:paramtypes", [])
1114
1312
  ], TextInputComponent);
1115
1313
  return TextInputComponent;
1116
1314
  }(AbstractValueInputComponent));
1117
1315
 
1316
+ var IconComponent = /** @class */ (function () {
1317
+ function IconComponent() {
1318
+ }
1319
+ Object.defineProperty(IconComponent.prototype, "icon", {
1320
+ get: function () {
1321
+ return this._icon;
1322
+ },
1323
+ set: function (iconName) {
1324
+ this._icon = iconName;
1325
+ if (!iconName) {
1326
+ this.errorMessage = 'icon is nil';
1327
+ this.prefix = undefined;
1328
+ return;
1329
+ }
1330
+ var colonIndex = iconName.indexOf(':');
1331
+ if (colonIndex > 0) {
1332
+ this.prefix = this.icon.slice(0, colonIndex);
1333
+ this.suffix = this.icon.slice(colonIndex + 1);
1334
+ }
1335
+ if (this.prefix) {
1336
+ this.errorMessage = "Unknown icon \"" + iconName + "\"";
1337
+ }
1338
+ this.errorMessage = "Unknown icon prefix \"" + this.prefix + "\"";
1339
+ },
1340
+ enumerable: true,
1341
+ configurable: true
1342
+ });
1343
+ __decorate([
1344
+ core.Input(),
1345
+ __metadata("design:type", String),
1346
+ __metadata("design:paramtypes", [String])
1347
+ ], IconComponent.prototype, "icon", null);
1348
+ IconComponent = __decorate([
1349
+ core.Component({
1350
+ selector: 'aup-icon',
1351
+ template: "<ng-container [ngSwitch]=\"prefix\">\n\n <mat-icon *ngSwitchCase=\"'svg'\"\n [svgIcon]=\"suffix\"\n class=\"svgIcon\">\n </mat-icon>\n\n <mat-icon *ngSwitchCase=\"'mat'\">\n {{suffix}}\n </mat-icon>\n\n <div *ngSwitchCase=\"'fab'\"\n class=\"faIconWrapper\">\n <fa-icon [icon]=\"suffix\">\n </fa-icon>\n </div>\n\n <mat-icon *ngSwitchDefault\n [matTooltip]=\"errorMessage\">\n bug_report\n </mat-icon>\n\n</ng-container>\n\n",
1352
+ styles: [":host{display:inline-flex;width:24px}fa-icon{vertical-align:middle}.faIconWrapper{text-align:center;width:24px;height:24px}.svgIcon{width:24px;height:24px}:host(.mat-chip-remove) mat-icon{font-size:18px}mat-icon{width:inherit;height:inherit}"]
1353
+ })
1354
+ ], IconComponent);
1355
+ return IconComponent;
1356
+ }());
1357
+
1118
1358
  var NoopComponent = /** @class */ (function () {
1119
1359
  function NoopComponent() {
1120
1360
  }
@@ -1325,6 +1565,7 @@
1325
1565
  typescriptUtilities.assert.isTruthy(host);
1326
1566
  host[HEADER_CELL_RENDERER_PORTAL] = new portal.ComponentPortal(this.componentType);
1327
1567
  };
1568
+ // @Trace()
1328
1569
  CellHeaderPortalRef.prototype.onPortalAttached = function (host, portalComponent) {
1329
1570
  this.initialiseHeader(portalComponent, host.column);
1330
1571
  };
@@ -1348,13 +1589,15 @@
1348
1589
  ComponentCellRendererPortalRef.prototype.initialiseHost = function (host, columnModel) {
1349
1590
  host[CELL_RENDERER_PORTAL] = new portal.ComponentPortal(this.componentType);
1350
1591
  };
1592
+ // @Trace()
1351
1593
  ComponentCellRendererPortalRef.prototype.onPortalAttached = function (host, portalComponent) {
1352
1594
  host[PORTAL_RENDERER_COMPONENT] = portalComponent;
1353
- this.updateComponent(portalComponent, host.getRowData());
1595
+ this.updateComponent(portalComponent, host.getRowData(), true);
1354
1596
  };
1597
+ // @Trace()
1355
1598
  ComponentCellRendererPortalRef.prototype.pushState = function (host) {
1356
1599
  if (host[PORTAL_RENDERER_COMPONENT]) {
1357
- this.updateComponent(host[PORTAL_RENDERER_COMPONENT], host.getRowData());
1600
+ this.updateComponent(host[PORTAL_RENDERER_COMPONENT], host.getRowData(), false);
1358
1601
  }
1359
1602
  };
1360
1603
  return ComponentCellRendererPortalRef;
@@ -1396,6 +1639,7 @@
1396
1639
  TemplateCellRendererPortalRef.prototype.onPortalAttached = function (host, portalComponent) {
1397
1640
  // don't care
1398
1641
  };
1642
+ // @Trace()
1399
1643
  TemplateCellRendererPortalRef.prototype.pushState = function (host) {
1400
1644
  host[CELL_RENDERER_PORTAL] = this.createPortal(host.getRowData());
1401
1645
  host.fillCell = this.fillCell;
@@ -1677,24 +1921,37 @@
1677
1921
  }());
1678
1922
  var PropertyColumnModel = /** @class */ (function (_super) {
1679
1923
  __extends(PropertyColumnModel, _super);
1680
- function PropertyColumnModel(property, defaults) {
1681
- var _this = _super.call(this, property.toString(), defaults) || this;
1924
+ function PropertyColumnModel(id, property, defaults) {
1925
+ var _this = _super.call(this, id, defaults) || this;
1682
1926
  _this.property = property;
1683
1927
  _this._format = function (value) { return value; };
1684
1928
  _this.cellRenderer(DefaultCellRendererComponent);
1685
1929
  return _this;
1686
1930
  }
1687
- PropertyColumnModel.prototype.cellRenderer = function (componentType) {
1931
+ PropertyColumnModel.prototype.cellRenderer = function (componentType, onComponentInitOrOptions) {
1688
1932
  var _this = this;
1689
- this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData) {
1933
+ this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData, firstTime) {
1934
+ if (firstTime) {
1935
+ if (___default__default.isFunction(onComponentInitOrOptions)) {
1936
+ onComponentInitOrOptions(component);
1937
+ }
1938
+ else {
1939
+ if (___default__default.isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onComponentInit)) {
1940
+ onComponentInitOrOptions.onComponentInit(component);
1941
+ }
1942
+ }
1943
+ }
1690
1944
  component.value = _this._format(rowData.row[_this.property]);
1945
+ if (!___default__default.isFunction(onComponentInitOrOptions) && ___default__default.isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onRowUpdate)) {
1946
+ onComponentInitOrOptions.onRowUpdate(component, rowData.row);
1947
+ }
1691
1948
  }));
1692
1949
  return this;
1693
1950
  };
1694
- PropertyColumnModel.prototype.cellEditor = function (editor, validatorsOrInitialiser, initialiseComponent) {
1951
+ PropertyColumnModel.prototype.cellEditor = function (editor, validatorsOrInitialiser, onComponentInit) {
1695
1952
  var _this = this;
1696
1953
  var validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
1697
- var initialiser = ___default__default.isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : initialiseComponent;
1954
+ var initialiser = ___default__default.isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : onComponentInit;
1698
1955
  this.configureCellEditor(new CellEditorPortalRef(editor, function (component, editSession) {
1699
1956
  var formValueModel = editSession.form.pluck(_this.property);
1700
1957
  if (validators) {
@@ -1719,8 +1976,8 @@
1719
1976
  }(ColumnModel));
1720
1977
  var ListPropertyColumnModel = /** @class */ (function (_super) {
1721
1978
  __extends(ListPropertyColumnModel, _super);
1722
- function ListPropertyColumnModel(property, defaults) {
1723
- var _this = _super.call(this, property.toString(), defaults) || this;
1979
+ function ListPropertyColumnModel(id, property, defaults) {
1980
+ var _this = _super.call(this, id, defaults) || this;
1724
1981
  _this.property = property;
1725
1982
  _this._format = function (value) { return value.map(function (v) { return v === null || v === void 0 ? void 0 : v.toString(); }).join(', '); };
1726
1983
  _this.cellRenderer(DefaultCellRendererComponent);
@@ -1767,9 +2024,12 @@
1767
2024
  _this.cellRenderer(DefaultCellRendererComponent);
1768
2025
  return _this;
1769
2026
  }
1770
- CustomValueColumnModel.prototype.cellRenderer = function (componentType) {
2027
+ CustomValueColumnModel.prototype.cellRenderer = function (componentType, onComponentInit) {
1771
2028
  var _this = this;
1772
- this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData) {
2029
+ this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData, firstTime) {
2030
+ if (firstTime && ___default__default.isFunction(onComponentInit)) {
2031
+ onComponentInit(component);
2032
+ }
1773
2033
  component.value = _this.getValue(rowData.row);
1774
2034
  }));
1775
2035
  return this;
@@ -1954,7 +2214,7 @@
1954
2214
  this.dataSource = chain(this.sourceOfTruth).replaceAll(this.rowsBeingEdited);
1955
2215
  this.firstEditableColumn = chain(this.columns).select(function (c) { return c.hasEditorPortal(); }).first();
1956
2216
  this.hasColumnsWithRowSelectionExplicitlyEnabled = chain(this._columns).findIndex(function (column) { return column.isRowSelectionExplicitlyEnabled(); }).isGreaterThanOrEqualTo(0);
1957
- this.addRowClass("enable-hover", function () { return _this.isRowSelectionEnabled(); });
2217
+ this.addRowClass('enable-hover', function () { return _this.isRowSelectionEnabled(); });
1958
2218
  }
1959
2219
  TableModel_1 = TableModel;
1960
2220
  TableModel.fromList = function (sourceOfTruth, builder) {
@@ -1982,11 +2242,11 @@
1982
2242
  enumerable: true,
1983
2243
  configurable: true
1984
2244
  });
1985
- TableModel.prototype.pluck = function (property) {
1986
- return this.addColumn(new PropertyColumnModel(property, this));
2245
+ TableModel.prototype.pluck = function (property, options) {
2246
+ return this.addColumn(new PropertyColumnModel((options === null || options === void 0 ? void 0 : options.columnId) || property.toString(), property, this));
1987
2247
  };
1988
- TableModel.prototype.pluckList = function (property) {
1989
- return this.addColumn(new ListPropertyColumnModel(property, this));
2248
+ TableModel.prototype.pluckList = function (property, options) {
2249
+ return this.addColumn(new ListPropertyColumnModel((options === null || options === void 0 ? void 0 : options.columnId) || property.toString(), property, this));
1990
2250
  };
1991
2251
  TableModel.prototype.addSelectionColumn = function (selectionModel) {
1992
2252
  pectin.assert.isNil(this.selectionColumnModel);
@@ -2000,6 +2260,9 @@
2000
2260
  TableModel.prototype.addCustomColumn = function (columnId, dataAccessor) {
2001
2261
  return this.addColumn(new CustomValueColumnModel(columnId, this, dataAccessor));
2002
2262
  };
2263
+ TableModel.prototype.addComponentColumn = function (columnId, component, onInit) {
2264
+ return this.addColumn(new CustomValueColumnModel(columnId, this, function (row) { return row; })).cellRenderer(component, onInit);
2265
+ };
2003
2266
  TableModel.prototype.addTemplateColumn = function (columnId) {
2004
2267
  return this.addColumn(new CustomTemplateColumnModel(columnId, this));
2005
2268
  };
@@ -2152,7 +2415,6 @@
2152
2415
  core.Component({
2153
2416
  selector: 'aup-table',
2154
2417
  template: "<table mat-table [dataSource]=\"tableModel.dataSource.value\" [trackBy]=\"tableModel.getTrackByFunction()\">\n\n <ng-container *ngFor=\"let column of columns.value; index as index; first as first; last as last\" matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef>\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)=\"onCellClicked(column, row)\" [class.enable-cursor]=\"tableModel.isRowSelectionEnabledFor(column)\">\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;\"\n [ngClass]=\"tableModel.getRowClasses(row)\"\n ></tr>\n\n</table>\n",
2155
- encapsulation: core.ViewEncapsulation.None,
2156
2418
  styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{flex:1}"]
2157
2419
  }),
2158
2420
  __metadata("design:paramtypes", [])
@@ -2420,100 +2682,6 @@
2420
2682
  return VerticalFocusContainerComponent;
2421
2683
  }(FocusContainerComponent));
2422
2684
 
2423
- var MultipleSelectInputComponent = /** @class */ (function (_super) {
2424
- __extends(MultipleSelectInputComponent, _super);
2425
- function MultipleSelectInputComponent() {
2426
- var _this = _super.call(this) || this;
2427
- _this.optionLabelFormat = function (option) { return (option && _this.optionLabel) ? option[_this.optionLabel] : option; };
2428
- return _this;
2429
- }
2430
- MultipleSelectInputComponent.prototype.ngOnInit = function () {
2431
- };
2432
- __decorate([
2433
- core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
2434
- __metadata("design:type", Object)
2435
- ], MultipleSelectInputComponent.prototype, "listModel", void 0);
2436
- __decorate([
2437
- core.Input(), pectin.TrackExternal(),
2438
- __metadata("design:type", pectin.ListModel)
2439
- ], MultipleSelectInputComponent.prototype, "optionsModel", void 0);
2440
- __decorate([
2441
- core.Input(), pectin.StoreInListModel('optionsModel'),
2442
- __metadata("design:type", Array)
2443
- ], MultipleSelectInputComponent.prototype, "options", void 0);
2444
- __decorate([
2445
- core.Input(),
2446
- __metadata("design:type", Object)
2447
- ], MultipleSelectInputComponent.prototype, "optionLabel", void 0);
2448
- __decorate([
2449
- core.Input(),
2450
- __metadata("design:type", Boolean)
2451
- ], MultipleSelectInputComponent.prototype, "allowNil", void 0);
2452
- __decorate([
2453
- core.ContentChild('optionTemplate'),
2454
- __metadata("design:type", core.TemplateRef)
2455
- ], MultipleSelectInputComponent.prototype, "optionTemplateRef", void 0);
2456
- __decorate([
2457
- core.ContentChild('nilOptionTemplate'),
2458
- __metadata("design:type", core.TemplateRef)
2459
- ], MultipleSelectInputComponent.prototype, "nilOptionTemplateRef", void 0);
2460
- __decorate([
2461
- core.Input(),
2462
- __metadata("design:type", Function)
2463
- ], MultipleSelectInputComponent.prototype, "optionLabelFormat", void 0);
2464
- MultipleSelectInputComponent = __decorate([
2465
- core.Component({
2466
- selector: 'aup-multiple-select-input',
2467
- template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n multiple\n [(ngModel)]=\"listModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-option *ngIf=\"allowNil\">{{placeholder}}</mat-option>\n <mat-option *ngFor=\"let option of optionsModel.value; let i = index\" [value]=\"option\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{optionLabelFormat(option)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: option, index: i }\"\n >\n </ng-container>\n </mat-option>\n </mat-select>\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
2468
- styles: [":host{display:inline-block}mat-form-field{width:100%}"]
2469
- }),
2470
- __metadata("design:paramtypes", [])
2471
- ], MultipleSelectInputComponent);
2472
- return MultipleSelectInputComponent;
2473
- }(AbstractListInputComponent));
2474
-
2475
- var IconComponent = /** @class */ (function () {
2476
- function IconComponent() {
2477
- }
2478
- Object.defineProperty(IconComponent.prototype, "icon", {
2479
- get: function () {
2480
- return this._icon;
2481
- },
2482
- set: function (iconName) {
2483
- this._icon = iconName;
2484
- if (!iconName) {
2485
- this.errorMessage = 'icon is nil';
2486
- this.prefix = undefined;
2487
- return;
2488
- }
2489
- var colonIndex = iconName.indexOf(':');
2490
- if (colonIndex > 0) {
2491
- this.prefix = this.icon.slice(0, colonIndex);
2492
- this.suffix = this.icon.slice(colonIndex + 1);
2493
- }
2494
- if (this.prefix) {
2495
- this.errorMessage = "Unknown icon \"" + iconName + "\"";
2496
- }
2497
- this.errorMessage = "Unknown icon prefix \"" + this.prefix + "\"";
2498
- },
2499
- enumerable: true,
2500
- configurable: true
2501
- });
2502
- __decorate([
2503
- core.Input(),
2504
- __metadata("design:type", String),
2505
- __metadata("design:paramtypes", [String])
2506
- ], IconComponent.prototype, "icon", null);
2507
- IconComponent = __decorate([
2508
- core.Component({
2509
- selector: 'aup-icon',
2510
- template: "<ng-container [ngSwitch]=\"prefix\">\n\n <mat-icon *ngSwitchCase=\"'svg'\"\n [svgIcon]=\"suffix\"\n class=\"svgIcon\">\n </mat-icon>\n\n <mat-icon *ngSwitchCase=\"'mat'\">\n {{suffix}}\n </mat-icon>\n\n <div *ngSwitchCase=\"'fab'\"\n class=\"faIconWrapper\">\n <fa-icon [icon]=\"suffix\">\n </fa-icon>\n </div>\n\n <mat-icon *ngSwitchDefault\n [matTooltip]=\"errorMessage\">\n bug_report\n </mat-icon>\n\n</ng-container>\n\n",
2511
- styles: [":host{display:inline-flex;width:24px}fa-icon{vertical-align:middle}.faIconWrapper{text-align:center;width:24px;height:24px}.svgIcon{width:24px;height:24px}:host(.mat-chip-remove) mat-icon{font-size:18px}mat-icon{width:inherit;height:inherit}"]
2512
- })
2513
- ], IconComponent);
2514
- return IconComponent;
2515
- }());
2516
-
2517
2685
  var ComponentsModule = /** @class */ (function () {
2518
2686
  function ComponentsModule(faIconLibrary) {
2519
2687
  faIconLibrary.addIconPacks(freeSolidSvgIcons.fas);
@@ -2532,6 +2700,8 @@
2532
2700
  TextInputComponent,
2533
2701
  PasswordInputComponent,
2534
2702
  SelectInputComponent,
2703
+ MultipleSelectInputComponent,
2704
+ AutocompleteInputComponent,
2535
2705
  CheckboxInputComponent,
2536
2706
  ScrollContainerComponent,
2537
2707
  NoopComponent,
@@ -2551,7 +2721,6 @@
2551
2721
  SelectHeaderCellRendererComponent,
2552
2722
  DefaultHeaderCellRendererComponent,
2553
2723
  TableHeaderCellRendererComponent,
2554
- MultipleSelectInputComponent,
2555
2724
  IconComponent,
2556
2725
  SectionHeaderComponent
2557
2726
  ],
@@ -2571,7 +2740,8 @@
2571
2740
  portal.PortalModule,
2572
2741
  scrolling.CdkScrollableModule,
2573
2742
  angularFontawesome.FontAwesomeModule,
2574
- tooltip.MatTooltipModule
2743
+ tooltip.MatTooltipModule,
2744
+ autocomplete.MatAutocompleteModule
2575
2745
  ],
2576
2746
  exports: [
2577
2747
  NumberInputComponent,
@@ -2580,6 +2750,8 @@
2580
2750
  PasswordInputComponent,
2581
2751
  CheckboxInputComponent,
2582
2752
  SelectInputComponent,
2753
+ MultipleSelectInputComponent,
2754
+ AutocompleteInputComponent,
2583
2755
  ScrollContainerComponent,
2584
2756
  NoopComponent,
2585
2757
  SwitchCaseComponent,
@@ -2592,12 +2764,23 @@
2592
2764
  TableComponent,
2593
2765
  EditRowControls,
2594
2766
  ColumnTemplateDirective,
2595
- MultipleSelectInputComponent,
2596
2767
  IconComponent,
2597
2768
  SectionHeaderComponent
2598
2769
  ],
2599
2770
  providers: [
2600
- FocusBindingFactory,
2771
+ FocusBindingFactory
2772
+ // {
2773
+ // provide: CELL_EDITOR_REGISTRATION, useValue: {
2774
+ // type: 'string',
2775
+ // editorClass: StringInputComponent
2776
+ // }, multi: true
2777
+ // },
2778
+ // {
2779
+ // provide: CELL_EDITOR_REGISTRATION, useValue: {
2780
+ // type: 'number',
2781
+ // editorClass: NumberInputComponent
2782
+ // }, multi: true
2783
+ // }
2601
2784
  ]
2602
2785
  }),
2603
2786
  __metadata("design:paramtypes", [angularFontawesome.FaIconLibrary])
@@ -3238,7 +3421,7 @@
3238
3421
  }());
3239
3422
 
3240
3423
  var inplaceMonitorCount = 0;
3241
- exports.ɵbv = /** @class */ (function () {
3424
+ exports.ɵbw = /** @class */ (function () {
3242
3425
  function InteractionService(modelInteractionContextFactory) {
3243
3426
  this.modelInteractionContextFactory = modelInteractionContextFactory;
3244
3427
  this.garbage = new pectin.GarbageCollector();
@@ -3383,7 +3566,7 @@
3383
3566
  return ApiAdapter;
3384
3567
  }());
3385
3568
  InteractionService.ApiAdapter = ApiAdapter;
3386
- })(exports.ɵbv || (exports.ɵbv = {}));
3569
+ })(exports.ɵbw || (exports.ɵbw = {}));
3387
3570
 
3388
3571
  var InPlaceInteractionContextComponent = /** @class */ (function (_super) {
3389
3572
  __extends(InPlaceInteractionContextComponent, _super);
@@ -3441,7 +3624,7 @@
3441
3624
  return this.activityContainerComponent.startActivity(activityType, data, options);
3442
3625
  };
3443
3626
  InPlaceInteractionContextComponent.ctorParameters = function () { return [
3444
- { type: exports.ɵbv },
3627
+ { type: exports.ɵbw },
3445
3628
  { type: undefined, decorators: [{ type: core.Inject, args: [tabs.MAT_TABS_CONFIG,] }, { type: core.Optional }] }
3446
3629
  ]; };
3447
3630
  __decorate([
@@ -3459,7 +3642,7 @@
3459
3642
  styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}"]
3460
3643
  }),
3461
3644
  __param(1, core.Inject(tabs.MAT_TABS_CONFIG)), __param(1, core.Optional()),
3462
- __metadata("design:paramtypes", [exports.ɵbv, Object])
3645
+ __metadata("design:paramtypes", [exports.ɵbw, Object])
3463
3646
  ], InPlaceInteractionContextComponent);
3464
3647
  return InPlaceInteractionContextComponent;
3465
3648
  }(DisposableComponent));
@@ -3998,7 +4181,7 @@
3998
4181
  AlertDialogComponent
3999
4182
  ],
4000
4183
  providers: [
4001
- exports.ɵbv
4184
+ exports.ɵbw
4002
4185
  // {
4003
4186
  // provide: MAT_TABS_CONFIG, useValue: { animationDuration: "2s" }
4004
4187
  // }
@@ -5120,7 +5303,7 @@
5120
5303
  return PopStateNavigation;
5121
5304
  }(AbstractPopStateNavigation));
5122
5305
 
5123
- exports.ɵby = /** @class */ (function () {
5306
+ exports.ɵbz = /** @class */ (function () {
5124
5307
  function PlaceHistory() {
5125
5308
  this._archive = new Map();
5126
5309
  this.placeHistoryDepth = 4;
@@ -5257,7 +5440,7 @@
5257
5440
  // }
5258
5441
  //
5259
5442
  // }
5260
- })(exports.ɵby || (exports.ɵby = {}));
5443
+ })(exports.ɵbz || (exports.ɵbz = {}));
5261
5444
 
5262
5445
  exports.UrlSnapshot = /** @class */ (function () {
5263
5446
  // TODO: Update this accept a url Parser so it can be immutable and generate new trees on mutation using toString() are parseUrl.
@@ -5780,11 +5963,11 @@
5780
5963
  PlaceRouter.ctorParameters = function () { return [
5781
5964
  { type: router.Router },
5782
5965
  { type: common.Location },
5783
- { type: exports.ɵbv },
5966
+ { type: exports.ɵbw },
5784
5967
  { type: UrlService },
5785
- { type: exports.ɵby }
5968
+ { type: exports.ɵbz }
5786
5969
  ]; };
5787
- PlaceRouter.ɵprov = core.ɵɵdefineInjectable({ factory: function PlaceRouter_Factory() { return new PlaceRouter(core.ɵɵinject(router.Router), core.ɵɵinject(common.Location), core.ɵɵinject(exports.ɵbv), core.ɵɵinject(UrlService), core.ɵɵinject(exports.ɵby)); }, token: PlaceRouter, providedIn: "root" });
5970
+ PlaceRouter.ɵprov = core.ɵɵdefineInjectable({ factory: function PlaceRouter_Factory() { return new PlaceRouter(core.ɵɵinject(router.Router), core.ɵɵinject(common.Location), core.ɵɵinject(exports.ɵbw), core.ɵɵinject(UrlService), core.ɵɵinject(exports.ɵbz)); }, token: PlaceRouter, providedIn: "root" });
5788
5971
  __decorate([
5789
5972
  pectin.Trace(),
5790
5973
  __metadata("design:type", Function),
@@ -5797,9 +5980,9 @@
5797
5980
  }),
5798
5981
  __metadata("design:paramtypes", [router.Router,
5799
5982
  common.Location,
5800
- exports.ɵbv,
5983
+ exports.ɵbw,
5801
5984
  UrlService,
5802
- exports.ɵby])
5985
+ exports.ɵbz])
5803
5986
  ], PlaceRouter);
5804
5987
  return PlaceRouter;
5805
5988
  }(pectin.GarbageCollector));
@@ -6890,6 +7073,7 @@
6890
7073
  exports.AddItemInteractionContextComponent = AddItemInteractionContextComponent;
6891
7074
  exports.AlertDialogComponent = AlertDialogComponent;
6892
7075
  exports.AngularUiPowerupsModule = AngularUiPowerupsModule;
7076
+ exports.AutocompleteInputComponent = AutocompleteInputComponent;
6893
7077
  exports.BusyOverlayComponent = BusyOverlayComponent;
6894
7078
  exports.CELL_EDITOR_PORTAL = CELL_EDITOR_PORTAL;
6895
7079
  exports.CELL_RENDERER_PORTAL = CELL_RENDERER_PORTAL;
@@ -6933,7 +7117,7 @@
6933
7117
  exports.InPlaceInteractionContextComponent = InPlaceInteractionContextComponent;
6934
7118
  exports.InteractionContextTriggerFor = InteractionContextTriggerFor;
6935
7119
  exports.InteractionModule = InteractionModule;
6936
- exports.InteractionService = exports.ɵbv;
7120
+ exports.InteractionService = exports.ɵbw;
6937
7121
  exports.InteractionServiceRoutingAdapter = InteractionServiceRoutingAdapter;
6938
7122
  exports.LEFT_RIGHT_PLACE_ANIMATION = LEFT_RIGHT_PLACE_ANIMATION;
6939
7123
  exports.ListPlaceNavComponent = ListPlaceNavComponent;
@@ -6953,7 +7137,7 @@
6953
7137
  exports.PlaceComponentDeactivationHandler = PlaceComponentDeactivationHandler;
6954
7138
  exports.PlaceDefinition = PlaceDefinition;
6955
7139
  exports.PlaceGuard = PlaceGuard;
6956
- exports.PlaceHistory = exports.ɵby;
7140
+ exports.PlaceHistory = exports.ɵbz;
6957
7141
  exports.PlaceModule = PlaceModule;
6958
7142
  exports.PlaceOutletComponent = PlaceOutletComponent;
6959
7143
  exports.PlaceRouter = PlaceRouter;
@@ -7003,50 +7187,51 @@
7003
7187
  exports.ɵ0 = ɵ0;
7004
7188
  exports.ɵa = DirectivesModule;
7005
7189
  exports.ɵb = CommandDirective;
7006
- exports.ɵba = EditRowControls;
7007
- exports.ɵbb = ColumnTemplateDirective;
7008
- exports.ɵbc = DefaultCellRendererComponent;
7009
- exports.ɵbd = TableCellRendererComponent;
7010
- exports.ɵbe = SelectCellRendererComponent;
7011
- exports.ɵbf = SelectHeaderCellRendererComponent;
7012
- exports.ɵbg = DefaultHeaderCellRendererComponent;
7013
- exports.ɵbh = TableHeaderCellRendererComponent;
7014
- exports.ɵbi = MultipleSelectInputComponent;
7015
- exports.ɵbj = IconComponent;
7016
- exports.ɵbk = SectionHeaderComponent;
7017
- exports.ɵbl = PlaceModule;
7018
- exports.ɵbm = ComponentsModule;
7019
- exports.ɵbn = EmptyStateComponent;
7020
- exports.ɵbo = BusyOverlayComponent;
7021
- exports.ɵbp = PlaceOutletComponent;
7022
- exports.ɵbq = leftRightPlaceAnimation;
7023
- exports.ɵbr = LEFT_RIGHT_PLACE_ANIMATION;
7024
- exports.ɵbs = AUP_PLACE_CONFIG;
7025
- exports.ɵbu = PlaceRouter;
7026
- exports.ɵbw = ModalInteractionContextFactory;
7027
- exports.ɵbx = UrlService;
7028
- exports.ɵbz = TabbedPlaceNavigationComponent;
7190
+ exports.ɵba = CardContainerComponent;
7191
+ exports.ɵbb = TableComponent;
7192
+ exports.ɵbc = EditRowControls;
7193
+ exports.ɵbd = ColumnTemplateDirective;
7194
+ exports.ɵbe = DefaultCellRendererComponent;
7195
+ exports.ɵbf = TableCellRendererComponent;
7196
+ exports.ɵbg = SelectCellRendererComponent;
7197
+ exports.ɵbh = SelectHeaderCellRendererComponent;
7198
+ exports.ɵbi = DefaultHeaderCellRendererComponent;
7199
+ exports.ɵbj = TableHeaderCellRendererComponent;
7200
+ exports.ɵbk = IconComponent;
7201
+ exports.ɵbl = SectionHeaderComponent;
7202
+ exports.ɵbm = PlaceModule;
7203
+ exports.ɵbn = ComponentsModule;
7204
+ exports.ɵbo = EmptyStateComponent;
7205
+ exports.ɵbp = BusyOverlayComponent;
7206
+ exports.ɵbq = PlaceOutletComponent;
7207
+ exports.ɵbr = leftRightPlaceAnimation;
7208
+ exports.ɵbs = LEFT_RIGHT_PLACE_ANIMATION;
7209
+ exports.ɵbt = AUP_PLACE_CONFIG;
7210
+ exports.ɵbv = PlaceRouter;
7211
+ exports.ɵbx = ModalInteractionContextFactory;
7212
+ exports.ɵby = UrlService;
7029
7213
  exports.ɵc = FocusBindingDirective;
7030
- exports.ɵca = AbstractPlaceNavigationComponent;
7031
- exports.ɵcb = ListPlaceNavComponent;
7032
- exports.ɵcc = SidePlaceNavigationComponent;
7033
- exports.ɵcd = InteractionModule;
7034
- exports.ɵce = ActivityContainerComponent;
7035
- exports.ɵcf = AbstractInteractionContext;
7036
- exports.ɵcg = ActivityOutletComponent;
7037
- exports.ɵch = ConfirmationDialogComponent;
7038
- exports.ɵci = ACTIVITY_DATA;
7039
- exports.ɵcj = Activity;
7040
- exports.ɵcl = ConfirmThenDialogComponent;
7041
- exports.ɵcm = AlertDialogComponent;
7042
- exports.ɵco = InPlaceInteractionContextComponent;
7043
- exports.ɵcp = AddItemInteractionContextComponent;
7044
- exports.ɵcq = ActivityActionsComponent;
7045
- exports.ɵcr = PopupInteractionContextComponent;
7046
- exports.ɵcs = StringInputActivity;
7047
- exports.ɵct = AbstractInputActivity;
7048
- exports.ɵcu = SelectInputActivity;
7049
- exports.ɵcv = InteractionContextTriggerFor;
7214
+ exports.ɵca = TabbedPlaceNavigationComponent;
7215
+ exports.ɵcb = AbstractPlaceNavigationComponent;
7216
+ exports.ɵcc = ListPlaceNavComponent;
7217
+ exports.ɵcd = SidePlaceNavigationComponent;
7218
+ exports.ɵce = InteractionModule;
7219
+ exports.ɵcf = ActivityContainerComponent;
7220
+ exports.ɵcg = AbstractInteractionContext;
7221
+ exports.ɵch = ActivityOutletComponent;
7222
+ exports.ɵci = ConfirmationDialogComponent;
7223
+ exports.ɵcj = ACTIVITY_DATA;
7224
+ exports.ɵck = Activity;
7225
+ exports.ɵcm = ConfirmThenDialogComponent;
7226
+ exports.ɵcn = AlertDialogComponent;
7227
+ exports.ɵcp = InPlaceInteractionContextComponent;
7228
+ exports.ɵcq = AddItemInteractionContextComponent;
7229
+ exports.ɵcr = ActivityActionsComponent;
7230
+ exports.ɵcs = PopupInteractionContextComponent;
7231
+ exports.ɵct = StringInputActivity;
7232
+ exports.ɵcu = AbstractInputActivity;
7233
+ exports.ɵcv = SelectInputActivity;
7234
+ exports.ɵcw = InteractionContextTriggerFor;
7050
7235
  exports.ɵd = DisposableComponent;
7051
7236
  exports.ɵe = FocusBindingFactory;
7052
7237
  exports.ɵf = ComponentsModule;
@@ -7058,18 +7243,18 @@
7058
7243
  exports.ɵl = TextInputComponent;
7059
7244
  exports.ɵm = PasswordInputComponent;
7060
7245
  exports.ɵn = SelectInputComponent;
7061
- exports.ɵo = CheckboxInputComponent;
7062
- exports.ɵp = ScrollContainerComponent;
7063
- exports.ɵq = NoopComponent;
7064
- exports.ɵr = SwitchCaseOption;
7065
- exports.ɵs = SwitchCaseWhenDirective;
7066
- exports.ɵt = SwitchCaseDefaultDirective;
7067
- exports.ɵu = SwitchCaseComponent;
7068
- exports.ɵv = FocusContainerComponent;
7069
- exports.ɵw = VerticalFocusContainerComponent;
7070
- exports.ɵx = FocusableComponent;
7071
- exports.ɵy = CardContainerComponent;
7072
- exports.ɵz = TableComponent;
7246
+ exports.ɵo = MultipleSelectInputComponent;
7247
+ exports.ɵp = AutocompleteInputComponent;
7248
+ exports.ɵq = CheckboxInputComponent;
7249
+ exports.ɵr = ScrollContainerComponent;
7250
+ exports.ɵs = NoopComponent;
7251
+ exports.ɵt = SwitchCaseOption;
7252
+ exports.ɵu = SwitchCaseWhenDirective;
7253
+ exports.ɵv = SwitchCaseDefaultDirective;
7254
+ exports.ɵw = SwitchCaseComponent;
7255
+ exports.ɵx = FocusContainerComponent;
7256
+ exports.ɵy = VerticalFocusContainerComponent;
7257
+ exports.ɵz = FocusableComponent;
7073
7258
 
7074
7259
  Object.defineProperty(exports, '__esModule', { value: true });
7075
7260