{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/advanced/custom/src/custom-widget-container/custom-widget.props.ts","../../../../../projects/components/widgets/advanced/custom/src/custom-widget-container/custom-widget-container.directive.ts","../../../../../projects/components/widgets/advanced/custom/src/custom-widget-prop.ts","../../../../../projects/components/widgets/advanced/custom/src/custom-widget.directive.ts","../../../../../projects/components/widgets/advanced/custom/src/index.ts"],"sourcesContent":["import {PROP_BOOLEAN, PROP_STRING, register} from '@wm/components/base';\n\nexport const customWidgetProps =\n    new Map(\n        [\n            ['class', PROP_STRING],\n            ['hint', PROP_STRING],\n            ['name', PROP_STRING],\n            ['widgetname', PROP_STRING],\n            ['show', { value: true, ...PROP_BOOLEAN }]\n        ]\n    )\n\nexport const registerProps = () => {\n    register(\n        'wm-custom-widget',\n        customWidgetProps\n    );\n};\n","import {Attribute, Directive, ElementRef, Inject, Injector, OnInit, Optional} from '@angular/core';\n\nimport { addClass, noop } from '@wm/core';\nimport {PROP_TYPE, provideAs, provideAsWidgetRef, register, StylableComponent, styler} from '@wm/components/base';\n\nimport { customWidgetProps } from './custom-widget.props';\nimport { registerProps } from \"../custom-widget-container/custom-widget.props\";\nimport {capitalize, cloneDeep} from 'lodash-es';\nimport {NG_VALIDATORS, NG_VALUE_ACCESSOR} from \"@angular/forms\";\nimport {DatasetAwareFormComponent} from \"@wm/components/input/dataset-aware-form\";\nimport {Subject} from \"rxjs\";\n\nconst registeredPropsSet = new Set<string>();\n\nlet customWidgetPropsMap: { [key: string]: any } = {};\n\nconst DEFAULT_CLS = 'app-html-container';\n\ndeclare const _;\n\n@Directive({\n  standalone: true,\n    selector: '[wmWidgetContainer]',\n    providers: [\n        provideAs(CustomWidgetContainerDirective, NG_VALUE_ACCESSOR, true),\n        provideAs(CustomWidgetContainerDirective, NG_VALIDATORS, true),\n        provideAsWidgetRef(CustomWidgetContainerDirective)\n    ],\n    exportAs: 'wmWidgetContainer'\n})\nexport class CustomWidgetContainerDirective extends DatasetAwareFormComponent implements OnInit {\n    static initializeProps = registerProps();\n\n    widgetType: string;\n    name: string;\n    propsReady: Function;\n    widgetName: string;\n    config: any;\n    private props: any = {};\n    private baseWidgetName: string;\n    baseWidget: any = {};\n    asAttr: boolean;\n    configSubject: Subject<any>;\n    onErroSubject: Subject<any>;\n    _isCustom: boolean = true;\n\n    constructor(\n        inj: Injector, elRef: ElementRef,\n        @Attribute('widgetname') widgetname: string,\n        @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n    ) {\n        const widgetType = `wm-custom-${widgetname}`;\n        const WIDGET_CONFIG = { widgetType, hostClass: DEFAULT_CLS };\n        let resolveFn: Function = noop;\n\n        super(inj, WIDGET_CONFIG, explicitContext, undefined, new Promise(res => resolveFn = res));\n        this.propsReady = resolveFn;\n        this.configSubject = new Subject();\n        this.onErroSubject = new Subject();\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        this.registerPropertyChangeListener(((key: string, nv: any, ov?: any) => {\n            if (!key.startsWith('prop-')) return;\n            const propName = key.slice(5)\n            if (this.props.hasOwnProperty(propName) && this.props[propName] !== nv) {\n                this.props[propName] = nv;\n            }\n        }))\n    }\n\n    get datavalue() {\n        if(this.nativeElement.children.length) {\n            let value = this.nativeElement.children[0].children[0]['widget'].viewParent.datavalue;\n            this.updateDataValue(value);\n            return value;\n        }\n    }\n\n    set datavalue(value) {\n        if(this.nativeElement.children.length)\n            this.nativeElement.children[0].children[0]['widget'].viewParent.datavalue = value;\n    }\n\n    setBaseWidgetName(baseWidgetType: string) {\n        let splitArr = baseWidgetType.split('-'), modifiedArr = [];\n        modifiedArr = splitArr.map((item: any) => {\n            item = item !== 'wm' ? capitalize(item) : item;\n            return item;\n        });\n        this.baseWidgetName = modifiedArr.join('');\n    }\n\n    public setProps(config, resolveFn: Function) {\n        this.config = config;\n        this.baseWidgetName = this.config.projectPropsOn || this.config.widgetType.split('wm-')[1];\n        this.configSubject.next(null);\n        if(config.customClasses){\n            addClass(this.nativeElement, config.customClasses);\n        }\n        this.asAttr = this.nativeElement.children[0].children[0].hasAttribute('as');\n\n        this.baseWidget = (this.nativeElement.children[0].children[0].querySelector(`[name=${this.baseWidgetName}]`) as any)?.widget;\n        // if(this.asAttr)\n        //     this.setBaseWidgetName(config.widgetType);\n        if (!config || !config.properties) {\n            return;\n        }\n        if (!registeredPropsSet.has(this.widgetType)) {\n            register(this.widgetType, this.prepareProps(config.properties));\n        }else{\n            this.props = Object.assign(this.props, cloneDeep(customWidgetPropsMap[this.widgetType]))\n        }\n\n        this.propsReady(resolveFn);\n    }\n\n    private prepareProps(props = {}) {\n        const propsMap = new Map(customWidgetProps);\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(`prop-${k}`, { type, value: _.startsWith(v.value, 'bind:') ? undefined : v.value });\n            this.props[k] = v.value;\n        });\n\n        registeredPropsSet.add(this.widgetType);\n        customWidgetPropsMap[this.widgetType] = this.props\n\n        return propsMap;\n    }\n\n    updateDataValue(value) {\n        if(this.formControl && this.formControl.control && value !== this.formControl.control.value) {\n            this.formControl.control.setValue(value);\n            if (this.formControl.control.invalid) {\n                this.onErroSubject.next(null);\n            }\n        }\n    }\n\n    updateData(key: string, value: any) {\n        let modifiedKey = key.replace('base-', '');\n        if(this.asAttr) {\n            this[this.baseWidgetName][modifiedKey] = value;\n            this.nativeElement.children[0].children[0]['widget'].viewParent[this.baseWidgetName][modifiedKey] = value;\n            this[this.baseWidgetName].initDatasetItems();\n        } else {\n            this[modifiedKey] = value;\n            this.nativeElement.children[0].children[0]['widget'].viewParent[modifiedKey] = value;\n        }\n        if(this.formControl && modifiedKey === 'datavalue'){\n            this.updateDataValue(value);\n        }\n    }\n}\n","import {PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n    register(\n        'wm-custom-widget-container',\n        new Map(\n            [\n                ['name', PROP_STRING],\n                ['class', PROP_STRING]\n            ]\n        )\n    );\n};\n","import { AfterContentInit, Directive, ElementRef, Injector, OnDestroy, Optional } from '@angular/core';\n\nimport {Viewport, ViewportEvent} from '@wm/core';\nimport { registerProps } from './custom-widget-prop';\nimport { StylableComponent, provideAsWidgetRef, getWidgetPropsByType } from '@wm/components/base';\n\nconst DEFAULT_CLS = 'app-custom-widget-container clearfix';\nconst WIDGET_CONFIG = {widgetType: 'wm-custom-widget-container', hostClass: DEFAULT_CLS};\ndeclare const _;\n\n@Directive({\n  standalone: true,\n    selector: '[wmCustomWidget]',\n    providers: [\n        provideAsWidgetRef(CustomWidgetDirective)\n    ]\n})\nexport class CustomWidgetDirective extends StylableComponent implements OnDestroy, AfterContentInit {\n    static initializeProps = registerProps();\n\n    constructor(inj: Injector, private viewport: Viewport) {\n        super(inj, WIDGET_CONFIG);\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    ngAfterContentInit() {\n        let customWidget        = this.nativeElement.closest('[customwidgetcontainer]') || this.nativeElement.closest('[wmwidgetcontainer]'),\n            inheritedProps      = {},\n            customWidgetProps   = Array.from(getWidgetPropsByType(\"wm-custom-widget-container\").keys());\n        for(let i = 0; i < customWidget.attributes.length; i++) {\n            let attr = customWidget.attributes.item(i);\n            if(attr.value && attr.value !== '' && !customWidgetProps.includes(attr.name))\n                inheritedProps[attr.name] = attr.value;\n        }\n        this.processChildren(this.nativeElement.children, inheritedProps);\n    }\n\n    processChildren(children: any, inheritedProps: { [key: string]: string }) {\n        let baseWidgetName = this.$element.attr('base');\n        Array.from(children).forEach((child: any) => {\n            if(child.getAttribute('name') !== baseWidgetName)\n                this.processChildren(child.children, inheritedProps);\n            else {\n                for (const [key, value] of Object.entries(inheritedProps)) {\n                    if(key.includes(\".event\") || key.includes('.bind'))\n                        this.processAttr(key, value, {widget: child.widget, nativeElement: child});\n                    else\n                        child.widget[key] = value;\n                }\n            }\n        });\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","DEFAULT_CLS"],"mappings":"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"}