@ethlete/core 2.5.1 → 2.6.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.
@@ -23,6 +23,7 @@ class CursorDragScrollDirective {
23
23
  y: 0,
24
24
  };
25
25
  this._enabled = false;
26
+ this.allowedDirection = 'both';
26
27
  }
27
28
  get enabled() {
28
29
  return this._enabled;
@@ -90,21 +91,30 @@ class CursorDragScrollDirective {
90
91
  }
91
92
  const dx = e.clientX - this._currentScrollState.x;
92
93
  const dy = e.clientY - this._currentScrollState.y;
93
- if (Math.abs(dx) > this._bufferUntilScroll || Math.abs(dy) > this._bufferUntilScroll) {
94
+ const shouldScrollX = (this.allowedDirection === 'horizontal' || this.allowedDirection === 'both') &&
95
+ Math.abs(dx) > this._bufferUntilScroll;
96
+ const shouldScrollY = (this.allowedDirection === 'vertical' || this.allowedDirection === 'both') &&
97
+ Math.abs(dy) > this._bufferUntilScroll;
98
+ if (shouldScrollX || shouldScrollY) {
94
99
  const element = this._elementRef.nativeElement;
95
100
  if (!this._isScrolling) {
96
101
  this._isScrolling = true;
102
+ document.documentElement.style.cursor = 'grabbing';
97
103
  element.style.cursor = 'grabbing';
98
104
  element.classList.add(CURSOR_DRAG_SCROLLING_CLASS);
99
105
  element.scroll({
100
- top: this._currentScrollState.top - dy,
101
- left: this._currentScrollState.left - dx,
106
+ top: shouldScrollY ? this._currentScrollState.top - dy : undefined,
107
+ left: shouldScrollX ? this._currentScrollState.left - dx : undefined,
102
108
  behavior: 'smooth',
103
109
  });
104
110
  }
105
111
  else {
106
- element.scrollTop = this._currentScrollState.top - dy;
107
- element.scrollLeft = this._currentScrollState.left - dx;
112
+ if (shouldScrollY) {
113
+ element.scrollTop = this._currentScrollState.top - dy;
114
+ }
115
+ if (shouldScrollX) {
116
+ element.scrollLeft = this._currentScrollState.left - dx;
117
+ }
108
118
  }
109
119
  }
110
120
  }
@@ -116,6 +126,7 @@ class CursorDragScrollDirective {
116
126
  }
117
127
  this._elementRef.nativeElement.style.scrollSnapType = '';
118
128
  this._elementRef.nativeElement.style.scrollBehavior = '';
129
+ document.documentElement.style.cursor = '';
119
130
  this._elementRef.nativeElement.style.cursor = 'grab';
120
131
  this._elementRef.nativeElement.classList.remove(CURSOR_DRAG_SCROLLING_CLASS);
121
132
  this._elementRef.nativeElement.classList.remove(CURSOR_DRAG_SCROLLING_PREPARED_CLASS);
@@ -130,7 +141,7 @@ class CursorDragScrollDirective {
130
141
  }
131
142
  }
132
143
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: CursorDragScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
133
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: CursorDragScrollDirective, isStandalone: true, selector: "[etCursorDragScroll]", inputs: { enabled: ["etCursorDragScroll", "enabled"] }, exportAs: ["etCursorDragScroll"], ngImport: i0 }); }
144
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: CursorDragScrollDirective, isStandalone: true, selector: "[etCursorDragScroll]", inputs: { enabled: ["etCursorDragScroll", "enabled"], allowedDirection: "allowedDirection" }, exportAs: ["etCursorDragScroll"], ngImport: i0 }); }
134
145
  }
135
146
  export { CursorDragScrollDirective };
