@skyux/core 11.44.0 → 11.45.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.
@@ -1,3 +1,6 @@
1
+ function useViewportForBounds(element) {
2
+ return 'BODY' === element.tagName;
3
+ }
1
4
  /**
2
5
  * Returns the offset values of a given element.
3
6
  * @param element The HTML element.
@@ -94,7 +97,7 @@ export function getOverflowParents(child) {
94
97
  */
95
98
  export function isOffsetFullyVisibleWithinParent(viewportRuler, parent, offset, bufferOffset) {
96
99
  let parentOffset;
97
- if (parent.matches('body')) {
100
+ if (useViewportForBounds(parent)) {
98
101
  const viewportRect = viewportRuler.getViewportRect();
99
102
  parentOffset = {
100
103
  top: 0,
@@ -115,12 +118,25 @@ export function isOffsetFullyVisibleWithinParent(viewportRuler, parent, offset,
115
118
  parentOffset.left <= offset.left);
116
119
  }
117
120
  export function isOffsetPartiallyVisibleWithinParent(viewportRuler, parent, offset, bufferOffset) {
118
- const parentOffset = bufferOffset
119
- ? getElementOffset(parent, bufferOffset)
120
- : getVisibleRectForElement(viewportRuler, parent);
121
+ let parentOffset;
122
+ if (useViewportForBounds(parent)) {
123
+ const viewportRect = viewportRuler.getViewportRect();
124
+ parentOffset = {
125
+ top: 0,
126
+ left: 0,
127
+ right: viewportRect.width,
128
+ bottom: viewportRect.height,
129
+ };
130
+ }
131
+ else if (bufferOffset) {
132
+ parentOffset = getElementOffset(parent, bufferOffset);
133
+ }
134
+ else {
135
+ parentOffset = getVisibleRectForElement(viewportRuler, parent);
136
+ }
121
137
  return !(parentOffset.top >= offset.bottom ||
122
138
  parentOffset.right <= offset.left ||
123
139
  parentOffset.bottom <= offset.top ||
124
140
  parentOffset.left >= offset.right);
125
141
  }
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2FmZml4L2RvbS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixPQUFvQixFQUNwQixZQUE2QjtJQUU3QixNQUFNLGtCQUFrQixHQUFHLFlBQVksRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQ3JELE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxFQUFFLElBQUksSUFBSSxDQUFDLENBQUM7SUFDakQsTUFBTSxpQkFBaUIsR0FBRyxZQUFZLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQztJQUNuRCxNQUFNLGVBQWUsR0FBRyxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUUvQyxJQUFJLEdBQVcsQ0FBQztJQUNoQixJQUFJLElBQVksQ0FBQztJQUNqQixJQUFJLEtBQWEsQ0FBQztJQUNsQixJQUFJLE1BQWMsQ0FBQztJQUVuQixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUNuRCxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztJQUN2QixHQUFHLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQztJQUNyQixLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztJQUN6QixNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUUzQixNQUFNLElBQUksa0JBQWtCLENBQUM7SUFDN0IsSUFBSSxJQUFJLGdCQUFnQixDQUFDO0lBQ3pCLEtBQUssSUFBSSxpQkFBaUIsQ0FBQztJQUMzQixHQUFHLElBQUksZUFBZSxDQUFDO0lBRXZCLE9BQU87UUFDTCxNQUFNO1FBQ04sSUFBSTtRQUNKLEtBQUs7UUFDTCxHQUFHO0tBQ0osQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsT0FBb0I7SUFDL0MsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDN0MsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNsRSxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEQsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxRCxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRTVELE9BQU87UUFDTCxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxTQUFTO1FBQ3pCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVU7UUFDNUIsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxZQUFZO1FBQzdDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxHQUFHLFdBQVc7UUFDeEQsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxHQUFHLFdBQVc7UUFDNUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxHQUFHLFlBQVk7S0FDL0MsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FDdEMsYUFBNEIsRUFDNUIsT0FBb0I7SUFFcEIsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFDLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUVyRCxNQUFNLFdBQVcsR0FBRztRQUNsQixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNqQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDekQsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDO0tBQ3ZELENBQUM7SUFFRixPQUFPO1FBQ0wsR0FBRyxXQUFXO1FBQ2QsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLElBQUk7UUFDM0MsTUFBTSxFQUFFLFdBQVcsQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLEdBQUc7S0FDN0MsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsS0FBa0I7SUFDbkQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDekMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBRW5CLElBQUksYUFBYSxHQUFHLEtBQUssRUFBRSxVQUFVLENBQUM7SUFFdEMsT0FBTyxhQUFhLEtBQUssU0FBUyxJQUFJLGFBQWEsWUFBWSxXQUFXLEVBQUUsQ0FBQztRQUMzRSxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNsQyxNQUFNO1FBQ1IsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDeEUsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUV4RCxNQUFNLDRCQUE0QixHQUNoQyxNQUFNLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDLFdBQVc7WUFDdkUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUM7UUFDNUUsTUFBTSxnQkFBZ0IsR0FDcEIsU0FBUyxLQUFLLE1BQU0sSUFBSSxTQUFTLEtBQUssUUFBUSxJQUFJLFNBQVMsS0FBSyxRQUFRLENBQUM7UUFFM0UsSUFBSSw0QkFBNEIsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3JELE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUNELElBQUksYUFBYSxDQUFDLFFBQVEsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUN2QyxNQUFNO1FBQ1IsQ0FBQztRQUVELGFBQWEsR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDO0lBQzNDLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRTFCLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxnQ0FBZ0MsQ0FDOUMsYUFBNEIsRUFDNUIsTUFBbUIsRUFDbkIsTUFBZ0MsRUFDaEMsWUFBNkI7SUFFN0IsSUFBSSxZQUFzQyxDQUFDO0lBRTNDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzNCLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNyRCxZQUFZLEdBQUc7WUFDYixHQUFHLEVBQUUsQ0FBQztZQUNOLElBQUksRUFBRSxDQUFDO1lBQ1AsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLO1lBQ3pCLE1BQU0sRUFBRSxZQUFZLENBQUMsTUFBTTtTQUM1QixDQUFDO0lBQ0osQ0FBQztTQUFNLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEIsWUFBWSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN4RCxDQUFDO1NBQU0sQ0FBQztRQUNOLFlBQVksR0FBRyx3QkFBd0IsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELE9BQU8sQ0FDTCxZQUFZLENBQUMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHO1FBQzlCLFlBQVksQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUs7UUFDbEMsWUFBWSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTTtRQUNwQyxZQUFZLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQ2pDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLG9DQUFvQyxDQUNsRCxhQUE0QixFQUM1QixNQUFtQixFQUNuQixNQUFnQyxFQUNoQyxZQUE2QjtJQUU3QixNQUFNLFlBQVksR0FBRyxZQUFZO1FBQy9CLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDO1FBQ3hDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFcEQsT0FBTyxDQUFDLENBQ04sWUFBWSxDQUFDLEdBQUcsSUFBSSxNQUFNLENBQUMsTUFBTTtRQUNqQyxZQUFZLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxJQUFJO1FBQ2pDLFlBQVksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLEdBQUc7UUFDakMsWUFBWSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsS0FBSyxDQUNsQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZpZXdwb3J0UnVsZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5cbmltcG9ydCB7IFNreUFmZml4T2Zmc2V0IH0gZnJvbSAnLi9hZmZpeC1vZmZzZXQnO1xuaW1wb3J0IHsgQWZmaXhSZWN0IH0gZnJvbSAnLi9hZmZpeC1yZWN0JztcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBvZmZzZXQgdmFsdWVzIG9mIGEgZ2l2ZW4gZWxlbWVudC5cbiAqIEBwYXJhbSBlbGVtZW50IFRoZSBIVE1MIGVsZW1lbnQuXG4gKiBAcGFyYW0gYnVmZmVyT2Zmc2V0IEFuIG9wdGlvbmFsIG9mZnNldCB0byBhZGQvc3VidHJhY3QgdG8gdGhlIGVsZW1lbnQncyBhY3R1YWwgb2Zmc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWxlbWVudE9mZnNldChcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIGJ1ZmZlck9mZnNldD86IFNreUFmZml4T2Zmc2V0LFxuKTogUmVxdWlyZWQ8U2t5QWZmaXhPZmZzZXQ+IHtcbiAgY29uc3QgYnVmZmVyT2Zmc2V0Qm90dG9tID0gYnVmZmVyT2Zmc2V0Py5ib3R0b20gfHwgMDtcbiAgY29uc3QgYnVmZmVyT2Zmc2V0TGVmdCA9IGJ1ZmZlck9mZnNldD8ubGVmdCB8fCAwO1xuICBjb25zdCBidWZmZXJPZmZzZXRSaWdodCA9IGJ1ZmZlck9mZnNldD8ucmlnaHQgfHwgMDtcbiAgY29uc3QgYnVmZmVyT2Zmc2V0VG9wID0gYnVmZmVyT2Zmc2V0Py50b3AgfHwgMDtcblxuICBsZXQgdG9wOiBudW1iZXI7XG4gIGxldCBsZWZ0OiBudW1iZXI7XG4gIGxldCByaWdodDogbnVtYmVyO1xuICBsZXQgYm90dG9tOiBudW1iZXI7XG5cbiAgY29uc3QgY2xpZW50UmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGxlZnQgPSBjbGllbnRSZWN0LmxlZnQ7XG4gIHRvcCA9IGNsaWVudFJlY3QudG9wO1xuICByaWdodCA9IGNsaWVudFJlY3QucmlnaHQ7XG4gIGJvdHRvbSA9IGNsaWVudFJlY3QuYm90dG9tO1xuXG4gIGJvdHRvbSAtPSBidWZmZXJPZmZzZXRCb3R0b207XG4gIGxlZnQgKz0gYnVmZmVyT2Zmc2V0TGVmdDtcbiAgcmlnaHQgLT0gYnVmZmVyT2Zmc2V0UmlnaHQ7XG4gIHRvcCArPSBidWZmZXJPZmZzZXRUb3A7XG5cbiAgcmV0dXJuIHtcbiAgICBib3R0b20sXG4gICAgbGVmdCxcbiAgICByaWdodCxcbiAgICB0b3AsXG4gIH07XG59XG5cbi8qKlxuICogUmV0dXJucyBhbiBBZmZpeFJlY3QgdGhhdCByZXByZXNlbnRzIHRoZSBvdXRlciBkaW1lbnNpb25zIG9mIGEgZ2l2ZW4gZWxlbWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE91dGVyUmVjdChlbGVtZW50OiBIVE1MRWxlbWVudCk6IFJlcXVpcmVkPEFmZml4UmVjdD4ge1xuICBjb25zdCByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsIHVuZGVmaW5lZCk7XG4gIGNvbnN0IG1hcmdpblRvcCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5tYXJnaW5Ub3ApO1xuICBjb25zdCBtYXJnaW5MZWZ0ID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLm1hcmdpbkxlZnQpO1xuICBjb25zdCBtYXJnaW5SaWdodCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5tYXJnaW5SaWdodCk7XG4gIGNvbnN0IG1hcmdpbkJvdHRvbSA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5tYXJnaW5Cb3R0b20pO1xuXG4gIHJldHVybiB7XG4gICAgdG9wOiByZWN0LnRvcCAtIG1hcmdpblRvcCxcbiAgICBsZWZ0OiByZWN0LmxlZnQgLSBtYXJnaW5MZWZ0LFxuICAgIGJvdHRvbTogcmVjdC50b3AgKyByZWN0LmhlaWdodCArIG1hcmdpbkJvdHRvbSxcbiAgICByaWdodDogcmVjdC5sZWZ0ICsgcmVjdC53aWR0aCArIG1hcmdpbkxlZnQgKyBtYXJnaW5SaWdodCxcbiAgICB3aWR0aDogcmVjdC53aWR0aCArIG1hcmdpbkxlZnQgKyBtYXJnaW5SaWdodCxcbiAgICBoZWlnaHQ6IHJlY3QuaGVpZ2h0ICsgbWFyZ2luVG9wICsgbWFyZ2luQm90dG9tLFxuICB9O1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHZpc2libGUgcmVjdCBmb3IgYSBnaXZlbiBlbGVtZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmlzaWJsZVJlY3RGb3JFbGVtZW50KFxuICB2aWV3cG9ydFJ1bGVyOiBWaWV3cG9ydFJ1bGVyLFxuICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbik6IFJlcXVpcmVkPEFmZml4UmVjdD4ge1xuICBjb25zdCBlbGVtZW50UmVjdCA9IGdldE91dGVyUmVjdChlbGVtZW50KTtcbiAgY29uc3Qgdmlld3BvcnRSZWN0ID0gdmlld3BvcnRSdWxlci5nZXRWaWV3cG9ydFJlY3QoKTtcblxuICBjb25zdCB2aXNpYmxlUmVjdCA9IHtcbiAgICB0b3A6IE1hdGgubWF4KGVsZW1lbnRSZWN0LnRvcCwgMCksXG4gICAgbGVmdDogTWF0aC5tYXgoZWxlbWVudFJlY3QubGVmdCwgMCksXG4gICAgYm90dG9tOiBNYXRoLm1pbihlbGVtZW50UmVjdC5ib3R0b20sIHZpZXdwb3J0UmVjdC5oZWlnaHQpLFxuICAgIHJpZ2h0OiBNYXRoLm1pbihlbGVtZW50UmVjdC5yaWdodCwgdmlld3BvcnRSZWN0LndpZHRoKSxcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIC4uLnZpc2libGVSZWN0LFxuICAgIHdpZHRoOiB2aXNpYmxlUmVjdC5yaWdodCAtIHZpc2libGVSZWN0LmxlZnQsXG4gICAgaGVpZ2h0OiB2aXNpYmxlUmVjdC5ib3R0b20gLSB2aXNpYmxlUmVjdC50b3AsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPdmVyZmxvd1BhcmVudHMoY2hpbGQ6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnRbXSB7XG4gIGNvbnN0IGJvZHlFbGVtZW50ID0gd2luZG93LmRvY3VtZW50LmJvZHk7XG4gIGNvbnN0IHJlc3VsdHMgPSBbXTtcblxuICBsZXQgcGFyZW50RWxlbWVudCA9IGNoaWxkPy5wYXJlbnROb2RlO1xuXG4gIHdoaWxlIChwYXJlbnRFbGVtZW50ICE9PSB1bmRlZmluZWQgJiYgcGFyZW50RWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKHBhcmVudEVsZW1lbnQubWF0Y2hlcygnYm9keScpKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUocGFyZW50RWxlbWVudCwgdW5kZWZpbmVkKTtcbiAgICBjb25zdCBvdmVyZmxvd1kgPSBjb21wdXRlZFN0eWxlLm92ZXJmbG93WS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgY29uc3QgbGFyZ2VyVGhhblRoZURvY3VtZW50RWxlbWVudCA9XG4gICAgICB3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFdpZHRoIDwgcGFyZW50RWxlbWVudC5zY3JvbGxXaWR0aCB8fFxuICAgICAgd2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQgPCBwYXJlbnRFbGVtZW50LnNjcm9sbEhlaWdodDtcbiAgICBjb25zdCBoYXNPdmVyZmxvd1J1bGVzID1cbiAgICAgIG92ZXJmbG93WSA9PT0gJ2F1dG8nIHx8IG92ZXJmbG93WSA9PT0gJ2hpZGRlbicgfHwgb3ZlcmZsb3dZID09PSAnc2Nyb2xsJztcblxuICAgIGlmIChsYXJnZXJUaGFuVGhlRG9jdW1lbnRFbGVtZW50IHx8IGhhc092ZXJmbG93UnVsZXMpIHtcbiAgICAgIHJlc3VsdHMucHVzaChwYXJlbnRFbGVtZW50KTtcbiAgICB9XG4gICAgaWYgKGNvbXB1dGVkU3R5bGUucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHBhcmVudEVsZW1lbnQgPSBwYXJlbnRFbGVtZW50LnBhcmVudE5vZGU7XG4gIH1cblxuICByZXN1bHRzLnB1c2goYm9keUVsZW1lbnQpO1xuXG4gIHJldHVybiByZXN1bHRzO1xufVxuXG4vKipcbiAqIENvbmZpcm1zIG9mZnNldCBpcyBmdWxseSB2aXNpYmxlIHdpdGhpbiBhIHBhcmVudCBlbGVtZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNPZmZzZXRGdWxseVZpc2libGVXaXRoaW5QYXJlbnQoXG4gIHZpZXdwb3J0UnVsZXI6IFZpZXdwb3J0UnVsZXIsXG4gIHBhcmVudDogSFRNTEVsZW1lbnQsXG4gIG9mZnNldDogUmVxdWlyZWQ8U2t5QWZmaXhPZmZzZXQ+LFxuICBidWZmZXJPZmZzZXQ/OiBTa3lBZmZpeE9mZnNldCxcbik6IGJvb2xlYW4ge1xuICBsZXQgcGFyZW50T2Zmc2V0OiBSZXF1aXJlZDxTa3lBZmZpeE9mZnNldD47XG5cbiAgaWYgKHBhcmVudC5tYXRjaGVzKCdib2R5JykpIHtcbiAgICBjb25zdCB2aWV3cG9ydFJlY3QgPSB2aWV3cG9ydFJ1bGVyLmdldFZpZXdwb3J0UmVjdCgpO1xuICAgIHBhcmVudE9mZnNldCA9IHtcbiAgICAgIHRvcDogMCxcbiAgICAgIGxlZnQ6IDAsXG4gICAgICByaWdodDogdmlld3BvcnRSZWN0LndpZHRoLFxuICAgICAgYm90dG9tOiB2aWV3cG9ydFJlY3QuaGVpZ2h0LFxuICAgIH07XG4gIH0gZWxzZSBpZiAoYnVmZmVyT2Zmc2V0KSB7XG4gICAgcGFyZW50T2Zmc2V0ID0gZ2V0RWxlbWVudE9mZnNldChwYXJlbnQsIGJ1ZmZlck9mZnNldCk7XG4gIH0gZWxzZSB7XG4gICAgcGFyZW50T2Zmc2V0ID0gZ2V0VmlzaWJsZVJlY3RGb3JFbGVtZW50KHZpZXdwb3J0UnVsZXIsIHBhcmVudCk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIHBhcmVudE9mZnNldC50b3AgPD0gb2Zmc2V0LnRvcCAmJlxuICAgIHBhcmVudE9mZnNldC5yaWdodCA+PSBvZmZzZXQucmlnaHQgJiZcbiAgICBwYXJlbnRPZmZzZXQuYm90dG9tID49IG9mZnNldC5ib3R0b20gJiZcbiAgICBwYXJlbnRPZmZzZXQubGVmdCA8PSBvZmZzZXQubGVmdFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNPZmZzZXRQYXJ0aWFsbHlWaXNpYmxlV2l0aGluUGFyZW50KFxuICB2aWV3cG9ydFJ1bGVyOiBWaWV3cG9ydFJ1bGVyLFxuICBwYXJlbnQ6IEhUTUxFbGVtZW50LFxuICBvZmZzZXQ6IFJlcXVpcmVkPFNreUFmZml4T2Zmc2V0PixcbiAgYnVmZmVyT2Zmc2V0PzogU2t5QWZmaXhPZmZzZXQsXG4pOiBib29sZWFuIHtcbiAgY29uc3QgcGFyZW50T2Zmc2V0ID0gYnVmZmVyT2Zmc2V0XG4gICAgPyBnZXRFbGVtZW50T2Zmc2V0KHBhcmVudCwgYnVmZmVyT2Zmc2V0KVxuICAgIDogZ2V0VmlzaWJsZVJlY3RGb3JFbGVtZW50KHZpZXdwb3J0UnVsZXIsIHBhcmVudCk7XG5cbiAgcmV0dXJuICEoXG4gICAgcGFyZW50T2Zmc2V0LnRvcCA+PSBvZmZzZXQuYm90dG9tIHx8XG4gICAgcGFyZW50T2Zmc2V0LnJpZ2h0IDw9IG9mZnNldC5sZWZ0IHx8XG4gICAgcGFyZW50T2Zmc2V0LmJvdHRvbSA8PSBvZmZzZXQudG9wIHx8XG4gICAgcGFyZW50T2Zmc2V0LmxlZnQgPj0gb2Zmc2V0LnJpZ2h0XG4gICk7XG59XG4iXX0=
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2FmZml4L2RvbS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxTQUFTLG9CQUFvQixDQUFDLE9BQW9CO0lBQ2hELE9BQU8sTUFBTSxLQUFLLE9BQU8sQ0FBQyxPQUFPLENBQUM7QUFDcEMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLE9BQW9CLEVBQ3BCLFlBQTZCO0lBRTdCLE1BQU0sa0JBQWtCLEdBQUcsWUFBWSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUM7SUFDckQsTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUNqRCxNQUFNLGlCQUFpQixHQUFHLFlBQVksRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ25ELE1BQU0sZUFBZSxHQUFHLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBRS9DLElBQUksR0FBVyxDQUFDO0lBQ2hCLElBQUksSUFBWSxDQUFDO0lBQ2pCLElBQUksS0FBYSxDQUFDO0lBQ2xCLElBQUksTUFBYyxDQUFDO0lBRW5CLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ25ELElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQ3ZCLEdBQUcsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3JCLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQ3pCLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBRTNCLE1BQU0sSUFBSSxrQkFBa0IsQ0FBQztJQUM3QixJQUFJLElBQUksZ0JBQWdCLENBQUM7SUFDekIsS0FBSyxJQUFJLGlCQUFpQixDQUFDO0lBQzNCLEdBQUcsSUFBSSxlQUFlLENB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LENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxHQUFHO1FBQ2pDLFlBQVksQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLEtBQUssQ0FDbEMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWaWV3cG9ydFJ1bGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuXG5pbXBvcnQgeyBTa3lBZmZpeE9mZnNldCB9IGZyb20gJy4vYWZmaXgtb2Zmc2V0JztcbmltcG9ydCB7IEFmZml4UmVjdCB9IGZyb20gJy4vYWZmaXgtcmVjdCc7XG5cbmZ1bmN0aW9uIHVzZVZpZXdwb3J0Rm9yQm91bmRzKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gIHJldHVybiAnQk9EWScgPT09IGVsZW1lbnQudGFnTmFtZTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBvZmZzZXQgdmFsdWVzIG9mIGEgZ2l2ZW4gZWxlbWVudC5cbiAqIEBwYXJhbSBlbGVtZW50IFRoZSBIVE1MIGVsZW1lbnQuXG4gKiBAcGFyYW0gYnVmZmVyT2Zmc2V0IEFuIG9wdGlvbmFsIG9mZnNldCB0byBhZGQvc3VidHJhY3QgdG8gdGhlIGVsZW1lbnQncyBhY3R1YWwgb2Zmc2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWxlbWVudE9mZnNldChcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIGJ1ZmZlck9mZnNldD86IFNreUFmZml4T2Zmc2V0LFxuKTogUmVxdWlyZWQ8U2t5QWZmaXhPZmZzZXQ+IHtcbiAgY29uc3QgYnVmZmVyT2Zmc2V0Qm90dG9tID0gYnVmZmVyT2Zmc2V0Py5ib3R0b20gfHwgMDtcbiAgY29uc3QgYnVmZmVyT2Zmc2V0TGVmdCA9IGJ1ZmZlck9mZnNldD8ubGVmdCB8fCAwO1xuICBjb25zdCBidWZmZXJPZmZzZXRSaWdodCA9IGJ1ZmZlck9mZnNldD8ucmlnaHQgfHwgMDtcbiAgY29uc3QgYnVmZmVyT2Zmc2V0VG9wID0gYnVmZmVyT2Zmc2V0Py50b3AgfHwgMDtcblxuICBsZXQgdG9wOiBudW1iZXI7XG4gIGxldCBsZWZ0OiBudW1iZXI7XG4gIGxldCByaWdodDogbnVtYmVyO1xuICBsZXQgYm90dG9tOiBudW1iZXI7XG5cbiAgY29uc3QgY2xpZW50UmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGxlZnQgPSBjbGllbnRSZWN0LmxlZnQ7XG4gIHRvcCA9IGNsaWVudFJlY3QudG9wO1xuICByaWdodCA9IGNsaWVudFJlY3QucmlnaHQ7XG4gIGJvdHRvbSA9IGNsaWVudFJlY3QuYm90dG9tO1xuXG4gIGJvdHRvbSAtPSBidWZmZXJPZmZzZXRCb3R0b207XG4gIGxlZnQgKz0gYnVmZmVyT2Zmc2V0TGVmdDtcbiAgcmlnaHQgLT0gYnVmZmVyT2Zmc2V0UmlnaHQ7XG4gIHRvcCArPSBidWZmZXJPZmZzZXRUb3A7XG5cbiAgcmV0dXJuIHtcbiAgICBib3R0b20sXG4gICAgbGVmdCxcbiAgICByaWdodCxcbiAgICB0b3AsXG4gIH07XG59XG5cbi8qKlxuICogUmV0dXJucyBhbiBBZmZpeFJlY3QgdGhhdCByZXByZXNlbnRzIHRoZSBvdXRlciBkaW1lbnNpb25zIG9mIGEgZ2l2ZW4gZWxlbWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE91dGVyUmVjdChlbGVtZW50OiBIVE1MRWxlbWVudCk6IFJlcXVpcmVkPEFmZml4UmVjdD4ge1xuICBjb25zdCByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsIHVuZGVmaW5lZCk7XG4gIGNvbnN0IG1hcmdpblRvcCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5tYXJnaW5Ub3ApO1xuICBjb25zdCBtYXJnaW5MZWZ0ID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLm1hcmdpbkxlZnQpO1xuICBjb25zdCBtYXJnaW5SaWdodCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5tYXJnaW5SaWdodCk7XG4gIGNvbnN0IG1hcmdpbkJvdHRvbSA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5tYXJnaW5Cb3R0b20pO1xuXG4gIHJldHVybiB7XG4gICAgdG9wOiByZWN0LnRvcCAtIG1hcmdpblRvcCxcbiAgICBsZWZ0OiByZWN0LmxlZnQgLSBtYXJnaW5MZWZ0LFxuICAgIGJvdHRvbTogcmVjdC50b3AgKyByZWN0LmhlaWdodCArIG1hcmdpbkJvdHRvbSxcbiAgICByaWdodDogcmVjdC5sZWZ0ICsgcmVjdC53aWR0aCArIG1hcmdpbkxlZnQgKyBtYXJnaW5SaWdodCxcbiAgICB3aWR0aDogcmVjdC53aWR0aCArIG1hcmdpbkxlZnQgKyBtYXJnaW5SaWdodCxcbiAgICBoZWlnaHQ6IHJlY3QuaGVpZ2h0ICsgbWFyZ2luVG9wICsgbWFyZ2luQm90dG9tLFxuICB9O1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHZpc2libGUgcmVjdCBmb3IgYSBnaXZlbiBlbGVtZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmlzaWJsZVJlY3RGb3JFbGVtZW50KFxuICB2aWV3cG9ydFJ1bGVyOiBWaWV3cG9ydFJ1bGVyLFxuICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbik6IFJlcXVpcmVkPEFmZml4UmVjdD4ge1xuICBjb25zdCBlbGVtZW50UmVjdCA9IGdldE91dGVyUmVjdChlbGVtZW50KTtcbiAgY29uc3Qgdmlld3BvcnRSZWN0ID0gdmlld3BvcnRSdWxlci5nZXRWaWV3cG9ydFJlY3QoKTtcblxuICBjb25zdCB2aXNpYmxlUmVjdCA9IHtcbiAgICB0b3A6IE1hdGgubWF4KGVsZW1lbnRSZWN0LnRvcCwgMCksXG4gICAgbGVmdDogTWF0aC5tYXgoZWxlbWVudFJlY3QubGVmdCwgMCksXG4gICAgYm90dG9tOiBNYXRoLm1pbihlbGVtZW50UmVjdC5ib3R0b20sIHZpZXdwb3J0UmVjdC5oZWlnaHQpLFxuICAgIHJpZ2h0OiBNYXRoLm1pbihlbGVtZW50UmVjdC5yaWdodCwgdmlld3BvcnRSZWN0LndpZHRoKSxcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIC4uLnZpc2libGVSZWN0LFxuICAgIHdpZHRoOiB2aXNpYmxlUmVjdC5yaWdodCAtIHZpc2libGVSZWN0LmxlZnQsXG4gICAgaGVpZ2h0OiB2aXNpYmxlUmVjdC5ib3R0b20gLSB2aXNpYmxlUmVjdC50b3AsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPdmVyZmxvd1BhcmVudHMoY2hpbGQ6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnRbXSB7XG4gIGNvbnN0IGJvZHlFbGVtZW50ID0gd2luZG93LmRvY3VtZW50LmJvZHk7XG4gIGNvbnN0IHJlc3VsdHMgPSBbXTtcblxuICBsZXQgcGFyZW50RWxlbWVudCA9IGNoaWxkPy5wYXJlbnROb2RlO1xuXG4gIHdoaWxlIChwYXJlbnRFbGVtZW50ICE9PSB1bmRlZmluZWQgJiYgcGFyZW50RWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKHBhcmVudEVsZW1lbnQubWF0Y2hlcygnYm9keScpKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUocGFyZW50RWxlbWVudCwgdW5kZWZpbmVkKTtcbiAgICBjb25zdCBvdmVyZmxvd1kgPSBjb21wdXRlZFN0eWxlLm92ZXJmbG93WS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgY29uc3QgbGFyZ2VyVGhhblRoZURvY3VtZW50RWxlbWVudCA9XG4gICAgICB3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFdpZHRoIDwgcGFyZW50RWxlbWVudC5zY3JvbGxXaWR0aCB8fFxuICAgICAgd2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQgPCBwYXJlbnRFbGVtZW50LnNjcm9sbEhlaWdodDtcbiAgICBjb25zdCBoYXNPdmVyZmxvd1J1bGVzID1cbiAgICAgIG92ZXJmbG93WSA9PT0gJ2F1dG8nIHx8IG92ZXJmbG93WSA9PT0gJ2hpZGRlbicgfHwgb3ZlcmZsb3dZID09PSAnc2Nyb2xsJztcblxuICAgIGlmIChsYXJnZXJUaGFuVGhlRG9jdW1lbnRFbGVtZW50IHx8IGhhc092ZXJmbG93UnVsZXMpIHtcbiAgICAgIHJlc3VsdHMucHVzaChwYXJlbnRFbGVtZW50KTtcbiAgICB9XG4gICAgaWYgKGNvbXB1dGVkU3R5bGUucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHBhcmVudEVsZW1lbnQgPSBwYXJlbnRFbGVtZW50LnBhcmVudE5vZGU7XG4gIH1cblxuICByZXN1bHRzLnB1c2goYm9keUVsZW1lbnQpO1xuXG4gIHJldHVybiByZXN1bHRzO1xufVxuXG4vKipcbiAqIENvbmZpcm1zIG9mZnNldCBpcyBmdWxseSB2aXNpYmxlIHdpdGhpbiBhIHBhcmVudCBlbGVtZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNPZmZzZXRGdWxseVZpc2libGVXaXRoaW5QYXJlbnQoXG4gIHZpZXdwb3J0UnVsZXI6IFZpZXdwb3J0UnVsZXIsXG4gIHBhcmVudDogSFRNTEVsZW1lbnQsXG4gIG9mZnNldDogUmVxdWlyZWQ8U2t5QWZmaXhPZmZzZXQ+LFxuICBidWZmZXJPZmZzZXQ/OiBTa3lBZmZpeE9mZnNldCxcbik6IGJvb2xlYW4ge1xuICBsZXQgcGFyZW50T2Zmc2V0OiBSZXF1aXJlZDxTa3lBZmZpeE9mZnNldD47XG5cbiAgaWYgKHVzZVZpZXdwb3J0Rm9yQm91bmRzKHBhcmVudCkpIHtcbiAgICBjb25zdCB2aWV3cG9ydFJlY3QgPSB2aWV3cG9ydFJ1bGVyLmdldFZpZXdwb3J0UmVjdCgpO1xuICAgIHBhcmVudE9mZnNldCA9IHtcbiAgICAgIHRvcDogMCxcbiAgICAgIGxlZnQ6IDAsXG4gICAgICByaWdodDogdmlld3BvcnRSZWN0LndpZHRoLFxuICAgICAgYm90dG9tOiB2aWV3cG9ydFJlY3QuaGVpZ2h0LFxuICAgIH07XG4gIH0gZWxzZSBpZiAoYnVmZmVyT2Zmc2V0KSB7XG4gICAgcGFyZW50T2Zmc2V0ID0gZ2V0RWxlbWVudE9mZnNldChwYXJlbnQsIGJ1ZmZlck9mZnNldCk7XG4gIH0gZWxzZSB7XG4gICAgcGFyZW50T2Zmc2V0ID0gZ2V0VmlzaWJsZVJlY3RGb3JFbGVtZW50KHZpZXdwb3J0UnVsZXIsIHBhcmVudCk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIHBhcmVudE9mZnNldC50b3AgPD0gb2Zmc2V0LnRvcCAmJlxuICAgIHBhcmVudE9mZnNldC5yaWdodCA+PSBvZmZzZXQucmlnaHQgJiZcbiAgICBwYXJlbnRPZmZzZXQuYm90dG9tID49IG9mZnNldC5ib3R0b20gJiZcbiAgICBwYXJlbnRPZmZzZXQubGVmdCA8PSBvZmZzZXQubGVmdFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNPZmZzZXRQYXJ0aWFsbHlWaXNpYmxlV2l0aGluUGFyZW50KFxuICB2aWV3cG9ydFJ1bGVyOiBWaWV3cG9ydFJ1bGVyLFxuICBwYXJlbnQ6IEhUTUxFbGVtZW50LFxuICBvZmZzZXQ6IFJlcXVpcmVkPFNreUFmZml4T2Zmc2V0PixcbiAgYnVmZmVyT2Zmc2V0PzogU2t5QWZmaXhPZmZzZXQsXG4pOiBib29sZWFuIHtcbiAgbGV0IHBhcmVudE9mZnNldDogUmVxdWlyZWQ8U2t5QWZmaXhPZmZzZXQ+O1xuICBpZiAodXNlVmlld3BvcnRGb3JCb3VuZHMocGFyZW50KSkge1xuICAgIGNvbnN0IHZpZXdwb3J0UmVjdCA9IHZpZXdwb3J0UnVsZXIuZ2V0Vmlld3BvcnRSZWN0KCk7XG4gICAgcGFyZW50T2Zmc2V0ID0ge1xuICAgICAgdG9wOiAwLFxuICAgICAgbGVmdDogMCxcbiAgICAgIHJpZ2h0OiB2aWV3cG9ydFJlY3Qud2lkdGgsXG4gICAgICBib3R0b206IHZpZXdwb3J0UmVjdC5oZWlnaHQsXG4gICAgfTtcbiAgfSBlbHNlIGlmIChidWZmZXJPZmZzZXQpIHtcbiAgICBwYXJlbnRPZmZzZXQgPSBnZXRFbGVtZW50T2Zmc2V0KHBhcmVudCwgYnVmZmVyT2Zmc2V0KTtcbiAgfSBlbHNlIHtcbiAgICBwYXJlbnRPZmZzZXQgPSBnZXRWaXNpYmxlUmVjdEZvckVsZW1lbnQodmlld3BvcnRSdWxlciwgcGFyZW50KTtcbiAgfVxuXG4gIHJldHVybiAhKFxuICAgIHBhcmVudE9mZnNldC50b3AgPj0gb2Zmc2V0LmJvdHRvbSB8fFxuICAgIHBhcmVudE9mZnNldC5yaWdodCA8PSBvZmZzZXQubGVmdCB8fFxuICAgIHBhcmVudE9mZnNldC5ib3R0b20gPD0gb2Zmc2V0LnRvcCB8fFxuICAgIHBhcmVudE9mZnNldC5sZWZ0ID49IG9mZnNldC5yaWdodFxuICApO1xufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { ApplicationRef, Injectable, NgZone, inject, } from '@angular/core';
2
- import { Observable, Subject, animationFrames, distinctUntilChanged, filter, map, shareReplay, take, takeUntil, throttle, } from 'rxjs';
2
+ import { Observable, Subject, animationFrameScheduler, distinctUntilChanged, filter, map, observeOn, shareReplay, takeUntil, } from 'rxjs';
3
3
  import { SkyAppWindowRef } from '../window/window-ref';
4
4
  import * as i0 from "@angular/core";
5
5
  const errorTest = /ResizeObserver loop completed with undelivered notifications/i;
@@ -33,11 +33,11 @@ const onError = (event) => {
33
33
  */
34
34
  export class SkyResizeObserverService {
35
35
  #ngUnsubscribe = new Subject();
36
- #resizeObserver = new ResizeObserver((entries) => this.#resizeSubject.next(entries));
36
+ #zone = inject(NgZone);
37
+ #resizeObserver = this.#zone.runOutsideAngular(() => new ResizeObserver((entries) => this.#zone.run(() => this.#resizeSubject.next(entries))));
37
38
  #resizeSubject = new Subject();
38
39
  #tracking = new Map();
39
40
  #window = inject(SkyAppWindowRef);
40
- #zone = inject(NgZone);
41
41
  constructor() {
42
42
  this.#expectWindowError();
43
43
  // Because the resize observer is a native browser API, it does not shut down
@@ -75,10 +75,7 @@ export class SkyResizeObserverService {
75
75
  // un-observes when all subscribers are gone.
76
76
  shareReplay({ bufferSize: 1, refCount: true }),
77
77
  // Only emit prior to an animation frame to prevent layout thrashing.
78
- throttle(() => animationFrames().pipe(take(1)), {
79
- leading: false,
80
- trailing: true,
81
- }), takeUntil(this.#ngUnsubscribe)));
78
+ observeOn(animationFrameScheduler), takeUntil(this.#ngUnsubscribe)));
82
79
  }
83
80
  return this.#tracking.get(element.nativeElement);
84
81
  }
@@ -112,4 +109,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
112
109
  providedIn: 'root',
113
110
  }]
114
111
  }], ctorParameters: () => [] });
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLW9ic2VydmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvcmVzaXplLW9ic2VydmVyL3Jlc2l6ZS1vYnNlcnZlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEVBRWQsVUFBVSxFQUNWLE1BQU0sRUFFTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLFVBQVUsRUFDVixPQUFPLEVBQ1AsZUFBZSxFQUNmLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sR0FBRyxFQUNILFdBQVcsRUFDWCxJQUFJLEVBQ0osU0FBUyxFQUNULFFBQVEsR0FDVCxNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFdkQsTUFBTSxTQUFTLEdBQ2IsK0RBQStELENBQUM7QUFDbEUsSUFBSSxrQkFBa0IsR0FBRyxLQUFLLENBQUM7QUFDL0IsSUFBSSxlQUFlLEdBRUgsU0FBUyxDQUFDO0FBRTFCLE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBaUIsRUFBdUIsRUFBRTtJQUM5RCxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDbEMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDakMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRixNQUFNLE9BQU8sR0FBRyxDQUFDLEtBQTBCLEVBQXVCLEVBQUU7SUFDbEUsTUFBTSxPQUFPLEdBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxD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LElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FDbEUsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUNsRCxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1lBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDOUMsQ0FBQztJQUNILENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDckUsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLEdBQUcsZUFBZSxDQUFDO1lBQ3BELGVBQWUsR0FBRyxTQUFTLENBQUM7UUFDOUIsQ0FBQztRQUNELGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDOytHQXRHVSx3QkFBd0I7bUhBQXhCLHdCQUF3QixjQUZ2QixNQUFNOzs0RkFFUCx3QkFBd0I7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXBwbGljYXRpb25SZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdGFibGUsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICBhbmltYXRpb25GcmFtZXMsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbiAgdGhyb3R0bGUsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTa3lBcHBXaW5kb3dSZWYgfSBmcm9tICcuLi93aW5kb3cvd2luZG93LXJlZic7XG5cbmNvbnN0IGVycm9yVGVzdCA9XG4gIC9SZXNpemVPYnNlcnZlciBsb29wIGNvbXBsZXRlZCB3aXRoIHVuZGVsaXZlcmVkIG5vdGlmaWNhdGlvbnMvaTtcbmxldCBlcnJvckxvZ1JlZ2lzdGVyZWQgPSBmYWxzZTtcbmxldCBvcmlnaW5hbE9uRXJyb3I6XG4gIHwgKChldmVudDogc3RyaW5nIHwgRXZlbnQpID0+IGJvb2xlYW4gfCB1bmRlZmluZWQpXG4gIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG5jb25zdCBlcnJvckhhbmRsZXIgPSAoZXZlbnQ6IEVycm9yRXZlbnQpOiBib29sZWFuIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKGVycm9yVGVzdC50ZXN0KGV2ZW50Lm1lc3NhZ2UpKSB7XG4gICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbmNvbnN0IG9uRXJyb3IgPSAoZXZlbnQ6IHN0cmluZyB8IEVycm9yRXZlbnQpOiBib29sZWFuIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgbWVzc2FnZSA9IHR5cGVvZiBldmVudCA9PT0gJ3N0cmluZycgPyBldmVudCA6IGV2ZW50Lm1lc3NhZ2U7XG4gIC8vIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIHByZXZlbnQgdGhlIHRlc3QgcnVubmVyIGZyb20gZmFpbGluZyBvbiBlcnJvcnMsIGJ1dCBjaGFsbGVuZ2luZyB0byByZWxpYWJseSB0ZXN0LlxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBpZiAoZXJyb3JUZXN0LnRlc3QobWVzc2FnZSkpIHtcbiAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBFcnJvckV2ZW50KSB7XG4gICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBvcmlnaW5hbE9uRXJyb3I/LmNhbGwod2luZG93LCBldmVudCk7XG59O1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gY3JlYXRlIHJ4anMgb2JzZXJ2YWJsZXMgZm9yIGNoYW5nZXMgdG8gdGhlIGNvbnRlbnQgYm94IGRpbWVuc2lvbnMgb2YgZWxlbWVudHMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lSZXNpemVPYnNlcnZlclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICByZWFkb25seSAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5ICNyZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoZW50cmllcykgPT5cbiAgICB0aGlzLiNyZXNpemVTdWJqZWN0Lm5leHQoZW50cmllcyksXG4gICk7XG4gIHJlYWRvbmx5ICNyZXNpemVTdWJqZWN0ID0gbmV3IFN1YmplY3Q8UmVzaXplT2JzZXJ2ZXJFbnRyeVtdPigpO1xuICByZWFkb25seSAjdHJhY2tpbmcgPSBuZXcgTWFwPEVsZW1lbnQsIE9ic2VydmFibGU8UmVzaXplT2JzZXJ2ZXJFbnRyeT4+KCk7XG4gIHJlYWRvbmx5ICN3aW5kb3cgPSBpbmplY3QoU2t5QXBwV2luZG93UmVmKTtcbiAgcmVhZG9ubHkgI3pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLiNleHBlY3RXaW5kb3dFcnJvcigpO1xuICAgIC8vIEJlY2F1c2UgdGhlIHJlc2l6ZSBvYnNlcnZlciBpcyBhIG5hdGl2ZSBicm93c2VyIEFQSSwgaXQgZG9lcyBub3Qgc2h1dCBkb3duXG4gICAgLy8gc3luY2hyb25vdXNseSB3aGVuIHRoZSBzZXJ2aWNlIGlzIGRlc3Ryb3llZC4gTGVhdmUgdGhlIGVycm9yIGhhbmRsaW5nXG4gICAgLy8gYWNjb21tb2RhdGlvbiBpbiBwbGFjZSB1bnRpbCB0aGUgYXBwbGljYXRpb24gaXMgZGVzdHJveWVkLiBUaGlzIGFsc28gd29ya3NcbiAgICAvLyBmb3IgdGhlIHRlc3QgcnVubmVyLlxuICAgIGluamVjdChBcHBsaWNhdGlvblJlZikub25EZXN0cm95KCgpID0+IHRoaXMuI3Jlc2V0V2luZG93RXJyb3IoKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI3Jlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgcnhqcyBvYnNlcnZhYmxlIHRvIGdldCBzaXplIGNoYW5nZXMgZm9yIGFuIGVsZW1lbnQgcmVmLlxuICAgKi9cbiAgcHVibGljIG9ic2VydmUoZWxlbWVudDogRWxlbWVudFJlZik6IE9ic2VydmFibGU8UmVzaXplT2JzZXJ2ZXJFbnRyeT4ge1xuICAgIGNvbnN0IGNoZWNrVHJhY2tpbmcgPSB0aGlzLiN0cmFja2luZy5oYXMoZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcblxuICAgIGlmICghY2hlY2tUcmFja2luZykge1xuICAgICAgdGhpcy4jdHJhY2tpbmcuc2V0KFxuICAgICAgICBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIG5ldyBPYnNlcnZhYmxlPFJlc2l6ZU9ic2VydmVyRW50cnlbXT4oKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy4jcmVzaXplU3ViamVjdC5zdWJzY3JpYmUob2JzZXJ2ZXIpO1xuICAgICAgICAgIHRoaXMuI3Jlc2l6ZU9ic2VydmVyPy5vYnNlcnZlKGVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuI3Jlc2l6ZU9ic2VydmVyPy51bm9ic2VydmUoZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy4jdHJhY2tpbmcuZGVsZXRlKGVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfSkucGlwZShcbiAgICAgICAgICBmaWx0ZXIoQm9vbGVhbiksXG4gICAgICAgICAgZmlsdGVyKChlbnRyaWVzKSA9PlxuICAgICAgICAgICAgZW50cmllcy5zb21lKChlbnRyeSkgPT4gZW50cnkudGFyZ2V0ID09PSBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQpLFxuICAgICAgICAgICksXG4gICAgICAgICAgbWFwKFxuICAgICAgICAgICAgKGVudHJpZXMpID0+XG4gICAgICAgICAgICAgIGVudHJpZXMuZmluZChcbiAgICAgICAgICAgICAgICAoZW50cnkpID0+IGVudHJ5LnRhcmdldCA9PT0gZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICApIGFzIFJlc2l6ZU9ic2VydmVyRW50cnksXG4gICAgICAgICAgKSxcbiAgICAgICAgICAvLyBJZ25vcmUgc3VicGl4ZWwgY2hhbmdlcy5cbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZChcbiAgICAgICAgICAgIChhLCBiKSA9PlxuICAgICAgICAgICAgICBNYXRoLnJvdW5kKGEuY29udGVudFJlY3Qud2lkdGgpID09PVxuICAgICAgICAgICAgICAgIE1hdGgucm91bmQoYi5jb250ZW50UmVjdC53aWR0aCkgJiZcbiAgICAgICAgICAgICAgTWF0aC5yb3VuZChhLmNvbnRlbnRSZWN0LmhlaWdodCkgPT09XG4gICAgICAgICAgICAgICAgTWF0aC5yb3VuZChiLmNvbnRlbnRSZWN0LmhlaWdodCksXG4gICAgICAgICAgKSxcbiAgICAgICAgICAvLyBFbWl0IHRoZSBsYXN0IHZhbHVlIGZvciBsYXRlIHN1YnNjcmliZXJzLiBUcmFjayByZWZlcmVuY2VzIHNvIGl0XG4gICAgICAgICAgLy8gdW4tb2JzZXJ2ZXMgd2hlbiBhbGwgc3Vic2NyaWJlcnMgYXJlIGdvbmUuXG4gICAgICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KSxcbiAgICAgICAgICAvLyBPbmx5IGVtaXQgcHJpb3IgdG8gYW4gYW5pbWF0aW9uIGZyYW1lIHRvIHByZXZlbnQgbGF5b3V0IHRocmFzaGluZy5cbiAgICAgICAgICB0aHJvdHRsZSgoKSA9PiBhbmltYXRpb25GcmFtZXMoKS5waXBlKHRha2UoMSkpLCB7XG4gICAgICAgICAgICBsZWFkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIHRyYWlsaW5nOiB0cnVlLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuI3RyYWNraW5nLmdldChcbiAgICAgIGVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICApIGFzIE9ic2VydmFibGU8UmVzaXplT2JzZXJ2ZXJFbnRyeT47XG4gIH1cblxuICAjZXhwZWN0V2luZG93RXJyb3IoKTogdm9pZCB7XG4gICAgaWYgKCFlcnJvckxvZ1JlZ2lzdGVyZWQpIHtcbiAgICAgIGVycm9yTG9nUmVnaXN0ZXJlZCA9IHRydWU7XG4gICAgICAvLyBSZXNpemVPYnNlcnZlciB0aHJvd3MgYW4gZXJyb3Igd2hlbiBpdCBpcyBkaXNjb25uZWN0ZWQgd2hpbGUgaXQgaXNcbiAgICAgIC8vIHN0aWxsIG9ic2VydmluZyBhbiBlbGVtZW50LiBXaGVuIGFuIGVsZW1lbnQgaXMgbm8gbG9uZ2VyIG9ic2VydmVkLCB0aGlzXG4gICAgICAvLyBpcyBub3QgYSBjb25jZXJuLlxuICAgICAgdGhpcy4jem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PlxuICAgICAgICB0aGlzLiN3aW5kb3cubmF0aXZlV2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZXJyb3JIYW5kbGVyKSxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0aGlzLiN3aW5kb3cubmF0aXZlV2luZG93Lm9uZXJyb3IgIT09IG9uRXJyb3IpIHtcbiAgICAgIG9yaWdpbmFsT25FcnJvciA9IHRoaXMuI3dpbmRvdy5uYXRpdmVXaW5kb3cub25lcnJvcjtcbiAgICAgIHRoaXMuI3dpbmRvdy5uYXRpdmVXaW5kb3cub25lcnJvciA9IG9uRXJyb3I7XG4gICAgfVxuICB9XG5cbiAgI3Jlc2V0V2luZG93RXJyb3IoKTogdm9pZCB7XG4gICAgdGhpcy4jd2luZG93Lm5hdGl2ZVdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdlcnJvcicsIGVycm9ySGFuZGxlcik7XG4gICAgaWYgKG9yaWdpbmFsT25FcnJvcikge1xuICAgICAgdGhpcy4jd2luZG93Lm5hdGl2ZVdpbmRvdy5vbmVycm9yID0gb3JpZ2luYWxPbkVycm9yO1xuICAgICAgb3JpZ2luYWxPbkVycm9yID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBlcnJvckxvZ1JlZ2lzdGVyZWQgPSBmYWxzZTtcbiAgfVxufVxuIl19
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLW9ic2VydmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvcmVzaXplLW9ic2VydmVyL3Jlc2l6ZS1vYnNlcnZlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEVBRWQsVUFBVSxFQUNWLE1BQU0sRUFFTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLFVBQVUsRUFDVixPQUFPLEVBQ1AsdUJBQXVCLEVBQ3ZCLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sR0FBRyxFQUNILFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUV2RCxNQUFNLFNBQVMsR0FDYiwrREFBK0QsQ0FBQztBQUNsRSxJQUFJLGtCQUFrQixHQUFHLEtBQUssQ0FBQztBQUMvQixJQUFJLGVBQWUsR0FFSCxTQUFTLENBQUM7QUFFMUIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFpQixFQUF1QixFQUFFO0lBQzlELElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNqQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQUVGLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBMEIsRUFBdUIsRUFBRTtJQUNsRSxNQUFNLE9BQU8sR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FB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SyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQ2xFLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDbEQsZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQztZQUNwRCxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3JFLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBTyxHQUFHLGVBQWUsQ0FBQztZQUNwRCxlQUFlLEdBQUcsU0FBUyxDQUFDO1FBQzlCLENBQUM7UUFDRCxrQkFBa0IsR0FBRyxLQUFLLENBQUM7SUFDN0IsQ0FBQzsrR0F0R1Usd0JBQXdCO21IQUF4Qix3QkFBd0IsY0FGdkIsTUFBTTs7NEZBRVAsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUmVmLFxuICBFbGVtZW50UmVmLFxuICBJbmplY3RhYmxlLFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdCxcbiAgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgb2JzZXJ2ZU9uLFxuICBzaGFyZVJlcGxheSxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5QXBwV2luZG93UmVmIH0gZnJvbSAnLi4vd2luZG93L3dpbmRvdy1yZWYnO1xuXG5jb25zdCBlcnJvclRlc3QgPVxuICAvUmVzaXplT2JzZXJ2ZXIgbG9vcCBjb21wbGV0ZWQgd2l0aCB1bmRlbGl2ZXJlZCBub3RpZmljYXRpb25zL2k7XG5sZXQgZXJyb3JMb2dSZWdpc3RlcmVkID0gZmFsc2U7XG5sZXQgb3JpZ2luYWxPbkVycm9yOlxuICB8ICgoZXZlbnQ6IHN0cmluZyB8IEV2ZW50KSA9PiBib29sZWFuIHwgdW5kZWZpbmVkKVxuICB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuY29uc3QgZXJyb3JIYW5kbGVyID0gKGV2ZW50OiBFcnJvckV2ZW50KTogYm9vbGVhbiB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmIChlcnJvclRlc3QudGVzdChldmVudC5tZXNzYWdlKSkge1xuICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59O1xuXG5jb25zdCBvbkVycm9yID0gKGV2ZW50OiBzdHJpbmcgfCBFcnJvckV2ZW50KTogYm9vbGVhbiB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IG1lc3NhZ2UgPSB0eXBlb2YgZXZlbnQgPT09ICdzdHJpbmcnID8gZXZlbnQgOiBldmVudC5tZXNzYWdlO1xuICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSB0byBwcmV2ZW50IHRoZSB0ZXN0IHJ1bm5lciBmcm9tIGZhaWxpbmcgb24gZXJyb3JzLCBidXQgY2hhbGxlbmdpbmcgdG8gcmVsaWFibHkgdGVzdC5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgaWYgKGVycm9yVGVzdC50ZXN0KG1lc3NhZ2UpKSB7XG4gICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgRXJyb3JFdmVudCkge1xuICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gb3JpZ2luYWxPbkVycm9yPy5jYWxsKHdpbmRvdywgZXZlbnQpO1xufTtcblxuLyoqXG4gKiBTZXJ2aWNlIHRvIGNyZWF0ZSByeGpzIG9ic2VydmFibGVzIGZvciBjaGFuZ2VzIHRvIHRoZSBjb250ZW50IGJveCBkaW1lbnNpb25zIG9mIGVsZW1lbnRzLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5UmVzaXplT2JzZXJ2ZXJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICByZWFkb25seSAjem9uZSA9IGluamVjdChOZ1pvbmUpO1xuICByZWFkb25seSAjcmVzaXplT2JzZXJ2ZXIgPSB0aGlzLiN6b25lLnJ1bk91dHNpZGVBbmd1bGFyKFxuICAgICgpID0+XG4gICAgICBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMpID0+XG4gICAgICAgIHRoaXMuI3pvbmUucnVuKCgpID0+IHRoaXMuI3Jlc2l6ZVN1YmplY3QubmV4dChlbnRyaWVzKSksXG4gICAgICApLFxuICApO1xuICByZWFkb25seSAjcmVzaXplU3ViamVjdCA9IG5ldyBTdWJqZWN0PFJlc2l6ZU9ic2VydmVyRW50cnlbXT4oKTtcbiAgcmVhZG9ubHkgI3RyYWNraW5nID0gbmV3IE1hcDxFbGVtZW50LCBPYnNlcnZhYmxlPFJlc2l6ZU9ic2VydmVyRW50cnk+PigpO1xuICByZWFkb25seSAjd2luZG93ID0gaW5qZWN0KFNreUFwcFdpbmRvd1JlZik7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy4jZXhwZWN0V2luZG93RXJyb3IoKTtcbiAgICAvLyBCZWNhdXNlIHRoZSByZXNpemUgb2JzZXJ2ZXIgaXMgYSBuYXRpdmUgYnJvd3NlciBBUEksIGl0IGRvZXMgbm90IHNodXQgZG93blxuICAgIC8vIHN5bmNocm9ub3VzbHkgd2hlbiB0aGUgc2VydmljZSBpcyBkZXN0cm95ZWQuIExlYXZlIHRoZSBlcnJvciBoYW5kbGluZ1xuICAgIC8vIGFjY29tbW9kYXRpb24gaW4gcGxhY2UgdW50aWwgdGhlIGFwcGxpY2F0aW9uIGlzIGRlc3Ryb3llZC4gVGhpcyBhbHNvIHdvcmtzXG4gICAgLy8gZm9yIHRoZSB0ZXN0IHJ1bm5lci5cbiAgICBpbmplY3QoQXBwbGljYXRpb25SZWYpLm9uRGVzdHJveSgoKSA9PiB0aGlzLiNyZXNldFdpbmRvd0Vycm9yKCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLiNyZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHJ4anMgb2JzZXJ2YWJsZSB0byBnZXQgc2l6ZSBjaGFuZ2VzIGZvciBhbiBlbGVtZW50IHJlZi5cbiAgICovXG4gIHB1YmxpYyBvYnNlcnZlKGVsZW1lbnQ6IEVsZW1lbnRSZWYpOiBPYnNlcnZhYmxlPFJlc2l6ZU9ic2VydmVyRW50cnk+IHtcbiAgICBjb25zdCBjaGVja1RyYWNraW5nID0gdGhpcy4jdHJhY2tpbmcuaGFzKGVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG5cbiAgICBpZiAoIWNoZWNrVHJhY2tpbmcpIHtcbiAgICAgIHRoaXMuI3RyYWNraW5nLnNldChcbiAgICAgICAgZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICBuZXcgT2JzZXJ2YWJsZTxSZXNpemVPYnNlcnZlckVudHJ5W10+KChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuI3Jlc2l6ZVN1YmplY3Quc3Vic2NyaWJlKG9ic2VydmVyKTtcbiAgICAgICAgICB0aGlzLiNyZXNpemVPYnNlcnZlcj8ub2JzZXJ2ZShlbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiNyZXNpemVPYnNlcnZlcj8udW5vYnNlcnZlKGVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuI3RyYWNraW5nLmRlbGV0ZShlbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgIH07XG4gICAgICAgIH0pLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgICAgIGZpbHRlcigoZW50cmllcykgPT5cbiAgICAgICAgICAgIGVudHJpZXMuc29tZSgoZW50cnkpID0+IGVudHJ5LnRhcmdldCA9PT0gZWxlbWVudC5uYXRpdmVFbGVtZW50KSxcbiAgICAgICAgICApLFxuICAgICAgICAgIG1hcChcbiAgICAgICAgICAgIChlbnRyaWVzKSA9PlxuICAgICAgICAgICAgICBlbnRyaWVzLmZpbmQoXG4gICAgICAgICAgICAgICAgKGVudHJ5KSA9PiBlbnRyeS50YXJnZXQgPT09IGVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgKSBhcyBSZXNpemVPYnNlcnZlckVudHJ5LFxuICAgICAgICAgICksXG4gICAgICAgICAgLy8gSWdub3JlIHN1YnBpeGVsIGNoYW5nZXMuXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoXG4gICAgICAgICAgICAoYSwgYikgPT5cbiAgICAgICAgICAgICAgTWF0aC5yb3VuZChhLmNvbnRlbnRSZWN0LndpZHRoKSA9PT1cbiAgICAgICAgICAgICAgICBNYXRoLnJvdW5kKGIuY29udGVudFJlY3Qud2lkdGgpICYmXG4gICAgICAgICAgICAgIE1hdGgucm91bmQoYS5jb250ZW50UmVjdC5oZWlnaHQpID09PVxuICAgICAgICAgICAgICAgIE1hdGgucm91bmQoYi5jb250ZW50UmVjdC5oZWlnaHQpLFxuICAgICAgICAgICksXG4gICAgICAgICAgLy8gRW1pdCB0aGUgbGFzdCB2YWx1ZSBmb3IgbGF0ZSBzdWJzY3JpYmVycy4gVHJhY2sgcmVmZXJlbmNlcyBzbyBpdFxuICAgICAgICAgIC8vIHVuLW9ic2VydmVzIHdoZW4gYWxsIHN1YnNjcmliZXJzIGFyZSBnb25lLlxuICAgICAgICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSksXG4gICAgICAgICAgLy8gT25seSBlbWl0IHByaW9yIHRvIGFuIGFuaW1hdGlvbiBmcmFtZSB0byBwcmV2ZW50IGxheW91dCB0aHJhc2hpbmcuXG4gICAgICAgICAgb2JzZXJ2ZU9uKGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSksXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLiN0cmFja2luZy5nZXQoXG4gICAgICBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgKSBhcyBPYnNlcnZhYmxlPFJlc2l6ZU9ic2VydmVyRW50cnk+O1xuICB9XG5cbiAgI2V4cGVjdFdpbmRvd0Vycm9yKCk6IHZvaWQge1xuICAgIGlmICghZXJyb3JMb2dSZWdpc3RlcmVkKSB7XG4gICAgICBlcnJvckxvZ1JlZ2lzdGVyZWQgPSB0cnVlO1xuICAgICAgLy8gUmVzaXplT2JzZXJ2ZXIgdGhyb3dzIGFuIGVycm9yIHdoZW4gaXQgaXMgZGlzY29ubmVjdGVkIHdoaWxlIGl0IGlzXG4gICAgICAvLyBzdGlsbCBvYnNlcnZpbmcgYW4gZWxlbWVudC4gV2hlbiBhbiBlbGVtZW50IGlzIG5vIGxvbmdlciBvYnNlcnZlZCwgdGhpc1xuICAgICAgLy8gaXMgbm90IGEgY29uY2Vybi5cbiAgICAgIHRoaXMuI3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT5cbiAgICAgICAgdGhpcy4jd2luZG93Lm5hdGl2ZVdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGVycm9ySGFuZGxlciksXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGhpcy4jd2luZG93Lm5hdGl2ZVdpbmRvdy5vbmVycm9yICE9PSBvbkVycm9yKSB7XG4gICAgICBvcmlnaW5hbE9uRXJyb3IgPSB0aGlzLiN3aW5kb3cubmF0aXZlV2luZG93Lm9uZXJyb3I7XG4gICAgICB0aGlzLiN3aW5kb3cubmF0aXZlV2luZG93Lm9uZXJyb3IgPSBvbkVycm9yO1xuICAgIH1cbiAgfVxuXG4gICNyZXNldFdpbmRvd0Vycm9yKCk6IHZvaWQge1xuICAgIHRoaXMuI3dpbmRvdy5uYXRpdmVXaW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignZXJyb3InLCBlcnJvckhhbmRsZXIpO1xuICAgIGlmIChvcmlnaW5hbE9uRXJyb3IpIHtcbiAgICAgIHRoaXMuI3dpbmRvdy5uYXRpdmVXaW5kb3cub25lcnJvciA9IG9yaWdpbmFsT25FcnJvcjtcbiAgICAgIG9yaWdpbmFsT25FcnJvciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgZXJyb3JMb2dSZWdpc3RlcmVkID0gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
@@ -15,5 +15,5 @@ export class Version {
15
15
  /**
16
16
  * Represents the version of @skyux/core.
17
17
  */
18
- export const VERSION = new Version('11.44.0');
18
+ export const VERSION = new Version('11.45.1');
19
19
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdDQUF3QztBQUN4QyxtRkFBbUY7QUFFbkY7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLE9BQU87SUFLbEIsWUFBNEIsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7UUFDdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsRCxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVGFrZW4gZnJvbSBBbmd1bGFyJ3MgdmVyc2lvbi50cyBmaWxlLlxuLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvMTYuMi54L3BhY2thZ2VzL2NvcmUvc3JjL3ZlcnNpb24udHNcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSB2ZXJzaW9uIG9mIGEgcGFja2FnZS5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgVmVyc2lvbiB7XG4gIHB1YmxpYyByZWFkb25seSBtYWpvcjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbWlub3I6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHBhdGNoOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGZ1bGw6IHN0cmluZykge1xuICAgIHRoaXMubWFqb3IgPSBmdWxsLnNwbGl0KCcuJylbMF07XG4gICAgdGhpcy5taW5vciA9IGZ1bGwuc3BsaXQoJy4nKVsxXTtcbiAgICB0aGlzLnBhdGNoID0gZnVsbC5zcGxpdCgnLicpLnNsaWNlKDIpLmpvaW4oJy4nKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHZlcnNpb24gb2YgQHNreXV4L2NvcmUuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gbmV3IFZlcnNpb24oJzAuMC4wLVBMQUNFSE9MREVSJyk7XG4iXX0=
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { NgModule, Injectable, inject, RendererFactory2, NgZone, EventEmitter, Directive, Input, Output, EnvironmentInjector, createEnvironmentInjector, createComponent, ChangeDetectorRef, ElementRef, ViewContainerRef, Component, ChangeDetectionStrategy, ViewChild, InjectionToken, input, effect, Optional, Inject, ApplicationRef, afterNextRender, Injector, Pipe, HostBinding, Renderer2, HostListener } from '@angular/core';
3
3
  import * as i1$1 from '@angular/common';
4
4
  import { DOCUMENT, CommonModule } from '@angular/common';
5
- import { Subject, Subscription, ReplaySubject, fromEvent, of, Observable, filter, map, distinctUntilChanged, shareReplay, throttle, animationFrames, take, takeUntil as takeUntil$1, BehaviorSubject, concat, animationFrameScheduler } from 'rxjs';
5
+ import { Subject, Subscription, ReplaySubject, fromEvent, of, Observable, filter, map, distinctUntilChanged, shareReplay, observeOn, animationFrameScheduler, takeUntil as takeUntil$1, BehaviorSubject, concat } from 'rxjs';
6
6
  import { takeUntil, debounceTime, switchMap, map as map$1 } from 'rxjs/operators';
7
7
  import { ViewportRuler } from '@angular/cdk/overlay';
8
8
  import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
@@ -322,6 +322,9 @@ function getInversePlacement(placement) {
322
322
  return pairings[placement];
323
323
  }
324
324
 
325
+ function useViewportForBounds(element) {
326
+ return 'BODY' === element.tagName;
327
+ }
325
328
  /**
326
329
  * Returns the offset values of a given element.
327
330
  * @param element The HTML element.
@@ -418,7 +421,7 @@ function getOverflowParents(child) {
418
421
  */
419
422
  function isOffsetFullyVisibleWithinParent(viewportRuler, parent, offset, bufferOffset) {
420
423
  let parentOffset;
421
- if (parent.matches('body')) {
424
+ if (useViewportForBounds(parent)) {
422
425
  const viewportRect = viewportRuler.getViewportRect();
423
426
  parentOffset = {
424
427
  top: 0,
@@ -439,9 +442,22 @@ function isOffsetFullyVisibleWithinParent(viewportRuler, parent, offset, bufferO
439
442
  parentOffset.left <= offset.left);
440
443
  }
441
444
  function isOffsetPartiallyVisibleWithinParent(viewportRuler, parent, offset, bufferOffset) {
442
- const parentOffset = bufferOffset
443
- ? getElementOffset(parent, bufferOffset)
444
- : getVisibleRectForElement(viewportRuler, parent);
445
+ let parentOffset;
446
+ if (useViewportForBounds(parent)) {
447
+ const viewportRect = viewportRuler.getViewportRect();
448
+ parentOffset = {
449
+ top: 0,
450
+ left: 0,
451
+ right: viewportRect.width,
452
+ bottom: viewportRect.height,
453
+ };
454
+ }
455
+ else if (bufferOffset) {
456
+ parentOffset = getElementOffset(parent, bufferOffset);
457
+ }
458
+ else {
459
+ parentOffset = getVisibleRectForElement(viewportRuler, parent);
460
+ }
445
461
  return !(parentOffset.top >= offset.bottom ||
446
462
  parentOffset.right <= offset.left ||
447
463
  parentOffset.bottom <= offset.top ||
@@ -2099,11 +2115,11 @@ const onError = (event) => {
2099
2115
  */
2100
2116
  class SkyResizeObserverService {
2101
2117
  #ngUnsubscribe = new Subject();
2102
- #resizeObserver = new ResizeObserver((entries) => this.#resizeSubject.next(entries));
2118
+ #zone = inject(NgZone);
2119
+ #resizeObserver = this.#zone.runOutsideAngular(() => new ResizeObserver((entries) => this.#zone.run(() => this.#resizeSubject.next(entries))));
2103
2120
  #resizeSubject = new Subject();
2104
2121
  #tracking = new Map();
2105
2122
  #window = inject(SkyAppWindowRef);
2106
- #zone = inject(NgZone);
2107
2123
  constructor() {
2108
2124
  this.#expectWindowError();
2109
2125
  // Because the resize observer is a native browser API, it does not shut down
@@ -2141,10 +2157,7 @@ class SkyResizeObserverService {
2141
2157
  // un-observes when all subscribers are gone.
2142
2158
  shareReplay({ bufferSize: 1, refCount: true }),
2143
2159
  // Only emit prior to an animation frame to prevent layout thrashing.
2144
- throttle(() => animationFrames().pipe(take(1)), {
2145
- leading: false,
2146
- trailing: true,
2147
- }), takeUntil$1(this.#ngUnsubscribe)));
2160
+ observeOn(animationFrameScheduler), takeUntil$1(this.#ngUnsubscribe)));
2148
2161
  }
2149
2162
  return this.#tracking.get(element.nativeElement);
2150
2163
  }
@@ -4577,7 +4590,7 @@ class Version {
4577
4590
  /**
4578
4591
  * Represents the version of @skyux/core.
4579
4592
  */
4580
- const VERSION = new Version('11.44.0');
4593
+ const VERSION = new Version('11.45.1');
4581
4594
 
4582
4595
  /**
4583
4596
  * Generated bundle index. Do not edit.