@skyux/core 5.6.2 → 5.7.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.
@@ -1304,14 +1304,13 @@
1304
1304
  var SkyDockService = /** @class */ (function () {
1305
1305
  function SkyDockService(dynamicComponentService) {
1306
1306
  this.dynamicComponentService = dynamicComponentService;
1307
- this._items = [];
1308
1307
  }
1309
1308
  Object.defineProperty(SkyDockService.prototype, "items", {
1310
1309
  /**
1311
1310
  * Returns all docked items.
1312
1311
  */
1313
1312
  get: function () {
1314
- return this._items;
1313
+ return SkyDockService._items;
1315
1314
  },
1316
1315
  enumerable: false,
1317
1316
  configurable: true
@@ -1323,20 +1322,20 @@
1323
1322
  */
1324
1323
  SkyDockService.prototype.insertComponent = function (component, config) {
1325
1324
  var _this = this;
1326
- if (!this.dockRef) {
1325
+ if (!SkyDockService.dockRef) {
1327
1326
  this.createDock();
1328
1327
  }
1329
- var itemRef = this.dockRef.instance.insertComponent(component, config);
1328
+ var itemRef = SkyDockService.dockRef.instance.insertComponent(component, config);
1330
1329
  var item = new SkyDockItem(itemRef.componentRef.instance, itemRef.stackOrder);
1331
1330
  item.destroyed.subscribe(function () {
1332
- _this.dockRef.instance.removeItem(itemRef);
1333
- _this._items.splice(_this._items.indexOf(item), 1);
1334
- if (_this._items.length === 0) {
1331
+ SkyDockService.dockRef.instance.removeItem(itemRef);
1332
+ SkyDockService._items.splice(SkyDockService._items.indexOf(item), 1);
1333
+ if (SkyDockService._items.length === 0) {
1335
1334
  _this.destroyDock();
1336
1335
  }
1337
1336
  });
1338
- this._items.push(item);
1339
- this._items.sort(sortByStackOrder);
1337
+ SkyDockService._items.push(item);
1338
+ SkyDockService._items.sort(sortByStackOrder);
1340
1339
  return item;
1341
1340
  };
1342
1341
  /**
@@ -1369,21 +1368,25 @@
1369
1368
  referenceEl: this.options.referenceEl,
1370
1369
  };
1371
1370
  }
1372
- this.dockRef = this.dynamicComponentService.createComponent(SkyDockComponent, dockOptions);
1373
- this.dockRef.instance.setOptions(this.options);
1371
+ SkyDockService.dockRef = this.dynamicComponentService.createComponent(SkyDockComponent, dockOptions);
1372
+ SkyDockService.dockRef.instance.setOptions(this.options);
1374
1373
  };
1375
1374
  SkyDockService.prototype.destroyDock = function () {
1376
- this.dynamicComponentService.removeComponent(this.dockRef);
1377
- this.dockRef = undefined;
1375
+ this.dynamicComponentService.removeComponent(SkyDockService.dockRef);
1376
+ SkyDockService.dockRef = undefined;
1378
1377
  };
1379
1378
  return SkyDockService;
1380
1379
  }());
1380
+ SkyDockService._items = [];
1381
1381
  SkyDockService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyDockService, deps: [{ token: SkyDynamicComponentService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1382
- SkyDockService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyDockService, providedIn: 'root' });
1382
+ SkyDockService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyDockService, providedIn: 'any' });
1383
1383
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyDockService, decorators: [{
1384
1384
  type: i0.Injectable,
1385
1385
  args: [{
1386
- providedIn: 'root',
1386
+ // Must be 'any' so that the dock component is created in the context of its module's injector.
1387
+ // If set to 'root', the component's dependency injections would only be derived from the root
1388
+ // injector and may loose context if the dock was opened from within a lazy-loaded module.
1389
+ providedIn: 'any',
1387
1390
  }]
1388
1391
  }], ctorParameters: function () { return [{ type: SkyDynamicComponentService }]; } });
1389
1392
 
@@ -1669,7 +1672,7 @@
1669
1672
  /**
1670
1673
  * NOTICE: DO NOT MODIFY THIS FILE!
1671
1674
  * The contents of this file were automatically generated by
1672
- * the 'ng generate @skyux/i18n:lib-resources-module modules/shared/sky-core' schematic.
1675
+ * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-core' schematic.
1673
1676
  * To update this file, simply rerun the command.
1674
1677
  */
1675
1678
  var RESOURCES = {
@@ -1748,7 +1751,7 @@
1748
1751
  this.iso = 'USD';
1749
1752
  /**
1750
1753
  * Indicates whether to shorten numbers to rounded numbers and abbreviation characters
1751
- * such as K for thousands, M for millions, B for billions, and T for trillion.
1754
+ * such as K for thousands, M for millions, B for billions, and T for trillions.
1752
1755
  */
1753
1756
  this.truncate = true;
1754
1757
  /**
@@ -2940,20 +2943,30 @@
2940
2943
  SkyScrollableHostService.prototype.watchScrollableHost = function (elementRef) {
2941
2944
  var _this = this;
2942
2945
  var subscribers = [];
2943
- var mutationObserver;
2946
+ var parentMutationObserver;
2947
+ var documentHiddenElementMutationObserver;
2944
2948
  return new rxjs.Observable(function (subscriber) {
2945
2949
  subscribers.push(subscriber);
2946
2950
  var scrollableHost = _this.findScrollableHost(elementRef.nativeElement);
2947
2951
  if (subscribers.length === 1) {
2948
- mutationObserver = _this.mutationObserverSvc.create(function () {
2952
+ parentMutationObserver = _this.mutationObserverSvc.create(function () {
2949
2953
  var newScrollableHost = _this.findScrollableHost(elementRef.nativeElement);
2950
- if (newScrollableHost !== scrollableHost) {
2954
+ if (newScrollableHost !== scrollableHost &&
2955
+ elementRef.nativeElement.offsetParent) {
2951
2956
  scrollableHost = newScrollableHost;
2952
- _this.observeForScrollableHostChanges(scrollableHost, mutationObserver);
2957
+ _this.observeForScrollableHostChanges(scrollableHost, parentMutationObserver);
2953
2958
  notifySubscribers(subscribers, scrollableHost);
2954
2959
  }
2955
2960
  });
2956
- _this.observeForScrollableHostChanges(scrollableHost, mutationObserver);
2961
+ _this.observeForScrollableHostChanges(scrollableHost, parentMutationObserver);
2962
+ documentHiddenElementMutationObserver = _this.mutationObserverSvc.create(function () {
2963
+ if (!elementRef.nativeElement.offsetParent) {
2964
+ scrollableHost = undefined;
2965
+ _this.observeForScrollableHostChanges(scrollableHost, parentMutationObserver);
2966
+ notifySubscribers(subscribers, scrollableHost);
2967
+ }
2968
+ });
2969
+ _this.observeDocumentHiddenElementChanges(documentHiddenElementMutationObserver);
2957
2970
  }
2958
2971
  subscriber.next(scrollableHost);
2959
2972
  subscriber.add(function () {
@@ -2964,7 +2977,8 @@
2964
2977
  subscribers.splice(subIndex, 1);
2965
2978
  }
2966
2979
  if (subscribers.length === 0) {
2967
- mutationObserver.disconnect();
2980
+ documentHiddenElementMutationObserver.disconnect();
2981
+ parentMutationObserver.disconnect();
2968
2982
  }
2969
2983
  });
2970
2984
  });
@@ -2973,7 +2987,7 @@
2973
2987
  * Returns an observable which emits whenever the element's scrollable host emits a scroll event. The observable will always emit the scroll events from the elements current scrollable host and will update based on any scrollable host changes. The observable will also emit once whenever the scrollable host changes.
2974
2988
  * @param elementRef The element whose scrollable host scroll events are being requested
2975
2989
  * @param completionObservable An observable which alerts the internal observers that they should complete
2976
- * @returns An observable which emits the scroll events from the given element's scrollable host
2990
+ * @returns An observable which emits when the elements scrollable host is scrolled or is changed
2977
2991
  */
2978
2992
  SkyScrollableHostService.prototype.watchScrollableHostScrollEvents = function (elementRef) {
2979
2993
  var _this = this;
@@ -2993,11 +3007,13 @@
2993
3007
  }
2994
3008
  scrollableHost = newScrollableHost;
2995
3009
  newScrollableHostObservable = new rxjs.Subject();
2996
- scrollEventSubscription = rxjs.fromEvent(newScrollableHost, 'scroll')
2997
- .pipe(operators.takeUntil(newScrollableHostObservable))
2998
- .subscribe(function () {
2999
- notifySubscribers(subscribers);
3000
- });
3010
+ if (newScrollableHost) {
3011
+ scrollEventSubscription = rxjs.fromEvent(newScrollableHost, 'scroll')
3012
+ .pipe(operators.takeUntil(newScrollableHostObservable))
3013
+ .subscribe(function () {
3014
+ notifySubscribers(subscribers);
3015
+ });
3016
+ }
3001
3017
  });
3002
3018
  }
3003
3019
  subscriber.add(function () {
@@ -3040,12 +3056,20 @@
3040
3056
  }
3041
3057
  return parent;
3042
3058
  };
3059
+ SkyScrollableHostService.prototype.observeDocumentHiddenElementChanges = function (mutationObserver) {
3060
+ mutationObserver.observe(document.documentElement, {
3061
+ attributes: true,
3062
+ attributeFilter: ['class', 'style', 'hidden'],
3063
+ childList: true,
3064
+ subtree: true,
3065
+ });
3066
+ };
3043
3067
  SkyScrollableHostService.prototype.observeForScrollableHostChanges = function (element, mutationObserver) {
3044
3068
  mutationObserver.disconnect();
3045
3069
  if (element instanceof HTMLElement) {
3046
3070
  mutationObserver.observe(element, {
3047
3071
  attributes: true,
3048
- attributeFilter: ['class', 'style.overflow', 'style.overflow-y'],
3072
+ attributeFilter: ['class', 'style'],
3049
3073
  childList: true,
3050
3074
  subtree: true,
3051
3075
  });
@@ -3053,7 +3077,7 @@
3053
3077
  else {
3054
3078
  mutationObserver.observe(document.documentElement, {
3055
3079
  attributes: true,
3056
- attributeFilter: ['class', 'style.overflow', 'style.overflow-y'],
3080
+ attributeFilter: ['class', 'style'],
3057
3081
  childList: true,
3058
3082
  subtree: true,
3059
3083
  });