{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/composite/src/composite.props.ts","../../../../../projects/components/widgets/input/composite/src/composite.directive.ts","../../../../../projects/components/widgets/input/composite/src/index.ts"],"sourcesContent":["import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n    register(\n        'wm-form-group',\n        new Map(\n            [\n                ['captionposition', PROP_STRING],\n                ['name', PROP_STRING],\n                ['required', PROP_BOOLEAN],\n                ['show', {value: true, ...PROP_BOOLEAN}]\n            ]\n        )\n    );\n};\n","import {AfterViewInit, ContentChildren, Directive, Inject, Injector, OnDestroy, Optional} from '@angular/core';\n\nimport {addForIdAttributes, switchClass} from '@wm/core';\n\nimport { APPLY_STYLES_TYPE, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler, WidgetRef } from '@wm/components/base';\n\nimport { registerProps } from './composite.props';\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'form-group app-composite-widget clearfix';\nconst WIDGET_CONFIG: IWidgetConfig = {\n    widgetType: 'wm-form-group',\n    hostClass: DEFAULT_CLS\n};\n\nconst CAPTION_POSITION = {\n    left: 'caption-left',\n    right: 'caption-right',\n    top: 'caption-top',\n    floating: 'caption-floating'\n};\n\n@Directive({\n  standalone: true,\n    selector: 'div[wmComposite]',\n    providers: [\n        provideAsWidgetRef(CompositeDirective)\n    ]\n})\nexport class CompositeDirective extends StylableComponent implements AfterViewInit, OnDestroy {\n    static initializeProps = registerProps();\n\n    // this is the reference to the component refs inside the form-group\n    @ContentChildren(WidgetRef, {descendants: true}) componentRefs;\n\n    public required: boolean;\n\n    constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n        super(inj, WIDGET_CONFIG, explicitContext);\n        styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n    }\n\n    /**\n     * this is onPropertyChange handler for the form-group component\n     * @param key\n     * @param nv\n     * @param ov\n     */\n    onPropertyChange(key, nv, ov) {\n        if (key === 'captionposition') {\n            switchClass(this.nativeElement, CAPTION_POSITION[nv], CAPTION_POSITION[ov]);\n        } else if (key === 'required') {\n            this.required = nv;\n            this.assignRequiredToSubComponents();\n        } else {\n            super.onPropertyChange(key, nv, ov);\n        }\n    }\n\n    /**\n     * this method assigns the required on the component/directive based on the required attribute of the form-group\n     */\n    protected assignRequiredToSubComponents() {\n        if (this.required && this.componentRefs) {\n            setTimeout(() => {\n                if (this.componentRefs) {\n                    this.componentRefs.forEach(componentRef => componentRef.widget.required = true);\n                }\n            }, 50);\n        }\n    }\n\n    ngAfterViewInit() {\n        super.ngAfterViewInit();\n        addForIdAttributes(this.nativeElement);\n\n        this.assignRequiredToSubComponents();\n    }\n\n    ngOnDestroy() {\n        // MEMORY LEAK FIX: Clear ContentChildren QueryList reference\n        if (this.componentRefs) {\n            this.componentRefs = null;\n        }\n\n        super.ngOnDestroy();\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}