@coolon/angular-ui-powerups 11.0.0-alpha.9 → 11.1.0

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 (108) hide show
  1. package/bundles/coolon-angular-ui-powerups.umd.js +220 -30
  2. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  3. package/bundles/coolon-angular-ui-powerups.umd.min.js +1 -1
  4. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
  5. package/coolon-angular-ui-powerups.metadata.json +1 -1
  6. package/esm2015/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  7. package/esm2015/lib/components/commands/group/popup-menu/abstract-popup-menu.component.js +13 -2
  8. package/esm2015/lib/components/commands/group/popup-menu/abstract-popup-menu.component.js.map +1 -1
  9. package/esm2015/lib/components/commands/group/popup-menu/abstract-popup-menu.component.metadata.json +1 -1
  10. package/esm2015/lib/components/commands/group/popup-menu/more-menu.component.js +1 -1
  11. package/esm2015/lib/components/commands/group/popup-menu/more-menu.component.js.map +1 -1
  12. package/esm2015/lib/components/commands/group/popup-menu/more-menu.component.metadata.json +1 -1
  13. package/esm2015/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.js +6 -3
  14. package/esm2015/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.js.map +1 -1
  15. package/esm2015/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.metadata.json +1 -1
  16. package/esm2015/lib/components/commands/group/popup-menu/popup-menu.component.js +1 -1
  17. package/esm2015/lib/components/commands/group/popup-menu/popup-menu.component.js.map +1 -1
  18. package/esm2015/lib/components/commands/group/popup-menu/popup-menu.component.metadata.json +1 -1
  19. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  20. package/esm2015/lib/components/table/column-model.js +7 -0
  21. package/esm2015/lib/components/table/column-model.js.map +1 -1
  22. package/esm2015/lib/components/table/column-model.metadata.json +1 -1
  23. package/esm2015/lib/components/table/default-cell-renderer/default-cell-renderer.component.js +1 -1
  24. package/esm2015/lib/components/table/default-cell-renderer/default-cell-renderer.component.js.map +1 -1
  25. package/esm2015/lib/components/table/default-cell-renderer/default-cell-renderer.component.metadata.json +1 -1
  26. package/esm2015/lib/components/table/table.component.js +1 -1
  27. package/esm2015/lib/components/table/table.component.metadata.json +1 -1
  28. package/esm2015/lib/components/track-by.js +5 -1
  29. package/esm2015/lib/components/track-by.js.map +1 -1
  30. package/esm2015/lib/directives/directives.module.js +8 -2
  31. package/esm2015/lib/directives/directives.module.js.map +1 -1
  32. package/esm2015/lib/directives/directives.module.metadata.json +1 -1
  33. package/esm2015/lib/directives/directives.module.ngfactory.js.map +1 -1
  34. package/esm2015/lib/directives/exports.js +2 -0
  35. package/esm2015/lib/directives/exports.js.map +1 -1
  36. package/esm2015/lib/directives/exports.metadata.json +1 -1
  37. package/esm2015/lib/directives/highlight-text-model.directive.js +25 -0
  38. package/esm2015/lib/directives/highlight-text-model.directive.js.map +1 -0
  39. package/esm2015/lib/directives/highlight-text-model.directive.metadata.json +1 -0
  40. package/esm2015/lib/directives/highlight-text-model.directive.ngfactory.js.map +1 -0
  41. package/esm2015/lib/directives/highlight.pipe.js +43 -0
  42. package/esm2015/lib/directives/highlight.pipe.js.map +1 -0
  43. package/esm2015/lib/directives/highlight.pipe.metadata.json +1 -0
  44. package/esm2015/lib/directives/highlight.pipe.ngfactory.js.map +1 -0
  45. package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  46. package/esm2015/lib/place/components/abstract-place-navigation.component.js +10 -15
  47. package/esm2015/lib/place/components/abstract-place-navigation.component.js.map +1 -1
  48. package/esm2015/lib/place/components/abstract-place-navigation.component.metadata.json +1 -1
  49. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +1 -1
  50. package/esm2015/lib/place/components/place-outlet/place-outlet.component.metadata.json +1 -1
  51. package/esm2015/lib/place/place.module.ngfactory.js.map +1 -1
  52. package/esm2015/lib/services/exports.js +5 -0
  53. package/esm2015/lib/services/exports.js.map +1 -0
  54. package/esm2015/lib/services/exports.metadata.json +1 -0
  55. package/esm2015/lib/services/visibility-service.js +74 -0
  56. package/esm2015/lib/services/visibility-service.js.map +1 -0
  57. package/esm2015/lib/services/visibility-service.metadata.json +1 -0
  58. package/esm2015/lib/services/visibility-service.ngfactory.js.map +1 -0
  59. package/esm2015/public-api.js +1 -0
  60. package/esm2015/public-api.js.map +1 -1
  61. package/esm2015/public-api.metadata.json +1 -1
  62. package/fesm2015/coolon-angular-ui-powerups.js +187 -30
  63. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  64. package/lib/components/commands/group/popup-menu/abstract-popup-menu.component.d.ts +3 -1
  65. package/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.d.ts +2 -1
  66. package/lib/components/table/column-model.d.ts +5 -0
  67. package/lib/components/track-by.d.ts +3 -1
  68. package/lib/directives/exports.d.ts +2 -0
  69. package/lib/directives/highlight-text-model.directive.d.ts +7 -0
  70. package/lib/directives/highlight.pipe.d.ts +11 -0
  71. package/lib/place/components/abstract-place-navigation.component.d.ts +1 -1
  72. package/lib/services/exports.d.ts +4 -0
  73. package/lib/services/visibility-service.d.ts +12 -0
  74. package/package.json +1 -1
  75. package/public-api.d.ts +1 -0
  76. package/schematics/aup-i18n/index.js +8 -28
  77. package/schematics/aup-i18n/index.js.map +1 -1
  78. package/schematics/aup-i18n/templates/app/aup.i18n.yml.template +80 -0
  79. package/schematics/bootstrap-app/index.js +5 -4
  80. package/schematics/bootstrap-app/index.js.map +1 -1
  81. package/schematics/bootstrap-app/templates/{i18n/config.json.template → i18n.config.json.template} +2 -0
  82. package/schematics/ng-add/index.js +2 -2
  83. package/schematics/ng-add/index.js.map +1 -1
  84. package/schematics/place-add/index.js +4 -5
  85. package/schematics/place-add/index.js.map +1 -1
  86. package/schematics/place-add/templates/component/__name@dasherize__.component.ts.template +3 -1
  87. package/schematics/place-add/templates/component/__name@dasherize__.i18n.yml.template +5 -0
  88. package/schematics/aup-i18n/templates/i18n/aup/components.yml.template +0 -69
  89. package/schematics/bootstrap-app/templates/i18n/notifications.yml.template +0 -19
  90. package/schematics/place-add/templates/files/i18n/places/__name@dasherize__.yml.template +0 -7
  91. /package/schematics/bootstrap-app/templates/{app → src/app}/app-routing.module.ts.template +0 -0
  92. /package/schematics/bootstrap-app/templates/{app → src/app}/app.component.html.template +0 -0
  93. /package/schematics/bootstrap-app/templates/{app → src/app}/app.component.scss.template +0 -0
  94. /package/schematics/bootstrap-app/templates/{app → src/app}/app.component.ts.template +0 -0
  95. /package/schematics/bootstrap-app/templates/{app → src/app}/app.module.ts.template +0 -0
  96. /package/schematics/bootstrap-app/templates/{app → src/app}/i18n.ts.template +0 -0
  97. /package/schematics/bootstrap-app/templates/{assets → src/assets}/fonts/material-design-icons/MaterialIcons-Regular.eot +0 -0
  98. /package/schematics/bootstrap-app/templates/{assets → src/assets}/fonts/material-design-icons/MaterialIcons-Regular.ijmap +0 -0
  99. /package/schematics/bootstrap-app/templates/{assets → src/assets}/fonts/material-design-icons/MaterialIcons-Regular.svg +0 -0
  100. /package/schematics/bootstrap-app/templates/{assets → src/assets}/fonts/material-design-icons/MaterialIcons-Regular.ttf +0 -0
  101. /package/schematics/bootstrap-app/templates/{assets → src/assets}/fonts/material-design-icons/MaterialIcons-Regular.woff +0 -0
  102. /package/schematics/bootstrap-app/templates/{assets → src/assets}/fonts/material-design-icons/MaterialIcons-Regular.woff2 +0 -0
  103. /package/schematics/bootstrap-app/templates/{assets → src/assets}/fonts/material-design-icons/README.md +0 -0
  104. /package/schematics/bootstrap-app/templates/{assets → src/assets}/fonts/material-design-icons/codepoints +0 -0
  105. /package/schematics/bootstrap-app/templates/{assets → src/assets}/fonts/material-design-icons/material-icons.css +0 -0
  106. /package/schematics/bootstrap-app/templates/{index.html.template → src/index.html.template} +0 -0
  107. /package/schematics/bootstrap-app/templates/{styles → src/styles}/global-variables.scss.template +0 -0
  108. /package/schematics/bootstrap-app/templates/{styles.scss.template → src/styles.scss.template} +0 -0
