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

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 +75 -0
  2. package/assets/form.scss +33 -0
  3. package/bundles/coolon-angular-ui-powerups.umd.js +410 -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 -13
  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 -13
  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 +312 -157
  127. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  128. package/fesm5/coolon-angular-ui-powerups.js +343 -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 -4
  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,73 @@
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 #nilOptionTemplate 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.ContentChild('optionTemplate'),
1122
+ __metadata("design:type", core.TemplateRef)
1123
+ ], MultipleSelectInputComponent.prototype, "optionTemplateRef", void 0);
1124
+ __decorate([
1125
+ core.Input(),
1126
+ __metadata("design:type", Function)
1127
+ ], MultipleSelectInputComponent.prototype, "optionLabelFormat", void 0);
1128
+ MultipleSelectInputComponent = __decorate([
1129
+ core.Component({
1130
+ selector: 'aup-multiple-select-input',
1131
+ 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 *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",
1132
+ styles: [":host{display:inline-block}mat-form-field{width:100%}"]
1133
+ }),
1134
+ __metadata("design:paramtypes", [])
1135
+ ], MultipleSelectInputComponent);
1136
+ return MultipleSelectInputComponent;
1137
+ }(AbstractListInputComponent));
1138
+
942
1139
  var NumberInputComponent = /** @class */ (function (_super) {
943
1140
  __extends(NumberInputComponent, _super);
944
1141
  function NumberInputComponent() {
945
1142
  var _this = _super.call(this) || this;
1143
+ // @Input() @TrackExternal({ delegateTo: 'inputModel' })
1144
+ // valueModel: Form.ValueModelBase<number> | IMutableValueModel<number>;
946
1145
  _this.min = Number.MIN_SAFE_INTEGER;
947
1146
  _this.max = Number.MAX_SAFE_INTEGER;
948
1147
  return _this;
949
1148
  }
950
1149
  NumberInputComponent.prototype.ngOnInit = function () {
951
1150
  };
952
- __decorate([
953
- core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
954
- __metadata("design:type", Object)
955
- ], NumberInputComponent.prototype, "valueModel", void 0);
956
1151
  __decorate([
957
1152
  core.Input(),
958
1153
  __metadata("design:type", Object)
@@ -964,8 +1159,8 @@
964
1159
  NumberInputComponent = __decorate([
965
1160
  core.Component({
966
1161
  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}"]
1162
+ 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",
1163
+ styles: [""]
969
1164
  }),
970
1165
  __metadata("design:paramtypes", [])
971
1166
  ], NumberInputComponent);
@@ -974,26 +1169,31 @@
974
1169
 
975
1170
  var PasswordInputComponent = /** @class */ (function (_super) {
976
1171
  __extends(PasswordInputComponent, _super);
1172
+ // @Input() @TrackExternal({ delegateTo: 'inputModel' })
1173
+ // valueModel: Form.ValueModelBase<string> | IMutableValueModel<string>;
977
1174
  function PasswordInputComponent() {
978
1175
  return _super.call(this) || this;
979
1176
  }
980
1177
  PasswordInputComponent.prototype.ngOnInit = function () {
981
1178
  };
982
- __decorate([
983
- core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
984
- __metadata("design:type", Object)
985
- ], PasswordInputComponent.prototype, "valueModel", void 0);
986
1179
  PasswordInputComponent = __decorate([
987
1180
  core.Component({
988
1181
  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}"]
1182
+ 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",
1183
+ styles: [""]
991
1184
  }),
992
1185
  __metadata("design:paramtypes", [])
993
1186
  ], PasswordInputComponent);
994
1187
  return PasswordInputComponent;
995
1188
  }(AbstractValueInputComponent));
996
1189
 
1190
+ /**
1191
+ * Using templates:
1192
+ * <aup-select-input [valueModel]="myModel" [options]="myOptions">
1193
+ * <ng-template #optionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
1194
+ * <ng-template #nilOptionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
1195
+ * </aup-select_input>
1196
+ */
997
1197
  var SelectInputComponent = /** @class */ (function (_super) {
998
1198
  __extends(SelectInputComponent, _super);
999
1199
  function SelectInputComponent() {
@@ -1003,10 +1203,6 @@
1003
1203
  }
1004
1204
  SelectInputComponent.prototype.ngOnInit = function () {
1005
1205
  };
1006
- __decorate([
1007
- core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
1008
- __metadata("design:type", Object)
1009
- ], SelectInputComponent.prototype, "valueModel", void 0);
1010
1206
  __decorate([
1011
1207
  core.Input(), pectin.TrackExternal(),
1012
1208
  __metadata("design:type", pectin.ListModel)
@@ -1038,7 +1234,7 @@
1038
1234
  SelectInputComponent = __decorate([
1039
1235
  core.Component({
1040
1236
  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",
1237
+ 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\">\n <ng-container *ngIf=\"!nilOptionTemplateRef\">{{placeholder}}</ng-container>\n <ng-container *ngIf=\"nilOptionTemplateRef\" [ngTemplateOutlet]=\"nilOptionTemplateRef\"></ng-container>\n </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
1238
  styles: [":host{display:inline-block}mat-form-field{width:100%}"]
1043
1239
  }),
1044
1240
  __metadata("design:paramtypes", [])
@@ -1059,10 +1255,6 @@
1059
1255
  }
1060
1256
  StringInputComponent.prototype.ngOnInit = function () {
1061
1257
  };
1062
- __decorate([
1063
- core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
1064
- __metadata("design:type", Object)
1065
- ], StringInputComponent.prototype, "valueModel", void 0);
1066
1258
  __decorate([
1067
1259
  core.Input(), pectin.TrackExternal({ defaultValue: false }),
1068
1260
  __metadata("design:type", pectin.ValueModel)
@@ -1074,8 +1266,8 @@
1074
1266
  StringInputComponent = __decorate([
1075
1267
  core.Component({
1076
1268
  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}"]
1269
+ 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",
1270
+ styles: ["button[disabled]{visibility:hidden}"]
1079
1271
  }),
1080
1272
  __metadata("design:paramtypes", [])
1081
1273
  ], StringInputComponent);
@@ -1086,16 +1278,14 @@
1086
1278
  __extends(TextInputComponent, _super);
1087
1279
  function TextInputComponent() {
1088
1280
  var _this = _super.call(this) || this;
1281
+ // @Input() @TrackExternal({ delegateTo: 'inputModel' })
1282
+ // valueModel: Form.ValueModelBase<string> | IMutableValueModel<string>;
1089
1283
  _this.rows = 2;
1090
1284
  return _this;
1091
1285
  // const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
1092
1286
  }
1093
1287
  TextInputComponent.prototype.ngOnInit = function () {
1094
1288
  };
1095
- __decorate([
1096
- core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
1097
- __metadata("design:type", Object)
1098
- ], TextInputComponent.prototype, "valueModel", void 0);
1099
1289
  __decorate([
1100
1290
  core.Input(),
1101
1291
  __metadata("design:type", Object)
@@ -1107,14 +1297,56 @@
1107
1297
  TextInputComponent = __decorate([
1108
1298
  core.Component({
1109
1299
  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}"]
1300
+ 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",
1301
+ styles: ["button[disabled]{visibility:hidden}textarea{overflow:auto}"]
1112
1302
  }),
1113
1303
  __metadata("design:paramtypes", [])
1114
1304
  ], TextInputComponent);
1115
1305
  return TextInputComponent;
1116
1306
  }(AbstractValueInputComponent));
1117
1307
 
1308
+ var IconComponent = /** @class */ (function () {
1309
+ function IconComponent() {
1310
+ }
1311
+ Object.defineProperty(IconComponent.prototype, "icon", {
1312
+ get: function () {
1313
+ return this._icon;
1314
+ },
1315
+ set: function (iconName) {
1316
+ this._icon = iconName;
1317
+ if (!iconName) {
1318
+ this.errorMessage = 'icon is nil';
1319
+ this.prefix = undefined;
1320
+ return;
1321
+ }
1322
+ var colonIndex = iconName.indexOf(':');
1323
+ if (colonIndex > 0) {
1324
+ this.prefix = this.icon.slice(0, colonIndex);
1325
+ this.suffix = this.icon.slice(colonIndex + 1);
1326
+ }
1327
+ if (this.prefix) {
1328
+ this.errorMessage = "Unknown icon \"" + iconName + "\"";
1329
+ }
1330
+ this.errorMessage = "Unknown icon prefix \"" + this.prefix + "\"";
1331
+ },
1332
+ enumerable: true,
1333
+ configurable: true
1334
+ });
1335
+ __decorate([
1336
+ core.Input(),
1337
+ __metadata("design:type", String),
1338
+ __metadata("design:paramtypes", [String])
1339
+ ], IconComponent.prototype, "icon", null);
1340
+ IconComponent = __decorate([
1341
+ core.Component({
1342
+ selector: 'aup-icon',
1343
+ 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",
1344
+ 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}"]
1345
+ })
1346
+ ], IconComponent);
1347
+ return IconComponent;
1348
+ }());
1349
+
1118
1350
  var NoopComponent = /** @class */ (function () {
1119
1351
  function NoopComponent() {
1120
1352
  }
@@ -1325,6 +1557,7 @@
1325
1557
  typescriptUtilities.assert.isTruthy(host);
1326
1558
  host[HEADER_CELL_RENDERER_PORTAL] = new portal.ComponentPortal(this.componentType);
1327
1559
  };
1560
+ // @Trace()
1328
1561
  CellHeaderPortalRef.prototype.onPortalAttached = function (host, portalComponent) {
1329
1562
  this.initialiseHeader(portalComponent, host.column);
1330
1563
  };
@@ -1348,13 +1581,15 @@
1348
1581
  ComponentCellRendererPortalRef.prototype.initialiseHost = function (host, columnModel) {
1349
1582
  host[CELL_RENDERER_PORTAL] = new portal.ComponentPortal(this.componentType);
1350
1583
  };
1584
+ // @Trace()
1351
1585
  ComponentCellRendererPortalRef.prototype.onPortalAttached = function (host, portalComponent) {
1352
1586
  host[PORTAL_RENDERER_COMPONENT] = portalComponent;
1353
- this.updateComponent(portalComponent, host.getRowData());
1587
+ this.updateComponent(portalComponent, host.getRowData(), true);
1354
1588
  };
1589
+ // @Trace()
1355
1590
  ComponentCellRendererPortalRef.prototype.pushState = function (host) {
1356
1591
  if (host[PORTAL_RENDERER_COMPONENT]) {
1357
- this.updateComponent(host[PORTAL_RENDERER_COMPONENT], host.getRowData());
1592
+ this.updateComponent(host[PORTAL_RENDERER_COMPONENT], host.getRowData(), false);
1358
1593
  }
1359
1594
  };
1360
1595
  return ComponentCellRendererPortalRef;
@@ -1396,6 +1631,7 @@
1396
1631
  TemplateCellRendererPortalRef.prototype.onPortalAttached = function (host, portalComponent) {
1397
1632
  // don't care
1398
1633
  };
1634
+ // @Trace()
1399
1635
  TemplateCellRendererPortalRef.prototype.pushState = function (host) {
1400
1636
  host[CELL_RENDERER_PORTAL] = this.createPortal(host.getRowData());
1401
1637
  host.fillCell = this.fillCell;
@@ -1677,24 +1913,37 @@
1677
1913
  }());
1678
1914
  var PropertyColumnModel = /** @class */ (function (_super) {
1679
1915
  __extends(PropertyColumnModel, _super);
1680
- function PropertyColumnModel(property, defaults) {
1681
- var _this = _super.call(this, property.toString(), defaults) || this;
1916
+ function PropertyColumnModel(id, property, defaults) {
1917
+ var _this = _super.call(this, id, defaults) || this;
1682
1918
  _this.property = property;
1683
1919
  _this._format = function (value) { return value; };
1684
1920
  _this.cellRenderer(DefaultCellRendererComponent);
1685
1921
  return _this;
1686
1922
  }
1687
- PropertyColumnModel.prototype.cellRenderer = function (componentType) {
1923
+ PropertyColumnModel.prototype.cellRenderer = function (componentType, onComponentInitOrOptions) {
1688
1924
  var _this = this;
1689
- this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData) {
1925
+ this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData, firstTime) {
1926
+ if (firstTime) {
1927
+ if (___default__default.isFunction(onComponentInitOrOptions)) {
1928
+ onComponentInitOrOptions(component);
1929
+ }
1930
+ else {
1931
+ if (___default__default.isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onComponentInit)) {
1932
+ onComponentInitOrOptions.onComponentInit(component);
1933
+ }
1934
+ }
1935
+ }
1690
1936
  component.value = _this._format(rowData.row[_this.property]);
1937
+ if (!___default__default.isFunction(onComponentInitOrOptions) && ___default__default.isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onRowUpdate)) {
1938
+ onComponentInitOrOptions.onRowUpdate(component, rowData.row);
1939
+ }
1691
1940
  }));
1692
1941
  return this;
1693
1942
  };
1694
- PropertyColumnModel.prototype.cellEditor = function (editor, validatorsOrInitialiser, initialiseComponent) {
1943
+ PropertyColumnModel.prototype.cellEditor = function (editor, validatorsOrInitialiser, onComponentInit) {
1695
1944
  var _this = this;
1696
1945
  var validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
1697
- var initialiser = ___default__default.isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : initialiseComponent;
1946
+ var initialiser = ___default__default.isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : onComponentInit;
1698
1947
  this.configureCellEditor(new CellEditorPortalRef(editor, function (component, editSession) {
1699
1948
  var formValueModel = editSession.form.pluck(_this.property);
1700
1949
  if (validators) {
@@ -1719,8 +1968,8 @@
1719
1968
  }(ColumnModel));
1720
1969
  var ListPropertyColumnModel = /** @class */ (function (_super) {
1721
1970
  __extends(ListPropertyColumnModel, _super);
1722
- function ListPropertyColumnModel(property, defaults) {
1723
- var _this = _super.call(this, property.toString(), defaults) || this;
1971
+ function ListPropertyColumnModel(id, property, defaults) {
1972
+ var _this = _super.call(this, id, defaults) || this;
1724
1973
  _this.property = property;
1725
1974
  _this._format = function (value) { return value.map(function (v) { return v === null || v === void 0 ? void 0 : v.toString(); }).join(', '); };
1726
1975
  _this.cellRenderer(DefaultCellRendererComponent);
@@ -1767,9 +2016,12 @@
1767
2016
  _this.cellRenderer(DefaultCellRendererComponent);
1768
2017
  return _this;
1769
2018
  }
1770
- CustomValueColumnModel.prototype.cellRenderer = function (componentType) {
2019
+ CustomValueColumnModel.prototype.cellRenderer = function (componentType, onComponentInit) {
1771
2020
  var _this = this;
1772
- this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData) {
2021
+ this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData, firstTime) {
2022
+ if (firstTime && ___default__default.isFunction(onComponentInit)) {
2023
+ onComponentInit(component);
2024
+ }
1773
2025
  component.value = _this.getValue(rowData.row);
1774
2026
  }));
1775
2027
  return this;
@@ -1954,7 +2206,7 @@
1954
2206
  this.dataSource = chain(this.sourceOfTruth).replaceAll(this.rowsBeingEdited);
1955
2207
  this.firstEditableColumn = chain(this.columns).select(function (c) { return c.hasEditorPortal(); }).first();
1956
2208
  this.hasColumnsWithRowSelectionExplicitlyEnabled = chain(this._columns).findIndex(function (column) { return column.isRowSelectionExplicitlyEnabled(); }).isGreaterThanOrEqualTo(0);
1957
- this.addRowClass("enable-hover", function () { return _this.isRowSelectionEnabled(); });
2209
+ this.addRowClass('enable-hover', function () { return _this.isRowSelectionEnabled(); });
1958
2210
  }
1959
2211
  TableModel_1 = TableModel;
1960
2212
  TableModel.fromList = function (sourceOfTruth, builder) {
@@ -1982,11 +2234,11 @@
1982
2234
  enumerable: true,
1983
2235
  configurable: true
1984
2236
  });
1985
- TableModel.prototype.pluck = function (property) {
1986
- return this.addColumn(new PropertyColumnModel(property, this));
2237
+ TableModel.prototype.pluck = function (property, options) {
2238
+ return this.addColumn(new PropertyColumnModel((options === null || options === void 0 ? void 0 : options.columnId) || property.toString(), property, this));
1987
2239
  };
1988
- TableModel.prototype.pluckList = function (property) {
1989
- return this.addColumn(new ListPropertyColumnModel(property, this));
2240
+ TableModel.prototype.pluckList = function (property, options) {
2241
+ return this.addColumn(new ListPropertyColumnModel((options === null || options === void 0 ? void 0 : options.columnId) || property.toString(), property, this));
1990
2242
  };
1991
2243
  TableModel.prototype.addSelectionColumn = function (selectionModel) {
1992
2244
  pectin.assert.isNil(this.selectionColumnModel);
@@ -2000,6 +2252,9 @@
2000
2252
  TableModel.prototype.addCustomColumn = function (columnId, dataAccessor) {
2001
2253
  return this.addColumn(new CustomValueColumnModel(columnId, this, dataAccessor));
2002
2254
  };
2255
+ TableModel.prototype.addComponentColumn = function (columnId, component, onInit) {
2256
+ return this.addColumn(new CustomValueColumnModel(columnId, this, function (row) { return row; })).cellRenderer(component, onInit);
2257
+ };
2003
2258
  TableModel.prototype.addTemplateColumn = function (columnId) {
2004
2259
  return this.addColumn(new CustomTemplateColumnModel(columnId, this));
2005
2260
  };
@@ -2152,7 +2407,6 @@
2152
2407
  core.Component({
2153
2408
  selector: 'aup-table',
2154
2409
  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
2410
  styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{flex:1}"]
2157
2411
  }),
2158
2412
  __metadata("design:paramtypes", [])
@@ -2420,100 +2674,6 @@
2420
2674
  return VerticalFocusContainerComponent;
2421
2675
  }(FocusContainerComponent));
2422
2676
 
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
2677
  var ComponentsModule = /** @class */ (function () {
2518
2678
  function ComponentsModule(faIconLibrary) {
2519
2679
  faIconLibrary.addIconPacks(freeSolidSvgIcons.fas);
@@ -2532,6 +2692,8 @@
2532
2692
  TextInputComponent,
2533
2693
  PasswordInputComponent,
2534
2694
  SelectInputComponent,
2695
+ MultipleSelectInputComponent,
2696
+ AutocompleteInputComponent,
2535
2697
  CheckboxInputComponent,
2536
2698
  ScrollContainerComponent,
2537
2699
  NoopComponent,
@@ -2551,7 +2713,6 @@
2551
2713
  SelectHeaderCellRendererComponent,
2552
2714
  DefaultHeaderCellRendererComponent,
2553
2715
  TableHeaderCellRendererComponent,
2554
- MultipleSelectInputComponent,
2555
2716
  IconComponent,
2556
2717
  SectionHeaderComponent
2557
2718
  ],
@@ -2571,7 +2732,8 @@
2571
2732
  portal.PortalModule,
2572
2733
  scrolling.CdkScrollableModule,
2573
2734
  angularFontawesome.FontAwesomeModule,
2574
- tooltip.MatTooltipModule
2735
+ tooltip.MatTooltipModule,
2736
+ autocomplete.MatAutocompleteModule
2575
2737
  ],
2576
2738
  exports: [
2577
2739
  NumberInputComponent,
@@ -2580,6 +2742,8 @@
2580
2742
  PasswordInputComponent,
2581
2743
  CheckboxInputComponent,
2582
2744
  SelectInputComponent,
2745
+ MultipleSelectInputComponent,
2746
+ AutocompleteInputComponent,
2583
2747
  ScrollContainerComponent,
2584
2748
  NoopComponent,
2585
2749
  SwitchCaseComponent,
@@ -2592,12 +2756,23 @@
2592
2756
  TableComponent,
2593
2757
  EditRowControls,
2594
2758
  ColumnTemplateDirective,
2595
- MultipleSelectInputComponent,
2596
2759
  IconComponent,
2597
2760
  SectionHeaderComponent
2598
2761
  ],
2599
2762
  providers: [
2600
- FocusBindingFactory,
2763
+ FocusBindingFactory
2764
+ // {
2765
+ // provide: CELL_EDITOR_REGISTRATION, useValue: {
2766
+ // type: 'string',
2767
+ // editorClass: StringInputComponent
2768
+ // }, multi: true
2769
+ // },
2770
+ // {
2771
+ // provide: CELL_EDITOR_REGISTRATION, useValue: {
2772
+ // type: 'number',
2773
+ // editorClass: NumberInputComponent
2774
+ // }, multi: true
2775
+ // }
2601
2776
  ]
2602
2777
  }),
2603
2778
  __metadata("design:paramtypes", [angularFontawesome.FaIconLibrary])
@@ -3238,7 +3413,7 @@
3238
3413
  }());
3239
3414
 
3240
3415
  var inplaceMonitorCount = 0;
3241
- exports.ɵbv = /** @class */ (function () {
3416
+ exports.ɵbw = /** @class */ (function () {
3242
3417
  function InteractionService(modelInteractionContextFactory) {
3243
3418
  this.modelInteractionContextFactory = modelInteractionContextFactory;
3244
3419
  this.garbage = new pectin.GarbageCollector();
@@ -3383,7 +3558,7 @@
3383
3558
  return ApiAdapter;
3384
3559
  }());
3385
3560
  InteractionService.ApiAdapter = ApiAdapter;
3386
- })(exports.ɵbv || (exports.ɵbv = {}));
3561
+ })(exports.ɵbw || (exports.ɵbw = {}));
3387
3562
 
3388
3563
  var InPlaceInteractionContextComponent = /** @class */ (function (_super) {
3389
3564
  __extends(InPlaceInteractionContextComponent, _super);
@@ -3441,7 +3616,7 @@
3441
3616
  return this.activityContainerComponent.startActivity(activityType, data, options);
3442
3617
  };
3443
3618
  InPlaceInteractionContextComponent.ctorParameters = function () { return [
3444
- { type: exports.ɵbv },
3619
+ { type: exports.ɵbw },
3445
3620
  { type: undefined, decorators: [{ type: core.Inject, args: [tabs.MAT_TABS_CONFIG,] }, { type: core.Optional }] }
3446
3621
  ]; };
3447
3622
  __decorate([
@@ -3459,7 +3634,7 @@
3459
3634
  styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}"]
3460
3635
  }),
3461
3636
  __param(1, core.Inject(tabs.MAT_TABS_CONFIG)), __param(1, core.Optional()),
3462
- __metadata("design:paramtypes", [exports.ɵbv, Object])
3637
+ __metadata("design:paramtypes", [exports.ɵbw, Object])
3463
3638
  ], InPlaceInteractionContextComponent);
3464
3639
  return InPlaceInteractionContextComponent;
3465
3640
  }(DisposableComponent));
@@ -3998,7 +4173,7 @@
3998
4173
  AlertDialogComponent
3999
4174
  ],
4000
4175
  providers: [
4001
- exports.ɵbv
4176
+ exports.ɵbw
4002
4177
  // {
4003
4178
  // provide: MAT_TABS_CONFIG, useValue: { animationDuration: "2s" }
4004
4179
  // }
@@ -5120,7 +5295,7 @@
5120
5295
  return PopStateNavigation;
5121
5296
  }(AbstractPopStateNavigation));
