@mintplayer/ng-bootstrap 21.24.0 → 21.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -84,6 +84,9 @@ declare class MintDockManagerElement extends LitElement {
|
|
|
84
84
|
static configureDocument(documentRef: Document | null | undefined): void;
|
|
85
85
|
static get observedAttributes(): string[];
|
|
86
86
|
private static instanceCounter;
|
|
87
|
+
private static readonly TOUCH_LONG_PRESS_MS;
|
|
88
|
+
private static readonly TOUCH_LONG_PRESS_SLOP_PX;
|
|
89
|
+
private static readonly TOUCH_PRESS_FEEDBACK_DELAY_MS;
|
|
87
90
|
private documentRef;
|
|
88
91
|
private windowRef;
|
|
89
92
|
private rootEl;
|
|
@@ -111,6 +114,7 @@ declare class MintDockManagerElement extends LitElement {
|
|
|
111
114
|
private cornerSnapXTargets;
|
|
112
115
|
private cornerSnapYTargets;
|
|
113
116
|
private showSnapMarkers;
|
|
117
|
+
debugLayoutIntegrity: boolean;
|
|
114
118
|
private renderSnapMarkersForCorner;
|
|
115
119
|
private clearSnapMarkers;
|
|
116
120
|
private pendingDragEndTimeout;
|
|
@@ -199,13 +203,36 @@ declare class MintDockManagerElement extends LitElement {
|
|
|
199
203
|
private captureTabDragMetrics;
|
|
200
204
|
private clearPendingTabDragMetrics;
|
|
201
205
|
/**
|
|
202
|
-
* Pointerdown handler arms a "may become a drag" gesture.
|
|
203
|
-
*
|
|
204
|
-
* {@link
|
|
205
|
-
*
|
|
206
|
-
*
|
|
206
|
+
* Pointerdown handler arms a "may become a drag" gesture. Mouse / pen use a
|
|
207
|
+
* 5 px distance threshold and arm immediately; touch dispatches to
|
|
208
|
+
* {@link armPaneDragGestureTouch} which requires a 600 ms stationary hold
|
|
209
|
+
* (so the user can scroll the tabstrip natively without undocking).
|
|
210
|
+
* Once armed, both paths converge on {@link beginPaneDrag}. All listeners
|
|
211
|
+
* self-clean on resolve so the gesture stays scoped to a single pointerdown.
|
|
207
212
|
*/
|
|
208
213
|
private armPaneDragGesture;
|
|
214
|
+
/**
|
|
215
|
+
* Touch-specific gesture arming. With `.dock-tab` set to `touch-action:
|
|
216
|
+
* none`, the browser never arbitrates the gesture itself, so JS owns it
|
|
217
|
+
* from frame 1. Three outcomes from the pending state:
|
|
218
|
+
*
|
|
219
|
+
* - User holds within {@link TOUCH_LONG_PRESS_SLOP_PX} for
|
|
220
|
+
* {@link TOUCH_LONG_PRESS_MS} → timer fires → drag arms via
|
|
221
|
+
* {@link beginPaneDrag}.
|
|
222
|
+
* - User moves past slop and the move is mostly horizontal, and the
|
|
223
|
+
* strip's `<ul>` is scrollable → enter `scrolling` mode and drive
|
|
224
|
+
* `ul.scrollLeft` from JS for the rest of the gesture (no drag, no
|
|
225
|
+
* momentum — direct 1:1 finger follow).
|
|
226
|
+
* - User moves past slop in any other direction, releases, or
|
|
227
|
+
* pointercancel fires → abandoned, no drag, no scroll. Releases
|
|
228
|
+
* under slop fire the synthesized click that drives `tab-activate`.
|
|
229
|
+
*
|
|
230
|
+
* `touch-action: pan-x` was the original PRD design but doesn't work:
|
|
231
|
+
* the policy is frozen at touchstart and `setPointerCapture` doesn't
|
|
232
|
+
* promote it, so first move after a long-press fires pointercancel and
|
|
233
|
+
* strands the panel. JS-driven scroll is the only model that holds.
|
|
234
|
+
*/
|
|
235
|
+
private armPaneDragGestureTouch;
|
|
209
236
|
private beginPaneDrag;
|
|
210
237
|
private preparePaneDragSource;
|
|
211
238
|
private endPaneDrag;
|
|
@@ -249,8 +276,6 @@ declare class MintDockManagerElement extends LitElement {
|
|
|
249
276
|
private getNodeAtPath;
|
|
250
277
|
private resolveSplitNode;
|
|
251
278
|
private replaceNodeInTree;
|
|
252
|
-
private cleanupEmptyStackInTree;
|
|
253
|
-
private cleanupSplitIfNecessary;
|
|
254
279
|
private dockNodeBeside;
|
|
255
280
|
private forEachStack;
|
|
256
281
|
private findStackContainingPane;
|
|
@@ -268,12 +293,42 @@ declare class MintDockManagerElement extends LitElement {
|
|
|
268
293
|
private removePaneFromLocation;
|
|
269
294
|
private addPaneToLocation;
|
|
270
295
|
private setActivePaneForLocation;
|
|
271
|
-
private cleanupLocation;
|
|
272
296
|
private reorderPaneInLocation;
|
|
273
297
|
private removeFloatingAt;
|
|
274
298
|
private removePaneFromFloating;
|
|
275
299
|
private normalizeSizesArray;
|
|
276
300
|
private normalizeSplitNode;
|
|
301
|
+
/**
|
|
302
|
+
* Bottom-up layout sanitizer. Returns a normalized version of `node` where:
|
|
303
|
+
* - Empty stacks (panes.length === 0) are dropped (returned as null).
|
|
304
|
+
* - A stack's `activePane` is repaired if it no longer references one of `panes`.
|
|
305
|
+
* - Splits whose direction matches a child split are flattened, with sizes
|
|
306
|
+
* combined multiplicatively so the resulting on-screen pixel layout is
|
|
307
|
+
* identical to the pre-merge one.
|
|
308
|
+
* - Splits with 0 children become null. Splits with 1 child are unwrapped.
|
|
309
|
+
*
|
|
310
|
+
* Idempotent: passing the result back through this method yields the same
|
|
311
|
+
* structure. Mutates the input tree in place but only returns nodes that
|
|
312
|
+
* remain part of the layout.
|
|
313
|
+
*/
|
|
314
|
+
private normalizeLayoutNode;
|
|
315
|
+
/**
|
|
316
|
+
* Apply `normalizeLayoutNode` to `rootLayout` and every floating window's
|
|
317
|
+
* root, drop floating windows whose root collapses to null, and repair
|
|
318
|
+
* stale `activePane` references on each floating window. Run this at the
|
|
319
|
+
* end of every public mutation entry point (drop handlers, layout setter,
|
|
320
|
+
* pane removal) so the tree the renderer sees is always in canonical form.
|
|
321
|
+
*/
|
|
322
|
+
private normalizeAllLayouts;
|
|
323
|
+
/**
|
|
324
|
+
* Dev-mode integrity guard: walks every pane referenced by the current
|
|
325
|
+
* layout and asserts that the rendered shadow DOM contains a matching
|
|
326
|
+
* `<slot name="${pane}">`. A missing slot means the layout tree got into
|
|
327
|
+
* a state the renderer can't display — typically a missed normalize() call
|
|
328
|
+
* or a render bug. Opt in via the `debug-layout-integrity` attribute or
|
|
329
|
+
* the `debugLayoutIntegrity` property; off by default.
|
|
330
|
+
*/
|
|
331
|
+
private verifyProjectionSlots;
|
|
277
332
|
private dispatchLayoutChanged;
|
|
278
333
|
private cloneLayoutNode;
|
|
279
334
|
private cloneFloatingArray;
|
|
@@ -281,6 +336,14 @@ declare class MintDockManagerElement extends LitElement {
|
|
|
281
336
|
|
|
282
337
|
declare class BsDockManagerComponent implements AfterViewInit {
|
|
283
338
|
readonly layout: _angular_core.InputSignal<DockLayoutNode | DockLayout | null>;
|
|
339
|
+
/**
|
|
340
|
+
* Dev-mode integrity guard. When `true`, the inner web component throws
|
|
341
|
+
* after each render if any registered pane has no projection slot in the
|
|
342
|
+
* shadow DOM — a signal that the layout tree got corrupted. Off by default;
|
|
343
|
+
* enable in development to catch layout-logic bugs loudly.
|
|
344
|
+
*/
|
|
345
|
+
readonly debugLayoutIntegrity: _angular_core.InputSignal<boolean>;
|
|
346
|
+
protected readonly debugLayoutIntegrityAttr: _angular_core.Signal<"" | null>;
|
|
284
347
|
get layoutSnapshot(): DockLayoutSnapshot | null;
|
|
285
348
|
readonly layoutChange: _angular_core.OutputEmitterRef<DockLayoutSnapshot | null>;
|
|
286
349
|
readonly layoutSnapshotChange: _angular_core.OutputEmitterRef<DockLayoutSnapshot>;
|
|
@@ -298,7 +361,7 @@ declare class BsDockManagerComponent implements AfterViewInit {
|
|
|
298
361
|
private stringifyLayout;
|
|
299
362
|
private cloneLayout;
|
|
300
363
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BsDockManagerComponent, never>;
|
|
301
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsDockManagerComponent, "bs-dock-manager", never, { "layout": { "alias": "layout"; "required": false; "isSignal": true; }; }, { "layoutChange": "layoutChange"; "layoutSnapshotChange": "layoutSnapshotChange"; }, ["panes"], never, true, never>;
|
|
364
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BsDockManagerComponent, "bs-dock-manager", never, { "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "debugLayoutIntegrity": { "alias": "debugLayoutIntegrity"; "required": false; "isSignal": true; }; }, { "layoutChange": "layoutChange"; "layoutSnapshotChange": "layoutSnapshotChange"; }, ["panes"], never, true, never>;
|
|
302
365
|
}
|
|
303
366
|
|
|
304
367
|
export { BsDockManagerComponent, BsDockPaneComponent, MintDockManagerElement };
|