@@ -1,14 +1,35 @@
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/divider'), require('@angular/material/icon'), require('@angular/material/menu'), require('@angular/material/progress-spinner'), require('@angular/material/table'), require('@angular/material/tooltip'), require('@fortawesome/angular-fontawesome'), require('@fortawesome/free-solid-svg-icons'), require('@coolon/pectin'), require('@typescript-plus/fast-memoize-decorator/dist/src'), require('lodash'), require('typescript-string-enums'), require('resize-observer-polyfill'), require('@coolon/typescript-utilities'), require('immer'), require('@angular/flex-layout'), require('@angular/material/dialog'), require('@angular/router'), require('@angular/cdk/overlay'), require('@angular/material/list'), require('@typescript-plus/fast-memoize-decorator'), require('reflect-metadata'), require('@angular/animations')) :
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/divider', '@angular/material/icon', '@angular/material/menu', '@angular/material/progress-spinner', '@angular/material/table', '@angular/material/tooltip', '@fortawesome/angular-fontawesome', '@fortawesome/free-solid-svg-icons', '@coolon/pectin', '@typescript-plus/fast-memoize-decorator/dist/src', 'lodash', 'typescript-string-enums', 'resize-observer-polyfill', '@coolon/typescript-utilities', 'immer', '@angular/flex-layout', '@angular/material/dialog', '@angular/router', '@angular/cdk/overlay', '@angular/material/list', '@typescript-plus/fast-memoize-decorator', 'reflect-metadata', '@angular/animations'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : 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.divider, global.ng.material.icon, global.ng.material.menu, global.ng.material.progressSpinner, global.ng.material.table, global.ng.material.tooltip, global.angularFontawesome, global.freeSolidSvgIcons, global.pectin, global.src, global._, global.typescriptStringEnums, global.ResizeObserver, global.typescriptUtilities, global.produce, global.ng.flexLayout, global.ng.material.dialog, global.ng.router, global.ng.cdk.overlay, global.ng.material.list, global.fastMemoizeDecorator, null, global.ng.animations));
5
- }(this, (function (exports, i2, i0, forms, formField, input, select, tabs, animations, portal, scrolling, autocomplete, button, checkbox, divider, icon, menu, progressSpinner, table, tooltip, angularFontawesome, freeSolidSvgIcons, pectin, src, _, typescriptStringEnums, ResizeObserver, typescriptUtilities, produce, flexLayout, i1, i1$1, overlay, list, fastMemoizeDecorator, reflectMetadata, animations$1) { '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/autocomplete'), require('@angular/material/button'), require('@angular/material/checkbox'), require('@angular/material/divider'), require('@angular/material/icon'), require('@angular/material/menu'), require('@angular/material/progress-spinner'), require('@angular/material/table'), require('@angular/material/tooltip'), require('@fortawesome/angular-fontawesome'), require('@fortawesome/free-solid-svg-icons'), require('@coolon/pectin'), require('@angular/platform-browser'), require('lodash'), require('@typescript-plus/fast-memoize-decorator/dist/src'), require('typescript-string-enums'), require('resize-observer-polyfill'), require('@coolon/typescript-utilities'), require('immer'), require('@angular/flex-layout'), require('@angular/material/dialog'), require('@angular/router'), require('@angular/cdk/overlay'), require('@angular/material/list'), require('@typescript-plus/fast-memoize-decorator'), require('reflect-metadata'), require('@angular/animations'), require('wake-event')) :
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/divider', '@angular/material/icon', '@angular/material/menu', '@angular/material/progress-spinner', '@angular/material/table', '@angular/material/tooltip', '@fortawesome/angular-fontawesome', '@fortawesome/free-solid-svg-icons', '@coolon/pectin', '@angular/platform-browser', 'lodash', '@typescript-plus/fast-memoize-decorator/dist/src', 'typescript-string-enums', 'resize-observer-polyfill', '@coolon/typescript-utilities', 'immer', '@angular/flex-layout', '@angular/material/dialog', '@angular/router', '@angular/cdk/overlay', '@angular/material/list', '@typescript-plus/fast-memoize-decorator', 'reflect-metadata', '@angular/animations', 'wake-event'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : 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.divider, global.ng.material.icon, global.ng.material.menu, global.ng.material.progressSpinner, global.ng.material.table, global.ng.material.tooltip, global.angularFontawesome, global.freeSolidSvgIcons, global.pectin, global.ng.platformBrowser, global._, global.src, global.typescriptStringEnums, global.ResizeObserver, global.typescriptUtilities, global.produce, global.ng.flexLayout, global.ng.material.dialog, global.ng.router, global.ng.cdk.overlay, global.ng.material.list, global.fastMemoizeDecorator, null, global.ng.animations, global.wakeEvent));
5
+ }(this, (function (exports, i2, i0, forms, formField, input, select, tabs, animations, portal, scrolling, autocomplete, button, checkbox, divider, icon, menu, progressSpinner, table, tooltip, angularFontawesome, freeSolidSvgIcons, pectin, platformBrowser, _, src, typescriptStringEnums, ResizeObserver, typescriptUtilities, produce, flexLayout, i1, i1$1, overlay, list, fastMemoizeDecorator, reflectMetadata, animations$1, wakeEvent) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
9
+ function _interopNamespace(e) {
10
+ if (e && e.__esModule) return e;
11
+ var n = Object.create(null);
12
+ if (e) {
13
+ Object.keys(e).forEach(function (k) {
14
+ if (k !== 'default') {
15
+ var d = Object.getOwnPropertyDescriptor(e, k);
16
+ Object.defineProperty(n, k, d.get ? d : {
17
+ enumerable: true,
18
+ get: function () {
19
+ return e[k];
20
+ }
21
+ });
22
+ }
23
+ });
24
+ }
25
+ n['default'] = e;
26
+ return Object.freeze(n);
27
+ }
28
+
9
29
  var ___default = /*#__PURE__*/_interopDefaultLegacy(_);
10
30
  var ResizeObserver__default = /*#__PURE__*/_interopDefaultLegacy(ResizeObserver);
11
31
  var produce__default = /*#__PURE__*/_interopDefaultLegacy(produce);
32
+ var wakeEvent__namespace = /*#__PURE__*/_interopNamespace(wakeEvent);
12
33
 
13
34
  /*! *****************************************************************************
14
35
  Copyright (c) Microsoft Corporation.
@@ -605,6 +626,71 @@
605
626
  onFocusOut: [{ type: i0.HostListener, args: ['focusout',] }]
606
627
  };
607
628
 
629
+ var HighlightTextModelDirective = /** @class */ (function (_super) {
630
+ __extends(HighlightTextModelDirective, _super);
631
+ function HighlightTextModelDirective() {
632
+ return _super.call(this) || this;
633
+ }
634
+ HighlightTextModelDirective.prototype.ngOnDestroy = function () {
635
+ this.dispose();
636
+ };
637
+ return HighlightTextModelDirective;
638
+ }(pectin.GarbageCollector));
639
+ HighlightTextModelDirective.decorators = [
640
+ { type: i0.Directive, args: [{
641
+ selector: '[aupHighlightTextModel]'
642
+ },] }
643
+ ];
644
+ HighlightTextModelDirective.ctorParameters = function () { return []; };
645
+ HighlightTextModelDirective.propDecorators = {
646
+ aupHighlightTextModel: [{ type: i0.Input }]
647
+ };
648
+ __decorate([
649
+ pectin.TrackExternal(),
650
+ __metadata("design:type", pectin.ValueModel)
651
+ ], HighlightTextModelDirective.prototype, "aupHighlightTextModel", void 0);
652
+
653
+ var HighlightPipe = /** @class */ (function (_super) {
654
+ __extends(HighlightPipe, _super);
655
+ function HighlightPipe(sanitizer, highlightContext) {
656
+ var _this = _super.call(this) || this;
657
+ _this.sanitizer = sanitizer;
658
+ _this.highlightContext = highlightContext;
659
+ return _this;
660
+ }
661
+ HighlightPipe.prototype.ngOnDestroy = function () {
662
+ this.dispose();
663
+ };
664
+ HighlightPipe.prototype.transform = function (value, searchModel) {
665
+ var _a;
666
+ var model = searchModel !== null && searchModel !== void 0 ? searchModel : (_a = this.highlightContext) === null || _a === void 0 ? void 0 : _a.aupHighlightTextModel;
667
+ var searchText = model === null || model === void 0 ? void 0 : model.value;
668
+ if (___default['default'].isEmpty(searchText) || !___default['default'].isString(value)) {
669
+ return value;
670
+ }
671
+ // Match in a case insensitive manner
672
+ var re = new RegExp(searchText, 'gi');
673
+ var match = value.match(re);
674
+ // If there's no match, just return the original value.
675
+ if (!match) {
676
+ return value;
677
+ }
678
+ var result = value.replace(re, '<mark>' + match[0] + '</mark>');
679
+ return this.sanitizer.bypassSecurityTrustHtml(result);
680
+ };
681
+ return HighlightPipe;
682
+ }(pectin.GarbageCollector));
683
+ HighlightPipe.decorators = [
684
+ { type: i0.Pipe, args: [{
685
+ name: 'aupHighlight',
686
+ pure: false
687
+ },] }
688
+ ];
689
+ HighlightPipe.ctorParameters = function () { return [
690
+ { type: platformBrowser.DomSanitizer },
691
+ { type: HighlightTextModelDirective, decorators: [{ type: i0.Optional }] }
692
+ ]; };
693
+
608
694
  var DirectivesModule = /** @class */ (function () {
609
695
  function DirectivesModule() {
610
696
  }
@@ -614,7 +700,9 @@
614
700
  { type: i0.NgModule, args: [{
615
701
  declarations: [
616
702
  CommandDirective,
617
- FocusBindingDirective
703
+ FocusBindingDirective,
704
+ HighlightPipe,
705
+ HighlightTextModelDirective
618
706
  ],
619
707
  imports: [
620
708
  i2.CommonModule,
@@ -627,7 +715,9 @@
627
715
  ],
628
716
  exports: [
629
717
  CommandDirective,
630
- FocusBindingDirective
718
+ FocusBindingDirective,
719
+ HighlightPipe,
720
+ HighlightTextModelDirective
631
721
  ]
632
722
  },] }
633
723
  ];
@@ -1154,8 +1244,18 @@
1154
1244
  AbstractPopupMenuComponent.propDecorators = {
1155
1245
  xPosition: [{ type: i0.Input }],
1156
1246
  yPosition: [{ type: i0.Input }],
1157
- triggers: [{ type: i0.ViewChildren, args: [menu.MatMenuTrigger,] }]
1247
+ triggers: [{ type: i0.ViewChildren, args: [menu.MatMenuTrigger,] }],
1248
+ enabled: [{ type: i0.Input }],
1249
+ enabledModel: [{ type: i0.Input }]
1158
1250
  };
1251
+ __decorate([
1252
+ pectin.StoreInValueModel("enabledModel"),
1253
+ __metadata("design:type", Boolean)
1254
+ ], AbstractPopupMenuComponent.prototype, "enabled", void 0);
1255
+ __decorate([
1256
+ pectin.TrackExternal({ defaultValue: true }),
1257
+ __metadata("design:type", pectin.ValueModel)
1258
+ ], AbstractPopupMenuComponent.prototype, "enabledModel", void 0);
1159
1259
 
1160
1260
  /**
1161
1261
  *
@@ -1188,7 +1288,7 @@
1188
1288
  MoreMenuComponent.decorators = [
1189
1289
  { type: i0.Component, args: [{
1190
1290
  selector: 'aup-more-menu',
1191
- template: "<div class=\"content\" style=\"display: none\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"isRoot()\">\n <ng-container *ngIf=\"faceAdapter.text\" [ngSwitch]=\"faceAdapter.style\">\n <ng-container *ngSwitchCase=\"'stroked'\">\n <button matMenuTrigger\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n mat-stroked-button>\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu\n [parent]=\"this\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'raised'\">\n <button matMenuTrigger\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n mat-raised-button>\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu\n [parent]=\"this\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <button matMenuTrigger\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n mat-button>\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu [parent]=\"this\" (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n </ng-container>\n\n <ng-container *ngIf=\"!faceAdapter.text\">\n <button matMenuTrigger\n mat-icon-button\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n >\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu\n [parent]=\"this\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n</ng-container>\n",
1291
+ template: "<div class=\"content\" style=\"display: none\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"isRoot()\">\n <ng-container *ngIf=\"faceAdapter.text\" [ngSwitch]=\"faceAdapter.style\">\n <ng-container *ngSwitchCase=\"'stroked'\">\n <button matMenuTrigger\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n [disabled]=\"!enabled\"\n mat-stroked-button>\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu\n [parent]=\"this\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'raised'\">\n <button matMenuTrigger\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n [disabled]=\"!enabled\"\n mat-raised-button>\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu\n [parent]=\"this\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <button matMenuTrigger\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n [disabled]=\"!enabled\"\n mat-button>\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu [parent]=\"this\" (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n </ng-container>\n\n <ng-container *ngIf=\"!faceAdapter.text\">\n <button matMenuTrigger\n mat-icon-button\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n [disabled]=\"!enabled\"\n >\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu\n [parent]=\"this\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n</ng-container>\n",
1192
1292
  providers: [
1193
1293
  { provide: POPUP_CONTAINER, useExisting: MoreMenuComponent }
1194
1294
  ]
@@ -1207,7 +1307,11 @@
1207
1307
  ], MoreMenuComponent.prototype, "tooltip", void 0);
1208
1308
 
1209
1309
  (function (TrackBy) {
1210
- TrackBy.byIndex = function (data, index) { return index; };
1310
+ TrackBy.byIndex = function (index, item) { return index; };
1311
+ function trackByProperty(property) {
1312
+ return function (index, item) { return item[property]; };
1313
+ }
1314
+ TrackBy.trackByProperty = trackByProperty;
1211
1315
  })(exports.TrackBy || (exports.TrackBy = {}));
1212
1316
 
1213
1317
  exports.CommandContainer = /** @class */ (function (_super) {
@@ -1356,8 +1460,8 @@
1356
1460
  });
1357
1461
  }
1358
1462
  };
1359
- PopupMenuRendererComponent.prototype.isEnabled = function (data) {
1360
- return true; //ViewData.getCommand(data).enabled.value;
1463
+ PopupMenuRendererComponent.prototype.isCommandEnabled = function (data) {
1464
+ return this.isCommand(data) && data.command.enabled.value;
1361
1465
  };
1362
1466
  // @Trace()
1363
1467
  PopupMenuRendererComponent.prototype.onCommandFired = function () {
@@ -1374,6 +1478,9 @@
1374
1478
  PopupMenuRendererComponent.prototype.isPopupMenu = function (child) {
1375
1479
  return child instanceof AbstractPopupMenuComponent;
1376
1480
  };
1481
+ PopupMenuRendererComponent.prototype.isPopupMenuEnabled = function (child) {
1482
+ return this.isPopupMenu(child) && child.enabled;
1483
+ };
1377
1484
  PopupMenuRendererComponent.prototype.isSeparator = function (child) {
1378
1485
  return child instanceof SeparatorComponent;
1379
1486
  };
@@ -1392,7 +1499,7 @@
1392
1499
  PopupMenuRendererComponent.decorators = [
1393
1500
  { type: i0.Component, args: [{
1394
1501
  selector: 'aup-popup-menu-renderer',
1395
- template: "<mat-menu #menu [xPosition]=\"parent.xPosition\" [yPosition]=\"parent.yPosition\">\n <ng-template matMenuContent>\n <ng-container *ngFor=\"let child of children; trackBy: TrackBy.byIndex\" >\n <button *ngIf=\"isCommand(child)\"\n (click)=\"executeCommand(child)\"\n [disabled]=\"!isEnabled(child)\"\n [matTooltip]=\"getTooltip(child)\"\n mat-menu-item>\n <aup-command-face [faces]=\"getFaces(child)\"\n [includeMissingIconInLayout]=\"hasMixedIcons.value\"></aup-command-face>\n </button>\n\n <ng-container *ngIf=\"isPopupMenu(child)\">\n <button mat-menu-item\n matMenuTrigger\n [matMenuTriggerFor]=\"innerPanel.menuComponent\"\n >\n <aup-command-face [faces]=\"getFaces(child)\"\n [includeMissingIconInLayout]=\"hasMixedIcons.value\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #innerPanel\n [parent]=\"child\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n <mat-divider *ngIf=\"isSeparator(child)\"></mat-divider>\n\n </ng-container>\n\n </ng-template>\n</mat-menu>\n"
1502
+ template: "<mat-menu #menu [xPosition]=\"parent.xPosition\" [yPosition]=\"parent.yPosition\">\n <ng-template matMenuContent>\n <ng-container *ngFor=\"let child of children; trackBy: TrackBy.byIndex\" >\n <button *ngIf=\"isCommand(child)\"\n (click)=\"executeCommand(child)\"\n [disabled]=\"!isCommandEnabled(child)\"\n [matTooltip]=\"getTooltip(child)\"\n mat-menu-item>\n <aup-command-face [faces]=\"getFaces(child)\"\n [includeMissingIconInLayout]=\"hasMixedIcons.value\"></aup-command-face>\n </button>\n\n <ng-container *ngIf=\"isPopupMenu(child)\">\n <button mat-menu-item\n matMenuTrigger\n [disabled]=\"!isPopupMenuEnabled(child)\"\n [matMenuTriggerFor]=\"innerPanel.menuComponent\"\n >\n <aup-command-face [faces]=\"getFaces(child)\"\n [includeMissingIconInLayout]=\"hasMixedIcons.value\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #innerPanel\n [parent]=\"child\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n <mat-divider *ngIf=\"isSeparator(child)\"></mat-divider>\n\n </ng-container>\n\n </ng-template>\n</mat-menu>\n"
1396
1503
  },] }
1397
1504
  ];
1398
1505
  PopupMenuRendererComponent.ctorParameters = function () { return []; };
@@ -1419,7 +1526,7 @@
1419
1526
  PopupMenuComponent.decorators = [
1420
1527
  { type: i0.Component, args: [{
1421
1528
  selector: 'aup-popup-menu',
1422
- template: "<div class=\"content\" style=\"display: none\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"isRoot()\">\n <ng-container *ngIf=\"faceAdapter.text\" [ngSwitch]=\"faceAdapter.style\">\n <ng-container *ngSwitchCase=\"'stroked'\">\n <button matMenuTrigger\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n mat-stroked-button>\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu\n [parent]=\"this\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'raised'\">\n <button matMenuTrigger\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n mat-raised-button>\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu\n [parent]=\"this\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <button matMenuTrigger\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n mat-button>\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu [parent]=\"this\" (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n </ng-container>\n\n <ng-container *ngIf=\"!faceAdapter.text\">\n <button matMenuTrigger\n mat-icon-button\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n >\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu\n [parent]=\"this\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n</ng-container>\n",
1529
+ template: "<div class=\"content\" style=\"display: none\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"isRoot()\">\n <ng-container *ngIf=\"faceAdapter.text\" [ngSwitch]=\"faceAdapter.style\">\n <ng-container *ngSwitchCase=\"'stroked'\">\n <button matMenuTrigger\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n [disabled]=\"!enabled\"\n mat-stroked-button>\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu\n [parent]=\"this\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'raised'\">\n <button matMenuTrigger\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n [disabled]=\"!enabled\"\n mat-raised-button>\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu\n [parent]=\"this\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <button matMenuTrigger\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n [disabled]=\"!enabled\"\n mat-button>\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu [parent]=\"this\" (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n\n </ng-container>\n\n <ng-container *ngIf=\"!faceAdapter.text\">\n <button matMenuTrigger\n mat-icon-button\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"faceAdapter.tooltip\"\n [color]=\"faceAdapter.color\"\n [disabled]=\"!enabled\"\n >\n <aup-command-face [faces]=\"[face]\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer #subMenu\n [parent]=\"this\"\n (commandFired)=\"onCommandFired()\"></aup-popup-menu-renderer>\n </ng-container>\n</ng-container>\n",
1423
1530
  providers: [
1424
1531
  { provide: POPUP_CONTAINER, useExisting: PopupMenuComponent }
1425
1532
  ]
@@ -2566,7 +2673,7 @@
2566
2673
  DefaultCellRendererComponent.decorators = [
2567
2674
  { type: i0.Component, args: [{
2568
2675
  selector: 'aup-default-cell-renderer',
2569
- template: "{{value}}\n",
2676
+ template: "<span [innerHTML]=\"value| aupHighlight\"></span>\n",
2570
2677
  styles: [""]
2571
2678
  },] }
2572
2679
  ];
@@ -2741,7 +2848,14 @@
2741
2848
  ColumnModel.prototype.getColumnTextProperties = function () {
2742
2849
  return this._columnTextProperties || this.textPropertiesProvider();
2743
2850
  };
2851
+ /**
2852
+ * @deprecated use #columnTextProperties instead
2853
+ * @param columnTextProperties
2854
+ */
2744
2855
  ColumnModel.prototype.textProperties = function (columnTextProperties) {
2856
+ return this.columnTextProperties(columnTextProperties);
2857
+ };
2858
+ ColumnModel.prototype.columnTextProperties = function (columnTextProperties) {
2745
2859
  this._columnTextProperties = columnTextProperties;
2746
2860
  return this;
2747
2861
  };
@@ -3447,7 +3561,7 @@
3447
3561
  { type: i0.Component, args: [{
3448
3562
  selector: 'aup-table',
3449
3563
  template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"tableModel.dataSource.value\" [trackBy]=\"tableModel.trackBy\">\n\n <ng-container *ngFor=\"let column of columns.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell-renderer [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell-renderer>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell-renderer [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"tableModel\"\n [editSession]=\"tableModel.getEditSessionFor(row)\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-cell-renderer>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds.value\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\" [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [attr.trackBy]=\"tableModel.trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\n",
3450
- styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host.enable-scrolling{min-height:0}:host.enable-scrolling .scroll-container{flex:1;flex-basis:0;overflow-y:scroll;display:flex;flex-direction:column;align-items:stretch}"]
3564
+ styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host.enable-scrolling{min-height:0}:host.enable-scrolling .scroll-container{flex:1;flex-basis:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}"]
3451
3565
  },] }
3452
3566
  ];
3453
3567
  TableComponent.ctorParameters = function () { return [
@@ -8357,7 +8471,7 @@
8357
8471
  selector: 'aup-place-outlet',
8358
8472
  template: "<ng-container *ngIf=\"animationEnabled.value\">\n <div class=\"router-outlet-container\"\n cdkScrollable\n [@routeAnimations]=\"{value: getAnimationOrder(), params:{duration: animationDuration}}\"\n (@routeAnimations.start)=\"animationStarted()\"\n (@routeAnimations.done)=\"animationDone()\"\n >\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!animationEnabled.value\">\n <div class=\"router-outlet-container\"\n cdkScrollable>\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n<div class=\"not-authorised-component-container\" *ngIf=\"!authorised.value\">\n <ng-template [cdkPortalOutlet]=\"notAuthorisedNoticePortal\"></ng-template>\n</div>\n",
8359
8473
  animations: [LEFT_RIGHT_PLACE_ANIMATION],
8360
- styles: [":host{display:flex;flex-direction:column;min-height:0}:host:not(.authorised) .router-outlet-container{display:none}.router-outlet-container{flex:1;display:block;position:relative;min-height:0;overflow-x:hidden;overflow-y:scroll}router-outlet{display:none}.not-authorised-component-container{flex:1;display:grid;grid-template-columns:1fr;grid-template-rows:1fr}"]
8474
+ styles: [":host{display:flex;flex-direction:column;min-height:0}:host:not(.authorised) .router-outlet-container{display:none}.router-outlet-container{flex:1;display:block;position:relative;min-height:0;overflow-x:hidden;overflow-y:auto}router-outlet{display:none}.not-authorised-component-container{flex:1;display:grid;grid-template-columns:1fr;grid-template-rows:1fr}"]
8361
8475
  },] }
8362
8476
  ];
8363
8477
  PlaceOutletComponent.ctorParameters = function () { return [
@@ -8412,12 +8526,7 @@
8412
8526
  _this.commandFactory = pectin.Command.createFactory(function (placeDefinition) {
8413
8527
  _this.placeOutlet.navigate(new Visit(placeDefinition));
8414
8528
  });
8415
- when(_this.placeOutletModel).changes(function (outlet) {
8416
- // NOTE: this updates during a change cycle and causes our isActiveMethod to return 2 different
8417
- // values in the one change detection cycle. So instead we delay the update to a different
8418
- // tick.
8419
- setTimeout(function () { return _this._activePlaceComponent.setDelegate(outlet ? outlet.activePlaceModel : null); });
8420
- });
8529
+ when(_this.placeOutletModel).changes(function (outlet) { return _this.handlePlaceOutLetChanged(outlet); }, { initialValue: "triggerChange" });
8421
8530
  _this.activePlaceDefinition = chain(_this._activePlaceComponent).pluck('placeDefinition');
8422
8531
  _this.menuItems = chain(_this.placeDefinitions).map(function (d) {
8423
8532
  return {
@@ -8427,13 +8536,16 @@
8427
8536
  }, {
8428
8537
  dependsOn: _this.activePlaceDefinition
8429
8538
  });
8430
- var txo = new pectin.TransactionObserver({ verbose: true }).onEvent(function (e) { return console.log(e.name, e.payload); });
8431
- txo.observe('this.placesModel', _this.placesModel);
8432
- txo.observe('this.placeDefinitions', _this.placeDefinitions);
8433
- txo.observe('this.activePlaceDefinition', _this.activePlaceDefinition);
8434
- txo.observe('this.menuItems', _this.menuItems);
8435
8539
  return _this;
8540
+ // const txo = new TransactionObserver({ verbose: true }).onEvent(e => console.log(e.name, e.payload));
8541
+ // txo.observe('this.placesModel', this.placesModel);
8542
+ // txo.observe('this.placeDefinitions', this.placeDefinitions);
8543
+ // txo.observe('this.activePlaceDefinition', this.activePlaceDefinition);
8544
+ // txo.observe('this.menuItems', this.menuItems);
8436
8545
  }
8546
+ AbstractPlaceNavigationComponent.prototype.handlePlaceOutLetChanged = function (outlet) {
8547
+ this._activePlaceComponent.setDelegate(outlet ? outlet.activePlaceModel : null);
8548
+ };
8437
8549
  AbstractPlaceNavigationComponent.prototype.getNavigationFace = function (placeDef) {
8438
8550
  var navItem = placeDef.getPlaceData('nav');
8439
8551
  return {
@@ -8442,9 +8554,6 @@
8442
8554
  icon: function () { return navItem && navItem.icon ? navItem.icon() : placeDef.getPlaceData('navIcon', null); }
8443
8555
  };
8444
8556
  };
8445
- AbstractPlaceNavigationComponent.prototype.isActive = function (place) {
8446
- return;
8447
- };
8448
8557
  AbstractPlaceNavigationComponent.prototype.ngOnInit = function () {
8449
8558
  };
8450
8559
  return AbstractPlaceNavigationComponent;
@@ -9195,6 +9304,84 @@
9195
9304
  };
9196
9305
  }
9197
9306
 
9307
+ /**
9308
+ * @file Automatically generated by barrelsby.
9309
+ */
9310
+
9311
+ // Taken from: https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API
9312
+ var VisibilityService = /** @class */ (function (_super) {
9313
+ __extends(VisibilityService, _super);
9314
+ // private _wakeEvents = new MutableStream<Instant>();
9315
+ // private _throttledWakeEvents: Stream<Instant>;
9316
+ function VisibilityService(document) {
9317
+ var _this = _super.call(this) || this;
9318
+ _this._visibleModel = new pectin.MutableValueModel();
9319
+ _this.document = document; // see https://stackoverflow.com/a/53715642
9320
+ var chain = pectin.Dsl.disposeWith(_this).chain;
9321
+ // Set the name of the hidden property and the change event for visibility
9322
+ if (typeof _this.document.hidden !== 'undefined') { // Opera 12.10 and Firefox 18 and later support
9323
+ _this.attributeName = 'hidden';
9324
+ _this.eventName = 'visibilitychange';
9325
+ }
9326
+ else if (typeof _this.document['msHidden'] !== 'undefined') {
9327
+ _this.attributeName = 'msHidden';
9328
+ _this.eventName = 'msvisibilitychange';
9329
+ }
9330
+ else if (typeof _this.document['webkitHidden'] !== 'undefined') {
9331
+ _this.attributeName = 'webkitHidden';
9332
+ _this.eventName = 'webkitvisibilitychange';
9333
+ }
9334
+ // Warn if the browser doesn't support addEventListener or the Page Visibility API
9335
+ if (typeof _this.document.addEventListener === 'undefined' || typeof document[_this.attributeName] === 'undefined') {
9336
+ console.log('This demo requires a browser, such as Google Chrome or Firefox, that supports the Page Visibility API.');
9337
+ }
9338
+ else {
9339
+ // Handle page visibility change
9340
+ var handler_1 = function () { return _this.updateVisibilityState(); };
9341
+ _this.document.addEventListener(_this.eventName, handler_1, false);
9342
+ _this.onDispose(function () {
9343
+ _this.document.removeEventListener(_this.eventName, handler_1);
9344
+ });
9345
+ }
9346
+ wakeEvent__namespace(function () { return _this.updateVisibilityState(); });
9347
+ _this._visibleModel.value = _this.isVisible();
9348
+ return _this;
9349
+ // give the network a chance to come back or we end up with a bunch of failed requests.
9350
+ // should probably also implement a connection service so that we can go
9351
+ // connectionServer.ensureConnectedThen(fireWakeEvent);
9352
+ // this._throttledWakeEvents = chain(this._wakeEvents).throttle(300);
9353
+ }
9354
+ // get wakeEvents(): Stream<Instant> {
9355
+ // return this._throttledWakeEvents;
9356
+ // }
9357
+ // @trace
9358
+ VisibilityService.prototype.updateVisibilityState = function () {
9359
+ this._visibleModel.value = this.isVisible();
9360
+ // this._wakeEvents.publish(Instant.now());
9361
+ };
9362
+ Object.defineProperty(VisibilityService.prototype, "visibleModel", {
9363
+ get: function () {
9364
+ return this._visibleModel.readonly;
9365
+ },
9366
+ enumerable: false,
9367
+ configurable: true
9368
+ });
9369
+ VisibilityService.prototype.isHidden = function () {
9370
+ return !!this.document[this.attributeName];
9371
+ };
9372
+ VisibilityService.prototype.isVisible = function () {
9373
+ return !this.isHidden();
9374
+ };
9375
+ return VisibilityService;
9376
+ }(pectin.GarbageCollector));
9377
+ VisibilityService.ɵprov = i0.ɵɵdefineInjectable({ factory: function VisibilityService_Factory() { return new VisibilityService(i0.ɵɵinject(i2.DOCUMENT)); }, token: VisibilityService, providedIn: "root" });
9378
+ VisibilityService.decorators = [
9379
+ { type: i0.Injectable, args: [{ providedIn: 'root' },] }
9380
+ ];
9381
+ VisibilityService.ctorParameters = function () { return [
9382
+ { type: undefined, decorators: [{ type: i0.Inject, args: [i2.DOCUMENT,] }] }
9383
+ ]; };
9384
+
9198
9385
  /**
9199
9386
  * @file Automatically generated by barrelsby.
9200
9387
  */
@@ -9268,6 +9455,8 @@
9268
9455
  exports.FocusContainerComponent = FocusContainerComponent;
9269
9456
  exports.FocusableComponent = FocusableComponent;
9270
9457
  exports.HEADER_CELL_RENDERER_PORTAL = HEADER_CELL_RENDERER_PORTAL;
9458
+ exports.HighlightPipe = HighlightPipe;
9459
+ exports.HighlightTextModelDirective = HighlightTextModelDirective;
9271
9460
  exports.InPlaceInteractionContextComponent = InPlaceInteractionContextComponent;
9272
9461
  exports.InteractionContextTriggerFor = InteractionContextTriggerFor;
9273
9462
  exports.InteractionModule = InteractionModule;
@@ -9341,6 +9530,7 @@
9341
9530
  exports.TreeToListModel = TreeToListModel;
9342
9531
  exports.UrlService = UrlService;
9343
9532
  exports.VerticalFocusContainerComponent = VerticalFocusContainerComponent;
9533
+ exports.VisibilityService = VisibilityService;
9344
9534
  exports.Visit = Visit;
9345
9535
  exports.VisitParameter = VisitParameter;
9346
9536
  exports.VisitParameterList = VisitParameterList;