Files
doneit-web/.angular/cache/14.2.12/babel-webpack/845955ab27fc7ce3892468efb3017d22.json
T

1 line
12 KiB
JSON
Raw Normal View History

2023-06-30 09:54:21 +01:00
{"ast":null,"code":"import { OperatorsKeysArray, operator, ObjOperatorOverwrite, ArrOperatorOverwrite } from \"./object-operator.js\";\nimport { info } from \"./operators.js\";\nexport class argsAttributes {\n constructor(args, TableSchema) {\n this.TableSchema = TableSchema;\n this.value = [];\n this.schemeFields = ({} = {});\n for (const field of this.TableSchema.fields) {\n this.schemeFields[field.name] = field;\n }\n this.schemeFields[this.TableSchema.id.keyPath] = {\n keyPath: this.TableSchema.id.keyPath,\n name: this.TableSchema.id.keyPath,\n className: 'IntegerField'\n };\n if (args.constructor.name != 'Array') {\n args = [args];\n }\n const conditions = this.argsPrettyTransform(args);\n this.value = this.analyzeArgs(conditions);\n }\n analyzeArgs(conditions) {\n return conditions.map(condition => {\n const newObject = {};\n const keys = Object.keys(condition);\n for (let field of keys) {\n let fieldName;\n let fieldPath;\n let arg;\n const element = field.split('__');\n if (element.length == 1) {\n element.push('eq');\n }\n let operation = element[element.length - 1];\n if (OperatorsKeysArray.includes(operation)) {\n operation = element.pop();\n } else {\n operation = 'eq';\n }\n fieldName = element[0];\n fieldPath = element.join('.');\n if (OperatorsKeysArray.includes(operation)) {\n arg = condition[field];\n } else {\n throw 'operator';\n }\n const fieldClassName = this.detectClassName(fieldName);\n newObject[field] = {\n fieldName: fieldName,\n fieldPath: fieldPath,\n operation: operation,\n operationArg: arg,\n operator: this.detectOperator(fieldClassName, operation, fieldName),\n fieldClassName: fieldClassName\n };\n if (fieldClassName == 'indexedDBArrayField' || fieldClassName == 'indexedDBJsonField') {\n newObject[field]['customData'] = info.run;\n } else {\n newObject[field]['customData'] = () => {};\n }\n }\n return newObject;\n });\n }\n detectClassName(fieldName) {\n return this.schemeFields[fieldName].className;\n }\n detectOperator(fieldClassName, operation, fieldName) {\n try {\n if (fieldClassName == 'indexedDBJsonField') {\n return ObjOperatorOverwrite[operation];\n } else if (fieldClassName == 'indexedDBArrayField') {\n return ArrOperatorOverwrite[operation];\n } else {\n return operator[operation];\n }\n } catch (err) {\n throw 'Field ' + fieldName + ' does not exit on the table' + err;\n }\n }\n argsPrettyTransform(args) {\n const conditions = [];\n const loop = o => {\n // https://stackoverflow.com/a/38597076/14115342\n const condition = {};\n for (const k of Object.keys(o)) {\n if (o[k].constructor.name === 'Array') {\n loop(o[k]);\n } else {\n if (o.constructor.name === 'Array') {\n for (const j of Object.keys(o[k])) {\n condition[j] = o[k][j];\n }\n } else {\n condition[k] = o[k];\n }\n }\n }\n if (JSON.stringify(condition) !== '{}') {\n conditions.push(condition);\n }\n };\n loop(args);\n return conditions;\n }\n}","map":{"version":3,"names":["OperatorsKeysArray","operator","ObjOperatorOverwrite","ArrOperatorOverwrite","info","argsAttributes","constructor","args","TableSchema","value","schemeFields","field","fields","name","id","keyPath","className","conditions","argsPrettyTransform","analyzeArgs","map","condition","newObject","keys","Object","fieldName","fieldPath","arg","element","split","length","push","operation","includes","pop","join","fieldClassName","detectClassName","operationArg","detectOperator","run","err","loop","o","k","j","JSON","stringify"],"sources":["C:/Users/eudes.inacio/GabineteDigital/gabinete-digital-f