5122
5297
 
5123
- exports.ɵby = /** @class */ (function () {
5298
+ exports.ɵbz = /** @class */ (function () {
5124
5299
  function PlaceHistory() {
5125
5300
  this._archive = new Map();
5126
5301
  this.placeHistoryDepth = 4;
@@ -5257,7 +5432,7 @@
5257
5432
  // }
5258
5433
  //
5259
5434
  // }
5260
- })(exports.ɵby || (exports.ɵby = {}));
5435
+ })(exports.ɵbz || (exports.ɵbz = {}));
5261
5436
 
5262
5437
  exports.UrlSnapshot = /** @class */ (function () {
5263
5438
  // TODO: Update this accept a url Parser so it can be immutable and generate new trees on mutation using toString() are parseUrl.
@@ -5780,11 +5955,11 @@
5780
5955
  PlaceRouter.ctorParameters = function () { return [
5781
5956
  { type: router.Router },
5782
5957
  { type: common.Location },
5783
- { type: exports.ɵbv },
5958
+ { type: exports.ɵbw },
5784
5959
  { type: UrlService },
5785
- { type: exports.ɵby }
5960
+ { type: exports.ɵbz }
5786
5961
  ]; };
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" });
5962
+ 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
5963
  __decorate([
5789
5964
  pectin.Trace(),
5790
5965
  __metadata("design:type", Function),
@@ -5797,9 +5972,9 @@
5797
5972
  }),
5798
5973
  __metadata("design:paramtypes", [router.Router,
5799
5974
  common.Location,
5800
- exports.ɵbv,
5975
+ exports.ɵbw,
5801
5976
  UrlService,
5802
- exports.ɵby])
5977
+ exports.ɵbz])
5803
5978
  ], PlaceRouter);
