UNPKG

@jigx/mdk

Version:

Jigx Mobile Development Kit - SDK for building Jigx applications

46 lines 6.65 kB
/** * Add expense screen with form validation and category selection. * Saves new expense records to local database with offline sync capability. * @param app - Application builder instance * @returns Configured add expense screen */ export function addExpenseScreen(app) { const screen = app.addScreen.default('add-expense', 'Add New Expense'); // Main form container const form = screen.addControl.form({ instanceId: 'expense-form' }); form.addControl.textField({ instanceId: 'title' }) .label('Title') .required(true); form.addControl.numberField({ instanceId: 'amount' }) .label('Amount') .required(true); // Category selection dropdown const categoryDropdown = form.addControl .dropdown({ instanceId: 'category', isRequired: true }) .label('Category') .data({ datasourceId: 'data-expense-categories' }); categoryDropdown.item('=@ctx.current.item.id') .title('=@ctx.current.item.name') .value('=@ctx.current.item.id'); form.addControl.datePicker({ instanceId: 'date', isRequired: true }) .label('Date') .value('=@ctx.jig.state.now'); form.addControl.textField({ instanceId: 'description' }) .label('Description') .isMultiline(true); // Bottom panel save action const buttons = screen.bottomPanel.buttons(); buttons.add.executeEntity('Save Expense', 'sequential') .dynamicData('default/expenses', 'save') .data({ title: '=@ctx.components.title.state.value', amount: '=@ctx.components.amount.state.value', category: '=@ctx.components.category.state.selected', date: '=@ctx.components.date.state.value', description: '=@ctx.components.description.state.value', timestamp: '=@ctx.solution.state.now' }) .goBack('previous'); return screen; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWV4cGVuc2Utc2NyZWVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVtcGxhdGUtYXBwLTEvc2NyZWVucy9hZGQtZXhwZW5zZS1zY3JlZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsR0FBdUI7SUFDdEQsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLENBQUE7SUFFdEUsc0JBQXNCO0lBQ3RCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUE7SUFFbkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUM7U0FDL0MsS0FBSyxDQUFDLE9BQU8sQ0FBQztTQUNkLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUVqQixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQztTQUNsRCxLQUFLLENBQUMsUUFBUSxDQUFDO1NBQ2YsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRWpCLDhCQUE4QjtJQUM5QixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVO1NBQ3JDLFFBQVEsQ0FBQyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDO1NBQ3RELEtBQUssQ0FBQyxVQUFVLENBQUM7U0FDakIsSUFBSSxDQUFDLEVBQUUsWUFBWSxFQUFFLHlCQUF5QixFQUFFLENBQUMsQ0FBQTtJQUVwRCxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUM7U0FDM0MsS0FBSyxDQUFDLHlCQUF5QixDQUFDO1NBQ2hDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO0lBRWpDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDakUsS0FBSyxDQUFDLE1BQU0sQ0FBQztTQUNiLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO0lBRS9CLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxDQUFDO1NBQ3JELEtBQUssQ0FBQyxhQUFhLENBQUM7U0FDcEIsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRXBCLDJCQUEyQjtJQUMzQixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQzVDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLGNBQWMsRUFBRSxZQUFZLENBQUM7U0FDcEQsV0FBVyxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQztTQUN2QyxJQUFJLENBQUM7UUFDSixLQUFLLEVBQUUsb0NBQW9DO1FBQzNDLE1BQU0sRUFBRSxxQ0FBcUM7UUFDN0MsUUFBUSxFQUFFLDBDQUEwQztRQUNwRCxJQUFJLEVBQUUsbUNBQW1DO1FBQ3pDLFdBQVcsRUFBRSwwQ0FBMEM7UUFDdkQsU0FBUyxFQUFFLDBCQUEwQjtLQUN0QyxDQUFDO1NBQ0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBRXJCLE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uQnVpbGRlciwgRGVmYXVsdFNjcmVlbkJ1aWxkZXIgfSBmcm9tICcuLi8uLi9zcmMnXG5cbi8qKlxuICogQWRkIGV4cGVuc2Ugc2NyZWVuIHdpdGggZm9ybSB2YWxpZGF0aW9uIGFuZCBjYXRlZ29yeSBzZWxlY3Rpb24uXG4gKiBTYXZlcyBuZXcgZXhwZW5zZSByZWNvcmRzIHRvIGxvY2FsIGRhdGFiYXNlIHdpdGggb2ZmbGluZSBzeW5jIGNhcGFiaWxpdHkuXG4gKiBAcGFyYW0gYXBwIC0gQXBwbGljYXRpb24gYnVpbGRlciBpbnN0YW5jZVxuICogQHJldHVybnMgQ29uZmlndXJlZCBhZGQgZXhwZW5zZSBzY3JlZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZEV4cGVuc2VTY3JlZW4oYXBwOiBBcHBsaWNhdGlvbkJ1aWxkZXIpOiBEZWZhdWx0U2NyZWVuQnVpbGRlciB7XG4gIGNvbnN0IHNjcmVlbiA9IGFwcC5hZGRTY3JlZW4uZGVmYXVsdCgnYWRkLWV4cGVuc2UnLCAnQWRkIE5ldyBFeHBlbnNlJylcblxuICAvLyBNYWluIGZvcm0gY29udGFpbmVyXG4gIGNvbnN0IGZvcm0gPSBzY3JlZW4uYWRkQ29udHJvbC5mb3JtKHsgaW5zdGFuY2VJZDogJ2V4cGVuc2UtZm9ybScgfSlcblxuICBmb3JtLmFkZENvbnRyb2wudGV4dEZpZWxkKHsgaW5zdGFuY2VJZDogJ3RpdGxlJyB9KVxuICAgIC5sYWJlbCgnVGl0bGUnKVxuICAgIC5yZXF1aXJlZCh0cnVlKVxuXG4gIGZvcm0uYWRkQ29udHJvbC5udW1iZXJGaWVsZCh7IGluc3RhbmNlSWQ6ICdhbW91bnQnIH0pXG4gICAgLmxhYmVsKCdBbW91bnQnKVxuICAgIC5yZXF1aXJlZCh0cnVlKVxuXG4gIC8vIENhdGVnb3J5IHNlbGVjdGlvbiBkcm9wZG93blxuICBjb25zdCBjYXRlZ29yeURyb3Bkb3duID0gZm9ybS5hZGRDb250cm9sXG4gICAgLmRyb3Bkb3duKHsgaW5zdGFuY2VJZDogJ2NhdGVnb3J5JywgaXNSZXF1aXJlZDogdHJ1ZSB9KVxuICAgIC5sYWJlbCgnQ2F0ZWdvcnknKVxuICAgIC5kYXRhKHsgZGF0YXNvdXJjZUlkOiAnZGF0YS1leHBlbnNlLWNhdGVnb3JpZXMnIH0pXG5cbiAgY2F0ZWdvcnlEcm9wZG93bi5pdGVtKCc9QGN0eC5jdXJyZW50Lml0ZW0uaWQnKVxuICAgIC50aXRsZSgnPUBjdHguY3VycmVudC5pdGVtLm5hbWUnKVxuICAgIC52YWx1ZSgnPUBjdHguY3VycmVudC5pdGVtLmlkJylcblxuICBmb3JtLmFkZENvbnRyb2wuZGF0ZVBpY2tlcih7IGluc3RhbmNlSWQ6ICdkYXRlJywgaXNSZXF1aXJlZDogdHJ1ZSB9KVxuICAgIC5sYWJlbCgnRGF0ZScpXG4gICAgLnZhbHVlKCc9QGN0eC5qaWcuc3RhdGUubm93JylcblxuICBmb3JtLmFkZENvbnRyb2wudGV4dEZpZWxkKHsgaW5zdGFuY2VJZDogJ2Rlc2NyaXB0aW9uJyB9KVxuICAgIC5sYWJlbCgnRGVzY3JpcHRpb24nKVxuICAgIC5pc011bHRpbGluZSh0cnVlKVxuXG4gIC8vIEJvdHRvbSBwYW5lbCBzYXZlIGFjdGlvblxuICBjb25zdCBidXR0b25zID0gc2NyZWVuLmJvdHRvbVBhbmVsLmJ1dHRvbnMoKVxuICBidXR0b25zLmFkZC5leGVjdXRlRW50aXR5KCdTYXZlIEV4cGVuc2UnLCAnc2VxdWVudGlhbCcpXG4gICAgLmR5bmFtaWNEYXRhKCdkZWZhdWx0L2V4cGVuc2VzJywgJ3NhdmUnKVxuICAgIC5kYXRhKHtcbiAgICAgIHRpdGxlOiAnPUBjdHguY29tcG9uZW50cy50aXRsZS5zdGF0ZS52YWx1ZScsXG4gICAgICBhbW91bnQ6ICc9QGN0eC5jb21wb25lbnRzLmFtb3VudC5zdGF0ZS52YWx1ZScsXG4gICAgICBjYXRlZ29yeTogJz1AY3R4LmNvbXBvbmVudHMuY2F0ZWdvcnkuc3RhdGUuc2VsZWN0ZWQnLFxuICAgICAgZGF0ZTogJz1AY3R4LmNvbXBvbmVudHMuZGF0ZS5zdGF0ZS52YWx1ZScsXG4gICAgICBkZXNjcmlwdGlvbjogJz1AY3R4LmNvbXBvbmVudHMuZGVzY3JpcHRpb24uc3RhdGUudmFsdWUnLFxuICAgICAgdGltZXN0YW1wOiAnPUBjdHguc29sdXRpb24uc3RhdGUubm93J1xuICAgIH0pXG4gICAgLmdvQmFjaygncHJldmlvdXMnKVxuXG4gIHJldHVybiBzY3JlZW5cbn0iXX0=