{"version":3,"sources":["webpack:///./src/modules/event/columns.js","webpack:///./src/modules/_defaults/columns.js"],"names":["columns","createColumn","label","isTitle","field","section","component","inputTextField","req","max","description","type","fileField","visible","mediaCollection","defaultValue","editorComponent","relationField","fk","localKey","namespace","filterIs","parentRestraint","validation","required","props","showBrowse","showSearch","booleanComponent","displayValue","row","registrationDate","normalizeDate","registerBy","is","format24h","format","okLabel","modal","money","addButton","allowEdit","value","display","subtitle","requiresParentSave","filterable","searchable","sortable","linkTable","componentIs","orderBy","concat","defaultColumns","dateSort","a","b","_a","Date","parse","_b","numberSort","parseInt","stringSort","toString","localeCompare","relationSortId","id","relationSortLength","length","trueValue","falseValue","options","_ref","_ref$type","_ref$req","_ref$validation","_ref$money","_ref$max","_ref$min","min","numeric","between","email","maxlength","decimals","readonly","disable","_ref2","_ref2$props","_ref2$label","_ref2$type","_ref2$namespace","_ref2$componentIs","_ref2$filterIs","_ref2$validation","_ref2$parentRestraint","_ref2$requiresParentS","_ref2$saveBeforeAndAf","saveBeforeAndAfter","_ref2$linkTable","_ref2$linkTableModel","linkTableModel","_ref2$fieldType","fieldType","_ref2$directSearch","directSearch","_ref2$searchColumns","searchColumns","_ref2$orderBy","_ref2$filterable","_ref2$searchable","_ref2$sortable","sort","relation","_ref3","_ref3$req","_ref3$multiple","multiple","_ref3$label","_ref3$extensions","extensions","_ref3$visible","_ref3$description","extend","name","align","media","sendRaw","method","headers","additionalFields","inputRequired","toolbarFlat","toolbarOutline","color","toolbar","icon","list","fixedLabel","fixedIcon","defaultColumn","roles","searchType","undefined","noSave","hasOwnProperty","states","require","stateOptions","Object","keys","map","key","addressFields","_ref4","_ref4$req","filter","autofocusFilter","editActionColumn","deleteActionColumn"],"mappings":"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","file":"js/563f3fe7.1dab9874.js","sourcesContent":["import {createColumn, defaultColumns, inputTextField, relationField, booleanComponent, editorComponent, fileField} from '../_defaults/columns'\r\nimport {normalizeDate} from '../../utils/dateHelpers'\r\n\r\nexport const columns = [\r\n createColumn({\r\n label: 'Event Name',\r\n isTitle: true,\r\n field: 'name',\r\n section: 'Basics',\r\n component: inputTextField({req: true, max: 255})\r\n }),\r\n createColumn({\r\n label: 'Event Registration URL',\r\n field: 'eventRegistrationUrl',\r\n section: 'Basics',\r\n description: 'Use this to link off to another website where the registration will be handled',\r\n component: inputTextField({req: false, max: 255, type: 'url'})\r\n }),\r\n fileField({\r\n label: 'Event Image (396 x 230 pixels)',\r\n req: false,\r\n visible: false,\r\n field: 'imageUrl',\r\n section: 'Basics',\r\n mediaCollection: 'event'\r\n }),\r\n createColumn({\r\n label: 'Short Description',\r\n field: 'shortDescription',\r\n visible: false,\r\n section: 'Basics',\r\n defaultValue: '',\r\n description: '1023 character limit. If this is not filled, the Description field will be used for the short description. This is only used on the event list page.',\r\n // component: inputTextField({ req: false, max: 255, type: 'url' })\r\n component: editorComponent\r\n }),\r\n createColumn({\r\n label: 'Description',\r\n field: 'description',\r\n visible: false,\r\n section: 'Basics',\r\n defaultValue: '',\r\n // component: inputTextField({ req: false, max: 255, type: 'url' })\r\n component: editorComponent\r\n }),\r\n createColumn({\r\n label: 'Thank You Message',\r\n field: 'thankYouMessage',\r\n visible: false,\r\n section: 'Basics',\r\n defaultValue: '',\r\n description: 'If you leave this blank, the standard thank you message will display.',\r\n // component: inputTextField({ req: false, max: 255, type: 'url' })\r\n component: editorComponent\r\n }),\r\n createColumn({\r\n label: 'Event Dates',\r\n field: 'eventDate',\r\n section: 'Scheduling',\r\n // displayValue: row => {\r\n // let returnVal = ''\r\n // if (row.eventDate) {\r\n // for (let event of row.eventDate) {\r\n // returnVal += `(${normalizeDate(event.startDate, 'MMM DD YYYY - h:mm a')} - ${normalizeDate(event.endDate, 'MMM DD YYYY - h:mm a')}) `\r\n // }\r\n // return returnVal\r\n // }\r\n // },\r\n ...relationField({\r\n type: 'many',\r\n fk: 'eventId',\r\n localKey: 'id',\r\n namespace: 'eventDate',\r\n filterIs: 'text-filter',\r\n parentRestraint: true,\r\n validation: {required: true},\r\n props: {showBrowse: false, showSearch: false}\r\n // subtitle: 'shortDescription'\r\n // label: context => {\r\n // if (context.isAllDay) {\r\n // return ['All Day Event', normalizeDate(context.startDate, 'MMM DD YYYY')].join(' - ')\r\n // }\r\n // return [normalizeDate(context.startDate, 'MMM DD YYYY'), normalizeDate(context.endDate, 'MMM DD YYYY')].join(' - ')\r\n // }\r\n })\r\n }),\r\n createColumn({\r\n label: 'Event is Active',\r\n field: 'active',\r\n type: 'boolean',\r\n section: 'Availability',\r\n description: 'Event is listed and available to be seen',\r\n defaultValue: true,\r\n component: booleanComponent\r\n }),\r\n createColumn({\r\n label: 'Enable Registration',\r\n field: 'enableRegistration',\r\n type: 'boolean',\r\n section: 'Availability',\r\n description: 'Toggle if the Event is open for registrations or not',\r\n defaultValue: true,\r\n component: booleanComponent\r\n }),\r\n createColumn({\r\n label: 'Must Register By',\r\n field: 'registerBy',\r\n section: 'Availability',\r\n type: 'date',\r\n description: 'Stop registrations by a date',\r\n // displayValue: context => normalizeDate(context, 'MMM DD YYYY'),\r\n displayValue: row => {\r\n return row.registrationDate ? normalizeDate(row.registerBy, 'MMM DD YYYY') : 'N/A'\r\n },\r\n component: {\r\n is: 'q-datetime',\r\n props: {\r\n type: 'datetime',\r\n format24h: false,\r\n format: 'MMM DD YYYY h:mm a',\r\n okLabel: 'Set Date / Time',\r\n modal: true\r\n // dark: true\r\n },\r\n validation: {\r\n required: false\r\n }\r\n }\r\n }),\r\n createColumn({\r\n label: 'Address',\r\n field: 'address',\r\n section: 'Location',\r\n ...relationField({\r\n type: 'one',\r\n label: 'line1',\r\n namespace: 'address',\r\n filterIs: 'text-filter'\r\n })\r\n }),\r\n createColumn({\r\n label: 'Contact Name',\r\n field: 'contactName',\r\n section: 'Contact',\r\n component: inputTextField({req: false, max: 255})\r\n }),\r\n createColumn({\r\n label: 'Contact Email',\r\n field: 'contactEmail',\r\n section: 'Contact',\r\n // icon: 'email',\r\n // type: 'email',\r\n component: inputTextField({req: false, type: 'email', max: 255})\r\n }),\r\n createColumn({\r\n label: 'Contact Phone Number',\r\n field: 'contactPhone',\r\n section: 'Contact',\r\n component: inputTextField({req: false, max: 255, type: 'tel'})\r\n }),\r\n createColumn({\r\n label: 'Non-Member Price',\r\n field: 'nonMemberPrice',\r\n section: 'Pricing',\r\n type: 'number',\r\n component: inputTextField({req: false, type: 'number', money: true}),\r\n description: 'Fill in Non-Member price only if you wish everyone to have the same price.'\r\n }),\r\n createColumn({\r\n label: 'Member Price',\r\n field: 'memberPrice',\r\n section: 'Pricing',\r\n type: 'number',\r\n component: inputTextField({req: false, type: 'number', money: true}),\r\n description: 'Fill in Member price to define a special price for members.'\r\n }),\r\n createColumn({\r\n label: 'Allow Credit Card',\r\n field: 'paymentAllowCc',\r\n type: 'boolean',\r\n section: 'Pricing',\r\n description: 'Enables credit card payment option for this event',\r\n defaultValue: true,\r\n component: booleanComponent\r\n }),\r\n createColumn({\r\n label: 'Allow Bank Transfer',\r\n field: 'paymentAllowBank',\r\n type: 'boolean',\r\n section: 'Pricing',\r\n description: 'Enables bank transfer payment option for this event',\r\n defaultValue: true,\r\n component: booleanComponent\r\n }),\r\n createColumn({\r\n label: 'Allow Invoice',\r\n field: 'paymentAllowInvoice',\r\n type: 'boolean',\r\n section: 'Pricing',\r\n description: 'Enables Invoice Me as a payment option for this event',\r\n defaultValue: true,\r\n component: booleanComponent\r\n }),\r\n createColumn({\r\n label: 'Event Discounts',\r\n field: 'eventDiscount',\r\n section: 'Pricing',\r\n ...relationField({\r\n type: 'many',\r\n fk: 'id',\r\n localKey: 'eventId',\r\n parentRestraint: true,\r\n namespace: 'eventDiscount',\r\n filterIs: 'text-filter',\r\n props: {showBrowse: false, showSearch: false}\r\n })\r\n }),\r\n createColumn({\r\n label: 'Type',\r\n field: 'eventType',\r\n section: 'Options',\r\n // defaultValue: { id: 1, name: 'Normal', removalDate: null },\r\n ...relationField({\r\n type: 'one',\r\n namespace: 'eventType',\r\n filterIs: 'text-filter',\r\n // fk: 'eventTypeId',\r\n // localKey: 'id',\r\n localKey: 'eventTypeId',\r\n validation: {\r\n required: true\r\n },\r\n props: {addButton: false, allowEdit: false}\r\n })\r\n }),\r\n createColumn({\r\n label: 'Group/Team Limit',\r\n field: 'teamLimit',\r\n type: 'number',\r\n section: 'Options',\r\n description: 'Place a number in to declare this a team event, and how many people can be in a team.',\r\n defaultValue: '0',\r\n // label: 'ID',\r\n // field: 'id',\r\n // visible: false,\r\n // searchable: true,\r\n // type: 'number',\r\n // sortable: true,\r\n // filterable: false,\r\n // component: null\r\n component: inputTextField({req: false, type: 'number', props: {value: 0}})\r\n }),\r\n createColumn({\r\n label: 'Members Only',\r\n field: 'isMemberOnly',\r\n type: 'boolean',\r\n section: 'Options',\r\n description: 'Limit this event to active members only',\r\n defaultValue: false,\r\n component: booleanComponent\r\n }),\r\n createColumn({\r\n label: 'Max People',\r\n field: 'maxNumPersons',\r\n type: 'number',\r\n section: 'Options',\r\n description: 'Limit how many people may attend. Leave 0 for unlimited.',\r\n defaultValue: '0',\r\n component: inputTextField({req: false, type: 'number', props: {value: 0}})\r\n }),\r\n createColumn({\r\n label: 'QuickBooks Product/Service Label',\r\n field: 'qbProdservName',\r\n section: 'Accounting / QuickBooks',\r\n description: 'Select the Product/Service that QB line items will be marked as.',\r\n visible: false,\r\n validation: {required: true},\r\n component: {\r\n is: 'quickbooks-product-service',\r\n validation: {required: true},\r\n }\r\n // component: inputTextField({ req: false, max: 255 })\r\n }),\r\n createColumn({\r\n label: 'QuickBooks Product/Service ID',\r\n field: 'qbProdservId',\r\n type: 'number',\r\n section: 'Accounting / QuickBooks',\r\n description: 'Select the Product/Service that QB line items will be marked as.',\r\n visible: false,\r\n // holdFromEdit: true,\r\n component: null\r\n // component: inputTextField({req: true, type: 'number'})\r\n }),\r\n createColumn({\r\n label: 'Sponsorships',\r\n field: 'sponsorship',\r\n section: 'Sponsorships',\r\n visible: false,\r\n display: 'sponsorship.name',\r\n ...relationField({\r\n type: 'many',\r\n fk: 'eventId',\r\n localKey: 'id',\r\n namespace: 'sponsorship',\r\n parentRestraint: true,\r\n filterIs: 'text-filter',\r\n label: 'name',\r\n subtitle: '',\r\n props: {showBrowse: false, showSearch: false}\r\n })\r\n }),\r\n createColumn({\r\n label: 'Sponsorship Display Titles & Media',\r\n field: 'sponsorshipTitle',\r\n section: 'Sponsorship Recognition',\r\n visible: false,\r\n // display: 'sponsorship.name',\r\n ...relationField({\r\n type: 'many',\r\n fk: 'eventId',\r\n localKey: 'id',\r\n namespace: 'sponsorshipTitle',\r\n parentRestraint: false,\r\n filterIs: 'text-filter',\r\n label: 'title',\r\n subtitle: '',\r\n requiresParentSave: true,\r\n props: {showBrowse: false, showSearch: false}\r\n })\r\n }),\r\n createColumn({\r\n label: 'Custom Questions',\r\n field: 'question',\r\n section: 'Custom Questions',\r\n visible: false,\r\n filterable: false,\r\n searchable: false,\r\n sortable: false,\r\n defaultValue: [],\r\n // component: {\r\n // is: 'custom-questions'\r\n // }\r\n ...relationField({\r\n type: 'many',\r\n fk: 'id',\r\n localKey: 'eventId',\r\n parentRestraint: true,\r\n linkTable: false,\r\n namespace: 'question',\r\n filterIs: 'text-filter',\r\n componentIs: 'custom-questions',\r\n orderBy: 'sort',\r\n filterable: false,\r\n searchable: false,\r\n sortable: false\r\n })\r\n })\r\n // createColumn({\r\n // // LETS REMOVE THIS?\r\n // label: 'Flat Rate',\r\n // field: 'isFlatRate',\r\n // section: 'Pricing',\r\n // type: 'boolean',\r\n // description: 'Make the cost the same for members and non members',\r\n // component: booleanComponent\r\n // }),\r\n // createColumn({\r\n // label: 'Teams',\r\n // field: 'eventTeams',\r\n // section: 'Data Relations',\r\n // ...relationField({\r\n // type: 'many',\r\n // fk: 'eventId',\r\n // localKey: 'eventId',\r\n // namespace: 'eventTeam',\r\n // filterIs: 'text-filter',\r\n // label: 'teamName',\r\n // subtitle: ''\r\n // })\r\n // }),\r\n // createColumn({\r\n // label: 'Discounts',\r\n // field: 'eventDiscounts',\r\n // section: 'Data Relations',\r\n // display: 'discount.code',\r\n // ...relationField({\r\n // type: 'many',\r\n // fk: 'event',\r\n // localKey: 'id',\r\n // namespace: 'eventDiscount',\r\n // filterIs: 'text-filter',\r\n // label: 'discount.code',\r\n // subtitle: ''\r\n // })\r\n // })\r\n].concat(defaultColumns)\r\n","import { extend } from 'quasar'\r\n// const uuidv4 = require('uuid/v4')\r\n\r\nexport const dateSort = (a, b) => {\r\n let _a = Date.parse(a)\r\n let _b = Date.parse(b)\r\n return _a - _b\r\n}\r\n// export const guid = uuidv4()\r\nexport const numberSort = (a, b) => parseInt(a, 10) - parseInt(b, 10)\r\nexport const stringSort = (a, b) => a.toString().localeCompare(b.toString())\r\nexport const relationSortId = (a, b) => numberSort(a.id, b.id)\r\nexport const relationSortLength = (a, b) => numberSort(a.length, b.length)\r\nexport const booleanComponent = {\r\n // is: 'q-select',\r\n // is: 'q-checkbox',\r\n is: 'q-toggle',\r\n filterIs: 'select-filter',\r\n props: {\r\n trueValue: true,\r\n falseValue: false,\r\n // color: 'primary',\r\n options: [\r\n {\r\n label: 'Yes',\r\n value: true\r\n },\r\n {\r\n label: 'No',\r\n value: false\r\n }\r\n ]\r\n }\r\n}\r\nexport const inputTextField = ({ type = 'text', req = false, validation = null, money = false, max = null, min = null }) => {\r\n if (!validation) {\r\n validation = {}\r\n if (req) {\r\n validation.required = true\r\n }\r\n if (type === 'string') {\r\n validation.min = 1\r\n }\r\n if (type === 'number' && !money) {\r\n validation.numeric = true\r\n if (max && min) {\r\n validation.between = [min, max]\r\n }\r\n }\r\n if (type === 'email') {\r\n validation.email = true\r\n }\r\n }\r\n return {\r\n is: 'q-input',\r\n props: {\r\n type: type,\r\n maxlength: max || 500,\r\n decimals: money ? 2 : null,\r\n readonly: false,\r\n disable: false\r\n },\r\n validation: validation\r\n }\r\n}\r\n/**\r\n * @param props\r\n * @param type\r\n * @param label\r\n * @param namespace\r\n * @param localKey\r\n * @param fk\r\n * @param componentIs\r\n * @param filterIs\r\n * @param validation\r\n * @param parentRestraint\r\n * @param saveBeforeAndAfter\r\n * @returns {{sort: boolean, sortable: boolean, component: {is: (*|string), filterIs: string, props, validation}, relation: {type: string, label: string, namespace: string, localKey: *, fk: *, nested: *, subtitle: *, parentRestraint: boolean, saveBeforeAndAfter: boolean}}}\r\n */\r\nexport const relationField = ({\r\n props = {},\r\n label = 'label',\r\n type = 'one',\r\n namespace = 'self',\r\n localKey,\r\n fk,\r\n componentIs = null,\r\n filterIs = 'text-filter',\r\n validation = {},\r\n parentRestraint = false,\r\n requiresParentSave = false,\r\n saveBeforeAndAfter = false,\r\n linkTable = false,\r\n linkTableModel = null,\r\n fieldType = 'text',\r\n directSearch = false,\r\n searchColumns = false,\r\n orderBy = false,\r\n filterable = true,\r\n searchable = true,\r\n sortable = true\r\n}) => {\r\n const component = type === 'one' ? 'relation-field-one' : 'relation-field-many'\r\n return {\r\n filterable: filterable,\r\n searchable: searchable,\r\n sort: sortable && type === 'one',\r\n sortable: sortable && type === 'one',\r\n component: {\r\n is: componentIs || component,\r\n filterIs,\r\n props,\r\n validation\r\n },\r\n relation: {\r\n label: label || 'label',\r\n type: type || 'one',\r\n namespace: namespace || 'self',\r\n localKey: localKey,\r\n fk: fk,\r\n fieldType: fieldType,\r\n directSearch,\r\n parentRestraint,\r\n requiresParentSave,\r\n saveBeforeAndAfter,\r\n linkTable,\r\n linkTableModel,\r\n searchColumns,\r\n orderBy\r\n }\r\n }\r\n}\r\n\r\nexport const fileField = ({ req = false, multiple = false, field, label = 'File', mediaCollection, extensions = '.pdf,.xls,.xlsx,.doc,.docx', visible = true, description = '' }) =>\r\n extend(\r\n true,\r\n {},\r\n {\r\n label: label,\r\n field: field,\r\n name: field,\r\n section: 'Files',\r\n sort: false,\r\n sortable: false,\r\n filterable: false,\r\n visible: visible,\r\n searchable: false,\r\n align: 'left',\r\n type: 'file',\r\n description,\r\n component: {\r\n is: 'file-upload-field',\r\n media: mediaCollection,\r\n validation: {\r\n required: req\r\n },\r\n props: {\r\n extensions,\r\n sendRaw: false,\r\n name: 'file',\r\n method: 'POST',\r\n multiple,\r\n headers: {},\r\n additionalFields: [\r\n {\r\n name: 'media',\r\n value: mediaCollection\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n )\r\n\r\nexport const inputRequired = {\r\n is: 'q-input',\r\n props: {},\r\n validation: {\r\n required: true\r\n }\r\n}\r\nexport const editorComponent = {\r\n is: 'q-editor',\r\n filterIs: 'text-filter',\r\n props: {\r\n toolbarFlat: true,\r\n toolbarOutline: false,\r\n color: 'grey-9',\r\n toolbar: [\r\n ['bold', 'italic', 'strike', 'underline'],\r\n ['token', 'hr', 'link'],\r\n [\r\n {\r\n label: 'Headline',\r\n icon: 'title',\r\n list: 'no-icons',\r\n options: ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'code']\r\n },\r\n {\r\n label: 'Font Size',\r\n icon: 'format_size',\r\n fixedLabel: true,\r\n fixedIcon: true,\r\n list: 'no-icons',\r\n options: ['size-1', 'size-2', 'size-3', 'size-4', 'size-5', 'size-6', 'size-7']\r\n },\r\n 'removeFormat'\r\n ]\r\n ]\r\n }\r\n}\r\nexport const defaultColumn = {\r\n name: '',\r\n field: 'label',\r\n label: '',\r\n visible: true,\r\n searchable: true,\r\n filterable: true,\r\n roles: [],\r\n type: 'string',\r\n searchType: null,\r\n icon: null,\r\n sortable: true,\r\n displayValue: undefined,\r\n noSave: false,\r\n component: {\r\n is: 'q-input',\r\n props: {},\r\n validation: {}\r\n },\r\n align: 'left'\r\n}\r\nexport const createColumn = options =>\r\n extend(\r\n true,\r\n {},\r\n defaultColumn,\r\n {\r\n name: options.field,\r\n label: options.label || options.field || 'no label',\r\n section: 'General',\r\n description: '',\r\n filterable: options.hasOwnProperty('filterable') ? options.filterable : options.hasOwnProperty('searchable') ? options.searchable : defaultColumn.filterable,\r\n sort: options.type === 'number' ? numberSort : null\r\n },\r\n options\r\n )\r\nexport const defaultColumns = [\r\n createColumn({\r\n label: 'ID',\r\n field: 'id',\r\n visible: false,\r\n searchable: true,\r\n type: 'number',\r\n sortable: true,\r\n filterable: true,\r\n component: null\r\n }),\r\n createColumn({\r\n label: 'Date Deleted',\r\n field: 'removalDate',\r\n type: 'date',\r\n section: 'Data Info',\r\n visible: false,\r\n searchable: true,\r\n filterable: true,\r\n sortable: true,\r\n defaultValue: null,\r\n component: null\r\n /*\r\n component: {\r\n is: 'q-datetime',\r\n props: {\r\n type: 'datetime',\r\n disable: true\r\n }\r\n }\r\n */\r\n })\r\n // createColumn({\r\n // label: 'Updated',\r\n // field: 'updatedAt',\r\n // visible: false,\r\n // searchable: false,\r\n // type: 'string',\r\n // sortable: true,\r\n // component: null\r\n // }),\r\n // createColumn({\r\n // label: 'Created',\r\n // field: 'createdAt',\r\n // visible: false,\r\n // searchable: false,\r\n // type: 'string',\r\n // sortable: true,\r\n // component: null\r\n // })\r\n /*\r\n createColumn({\r\n label: 'Edit',\r\n field: 'action_edit',\r\n visible: true,\r\n searchable: false,\r\n filterable: false,\r\n align: 'left',\r\n type: 'action-edit',\r\n sortable: false,\r\n component: null\r\n })\r\n */\r\n]\r\n\r\nconst states = require('../../json/states.json')\r\n\r\nexport const stateOptions = Object.keys(states).map(key => {\r\n return {\r\n label: states[key],\r\n value: key\r\n }\r\n})\r\n\r\nexport const addressFields = ({ req = false }) => [\r\n createColumn({\r\n label: 'Address',\r\n field: 'address',\r\n section: 'Address',\r\n visible: false,\r\n sortable: true,\r\n component: inputTextField({ req: req })\r\n }),\r\n createColumn({\r\n label: 'City',\r\n field: 'city',\r\n section: 'Address',\r\n visible: false,\r\n sortable: true,\r\n component: inputTextField({ req: req })\r\n }),\r\n createColumn({\r\n label: 'State',\r\n field: 'state',\r\n section: 'Address',\r\n visible: true,\r\n sortable: true,\r\n component: {\r\n is: 'q-select',\r\n filterIs: 'select-filter',\r\n validation: { required: req },\r\n props: {\r\n options: stateOptions,\r\n filter: true,\r\n autofocusFilter: true\r\n }\r\n }\r\n }),\r\n createColumn({\r\n label: 'Zip',\r\n field: 'zip',\r\n section: 'Address',\r\n visible: false,\r\n sortable: true,\r\n component: inputTextField({ req: req })\r\n })\r\n]\r\n\r\nexport const editActionColumn = createColumn({\r\n label: 'Edit',\r\n field: 'action_edit',\r\n visible: true,\r\n searchable: false,\r\n filterable: false,\r\n align: 'left',\r\n type: 'action',\r\n sortable: false,\r\n component: null\r\n})\r\n\r\nexport const deleteActionColumn = createColumn({\r\n label: 'Delete',\r\n field: 'action_delete',\r\n visible: true,\r\n searchable: false,\r\n filterable: false,\r\n align: 'right',\r\n type: 'action',\r\n sortable: false,\r\n component: null\r\n})\r\n"],"sourceRoot":""}