5804
5979
  return PlaceRouter;
5805
5980
  }(pectin.GarbageCollector));
@@ -6890,6 +7065,7 @@
6890
7065
  exports.AddItemInteractionContextComponent = AddItemInteractionContextComponent;
6891
7066
  exports.AlertDialogComponent = AlertDialogComponent;
6892
7067
  exports.AngularUiPowerupsModule = AngularUiPowerupsModule;
7068
+ exports.AutocompleteInputComponent = AutocompleteInputComponent;
6893
7069
  exports.BusyOverlayComponent = BusyOverlayComponent;
6894
7070
  exports.CELL_EDITOR_PORTAL = CELL_EDITOR_PORTAL;
6895
7071
  exports.CELL_RENDERER_PORTAL = CELL_RENDERER_PORTAL;
@@ -6933,7 +7109,7 @@
6933
7109
  exports.InPlaceInteractionContextComponent = InPlaceInteractionContextComponent;
6934
7110
  exports.InteractionContextTriggerFor = InteractionContextTriggerFor;
6935
7111
  exports.InteractionModule = InteractionModule;
6936
- exports.InteractionService = exports.ɵbv;
7112
+ exports.InteractionService = exports.ɵbw;
6937
7113
  exports.InteractionServiceRoutingAdapter = InteractionServiceRoutingAdapter;
