@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,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,73 @@ 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 #nilOptionTemplate 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
+ ContentChild('optionTemplate'),
951
+ __metadata("design:type", TemplateRef)
952
+ ], MultipleSelectInputComponent.prototype, "optionTemplateRef", void 0);
953
+ __decorate([
954
+ Input(),
955
+ __metadata("design:type", Function)
956
+ ], MultipleSelectInputComponent.prototype, "optionLabelFormat", void 0);
957
+ MultipleSelectInputComponent = __decorate([
958
+ Component({
959
+ selector: 'aup-multiple-select-input',
960
+ 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",
961
+ styles: [":host{display:inline-block}mat-form-field{width:100%}"]
962
+ }),
963
+ __metadata("design:paramtypes", [])
964
+ ], MultipleSelectInputComponent);
965
+ return MultipleSelectInputComponent;
966
+ }(AbstractListInputComponent));
967
+
770
968
  var NumberInputComponent = /** @class */ (function (_super) {
771
969
  __extends(NumberInputComponent, _super);
772
970
  function NumberInputComponent() {
773
971
  var _this = _super.call(this) || this;
972
+ // @Input() @TrackExternal({ delegateTo: 'inputModel' })
973
+ // valueModel: Form.ValueModelBase<number> | IMutableValueModel<number>;
774
974
  _this.min = Number.MIN_SAFE_INTEGER;
775
975
  _this.max = Number.MAX_SAFE_INTEGER;
776
976
  return _this;
777
977
  }
778
978
  NumberInputComponent.prototype.ngOnInit = function () {
779
979
  };
780
- __decorate([
781
- Input(), TrackExternal({ delegateTo: 'inputModel' }),
782
- __metadata("design:type", Object)
783
- ], NumberInputComponent.prototype, "valueModel", void 0);
784
980
  __decorate([
785
981
  Input(),
786
982
  __metadata("design:type", Object)
@@ -792,8 +988,8 @@ var NumberInputComponent = /** @class */ (function (_super) {
792
988
  NumberInputComponent = __decorate([
793
989
  Component({
794
990
  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}"]
991
+ 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",
992
+ styles: [""]
797
993
  }),
798
994
  __metadata("design:paramtypes", [])
799
995
  ], NumberInputComponent);
@@ -802,26 +998,31 @@ var NumberInputComponent = /** @class */ (function (_super) {
802
998
 
803
999
  var PasswordInputComponent = /** @class */ (function (_super) {
804
1000
  __extends(PasswordInputComponent, _super);
1001
+ // @Input() @TrackExternal({ delegateTo: 'inputModel' })
1002
+ // valueModel: Form.ValueModelBase<string> | IMutableValueModel<string>;
805
1003
  function PasswordInputComponent() {
806
1004
  return _super.call(this) || this;
807
1005
  }
808
1006
  PasswordInputComponent.prototype.ngOnInit = function () {
809
1007
  };
810
- __decorate([
811
- Input(), TrackExternal({ delegateTo: 'inputModel' }),
812
- __metadata("design:type", Object)
813
- ], PasswordInputComponent.prototype, "valueModel", void 0);
814
1008
  PasswordInputComponent = __decorate([
815
1009
  Component({
816
1010
  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}"]
1011
+ 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",
1012
+ styles: [""]
819
1013
  }),
820
1014
  __metadata("design:paramtypes", [])
821
1015
  ], PasswordInputComponent);
822
1016
  return PasswordInputComponent;
823
1017
  }(AbstractValueInputComponent));
824
1018
 
1019
+ /**
1020
+ * Using templates:
1021
+ * <aup-select-input [valueModel]="myModel" [options]="myOptions">
1022
+ * <ng-template #optionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
1023
+ * <ng-template #nilOptionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
1024
+ * </aup-select_input>
1025
+ */
825
1026
  var SelectInputComponent = /** @class */ (function (_super) {
826
1027
  __extends(SelectInputComponent, _super);
827
1028
  function SelectInputComponent() {
@@ -831,10 +1032,6 @@ var SelectInputComponent = /** @class */ (function (_super) {
831
1032
  }
832
1033
  SelectInputComponent.prototype.ngOnInit = function () {
833
1034
  };
834
- __decorate([
835
- Input(), TrackExternal({ delegateTo: 'inputModel' }),
836
- __metadata("design:type", Object)
837
- ], SelectInputComponent.prototype, "valueModel", void 0);
838
1035
  __decorate([
839
1036
  Input(), TrackExternal(),
840
1037
  __metadata("design:type", ListModel)
@@ -866,7 +1063,7 @@ var SelectInputComponent = /** @class */ (function (_super) {
866
1063
  SelectInputComponent = __decorate([
867
1064
  Component({
868
1065
  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",
1066
+ 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",
870
1067
  styles: [":host{display:inline-block}mat-form-field{width:100%}"]
871
1068
  }),
872
1069
  __metadata("design:paramtypes", [])
@@ -887,10 +1084,6 @@ var StringInputComponent = /** @class */ (function (_super) {
887
1084
  }
888
1085
  StringInputComponent.prototype.ngOnInit = function () {
889
1086
  };
890
- __decorate([
891
- Input(), TrackExternal({ delegateTo: 'inputModel' }),
892
- __metadata("design:type", Object)
893
- ], StringInputComponent.prototype, "valueModel", void 0);
894
1087
  __decorate([
895
1088
  Input(), TrackExternal({ defaultValue: false }),
896
1089
  __metadata("design:type", ValueModel)
@@ -902,8 +1095,8 @@ var StringInputComponent = /** @class */ (function (_super) {
902
1095
  StringInputComponent = __decorate([
903
1096
  Component({
904
1097
  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}"]
1098
+ 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",
1099
+ styles: ["button[disabled]{visibility:hidden}"]
907
1100
  }),
908
1101
  __metadata("design:paramtypes", [])
909
1102
  ], StringInputComponent);
@@ -914,16 +1107,14 @@ var TextInputComponent = /** @class */ (function (_super) {
914
1107
  __extends(TextInputComponent, _super);
915
1108
  function TextInputComponent() {
916
1109
  var _this = _super.call(this) || this;
1110
+ // @Input() @TrackExternal({ delegateTo: 'inputModel' })
1111
+ // valueModel: Form.ValueModelBase<string> | IMutableValueModel<string>;
917
1112
  _this.rows = 2;
918
1113
  return _this;
919
1114
  // const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
920
1115
  }
921
1116
  TextInputComponent.prototype.ngOnInit = function () {
922
1117
  };
923
- __decorate([
924
- Input(), TrackExternal({ delegateTo: 'inputModel' }),
925
- __metadata("design:type", Object)
926
- ], TextInputComponent.prototype, "valueModel", void 0);
927
1118
  __decorate([
928
1119
  Input(),
929
1120
  __metadata("design:type", Object)
@@ -935,14 +1126,56 @@ var TextInputComponent = /** @class */ (function (_super) {
935
1126
  TextInputComponent = __decorate([
936
1127
  Component({
937
1128
  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}"]
1129
+ 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",
1130
+ styles: ["button[disabled]{visibility:hidden}textarea{overflow:auto}"]
940
1131
  }),
941
1132
  __metadata("design:paramtypes", [])
942
1133
  ], TextInputComponent);
943
1134
  return TextInputComponent;
944
1135
  }(AbstractValueInputComponent));
945
1136
 
1137
+ var IconComponent = /** @class */ (function () {
1138
+ function IconComponent() {
1139
+ }
1140
+ Object.defineProperty(IconComponent.prototype, "icon", {
1141
+ get: function () {
1142
+ return this._icon;
1143
+ },
1144
+ set: function (iconName) {
1145
+ this._icon = iconName;
1146
+ if (!iconName) {
1147
+ this.errorMessage = 'icon is nil';
1148
+ this.prefix = undefined;
1149
+ return;
1150
+ }
1151
+ var colonIndex = iconName.indexOf(':');
1152
+ if (colonIndex > 0) {
1153
+ this.prefix = this.icon.slice(0, colonIndex);
1154
+ this.suffix = this.icon.slice(colonIndex + 1);
1155
+ }
1156
+ if (this.prefix) {
1157
+ this.errorMessage = "Unknown icon \"" + iconName + "\"";
1158
+ }
1159
+ this.errorMessage = "Unknown icon prefix \"" + this.prefix + "\"";
1160
+ },
1161
+ enumerable: true,
1162
+ configurable: true
1163
+ });
1164
+ __decorate([
1165
+ Input(),
1166
+ __metadata("design:type", String),
1167
+ __metadata("design:paramtypes", [String])
1168
+ ], IconComponent.prototype, "icon", null);
1169
+ IconComponent = __decorate([
1170
+ Component({
1171
+ selector: 'aup-icon',
1172
+ 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",
1173
+ 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}"]
1174
+ })
1175
+ ], IconComponent);
1176
+ return IconComponent;
1177
+ }());
1178
+
946
1179
  var NoopComponent = /** @class */ (function () {
947
1180
  function NoopComponent() {
948
1181
  }
@@ -1153,6 +1386,7 @@ var CellHeaderPortalRef = /** @class */ (function (_super) {
1153
1386
  assert$1.isTruthy(host);
1154
1387
  host[HEADER_CELL_RENDERER_PORTAL] = new ComponentPortal(this.componentType);
1155
1388
  };
1389
+ // @Trace()
1156
1390
  CellHeaderPortalRef.prototype.onPortalAttached = function (host, portalComponent) {
1157
1391
  this.initialiseHeader(portalComponent, host.column);
1158
1392
  };
@@ -1176,13 +1410,15 @@ var ComponentCellRendererPortalRef = /** @class */ (function (_super) {
1176
1410
  ComponentCellRendererPortalRef.prototype.initialiseHost = function (host, columnModel) {
1177
1411
  host[CELL_RENDERER_PORTAL] = new ComponentPortal(this.componentType);
1178
1412
  };
1413
+ // @Trace()
1179
1414
  ComponentCellRendererPortalRef.prototype.onPortalAttached = function (host, portalComponent) {
1180
1415
  host[PORTAL_RENDERER_COMPONENT] = portalComponent;
1181
- this.updateComponent(portalComponent, host.getRowData());
1416
+ this.updateComponent(portalComponent, host.getRowData(), true);
1182
1417
  };
1418
+ // @Trace()
1183
1419
  ComponentCellRendererPortalRef.prototype.pushState = function (host) {
1184
1420
  if (host[PORTAL_RENDERER_COMPONENT]) {
1185
- this.updateComponent(host[PORTAL_RENDERER_COMPONENT], host.getRowData());
1421
+ this.updateComponent(host[PORTAL_RENDERER_COMPONENT], host.getRowData(), false);
1186
1422
  }
1187
1423
  };
1188
1424
  return ComponentCellRendererPortalRef;
@@ -1224,6 +1460,7 @@ var TemplateCellRendererPortalRef = /** @class */ (function (_super) {
1224
1460
  TemplateCellRendererPortalRef.prototype.onPortalAttached = function (host, portalComponent) {
1225
1461
  // don't care
1226
1462
  };
1463
+ // @Trace()
1227
1464
  TemplateCellRendererPortalRef.prototype.pushState = function (host) {
1228
1465
  host[CELL_RENDERER_PORTAL] = this.createPortal(host.getRowData());
1229
1466
  host.fillCell = this.fillCell;
@@ -1505,24 +1742,37 @@ var ColumnModel = /** @class */ (function () {
1505
1742
  }());
1506
1743
  var PropertyColumnModel = /** @class */ (function (_super) {
1507
1744
  __extends(PropertyColumnModel, _super);
1508
- function PropertyColumnModel(property, defaults) {
1509
- var _this = _super.call(this, property.toString(), defaults) || this;
1745
+ function PropertyColumnModel(id, property, defaults) {
1746
+ var _this = _super.call(this, id, defaults) || this;
1510
1747
  _this.property = property;
1511
1748
  _this._format = function (value) { return value; };
1512
1749
  _this.cellRenderer(DefaultCellRendererComponent);
1513
1750
  return _this;
1514
1751
  }
1515
- PropertyColumnModel.prototype.cellRenderer = function (componentType) {
1752
+ PropertyColumnModel.prototype.cellRenderer = function (componentType, onComponentInitOrOptions) {
1516
1753
  var _this = this;
1517
- this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData) {
1754
+ this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData, firstTime) {
1755
+ if (firstTime) {
1756
+ if (___default.isFunction(onComponentInitOrOptions)) {
1757
+ onComponentInitOrOptions(component);
1758
+ }
1759
+ else {
1760
+ if (___default.isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onComponentInit)) {
1761
+ onComponentInitOrOptions.onComponentInit(component);
1762
+ }
1763
+ }
1764
+ }
1518
1765
  component.value = _this._format(rowData.row[_this.property]);
1766
+ if (!___default.isFunction(onComponentInitOrOptions) && ___default.isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onRowUpdate)) {
1767
+ onComponentInitOrOptions.onRowUpdate(component, rowData.row);
1768
+ }
1519
1769
  }));
1520
1770
  return this;
1521
1771
  };
1522
- PropertyColumnModel.prototype.cellEditor = function (editor, validatorsOrInitialiser, initialiseComponent) {
1772
+ PropertyColumnModel.prototype.cellEditor = function (editor, validatorsOrInitialiser, onComponentInit) {
1523
1773
  var _this = this;
1524
1774
  var validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
1525
- var initialiser = ___default.isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : initialiseComponent;
1775
+ var initialiser = ___default.isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : onComponentInit;
1526
1776
  this.configureCellEditor(new CellEditorPortalRef(editor, function (component, editSession) {
1527
1777
  var formValueModel = editSession.form.pluck(_this.property);
1528
1778
  if (validators) {
@@ -1547,8 +1797,8 @@ var PropertyColumnModel = /** @class */ (function (_super) {
1547
1797
  }(ColumnModel));
1548
1798
  var ListPropertyColumnModel = /** @class */ (function (_super) {
1549
1799
  __extends(ListPropertyColumnModel, _super);
1550
- function ListPropertyColumnModel(property, defaults) {
1551
- var _this = _super.call(this, property.toString(), defaults) || this;
1800
+ function ListPropertyColumnModel(id, property, defaults) {
1801
+ var _this = _super.call(this, id, defaults) || this;
1552
1802
  _this.property = property;
1553
1803
  _this._format = function (value) { return value.map(function (v) { return v === null || v === void 0 ? void 0 : v.toString(); }).join(', '); };
1554
1804
  _this.cellRenderer(DefaultCellRendererComponent);
@@ -1595,9 +1845,12 @@ var CustomValueColumnModel = /** @class */ (function (_super) {
1595
1845
  _this.cellRenderer(DefaultCellRendererComponent);
1596
1846
  return _this;
1597
1847
  }
1598
- CustomValueColumnModel.prototype.cellRenderer = function (componentType) {
1848
+ CustomValueColumnModel.prototype.cellRenderer = function (componentType, onComponentInit) {
1599
1849
  var _this = this;
1600
- this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData) {
1850
+ this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData, firstTime) {
1851
+ if (firstTime && ___default.isFunction(onComponentInit)) {
1852
+ onComponentInit(component);
1853
+ }
1601
1854
  component.value = _this.getValue(rowData.row);
1602
1855
  }));
1603
1856
  return this;
@@ -1782,7 +2035,7 @@ var TableModel = /** @class */ (function () {
1782
2035
  this.dataSource = chain(this.sourceOfTruth).replaceAll(this.rowsBeingEdited);
1783
2036
  this.firstEditableColumn = chain(this.columns).select(function (c) { return c.hasEditorPortal(); }).first();
1784
2037
  this.hasColumnsWithRowSelectionExplicitlyEnabled = chain(this._columns).findIndex(function (column) { return column.isRowSelectionExplicitlyEnabled(); }).isGreaterThanOrEqualTo(0);
1785
- this.addRowClass("enable-hover", function () { return _this.isRowSelectionEnabled(); });
2038
+ this.addRowClass('enable-hover', function () { return _this.isRowSelectionEnabled(); });
1786
2039
  }
1787
2040
  TableModel_1 = TableModel;
1788
2041
  TableModel.fromList = function (sourceOfTruth, builder) {
@@ -1810,11 +2063,11 @@ var TableModel = /** @class */ (function () {
1810
2063
  enumerable: true,
1811
2064
  configurable: true
1812
2065
  });
1813
- TableModel.prototype.pluck = function (property) {
1814
- return this.addColumn(new PropertyColumnModel(property, this));
2066
+ TableModel.prototype.pluck = function (property, options) {
2067
+ return this.addColumn(new PropertyColumnModel((options === null || options === void 0 ? void 0 : options.columnId) || property.toString(), property, this));
1815
2068
  };
1816
- TableModel.prototype.pluckList = function (property) {
1817
- return this.addColumn(new ListPropertyColumnModel(property, this));
2069
+ TableModel.prototype.pluckList = function (property, options) {
2070
+ return this.addColumn(new ListPropertyColumnModel((options === null || options === void 0 ? void 0 : options.columnId) || property.toString(), property, this));
1818
2071
  };
1819
2072
  TableModel.prototype.addSelectionColumn = function (selectionModel) {
1820
2073
  assert.isNil(this.selectionColumnModel);
@@ -1828,6 +2081,9 @@ var TableModel = /** @class */ (function () {
1828
2081
  TableModel.prototype.addCustomColumn = function (columnId, dataAccessor) {
1829
2082
  return this.addColumn(new CustomValueColumnModel(columnId, this, dataAccessor));
1830
2083
  };
2084
+ TableModel.prototype.addComponentColumn = function (columnId, component, onInit) {
2085
+ return this.addColumn(new CustomValueColumnModel(columnId, this, function (row) { return row; })).cellRenderer(component, onInit);
2086
+ };
1831
2087
  TableModel.prototype.addTemplateColumn = function (columnId) {
1832
2088
  return this.addColumn(new CustomTemplateColumnModel(columnId, this));
1833
2089
  };
@@ -1980,7 +2236,6 @@ var TableComponent = /** @class */ (function (_super) {
1980
2236
  Component({
1981
2237
  selector: 'aup-table',
1982
2238
  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
2239
  styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{flex:1}"]
1985
2240
  }),
1986
2241
  __metadata("design:paramtypes", [])
@@ -2248,100 +2503,6 @@ var VerticalFocusContainerComponent = /** @class */ (function (_super) {
2248
2503
  return VerticalFocusContainerComponent;
2249
2504
  }(FocusContainerComponent));
2250
2505
 
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
2506
  var ComponentsModule = /** @class */ (function () {
2346
2507
  function ComponentsModule(faIconLibrary) {
2347
2508
  faIconLibrary.addIconPacks(fas);
@@ -2360,6 +2521,8 @@ var ComponentsModule = /** @class */ (function () {
2360
2521
  TextInputComponent,
2361
2522
  PasswordInputComponent,
2362
2523
  SelectInputComponent,
2524
+ MultipleSelectInputComponent,
2525
+ AutocompleteInputComponent,
2363
2526
  CheckboxInputComponent,
2364
2527
  ScrollContainerComponent,
2365
2528
  NoopComponent,
@@ -2379,7 +2542,6 @@ var ComponentsModule = /** @class */ (function () {
2379
2542
  SelectHeaderCellRendererComponent,
2380
2543
  DefaultHeaderCellRendererComponent,
2381
2544
  TableHeaderCellRendererComponent,
2382
- MultipleSelectInputComponent,
2383
2545
  IconComponent,
2384
2546
  SectionHeaderComponent
2385
2547
  ],
@@ -2399,7 +2561,8 @@ var ComponentsModule = /** @class */ (function () {
2399
2561
  PortalModule,
2400
2562
  CdkScrollableModule,
2401
2563
  FontAwesomeModule,
2402
- MatTooltipModule
2564
+ MatTooltipModule,
2565
+ MatAutocompleteModule
2403
2566
  ],
2404
2567
  exports: [
2405
2568
  NumberInputComponent,
@@ -2408,6 +2571,8 @@ var ComponentsModule = /** @class */ (function () {
2408
2571
  PasswordInputComponent,
2409
2572
  CheckboxInputComponent,
2410
2573
  SelectInputComponent,
2574
+ MultipleSelectInputComponent,
2575
+ AutocompleteInputComponent,
2411
2576
  ScrollContainerComponent,
2412
2577
  NoopComponent,
2413
2578
  SwitchCaseComponent,
@@ -2420,12 +2585,23 @@ var ComponentsModule = /** @class */ (function () {
2420
2585
  TableComponent,
2421
2586
  EditRowControls,
2422
2587
  ColumnTemplateDirective,
2423
- MultipleSelectInputComponent,
2424
2588
  IconComponent,
2425
2589
  SectionHeaderComponent
2426
2590
  ],
2427
2591
  providers: [
2428
- FocusBindingFactory,
2592
+ FocusBindingFactory
2593
+ // {
2594
+ // provide: CELL_EDITOR_REGISTRATION, useValue: {
2595
+ // type: 'string',
2596
+ // editorClass: StringInputComponent
2597
+ // }, multi: true
2598
+ // },
2599
+ // {
2600
+ // provide: CELL_EDITOR_REGISTRATION, useValue: {
2601
+ // type: 'number',
2602
+ // editorClass: NumberInputComponent
2603
+ // }, multi: true
2604
+ // }
2429
2605
  ]
2430
2606
  }),
2431
2607
  __metadata("design:paramtypes", [FaIconLibrary])
@@ -6709,5 +6885,5 @@ function VisitParameterList(options) {
6709
6885
  * Generated bundle index. Do not edit.
6710
6886
  */
6711
6887
 
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 };
6888
+ 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
6889
  //# sourceMappingURL=coolon-angular-ui-powerups.js.map