136
147
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: CursorDragScrollDirective, decorators: [{
@@ -143,5 +154,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
143
154
  }], propDecorators: { enabled: [{
144
155
  type: Input,
145
156
  args: ['etCursorDragScroll']
157
+ }], allowedDirection: [{
158
+ type: Input
146
159
  }] } });
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Vyc29yLWRyYWctc2Nyb2xsLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvY3Vyc29yLWRyYWctc2Nyb2xsL2N1cnNvci1kcmFnLXNjcm9sbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxPQUFPLEVBQWdCLGFBQWEsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0SCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUVuSCxNQUthLHlCQUF5QjtJQUx0QztRQU1tQixtQkFBYyxHQUFtQixFQUFFLENBQUM7UUFDcEMsY0FBUyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBQzVCLGdCQUFXLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUMxRCw0QkFBdUIsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUN6RCwyQkFBc0IsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUV2RCx1QkFBa0IsR0FBRyxDQUFDLENBQUM7UUFDdkIsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFFNUMsaUJBQVksR0FB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fSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGNvbWJpbmVMYXRlc3QsIGRlYm91bmNlVGltZSwgZnJvbUV2ZW50LCBzdGFydFdpdGgsIHRha2UsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb250ZW50T2JzZXJ2ZXJTZXJ2aWNlLCBSZXNpemVPYnNlcnZlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVEZXN0cm95LCBlbGVtZW50Q2FuU2Nyb2xsIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgQ1VSU09SX0RSQUdfU0NST0xMSU5HX0NMQVNTLCBDVVJTT1JfRFJBR19TQ1JPTExJTkdfUFJFUEFSRURfQ0xBU1MgfSBmcm9tICcuL2N1cnNvci1kcmFnLXNjcm9sbC5jb25zdGFudHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZXRDdXJzb3JEcmFnU2Nyb2xsXScsXG4gIGV4cG9ydEFzOiAnZXRDdXJzb3JEcmFnU2Nyb2xsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQ3Vyc29yRHJhZ1Njcm9sbERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IGNyZWF0ZURlc3Ryb3koKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbnRlbnRPYnNlcnZlclNlcnZpY2UgPSBpbmplY3QoQ29udGVudE9ic2VydmVyU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Jlc2l6ZU9ic2VydmVyU2VydmljZSA9IGluamVjdChSZXNpemVPYnNlcnZlclNlcnZpY2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2J1ZmZlclVudGlsU2Nyb2xsID0gNTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbW91c2VVcCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIHByaXZhdGUgX2lzU2Nyb2xsaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgX2NhblNjcm9sbCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2N1cnJlbnRTY3JvbGxTdGF0ZSA9IHtcbiAgICB0b3A6IDAsXG4gICAgbGVmdDogMCxcbiAgICB4OiAwLFxuICAgIHk6IDAsXG4gIH07XG5cbiAgQElucHV0KCdldEN1cnNvckRyYWdTY3JvbGwnKVxuICBnZXQgZW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZW5hYmxlZDtcbiAgfVxuICBzZXQgZW5hYmxlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fZW5hYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICBpZiAodGhpcy5fZW5hYmxlZCkge1xuICAgICAgdGhpcy5fZW5hYmxlQ3Vyc29yRHJhZ1Njcm9sbCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9kaXNhYmxlQ3Vyc29yRHJhZ1Njcm9sbCgpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIF9lbmFibGVkID0gZmFsc2U7XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmVuYWJsZWQpIHtcbiAgICAgIHRoaXMuX2VuYWJsZUN1cnNvckRyYWdTY3JvbGwoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZGlzYWJsZUN1cnNvckRyYWdTY3JvbGwoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9lbmFibGVDdXJzb3JEcmFnU2Nyb2xsKCkge1xuICAgIGNvbnN0IGNvbnRlbnRSZXNpemVTdWIgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuX2NvbnRlbnRPYnNlcnZlclNlcnZpY2Uub2JzZXJ2ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLnBpcGUoc3RhcnRXaXRoKG51bGwpKSxcbiAgICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyU2VydmljZS5vYnNlcnZlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkucGlwZShzdGFydFdpdGgobnVsbCkpLFxuICAgIF0pXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDI1KSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuX3VwZGF0ZUNhblNjcm9sbFN0YXRlKCkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgY29uc3QgbW91c2Vkb3duU3ViID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlZG93bicpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChlKSA9PiB0aGlzLl9vbk1vdXNlRG93bihlKSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnB1c2goY29udGVudFJlc2l6ZVN1YiwgbW91c2Vkb3duU3ViKTtcblxuICAgIHRoaXMuX3VwZGF0ZUNhblNjcm9sbFN0YXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9kaXNhYmxlQ3Vyc29yRHJhZ1Njcm9sbCgpIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmZvckVhY2goKHN1YikgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMubGVuZ3RoID0gMDtcbiAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuY3Vyc29yID0gJ2RlZmF1bHQnO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25Nb3VzZURvd24oZTogTW91c2VFdmVudCkge1xuICAgIGlmICghdGhpcy5fZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudCB8fCAhdGhpcy5fY2FuU2Nyb2xsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChDVVJTT1JfRFJBR19TQ1JPTExJTkdfUFJFUEFSRURfQ0xBU1MpO1xuXG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnNjcm9sbFNuYXBUeXBlID0gJ25vbmUnO1xuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5zY3JvbGxCZWhhdmlvciA9ICd1bnNldCc7XG5cbiAgICB0aGlzLl9jdXJyZW50U2Nyb2xsU3RhdGUgPSB7XG4gICAgICBsZWZ0OiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCxcbiAgICAgIHRvcDogdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCxcbiAgICAgIHg6IGUuY2xpZW50WCxcbiAgICAgIHk6IGUuY2xpZW50WSxcbiAgICB9O1xuXG4gICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGRvY3VtZW50LCAnbW91c2Vtb3ZlJylcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKGUpID0+IHRoaXMuX21vdXNlTW92ZUhhbmRsZXIoZSkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fbW91c2VVcCQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGRvY3VtZW50LCAnbW91c2V1cCcpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuX21vdXNlVXBIYW5kbGVyKCkpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfbW91c2VNb3ZlSGFuZGxlcihlOiBNb3VzZUV2ZW50KSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgaWYgKCF0aGlzLl9lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZHggPSBlLmNsaWVudFggLSB0aGlzLl9jdXJyZW50U2Nyb2xsU3RhdGUueDtcbiAgICBjb25zdCBkeSA9IGUuY2xpZW50WSAtIHRoaXMuX2N1cnJlbnRTY3JvbGxTdGF0ZS55O1xuXG4gICAgaWYgKE1hdGguYWJzKGR4KSA+IHRoaXMuX2J1ZmZlclVudGlsU2Nyb2xsIHx8IE1hdGguYWJzKGR5KSA+IHRoaXMuX2J1ZmZlclVudGlsU2Nyb2xsKSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICBpZiAoIXRoaXMuX2lzU2Nyb2xsaW5nKSB7XG4gICAgICAgIHRoaXMuX2lzU2Nyb2xsaW5nID0gdHJ1ZTtcblxuICAgICAgICBlbGVtZW50LnN0eWxlLmN1cnNvciA9ICdncmFiYmluZyc7XG4gICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChDVVJTT1JfRFJBR19TQ1JPTExJTkdfQ0xBU1MpO1xuICAgICAgICBlbGVtZW50LnNjcm9sbCh7XG4gICAgICAgICAgdG9wOiB0aGlzLl9jdXJyZW50U2Nyb2xsU3RhdGUudG9wIC0gZHksXG4gICAgICAgICAgbGVmdDogdGhpcy5fY3VycmVudFNjcm9sbFN0YXRlLmxlZnQgLSBkeCxcbiAgICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWxlbWVudC5zY3JvbGxUb3AgPSB0aGlzLl9jdXJyZW50U2Nyb2xsU3RhdGUudG9wIC0gZHk7XG4gICAgICAgIGVsZW1lbnQuc2Nyb2xsTGVmdCA9IHRoaXMuX2N1cnJlbnRTY3JvbGxTdGF0ZS5sZWZ0IC0gZHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfbW91c2VVcEhhbmRsZXIoKSB7XG4gICAgdGhpcy5fbW91c2VVcCQubmV4dCh0cnVlKTtcbiAgICB0aGlzLl9pc1Njcm9sbGluZyA9IGZhbHNlO1xuXG4gICAgaWYgKCF0aGlzLl9lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnNjcm9sbFNuYXBUeXBlID0gJyc7XG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gJyc7XG5cbiAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuY3Vyc29yID0gJ2dyYWInO1xuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKENVUlNPUl9EUkFHX1NDUk9MTElOR19DTEFTUyk7XG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoQ1VSU09SX0RSQUdfU0NST0xMSU5HX1BSRVBBUkVEX0NMQVNTKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUNhblNjcm9sbFN0YXRlKCkge1xuICAgIHRoaXMuX2NhblNjcm9sbCA9IGVsZW1lbnRDYW5TY3JvbGwodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcblxuICAgIGlmICh0aGlzLl9jYW5TY3JvbGwpIHtcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5jdXJzb3IgPSAnZ3JhYic7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5jdXJzb3IgPSAnZGVmYXVsdCc7XG4gICAgfVxuICB9XG59XG4iXX0=
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Vyc29yLWRyYWctc2Nyb2xsLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvY3Vyc29yLWRyYWctc2Nyb2xsL2N1cnNvci1kcmFnLXNjcm9sbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxPQUFPLEVBQWdCLGFBQWEsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0SCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUVuSCxNQUthLHlCQUF5QjtJQUx0QztRQU1tQixtQkFBYyxHQUFtQixFQUFFLENBQUM7UUFDcEMsY0FBUyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBQzVCLGdCQUFXLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUMxRCw0QkFBdUIsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUN6RCwyQkFBc0IsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUV2RCx1QkFBa0IsR0FBRyxDQUFDLENBQUM7UUFDdkIsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFFNUMsaUJBQVksR0FB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R0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRW5FLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztTQUN0RDthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7U0FDekQ7SUFDSCxDQUFDOzhHQXBMVSx5QkFBeUI7a0dBQXpCLHlCQUF5Qjs7U0FBekIseUJBQXlCOzJGQUF6Qix5QkFBeUI7a0JBTHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQXNCSyxPQUFPO3NCQURWLEtBQUs7dUJBQUMsb0JBQW9CO2dCQWdCM0IsZ0JBQWdCO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgY29tYmluZUxhdGVzdCwgZGVib3VuY2VUaW1lLCBmcm9tRXZlbnQsIHN0YXJ0V2l0aCwgdGFrZSwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbnRlbnRPYnNlcnZlclNlcnZpY2UsIFJlc2l6ZU9ic2VydmVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IGNyZWF0ZURlc3Ryb3ksIGVsZW1lbnRDYW5TY3JvbGwgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBDVVJTT1JfRFJBR19TQ1JPTExJTkdfQ0xBU1MsIENVUlNPUl9EUkFHX1NDUk9MTElOR19QUkVQQVJFRF9DTEFTUyB9IGZyb20gJy4vY3Vyc29yLWRyYWctc2Nyb2xsLmNvbnN0YW50cyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tldEN1cnNvckRyYWdTY3JvbGxdJyxcbiAgZXhwb3J0QXM6ICdldEN1cnNvckRyYWdTY3JvbGwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBDdXJzb3JEcmFnU2Nyb2xsRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gY3JlYXRlRGVzdHJveSgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29udGVudE9ic2VydmVyU2VydmljZSA9IGluamVjdChDb250ZW50T2JzZXJ2ZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVzaXplT2JzZXJ2ZXJTZXJ2aWNlID0gaW5qZWN0KFJlc2l6ZU9ic2VydmVyU2VydmljZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYnVmZmVyVW50aWxTY3JvbGwgPSA1O1xuICBwcml2YXRlIHJlYWRvbmx5IF9tb3VzZVVwJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgcHJpdmF0ZSBfaXNTY3JvbGxpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfY2FuU2Nyb2xsID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfY3VycmVudFNjcm9sbFN0YXRlID0ge1xuICAgIHRvcDogMCxcbiAgICBsZWZ0OiAwLFxuICAgIHg6IDAsXG4gICAgeTogMCxcbiAgfTtcblxuICBASW5wdXQoJ2V0Q3Vyc29yRHJhZ1Njcm9sbCcpXG4gIGdldCBlbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9lbmFibGVkO1xuICB9XG4gIHNldCBlbmFibGVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9lbmFibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcblxuICAgIGlmICh0aGlzLl9lbmFibGVkKSB7XG4gICAgICB0aGlzLl9lbmFibGVDdXJzb3JEcmFnU2Nyb2xsKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2Rpc2FibGVDdXJzb3JEcmFnU2Nyb2xsKCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgX2VuYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBhbGxvd2VkRGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnIHwgJ2JvdGgnID0gJ2JvdGgnO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lbmFibGVkKSB7XG4gICAgICB0aGlzLl9lbmFibGVDdXJzb3JEcmFnU2Nyb2xsKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2Rpc2FibGVDdXJzb3JEcmFnU2Nyb2xsKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZW5hYmxlQ3Vyc29yRHJhZ1Njcm9sbCgpIHtcbiAgICBjb25zdCBjb250ZW50UmVzaXplU3ViID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLl9jb250ZW50T2JzZXJ2ZXJTZXJ2aWNlLm9ic2VydmUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS5waXBlKHN0YXJ0V2l0aChudWxsKSksXG4gICAgICB0aGlzLl9yZXNpemVPYnNlcnZlclNlcnZpY2Uub2JzZXJ2ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLnBpcGUoc3RhcnRXaXRoKG51bGwpKSxcbiAgICBdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgyNSksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLl91cGRhdGVDYW5TY3JvbGxTdGF0ZSgpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIGNvbnN0IG1vdXNlZG93blN1YiA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWRvd24nKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoZSkgPT4gdGhpcy5fb25Nb3VzZURvd24oZSkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5wdXNoKGNvbnRlbnRSZXNpemVTdWIsIG1vdXNlZG93blN1Yik7XG5cbiAgICB0aGlzLl91cGRhdGVDYW5TY3JvbGxTdGF0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZUN1cnNvckRyYWdTY3JvbGwoKSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzdWIpID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmxlbmd0aCA9IDA7XG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmN1cnNvciA9ICdkZWZhdWx0JztcbiAgfVxuXG4gIHByaXZhdGUgX29uTW91c2VEb3duKGU6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuX2VsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQgfHwgIXRoaXMuX2NhblNjcm9sbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoQ1VSU09SX0RSQUdfU0NST0xMSU5HX1BSRVBBUkVEX0NMQVNTKTtcblxuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5zY3JvbGxTbmFwVHlwZSA9ICdub25lJztcbiAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2Nyb2xsQmVoYXZpb3IgPSAndW5zZXQnO1xuXG4gICAgdGhpcy5fY3VycmVudFNjcm9sbFN0YXRlID0ge1xuICAgICAgbGVmdDogdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQsXG4gICAgICB0b3A6IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AsXG4gICAgICB4OiBlLmNsaWVudFgsXG4gICAgICB5OiBlLmNsaWVudFksXG4gICAgfTtcblxuICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pihkb2N1bWVudCwgJ21vdXNlbW92ZScpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChlKSA9PiB0aGlzLl9tb3VzZU1vdmVIYW5kbGVyKGUpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX21vdXNlVXAkKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pihkb2N1bWVudCwgJ21vdXNldXAnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLl9tb3VzZVVwSGFuZGxlcigpKSxcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX21vdXNlTW92ZUhhbmRsZXIoZTogTW91c2VFdmVudCkge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgIGlmICghdGhpcy5fZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGR4ID0gZS5jbGllbnRYIC0gdGhpcy5fY3VycmVudFNjcm9sbFN0YXRlLng7XG4gICAgY29uc3QgZHkgPSBlLmNsaWVudFkgLSB0aGlzLl9jdXJyZW50U2Nyb2xsU3RhdGUueTtcblxuICAgIGNvbnN0IHNob3VsZFNjcm9sbFggPVxuICAgICAgKHRoaXMuYWxsb3dlZERpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnIHx8IHRoaXMuYWxsb3dlZERpcmVjdGlvbiA9PT0gJ2JvdGgnKSAmJlxuICAgICAgTWF0aC5hYnMoZHgpID4gdGhpcy5fYnVmZmVyVW50aWxTY3JvbGw7XG4gICAgY29uc3Qgc2hvdWxkU2Nyb2xsWSA9XG4gICAgICAodGhpcy5hbGxvd2VkRGlyZWN0aW9uID09PSAndmVydGljYWwnIHx8IHRoaXMuYWxsb3dlZERpcmVjdGlvbiA9PT0gJ2JvdGgnKSAmJlxuICAgICAgTWF0aC5hYnMoZHkpID4gdGhpcy5fYnVmZmVyVW50aWxTY3JvbGw7XG5cbiAgICBpZiAoc2hvdWxkU2Nyb2xsWCB8fCBzaG91bGRTY3JvbGxZKSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICBpZiAoIXRoaXMuX2lzU2Nyb2xsaW5nKSB7XG4gICAgICAgIHRoaXMuX2lzU2Nyb2xsaW5nID0gdHJ1ZTtcblxuICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuY3Vyc29yID0gJ2dyYWJiaW5nJztcbiAgICAgICAgZWxlbWVudC5zdHlsZS5jdXJzb3IgPSAnZ3JhYmJpbmcnO1xuICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoQ1VSU09SX0RSQUdfU0NST0xMSU5HX0NMQVNTKTtcbiAgICAgICAgZWxlbWVudC5zY3JvbGwoe1xuICAgICAgICAgIHRvcDogc2hvdWxkU2Nyb2xsWSA/IHRoaXMuX2N1cnJlbnRTY3JvbGxTdGF0ZS50b3AgLSBkeSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBsZWZ0OiBzaG91bGRTY3JvbGxYID8gdGhpcy5fY3VycmVudFNjcm9sbFN0YXRlLmxlZnQgLSBkeCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHNob3VsZFNjcm9sbFkpIHtcbiAgICAgICAgICBlbGVtZW50LnNjcm9sbFRvcCA9IHRoaXMuX2N1cnJlbnRTY3JvbGxTdGF0ZS50b3AgLSBkeTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzaG91bGRTY3JvbGxYKSB7XG4gICAgICAgICAgZWxlbWVudC5zY3JvbGxMZWZ0ID0gdGhpcy5fY3VycmVudFNjcm9sbFN0YXRlLmxlZnQgLSBkeDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX21vdXNlVXBIYW5kbGVyKCkge1xuICAgIHRoaXMuX21vdXNlVXAkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5faXNTY3JvbGxpbmcgPSBmYWxzZTtcblxuICAgIGlmICghdGhpcy5fZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5zY3JvbGxTbmFwVHlwZSA9ICcnO1xuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5zY3JvbGxCZWhhdmlvciA9ICcnO1xuXG4gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLmN1cnNvciA9ICcnO1xuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5jdXJzb3IgPSAnZ3JhYic7XG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoQ1VSU09SX0RSQUdfU0NST0xMSU5HX0NMQVNTKTtcbiAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShDVVJTT1JfRFJBR19TQ1JPTExJTkdfUFJFUEFSRURfQ0xBU1MpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlQ2FuU2Nyb2xsU3RhdGUoKSB7XG4gICAgdGhpcy5fY2FuU2Nyb2xsID0gZWxlbWVudENhblNjcm9sbCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgaWYgKHRoaXMuX2NhblNjcm9sbCkge1xuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmN1cnNvciA9ICdncmFiJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmN1cnNvciA9ICdkZWZhdWx0JztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,41 @@
1
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
2
+ import { Directive, ElementRef, InjectionToken, Input, inject } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export const IS_ELEMENT = new InjectionToken('ET_IS_ELEMENT');
5
+ class IsElementDirective {
6
+ constructor() {
7
+ this.elementRef = inject(ElementRef);
8
+ this._isElement = false;
9
+ }
10
+ get isElement() {
11
+ return this._isElement;
12
+ }
13
+ set isElement(value) {
14
+ this._isElement = coerceBooleanProperty(value);
15
+ }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: IsElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
17
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: IsElementDirective, isStandalone: true, selector: "[etIsElement]", inputs: { isElement: ["etIsElement", "isElement"] }, providers: [
18
+ {
19
+ provide: IS_ELEMENT,
20
+ useExisting: IsElementDirective,
21
+ },
22
+ ], ngImport: i0 }); }
23
+ }
24
+ export { IsElementDirective };
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: IsElementDirective, decorators: [{
26
+ type: Directive,
27
+ args: [{
28
+ selector: '[etIsElement]',
29
+ standalone: true,
30
+ providers: [
31
+ {
32
+ provide: IS_ELEMENT,
33
+ useExisting: IsElementDirective,
34
+ },
35
+ ],
36
+ }]
37
+ }], propDecorators: { isElement: [{
38
+ type: Input,
39
+ args: ['etIsElement']
40
+ }] } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZWxlbWVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2lzLWVsZW1lbnQvaXMtZWxlbWVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVyRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxjQUFjLENBQXFCLGVBQWUsQ0FBQyxDQUFDO0FBRWxGLE1BVWEsa0JBQWtCO0lBVi9CO1FBV1csZUFBVSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFTMUQsZUFBVSxHQUFHLEtBQUssQ0FBQztLQUM1QjtJQVJDLElBQ0ksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxTQUFTLENBQUMsS0FBbUI7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDOzhHQVRVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLGlIQVBsQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixXQUFXLEVBQUUsa0JBQWtCO2FBQ2hDO1NBQ0Y7O1NBRVUsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBVjlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLFVBQVU7NEJBQ25CLFdBQVcsb0JBQW9CO3lCQUNoQztxQkFDRjtpQkFDRjs4QkFLSyxTQUFTO3NCQURaLEtBQUs7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0aW9uVG9rZW4sIElucHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IElTX0VMRU1FTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48SXNFbGVtZW50RGlyZWN0aXZlPignRVRfSVNfRUxFTUVOVCcpO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZXRJc0VsZW1lbnRdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogSVNfRUxFTUVOVCxcbiAgICAgIHVzZUV4aXN0aW5nOiBJc0VsZW1lbnREaXJlY3RpdmUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgSXNFbGVtZW50RGlyZWN0aXZlIHtcbiAgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG5cbiAgQElucHV0KCdldElzRWxlbWVudCcpXG4gIGdldCBpc0VsZW1lbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzRWxlbWVudDtcbiAgfVxuICBzZXQgaXNFbGVtZW50KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9pc0VsZW1lbnQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIHByaXZhdGUgX2lzRWxlbWVudCA9IGZhbHNlO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './is-element.directive';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvaXMtZWxlbWVudC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2lzLWVsZW1lbnQuZGlyZWN0aXZlJztcbiJdfQ==
@@ -8,6 +8,8 @@ import { SCROLL_OBSERVER_IGNORE_TARGET_CLASS } from '../scroll-observer-ignore-t
8
8
  import { SCROLL_OBSERVER_LAST_ELEMENT_CLASS } from '../scroll-observer-last-element';
