@coolon/angular-ui-powerups 2.0.0-alpha.0 → 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 (148) hide show
  1. package/CHANGELOG.md +75 -0
  2. package/assets/form.scss +33 -0
  3. package/bundles/coolon-angular-ui-powerups.umd.js +423 -231
  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 +40 -5
  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 -1
  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/interaction/interaction.module.ngfactory.js.map +1 -1
  75. package/esm2015/lib/place/place.module.ngfactory.js.map +1 -1
  76. package/esm5/coolon-angular-ui-powerups.js +53 -52
  77. package/esm5/coolon-angular-ui-powerups.js.map +1 -1
  78. package/esm5/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  79. package/esm5/lib/components/card-container/card-container.component.js +1 -1
  80. package/esm5/lib/components/components.module.js +29 -12
  81. package/esm5/lib/components/components.module.js.map +1 -1
  82. package/esm5/lib/components/components.module.ngfactory.js.map +1 -1
  83. package/esm5/lib/components/forms/abstract-input.component.js +22 -2
  84. package/esm5/lib/components/forms/abstract-input.component.js.map +1 -1
  85. package/esm5/lib/components/forms/abstract-list-input.component.js +42 -5
  86. package/esm5/lib/components/forms/abstract-list-input.component.js.map +1 -1
  87. package/esm5/lib/components/forms/abstract-value-input.component.js +45 -5
  88. package/esm5/lib/components/forms/abstract-value-input.component.js.map +1 -1
  89. package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.js +67 -0
  90. package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.js.map +1 -0
  91. package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.ngfactory.js.map +1 -0
  92. package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.scss.shim.ngstyle.js.map +1 -0
  93. package/esm5/lib/components/forms/checkbox-input/checkbox-input.component.js +4 -7
  94. package/esm5/lib/components/forms/checkbox-input/checkbox-input.component.js.map +1 -1
  95. package/esm5/lib/components/forms/multiple-select-input/multiple-select-input.component.js +8 -5
  96. package/esm5/lib/components/forms/multiple-select-input/multiple-select-input.component.js.map +1 -1
  97. package/esm5/lib/components/forms/number-input/number-input.component.js +4 -7
  98. package/esm5/lib/components/forms/number-input/number-input.component.js.map +1 -1
  99. package/esm5/lib/components/forms/password-input/password-input.component.js +5 -8
  100. package/esm5/lib/components/forms/password-input/password-input.component.js.map +1 -1
  101. package/esm5/lib/components/forms/select-input/select-input.component.js +8 -5
  102. package/esm5/lib/components/forms/select-input/select-input.component.js.map +1 -1
  103. package/esm5/lib/components/forms/string-input/string-input.component.js +2 -6
  104. package/esm5/lib/components/forms/string-input/string-input.component.js.map +1 -1
  105. package/esm5/lib/components/forms/text-input/text-input.component.js +4 -7
  106. package/esm5/lib/components/forms/text-input/text-input.component.js.map +1 -1
  107. package/esm5/lib/components/index.js +2 -1
  108. package/esm5/lib/components/index.js.map +1 -1
  109. package/esm5/lib/components/table/cell-editors.js.map +1 -1
  110. package/esm5/lib/components/table/{cell-protal-ref.js → cell-portal-ref.js} +7 -3
  111. package/esm5/lib/components/table/cell-portal-ref.js.map +1 -0
  112. package/esm5/lib/components/table/column-model.js +27 -11
  113. package/esm5/lib/components/table/column-model.js.map +1 -1
  114. package/esm5/lib/components/table/table-cell-renderer/table-cell-renderer.component.js +1 -1
  115. package/esm5/lib/components/table/table-cell-renderer/table-cell-renderer.component.js.map +1 -1
  116. package/esm5/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js +1 -1
  117. package/esm5/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js.map +1 -1
  118. package/esm5/lib/components/table/table-model.js +8 -5
  119. package/esm5/lib/components/table/table-model.js.map +1 -1
  120. package/esm5/lib/components/table/table.component.js +1 -1
  121. package/esm5/lib/components/table/table.component.js.map +1 -1
  122. package/esm5/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  123. package/esm5/lib/place/place.module.ngfactory.js.map +1 -1
  124. package/fesm2015/coolon-angular-ui-powerups.js +324 -154
  125. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  126. package/fesm5/coolon-angular-ui-powerups.js +355 -164
  127. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  128. package/lib/components/forms/abstract-input.component.d.ts +4 -1
  129. package/lib/components/forms/abstract-list-input.component.d.ts +8 -2
  130. package/lib/components/forms/abstract-value-input.component.d.ts +8 -2
  131. package/lib/components/forms/autocomplete-input/autocomplete-input.component.d.ts +22 -0
  132. package/lib/components/forms/checkbox-input/checkbox-input.component.d.ts +0 -2
  133. package/lib/components/forms/multiple-select-input/multiple-select-input.component.d.ts +8 -2
  134. package/lib/components/forms/number-input/number-input.component.d.ts +0 -2
  135. package/lib/components/forms/password-input/password-input.component.d.ts +0 -2
  136. package/lib/components/forms/select-input/select-input.component.d.ts +8 -2
  137. package/lib/components/forms/string-input/string-input.component.d.ts +1 -2
  138. package/lib/components/forms/text-input/text-input.component.d.ts +0 -2
  139. package/lib/components/index.d.ts +2 -1
  140. package/lib/components/table/cell-editors.d.ts +3 -3
  141. package/lib/components/table/{cell-protal-ref.d.ts → cell-portal-ref.d.ts} +4 -4
  142. package/lib/components/table/column-model.d.ts +15 -7
  143. package/lib/components/table/table-cell-renderer/table-cell-renderer.component.d.ts +1 -1
  144. package/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.d.ts +1 -1
  145. package/lib/components/table/table-model.d.ts +10 -2
  146. package/package.json +2 -2
  147. package/esm2015/lib/components/table/cell-protal-ref.js.map +0 -1
  148. package/esm5/lib/components/table/cell-protal-ref.js.map +0 -1
