@coolon/angular-ui-powerups 2.0.0-alpha.19 → 2.0.0-alpha.2

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 (162) hide show
  1. package/CHANGELOG.md +0 -119
  2. package/assets/form.scss +0 -33
  3. package/bundles/coolon-angular-ui-powerups.umd.js +323 -537
  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 +54 -55
  8. package/coolon-angular-ui-powerups.metadata.json +1 -1
  9. package/esm2015/coolon-angular-ui-powerups.js +52 -53
  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 +12 -29
  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 +6 -26
  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 +6 -51
  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 +7 -46
  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/checkbox-input/checkbox-input.component.js +7 -4
  29. package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.js.map +1 -1
  30. package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.metadata.json +1 -1
  31. package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.js +13 -8
  32. package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.js.map +1 -1
  33. package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.metadata.json +1 -1
  34. package/esm2015/lib/components/forms/number-input/number-input.component.js +7 -4
  35. package/esm2015/lib/components/forms/number-input/number-input.component.js.map +1 -1
  36. package/esm2015/lib/components/forms/number-input/number-input.component.metadata.json +1 -1
  37. package/esm2015/lib/components/forms/password-input/password-input.component.js +8 -5
  38. package/esm2015/lib/components/forms/password-input/password-input.component.js.map +1 -1
  39. package/esm2015/lib/components/forms/password-input/password-input.component.metadata.json +1 -1
  40. package/esm2015/lib/components/forms/select-input/select-input.component.js +5 -8
  41. package/esm2015/lib/components/forms/select-input/select-input.component.js.map +1 -1
  42. package/esm2015/lib/components/forms/select-input/select-input.component.metadata.json +1 -1
  43. package/esm2015/lib/components/forms/string-input/string-input.component.js +8 -4
  44. package/esm2015/lib/components/forms/string-input/string-input.component.js.map +1 -1
  45. package/esm2015/lib/components/forms/string-input/string-input.component.metadata.json +1 -1
  46. package/esm2015/lib/components/forms/text-input/text-input.component.js +7 -4
  47. package/esm2015/lib/components/forms/text-input/text-input.component.js.map +1 -1
  48. package/esm2015/lib/components/forms/text-input/text-input.component.metadata.json +1 -1
  49. package/esm2015/lib/components/index.js +1 -2
  50. package/esm2015/lib/components/index.js.map +1 -1
  51. package/esm2015/lib/components/index.metadata.json +1 -1
  52. package/esm2015/lib/components/table/cell-editors.js.map +1 -1
  53. package/esm2015/lib/components/table/{cell-portal-ref.js → cell-protal-ref.js} +3 -7
  54. package/esm2015/lib/components/table/cell-protal-ref.js.map +1 -0
  55. package/esm2015/lib/components/table/{cell-portal-ref.metadata.json → cell-protal-ref.metadata.json} +1 -1
  56. package/esm2015/lib/components/table/column-model.js +11 -37
  57. package/esm2015/lib/components/table/column-model.js.map +1 -1
  58. package/esm2015/lib/components/table/column-model.metadata.json +1 -1
  59. package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.js +1 -1
  60. package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.js.map +1 -1
  61. package/esm2015/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js +1 -1
  62. package/esm2015/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js.map +1 -1
  63. package/esm2015/lib/components/table/table-model.js +5 -8
  64. package/esm2015/lib/components/table/table-model.js.map +1 -1
  65. package/esm2015/lib/components/table/table-model.metadata.json +1 -1
  66. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +7 -2
  67. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js.map +1 -1
  68. package/esm2015/lib/interaction/components/activity-container/activity-container.component.metadata.json +1 -1
  69. package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  70. package/esm2015/lib/place/place-component.js +1 -1
  71. package/esm2015/lib/place/place-component.js.map +1 -1
  72. package/esm2015/lib/place/place-router.js +8 -2
  73. package/esm2015/lib/place/place-router.js.map +1 -1
  74. package/esm2015/lib/place/place-router.metadata.json +1 -1
  75. package/esm2015/lib/place/place.module.ngfactory.js.map +1 -1
  76. package/esm2015/lib/place/route/parameter-decorators.js +3 -2
  77. package/esm2015/lib/place/route/parameter-decorators.js.map +1 -1
  78. package/esm2015/lib/place/route/parameter-decorators.metadata.json +1 -1
  79. package/esm5/coolon-angular-ui-powerups.js +52 -53
  80. package/esm5/coolon-angular-ui-powerups.js.map +1 -1
  81. package/esm5/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  82. package/esm5/lib/components/card-container/card-container.component.js +1 -1
  83. package/esm5/lib/components/components.module.js +12 -29
  84. package/esm5/lib/components/components.module.js.map +1 -1
  85. package/esm5/lib/components/components.module.ngfactory.js.map +1 -1
  86. package/esm5/lib/components/forms/abstract-input.component.js +6 -34
  87. package/esm5/lib/components/forms/abstract-input.component.js.map +1 -1
  88. package/esm5/lib/components/forms/abstract-list-input.component.js +6 -56
  89. package/esm5/lib/components/forms/abstract-list-input.component.js.map +1 -1
  90. package/esm5/lib/components/forms/abstract-value-input.component.js +7 -51
  91. package/esm5/lib/components/forms/abstract-value-input.component.js.map +1 -1
  92. package/esm5/lib/components/forms/checkbox-input/checkbox-input.component.js +7 -4
  93. package/esm5/lib/components/forms/checkbox-input/checkbox-input.component.js.map +1 -1
  94. package/esm5/lib/components/forms/multiple-select-input/multiple-select-input.component.js +13 -8
  95. package/esm5/lib/components/forms/multiple-select-input/multiple-select-input.component.js.map +1 -1
  96. package/esm5/lib/components/forms/number-input/number-input.component.js +7 -4
  97. package/esm5/lib/components/forms/number-input/number-input.component.js.map +1 -1
  98. package/esm5/lib/components/forms/password-input/password-input.component.js +8 -5
  99. package/esm5/lib/components/forms/password-input/password-input.component.js.map +1 -1
  100. package/esm5/lib/components/forms/select-input/select-input.component.js +5 -8
  101. package/esm5/lib/components/forms/select-input/select-input.component.js.map +1 -1
  102. package/esm5/lib/components/forms/string-input/string-input.component.js +8 -4
  103. package/esm5/lib/components/forms/string-input/string-input.component.js.map +1 -1
  104. package/esm5/lib/components/forms/text-input/text-input.component.js +7 -4
  105. package/esm5/lib/components/forms/text-input/text-input.component.js.map +1 -1
  106. package/esm5/lib/components/index.js +1 -2
  107. package/esm5/lib/components/index.js.map +1 -1
  108. package/esm5/lib/components/table/cell-editors.js.map +1 -1
  109. package/esm5/lib/components/table/{cell-portal-ref.js → cell-protal-ref.js} +3 -7
  110. package/esm5/lib/components/table/cell-protal-ref.js.map +1 -0
  111. package/esm5/lib/components/table/column-model.js +11 -37
  112. package/esm5/lib/components/table/column-model.js.map +1 -1
  113. package/esm5/lib/components/table/table-cell-renderer/table-cell-renderer.component.js +1 -1
  114. package/esm5/lib/components/table/table-cell-renderer/table-cell-renderer.component.js.map +1 -1
  115. package/esm5/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js +1 -1
  116. package/esm5/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js.map +1 -1
  117. package/esm5/lib/components/table/table-model.js +5 -8
  118. package/esm5/lib/components/table/table-model.js.map +1 -1
  119. package/esm5/lib/interaction/components/activity-container/activity-container.component.js +7 -2
  120. package/esm5/lib/interaction/components/activity-container/activity-container.component.js.map +1 -1
  121. package/esm5/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  122. package/esm5/lib/place/place-component.js +1 -1
  123. package/esm5/lib/place/place-component.js.map +1 -1
  124. package/esm5/lib/place/place-router.js +8 -2
  125. package/esm5/lib/place/place-router.js.map +1 -1
  126. package/esm5/lib/place/place.module.ngfactory.js.map +1 -1
  127. package/esm5/lib/place/route/parameter-decorators.js +3 -2
  128. package/esm5/lib/place/route/parameter-decorators.js.map +1 -1
  129. package/fesm2015/coolon-angular-ui-powerups.js +241 -433
  130. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  131. package/fesm5/coolon-angular-ui-powerups.js +256 -469
  132. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  133. package/lib/components/forms/abstract-input.component.d.ts +3 -12
  134. package/lib/components/forms/abstract-list-input.component.d.ts +3 -10
  135. package/lib/components/forms/abstract-value-input.component.d.ts +3 -9
  136. package/lib/components/forms/checkbox-input/checkbox-input.component.d.ts +2 -0
  137. package/lib/components/forms/multiple-select-input/multiple-select-input.component.d.ts +4 -8
  138. package/lib/components/forms/number-input/number-input.component.d.ts +2 -0
  139. package/lib/components/forms/password-input/password-input.component.d.ts +2 -0
  140. package/lib/components/forms/select-input/select-input.component.d.ts +2 -8
  141. package/lib/components/forms/string-input/string-input.component.d.ts +2 -1
  142. package/lib/components/forms/text-input/text-input.component.d.ts +2 -0
  143. package/lib/components/index.d.ts +1 -2
  144. package/lib/components/table/cell-editors.d.ts +3 -3
  145. package/lib/components/table/{cell-portal-ref.d.ts → cell-protal-ref.d.ts} +4 -4
  146. package/lib/components/table/column-model.d.ts +7 -15
  147. package/lib/components/table/table-cell-renderer/table-cell-renderer.component.d.ts +1 -1
  148. package/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.d.ts +1 -1
  149. package/lib/components/table/table-model.d.ts +3 -14
  150. package/package.json +4 -4
  151. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.js +0 -70
  152. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.js.map +0 -1
  153. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.metadata.json +0 -1
  154. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.ngfactory.js.map +0 -1
  155. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.scss.shim.ngstyle.js.map +0 -1
  156. package/esm2015/lib/components/table/cell-portal-ref.js.map +0 -1
  157. package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.js +0 -73
  158. package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.js.map +0 -1
  159. package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.ngfactory.js.map +0 -1
  160. package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.scss.shim.ngstyle.js.map +0 -1
  161. package/esm5/lib/components/table/cell-portal-ref.js.map +0 -1
  162. package/lib/components/forms/autocomplete-input/autocomplete-input.component.d.ts +0 -25
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/forms'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/material/select'), require('@angular/material/tabs'), require('@angular/platform-browser/animations'), require('@angular/cdk/portal'), require('@angular/cdk/scrolling'), require('@angular/material/autocomplete'), require('@angular/material/button'), require('@angular/material/checkbox'), require('@angular/material/icon'), require('@angular/material/table'), require('@angular/material/tooltip'), require('@fortawesome/angular-fontawesome'), require('@fortawesome/free-solid-svg-icons'), require('@coolon/pectin'), require('lodash'), require('@coolon/typescript-utilities'), require('@typescript-plus/fast-memoize-decorator/dist/src'), require('immer'), require('@angular/flex-layout'), require('@angular/material/dialog'), require('@angular/router'), require('@angular/cdk/overlay'), require('resize-observer-polyfill'), require('@angular/material/progress-spinner'), require('@angular/material/list'), require('@typescript-plus/fast-memoize-decorator'), require('reflect-metadata'), require('@angular/animations'), require('rxjs')) :
3
- typeof define === 'function' && define.amd ? define('@coolon/angular-ui-powerups', ['exports', '@angular/common', '@angular/core', '@angular/forms', '@angular/material/form-field', '@angular/material/input', '@angular/material/select', '@angular/material/tabs', '@angular/platform-browser/animations', '@angular/cdk/portal', '@angular/cdk/scrolling', '@angular/material/autocomplete', '@angular/material/button', '@angular/material/checkbox', '@angular/material/icon', '@angular/material/table', '@angular/material/tooltip', '@fortawesome/angular-fontawesome', '@fortawesome/free-solid-svg-icons', '@coolon/pectin', 'lodash', '@coolon/typescript-utilities', '@typescript-plus/fast-memoize-decorator/dist/src', 'immer', '@angular/flex-layout', '@angular/material/dialog', '@angular/router', '@angular/cdk/overlay', 'resize-observer-polyfill', '@angular/material/progress-spinner', '@angular/material/list', '@typescript-plus/fast-memoize-decorator', 'reflect-metadata', '@angular/animations', 'rxjs'], factory) :
4
- (global = global || self, factory((global.coolon = global.coolon || {}, global.coolon['angular-ui-powerups'] = {}), global.ng.common, global.ng.core, global.ng.forms, global.ng.material.formField, global.ng.material.input, global.ng.material.select, global.ng.material.tabs, global.ng.platformBrowser.animations, global.ng.cdk.portal, global.ng.cdk.scrolling, global.ng.material.autocomplete, global.ng.material.button, global.ng.material.checkbox, global.ng.material.icon, global.ng.material.table, global.ng.material.tooltip, global.angularFontawesome, global.freeSolidSvgIcons, global.pectin, global.___default, global.typescriptUtilities, global.src, global.produce, global.ng.flexLayout, global.ng.material.dialog, global.ng.router, global.ng.cdk.overlay, global.ResizeObserver, global.ng.material.progressSpinner, global.ng.material.list, global.fastMemoizeDecorator, null, global.ng.animations, global.rxjs));
5
- }(this, (function (exports, common, core, forms, formField, input, select, tabs, animations, portal, scrolling, autocomplete, button, checkbox, icon, table, tooltip, angularFontawesome, freeSolidSvgIcons, pectin, ___default, typescriptUtilities, src, produce, flexLayout, dialog, router, overlay, ResizeObserver, progressSpinner, list, fastMemoizeDecorator, reflectMetadata, animations$1, rxjs) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/forms'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/material/select'), require('@angular/material/tabs'), require('@angular/platform-browser/animations'), require('@angular/cdk/portal'), require('@angular/cdk/scrolling'), require('@angular/material/button'), require('@angular/material/checkbox'), require('@angular/material/icon'), require('@angular/material/table'), require('@coolon/pectin'), require('@coolon/typescript-utilities'), require('@typescript-plus/fast-memoize-decorator/dist/src'), require('lodash'), require('immer'), require('@fortawesome/angular-fontawesome'), require('@fortawesome/free-solid-svg-icons'), require('@angular/material/tooltip'), require('@angular/flex-layout'), require('@angular/material/dialog'), require('@angular/router'), require('@angular/cdk/overlay'), require('resize-observer-polyfill'), require('@angular/material/progress-spinner'), require('@angular/material/list'), require('@typescript-plus/fast-memoize-decorator'), require('reflect-metadata'), require('@angular/animations'), require('rxjs')) :
3
+ typeof define === 'function' && define.amd ? define('@coolon/angular-ui-powerups', ['exports', '@angular/common', '@angular/core', '@angular/forms', '@angular/material/form-field', '@angular/material/input', '@angular/material/select', '@angular/material/tabs', '@angular/platform-browser/animations', '@angular/cdk/portal', '@angular/cdk/scrolling', '@angular/material/button', '@angular/material/checkbox', '@angular/material/icon', '@angular/material/table', '@coolon/pectin', '@coolon/typescript-utilities', '@typescript-plus/fast-memoize-decorator/dist/src', 'lodash', 'immer', '@fortawesome/angular-fontawesome', '@fortawesome/free-solid-svg-icons', '@angular/material/tooltip', '@angular/flex-layout', '@angular/material/dialog', '@angular/router', '@angular/cdk/overlay', 'resize-observer-polyfill', '@angular/material/progress-spinner', '@angular/material/list', '@typescript-plus/fast-memoize-decorator', 'reflect-metadata', '@angular/animations', 'rxjs'], factory) :
4
+ (global = global || self, factory((global.coolon = global.coolon || {}, global.coolon['angular-ui-powerups'] = {}), global.ng.common, global.ng.core, global.ng.forms, global.ng.material.formField, global.ng.material.input, global.ng.material.select, global.ng.material.tabs, global.ng.platformBrowser.animations, global.ng.cdk.portal, global.ng.cdk.scrolling, global.ng.material.button, global.ng.material.checkbox, global.ng.material.icon, global.ng.material.table, global.pectin, global.typescriptUtilities, global.src, global.___default, global.produce, global.angularFontawesome, global.freeSolidSvgIcons, global.ng.material.tooltip, global.ng.flexLayout, global.ng.material.dialog, global.ng.router, global.ng.cdk.overlay, global.ResizeObserver, global.ng.material.progressSpinner, global.ng.material.list, global.fastMemoizeDecorator, null, global.ng.animations, global.rxjs));
5
+ }(this, (function (exports, common, core, forms, formField, input, select, tabs, animations, portal, scrolling, button, checkbox, icon, table, pectin, typescriptUtilities, src, ___default, produce, angularFontawesome, freeSolidSvgIcons, tooltip, flexLayout, dialog, router, overlay, ResizeObserver, progressSpinner, list, fastMemoizeDecorator, reflectMetadata, animations$1, rxjs) { 'use strict';
6
6
 
7
7
  var ___default__default = 'default' in ___default ? ___default['default'] : ___default;
8
8
  produce = produce && Object.prototype.hasOwnProperty.call(produce, 'default') ? produce['default'] : produce;
@@ -578,7 +578,7 @@
578
578
  core.Component({
579
579
  selector: 'aup-card-container',
580
580
  template: "<div class=\"card-container\">\n <ng-content></ng-content>\n\n <div class=\"add-card-container\" *ngIf=\"addCardCommand.enabled.value\" [pectinCommand]=\"addCardCommand\">\n <aup-icon icon=\"mat:add\"></aup-icon>\n </div>\n\n <div class=\"add-card-template\" *ngIf=\"addCardTemplate\">\n <ng-container [ngTemplateOutlet]=\"addCardTemplate\"></ng-container>\n </div>\n\n</div>\n",
581
- styles: [":root{--aup-default-padding:var(--default-padding, 18px);--aup-default-background:white}.router-outlet-container>*{position:absolute;top:0;left:0;bottom:0;right:0}[no-tab-header]>mat-tab-header{display:none}[full-height-tabs] .mat-tab-body-wrapper,mat-tab-group.full-height-tabs .mat-tab-body-wrapper{flex:1}[full-height-tabs] .mat-tab-body-wrapper .mat-tab-body-content,[full-height-tabs] .mat-tab-body-wrapper mat-tab-body,mat-tab-group.full-height-tabs .mat-tab-body-wrapper .mat-tab-body-content,mat-tab-group.full-height-tabs .mat-tab-body-wrapper mat-tab-body{display:flex;flex-direction:column;justify-content:stretch}.dialog-interaction-context{max-width:95vw!important;max-height:95vh!important}.dialog-interaction-context mat-dialog-container{max-width:95vw!important;max-height:95vh!important;padding:0}.aup-popup-interaction-panel{background:var(--aup-default-background,#fff);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);transition:box-shadow 280ms cubic-bezier(.4,0,.2,1)}.aup-input-activity{padding:calc(var(--aup-default-padding)/2)}.aup-input-component{display:block}.aup-input-component input,.aup-input-component mat-form-field{width:100%}.aup-input-component input mat-hint.faux-error,.aup-input-component mat-form-field mat-hint.faux-error{color:#f44336}.aup-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}"]
581
+ styles: [":root{--aup-default-padding:var(--default-padding, 18px);--aup-default-background:white}.router-outlet-container>*{position:absolute;top:0;left:0;bottom:0;right:0}[no-tab-header]>mat-tab-header{display:none}[full-height-tabs] .mat-tab-body-wrapper,mat-tab-group.full-height-tabs .mat-tab-body-wrapper{flex:1}[full-height-tabs] .mat-tab-body-wrapper .mat-tab-body-content,[full-height-tabs] .mat-tab-body-wrapper mat-tab-body,mat-tab-group.full-height-tabs .mat-tab-body-wrapper .mat-tab-body-content,mat-tab-group.full-height-tabs .mat-tab-body-wrapper mat-tab-body{display:flex;flex-direction:column;justify-content:stretch}.dialog-interaction-context{max-width:95vw!important;max-height:95vh!important}.dialog-interaction-context mat-dialog-container{max-width:95vw!important;max-height:95vh!important;padding:0}.aup-popup-interaction-panel{background:var(--aup-default-background,#fff);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);transition:box-shadow 280ms cubic-bezier(.4,0,.2,1)}.aup-input-activity{padding:calc(var(--aup-default-padding)/2)}.aup-input-component{display:block}.aup-input-component input,.aup-input-component mat-form-field{width:100%}.aup-input-component input mat-hint.faux-error,.aup-input-component mat-form-field mat-hint.faux-error{color:#f44336}aup-table-cell-renderer>.aup-input-component .mat-form-field-flex{padding-top:0}aup-table-cell-renderer>.aup-input-component .mat-form-field-infix{width:0}aup-table-cell-renderer>.aup-input-component .mat-form-field-label-wrapper{display:none}aup-table{--default-column-gap:var(--column-gap, 24px);--resolved-row-hover-background-color:var(--row-hover-background-color, rgba(0, 0, 0, 0.05))}aup-table .mat-table td.mat-cell:first-of-type,aup-table .mat-table td.mat-footer-cell:first-of-type,aup-table .mat-table th.mat-header-cell:first-of-type{padding-left:0}aup-table .mat-table tr.enable-hover:hover{background-color:var(--resolved-row-hover-background-color)}aup-table .mat-table td.enable-cursor{cursor:pointer}aup-table aup-table-cell-renderer,aup-table aup-table-header-cell-renderer{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%;min-height:47px}aup-table aup-table-cell-renderer.first-column,aup-table aup-table-cell-renderer:not(.first-column),aup-table aup-table-header-cell-renderer.first-column,aup-table aup-table-header-cell-renderer:not(.first-column){padding-left:var(--default-column-gap)}aup-table aup-table-cell-renderer.fillCell{justify-content:stretch;padding-left:0!important}aup-table aup-table-cell-renderer.padChild>:first-child{padding-left:var(--default-column-gap);flex:1}:host{--resolved-card-gap:var(--card-gap, 16px);--resolved-card-width:var(--card-width, 300px);--resolved-card-height:var(--card-height, auto);--resolved-card-min-height:var(--card-min-height, auto);--resolved-card-background:var(--card-background, #fcfcfb);flex:1;display:block;background:var(--resolved-card-background)}.card-container{display:-ms-grid;display:grid;grid-template-columns:repeat(auto-fill,var(--resolved-card-width));grid-template-rows:repeat(auto-fit,minmax(0,var(--resolved-card-height)));grid-gap:var(--resolved-card-gap);box-sizing:border-box;padding:var(--resolved-card-gap);min-height:calc(var(--resolved-card-height) + 2 * var(--resolved-card-gap));min-width:calc(var(--resolved-card-width) + 2 * var(--resolved-card-gap));width:calc((var(--resolved-card-width) + var(--resolved-card-gap)) * 2 + var(--grid-gap));max-width:100%}.add-card-container{width:var(--resolved-card-width);height:var(--resolved-card-height);min-height:var(--resolved-card-min-height);display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:rgba(0,0,0,.54);background-color:rgba(255,255,255,.8);transition:280ms cubic-bezier(.4,0,.2,1)}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{transition:280ms cubic-bezier(.4,0,.2,1);border-color:transparent;background-color:#fff;color:rgba(0,0,0,.54)}.add-card-container:hover:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.add-card-template-container{width:var(--resolved-card-width);height:var(--resolved-card-height);display:flex;flex-direction:column;align-items:stretch;justify-content:stretch}"]
582
582
  }),
583
583
  __metadata("design:paramtypes", [])
584
584
  ], CardContainerComponent);
@@ -693,8 +693,6 @@
693
693
  __extends(AbstractInputComponent, _super);
694
694
  function AbstractInputComponent() {
695
695
  var _this = _super.call(this) || this;
696
- _this.onValueEditedListeners = new pectin.EventListenerList();
697
- _this.dense = false;
698
696
  // TODO: fix this.
699
697
  // tslint:disable-next-line:no-output-native
700
698
  _this.focus = new core.EventEmitter();
@@ -744,7 +742,7 @@
744
742
  };
745
743
  Object.defineProperty(AbstractInputComponent.prototype, "enabled", {
746
744
  get: function () {
747
- return this.formValueModel.enabled;
745
+ return this.inputModel.enabled;
748
746
  },
749
747
  enumerable: true,
750
748
  configurable: true
@@ -754,7 +752,7 @@
754
752
  };
755
753
  Object.defineProperty(AbstractInputComponent.prototype, "errorList", {
756
754
  get: function () {
757
- return this.formValueModel.errorList;
755
+ return this.inputModel.errorList;
758
756
  },
759
757
  enumerable: true,
760
758
  configurable: true
@@ -768,40 +766,19 @@
768
766
  });
769
767
  Object.defineProperty(AbstractInputComponent.prototype, "focusContext", {
770
768
  get: function () {
771
- return this.formValueModel.focusContext;
769
+ return this.inputModel.focusContext;
772
770
  },
773
771
  enumerable: true,
774
772
  configurable: true
775
773
  });
776
- Object.defineProperty(AbstractInputComponent.prototype, "floatLabel", {
777
- get: function () {
778
- return this.dense ? 'never' : this.userFloatLabel;
779
- },
780
- enumerable: true,
781
- configurable: true
782
- });
783
- Object.defineProperty(AbstractInputComponent.prototype, "showHint", {
784
- get: function () {
785
- return this.dense ? false : !!this.hint;
786
- },
787
- enumerable: true,
788
- configurable: true
789
- });
790
- /**
791
- * Invokes the callback when this components value is changed by a user edit.
792
- * @param callback
793
- */
794
- AbstractInputComponent.prototype.onValueEdited = function (callback) {
795
- return this.onValueEditedListeners.add(callback);
796
- };
797
774
  __decorate([
798
775
  core.Input(),
799
776
  __metadata("design:type", String)
800
777
  ], AbstractInputComponent.prototype, "label", void 0);
801
778
  __decorate([
802
- core.Input('floatLabel'),
779
+ core.Input(),
803
780
  __metadata("design:type", String)
804
- ], AbstractInputComponent.prototype, "userFloatLabel", void 0);
781
+ ], AbstractInputComponent.prototype, "floatLabel", void 0);
805
782
  __decorate([
806
783
  core.Input(),
807
784
  __metadata("design:type", String)
@@ -810,11 +787,6 @@
810
787
  core.Input(),
811
788
  __metadata("design:type", String)
812
789
  ], AbstractInputComponent.prototype, "placeholder", void 0);
