@coolon/angular-ui-powerups 1.1.1 → 1.2.1

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 (76) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/bundles/coolon-angular-ui-powerups.umd.js +270 -49
  3. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  4. package/bundles/coolon-angular-ui-powerups.umd.min.js +2 -2
  5. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
  6. package/coolon-angular-ui-powerups.d.ts +28 -25
  7. package/coolon-angular-ui-powerups.metadata.json +1 -1
  8. package/esm2015/coolon-angular-ui-powerups.js +26 -23
  9. package/esm2015/coolon-angular-ui-powerups.js.map +1 -1
  10. package/esm2015/coolon-angular-ui-powerups.metadata.json +1 -1
  11. package/esm2015/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  12. package/esm2015/lib/components/components.module.js +10 -4
  13. package/esm2015/lib/components/components.module.js.map +1 -1
  14. package/esm2015/lib/components/components.module.metadata.json +1 -1
  15. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  16. package/esm2015/lib/components/focus-container/focus-container.component.js +41 -0
  17. package/esm2015/lib/components/focus-container/focus-container.component.js.map +1 -0
  18. package/esm2015/lib/components/focus-container/focus-container.component.metadata.json +1 -0
  19. package/esm2015/lib/components/focus-container/focus-container.component.ngfactory.js.map +1 -0
  20. package/esm2015/lib/components/focus-container/focus-container.component.scss.shim.ngstyle.js.map +1 -0
  21. package/esm2015/lib/components/focusable.component.js +59 -0
  22. package/esm2015/lib/components/focusable.component.js.map +1 -0
  23. package/esm2015/lib/components/focusable.component.metadata.json +1 -0
  24. package/esm2015/lib/components/focusable.component.ngfactory.js.map +1 -0
  25. package/esm2015/lib/components/index.js +2 -0
  26. package/esm2015/lib/components/index.js.map +1 -1
  27. package/esm2015/lib/components/index.metadata.json +1 -1
  28. package/esm2015/lib/components/resize-aware.component.js +2 -2
  29. package/esm2015/lib/components/resize-aware.component.js.map +1 -1
  30. package/esm2015/lib/directives/focus-binding.js +102 -0
  31. package/esm2015/lib/directives/focus-binding.js.map +1 -0
  32. package/esm2015/lib/directives/focus-binding.metadata.json +1 -0
  33. package/esm2015/lib/directives/index.js +1 -0
  34. package/esm2015/lib/directives/index.js.map +1 -1
  35. package/esm2015/lib/directives/index.metadata.json +1 -1
  36. package/esm2015/lib/place/place-router.js +1 -1
  37. package/esm2015/lib/place/place-router.js.map +1 -1
  38. package/esm2015/lib/place/route/parameter-decorators.js +8 -5
  39. package/esm2015/lib/place/route/parameter-decorators.js.map +1 -1
  40. package/esm2015/lib/place/route/parameter-decorators.metadata.json +1 -1
  41. package/esm5/coolon-angular-ui-powerups.js +26 -23
  42. package/esm5/coolon-angular-ui-powerups.js.map +1 -1
  43. package/esm5/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  44. package/esm5/lib/components/components.module.js +10 -4
  45. package/esm5/lib/components/components.module.js.map +1 -1
  46. package/esm5/lib/components/components.module.ngfactory.js.map +1 -1
  47. package/esm5/lib/components/focus-container/focus-container.component.js +42 -0
  48. package/esm5/lib/components/focus-container/focus-container.component.js.map +1 -0
  49. package/esm5/lib/components/focus-container/focus-container.component.ngfactory.js.map +1 -0
  50. package/esm5/lib/components/focus-container/focus-container.component.scss.shim.ngstyle.js.map +1 -0
  51. package/esm5/lib/components/focusable.component.js +70 -0
  52. package/esm5/lib/components/focusable.component.js.map +1 -0
  53. package/esm5/lib/components/focusable.component.ngfactory.js.map +1 -0
  54. package/esm5/lib/components/index.js +2 -0
  55. package/esm5/lib/components/index.js.map +1 -1
  56. package/esm5/lib/components/resize-aware.component.js +2 -2
  57. package/esm5/lib/components/resize-aware.component.js.map +1 -1
  58. package/esm5/lib/directives/focus-binding.js +112 -0
  59. package/esm5/lib/directives/focus-binding.js.map +1 -0
  60. package/esm5/lib/directives/index.js +1 -0
  61. package/esm5/lib/directives/index.js.map +1 -1
  62. package/esm5/lib/place/place-router.js +1 -1
  63. package/esm5/lib/place/place-router.js.map +1 -1
  64. package/esm5/lib/place/route/parameter-decorators.js +8 -5
  65. package/esm5/lib/place/route/parameter-decorators.js.map +1 -1
  66. package/fesm2015/coolon-angular-ui-powerups.js +206 -12
  67. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  68. package/fesm5/coolon-angular-ui-powerups.js +228 -12
  69. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  70. package/lib/components/focus-container/focus-container.component.d.ts +9 -0
  71. package/lib/components/focusable.component.d.ts +14 -0
  72. package/lib/components/index.d.ts +2 -0
  73. package/lib/directives/focus-binding.d.ts +25 -0
  74. package/lib/directives/index.d.ts +1 -0
  75. package/lib/place/place-router.d.ts +3 -2
  76. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [1.2.1](https://bitbucket.org/coolon/angular-ui-powerups/compare/v1.2.0...v1.2.1) (2020-05-19)
6
+
7
+ ## [1.2.0](https://bitbucket.org/coolon/angular-ui-powerups/compare/v1.1.1...v1.2.0) (2020-05-18)
8
+
9
+
10
+ ### Features
11
+
12
+ * added aup-checkbox-input component ([529447f](https://bitbucket.org/coolon/angular-ui-powerups/commit/529447f972433b8bc70a965a2df7326fe2c493be))
13
+
5
14
  ### [1.1.1](https://bitbucket.org/coolon/angular-ui-powerups/compare/v1.1.0...v1.1.1) (2020-05-14)
6
15
 
7
16
  ## [1.1.0](https://bitbucket.org/coolon/angular-ui-powerups/compare/v1.0.2...v1.1.0) (2020-05-12)
@@ -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/material/checkbox'), require('@angular/material/button'), require('@angular/material/icon'), require('@coolon/pectin'), require('@angular/cdk/portal'), require('@angular/material/dialog'), require('@angular/router'), require('@coolon/typescript-utilities'), require('lodash'), require('@angular/material/progress-spinner'), require('@angular/material/list'), require('@angular/material/tooltip'), require('@typescript-plus/fast-memoize-decorator/dist/src'), require('@typescript-plus/fast-memoize-decorator'), require('reflect-metadata'), require('@angular/animations'), require('resize-observer-polyfill'), 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/material/checkbox', '@angular/material/button', '@angular/material/icon', '@coolon/pectin', '@angular/cdk/portal', '@angular/material/dialog', '@angular/router', '@coolon/typescript-utilities', 'lodash', '@angular/material/progress-spinner', '@angular/material/list', '@angular/material/tooltip', '@typescript-plus/fast-memoize-decorator/dist/src', '@typescript-plus/fast-memoize-decorator', 'reflect-metadata', '@angular/animations', 'resize-observer-polyfill', '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.material.checkbox, global.ng.material.button, global.ng.material.icon, global.pectin, global.ng.cdk.portal, global.ng.material.dialog, global.ng.router, global.typescriptUtilities, global.___default, global.ng.material.progressSpinner, global.ng.material.list, global.ng.material.tooltip, global.src, global.fastMemoizeDecorator, null, global.ng.animations, global.ResizeObserver, global.rxjs));
5
- }(this, (function (exports, common, core, forms, formField, input, select, tabs, animations, checkbox, button, icon, pectin, portal, dialog, router, typescriptUtilities, ___default, progressSpinner, list, tooltip, src, fastMemoizeDecorator, reflectMetadata, animations$1, ResizeObserver, 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/material/button'), require('@angular/material/checkbox'), require('@angular/material/icon'), require('@coolon/pectin'), require('@angular/cdk/portal'), require('@angular/material/dialog'), require('@angular/router'), require('@coolon/typescript-utilities'), require('lodash'), require('@angular/material/progress-spinner'), require('@angular/material/list'), require('@angular/material/tooltip'), require('@typescript-plus/fast-memoize-decorator/dist/src'), require('@typescript-plus/fast-memoize-decorator'), require('reflect-metadata'), require('@angular/animations'), require('resize-observer-polyfill'), 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/material/button', '@angular/material/checkbox', '@angular/material/icon', '@coolon/pectin', '@angular/cdk/portal', '@angular/material/dialog', '@angular/router', '@coolon/typescript-utilities', 'lodash', '@angular/material/progress-spinner', '@angular/material/list', '@angular/material/tooltip', '@typescript-plus/fast-memoize-decorator/dist/src', '@typescript-plus/fast-memoize-decorator', 'reflect-metadata', '@angular/animations', 'resize-observer-polyfill', '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.material.button, global.ng.material.checkbox, global.ng.material.icon, global.pectin, global.ng.cdk.portal, global.ng.material.dialog, global.ng.router, global.typescriptUtilities, global.___default, global.ng.material.progressSpinner, global.ng.material.list, global.ng.material.tooltip, global.src, global.fastMemoizeDecorator, null, global.ng.animations, global.ResizeObserver, global.rxjs));
5
+ }(this, (function (exports, common, core, forms, formField, input, select, tabs, animations, button, checkbox, icon, pectin, portal, dialog, router, typescriptUtilities, ___default, progressSpinner, list, tooltip, src, fastMemoizeDecorator, reflectMetadata, animations$1, ResizeObserver, rxjs) { 'use strict';
6
6
 
7
7
  var ___default__default = 'default' in ___default ? ___default['default'] : ___default;
8
8
  ResizeObserver = ResizeObserver && Object.prototype.hasOwnProperty.call(ResizeObserver, 'default') ? ResizeObserver['default'] : ResizeObserver;
@@ -485,6 +485,215 @@
485
485
  return DirectivesModule;
486
486
  }());
487
487
 
488
+ var FocusContainerComponent = /** @class */ (function () {
489
+ function FocusContainerComponent(focusManager) {
490
+ this.focusManager = focusManager;
491
+ this.tabIndex = -1;
492
+ }
493
+ FocusContainerComponent.prototype.ngOnInit = function () {
494
+ };
495
+ FocusContainerComponent.prototype.restoreFocus = function () {
496
+ this.focusManager.restoreFocus();
497
+ };
498
+ FocusContainerComponent.ctorParameters = function () { return [
499
+ { type: pectin.FocusManager, decorators: [{ type: core.Host }] }
500
+ ]; };
501
+ __decorate([
502
+ core.HostBinding("attr.tabindex"),
503
+ __metadata("design:type", Object)
504
+ ], FocusContainerComponent.prototype, "tabIndex", void 0);
505
+ __decorate([
506
+ pectin.Trace(),
507
+ __metadata("design:type", Function),
508
+ __metadata("design:paramtypes", []),
509
+ __metadata("design:returntype", void 0)
510
+ ], FocusContainerComponent.prototype, "restoreFocus", null);
511
+ FocusContainerComponent = __decorate([
512
+ core.Component({
513
+ selector: 'aup-focus-container',
514
+ template: "<ng-content></ng-content>\n",
515
+ providers: [
516
+ { provide: pectin.FocusManager }
517
+ ],
518
+ styles: [":host{display:block}"]
519
+ }),
520
+ __param(0, core.Host()),
521
+ __metadata("design:paramtypes", [pectin.FocusManager])
522
+ ], FocusContainerComponent);
523
+ return FocusContainerComponent;
524
+ }());
525
+
526
+ exports.ɵt = /** @class */ (function (_super) {
527
+ __extends(FocusBinding, _super);
528
+ function FocusBinding(focusTargetElement, ngZone, document, focusContext) {
529
+ var _this = _super.call(this) || this;
530
+ _this.focusTargetElement = focusTargetElement;
531
+ _this.ngZone = ngZone;
532
+ _this.focusContext = focusContext;
533
+ // @see https://stackoverflow.com/questions/49513359/could-not-resolve-type-document-in-angular5/53715642#53715642
534
+ _this.document = document;
535
+ // TODO: Make this also track the current enabled/disabled state.
536
+ var when = pectin.Dsl.disposeWith(_this).when;
537
+ when.valueOf(_this.focusContext.focused).changes(function (focused) {
538
+ if (focused && !_this.alreadyHasFocus()) {
539
+ _this.tryAndFocus();
540
+ }
541
+ }, { initialValue: 'triggerChangeUnlessNil' });
542
+ return _this;
543
+ }
544
+ FocusBinding.prototype.onFocusIn = function () {
545
+ this.focusContext.notifyFocusIn();
546
+ };
547
+ FocusBinding.prototype.onFocusOut = function () {
548
+ this.focusContext.notifyFocusOut();
549
+ };
550
+ // Hook method for debugging via tracing.
551
+ FocusBinding.prototype.alreadyHasFocus = function () {
552
+ return this.isElementFocused(this.focusTarget);
553
+ };
554
+ // Hook method for debugging via tracing.
555
+ FocusBinding.prototype.isElementFocused = function (element) {
556
+ return this.document.activeElement === element;
557
+ };
558
+ FocusBinding.prototype.tryAndFocus = function (retries) {
559
+ var _this = this;
560
+ if (retries === void 0) { retries = 5; }
561
+ if (this.modelShouldStillHaveFocus() && this.canFocus()) {
562
+ if (!this.alreadyHasFocus()) {
563
+ this.focusTarget.focus();
564
+ }
565
+ // if we didn't get the focus we try again later.
566
+ if (!this.alreadyHasFocus()) {
567
+ pectin.Logger.get(this).log("focus failed, trying " + retries + " more times");
568
+ if (retries > 0) {
569
+ // try again on the next paint
570
+ // TODO: is there an angular way of doing this without calling a window function.
571
+ requestAnimationFrame(function () {
572
+ _this.tryAndFocus(retries - 1);
573
+ });
574
+ }
575
+ else {
576
+ pectin.Logger.get(this).warn("Tried to focus but gave up as the component wasn't enabled or visible.");
577
+ }
578
+ }
579
+ }
580
+ };
581
+ Object.defineProperty(FocusBinding.prototype, "focusTarget", {
582
+ get: function () {
583
+ return this.focusTargetElement;
584
+ },
585
+ enumerable: true,
586
+ configurable: true
587
+ });
588
+ // Hook method for debugging via tracing.
589
+ FocusBinding.prototype.modelShouldStillHaveFocus = function () {
590
+ return this.focusContext.focused.value;
591
+ };
592
+ // Hook method for debugging via tracing.
593
+ FocusBinding.prototype.canFocus = function () {
594
+ var dimension = this.focusTarget.getBoundingClientRect();
595
+ var hasSize = dimension.height >= 0 && dimension.height >= 0;
596
+ // tslint:disable-next-line:no-string-literal
597
+ return hasSize && !this.focusTarget['disabled'];
598
+ };
599
+ FocusBinding = __decorate([
600
+ __param(1, core.Inject(core.NgZone)),
601
+ __param(2, core.Inject(common.DOCUMENT)),
602
+ __metadata("design:paramtypes", [HTMLElement,
603
+ core.NgZone, Object, Object])
604
+ ], FocusBinding);
605
+ return FocusBinding;
606
+ }(pectin.GarbageCollector));
607
+ (function (FocusBinding) {
608
+ var Factory = /** @class */ (function () {
609
+ function Factory(ngZone, document) {
610
+ this.ngZone = ngZone;
611
+ // @see https://stackoverflow.com/questions/49513359/could-not-resolve-type-document-in-angular5/53715642#53715642
612
+ this.document = document;
613
+ }
614
+ Factory.prototype.createBinding = function (el, focusContext) {
615
+ return new FocusBinding(el.nativeElement, this.ngZone, this.document, focusContext);
616
+ };
617
+ Factory.ctorParameters = function () { return [
618
+ { type: core.NgZone, decorators: [{ type: core.Inject, args: [core.NgZone,] }] },
619
+ { type: undefined, decorators: [{ type: core.Inject, args: [common.DOCUMENT,] }] }
620
+ ]; };
621
+ Factory = __decorate([
622
+ core.Injectable({
623
+ providedIn: 'root'
624
+ }),
625
+ __param(0, core.Inject(core.NgZone)), __param(1, core.Inject(common.DOCUMENT)),
626
+ __metadata("design:paramtypes", [core.NgZone, Object])
627
+ ], Factory);
628
+ return Factory;
629
+ }());
630
+ FocusBinding.Factory = Factory;
631
+ })(exports.ɵt || (exports.ɵt = {}));
632
+
633
+ var FocusableComponent = /** @class */ (function (_super) {
634
+ __extends(FocusableComponent, _super);
635
+ function FocusableComponent(el, focusManager, focusBindingFactory) {
636
+ var _this = _super.call(this) || this;
637
+ _this.el = el;
638
+ _this.focusManager = focusManager;
639
+ 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;
640
+ if (_this.focusManager) {
641
+ _this._focusContext = _this.focusManager.registerFocusable(_this);
642
+ _this.registerDisposable(focusBindingFactory.createBinding(el, _this.focusContext));
643
+ }
644
+ return _this;
645
+ }
646
+ Object.defineProperty(FocusableComponent.prototype, "focusable", {
647
+ get: function () {
648
+ return !!this.focusContext ? 0 : undefined;
649
+ },
650
+ enumerable: true,
651
+ configurable: true
652
+ });
653
+ FocusableComponent.prototype.onFocus = function () {
654
+ var _a;
655
+ (_a = this.focusContext) === null || _a === void 0 ? void 0 : _a.notifyFocusIn();
656
+ };
657
+ FocusableComponent.prototype.onBlur = function () {
658
+ var _a;
659
+ (_a = this.focusContext) === null || _a === void 0 ? void 0 : _a.notifyFocusOut();
660
+ };
661
+ Object.defineProperty(FocusableComponent.prototype, "focusContext", {
662
+ get: function () {
663
+ return this._focusContext;
664
+ },
665
+ enumerable: true,
666
+ configurable: true
667
+ });
668
+ FocusableComponent.ctorParameters = function () { return [
669
+ { type: core.ElementRef },
670
+ { type: pectin.FocusManager },
671
+ { type: exports.ɵt.Factory }
672
+ ]; };
673
+ __decorate([
674
+ core.HostBinding('attr.tabindex'),
675
+ __metadata("design:type", Object),
676
+ __metadata("design:paramtypes", [])
677
+ ], FocusableComponent.prototype, "focusable", null);
678
+ __decorate([
679
+ core.HostListener('focus'),
680
+ __metadata("design:type", Function),
681
+ __metadata("design:paramtypes", []),
682
+ __metadata("design:returntype", void 0)
683
+ ], FocusableComponent.prototype, "onFocus", null);
684
+ __decorate([
685
+ core.HostListener('blur'),
686
+ __metadata("design:type", Function),
687
+ __metadata("design:paramtypes", []),
688
+ __metadata("design:returntype", void 0)
689
+ ], FocusableComponent.prototype, "onBlur", null);
690
+ FocusableComponent = __decorate([
691
+ core.Component({ template: '' }),
692
+ __metadata("design:paramtypes", [core.ElementRef, pectin.FocusManager, exports.ɵt.Factory])
693
+ ], FocusableComponent);
694
+ return FocusableComponent;
695
+ }(DisposableComponent));
696
+
488
697
  var AbstractInputComponent = /** @class */ (function (_super) {
489
698
  __extends(AbstractInputComponent, _super);
490
699
  function AbstractInputComponent() {
@@ -995,7 +1204,9 @@
995
1204
  AbstractInputComponent,
996
1205
  SwitchCaseComponent,
997
1206
  SwitchCaseWhenDirective,
998
- SwitchCaseDefaultDirective
1207
+ SwitchCaseDefaultDirective,
1208
+ FocusContainerComponent,
1209
+ FocusableComponent
999
1210
  ],
1000
1211
  imports: [
1001
1212
  common.CommonModule,
@@ -1020,7 +1231,9 @@
1020
1231
  NoopComponent,
1021
1232
  SwitchCaseComponent,
1022
1233
  SwitchCaseWhenDirective,
1023
- SwitchCaseDefaultDirective
1234
+ SwitchCaseDefaultDirective,
1235
+ FocusContainerComponent,
1236
+ FocusableComponent
1024
1237
  ]
1025
1238
  })
1026
1239
  ], ComponentsModule);
@@ -1564,7 +1777,7 @@
1564
1777
  }());
1565
1778
 
1566
1779
  var inplaceMonitorCount = 0;
1567
- exports.ɵba = /** @class */ (function () {
1780
+ exports.ɵbd = /** @class */ (function () {
1568
1781
  function InteractionService(modelInteractionContextFactory) {
1569
1782
  this.modelInteractionContextFactory = modelInteractionContextFactory;
1570
1783
  this.garbage = new pectin.GarbageCollector();
@@ -1724,7 +1937,7 @@
1724
1937
  return ApiAdapter;
1725
1938
  }());
1726
1939
  InteractionService.ApiAdapter = ApiAdapter;
1727
- })(exports.ɵba || (exports.ɵba = {}));
1940
+ })(exports.ɵbd || (exports.ɵbd = {}));
1728
1941
 
