{"version":3,"file":"static/js/119.79b9c904.chunk.js","mappings":"gOAEMA,EAAS,6CACXC,cAAgB,SAACC,EAAQC,GACrB,OAAOD,EAAOE,SAASD,EAC3B,EAAE,KAEFE,WAAa,SAACH,EAAQC,GAClB,IAAIG,EACJ,OAAuB,IAAnBH,EAAQI,SAEJJ,EAAQK,OACJ,SAACC,GAAC,OAAKC,EAAAA,GAAAA,WAAoBD,EAAG,cAAcE,OAAO,KAEvDD,EAAAA,GAAAA,WAAoBR,EAAQ,cAAcS,SAE1CL,EAAMH,EAAQS,MAAK,SAACC,EAAGC,GAAC,OAAK,IAAIC,KAAKF,GAAK,IAAIE,KAAKD,EAAE,IAGlDJ,EAAAA,GAAAA,WAAoBR,EAAQ,cAAcc,iBACtCN,EAAAA,GAAAA,WACIJ,EAAI,GACJ,cACFU,iBACNN,EAAAA,GAAAA,WAAoBR,EAAQ,cAAcc,iBACtCN,EAAAA,GAAAA,WACIJ,EAAI,GACJ,cACFU,oBAGVb,EAAQK,OAAM,SAACC,GAAC,MAA4B,kBAAhBQ,SAASR,EAAe,KACnDC,EAAAA,GAAAA,WAAoBR,EAAQ,cAAcS,SACf,kBAArBM,SAASf,MAGTA,IADPI,EAAMH,EAAQS,MAAK,SAACC,EAAGC,GAAC,OAAKD,EAAIC,CAAC,KACb,IAAMZ,GAAUI,EAAI,IAOrD,EAAE,KAEFY,QAAU,SAAChB,EAAQC,GACf,OAAOA,EAAQgB,WAAU,SAACV,GAAC,OAAKA,IAAMP,CAAM,KAAK,CACrD,EAAE,KAEFkB,WAAa,SAAClB,EAAQC,GAClB,OAAOD,IAAWC,CACtB,EAAE,KAEFkB,gBAAkB,SAACnB,EAAQC,GACvB,OAAOD,EAAOoB,WAAWnB,EAC7B,EAAE,KAEFoB,WAAa,SAACrB,EAAO,GAAsB,IAAnBsB,EAAK,EAALA,MAAOC,EAAI,EAAJA,KAE3B,OADc,IAAIC,OAAOF,EAAOC,GACnBE,KAAKzB,EACtB,EAAE,KAEF0B,iBAAmB,SAAC1B,EAAQC,GACxB,OAAOc,SAASf,GAAUe,SAASd,EACvC,EAAE,KAEF0B,wBAA0B,SAAC3B,EAAQC,GAC/B,OAAOc,SAASf,IAAWe,SAASd,EACxC,EAAE,KAEF2B,eAAiB,SAAC5B,EAAQC,GACtB,OAAOc,SAASf,GAAUe,SAASd,EACvC,EAAE,KAEF4B,sBAAwB,SAAC7B,EAAQC,GAC7B,OAAOc,SAASf,IAAWe,SAASd,EACxC,EAAE,KAEF6B,UAAY,SAAC1B,EAAK2B,GACd,IAAIC,EAAM5B,EAAI6B,QAAO,SAAC1B,GAAC,YAAW2B,IAAN3B,CAAe,IAE3C,MAAa,QAATwB,IACOC,EAAI3B,QAAS2B,EAAI1B,OAAM,SAACC,GAAC,OAAKA,CAAC,IACtB,OAATwB,EACAC,EAAIf,WAAU,SAACV,GAAC,OAAKA,CAAC,KAAK,OAD/B,CAGX,CAAE,CA2KD,OA3KA,sCAED,SAAe4B,EAAWC,GACtB,IAC4D,EADxDJ,EAAM,GAAG,UACeK,OAAOC,KAAKH,GAAWI,WAAS,IAA5D,2BAA8D,CAAC,IAAD,qBAAlDC,EAAK,KAAEC,EAAI,KACbC,EAAgBP,EAAUM,GAEhC,OAAQA,GACJ,IAAK,WACDT,EAAIW,KAAKC,KAAK7C,cAAcqC,EAAWM,IACvC,MACJ,IAAK,cACDV,EAAIW,MAAMC,KAAK7C,cAAcqC,EAAWM,IACxC,MACJ,IAAK,cACDV,EAAIW,KAAKC,KAAKzB,gBAAgBiB,EAAWM,IACzC,MACJ,IAAK,iBACDV,EAAIW,MAAMC,KAAKzB,gBAAgBiB,EAAWM,IAC1C,MACJ,IAAK,SACDV,EAAIW,KACAC,KAAKvB,WAAWe,EAAW,CACvBd,MAAOoB,EACPnB,KAAMY,EAAU,YACVA,EAAmB,QACnB,MAGd,MACJ,IAAK,MACDH,EAAIW,KAAKC,KAAK1B,WAAWkB,EAAWM,IACpC,MACJ,IAAK,MACDV,EAAIW,MAAMC,KAAK1B,WAAWkB,EAAWM,IACrC,MACJ,IAAK,MACDV,EAAIW,KAAKC,KAAK5B,QAAQoB,EAAWM,IACjC,MACJ,IAAK,OACDV,EAAIW,MAAMC,KAAK5B,QAAQoB,EAAWM,IAClC,MACJ,IAAK,MACDV,EAAIW,KAAKC,KAAKlB,iBAAiBU,EAAWM,IAC1C,MACJ,IAAK,OACDV,EAAIW,KACAC,KAAKjB,wBAAwBS,EAAWM,IAE5C,MACJ,IAAK,MACDV,EAAIW,KAAKC,KAAKhB,eAAeQ,EAAWM,IACxC,MACJ,IAAK,OACDV,EAAIW,KACAC,KAAKf,sBAAsBO,EAAWM,IAE1C,MACJ,IAAK,SACDV,EAAIW,KAAKC,KAAKzC,WAAWiC,EAAWM,IAM5C,GAAIF,IAAUH,OAAOC,KAAKH,GAAW9B,OAAS,EAC1C,OAAOuC,KAAKd,UAAUE,EAAK,MAEnC,CAAC,+BACL,GAAC,kBAED,SAAKG,EAAWU,GAAiB,IAAD,OAAXd,EAAI,uDAAG,GACxB,OAAO,IAAIe,QAAO,yCAAC,WAAOC,EAASC,GAAM,gHACxB,GAAThB,EAAM,IAENiB,MAAMC,QAAQf,GAAW,CAAD,0BACGA,EAAUI,WAAS,yDACvC,OADuC,qBAAlCC,EAAK,KAAEW,EAAG,UAClBnB,EAAG,UACO,EAAKoB,KACPD,EAAI,QACEA,EAAI,QACJA,EAAI,OACJA,EAAI,OACJA,EACNN,EACAM,EAAI,QAAU,MAAQA,EAAI,OAAS,KAAOpB,GAC7C,yBATDY,KAAI,gBAYJH,IAAUL,EAAU9B,OAAS,GAC7B0C,EAAQ,EAAKjB,UAAUE,EAAKD,IAC/B,0KAEuB,kBAAdI,IAA0BJ,EAAI,iBACV,OAA9BsB,EAAQhB,OAAOC,KAAKH,GAAW,EAAD,QACH,mCAAqB,KAAD,YAAlCmB,EAAG,EAAZC,QAAO,UACgBF,EAAMd,WAAS,IAA9C,2BAAiD,GAAD,kBAApCC,EAAK,KAAEgB,EAAO,KAElBrB,EAAUqB,IACVrB,EAAUqB,GAAS,YACe,aAAlCrB,EAAUqB,GAAS,YACnBrB,EAAUqB,GAAS,YAEbC,EAAOD,EAAQtD,SAAS,KACxBoD,EACIT,EACAW,EAAQE,MAAM,KAAKC,MAAM,GAAI,GAAGC,KAAK,MAEzCf,EAEAvB,GAAQ,EAAAgC,EAAIT,EAAKW,IAASK,KAAI,SAChCJ,GAAI,eACDtB,EAAUqB,GAAS,cAGtBM,EAAiB,EAAKA,eACtB3B,EAAUqB,GACVlC,GAGJU,EAAIW,KAAKmB,IACF3B,EAAUqB,IAAYX,EAAIW,IAC7BM,EAAiB,EAAKA,eACtB3B,EAAUqB,GACVX,EAAIW,IAERxB,EAAIW,KAAKmB,IAET9B,EAAIW,MAAK,GAGTH,IAAUa,EAAMhD,OAAS,GACzB0C,EAAQ,EAAKjB,UAAUE,EAAKD,GAEnC,+FAER,qDAhEiB,GAiEtB,GAAC,+DAED,WAAegC,EAAMC,GAAO,oHAAEC,EAAQ,+BAAG,GAAIC,EAAS,+BAAG,GACjDlC,EAAM,CAAC,EAELmC,EAAW,SAACC,EAAKvB,GACnB,OAAOuB,EAAIV,MAAM,KAAKW,QAAO,SAAU1D,EAAGC,GACtC,OAAOD,GAAKA,EAAEC,EAClB,GAAGiC,EACP,EAAE,GAAD,OAE6BkB,GAAI,mEAArBO,EAAG,EAAHA,IAAQC,GAAG,YACdC,EAAWL,EAASF,EAAUM,GAAK,GAAD,OAErBC,GAAQ,2DAStB,GATM/B,EAAI,QACPgC,OAAG,EACHC,OAAE,EACFR,GACAO,EAAMhC,EAAKyB,GAAW,QACtBQ,EAAKjC,EAAKyB,GAAW,SAErBO,EAAMhC,EAAK,QACXiC,EAAKjC,EAAK,QAETT,EAAIsC,GAAK,CAAD,iCACQ1B,KAAKQ,KAClBqB,GAAYC,EACZV,EACAS,EAAM,MAAQ,MAChB,KAAD,GAJDzC,EAAIsC,GAAI,wTAQbtC,GAAG,8EACb,qDAlCA,MAkCA,EA/PU,GAkQf,cAAmBlC,C","sources":["utils/vote.js"],"sourcesContent":["import { DateTime } from \"luxon\";\n\nclass VoteClass {\n checkContains = (objVal, ruleVal) => {\n return objVal.includes(ruleVal);\n };\n\n checkRange = (objVal, ruleVal) => {\n let arr;\n if (ruleVal.length === 2) {\n if (\n ruleVal.every(\n (e) => DateTime.fromFormat(e, \"YYYY-MM-DD\").isValid\n ) &&\n DateTime.fromFormat(objVal, \"YYYY-MM-DD\").isValid\n ) {\n arr = ruleVal.sort((a, b) => new Date(a) - new Date(b));\n\n return (\n DateTime.fromFormat(objVal, \"YYYY-MM-DD\").toUnixInteger() >=\n DateTime.fromFormat(\n arr[0],\n \"YYYY-MM-DD\"\n ).toUnixInteger() &&\n DateTime.fromFormat(objVal, \"YYYY-MM-DD\").toUnixInteger() <=\n DateTime.fromFormat(\n arr[1],\n \"YYYY-MM-DD\"\n ).toUnixInteger()\n );\n } else if (\n ruleVal.every((e) => typeof parseInt(e) === \"number\") &&\n !DateTime.fromFormat(objVal, \"YYYY-MM-DD\").isValid &&\n typeof parseInt(objVal) === \"number\"\n ) {\n arr = ruleVal.sort((a, b) => a - b);\n return objVal >= arr[0] && objVal <= arr[1];\n } else {\n return false;\n }\n } else {\n return false;\n }\n };\n\n checkIn = (objVal, ruleVal) => {\n return ruleVal.findIndex((e) => e === objVal) >= 0;\n };\n\n checkEqual = (objVal, ruleVal) => {\n return objVal === ruleVal;\n };\n\n checkStartsWith = (objVal, ruleVal) => {\n return objVal.startsWith(ruleVal);\n };\n\n checkRegex = (objVal, { value, opts }) => {\n const regex = new RegExp(value, opts);\n return regex.test(objVal);\n };\n\n checkGreaterthan = (objVal, ruleVal) => {\n return parseInt(objVal) > parseInt(ruleVal);\n };\n\n checkGreaterthanOrEqual = (objVal, ruleVal) => {\n return parseInt(objVal) >= parseInt(ruleVal);\n };\n\n checkLowerthan = (objVal, ruleVal) => {\n return parseInt(objVal) < parseInt(ruleVal);\n };\n\n checkLowerthanOrEqual = (objVal, ruleVal) => {\n return parseInt(objVal) <= parseInt(ruleVal);\n };\n\n getResult = (arr, type) => {\n let res = arr.filter((e) => e !== undefined);\n\n if (type === \"and\") {\n return res.length ? res.every((e) => e) : false;\n } else if (type === \"or\") {\n return res.findIndex((e) => e) >= 0;\n }\n };\n\n checkCondition(setOfTest, valToTest) {\n let res = [];\n for (const [index, rule] of Object.keys(setOfTest).entries()) {\n const valueDocument = setOfTest[rule];\n\n switch (rule) {\n case \"#contain\":\n res.push(this.checkContains(valToTest, valueDocument));\n break;\n case \"#notContain\":\n res.push(!this.checkContains(valToTest, valueDocument));\n break;\n case \"#startsWith\":\n res.push(this.checkStartsWith(valToTest, valueDocument));\n break;\n case \"#notStartsWith\":\n res.push(!this.checkStartsWith(valToTest, valueDocument));\n break;\n case \"#regex\":\n res.push(\n this.checkRegex(valToTest, {\n value: valueDocument,\n opts: setOfTest[\"#options\"]\n ? setOfTest[\"options\"]\n : \"\",\n })\n );\n break;\n case \"#eq\":\n res.push(this.checkEqual(valToTest, valueDocument));\n break;\n case \"#ne\":\n res.push(!this.checkEqual(valToTest, valueDocument));\n break;\n case \"#in\":\n res.push(this.checkIn(valToTest, valueDocument));\n break;\n case \"#nin\":\n res.push(!this.checkIn(valToTest, valueDocument));\n break;\n case \"#gt\":\n res.push(this.checkGreaterthan(valToTest, valueDocument));\n break;\n case \"#gte\":\n res.push(\n this.checkGreaterthanOrEqual(valToTest, valueDocument)\n );\n break;\n case \"#lt\":\n res.push(this.checkLowerthan(valToTest, valueDocument));\n break;\n case \"#lte\":\n res.push(\n this.checkLowerthanOrEqual(valToTest, valueDocument)\n );\n break;\n case \"#range\":\n res.push(this.checkRange(valToTest, valueDocument));\n break;\n default:\n break;\n }\n\n if (index === Object.keys(setOfTest).length - 1) {\n return this.getResult(res, \"and\");\n }\n }\n }\n\n vote(setOfTest, obj, type = \"\") {\n return new Promise(async (resolve, reject) => {\n let res = [];\n\n if (Array.isArray(setOfTest)) {\n for (const [index, elt] of setOfTest.entries()) {\n res.push(\n await this.vote(\n elt[\"#and\"]\n ? elt[\"#and\"]\n : elt[\"#or\"]\n ? elt[\"#or\"]\n : elt,\n obj,\n elt[\"#and\"] ? \"and\" : elt[\"#or\"] ? \"or\" : type\n )\n );\n\n if (index === setOfTest.length - 1) {\n resolve(this.getResult(res, type));\n }\n }\n } else if (typeof setOfTest === \"object\" && type) {\n let kTest = Object.keys(setOfTest);\n const { default: get } = await import(\"lodash/get\");\n for (const [index, valTest] of kTest.entries()) {\n if (\n setOfTest[valTest] &&\n setOfTest[valTest][\"#typeof\"] &&\n setOfTest[valTest][\"#typeof\"] === \"function\" &&\n setOfTest[valTest][\"#params\"]\n ) {\n const THIS = valTest.includes(\".\")\n ? get(\n obj,\n valTest.split(\".\").slice(0, -1).join(\".\")\n )\n : obj;\n\n const value = get(obj, valTest).call(\n THIS,\n ...setOfTest[valTest][\"#params\"]\n );\n\n let checkCondition = this.checkCondition(\n setOfTest[valTest],\n value\n );\n\n res.push(checkCondition);\n } else if (setOfTest[valTest] && obj[valTest]) {\n let checkCondition = this.checkCondition(\n setOfTest[valTest],\n obj[valTest]\n );\n res.push(checkCondition);\n } else {\n res.push(false);\n }\n\n if (index === kTest.length - 1) {\n resolve(this.getResult(res, type));\n }\n }\n }\n });\n }\n\n async evaluate(docs, objTest, docField = \"\", ruleField = \"\") {\n let res = {};\n\n const getValue = (key, obj) => {\n return key.split(\".\").reduce(function (a, b) {\n return a && a[b];\n }, obj);\n };\n\n for (const { _id, ...doc } of docs) {\n const property = getValue(docField, doc);\n\n for (const rule of property) {\n let and;\n let or;\n if (ruleField) {\n and = rule[ruleField][\"#and\"];\n or = rule[ruleField][\"#or\"];\n } else {\n and = rule[\"#and\"];\n or = rule[\"#or\"];\n }\n if (!res[_id])\n res[_id] = await this.vote(\n and ? and : or,\n objTest,\n and ? \"and\" : \"or\"\n );\n }\n }\n\n return res;\n }\n}\n\nexport default new VoteClass();\n"],"names":["VoteClass","checkContains","objVal","ruleVal","includes","checkRange","arr","length","every","e","DateTime","isValid","sort","a","b","Date","toUnixInteger","parseInt","checkIn","findIndex","checkEqual","checkStartsWith","startsWith","checkRegex","value","opts","RegExp","test","checkGreaterthan","checkGreaterthanOrEqual","checkLowerthan","checkLowerthanOrEqual","getResult","type","res","filter","undefined","setOfTest","valToTest","Object","keys","entries","index","rule","valueDocument","push","this","obj","Promise","resolve","reject","Array","isArray","elt","vote","kTest","get","default","valTest","THIS","split","slice","join","call","checkCondition","docs","objTest","docField","ruleField","getValue","key","reduce","_id","doc","property","and","or"],"sourceRoot":""}