@ng-atomic/common 19.150.0 → 20.5.3

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.
@@ -67,6 +67,14 @@ function releaseFocusWithin(hostElement) {
67
67
  return true;
68
68
  }
69
69
 
70
+ function createTouchOriginTracker(target, addEventListener) {
71
+ let last = 'mouse';
72
+ const record = (e) => { last = e.pointerType || 'mouse'; };
73
+ addEventListener(target, 'pointerdown', record, { capture: true });
74
+ addEventListener(target, 'pointerup', record, { capture: true });
75
+ return { lastPointerType: () => last, isTouchOriginated: () => last === 'touch' || last === 'pen' };
76
+ }
77
+
70
78
  const ACTIVE_CONTROL_DEACTIVATE_EVENT = 'active-control:request-deactivate';
71
79
  const ACTIVE_CONTROL_KEEP_ATTR = 'data-active-control-keep';
72
80
  const ACTIVE_CONTROL_DEACTIVATE_ATTR = 'data-active-control-deactivate';
@@ -88,6 +96,8 @@ class ActiveControlEventHandlers {
88
96
  this.cleanupFunctions = [];
89
97
  }
90
98
  setupAll() {
99
+ if (this.options.alwaysActive && !this.isActive())
100
+ this.setActive(true);
91
101
  this.setupClickHandlers();
92
102
  this.setupPreventionHandlers();
93
103
  return this.cleanupFunctions;
@@ -96,6 +106,7 @@ class ActiveControlEventHandlers {
96
106
  const CLICK_MOVE_THRESHOLD_PX = 5;
97
107
  let justActivated = false;
98
108
  let gestureStart = null;
109
+ const touchOrigin = createTouchOriginTracker(this.hostElement, (t, type, h, o) => this.addEventListener(t, type, h, o));
99
110
  const gestureStartHandler = (e) => {
100
111
  justActivated = false;
101
112
  gestureStart = this.hostElement.contains(e.target)
@@ -150,17 +161,24 @@ class ActiveControlEventHandlers {
150
161
  if (!forcesDeactivateOnClick(e.target) && isClickConsumedByInnerWidget({ hostElement: this.hostElement, focusTargetSelector: this.options.focusTargetSelector }, e.target)) {
151
162
  return;
152
163
  }
164
+ if (this.options.disableTouchDeactivate && touchOrigin.isTouchOriginated()) {
165
+ return;
166
+ }
167
+ if (this.options.alwaysActive)
168
+ return;
153
169
  if (this.isActive()) {
154
170
  setTimeout(() => this.setActive(false), 0);
155
171
  }
156
172
  };
157
173
  this.addEventListener(window, 'mouseup', mouseupHandler, { capture: true });
158
174
  this.addEventListener(this.hostElement, ACTIVE_CONTROL_DEACTIVATE_EVENT, () => {
175
+ if (this.options.alwaysActive)
176
+ return;
159
177
  if (this.isActive())
160
178
  this.setActive(false);
161
179
  });
162
180
  const documentClickListener = (e) => {
163
- if (keepsActiveOnMousedown(e.target))
181
+ if (this.options.alwaysActive || keepsActiveOnMousedown(e.target))
164
182
  return;
165
183
  if (!this.hostElement.contains(e.target) && this.isActive()) {
166
184
  this.setActive(false);
@@ -299,9 +317,11 @@ class ActiveControlDirective {
299
317
  this.scrollSelector = input(...(ngDevMode ? [undefined, { debugName: "scrollSelector" }] : []));
300
318
  this.scrollSelectors = input(...(ngDevMode ? [undefined, { debugName: "scrollSelectors" }] : []));
301
319
  this.disableStopPropagation = input(false, ...(ngDevMode ? [{ debugName: "disableStopPropagation" }] : []));
320
+ this.disableTouchDeactivate = input(false, ...(ngDevMode ? [{ debugName: "disableTouchDeactivate" }] : []));
302
321
  this.disableScrollLock = input(false, ...(ngDevMode ? [{ debugName: "disableScrollLock" }] : []));
303
322
  this.disableNodrag = input(false, ...(ngDevMode ? [{ debugName: "disableNodrag" }] : []));
304
323
  this.focusTargetSelector = input(...(ngDevMode ? [undefined, { debugName: "focusTargetSelector" }] : []));
324
+ this.alwaysActive = input(false, ...(ngDevMode ? [{ debugName: "alwaysActive" }] : []));
305
325
  this.activeChange = output();
306
326
  this.isActive = signal(false, ...(ngDevMode ? [{ debugName: "isActive" }] : []));
307
327
  this.eventCleanupFunctions = [];
@@ -309,16 +329,19 @@ class ActiveControlDirective {
309
329
  this.eventHandlersInitialized = false;
310
330
  effect(() => {
311
331
  if (!this.eventHandlersInitialized) {
312
- setTimeout(() => this.initializeEventHandlers(), 100);
332
+ this.initTimer = setTimeout(() => this.initializeEventHandlers(), 100);
313
333
  this.eventHandlersInitialized = true;
314
334
  }
315
335
  }, { allowSignalWrites: true });
316
336
  effect(() => {
317
337
  const selectors = this.getScrollSelectors();
318
- setTimeout(() => this.setupScrollControls(selectors), 150);
338
+ clearTimeout(this.scrollTimer);
339
+ this.scrollTimer = setTimeout(() => this.setupScrollControls(selectors), 150);
319
340
  });
320
341
  }
321
342
  ngOnDestroy() {
343
+ clearTimeout(this.initTimer);
344
+ clearTimeout(this.scrollTimer);
322
345
  this.eventCleanupFunctions.forEach(cleanup => cleanup());
323
346
  this.scrollCleanupFunctions.forEach(cleanup => cleanup());
324
347
  }
@@ -327,8 +350,10 @@ class ActiveControlDirective {
327
350
  const scrollSelectors = this.getScrollSelectors();
328
351
  const eventHandlers = new ActiveControlEventHandlers(hostElement, this.isActive, (active) => this.activeChange.emit(active), {
329
352
  disableStopPropagation: this.disableStopPropagation(),
353
+ disableTouchDeactivate: this.disableTouchDeactivate(),
330
354
  scrollSelectors,
331
355
  focusTargetSelector: this.focusTargetSelector(),
356
+ alwaysActive: this.alwaysActive(),
332
357
  });
333
358
  this.eventCleanupFunctions.push(...eventHandlers.setupAll());
334
359
  }
@@ -354,7 +379,7 @@ class ActiveControlDirective {
354
379
  return single ? [single] : [];
355
380
  }
356
381
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ActiveControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
357
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.6", type: ActiveControlDirective, isStandalone: true, selector: "[appActiveControl]", inputs: { scrollSelector: { classPropertyName: "scrollSelector", publicName: "scrollSelector", isSignal: true, isRequired: false, transformFunction: null }, scrollSelectors: { classPropertyName: "scrollSelectors", publicName: "scrollSelectors", isSignal: true, isRequired: false, transformFunction: null }, disableStopPropagation: { classPropertyName: "disableStopPropagation", publicName: "disableStopPropagation", isSignal: true, isRequired: false, transformFunction: null }, disableScrollLock: { classPropertyName: "disableScrollLock", publicName: "disableScrollLock", isSignal: true, isRequired: false, transformFunction: null }, disableNodrag: { classPropertyName: "disableNodrag", publicName: "disableNodrag", isSignal: true, isRequired: false, transformFunction: null }, focusTargetSelector: { classPropertyName: "focusTargetSelector", publicName: "focusTargetSelector", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeChange: "activeChange" }, host: { properties: { "class.active": "isActive()", "class.nodrag": "!disableNodrag()", "class.nowheel": "isActive()" } }, ngImport: i0 }); }
382
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.6", type: ActiveControlDirective, isStandalone: true, selector: "[appActiveControl]", inputs: { scrollSelector: { classPropertyName: "scrollSelector", publicName: "scrollSelector", isSignal: true, isRequired: false, transformFunction: null }, scrollSelectors: { classPropertyName: "scrollSelectors", publicName: "scrollSelectors", isSignal: true, isRequired: false, transformFunction: null }, disableStopPropagation: { classPropertyName: "disableStopPropagation", publicName: "disableStopPropagation", isSignal: true, isRequired: false, transformFunction: null }, disableTouchDeactivate: { classPropertyName: "disableTouchDeactivate", publicName: "disableTouchDeactivate", isSignal: true, isRequired: false, transformFunction: null }, disableScrollLock: { classPropertyName: "disableScrollLock", publicName: "disableScrollLock", isSignal: true, isRequired: false, transformFunction: null }, disableNodrag: { classPropertyName: "disableNodrag", publicName: "disableNodrag", isSignal: true, isRequired: false, transformFunction: null }, focusTargetSelector: { classPropertyName: "focusTargetSelector", publicName: "focusTargetSelector", isSignal: true, isRequired: false, transformFunction: null }, alwaysActive: { classPropertyName: "alwaysActive", publicName: "alwaysActive", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeChange: "activeChange" }, host: { properties: { "class.active": "isActive()", "class.nodrag": "!disableNodrag()", "class.nowheel": "isActive()" } }, ngImport: i0 }); }
358
383
  }
359
384
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ActiveControlDirective, decorators: [{
360
385
  type: Directive,
@@ -367,7 +392,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
367
392
  '[class.nowheel]': 'isActive()',
368
393
  }
369
394
  }]
370
- }], ctorParameters: () => [], propDecorators: { scrollSelector: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollSelector", required: false }] }], scrollSelectors: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollSelectors", required: false }] }], disableStopPropagation: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableStopPropagation", required: false }] }], disableScrollLock: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableScrollLock", required: false }] }], disableNodrag: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableNodrag", required: false }] }], focusTargetSelector: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusTargetSelector", required: false }] }], activeChange: [{ type: i0.Output, args: ["activeChange"] }] } });
395
+ }], ctorParameters: () => [], propDecorators: { scrollSelector: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollSelector", required: false }] }], scrollSelectors: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollSelectors", required: false }] }], disableStopPropagation: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableStopPropagation", required: false }] }], disableTouchDeactivate: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableTouchDeactivate", required: false }] }], disableScrollLock: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableScrollLock", required: false }] }], disableNodrag: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableNodrag", required: false }] }], focusTargetSelector: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusTargetSelector", required: false }] }], alwaysActive: [{ type: i0.Input, args: [{ isSignal: true, alias: "alwaysActive", required: false }] }], activeChange: [{ type: i0.Output, args: ["activeChange"] }] } });
371
396
 