1729
1942
  var InPlaceInteractionContextComponent = /** @class */ (function (_super) {
1730
1943
  __extends(InPlaceInteractionContextComponent, _super);
@@ -1768,7 +1981,7 @@
1768
1981
  return this.activityContainerComponent.startActivity(activityType, data);
1769
1982
  };
1770
1983
  InPlaceInteractionContextComponent.ctorParameters = function () { return [
1771
- { type: exports.ɵba }
1984
+ { type: exports.ɵbd }
1772
1985
  ]; };
1773
1986
  __decorate([
1774
1987
  core.ViewChild('activityContainer', { static: true }),
@@ -1780,7 +1993,7 @@
1780
1993
  template: "<mat-tab-group no-tab-header [selectedIndex]=\"isActive() ? 1 : 0\" full-height-tabs [dynamicHeight]=\"false\">\n <mat-tab>\n <ng-content></ng-content>\n </mat-tab>\n <mat-tab>\n <aup-activity-container #activityContainer [dynamicHeight]=\"false\"></aup-activity-container>\n </mat-tab>\n</mat-tab-group>\n\n",
1781
1994
  styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}"]
1782
1995
  }),
1783
- __metadata("design:paramtypes", [exports.ɵba])
1996
+ __metadata("design:paramtypes", [exports.ɵbd])
1784
1997
  ], InPlaceInteractionContextComponent);
