@coolon/angular-ui-powerups 1.2.0 → 1.3.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 (64) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/bundles/coolon-angular-ui-powerups.umd.js +261 -43
  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/directives/directives.module.ngfactory.js.map +1 -1
  29. package/esm2015/lib/directives/focus-binding.js +102 -0
  30. package/esm2015/lib/directives/focus-binding.js.map +1 -0
  31. package/esm2015/lib/directives/focus-binding.metadata.json +1 -0
  32. package/esm2015/lib/directives/index.js +1 -0
  33. package/esm2015/lib/directives/index.js.map +1 -1
  34. package/esm2015/lib/directives/index.metadata.json +1 -1
  35. package/esm5/coolon-angular-ui-powerups.js +26 -23
  36. package/esm5/coolon-angular-ui-powerups.js.map +1 -1
  37. package/esm5/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  38. package/esm5/lib/components/components.module.js +10 -4
  39. package/esm5/lib/components/components.module.js.map +1 -1
  40. package/esm5/lib/components/components.module.ngfactory.js.map +1 -1
  41. package/esm5/lib/components/focus-container/focus-container.component.js +42 -0
  42. package/esm5/lib/components/focus-container/focus-container.component.js.map +1 -0
  43. package/esm5/lib/components/focus-container/focus-container.component.ngfactory.js.map +1 -0
  44. package/esm5/lib/components/focus-container/focus-container.component.scss.shim.ngstyle.js.map +1 -0
  45. package/esm5/lib/components/focusable.component.js +70 -0
  46. package/esm5/lib/components/focusable.component.js.map +1 -0
  47. package/esm5/lib/components/focusable.component.ngfactory.js.map +1 -0
  48. package/esm5/lib/components/index.js +2 -0
  49. package/esm5/lib/components/index.js.map +1 -1
  50. package/esm5/lib/directives/directives.module.ngfactory.js.map +1 -1
  51. package/esm5/lib/directives/focus-binding.js +112 -0
  52. package/esm5/lib/directives/focus-binding.js.map +1 -0
  53. package/esm5/lib/directives/index.js +1 -0
  54. package/esm5/lib/directives/index.js.map +1 -1
  55. package/fesm2015/coolon-angular-ui-powerups.js +197 -6
  56. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  57. package/fesm5/coolon-angular-ui-powerups.js +219 -6
  58. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  59. package/lib/components/focus-container/focus-container.component.d.ts +9 -0
  60. package/lib/components/focusable.component.d.ts +14 -0
  61. package/lib/components/index.d.ts +2 -0
  62. package/lib/directives/focus-binding.d.ts +25 -0
  63. package/lib/directives/index.d.ts +1 -0
  64. package/package.json +7 -7