9
9
  import { OBSERVE_SCROLL_STATE } from './observe-scroll-state.constants';
10
10
  import * as i0 from "@angular/core";
11
+ export const SCROLL_OBSERVER_OBSERVING_FIRST_ELEMENT_CLASS = 'et-scroll-observer-observing-first-element';
12
+ export const SCROLL_OBSERVER_OBSERVING_LAST_ELEMENT_CLASS = 'et-scroll-observer-observing-last-element';
11
13
  class ObserveScrollStateDirective {
12
14
  constructor() {
13
15
  this._destroy$ = createDestroy();
@@ -114,14 +116,19 @@ class ObserveScrollStateDirective {
114
116
  _observeChild(child, element) {
115
117
  this._intersectionObserver?.observe(element);
116
118
  this._observedChildren[child] = element;
117
- element.classList.add(`et-scroll-observer-observing-${child}-element`);
119
+ if (child === 'first') {
120
+ element.classList.add(SCROLL_OBSERVER_OBSERVING_FIRST_ELEMENT_CLASS);
121
+ }
122
+ else {
123
+ element.classList.add(SCROLL_OBSERVER_OBSERVING_LAST_ELEMENT_CLASS);
124
+ }
118
125
  }
119
126
  _unobserveChild(child) {
120
127
  const observedChild = this._observedChildren[child];
121
128
  if (!observedChild) {
122
129
  return;
123
130
  }
124
- observedChild.classList.remove('et-scroll-observer-observing-first-element', 'et-scroll-observer-observing-last-element');
131
+ observedChild.classList.remove(SCROLL_OBSERVER_OBSERVING_FIRST_ELEMENT_CLASS, SCROLL_OBSERVER_OBSERVING_LAST_ELEMENT_CLASS);
125
132
  this._intersectionObserver?.unobserve(observedChild);
126
133
  this._observedChildren[child] = null;
127
134
  }
@@ -172,4 +179,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
172
179
  type: Output,
173
180
  args: ['etObserveScrollState']
174
181
  }] } });
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2ZS1zY3JvbGwtc3RhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9vYnNlcnZlLXNjcm9sbC1zdGF0ZS9vYnNlcnZlLXNjcm9sbC1zdGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFlLE1BQU0sdUJBQXVCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RixPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RixPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFHeEUsTUFXYSwyQkFBMkI7SUFYeEM7UUFZbUIsY0FBUyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBRTVCLGdCQUFXLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUMxRCw0QkFBdUIsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUN6RCwyQkFBc0IsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUV2RCxzQkFB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QkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxvQkFBb0I7NEJBQzdCLFdBQVcsNkJBQTZCO3lCQUN6QztxQkFDRjtpQkFDRjs4QkE0Q0ssa0JBQWtCO3NCQURyQixLQUFLO2dCQVVGLGlCQUFpQjtzQkFEcEIsS0FBSztnQkFpQk4sV0FBVztzQkFEVixNQUFNO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZU51bWJlclByb3BlcnR5LCBOdW1iZXJJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29udGVudE9ic2VydmVyU2VydmljZSwgUmVzaXplT2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgY3JlYXRlRGVzdHJveSwgZWxlbWVudENhblNjcm9sbCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFNDUk9MTF9PQlNFUlZFUl9GSVJTVF9FTEVNRU5UX0NMQVNTIH0gZnJvbSAnLi4vc2Nyb2xsLW9ic2VydmVyLWZpcnN0LWVsZW1lbnQnO1xuaW1wb3J0IHsgU0NST0xMX09CU0VSVkVSX0lHTk9SRV9UQVJHRVRfQ0xBU1MgfSBmcm9tICcuLi9zY3JvbGwtb2JzZXJ2ZXItaWdub3JlLXRhcmdldCc7XG5pbXBvcnQgeyBTQ1JPTExfT0JTRVJWRVJfTEFTVF9FTEVNRU5UX0NMQVNTIH0gZnJvbSAnLi4vc2Nyb2xsLW9ic2VydmVyLWxhc3QtZWxlbWVudCc7XG5pbXBvcnQgeyBPQlNFUlZFX1NDUk9MTF9TVEFURSB9IGZyb20gJy4vb2JzZXJ2ZS1zY3JvbGwtc3RhdGUuY29uc3RhbnRzJztcbmltcG9ydCB7IE9ic2VydmVkU2Nyb2xsYWJsZUNoaWxkLCBTY3JvbGxPYnNlcnZlclNjcm9sbFN0YXRlIH0gZnJvbSAnLi9vYnNlcnZlLXNjcm9sbC1zdGF0ZS50eXBlcyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tldE9ic2VydmVTY3JvbGxTdGF0ZV0nLFxuICBleHBvcnRBczogJ2V0T2JzZXJ2ZVNjcm9sbFN0YXRlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogT0JTRVJWRV9TQ1JPTExfU1RBVEUsXG4gICAgICB1c2VFeGlzdGluZzogT2JzZXJ2ZVNjcm9sbFN0YXRlRGlyZWN0aXZlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE9ic2VydmVTY3JvbGxTdGF0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBjcmVhdGVEZXN0cm95KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbnRlbnRPYnNlcnZlclNlcnZpY2UgPSBpbmplY3QoQ29udGVudE9ic2VydmVyU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Jlc2l6ZU9ic2VydmVyU2VydmljZSA9IGluamVjdChSZXNpemVPYnNlcnZlclNlcnZpY2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX29ic2VydmVkQ2hpbGRyZW4gPSB7XG4gICAgZmlyc3Q6IHRoaXMuX2ZpcnN0Q3VycmVudENoaWxkLFxuICAgIGxhc3Q6IHRoaXMuX2xhc3RDdXJyZW50Q2hpbGQsXG4gIH07XG5cbiAgcHJpdmF0ZSBnZXQgX2ZpcnN0Q3VycmVudENoaWxkKCkge1xuICAgIGNvbnN0IGV4cGxpY2l0Rmlyc3RFbGVtZW50ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICBgLiR7U0NST0xMX09CU0VSVkVSX0ZJUlNUX0VMRU1FTlRfQ0xBU1N9YCxcbiAgICApIGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAgIGlmIChleHBsaWNpdEZpcnN0RWxlbWVudCkge1xuICAgICAgcmV0dXJuIGV4cGxpY2l0Rmlyc3RFbGVtZW50O1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0gYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gICAgcmV0dXJuIHRoaXMuX2dldE5vbklnbm9yZWRDaGlsZChlbGVtZW50LCAnbmV4dCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX2xhc3RDdXJyZW50Q2hpbGQoKSB7XG4gICAgY29uc3QgZXhwbGljaXRMYXN0RWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgYC4ke1NDUk9MTF9PQlNFUlZFUl9MQVNUX0VMRU1FTlRfQ0xBU1N9YCxcbiAgICApIGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAgIGlmIChleHBsaWNpdExhc3RFbGVtZW50KSB7XG4gICAgICByZXR1cm4gZXhwbGljaXRMYXN0RWxlbWVudDtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuW1xuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCAtIDFcbiAgICBdIGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAgIHJldHVybiB0aGlzLl9nZXROb25JZ25vcmVkQ2hpbGQoZWxlbWVudCwgJ3ByZXZpb3VzJyk7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgb2JzZXJ2ZXJSb290TWFyZ2luKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3Jvb3RNYXJnaW47XG4gIH1cbiAgc2V0IG9ic2VydmVyUm9vdE1hcmdpbih2YWx1ZTogTnVtYmVySW5wdXQpIHtcbiAgICB0aGlzLl9yb290TWFyZ2luID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIHByaXZhdGUgX3Jvb3RNYXJnaW4gPSAwO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBvYnNlcnZlclRocmVzaG9sZCgpOiBudW1iZXIgfCBudW1iZXJbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3RocmVzaG9sZDtcbiAgfVxuICBzZXQgb2JzZXJ2ZXJUaHJlc2hvbGQodmFsdWU6IE51bWJlcklucHV0IHwgbnVtYmVyW10pIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuX3RocmVzaG9sZCA9IHZhbHVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3RocmVzaG9sZCA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF90aHJlc2hvbGQ6IG51bWJlciB8IG51bWJlcltdID0gWzAuOTk5OTksIDAuOTk5OSwgMC45OTksIDAuOTksIDFdO1xuXG4gIHByaXZhdGUgX2ludGVyc2VjdGlvbk9ic2VydmVyOiBJbnRlcnNlY3Rpb25PYnNlcnZlciB8IG51bGwgPSBudWxsO1xuXG4gIEBPdXRwdXQoJ2V0T2JzZXJ2ZVNjcm9sbFN0YXRlJylcbiAgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNjcm9sbE9ic2VydmVyU2Nyb2xsU3RhdGU+KCk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fY29udGVudE9ic2VydmVyU2VydmljZVxuICAgICAgLm9ic2VydmUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgyNSksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLl9jaGVja0NoaWxkcmVuKCkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXJTZXJ2aWNlXG4gICAgICAub2JzZXJ2ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDI1KSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBjYW5TY3JvbGwgPSBlbGVtZW50Q2FuU2Nyb2xsKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgaWYgKCghdGhpcy5faW50ZXJzZWN0aW9uT2JzZXJ2ZXIgJiYgY2FuU2Nyb2xsKSB8fCAodGhpcy5faW50ZXJzZWN0aW9uT2JzZXJ2ZXIgJiYgIWNhblNjcm9sbCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2NoZWNrQ2hpbGRyZW4oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5fY2hlY2tDaGlsZHJlbigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fY2xlYXJJbnRlcnNlY3Rpb25PYnNlcnZlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tDaGlsZHJlbigpIHtcbiAgICB0aGlzLl9jbGVhckludGVyc2VjdGlvbk9ic2VydmVyKCk7XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLl9maXJzdEN1cnJlbnRDaGlsZCA9PT0gdGhpcy5fbGFzdEN1cnJlbnRDaGlsZCB8fFxuICAgICAgIXRoaXMuX2ZpcnN0Q3VycmVudENoaWxkIHx8XG4gICAgICAhdGhpcy5fbGFzdEN1cnJlbnRDaGlsZCB8fFxuICAgICAgIWVsZW1lbnRDYW5TY3JvbGwodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KVxuICAgICkge1xuICAgICAgdGhpcy5fdW5vYnNlcnZlQ2hpbGQoJ2ZpcnN0Jyk7XG4gICAgICB0aGlzLl91bm9ic2VydmVDaGlsZCgnbGFzdCcpO1xuXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoe1xuICAgICAgICBpc0F0U3RhcnQ6IHRydWUsXG4gICAgICAgIGlzQXRFbmQ6IHRydWUsXG4gICAgICAgIGNhblNjcm9sbDogZmFsc2UsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5faW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSB0aGlzLl9pbml0aWF0ZUludGVyc2VjdGlvbk9ic2VydmVyKCk7XG5cbiAgICAgIHRoaXMuX29ic2VydmVDaGlsZCgnZmlyc3QnLCB0aGlzLl9maXJzdEN1cnJlbnRDaGlsZCk7XG4gICAgICB0aGlzLl9vYnNlcnZlQ2hpbGQoJ2xhc3QnLCB0aGlzLl9sYXN0Q3VycmVudENoaWxkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pbml0aWF0ZUludGVyc2VjdGlvbk9ic2VydmVyKCkge1xuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxuICAgICAgKGVudHJpZXMpID0+IHtcbiAgICAgICAgY29uc3QgeyBmaXJzdCwgbGFzdCB9ID0gdGhpcy5fb2JzZXJ2ZWRDaGlsZHJlbjtcblxuICAgICAgICBjb25zdCBpc0F0U3RhcnQgPSBlbnRyaWVzLmZpbmQoKGVudHJ5KSA9PiBlbnRyeS50YXJnZXQgPT09IGZpcnN0KT8uaXNJbnRlcnNlY3RpbmcgPz8gZmFsc2U7XG4gICAgICAgIGNvbnN0IGlzQXRFbmQgPSBlbnRyaWVzLmZpbmQoKGVudHJ5KSA9PiBlbnRyeS50YXJnZXQgPT09IGxhc3QpPy5pc0ludGVyc2VjdGluZyA/PyBmYWxzZTtcblxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgIGlzQXRTdGFydCxcbiAgICAgICAgICBpc0F0RW5kLFxuICAgICAgICAgIGNhblNjcm9sbDogIWlzQXRTdGFydCB8fCAhaXNBdEVuZCxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICByb290OiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIHJvb3RNYXJnaW46IHRoaXMuX3Jvb3RNYXJnaW4gPyBgJHt0aGlzLl9yb290TWFyZ2lufXB4YCA6IHVuZGVmaW5lZCxcbiAgICAgICAgdGhyZXNob2xkOiB0aGlzLl90aHJlc2hvbGQsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICByZXR1cm4gb2JzZXJ2ZXI7XG4gIH1cblxuICBwcml2YXRlIF9vYnNlcnZlQ2hpbGQoY2hpbGQ6IE9ic2VydmVkU2Nyb2xsYWJsZUNoaWxkLCBlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgIHRoaXMuX2ludGVyc2VjdGlvbk9ic2VydmVyPy5vYnNlcnZlKGVsZW1lbnQpO1xuICAgIHRoaXMuX29ic2VydmVkQ2hpbGRyZW5bY2hpbGRdID0gZWxlbWVudDtcblxuICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChgZXQtc2Nyb2xsLW9ic2VydmVyLW9ic2VydmluZy0ke2NoaWxkfS1lbGVtZW50YCk7XG4gIH1cblxuICBwcml2YXRlIF91bm9ic2VydmVDaGlsZChjaGlsZDogT2JzZXJ2ZWRTY3JvbGxhYmxlQ2hpbGQpIHtcbiAgICBjb25zdCBvYnNlcnZlZENoaWxkID0gdGhpcy5fb2JzZXJ2ZWRDaGlsZHJlbltjaGlsZF07XG5cbiAgICBpZiAoIW9ic2VydmVkQ2hpbGQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBvYnNlcnZlZENoaWxkLmNsYXNzTGlzdC5yZW1vdmUoXG4gICAgICAnZXQtc2Nyb2xsLW9ic2VydmVyLW9ic2VydmluZy1maXJzdC1lbGVtZW50JyxcbiAgICAgICdldC1zY3JvbGwtb2JzZXJ2ZXItb2JzZXJ2aW5nLWxhc3QtZWxlbWVudCcsXG4gICAgKTtcblxuICAgIHRoaXMuX2ludGVyc2VjdGlvbk9ic2VydmVyPy51bm9ic2VydmUob2JzZXJ2ZWRDaGlsZCk7XG4gICAgdGhpcy5fb2JzZXJ2ZWRDaGlsZHJlbltjaGlsZF0gPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xlYXJJbnRlcnNlY3Rpb25PYnNlcnZlcigpIHtcbiAgICB0aGlzLl9pbnRlcnNlY3Rpb25PYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuX2ludGVyc2VjdGlvbk9ic2VydmVyID0gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE5vbklnbm9yZWRDaGlsZChlbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwsIGRpcmVjdGlvbjogJ3ByZXZpb3VzJyB8ICduZXh0Jyk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoZWxlbWVudD8uY2xhc3NMaXN0LmNvbnRhaW5zKFNDUk9MTF9PQlNFUlZFUl9JR05PUkVfVEFSR0VUX0NMQVNTKSkge1xuICAgICAgY29uc3QgbmV4dEVsZW1lbnQgPSBlbGVtZW50W2Ake2RpcmVjdGlvbn1FbGVtZW50U2libGluZ2BdIGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAgICAgaWYgKCFuZXh0RWxlbWVudCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMuX2dldE5vbklnbm9yZWRDaGlsZChuZXh0RWxlbWVudCwgZGlyZWN0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZWxlbWVudDtcbiAgfVxufVxuIl19
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2ZS1zY3JvbGwtc3RhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9vYnNlcnZlLXNjcm9sbC1zdGF0ZS9vYnNlcnZlLXNjcm9sbC1zdGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFlLE1BQU0sdUJBQXVCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RixPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RixPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFHeEUsTUFBTSxDQUFDLE1BQU0sNkNBQTZDLEdBQUcsNENBQTRDLENBQUM7QUFDMUcsTUFBTSxDQUFDLE1BQU0sNENBQTRDLEdBQUcsMkNBQTJDLENBQUM7QUFFeEcsTUFXYSwyQkFBMkI7SUFYeEM7UUFZbUIsY0FBUyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBRTVCLGdCQUFXLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUMxRCw0QkFB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QUFDO1NBQ3pEO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs4R0F0TVUsMkJBQTJCO2tHQUEzQiwyQkFBMkIscU5BUDNCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLG9CQUFvQjtnQkFDN0IsV0FBVyxFQUFFLDJCQUEyQjthQUN6QztTQUNGOztTQUVVLDJCQUEyQjsyRkFBM0IsMkJBQTJCO2tCQVh2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLG9CQUFvQjs0QkFDN0IsV0FBVyw2QkFBNkI7eUJBQ3pDO3FCQUNGO2lCQUNGOzhCQTRDSyxrQkFBa0I7c0JBRHJCLEtBQUs7Z0JBVUYsaUJBQWlCO3NCQURwQixLQUFLO2dCQWlCTixXQUFXO3NCQURWLE1BQU07dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlTnVtYmVyUHJvcGVydHksIE51bWJlcklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb250ZW50T2JzZXJ2ZXJTZXJ2aWNlLCBSZXNpemVPYnNlcnZlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVEZXN0cm95LCBlbGVtZW50Q2FuU2Nyb2xsIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgU0NST0xMX09CU0VSVkVSX0ZJUlNUX0VMRU1FTlRfQ0xBU1MgfSBmcm9tICcuLi9zY3JvbGwtb2JzZXJ2ZXItZmlyc3QtZWxlbWVudCc7XG5pbXBvcnQgeyBTQ1JPTExfT0JTRVJWRVJfSUdOT1JFX1RBUkdFVF9DTEFTUyB9IGZyb20gJy4uL3Njcm9sbC1vYnNlcnZlci1pZ25vcmUtdGFyZ2V0JztcbmltcG9ydCB7IFNDUk9MTF9PQlNFUlZFUl9MQVNUX0VMRU1FTlRfQ0xBU1MgfSBmcm9tICcuLi9zY3JvbGwtb2JzZXJ2ZXItbGFzdC1lbGVtZW50JztcbmltcG9ydCB7IE9CU0VSVkVfU0NST0xMX1NUQVRFIH0gZnJvbSAnLi9vYnNlcnZlLXNjcm9sbC1zdGF0ZS5jb25zdGFudHMnO1xuaW1wb3J0IHsgT2JzZXJ2ZWRTY3JvbGxhYmxlQ2hpbGQsIFNjcm9sbE9ic2VydmVyU2Nyb2xsU3RhdGUgfSBmcm9tICcuL29ic2VydmUtc2Nyb2xsLXN0YXRlLnR5cGVzJztcblxuZXhwb3J0IGNvbnN0IFNDUk9MTF9PQlNFUlZFUl9PQlNFUlZJTkdfRklSU1RfRUxFTUVOVF9DTEFTUyA9ICdldC1zY3JvbGwtb2JzZXJ2ZXItb2JzZXJ2aW5nLWZpcnN0LWVsZW1lbnQnO1xuZXhwb3J0IGNvbnN0IFNDUk9MTF9PQlNFUlZFUl9PQlNFUlZJTkdfTEFTVF9FTEVNRU5UX0NMQVNTID0gJ2V0LXNjcm9sbC1vYnNlcnZlci1vYnNlcnZpbmctbGFzdC1lbGVtZW50JztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2V0T2JzZXJ2ZVNjcm9sbFN0YXRlXScsXG4gIGV4cG9ydEFzOiAnZXRPYnNlcnZlU2Nyb2xsU3RhdGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBPQlNFUlZFX1NDUk9MTF9TVEFURSxcbiAgICAgIHVzZUV4aXN0aW5nOiBPYnNlcnZlU2Nyb2xsU3RhdGVEaXJlY3RpdmUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgT2JzZXJ2ZVNjcm9sbFN0YXRlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IGNyZWF0ZURlc3Ryb3koKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29udGVudE9ic2VydmVyU2VydmljZSA9IGluamVjdChDb250ZW50T2JzZXJ2ZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVzaXplT2JzZXJ2ZXJTZXJ2aWNlID0gaW5qZWN0KFJlc2l6ZU9ic2VydmVyU2VydmljZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfb2JzZXJ2ZWRDaGlsZHJlbiA9IHtcbiAgICBmaXJzdDogdGhpcy5fZmlyc3RDdXJyZW50Q2hpbGQsXG4gICAgbGFzdDogdGhpcy5fbGFzdEN1cnJlbnRDaGlsZCxcbiAgfTtcblxuICBwcml2YXRlIGdldCBfZmlyc3RDdXJyZW50Q2hpbGQoKSB7XG4gICAgY29uc3QgZXhwbGljaXRGaXJzdEVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgIGAuJHtTQ1JPTExfT0JTRVJWRVJfRklSU1RfRUxFTUVOVF9DTEFTU31gLFxuICAgICkgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gICAgaWYgKGV4cGxpY2l0Rmlyc3RFbGVtZW50KSB7XG4gICAgICByZXR1cm4gZXhwbGljaXRGaXJzdEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgICByZXR1cm4gdGhpcy5fZ2V0Tm9uSWdub3JlZENoaWxkKGVsZW1lbnQsICduZXh0Jyk7XG4gIH1cblxuICBwcml2YXRlIGdldCBfbGFzdEN1cnJlbnRDaGlsZCgpIHtcbiAgICBjb25zdCBleHBsaWNpdExhc3RFbGVtZW50ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICBgLiR7U0NST0xMX09CU0VSVkVSX0xBU1RfRUxFTUVOVF9DTEFTU31gLFxuICAgICkgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gICAgaWYgKGV4cGxpY2l0TGFzdEVsZW1lbnQpIHtcbiAgICAgIHJldHVybiBleHBsaWNpdExhc3RFbGVtZW50O1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bXG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoIC0gMVxuICAgIF0gYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gICAgcmV0dXJuIHRoaXMuX2dldE5vbklnbm9yZWRDaGlsZChlbGVtZW50LCAncHJldmlvdXMnKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBvYnNlcnZlclJvb3RNYXJnaW4oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcm9vdE1hcmdpbjtcbiAgfVxuICBzZXQgb2JzZXJ2ZXJSb290TWFyZ2luKHZhbHVlOiBOdW1iZXJJbnB1dCkge1xuICAgIHRoaXMuX3Jvb3RNYXJnaW4gPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBfcm9vdE1hcmdpbiA9IDA7XG5cbiAgQElucHV0KClcbiAgZ2V0IG9ic2VydmVyVGhyZXNob2xkKCk6IG51bWJlciB8IG51bWJlcltdIHtcbiAgICByZXR1cm4gdGhpcy5fdGhyZXNob2xkO1xuICB9XG4gIHNldCBvYnNlcnZlclRocmVzaG9sZCh2YWx1ZTogTnVtYmVySW5wdXQgfCBudW1iZXJbXSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgdGhpcy5fdGhyZXNob2xkID0gdmFsdWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdGhyZXNob2xkID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIHByaXZhdGUgX3RocmVzaG9sZDogbnVtYmVyIHwgbnVtYmVyW10gPSBbMC45OTk5OSwgMC45OTk5LCAwLjk5OSwgMC45OSwgMV07XG5cbiAgcHJpdmF0ZSBfaW50ZXJzZWN0aW9uT2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgQE91dHB1dCgnZXRPYnNlcnZlU2Nyb2xsU3RhdGUnKVxuICB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2Nyb2xsT2JzZXJ2ZXJTY3JvbGxTdGF0ZT4oKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jb250ZW50T2JzZXJ2ZXJTZXJ2aWNlXG4gICAgICAub2JzZXJ2ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDI1KSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuX2NoZWNrQ2hpbGRyZW4oKSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlclNlcnZpY2VcbiAgICAgIC5vYnNlcnZlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudClcbiAgICAgIC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoMjUpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNhblNjcm9sbCA9IGVsZW1lbnRDYW5TY3JvbGwodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICBpZiAoKCF0aGlzLl9pbnRlcnNlY3Rpb25PYnNlcnZlciAmJiBjYW5TY3JvbGwpIHx8ICh0aGlzLl9pbnRlcnNlY3Rpb25PYnNlcnZlciAmJiAhY2FuU2Nyb2xsKSkge1xuICAgICAgICAgICAgdGhpcy5fY2hlY2tDaGlsZHJlbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLl9jaGVja0NoaWxkcmVuKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9jbGVhckludGVyc2VjdGlvbk9ic2VydmVyKCk7XG4gIH1cblxuICBwcml2YXRlIF9jaGVja0NoaWxkcmVuKCkge1xuICAgIHRoaXMuX2NsZWFySW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKTtcblxuICAgIGlmIChcbiAgICAgIHRoaXMuX2ZpcnN0Q3VycmVudENoaWxkID09PSB0aGlzLl9sYXN0Q3VycmVudENoaWxkIHx8XG4gICAgICAhdGhpcy5fZmlyc3RDdXJyZW50Q2hpbGQgfHxcbiAgICAgICF0aGlzLl9sYXN0Q3VycmVudENoaWxkIHx8XG4gICAgICAhZWxlbWVudENhblNjcm9sbCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpXG4gICAgKSB7XG4gICAgICB0aGlzLl91bm9ic2VydmVDaGlsZCgnZmlyc3QnKTtcbiAgICAgIHRoaXMuX3Vub2JzZXJ2ZUNoaWxkKCdsYXN0Jyk7XG5cbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh7XG4gICAgICAgIGlzQXRTdGFydDogdHJ1ZSxcbiAgICAgICAgaXNBdEVuZDogdHJ1ZSxcbiAgICAgICAgY2FuU2Nyb2xsOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9pbnRlcnNlY3Rpb25PYnNlcnZlciA9IHRoaXMuX2luaXRpYXRlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKTtcblxuICAgICAgdGhpcy5fb2JzZXJ2ZUNoaWxkKCdmaXJzdCcsIHRoaXMuX2ZpcnN0Q3VycmVudENoaWxkKTtcbiAgICAgIHRoaXMuX29ic2VydmVDaGlsZCgnbGFzdCcsIHRoaXMuX2xhc3RDdXJyZW50Q2hpbGQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2luaXRpYXRlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKSB7XG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAoZW50cmllcykgPT4ge1xuICAgICAgICBjb25zdCB7IGZpcnN0LCBsYXN0IH0gPSB0aGlzLl9vYnNlcnZlZENoaWxkcmVuO1xuXG4gICAgICAgIGNvbnN0IGlzQXRTdGFydCA9IGVudHJpZXMuZmluZCgoZW50cnkpID0+IGVudHJ5LnRhcmdldCA9PT0gZmlyc3QpPy5pc0ludGVyc2VjdGluZyA/PyBmYWxzZTtcbiAgICAgICAgY29uc3QgaXNBdEVuZCA9IGVudHJpZXMuZmluZCgoZW50cnkpID0+IGVudHJ5LnRhcmdldCA9PT0gbGFzdCk/LmlzSW50ZXJzZWN0aW5nID8/IGZhbHNlO1xuXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgaXNBdFN0YXJ0LFxuICAgICAgICAgIGlzQXRFbmQsXG4gICAgICAgICAgY2FuU2Nyb2xsOiAhaXNBdFN0YXJ0IHx8ICFpc0F0RW5kLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHJvb3Q6IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgcm9vdE1hcmdpbjogdGhpcy5fcm9vdE1hcmdpbiA/IGAke3RoaXMuX3Jvb3RNYXJnaW59cHhgIDogdW5kZWZpbmVkLFxuICAgICAgICB0aHJlc2hvbGQ6IHRoaXMuX3RocmVzaG9sZCxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBvYnNlcnZlcjtcbiAgfVxuXG4gIHByaXZhdGUgX29ic2VydmVDaGlsZChjaGlsZDogT2JzZXJ2ZWRTY3JvbGxhYmxlQ2hpbGQsIGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy5faW50ZXJzZWN0aW9uT2JzZXJ2ZXI/Lm9ic2VydmUoZWxlbWVudCk7XG4gICAgdGhpcy5fb2JzZXJ2ZWRDaGlsZHJlbltjaGlsZF0gPSBlbGVtZW50O1xuXG4gICAgaWYgKGNoaWxkID09PSAnZmlyc3QnKSB7XG4gICAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoU0NST0xMX09CU0VSVkVSX09CU0VSVklOR19GSVJTVF9FTEVNRU5UX0NMQVNTKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKFNDUk9MTF9PQlNFUlZFUl9PQlNFUlZJTkdfTEFTVF9FTEVNRU5UX0NMQVNTKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91bm9ic2VydmVDaGlsZChjaGlsZDogT2JzZXJ2ZWRTY3JvbGxhYmxlQ2hpbGQpIHtcbiAgICBjb25zdCBvYnNlcnZlZENoaWxkID0gdGhpcy5fb2JzZXJ2ZWRDaGlsZHJlbltjaGlsZF07XG5cbiAgICBpZiAoIW9ic2VydmVkQ2hpbGQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBvYnNlcnZlZENoaWxkLmNsYXNzTGlzdC5yZW1vdmUoXG4gICAgICBTQ1JPTExfT0JTRVJWRVJfT0JTRVJWSU5HX0ZJUlNUX0VMRU1FTlRfQ0xBU1MsXG4gICAgICBTQ1JPTExfT0JTRVJWRVJfT0JTRVJWSU5HX0xBU1RfRUxFTUVOVF9DTEFTUyxcbiAgICApO1xuXG4gICAgdGhpcy5faW50ZXJzZWN0aW9uT2JzZXJ2ZXI/LnVub2JzZXJ2ZShvYnNlcnZlZENoaWxkKTtcbiAgICB0aGlzLl9vYnNlcnZlZENoaWxkcmVuW2NoaWxkXSA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9jbGVhckludGVyc2VjdGlvbk9ic2VydmVyKCkge1xuICAgIHRoaXMuX2ludGVyc2VjdGlvbk9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5faW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Tm9uSWdub3JlZENoaWxkKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCwgZGlyZWN0aW9uOiAncHJldmlvdXMnIHwgJ25leHQnKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChlbGVtZW50Py5jbGFzc0xpc3QuY29udGFpbnMoU0NST0xMX09CU0VSVkVSX0lHTk9SRV9UQVJHRVRfQ0xBU1MpKSB7XG4gICAgICBjb25zdCBuZXh0RWxlbWVudCA9IGVsZW1lbnRbYCR7ZGlyZWN0aW9ufUVsZW1lbnRTaWJsaW5nYF0gYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gICAgICBpZiAoIW5leHRFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5fZ2V0Tm9uSWdub3JlZENoaWxkKG5leHRFbGVtZW50LCBkaXJlY3Rpb24pO1xuICAgIH1cblxuICAgIHJldHVybiBlbGVtZW50O1xuICB9XG59XG4iXX0=
@@ -5,6 +5,7 @@ export * from './click-outside/public-api';
5
5
  export * from './cursor-drag-scroll/public-api';
