UNPKG

@tomino/dynamic-form-semantic-ui

Version:

Semantic UI form renderer based on dynamic form generation

87 lines 3.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const form_query_data_1 = require("./form_query_data"); const common_1 = require("./common"); const schema = { type: 'object', properties: { country: { type: 'string' }, selectedCountry: { type: 'string' } } }; const options = [{ title: 'Australia', value: 'AUS' }, { title: 'Slovakia', value: 'SVK' }]; const controlledOptions = [ { titles: ['Australia', 'Sydney'], value: 'SYD' }, { titles: ['Australia', 'Melbourne'], value: 'SYD' }, { titles: ['New Zealand', 'Christchurch'], title: 'Kiwis', value: 'SYD' } ]; const formDefinition = form_query_data_1.create.stack({ elements: [ form_query_data_1.create.formElement({ props: { search: 'search', searchName: 'findCountry', label: 'Country', value: { source: 'country' } }, control: 'Search' }), form_query_data_1.create.formElement({ props: { search: 'search', searchName: 'Name', label: 'Country', value: { source: 'country' } }, control: 'Search' }), form_query_data_1.create.formElement({ props: { renderTemplate: `<table><tr><td width="100">{0}<!--country--></td><td>{1}<!--city--></td></tr></table>`, search: 'findCountryWithControl', label: 'Country With Control', value: { source: 'country' }, searchName: 'Name' }, control: 'Search' }) ] }); const formData = { country: 'AUS' }; describe('Search', function () { return { component: common_1.prepareComponent(formDefinition, schema, formData, { addEditor: true, handlers: { search: ({ args: { lookup, value, searchByValue } }) => { if (lookup === 'findCountry') { return new Promise(resolve => { setTimeout(() => { resolve(options.filter(o => searchByValue ? o.value === value : o.title.indexOf(value) >= 1)); }, 100); }); } else { return new Promise(resolve => { setTimeout(() => { resolve(controlledOptions.filter(o => searchByValue ? o.value === value : o.titles[0].indexOf(value) >= 1)); }, 100); }); } }, findCountryWithControl: () => { return new Promise(resolve => { setTimeout(() => { resolve(controlledOptions); }, 100); }); } } }) }; }); //# sourceMappingURL=search_view.test.js.map