6938
7114
  exports.LEFT_RIGHT_PLACE_ANIMATION = LEFT_RIGHT_PLACE_ANIMATION;
6939
7115
  exports.ListPlaceNavComponent = ListPlaceNavComponent;
@@ -6953,7 +7129,7 @@
6953
7129
  exports.PlaceComponentDeactivationHandler = PlaceComponentDeactivationHandler;
6954
7130
  exports.PlaceDefinition = PlaceDefinition;
6955
7131
  exports.PlaceGuard = PlaceGuard;
6956
- exports.PlaceHistory = exports.ɵby;
7132
+ exports.PlaceHistory = exports.ɵbz;
6957
7133
  exports.PlaceModule = PlaceModule;
6958
7134
  exports.PlaceOutletComponent = PlaceOutletComponent;
6959
7135
  exports.PlaceRouter = PlaceRouter;
@@ -7003,50 +7179,51 @@
7003
7179
  exports.ɵ0 = ɵ0;
7004
7180
  exports.ɵa = DirectivesModule;
7005
7181
  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;
7182
+ exports.ɵba = CardContainerComponent;
7183
+ exports.ɵbb = TableComponent;
7184
+ exports.ɵbc = EditRowControls;
7185
+ exports.ɵbd = ColumnTemplateDirective;
7186
+ exports.ɵbe = DefaultCellRendererComponent;
7187
+ exports.ɵbf = TableCellRendererComponent;
7188
+ exports.ɵbg = SelectCellRendererComponent;
7189
+ exports.ɵbh = SelectHeaderCellRendererComponent;
7190
+ exports.ɵbi = DefaultHeaderCellRendererComponent;
7191
+ exports.ɵbj = TableHeaderCellRendererComponent;
7192
+ exports.ɵbk = IconComponent;
7193
+ exports.ɵbl = SectionHeaderComponent;
7194
+ exports.ɵbm = PlaceModule;
7195
+ exports.ɵbn = ComponentsModule;
7196
+ exports.ɵbo = EmptyStateComponent;
7197
+ exports.ɵbp = BusyOverlayComponent;
7198
+ exports.ɵbq = PlaceOutletComponent;
7199
+ exports.ɵbr = leftRightPlaceAnimation;
7200
+ exports.ɵbs = LEFT_RIGHT_PLACE_ANIMATION;
7201
+ exports.ɵbt = AUP_PLACE_CONFIG;
7202
+ exports.ɵbv = PlaceRouter;
7203
+ exports.ɵbx = ModalInteractionContextFactory;
7204
+ exports.ɵby = UrlService;
7029
7205
  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;