372
397
  /**
373
398
  * Generated bundle index. Do not edit.
@@ -201,6 +201,14 @@ function releaseFocusWithin(hostElement) {
201
201
  return true;
202
202
  }
203
203
 
204
+ function createTouchOriginTracker(target, addEventListener) {
205
+ let last = 'mouse';
206
+ const record = (e) => { last = e.pointerType || 'mouse'; };
207
+ addEventListener(target, 'pointerdown', record, { capture: true });
208
+ addEventListener(target, 'pointerup', record, { capture: true });
209
+ return { lastPointerType: () => last, isTouchOriginated: () => last === 'touch' || last === 'pen' };
210
+ }
211
+
204
212
  const ACTIVE_CONTROL_DEACTIVATE_EVENT = 'active-control:request-deactivate';
205
213
  const ACTIVE_CONTROL_KEEP_ATTR = 'data-active-control-keep';
206
214
  const ACTIVE_CONTROL_DEACTIVATE_ATTR = 'data-active-control-deactivate';
@@ -222,6 +230,8 @@ class ActiveControlEventHandlers {
222
230
  this.cleanupFunctions = [];
223
231
  }
224
232
  setupAll() {
233
+ if (this.options.alwaysActive && !this.isActive())
234
+ this.setActive(true);
225
235
  this.setupClickHandlers();
226
236
  this.setupPreventionHandlers();
227
237
  return this.cleanupFunctions;
@@ -230,6 +240,7 @@ class ActiveControlEventHandlers {
230
240
  const CLICK_MOVE_THRESHOLD_PX = 5;
231
241
  let justActivated = false;
232
242
  let gestureStart = null;
243
+ const touchOrigin = createTouchOriginTracker(this.hostElement, (t, type, h, o) => this.addEventListener(t, type, h, o));
233
244
  const gestureStartHandler = (e) => {
234
245
  justActivated = false;
235
246
  gestureStart = this.hostElement.contains(e.target)
@@ -284,17 +295,24 @@ class ActiveControlEventHandlers {
284
295
  if (!forcesDeactivateOnClick(e.target) && isClickConsumedByInnerWidget({ hostElement: this.hostElement, focusTargetSelector: this.options.focusTargetSelector }, e.target)) {
285
296
  return;
286
297
  }
298
+ if (this.options.disableTouchDeactivate && touchOrigin.isTouchOriginated()) {
299
+ return;
300
+ }
301
+ if (this.options.alwaysActive)
302
+ return;
287
303
  if (this.isActive()) {
288
304
  setTimeout(() => this.setActive(false), 0);
289
305
  }
290
306
  };
291
307
  this.addEventListener(window, 'mouseup', mouseupHandler, { capture: true });
292
308
  this.addEventListener(this.hostElement, ACTIVE_CONTROL_DEACTIVATE_EVENT, () => {
309
+ if (this.options.alwaysActive)
310
+ return;
293
311
  if (this.isActive())
294
312
  this.setActive(false);
295
313
  });
296
314
  const documentClickListener = (e) => {
297
- if (keepsActiveOnMousedown(e.target))
315
+ if (this.options.alwaysActive || keepsActiveOnMousedown(e.target))
298
316
  return;
299
317
  if (!this.hostElement.contains(e.target) && this.isActive()) {
300
318
  this.setActive(false);
@@ -433,9 +451,11 @@ class ActiveControlDirective {
433
451
  this.scrollSelector = input(...(ngDevMode ? [undefined, { debugName: "scrollSelector" }] : []));
434
452
  this.scrollSelectors = input(...(ngDevMode ? [undefined, { debugName: "scrollSelectors" }] : []));
435
453
  this.disableStopPropagation = input(false, ...(ngDevMode ? [{ debugName: "disableStopPropagation" }] : []));
454
+ this.disableTouchDeactivate = input(false, ...(ngDevMode ? [{ debugName: "disableTouchDeactivate" }] : []));
436
455
  this.disableScrollLock = input(false, ...(ngDevMode ? [{ debugName: "disableScrollLock" }] : []));
437
456
  this.disableNodrag = input(false, ...(ngDevMode ? [{ debugName: "disableNodrag" }] : []));
438
457
  this.focusTargetSelector = input(...(ngDevMode ? [undefined, { debugName: "focusTargetSelector" }] : []));
458
+ this.alwaysActive = input(false, ...(ngDevMode ? [{ debugName: "alwaysActive" }] : []));
439
459
  this.activeChange = output();
440
460
  this.isActive = signal(false, ...(ngDevMode ? [{ debugName: "isActive" }] : []));
441
461
  this.eventCleanupFunctions = [];
@@ -443,16 +463,19 @@ class ActiveControlDirective {
443
463
  this.eventHandlersInitialized = false;
444
464
  effect(() => {
445
465
  if (!this.eventHandlersInitialized) {
446
- setTimeout(() => this.initializeEventHandlers(), 100);
466
+ this.initTimer = setTimeout(() => this.initializeEventHandlers(), 100);
447
467
  this.eventHandlersInitialized = true;
448
468
  }
449
469
  }, { allowSignalWrites: true });
450
470
  effect(() => {
451
471
  const selectors = this.getScrollSelectors();
452
- setTimeout(() => this.setupScrollControls(selectors), 150);
472
+ clearTimeout(this.scrollTimer);
473
+ this.scrollTimer = setTimeout(() => this.setupScrollControls(selectors), 150);
453
474
  });
454
475
  }
455
476
  ngOnDestroy() {
477
+ clearTimeout(this.initTimer);
478
+ clearTimeout(this.scrollTimer);
456
479
  this.eventCleanupFunctions.forEach(cleanup => cleanup());
457
480
  this.scrollCleanupFunctions.forEach(cleanup => cleanup());
458
481
  }
@@ -461,8 +484,10 @@ class ActiveControlDirective {
461
484
  const scrollSelectors = this.getScrollSelectors();
462
485
  const eventHandlers = new ActiveControlEventHandlers(hostElement, this.isActive, (active) => this.activeChange.emit(active), {
463
486
  disableStopPropagation: this.disableStopPropagation(),
487
+ disableTouchDeactivate: this.disableTouchDeactivate(),
464
488
  scrollSelectors,
465
489
  focusTargetSelector: this.focusTargetSelector(),
490
+ alwaysActive: this.alwaysActive(),
466
491
  });
467
492
  this.eventCleanupFunctions.push(...eventHandlers.setupAll());
468
493
  }
@@ -488,7 +513,7 @@ class ActiveControlDirective {
488
513
  return single ? [single] : [];
489
514
  }
490
515
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ActiveControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
491
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.6", type: ActiveControlDirective, isStandalone: true, selector: "[appActiveControl]", inputs: { scrollSelector: { classPropertyName: "scrollSelector", publicName: "scrollSelector", isSignal: true, isRequired: false, transformFunction: null }, scrollSelectors: { classPropertyName: "scrollSelectors", publicName: "scrollSelectors", isSignal: true, isRequired: false, transformFunction: null }, disableStopPropagation: { classPropertyName: "disableStopPropagation", publicName: "disableStopPropagation", isSignal: true, isRequired: false, transformFunction: null }, disableScrollLock: { classPropertyName: "disableScrollLock", publicName: "disableScrollLock", isSignal: true, isRequired: false, transformFunction: null }, disableNodrag: { classPropertyName: "disableNodrag", publicName: "disableNodrag", isSignal: true, isRequired: false, transformFunction: null }, focusTargetSelector: { classPropertyName: "focusTargetSelector", publicName: "focusTargetSelector", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeChange: "activeChange" }, host: { properties: { "class.active": "isActive()", "class.nodrag": "!disableNodrag()", "class.nowheel": "isActive()" } }, ngImport: i0 }); }
516
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.6", type: ActiveControlDirective, isStandalone: true, selector: "[appActiveControl]", inputs: { scrollSelector: { classPropertyName: "scrollSelector", publicName: "scrollSelector", isSignal: true, isRequired: false, transformFunction: null }, scrollSelectors: { classPropertyName: "scrollSelectors", publicName: "scrollSelectors", isSignal: true, isRequired: false, transformFunction: null }, disableStopPropagation: { classPropertyName: "disableStopPropagation", publicName: "disableStopPropagation", isSignal: true, isRequired: false, transformFunction: null }, disableTouchDeactivate: { classPropertyName: "disableTouchDeactivate", publicName: "disableTouchDeactivate", isSignal: true, isRequired: false, transformFunction: null }, disableScrollLock: { classPropertyName: "disableScrollLock", publicName: "disableScrollLock", isSignal: true, isRequired: false, transformFunction: null }, disableNodrag: { classPropertyName: "disableNodrag", publicName: "disableNodrag", isSignal: true, isRequired: false, transformFunction: null }, focusTargetSelector: { classPropertyName: "focusTargetSelector", publicName: "focusTargetSelector", isSignal: true, isRequired: false, transformFunction: null }, alwaysActive: { classPropertyName: "alwaysActive", publicName: "alwaysActive", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeChange: "activeChange" }, host: { properties: { "class.active": "isActive()", "class.nodrag": "!disableNodrag()", "class.nowheel": "isActive()" } }, ngImport: i0 }); }
492
517
  }
493
518
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ActiveControlDirective, decorators: [{
494
519
  type: Directive,
@@ -501,7 +526,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
501
526
  '[class.nowheel]': 'isActive()',
502
527
  }
503
528
  }]
504
- }], ctorParameters: () => [], propDecorators: { scrollSelector: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollSelector", required: false }] }], scrollSelectors: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollSelectors", required: false }] }], disableStopPropagation: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableStopPropagation", required: false }] }], disableScrollLock: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableScrollLock", required: false }] }], disableNodrag: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableNodrag", required: false }] }], focusTargetSelector: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusTargetSelector", required: false }] }], activeChange: [{ type: i0.Output, args: ["activeChange"] }] } });
529
+ }], ctorParameters: () => [], propDecorators: { scrollSelector: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollSelector", required: false }] }], scrollSelectors: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollSelectors", required: false }] }], disableStopPropagation: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableStopPropagation", required: false }] }], disableTouchDeactivate: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableTouchDeactivate", required: false }] }], disableScrollLock: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableScrollLock", required: false }] }], disableNodrag: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableNodrag", required: false }] }], focusTargetSelector: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusTargetSelector", required: false }] }], alwaysActive: [{ type: i0.Input, args: [{ isSignal: true, alias: "alwaysActive", required: false }] }], activeChange: [{ type: i0.Output, args: ["activeChange"] }] } });
505
530
 
506
531
  const CONTAINED_EVENTS = [
507
532
  'mousedown',
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@ng-atomic/common",
3
- "version": "19.150.0",
3
+ "version": "20.5.3",
4
4
  "license": "MIT",
5
5
  "peerDependencies": {
6
- "@nx-ddd/core": "19.150.0",
7
- "@nx-ddd/common": "19.150.0"
6
+ "@nx-ddd/core": "20.5.3",
7
+ "@nx-ddd/common": "20.5.3"
8
8
  },
9
9
  "dependencies": {
10
10
  "tslib": "^2.3.0"
@@ -6,21 +6,25 @@ declare class ActiveControlDirective implements OnDestroy {
6
6
  readonly scrollSelector: _angular_core.InputSignal<string | undefined>;
7
7
  readonly scrollSelectors: _angular_core.InputSignal<string[] | undefined>;
8
8
  readonly disableStopPropagation: _angular_core.InputSignal<boolean>;
9
+ readonly disableTouchDeactivate: _angular_core.InputSignal<boolean>;
9
10
  readonly disableScrollLock: _angular_core.InputSignal<boolean>;
10
11
  readonly disableNodrag: _angular_core.InputSignal<boolean>;
11
12
  readonly focusTargetSelector: _angular_core.InputSignal<string | undefined>;
13
+ readonly alwaysActive: _angular_core.InputSignal<boolean>;
12
14
  readonly activeChange: _angular_core.OutputEmitterRef<boolean>;
13
15
  readonly isActive: _angular_core.WritableSignal<boolean>;
14
16
  private eventCleanupFunctions;
15
17
  private scrollCleanupFunctions;
16
18
  private eventHandlersInitialized;
19
+ private initTimer?;
20
+ private scrollTimer?;
17
21
  constructor();
18
22
  ngOnDestroy(): void;
19
23
  private initializeEventHandlers;
20
24
  private setupScrollControls;
21
25
  private getScrollSelectors;
22
26
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ActiveControlDirective, never>;
23
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ActiveControlDirective, "[appActiveControl]", never, { "scrollSelector": { "alias": "scrollSelector"; "required": false; "isSignal": true; }; "scrollSelectors": { "alias": "scrollSelectors"; "required": false; "isSignal": true; }; "disableStopPropagation": { "alias": "disableStopPropagation"; "required": false; "isSignal": true; }; "disableScrollLock": { "alias": "disableScrollLock"; "required": false; "isSignal": true; }; "disableNodrag": { "alias": "disableNodrag"; "required": false; "isSignal": true; }; "focusTargetSelector": { "alias": "focusTargetSelector"; "required": false; "isSignal": true; }; }, { "activeChange": "activeChange"; }, never, never, true, never>;
27
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ActiveControlDirective, "[appActiveControl]", never, { "scrollSelector": { "alias": "scrollSelector"; "required": false; "isSignal": true; }; "scrollSelectors": { "alias": "scrollSelectors"; "required": false; "isSignal": true; }; "disableStopPropagation": { "alias": "disableStopPropagation"; "required": false; "isSignal": true; }; "disableTouchDeactivate": { "alias": "disableTouchDeactivate"; "required": false; "isSignal": true; }; "disableScrollLock": { "alias": "disableScrollLock"; "required": false; "isSignal": true; }; "disableNodrag": { "alias": "disableNodrag"; "required": false; "isSignal": true; }; "focusTargetSelector": { "alias": "focusTargetSelector"; "required": false; "isSignal": true; }; "alwaysActive": { "alias": "alwaysActive"; "required": false; "isSignal": true; }; }, { "activeChange": "activeChange"; }, never, never, true, never>;
24
28
  }
25
29
 
26
30
  declare const ACTIVE_CONTROL_DEACTIVATE_EVENT = "active-control:request-deactivate";
@@ -34,21 +34,25 @@ declare class ActiveControlDirective implements OnDestroy {
34
34
  readonly scrollSelector: _angular_core.InputSignal<string | undefined>;
35
35
  readonly scrollSelectors: _angular_core.InputSignal<string[] | undefined>;
36
36
  readonly disableStopPropagation: _angular_core.InputSignal<boolean>;
37
+ readonly disableTouchDeactivate: _angular_core.InputSignal<boolean>;
37
38
  readonly disableScrollLock: _angular_core.InputSignal<boolean>;
38
39
  readonly disableNodrag: _angular_core.InputSignal<boolean>;
39
40
  readonly focusTargetSelector: _angular_core.InputSignal<string | undefined>;
41
+ readonly alwaysActive: _angular_core.InputSignal<boolean>;
40
42
  readonly activeChange: _angular_core.OutputEmitterRef<boolean>;
41
43
  readonly isActive: _angular_core.WritableSignal<boolean>;
42
44
  private eventCleanupFunctions;
43
45
  private scrollCleanupFunctions;
44
46
  private eventHandlersInitialized;
47
+ private initTimer?;
48
+ private scrollTimer?;
45
49
  constructor();
46
50
  ngOnDestroy(): void;
47
51
  private initializeEventHandlers;
48
52
  private setupScrollControls;
49
53
  private getScrollSelectors;
50
54
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ActiveControlDirective, never>;
51
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ActiveControlDirective, "[appActiveControl]", never, { "scrollSelector": { "alias": "scrollSelector"; "required": false; "isSignal": true; }; "scrollSelectors": { "alias": "scrollSelectors"; "required": false; "isSignal": true; }; "disableStopPropagation": { "alias": "disableStopPropagation"; "required": false; "isSignal": true; }; "disableScrollLock": { "alias": "disableScrollLock"; "required": false; "isSignal": true; }; "disableNodrag": { "alias": "disableNodrag"; "required": false; "isSignal": true; }; "focusTargetSelector": { "alias": "focusTargetSelector"; "required": false; "isSignal": true; }; }, { "activeChange": "activeChange"; }, never, never, true, never>;
55
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ActiveControlDirective, "[appActiveControl]", never, { "scrollSelector": { "alias": "scrollSelector"; "required": false; "isSignal": true; }; "scrollSelectors": { "alias": "scrollSelectors"; "required": false; "isSignal": true; }; "disableStopPropagation": { "alias": "disableStopPropagation"; "required": false; "isSignal": true; }; "disableTouchDeactivate": { "alias": "disableTouchDeactivate"; "required": false; "isSignal": true; }; "disableScrollLock": { "alias": "disableScrollLock"; "required": false; "isSignal": true; }; "disableNodrag": { "alias": "disableNodrag"; "required": false; "isSignal": true; }; "focusTargetSelector": { "alias": "focusTargetSelector"; "required": false; "isSignal": true; }; "alwaysActive": { "alias": "alwaysActive"; "required": false; "isSignal": true; }; }, { "activeChange": "activeChange"; }, never, never, true, never>;
52
56
  }
53
57
 
54
58
  declare const ACTIVE_CONTROL_DEACTIVATE_EVENT = "active-control:request-deactivate";