{"version":3,"file":"index.mjs","sources":["../../../../projects/components/widgets/prefab/src/prefab.props.ts","../../../../projects/components/widgets/prefab/src/prefab.directive.ts","../../../../projects/components/widgets/prefab/src/prefab-container/prefab-container.props.ts","../../../../projects/components/widgets/prefab/src/prefab-container/prefab-container.directive.ts","../../../../projects/components/widgets/prefab/src/index.ts"],"sourcesContent":["import { PROP_BOOLEAN, PROP_STRING } from '@wm/components/base'; \n\nexport const prefabProps = new Map(\n    [\n        ['animation', PROP_STRING],\n        ['class', {value: '', ...PROP_STRING}],\n        ['name', PROP_STRING],\n        ['show', {value: true, ...PROP_BOOLEAN}]\n    ]\n);\n","import {\n    Attribute,\n    ChangeDetectorRef,\n    Directive,\n    ElementRef,\n    Inject,\n    Injector,\n    OnDestroy,\n    Optional\n} from '@angular/core';\n\nimport {setCSS, noop} from '@wm/core';\n\nimport { PROP_TYPE, register, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { prefabProps } from './prefab.props';\nimport {startsWith} from \"lodash-es\";\n\nconst DEFAULT_CLS = 'app-prefab';\n\nconst registeredPropsSet = new Set<string>();\n\n@Directive({\n  standalone: true,\n    selector: 'section[wmPrefab]',\n    providers: [\n        provideAsWidgetRef(PrefabDirective)\n    ]\n})\nexport class PrefabDirective extends StylableComponent implements OnDestroy {\n\n    widgetType: string;\n    prefabName: string;\n    name: string;\n    propsReady: Function;\n\n    constructor(inj: Injector, elRef: ElementRef, cdr: ChangeDetectorRef, @Attribute('prefabname') prefabName, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n        const widgetType = `wm-prefab-${prefabName}`;\n        const WIDGET_CONFIG = {widgetType, hostClass: DEFAULT_CLS};\n        let resolveFn: Function = noop;\n\n        super(inj, WIDGET_CONFIG, explicitContext, new Promise(res => resolveFn = res));\n        this.propsReady = resolveFn;\n        this.prefabName = prefabName;\n        this.widgetType = widgetType;\n        this.name = elRef.nativeElement.getAttribute('name');\n\n        styler(this.nativeElement, this);\n\n        // Call on property change on name to set name attribute on element.\n        this.registerReadyStateListener(() => {\n            super.onPropertyChange('name', this.name);\n        });\n    }\n\n    onStyleChange(key: string, nv: any, ov: any) {\n        if (key === 'height') {\n            setCSS(this.nativeElement, 'overflow', 'auto');\n        }\n    }\n\n    public setProps(config) {\n        if (!config || !config.properties) {\n            return;\n        }\n\n        if (!registeredPropsSet.has(this.widgetType)) {\n            register(this.widgetType, this.prepareProps(config.properties));\n        }\n\n        this.propsReady();\n    }\n\n    protected handleEvent() {\n        // do not call the super;\n        // prevent events from getting registered\n    }\n\n    private prepareProps(props = {}) {\n        const propsMap = new Map(prefabProps);\n        Object.entries(props).forEach(([k, v]: [string, any]) => {\n            let type = PROP_TYPE.STRING;\n\n            if (v.type === 'boolean') {\n                type = PROP_TYPE.BOOLEAN;\n            } else if (v.type === 'number') {\n                type = PROP_TYPE.NUMBER;\n            } else if (v.type !== 'string') {\n                type = v.type;\n            }\n\n            // Do not set the 'bind:*' values\n            propsMap.set(k, {type, value: startsWith(v.value, 'bind:') ? undefined : v.value});\n        });\n\n        registeredPropsSet.add(this.widgetType);\n\n        return propsMap;\n    }\n\n    ngOnDestroy() {\n        this.invokeEventCallback('destroy', { widget: this });\n    }\n}\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n    register(\n        'wm-prefab-container',\n        new Map(\n            [\n                ['class', PROP_STRING],\n                ['name', PROP_STRING],\n                ['show', {value: true, ...PROP_BOOLEAN}],\n            ]\n        )\n    );\n};\n","import {Directive, Inject, Injector, OnDestroy, Optional} from '@angular/core';\n\nimport { IWidgetConfig, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport {Viewport, ViewportEvent} from '@wm/core';\nimport { registerProps } from './prefab-container.props';\nimport {assign} from \"lodash-es\";\n\nconst DEFAULT_CLS = 'app-prefab-container full-height';\nconst WIDGET_CONFIG: IWidgetConfig = {\n    widgetType: 'wm-prefab-container',\n    hostClass: DEFAULT_CLS\n};\n\n@Directive({\n  standalone: true,\n    selector: '[wmPrefabContainer]',\n    providers: [\n        provideAsWidgetRef(PrefabContainerDirective)\n    ]\n})\nexport class PrefabContainerDirective extends StylableComponent  implements OnDestroy {\n    static initializeProps = registerProps();\n\n    constructor(inj: Injector, private viewport: Viewport, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n        super(inj, WIDGET_CONFIG, explicitContext);\n        styler(this.nativeElement, this);\n\n        this.registerDestroyListener(this.viewport.subscribe(ViewportEvent.RESIZE, data => this.callback('resize', data)));\n        this.registerDestroyListener(this.viewport.subscribe(ViewportEvent.ORIENTATION_CHANGE, data => this.callback('orientationchange', data)));\n    }\n\n    private callback(eventName, locals?: object) {\n        locals = assign({widget: this}, locals);\n        this.invokeEventCallback(eventName, locals);\n    }\n\n    public ngOnAttach() {\n        this.callback('attach');\n    }\n\n    public ngOnDetach() {\n        this.callback('detach');\n    }\n\n    public ngOnDestroy() {\n        this.callback('destroy');\n        super.ngOnDestroy();\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["DEFAULT_CLS"],"mappings":"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"}