1785
1998
  return InPlaceInteractionContextComponent;
1786
1999
  }(DisposableComponent));
@@ -1818,7 +2031,7 @@
1818
2031
  AlertDialogComponent
1819
2032
  ],
1820
2033
  providers: [
1821
- exports.ɵba,
2034
+ exports.ɵbd,
1822
2035
  ]
1823
2036
  })
1824
2037
  ], InteractionModule);
@@ -2937,7 +3150,7 @@
2937
3150
  return PopStateNavigation;
2938
3151
  }(AbstractPopStateNavigation));
2939
3152
 
2940
- exports.ɵbd = /** @class */ (function () {
3153
+ exports.ɵbg = /** @class */ (function () {
2941
3154
  function PlaceHistory() {
2942
3155
  this._archive = new Map();
2943
3156
  this.placeHistoryDepth = 4;
@@ -3074,7 +3287,7 @@
3074
3287
  // }
3075
3288
  //
3076
3289
  // }
3077
- })(exports.ɵbd || (exports.ɵbd = {}));
3290
+ })(exports.ɵbg || (exports.ɵbg = {}));
3078
3291
 
3079
3292
  exports.UrlSnapshot = /** @class */ (function () {
3080
3293
  // TODO: Update this accept a url Parser so it can be immutable and generate new trees on mutation using toString() are parseUrl.
@@ -3334,7 +3547,7 @@
3334
3547
  _this.navigationSessionName = chain(_this.navigationSessionModel)
3335
3548
  .pluck('name')
3336
3549
  .otherwise(idleStateName);
3337
- pectin.DebugContext.tag(_this._activeVisits, "PlaceRouter.activeVisits");
3550
+ pectin.DebugContext.tag(_this._activeVisits, 'PlaceRouter.activeVisits');
3338
3551
  _this.activeVisitsByPlaceDefinition = chain(_this._activeVisits).indexBy('placeDefinition');
3339
3552
  // TODO: make setup the callbacks in during module initiation to make this testable.
3340
3553
  angularRouter.events.subscribe(function (event) {
@@ -3597,11 +3810,11 @@
3597
3810
  PlaceRouter.ctorParameters = function () { return [
3598
3811
  { type: router.Router },
3599
3812
  { type: common.Location },
3600
- { type: exports.ɵba },
3813
+ { type: exports.ɵbd },
3601
3814
  { type: UrlService },
3602
- { type: exports.ɵbd }
3815
+ { type: exports.ɵbg }
3603
3816
  ]; };
3604
- PlaceRouter.ɵprov = core.ɵɵdefineInjectable({ factory: function PlaceRouter_Factory() { return new PlaceRouter(core.ɵɵinject(router.Router), core.ɵɵinject(common.Location), core.ɵɵinject(exports.ɵba), core.ɵɵinject(UrlService), core.ɵɵinject(exports.ɵbd)); }, token: PlaceRouter, providedIn: "root" });
3817
+ PlaceRouter.ɵprov = core.ɵɵdefineInjectable({ factory: function PlaceRouter_Factory() { return new PlaceRouter(core.ɵɵinject(router.Router), core.ɵɵinject(common.Location), core.ɵɵinject(exports.ɵbd), core.ɵɵinject(UrlService), core.ɵɵinject(exports.ɵbg)); }, token: PlaceRouter, providedIn: "root" });
3605
3818
  __decorate([
3606
3819
  pectin.Trace(),
3607
3820
  __metadata("design:type", Function),
@@ -3614,9 +3827,9 @@
3614
3827
  }),
3615
3828
  __metadata("design:paramtypes", [router.Router,
3616
3829
  common.Location,
3617
- exports.ɵba,
3830
+ exports.ɵbd,
3618
3831
  UrlService,
3619
- exports.ɵbd])
3832
+ exports.ɵbg])
3620
3833
  ], PlaceRouter);
3621
3834
  return PlaceRouter;
3622
3835
  }(pectin.GarbageCollector));