7206
+ exports.ɵca = TabbedPlaceNavigationComponent;
7207
+ exports.ɵcb = AbstractPlaceNavigationComponent;
7208
+ exports.ɵcc = ListPlaceNavComponent;
7209
+ exports.ɵcd = SidePlaceNavigationComponent;
7210
+ exports.ɵce = InteractionModule;
7211
+ exports.ɵcf = ActivityContainerComponent;
7212
+ exports.ɵcg = AbstractInteractionContext;
7213
+ exports.ɵch = ActivityOutletComponent;
7214
+ exports.ɵci = ConfirmationDialogComponent;
7215
+ exports.ɵcj = ACTIVITY_DATA;
7216
+ exports.ɵck = Activity;
7217
+ exports.ɵcm = ConfirmThenDialogComponent;
7218
+ exports.ɵcn = AlertDialogComponent;
7219
+ exports.ɵcp = InPlaceInteractionContextComponent;
7220
+ exports.ɵcq = AddItemInteractionContextComponent;
7221
+ exports.ɵcr = ActivityActionsComponent;
7222
+ exports.ɵcs = PopupInteractionContextComponent;
7223
+ exports.ɵct = StringInputActivity;
7224
+ exports.ɵcu = AbstractInputActivity;
7225
+ exports.ɵcv = SelectInputActivity;
7226
+ exports.ɵcw = InteractionContextTriggerFor;
7050
7227
  exports.ɵd = DisposableComponent;
7051
7228
  exports.ɵe = FocusBindingFactory;
7052
7229
  exports.ɵf = ComponentsModule;
@@ -7058,18 +7235,18 @@
7058
7235
  exports.ɵl = TextInputComponent;
7059
7236
  exports.ɵm = PasswordInputComponent;
7060
7237
  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;
7238
+ exports.ɵo = MultipleSelectInputComponent;
7239
+ exports.ɵp = AutocompleteInputComponent;
7240
+ exports.ɵq = CheckboxInputComponent;
7241
+ exports.ɵr = ScrollContainerComponent;
7242
+ exports.ɵs = NoopComponent;
7243
+ exports.ɵt = SwitchCaseOption;
7244
+ exports.ɵu = SwitchCaseWhenDirective;
7245
+ exports.ɵv = SwitchCaseDefaultDirective;
7246
+ exports.ɵw = SwitchCaseComponent;
7247
+ exports.ɵx = FocusContainerComponent;
7248
+ exports.ɵy = VerticalFocusContainerComponent;
7249
+ exports.ɵz = FocusableComponent;
7073
7250
 
7074
7251
  Object.defineProperty(exports, '__esModule', { value: true });
7075
7252