{"version":3,"sources":["webpack:///./src/modules/_defaults/columns.js","webpack:///./src/modules/_defaults/state.js"],"names":["dateSort","a","b","_a","Date","parse","_b","numberSort","parseInt","stringSort","toString","localeCompare","relationSortId","id","relationSortLength","length","booleanComponent","is","filterIs","props","trueValue","falseValue","options","label","value","inputTextField","_ref","_ref$type","type","_ref$req","req","_ref$validation","validation","_ref$money","money","_ref$max","max","_ref$min","min","required","numeric","between","email","maxlength","decimals","readonly","disable","relationField","_ref2","_ref2$props","_ref2$label","_ref2$type","_ref2$namespace","namespace","localKey","fk","_ref2$componentIs","componentIs","_ref2$filterIs","_ref2$validation","_ref2$parentRestraint","parentRestraint","_ref2$requiresParentS","requiresParentSave","_ref2$saveBeforeAndAf","saveBeforeAndAfter","_ref2$linkTable","linkTable","_ref2$linkTableModel","linkTableModel","_ref2$fieldType","fieldType","_ref2$directSearch","directSearch","_ref2$searchColumns","searchColumns","_ref2$orderBy","orderBy","_ref2$filterable","filterable","_ref2$searchable","searchable","_ref2$sortable","sortable","component","sort","relation","fileField","_ref3","_ref3$req","_ref3$multiple","multiple","field","_ref3$label","mediaCollection","_ref3$extensions","extensions","_ref3$visible","visible","_ref3$description","description","extend","name","section","align","media","sendRaw","method","headers","additionalFields","inputRequired","editorComponent","toolbarFlat","toolbarOutline","color","toolbar","icon","list","fixedLabel","fixedIcon","defaultColumn","roles","searchType","displayValue","undefined","noSave","createColumn","hasOwnProperty","defaultColumns","defaultValue","states","require","stateOptions","Object","keys","map","key","addressFields","_ref4","_ref4$req","filter","autofocusFilter","editActionColumn","deleteActionColumn","defaultSettings","groupedByField","parentResource","visibleColumns","selected","layout","azOpen","filters","letters","search","columns","pagination","sortBy","descending","page","rowsPerPage","rowsNumber","defaultState","records","quickEditId","idList","defaultSort","defaultFilter","apiEndpoint","clientRoute","settings","loading","params","excelExport","titleColumn","subtitleColumn","fakeColumns","infoColumns","createState","state","filterKeys","Array","isArray","unshift","columnLength","push","reduce","obj","column","shvl","concat","col","c"],"mappings":"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","file":"js/7286a8bc.b676331e.js","sourcesContent":["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","import { extend } from 'quasar'\r\nimport * as shvl from 'shvl'\r\n\r\nimport { deleteActionColumn, editActionColumn } from '../_defaults/columns'\r\n\r\nexport const defaultSettings = {\r\n groupedByField: 'id',\r\n parentResource: null,\r\n visibleColumns: [],\r\n selected: [],\r\n layout: 'table',\r\n azOpen: false,\r\n filters: {\r\n letters: {},\r\n search: '',\r\n columns: {}\r\n },\r\n pagination: {\r\n sortBy: null,\r\n descending: false,\r\n page: 1,\r\n rowsPerPage: 25,\r\n rowsNumber: 25\r\n }\r\n}\r\n\r\nexport const defaultState = {\r\n records: [],\r\n quickEditId: null,\r\n idList: [],\r\n defaultSort: null,\r\n defaultFilter: null,\r\n apiEndpoint: '/',\r\n namespace: '',\r\n clientRoute: '/',\r\n columns: [],\r\n settings: extend(true, {}, defaultSettings),\r\n loading: false,\r\n params: {},\r\n excelExport: {},\r\n titleColumn: undefined,\r\n subtitleColumn: undefined,\r\n fakeColumns: undefined,\r\n infoColumns: []\r\n}\r\n\r\nconst createState = state => {\r\n let filterKeys = {}\r\n let visibleColumns = {}\r\n if (state.columns && Array.isArray(state.columns)) {\r\n if (state.columns[0].name !== 'action_edit') {\r\n state.columns.unshift(editActionColumn)\r\n }\r\n const columnLength = state.columns.length\r\n if (state.columns[columnLength - 1].name !== 'action_delete') {\r\n state.columns.push(deleteActionColumn)\r\n }\r\n // -- assign filter keys\r\n filterKeys = state.columns.reduce((obj, column) => {\r\n obj[column.field] = shvl.get(state, `settings.filters.columns[${column.field}]`, null)\r\n return obj\r\n }, {})\r\n // -- assign visible columns\r\n visibleColumns = state.columns.filter(col => col.visible || col.required).map(c => c.field)\r\n }\r\n return extend(true, {}, defaultState, state, {\r\n settings: {\r\n filters: {\r\n columns: filterKeys\r\n },\r\n visibleColumns: visibleColumns\r\n }\r\n })\r\n}\r\n\r\nexport default createState\r\n"],"sourceRoot":""}