UNPKG

@paraboly/pwc-multi-filter

Version:

A wrapper over pwc-tabview and pwc-filter. Provides means of dynamically managing multiple filters via a single component.

59 lines (56 loc) 1.91 kB
import { r as registerInstance, c as createEvent, h, d as getElement } from './core-ba89e169.js'; const PwcDynamicForm = class { constructor(hostRef) { registerInstance(this, hostRef); this.formChanged = createEvent(this, "formChanged", 7); } handleFieldChanged(fieldChangedEventPayload) { const rootElement = this.rootElement; this.getFieldValues().then(v => { const formChangedEventPayload = { type: "change", fieldChangedEventPayload, formResetEvent: null, formValues: v, formElement: rootElement }; this.formChanged.emit(formChangedEventPayload); }); } handleFormReset(formResetEvent) { const rootElement = this.rootElement; this.getFieldValues().then(v => { const formChangedEventPayload = { type: "reset", fieldChangedEventPayload: null, formResetEvent, formValues: v, formElement: rootElement }; this.formChanged.emit(formChangedEventPayload); }); } async getFieldValues() { if (!this.contentRef) { return {}; } else { const fieldRefs = await this.contentRef.getFieldRefs(); const vals = {}; for (const field of fieldRefs) { const val = await field.getValue(); vals[field.config.name] = val; } return vals; } } componentDidRender() { this.contentRef = this.rootElement.querySelector("pwc-dynamic-form-content"); } render() { return (h("form", null, h("slot", null))); } get rootElement() { return getElement(this); } static get style() { return ""; } }; export { PwcDynamicForm as pwc_dynamic_form };