@@ -4176,7 +4389,7 @@
4176
4389
  var _this = _super.call(this) || this;
4177
4390
  _this.elementRef = elementRef;
4178
4391
  _this.ngZone = ngZone;
4179
- _this._boundsModel = new pectin.ValueHolder(new exports.Bounds(0, 0, 0, 0));
4392
+ _this._boundsModel = new pectin.MutableValueModel(new exports.Bounds(0, 0, 0, 0));
4180
4393
  return _this;
4181
4394
  }
4182
4395
  ResizeAwareComponent.prototype.ngAfterViewInit = function () {
@@ -4694,7 +4907,10 @@
4694
4907
  mechanics.binding.dispose();
4695
4908
  }
4696
4909
  if (userModel) {
4697
- mechanics.binding = new pectin.Binding(mechanics.backingModel, userModel);
4910
+ mechanics.binding = new pectin.Binding(mechanics.backingModel, userModel, {
4911
+ toLeft: pectin.Functions.identity,
4912
+ toRight: pectin.Functions.identity
4913
+ });
4698
4914
  if (isEmpty(userModel)) {
4699
4915
  // console.log(`Push visit to model for ${tag}`, {value: mechanics.backingModel.value});
4700
4916
  mechanics.binding.writeRight(); // push the visit into the user model;
@@ -4713,7 +4929,7 @@
4713
4929
  return function (prototype, propertyKey) {
4714
4930
  var param = new exports.ParameterDefinition.RouteId(propertyKey.toString(), options, type);
4715
4931
  typescriptUtilities.Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, param);
4716
- installMechanics(prototype, propertyKey, new pectin.MutableValueModel(), "@RouteId", function (m) { return m.query().isNil(); });
4932
+ installMechanics(prototype, propertyKey, new pectin.MutableValueModel(), '@RouteId', function (m) { return m.query().isNil(); });
4717
4933
  };
4718
4934
  }
