@memberjunction/ng-container-directives 2.36.1 → 2.37.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.
- package/README.md +88 -0
- package/dist/lib/ng-container-directive.d.ts +17 -0
- package/dist/lib/ng-container-directive.d.ts.map +1 -1
- package/dist/lib/ng-container-directive.js +17 -0
- package/dist/lib/ng-container-directive.js.map +1 -1
- package/dist/lib/ng-container-directives.module.d.ts +20 -0
- package/dist/lib/ng-container-directives.module.d.ts.map +1 -1
- package/dist/lib/ng-container-directives.module.js +20 -0
- package/dist/lib/ng-container-directives.module.js.map +1 -1
- package/dist/lib/ng-fill-container-directive.d.ts +60 -0
- package/dist/lib/ng-fill-container-directive.d.ts.map +1 -1
- package/dist/lib/ng-fill-container-directive.js +60 -1
- package/dist/lib/ng-fill-container-directive.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -9,6 +9,8 @@ Angular directives for container management in MemberJunction applications, prov
|
|
|
9
9
|
- Automatic resizing on window resize events
|
|
10
10
|
- Manual resize event handling
|
|
11
11
|
- Customizable margin and dimension settings
|
|
12
|
+
- Smart context detection (skips resizing in grids, hidden tabs)
|
|
13
|
+
- Efficient resize event handling with debouncing
|
|
12
14
|
|
|
13
15
|
## Installation
|
|
14
16
|
|
|
@@ -116,6 +118,92 @@ The `mjFillContainer` directive has several configuration options:
|
|
|
116
118
|
| rightMargin | number | 0 | Right margin in pixels |
|
|
117
119
|
| bottomMargin | number | 0 | Bottom margin in pixels |
|
|
118
120
|
|
|
121
|
+
## How It Works
|
|
122
|
+
|
|
123
|
+
The `mjFillContainer` directive dynamically calculates and sets element dimensions based on its parent container:
|
|
124
|
+
|
|
125
|
+
1. **Parent container detection**: The directive identifies the nearest block-level parent element.
|
|
126
|
+
|
|
127
|
+
2. **Size calculation**:
|
|
128
|
+
- When `fillWidth` is true, it calculates the element's width based on its parent's width, accounting for the element's position within the parent and any `rightMargin`.
|
|
129
|
+
- When `fillHeight` is true, it calculates height similarly, accounting for the `bottomMargin`.
|
|
130
|
+
|
|
131
|
+
3. **Event handling**: The directive listens for:
|
|
132
|
+
- Window resize events (with two debounce times: 100ms during active resizing, 500ms after resizing completes)
|
|
133
|
+
- Custom MJ application resize events via the MJGlobal event system
|
|
134
|
+
|
|
135
|
+
4. **Context-aware behavior**: The directive automatically skips resizing under certain conditions:
|
|
136
|
+
- Elements with the `mjSkipResize` attribute (or any parent with this attribute)
|
|
137
|
+
- Elements within a grid (role="grid")
|
|
138
|
+
- Elements within hidden tabs (not currently active)
|
|
139
|
+
- Elements with hidden or not displayed parents
|
|
140
|
+
|
|
141
|
+
## Common Use Cases
|
|
142
|
+
|
|
143
|
+
### When to Use `[fillHeight]="true" [fillWidth]="false"`
|
|
144
|
+
|
|
145
|
+
- Vertical scrollable areas where you want fixed width but dynamic height
|
|
146
|
+
- Content panels that should stretch to fill available vertical space
|
|
147
|
+
- Example: Sidebar navigation that fills vertical space but has fixed width
|
|
148
|
+
|
|
149
|
+
### When to Use `[fillHeight]="false" [fillWidth]="true"`
|
|
150
|
+
|
|
151
|
+
- Horizontal elements like headers or toolbars that span full width
|
|
152
|
+
- Fixed-height components that need to adapt to different screen widths
|
|
153
|
+
- Example: Form controls that adjust width but maintain consistent height
|
|
154
|
+
|
|
155
|
+
### When to Use Both (Default)
|
|
156
|
+
|
|
157
|
+
- Main content areas that should fill the entire available space
|
|
158
|
+
- Split panels or layouts that need to adapt to window resizing
|
|
159
|
+
- Example: Dashboards, content editors, or any primary workspace area
|
|
160
|
+
|
|
161
|
+
## Performance Optimization
|
|
162
|
+
|
|
163
|
+
- **Minimize unnecessary instances**: Only apply to containers that truly need dynamic sizing
|
|
164
|
+
- **Use `mjSkipResize` appropriately**: Apply to elements that don't need resizing
|
|
165
|
+
- **Consider debouncing**: The directive already implements debouncing, but be aware of performance impact with many instances
|
|
166
|
+
|
|
167
|
+
## Nested Containers
|
|
168
|
+
|
|
169
|
+
When nesting components with `mjFillContainer`:
|
|
170
|
+
|
|
171
|
+
1. The parent container should have the directive applied with appropriate settings
|
|
172
|
+
2. Child elements inherit the size constraints of their parents
|
|
173
|
+
3. Adjustments are calculated top-down, so parent resizing triggers child resizing
|
|
174
|
+
4. Example:
|
|
175
|
+
|
|
176
|
+
```html
|
|
177
|
+
<div mjFillContainer [fillHeight]="true" class="main-container">
|
|
178
|
+
<div class="header" style="height: 60px;">Header</div>
|
|
179
|
+
<div mjFillContainer [fillHeight]="true" class="content-area">
|
|
180
|
+
<!-- This will fill the remaining height after the header -->
|
|
181
|
+
Content
|
|
182
|
+
</div>
|
|
183
|
+
</div>
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## Troubleshooting
|
|
187
|
+
|
|
188
|
+
### Element not resizing properly
|
|
189
|
+
|
|
190
|
+
- Check if any parent has `mjSkipResize` attribute
|
|
191
|
+
- Verify the element isn't within a grid or hidden tab
|
|
192
|
+
- Ensure parent elements have proper CSS display properties
|
|
193
|
+
- Check z-index and overflow settings
|
|
194
|
+
|
|
195
|
+
### Flickering during resize
|
|
196
|
+
|
|
197
|
+
- This is usually caused by cascading resize calculations
|
|
198
|
+
- Try applying `mjFillContainer` only where necessary
|
|
199
|
+
- Use CSS transitions for smoother visual changes
|
|
200
|
+
|
|
201
|
+
### Height calculation issues
|
|
202
|
+
|
|
203
|
+
- Ensure parent element has a defined height or position
|
|
204
|
+
- For full window height, apply directive to a root element
|
|
205
|
+
- Check for competing CSS that might override the directive's styles
|
|
206
|
+
|
|
119
207
|
## Advanced Controls
|
|
120
208
|
|
|
121
209
|
For debugging or special cases, there are static properties on the FillContainer class:
|
|
@@ -1,7 +1,24 @@
|
|
|
1
1
|
import { ViewContainerRef } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Directive that exposes a ViewContainerRef for dynamic component loading.
|
|
5
|
+
* This is used to create a reference point for dynamically loading components
|
|
6
|
+
* into the DOM without manually handling ViewContainerRef injection.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* <!-- In template -->
|
|
10
|
+
* <div mjContainer></div>
|
|
11
|
+
*
|
|
12
|
+
* <!-- In component -->
|
|
13
|
+
* @ViewChild(Container, { static: true }) container!: Container;
|
|
14
|
+
* // Now you can use this.container.viewContainerRef for dynamic component creation
|
|
15
|
+
*/
|
|
3
16
|
export declare class Container {
|
|
4
17
|
viewContainerRef: ViewContainerRef;
|
|
18
|
+
/**
|
|
19
|
+
* Constructor that exposes the ViewContainerRef for the element
|
|
20
|
+
* @param viewContainerRef The ViewContainerRef for the element this directive is applied to
|
|
21
|
+
*/
|
|
5
22
|
constructor(viewContainerRef: ViewContainerRef);
|
|
6
23
|
static ɵfac: i0.ɵɵFactoryDeclaration<Container, never>;
|
|
7
24
|
static ɵdir: i0.ɵɵDirectiveDeclaration<Container, "[mjContainer]", never, {}, {}, never, never, false, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-container-directive.d.ts","sourceRoot":"","sources":["../../src/lib/ng-container-directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,gBAAgB,EAAE,MAAM,eAAe,CAAC;;AAE5D,qBAGa,SAAS;
|
|
1
|
+
{"version":3,"file":"ng-container-directive.d.ts","sourceRoot":"","sources":["../../src/lib/ng-container-directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,gBAAgB,EAAE,MAAM,eAAe,CAAC;;AAE5D;;;;;;;;;;;;GAYG;AACH,qBAGa,SAAS;IAKD,gBAAgB,EAAE,gBAAgB;IAJrD;;;OAGG;gBACgB,gBAAgB,EAAE,gBAAgB;yCAL1C,SAAS;2CAAT,SAAS;CAMrB"}
|
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
import { Directive } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Directive that exposes a ViewContainerRef for dynamic component loading.
|
|
5
|
+
* This is used to create a reference point for dynamically loading components
|
|
6
|
+
* into the DOM without manually handling ViewContainerRef injection.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* <!-- In template -->
|
|
10
|
+
* <div mjContainer></div>
|
|
11
|
+
*
|
|
12
|
+
* <!-- In component -->
|
|
13
|
+
* @ViewChild(Container, { static: true }) container!: Container;
|
|
14
|
+
* // Now you can use this.container.viewContainerRef for dynamic component creation
|
|
15
|
+
*/
|
|
3
16
|
export class Container {
|
|
17
|
+
/**
|
|
18
|
+
* Constructor that exposes the ViewContainerRef for the element
|
|
19
|
+
* @param viewContainerRef The ViewContainerRef for the element this directive is applied to
|
|
20
|
+
*/
|
|
4
21
|
constructor(viewContainerRef) {
|
|
5
22
|
this.viewContainerRef = viewContainerRef;
|
|
6
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-container-directive.js","sourceRoot":"","sources":["../../src/lib/ng-container-directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,MAAM,eAAe,CAAC;;
|
|
1
|
+
{"version":3,"file":"ng-container-directive.js","sourceRoot":"","sources":["../../src/lib/ng-container-directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,MAAM,eAAe,CAAC;;AAE5D;;;;;;;;;;;;GAYG;AAIH,MAAM,OAAO,SAAS;IACpB;;;OAGG;IACH,YAAmB,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAAI,CAAC;;kEAL/C,SAAS;4DAAT,SAAS;iFAAT,SAAS;cAHrB,SAAS;eAAC;gBACT,QAAQ,EAAE,eAAe;aAC1B"}
|
|
@@ -2,6 +2,26 @@ import * as i0 from "@angular/core";
|
|
|
2
2
|
import * as i1 from "./ng-fill-container-directive";
|
|
3
3
|
import * as i2 from "./ng-container-directive";
|
|
4
4
|
import * as i3 from "@angular/common";
|
|
5
|
+
/**
|
|
6
|
+
* Angular module for MemberJunction container directives.
|
|
7
|
+
* Provides directives for container management in MemberJunction applications.
|
|
8
|
+
*
|
|
9
|
+
* Includes:
|
|
10
|
+
* - `mjContainer` directive for view container management
|
|
11
|
+
* - `mjFillContainer` directive for responsive filling of parent containers
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { ContainerDirectivesModule } from '@memberjunction/ng-container-directives';
|
|
16
|
+
*
|
|
17
|
+
* @NgModule({
|
|
18
|
+
* imports: [
|
|
19
|
+
* ContainerDirectivesModule
|
|
20
|
+
* ]
|
|
21
|
+
* })
|
|
22
|
+
* export class YourModule { }
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
5
25
|
export declare class ContainerDirectivesModule {
|
|
6
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<ContainerDirectivesModule, never>;
|
|
7
27
|
static ɵmod: i0.ɵɵNgModuleDeclaration<ContainerDirectivesModule, [typeof i1.FillContainer, typeof i2.Container], [typeof i3.CommonModule], [typeof i1.FillContainer, typeof i2.Container]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-container-directives.module.d.ts","sourceRoot":"","sources":["../../src/lib/ng-container-directives.module.ts"],"names":[],"mappings":";;;;AAKA,qBAaa,yBAAyB;yCAAzB,yBAAyB;0CAAzB,yBAAyB;0CAAzB,yBAAyB;CAAI"}
|
|
1
|
+
{"version":3,"file":"ng-container-directives.module.d.ts","sourceRoot":"","sources":["../../src/lib/ng-container-directives.module.ts"],"names":[],"mappings":";;;;AAKA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAaa,yBAAyB;yCAAzB,yBAAyB;0CAAzB,yBAAyB;0CAAzB,yBAAyB;CAAI"}
|
|
@@ -3,6 +3,26 @@ import { CommonModule } from '@angular/common';
|
|
|
3
3
|
import { FillContainer } from './ng-fill-container-directive';
|
|
4
4
|
import { Container } from './ng-container-directive';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* Angular module for MemberJunction container directives.
|
|
8
|
+
* Provides directives for container management in MemberJunction applications.
|
|
9
|
+
*
|
|
10
|
+
* Includes:
|
|
11
|
+
* - `mjContainer` directive for view container management
|
|
12
|
+
* - `mjFillContainer` directive for responsive filling of parent containers
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* import { ContainerDirectivesModule } from '@memberjunction/ng-container-directives';
|
|
17
|
+
*
|
|
18
|
+
* @NgModule({
|
|
19
|
+
* imports: [
|
|
20
|
+
* ContainerDirectivesModule
|
|
21
|
+
* ]
|
|
22
|
+
* })
|
|
23
|
+
* export class YourModule { }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
6
26
|
export class ContainerDirectivesModule {
|
|
7
27
|
}
|
|
8
28
|
ContainerDirectivesModule.ɵfac = function ContainerDirectivesModule_Factory(t) { return new (t || ContainerDirectivesModule)(); };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-container-directives.module.js","sourceRoot":"","sources":["../../src/lib/ng-container-directives.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;;
|
|
1
|
+
{"version":3,"file":"ng-container-directives.module.js","sourceRoot":"","sources":["../../src/lib/ng-container-directives.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;;AAErD;;;;;;;;;;;;;;;;;;;GAmBG;AAcH,MAAM,OAAO,yBAAyB;;kGAAzB,yBAAyB;2EAAzB,yBAAyB;+EAPlC,YAAY;iFAOH,yBAAyB;cAbrC,QAAQ;eAAC;gBACR,YAAY,EAAE;oBACZ,aAAa;oBACb,SAAS;iBACV;gBACD,OAAO,EAAE;oBACP,YAAY;iBACb;gBACD,OAAO,EAAE;oBACP,aAAa;oBACb,SAAS;iBACV;aACF;;wFACY,yBAAyB,mBAXlC,aAAa;QACb,SAAS,aAGT,YAAY,aAGZ,aAAa;QACb,SAAS"}
|
|
@@ -1,25 +1,85 @@
|
|
|
1
1
|
import { ElementRef, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Directive that automatically resizes an element to fill its parent container.
|
|
5
|
+
* This directive calculates and sets dimensions based on the parent container's size,
|
|
6
|
+
* accounting for the element's position within the parent and any specified margins.
|
|
7
|
+
*
|
|
8
|
+
* It listens for window resize events and custom MJ application events to update dimensions.
|
|
9
|
+
* The directive is context-aware and will automatically skip resizing in certain conditions.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* <!-- Basic usage (fills both width and height) -->
|
|
13
|
+
* <div mjFillContainer>Content</div>
|
|
14
|
+
*
|
|
15
|
+
* <!-- With custom settings -->
|
|
16
|
+
* <div mjFillContainer [fillWidth]="true" [fillHeight]="true" [rightMargin]="10" [bottomMargin]="20">
|
|
17
|
+
* Content with margins
|
|
18
|
+
* </div>
|
|
19
|
+
*/
|
|
3
20
|
export declare class FillContainer implements OnInit, OnDestroy {
|
|
4
21
|
private elementRef;
|
|
22
|
+
/** Whether to fill the parent's width. Default is true. */
|
|
5
23
|
fillWidth: boolean;
|
|
24
|
+
/** Whether to fill the parent's height. Default is true. */
|
|
6
25
|
fillHeight: boolean;
|
|
26
|
+
/** Right margin in pixels. Default is 0. */
|
|
7
27
|
rightMargin: number;
|
|
28
|
+
/** Bottom margin in pixels. Default is 0. */
|
|
8
29
|
bottomMargin: number;
|
|
30
|
+
/** Flag to globally disable resize functionality for all instances */
|
|
9
31
|
static DisableResize: boolean;
|
|
32
|
+
/** Flag to enable debug logging for resize operations */
|
|
10
33
|
static OutputDebugInfo: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Outputs a debug message if OutputDebugInfo is enabled
|
|
36
|
+
* @param message The message to output
|
|
37
|
+
*/
|
|
11
38
|
protected static OutputDebugMessage(message: string): void;
|
|
12
39
|
constructor(elementRef: ElementRef);
|
|
40
|
+
/** Debounce time for resize events during active resizing (milliseconds) */
|
|
13
41
|
private _resizeDebounceTime;
|
|
42
|
+
/** Debounce time for resize end events (milliseconds) */
|
|
14
43
|
private _resizeEndDebounceTime;
|
|
44
|
+
/** Subscription for resize end events */
|
|
15
45
|
private _resizeSubscription;
|
|
46
|
+
/** Subscription for immediate resize events */
|
|
16
47
|
private _resizeImmediateSubscription;
|
|
48
|
+
/**
|
|
49
|
+
* Initializes the directive, sets up resize event listeners and performs initial resize
|
|
50
|
+
*/
|
|
17
51
|
ngOnInit(): void;
|
|
52
|
+
/**
|
|
53
|
+
* Cleans up subscriptions when the directive is destroyed
|
|
54
|
+
*/
|
|
18
55
|
ngOnDestroy(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Finds the nearest block-level parent element
|
|
58
|
+
* @param element The element to find the parent for
|
|
59
|
+
* @returns The parent element or null if none found
|
|
60
|
+
*/
|
|
19
61
|
protected getParent(element: HTMLElement): HTMLElement | null;
|
|
62
|
+
/**
|
|
63
|
+
* Performs the actual resize calculation and applies dimensions to the element
|
|
64
|
+
*/
|
|
20
65
|
protected resizeElement(): void;
|
|
66
|
+
/**
|
|
67
|
+
* Determines if resizing should be skipped for this element
|
|
68
|
+
* @param el The element to check
|
|
69
|
+
* @returns True if resizing should be skipped, false otherwise
|
|
70
|
+
*/
|
|
21
71
|
protected shouldSkipResize(el: HTMLElement): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Checks if element is below a hidden tab
|
|
74
|
+
* @param element The element to check
|
|
75
|
+
* @returns True if element is below a hidden tab, false otherwise
|
|
76
|
+
*/
|
|
22
77
|
protected elementBelowHiddenTab(element: HTMLElement): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Checks if element is within a grid
|
|
80
|
+
* @param element The element to check
|
|
81
|
+
* @returns True if element is within a grid, false otherwise
|
|
82
|
+
*/
|
|
23
83
|
protected elementWithinGrid(element: HTMLElement): boolean;
|
|
24
84
|
static ɵfac: i0.ɵɵFactoryDeclaration<FillContainer, never>;
|
|
25
85
|
static ɵdir: i0.ɵɵDirectiveDeclaration<FillContainer, "[mjFillContainer]", never, { "fillWidth": { "alias": "fillWidth"; "required": false; }; "fillHeight": { "alias": "fillHeight"; "required": false; }; "rightMargin": { "alias": "rightMargin"; "required": false; }; "bottomMargin": { "alias": "bottomMargin"; "required": false; }; }, {}, never, never, false, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-fill-container-directive.d.ts","sourceRoot":"","sources":["../../src/lib/ng-fill-container-directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAS,SAAS,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;;AAMhF,qBAGa,aAAc,YAAW,MAAM,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"ng-fill-container-directive.d.ts","sourceRoot":"","sources":["../../src/lib/ng-fill-container-directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAS,SAAS,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;;AAMhF;;;;;;;;;;;;;;;;GAgBG;AACH,qBAGa,aAAc,YAAW,MAAM,EAAE,SAAS;IA6BzC,OAAO,CAAC,UAAU;IA5B9B,2DAA2D;IAClD,SAAS,EAAE,OAAO,CAAQ;IAEnC,4DAA4D;IACnD,UAAU,EAAE,OAAO,CAAQ;IAEpC,4CAA4C;IACnC,WAAW,EAAE,MAAM,CAAK;IAEjC,6CAA6C;IACpC,YAAY,EAAE,MAAM,CAAK;IAElC,sEAAsE;IACtE,OAAc,aAAa,EAAE,OAAO,CAAS;IAE7C,yDAAyD;IACzD,OAAc,eAAe,EAAE,OAAO,CAAS;IAE/C;;;OAGG;IACH,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;gBAMtC,UAAU,EAAE,UAAU;IAG1C,4EAA4E;IAC5E,OAAO,CAAC,mBAAmB,CAAe;IAE1C,yDAAyD;IACzD,OAAO,CAAC,sBAAsB,CAAe;IAE7C,yCAAyC;IACzC,OAAO,CAAC,mBAAmB,CAA6B;IAExD,+CAA+C;IAC/C,OAAO,CAAC,4BAA4B,CAA6B;IAEjE;;OAEG;IACH,QAAQ,IAAI,IAAI;IAuDhB;;OAEG;IACH,WAAW,IAAI,IAAI;IAKnB;;;;OAIG;IACH,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI;IAW7D;;OAEG;IACH,SAAS,CAAC,aAAa,IAAI,IAAI;IAqD/B;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO;IAWpD;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAkB9D;;;;OAIG;IACH,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;yCAlO/C,aAAa;2CAAb,aAAa;CA+OzB"}
|
|
@@ -4,7 +4,28 @@ import { fromEvent } from 'rxjs';
|
|
|
4
4
|
import { debounceTime } from 'rxjs/operators';
|
|
5
5
|
import { MJEventType, MJGlobal } from '@memberjunction/global';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* Directive that automatically resizes an element to fill its parent container.
|
|
9
|
+
* This directive calculates and sets dimensions based on the parent container's size,
|
|
10
|
+
* accounting for the element's position within the parent and any specified margins.
|
|
11
|
+
*
|
|
12
|
+
* It listens for window resize events and custom MJ application events to update dimensions.
|
|
13
|
+
* The directive is context-aware and will automatically skip resizing in certain conditions.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* <!-- Basic usage (fills both width and height) -->
|
|
17
|
+
* <div mjFillContainer>Content</div>
|
|
18
|
+
*
|
|
19
|
+
* <!-- With custom settings -->
|
|
20
|
+
* <div mjFillContainer [fillWidth]="true" [fillHeight]="true" [rightMargin]="10" [bottomMargin]="20">
|
|
21
|
+
* Content with margins
|
|
22
|
+
* </div>
|
|
23
|
+
*/
|
|
7
24
|
export class FillContainer {
|
|
25
|
+
/**
|
|
26
|
+
* Outputs a debug message if OutputDebugInfo is enabled
|
|
27
|
+
* @param message The message to output
|
|
28
|
+
*/
|
|
8
29
|
static OutputDebugMessage(message) {
|
|
9
30
|
if (FillContainer.OutputDebugInfo) {
|
|
10
31
|
console.log(message);
|
|
@@ -12,15 +33,26 @@ export class FillContainer {
|
|
|
12
33
|
}
|
|
13
34
|
constructor(elementRef) {
|
|
14
35
|
this.elementRef = elementRef;
|
|
36
|
+
/** Whether to fill the parent's width. Default is true. */
|
|
15
37
|
this.fillWidth = true;
|
|
38
|
+
/** Whether to fill the parent's height. Default is true. */
|
|
16
39
|
this.fillHeight = true;
|
|
40
|
+
/** Right margin in pixels. Default is 0. */
|
|
17
41
|
this.rightMargin = 0;
|
|
42
|
+
/** Bottom margin in pixels. Default is 0. */
|
|
18
43
|
this.bottomMargin = 0;
|
|
44
|
+
/** Debounce time for resize events during active resizing (milliseconds) */
|
|
19
45
|
this._resizeDebounceTime = 100;
|
|
46
|
+
/** Debounce time for resize end events (milliseconds) */
|
|
20
47
|
this._resizeEndDebounceTime = 500;
|
|
48
|
+
/** Subscription for resize end events */
|
|
21
49
|
this._resizeSubscription = null;
|
|
50
|
+
/** Subscription for immediate resize events */
|
|
22
51
|
this._resizeImmediateSubscription = null;
|
|
23
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Initializes the directive, sets up resize event listeners and performs initial resize
|
|
55
|
+
*/
|
|
24
56
|
ngOnInit() {
|
|
25
57
|
const el = this.elementRef.nativeElement;
|
|
26
58
|
if (el && el.style) {
|
|
@@ -70,11 +102,19 @@ export class FillContainer {
|
|
|
70
102
|
});
|
|
71
103
|
}
|
|
72
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* Cleans up subscriptions when the directive is destroyed
|
|
107
|
+
*/
|
|
73
108
|
ngOnDestroy() {
|
|
74
109
|
var _a, _b;
|
|
75
110
|
(_a = this._resizeImmediateSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
76
111
|
(_b = this._resizeSubscription) === null || _b === void 0 ? void 0 : _b.unsubscribe();
|
|
77
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* Finds the nearest block-level parent element
|
|
115
|
+
* @param element The element to find the parent for
|
|
116
|
+
* @returns The parent element or null if none found
|
|
117
|
+
*/
|
|
78
118
|
getParent(element) {
|
|
79
119
|
let curElement = element;
|
|
80
120
|
while (curElement && curElement.nodeName !== 'HTML') {
|
|
@@ -85,6 +125,9 @@ export class FillContainer {
|
|
|
85
125
|
}
|
|
86
126
|
return curElement;
|
|
87
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* Performs the actual resize calculation and applies dimensions to the element
|
|
130
|
+
*/
|
|
88
131
|
resizeElement() {
|
|
89
132
|
if (FillContainer.DisableResize) {
|
|
90
133
|
// global disable flag
|
|
@@ -130,7 +173,11 @@ export class FillContainer {
|
|
|
130
173
|
LogError(err);
|
|
131
174
|
}
|
|
132
175
|
}
|
|
133
|
-
|
|
176
|
+
/**
|
|
177
|
+
* Determines if resizing should be skipped for this element
|
|
178
|
+
* @param el The element to check
|
|
179
|
+
* @returns True if resizing should be skipped, false otherwise
|
|
180
|
+
*/
|
|
134
181
|
shouldSkipResize(el) {
|
|
135
182
|
let cur = el;
|
|
136
183
|
while (cur) {
|
|
@@ -142,6 +189,11 @@ export class FillContainer {
|
|
|
142
189
|
return false;
|
|
143
190
|
}
|
|
144
191
|
;
|
|
192
|
+
/**
|
|
193
|
+
* Checks if element is below a hidden tab
|
|
194
|
+
* @param element The element to check
|
|
195
|
+
* @returns True if element is below a hidden tab, false otherwise
|
|
196
|
+
*/
|
|
145
197
|
elementBelowHiddenTab(element) {
|
|
146
198
|
// check if the element is below a hidden tab, a hidden tab will have a class of .k-tabstrip-content and also have .k-active applied
|
|
147
199
|
// we can go all the way up the tree to look for this
|
|
@@ -159,6 +211,11 @@ export class FillContainer {
|
|
|
159
211
|
// not below a tab at all
|
|
160
212
|
return false;
|
|
161
213
|
}
|
|
214
|
+
/**
|
|
215
|
+
* Checks if element is within a grid
|
|
216
|
+
* @param element The element to check
|
|
217
|
+
* @returns True if element is within a grid, false otherwise
|
|
218
|
+
*/
|
|
162
219
|
elementWithinGrid(element) {
|
|
163
220
|
// check if the element is within a kendo grid
|
|
164
221
|
let parent = element.parentElement;
|
|
@@ -173,7 +230,9 @@ export class FillContainer {
|
|
|
173
230
|
return false;
|
|
174
231
|
}
|
|
175
232
|
}
|
|
233
|
+
/** Flag to globally disable resize functionality for all instances */
|
|
176
234
|
FillContainer.DisableResize = false;
|
|
235
|
+
/** Flag to enable debug logging for resize operations */
|
|
177
236
|
FillContainer.OutputDebugInfo = false;
|
|
178
237
|
FillContainer.ɵfac = function FillContainer_Factory(t) { return new (t || FillContainer)(i0.ɵɵdirectiveInject(i0.ElementRef)); };
|
|
179
238
|
FillContainer.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: FillContainer, selectors: [["", "mjFillContainer", ""]], inputs: { fillWidth: "fillWidth", fillHeight: "fillHeight", rightMargin: "rightMargin", bottomMargin: "bottomMargin" } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-fill-container-directive.js","sourceRoot":"","sources":["../../src/lib/ng-fill-container-directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAc,KAAK,EAAqB,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAgB,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;;
|
|
1
|
+
{"version":3,"file":"ng-fill-container-directive.js","sourceRoot":"","sources":["../../src/lib/ng-fill-container-directive.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/ng-container-directives",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.37.1",
|
|
4
4
|
"description": "MemberJunction: Angular Container Directives - Fill Container for Auto-Resizing, and plain container just for element identification/binding",
|
|
5
5
|
"main": "./dist/public-api.js",
|
|
6
6
|
"typings": "./dist/public-api.d.ts",
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"@angular/router": "18.0.2"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@memberjunction/core": "2.
|
|
33
|
-
"@memberjunction/global": "2.
|
|
32
|
+
"@memberjunction/core": "2.37.1",
|
|
33
|
+
"@memberjunction/global": "2.37.1",
|
|
34
34
|
"tslib": "^2.3.0"
|
|
35
35
|
},
|
|
36
36
|
"sideEffects": false
|