@ethlete/components 0.1.0-next.3 → 0.1.0-next.6
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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.0-next.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`6ee86dc`](https://github.com/ethlete-io/ethdk/commit/6ee86dc6e2dde7ec6661d12e92fe1ceb87bc5800) Thanks [@TomTomB](https://github.com/TomTomB)! - Fix grid edge cases
|
|
8
|
+
|
|
9
|
+
## 0.1.0-next.5
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`b73a127`](https://github.com/ethlete-io/ethdk/commit/b73a127002a06e3aa0c4e7e977b1ad1f3e04e7e6) Thanks [@TomTomB](https://github.com/TomTomB)! - Bump yet again, final one for sure, pinky promise
|
|
14
|
+
|
|
15
|
+
## 0.1.0-beta.4
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- [`ddb5d09`](https://github.com/ethlete-io/ethdk/commit/ddb5d09e4bc56e18cc8c228aa78a200441e7a766) Thanks [@TomTomB](https://github.com/TomTomB)! - Bump to beta
|
|
20
|
+
|
|
21
|
+
- Updated dependencies [[`ddb5d09`](https://github.com/ethlete-io/ethdk/commit/ddb5d09e4bc56e18cc8c228aa78a200441e7a766)]:
|
|
22
|
+
- @ethlete/core@5.0.0-beta.11
|
|
23
|
+
|
|
3
24
|
## 0.1.0-next.3
|
|
4
25
|
|
|
5
26
|
### Patch Changes
|
|
@@ -4,7 +4,8 @@ import * as i2 from '@ethlete/core';
|
|
|
4
4
|
import { injectStyleManager, createCanAnimateSignal, ColorInteractiveDirective, ProvideColorDirective, RuntimeError, injectErrorTheme, signalElementDimensions, createProvider, AnimatableDirective, ColorInteractiveContainerDirective, ColorInteractiveExcludeDirective, ProvideSurfaceDirective, SURFACE_PROVIDER, injectSurfaceThemes, resolveSurfaceByElevation, ColorInteractiveHasFocusDirective, createStaticRootProvider, signalHostElementDimensions, signalHostStyles, DragHandleDirective, injectRenderer, injectLocale, ResizeHandlesComponent, ANIMATED_LIFECYCLE_TOKEN, injectSurfaceContextTracker, AnimatedLifecycleDirective, createRootProvider, injectOverlayRuntime, typedBreakpointTransform, signalElementChildren, signalElementScrollState, signalElementIntersection, signalHostAttributes, signalHostClasses, getScrollContainerTarget, getScrollItemTarget, getElementScrollCoordinates, provideBreakpointInstance, signalClasses, useCursorDragScroll, signalStyles, getScrollSnapTarget, ScrollObserverDirective, ScrollObserverStartDirective, ScrollObserverEndDirective, injectViewportSize, createFlipAnimation, signalHostElementIntersection, injectHostElement, setInputSignal, SurfaceInteractiveDirective, injectRouterEvent, canUseSessionMemory, createAutoSessionMemoryKey, createSessionMemory, COLOR_PROVIDER, injectFocusVisibleTracker } from '@ethlete/core';
|
|
5
5
|
import { NgTemplateOutlet, isPlatformBrowser } from '@angular/common';
|
|
6
6
|
import { toObservable, takeUntilDestroyed, outputToObservable, outputFromObservable, rxResource } from '@angular/core/rxjs-interop';
|
|
7
|
-
import { switchMap, EMPTY, filter, tap, take, of,
|
|
7
|
+
import { switchMap, EMPTY, filter, tap, timer, take, of, animationFrameScheduler, Subject, fromEvent, debounceTime, map, exhaustMap, takeUntil, finalize, distinctUntilChanged, Observable, shareReplay, catchError, interval } from 'rxjs';
|
|
8
|
+
import { tap as tap$1 } from 'rxjs/operators';
|
|
8
9
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
9
10
|
import * as i1 from '@angular/router';
|
|
10
11
|
import { RouterLinkActive, NavigationEnd, RouterLink } from '@angular/router';
|
|
@@ -2620,6 +2621,17 @@ const deserializeGridLayout = (state, breakpointMinWidths) => {
|
|
|
2620
2621
|
return { breakpoints, items, rowHeight: state.rowHeight };
|
|
2621
2622
|
};
|
|
2622
2623
|
|
|
2624
|
+
const positionsEqual = (a, b) => a.col === b.col && a.row === b.row && a.colSpan === b.colSpan && a.rowSpan === b.rowSpan;
|
|
2625
|
+
const layoutsEqual = (a, b) => {
|
|
2626
|
+
const aKeys = Object.keys(a);
|
|
2627
|
+
if (aKeys.length !== Object.keys(b).length)
|
|
2628
|
+
return false;
|
|
2629
|
+
return aKeys.every((k) => {
|
|
2630
|
+
const ap = a[k];
|
|
2631
|
+
const bp = b[k];
|
|
2632
|
+
return ap !== undefined && bp !== undefined && positionsEqual(ap, bp);
|
|
2633
|
+
});
|
|
2634
|
+
};
|
|
2623
2635
|
const DEFAULT_CONSTRAINTS = {
|
|
2624
2636
|
minColSpan: 1,
|
|
2625
2637
|
maxColSpan: 12,
|
|
@@ -2719,14 +2731,41 @@ class GridDirective {
|
|
|
2719
2731
|
this.itemConfigs.set(initial);
|
|
2720
2732
|
return;
|
|
2721
2733
|
}
|
|
2722
|
-
const
|
|
2723
|
-
const
|
|
2734
|
+
const currentById = new Map(current.map((c) => [c.id, c]));
|
|
2735
|
+
const initialIds = new Set(initial.map((i) => i.id));
|
|
2736
|
+
const newItems = initial.filter((item) => !currentById.has(item.id));
|
|
2737
|
+
const removedIds = current.filter((c) => !initialIds.has(c.id)).map((c) => c.id);
|
|
2738
|
+
// Pure layout update — same item set but positions changed (e.g. the host
|
|
2739
|
+
// reset its signal to a saved snapshot after the user cancelled edits).
|
|
2740
|
+
// A structural add/remove takes precedence and is handled below.
|
|
2741
|
+
if (newItems.length === 0 && removedIds.length === 0) {
|
|
2742
|
+
const anyLayoutChanged = initial.some((incoming) => {
|
|
2743
|
+
const existing = currentById.get(incoming.id);
|
|
2744
|
+
return existing && !layoutsEqual(existing.layout, incoming.layout);
|
|
2745
|
+
});
|
|
2746
|
+
if (anyLayoutChanged) {
|
|
2747
|
+
// Restore itemConfigs from the incoming snapshot.
|
|
2748
|
+
this.itemConfigs.set(initial);
|
|
2749
|
+
// Rebuild layoutOverrides for every breakpoint that has already been
|
|
2750
|
+
// visited so the grid renders the restored positions immediately without
|
|
2751
|
+
// waiting for a breakpoint switch.
|
|
2752
|
+
const visitedBps = Object.keys(this.layoutOverrides());
|
|
2753
|
+
if (visitedBps.length > 0) {
|
|
2754
|
+
const restored = {};
|
|
2755
|
+
for (const bp of visitedBps) {
|
|
2756
|
+
restored[bp] = initial.map((item) => ({
|
|
2757
|
+
id: item.id,
|
|
2758
|
+
position: item.layout[bp] ?? { col: 0, row: 0, colSpan: 1, rowSpan: 1 },
|
|
2759
|
+
}));
|
|
2760
|
+
}
|
|
2761
|
+
this.layoutOverrides.set(restored);
|
|
2762
|
+
}
|
|
2763
|
+
}
|
|
2764
|
+
return;
|
|
2765
|
+
}
|
|
2724
2766
|
for (const item of newItems) {
|
|
2725
2767
|
this.placeItem(item);
|
|
2726
2768
|
}
|
|
2727
|
-
// Remove items no longer in initial
|
|
2728
|
-
const initialIds = new Set(initial.map((i) => i.id));
|
|
2729
|
-
const removedIds = current.filter((c) => !initialIds.has(c.id)).map((c) => c.id);
|
|
2730
2769
|
for (const id of removedIds) {
|
|
2731
2770
|
this.removeItem(id);
|
|
2732
2771
|
}
|
|
@@ -2799,27 +2838,33 @@ class GridDirective {
|
|
|
2799
2838
|
// On first registration the item may have been auto-placed with 1×1 defaults
|
|
2800
2839
|
// (because addItem runs before the GridItemDirective initialises). If so,
|
|
2801
2840
|
// re-place it now at the correct minimum size.
|
|
2802
|
-
|
|
2803
|
-
|
|
2804
|
-
|
|
2805
|
-
|
|
2806
|
-
|
|
2807
|
-
|
|
2808
|
-
|
|
2809
|
-
|
|
2810
|
-
|
|
2811
|
-
|
|
2812
|
-
|
|
2813
|
-
|
|
2814
|
-
|
|
2815
|
-
|
|
2816
|
-
|
|
2817
|
-
|
|
2818
|
-
|
|
2841
|
+
// All signal reads are wrapped in untracked() to prevent this method from
|
|
2842
|
+
// inadvertently becoming a dependency of the caller's reactive context
|
|
2843
|
+
// (e.g. GridItemDirective's registration effect), which would cause the
|
|
2844
|
+
// layoutOverrides.update() write below to re-trigger that effect in a loop.
|
|
2845
|
+
untracked(() => {
|
|
2846
|
+
const breakpoint = this.activeBreakpoint();
|
|
2847
|
+
const existing = this.layoutOverrides()[breakpoint];
|
|
2848
|
+
if (!existing)
|
|
2849
|
+
return;
|
|
2850
|
+
const entry = existing.find((e) => e.id === id);
|
|
2851
|
+
if (!entry)
|
|
2852
|
+
return;
|
|
2853
|
+
const pos = entry.position;
|
|
2854
|
+
if (pos.colSpan >= constraints.minColSpan && pos.rowSpan >= constraints.minRowSpan)
|
|
2855
|
+
return;
|
|
2856
|
+
const cols = this.activeColumns();
|
|
2857
|
+
const others = existing.filter((e) => e.id !== id);
|
|
2858
|
+
const newPosition = autoPlace({
|
|
2859
|
+
entries: others,
|
|
2860
|
+
colSpan: Math.max(pos.colSpan, constraints.minColSpan),
|
|
2861
|
+
rowSpan: Math.max(pos.rowSpan, constraints.minRowSpan),
|
|
2862
|
+
columns: cols,
|
|
2863
|
+
});
|
|
2864
|
+
const updated = existing.map((e) => (e.id === id ? { ...e, position: newPosition } : e));
|
|
2865
|
+
const compacted = compactLayout(updated, cols);
|
|
2866
|
+
this.layoutOverrides.update((prev) => ({ ...prev, [breakpoint]: compacted }));
|
|
2819
2867
|
});
|
|
2820
|
-
const updated = existing.map((e) => (e.id === id ? { ...e, position: newPosition } : e));
|
|
2821
|
-
const compacted = compactLayout(updated, cols);
|
|
2822
|
-
this.layoutOverrides.update((prev) => ({ ...prev, [breakpoint]: compacted }));
|
|
2823
2868
|
}
|
|
2824
2869
|
registerItem(id, options) {
|
|
2825
2870
|
this.itemElements.set(id, options.el);
|
|
@@ -2960,6 +3005,7 @@ class GridDirective {
|
|
|
2960
3005
|
const currentLayout = this.baseLayout().filter((e) => e.id !== id);
|
|
2961
3006
|
const compacted = compactLayout(currentLayout, columns);
|
|
2962
3007
|
this.updateLayoutForCurrentBreakpoint(compacted);
|
|
3008
|
+
this.compactOtherBreakpoints(id);
|
|
2963
3009
|
this.emitLayoutChange();
|
|
2964
3010
|
this.animateLayoutTransition({ excludeIds: new Set([id]) });
|
|
2965
3011
|
};
|
|
@@ -2970,6 +3016,7 @@ class GridDirective {
|
|
|
2970
3016
|
const currentLayout = this.baseLayout().filter((e) => e.id !== id);
|
|
2971
3017
|
const compacted = compactLayout(currentLayout, columns);
|
|
2972
3018
|
this.updateLayoutForCurrentBreakpoint(compacted);
|
|
3019
|
+
this.compactOtherBreakpoints(id);
|
|
2973
3020
|
this.emitLayoutChange();
|
|
2974
3021
|
}
|
|
2975
3022
|
}
|
|
@@ -3022,8 +3069,22 @@ class GridDirective {
|
|
|
3022
3069
|
this.resizeBaseLayout.set(null);
|
|
3023
3070
|
}
|
|
3024
3071
|
getSerializedState() {
|
|
3072
|
+
const overrides = this.layoutOverrides();
|
|
3073
|
+
// layoutOverrides is the authoritative source for any breakpoint that has been visited.
|
|
3074
|
+
// itemConfigs.layout[bp] lags behind for breakpoints that haven't been written back
|
|
3075
|
+
// yet (e.g. items pushed by moveItem/resizeItem collision resolution, or items whose
|
|
3076
|
+
// non-current-breakpoint positions haven't been visited since the last change).
|
|
3077
|
+
const items = this.itemConfigs().map((item) => {
|
|
3078
|
+
const layout = { ...item.layout };
|
|
3079
|
+
for (const [bp, entries] of Object.entries(overrides)) {
|
|
3080
|
+
const entry = entries.find((e) => e.id === item.id);
|
|
3081
|
+
if (entry)
|
|
3082
|
+
layout[bp] = entry.position;
|
|
3083
|
+
}
|
|
3084
|
+
return { ...item, layout };
|
|
3085
|
+
});
|
|
3025
3086
|
return serializeGridLayout({
|
|
3026
|
-
items
|
|
3087
|
+
items,
|
|
3027
3088
|
breakpoints: this.breakpoints(),
|
|
3028
3089
|
rowHeight: this.rowHeight(),
|
|
3029
3090
|
});
|
|
@@ -3052,24 +3113,45 @@ class GridDirective {
|
|
|
3052
3113
|
this.layoutOverrides.set(overrides);
|
|
3053
3114
|
}
|
|
3054
3115
|
placeItem(config) {
|
|
3055
|
-
const
|
|
3116
|
+
const activeBp = this.activeBreakpoint();
|
|
3056
3117
|
const columns = this.activeColumns();
|
|
3057
3118
|
const currentLayout = this.baseLayout();
|
|
3058
3119
|
const constraints = this.getConstraints(config.id);
|
|
3059
|
-
const
|
|
3120
|
+
const allBreakpoints = this.breakpoints();
|
|
3121
|
+
const overrides = this.layoutOverrides();
|
|
3122
|
+
const existingItems = this.itemConfigs();
|
|
3123
|
+
// Start from any layouts already in the config (e.g. when re-adding from API data).
|
|
3124
|
+
const layout = { ...config.layout };
|
|
3125
|
+
// Place on the active breakpoint first so other breakpoints can use it as a reference.
|
|
3126
|
+
const position = layout[activeBp] ??
|
|
3060
3127
|
autoPlace({
|
|
3061
3128
|
entries: currentLayout,
|
|
3062
3129
|
colSpan: constraints.minColSpan,
|
|
3063
3130
|
rowSpan: constraints.minRowSpan,
|
|
3064
3131
|
columns,
|
|
3065
3132
|
});
|
|
3066
|
-
|
|
3067
|
-
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
|
|
3071
|
-
|
|
3072
|
-
|
|
3133
|
+
layout[activeBp] = position;
|
|
3134
|
+
// Auto-place on every other breakpoint that has no position yet.
|
|
3135
|
+
// This ensures the emitted layoutChange always carries all breakpoints so
|
|
3136
|
+
// the host's gridItems signal never loses sm/md positions for new items.
|
|
3137
|
+
for (const bp of allBreakpoints) {
|
|
3138
|
+
if (bp.name === activeBp || layout[bp.name])
|
|
3139
|
+
continue;
|
|
3140
|
+
// Effective layout for this breakpoint: prefer layoutOverrides (already visited),
|
|
3141
|
+
// fall back to itemConfigs.layout[bp] (original API positions).
|
|
3142
|
+
const bpEntries = overrides[bp.name] ??
|
|
3143
|
+
existingItems.map((item) => ({
|
|
3144
|
+
id: item.id,
|
|
3145
|
+
position: item.layout[bp.name] ?? { col: 0, row: 0, colSpan: 1, rowSpan: 1 },
|
|
3146
|
+
}));
|
|
3147
|
+
layout[bp.name] = autoPlace({
|
|
3148
|
+
entries: bpEntries,
|
|
3149
|
+
colSpan: Math.min(constraints.minColSpan, bp.columns),
|
|
3150
|
+
rowSpan: constraints.minRowSpan,
|
|
3151
|
+
columns: bp.columns,
|
|
3152
|
+
});
|
|
3153
|
+
}
|
|
3154
|
+
const itemWithLayout = { ...config, layout };
|
|
3073
3155
|
this.itemConfigs.update((items) => [...items, itemWithLayout]);
|
|
3074
3156
|
this.updateLayoutForCurrentBreakpoint([...currentLayout, { id: config.id, position }]);
|
|
3075
3157
|
this.emitLayoutChange();
|
|
@@ -3153,6 +3235,19 @@ class GridDirective {
|
|
|
3153
3235
|
return collides ? original : entry;
|
|
3154
3236
|
});
|
|
3155
3237
|
}
|
|
3238
|
+
/** Compact all visited breakpoints (layoutOverrides entries) after an item is removed. */
|
|
3239
|
+
compactOtherBreakpoints(removedId) {
|
|
3240
|
+
const activeBp = this.activeBreakpoint();
|
|
3241
|
+
const bpColumns = new Map(this.breakpoints().map((b) => [b.name, b.columns]));
|
|
3242
|
+
for (const [bp, entries] of Object.entries(this.layoutOverrides())) {
|
|
3243
|
+
if (bp === activeBp)
|
|
3244
|
+
continue;
|
|
3245
|
+
const withoutItem = entries.filter((e) => e.id !== removedId);
|
|
3246
|
+
const cols = bpColumns.get(bp) ?? 1;
|
|
3247
|
+
const compacted = compactLayout(withoutItem, cols);
|
|
3248
|
+
this.layoutOverrides.update((prev) => ({ ...prev, [bp]: compacted }));
|
|
3249
|
+
}
|
|
3250
|
+
}
|
|
3156
3251
|
updateLayoutForCurrentBreakpoint(entries) {
|
|
3157
3252
|
const breakpoint = this.activeBreakpoint();
|
|
3158
3253
|
this.layoutOverrides.update((prev) => ({ ...prev, [breakpoint]: entries }));
|
|
@@ -3714,6 +3809,326 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImpo
|
|
|
3714
3809
|
}, styles: ["@property --et-grid-item-border-radius{syntax: \"<length>\"; inherits: false; initial-value: 8px;}@property --et-grid-item-bg{syntax: \"<color>\"; inherits: false; initial-value: rgb(var(--et-surface-background, 255 255 255));}@property --et-grid-item-shadow{syntax: \"*\"; inherits: false; initial-value: 0 1px 3px rgba(0,0,0,.12);}@property --et-grid-item-drag-handle-height{syntax: \"<length>\"; inherits: false; initial-value: 32px;}.et-grid-item{position:relative;border-radius:var(--et-grid-item-border-radius);background:var(--et-grid-item-bg);box-shadow:var(--et-grid-item-shadow);border:1px solid rgb(var(--et-surface-border, 229 229 229));color:rgb(var(--et-surface-color, 23 23 23));overflow:hidden;display:flex;flex-direction:column;outline:none;will-change:transform}.et-grid-item:focus-visible{box-shadow:0 0 0 2px var(--et-grid-item-focus-ring-color, #2563eb)}.et-grid-item:is(.et-grid-item--dragging){z-index:100;box-shadow:0 12px 32px #0003;opacity:.95;cursor:grabbing;-webkit-user-select:none;user-select:none}.et-grid-item:is(.et-grid-item--resizing){z-index:100;-webkit-user-select:none;user-select:none}.et-grid-item:hover .et-resize-handle--e:after,.et-grid-item:hover .et-resize-handle--s:after,.et-grid-item:hover .et-resize-handle--w:after,.et-grid-item:hover .et-resize-handle--n:after,.et-grid-item:hover .et-resize-handle--se:after,.et-grid-item:hover .et-resize-handle--sw:after,.et-grid-item:hover .et-resize-handle--ne:after,.et-grid-item:hover .et-resize-handle--nw:after,.et-grid-item--resizing .et-resize-handle--e:after,.et-grid-item--resizing .et-resize-handle--s:after,.et-grid-item--resizing .et-resize-handle--w:after,.et-grid-item--resizing .et-resize-handle--n:after,.et-grid-item--resizing .et-resize-handle--se:after,.et-grid-item--resizing .et-resize-handle--sw:after,.et-grid-item--resizing .et-resize-handle--ne:after,.et-grid-item--resizing .et-resize-handle--nw:after{content:\"\";position:absolute;border-radius:2px;background:rgb(var(--et-surface-color, 23 23 23) / .2);transition:opacity .15s ease}.et-grid-item:hover .et-resize-handle--e:after,.et-grid-item--resizing .et-resize-handle--e:after{right:2px;top:50%;transform:translateY(-50%);width:3px;height:24px}.et-grid-item:hover .et-resize-handle--w:after,.et-grid-item--resizing .et-resize-handle--w:after{left:2px;top:50%;transform:translateY(-50%);width:3px;height:24px}.et-grid-item:hover .et-resize-handle--s:after,.et-grid-item--resizing .et-resize-handle--s:after{bottom:2px;left:50%;transform:translate(-50%);height:3px;width:24px}.et-grid-item:hover .et-resize-handle--n:after,.et-grid-item--resizing .et-resize-handle--n:after{top:2px;left:50%;transform:translate(-50%);height:3px;width:24px}.et-grid-item:hover .et-resize-handle--se:after,.et-grid-item--resizing .et-resize-handle--se:after{bottom:3px;right:3px;width:8px;height:8px;border-radius:1px}.et-grid-item:hover .et-resize-handle--sw:after,.et-grid-item--resizing .et-resize-handle--sw:after{bottom:3px;left:3px;width:8px;height:8px;border-radius:1px}.et-grid-item:hover .et-resize-handle--ne:after,.et-grid-item--resizing .et-resize-handle--ne:after{top:3px;right:3px;width:8px;height:8px;border-radius:1px}.et-grid-item:hover .et-resize-handle--nw:after,.et-grid-item--resizing .et-resize-handle--nw:after{top:3px;left:3px;width:8px;height:8px;border-radius:1px}.et-grid-item__drag-handle{height:var(--et-grid-item-drag-handle-height);cursor:grab;display:flex;align-items:center;padding-inline:8px;-webkit-user-select:none;user-select:none;touch-action:none}.et-grid-item--dragging .et-grid-item__drag-handle{cursor:grabbing}.et-grid-item__content{flex:1;overflow:hidden;min-height:0}.et-grid-item__actions{position:absolute;top:4px;right:4px;display:flex;gap:4px}\n"] }]
|
|
3715
3810
|
}], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], removed: [{ type: i0.Output, args: ["removed"] }] } });
|
|
3716
3811
|
|
|
3812
|
+
const posEq = (a, b) => {
|
|
3813
|
+
if (!a && !b)
|
|
3814
|
+
return true;
|
|
3815
|
+
if (!a || !b)
|
|
3816
|
+
return false;
|
|
3817
|
+
return a.col === b.col && a.row === b.row && a.colSpan === b.colSpan && a.rowSpan === b.rowSpan;
|
|
3818
|
+
};
|
|
3819
|
+
/**
|
|
3820
|
+
* Development-only debug overlay for an `et-grid` instance.
|
|
3821
|
+
*
|
|
3822
|
+
* ```html
|
|
3823
|
+
* <et-grid #myGrid [initialItems]="items()" ...></et-grid>
|
|
3824
|
+
* <et-grid-debug [grid]="myGrid" [externalItems]="items()" />
|
|
3825
|
+
* ```
|
|
3826
|
+
*
|
|
3827
|
+
* Pass `externalItems` to detect divergence between the host signal
|
|
3828
|
+
* and the grid's internal itemConfigs. The **Copy JSON** button writes
|
|
3829
|
+
* a full diagnostic snapshot to the clipboard without any console output.
|
|
3830
|
+
*/
|
|
3831
|
+
class GridDebugComponent {
|
|
3832
|
+
constructor() {
|
|
3833
|
+
this.destroyRef = inject(DestroyRef);
|
|
3834
|
+
this.grid = input.required(...(ngDevMode ? [{ debugName: "grid" }] : /* istanbul ignore next */ []));
|
|
3835
|
+
this.externalItems = input(null, ...(ngDevMode ? [{ debugName: "externalItems" }] : /* istanbul ignore next */ []));
|
|
3836
|
+
this.activeBreakpoint = computed(() => this.grid().grid.activeBreakpoint(), ...(ngDevMode ? [{ debugName: "activeBreakpoint" }] : /* istanbul ignore next */ []));
|
|
3837
|
+
this.containerWidth = computed(() => this.grid().grid.containerWidth(), ...(ngDevMode ? [{ debugName: "containerWidth" }] : /* istanbul ignore next */ []));
|
|
3838
|
+
this.breakpoints = computed(() => this.grid().grid.breakpoints(), ...(ngDevMode ? [{ debugName: "breakpoints" }] : /* istanbul ignore next */ []));
|
|
3839
|
+
this.items = computed(() => this.grid().grid.items(), ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
|
|
3840
|
+
this.layout = computed(() => this.grid().grid.layout(), ...(ngDevMode ? [{ debugName: "layout" }] : /* istanbul ignore next */ []));
|
|
3841
|
+
this.hasDrag = computed(() => this.grid().grid.dragState() !== null, ...(ngDevMode ? [{ debugName: "hasDrag" }] : /* istanbul ignore next */ []));
|
|
3842
|
+
this.hasExternal = computed(() => this.externalItems() !== null, ...(ngDevMode ? [{ debugName: "hasExternal" }] : /* istanbul ignore next */ []));
|
|
3843
|
+
this.copied = signal(false, ...(ngDevMode ? [{ debugName: "copied" }] : /* istanbul ignore next */ []));
|
|
3844
|
+
this.rows = computed(() => {
|
|
3845
|
+
const bps = this.breakpoints().map((b) => b.name);
|
|
3846
|
+
const internalItems = this.items();
|
|
3847
|
+
const external = this.externalItems();
|
|
3848
|
+
const extById = external ? new Map(external.map((i) => [i.id, i])) : null;
|
|
3849
|
+
return internalItems.map((item) => ({
|
|
3850
|
+
id: item.id,
|
|
3851
|
+
type: item.type,
|
|
3852
|
+
cells: bps.map((bp) => {
|
|
3853
|
+
const int = item.layout[bp];
|
|
3854
|
+
const ext = extById?.get(item.id)?.layout[bp];
|
|
3855
|
+
return {
|
|
3856
|
+
bp,
|
|
3857
|
+
int,
|
|
3858
|
+
ext,
|
|
3859
|
+
intMissing: !int,
|
|
3860
|
+
extMissing: extById !== null && !ext,
|
|
3861
|
+
mismatch: extById !== null && !posEq(int, ext),
|
|
3862
|
+
};
|
|
3863
|
+
}),
|
|
3864
|
+
}));
|
|
3865
|
+
}, ...(ngDevMode ? [{ debugName: "rows" }] : /* istanbul ignore next */ []));
|
|
3866
|
+
this.issueCount = computed(() => this.rows().reduce((n, row) => n + row.cells.filter((c) => c.intMissing || c.mismatch).length, 0), ...(ngDevMode ? [{ debugName: "issueCount" }] : /* istanbul ignore next */ []));
|
|
3867
|
+
}
|
|
3868
|
+
fmtPos(pos) {
|
|
3869
|
+
return pos ? `(${pos.col},${pos.row}) ${pos.colSpan}×${pos.rowSpan}` : '—';
|
|
3870
|
+
}
|
|
3871
|
+
copyJson($event) {
|
|
3872
|
+
$event.stopPropagation();
|
|
3873
|
+
const issues = [];
|
|
3874
|
+
for (const row of this.rows()) {
|
|
3875
|
+
for (const cell of row.cells) {
|
|
3876
|
+
if (cell.intMissing)
|
|
3877
|
+
issues.push({ type: 'missing-internal-layout', itemId: row.id, breakpoint: cell.bp });
|
|
3878
|
+
if (cell.mismatch)
|
|
3879
|
+
issues.push({ type: 'external-internal-mismatch', itemId: row.id, breakpoint: cell.bp });
|
|
3880
|
+
}
|
|
3881
|
+
}
|
|
3882
|
+
const external = this.externalItems();
|
|
3883
|
+
const snapshot = {
|
|
3884
|
+
timestamp: new Date().toISOString(),
|
|
3885
|
+
activeBreakpoint: this.activeBreakpoint(),
|
|
3886
|
+
containerWidth: this.containerWidth(),
|
|
3887
|
+
breakpoints: this.breakpoints(),
|
|
3888
|
+
internalItems: this.items().map((i) => ({ id: i.id, type: i.type, layout: i.layout })),
|
|
3889
|
+
activeLayout: this.layout(),
|
|
3890
|
+
...(external ? { externalItems: external.map((i) => ({ id: i.id, type: i.type, layout: i.layout })) } : {}),
|
|
3891
|
+
issues,
|
|
3892
|
+
};
|
|
3893
|
+
navigator.clipboard.writeText(JSON.stringify(snapshot, null, 2)).catch(() => {
|
|
3894
|
+
/* clipboard unavailable in this context */
|
|
3895
|
+
});
|
|
3896
|
+
this.copied.set(true);
|
|
3897
|
+
timer(2000)
|
|
3898
|
+
.pipe(takeUntilDestroyed(this.destroyRef), tap$1(() => this.copied.set(false)))
|
|
3899
|
+
.subscribe();
|
|
3900
|
+
}
|
|
3901
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: GridDebugComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3902
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: GridDebugComponent, isStandalone: true, selector: "et-grid-debug", inputs: { grid: { classPropertyName: "grid", publicName: "grid", isSignal: true, isRequired: true, transformFunction: null }, externalItems: { classPropertyName: "externalItems", publicName: "externalItems", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
3903
|
+
<details
|
|
3904
|
+
style="font-family: monospace; font-size: 11px; border: 1px solid #d1d5db; border-radius: 4px; margin-top: 8px; background: #f9fafb; color: #111"
|
|
3905
|
+
>
|
|
3906
|
+
<summary
|
|
3907
|
+
style="padding: 6px 10px; cursor: pointer; list-style: none; display: flex; align-items: center; gap: 10px; user-select: none"
|
|
3908
|
+
>
|
|
3909
|
+
<span style="font-weight: 700; color: #6b7280">et-grid-debug</span>
|
|
3910
|
+
|
|
3911
|
+
<span style="color: #6b7280">
|
|
3912
|
+
bp: <strong style="color: #111827">{{ activeBreakpoint() }}</strong> · {{ containerWidth() }}px
|
|
3913
|
+
· {{ items().length }} items
|
|
3914
|
+
@if (hasDrag()) {
|
|
3915
|
+
· <span style="color: #d97706">⠿ dragging</span>
|
|
3916
|
+
}
|
|
3917
|
+
</span>
|
|
3918
|
+
|
|
3919
|
+
@if (issueCount() > 0) {
|
|
3920
|
+
<span style="color: #dc2626; font-weight: 700"
|
|
3921
|
+
>⚠ {{ issueCount() }} issue{{ issueCount() === 1 ? '' : 's' }}</span
|
|
3922
|
+
>
|
|
3923
|
+
}
|
|
3924
|
+
|
|
3925
|
+
<button
|
|
3926
|
+
(click)="copyJson($event)"
|
|
3927
|
+
style="margin-left: auto; padding: 2px 8px; border: 1px solid #d1d5db; border-radius: 3px; background: #fff; cursor: pointer; font-size: 11px; color: #374151"
|
|
3928
|
+
>
|
|
3929
|
+
Copy JSON
|
|
3930
|
+
</button>
|
|
3931
|
+
|
|
3932
|
+
@if (copied()) {
|
|
3933
|
+
<span style="color: #16a34a; font-size: 10px">✓ copied</span>
|
|
3934
|
+
}
|
|
3935
|
+
</summary>
|
|
3936
|
+
|
|
3937
|
+
<div style="padding: 8px 10px; overflow-x: auto; border-top: 1px solid #e5e7eb">
|
|
3938
|
+
<!-- Breakpoint legend -->
|
|
3939
|
+
<div style="display: flex; gap: 6px; margin-bottom: 8px; flex-wrap: wrap">
|
|
3940
|
+
@for (bp of breakpoints(); track bp.name) {
|
|
3941
|
+
<span
|
|
3942
|
+
[style.fontWeight]="bp.name === activeBreakpoint() ? '700' : '400'"
|
|
3943
|
+
[style.color]="bp.name === activeBreakpoint() ? '#1d4ed8' : '#9ca3af'"
|
|
3944
|
+
style="padding: 1px 7px; border: 1px solid currentColor; border-radius: 99px"
|
|
3945
|
+
>{{ bp.name }} {{ bp.columns }}col ≥{{ bp.minWidth }}px</span
|
|
3946
|
+
>
|
|
3947
|
+
}
|
|
3948
|
+
</div>
|
|
3949
|
+
|
|
3950
|
+
<!-- Layout table -->
|
|
3951
|
+
<table style="border-collapse: collapse; white-space: nowrap">
|
|
3952
|
+
<thead>
|
|
3953
|
+
<tr style="background: #f3f4f6">
|
|
3954
|
+
<th style="padding: 3px 8px; text-align: left; border: 1px solid #e5e7eb">id</th>
|
|
3955
|
+
<th style="padding: 3px 8px; text-align: left; border: 1px solid #e5e7eb">type</th>
|
|
3956
|
+
@for (bp of breakpoints(); track bp.name) {
|
|
3957
|
+
<th
|
|
3958
|
+
[style.background]="bp.name === activeBreakpoint() ? '#dbeafe' : '#f3f4f6'"
|
|
3959
|
+
style="padding: 3px 8px; text-align: center; border: 1px solid #e5e7eb"
|
|
3960
|
+
>
|
|
3961
|
+
{{ bp.name }}{{ hasExternal() ? ' int' : '' }}
|
|
3962
|
+
</th>
|
|
3963
|
+
@if (hasExternal()) {
|
|
3964
|
+
<th
|
|
3965
|
+
[style.background]="bp.name === activeBreakpoint() ? '#dbeafe' : '#f3f4f6'"
|
|
3966
|
+
style="padding: 3px 8px; text-align: center; border: 1px solid #e5e7eb; opacity: .65"
|
|
3967
|
+
>
|
|
3968
|
+
{{ bp.name }} ext
|
|
3969
|
+
</th>
|
|
3970
|
+
}
|
|
3971
|
+
}
|
|
3972
|
+
</tr>
|
|
3973
|
+
</thead>
|
|
3974
|
+
<tbody>
|
|
3975
|
+
@for (row of rows(); track row.id) {
|
|
3976
|
+
<tr>
|
|
3977
|
+
<td style="padding: 3px 8px; border: 1px solid #e5e7eb; color: #6b7280">{{ row.id }}</td>
|
|
3978
|
+
<td style="padding: 3px 8px; border: 1px solid #e5e7eb; color: #9ca3af">{{ row.type }}</td>
|
|
3979
|
+
@for (cell of row.cells; track cell.bp) {
|
|
3980
|
+
<td
|
|
3981
|
+
[style.color]="cell.intMissing ? '#dc2626' : '#111'"
|
|
3982
|
+
[title]="cell.intMissing ? 'MISSING — layout.' + cell.bp + ' undefined in internal state' : ''"
|
|
3983
|
+
style="padding: 3px 8px; border: 1px solid #e5e7eb; text-align: center"
|
|
3984
|
+
>
|
|
3985
|
+
{{ fmtPos(cell.int) }}
|
|
3986
|
+
</td>
|
|
3987
|
+
@if (hasExternal()) {
|
|
3988
|
+
<td
|
|
3989
|
+
[style.color]="cell.extMissing ? '#dc2626' : cell.mismatch ? '#d97706' : '#9ca3af'"
|
|
3990
|
+
[title]="cell.mismatch ? 'MISMATCH — ext=' + fmtPos(cell.ext) + ' int=' + fmtPos(cell.int) : ''"
|
|
3991
|
+
style="padding: 3px 8px; border: 1px solid #e5e7eb; text-align: center"
|
|
3992
|
+
>
|
|
3993
|
+
{{ fmtPos(cell.ext) }}
|
|
3994
|
+
</td>
|
|
3995
|
+
}
|
|
3996
|
+
}
|
|
3997
|
+
</tr>
|
|
3998
|
+
}
|
|
3999
|
+
</tbody>
|
|
4000
|
+
</table>
|
|
4001
|
+
|
|
4002
|
+
@if (hasExternal()) {
|
|
4003
|
+
<p style="margin-top: 6px; color: #9ca3af; font-size: 10px">
|
|
4004
|
+
int = grid.items() (internal) · ext = externalItems input ·
|
|
4005
|
+
<span style="color: #dc2626">red = undefined</span> ·
|
|
4006
|
+
<span style="color: #d97706">orange = mismatch</span>
|
|
4007
|
+
</p>
|
|
4008
|
+
}
|
|
4009
|
+
</div>
|
|
4010
|
+
</details>
|
|
4011
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
4012
|
+
}
|
|
4013
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: GridDebugComponent, decorators: [{
|
|
4014
|
+
type: Component,
|
|
4015
|
+
args: [{
|
|
4016
|
+
selector: 'et-grid-debug',
|
|
4017
|
+
template: `
|
|
4018
|
+
<details
|
|
4019
|
+
style="font-family: monospace; font-size: 11px; border: 1px solid #d1d5db; border-radius: 4px; margin-top: 8px; background: #f9fafb; color: #111"
|
|
4020
|
+
>
|
|
4021
|
+
<summary
|
|
4022
|
+
style="padding: 6px 10px; cursor: pointer; list-style: none; display: flex; align-items: center; gap: 10px; user-select: none"
|
|
4023
|
+
>
|
|
4024
|
+
<span style="font-weight: 700; color: #6b7280">et-grid-debug</span>
|
|
4025
|
+
|
|
4026
|
+
<span style="color: #6b7280">
|
|
4027
|
+
bp: <strong style="color: #111827">{{ activeBreakpoint() }}</strong> · {{ containerWidth() }}px
|
|
4028
|
+
· {{ items().length }} items
|
|
4029
|
+
@if (hasDrag()) {
|
|
4030
|
+
· <span style="color: #d97706">⠿ dragging</span>
|
|
4031
|
+
}
|
|
4032
|
+
</span>
|
|
4033
|
+
|
|
4034
|
+
@if (issueCount() > 0) {
|
|
4035
|
+
<span style="color: #dc2626; font-weight: 700"
|
|
4036
|
+
>⚠ {{ issueCount() }} issue{{ issueCount() === 1 ? '' : 's' }}</span
|
|
4037
|
+
>
|
|
4038
|
+
}
|
|
4039
|
+
|
|
4040
|
+
<button
|
|
4041
|
+
(click)="copyJson($event)"
|
|
4042
|
+
style="margin-left: auto; padding: 2px 8px; border: 1px solid #d1d5db; border-radius: 3px; background: #fff; cursor: pointer; font-size: 11px; color: #374151"
|
|
4043
|
+
>
|
|
4044
|
+
Copy JSON
|
|
4045
|
+
</button>
|
|
4046
|
+
|
|
4047
|
+
@if (copied()) {
|
|
4048
|
+
<span style="color: #16a34a; font-size: 10px">✓ copied</span>
|
|
4049
|
+
}
|
|
4050
|
+
</summary>
|
|
4051
|
+
|
|
4052
|
+
<div style="padding: 8px 10px; overflow-x: auto; border-top: 1px solid #e5e7eb">
|
|
4053
|
+
<!-- Breakpoint legend -->
|
|
4054
|
+
<div style="display: flex; gap: 6px; margin-bottom: 8px; flex-wrap: wrap">
|
|
4055
|
+
@for (bp of breakpoints(); track bp.name) {
|
|
4056
|
+
<span
|
|
4057
|
+
[style.fontWeight]="bp.name === activeBreakpoint() ? '700' : '400'"
|
|
4058
|
+
[style.color]="bp.name === activeBreakpoint() ? '#1d4ed8' : '#9ca3af'"
|
|
4059
|
+
style="padding: 1px 7px; border: 1px solid currentColor; border-radius: 99px"
|
|
4060
|
+
>{{ bp.name }} {{ bp.columns }}col ≥{{ bp.minWidth }}px</span
|
|
4061
|
+
>
|
|
4062
|
+
}
|
|
4063
|
+
</div>
|
|
4064
|
+
|
|
4065
|
+
<!-- Layout table -->
|
|
4066
|
+
<table style="border-collapse: collapse; white-space: nowrap">
|
|
4067
|
+
<thead>
|
|
4068
|
+
<tr style="background: #f3f4f6">
|
|
4069
|
+
<th style="padding: 3px 8px; text-align: left; border: 1px solid #e5e7eb">id</th>
|
|
4070
|
+
<th style="padding: 3px 8px; text-align: left; border: 1px solid #e5e7eb">type</th>
|
|
4071
|
+
@for (bp of breakpoints(); track bp.name) {
|
|
4072
|
+
<th
|
|
4073
|
+
[style.background]="bp.name === activeBreakpoint() ? '#dbeafe' : '#f3f4f6'"
|
|
4074
|
+
style="padding: 3px 8px; text-align: center; border: 1px solid #e5e7eb"
|
|
4075
|
+
>
|
|
4076
|
+
{{ bp.name }}{{ hasExternal() ? ' int' : '' }}
|
|
4077
|
+
</th>
|
|
4078
|
+
@if (hasExternal()) {
|
|
4079
|
+
<th
|
|
4080
|
+
[style.background]="bp.name === activeBreakpoint() ? '#dbeafe' : '#f3f4f6'"
|
|
4081
|
+
style="padding: 3px 8px; text-align: center; border: 1px solid #e5e7eb; opacity: .65"
|
|
4082
|
+
>
|
|
4083
|
+
{{ bp.name }} ext
|
|
4084
|
+
</th>
|
|
4085
|
+
}
|
|
4086
|
+
}
|
|
4087
|
+
</tr>
|
|
4088
|
+
</thead>
|
|
4089
|
+
<tbody>
|
|
4090
|
+
@for (row of rows(); track row.id) {
|
|
4091
|
+
<tr>
|
|
4092
|
+
<td style="padding: 3px 8px; border: 1px solid #e5e7eb; color: #6b7280">{{ row.id }}</td>
|
|
4093
|
+
<td style="padding: 3px 8px; border: 1px solid #e5e7eb; color: #9ca3af">{{ row.type }}</td>
|
|
4094
|
+
@for (cell of row.cells; track cell.bp) {
|
|
4095
|
+
<td
|
|
4096
|
+
[style.color]="cell.intMissing ? '#dc2626' : '#111'"
|
|
4097
|
+
[title]="cell.intMissing ? 'MISSING — layout.' + cell.bp + ' undefined in internal state' : ''"
|
|
4098
|
+
style="padding: 3px 8px; border: 1px solid #e5e7eb; text-align: center"
|
|
4099
|
+
>
|
|
4100
|
+
{{ fmtPos(cell.int) }}
|
|
4101
|
+
</td>
|
|
4102
|
+
@if (hasExternal()) {
|
|
4103
|
+
<td
|
|
4104
|
+
[style.color]="cell.extMissing ? '#dc2626' : cell.mismatch ? '#d97706' : '#9ca3af'"
|
|
4105
|
+
[title]="cell.mismatch ? 'MISMATCH — ext=' + fmtPos(cell.ext) + ' int=' + fmtPos(cell.int) : ''"
|
|
4106
|
+
style="padding: 3px 8px; border: 1px solid #e5e7eb; text-align: center"
|
|
4107
|
+
>
|
|
4108
|
+
{{ fmtPos(cell.ext) }}
|
|
4109
|
+
</td>
|
|
4110
|
+
}
|
|
4111
|
+
}
|
|
4112
|
+
</tr>
|
|
4113
|
+
}
|
|
4114
|
+
</tbody>
|
|
4115
|
+
</table>
|
|
4116
|
+
|
|
4117
|
+
@if (hasExternal()) {
|
|
4118
|
+
<p style="margin-top: 6px; color: #9ca3af; font-size: 10px">
|
|
4119
|
+
int = grid.items() (internal) · ext = externalItems input ·
|
|
4120
|
+
<span style="color: #dc2626">red = undefined</span> ·
|
|
4121
|
+
<span style="color: #d97706">orange = mismatch</span>
|
|
4122
|
+
</p>
|
|
4123
|
+
}
|
|
4124
|
+
</div>
|
|
4125
|
+
</details>
|
|
4126
|
+
`,
|
|
4127
|
+
encapsulation: ViewEncapsulation.None,
|
|
4128
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4129
|
+
}]
|
|
4130
|
+
}], propDecorators: { grid: [{ type: i0.Input, args: [{ isSignal: true, alias: "grid", required: true }] }], externalItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "externalItems", required: false }] }] } });
|
|
4131
|
+
|
|
3717
4132
|
const GRID_ERROR_CODES = {
|
|
3718
4133
|
MISSING_GRID: 1900,
|
|
3719
4134
|
MISSING_GRID_ITEM: 1901,
|
|
@@ -3721,7 +4136,7 @@ const GRID_ERROR_CODES = {
|
|
|
3721
4136
|
INVALID_LAYOUT_STATE: 1903,
|
|
3722
4137
|
};
|
|
3723
4138
|
|
|
3724
|
-
const GridImports = [GridComponent, GridItemComponent];
|
|
4139
|
+
const GridImports = [GridComponent, GridItemComponent, GridDebugComponent];
|
|
3725
4140
|
|
|
3726
4141
|
const ARROW_OUT_UP_RIGHT_ICON = {
|
|
3727
4142
|
name: 'et-arrow-out-up-right',
|
|
@@ -11538,5 +11953,5 @@ const TOOLTIP_IMPORTS = [TooltipDirective, TooltipComponent];
|
|
|
11538
11953
|
* Generated bundle index. Do not edit.
|
|
11539
11954
|
*/
|
|
11540
11955
|
|
|
11541
|
-
export { ARROW_OUT_UP_RIGHT_ICON, ARROW_RIGHT_ICON, BUTTON_ICON_ALIGNMENTS, BUTTON_IMPORTS, BUTTON_SIZES, BUTTON_SPINNER_CONFIG, BUTTON_TYPES, BUTTON_VARIANTS, BrandLoaderComponent, ButtonComponent, ButtonDirective, ButtonStylesDirective, CHECKBOX_IMPORTS, CHEVRON_ICON, CHOICE_FIELD_IMPORTS, CLIPBOARD_CHECK_ICON, CheckboxComponent, CheckboxDirective, CheckboxGroupComponent, CheckboxOptionComponent, ChoiceFieldComponent, DAILYMOTION_PLAYER_TOKEN, DEFAULT_NOTIFICATION_MANAGER_CONFIG, DEFAULT_PIP_WINDOW_CONFIG, DEFAULT_STREAM_PLAYER_STATE, DailymotionPlayerComponent, DailymotionPlayerDirective, DailymotionPlayerParamsDirective, DailymotionPlayerSlotComponent, DescriptionComponent, FACEBOOK_PLAYER_TOKEN, FLOPPY_DISK_ICON, FOCUS_FRAME_ICON, FORM_FIELD_APPEARANCES, FORM_FIELD_CONTROL_TYPES, FORM_FIELD_ERROR_CODES, FORM_FIELD_FILLS, FORM_FIELD_IMPORTS, FORM_FIELD_LABEL_MODES, FORM_FIELD_SIZES, FORM_FIELD_TOKEN, FabComponent, FacebookPlayerComponent, FacebookPlayerDirective, FacebookPlayerParamsDirective, FacebookPlayerSlotComponent, FocusRingDirective, FormErrorComponent, FormFieldComponent, FormFieldDirective, GRID_2X2_ICON, GRID_ERROR_CODES, GRID_TOKEN, GridComponent, GridDirective, GridDragDirective, GridImports, GridItemComponent, GridItemDirective, GridItemRef, GridResizeDirective, HintComponent, ICONS_TOKEN, ICON_DIRECTIVE_TOKEN, ICON_ERROR_CODES, ICON_IMPORTS, INPUT_IMPORTS, INPUT_TEXT_ALIGNMENTS, INPUT_TYPES, IconButtonComponent, IconDirective, InputComponent, InputDirective, InputPrefixDirective, InputSuffixDirective, KICK_PLAYER_TOKEN, KickPlayerComponent, KickPlayerDirective, KickPlayerParamsDirective, KickPlayerSlotComponent, LOCK_ICON, LabelDirective, NAV_TABS_TOKEN, NOTIFICATION_ERROR_CODES, NOTIFICATION_IMPORTS, NOTIFICATION_STACK_CONTEXT_TOKEN, NOTIFICATION_STATUS, NavTabImports, NavTabLinkComponent, NavTabLinkDirective, NavTabsComponent, NavTabsDirective, NavTabsOutletComponent, NavTabsOutletDirective, NotificationActionDirective, NotificationComponent, NotificationDirective, NotificationDismissDirective, NotificationItemDirective, NotificationStackDirective, OVERLAY_ERROR_CODES, OVERLAY_IMPORTS, OVERLAY_REF, OverlayAnchorDirective, OverlayDirective, OverlaySurfaceDirective, OverlayTriggerDirective, PENCIL_ICON, PIP_CHROME_REF_TOKEN, PIP_ENTRY_TOKEN, PIP_WINDOW_ASPECT_RATIO_TOKEN, PLUS_ICON, PipBackDirective, PipBringBackDirective, PipCellDirective, PipCloseDirective, PipCollapseOverlayDirective, PipGridToggleDirective, PipPlayerComponent, PipSlotPlaceholderComponent, PipStageDirective, PipTitleBarDirective, PipTitleBarTemplateDirective, PipWindowComponent, PipWindowParamsDirective, ProgressBarComponent, RadioComponent, RadioGroupComponent, SCROLLABLE_IMPORTS, SELECTION_LIST_MULTIPLE, SELECTION_LIST_TOKEN, SOOP_PLAYER_TOKEN, STREAM_CONSENT_TOKEN, STREAM_PLAYER_COMPONENT_TOKEN, STREAM_PLAYER_ERROR_CONTEXT_TOKEN, STREAM_PLAYER_ERROR_TOKEN, STREAM_PLAYER_PARAMS_TOKEN, STREAM_PLAYER_SLOT_TOKEN, STREAM_PLAYER_TOKEN, STREAM_SLOT_PLAYER_ID_TOKEN, STREAM_USER_CONSENT_PROVIDER_TOKEN, SWITCH_IMPORTS, ScrollableActiveChildDirective, ScrollableButtonsDirective, ScrollableComponent, ScrollableDarkenDirective, ScrollableDirective, ScrollableDragDirective, ScrollableErrorCode, ScrollableIgnoreChildDirective, ScrollableLoadingTemplateDirective, ScrollableMasksDirective, ScrollableNavigationDirective, ScrollableSnapDirective, SegmentedButtonComponent, SegmentedButtonGroupComponent, SelectionListControlDirective, SelectionListDirective, SelectionOptionDirective, SoopPlayerComponent, SoopPlayerDirective, SoopPlayerParamsDirective, SoopPlayerSlotComponent, SpinnerComponent, StreamConsentAcceptDirective, StreamConsentComponent, StreamConsentDirective, StreamImports, StreamPipChromeComponent, StreamPlayerErrorComponent, StreamPlayerErrorDirective, StreamPlayerLoadingComponent, StreamPlayerSlotDirective, SwitchComponent, SwitchDirective, TAB_BAR_FITS, TAB_BAR_ORIENTATIONS, TAB_BAR_TOKEN, TAB_BAR_TRIGGER_TOKEN, TAB_BAR_VARIANTS, TAB_ERROR_CODES, TAB_GROUP_TOKEN, TAB_PANEL_TOKEN, TAB_SIZES, TIKTOK_PLAYER_TOKEN, TIMES_ICON, TOGGLETIP_ERROR_CODES, TOGGLETIP_IMPORTS, TOOLTIP_ERROR_CODES, TOOLTIP_IMPORTS, TRIANGLE_EXCLAMATION_ICON, TWITCH_PLAYER_TOKEN, TabBarDirective, TabBarTriggerDirective, TabBarUnderlineDirective, TabComponent, TabGroupComponent, TabGroupDirective, TabImports, TabLabelDirective, TabPanelDirective, TabTriggerDirective, TextButtonComponent, TikTokPlayerComponent, TikTokPlayerDirective, TikTokPlayerParamsDirective, TikTokPlayerSlotComponent, ToggletipCloseDirective, ToggletipComponent, ToggletipDirective, ToggletipTriggerDirective, TooltipComponent, TooltipDirective, TwitchPlayerComponent, TwitchPlayerDirective, TwitchPlayerParamsDirective, TwitchPlayerSlotComponent, VIMEO_PLAYER_TOKEN, VimeoPlayerComponent, VimeoPlayerDirective, VimeoPlayerParamsDirective, VimeoPlayerSlotComponent, WINDOW_CONTROL_BUTTON_KINDS, WINDOW_CONTROL_BUTTON_SIZES, WindowControlButtonComponent, YOUTUBE_PLAYER_SLOT_TOKEN, YOUTUBE_PLAYER_TOKEN, YoutubePlayerComponent, YoutubePlayerDirective, YoutubePlayerParamsDirective, YoutubePlayerSlotComponent, YoutubePlayerSlotDirective, createGridAdapter, createNotificationRef, createOverlayRef, createPipChromeAnimations, createPipChromeState, createStreamConfig, createStreamPlayerSlot, fromGridPosition, injectFormSupport, injectGridConfig, injectNotificationManager, injectNotificationManagerConfig, injectOverlayManager, injectPipChromeManager, injectPipManager, injectPipSlotPlaceholderConfig, injectStreamConfig, injectStreamConsentConfig, injectStreamManager, injectStreamPlayerErrorConfig, injectStreamPlayerLoadingConfig, injectStreamScriptLoader, injectStreamUserConsentProvider, provideFormSupport, provideGridConfig, provideIcons, provideNotificationManager, provideNotificationManagerConfig, provideNotificationManagerInstance, provideOverlayManager, providePipChromeManager, providePipManager, providePipSlotPlaceholderConfig, provideStreamConfig, provideStreamConsentConfig, provideStreamManager, provideStreamPlayerErrorConfig, provideStreamPlayerLoadingConfig, toGridPosition };
|
|
11956
|
+
export { ARROW_OUT_UP_RIGHT_ICON, ARROW_RIGHT_ICON, BUTTON_ICON_ALIGNMENTS, BUTTON_IMPORTS, BUTTON_SIZES, BUTTON_SPINNER_CONFIG, BUTTON_TYPES, BUTTON_VARIANTS, BrandLoaderComponent, ButtonComponent, ButtonDirective, ButtonStylesDirective, CHECKBOX_IMPORTS, CHEVRON_ICON, CHOICE_FIELD_IMPORTS, CLIPBOARD_CHECK_ICON, CheckboxComponent, CheckboxDirective, CheckboxGroupComponent, CheckboxOptionComponent, ChoiceFieldComponent, DAILYMOTION_PLAYER_TOKEN, DEFAULT_NOTIFICATION_MANAGER_CONFIG, DEFAULT_PIP_WINDOW_CONFIG, DEFAULT_STREAM_PLAYER_STATE, DailymotionPlayerComponent, DailymotionPlayerDirective, DailymotionPlayerParamsDirective, DailymotionPlayerSlotComponent, DescriptionComponent, FACEBOOK_PLAYER_TOKEN, FLOPPY_DISK_ICON, FOCUS_FRAME_ICON, FORM_FIELD_APPEARANCES, FORM_FIELD_CONTROL_TYPES, FORM_FIELD_ERROR_CODES, FORM_FIELD_FILLS, FORM_FIELD_IMPORTS, FORM_FIELD_LABEL_MODES, FORM_FIELD_SIZES, FORM_FIELD_TOKEN, FabComponent, FacebookPlayerComponent, FacebookPlayerDirective, FacebookPlayerParamsDirective, FacebookPlayerSlotComponent, FocusRingDirective, FormErrorComponent, FormFieldComponent, FormFieldDirective, GRID_2X2_ICON, GRID_ERROR_CODES, GRID_TOKEN, GridComponent, GridDebugComponent, GridDirective, GridDragDirective, GridImports, GridItemComponent, GridItemDirective, GridItemRef, GridResizeDirective, HintComponent, ICONS_TOKEN, ICON_DIRECTIVE_TOKEN, ICON_ERROR_CODES, ICON_IMPORTS, INPUT_IMPORTS, INPUT_TEXT_ALIGNMENTS, INPUT_TYPES, IconButtonComponent, IconDirective, InputComponent, InputDirective, InputPrefixDirective, InputSuffixDirective, KICK_PLAYER_TOKEN, KickPlayerComponent, KickPlayerDirective, KickPlayerParamsDirective, KickPlayerSlotComponent, LOCK_ICON, LabelDirective, NAV_TABS_TOKEN, NOTIFICATION_ERROR_CODES, NOTIFICATION_IMPORTS, NOTIFICATION_STACK_CONTEXT_TOKEN, NOTIFICATION_STATUS, NavTabImports, NavTabLinkComponent, NavTabLinkDirective, NavTabsComponent, NavTabsDirective, NavTabsOutletComponent, NavTabsOutletDirective, NotificationActionDirective, NotificationComponent, NotificationDirective, NotificationDismissDirective, NotificationItemDirective, NotificationStackDirective, OVERLAY_ERROR_CODES, OVERLAY_IMPORTS, OVERLAY_REF, OverlayAnchorDirective, OverlayDirective, OverlaySurfaceDirective, OverlayTriggerDirective, PENCIL_ICON, PIP_CHROME_REF_TOKEN, PIP_ENTRY_TOKEN, PIP_WINDOW_ASPECT_RATIO_TOKEN, PLUS_ICON, PipBackDirective, PipBringBackDirective, PipCellDirective, PipCloseDirective, PipCollapseOverlayDirective, PipGridToggleDirective, PipPlayerComponent, PipSlotPlaceholderComponent, PipStageDirective, PipTitleBarDirective, PipTitleBarTemplateDirective, PipWindowComponent, PipWindowParamsDirective, ProgressBarComponent, RadioComponent, RadioGroupComponent, SCROLLABLE_IMPORTS, SELECTION_LIST_MULTIPLE, SELECTION_LIST_TOKEN, SOOP_PLAYER_TOKEN, STREAM_CONSENT_TOKEN, STREAM_PLAYER_COMPONENT_TOKEN, STREAM_PLAYER_ERROR_CONTEXT_TOKEN, STREAM_PLAYER_ERROR_TOKEN, STREAM_PLAYER_PARAMS_TOKEN, STREAM_PLAYER_SLOT_TOKEN, STREAM_PLAYER_TOKEN, STREAM_SLOT_PLAYER_ID_TOKEN, STREAM_USER_CONSENT_PROVIDER_TOKEN, SWITCH_IMPORTS, ScrollableActiveChildDirective, ScrollableButtonsDirective, ScrollableComponent, ScrollableDarkenDirective, ScrollableDirective, ScrollableDragDirective, ScrollableErrorCode, ScrollableIgnoreChildDirective, ScrollableLoadingTemplateDirective, ScrollableMasksDirective, ScrollableNavigationDirective, ScrollableSnapDirective, SegmentedButtonComponent, SegmentedButtonGroupComponent, SelectionListControlDirective, SelectionListDirective, SelectionOptionDirective, SoopPlayerComponent, SoopPlayerDirective, SoopPlayerParamsDirective, SoopPlayerSlotComponent, SpinnerComponent, StreamConsentAcceptDirective, StreamConsentComponent, StreamConsentDirective, StreamImports, StreamPipChromeComponent, StreamPlayerErrorComponent, StreamPlayerErrorDirective, StreamPlayerLoadingComponent, StreamPlayerSlotDirective, SwitchComponent, SwitchDirective, TAB_BAR_FITS, TAB_BAR_ORIENTATIONS, TAB_BAR_TOKEN, TAB_BAR_TRIGGER_TOKEN, TAB_BAR_VARIANTS, TAB_ERROR_CODES, TAB_GROUP_TOKEN, TAB_PANEL_TOKEN, TAB_SIZES, TIKTOK_PLAYER_TOKEN, TIMES_ICON, TOGGLETIP_ERROR_CODES, TOGGLETIP_IMPORTS, TOOLTIP_ERROR_CODES, TOOLTIP_IMPORTS, TRIANGLE_EXCLAMATION_ICON, TWITCH_PLAYER_TOKEN, TabBarDirective, TabBarTriggerDirective, TabBarUnderlineDirective, TabComponent, TabGroupComponent, TabGroupDirective, TabImports, TabLabelDirective, TabPanelDirective, TabTriggerDirective, TextButtonComponent, TikTokPlayerComponent, TikTokPlayerDirective, TikTokPlayerParamsDirective, TikTokPlayerSlotComponent, ToggletipCloseDirective, ToggletipComponent, ToggletipDirective, ToggletipTriggerDirective, TooltipComponent, TooltipDirective, TwitchPlayerComponent, TwitchPlayerDirective, TwitchPlayerParamsDirective, TwitchPlayerSlotComponent, VIMEO_PLAYER_TOKEN, VimeoPlayerComponent, VimeoPlayerDirective, VimeoPlayerParamsDirective, VimeoPlayerSlotComponent, WINDOW_CONTROL_BUTTON_KINDS, WINDOW_CONTROL_BUTTON_SIZES, WindowControlButtonComponent, YOUTUBE_PLAYER_SLOT_TOKEN, YOUTUBE_PLAYER_TOKEN, YoutubePlayerComponent, YoutubePlayerDirective, YoutubePlayerParamsDirective, YoutubePlayerSlotComponent, YoutubePlayerSlotDirective, createGridAdapter, createNotificationRef, createOverlayRef, createPipChromeAnimations, createPipChromeState, createStreamConfig, createStreamPlayerSlot, fromGridPosition, injectFormSupport, injectGridConfig, injectNotificationManager, injectNotificationManagerConfig, injectOverlayManager, injectPipChromeManager, injectPipManager, injectPipSlotPlaceholderConfig, injectStreamConfig, injectStreamConsentConfig, injectStreamManager, injectStreamPlayerErrorConfig, injectStreamPlayerLoadingConfig, injectStreamScriptLoader, injectStreamUserConsentProvider, provideFormSupport, provideGridConfig, provideIcons, provideNotificationManager, provideNotificationManagerConfig, provideNotificationManagerInstance, provideOverlayManager, providePipChromeManager, providePipManager, providePipSlotPlaceholderConfig, provideStreamConfig, provideStreamConsentConfig, provideStreamManager, provideStreamPlayerErrorConfig, provideStreamPlayerLoadingConfig, toGridPosition };
|
|
11542
11957
|
//# sourceMappingURL=ethlete-components.mjs.map
|