{"version":3,"sources":["webpack:///./src/utils/oData.js","webpack:///./src/modules/_defaults/actions.js"],"names":["debug","validateFilterValue","filterColumn","filterValue","undefined","type","convertFilter","filterKeyRaw","titleCaseFilterKey","arguments","length","console","log","filterKey","key","concat","relation","directSearch","component","filterIs","filterCustom","searchType","fieldType","startDate","DateTime","subtract","format","endDate","add","linkTable","booleanValue","filterReplace","replace","isObject","value","typeof_default","Object","keys","oDataHelper","includes","re","split","map","include","indexOf","trim","str","p1","p2","p3","p1Title","pascalCase","p3Title","nv","expandSplit","reduce","query","includeText","currentIndex","join","oDataSort","sortBy","namespace","fakeColumns","sort","sortColumn","store","getters","label","finalSortBy","orderBy","oDataFilter","filterObj","moduleName","fakeColumnsMap","arr","rawFilterKey","camelCase","Array","isArray","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","Symbol","iterator","next","done","fv","relationValue","id","convertedRelationValue","push","err","return","realFilterKey","fakeFilterValues","values","fakeFilterValue","convertedValue","module","relationKeys","_loop","relationKey","_i","relationColumn","searchColumns","mutlipleCols","innerArr","searchColumn","relationResource","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","column","field","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","transformLinkTableObject","obj","entries","carryObj","entry","_arr","_i2","objKey","pivot","transformLinkTableArray","warn","normalizeRow","row","columns","newRow","carry","find","col","_arr2","_i3","fakeKey","realColumn","normalizeApiData","data","mapped","search_ids","mapOrder","array","order","a","b","A","B","globalConfig","defaultActions","transformFilters","_ref","config","commit","state","apiDelete","_apiDelete","asyncToGenerator_default","regeneratorRuntime","mark","_callee","_ref2","_ref3","dispatch","client","_ref3$config","_ref3$parentId","parentId","stateParams","configCombined","endpoint","newConfig","_ref4","wrap","_context","prev","params","extend","apiEndpoint","sent","delete","abrupt","t0","stop","_x","_x2","apply","this","apiForceDelete","_apiForceDelete","_callee2","_ref5","_ref6","rootGetters","_ref6$config","_ref6$parentId","_ref6$resource","resource","aspnetuserId","_config","personEnpoint","odataPersonEnpoint","_ref7","_data","_ref8","_ref9","userEnpoint","_context2","$filter","get","_x3","_x4","clearRelations","_clearRelations","_callee3","_ref10","_ref11","_ref11$parentId","_ref11$resource","personData","companyEnpoint","odataCompanyEnpoint","_ref12","clearPerson","company","_ref13","_config2","_ref14","_data5","person","_ref15","_ret","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_iterator4","_step4","_person","_context4","billingPersonId","businessDevPersonId","counselPersonId","hrPersonId","marketingPersonId","primaryPersonId","safetyPersonId","chasePersonId","estimatorPersonId","estimator2PersonId","projectManagerPersonId","projectManager2PersonId","laborPersonId","put","finish","companyId","t1","foreignId","relationData","syncUrl","model","relationColumns","linkTableColumn","formData","_context3","linkTableModel","filter","fk","defineProperty_default","post","v","delegateYield","t2","t3","t4","_x5","_x6","apiPurge","_apiPurge","_callee4","_ref16","_ref17","_ref17$id","_ref17$config","_ref17$parentId","_ref18","_context5","objectSpread_default","total","_x7","_x8","apiRestore","_apiRestore","_callee5","_ref19","_ref20","_ref20$id","_ref20$config","_ref20$parentId","_ref21","_context6","trashed","_x9","_x10","apiBulkUpdate","_apiBulkUpdate","_callee6","_ref22","_ref23","_ref23$type","_ref23$fk","_ref23$relation","_ref23$id","_ref23$config","_ref23$parentId","patchData","_ref24","_context7","_x11","_x12","apiInsert","_apiInsert","_callee7","_ref25","_ref26","_ref26$config","_ref26$fetchRelated","_ref26$parentId","_ref26$noFilters","noFilters","stateFilters","_ref27","_context8","fetchRelated","filterColumns","_x13","_x14","search","_search","_callee8","_ref28","_ref29","_ref29$config","_ref29$parentId","url","odataConfig","_ref30","transformedData","_context9","_x15","_x16","fetchOne","_fetchOne","_callee9","_ref31","_ref32","_ref32$config","_ref32$parentId","_ref32$noFilters","_ref32$queue","queue","oDataFilters","queueExists","record","queueId","_ref33","_context10","limit","odataInclude","$expand","qs","stringify","root","records","r","handleError","_x17","_x18","groupBy","_groupBy","_callee10","_ref34","_ref35","_ref35$parentId","_ref35$group","group","_ref36","_context11","page","_x19","_x20","paginate","_paginate","_callee11","_ref37","_ref38","pagination","_ref38$search","_ref38$parentId","_ref38$trashed","_ref38$noFilters","_ref38$noTransform","noTransform","_ref38$config","descending","rowsPerPage","filtersToApply","sortSign","sortByOdata","defaultConfig","ExcelUrl","ExcelPrettyUrl","urlConcat","_ref39","newPagination","_context12","defaultSort","guestData","unapprovedData","excelExport","select","decodeURIComponent","rowsNumber","_x21","_x22","fetchAll","_fetchAll","_callee12","_ref40","_ref41","_ref41$fetchRelated","_ref41$parentId","_ref41$config","_ref41$noFilters","_ref41$shouldCommit","shouldCommit","_ref42","_context13","_x23","_x24","apiExcel","_apiExcel","_callee13","_ref43","_ref44","_ref44$fetchRelated","_ref44$parentId","_ref44$config","_ref44$noFilters","_context14","responseType","Promise","reject","_x25","_x26","apiUpdate","_apiUpdate","_callee14","_ref45","_ref46","_ref46$config","_ref46$fetchRelated","_ref46$parentId","_ref46$returnAll","returnAll","_ref47","_context15","guidId","updates","_x27","_x28","excel","_excel","_callee15","_ref48","_ref49","_ref49$fetchRelated","_ref49$parentId","_ref49$config","_ref49$noFilters","_ref49$shouldCommit","_context16","_x29","_x30","__webpack_exports__","actions"],"mappings":"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","file":"js/2d21adb2.2b10f620.js","sourcesContent":["import {camelCase, pascalCase} from 'change-case'\r\nimport store from '../store'\r\nimport {DateTime} from '../utils/dateHelpers'\r\n\r\nconst debug = false\r\n\r\nconst validateFilterValue = (filterColumn, filterValue) => {\r\n // -- make sure we have a column, a legit value, and also the column has a defined 'type'\r\n // // console.log('validateFilterValue', filterColumn, filterValue)\r\n return !(!filterColumn || filterValue === undefined || filterValue === null || !filterColumn.type || filterValue === '')\r\n}\r\n\r\nconst convertFilter = (filterKeyRaw, filterValue, filterColumn, titleCaseFilterKey = null, type = null) => {\r\n // console.log('convertFilter filterColumn', filterColumn)\r\n if (debug) {\r\n console.log('convertFilter: filterKeyRaw', filterKeyRaw, 'filterValue', filterValue, 'filterColumn', filterColumn, 'titleCaseFilterKey', titleCaseFilterKey, 'type', type)\r\n }\r\n\r\n /** ------------ Safety Check -------------------------- **/\r\n if (!validateFilterValue(filterColumn, filterValue)) {\r\n return null\r\n // -- end --\r\n }\r\n\r\n const filterKey = filterKeyRaw\r\n // let filterKey = camelCase(filterKeyRaw)\r\n // if (filterColumn.type === 'many') {\r\n // filterKey = filterKeyRaw\r\n // }\r\n\r\n // -- setup key\r\n let key = titleCaseFilterKey ? `${titleCaseFilterKey}/${filterKey}` : filterKey\r\n if (filterColumn.relation && filterColumn.relation.directSearch) {\r\n // Manual override for complex relation filters\r\n // console.log('filterColumn.relation.directSearch', filterColumn.relation.directSearch)\r\n key = filterColumn.relation.directSearch\r\n }\r\n\r\n // console.log('convertFilter filterColumn', filterColumn)\r\n\r\n /** ------------ Handle filterIs Custom -------------------------- **/\r\n if (filterColumn && filterColumn.component && filterColumn.component.filterIs && filterColumn.component.filterCustom && filterValue) {\r\n return `${key} ${filterValue}`\r\n }\r\n\r\n /** ------------ Handle Date -------------------------- **/\r\n if (\r\n filterValue &&\r\n filterColumn &&\r\n filterColumn.type &&\r\n (filterColumn.type === 'date' || filterColumn.type === 'datetime' || filterColumn.searchType === 'datetime' || (filterColumn.relation && (filterColumn.relation.fieldType === 'date' || filterColumn.relation.fieldType === 'datetime')))\r\n ) {\r\n let startDate = DateTime(filterValue)\r\n .subtract(1, 'day')\r\n .format()\r\n let endDate = DateTime(filterValue)\r\n .add(1, 'day')\r\n .format()\r\n if (filterColumn && filterColumn.relation && filterColumn.relation.linkTable) {\r\n return `${key} ge ${startDate}) AND ${key} le ${endDate})`\r\n }\r\n return `${key} ge ${startDate} AND ${key} le ${endDate}`\r\n }\r\n\r\n /** ------------ Handle Many Relation -------------------------- **/\r\n if (type === 'many') {\r\n // console.log('got many')\r\n // console.log('key', key)\r\n return `${key} eq ${filterValue}`\r\n // -- end --\r\n }\r\n\r\n /** ------------ Handle Boolean -------------------------- **/\r\n if (filterColumn.type === 'boolean' || filterColumn.searchType === 'boolean' || (filterColumn.relation && filterColumn.relation.fieldType === 'boolean')) {\r\n // console.log('got bool')\r\n const booleanValue = filterValue ? 'true' : 'false'\r\n return `${key} eq ${booleanValue}`\r\n // -- end --\r\n }\r\n\r\n /** ------------ Handle Number -------------------------- **/\r\n if (filterColumn.type === 'number' || filterColumn.searchType === 'number' || (filterColumn.relation && filterColumn.relation.fieldType === 'number')) {\r\n // console.log('got number')\r\n return `${key} eq ${filterValue}`\r\n // -- end --\r\n }\r\n\r\n /** ------------ Handle NotNull -------------------------- **/\r\n if (filterColumn.type === 'notNull' || filterColumn.searchType === 'notNull' || (filterColumn.relation && filterColumn.relation.fieldType === 'notNull')) {\r\n // console.log('got notNull')\r\n return `${filterValue} ne null`\r\n // -- end --\r\n }\r\n\r\n /** ------------ Handle String -------------------------- **/\r\n if (filterColumn.type === 'string' || filterColumn.searchType === 'string' || (filterColumn.relation && filterColumn.relation.fieldType === 'string')) {\r\n // console.log('got string')\r\n const filterReplace = filterValue.replace(\"'\", \"''\")\r\n return `contains(${key},'${filterReplace}')`\r\n // -- end --\r\n }\r\n\r\n return null\r\n // -- end --\r\n}\r\n\r\nconst isObject = value => {\r\n return !!value && typeof value === 'object' && !!Object.keys(value).length\r\n}\r\n\r\nexport const oDataHelper = includes => {\r\n // -- validate data\r\n // console.log('includes', includes)\r\n if (typeof includes !== 'string' || includes === null || includes === undefined) {\r\n return ''\r\n }\r\n // -- replace '[]' with '()'\r\n const re = /(.*)(\\[)(.*)(])/\r\n return includes\r\n .split(',')\r\n .map(include => {\r\n if (include.indexOf('[') !== -1) {\r\n // Replace brackets with parenthesis? Not sure why, I think oData supports both?\r\n return include.trim().replace(re, (str, p1, p2, p3) => {\r\n const p1Title = pascalCase(p1)\r\n const p3Title = pascalCase(p3)\r\n // console.log(p1, p1Title)\r\n // console.log(p3, p3Title)\r\n // const nv = p1Title + '(' + p3Title + ')'\r\n const nv = p1Title + '[$expand=' + p3Title + ']'\r\n // console.log(nv)\r\n return nv\r\n })\r\n }\r\n if (include.indexOf('.') !== -1) {\r\n // We want to check for dot syntax here for includes and add another layer of expand within an expand\r\n // TODO: probably need to come back to this to check for recursive functionality\r\n const expandSplit = include.split('.')\r\n return expandSplit.reduce((query, includeText, currentIndex) => {\r\n if (currentIndex === 0) {\r\n query = query + pascalCase(includeText)\r\n } else {\r\n query = query + `[$expand=${pascalCase(includeText)}]`\r\n }\r\n return query\r\n }, '')\r\n }\r\n return pascalCase(include)\r\n })\r\n .join(',')\r\n}\r\n\r\nexport const oDataSort = (sortBy, namespace, fakeColumns) => {\r\n // In Odata we can sort on one to many relations\r\n let sort = sortBy\r\n // console.log('sortBy', sortBy, 'namespace', namespace, 'fakeColumns', fakeColumns)\r\n // fakeColumns.membershipType = membership\r\n // sortBy = membershipType\r\n if (sortBy) {\r\n const sortColumn = store.getters[`${namespace}/column`](sortBy)\r\n // console.log('sortColumn', sortColumn)\r\n if (sortColumn && sortColumn.relation && sortColumn.relation.type === 'one' && sortColumn.relation.label) {\r\n // sortColumn.relation.label = description\r\n let finalSortBy = false\r\n if (sortColumn.relation.orderBy) {\r\n // Allow overrides on sorting for columns that reference more than just a signle field, but a table!\r\n // console.log('sortColumn.relation.orderBy', sortColumn.relation.orderBy)\r\n finalSortBy = sortColumn.relation.orderBy\r\n }\r\n if (fakeColumns && fakeColumns[sortBy]) {\r\n // console.log('found fake columns to sort on')\r\n if (sortBy === sortColumn.relation.label) {\r\n if (finalSortBy) {\r\n sort = `${fakeColumns[sortBy]}/${finalSortBy}`\r\n } else {\r\n sort = `${fakeColumns[sortBy]}/${sortBy}`\r\n }\r\n } else {\r\n if (finalSortBy) {\r\n sort = `${fakeColumns[sortBy]}/${sortBy}/${finalSortBy}`\r\n } else {\r\n sort = `${fakeColumns[sortBy]}/${sortBy}/${sortColumn.relation.label}`\r\n }\r\n }\r\n } else {\r\n if (finalSortBy) {\r\n sort = `${sortBy}/${finalSortBy}`\r\n } else {\r\n sort = `${sortBy}/${sortColumn.relation.label}`\r\n }\r\n }\r\n // console.log('SORT:', sort)\r\n }\r\n }\r\n return sort\r\n // EXAMPLE: affiliateType/name desc\r\n // go another level deep! membership/membershipType/description asc\r\n}\r\n\r\nexport const oDataFilter = (filterObj = {}, moduleName, fakeColumnsMap = {}) => {\r\n return Object.keys(filterObj)\r\n .reduce((arr, rawFilterKey) => {\r\n /**\r\n * @var Boolean|Object|Number|String filterValue\r\n * @description User entered value if not a relation\r\n * @example [Boolean] 1|0\r\n * @example [Number] 2005\r\n * @example [String] 'David'\r\n * @example [Relation] { membershipType: Affiliate }\r\n */\r\n const filterKey = camelCase(rawFilterKey)\r\n const filterValue = filterObj[filterKey]\r\n const filterColumn = store.getters[`${moduleName}/column`](filterKey)\r\n\r\n if (debug) {\r\n console.log('filterObj', filterObj)\r\n console.log('filterKey / camelCase(rawFilterKey): ', filterKey)\r\n console.log('filterValue: ', filterValue)\r\n console.log('filterColumn: ', filterColumn)\r\n console.log('fakeColumnsMap: ', fakeColumnsMap)\r\n }\r\n\r\n /** ------------ Safety Check -------------------------- **/\r\n if (!validateFilterValue(filterColumn, filterValue)) {\r\n if (debug) {\r\n console.log('------ invalid filter -------')\r\n }\r\n return arr\r\n // -- end --\r\n }\r\n\r\n /** ------------ Handle Fake Columns -------------------------- **/\r\n if (fakeColumnsMap && fakeColumnsMap[rawFilterKey]) {\r\n // console.log('fakeColumnsMap', fakeColumnsMap)\r\n if (filterValue && filterValue !== null && filterValue !== undefined) {\r\n // -- loop each key in the relation (probably only one)\r\n // const relationKey = `any(a:a/${relationColumn.field}`\r\n if (Array.isArray(filterValue)) {\r\n console.log('is array')\r\n // const relationKey = `any(a:a/${filterColumn}`\r\n for (const fv of filterValue) {\r\n const relationValue = fv.id\r\n const titleCaseFilterKey = pascalCase(filterKey)\r\n const convertedRelationValue = convertFilter(filterColumn, relationValue, filterColumn, titleCaseFilterKey, 'many') + ')'\r\n // const convertedRelationValue = convertFilter(relationKey, relationValue, relationColumn, titleCaseFilterKey, 'many') + ')'\r\n if (convertedRelationValue) {\r\n arr.push(convertedRelationValue)\r\n }\r\n }\r\n } else {\r\n console.log('not array')\r\n const realFilterKey = fakeColumnsMap[rawFilterKey]\r\n // console.log('realFilterKey', realFilterKey)\r\n const fakeFilterValues = Object.values(filterValue)\r\n // console.log('fakeFilterValues', fakeFilterValues)\r\n if (fakeFilterValues.length) {\r\n const fakeFilterValue = fakeFilterValues[0]\r\n const titleCaseFilterKey = pascalCase(realFilterKey)\r\n const convertedValue = convertFilter(filterKey, fakeFilterValue, filterColumn, titleCaseFilterKey)\r\n // console.log('titleCaseFilterKey', titleCaseFilterKey)\r\n // console.log('convertedValue', convertedValue)\r\n if (convertedValue) {\r\n arr.push(convertedValue)\r\n }\r\n }\r\n }\r\n return arr\r\n }\r\n }\r\n\r\n // // console.log('filterColumn', filterColumn)\r\n // // console.log('filterValue', filterValue)\r\n // // console.log('data type', typeof filterValue, filterValue, 'date:', filterValue instanceof Date, normalizeDate(filterValue))\r\n\r\n // /** ------------ Handle Date Filter -------------------------- **/\r\n // if (filterValue && filterColumn && filterColumn.type && (filterColumn.type === 'date' || filterColumn.type === 'datetime')) {\r\n // let startDate = DateTime(filterValue)\r\n // .subtract(1, 'day')\r\n // .format()\r\n // let endDate = DateTime(filterValue)\r\n // .add(1, 'day')\r\n // .format()\r\n // // // console.log('we have a date!!')\r\n // arr.push([`${filterColumn.field} ge ${startDate}`, `${filterColumn.field} le ${endDate}`])\r\n // console.log('push date', arr)\r\n // return arr\r\n // }\r\n\r\n /** ------------ Handle Relation One -------------------------- **/\r\n if (filterColumn.relation && filterColumn.relation.type === 'one' && filterColumn.relation.namespace) {\r\n // console.log('odata relation one')\r\n // -- object: this should always be the case!\r\n if (typeof filterValue === 'object') {\r\n const module = filterColumn.relation.namespace\r\n const relationKeys = Object.keys(filterValue)\r\n\r\n // console.log('typeof filterValue is object', filterValue)\r\n // console.log('module', module)\r\n // console.log('relationKeys', relationKeys)\r\n\r\n // -- loop each key in the relation (probably only one)\r\n for (const relationKey of relationKeys) {\r\n // -- use the store module getters helper to get the column object from the filterKey name (field)\r\n // const relationColumn = store.getters[`${module}/column`](filterKey)\r\n const relationColumn = store.getters[`${module}/column`](relationKey)\r\n // const relationValue = filterValue[filterKey]\r\n const relationValue = filterValue[relationKey]\r\n const titleCaseFilterKey = pascalCase(filterKey)\r\n if (filterColumn.relation.searchColumns) {\r\n const mutlipleCols = filterColumn.relation.searchColumns\r\n .reduce((innerArr, searchColumn) => {\r\n // console.log('relationColumn', relationColumn, 'relationValue', relationValue, 'titleCaseFilterKey', titleCaseFilterKey)\r\n let convertedValue = convertFilter(searchColumn, relationValue, relationColumn, titleCaseFilterKey)\r\n if (convertedValue) {\r\n // console.log('innerArr', innerArr, 'convertedValue', convertedValue)\r\n innerArr.push(convertedValue)\r\n }\r\n return innerArr\r\n }, [])\r\n .join(' or ')\r\n if (mutlipleCols) {\r\n // console.log('mutlipleCols', mutlipleCols)\r\n arr.push(mutlipleCols)\r\n }\r\n } else {\r\n const convertedRelationValue = convertFilter(relationKey, relationValue, relationColumn, titleCaseFilterKey)\r\n // console.log('relationColumn', relationColumn, 'relationValue', relationValue, 'titleCaseFilterKey', convertedRelationValue)\r\n if (convertedRelationValue) {\r\n arr.push(convertedRelationValue)\r\n }\r\n }\r\n }\r\n }\r\n // console.log('arr', arr)\r\n return arr\r\n // -- end --\r\n }\r\n\r\n /** ------------ Handle Relation Many -------------------------- **/\r\n if (filterColumn.relation && filterColumn.relation.type === 'many' && filterColumn.relation.namespace) {\r\n // console.log('odata relation many')\r\n // -- object: this should always be the case!\r\n if (typeof filterValue === 'object') {\r\n const module = filterColumn.relation.namespace\r\n // const relationKeys = Object.keys(filterValue)\r\n\r\n // console.log('typeof filterValue is object', filterValue)\r\n // console.log('module', module)\r\n // console.log('relationKeys', relationKeys)\r\n\r\n // TODO: need the filterKey module?\r\n // TODO: fk from column filterKey module = namespace\r\n const relationResource = store.getters[`${filterKey}/relations`]\r\n let relationColumn = null\r\n for (const column of relationResource) {\r\n // console.log(column)\r\n if (column.relation.namespace === module) {\r\n relationColumn = column\r\n }\r\n }\r\n const relationKey = `any(a:a/${relationColumn.field}`\r\n // console.log('relationKey', relationKey)\r\n\r\n // -- loop each key in the relation (probably only one)\r\n for (const fv of filterValue) {\r\n // -- use the store module getters helper to get the column object from the filterKey name (field)\r\n\r\n // Gotta get relationKey = areaOfStateId\r\n const relationValue = fv.id\r\n const titleCaseFilterKey = pascalCase(filterKey)\r\n const convertedRelationValue = convertFilter(relationKey, relationValue, relationColumn, titleCaseFilterKey, 'many') + ')'\r\n // const convertFilter = (filterKeyRaw, filterValue, filterColumn, titleCaseFilterKey = null) => {\r\n // console.log('relationResource', relationResource, 'relationColumn', relationColumn, 'relationValue', relationValue, 'titleCaseFilterKey', titleCaseFilterKey)\r\n // console.log('convertedRelationValue', convertedRelationValue)\r\n if (convertedRelationValue) {\r\n arr.push(convertedRelationValue)\r\n }\r\n }\r\n }\r\n // console.log('arr', arr)\r\n return arr\r\n // -- end --\r\n }\r\n\r\n const convertedValue = convertFilter(filterKey, filterValue, filterColumn)\r\n\r\n if (convertedValue) {\r\n arr.push(convertedValue)\r\n }\r\n\r\n return arr\r\n // -- end --\r\n }, [])\r\n .join(' and ')\r\n}\r\n\r\nexport const transformLinkTableObject = obj => {\r\n return Object.entries(obj).reduce(\r\n (carryObj, entry) => {\r\n const key = entry[0]\r\n const value = entry[1]\r\n if (isObject(value)) {\r\n for (const objKey of Object.keys(value)) {\r\n carryObj[objKey] = value[objKey]\r\n }\r\n return carryObj\r\n }\r\n if (Array.isArray(value)) {\r\n console.log('ffffffffs!!!! Im confused!')\r\n }\r\n carryObj.pivot[key] = value\r\n return carryObj\r\n },\r\n { pivot: {} }\r\n )\r\n}\r\n\r\nexport const transformLinkTableArray = arr => {\r\n if (!Array.isArray(arr)) {\r\n console.warn('transformLinkTableArray received non-array input:', arr)\r\n return []\r\n }\r\n return arr.map(obj => transformLinkTableObject(obj))\r\n}\r\n\r\nexport const normalizeRow = (row, columns, fakeColumns = {}) => {\r\n const newRow = Object.entries(row).reduce((carry, entry) => {\r\n const key = entry[0]\r\n const value = entry[1]\r\n const column = columns.find(col => col.field === key)\r\n if (column) {\r\n if (column.relation && column.relation.linkTable) {\r\n carry[key] = transformLinkTableArray(value)\r\n // // console.log(carry[key])\r\n return carry\r\n }\r\n }\r\n carry[key] = value\r\n return carry\r\n }, {})\r\n\r\n if (fakeColumns) {\r\n for (const fakeKey of Object.keys(fakeColumns)) {\r\n const realColumn = fakeColumns[fakeKey]\r\n newRow[fakeKey] = newRow[realColumn]\r\n }\r\n }\r\n\r\n return newRow\r\n}\r\n\r\nexport const normalizeApiData = (data, columns, fakeColumns = {}) => {\r\n let arr = data.data\r\n let mapped = arr.map(row => normalizeRow(row, columns, fakeColumns))\r\n if (data && data.search_ids) {\r\n console.log('data.search_ids', data.search_ids)\r\n console.log('Pre Sort', mapped)\r\n mapped = mapOrder(data.data, data.search_ids, 'id')\r\n console.log('Sorted Array', mapped)\r\n // we want: 3788,103,2780,645,3847,2376,3569,683,550,1095\r\n }\r\n return mapped\r\n}\r\n\r\n// const validateFilterValue = (filterColumn, filterValue) => {\r\nexport const mapOrder = (array, order, key) => {\r\n // const orderArray = order.split(',')\r\n // const reversedOrder = orderArray.reverse()\r\n // const reversedOrderString = reversedOrder.join(',')\r\n // const reversedOrder = order\r\n console.log('order', order)\r\n // console.log('reversedOrder', reversedOrder)\r\n // console.log('reversedOrderString', reversedOrderString)\r\n array.sort((a, b) => {\r\n var A = a[key],\r\n B = b[key]\r\n if (order.indexOf(A) > order.indexOf(B)) {\r\n return 1\r\n } else {\r\n return -1\r\n }\r\n })\r\n\r\n return array\r\n}\r\n","import {extend} from 'quasar'\r\nimport {handleError} from '../../plugins/errors'\r\nimport qs from 'qs'\r\nimport {normalizeApiData, normalizeRow, oDataFilter, oDataHelper, oDataSort} from '../../utils/oData'\r\n\r\nconst globalConfig = {}\r\nconst defaultActions = {\r\n /**\r\n ********** Provides Defaults ***********\r\n */\r\n transformFilters ({ commit, state, getters }, config) {\r\n /* if (config && config.params && config.params.filter) {\r\n let newConfig = { ...config }\r\n const filter = newConfig.params.filter\r\n if (filter) {\r\n const newFilter = Object.keys(filter).reduce((filterObj, filterKey) => {\r\n if (filter[filterKey] === undefined || filter[filterKey] === '' || filter[filterKey] === null) {\r\n return filterObj\r\n }\r\n const nestedArray = filterKey.split('.')\r\n const newFilterKey = nestedArray.reduce((txt, nestedKey, counter) => {\r\n const camelCol = camelCase(nestedKey)\r\n const isRelation = state.columns.some(col => {\r\n // // // // console.log('>>> col', col.field, camelCol, !!col.relation)\r\n return col.field === camelCol && col.relation\r\n })\r\n // // // // console.log('--- is relation? --- ', isRelation)\r\n const appendDot = counter < nestedArray.length - 1 ? '.' : ''\r\n txt = isRelation ? `${txt}${camelCase(nestedKey)}${appendDot}` : `${txt}${camelCase(nestedKey)}${appendDot}`\r\n return txt\r\n }, '')\r\n filterObj[newFilterKey] = filter[filterKey]\r\n return filterObj\r\n }, {})\r\n newConfig.params.filter = Object.assign({}, newFilter)\r\n // -- pagination\r\n if (state.settings && state.settings.pagination) {\r\n const { page, rowsPerPage } = state.settings.pagination\r\n if (config.params.limit !== undefined) {\r\n newConfig.params.limit = config.params.limit\r\n } else {\r\n newConfig.params.limit = rowsPerPage || null\r\n }\r\n if (config.params.page !== undefined) {\r\n newConfig.params.page = config.params.page\r\n } else {\r\n newConfig.params.page = page || 1\r\n }\r\n }\r\n // // // console.log('----- NEW CONFIG --------', newConfig)\r\n return newConfig\r\n }\r\n } */\r\n return config\r\n },\r\n\r\n async apiDelete ({ commit, dispatch, state, getters }, { id, client, config = {}, parentId = null }) {\r\n const stateParams = {\r\n params: state.params\r\n }\r\n const configCombined = extend(true, {}, globalConfig, stateParams, config)\r\n let endpoint = getters.apiEndpoint(parentId)\r\n if (endpoint.includes('api/company')) {\r\n endpoint = '/api/delete/company/person'\r\n }\r\n try {\r\n const newConfig = await dispatch('transformFilters', configCombined)\r\n const { data } = await client.delete(`${endpoint}/${id}`, newConfig)\r\n commit('API_DESTROY', id)\r\n return data\r\n } catch (e) {\r\n return e\r\n }\r\n },\r\n async apiForceDelete ({ commit, dispatch, state, getters, rootGetters }, { id, client, config = {}, parentId = null, resource = null }) {\r\n // console.log('id', id, 'client', client, 'parentId', parentId)\r\n const stateParams = {\r\n params: state.params\r\n }\r\n const configCombined = extend(true, {}, globalConfig, stateParams, config)\r\n try {\r\n const newConfig = await dispatch('transformFilters', configCombined)\r\n let aspnetuserId = false\r\n if (getters.namespace === 'person' || resource === 'person') {\r\n // Remove user from person\r\n let config = {\r\n params: {\r\n $filter: `id eq ${id}`\r\n }\r\n }\r\n const personEnpoint = rootGetters[`person/apiEndpoint`]()\r\n const odataPersonEnpoint = personEnpoint.replace('/api/', '/api/odata/')\r\n const { data } = await client.get(`${odataPersonEnpoint}/paginate`, config)\r\n if (data && data.data && data.data.length && data.data[0].aspnetuserId) {\r\n aspnetuserId = data.data[0].aspnetuserId\r\n }\r\n }\r\n await dispatch('clearRelations', { id, client, parentId, resource })\r\n // return await dispatch('fetchAll', { client, parentId, config, fetchRelated, returnAll })\r\n // console.log('force delete', id)\r\n let data = {}\r\n if (resource) {\r\n let { data } = await client.delete(`/api/${resource}/${id}?harddelete=true`, {})\r\n } else {\r\n let { data } = await client.delete(`${getters.apiEndpoint(parentId)}/${id}?harddelete=true`, newConfig)\r\n }\r\n commit('API_DESTROY', id)\r\n if (aspnetuserId) {\r\n // delete aspnet user\r\n const userEnpoint = rootGetters[`aspnetuser/apiEndpoint`]()\r\n const userData = await client.delete(`${userEnpoint}/${aspnetuserId}?harddelete=true`, {})\r\n // console.log('delete user data', userData.data)\r\n }\r\n return data\r\n } catch (e) {\r\n return e\r\n }\r\n },\r\n async clearRelations ({ getters, rootGetters, dispatch }, { id, client, parentId = null, resource = null }) {\r\n let personData = []\r\n if (getters.namespace === 'person' || resource === 'person') {\r\n console.log('======= clearRelations person', id)\r\n let config = {\r\n params: {\r\n $filter: `billingPersonId eq ${id} or businessDevPersonId eq ${id} or counselPersonId eq ${id} or hrPersonId eq ${id} or marketingPersonId eq ${id} or primaryPersonId eq ${id} or safetyPersonId eq ${id} or chasePersonId eq ${id} or estimatorPersonId eq ${id} or estimator2PersonId eq ${id} or projectManagerPersonId eq ${id} or projectManager2PersonId eq ${id} or laborPersonId eq ${id}`\r\n }\r\n }\r\n const companyEnpoint = rootGetters[`company/apiEndpoint`]()\r\n const odataCompanyEnpoint = companyEnpoint.replace('/api/', '/api/odata/')\r\n const { data } = await client.get(`${odataCompanyEnpoint}/paginate`, config)\r\n // console.log('odataCompanyEnpoint', odataCompanyEnpoint, 'data', data)\r\n if (data && data.data && data.data.length) {\r\n let clearPerson = {}\r\n for (let company of data.data) {\r\n if (company.billingPersonId === id) {\r\n clearPerson.billingPersonId = null\r\n }\r\n if (company.businessDevPersonId === id) {\r\n clearPerson.businessDevPersonId = null\r\n }\r\n if (company.counselPersonId === id) {\r\n clearPerson.counselPersonId = null\r\n }\r\n if (company.hrPersonId === id) {\r\n clearPerson.hrPersonId = null\r\n }\r\n if (company.marketingPersonId === id) {\r\n clearPerson.marketingPersonId = null\r\n }\r\n if (company.primaryPersonId === id) {\r\n clearPerson.primaryPersonId = null\r\n }\r\n if (company.safetyPersonId === id) {\r\n clearPerson.safetyPersonId = null\r\n }\r\n if (company.chasePersonId === id) {\r\n clearPerson.chasePersonId = null\r\n }\r\n if (company.estimatorPersonId === id) {\r\n clearPerson.estimatorPersonId = null\r\n }\r\n if (company.estimator2PersonId === id) {\r\n clearPerson.estimator2PersonId = null\r\n }\r\n if (company.projectManagerPersonId === id) {\r\n clearPerson.projectManagerPersonId = null\r\n }\r\n if (company.projectManager2PersonId === id) {\r\n clearPerson.projectManager2PersonId = null\r\n }\r\n if (company.laborPersonId === id) {\r\n clearPerson.laborPersonId = null\r\n }\r\n // console.log('clearPerson', clearPerson)\r\n const { data } = await client.put(`${companyEnpoint}/${company.id}`, clearPerson)\r\n // console.log('after clearPerson from Company', data)\r\n }\r\n }\r\n } else if (getters.namespace === 'company' || resource === 'company') {\r\n // Remove persons from company\r\n // console.log('======= clearRelations company', id)\r\n let config = {\r\n params: {\r\n $filter: `companyId eq ${id}`\r\n }\r\n }\r\n const personEnpoint = rootGetters[`person/apiEndpoint`]()\r\n const odataPersonEnpoint = personEnpoint.replace('/api/', '/api/odata/')\r\n const { data } = await client.get(`${odataPersonEnpoint}/paginate`, config)\r\n if (data && data.data && data.data.length) {\r\n personData = data.data\r\n // console.log('personData', personData)\r\n for (let person of personData) {\r\n // console.log('person/apiForceDelete', person.id, 'person')\r\n const { data } = await client.put(`${personEnpoint}/${person.id}`, {companyId: null})\r\n // console.log('updated person', data)\r\n // await dispatch('apiForceDelete', { id: person.id, client, config: {}, parentId, resource: 'person' })\r\n }\r\n }\r\n }\r\n for (let column of getters.columns) {\r\n let linkTable = false\r\n let { field, relation } = column\r\n let foreignId = field\r\n let relationData = []\r\n let syncUrl = `${getters.apiEndpoint(parentId)}/${id}/sync`\r\n if (column && relation) {\r\n // console.log('relation', relation, 'column', column)\r\n if (relation.linkTable || relation.namespace === 'comment') {\r\n // if (relation.type === 'one') {\r\n // one to many\r\n // } else if (relation && relation.linkTable) {\r\n // many to many\r\n let model = relation.namespace\r\n if (relation.linkTableModel) {\r\n model = relation.linkTableModel\r\n linkTable = relation.linkTableModel\r\n } else if (column && column.field) {\r\n model = column.field\r\n linkTable = column.field\r\n }\r\n // console.log('model', model)\r\n const relationColumns = rootGetters[`${model}/columns`]\r\n if (relationColumns) {\r\n // console.log('relationColumns', relationColumns)\r\n const linkTableColumn = relationColumns.filter(col => col.relation && col.relation.namespace === relation.namespace)\r\n if (linkTableColumn && linkTableColumn[0] && linkTableColumn[0].relation && linkTableColumn[0].relation.fk) {\r\n foreignId = linkTableColumn[0].relation.fk\r\n }\r\n // console.log('linkTableColumn', linkTableColumn)\r\n try {\r\n if (linkTable) {\r\n syncUrl = `${syncUrl}?linkTable=${linkTable}&forceDelete=true`\r\n }\r\n const formData = {\r\n // [field]: relationData\r\n [foreignId]: relationData\r\n }\r\n // console.log('syncUrl', syncUrl)\r\n // console.log('formData', formData)\r\n await client.post(syncUrl, formData)\r\n } catch (e) {\r\n return e\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (personData && personData.length) {\r\n // console.log('Start apiForceDelete loop on personData')\r\n for (let person of personData) {\r\n await dispatch('apiForceDelete', {id: person.id, client, config: {}, parentId, resource: 'person'})\r\n }\r\n }\r\n },\r\n /*\r\n Bulk delete: soft delete by list of ids\r\n */\r\n async apiPurge ({ commit, dispatch, state, getters }, { id = [], field, value, client, config = {}, parentId = null }) {\r\n const configCombined = { ...globalConfig, ...{ params: state.params }, ...config }\r\n try {\r\n const newConfig = await dispatch('transformFilters', configCombined)\r\n let endpoint = getters.apiEndpoint(parentId)\r\n if (endpoint.includes('api/company')) {\r\n endpoint = '/api/company/bulk'\r\n }\r\n const { data } = await client.post(`${endpoint}/purge`, { id }, newConfig)\r\n // const pagination = state.settings.pagination\r\n // commit('SET_SETTING', {\r\n // field: 'selected',\r\n // value: []\r\n // })\r\n // commit('SET_PAGINATION', {\r\n // sortBy: pagination.sortBy ? pagination.sortBy : null,\r\n // descending: !!pagination.descending,\r\n // page: data.page || 1,\r\n // rowsPerPage: pagination.rowsPerPage || 25,\r\n // rowsNumber: data.total || 25\r\n // })\r\n if (data && data.data) {\r\n commit('FETCH_ALL', data.data)\r\n return data.total\r\n }\r\n } catch (e) {\r\n return e\r\n }\r\n },\r\n /*\r\n restore trashed items by list of ids\r\n */\r\n async apiRestore ({ commit, dispatch, state, getters }, { id = [], field, value, client, config = {}, parentId = null }) {\r\n const configCombined = extend(true, globalConfig, { params: state.params }, config, { params: { trashed: 1 } })\r\n let endpoint = getters.apiEndpoint(parentId)\r\n if (endpoint.includes('api/company')) {\r\n endpoint = '/api/company/bulk'\r\n }\r\n try {\r\n const newConfig = await dispatch('transformFilters', configCombined)\r\n const { data } = await client.post(`${endpoint}/restore`, { id }, newConfig)\r\n return data\r\n } catch (e) {\r\n return e\r\n }\r\n },\r\n async apiBulkUpdate ({ commit, dispatch, state, getters }, { type = null, fk = null, relation = false, id = [], field, value, client, config = {}, parentId = null }) {\r\n const configCombined = { ...globalConfig, ...{ params: state.params }, ...config }\r\n try {\r\n const patchData = {\r\n id: id,\r\n relation: relation,\r\n fk: fk,\r\n type: type,\r\n field: field,\r\n value: value\r\n }\r\n const newConfig = await dispatch('transformFilters', configCombined)\r\n const { data } = await client.post(`${getters.apiEndpoint(parentId)}/bulk-updates`, patchData, newConfig)\r\n if (data && data.data) {\r\n commit('FETCH_ALL', data.data)\r\n return data.total\r\n }\r\n } catch (e) {\r\n return e\r\n }\r\n },\r\n // async apiUpdate({ commit, dispatch, state, getters }, { id, model, client, config = {}, fetchRelated = true, parentId = null, returnAll = false }) {\r\n async apiInsert ({ commit, dispatch, state, getters }, { model, client, config = {}, fetchRelated = true, parentId = null, noFilters = false }) {\r\n const stateParams = {\r\n params: state.params\r\n }\r\n const stateFilters = {\r\n params: {\r\n filter: getters.filterColumns\r\n }\r\n }\r\n const configCombined = extend(true, {}, globalConfig, stateParams, stateFilters, config)\r\n try {\r\n const newConfig = await dispatch('transformFilters', noFilters ? config : configCombined)\r\n const { data } = await client.post(`${getters.apiEndpoint(parentId)}`, model, newConfig)\r\n commit('API_INSERT', data)\r\n // // // console.log('>> apiInsert')\r\n // // // console.log(data)\r\n return data\r\n } catch (e) {\r\n return e\r\n }\r\n },\r\n async search ({ commit, dispatch, state, getters }, { client, config = {}, parentId = null }) {\r\n let url = getters.apiEndpoint(parentId)\r\n url = url.replace('/api/', '/api/odata/') + '/paginate'\r\n // http://localhost:5000/api/odata/person/paginate\r\n // removalDate eq null AND guestData ne true AND approved eq true\r\n console.log('config', config)\r\n let odataConfig = config\r\n odataConfig.$filter = 'removalDate eq null AND guestData ne true'\r\n let { data } = await client.get(url, config)\r\n if (data && data.data) {\r\n const transformedData = data.data ? normalizeApiData(data, getters.columns, state.fakeColumns) : data.data\r\n delete data.data\r\n data.data = transformedData\r\n console.log('transformedData', transformedData)\r\n return data\r\n }\r\n // if (data && data.search_ids) {\r\n // // console.log('data.search_ids', data.search_ids)\r\n // // console.log('Pre Sort', data)\r\n // data = mapOrder(data.data, data.search_ids, 'id')\r\n // // console.log('Sorted Array', mapped)\r\n // // we want: 3788,103,2780,645,3847,2376,3569,683,550,1095\r\n // return data\r\n // }\r\n // if (data) {\r\n // return data\r\n // }\r\n },\r\n async fetchOne ({ commit, dispatch, state, getters }, { id, client, config = {}, parentId = null, noFilters = false, queue = true }) {\r\n const stateParams = {\r\n params: state.params\r\n }\r\n let configCombined = extend(true, {}, globalConfig, stateParams, config)\r\n if (noFilters && configCombined && configCombined.params && configCombined.params.filter) {\r\n delete configCombined.params.filter\r\n }\r\n if (noFilters && configCombined && configCombined.params && configCombined.params.limit) {\r\n delete configCombined.params.limit\r\n }\r\n if (noFilters && configCombined && configCombined.params && configCombined.params.sort) {\r\n delete configCombined.params.sort\r\n }\r\n if (noFilters && config) {\r\n configCombined = extend(true, {}, configCombined, config)\r\n }\r\n const newConfig = await dispatch('transformFilters', configCombined)\r\n\r\n // --------------------- ODATA ---------------------\r\n // console.log('state.params', state.params)\r\n // console.log('newConfig.params', newConfig.params)\r\n if (newConfig && newConfig.params && newConfig.params.include) {\r\n if (newConfig.params.odataInclude) {\r\n newConfig.params.$expand = newConfig.params.odataInclude\r\n } else {\r\n newConfig.params.$expand = oDataHelper(newConfig.params.include)\r\n }\r\n delete newConfig.params.include\r\n }\r\n if (newConfig && newConfig.params && newConfig.params.filter) {\r\n const module = state.namespace\r\n const oDataFilters = oDataFilter(newConfig.params.filter, module, state.fakeColumns)\r\n // // console.log('oDataFilters', oDataFilters)\r\n if (oDataFilters) {\r\n newConfig.params.$filter = `id eq ${id} and ` + oDataFilters\r\n // Object.assign(newConfig.params['$filter'], oDataFilters)\r\n // Object.assign(newConfig.params.$filter, oDataFilters)\r\n } else {\r\n newConfig.params.$filter = `id eq ${id}`\r\n }\r\n delete newConfig.params.filter\r\n } else {\r\n newConfig.params.$filter = `id eq ${id}`\r\n }\r\n // !--------------------- ODATA ---------------------\r\n\r\n /* Queue -- Method to reduce duplicate requests */\r\n // const url = `${getters.apiEndpoint(parentId)}/${id}`\r\n let url = `${getters.apiEndpoint(parentId)}` // ODATA\r\n url = url.replace('/api/', '/api/odata/') // ODATA\r\n url = `${url}/paginate` // ODATA\r\n\r\n const query = qs.stringify(newConfig)\r\n const queueExists = await dispatch('queue/find', { url, query }, { root: true })\r\n if (queueExists && queue) {\r\n const record = state.records.find(r => r.id === id)\r\n // console.log('queue record', record, 'queueExists', queueExists)\r\n if (record) {\r\n return record\r\n }\r\n }\r\n const queueId = await dispatch('queue/add', { url, query }, { root: true })\r\n // console.log('queueId', queueId)\r\n try {\r\n const { data } = await client.get(url, newConfig)\r\n const transformedData = normalizeRow(data.data[0], getters.columns, state.fakeColumns)\r\n commit('API_INSERT', transformedData)\r\n // await dispatch('queue/remove', queueId, { root: true })\r\n // console.log('transformedData', transformedData)\r\n return transformedData\r\n } catch (e) {\r\n await dispatch('queue/remove', queueId, { root: true })\r\n handleError(e, this)\r\n return null\r\n }\r\n },\r\n async groupBy ({ commit, dispatch, state, getters }, { client, parentId = null, group = null }) {\r\n const config = {\r\n params: {\r\n group,\r\n page: 1,\r\n limit: null,\r\n include: state.params.include,\r\n filter: {}\r\n }\r\n }\r\n let newConfig = await dispatch('transformFilters', config)\r\n // // // console.log(newConfig)\r\n const { data } = await client.get(`${getters.apiEndpoint(parentId)}`, newConfig)\r\n if (data) {\r\n commit('FETCH_ALL', data.data)\r\n }\r\n },\r\n // TODO: This is causing a maximum stack size issue\r\n async paginate ({ commit, dispatch, state, getters }, { client, pagination, search = null, parentId = null, trashed = null, noFilters = false, noTransform = false, config = {} }) {\r\n const { sortBy, descending, page, rowsPerPage } = pagination\r\n const filterColumns = getters.filterColumns\r\n const filtersToApply = Object.keys(getters.filterColumns)\r\n .filter(key => filterColumns[key] !== null)\r\n .reduce((obj, key) => {\r\n obj[key] = filterColumns[key]\r\n return obj\r\n }, {})\r\n const sortSign = descending ? '-' : ''\r\n const sortByOdata = oDataSort(sortBy, state.namespace, state.fakeColumns)\r\n let sort = null\r\n if (!search) {\r\n if (state && state.defaultSort) {\r\n sort = state.defaultSort\r\n }\r\n if (sortByOdata) {\r\n sort = `${sortSign}${sortByOdata}`\r\n }\r\n }\r\n const defaultConfig = {\r\n params: {\r\n sort,\r\n trashed,\r\n page,\r\n search,\r\n limit: rowsPerPage,\r\n include: state.params.include,\r\n filter: noFilters ? {} : filtersToApply\r\n }\r\n }\r\n let newConfig = extend(true, {}, defaultConfig, config)\r\n // console.log('state.params', state.params)\r\n // console.log('newConfig.params', newConfig.params)\r\n if (newConfig && newConfig.params && newConfig.params.include) {\r\n if (state.params.odataInclude) {\r\n newConfig.params.$expand = state.params.odataInclude\r\n } else {\r\n newConfig.params.$expand = oDataHelper(newConfig.params.include)\r\n }\r\n delete newConfig.params.include\r\n }\r\n if (newConfig && newConfig.params && newConfig.params.filter) {\r\n const module = state.namespace\r\n const oDataFilters = oDataFilter(newConfig.params.filter, module, state.fakeColumns)\r\n if (oDataFilters) {\r\n newConfig.params.$filter = oDataFilters\r\n }\r\n delete newConfig.params.filter\r\n }\r\n if (trashed) {\r\n newConfig.params.$filter = newConfig.params.$filter ? newConfig.params.$filter + ' AND removalDate ne null' : 'removalDate ne null'\r\n } else {\r\n newConfig.params.$filter = newConfig.params.$filter ? newConfig.params.$filter + ' AND removalDate eq null' : 'removalDate eq null'\r\n }\r\n if (state && state.namespace && (state.namespace === 'company' || state.namespace === 'person') && state.guestData) {\r\n if (state.guestData === 'only') {\r\n newConfig.params.$filter = newConfig.params.$filter ? newConfig.params.$filter + ` AND guestData eq true` : `guestData eq true`\r\n } else if (state.guestData === 'without' || state.guestData === null) {\r\n newConfig.params.$filter = newConfig.params.$filter ? newConfig.params.$filter + ` AND guestData ne true` : `guestData ne true`\r\n }\r\n }\r\n if (state && state.namespace && (state.namespace === 'company' || state.namespace === 'person' || state.namespace === 'address') && state.unapprovedData) {\r\n if (state.unapprovedData === 'only') {\r\n newConfig.params.$filter = newConfig.params.$filter ? newConfig.params.$filter + ` AND approved ne true` : `approved ne true`\r\n } else if (state.unapprovedData === 'without' || state.unapprovedData === null) {\r\n newConfig.params.$filter = newConfig.params.$filter ? newConfig.params.$filter + ` AND approved eq true` : `approved eq true`\r\n }\r\n }\r\n let url = getters.apiEndpoint(parentId)\r\n url = url.replace('/api/', '/api/odata/')\r\n url = `${url}/paginate`\r\n let ExcelUrl = url.replace('paginate', 'excel')\r\n let ExcelPrettyUrl = url.replace('paginate', 'excel')\r\n let urlConcat = '?'\r\n if (state.excelExport && (state.excelExport.include || state.excelExport.select)) {\r\n ExcelPrettyUrl = url.replace('paginate', 'prettyexcel')\r\n }\r\n if (state.excelExport && state.excelExport.include) {\r\n ExcelPrettyUrl += `?$expand=${state.excelExport.include}`\r\n urlConcat = '&'\r\n } else if (newConfig && newConfig.params.$expand) {\r\n ExcelPrettyUrl += `?$expand=${newConfig.params.$expand}`\r\n urlConcat = '&'\r\n }\r\n if (newConfig && newConfig.params.$expand) {\r\n ExcelUrl += `?$expand=${newConfig.params.$expand}`\r\n urlConcat = '&'\r\n }\r\n if (state.excelExport && state.excelExport.select) {\r\n ExcelPrettyUrl += urlConcat + `$select=${state.excelExport.select}`\r\n }\r\n if (newConfig && newConfig.params.$filter) {\r\n ExcelUrl += urlConcat + `$filter=${newConfig.params.$filter}`\r\n ExcelPrettyUrl += urlConcat + `$filter=${newConfig.params.$filter}`\r\n }\r\n ExcelUrl = decodeURIComponent(ExcelUrl)\r\n .replace(/\\[/g, '(')\r\n .replace(/]/g, ')')\r\n ExcelPrettyUrl = decodeURIComponent(ExcelPrettyUrl)\r\n .replace(/\\[/g, '(')\r\n .replace(/]/g, ')')\r\n if (state.excelExport && (state.excelExport.include || state.excelExport.select)) {\r\n ExcelUrl = ExcelPrettyUrl\r\n }\r\n commit('EXCEL_DOWN', ExcelUrl)\r\n commit('EXCEL_DOWN_PRETTY', ExcelPrettyUrl)\r\n try {\r\n const { data } = await client.get(url, newConfig)\r\n if (data) {\r\n // -- normalize data\r\n const transformedData = noTransform ? data.data : normalizeApiData(data, getters.columns, state.fakeColumns)\r\n const newPagination = {\r\n sortBy,\r\n descending,\r\n page,\r\n rowsPerPage,\r\n rowsNumber: data.total || 25\r\n }\r\n commit('SET_PAGINATION', newPagination)\r\n commit('FETCH_ALL', transformedData)\r\n return {\r\n ...newPagination,\r\n ...{ data: transformedData }\r\n }\r\n }\r\n commit('FETCH_ALL', [])\r\n return []\r\n } catch (e) {\r\n handleError(e, this)\r\n }\r\n },\r\n async fetchAll ({ commit, dispatch, state, getters }, { client, fetchRelated = true, parentId = null, config = {}, noFilters = false, shouldCommit = true }) {\r\n const stateParams = {\r\n params: state.params\r\n }\r\n const stateFilters = {\r\n params: {\r\n filter: getters.filterColumns\r\n }\r\n }\r\n let configCombined = extend(true, {}, globalConfig, stateParams, stateFilters, config)\r\n if (noFilters) {\r\n if (configCombined && configCombined.params && configCombined.params.filter) {\r\n delete configCombined.params.filter\r\n }\r\n if (configCombined && configCombined.params && configCombined.params.limit) {\r\n delete configCombined.params.limit\r\n }\r\n if (configCombined && configCombined.params && configCombined.params.sort) {\r\n delete configCombined.params.sort\r\n }\r\n if (config) {\r\n configCombined = extend(true, {}, configCombined, config)\r\n }\r\n }\r\n let newConfig = await dispatch('transformFilters', config)\r\n if (newConfig.params.include) {\r\n newConfig.params.$expand = oDataHelper(newConfig.params.include)\r\n delete newConfig.params.include\r\n }\r\n let url = getters.apiEndpoint(parentId)\r\n url = url.replace('/api/', '/api/odata/')\r\n url = `${url}/paginate`\r\n // commit('EXCEL_DOWN', url)\r\n /* Queue -- Method to reduce duplicate requests */\r\n try {\r\n const { data } = await client.get(url, newConfig)\r\n if (data && data.data) {\r\n // -- normalize data\r\n const transformedData = normalizeApiData(data, getters.columns, state.fakeColumns)\r\n delete data.data\r\n data.data = transformedData\r\n if (shouldCommit) {\r\n commit('FETCH_ALL', data.data)\r\n }\r\n return data\r\n }\r\n } catch (e) {\r\n handleError(e, this)\r\n }\r\n },\r\n async apiExcel ({ commit, dispatch, state, getters }, { client, fetchRelated = true, parentId = null, config = {}, noFilters = false }) {\r\n const stateParams = {\r\n params: state.params\r\n }\r\n const stateFilters = {\r\n params: {\r\n filter: getters.filterColumns\r\n }\r\n }\r\n const configCombined = extend(true, {}, globalConfig, stateParams, stateFilters, config)\r\n try {\r\n let newConfig = {}\r\n if (!noFilters) {\r\n newConfig = await dispatch('transformFilters', configCombined)\r\n }\r\n newConfig.responseType = 'arraybuffer'\r\n // // // console.log(newConfig)\r\n return await client.get(`/excel${getters.apiEndpoint(parentId)}`, newConfig)\r\n } catch (e) {\r\n // // // console.log(e)\r\n return Promise.reject(e)\r\n }\r\n },\r\n async apiUpdate ({ commit, dispatch, state, getters }, { id, model, client, config = {}, fetchRelated = true, parentId = null, returnAll = false }) {\r\n const stateParams = {\r\n params: state.params\r\n }\r\n const configCombined = extend(true, {}, globalConfig, stateParams, config)\r\n try {\r\n const newConfig = await dispatch('transformFilters', configCombined)\r\n // console.log('model 1', model)\r\n if (model && model['guidId'] !== undefined) {\r\n delete model.guidId\r\n }\r\n // console.log('model 2', model)\r\n // console.log('newConfig', newConfig)\r\n // console.log('dispatch(\\'transformFilters\\', newConfig)', dispatch('transformFilters', newConfig))\r\n // const { data } = await client.put(`${getters.apiEndpoint(parentId)}/${id}`, model, dispatch('transformFilters', newConfig))\r\n const { data } = await client.put(`${getters.apiEndpoint(parentId)}/${id}`, model, newConfig)\r\n commit('API_UPDATE', { id: id, updates: data })\r\n if (returnAll) {\r\n return await dispatch('fetchAll', { client, parentId, config, fetchRelated, returnAll })\r\n }\r\n return data\r\n } catch (e) {\r\n // // // console.log(e)\r\n }\r\n },\r\n async excel ({ commit, dispatch, state, getters }, { client, fetchRelated = true, parentId = null, config = {}, noFilters = false, shouldCommit = true }) {\r\n // // console.log('excel')\r\n const stateParams = {\r\n params: state.params\r\n }\r\n const stateFilters = {\r\n params: {\r\n filter: getters.filterColumns\r\n }\r\n }\r\n let configCombined = extend(true, {}, globalConfig, stateParams, stateFilters, config)\r\n if (noFilters) {\r\n if (configCombined && configCombined.params && configCombined.params.filter) {\r\n delete configCombined.params.filter\r\n }\r\n if (configCombined && configCombined.params && configCombined.params.limit) {\r\n delete configCombined.params.limit\r\n }\r\n if (configCombined && configCombined.params && configCombined.params.sort) {\r\n delete configCombined.params.sort\r\n }\r\n if (config) {\r\n configCombined = extend(true, {}, configCombined, config)\r\n }\r\n }\r\n let newConfig = await dispatch('transformFilters', config)\r\n if (newConfig.params.include) {\r\n newConfig.params.$expand = oDataHelper(newConfig.params.include)\r\n delete newConfig.params.include\r\n }\r\n let url = getters.apiEndpoint(parentId)\r\n url = url.replace('/api/', '/api/odata/')\r\n url = `${url}/excel`\r\n return url\r\n }\r\n}\r\n\r\nexport default actions => {\r\n return extend(true, {}, defaultActions, actions)\r\n}\r\n"],"sourceRoot":""}