@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,6 +1,6 @@
1
1
  import { __extends, __decorate, __metadata, __param, __assign, __awaiter, __generator, __spread } from 'tslib';
2
2
  import { DOCUMENT, CommonModule, Location } from '@angular/common';
3
- import { ElementRef, Inject, Input, HostListener, Directive, NgZone, ɵɵdefineInjectable, ɵɵinject, Injectable, NgModule, ContentChild, TemplateRef, Component, Self, HostBinding, EventEmitter, Output, ChangeDetectorRef, ContentChildren, QueryList, ViewEncapsulation, ViewContainerRef, InjectionToken, Injector, ComponentFactoryResolver, ViewChild, ViewChildren, Optional, SkipSelf } from '@angular/core';
3
+ import { ElementRef, Inject, Input, HostListener, Directive, NgZone, ɵɵdefineInjectable, ɵɵinject, Injectable, NgModule, ContentChild, TemplateRef, Component, Self, HostBinding, EventEmitter, Output, ChangeDetectorRef, ContentChildren, QueryList, ViewContainerRef, InjectionToken, Injector, ComponentFactoryResolver, ViewChild, ViewChildren, Optional, SkipSelf } from '@angular/core';
4
4
  import { FormsModule } from '@angular/forms';
5
5
  import { MatFormFieldModule } from '@angular/material/form-field';
6
6
  import { MatInputModule } from '@angular/material/input';
@@ -9,18 +9,19 @@ import { MatTabsModule, MatTabGroup, MAT_TABS_CONFIG } from '@angular/material/t
9
9
  import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
10
10
  import { ComponentPortal, TemplatePortal, PortalModule } from '@angular/cdk/portal';
11
11
  import { CdkScrollableModule } from '@angular/cdk/scrolling';
12
+ import { MatAutocompleteModule } from '@angular/material/autocomplete';
12
13
  import { MatButtonModule } from '@angular/material/button';
13
14
  import { MatCheckboxModule } from '@angular/material/checkbox';
14
15
  import { MatIconModule } from '@angular/material/icon';
15
16
  import { MatTableModule } from '@angular/material/table';
16
- import { DelegatingValueModel, assert, UnaryCommand, lang, Dsl, GarbageCollector, Logger, TrackExternal, Command, FocusManager, Form, ListModel, StoreInListModel, ValueModel, StoreInValueModel, MutableValueModel, MultipleSelectionModel, MutableListModel, DirtyTrackingForm, DelegatingCommand, Deferred, Trace, Guard, DebugContext, Binding, Functions } from '@coolon/pectin';
17
+ import { MatTooltipModule } from '@angular/material/tooltip';
18
+ import { FaIconLibrary, FontAwesomeModule } from '@fortawesome/angular-fontawesome';
19
+ import { fas } from '@fortawesome/free-solid-svg-icons';
20
+ import { DelegatingValueModel, assert, UnaryCommand, lang, Dsl, GarbageCollector, Logger, TrackExternal, Command, FocusManager, Form, Guard, MutableListModel, MutableValueModel, ListModel, StoreInListModel, ValueModel, StoreInValueModel, MultipleSelectionModel, DirtyTrackingForm, DelegatingCommand, Deferred, Trace, DebugContext, Binding, Functions } from '@coolon/pectin';
21
+ import ___default, { isEqual, isNil } from 'lodash';
17
22
  import { assert as assert$1, Opts, lang as lang$1, Klass } from '@coolon/typescript-utilities';
18
23
  import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
19
- import ___default, { isEqual, isNil } from 'lodash';
20
24
  import produce from 'immer';
21
- import { FaIconLibrary, FontAwesomeModule } from '@fortawesome/angular-fontawesome';
22
- import { fas } from '@fortawesome/free-solid-svg-icons';
23
- import { MatTooltipModule } from '@angular/material/tooltip';
24
25
  import { FlexModule, GridModule } from '@angular/flex-layout';
25
26
  import { MatDialogModule, MatDialog, MatDialogConfig, MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';
26
27
  import { RouterModule, UrlSegment, Router, UrlSerializer, NavigationStart, NavigationEnd, NavigationError, NavigationCancel, RouterOutlet } from '@angular/router';
@@ -406,7 +407,7 @@ var CardContainerComponent = /** @class */ (function (_super) {
406
407
  Component({
407
408
  selector: 'aup-card-container',
408
409
  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",
409
- 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}"]
410
+ 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}"]
410
411
  }),
411
412
  __metadata("design:paramtypes", [])
412
413
  ], CardContainerComponent);