@@ -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));
@@ -707,7 +765,7 @@ var AbstractListInputComponent = /** @class */ (function (_super) {
707
765
  var AbstractValueInputComponent = /** @class */ (function (_super) {
708
766
  __extends(AbstractValueInputComponent, _super);
709
767
  function AbstractValueInputComponent() {
710
- var _this = _super !== null && _super.apply(this, arguments) || this;
768
+ var _this = _super.call(this) || this;
711
769
  /**
712
770
  * A backing model for all our @Input() valueModel properties which should be defined as follows.
713
771
  *
@@ -720,28 +778,127 @@ 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());
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
787
+ });
723
788
  return _this;
724
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);
725
822
  AbstractValueInputComponent = __decorate([
726
- Component({ template: '' })
823
+ Component({ template: '' }),
824
+ __metadata("design:paramtypes", [])
727
825
  ], AbstractValueInputComponent);
728
826
  return AbstractValueInputComponent;
729
827
  }(AbstractInputComponent));
730
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
+
731
890
  var CheckboxInputComponent = /** @class */ (function (_super) {
732
891
  __extends(CheckboxInputComponent, _super);
733
892
  function CheckboxInputComponent() {
734
893
  var _this = _super.call(this) || this;
894
+ // @Input() @TrackExternal({ delegateTo: 'inputModel' })
895
+ // valueModel: Form.ValueModelBase<boolean> | IMutableValueModel<boolean>;
735
896
  _this.color = 'accent';
736
897
  _this.labelPosition = 'after';
737
898
  return _this;
738
899
  }
739
900
  CheckboxInputComponent.prototype.ngOnInit = function () {
740
901
  };
741
- __decorate([
742
- Input(), TrackExternal({ delegateTo: 'inputModel' }),
743
- __metadata("design:type", Object)
744
- ], CheckboxInputComponent.prototype, "valueModel", void 0);
745
902
  __decorate([
746
903
  Input(),
747
904
  __metadata("design:type", String)
@@ -753,28 +910,81 @@ var CheckboxInputComponent = /** @class */ (function (_super) {
753
910
  CheckboxInputComponent = __decorate([
754
911
  Component({
755
912
  selector: 'aup-checkbox-input',
756
- 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",
757
- 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}"]
758
915
  }),
759
916
  __metadata("design:paramtypes", [])
760
917
  ], CheckboxInputComponent);
761
918
  return CheckboxInputComponent;
762
919
  }(AbstractValueInputComponent));
763
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
+
764
976
  var NumberInputComponent = /** @class */ (function (_super) {
765
977
  __extends(NumberInputComponent, _super);
766
978
  function NumberInputComponent() {
767
979
  var _this = _super.call(this) || this;
980
+ // @Input() @TrackExternal({ delegateTo: 'inputModel' })
981
+ // valueModel: Form.ValueModelBase<number> | IMutableValueModel<number>;
768
982
  _this.min = Number.MIN_SAFE_INTEGER;
769
983
  _this.max = Number.MAX_SAFE_INTEGER;
770
984
  return _this;
771
985
  }
772
986
  NumberInputComponent.prototype.ngOnInit = function () {
773
987
  };
774
- __decorate([
775
- Input(), TrackExternal({ delegateTo: 'inputModel' }),
776
- __metadata("design:type", Object)
777
- ], NumberInputComponent.prototype, "valueModel", void 0);
778
988
  __decorate([
779
989
  Input(),
780
990
  __metadata("design:type", Object)
@@ -786,8 +996,8 @@ var NumberInputComponent = /** @class */ (function (_super) {
786
996
  NumberInputComponent = __decorate([
787
997
  Component({
788
998
  selector: 'aup-number-input',
789
- 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",
790
- 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: [""]
791
1001
  }),
792
1002
  __metadata("design:paramtypes", [])
793
1003
  ], NumberInputComponent);
@@ -796,26 +1006,31 @@ var NumberInputComponent = /** @class */ (function (_super) {
796
1006
 
797
1007
  var PasswordInputComponent = /** @class */ (function (_super) {
798
1008
  __extends(PasswordInputComponent, _super);
1009
+ // @Input() @TrackExternal({ delegateTo: 'inputModel' })
1010
+ // valueModel: Form.ValueModelBase<string> | IMutableValueModel<string>;
799
1011
  function PasswordInputComponent() {
800
1012
  return _super.call(this) || this;
801
1013
  }
802
1014
  PasswordInputComponent.prototype.ngOnInit = function () {
803
1015
  };
804
- __decorate([
805
- Input(), TrackExternal({ delegateTo: 'inputModel' }),
806
- __metadata("design:type", Object)
807
- ], PasswordInputComponent.prototype, "valueModel", void 0);
808
1016
  PasswordInputComponent = __decorate([
809
1017
  Component({
810
1018
  selector: 'aup-password-input',
811
- 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",
812
- 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: [""]
813
1021
  }),
814
1022
  __metadata("design:paramtypes", [])
815
1023
  ], PasswordInputComponent);
816
1024
  return PasswordInputComponent;
817
1025
  }(AbstractValueInputComponent));
818
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
+ */
819
1034
  var SelectInputComponent = /** @class */ (function (_super) {
820
1035
  __extends(SelectInputComponent, _super);
821
1036
  function SelectInputComponent() {
@@ -825,10 +1040,6 @@ var SelectInputComponent = /** @class */ (function (_super) {
825
1040
  }
826
1041
  SelectInputComponent.prototype.ngOnInit = function () {
827
1042
  };
828
- __decorate([
829
- Input(), TrackExternal({ delegateTo: 'inputModel' }),
830
- __metadata("design:type", Object)
831
- ], SelectInputComponent.prototype, "valueModel", void 0);
832
1043
  __decorate([
833
1044
  Input(), TrackExternal(),
834
1045
  __metadata("design:type", ListModel)
@@ -860,7 +1071,7 @@ var SelectInputComponent = /** @class */ (function (_super) {
860
1071
  SelectInputComponent = __decorate([
861
1072
  Component({
862
1073
  selector: 'aup-select-input',
863
- 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",
864
1075
  styles: [":host{display:inline-block}mat-form-field{width:100%}"]
865
1076
  }),
866
1077
  __metadata("design:paramtypes", [])
@@ -881,10 +1092,6 @@ var StringInputComponent = /** @class */ (function (_super) {
881
1092
  }
882
1093
  StringInputComponent.prototype.ngOnInit = function () {
883
1094
  };
884
- __decorate([
885
- Input(), TrackExternal({ delegateTo: 'inputModel' }),
886
- __metadata("design:type", Object)
887
- ], StringInputComponent.prototype, "valueModel", void 0);
888
1095
  __decorate([
889
1096
  Input(), TrackExternal({ defaultValue: false }),
890
1097
  __metadata("design:type", ValueModel)
@@ -896,8 +1103,8 @@ var StringInputComponent = /** @class */ (function (_super) {
896
1103
  StringInputComponent = __decorate([
897
1104
  Component({
898
1105
  selector: 'aup-string-input',
899
- 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",
900
- 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}"]
901
1108
  }),
902
1109
  __metadata("design:paramtypes", [])
903
1110
  ], StringInputComponent);
@@ -908,16 +1115,14 @@ var TextInputComponent = /** @class */ (function (_super) {
908
1115
  __extends(TextInputComponent, _super);
909
1116
  function TextInputComponent() {
910
1117
  var _this = _super.call(this) || this;
1118
+ // @Input() @TrackExternal({ delegateTo: 'inputModel' })
1119
+ // valueModel: Form.ValueModelBase<string> | IMutableValueModel<string>;
911
1120
  _this.rows = 2;
912
1121
  return _this;
913
1122
  // const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
914
1123
  }
915
1124
  TextInputComponent.prototype.ngOnInit = function () {
916
1125
  };
917
- __decorate([
918
- Input(), TrackExternal({ delegateTo: 'inputModel' }),
919
- __metadata("design:type", Object)
920
- ], TextInputComponent.prototype, "valueModel", void 0);
921
1126
  __decorate([
922
1127
  Input(),
923
1128
  __metadata("design:type", Object)
@@ -929,14 +1134,56 @@ var TextInputComponent = /** @class */ (function (_super) {
929
1134
  TextInputComponent = __decorate([
930
1135
  Component({
931
1136
  selector: 'aup-text-input',
932
- 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",
933
- 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}"]
934
1139
  }),
935
1140
  __metadata("design:paramtypes", [])
936
1141
  ], TextInputComponent);
937
1142
  return TextInputComponent;
938
1143
  }(AbstractValueInputComponent));
939
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
+
940
1187
  var NoopComponent = /** @class */ (function () {
941
1188
  function NoopComponent() {
942
1189
  }
@@ -1147,6 +1394,7 @@ var CellHeaderPortalRef = /** @class */ (function (_super) {
1147
1394
  assert$1.isTruthy(host);
1148
1395
  host[HEADER_CELL_RENDERER_PORTAL] = new ComponentPortal(this.componentType);
1149
1396
  };
1397
+ // @Trace()
1150
1398
  CellHeaderPortalRef.prototype.onPortalAttached = function (host, portalComponent) {
1151
1399
  this.initialiseHeader(portalComponent, host.column);
1152
1400
  };
@@ -1170,13 +1418,15 @@ var ComponentCellRendererPortalRef = /** @class */ (function (_super) {
1170
1418
  ComponentCellRendererPortalRef.prototype.initialiseHost = function (host, columnModel) {
1171
1419
  host[CELL_RENDERER_PORTAL] = new ComponentPortal(this.componentType);
1172
1420
  };
1421
+ // @Trace()
1173
1422
  ComponentCellRendererPortalRef.prototype.onPortalAttached = function (host, portalComponent) {
1174
1423
  host[PORTAL_RENDERER_COMPONENT] = portalComponent;
1175
- this.updateComponent(portalComponent, host.getRowData());
1424
+ this.updateComponent(portalComponent, host.getRowData(), true);
1176
1425
  };
1426
+ // @Trace()
1177
1427
  ComponentCellRendererPortalRef.prototype.pushState = function (host) {
1178
1428
  if (host[PORTAL_RENDERER_COMPONENT]) {
1179
- this.updateComponent(host[PORTAL_RENDERER_COMPONENT], host.getRowData());
1429
+ this.updateComponent(host[PORTAL_RENDERER_COMPONENT], host.getRowData(), false);
1180
1430
  }
1181
1431
  };
1182
1432
  return ComponentCellRendererPortalRef;
@@ -1218,6 +1468,7 @@ var TemplateCellRendererPortalRef = /** @class */ (function (_super) {
1218
1468
  TemplateCellRendererPortalRef.prototype.onPortalAttached = function (host, portalComponent) {
1219
1469
  // don't care
1220
1470
  };
1471
+ // @Trace()
1221
1472
  TemplateCellRendererPortalRef.prototype.pushState = function (host) {
1222
1473
  host[CELL_RENDERER_PORTAL] = this.createPortal(host.getRowData());
1223
1474
  host.fillCell = this.fillCell;
@@ -1499,24 +1750,37 @@ var ColumnModel = /** @class */ (function () {
1499
1750
  }());
1500
1751
  var PropertyColumnModel = /** @class */ (function (_super) {
1501
1752
  __extends(PropertyColumnModel, _super);
1502
- function PropertyColumnModel(property, defaults) {
1503
- var _this = _super.call(this, property.toString(), defaults) || this;
1753
+ function PropertyColumnModel(id, property, defaults) {
1754
+ var _this = _super.call(this, id, defaults) || this;
1504
1755
  _this.property = property;
1505
1756
  _this._format = function (value) { return value; };
1506
1757
  _this.cellRenderer(DefaultCellRendererComponent);
1507
1758
  return _this;
1508
1759
  }
1509
- PropertyColumnModel.prototype.cellRenderer = function (componentType) {
1760
+ PropertyColumnModel.prototype.cellRenderer = function (componentType, onComponentInitOrOptions) {
1510
1761
  var _this = this;
1511
- 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
+ }
1512
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
+ }
1513
1777
  }));
1514
1778
  return this;
1515
1779
  };
1516
- PropertyColumnModel.prototype.cellEditor = function (editor, validatorsOrInitialiser, initialiseComponent) {
1780
+ PropertyColumnModel.prototype.cellEditor = function (editor, validatorsOrInitialiser, onComponentInit) {
1517
1781
  var _this = this;
1518
1782
  var validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
1519
- var initialiser = ___default.isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : initialiseComponent;
1783
+ var initialiser = ___default.isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : onComponentInit;
1520
1784
  this.configureCellEditor(new CellEditorPortalRef(editor, function (component, editSession) {
1521
1785
  var formValueModel = editSession.form.pluck(_this.property);
1522
1786
  if (validators) {
@@ -1541,8 +1805,8 @@ var PropertyColumnModel = /** @class */ (function (_super) {
1541
1805
  }(ColumnModel));
1542
1806
  var ListPropertyColumnModel = /** @class */ (function (_super) {
1543
1807
  __extends(ListPropertyColumnModel, _super);
1544
- function ListPropertyColumnModel(property, defaults) {
1545
- var _this = _super.call(this, property.toString(), defaults) || this;
1808
+ function ListPropertyColumnModel(id, property, defaults) {
1809
+ var _this = _super.call(this, id, defaults) || this;
1546
1810
  _this.property = property;
1547
1811
  _this._format = function (value) { return value.map(function (v) { return v === null || v === void 0 ? void 0 : v.toString(); }).join(', '); };
1548
1812
  _this.cellRenderer(DefaultCellRendererComponent);
@@ -1589,9 +1853,12 @@ var CustomValueColumnModel = /** @class */ (function (_super) {
1589
1853
  _this.cellRenderer(DefaultCellRendererComponent);
1590
1854
  return _this;
1591
1855
  }
1592
- CustomValueColumnModel.prototype.cellRenderer = function (componentType) {
1856
+ CustomValueColumnModel.prototype.cellRenderer = function (componentType, onComponentInit) {
1593
1857
  var _this = this;
1594
- 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
+ }
1595
1862
  component.value = _this.getValue(rowData.row);
1596
1863
  }));
1597
1864
  return this;
@@ -1776,7 +2043,7 @@ var TableModel = /** @class */ (function () {
1776
2043
  this.dataSource = chain(this.sourceOfTruth).replaceAll(this.rowsBeingEdited);
1777
2044
  this.firstEditableColumn = chain(this.columns).select(function (c) { return c.hasEditorPortal(); }).first();
1778
2045
  this.hasColumnsWithRowSelectionExplicitlyEnabled = chain(this._columns).findIndex(function (column) { return column.isRowSelectionExplicitlyEnabled(); }).isGreaterThanOrEqualTo(0);
1779
- this.addRowClass("enable-hover", function () { return _this.isRowSelectionEnabled(); });
2046
+ this.addRowClass('enable-hover', function () { return _this.isRowSelectionEnabled(); });
1780
2047
  }
1781
2048
  TableModel_1 = TableModel;
1782
2049
  TableModel.fromList = function (sourceOfTruth, builder) {
@@ -1804,11 +2071,11 @@ var TableModel = /** @class */ (function () {
1804
2071
  enumerable: true,
1805
2072
  configurable: true
1806
2073
  });
1807
- TableModel.prototype.pluck = function (property) {
1808
- 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));
1809
2076
  };
1810
- TableModel.prototype.pluckList = function (property) {
1811
- 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));
1812
2079
  };
1813
2080
  TableModel.prototype.addSelectionColumn = function (selectionModel) {
1814
2081
  assert.isNil(this.selectionColumnModel);
@@ -1822,6 +2089,9 @@ var TableModel = /** @class */ (function () {
1822
2089
  TableModel.prototype.addCustomColumn = function (columnId, dataAccessor) {
1823
2090
  return this.addColumn(new CustomValueColumnModel(columnId, this, dataAccessor));
1824
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
+ };
1825
2095
  TableModel.prototype.addTemplateColumn = function (columnId) {
1826
2096
  return this.addColumn(new CustomTemplateColumnModel(columnId, this));
1827
2097
  };
@@ -1973,7 +2243,7 @@ var TableComponent = /** @class */ (function (_super) {
1973
2243
  TableComponent = __decorate([
1974
2244
  Component({
1975
2245
  selector: 'aup-table',
1976
- 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 [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 [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",
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",
1977
2247
  styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{flex:1}"]
1978
2248
  }),
1979
2249
  __metadata("design:paramtypes", [])
@@ -2241,100 +2511,6 @@ var VerticalFocusContainerComponent = /** @class */ (function (_super) {
2241
2511
  return VerticalFocusContainerComponent;
2242
2512
  }(FocusContainerComponent));
2243
2513
 
2244
- var MultipleSelectInputComponent = /** @class */ (function (_super) {
2245
- __extends(MultipleSelectInputComponent, _super);
2246
- function MultipleSelectInputComponent() {
2247
- var _this = _super.call(this) || this;
2248
- _this.optionLabelFormat = function (option) { return (option && _this.optionLabel) ? option[_this.optionLabel] : option; };
2249
- return _this;
2250
- }
2251
- MultipleSelectInputComponent.prototype.ngOnInit = function () {
2252
- };
2253
- __decorate([
2254
- Input(), TrackExternal({ delegateTo: 'inputModel' }),
2255
- __metadata("design:type", Object)
2256
- ], MultipleSelectInputComponent.prototype, "listModel", void 0);
2257
- __decorate([
2258
- Input(), TrackExternal(),
2259
- __metadata("design:type", ListModel)
2260
- ], MultipleSelectInputComponent.prototype, "optionsModel", void 0);
2261
- __decorate([
2262
- Input(), StoreInListModel('optionsModel'),
2263
- __metadata("design:type", Array)
2264
- ], MultipleSelectInputComponent.prototype, "options", void 0);
2265
- __decorate([
2266
- Input(),
2267
- __metadata("design:type", Object)
2268
- ], MultipleSelectInputComponent.prototype, "optionLabel", void 0);
2269
- __decorate([
2270
- Input(),
2271
- __metadata("design:type", Boolean)
2272
- ], MultipleSelectInputComponent.prototype, "allowNil", void 0);
2273
- __decorate([
2274
- ContentChild('optionTemplate'),
2275
- __metadata("design:type", TemplateRef)
2276
- ], MultipleSelectInputComponent.prototype, "optionTemplateRef", void 0);
2277
- __decorate([
2278
- ContentChild('nilOptionTemplate'),
2279
- __metadata("design:type", TemplateRef)
2280
- ], MultipleSelectInputComponent.prototype, "nilOptionTemplateRef", void 0);
2281
- __decorate([
2282
- Input(),
2283
- __metadata("design:type", Function)
2284
- ], MultipleSelectInputComponent.prototype, "optionLabelFormat", void 0);
2285
- MultipleSelectInputComponent = __decorate([
2286
- Component({
2287
- selector: 'aup-multiple-select-input',
2288
- 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",
2289
- styles: [":host{display:inline-block}mat-form-field{width:100%}"]
2290
- }),
2291
- __metadata("design:paramtypes", [])
2292
- ], MultipleSelectInputComponent);
2293
- return MultipleSelectInputComponent;
2294
- }(AbstractListInputComponent));
2295
-
2296
- var IconComponent = /** @class */ (function () {
2297
- function IconComponent() {
2298
- }
2299
- Object.defineProperty(IconComponent.prototype, "icon", {
2300
- get: function () {
2301
- return this._icon;
2302
- },
2303
- set: function (iconName) {
2304
- this._icon = iconName;
2305
- if (!iconName) {
2306
- this.errorMessage = 'icon is nil';
2307
- this.prefix = undefined;
2308
- return;
2309
- }
2310
- var colonIndex = iconName.indexOf(':');
2311
- if (colonIndex > 0) {
2312
- this.prefix = this.icon.slice(0, colonIndex);
2313
- this.suffix = this.icon.slice(colonIndex + 1);
2314
- }
2315
- if (this.prefix) {
2316
- this.errorMessage = "Unknown icon \"" + iconName + "\"";
2317
- }
2318
- this.errorMessage = "Unknown icon prefix \"" + this.prefix + "\"";
2319
- },
2320
- enumerable: true,
2321
- configurable: true
2322
- });
2323
- __decorate([
2324
- Input(),
2325
- __metadata("design:type", String),
2326
- __metadata("design:paramtypes", [String])
2327
- ], IconComponent.prototype, "icon", null);
2328
- IconComponent = __decorate([
2329
- Component({
2330
- selector: 'aup-icon',
2331
- 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",
2332
- 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}"]
2333
- })
2334
- ], IconComponent);
2335
- return IconComponent;
2336
- }());
2337
-
2338
2514
  var ComponentsModule = /** @class */ (function () {
2339
2515
  function ComponentsModule(faIconLibrary) {
2340
2516
  faIconLibrary.addIconPacks(fas);
@@ -2353,6 +2529,8 @@ var ComponentsModule = /** @class */ (function () {
2353
2529
  TextInputComponent,
2354
2530
  PasswordInputComponent,
2355
2531
  SelectInputComponent,
2532
+ MultipleSelectInputComponent,
2533
+ AutocompleteInputComponent,
2356
2534
  CheckboxInputComponent,
2357
2535
  ScrollContainerComponent,
2358
2536
  NoopComponent,
@@ -2372,7 +2550,6 @@ var ComponentsModule = /** @class */ (function () {
2372
2550
  SelectHeaderCellRendererComponent,
2373
2551
  DefaultHeaderCellRendererComponent,
2374
2552
  TableHeaderCellRendererComponent,
2375
- MultipleSelectInputComponent,
2376
2553
  IconComponent,
2377
2554
  SectionHeaderComponent
2378
2555
  ],
@@ -2392,7 +2569,8 @@ var ComponentsModule = /** @class */ (function () {
2392
2569
  PortalModule,
2393
2570
  CdkScrollableModule,
2394
2571
  FontAwesomeModule,
2395
- MatTooltipModule
2572
+ MatTooltipModule,
2573
+ MatAutocompleteModule
2396
2574
  ],
2397
2575
  exports: [
2398
2576
  NumberInputComponent,
@@ -2401,6 +2579,8 @@ var ComponentsModule = /** @class */ (function () {
2401
2579
  PasswordInputComponent,
2402
2580
  CheckboxInputComponent,
2403
2581
  SelectInputComponent,
2582
+ MultipleSelectInputComponent,
2583
+ AutocompleteInputComponent,
2404
2584
  ScrollContainerComponent,
2405
2585
  NoopComponent,
2406
2586
  SwitchCaseComponent,
@@ -2413,12 +2593,23 @@ var ComponentsModule = /** @class */ (function () {
2413
2593
  TableComponent,
2414
2594
  EditRowControls,
2415
2595
  ColumnTemplateDirective,
2416
- MultipleSelectInputComponent,
2417
2596
  IconComponent,
2418
2597
  SectionHeaderComponent
2419
2598
  ],
2420
2599
  providers: [
2421
- 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
+ // }
2422
2613
  ]
2423
2614
  }),
2424
2615
  __metadata("design:paramtypes", [FaIconLibrary])
@@ -6702,5 +6893,5 @@ function VisitParameterList(options) {
6702
6893
  * Generated bundle index. Do not edit.
6703
6894
  */
6704
6895
 
6705
- 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 };
6706
6897
  //# sourceMappingURL=coolon-angular-ui-powerups.js.map