4719
4935
  function VisitParameter(options) {
@@ -4721,7 +4937,7 @@
4721
4937
  return function (prototype, propertyKey) {
4722
4938
  var param = new exports.ParameterDefinition.ValueParameter(propertyKey.toString(), options, opts.getOptional('storeInUrl', null));
4723
4939
  typescriptUtilities.Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, param);
4724
- installMechanics(prototype, propertyKey, new pectin.MutableValueModel(), "@VisitParameter", function (m) { return m.query().isNil(); });
4940
+ installMechanics(prototype, propertyKey, new pectin.MutableValueModel(), '@VisitParameter', function (m) { return m.query().isNil(); });
4725
4941
  };
4726
4942
  }
4727
4943
  function VisitParameterList(options) {
@@ -4729,7 +4945,7 @@
4729
4945
  return function (prototype, propertyKey) {
4730
4946
  var param = new exports.ParameterDefinition.ArrayParameter(propertyKey.toString(), options, opts.getOptional('storeInUrl', null));
4731
4947
  typescriptUtilities.Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, param);
4732
- installMechanics(prototype, propertyKey, new pectin.MutableListModel(), "@VisitParameterList", function (m) { return m.query().isEmpty(); });
4948
+ installMechanics(prototype, propertyKey, new pectin.MutableListModel(), '@VisitParameterList', function (m) { return m.query().isEmpty(); });
4733
4949
  };
