@memberjunction/ng-container-directives 2.36.0 → 2.37.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/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;IACD,gBAAgB,EAAE,gBAAgB;gBAAlC,gBAAgB,EAAE,gBAAgB;yCAD1C,SAAS;2CAAT,SAAS;CAGrB"}
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;;AAK5D,MAAM,OAAO,SAAS;IACpB,YAAmB,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAAI,CAAC;;kEAD/C,SAAS;4DAAT,SAAS;iFAAT,SAAS;cAHrB,SAAS;eAAC;gBACT,QAAQ,EAAE,eAAe;aAC1B"}
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;;AAerD,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
+ {"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;IAezC,OAAO,CAAC,UAAU;IAdrB,SAAS,EAAE,OAAO,CAAQ;IAC1B,UAAU,EAAE,OAAO,CAAQ;IAC3B,WAAW,EAAE,MAAM,CAAK;IACxB,YAAY,EAAE,MAAM,CAAK;IAGlC,OAAc,aAAa,EAAE,OAAO,CAAS;IAC7C,OAAc,eAAe,EAAE,OAAO,CAAS;IAC/C,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;gBAMtC,UAAU,EAAE,UAAU;IAG1C,OAAO,CAAC,mBAAmB,CAAe;IAC1C,OAAO,CAAC,sBAAsB,CAAe;IAE7C,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,4BAA4B,CAA6B;IAEjE,QAAQ,IAAI,IAAI;IAwDhB,WAAW,IAAI,IAAI;IAKnB,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI;IAY7D,SAAS,CAAC,aAAa,IAAI,IAAI;IAsD/B,SAAS,CAAC,gBAAgB,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO;IAWpD,SAAS,CAAC,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAiB9D,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;yCAnL/C,aAAa;2CAAb,aAAa;CAiMzB"}
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
- // Function to check if element or its parents have the 'mjSkipResize' attribute or if a parent is within a grid
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":"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"}
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.36.0",
3
+ "version": "2.37.0",
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.36.0",
33
- "@memberjunction/global": "2.36.0",
32
+ "@memberjunction/core": "2.37.0",
33
+ "@memberjunction/global": "2.37.0",
34
34
  "tslib": "^2.3.0"
35
35
  },
36
36
  "sideEffects": false