JSPM

@memberjunction/ng-container-directives

2.35.1
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 1201
    • Score
      100M100P100Q120006F
    • License ISC

    MemberJunction: Angular Container Directives - Fill Container for Auto-Resizing, and plain container just for element identification/binding

    Package Exports

    • @memberjunction/ng-container-directives
    • @memberjunction/ng-container-directives/dist/public-api.js

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@memberjunction/ng-container-directives) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    @memberjunction/ng-container-directives

    Angular directives for container management in MemberJunction applications, providing flexible and responsive layout utilities.

    Features

    • mjContainer directive for view container management
    • mjFillContainer directive for responsive filling of parent containers
    • Automatic resizing on window resize events
    • Manual resize event handling
    • Customizable margin and dimension settings

    Installation

    npm install @memberjunction/ng-container-directives

    Usage

    Import the module in your application:

    import { ContainerDirectivesModule } from '@memberjunction/ng-container-directives';
    
    @NgModule({
      imports: [
        // ...
        ContainerDirectivesModule
      ]
    })
    export class YourModule { }

    mjContainer

    Use the mjContainer directive to reference a ViewContainerRef for dynamic component loading:

    <div mjContainer></div>

    In your component:

    import { Container } from '@memberjunction/ng-container-directives';
    
    @Component({
      // ...
    })
    export class YourComponent {
      @ViewChild(Container, { static: true }) container!: Container;
      
      // Now you can use this.container.viewContainerRef for dynamic component creation
    }

    mjFillContainer

    Use the mjFillContainer directive to make an element fill its parent container:

    <!-- Basic usage (fills both width and height) -->
    <div mjFillContainer>Content</div>
    
    <!-- With custom settings -->
    <div 
      mjFillContainer
      [fillWidth]="true"
      [fillHeight]="true"
      [rightMargin]="10"
      [bottomMargin]="20">
      Content with margins
    </div>
    
    <!-- Fill only width -->
    <div 
      mjFillContainer
      [fillWidth]="true"
      [fillHeight]="false">
      Content that fills width only
    </div>

    Skip Resize

    If you need to prevent the resize behavior for certain elements:

    <!-- This element will not be resized by the directive -->
    <div mjSkipResize>Content</div>

    Manual Resize Triggering

    You can trigger manual resizing using the MemberJunction global events:

    import { MJGlobal, MJEventType } from '@memberjunction/global';
    
    // Trigger resize
    MJGlobal.Instance.RaiseEvent({
      event: MJEventType.ManualResizeRequest,
      args: null
    });

    Configuration

    The mjFillContainer directive has several configuration options:

    Property Type Default Description
    fillWidth boolean true Whether to fill the parent's width
    fillHeight boolean true Whether to fill the parent's height
    rightMargin number 0 Right margin in pixels
    bottomMargin number 0 Bottom margin in pixels

    Advanced Controls

    For debugging or special cases, there are static properties on the FillContainer class:

    import { FillContainer } from '@memberjunction/ng-container-directives';
    
    // Disable resize globally (for all instances)
    FillContainer.DisableResize = true;
    
    // Enable resize debugging
    FillContainer.OutputDebugInfo = true;