4734
4950
  }
4735
4951
 
@@ -4761,10 +4977,13 @@
4761
4977
  exports.DisposableComponent = DisposableComponent;
4762
4978
  exports.EmptyStateComponent = EmptyStateComponent;
4763
4979
  exports.EventCleanUpSession = EventCleanUpSession;
4980
+ exports.FocusBinding = exports.ɵt;
4764
4981
  exports.FocusBindingDirective = FocusBindingDirective;
4982
+ exports.FocusContainerComponent = FocusContainerComponent;
4983
+ exports.FocusableComponent = FocusableComponent;
4765
4984
  exports.InPlaceInteractionContextComponent = InPlaceInteractionContextComponent;
4766
4985
  exports.InteractionModule = InteractionModule;
4767
- exports.InteractionService = exports.ɵba;
4986
+ exports.InteractionService = exports.ɵbd;
4768
4987
  exports.InteractionServiceRoutingAdapter = InteractionServiceRoutingAdapter;
4769
4988
  exports.LEFT_RIGHT_PLACE_ANIMATION = LEFT_RIGHT_PLACE_ANIMATION;
4770
4989
  exports.ListPlaceNavComponent = ListPlaceNavComponent;
@@ -4780,7 +4999,7 @@
4780
4999
  exports.PlaceComponentDeactivationHandler = PlaceComponentDeactivationHandler;