813
- __decorate([
814
- core.HostBinding('class.dense'),
815
- core.Input(),
816
- __metadata("design:type", Object)
817
- ], AbstractInputComponent.prototype, "dense", void 0);
818
790
  __decorate([
819
791
  core.Input('command.focus'),
820
792
  __metadata("design:type", pectin.Command)
@@ -883,7 +855,7 @@
883
855
  var AbstractListInputComponent = /** @class */ (function (_super) {
884
856
  __extends(AbstractListInputComponent, _super);
885
857
  function AbstractListInputComponent() {
886
- var _this = _super.call(this) || this;
858
+ var _this = _super !== null && _super.apply(this, arguments) || this;
887
859
  /**
888
860
  * A backing model for all our @Input() valueModel properties which should be defined as follows.
889
861
  *
@@ -895,61 +867,11 @@
895
867
  * gets told it's an Object and can't scan for a base type annotated with @DelegateUsing(..).
896
868
  */
897
869
  // We have to register it as a disposable so it ditches any listeners when we're disposed.
898
- _this.formValueModel = _this.registerDisposable(new pectin.Form.DelegatingListModel());
899
- _this.componentListModel = new pectin.MutableListModel();
900
- _this.setValueIsInProgress = new pectin.Guard();
901
- _this.valueChange = new core.EventEmitter();
902
- var _a = pectin.Dsl.disposeWith(_this), when = _a.when, valueOf = _a.valueOf, chain = _a.chain;
903
- var binding = new pectin.Binding.Identity(_this.formValueModel, _this.componentListModel);
904
- var inExternalChange = valueOf.any(_this.setValueIsInProgress, chain(binding.direction).equals(pectin.Binding.Direction.RIGHT)).areTruthy();
905
- when(_this.componentListModel).changes(function (is, was) {
906
- _this.valueChange.emit(is);
907
- _this.onValueEditedListeners.fire(function (l) { return l(is, was); });
908
- }, {
909
- initialValue: 'ignore',
910
- // we never fire events during an external changes to the value. This allows
911
- // the component to behave when used in the conventional angular
912
- // fashion, i.e. [(value)]="..."
913
- unless: inExternalChange
914
- });
915
- pectin.DebugContext.tag(_this.formValueModel, _this.constructor.name + ".formValueModel");
870
+ _this.inputModel = _this.registerDisposable(new pectin.Form.DelegatingListModel());
916
871
  return _this;
917
872
  }
918
- Object.defineProperty(AbstractListInputComponent.prototype, "value", {
919
- // We add support for simple direct display of values by allowing components to be used
920
- // by `component.value = ...` This use of the component without a value model in tables
921
- // and the like.
922
- set: function (value) {
923
- var _this = this;
924
- this.setValueIsInProgress.whileTrue(function () {
925
- if (!_this.listHolder) {
926
- _this.listHolder = new pectin.MutableListModel(value);
927
- _this.listModel = _this.listHolder;
928
- }
929
- else {
930
- _this.listHolder.value = value;
931
- }
932
- });
933
- },
934
- enumerable: true,
935
- configurable: true
936
- });
937
- __decorate([
938
- core.Input(), pectin.TrackExternal({ delegateTo: 'formValueModel' }),
939
- __metadata("design:type", Object)
940
- ], AbstractListInputComponent.prototype, "listModel", void 0);
941
- __decorate([
942
- core.Input(),
943
- __metadata("design:type", Array),
944
- __metadata("design:paramtypes", [Array])
945
- ], AbstractListInputComponent.prototype, "value", null);
946
- __decorate([
947
- core.Output(),
948
- __metadata("design:type", Object)
949
- ], AbstractListInputComponent.prototype, "valueChange", void 0);
950
873
  AbstractListInputComponent = __decorate([
951
- core.Component({ template: '' }),
952
- __metadata("design:paramtypes", [])
874
+ core.Component({ template: '' })
953
875
  ], AbstractListInputComponent);
954
876
  return AbstractListInputComponent;
955
877
  }(AbstractInputComponent));
@@ -969,58 +891,14 @@
969
891
  * gets told it's an Object and can't scan for a base type annotated with @DelegateUsing(..).
970
892
  */
971
893
  // We have to register it as a disposable so it ditches any listeners when we're disposed.
972
- _this.formValueModel = _this.registerDisposable(new pectin.Form.DelegatingValueModel());
973
- _this.setValueInProgress = new pectin.Guard();
974
- _this.componentValueModel = new pectin.MutableValueModel();
975
- _this.valueChange = new core.EventEmitter();
976
- var _a = pectin.Dsl.disposeWith(_this), when = _a.when, chain = _a.chain, valueOf = _a.valueOf;
977
- var binding = new pectin.Binding.Identity(_this.formValueModel, _this.componentValueModel);
978
- var inExternalChange = valueOf.any(_this.setValueInProgress, chain(binding.direction).equals(pectin.Binding.Direction.RIGHT)).areTruthy();
979
- when(_this.componentValueModel).changes(function (is, was) {
980
- _this.valueChange.emit(is);
981
- _this.onValueEditedListeners.fire(function (l) { return l(is, was); });
982
- }, {
983
- initialValue: 'ignore',
984
- // we never fire events during an external set value operation. This allows
985
- // the component to behave when used in the conventional angular
986
- // fashion, i.e. [(value)]="..."
987
- unless: inExternalChange
894
+ _this.inputModel = _this.registerDisposable(new pectin.Form.DelegatingValueModel());
895
+ _this.inputModel.onTransactionStart(function (tx) {
896
+ tx.onRootTransactionFinalised(function () {
897
+ console.log({ changed: tx.hasChanged() });
898
+ });
988
899
  });
989
- pectin.DebugContext.tag(_this.formValueModel, _this.constructor.name + ".formValueModel");
990
900
  return _this;
991
901
  }
992
- Object.defineProperty(AbstractValueInputComponent.prototype, "value", {
993
- // We add support for simple direct display of values by allowing components to be used
994
- // by `component.value = ...` This use of the component without a value model in tables
995
- // and the like.
996
- set: function (value) {
997
- var _this = this;
998
- this.setValueInProgress.whileTrue(function () {
999
- if (!_this.plainValueHolder) {
1000
- _this.plainValueHolder = new pectin.MutableValueModel(value);
1001
- _this.valueModel = _this.plainValueHolder;
1002
- }
1003
- else {
1004
- _this.plainValueHolder.value = value;
1005
- }
1006
- });
1007
- },
1008
- enumerable: true,
1009
- configurable: true
1010
- });
1011
- __decorate([
1012
- core.Input(), pectin.TrackExternal({ delegateTo: 'formValueModel' }),
1013
- __metadata("design:type", Object)
1014
- ], AbstractValueInputComponent.prototype, "valueModel", void 0);
1015
- __decorate([
1016
- core.Input(),
1017
- __metadata("design:type", Object),
1018
- __metadata("design:paramtypes", [Object])
1019
- ], AbstractValueInputComponent.prototype, "value", null);
1020
- __decorate([
1021
- core.Output(),
1022
- __metadata("design:type", Object)
1023
- ], AbstractValueInputComponent.prototype, "valueChange", void 0);
1024
902
  AbstractValueInputComponent = __decorate([
1025
903
  core.Component({ template: '' }),
1026
904
  __metadata("design:paramtypes", [])
@@ -1028,85 +906,20 @@
1028
906
  return AbstractValueInputComponent;
1029
907
  }(AbstractInputComponent));
1030
908
 
1031
- /**
1032
- * Using templates (not only supported for nil values:
1033
- * <aup-autocomplete-input [valueModel]="myModel" [options]="myOptions">
1034
- * <ng-template #nilOptionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
1035
- * </aup-autocomplete-input>
1036
- */
1037
- var AutocompleteInputComponent = /** @class */ (function (_super) {
1038
- __extends(AutocompleteInputComponent, _super);
1039
- function AutocompleteInputComponent() {
1040
- var _this = _super.call(this) || this;
1041
- _this.filterValue = new pectin.MutableValueModel();
1042
- _this.optionLabelFormat = function (option) { return (option && _this.optionLabel) ? option[_this.optionLabel] : option; };
1043
- var _a = pectin.Dsl.disposeWith(_this), chain = _a.chain, valueOf = _a.valueOf, before = _a.before, when = _a.when, after = _a.after, observe = _a.observe, switchOn = _a.switchOn;
1044
- var lowerCaseFilterValue = chain(_this.filterValue)
1045
- .map(function (v) { return ___default__default.isString(v) ? v.toLowerCase() : ''; });
1046
- _this.filteredOptions = chain(_this.optionsModel)
1047
- .select(function (option) {
1048
- return ___default__default.isEmpty(_this.filterValue.value) || _this.optionLabelFormat(option).toString().toLowerCase().includes(lowerCaseFilterValue.value);
1049
- }, { dependsOn: lowerCaseFilterValue });
1050
- return _this;
1051
- }
1052
- AutocompleteInputComponent.prototype.ngOnInit = function () {
1053
- };
1054
- AutocompleteInputComponent.prototype.formatOption = function (option) {
1055
- return this.optionLabelFormat(option);
1056
- };
1057
- AutocompleteInputComponent.prototype.updateFilter = function ($event) {
1058
- this.filterValue.value = $event;
1059
- };
1060
- AutocompleteInputComponent.prototype.onSelect = function ($event) {
1061
- this.valueModel.value = $event.option.value;
1062
- };
1063
- __decorate([
1064
- core.Input(), pectin.TrackExternal(),
1065
- __metadata("design:type", pectin.ListModel)
1066
- ], AutocompleteInputComponent.prototype, "optionsModel", void 0);
1067
- __decorate([
1068
- core.Input(), pectin.StoreInListModel('optionsModel'),
1069
- __metadata("design:type", Array)
1070
- ], AutocompleteInputComponent.prototype, "options", void 0);
1071
- __decorate([
1072
- core.Input(),
1073
- __metadata("design:type", Object)
1074
- ], AutocompleteInputComponent.prototype, "optionLabel", void 0);
1075
- __decorate([
1076
- core.Input(),
1077
- __metadata("design:type", Boolean)
1078
- ], AutocompleteInputComponent.prototype, "allowNil", void 0);
1079
- __decorate([
1080
- core.ContentChild('nilOptionTemplate'),
1081
- __metadata("design:type", core.TemplateRef)
1082
- ], AutocompleteInputComponent.prototype, "nilOptionTemplateRef", void 0);
1083
- __decorate([
1084
- core.Input(),
1085
- __metadata("design:type", Function)
1086
- ], AutocompleteInputComponent.prototype, "optionLabelFormat", void 0);
1087
- AutocompleteInputComponent = __decorate([
1088
- core.Component({
1089
- selector: 'aup-autocomplete-input',
1090
- 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]=\"componentValueModel.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\" (optionSelected)=\"onSelect($event)\">\n <mat-option *ngFor=\"let option of filteredOptions.value; let i = index\"\n [value]=\"option\"\n >{{formatOption(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",
1091
- styles: [":host{display:inline-block}mat-form-field{width:100%}"]
1092
- }),
1093
- __metadata("design:paramtypes", [])
1094
- ], AutocompleteInputComponent);
1095
- return AutocompleteInputComponent;
1096
- }(AbstractValueInputComponent));
1097
-
1098
909
  var CheckboxInputComponent = /** @class */ (function (_super) {
1099
910
  __extends(CheckboxInputComponent, _super);
1100
911
  function CheckboxInputComponent() {
1101
912
  var _this = _super.call(this) || this;
1102
- // @Input() @TrackExternal({ delegateTo: 'inputModel' })
1103
- // valueModel: Form.ValueModelBase<boolean> | IMutableValueModel<boolean>;
1104
913
  _this.color = 'accent';
1105
914
  _this.labelPosition = 'after';
1106
915
  return _this;
1107
916
  }
1108
917
  CheckboxInputComponent.prototype.ngOnInit = function () {
1109
918
  };
919
+ __decorate([
920
+ core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
921
+ __metadata("design:type", Object)
922
+ ], CheckboxInputComponent.prototype, "valueModel", void 0);
1110
923
  __decorate([
1111
924
  core.Input(),
1112
925
  __metadata("design:type", String)
@@ -1118,73 +931,28 @@
1118
931
  CheckboxInputComponent = __decorate([
1119
932
  core.Component({
1120
933
  selector: 'aup-checkbox-input',
1121
- template: "<!-- TODO: add focus binding -->\n<mat-checkbox\n [(ngModel)]=\"componentValueModel.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",
1122
- 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}"]
934
+ template: "<!-- TODO: add focus binding -->\n<mat-checkbox\n [(ngModel)]=\"valueModel.value\"\n [color]=\"color\"\n [labelPosition]=\"labelPosition\"\n [disabled]=\"!isEnabled()\"\n>{{label}}</mat-checkbox>\n<mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n<mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n",
935
+ styles: [":host{display:inline-flex;flex-direction:column;margin-top:24px;margin-bottom:16px}mat-error,mat-hint{margin-top:4px;margin-left:24px;font-size:12px;font-weight:400;line-height:13.5px}"]
1123
936
  }),
1124
937
  __metadata("design:paramtypes", [])
1125
938
  ], CheckboxInputComponent);
1126
939
  return CheckboxInputComponent;
1127
940
  }(AbstractValueInputComponent));
1128
941
 
1129
- /**
1130
- * Using templates:
1131
- * <aup-multiple-select-input [valueModel]="myModel" [options]="myOptions">
1132
- * <ng-template #optionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
1133
- * <ng-template #nilOptionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
1134
- * </aup-multiple-select_input>
1135
- */
1136
- var MultipleSelectInputComponent = /** @class */ (function (_super) {
1137
- __extends(MultipleSelectInputComponent, _super);
1138
- function MultipleSelectInputComponent() {
1139
- var _this = _super.call(this) || this;
1140
- _this.optionLabelFormat = function (option) { return (option && _this.optionLabel) ? option[_this.optionLabel] : option; };
1141
- return _this;
1142
- }
1143
- MultipleSelectInputComponent.prototype.ngOnInit = function () {
1144
- };
1145
- __decorate([
1146
- core.Input(), pectin.TrackExternal(),
1147
- __metadata("design:type", pectin.ListModel)
1148
- ], MultipleSelectInputComponent.prototype, "optionsModel", void 0);
1149
- __decorate([
1150
- core.Input(), pectin.StoreInListModel('optionsModel'),
1151
- __metadata("design:type", Array)
1152
- ], MultipleSelectInputComponent.prototype, "options", void 0);
1153
- __decorate([
1154
- core.Input(),
1155
- __metadata("design:type", Object)
1156
- ], MultipleSelectInputComponent.prototype, "optionLabel", void 0);
1157
- __decorate([
1158
- core.ContentChild('optionTemplate'),
1159
- __metadata("design:type", core.TemplateRef)
1160
- ], MultipleSelectInputComponent.prototype, "optionTemplateRef", void 0);
1161
- __decorate([
1162
- core.Input(),
1163
- __metadata("design:type", Function)
1164
- ], MultipleSelectInputComponent.prototype, "optionLabelFormat", void 0);
1165
- MultipleSelectInputComponent = __decorate([
1166
- core.Component({
1167
- selector: 'aup-multiple-select-input',
1168
- 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)]=\"componentListModel.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",
1169
- styles: [":host{display:inline-block}mat-form-field{width:100%}"]
1170
- }),
1171
- __metadata("design:paramtypes", [])
1172
- ], MultipleSelectInputComponent);
1173
- return MultipleSelectInputComponent;
1174
- }(AbstractListInputComponent));
1175
-
1176
942
  var NumberInputComponent = /** @class */ (function (_super) {
1177
943
  __extends(NumberInputComponent, _super);
1178
944
  function NumberInputComponent() {
1179
945
  var _this = _super.call(this) || this;
1180
- // @Input() @TrackExternal({ delegateTo: 'inputModel' })
1181
- // valueModel: Form.ValueModelBase<number> | IMutableValueModel<number>;
1182
946
  _this.min = Number.MIN_SAFE_INTEGER;
1183
947
  _this.max = Number.MAX_SAFE_INTEGER;
1184
948
  return _this;
1185
949
  }
1186
950
  NumberInputComponent.prototype.ngOnInit = function () {
1187
951
  };
952
+ __decorate([
953
+ core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
954
+ __metadata("design:type", Object)
955
+ ], NumberInputComponent.prototype, "valueModel", void 0);
1188
956
  __decorate([
1189
957
  core.Input(),
1190
958
  __metadata("design:type", Object)
@@ -1196,8 +964,8 @@
1196
964
  NumberInputComponent = __decorate([
1197
965
  core.Component({
1198
966
  selector: 'aup-number-input',
1199
- 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)]=\"componentValueModel.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",
1200
- styles: [""]
967
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"number\"\n matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [min]=\"min\"\n [max]=\"max\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
968
+ styles: [":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}:host-context(aup-table-cell-renderer) mat-form-field div.mat-form-field-infix{width:auto}"]
1201
969
  }),
1202
970
  __metadata("design:paramtypes", [])
1203
971
  ], NumberInputComponent);
@@ -1206,31 +974,26 @@
1206
974
 
1207
975
  var PasswordInputComponent = /** @class */ (function (_super) {
1208
976
  __extends(PasswordInputComponent, _super);
1209
- // @Input() @TrackExternal({ delegateTo: 'inputModel' })
1210
- // valueModel: Form.ValueModelBase<string> | IMutableValueModel<string>;
1211
977
  function PasswordInputComponent() {
1212
978
  return _super.call(this) || this;
1213
979
  }
1214
980
  PasswordInputComponent.prototype.ngOnInit = function () {
1215
981
  };
982
+ __decorate([
983
+ core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
984
+ __metadata("design:type", Object)
985
+ ], PasswordInputComponent.prototype, "valueModel", void 0);
1216
986
  PasswordInputComponent = __decorate([
1217
987
  core.Component({
1218
988
  selector: 'aup-password-input',
1219
- 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)]=\"componentValueModel.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",
1220
- styles: [""]
989
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"password\"\n matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n",
990
+ styles: [":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}:host-context(aup-table-cell-renderer) mat-form-field div.mat-form-field-infix{width:auto}"]
1221
991
  }),
1222
992
  __metadata("design:paramtypes", [])
1223
993
  ], PasswordInputComponent);
1224
994
  return PasswordInputComponent;
1225
995
  }(AbstractValueInputComponent));
1226
996
 
1227
- /**
1228
- * Using templates:
1229
- * <aup-select-input [valueModel]="myModel" [options]="myOptions">
1230
- * <ng-template #optionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
1231
- * <ng-template #nilOptionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
1232
- * </aup-select_input>
1233
- */
1234
997
  var SelectInputComponent = /** @class */ (function (_super) {
1235
998
  __extends(SelectInputComponent, _super);
1236
999
  function SelectInputComponent() {
@@ -1240,6 +1003,10 @@
1240
1003
  }
1241
1004
  SelectInputComponent.prototype.ngOnInit = function () {
1242
1005
  };
1006
+ __decorate([
1007
+ core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
1008
+ __metadata("design:type", Object)
1009
+ ], SelectInputComponent.prototype, "valueModel", void 0);
1243
1010
  __decorate([
1244
1011
  core.Input(), pectin.TrackExternal(),
1245
1012
  __metadata("design:type", pectin.ListModel)
@@ -1271,7 +1038,7 @@
1271
1038
  SelectInputComponent = __decorate([
1272
1039
  core.Component({
1273
1040
  selector: 'aup-select-input',
1274
- template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"componentValueModel.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",
1041
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-option *ngIf=\"allowNil\">{{placeholder}}</mat-option>\n <mat-option *ngFor=\"let option of optionsModel.value; let i = index\" [value]=\"option\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{optionLabelFormat(option)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: option, index: i }\"\n >\n </ng-container>\n </mat-option>\n </mat-select>\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
1275
1042
  styles: [":host{display:inline-block}mat-form-field{width:100%}"]
1276
1043
  }),
1277
1044
  __metadata("design:paramtypes", [])
@@ -1285,13 +1052,17 @@
1285
1052
  var _this = _super.call(this) || this;
1286
1053
  var _a = pectin.Dsl.disposeWith(_this), chain = _a.chain, valueOf = _a.valueOf, before = _a.before, when = _a.when, after = _a.after, observe = _a.observe, switchOn = _a.switchOn;
1287
1054
  _this.clearCommand = pectin.Command.create(function () {
1288
- _this.componentValueModel.value = null;
1055
+ _this.valueModel.value = null;
1289
1056
  });
1290
- _this.clearCommand.disableWhile(chain.stringValue(_this.componentValueModel).isBlank());
1057
+ _this.clearCommand.disableWhile(chain.stringValue(_this.valueModel).isBlank());
1291
1058
  return _this;
1292
1059
  }
1293
1060
  StringInputComponent.prototype.ngOnInit = function () {
1294
1061
  };
1062
+ __decorate([
1063
+ core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
1064
+ __metadata("design:type", Object)
1065
+ ], StringInputComponent.prototype, "valueModel", void 0);
1295
1066
  __decorate([
1296
1067
  core.Input(), pectin.TrackExternal({ defaultValue: false }),
1297
1068
  __metadata("design:type", pectin.ValueModel)
@@ -1303,8 +1074,8 @@
1303
1074
  StringInputComponent = __decorate([
1304
1075
  core.Component({
1305
1076
  selector: 'aup-string-input',
1306
- template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"componentValueModel.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",
1307
- styles: ["button[disabled]{visibility:hidden}"]
1077
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n <button mat-button mat-icon-button matSuffix *ngIf=\"enableClear\" [pectinCommand]=\"clearCommand\">\n <aup-icon icon=\"mat:close\"></aup-icon>\n </button>\n</mat-form-field>\n\n",
1078
+ styles: [":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}:host-context(aup-table-cell-renderer) mat-form-field div.mat-form-field-infix{width:auto}button[disabled]{visibility:hidden}"]
1308
1079
  }),
1309
1080
  __metadata("design:paramtypes", [])
1310
1081
  ], StringInputComponent);
@@ -1315,14 +1086,16 @@
1315
1086
  __extends(TextInputComponent, _super);
1316
1087
  function TextInputComponent() {
1317
1088
  var _this = _super.call(this) || this;
1318
- // @Input() @TrackExternal({ delegateTo: 'inputModel' })
1319
- // valueModel: Form.ValueModelBase<string> | IMutableValueModel<string>;
1320
1089
  _this.rows = 2;
1321
1090
  return _this;
1322
1091
  // const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
1323
1092
  }
1324
1093
  TextInputComponent.prototype.ngOnInit = function () {
1325
1094
  };
1095
+ __decorate([
1096
+ core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
1097
+ __metadata("design:type", Object)
1098
+ ], TextInputComponent.prototype, "valueModel", void 0);
1326
1099
  __decorate([
1327
1100
  core.Input(),
1328
1101
  __metadata("design:type", Object)
@@ -1334,56 +1107,14 @@
1334
1107
  TextInputComponent = __decorate([
1335
1108
  core.Component({
1336
1109
  selector: 'aup-text-input',
1337
- template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <textarea matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"componentValueModel.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",
1338
- styles: ["button[disabled]{visibility:hidden}textarea{overflow:auto}"]
1110
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <textarea matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [rows]=\"rows\"\n [cols]=\"cols\"\n >\n </textarea>\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n",
1111
+ styles: [":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}:host-context(aup-table-cell-renderer) mat-form-field div.mat-form-field-infix{width:auto}button[disabled]{visibility:hidden}textarea{overflow:auto}"]
1339
1112
  }),
1340
1113
  __metadata("design:paramtypes", [])
1341
1114
  ], TextInputComponent);
1342
1115
  return TextInputComponent;
1343
1116
  }(AbstractValueInputComponent));
1344
1117
 
1345
- var IconComponent = /** @class */ (function () {
1346
- function IconComponent() {
1347
- }
1348
- Object.defineProperty(IconComponent.prototype, "icon", {
1349
- get: function () {
1350
- return this._icon;
1351
- },
1352
- set: function (iconName) {
1353
- this._icon = iconName;
1354
- if (!iconName) {
1355
- this.errorMessage = 'icon is nil';
1356
- this.prefix = undefined;
1357
- return;
1358
- }
1359
- var colonIndex = iconName.indexOf(':');
1360
- if (colonIndex > 0) {
1361
- this.prefix = this.icon.slice(0, colonIndex);
1362
- this.suffix = this.icon.slice(colonIndex + 1);
1363
- }
1364
- if (this.prefix) {
1365
- this.errorMessage = "Unknown icon \"" + iconName + "\"";
1366
- }
1367
- this.errorMessage = "Unknown icon prefix \"" + this.prefix + "\"";
1368
- },
1369
- enumerable: true,
1370
- configurable: true
1371
- });
1372
- __decorate([
1373
- core.Input(),
1374
- __metadata("design:type", String),
1375
- __metadata("design:paramtypes", [String])
1376
- ], IconComponent.prototype, "icon", null);
1377
- IconComponent = __decorate([
1378
- core.Component({
1379
- selector: 'aup-icon',
1380
- 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",
1381
- 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}"]
1382
- })
1383
- ], IconComponent);
1384
- return IconComponent;
1385
- }());
1386
-
1387
1118
  var NoopComponent = /** @class */ (function () {
1388
1119
  function NoopComponent() {
1389
1120
  }
@@ -1594,7 +1325,6 @@
1594
1325
  typescriptUtilities.assert.isTruthy(host);
1595
1326
  host[HEADER_CELL_RENDERER_PORTAL] = new portal.ComponentPortal(this.componentType);
1596
1327
  };
1597
- // @Trace()
1598
1328
  CellHeaderPortalRef.prototype.onPortalAttached = function (host, portalComponent) {
1599
1329
  this.initialiseHeader(portalComponent, host.column);
1600
1330
  };
@@ -1618,15 +1348,13 @@
1618
1348
  ComponentCellRendererPortalRef.prototype.initialiseHost = function (host, columnModel) {
1619
1349
  host[CELL_RENDERER_PORTAL] = new portal.ComponentPortal(this.componentType);
1620
1350
  };
1621
- // @Trace()
1622
1351
  ComponentCellRendererPortalRef.prototype.onPortalAttached = function (host, portalComponent) {
1623
1352
  host[PORTAL_RENDERER_COMPONENT] = portalComponent;
1624
- this.updateComponent(portalComponent, host.getRowData(), true);
1353
+ this.updateComponent(portalComponent, host.getRowData());
1625
1354
  };
1626
- // @Trace()
1627
1355
  ComponentCellRendererPortalRef.prototype.pushState = function (host) {
1628
1356
  if (host[PORTAL_RENDERER_COMPONENT]) {
1629
- this.updateComponent(host[PORTAL_RENDERER_COMPONENT], host.getRowData(), false);
1357
+ this.updateComponent(host[PORTAL_RENDERER_COMPONENT], host.getRowData());
1630
1358
  }
1631
1359
  };
1632
1360
  return ComponentCellRendererPortalRef;
@@ -1668,7 +1396,6 @@
1668
1396
  TemplateCellRendererPortalRef.prototype.onPortalAttached = function (host, portalComponent) {
1669
1397
  // don't care
1670
1398
  };
1671
- // @Trace()
1672
1399
  TemplateCellRendererPortalRef.prototype.pushState = function (host) {
1673
1400
  host[CELL_RENDERER_PORTAL] = this.createPortal(host.getRowData());
1674
1401
  host.fillCell = this.fillCell;
@@ -1950,37 +1677,24 @@
1950
1677
  }());
1951
1678
  var PropertyColumnModel = /** @class */ (function (_super) {
1952
1679
  __extends(PropertyColumnModel, _super);
1953
- function PropertyColumnModel(id, property, defaults) {
1954
- var _this = _super.call(this, id, defaults) || this;
1680
+ function PropertyColumnModel(property, defaults) {
1681
+ var _this = _super.call(this, property.toString(), defaults) || this;
1955
1682
  _this.property = property;
1956
1683
  _this._format = function (value) { return value; };
1957
1684
  _this.cellRenderer(DefaultCellRendererComponent);
1958
1685
  return _this;
1959
1686
  }
1960
- PropertyColumnModel.prototype.cellRenderer = function (componentType, onComponentInitOrOptions) {
1687
+ PropertyColumnModel.prototype.cellRenderer = function (componentType) {
1961
1688
  var _this = this;
1962
- this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData, firstTime) {
1963
- if (firstTime) {
1964
- if (___default__default.isFunction(onComponentInitOrOptions)) {
1965
- onComponentInitOrOptions(component);
1966
- }
1967
- else {
1968
- if (___default__default.isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onComponentInit)) {
1969
- onComponentInitOrOptions.onComponentInit(component);
1970
- }
1971
- }
1972
- }
1689
+ this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData) {
1973
1690
  component.value = _this._format(rowData.row[_this.property]);
1974
- if (!___default__default.isFunction(onComponentInitOrOptions) && ___default__default.isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onRowUpdate)) {
1975
- onComponentInitOrOptions.onRowUpdate(component, rowData.row);
1976
- }
1977
1691
  }));
1978
1692
  return this;
1979
1693
  };
1980
- PropertyColumnModel.prototype.cellEditor = function (editor, validatorsOrInitialiser, onComponentInit) {
1694
+ PropertyColumnModel.prototype.cellEditor = function (editor, validatorsOrInitialiser, initialiseComponent) {
1981
1695
  var _this = this;
1982
1696
  var validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
1983
- var initialiser = ___default__default.isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : onComponentInit;
1697
+ var initialiser = ___default__default.isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : initialiseComponent;
1984
1698
  this.configureCellEditor(new CellEditorPortalRef(editor, function (component, editSession) {
1985
1699
  var formValueModel = editSession.form.pluck(_this.property);
1986
1700
  if (validators) {
@@ -2005,8 +1719,8 @@
2005
1719
  }(ColumnModel));
2006
1720
  var ListPropertyColumnModel = /** @class */ (function (_super) {
2007
1721
  __extends(ListPropertyColumnModel, _super);
2008
- function ListPropertyColumnModel(id, property, defaults) {
2009
- var _this = _super.call(this, id, defaults) || this;
1722
+ function ListPropertyColumnModel(property, defaults) {
1723
+ var _this = _super.call(this, property.toString(), defaults) || this;
2010
1724
  _this.property = property;
2011
1725
  _this._format = function (value) { return value.map(function (v) { return v === null || v === void 0 ? void 0 : v.toString(); }).join(', '); };
2012
1726
  _this.cellRenderer(DefaultCellRendererComponent);
@@ -2053,23 +1767,10 @@
2053
1767
  _this.cellRenderer(DefaultCellRendererComponent);
2054
1768
  return _this;
2055
1769
  }
2056
- CustomValueColumnModel.prototype.cellRenderer = function (componentType, onComponentInitOrOptions) {
1770
+ CustomValueColumnModel.prototype.cellRenderer = function (componentType) {
2057
1771
  var _this = this;
2058
- this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData, firstTime) {
2059
- if (firstTime) {
2060
- if (___default__default.isFunction(onComponentInitOrOptions)) {
2061
- onComponentInitOrOptions(component);
2062
- }
2063
- else {
2064
- if (___default__default.isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onComponentInit)) {
2065
- onComponentInitOrOptions.onComponentInit(component);
2066
- }
2067
- }
2068
- }
1772
+ this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData) {
2069
1773
  component.value = _this.getValue(rowData.row);
2070
- if (!___default__default.isFunction(onComponentInitOrOptions) && ___default__default.isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onRowUpdate)) {
2071
- onComponentInitOrOptions.onRowUpdate(component, rowData.row);
2072
- }
2073
1774
  }));
2074
1775
  return this;
2075
1776
  };
@@ -2253,7 +1954,7 @@
2253
1954
  this.dataSource = chain(this.sourceOfTruth).replaceAll(this.rowsBeingEdited);
2254
1955
  this.firstEditableColumn = chain(this.columns).select(function (c) { return c.hasEditorPortal(); }).first();
2255
1956
  this.hasColumnsWithRowSelectionExplicitlyEnabled = chain(this._columns).findIndex(function (column) { return column.isRowSelectionExplicitlyEnabled(); }).isGreaterThanOrEqualTo(0);
2256
- this.addRowClass('enable-hover', function () { return _this.isRowSelectionEnabled(); });
1957
+ this.addRowClass("enable-hover", function () { return _this.isRowSelectionEnabled(); });
2257
1958
  }
2258
1959
  TableModel_1 = TableModel;
2259
1960
  TableModel.fromList = function (sourceOfTruth, builder) {
@@ -2281,11 +1982,11 @@
2281
1982
  enumerable: true,
2282
1983
  configurable: true
2283
1984
  });
2284
- TableModel.prototype.pluck = function (property, options) {
2285
- return this.addColumn(new PropertyColumnModel((options === null || options === void 0 ? void 0 : options.columnId) || property.toString(), property, this));
1985
+ TableModel.prototype.pluck = function (property) {
1986
+ return this.addColumn(new PropertyColumnModel(property, this));
2286
1987
  };
2287
- TableModel.prototype.pluckList = function (property, options) {
2288
- return this.addColumn(new ListPropertyColumnModel((options === null || options === void 0 ? void 0 : options.columnId) || property.toString(), property, this));
1988
+ TableModel.prototype.pluckList = function (property) {
1989
+ return this.addColumn(new ListPropertyColumnModel(property, this));
2289
1990
  };
2290
1991
  TableModel.prototype.addSelectionColumn = function (selectionModel) {
2291
1992
  pectin.assert.isNil(this.selectionColumnModel);
@@ -2299,9 +2000,6 @@
2299
2000
  TableModel.prototype.addCustomColumn = function (columnId, dataAccessor) {
2300
2001
  return this.addColumn(new CustomValueColumnModel(columnId, this, dataAccessor));
2301
2002
  };
2302
- TableModel.prototype.addComponentColumn = function (columnId, component, onComponentInitOrOptions) {
2303
- return this.addColumn(new CustomValueColumnModel(columnId, this, function (row) { return row; })).cellRenderer(component, onComponentInitOrOptions);
2304
- };
2305
2003
  TableModel.prototype.addTemplateColumn = function (columnId) {
2306
2004
  return this.addColumn(new CustomTemplateColumnModel(columnId, this));
2307
2005
  };
@@ -2721,6 +2419,100 @@
2721
2419
  return VerticalFocusContainerComponent;
2722
2420
  }(FocusContainerComponent));
2723
2421
 
2422
+ var MultipleSelectInputComponent = /** @class */ (function (_super) {
2423
+ __extends(MultipleSelectInputComponent, _super);
2424
+ function MultipleSelectInputComponent() {
2425
+ var _this = _super.call(this) || this;
2426
+ _this.optionLabelFormat = function (option) { return (option && _this.optionLabel) ? option[_this.optionLabel] : option; };
2427
+ return _this;
2428
+ }
2429
+ MultipleSelectInputComponent.prototype.ngOnInit = function () {
2430
+ };
2431
+ __decorate([
2432
+ core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
2433
+ __metadata("design:type", Object)
2434
+ ], MultipleSelectInputComponent.prototype, "listModel", void 0);
2435
+ __decorate([
2436
+ core.Input(), pectin.TrackExternal(),
2437
+ __metadata("design:type", pectin.ListModel)
2438
+ ], MultipleSelectInputComponent.prototype, "optionsModel", void 0);
2439
+ __decorate([
2440
+ core.Input(), pectin.StoreInListModel('optionsModel'),
2441
+ __metadata("design:type", Array)
2442
+ ], MultipleSelectInputComponent.prototype, "options", void 0);
2443
+ __decorate([
2444
+ core.Input(),
2445
+ __metadata("design:type", Object)
2446
+ ], MultipleSelectInputComponent.prototype, "optionLabel", void 0);
2447
+ __decorate([
2448
+ core.Input(),
2449
+ __metadata("design:type", Boolean)
2450
+ ], MultipleSelectInputComponent.prototype, "allowNil", void 0);
2451
+ __decorate([
2452
+ core.ContentChild('optionTemplate'),
2453
+ __metadata("design:type", core.TemplateRef)
2454
+ ], MultipleSelectInputComponent.prototype, "optionTemplateRef", void 0);
2455
+ __decorate([
2456
+ core.ContentChild('nilOptionTemplate'),
2457
+ __metadata("design:type", core.TemplateRef)
2458
+ ], MultipleSelectInputComponent.prototype, "nilOptionTemplateRef", void 0);
2459
+ __decorate([
2460
+ core.Input(),
2461
+ __metadata("design:type", Function)
2462
+ ], MultipleSelectInputComponent.prototype, "optionLabelFormat", void 0);
2463
+ MultipleSelectInputComponent = __decorate([
2464
+ core.Component({
2465
+ selector: 'aup-multiple-select-input',
2466
+ 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",
2467
+ styles: [":host{display:inline-block}mat-form-field{width:100%}"]
2468
+ }),
2469
+ __metadata("design:paramtypes", [])
2470
+ ], MultipleSelectInputComponent);
2471
+ return MultipleSelectInputComponent;
2472
+ }(AbstractListInputComponent));
2473
+
2474
+ var IconComponent = /** @class */ (function () {
2475
+ function IconComponent() {
2476
+ }
2477
+ Object.defineProperty(IconComponent.prototype, "icon", {
2478
+ get: function () {
2479
+ return this._icon;
2480
+ },
2481
+ set: function (iconName) {
2482
+ this._icon = iconName;
2483
+ if (!iconName) {
2484
+ this.errorMessage = 'icon is nil';
2485
+ this.prefix = undefined;
2486
+ return;
2487
+ }
2488
+ var colonIndex = iconName.indexOf(':');
2489
+ if (colonIndex > 0) {
2490
+ this.prefix = this.icon.slice(0, colonIndex);
2491
+ this.suffix = this.icon.slice(colonIndex + 1);
2492
+ }
2493
+ if (this.prefix) {
2494
+ this.errorMessage = "Unknown icon \"" + iconName + "\"";
2495
+ }
2496
+ this.errorMessage = "Unknown icon prefix \"" + this.prefix + "\"";
2497
+ },
2498
+ enumerable: true,
2499
+ configurable: true
2500
+ });
2501
+ __decorate([
2502
+ core.Input(),
2503
+ __metadata("design:type", String),
2504
+ __metadata("design:paramtypes", [String])
2505
+ ], IconComponent.prototype, "icon", null);
2506
+ IconComponent = __decorate([
2507
+ core.Component({
2508
+ selector: 'aup-icon',
2509
+ 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",
2510
+ 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}"]
2511
+ })
2512
+ ], IconComponent);
2513
+ return IconComponent;
2514
+ }());
2515
+
2724
2516
  var ComponentsModule = /** @class */ (function () {
2725
2517
  function ComponentsModule(faIconLibrary) {
2726
2518
  faIconLibrary.addIconPacks(freeSolidSvgIcons.fas);
@@ -2739,8 +2531,6 @@
2739
2531
  TextInputComponent,
2740
2532
  PasswordInputComponent,
2741
2533
  SelectInputComponent,
2742
- MultipleSelectInputComponent,
2743
- AutocompleteInputComponent,
2744
2534
  CheckboxInputComponent,
2745
2535
  ScrollContainerComponent,
2746
2536
  NoopComponent,
@@ -2760,6 +2550,7 @@
2760
2550
  SelectHeaderCellRendererComponent,
2761
2551
  DefaultHeaderCellRendererComponent,
2762
2552
  TableHeaderCellRendererComponent,
2553
+ MultipleSelectInputComponent,
2763
2554
  IconComponent,
2764
2555
  SectionHeaderComponent
2765
2556
  ],
@@ -2779,8 +2570,7 @@
2779
2570
  portal.PortalModule,
2780
2571
  scrolling.CdkScrollableModule,
2781
2572
  angularFontawesome.FontAwesomeModule,
2782
- tooltip.MatTooltipModule,
2783
- autocomplete.MatAutocompleteModule
2573
+ tooltip.MatTooltipModule
2784
2574
  ],
2785
2575
  exports: [
2786
2576
  NumberInputComponent,
@@ -2789,8 +2579,6 @@
2789
2579
  PasswordInputComponent,
2790
2580
  CheckboxInputComponent,
2791
2581
  SelectInputComponent,
2792
- MultipleSelectInputComponent,
2793
- AutocompleteInputComponent,
2794
2582
  ScrollContainerComponent,
2795
2583
  NoopComponent,
2796
2584
  SwitchCaseComponent,
@@ -2803,23 +2591,12 @@
2803
2591
  TableComponent,
2804
2592
  EditRowControls,
2805
2593
  ColumnTemplateDirective,
2594
+ MultipleSelectInputComponent,
2806
2595
  IconComponent,
2807
2596
  SectionHeaderComponent
2808
2597
  ],
2809
2598
  providers: [
2810
- FocusBindingFactory
2811
- // {
2812
- // provide: CELL_EDITOR_REGISTRATION, useValue: {
2813
- // type: 'string',
2814
- // editorClass: StringInputComponent
2815
- // }, multi: true
2816
- // },
2817
- // {
2818
- // provide: CELL_EDITOR_REGISTRATION, useValue: {
2819
- // type: 'number',
2820
- // editorClass: NumberInputComponent
2821
- // }, multi: true
2822
- // }
2599
+ FocusBindingFactory,
2823
2600
  ]
2824
2601
  }),
2825
2602
  __metadata("design:paramtypes", [angularFontawesome.FaIconLibrary])
@@ -3258,7 +3035,6 @@
3258
3035
  ActivityContainerComponent.prototype.registerDisposable = function (disposable) {
3259
3036
  return this.garbage.registerDisposable(disposable);
3260
3037
  };
3261
- // @Trace()
3262
3038
  ActivityContainerComponent.prototype.dispose = function () {
3263
3039
  // TODO: think about auto cancelling any outstanding activity on dispose.
3264
3040
  // See NavigationState.Navigating for a use-case.
@@ -3407,6 +3183,12 @@
3407
3183
  core.ViewChildren(ActivityOutletComponent),
3408
3184
  __metadata("design:type", core.QueryList)
3409
3185
  ], ActivityContainerComponent.prototype, "activityOutlets", void 0);
3186
+ __decorate([
3187
+ pectin.Trace(),
3188
+ __metadata("design:type", Function),
3189
+ __metadata("design:paramtypes", []),
3190
+ __metadata("design:returntype", void 0)
3191
+ ], ActivityContainerComponent.prototype, "dispose", null);
3410
3192
  ActivityContainerComponent = __decorate([
3411
3193
  core.Component({
3412
3194
  selector: 'aup-activity-container',
@@ -3455,7 +3237,7 @@
3455
3237
  }());
3456
3238
 
3457
3239
  var inplaceMonitorCount = 0;
3458
- exports.ɵbw = /** @class */ (function () {
3240
+ exports.ɵbv = /** @class */ (function () {
3459
3241
  function InteractionService(modelInteractionContextFactory) {
3460
3242
  this.modelInteractionContextFactory = modelInteractionContextFactory;
3461
3243
  this.garbage = new pectin.GarbageCollector();
@@ -3600,7 +3382,7 @@
3600
3382
  return ApiAdapter;
3601
3383
  }());
3602
3384
  InteractionService.ApiAdapter = ApiAdapter;
3603
- })(exports.ɵbw || (exports.ɵbw = {}));
3385
+ })(exports.ɵbv || (exports.ɵbv = {}));
3604
3386
 
3605
3387
  var InPlaceInteractionContextComponent = /** @class */ (function (_super) {
3606
3388
  __extends(InPlaceInteractionContextComponent, _super);
@@ -3658,7 +3440,7 @@
3658
3440
  return this.activityContainerComponent.startActivity(activityType, data, options);
3659
3441
  };
3660
3442
  InPlaceInteractionContextComponent.ctorParameters = function () { return [
3661
- { type: exports.ɵbw },
3443
+ { type: exports.ɵbv },
3662
3444
  { type: undefined, decorators: [{ type: core.Inject, args: [tabs.MAT_TABS_CONFIG,] }, { type: core.Optional }] }
3663
3445
  ]; };
3664
3446
  __decorate([
@@ -3676,7 +3458,7 @@
3676
3458
  styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}"]
3677
3459
  }),
3678
3460
  __param(1, core.Inject(tabs.MAT_TABS_CONFIG)), __param(1, core.Optional()),
3679
- __metadata("design:paramtypes", [exports.ɵbw, Object])
3461
+ __metadata("design:paramtypes", [exports.ɵbv, Object])
3680
3462
  ], InPlaceInteractionContextComponent);
3681
3463
  return InPlaceInteractionContextComponent;
3682
3464
  }(DisposableComponent));
@@ -4215,7 +3997,7 @@
4215
3997
  AlertDialogComponent
4216
3998
  ],
4217
3999
  providers: [
4218
- exports.ɵbw
4000
+ exports.ɵbv
4219
4001
  // {
4220
4002
  // provide: MAT_TABS_CONFIG, useValue: { animationDuration: "2s" }
4221
4003
  // }
@@ -4490,7 +4272,7 @@
4490
4272
  pectin.assert.isNil(this.visitModel.value);
4491
4273
  var when = pectin.Dsl.disposeWith(this).when;
4492
4274
  this.visitModel.value = visit;
4493
- pectin.DebugContext.getOrCreate(this.visitModel).tag(this.placeDefinition.component.name + ".visitModel");
4275
+ pectin.DebugContext.get(this.visitModel).tag(this.placeDefinition.component.name + ".visitModel");
4494
4276
  this.placeDefinition.getVisitParameterDefs().forEach(function (parameterDef) { return _this.installBinding(parameterDef); });
4495
4277
  when.valueOf(this.visitModel).changes(function (current, previous) {
4496
4278
  notifyVisitChanged(current, previous);
@@ -5337,7 +5119,7 @@
5337
5119
  return PopStateNavigation;
5338
5120
  }(AbstractPopStateNavigation));
5339
5121
 
5340
- exports.ɵbz = /** @class */ (function () {
5122
+ exports.ɵby = /** @class */ (function () {
5341
5123
  function PlaceHistory() {
5342
5124
  this._archive = new Map();
5343
5125
  this.placeHistoryDepth = 4;
@@ -5474,7 +5256,7 @@
5474
5256
  // }
5475
5257
  //
5476
5258
  // }
5477
- })(exports.ɵbz || (exports.ɵbz = {}));
5259
+ })(exports.ɵby || (exports.ɵby = {}));
5478
5260
 
5479
5261
  exports.UrlSnapshot = /** @class */ (function () {
5480
5262
  // TODO: Update this accept a url Parser so it can be immutable and generate new trees on mutation using toString() are parseUrl.
@@ -5638,6 +5420,75 @@
5638
5420
  return UrlService;
5639
5421
  }());
5640
5422
 
5423
+ var Visit = /** @class */ (function () {
5424
+ function Visit(placeDefinition, visitParameters) {
5425
+ if (visitParameters === void 0) { visitParameters = {}; }
5426
+ this.placeDefinition = placeDefinition;
5427
+ this.visitParameters = visitParameters;
5428
+ }
5429
+ // @Trace()
5430
+ Visit.prototype.getRouteId = function () {
5431
+ return this.placeDefinition.getRouteIdFrom(this);
5432
+ };
5433
+ // @Trace()
5434
+ Visit.prototype.hasRouteId = function () {
5435
+ return !___default.isNil(this.getRouteId());
5436
+ };
5437
+ /**
5438
+ * Returns the value of the place parameter with the specified name. The parameter
5439
+ * name is taken from the `as` option, e.g. {as: 'aCustomName'} otherwise it is the
5440
+ * same as the the ValueModel property name.
5441
+ * @param parameterName the field name of the property model or the `as` option if specified.
5442
+ */
5443
+ Visit.prototype.getParameter = function (parameterName) {
5444
+ return this.visitParameters[parameterName];
5445
+ };
5446
+ // @Trace()
5447
+ Visit.prototype.hasParameter = function (parameterName) {
5448
+ return Object.keys(this.visitParameters).includes(parameterName);
5449
+ };
5450
+ Visit.prototype.replace = function (parameter, value) {
5451
+ var _a;
5452
+ return new Visit(this.placeDefinition, __assign(__assign({}, this.visitParameters), (_a = {}, _a[parameter.name] = value, _a)));
5453
+ };
5454
+ Visit.prototype.mergeRouteParameters = function (routeParams) {
5455
+ var _this = this;
5456
+ // todo: whitelist parameters.
5457
+ var routeParameterKeys = Object.keys(routeParams);
5458
+ var params = {};
5459
+ this.placeDefinition.getVisitParameterDefs().forEach(function (def) {
5460
+ if (def.isRouteId || def.isRouteParameter) {
5461
+ if (routeParameterKeys.includes(def.name)) {
5462
+ params[def.name] = routeParams[def.name];
5463
+ }
5464
+ }
5465
+ else {
5466
+ // copy non route params as is, but only if they already exist otherwise we'll inject nil values and break the
5467
+ // defaults and remember sanitisation process.
5468
+ var value = _this.getParameter(def.name);
5469
+ if (_this.hasParameter(def.name)) {
5470
+ params[def.name] = value;
5471
+ }
5472
+ }
5473
+ });
5474
+ return new Visit(this.placeDefinition, params);
5475
+ };
5476
+ Visit.prototype.hasRoutingChangedFrom = function (other) {
5477
+ var samePlace = other.placeDefinition === this.placeDefinition;
5478
+ var sameRouteParameters = ___default.isEqual(this.placeDefinition.getFormattedRouteParameters(this, true), this.placeDefinition.getFormattedRouteParameters(other, true));
5479
+ return !samePlace || !sameRouteParameters;
5480
+ };
5481
+ Visit.prototype.hasChangedFrom = function (other) {
5482
+ var sameNonRouteParameters = ___default.isEqual(this.placeDefinition.getNonRouteParameters(this), this.placeDefinition.getNonRouteParameters(other));
5483
+ return !sameNonRouteParameters || this.hasRoutingChangedFrom(other);
5484
+ };
5485
+ Visit.prototype.toDebugString = function () {
5486
+ var _this = this;
5487
+ return Object.keys(this.visitParameters).map(function (k) { return k + "=" + _this.visitParameters[k]; }).join(",");
5488
+ };
5489
+ return Visit;
5490
+ }());
5491
+
5641
5492
  var PlaceRouter = /** @class */ (function (_super) {
5642
5493
  __extends(PlaceRouter, _super);
5643
5494
  function PlaceRouter(angularRouter, angularLocation, interactionService, urlService, placeHistory) {
@@ -5833,7 +5684,6 @@
5833
5684
  enumerable: true,
5834
5685
  configurable: true
5835
5686
  });
5836
- // @Trace()
5837
5687
  PlaceRouter.prototype.pushVisitChangesToRoute = function (previous, next) {
5838
5688
  return __awaiter(this, void 0, void 0, function () {
5839
5689
  var _this = this;
@@ -5929,93 +5779,30 @@
5929
5779
  PlaceRouter.ctorParameters = function () { return [
5930
5780
  { type: router.Router },
5931
5781
  { type: common.Location },
5932
- { type: exports.ɵbw },
5782
+ { type: exports.ɵbv },
5933
5783
  { type: UrlService },
5934
- { type: exports.ɵbz }
5784
+ { type: exports.ɵby }
5935
5785
  ]; };
5936
- PlaceRouter.ɵprov = core.ɵɵdefineInjectable({ factory: function PlaceRouter_Factory() { return new PlaceRouter(core.ɵɵinject(router.Router), core.ɵɵinject(common.Location), core.ɵɵinject(exports.ɵbw), core.ɵɵinject(UrlService), core.ɵɵinject(exports.ɵbz)); }, token: PlaceRouter, providedIn: "root" });
5786
+ PlaceRouter.ɵprov = core.ɵɵdefineInjectable({ factory: function PlaceRouter_Factory() { return new PlaceRouter(core.ɵɵinject(router.Router), core.ɵɵinject(common.Location), core.ɵɵinject(exports.ɵbv), core.ɵɵinject(UrlService), core.ɵɵinject(exports.ɵby)); }, token: PlaceRouter, providedIn: "root" });
5787
+ __decorate([
5788
+ pectin.Trace(),
5789
+ __metadata("design:type", Function),
5790
+ __metadata("design:paramtypes", [Visit, Visit]),
5791
+ __metadata("design:returntype", Promise)
5792
+ ], PlaceRouter.prototype, "pushVisitChangesToRoute", null);
5937
5793
  PlaceRouter = __decorate([
5938
5794
  core.Injectable({
5939
5795
  providedIn: 'root'
5940
5796
  }),
5941
5797
  __metadata("design:paramtypes", [router.Router,
5942
5798
  common.Location,
5943
- exports.ɵbw,
5799
+ exports.ɵbv,
5944
5800
  UrlService,
5945
- exports.ɵbz])
5801
+ exports.ɵby])
5946
5802
  ], PlaceRouter);
5947
5803
  return PlaceRouter;
5948
5804
  }(pectin.GarbageCollector));
5949
5805
 
5950
- var Visit = /** @class */ (function () {
5951
- function Visit(placeDefinition, visitParameters) {
5952
- if (visitParameters === void 0) { visitParameters = {}; }
5953
- this.placeDefinition = placeDefinition;
5954
- this.visitParameters = visitParameters;
5955
- }
5956
- // @Trace()
5957
- Visit.prototype.getRouteId = function () {
5958
- return this.placeDefinition.getRouteIdFrom(this);
5959
- };
5960
- // @Trace()
5961
- Visit.prototype.hasRouteId = function () {
5962
- return !___default.isNil(this.getRouteId());
5963
- };
5964
- /**
5965
- * Returns the value of the place parameter with the specified name. The parameter
5966
- * name is taken from the `as` option, e.g. {as: 'aCustomName'} otherwise it is the
5967
- * same as the the ValueModel property name.
5968
- * @param parameterName the field name of the property model or the `as` option if specified.
5969
- */
5970
- Visit.prototype.getParameter = function (parameterName) {
5971
- return this.visitParameters[parameterName];
5972
- };
5973
- // @Trace()
5974
- Visit.prototype.hasParameter = function (parameterName) {
5975
- return Object.keys(this.visitParameters).includes(parameterName);
5976
- };
5977
- Visit.prototype.replace = function (parameter, value) {
5978
- var _a;
5979
- return new Visit(this.placeDefinition, __assign(__assign({}, this.visitParameters), (_a = {}, _a[parameter.name] = value, _a)));
5980
- };
5981
- Visit.prototype.mergeRouteParameters = function (routeParams) {
5982
- var _this = this;
5983
- // todo: whitelist parameters.
5984
- var routeParameterKeys = Object.keys(routeParams);
5985
- var params = {};
5986
- this.placeDefinition.getVisitParameterDefs().forEach(function (def) {
5987
- if (def.isRouteId || def.isRouteParameter) {
5988
- if (routeParameterKeys.includes(def.name)) {
5989
- params[def.name] = routeParams[def.name];
5990
- }
5991
- }
5992
- else {
5993
- // copy non route params as is, but only if they already exist otherwise we'll inject nil values and break the
5994
- // defaults and remember sanitisation process.
5995
- var value = _this.getParameter(def.name);
5996
- if (_this.hasParameter(def.name)) {
5997
- params[def.name] = value;
5998
- }
5999
- }
6000
- });
6001
- return new Visit(this.placeDefinition, params);
6002
- };
6003
- Visit.prototype.hasRoutingChangedFrom = function (other) {
6004
- var samePlace = other.placeDefinition === this.placeDefinition;
6005
- var sameRouteParameters = ___default.isEqual(this.placeDefinition.getFormattedRouteParameters(this, true), this.placeDefinition.getFormattedRouteParameters(other, true));
6006
- return !samePlace || !sameRouteParameters;
6007
- };
6008
- Visit.prototype.hasChangedFrom = function (other) {
6009
- var sameNonRouteParameters = ___default.isEqual(this.placeDefinition.getNonRouteParameters(this), this.placeDefinition.getNonRouteParameters(other));
6010
- return !sameNonRouteParameters || this.hasRoutingChangedFrom(other);
6011
- };
6012
- Visit.prototype.toDebugString = function () {
6013
- var _this = this;
6014
- return Object.keys(this.visitParameters).map(function (k) { return k + "=" + _this.visitParameters[k]; }).join(",");
6015
- };
6016
- return Visit;
6017
- }());
6018
-
6019
5806
  var AUP_PLACE_CONFIG = new core.InjectionToken('AUP_PLACE_CONFIG');
6020
5807
 
6021
5808
  // Freezes the state of the components at the start of the animation.
@@ -7030,7 +6817,8 @@
7030
6817
  binding: null
7031
6818
  };
7032
6819
  var tag = tagPrefix + "(" + prototype.constructor.name + "." + propertyKey.toString() + ")";
7033
- pectin.DebugContext.getOrCreate(mechanics.backingModel).tag(tag);
6820
+ pectin.DebugContext.get(mechanics.backingModel).tag(tag);
6821
+ pectin.Logger.get(mechanics.backingModel).tag(tag);
7034
6822
  Object.defineProperty(prototype, propertyKey, {
7035
6823
  get: function () {
7036
6824
  return mechanics.backingModel;
@@ -7101,7 +6889,6 @@
7101
6889
  exports.AddItemInteractionContextComponent = AddItemInteractionContextComponent;
7102
6890
  exports.AlertDialogComponent = AlertDialogComponent;
7103
6891
  exports.AngularUiPowerupsModule = AngularUiPowerupsModule;
7104
- exports.AutocompleteInputComponent = AutocompleteInputComponent;
7105
6892
  exports.BusyOverlayComponent = BusyOverlayComponent;
7106
6893
  exports.CELL_EDITOR_PORTAL = CELL_EDITOR_PORTAL;
7107
6894
  exports.CELL_RENDERER_PORTAL = CELL_RENDERER_PORTAL;
@@ -7145,7 +6932,7 @@
7145
6932
  exports.InPlaceInteractionContextComponent = InPlaceInteractionContextComponent;
7146
6933
  exports.InteractionContextTriggerFor = InteractionContextTriggerFor;
7147
6934
  exports.InteractionModule = InteractionModule;
7148
- exports.InteractionService = exports.ɵbw;
6935
+ exports.InteractionService = exports.ɵbv;
7149
6936
  exports.InteractionServiceRoutingAdapter = InteractionServiceRoutingAdapter;
7150
6937
  exports.LEFT_RIGHT_PLACE_ANIMATION = LEFT_RIGHT_PLACE_ANIMATION;
7151
6938
  exports.ListPlaceNavComponent = ListPlaceNavComponent;
@@ -7165,7 +6952,7 @@
7165
6952
  exports.PlaceComponentDeactivationHandler = PlaceComponentDeactivationHandler;
7166
6953
  exports.PlaceDefinition = PlaceDefinition;
7167
6954
  exports.PlaceGuard = PlaceGuard;
7168
- exports.PlaceHistory = exports.ɵbz;
6955
+ exports.PlaceHistory = exports.ɵby;
7169
6956
  exports.PlaceModule = PlaceModule;
7170
6957
  exports.PlaceOutletComponent = PlaceOutletComponent;
7171
6958
  exports.PlaceRouter = PlaceRouter;
@@ -7215,51 +7002,50 @@
7215
7002
  exports.ɵ0 = ɵ0;
7216
7003
  exports.ɵa = DirectivesModule;
7217
7004
  exports.ɵb = CommandDirective;
7218
- exports.ɵba = CardContainerComponent;
7219
- exports.ɵbb = TableComponent;
7220
- exports.ɵbc = EditRowControls;
7221
- exports.ɵbd = ColumnTemplateDirective;
7222
- exports.ɵbe = DefaultCellRendererComponent;
7223
- exports.ɵbf = TableCellRendererComponent;
7224
- exports.ɵbg = SelectCellRendererComponent;
7225
- exports.ɵbh = SelectHeaderCellRendererComponent;
7226
- exports.ɵbi = DefaultHeaderCellRendererComponent;
7227
- exports.ɵbj = TableHeaderCellRendererComponent;
7228
- exports.ɵbk = IconComponent;
7229
- exports.ɵbl = SectionHeaderComponent;
7230
- exports.ɵbm = PlaceModule;
7231
- exports.ɵbn = ComponentsModule;
7232
- exports.ɵbo = EmptyStateComponent;
7233
- exports.ɵbp = BusyOverlayComponent;
7234
- exports.ɵbq = PlaceOutletComponent;
7235
- exports.ɵbr = leftRightPlaceAnimation;
7236
- exports.ɵbs = LEFT_RIGHT_PLACE_ANIMATION;
7237
- exports.ɵbt = AUP_PLACE_CONFIG;
7238
- exports.ɵbv = PlaceRouter;
7239
- exports.ɵbx = ModalInteractionContextFactory;
7240
- exports.ɵby = UrlService;
7005
+ exports.ɵba = EditRowControls;
7006
+ exports.ɵbb = ColumnTemplateDirective;
7007
+ exports.ɵbc = DefaultCellRendererComponent;
7008
+ exports.ɵbd = TableCellRendererComponent;
7009
+ exports.ɵbe = SelectCellRendererComponent;
7010
+ exports.ɵbf = SelectHeaderCellRendererComponent;
7011
+ exports.ɵbg = DefaultHeaderCellRendererComponent;
7012
+ exports.ɵbh = TableHeaderCellRendererComponent;
7013
+ exports.ɵbi = MultipleSelectInputComponent;
7014
+ exports.ɵbj = IconComponent;
7015
+ exports.ɵbk = SectionHeaderComponent;
7016
+ exports.ɵbl = PlaceModule;
7017
+ exports.ɵbm = ComponentsModule;
7018
+ exports.ɵbn = EmptyStateComponent;
7019
+ exports.ɵbo = BusyOverlayComponent;
7020
+ exports.ɵbp = PlaceOutletComponent;
7021
+ exports.ɵbq = leftRightPlaceAnimation;
7022
+ exports.ɵbr = LEFT_RIGHT_PLACE_ANIMATION;
7023
+ exports.ɵbs = AUP_PLACE_CONFIG;
7024
+ exports.ɵbu = PlaceRouter;
7025
+ exports.ɵbw = ModalInteractionContextFactory;
7026
+ exports.ɵbx = UrlService;
7027
+ exports.ɵbz = TabbedPlaceNavigationComponent;
7241
7028
  exports.ɵc = FocusBindingDirective;
7242
- exports.ɵca = TabbedPlaceNavigationComponent;
7243
- exports.ɵcb = AbstractPlaceNavigationComponent;
7244
- exports.ɵcc = ListPlaceNavComponent;
7245
- exports.ɵcd = SidePlaceNavigationComponent;
7246
- exports.ɵce = InteractionModule;
7247
- exports.ɵcf = ActivityContainerComponent;
7248
- exports.ɵcg = AbstractInteractionContext;
7249
- exports.ɵch = ActivityOutletComponent;
7250
- exports.ɵci = ConfirmationDialogComponent;
7251
- exports.ɵcj = ACTIVITY_DATA;
7252
- exports.ɵck = Activity;
7253
- exports.ɵcm = ConfirmThenDialogComponent;
7254
- exports.ɵcn = AlertDialogComponent;
7255
- exports.ɵcp = InPlaceInteractionContextComponent;
7256
- exports.ɵcq = AddItemInteractionContextComponent;
7257
- exports.ɵcr = ActivityActionsComponent;
7258
- exports.ɵcs = PopupInteractionContextComponent;
7259
- exports.ɵct = StringInputActivity;
7260
- exports.ɵcu = AbstractInputActivity;
7261
- exports.ɵcv = SelectInputActivity;
7262
- exports.ɵcw = InteractionContextTriggerFor;
7029
+ exports.ɵca = AbstractPlaceNavigationComponent;
7030
+ exports.ɵcb = ListPlaceNavComponent;
7031
+ exports.ɵcc = SidePlaceNavigationComponent;
7032
+ exports.ɵcd = InteractionModule;
7033
+ exports.ɵce = ActivityContainerComponent;
7034
+ exports.ɵcf = AbstractInteractionContext;
7035
+ exports.ɵcg = ActivityOutletComponent;
7036
+ exports.ɵch = ConfirmationDialogComponent;
7037
+ exports.ɵci = ACTIVITY_DATA;
7038
+ exports.ɵcj = Activity;
7039
+ exports.ɵcl = ConfirmThenDialogComponent;
7040
+ exports.ɵcm = AlertDialogComponent;
7041
+ exports.ɵco = InPlaceInteractionContextComponent;
7042
+ exports.ɵcp = AddItemInteractionContextComponent;
7043
+ exports.ɵcq = ActivityActionsComponent;
7044
+ exports.ɵcr = PopupInteractionContextComponent;
7045
+ exports.ɵcs = StringInputActivity;
7046
+ exports.ɵct = AbstractInputActivity;
7047
+ exports.ɵcu = SelectInputActivity;
7048
+ exports.ɵcv = InteractionContextTriggerFor;
7263
7049
  exports.ɵd = DisposableComponent;
7264
7050
  exports.ɵe = FocusBindingFactory;
7265
7051
  exports.ɵf = ComponentsModule;
@@ -7271,18 +7057,18 @@
7271
7057
  exports.ɵl = TextInputComponent;
7272
7058
  exports.ɵm = PasswordInputComponent;
7273
7059
  exports.ɵn = SelectInputComponent;
7274
- exports.ɵo = MultipleSelectInputComponent;
7275
- exports.ɵp = AutocompleteInputComponent;
7276
- exports.ɵq = CheckboxInputComponent;
7277
- exports.ɵr = ScrollContainerComponent;
7278
- exports.ɵs = NoopComponent;
7279
- exports.ɵt = SwitchCaseOption;
7280
- exports.ɵu = SwitchCaseWhenDirective;
7281
- exports.ɵv = SwitchCaseDefaultDirective;
7282
- exports.ɵw = SwitchCaseComponent;
7283
- exports.ɵx = FocusContainerComponent;
7284
- exports.ɵy = VerticalFocusContainerComponent;
7285
- exports.ɵz = FocusableComponent;
7060
+ exports.ɵo = CheckboxInputComponent;
7061
+ exports.ɵp = ScrollContainerComponent;
7062
+ exports.ɵq = NoopComponent;
7063
+ exports.ɵr = SwitchCaseOption;
7064
+ exports.ɵs = SwitchCaseWhenDirective;
7065
+ exports.ɵt = SwitchCaseDefaultDirective;
7066
+ exports.ɵu = SwitchCaseComponent;
7067
+ exports.ɵv = FocusContainerComponent;
7068
+ exports.ɵw = VerticalFocusContainerComponent;
7069
+ exports.ɵx = FocusableComponent;
7070
+ exports.ɵy = CardContainerComponent;
7071
+ exports.ɵz = TableComponent;
7286
7072
 
7287
7073
  Object.defineProperty(exports, '__esModule', { value: true });
7288
7074