6
6
  export * from './delayable/public-api';
7
7
  export * from './is-active-element/public-api';
8
+ export * from './is-element/public-api';
8
9
  export * from './let/public-api';
9
10
  export * from './observe-content/public-api';
10
11
  export * from './observe-resize/public-api';
@@ -14,4 +15,4 @@ export * from './scroll-observer-first-element/public-api';
14
15
  export * from './scroll-observer-ignore-target/public-api';
15
16
  export * from './scroll-observer-last-element/public-api';
16
17
  export * from './seo/public-api';
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hbmltYXRhYmxlL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9hbmltYXRlZC1saWZlY3ljbGUvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2FuaW1hdGVkLW92ZXJsYXkvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2NsaWNrLW91dHNpZGUvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2N1cnNvci1kcmFnLXNjcm9sbC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vZGVsYXlhYmxlL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9pcy1hY3RpdmUtZWxlbWVudC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vbGV0L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9vYnNlcnZlLWNvbnRlbnQvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL29ic2VydmUtcmVzaXplL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9vYnNlcnZlLXNjcm9sbC1zdGF0ZS9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vcmVwZWF0L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9zY3JvbGwtb2JzZXJ2ZXItZmlyc3QtZWxlbWVudC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vc2Nyb2xsLW9ic2VydmVyLWlnbm9yZS10YXJnZXQvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3Njcm9sbC1vYnNlcnZlci1sYXN0LWVsZW1lbnQvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3Nlby9wdWJsaWMtYXBpJztcbiJdfQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FuaW1hdGFibGUvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2FuaW1hdGVkLWxpZmVjeWNsZS9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vYW5pbWF0ZWQtb3ZlcmxheS9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vY2xpY2stb3V0c2lkZS9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vY3Vyc29yLWRyYWctc2Nyb2xsL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9kZWxheWFibGUvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2lzLWFjdGl2ZS1lbGVtZW50L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9pcy1lbGVtZW50L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9sZXQvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL29ic2VydmUtY29udGVudC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vb2JzZXJ2ZS1yZXNpemUvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL29ic2VydmUtc2Nyb2xsLXN0YXRlL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9yZXBlYXQvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3Njcm9sbC1vYnNlcnZlci1maXJzdC1lbGVtZW50L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9zY3JvbGwtb2JzZXJ2ZXItaWdub3JlLXRhcmdldC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vc2Nyb2xsLW9ic2VydmVyLWxhc3QtZWxlbWVudC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vc2VvL3B1YmxpYy1hcGknO1xuIl19
@@ -2382,6 +2382,7 @@ class CursorDragScrollDirective {
2382
2382
  y: 0,
2383
2383
  };