4781
5000
  exports.PlaceDefinition = PlaceDefinition;
4782
5001
  exports.PlaceGuard = PlaceGuard;
4783
- exports.PlaceHistory = exports.ɵbd;
5002
+ exports.PlaceHistory = exports.ɵbg;
4784
5003
  exports.PlaceModule = PlaceModule;
4785
5004
  exports.PlaceOutletComponent = PlaceOutletComponent;
4786
5005
  exports.PlaceRouter = PlaceRouter;
@@ -4813,21 +5032,23 @@
4813
5032
  exports.slideRightOnEnterAnimation = slideRightOnEnterAnimation;
4814
5033
  exports.ɵa = DirectivesModule;
4815
5034
  exports.ɵb = CommandDirective;
4816
- exports.ɵbb = ModalInteractionContextFactory;
4817
- exports.ɵbc = UrlService;
4818
- exports.ɵbe = TabbedPlaceNavigationComponent;
4819
- exports.ɵbf = AbstractPlaceNavigationComponent;
4820
- exports.ɵbg = ListPlaceNavComponent;
4821
- exports.ɵbh = InteractionModule;
4822
- exports.ɵbi = ActivityContainerComponent;
4823
- exports.ɵbj = AbstractInteractionContext;
4824
- exports.ɵbk = ActivityOutletComponent;
4825
- exports.ɵbl = ConfirmationDialogComponent;
4826
- exports.ɵbm = ACTIVITY_DATA;
4827
- exports.ɵbn = Activity;
4828
- exports.ɵbp = ConfirmThenDialogComponent;
4829
- exports.ɵbq = AlertDialogComponent;
4830
- exports.ɵbs = InPlaceInteractionContextComponent;
5035
+ exports.ɵba = AUP_PLACE_CONFIG;
5036
+ exports.ɵbc = PlaceRouter;
5037
+ exports.ɵbe = ModalInteractionContextFactory;
5038
+ exports.ɵbf = UrlService;
5039
+ exports.ɵbh = TabbedPlaceNavigationComponent;
5040
+ exports.ɵbi = AbstractPlaceNavigationComponent;
5041
+ exports.ɵbj = ListPlaceNavComponent;
5042
+ exports.ɵbk = InteractionModule;
5043
+ exports.ɵbl = ActivityContainerComponent;
5044
+ exports.ɵbm = AbstractInteractionContext;
5045
+ exports.ɵbn = ActivityOutletComponent;
5046
+ exports.ɵbo = ConfirmationDialogComponent;
5047
+ exports.ɵbp = ACTIVITY_DATA;
5048
+ exports.ɵbq = Activity;
5049
+ exports.ɵbs = ConfirmThenDialogComponent;
5050
+ exports.ɵbt = AlertDialogComponent;
5051
+ exports.ɵbv = InPlaceInteractionContextComponent;
4831
5052
  exports.ɵc = FocusBindingDirective;
