UNPKG

@adapty/capacitor

Version:
55 lines 2.48 kB
import { SimpleCoder } from './coder'; import { AdaptyUiOnboardingStateParamsCoder } from './adapty-ui-onboarding-state-params'; export class AdaptyUiOnboardingStateUpdatedActionCoder extends SimpleCoder { constructor() { super(...arguments); this.paramCoder = new AdaptyUiOnboardingStateParamsCoder(); this.properties = { elementId: { key: 'element_id', required: true, type: 'string', }, elementType: { key: 'element_type', required: true, type: 'string', }, }; } decode(data) { const base = super.decode(data); const { elementType } = base; switch (elementType) { case 'select': return Object.assign(Object.assign({}, base), { elementType: 'select', value: this.paramCoder.decode(data.value) }); case 'multi_select': return Object.assign(Object.assign({}, base), { elementType: 'multi_select', value: Array.isArray(data.value) ? data.value.map(v => this.paramCoder.decode(v)) : [] }); case 'input': return Object.assign(Object.assign({}, base), { value: data.value }); case 'date_picker': return Object.assign(Object.assign({}, base), { value: data.value }); default: throw new Error(`Unknown element_type: ${elementType}`); } } encode(data) { const base = super.encode(data); const { elementType } = data; switch (elementType) { case 'select': return Object.assign(Object.assign({}, base), { element_type: 'select', value: this.paramCoder.encode(data.value) }); case 'multi_select': return Object.assign(Object.assign({}, base), { element_type: 'multi_select', value: data.value.map(v => this.paramCoder.encode(v)) }); case 'input': return Object.assign(Object.assign({}, base), { element_type: 'input', value: data.value }); case 'date_picker': return Object.assign(Object.assign({}, base), { element_type: 'date_picker', value: data.value }); default: throw new Error(`Unknown elementType: ${elementType}`); } } } //# sourceMappingURL=adapty-ui-onboarding-state-updated-action.js.map