2384
2384
  this._enabled = false;
2385
+ this.allowedDirection = 'both';
2385
2386
  }
2386
2387
  get enabled() {
2387
2388
  return this._enabled;
@@ -2449,21 +2450,30 @@ class CursorDragScrollDirective {
2449
2450
  }
2450
2451
  const dx = e.clientX - this._currentScrollState.x;
2451
2452
  const dy = e.clientY - this._currentScrollState.y;
2452
- if (Math.abs(dx) > this._bufferUntilScroll || Math.abs(dy) > this._bufferUntilScroll) {
2453
+ const shouldScrollX = (this.allowedDirection === 'horizontal' || this.allowedDirection === 'both') &&
2454
+ Math.abs(dx) > this._bufferUntilScroll;
2455
+ const shouldScrollY = (this.allowedDirection === 'vertical' || this.allowedDirection === 'both') &&
2456
+ Math.abs(dy) > this._bufferUntilScroll;
2457
+ if (shouldScrollX || shouldScrollY) {
2453
2458
  const element = this._elementRef.nativeElement;
2454
2459
  if (!this._isScrolling) {
2455
2460
  this._isScrolling = true;
2461
+ document.documentElement.style.cursor = 'grabbing';
2456
2462
  element.style.cursor = 'grabbing';
2457
2463
  element.classList.add(CURSOR_DRAG_SCROLLING_CLASS);
2458
2464
  element.scroll({
2459
- top: this._currentScrollState.top - dy,
2460
- left: this._currentScrollState.left - dx,
2465
+ top: shouldScrollY ? this._currentScrollState.top - dy : undefined,
2466
+ left: shouldScrollX ? this._currentScrollState.left - dx : undefined,
2461
2467
  behavior: 'smooth',
2462
2468
  });
2463
2469
  }
2464
2470
  else {
2465
- element.scrollTop = this._currentScrollState.top - dy;
2466
- element.scrollLeft = this._currentScrollState.left - dx;
2471
+ if (shouldScrollY) {
2472
+ element.scrollTop = this._currentScrollState.top - dy;
2473
+ }
2474
+ if (shouldScrollX) {
2475
+ element.scrollLeft = this._currentScrollState.left - dx;
2476
+ }
2467
2477
  }
2468
2478
  }
2469
2479
  }
@@ -2475,6 +2485,7 @@ class CursorDragScrollDirective {
2475
2485
  }
2476
2486
  this._elementRef.nativeElement.style.scrollSnapType = '';
2477
2487
  this._elementRef.nativeElement.style.scrollBehavior = '';
2488
+ document.documentElement.style.cursor = '';
2478
2489
  this._elementRef.nativeElement.style.cursor = 'grab';
2479
2490
  this._elementRef.nativeElement.classList.remove(CURSOR_DRAG_SCROLLING_CLASS);
2480
2491
  this._elementRef.nativeElement.classList.remove(CURSOR_DRAG_SCROLLING_PREPARED_CLASS);
@@ -2489,7 +2500,7 @@ class CursorDragScrollDirective {
2489
2500
  }
2490
2501
  }