@@ -521,6 +522,7 @@ var AbstractInputComponent = /** @class */ (function (_super) {
521
522
  __extends(AbstractInputComponent, _super);
522
523
  function AbstractInputComponent() {
523
524
  var _this = _super.call(this) || this;
525
+ _this.dense = false;
524
526
  // TODO: fix this.
525
527
  // tslint:disable-next-line:no-output-native
526
528
  _this.focus = new EventEmitter();
@@ -599,14 +601,28 @@ var AbstractInputComponent = /** @class */ (function (_super) {
599
601
  enumerable: true,
600
602
  configurable: true
601
603
  });
604
+ Object.defineProperty(AbstractInputComponent.prototype, "floatLabel", {
605
+ get: function () {
606
+ return this.dense ? 'never' : this.userFloatLabel;
607
+ },
608
+ enumerable: true,
609
+ configurable: true
610
+ });
611
+ Object.defineProperty(AbstractInputComponent.prototype, "showHint", {
612
+ get: function () {
613
+ return this.dense ? false : !!this.hint;
614
+ },
615
+ enumerable: true,
616
+ configurable: true
617
+ });
602
618
  __decorate([
603
619
  Input(),
604
620
  __metadata("design:type", String)
605
621
  ], AbstractInputComponent.prototype, "label", void 0);
606
622
  __decorate([
607
- Input(),
623
+ Input('floatLabel'),
608
624
  __metadata("design:type", String)
609
- ], AbstractInputComponent.prototype, "floatLabel", void 0);
625
+ ], AbstractInputComponent.prototype, "userFloatLabel", void 0);
610
626
  __decorate([
611
627
  Input(),
612
628
  __metadata("design:type", String)
@@ -615,6 +631,11 @@ var AbstractInputComponent = /** @class */ (function (_super) {
615
631
  Input(),
616
632
  __metadata("design:type", String)
617
633
  ], AbstractInputComponent.prototype, "placeholder", void 0);
634
+ __decorate([
635
+ HostBinding('class.dense'),
636
+ Input(),
637
+ __metadata("design:type", Object)
638
+ ], AbstractInputComponent.prototype, "dense", void 0);
618
639
  __decorate([
619
640
  Input('command.focus'),
620
641
  __metadata("design:type", Command)
@@ -683,7 +704,7 @@ var AbstractInputComponent = /** @class */ (function (_super) {
683
704
  var AbstractListInputComponent = /** @class */ (function (_super) {
684
705
  __extends(AbstractListInputComponent, _super);
685
706
  function AbstractListInputComponent() {
686
- var _this = _super !== null && _super.apply(this, arguments) || this;
707
+ var _this = _super.call(this) || this;
687
708
  /**
688
709
  * A backing model for all our @Input() valueModel properties which should be defined as follows.
689
710
  *
@@ -696,10 +717,47 @@ var AbstractListInputComponent = /** @class */ (function (_super) {
696
717
  */
697
718
  // We have to register it as a disposable so it ditches any listeners when we're disposed.
698
719
  _this.inputModel = _this.registerDisposable(new Form.DelegatingListModel());
720
+ _this.setValueIsInitialising = new Guard();
721
+ _this.valueChange = new EventEmitter();
722
+ var when = Dsl.disposeWith(_this).when;
723
+ when(_this.inputModel).changes(function (value) { return _this.valueChange.emit(value); }, {
724
+ initialValue: 'ignore',
725
+ unless: _this.setValueIsInitialising
726
+ });
699
727
  return _this;
700
728
  }
729
+ Object.defineProperty(AbstractListInputComponent.prototype, "value", {
730
+ set: function (value) {
731
+ var _this = this;
732
+ if (!this.listHolder) {
733
+ this.setValueIsInitialising.whileTrue(function () {
734
+ _this.listHolder = new MutableListModel(value);
735
+ _this.listModel = _this.listHolder;
736
+ });
737
+ }
738
+ else {
739
+ this.listHolder.value = value;
740
+ }
741
+ },
742
+ enumerable: true,
743
+ configurable: true
744
+ });
745
+ __decorate([
746
+ Input(), TrackExternal({ delegateTo: 'inputModel' }),
747
+ __metadata("design:type", Object)
748
+ ], AbstractListInputComponent.prototype, "listModel", void 0);
749
+ __decorate([
750
+ Input(),
751
+ __metadata("design:type", Array),
752
+ __metadata("design:paramtypes", [Array])
753
+ ], AbstractListInputComponent.prototype, "value", null);
754
+ __decorate([
755
+ Output(),
756
+ __metadata("design:type", Object)
757
+ ], AbstractListInputComponent.prototype, "valueChange", void 0);
701
758
  AbstractListInputComponent = __decorate([
702
- Component({ template: '' })
759
+ Component({ template: '' }),
760
+ __metadata("design:paramtypes", [])
703
761
  ], AbstractListInputComponent);
704
762
  return AbstractListInputComponent;
705
763
  }(AbstractInputComponent));
@@ -720,13 +778,47 @@ var AbstractValueInputComponent = /** @class */ (function (_super) {
720
778
  */
721
779
  // We have to register it as a disposable so it ditches any listeners when we're disposed.
722
780
  _this.inputModel = _this.registerDisposable(new Form.DelegatingValueModel());
723
- _this.inputModel.onTransactionStart(function (tx) {
724
- tx.onRootTransactionFinalised(function () {
725
- console.log({ changed: tx.hasChanged() });
726
- });
781
+ _this.setValueInProgress = new Guard();
782
+ _this.valueChange = new EventEmitter();
783
+ var when = Dsl.disposeWith(_this).when;
784
+ when(_this.inputModel).changes(function (value) { return _this.valueChange.emit(value); }, {
785
+ initialValue: 'ignore',
786
+ unless: _this.setValueInProgress
727
787
  });
728
788
  return _this;
729
789
  }
790
+ Object.defineProperty(AbstractValueInputComponent.prototype, "value", {
791
+ set: function (value) {
792
+ var _this = this;
793
+ // we never fire events during an external set value operation. This allows
794
+ // the component to behave when used in the conventional angular
795
+ // fashion, i.e. [(value)]="..."
796
+ this.setValueInProgress.whileTrue(function () {
797
+ if (!_this.valueHolder) {
798
+ _this.valueHolder = new MutableValueModel(value);
799
+ _this.valueModel = _this.valueHolder;
800
+ }
801
+ else {
802
+ _this.valueHolder.value = value;
803
+ }
804
+ });
805
+ },
806
+ enumerable: true,
807
+ configurable: true
808
+ });
809
+ __decorate([
810
+ Input(), TrackExternal({ delegateTo: 'inputModel' }),
811
+ __metadata("design:type", Object)
812
+ ], AbstractValueInputComponent.prototype, "valueModel", void 0);
813
+ __decorate([
814
+ Input(),
815
+ __metadata("design:type", Object),
816
+ __metadata("design:paramtypes", [Object])
817
+ ], AbstractValueInputComponent.prototype, "value", null);
818
+ __decorate([
819
+ Output(),
820
+ __metadata("design:type", Object)
821
+ ], AbstractValueInputComponent.prototype, "valueChange", void 0);
730
822
  AbstractValueInputComponent = __decorate([
731
823
  Component({ template: '' }),
732
824
  __metadata("design:paramtypes", [])
@@ -734,20 +826,79 @@ var AbstractValueInputComponent = /** @class */ (function (_super) {
734
826
  return AbstractValueInputComponent;
735
827
  }(AbstractInputComponent));
736
828
 
829
+ /**
830
+ * Using templates (not only supported for nil values:
831
+ * <aup-autocomplete-input [valueModel]="myModel" [options]="myOptions">
832
+ * <ng-template #nilOptionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
833
+ * </aup-autocomplete-input>
834
+ */
835
+ var AutocompleteInputComponent = /** @class */ (function (_super) {
836
+ __extends(AutocompleteInputComponent, _super);
837
+ function AutocompleteInputComponent() {
838
+ var _this = _super.call(this) || this;
839
+ _this.filterValue = new MutableValueModel();
840
+ _this.optionLabelFormat = function (option) { return (option && _this.optionLabel) ? option[_this.optionLabel] : option; };
841
+ var _a = Dsl.disposeWith(_this), chain = _a.chain, valueOf = _a.valueOf, before = _a.before, when = _a.when, after = _a.after, observe = _a.observe, switchOn = _a.switchOn;
842
+ var lowerCaseFilterValue = chain(_this.filterValue)
843
+ .map(function (v) { return ___default.isString(v) ? v.toLowerCase() : ''; });
844
+ _this.filteredOptions = chain(_this.optionsModel)
845
+ .select(function (option) {
846
+ return ___default.isEmpty(_this.filterValue.value) || _this.optionLabelFormat(option).toString().toLowerCase().includes(lowerCaseFilterValue.value);
847
+ }, { dependsOn: lowerCaseFilterValue });
848
+ return _this;
849
+ }
850
+ AutocompleteInputComponent.prototype.ngOnInit = function () {
851
+ };
852
+ AutocompleteInputComponent.prototype.updateFilter = function ($event) {
853
+ this.filterValue.value = $event;
854
+ };
855
+ __decorate([
856
+ Input(), TrackExternal(),
857
+ __metadata("design:type", ListModel)
858
+ ], AutocompleteInputComponent.prototype, "optionsModel", void 0);
859
+ __decorate([
860
+ Input(), StoreInListModel('optionsModel'),
861
+ __metadata("design:type", Array)
862
+ ], AutocompleteInputComponent.prototype, "options", void 0);
863
+ __decorate([
864
+ Input(),
865
+ __metadata("design:type", Object)
866
+ ], AutocompleteInputComponent.prototype, "optionLabel", void 0);
867
+ __decorate([
868
+ Input(),
869
+ __metadata("design:type", Boolean)
870
+ ], AutocompleteInputComponent.prototype, "allowNil", void 0);
871
+ __decorate([
872
+ ContentChild('nilOptionTemplate'),
873
+ __metadata("design:type", TemplateRef)
874
+ ], AutocompleteInputComponent.prototype, "nilOptionTemplateRef", void 0);
875
+ __decorate([
876
+ Input(),
877
+ __metadata("design:type", Function)
878
+ ], AutocompleteInputComponent.prototype, "optionLabelFormat", void 0);
879
+ AutocompleteInputComponent = __decorate([
880
+ Component({
881
+ selector: 'aup-autocomplete-input',
882
+ 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",
883
+ styles: [":host{display:inline-block}mat-form-field{width:100%}"]
884
+ }),
885
+ __metadata("design:paramtypes", [])
886
+ ], AutocompleteInputComponent);
887
+ return AutocompleteInputComponent;
888
+ }(AbstractValueInputComponent));
889
+
737
890
  var CheckboxInputComponent = /** @class */ (function (_super) {
738
891
  __extends(CheckboxInputComponent, _super);
739
892
  function CheckboxInputComponent() {
740
893
  var _this = _super.call(this) || this;
894
+ // @Input() @TrackExternal({ delegateTo: 'inputModel' })
895
+ // valueModel: Form.ValueModelBase<boolean> | IMutableValueModel<boolean>;
741
896
  _this.color = 'accent';
742
897
  _this.labelPosition = 'after';
743
898
  return _this;
744
899
  }
745
900
  CheckboxInputComponent.prototype.ngOnInit = function () {
746
901
  };
747
- __decorate([
748
- Input(), TrackExternal({ delegateTo: 'inputModel' }),
749
- __metadata("design:type", Object)
750
- ], CheckboxInputComponent.prototype, "valueModel", void 0);
751
902
  __decorate([
752
903
  Input(),
753
904
  __metadata("design:type", String)
@@ -759,28 +910,81 @@ var CheckboxInputComponent = /** @class */ (function (_super) {
759
910
  CheckboxInputComponent = __decorate([
760
911
  Component({
761
912
  selector: 'aup-checkbox-input',
762
- 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",
763
- 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}"]
913
+ 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",
914
+ 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}"]
764
915
  }),
765
916
  __metadata("design:paramtypes", [])
766
917
  ], CheckboxInputComponent);
767
918
  return CheckboxInputComponent;
768
919
  }(AbstractValueInputComponent));
769
920
 
921
+ /**
922
+ * Using templates:
923
+ * <aup-multiple-select-input [valueModel]="myModel" [options]="myOptions">
924
+ * <ng-template #optionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
925
+ * <ng-template #nilOptionTemplateRef let-option>{{option.thePropertyYouWant}}</ng-template>
926
+ * </aup-multiple-select_input>
927
+ */
928
+ var MultipleSelectInputComponent = /** @class */ (function (_super) {
929
+ __extends(MultipleSelectInputComponent, _super);
930
+ function MultipleSelectInputComponent() {
931
+ var _this = _super.call(this) || this;
932
+ _this.optionLabelFormat = function (option) { return (option && _this.optionLabel) ? option[_this.optionLabel] : option; };
933
+ return _this;
934
+ }
935
+ MultipleSelectInputComponent.prototype.ngOnInit = function () {
936
+ };
937
+ __decorate([
938
+ Input(), TrackExternal(),
939
+ __metadata("design:type", ListModel)
940
+ ], MultipleSelectInputComponent.prototype, "optionsModel", void 0);
941
+ __decorate([
942
+ Input(), StoreInListModel('optionsModel'),
943
+ __metadata("design:type", Array)
944
+ ], MultipleSelectInputComponent.prototype, "options", void 0);
945
+ __decorate([
946
+ Input(),
947
+ __metadata("design:type", Object)
948
+ ], MultipleSelectInputComponent.prototype, "optionLabel", void 0);
949
+ __decorate([
950
+ Input(),
951
+ __metadata("design:type", Boolean)
952
+ ], MultipleSelectInputComponent.prototype, "allowNil", void 0);
953
+ __decorate([
954
+ ContentChild('optionTemplate'),
955
+ __metadata("design:type", TemplateRef)
956
+ ], MultipleSelectInputComponent.prototype, "optionTemplateRef", void 0);
957
+ __decorate([
958
+ ContentChild('nilOptionTemplate'),
959
+ __metadata("design:type", TemplateRef)
960
+ ], MultipleSelectInputComponent.prototype, "nilOptionTemplateRef", void 0);
961
+ __decorate([
962
+ Input(),
963
+ __metadata("design:type", Function)
964
+ ], MultipleSelectInputComponent.prototype, "optionLabelFormat", void 0);
965
+ MultipleSelectInputComponent = __decorate([
966
+ Component({
967
+ selector: 'aup-multiple-select-input',
968
+ 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",
969
+ styles: [":host{display:inline-block}mat-form-field{width:100%}"]
970
+ }),
971
+ __metadata("design:paramtypes", [])
972
+ ], MultipleSelectInputComponent);
973
+ return MultipleSelectInputComponent;
974
+ }(AbstractListInputComponent));
975
+
770
976
  var NumberInputComponent = /** @class */ (function (_super) {
771
977
  __extends(NumberInputComponent, _super);
772
978
  function NumberInputComponent() {
773
979
  var _this = _super.call(this) || this;
980
+ // @Input() @TrackExternal({ delegateTo: 'inputModel' })
981
+ // valueModel: Form.ValueModelBase<number> | IMutableValueModel<number>;
774
982
  _this.min = Number.MIN_SAFE_INTEGER;
775
983
  _this.max = Number.MAX_SAFE_INTEGER;
776
984
  return _this;
777
985
  }
778
986
  NumberInputComponent.prototype.ngOnInit = function () {
779
987
  };
780
- __decorate([
781
- Input(), TrackExternal({ delegateTo: 'inputModel' }),
782
- __metadata("design:type", Object)
783
- ], NumberInputComponent.prototype, "valueModel", void 0);
784
988
  __decorate([
785
989
  Input(),
786
990
  __metadata("design:type", Object)
@@ -792,8 +996,8 @@ var NumberInputComponent = /** @class */ (function (_super) {
792
996
  NumberInputComponent = __decorate([
793
997
  Component({
794
998
  selector: 'aup-number-input',
795
- 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",
796
- 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}"]
999
+ 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",
1000
+ styles: [""]
797
1001
  }),
798
1002
  __metadata("design:paramtypes", [])
799
1003
  ], NumberInputComponent);
@@ -802,26 +1006,31 @@ var NumberInputComponent = /** @class */ (function (_super) {
802
1006
 
803
1007
  var PasswordInputComponent = /** @class */ (function (_super) {
804
1008
  __extends(PasswordInputComponent, _super);
1009
+ // @Input() @TrackExternal({ delegateTo: 'inputModel' })
1010
+ // valueModel: Form.ValueModelBase<string> | IMutableValueModel<string>;
805
1011
  function PasswordInputComponent() {
806
1012
  return _super.call(this) || this;
807
1013
  }
808
1014
  PasswordInputComponent.prototype.ngOnInit = function () {
809
1015
  };
810
- __decorate([
811
- Input(), TrackExternal({ delegateTo: 'inputModel' }),
812
- __metadata("design:type", Object)
813
- ], PasswordInputComponent.prototype, "valueModel", void 0);
814
1016
  PasswordInputComponent = __decorate([
815
1017
  Component({
816
1018
  selector: 'aup-password-input',
817
- 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",
818
- 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}"]
1019
+ 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",
1020
+ styles: [""]
819
1021
  }),
820
1022
  __metadata("design:paramtypes", [])
821
1023
  ], PasswordInputComponent);
822
1024
  return PasswordInputComponent;
823
1025
  }(AbstractValueInputComponent));
824
1026
 
1027
+ /**
1028
+ * Using templates:
1029
+ * <aup-select-input [valueModel]="myModel" [options]="myOptions">
1030
+ * <ng-template #optionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
1031
+ * <ng-template #nilOptionTemplateRef let-option>{{option.thePropertyYouWant}}</ng-template>
1032
+ * </aup-select_input>
1033
+ */
825
1034
  var SelectInputComponent = /** @class */ (function (_super) {
826
1035
  __extends(SelectInputComponent, _super);
827
1036
  function SelectInputComponent() {
@@ -831,10 +1040,6 @@ var SelectInputComponent = /** @class */ (function (_super) {
831
1040
  }
832
1041
  SelectInputComponent.prototype.ngOnInit = function () {
833
1042
  };
834
- __decorate([
835
- Input(), TrackExternal({ delegateTo: 'inputModel' }),
836
- __metadata("design:type", Object)
837
- ], SelectInputComponent.prototype, "valueModel", void 0);
838
1043
  __decorate([
839
1044
  Input(), TrackExternal(),
840
1045
  __metadata("design:type", ListModel)
@@ -866,7 +1071,7 @@ var SelectInputComponent = /** @class */ (function (_super) {
866
1071
  SelectInputComponent = __decorate([
867
1072
  Component({
868
1073
  selector: 'aup-select-input',
869
- 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",
1074
+ 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",
870
1075
  styles: [":host{display:inline-block}mat-form-field{width:100%}"]
871
1076
  }),
872
1077
  __metadata("design:paramtypes", [])
@@ -887,10 +1092,6 @@ var StringInputComponent = /** @class */ (function (_super) {
887
1092
  }
888
1093
  StringInputComponent.prototype.ngOnInit = function () {
889
1094
  };
890
- __decorate([
891
- Input(), TrackExternal({ delegateTo: 'inputModel' }),
892
- __metadata("design:type", Object)
893
- ], StringInputComponent.prototype, "valueModel", void 0);
894
1095
  __decorate([
895
1096
  Input(), TrackExternal({ defaultValue: false }),
896
1097
  __metadata("design:type", ValueModel)
@@ -902,8 +1103,8 @@ var StringInputComponent = /** @class */ (function (_super) {
902
1103
  StringInputComponent = __decorate([
903
1104
  Component({
904
1105
  selector: 'aup-string-input',
905
- 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",
906
- 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}"]
1106
+ 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",
1107
+ styles: ["button[disabled]{visibility:hidden}"]
907
1108
  }),
908
1109
  __metadata("design:paramtypes", [])
909
1110
  ], StringInputComponent);
@@ -914,16 +1115,14 @@ var TextInputComponent = /** @class */ (function (_super) {
914
1115
  __extends(TextInputComponent, _super);
915
1116
  function TextInputComponent() {
916
1117
  var _this = _super.call(this) || this;
1118
+ // @Input() @TrackExternal({ delegateTo: 'inputModel' })
1119
+ // valueModel: Form.ValueModelBase<string> | IMutableValueModel<string>;
917
1120
  _this.rows = 2;
918
1121
  return _this;
919
1122
  // const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
920
1123
  }
921
1124
  TextInputComponent.prototype.ngOnInit = function () {
922
1125
  };
923
- __decorate([
924
- Input(), TrackExternal({ delegateTo: 'inputModel' }),
925
- __metadata("design:type", Object)
926
- ], TextInputComponent.prototype, "valueModel", void 0);
927
1126
  __decorate([
928
1127
  Input(),
929
1128
  __metadata("design:type", Object)
@@ -935,14 +1134,56 @@ var TextInputComponent = /** @class */ (function (_super) {
935
1134
  TextInputComponent = __decorate([
936
1135
  Component({
937
1136
  selector: 'aup-text-input',
938
- 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",
939
- 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}"]
1137
+ 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",
1138
+ styles: ["button[disabled]{visibility:hidden}textarea{overflow:auto}"]
940
1139
  }),
941
1140
  __metadata("design:paramtypes", [])
942
1141
  ], TextInputComponent);
943
1142
  return TextInputComponent;
944
1143
  }(AbstractValueInputComponent));
945
1144
 
1145
+ var IconComponent = /** @class */ (function () {
1146
+ function IconComponent() {
1147
+ }
1148
+ Object.defineProperty(IconComponent.prototype, "icon", {
1149
+ get: function () {
1150
+ return this._icon;
1151
+ },
1152
+ set: function (iconName) {
1153
+ this._icon = iconName;
1154
+ if (!iconName) {
1155
+ this.errorMessage = 'icon is nil';
1156
+ this.prefix = undefined;
1157
+ return;
1158
+ }
1159
+ var colonIndex = iconName.indexOf(':');
1160
+ if (colonIndex > 0) {
1161
+ this.prefix = this.icon.slice(0, colonIndex);
1162
+ this.suffix = this.icon.slice(colonIndex + 1);
1163
+ }
1164
+ if (this.prefix) {
1165
+ this.errorMessage = "Unknown icon \"" + iconName + "\"";
1166
+ }
1167
+ this.errorMessage = "Unknown icon prefix \"" + this.prefix + "\"";
1168
+ },
1169
+ enumerable: true,
1170
+ configurable: true
1171
+ });
1172
+ __decorate([
1173
+ Input(),
1174
+ __metadata("design:type", String),
1175
+ __metadata("design:paramtypes", [String])
1176
+ ], IconComponent.prototype, "icon", null);
1177
+ IconComponent = __decorate([
1178
+ Component({
1179
+ selector: 'aup-icon',
1180
+ 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",
1181
+ 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}"]
1182
+ })
1183
+ ], IconComponent);
1184
+ return IconComponent;
1185
+ }());
1186
+
946
1187
  var NoopComponent = /** @class */ (function () {
947
1188
  function NoopComponent() {
948
1189
  }
@@ -1153,6 +1394,7 @@ var CellHeaderPortalRef = /** @class */ (function (_super) {
1153
1394
  assert$1.isTruthy(host);
1154
1395
  host[HEADER_CELL_RENDERER_PORTAL] = new ComponentPortal(this.componentType);
1155
1396
  };
1397
+ // @Trace()
1156
1398
  CellHeaderPortalRef.prototype.onPortalAttached = function (host, portalComponent) {
1157
1399
  this.initialiseHeader(portalComponent, host.column);
1158
1400
  };
@@ -1176,13 +1418,15 @@ var ComponentCellRendererPortalRef = /** @class */ (function (_super) {
1176
1418
  ComponentCellRendererPortalRef.prototype.initialiseHost = function (host, columnModel) {
1177
1419
  host[CELL_RENDERER_PORTAL] = new ComponentPortal(this.componentType);
1178
1420
  };
1421
+ // @Trace()
1179
1422
  ComponentCellRendererPortalRef.prototype.onPortalAttached = function (host, portalComponent) {
1180
1423
  host[PORTAL_RENDERER_COMPONENT] = portalComponent;
1181
- this.updateComponent(portalComponent, host.getRowData());
1424
+ this.updateComponent(portalComponent, host.getRowData(), true);
1182
1425
  };
1426
+ // @Trace()
1183
1427
  ComponentCellRendererPortalRef.prototype.pushState = function (host) {
1184
1428
  if (host[PORTAL_RENDERER_COMPONENT]) {
1185
- this.updateComponent(host[PORTAL_RENDERER_COMPONENT], host.getRowData());
1429
+ this.updateComponent(host[PORTAL_RENDERER_COMPONENT], host.getRowData(), false);
1186
1430
  }
1187
1431
  };
1188
1432
  return ComponentCellRendererPortalRef;
@@ -1224,6 +1468,7 @@ var TemplateCellRendererPortalRef = /** @class */ (function (_super) {
1224
1468
  TemplateCellRendererPortalRef.prototype.onPortalAttached = function (host, portalComponent) {
1225
1469
  // don't care
1226
1470
  };
1471
+ // @Trace()
1227
1472
  TemplateCellRendererPortalRef.prototype.pushState = function (host) {
1228
1473
  host[CELL_RENDERER_PORTAL] = this.createPortal(host.getRowData());
1229
1474
  host.fillCell = this.fillCell;
@@ -1505,24 +1750,37 @@ var ColumnModel = /** @class */ (function () {
1505
1750
  }());
1506
1751
  var PropertyColumnModel = /** @class */ (function (_super) {
1507
1752
  __extends(PropertyColumnModel, _super);
1508
- function PropertyColumnModel(property, defaults) {
1509
- var _this = _super.call(this, property.toString(), defaults) || this;
1753
+ function PropertyColumnModel(id, property, defaults) {
1754
+ var _this = _super.call(this, id, defaults) || this;
1510
1755
  _this.property = property;
1511
1756
  _this._format = function (value) { return value; };
1512
1757
  _this.cellRenderer(DefaultCellRendererComponent);
1513
1758
  return _this;
1514
1759
  }
1515
- PropertyColumnModel.prototype.cellRenderer = function (componentType) {
1760
+ PropertyColumnModel.prototype.cellRenderer = function (componentType, onComponentInitOrOptions) {
1516
1761
  var _this = this;
1517
- this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData) {
1762
+ this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData, firstTime) {
1763
+ if (firstTime) {
1764
+ if (___default.isFunction(onComponentInitOrOptions)) {
1765
+ onComponentInitOrOptions(component);
1766
+ }
1767
+ else {
1768
+ if (___default.isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onComponentInit)) {
1769
+ onComponentInitOrOptions.onComponentInit(component);
1770
+ }
1771
+ }
1772
+ }
1518
1773
  component.value = _this._format(rowData.row[_this.property]);
1774
+ if (!___default.isFunction(onComponentInitOrOptions) && ___default.isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onRowUpdate)) {
1775
+ onComponentInitOrOptions.onRowUpdate(component, rowData.row);
1776
+ }
1519
1777
  }));
1520
1778
  return this;
1521
1779
  };
1522
- PropertyColumnModel.prototype.cellEditor = function (editor, validatorsOrInitialiser, initialiseComponent) {
1780
+ PropertyColumnModel.prototype.cellEditor = function (editor, validatorsOrInitialiser, onComponentInit) {
1523
1781
  var _this = this;
1524
1782
  var validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
1525
- var initialiser = ___default.isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : initialiseComponent;
1783
+ var initialiser = ___default.isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : onComponentInit;
1526
1784
  this.configureCellEditor(new CellEditorPortalRef(editor, function (component, editSession) {
1527
1785
  var formValueModel = editSession.form.pluck(_this.property);
1528
1786
  if (validators) {
@@ -1547,8 +1805,8 @@ var PropertyColumnModel = /** @class */ (function (_super) {
1547
1805
  }(ColumnModel));
1548
1806
  var ListPropertyColumnModel = /** @class */ (function (_super) {
1549
1807
  __extends(ListPropertyColumnModel, _super);
1550
- function ListPropertyColumnModel(property, defaults) {
1551
- var _this = _super.call(this, property.toString(), defaults) || this;
1808
+ function ListPropertyColumnModel(id, property, defaults) {
1809
+ var _this = _super.call(this, id, defaults) || this;
1552
1810
  _this.property = property;
1553
1811
  _this._format = function (value) { return value.map(function (v) { return v === null || v === void 0 ? void 0 : v.toString(); }).join(', '); };
1554
1812
  _this.cellRenderer(DefaultCellRendererComponent);
@@ -1595,9 +1853,12 @@ var CustomValueColumnModel = /** @class */ (function (_super) {
1595
1853
  _this.cellRenderer(DefaultCellRendererComponent);
1596
1854
  return _this;
1597
1855
  }
1598
- CustomValueColumnModel.prototype.cellRenderer = function (componentType) {
1856
+ CustomValueColumnModel.prototype.cellRenderer = function (componentType, onComponentInit) {
1599
1857
  var _this = this;
1600
- this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData) {
1858
+ this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData, firstTime) {
1859
+ if (firstTime && ___default.isFunction(onComponentInit)) {
1860
+ onComponentInit(component);
1861
+ }
1601
1862
  component.value = _this.getValue(rowData.row);
1602
1863
  }));
1603
1864
  return this;
@@ -1782,7 +2043,7 @@ var TableModel = /** @class */ (function () {
1782
2043
  this.dataSource = chain(this.sourceOfTruth).replaceAll(this.rowsBeingEdited);
1783
2044
  this.firstEditableColumn = chain(this.columns).select(function (c) { return c.hasEditorPortal(); }).first();
1784
2045
  this.hasColumnsWithRowSelectionExplicitlyEnabled = chain(this._columns).findIndex(function (column) { return column.isRowSelectionExplicitlyEnabled(); }).isGreaterThanOrEqualTo(0);
1785
- this.addRowClass("enable-hover", function () { return _this.isRowSelectionEnabled(); });
2046
+ this.addRowClass('enable-hover', function () { return _this.isRowSelectionEnabled(); });
1786
2047
  }
1787
2048
  TableModel_1 = TableModel;
1788
2049
  TableModel.fromList = function (sourceOfTruth, builder) {
@@ -1810,11 +2071,11 @@ var TableModel = /** @class */ (function () {
1810
2071
  enumerable: true,
1811
2072
  configurable: true
1812
2073
  });
1813
- TableModel.prototype.pluck = function (property) {
1814
- return this.addColumn(new PropertyColumnModel(property, this));
2074
+ TableModel.prototype.pluck = function (property, options) {
2075
+ return this.addColumn(new PropertyColumnModel((options === null || options === void 0 ? void 0 : options.columnId) || property.toString(), property, this));
1815
2076
  };
1816
- TableModel.prototype.pluckList = function (property) {
1817
- return this.addColumn(new ListPropertyColumnModel(property, this));
2077
+ TableModel.prototype.pluckList = function (property, options) {
2078
+ return this.addColumn(new ListPropertyColumnModel((options === null || options === void 0 ? void 0 : options.columnId) || property.toString(), property, this));
1818
2079
  };
1819
2080
  TableModel.prototype.addSelectionColumn = function (selectionModel) {
1820
2081
  assert.isNil(this.selectionColumnModel);
@@ -1828,6 +2089,9 @@ var TableModel = /** @class */ (function () {
1828
2089
  TableModel.prototype.addCustomColumn = function (columnId, dataAccessor) {
1829
2090
  return this.addColumn(new CustomValueColumnModel(columnId, this, dataAccessor));
1830
2091
  };
2092
+ TableModel.prototype.addComponentColumn = function (columnId, component, onInit) {
2093
+ return this.addColumn(new CustomValueColumnModel(columnId, this, function (row) { return row; })).cellRenderer(component, onInit);
2094
+ };
1831
2095
  TableModel.prototype.addTemplateColumn = function (columnId) {
1832
2096
  return this.addColumn(new CustomTemplateColumnModel(columnId, this));
1833
2097
  };
@@ -1980,7 +2244,6 @@ var TableComponent = /** @class */ (function (_super) {
1980
2244
  Component({
1981
2245
  selector: 'aup-table',
1982
2246
  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",
1983
- encapsulation: ViewEncapsulation.None,
1984
2247
  styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{flex:1}"]
1985
2248
  }),
1986
2249
  __metadata("design:paramtypes", [])
@@ -2248,100 +2511,6 @@ var VerticalFocusContainerComponent = /** @class */ (function (_super) {
2248
2511
  return VerticalFocusContainerComponent;
2249
2512
  }(FocusContainerComponent));
2250
2513
 
2251
- var MultipleSelectInputComponent = /** @class */ (function (_super) {
2252
- __extends(MultipleSelectInputComponent, _super);
2253
- function MultipleSelectInputComponent() {
2254
- var _this = _super.call(this) || this;
2255
- _this.optionLabelFormat = function (option) { return (option && _this.optionLabel) ? option[_this.optionLabel] : option; };
2256
- return _this;
2257
- }
2258
- MultipleSelectInputComponent.prototype.ngOnInit = function () {
2259
- };
2260
- __decorate([
2261
- Input(), TrackExternal({ delegateTo: 'inputModel' }),
2262
- __metadata("design:type", Object)
2263
- ], MultipleSelectInputComponent.prototype, "listModel", void 0);
2264
- __decorate([
2265
- Input(), TrackExternal(),
2266
- __metadata("design:type", ListModel)
2267
- ], MultipleSelectInputComponent.prototype, "optionsModel", void 0);
2268
- __decorate([
2269
- Input(), StoreInListModel('optionsModel'),
2270
- __metadata("design:type", Array)
2271
- ], MultipleSelectInputComponent.prototype, "options", void 0);
2272
- __decorate([
2273
- Input(),
2274
- __metadata("design:type", Object)
2275
- ], MultipleSelectInputComponent.prototype, "optionLabel", void 0);
2276
- __decorate([
2277
- Input(),
2278
- __metadata("design:type", Boolean)
2279
- ], MultipleSelectInputComponent.prototype, "allowNil", void 0);
2280
- __decorate([
2281
- ContentChild('optionTemplate'),
2282
- __metadata("design:type", TemplateRef)
2283
- ], MultipleSelectInputComponent.prototype, "optionTemplateRef", void 0);
2284
- __decorate([
2285
- ContentChild('nilOptionTemplate'),
2286
- __metadata("design:type", TemplateRef)
2287
- ], MultipleSelectInputComponent.prototype, "nilOptionTemplateRef", void 0);
2288
- __decorate([
2289
- Input(),
2290
- __metadata("design:type", Function)
2291
- ], MultipleSelectInputComponent.prototype, "optionLabelFormat", void 0);
2292
- MultipleSelectInputComponent = __decorate([
2293
- Component({
2294
- selector: 'aup-multiple-select-input',
2295
- 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",
2296
- styles: [":host{display:inline-block}mat-form-field{width:100%}"]
2297
- }),
2298
- __metadata("design:paramtypes", [])
2299
- ], MultipleSelectInputComponent);
2300
- return MultipleSelectInputComponent;
2301
- }(AbstractListInputComponent));
2302
-
2303
- var IconComponent = /** @class */ (function () {
2304
- function IconComponent() {
2305
- }
2306
- Object.defineProperty(IconComponent.prototype, "icon", {
2307
- get: function () {
2308
- return this._icon;
2309
- },
2310
- set: function (iconName) {
2311
- this._icon = iconName;
2312
- if (!iconName) {
2313
- this.errorMessage = 'icon is nil';
2314
- this.prefix = undefined;
2315
- return;
2316
- }
2317
- var colonIndex = iconName.indexOf(':');
2318
- if (colonIndex > 0) {
2319
- this.prefix = this.icon.slice(0, colonIndex);
2320
- this.suffix = this.icon.slice(colonIndex + 1);
2321
- }
2322
- if (this.prefix) {
2323
- this.errorMessage = "Unknown icon \"" + iconName + "\"";
2324
- }
2325
- this.errorMessage = "Unknown icon prefix \"" + this.prefix + "\"";
2326
- },
2327
- enumerable: true,
2328
- configurable: true
2329
- });
2330
- __decorate([
2331
- Input(),
2332
- __metadata("design:type", String),
2333
- __metadata("design:paramtypes", [String])
2334
- ], IconComponent.prototype, "icon", null);
2335
- IconComponent = __decorate([
2336
- Component({
2337
- selector: 'aup-icon',
2338
- 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",
2339
- 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}"]
2340
- })
2341
- ], IconComponent);
2342
- return IconComponent;
2343
- }());
2344
-
2345
2514
  var ComponentsModule = /** @class */ (function () {
2346
2515
  function ComponentsModule(faIconLibrary) {
2347
2516
  faIconLibrary.addIconPacks(fas);
@@ -2360,6 +2529,8 @@ var ComponentsModule = /** @class */ (function () {
2360
2529
  TextInputComponent,
2361
2530
  PasswordInputComponent,
2362
2531
  SelectInputComponent,
2532
+ MultipleSelectInputComponent,
2533
+ AutocompleteInputComponent,
2363
2534
  CheckboxInputComponent,
2364
2535
  ScrollContainerComponent,
2365
2536
  NoopComponent,
@@ -2379,7 +2550,6 @@ var ComponentsModule = /** @class */ (function () {
2379
2550
  SelectHeaderCellRendererComponent,
2380
2551
  DefaultHeaderCellRendererComponent,
2381
2552
  TableHeaderCellRendererComponent,
2382
- MultipleSelectInputComponent,
2383
2553
  IconComponent,
2384
2554
  SectionHeaderComponent
2385
2555
  ],
@@ -2399,7 +2569,8 @@ var ComponentsModule = /** @class */ (function () {
2399
2569
  PortalModule,
2400
2570
  CdkScrollableModule,
2401
2571
  FontAwesomeModule,
2402
- MatTooltipModule
2572
+ MatTooltipModule,
2573
+ MatAutocompleteModule
2403
2574
  ],
2404
2575
  exports: [
2405
2576
  NumberInputComponent,
@@ -2408,6 +2579,8 @@ var ComponentsModule = /** @class */ (function () {
2408
2579
  PasswordInputComponent,
2409
2580
  CheckboxInputComponent,
2410
2581
  SelectInputComponent,
2582
+ MultipleSelectInputComponent,
2583
+ AutocompleteInputComponent,
2411
2584
  ScrollContainerComponent,
2412
2585
  NoopComponent,
2413
2586
  SwitchCaseComponent,
@@ -2420,12 +2593,23 @@ var ComponentsModule = /** @class */ (function () {
2420
2593
  TableComponent,
2421
2594
  EditRowControls,
2422
2595
  ColumnTemplateDirective,
2423
- MultipleSelectInputComponent,
2424
2596
  IconComponent,
2425
2597
  SectionHeaderComponent
2426
2598
  ],
2427
2599
  providers: [
2428
- FocusBindingFactory,
2600
+ FocusBindingFactory
2601
+ // {
2602
+ // provide: CELL_EDITOR_REGISTRATION, useValue: {
2603
+ // type: 'string',
2604
+ // editorClass: StringInputComponent
2605
+ // }, multi: true
2606
+ // },
2607
+ // {
2608
+ // provide: CELL_EDITOR_REGISTRATION, useValue: {
2609
+ // type: 'number',
2610
+ // editorClass: NumberInputComponent
2611
+ // }, multi: true
2612
+ // }
2429
2613
  ]
2430
2614
  }),
2431
2615
  __metadata("design:paramtypes", [FaIconLibrary])
@@ -6709,5 +6893,5 @@ function VisitParameterList(options) {
6709
6893
  * Generated bundle index. Do not edit.
6710
6894
  */
6711
6895
 
6712
- export { ACTIVITY_DATA, AUP_PLACE_CONFIG, AbstractInputActivity, AbstractInputComponent, AbstractInteractionContext, AbstractListInputComponent, AbstractPlaceNavigationComponent, AbstractPopStateNavigation, AbstractValueInputComponent, Activity, ActivityActionsComponent, ActivityContainerComponent, ActivityOutletComponent, ActivityRef, AddItemInteractionContextComponent, AlertDialogComponent, AngularUiPowerupsModule, Bounds, BusyOverlayComponent, CELL_EDITOR_PORTAL, CELL_RENDERER_PORTAL, CardContainerComponent, CellEditorPortalRef, CellHeaderPortalRef, CellPortalRef, CellRendererPortalRef, CheckboxInputComponent, ColumnModel, ColumnTemplateDirective, CommandDirective, ComponentCellRendererPortalRef, ComponentsModule, ConfirmThenDialogComponent, ConfirmationDialogComponent, ConsolidatedParameterMap, CustomTemplateColumnModel, CustomValueColumnModel, DEFINITION_META_DATA_KEY, DIALOG_INTERACTION_SERVICE_DEFAULTS, DefaultCellRendererComponent, DefaultHeaderCellRendererComponent, DialogInteractionContext, DialogInteractionContextFactory, Dimension, DirectivesModule, DisposableComponent, EditRowControls, EditSession, EditorControlColumnModel, EmptyStateComponent, EventCleanUpSession, FocusBinding, FocusBindingDirective, FocusBindingFactory, FocusContainerComponent, FocusableComponent, Formatter, HEADER_CELL_RENDERER_PORTAL, IconComponent, InPlaceInteractionContextComponent, InteractionContextTriggerFor, InteractionModule, InteractionService, InteractionServiceRoutingAdapter, LEFT_RIGHT_PLACE_ANIMATION, ListPlaceNavComponent, ListPropertyColumnModel, ModalInteractionContextFactory, MultipleSelectInputComponent, Navigating, NavigatingDuringInteraction, NavigationContext, NavigationSession, NoopAuthGuard, NoopComponent, NumberInputComponent, PORTAL_EDITOR_COMPONENT, PORTAL_RENDERER_COMPONENT, ParameterDefinition, PasswordInputComponent, Place, PlaceComponent, PlaceComponentDeactivationHandler, PlaceDefinition, PlaceGuard, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouter, Point, PopStateDuringInteractionNavigation, PopStateNavigation, PopupInteractionContextComponent, PropertyColumnModel, ROUTE_PARAMETER_LIST_KEY, RemoveLastInteractionFromUrlNavigationSession, ResizeAwareComponent, RouteId, ScrollContainerComponent, SectionHeaderComponent, SelectCellRendererComponent, SelectHeaderCellRendererComponent, SelectInputActivity, SelectInputComponent, SelectionColumnModel, SidePlaceNavigationComponent, StringInputActivity, StringInputComponent, SwitchCaseComponent, SwitchCaseDefaultDirective, SwitchCaseOption, SwitchCaseWhenDirective, SynchroniseInteractionContextIdsWithRoute, TabbedPlaceNavigationComponent, TableCellRendererComponent, TableComponent, TableHeaderCellRendererComponent, TableModel, TemplateCellRendererPortalRef, TextInputComponent, UrlService, UrlSnapshot, VerticalFocusContainerComponent, Visit, VisitParameter, VisitParameterList, VisitSanitiser, WaitUntilLeavingInteractionTransitionCancelled, WaitUntilLinkTriggeredNavigationInteractionCancellationEventsFinish, WaitUntilPopStateDuringCanDeactivateInteractionFinishes, leftRightPlaceAnimation, slideDownOnEnterAnimation, slideRightOnEnterAnimation, ɵ0, DirectivesModule as ɵa, CommandDirective as ɵb, EditRowControls as ɵba, ColumnTemplateDirective as ɵbb, DefaultCellRendererComponent as ɵbc, TableCellRendererComponent as ɵbd, SelectCellRendererComponent as ɵbe, SelectHeaderCellRendererComponent as ɵbf, DefaultHeaderCellRendererComponent as ɵbg, TableHeaderCellRendererComponent as ɵbh, MultipleSelectInputComponent as ɵbi, IconComponent as ɵbj, SectionHeaderComponent as ɵbk, PlaceModule as ɵbl, ComponentsModule as ɵbm, EmptyStateComponent as ɵbn, BusyOverlayComponent as ɵbo, PlaceOutletComponent as ɵbp, leftRightPlaceAnimation as ɵbq, LEFT_RIGHT_PLACE_ANIMATION as ɵbr, AUP_PLACE_CONFIG as ɵbs, PlaceRouter as ɵbu, InteractionService as ɵbv, ModalInteractionContextFactory as ɵbw, UrlService as ɵbx, PlaceHistory as ɵby, TabbedPlaceNavigationComponent as ɵbz, FocusBindingDirective as ɵc, AbstractPlaceNavigationComponent as ɵca, ListPlaceNavComponent as ɵcb, SidePlaceNavigationComponent as ɵcc, InteractionModule as ɵcd, ActivityContainerComponent as ɵce, AbstractInteractionContext as ɵcf, ActivityOutletComponent as ɵcg, ConfirmationDialogComponent as ɵch, ACTIVITY_DATA as ɵci, Activity as ɵcj, ConfirmThenDialogComponent as ɵcl, AlertDialogComponent as ɵcm, InPlaceInteractionContextComponent as ɵco, AddItemInteractionContextComponent as ɵcp, ActivityActionsComponent as ɵcq, PopupInteractionContextComponent as ɵcr, StringInputActivity as ɵcs, AbstractInputActivity as ɵct, SelectInputActivity as ɵcu, InteractionContextTriggerFor as ɵcv, DisposableComponent as ɵd, FocusBindingFactory as ɵe, ComponentsModule as ɵf, AbstractInputComponent as ɵg, AbstractValueInputComponent as ɵh, AbstractListInputComponent as ɵi, NumberInputComponent as ɵj, StringInputComponent as ɵk, TextInputComponent as ɵl, PasswordInputComponent as ɵm, SelectInputComponent as ɵn, CheckboxInputComponent as ɵo, ScrollContainerComponent as ɵp, NoopComponent as ɵq, SwitchCaseOption as ɵr, SwitchCaseWhenDirective as ɵs, SwitchCaseDefaultDirective as ɵt, SwitchCaseComponent as ɵu, FocusContainerComponent as ɵv, VerticalFocusContainerComponent as ɵw, FocusableComponent as ɵx, CardContainerComponent as ɵy, TableComponent as ɵz };
6896
+ export { ACTIVITY_DATA, AUP_PLACE_CONFIG, AbstractInputActivity, AbstractInputComponent, AbstractInteractionContext, AbstractListInputComponent, AbstractPlaceNavigationComponent, AbstractPopStateNavigation, AbstractValueInputComponent, Activity, ActivityActionsComponent, ActivityContainerComponent, ActivityOutletComponent, ActivityRef, AddItemInteractionContextComponent, AlertDialogComponent, AngularUiPowerupsModule, AutocompleteInputComponent, Bounds, BusyOverlayComponent, CELL_EDITOR_PORTAL, CELL_RENDERER_PORTAL, CardContainerComponent, CellEditorPortalRef, CellHeaderPortalRef, CellPortalRef, CellRendererPortalRef, CheckboxInputComponent, ColumnModel, ColumnTemplateDirective, CommandDirective, ComponentCellRendererPortalRef, ComponentsModule, ConfirmThenDialogComponent, ConfirmationDialogComponent, ConsolidatedParameterMap, CustomTemplateColumnModel, CustomValueColumnModel, DEFINITION_META_DATA_KEY, DIALOG_INTERACTION_SERVICE_DEFAULTS, DefaultCellRendererComponent, DefaultHeaderCellRendererComponent, DialogInteractionContext, DialogInteractionContextFactory, Dimension, DirectivesModule, DisposableComponent, EditRowControls, EditSession, EditorControlColumnModel, EmptyStateComponent, EventCleanUpSession, FocusBinding, FocusBindingDirective, FocusBindingFactory, FocusContainerComponent, FocusableComponent, Formatter, HEADER_CELL_RENDERER_PORTAL, IconComponent, InPlaceInteractionContextComponent, InteractionContextTriggerFor, InteractionModule, InteractionService, InteractionServiceRoutingAdapter, LEFT_RIGHT_PLACE_ANIMATION, ListPlaceNavComponent, ListPropertyColumnModel, ModalInteractionContextFactory, MultipleSelectInputComponent, Navigating, NavigatingDuringInteraction, NavigationContext, NavigationSession, NoopAuthGuard, NoopComponent, NumberInputComponent, PORTAL_EDITOR_COMPONENT, PORTAL_RENDERER_COMPONENT, ParameterDefinition, PasswordInputComponent, Place, PlaceComponent, PlaceComponentDeactivationHandler, PlaceDefinition, PlaceGuard, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouter, Point, PopStateDuringInteractionNavigation, PopStateNavigation, PopupInteractionContextComponent, PropertyColumnModel, ROUTE_PARAMETER_LIST_KEY, RemoveLastInteractionFromUrlNavigationSession, ResizeAwareComponent, RouteId, ScrollContainerComponent, SectionHeaderComponent, SelectCellRendererComponent, SelectHeaderCellRendererComponent, SelectInputActivity, SelectInputComponent, SelectionColumnModel, SidePlaceNavigationComponent, StringInputActivity, StringInputComponent, SwitchCaseComponent, SwitchCaseDefaultDirective, SwitchCaseOption, SwitchCaseWhenDirective, SynchroniseInteractionContextIdsWithRoute, TabbedPlaceNavigationComponent, TableCellRendererComponent, TableComponent, TableHeaderCellRendererComponent, TableModel, TemplateCellRendererPortalRef, TextInputComponent, UrlService, UrlSnapshot, VerticalFocusContainerComponent, Visit, VisitParameter, VisitParameterList, VisitSanitiser, WaitUntilLeavingInteractionTransitionCancelled, WaitUntilLinkTriggeredNavigationInteractionCancellationEventsFinish, WaitUntilPopStateDuringCanDeactivateInteractionFinishes, leftRightPlaceAnimation, slideDownOnEnterAnimation, slideRightOnEnterAnimation, ɵ0, DirectivesModule as ɵa, CommandDirective as ɵb, CardContainerComponent as ɵba, TableComponent as ɵbb, EditRowControls as ɵbc, ColumnTemplateDirective as ɵbd, DefaultCellRendererComponent as ɵbe, TableCellRendererComponent as ɵbf, SelectCellRendererComponent as ɵbg, SelectHeaderCellRendererComponent as ɵbh, DefaultHeaderCellRendererComponent as ɵbi, TableHeaderCellRendererComponent as ɵbj, IconComponent as ɵbk, SectionHeaderComponent as ɵbl, PlaceModule as ɵbm, ComponentsModule as ɵbn, EmptyStateComponent as ɵbo, BusyOverlayComponent as ɵbp, PlaceOutletComponent as ɵbq, leftRightPlaceAnimation as ɵbr, LEFT_RIGHT_PLACE_ANIMATION as ɵbs, AUP_PLACE_CONFIG as ɵbt, PlaceRouter as ɵbv, InteractionService as ɵbw, ModalInteractionContextFactory as ɵbx, UrlService as ɵby, PlaceHistory as ɵbz, FocusBindingDirective as ɵc, TabbedPlaceNavigationComponent as ɵca, AbstractPlaceNavigationComponent as ɵcb, ListPlaceNavComponent as ɵcc, SidePlaceNavigationComponent as ɵcd, InteractionModule as ɵce, ActivityContainerComponent as ɵcf, AbstractInteractionContext as ɵcg, ActivityOutletComponent as ɵch, ConfirmationDialogComponent as ɵci, ACTIVITY_DATA as ɵcj, Activity as ɵck, ConfirmThenDialogComponent as ɵcm, AlertDialogComponent as ɵcn, InPlaceInteractionContextComponent as ɵcp, AddItemInteractionContextComponent as ɵcq, ActivityActionsComponent as ɵcr, PopupInteractionContextComponent as ɵcs, StringInputActivity as ɵct, AbstractInputActivity as ɵcu, SelectInputActivity as ɵcv, InteractionContextTriggerFor as ɵcw, DisposableComponent as ɵd, FocusBindingFactory as ɵe, ComponentsModule as ɵf, AbstractInputComponent as ɵg, AbstractValueInputComponent as ɵh, AbstractListInputComponent as ɵi, NumberInputComponent as ɵj, StringInputComponent as ɵk, TextInputComponent as ɵl, PasswordInputComponent as ɵm, SelectInputComponent as ɵn, MultipleSelectInputComponent as ɵo, AutocompleteInputComponent as ɵp, CheckboxInputComponent as ɵq, ScrollContainerComponent as ɵr, NoopComponent as ɵs, SwitchCaseOption as ɵt, SwitchCaseWhenDirective as ɵu, SwitchCaseDefaultDirective as ɵv, SwitchCaseComponent as ɵw, FocusContainerComponent as ɵx, VerticalFocusContainerComponent as ɵy, FocusableComponent as ɵz };
6713
6897
  //# sourceMappingURL=coolon-angular-ui-powerups.js.map