package/CHANGELOG.md CHANGED
@@ -2,6 +2,19 @@
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.3.2](https://bitbucket.org/coolon/angular-ui-powerups/compare/v1.3.1...v1.3.2) (2020-05-20)
6
+
7
+ ### [1.3.1](https://bitbucket.org/coolon/angular-ui-powerups/compare/v1.3.0...v1.3.1) (2020-05-20)
8
+
9
+ ## [1.3.0](https://bitbucket.org/coolon/angular-ui-powerups/compare/v1.2.1...v1.3.0) (2020-05-20)
10
+
11
+
12
+ ### Features
13
+
14
+ * added FocusableComponent and FocusContainerComponent ([b825a17](https://bitbucket.org/coolon/angular-ui-powerups/commit/b825a1743d824d48e03a65e06d331e9d3d537ff0))
15
+
16
+ ### [1.2.1](https://bitbucket.org/coolon/angular-ui-powerups/compare/v1.2.0...v1.2.1) (2020-05-19)
17
+
5
18
  ## [1.2.0](https://bitbucket.org/coolon/angular-ui-powerups/compare/v1.1.1...v1.2.0) (2020-05-18)
6
19
 
7
20
 
@@ -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.
@@ -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));
@@ -4764,10 +4977,13 @@
4764
4977
  exports.DisposableComponent = DisposableComponent;
4765
4978
  exports.EmptyStateComponent = EmptyStateComponent;
4766
4979
  exports.EventCleanUpSession = EventCleanUpSession;
4980
+ exports.FocusBinding = exports.ɵt;
4767
4981
  exports.FocusBindingDirective = FocusBindingDirective;
4982
+ exports.FocusContainerComponent = FocusContainerComponent;
4983
+ exports.FocusableComponent = FocusableComponent;
4768
4984
  exports.InPlaceInteractionContextComponent = InPlaceInteractionContextComponent;
4769
4985
  exports.InteractionModule = InteractionModule;
4770
- exports.InteractionService = exports.ɵba;
4986
+ exports.InteractionService = exports.ɵbd;
4771
4987
  exports.InteractionServiceRoutingAdapter = InteractionServiceRoutingAdapter;
4772
4988
  exports.LEFT_RIGHT_PLACE_ANIMATION = LEFT_RIGHT_PLACE_ANIMATION;
4773
4989
  exports.ListPlaceNavComponent = ListPlaceNavComponent;
@@ -4783,7 +4999,7 @@
4783
4999
  exports.PlaceComponentDeactivationHandler = PlaceComponentDeactivationHandler;
4784
5000
  exports.PlaceDefinition = PlaceDefinition;
4785
5001
  exports.PlaceGuard = PlaceGuard;
4786
- exports.PlaceHistory = exports.ɵbd;
5002
+ exports.PlaceHistory = exports.ɵbg;
4787
5003
  exports.PlaceModule = PlaceModule;
4788
5004
  exports.PlaceOutletComponent = PlaceOutletComponent;
4789
5005
  exports.PlaceRouter = PlaceRouter;
@@ -4816,21 +5032,23 @@
4816
5032
  exports.slideRightOnEnterAnimation = slideRightOnEnterAnimation;
4817
5033
  exports.ɵa = DirectivesModule;
4818
5034
  exports.ɵb = CommandDirective;
4819
- exports.ɵbb = ModalInteractionContextFactory;
4820
- exports.ɵbc = UrlService;
4821
- exports.ɵbe = TabbedPlaceNavigationComponent;
4822
- exports.ɵbf = AbstractPlaceNavigationComponent;
4823
- exports.ɵbg = ListPlaceNavComponent;
4824
- exports.ɵbh = InteractionModule;
4825
- exports.ɵbi = ActivityContainerComponent;
4826
- exports.ɵbj = AbstractInteractionContext;
4827
- exports.ɵbk = ActivityOutletComponent;
4828
- exports.ɵbl = ConfirmationDialogComponent;
4829
- exports.ɵbm = ACTIVITY_DATA;
4830
- exports.ɵbn = Activity;
4831
- exports.ɵbp = ConfirmThenDialogComponent;
4832
- exports.ɵbq = AlertDialogComponent;
4833
- 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;
4834
5052
  exports.ɵc = FocusBindingDirective;
4835
5053
  exports.ɵd = DisposableComponent;
4836
5054
  exports.ɵe = ComponentsModule;
@@ -4846,14 +5064,14 @@
4846
5064
  exports.ɵo = SwitchCaseWhenDirective;
4847
5065
  exports.ɵp = SwitchCaseDefaultDirective;
4848
5066
  exports.ɵq = SwitchCaseComponent;
4849
- exports.ɵr = PlaceModule;
4850
- exports.ɵs = EmptyStateComponent;
4851
- exports.ɵt = BusyOverlayComponent;
4852
- exports.ɵu = PlaceOutletComponent;
4853
- exports.ɵv = leftRightPlaceAnimation;
4854
- exports.ɵw = LEFT_RIGHT_PLACE_ANIMATION;
4855
- exports.ɵx = AUP_PLACE_CONFIG;
4856
- 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;
4857
5075
 
4858
5076
  Object.defineProperty(exports, '__esModule', { value: true });
4859
5077