4832
5053
  exports.ɵd = DisposableComponent;
4833
5054
  exports.ɵe = ComponentsModule;
@@ -4843,14 +5064,14 @@
4843
5064
  exports.ɵo = SwitchCaseWhenDirective;
4844
5065
  exports.ɵp = SwitchCaseDefaultDirective;
4845
5066
  exports.ɵq = SwitchCaseComponent;
4846
- exports.ɵr = PlaceModule;
4847
- exports.ɵs = EmptyStateComponent;
4848
- exports.ɵt = BusyOverlayComponent;
4849
- exports.ɵu = PlaceOutletComponent;
4850
- exports.ɵv = leftRightPlaceAnimation;
4851
- exports.ɵw = LEFT_RIGHT_PLACE_ANIMATION;
4852
- exports.ɵx = AUP_PLACE_CONFIG;
4853
- exports.ɵz = PlaceRouter;
5067
+ exports.ɵr = FocusContainerComponent;
5068
+ exports.ɵs = FocusableComponent;
5069
+ exports.ɵu = PlaceModule;
5070
+ exports.ɵv = EmptyStateComponent;
5071
+ exports.ɵw = BusyOverlayComponent;
5072
+ exports.ɵx = PlaceOutletComponent;
5073
+ exports.ɵy = leftRightPlaceAnimation;
5074
+ exports.ɵz = LEFT_RIGHT_PLACE_ANIMATION;
4854
5075
 
4855
5076
  Object.defineProperty(exports, '__esModule', { value: true });
4856
5077