2491
2502
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: CursorDragScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2492
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: CursorDragScrollDirective, isStandalone: true, selector: "[etCursorDragScroll]", inputs: { enabled: ["etCursorDragScroll", "enabled"] }, exportAs: ["etCursorDragScroll"], ngImport: i0 }); }
2503
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: CursorDragScrollDirective, isStandalone: true, selector: "[etCursorDragScroll]", inputs: { enabled: ["etCursorDragScroll", "enabled"], allowedDirection: "allowedDirection" }, exportAs: ["etCursorDragScroll"], ngImport: i0 }); }
2493
2504
  }
2494
2505
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: CursorDragScrollDirective, decorators: [{
2495
2506
  type: Directive,
@@ -2501,6 +2512,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
2501
2512
  }], propDecorators: { enabled: [{
2502
2513
  type: Input,
2503
2514
  args: ['etCursorDragScroll']
2515
+ }], allowedDirection: [{
2516
+ type: Input
2504
2517
  }] } });
2505
2518
 
2506
2519
  const DELAYABLE_TOKEN = new InjectionToken('DELAYABLE_DIRECTIVE_TOKEN');
@@ -2592,6 +2605,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
2592
2605
  args: ['etIsActiveElement']
2593
2606
  }] } });
2594
2607
 
2608
+ const IS_ELEMENT = new InjectionToken('ET_IS_ELEMENT');
2609
+ class IsElementDirective {
2610
+ constructor() {
2611
+ this.elementRef = inject(ElementRef);
2612
+ this._isElement = false;
2613
+ }
2614
+ get isElement() {
2615
+ return this._isElement;
2616
+ }
2617
+ set isElement(value) {
2618
+ this._isElement = coerceBooleanProperty(value);
2619
+ }
2620
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: IsElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2621
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: IsElementDirective, isStandalone: true, selector: "[etIsElement]", inputs: { isElement: ["etIsElement", "isElement"] }, providers: [
2622
+ {
2623
+ provide: IS_ELEMENT,
2624
+ useExisting: IsElementDirective,
2625
+ },
2626
+ ], ngImport: i0 }); }
2627
+ }
2628
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: IsElementDirective, decorators: [{
2629
+ type: Directive,
2630
+ args: [{
2631
+ selector: '[etIsElement]',
2632
+ standalone: true,
2633
+ providers: [
2634
+ {
2635
+ provide: IS_ELEMENT,
2636
+ useExisting: IsElementDirective,
2637
+ },
2638
+ ],
2639
+ }]
2640
+ }], propDecorators: { isElement: [{
2641
+ type: Input,
2642
+ args: ['etIsElement']
2643
+ }] } });
2644
+
2595
2645
  class LetContext {
2596
2646
  constructor() {
2597
2647
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
@@ -2778,6 +2828,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
2778
2828
 
2779
2829
  const OBSERVE_SCROLL_STATE = new InjectionToken('OBSERVE_SCROLL_STATE');
2780
2830
 
2831
+ const SCROLL_OBSERVER_OBSERVING_FIRST_ELEMENT_CLASS = 'et-scroll-observer-observing-first-element';
2832
+ const SCROLL_OBSERVER_OBSERVING_LAST_ELEMENT_CLASS = 'et-scroll-observer-observing-last-element';
2781
2833
  class ObserveScrollStateDirective {
2782
2834
  constructor() {
2783
2835
  this._destroy$ = createDestroy();
@@ -2884,14 +2936,19 @@ class ObserveScrollStateDirective {
2884
2936
  _observeChild(child, element) {
2885
2937
  this._intersectionObserver?.observe(element);
2886
2938
  this._observedChildren[child] = element;
2887
- element.classList.add(`et-scroll-observer-observing-${child}-element`);
2939
+ if (child === 'first') {
2940
+ element.classList.add(SCROLL_OBSERVER_OBSERVING_FIRST_ELEMENT_CLASS);
2941
+ }
2942
+ else {
2943
+ element.classList.add(SCROLL_OBSERVER_OBSERVING_LAST_ELEMENT_CLASS);
2944
+ }
2888
2945
  }
2889
2946
  _unobserveChild(child) {
2890
2947
  const observedChild = this._observedChildren[child];
2891
2948
  if (!observedChild) {
2892
2949
  return;
2893
2950
  }
2894
- observedChild.classList.remove('et-scroll-observer-observing-first-element', 'et-scroll-observer-observing-last-element');
2951
+ observedChild.classList.remove(SCROLL_OBSERVER_OBSERVING_FIRST_ELEMENT_CLASS, SCROLL_OBSERVER_OBSERVING_LAST_ELEMENT_CLASS);
2895
2952
  this._intersectionObserver?.unobserve(observedChild);
2896
2953
  this._observedChildren[child] = null;
2897
2954
  }
@@ -3545,5 +3602,5 @@ const Validators = {
3545
3602
  * Generated bundle index. Do not edit.
3546
3603
  */
3547
3604
 
3548
- export { ANIMATABLE_TOKEN, ANIMATED_LIFECYCLE_TOKEN, ActiveSelectionModel, AnimatableDirective, AnimatedLifecycleDirective, AnimatedOverlayDirective, BehaviorSubjectWithSubscriberCount, ClickObserverFactory, ClickObserverService, ClickOutsideDirective, ContentObserverService, CursorDragScrollDirective, DEFAULT_VIEWPORT_CONFIG, DELAYABLE_TOKEN, DelayableDirective, ET_PROPERTY_REMOVED, FocusVisibleService, IS_ACTIVE_ELEMENT, IS_ARRAY_NOT_EMPTY, IS_EMAIL, IsActiveElementDirective, IsArrayNotEmpty, IsEmail, LetContext, LetDirective, MUST_MATCH, Memo, MustMatch, MutationObserverFactory, NormalizeGameResultTypePipe, NormalizeMatchParticipantsPipe, NormalizeMatchScorePipe, NormalizeMatchStatePipe, NormalizeMatchTypePipe, OBSERVE_SCROLL_STATE, ObserveContentDirective, ObserveResizeDirective, ObserveScrollStateDirective, RepeatDirective, ResizeObserverFactory, ResizeObserverService, RouterStateService, RuntimeError, SCROLL_OBSERVER_FIRST_ELEMENT_CLASS, SCROLL_OBSERVER_IGNORE_TARGET_CLASS, SCROLL_OBSERVER_LAST_ELEMENT_CLASS, SEO_DIRECTIVE_TOKEN, ScrollObserverFirstElementDirective, ScrollObserverIgnoreTargetDirective, ScrollObserverLastElementDirective, SelectionModel, SeoDirective, SmartBlockScrollStrategy, StructuredDataComponent, ToArrayPipe, TypedQueryList, VIEWPORT_CONFIG, Validators, ViewportService, clamp, clone, createDestroy, createFlipAnimation, createFlipAnimationGroup, createMediaQueryObservable, createReactiveBindings, deleteCookie, elementCanScroll, equal, forceReflow, formatRuntimeError, fromNextFrame, getCookie, getDomain, getGroupMatchPoints, getGroupMatchScore, getKnockoutMatchScore, getMatchScoreSubLine, hasCookie, isElementVisible, isGroupMatch, isKnockoutMatch, mergeSeoConfig, nextFrame, normalizeGameResultType, normalizeMatchParticipant, normalizeMatchParticipants, normalizeMatchScore, normalizeMatchState, normalizeMatchType, provideViewportConfig, routerDisableScrollTop, scrollToElement, setCookie, toArray, toArrayTrackByFn };
3605
+ export { ANIMATABLE_TOKEN, ANIMATED_LIFECYCLE_TOKEN, ActiveSelectionModel, AnimatableDirective, AnimatedLifecycleDirective, AnimatedOverlayDirective, BehaviorSubjectWithSubscriberCount, ClickObserverFactory, ClickObserverService, ClickOutsideDirective, ContentObserverService, CursorDragScrollDirective, DEFAULT_VIEWPORT_CONFIG, DELAYABLE_TOKEN, DelayableDirective, ET_PROPERTY_REMOVED, FocusVisibleService, IS_ACTIVE_ELEMENT, IS_ARRAY_NOT_EMPTY, IS_ELEMENT, IS_EMAIL, IsActiveElementDirective, IsArrayNotEmpty, IsElementDirective, IsEmail, LetContext, LetDirective, MUST_MATCH, Memo, MustMatch, MutationObserverFactory, NormalizeGameResultTypePipe, NormalizeMatchParticipantsPipe, NormalizeMatchScorePipe, NormalizeMatchStatePipe, NormalizeMatchTypePipe, OBSERVE_SCROLL_STATE, ObserveContentDirective, ObserveResizeDirective, ObserveScrollStateDirective, RepeatDirective, ResizeObserverFactory, ResizeObserverService, RouterStateService, RuntimeError, SCROLL_OBSERVER_FIRST_ELEMENT_CLASS, SCROLL_OBSERVER_IGNORE_TARGET_CLASS, SCROLL_OBSERVER_LAST_ELEMENT_CLASS, SCROLL_OBSERVER_OBSERVING_FIRST_ELEMENT_CLASS, SCROLL_OBSERVER_OBSERVING_LAST_ELEMENT_CLASS, SEO_DIRECTIVE_TOKEN, ScrollObserverFirstElementDirective, ScrollObserverIgnoreTargetDirective, ScrollObserverLastElementDirective, SelectionModel, SeoDirective, SmartBlockScrollStrategy, StructuredDataComponent, ToArrayPipe, TypedQueryList, VIEWPORT_CONFIG, Validators, ViewportService, clamp, clone, createDestroy, createFlipAnimation, createFlipAnimationGroup, createMediaQueryObservable, createReactiveBindings, deleteCookie, elementCanScroll, equal, forceReflow, formatRuntimeError, fromNextFrame, getCookie, getDomain, getGroupMatchPoints, getGroupMatchScore, getKnockoutMatchScore, getMatchScoreSubLine, hasCookie, isElementVisible, isGroupMatch, isKnockoutMatch, mergeSeoConfig, nextFrame, normalizeGameResultType, normalizeMatchParticipant, normalizeMatchParticipants, normalizeMatchScore, normalizeMatchState, normalizeMatchType, provideViewportConfig, routerDisableScrollTop, scrollToElement, setCookie, toArray, toArrayTrackByFn };
3549
3606
  //# sourceMappingURL=ethlete-core.mjs.map