@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
JavaScript
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 };