{"version":3,"file":"js/lib-stats-50d695cef810c1a0d529.js","mappings":"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","sources":["webpack://AYTM/./app/_stock/webpack/app/stats/lib/math.js","webpack://AYTM/./app/_stock/webpack/app/survey/editor/components/lib/scroll-to-question-rx.js","webpack://AYTM/./app/_stock/webpack/lib/onvisible/onVisible.js","webpack://AYTM/./app/_stock/webpack/lib/onvisible/index.js","webpack://AYTM/./app/_stock/webpack/app/stats/lib/script-editor.js","webpack://AYTM/./app/_stock/webpack/app/stats/lib/scripts-basic.js","webpack://AYTM/./app/_stock/webpack/app/stats/lib/google-upload.js","webpack://AYTM/./app/_stock/webpack/app/stats/lib/variables.js","webpack://AYTM/./app/_stock/webpack/app/stats/lib/index.js"],"sourcesContent":["import { getIn, is } from './helpers'\n\nconst { abs, exp, log, pow, sqrt, PI } = Math\nconst SQ2PI = sqrt(2 * PI) // eslint-disable-line no-unused-vars\nconst EPS = 1e-8\nconst fpmin = 1e-30\nconst visibleProbability = [200, 100, 50, 20, 10, 1]\nconst zScore = {\n 200: 1.282,\n 100: 1.645,\n 50: 1.96,\n 20: 2.33,\n 10: 2.576,\n 1: 3.291\n}\n\nconst constants = {\n visibleProbability,\n confidenceLevels: visibleProbability.map((_, i) => 1 - visibleProbability[i] / 1000),\n zScore\n}\n\n//normal-distribution (-\\infty, z]\nconst normaldist = to => {\n const z = to / sqrt(2)\n const t = 1 / (1 + 0.3275911 * abs(z))\n const a1 = 0.254829592\n const a2 = -0.284496736\n const a3 = 1.421413741\n const a4 = -1.453152027\n const a5 = 1.061405429\n const erf = 1 - ((((a5 * t + a4) * t + a3) * t + a2) * t + a1) * t * exp(-z * z)\n const sign = z < 0 ? -1 : 1\n return (1 / 2) * (1 + sign * erf)\n}\n\n/*\ntwo-sample z-test for difference in proportion;\n'N-1' correction applied (Doi: 10.1002/sim.2832)\nSmall sample if n1<30 or n2<30 or chi-square expected values <1\nconf is expressed in 1/1000s, so 50 means .05\n*/\nconst pValueByZ = z => 2 * (1 - normaldist(abs(z)))\n\nconst sigTest = (x1, x2, n1, n2, conf = 50) => {\n const p1 = x1 / n1\n const p2 = x2 / n2\n const n = n1 + n2\n const chiSquareCellExpectedValue1_1 = ((x1 + x2) * n1) / n\n const chiSquareCellExpectedValue1_2 = ((x1 + x2) * n2) / n\n const chiSquareCellExpectedValue2_1 = ((n - x1 - x2) * n1) / n\n const chiSquareCellExpectedValue2_2 = ((n - x1 - x2) * n2) / n\n if (\n n < 1 ||\n n1 < 30 ||\n n2 < 30 ||\n chiSquareCellExpectedValue1_1 < 1 ||\n chiSquareCellExpectedValue1_2 < 1 ||\n chiSquareCellExpectedValue2_1 < 1 ||\n chiSquareCellExpectedValue2_2 < 1\n ) {\n // small sample case\n return false\n }\n const pooledP = (x1 + x2) / (n1 + n2)\n const se = sqrt(pooledP * (1 - pooledP) * (1 / n1 + 1 / n2))\n const z = (sqrt((n - 1) / n) * (p1 - p2)) / se\n const pValue = pValueByZ(z)\n return pValue < conf / 1000\n}\n\nconst gammaln = x => {\n let j = 0\n const cof = [\n 76.18009172947146, -86.50532032941678, 24.01409824083091, -1.231739572450155, 0.1208650973866179e-2,\n -0.5395239384953e-5\n ]\n let ser = 1.000000000190015\n let xx\n let y\n let tmp = (y = xx = x) + 5.5\n tmp -= (xx + 0.5) * log(tmp)\n for (; j < 6; j++) ser += cof[j] / ++y\n return log((2.5066282746310007 * ser) / xx) - tmp\n}\n\nconst betacf = (x, a, b) => {\n let m = 1\n const qab = a + b\n const qap = a + 1\n const qam = a - 1\n let c = 1\n let d = 1 - (qab * x) / qap\n let m2\n let aa\n let del\n let h\n\n // These q's will be used in factors that occur in the coefficients\n if (abs(d) < fpmin) d = fpmin\n d = 1 / d\n h = d\n\n for (; m <= 100; m++) {\n m2 = 2 * m\n aa = (m * (b - m) * x) / ((qam + m2) * (a + m2))\n // One step (the even one) of the recurrence\n d = 1 + aa * d\n if (abs(d) < fpmin) d = fpmin\n c = 1 + aa / c\n if (abs(c) < fpmin) c = fpmin\n d = 1 / d\n h *= d * c\n aa = (-(a + m) * (qab + m) * x) / ((a + m2) * (qap + m2))\n // Next step of the recurrence (the odd one)\n d = 1 + aa * d\n if (abs(d) < fpmin) d = fpmin\n c = 1 + aa / c\n if (abs(c) < fpmin) c = fpmin\n d = 1 / d\n del = d * c\n h *= del\n if (abs(del - 1) < 3e-7) break\n }\n\n return h\n}\n\nconst ibeta = (x, a, b) => {\n // Returns the incomplete beta function I_x(a,b)\n // Factors in front of the continued fraction.\n const bt = 0 === x || 1 === x ? 0 : exp(gammaln(a + b) - gammaln(a) - gammaln(b) + a * log(x) + b * log(1 - x))\n if (0 > x || 1 < x) return false\n if (x < (a + 1) / (a + b + 2))\n // Use continued fraction directly.\n return (bt * betacf(x, a, b)) / a\n // else use continued fraction after making the symmetry transformation.\n return 1 - (bt * betacf(1 - x, b, a)) / b\n}\n\nconst ibetainv = (p, a, b) => {\n // Returns the inverse of the incomplete beta function\n const a1 = a - 1\n const b1 = b - 1\n let j = 0\n let lna\n let lnb\n let pp\n let t\n let u\n let err\n let x\n let al\n let h\n let w\n if (p <= 0) return 0\n if (p >= 1) return 1\n if (a >= 1 && b >= 1) {\n pp = p < 0.5 ? p : 1 - p\n t = sqrt(-2 * log(pp))\n x = (2.30753 + t * 0.27061) / (1 + t * (0.99229 + t * 0.04481)) - t\n if (p < 0.5) x = -x\n al = (x * x - 3) / 6\n h = 2 / (1 / (2 * a - 1) + 1 / (2 * b - 1))\n w = (x * sqrt(al + h)) / h - (1 / (2 * b - 1) - 1 / (2 * a - 1)) * (al + 5 / 6 - 2 / (3 * h))\n x = a / (a + b * exp(2 * w))\n } else {\n lna = log(a / (a + b))\n lnb = log(b / (a + b))\n t = exp(a * lna) / a\n u = exp(b * lnb) / b\n w = t + u\n x = p < t / w ? pow(a * w * p, 1 / a) : 1 - pow(b * w * (1 - p), 1 / b)\n }\n const afac = -gammaln(a) - gammaln(b) + gammaln(a + b)\n for (; j < 10; j++) {\n if (0 === x || 1 === x) return x\n err = ibeta(x, a, b) - p\n t = exp(a1 * log(x) + b1 * log(1 - x) + afac)\n u = err / t\n x -= t = u / (1 - 0.5 * Math.min(1, u * (a1 / x - b1 / (1 - x))))\n if (x <= 0) x = 0.5 * (x + t)\n if (x >= 1) x = 0.5 * (x + t + 1)\n if (abs(t) < EPS * x && j > 0) break\n }\n return x\n}\nconst qbeta = ibetainv\n\nconst Betinc = (X, A, B) => {\n let A0 = 0\n let B0 = 1\n let A1 = 1\n let B1 = 1\n let M9 = 0\n let A2 = 0\n let C9\n while (abs((A1 - A2) / A1) > 0.00001) {\n A2 = A1\n C9 = (-(A + M9) * (A + B + M9) * X) / (A + 2 * M9) / (A + 2 * M9 + 1)\n A0 = A1 + C9 * A0\n B0 = B1 + C9 * B0\n M9 = M9 + 1\n C9 = (M9 * (B - M9) * X) / (A + 2 * M9 - 1) / (A + 2 * M9)\n A1 = A0 + C9 * A1\n B1 = B0 + C9 * B1\n A0 = A0 / B1\n B0 = B0 / B1\n A1 = A1 / B1\n B1 = 1\n }\n return A1 / A\n}\n\nconst tcdf = (X, df) => {\n if (0 >= df) {\n throw new Error('Degrees of freedom must be positive')\n }\n const A = df / 2\n const S = A + 0.5\n const Z = df / (df + X * X)\n const BT = exp(gammaln(S) - gammaln(0.5) - gammaln(A) + A * log(Z) + 0.5 * log(1 - Z))\n const betacdf = Z < (A + 1) / (S + 2) ? BT * Betinc(Z, A, 0.5) : 1 - BT * Betinc(1 - Z, 0.5, A)\n let res = X < 0 ? betacdf / 2 : 1 - betacdf / 2\n res = Math.round(res * 100000) / 100000\n return res\n}\n\nconst tScoreCritical = (significanceLevel, df) => {\n // come up with t that is on edge of significance\n let tLeft\n let tRight\n let pvalLeft\n let pvalRight\n let t = 500\n let epsilon = 100\n if (df > 10) {\n t = 2\n epsilon = 2\n }\n for (let i = 0; i < 1000; i++) {\n tLeft = t - epsilon\n if (tLeft < 0.0001) {\n tLeft = 0.0001\n }\n tRight = t + epsilon\n if (tRight < 0.001) {\n tRight = 0.001\n }\n pvalLeft = 2 * (1 - tcdf(tLeft, df))\n pvalRight = 2 * (1 - tcdf(tRight, df))\n if (pvalLeft > significanceLevel && pvalRight > significanceLevel) {\n t += epsilon\n }\n if (pvalLeft <= significanceLevel && pvalRight <= significanceLevel) {\n t -= epsilon\n }\n if (pvalLeft > significanceLevel && pvalRight <= significanceLevel) {\n epsilon = epsilon / 5\n }\n if (epsilon < 0.0001) {\n break\n }\n }\n return t\n}\n\n// eslint-disable-next-line no-unused-vars\nconst sigTestGetErrorMeanTwoSample = (averageN, averageSd, confidenceLevel = 0.95) => {\n const significanceLevel = 1 - (isNaN(Number(confidenceLevel)) ? 0.95 : Number(confidenceLevel))\n const se = sqrt(pow(averageSd, 2) / averageN + pow(averageSd, 2) / averageN)\n const df = Math.round(\n pow(se, 4) /\n (pow(pow(averageSd, 2) / averageN, 2) / (averageN - 1) + pow(pow(averageSd, 2) / averageN, 2) / (averageN - 1))\n )\n const tScore = tScoreCritical(significanceLevel, df)\n const marginOfError = tScore * se\n return marginOfError\n}\n\nconst sigTestGetErrorMeanOneSample = (n, sd, confidenceLevel = 0.95) => {\n const significanceLevel = 1 - (isNaN(Number(confidenceLevel)) ? 0.95 : Number(confidenceLevel))\n const se = sd / sqrt(n)\n const df = Math.round(n) - 1\n const tScore = tScoreCritical(significanceLevel, df)\n const marginOfError = tScore * se\n return marginOfError\n}\n\n// eslint-disable-next-line max-params\nconst sigTestMeanTwoSample = (mu1, mu2, sd1, sd2, n1, n2, confidenceLevel = 0.95) => {\n //small sample case:\n if (n1 < 30 || n2 < 30) {\n return false\n }\n const se = sqrt(pow(sd1, 2) / n1 + pow(sd2, 2) / n2)\n const df = Math.round(pow(se, 4) / (pow(pow(sd1, 2) / n1, 2) / (n1 - 1) + pow(pow(sd2, 2) / n2, 2) / (n2 - 1)))\n const t = (mu1 - mu2) / se\n\n const pValue = 2 * (1 - tcdf(abs(t), df))\n const pValLimit = 1 - (isNaN(Number(confidenceLevel)) ? 0.95 : Number(confidenceLevel))\n return pValue < pValLimit\n}\n\n/*\nerror bars (two-sided test) (blue range):\nqbeta=beta quantile function similar to R's qbeta. R\nOnly works with count data (so not scores, not distribute summary, not reorder summary, etc)\n*/\nconst calcErrorForNode = (amount, total, conf = 50) => {\n const conf_level = (1000 - conf) / 1000\n const errLO = amount - total * qbeta((1 - conf_level) / 2, 0.5 + amount, 0.5 + total - amount)\n const errHI = total * qbeta(1 - (1 - conf_level) / 2, 0.5 + amount, 0.5 + total - amount) - amount\n return [Math.max(0, errLO) || 0, Math.max(0, errHI) || 0]\n}\n\nconst calcNodeError = node => {\n if (null === node || Array.isArray(node) || !is(Object)(node)) return\n\n const zScoreKeys = Object.keys(zScore)\n Object.keys(node).forEach(key => {\n if (!node[key]) return\n\n if (Object.hasOwn(node, 'total') && Object.hasOwn(node[key], 'amount')) {\n const total = node[key].base || node.base || node.total\n if (total < node[key].amount) return\n // const effectiveSize = node.effSize ? node.effSize : total\n\n for (const zScoreKey of zScoreKeys) {\n const err = calcErrorForNode(node[key].amount, total, zScoreKey)\n node[key].errLO = Object.assign(node[key].errLO || {}, {\n [String(1000 - zScoreKey)]: { amount: Number(err[0]), percents: Number((100 * err[0]) / total) }\n })\n node[key].errHI = Object.assign(node[key].errHI || {}, {\n [String(1000 - zScoreKey)]: { amount: Number(err[1]), percents: Number((100 * err[1]) / total) }\n })\n if (node.respTotal) {\n const respErr = calcErrorForNode(node[key].amount, node.respTotal, zScoreKey)\n node[key].errLO[String(1000 - zScoreKey)].respAmount = Number(respErr[0])\n node[key].errLO[String(1000 - zScoreKey)].respPercents = Number((100 * respErr[0]) / node.respTotal)\n node[key].errHI[String(1000 - zScoreKey)].respAmount = Number(respErr[1])\n node[key].errHI[String(1000 - zScoreKey)].respPercents = Number((100 * respErr[1]) / node.respTotal)\n }\n }\n }\n\n if (Object.hasOwn(node[key], 'total')) {\n calcNodeError(node[key])\n }\n })\n}\n\n/*\nСигтеÑÑ‚ макÑдиффа.\nOnly *utility scores*.\nmarginOfError = sf.sigTestGetErrorMeanOneSample(numberOfRespondentsSelected, mean(sd), confidenceLevel)\nгде sd = маÑÑив standard deviation, по Ñлементу на каждый айтем, ÑчитаетÑÑ Ð¼ÐµÑ‚Ð¾Ð´Ð¾Ð¼ sf.sd\nтам еÑÑ‚ÑŒ завиÑимый метод tScoreCritical который не оптимизирован, еÑли еÑÑ‚ÑŒ желание можно улучшить, заодно и Ð´Ð»Ñ smart templates\nmarginOfError иÑпользуетÑÑ Ð´Ð»Ñ Ð½ÐµÑимметричного ренджа (band around the column top)\nÑравнение колонок делаетÑÑ sf.sigTestMeanTwoSample(mu1, mu2, n1, n2, sd1, sd2, confidenceLevel = 0.95)\nгде mu1 mu2 - Ñредние utility scores\n*/\nconst calcMaxdiffNodeError = node => {\n // console.log('calcMaxdiffNodeError', node)\n const zScoreKeys = Object.keys(zScore)\n if (Object.hasOwn(node, 'total')) {\n const elements = Object.keys(node).filter(k => /^b\\d+/.test(k))\n // console.log('calcMaxdiffNodeError', elements)\n // const mu = elements.map(b => node[b].rawZC)\n // const probs = elements.map(b => node[b].probability / 100)\n for (const zScoreKey of zScoreKeys) {\n const confLevel = (1000 - zScoreKey) / 1000\n elements.forEach(key => {\n if (Object.hasOwn(node[key], 'sd')) {\n const total = node[key].base || node.base || node.total\n if (total <= 1) return\n\n try {\n const error = sigTestGetErrorMeanOneSample(total, node[key].sd, confLevel)\n node[key].errLO = Object.assign(node[key].errLO || {}, {\n [String(1000 - zScoreKey)]: {\n rawAmount: Number(error),\n probAmount: Number(\n 100 *\n (exp(node[key].raw) / (1 + exp(node[key].raw)) -\n exp(node[key].raw - error) / (1 + exp(node[key].raw - error)))\n )\n }\n })\n node[key].errHI = Object.assign(node[key].errHI || {}, {\n [String(1000 - zScoreKey)]: {\n rawAmount: Number(error),\n probAmount: Number(\n 100 *\n (exp(node[key].raw + error) / (1 + exp(node[key].raw + error)) -\n exp(node[key].raw) / (1 + exp(node[key].raw)))\n )\n }\n })\n } catch {\n delete node[key].errLO\n delete node[key].errHI\n }\n }\n })\n }\n // console.log('calcMaxdiffNodeError', node)\n }\n}\n\nconst baseQuestionTypes = ['rb', 'cb']\nconst countableQuestionTypes = ['rb', 'cb', 'mx', 'mp', 'sr', 'se', 'ro', 'aro', 'cf', 'sh', 'sft']\nconst calcErrorsForNode = (type, node) => {\n if (countableQuestionTypes.includes(type)) {\n if (baseQuestionTypes.includes(type)) {\n const keys = Object.keys(node).filter(key => null != node[key] && Object.hasOwn(node[key], 'percents'))\n if (!keys.some(key => node[key]['percents'] > 100)) {\n calcNodeError(node)\n }\n } else {\n calcNodeError(node)\n }\n } else if ('md' === type) {\n calcMaxdiffNodeError(node)\n }\n}\nconst calcErrors = (questions = [], stats = {}) => {\n for (const [id, answer] of Object.entries(stats)) {\n const question = questions.find(q => ((0 < q.position && `q${q.position}`) || q.id) == id)\n if (!question || !answer) continue\n\n if (Object.hasOwn(question, 'blocks') && null != question.blocks) {\n question.blocks.forEach(b => {\n if (b.format != undefined && true == b.format.percentsOnly) return\n calcErrorsForNode(b.variant || b.subtype, b.path && b.path.length ? getIn(b.path, answer) : answer)\n })\n } else {\n const type = question.variant || question.type\n calcErrorsForNode(type, answer)\n }\n }\n}\n\nconst calcNodeStatData = node => {\n Object.keys(node).forEach(key => {\n if (null == node[key] || 'object' != typeof node[key] || null == key.match(/^a\\d+$/i)) return\n node[key].amount = node[key].amount || 0\n node[key].percents = node[key].percents || 0\n })\n\n const respTotal = Object.keys(node).reduce((memo, key) => {\n if (null == node[key] || 'object' != typeof node[key] || null == key.match(/^a\\d+$/i)) return memo\n return memo + (node[key].amount || 0)\n }, 0)\n node.respTotal = respTotal\n\n Object.keys(node).forEach(key => {\n if (null == node[key] || 'object' != typeof node[key] || null == key.match(/^a\\d+$/i)) return\n node[key].respPercents = parseFloat(((100 * node[key].amount) / respTotal || 0).toFixed(2))\n })\n}\n\nconst calcNodeStatDataByType = (type, subtype, answer = {}) => {\n if (['rb', 'cb', 'oex', 'sft'].includes(type)) {\n calcNodeStatData(answer)\n }\n if ('mp' == type && 'default' == subtype) {\n Object.keys(answer).forEach(key => {\n if (null == answer[key] || 'object' != typeof answer[key] || null == key.match(/^b\\d+$/i)) return\n calcNodeStatData(answer[key])\n })\n }\n}\n\nconst calcStatData = (questions = [], stats = {}) => {\n for (const [id, answer] of Object.entries(stats)) {\n const question = questions.find(q => ((0 < q.position && `q${q.position}`) || q.id) == id)\n if (!question || !answer) continue\n\n if (Object.hasOwn(question, 'blocks') && null !== question.blocks) {\n question.blocks.forEach(b =>\n calcNodeStatDataByType(b.variant || b.subtype, b.subType, b.path ? getIn(b.path, answer) : answer)\n )\n } else {\n const type = question.variant || question.type\n calcNodeStatDataByType(type, question.subType, answer)\n }\n }\n calcErrors(questions, stats)\n}\n\nconst findNeighbors = (sorted_array, included_indexes, target_idx, threshold) => {\n const target_point = sorted_array[target_idx]\n let neighbors = []\n // below search\n const target_included_idx = included_indexes.indexOf(target_idx)\n for (let _i = target_included_idx; _i >= 0; _i--) {\n const distance = sorted_array[included_indexes[_i]].x - target_point.x\n if (distance > threshold) {\n break\n } else {\n neighbors.push(included_indexes[_i])\n }\n }\n neighbors = neighbors.reverse()\n // above search\n for (let _i = target_included_idx + 1; _i < included_indexes.length; _i++) {\n if (sorted_array[included_indexes[_i]].x - target_point.x > threshold) {\n break\n } else {\n neighbors.push(included_indexes[_i])\n }\n }\n // list of neighbor indexes\n return neighbors\n}\n\nconst findNeighborsXY = (sorted_x, included_indexes, target_point_index, threshold) => {\n const target_point = sorted_x[target_point_index]\n\n // find target point in sorted arrays\n const x_neighbors_idxs = findNeighbors(sorted_x, included_indexes, target_point_index, threshold)\n\n const real_neighbors = x_neighbors_idxs.filter(\n nb_idx =>\n Math.sqrt(Math.pow(sorted_x[nb_idx].x - target_point.x, 2) + Math.pow(sorted_x[nb_idx].y - target_point.y, 2)) <=\n threshold\n )\n\n return real_neighbors\n}\n\nconst findGroup = (sorted_array, included_indexes, threshold) => {\n let group_idxs = [] // resulting array of indexes\n let neighbors = [included_indexes[0]] // intermediate array of indexes\n let new_neighbors = [included_indexes[0]]\n\n let remaining_indexes = included_indexes.slice()\n while (neighbors.length > 0 && remaining_indexes.length > 0) {\n new_neighbors = []\n neighbors.forEach(target_idx => {\n const last_found_neighbors = findNeighborsXY(sorted_array, remaining_indexes, target_idx, threshold)\n new_neighbors = new_neighbors.concat(last_found_neighbors)\n remaining_indexes = remaining_indexes.filter(el => !last_found_neighbors.includes(el))\n })\n\n group_idxs = group_idxs.concat(new_neighbors)\n neighbors = new_neighbors\n }\n return group_idxs\n}\n\nconst calcPointsGroups = (points = [], threshold = 0) => {\n const sortedByX = points.sort((a, b) => a.x - b.x)\n\n let _indexes = sortedByX.map((_p, index) => index)\n const point_groups = []\n\n while (_indexes.length > 0) {\n const neighbors_group = findGroup(sortedByX, _indexes, threshold)\n point_groups.push(neighbors_group)\n _indexes = _indexes.filter(idx => !neighbors_group.includes(idx))\n }\n\n const groups = point_groups.map(group => group.map(index => sortedByX[index]))\n return groups\n}\n\nexport default {\n calcStatData,\n calcErrors,\n calcErrorForNode,\n calcPointsGroups,\n constants,\n normaldist,\n qbeta,\n tcdf,\n gammaln,\n tScoreCritical,\n sigTest,\n sigTestMeanTwoSample\n}\n","import { Subject } from 'rxjs'\n\nconst PROPS = {\n connected: false, // module connected state\n gotoSubject: new Subject(), // goto position emitter\n keyDownListener: null, // main keydown listener\n keyUpListener: null, // main keyup listener\n bufferTimeout: 1750, // default position buffer timeout\n maxBufferSize: 3 // default position buffer size\n}\n\nfunction stopEvent(event) {\n // stop event from going further\n if (event.preventDefault) event.preventDefault()\n if (event.stopImmediatePropagation) event.stopImmediatePropagation()\n if (event.stopPropagation) event.stopPropagation()\n}\n\nfunction listenKeys() {\n // unregister previous listeners\n stopListeningKeys()\n\n const listenState = {\n positionBuffer: [], // buffer to store pressed digits\n bufferTimer: null // timeout timer\n }\n\n function readPosition(key) {\n // clear buffer timeout if set\n if (listenState.bufferTimer) {\n clearTimeout(listenState.bufferTimer)\n listenState.bufferTimer = null\n }\n // add key to buffer\n listenState.positionBuffer.push(key)\n // send position when buffer is filled or on timeout\n if (listenState.positionBuffer.length >= PROPS.maxBufferSize) {\n sendPosition()\n } else if (PROPS.bufferTimeout) {\n listenState.bufferTimer = setTimeout(function () {\n sendPosition()\n }, PROPS.bufferTimeout)\n }\n }\n\n function sendPosition() {\n // clear buffer timeout if set\n if (listenState.bufferTimer) {\n clearTimeout(listenState.bufferTimer)\n listenState.bufferTimer = null\n }\n // send position\n PROPS.gotoSubject.next(parseInt(listenState.positionBuffer.join(''), 10))\n // reset buffer\n listenState.positionBuffer = []\n }\n\n PROPS.keyDownListener = function (event) {\n // listen for Ctrl+Alt+Digit keys\n if (\n event.altKey &&\n event.ctrlKey &&\n !event.shiftKey &&\n !event.metaKey &&\n 1 === event.key.length &&\n '0' <= event.key &&\n event.key <= '9'\n ) {\n stopEvent(event)\n readPosition(event.key)\n }\n }\n document.addEventListener('keydown', PROPS.keyDownListener, true)\n\n PROPS.keyUpListener = function (event) {\n // send position if buffer is not empty and\n // keyup outside of Ctrl+Alt+Digit\n if (\n listenState.positionBuffer.length &&\n (!event.altKey ||\n !event.ctrlKey ||\n event.shiftKey ||\n event.metaKey ||\n 1 !== event.key.length ||\n '0' > event.key ||\n event.key > '9')\n ) {\n stopEvent(event)\n sendPosition()\n }\n }\n document.addEventListener('keyup', PROPS.keyUpListener, true)\n}\n\nfunction stopListeningKeys() {\n if (PROPS.keyDownListener) {\n document.removeEventListener('keydown', PROPS.keyDownListener, true)\n PROPS.keyDownListener = null\n }\n\n if (PROPS.keyUpListener) {\n document.removeEventListener('keyup', PROPS.keyUpListener, true)\n PROPS.keyUpListener = null\n }\n}\n\nconst PUBLIC = {\n connect() {\n if (!PROPS.connected) {\n PROPS.connected = true\n listenKeys()\n }\n return PROPS.gotoSubject\n },\n\n disconnect() {\n if (PROPS.connected) {\n PROPS.connected = false\n stopListeningKeys()\n }\n },\n\n isConnected() {\n return PROPS.connected\n },\n\n bufferTimeout(timeout) {\n PROPS.bufferTimeout = timeout\n },\n\n maxBufferSize(size) {\n PROPS.maxBufferSize = size\n },\n\n subscribe(listener) {\n return PROPS.gotoSubject.subscribe(listener)\n }\n}\n\nexport default PUBLIC\n","// eslint-disable-next-line compat/compat\nconst resizeObserver = new ResizeObserver(() => onScroll())\n\n/* eslint-disable immutablejs/no-native-map-set */\nconst props = {\n started: false,\n elements: new Map(),\n required: new Set(),\n debounce: 250,\n debounceTimer: null\n}\n/* eslint-enable immutablejs/no-native-map-set */\n\nfunction start() {\n props.started = true\n resizeObserver.observe(document.querySelector('#content') || document.body)\n document.addEventListener('scroll', onScroll, false)\n // document.defaultView.addEventListener('resize', onScroll, false)\n onScroll()\n}\n\nfunction stop() {\n props.started = false\n props.elements.clear()\n props.required.clear()\n resizeObserver.disconnect()\n document.removeEventListener('scroll', onScroll, false)\n // document.defaultView.removeEventListener('resize', onScroll, false)\n}\n\nfunction isVisible(node) {\n if (!(node instanceof Element)) return false\n\n if (null === node.offsetParent) return false\n\n const style = window.getComputedStyle(node)\n if ('none' === style.display) return false\n if ('visible' !== style.visibility) return false\n\n const rect = node.getBoundingClientRect()\n return (\n (rect.top + rect.height >= 0 &&\n rect.top + rect.height <= (window.innerHeight || document.documentElement.clientHeight)) ||\n (rect.bottom - rect.height >= 0 &&\n rect.bottom - rect.height <= (window.innerHeight || document.documentElement.clientHeight))\n )\n}\n\nfunction onScroll() {\n if (props.debounceTimer) clearTimeout(props.debounceTimer)\n\n props.debounceTimer = setTimeout(() => {\n props.debounceTimer = null\n\n const tasks = []\n\n const windowWidth = window.innerWidth || document.documentElement.clientWidth\n const windowHeight = window.innerHeight || document.documentElement.clientHeight\n\n // get element rects\n for (const [element, listeners] of props.elements) {\n const rect = element.getBoundingClientRect()\n if (\n isVisible(element) &&\n !(\n (rect.top < 0 && rect.bottom < 0) ||\n (rect.top > windowHeight && rect.bottom > windowHeight) ||\n (rect.left < 0 && rect.right < 0) ||\n (rect.left > windowWidth && rect.right > windowWidth)\n )\n ) {\n for (const listener of listeners) {\n tasks.push(() => listener(element))\n }\n props.elements.delete(element)\n props.required.delete(element)\n }\n }\n\n // stop if none left\n if (!props.elements.size) {\n stop()\n }\n\n if (tasks.length) {\n const step = () => {\n const task = tasks.shift()\n task()\n tasks.length && requestAnimationFrame(step)\n }\n requestAnimationFrame(step)\n }\n }, props.debounce)\n}\n\n/* eslint-disable immutablejs/no-native-map-set */\nexport default function onVisible(element, listener, required = false) {\n const listeners = props.elements.has(element) ? props.elements.get(element) : new Set()\n listeners.add(listener)\n\n props.elements.set(element, listeners)\n\n if (required) props.required.add(element)\n\n if (props.started) onScroll()\n else start()\n}\n/* eslint-enable immutablejs/no-native-map-set */\n\nexport function renderElements(elements) {\n for (const element of elements) {\n if (!isVisible(element) || !hasListener(element)) continue\n\n const windowWidth = window.innerWidth || document.documentElement.clientWidth\n const windowHeight = window.innerHeight || document.documentElement.clientHeight\n\n const rect = element.getBoundingClientRect()\n if (\n (rect.top < 0 && rect.bottom < 0) ||\n (rect.top > windowHeight && rect.bottom > windowHeight) ||\n (rect.left < 0 && rect.right < 0) ||\n (rect.left > windowWidth && rect.right > windowWidth)\n )\n continue\n\n const listeners = props.elements.get(element)\n for (const listener of listeners) {\n listener(element)\n }\n props.elements.delete(element)\n props.required.delete(element)\n }\n}\n\nexport function renderAll(callback) {\n if (props.started) {\n for (const [element, listeners] of props.elements) {\n for (const listener of listeners) {\n listener(element)\n }\n }\n stop()\n }\n if ('function' === typeof callback) callback()\n}\n\n/* eslint-disable immutablejs/no-native-map-set */\nexport function renderAllAnimationFrame(callback) {\n if (props.started) {\n stop()\n\n const tasks = []\n const elements = new Map(props.elements)\n for (const [element, listeners] of elements) {\n for (const listener of listeners) {\n tasks.push(() => listener(element))\n }\n }\n if (tasks.length) {\n const step = () => {\n const task = tasks.shift()\n task()\n if (tasks.length) {\n requestAnimationFrame(step)\n } else if ('function' === typeof callback) {\n callback()\n }\n }\n requestAnimationFrame(step)\n }\n }\n}\n/* eslint-enable immutablejs/no-native-map-set */\n\nexport function renderRequired() {\n const tasks = []\n if (props.started) {\n for (const element of props.required) {\n const listeners = props.elements.get(element)\n for (const listener of listeners) {\n tasks.push(resolve => listener(element, resolve))\n }\n props.elements.delete(element)\n }\n props.required.clear()\n if (!props.elements.size) {\n stop()\n }\n if (tasks.length) {\n const step = resolve => {\n const task = tasks.shift()\n const promise = new Promise(r => task(r))\n promise.then(() => {\n if (tasks.length) {\n requestAnimationFrame(() => step(resolve))\n } else {\n resolve()\n }\n })\n }\n return new Promise(resolve => requestAnimationFrame(() => step(resolve)))\n }\n }\n return new Promise(resolve => resolve())\n}\n\nexport function hasListener(element) {\n return props.started && props.elements.has(element)\n}\n\nexport function removeListener(element) {\n if (!props.elements.has(element)) return\n\n props.elements.delete(element)\n props.required.delete(element)\n\n if (!props.elements.size) {\n stop()\n }\n}\n\nexport function removeAllListeners() {\n if (props.debounceTimer) {\n clearTimeout(props.debounceTimer)\n }\n props.debounceTimer = null\n\n stop()\n}\n","import onVisible, {\n renderElements,\n renderAll,\n renderAllAnimationFrame,\n renderRequired,\n hasListener,\n removeListener,\n removeAllListeners\n} from './onVisible'\n\nexport {\n onVisible,\n renderElements,\n renderAll,\n renderAllAnimationFrame,\n renderRequired,\n hasListener,\n removeListener,\n removeAllListeners\n}\n\nif ('undefined' !== typeof window && !window['$onVisible']) {\n window['$onVisible'] = {\n render: onVisible,\n renderElements,\n renderAll,\n renderAllAnimationFrame,\n renderRequired,\n hasListener,\n removeListener,\n removeAllListeners\n }\n}\n","const createEditorCode = `\n window.createScriptEditor = function() {\n var id = 'script-editor';\n var element = document.getElementById(id);\n var exists = (null != element);\n if (!exists) {\n element = document.createElement('div'); element.id = 'script-editor';\n element.style.position = 'absolute';\n element.style.width = '30%';\n element.style.height = '100%';\n element.style.left = '0';\n element.style.top = '80px';\n element.style.textAlign = 'left';\n element.style.zIndex = 1000;\n\n var toolbar = document.createElement('div'); toolbar.id = 'script-editor-toolbar';\n toolbar.style.backgroundColor = 'white';\n toolbar.style.width = '100%';\n toolbar.style.height = '40px';\n toolbar.style.left = '0';\n toolbar.style.top = '0';\n toolbar.style.textAlign = 'left';\n\n var applyButton = document.createElement('button'); applyButton.id = 'script-editor-apply';\n applyButton.style.width = '50%'; applyButton.style.height = '100%'; applyButton.style.border = '1px solid';\n applyButton.appendChild(document.createTextNode('Apply'));\n applyButton.onclick = () => {\n var scripts = StatPage.model.getReportScripts();\n StatPage.model.setReportScripts(Object.assign(scripts, { aggregate: [ window.editor.getValue() ] }));\n }\n toolbar.appendChild(applyButton);\n\n var resetButton = document.createElement('button'); resetButton.id = 'script-editor-reset';\n resetButton.style.width = '50%'; resetButton.style.height = '100%'; resetButton.style.border = '1px solid';\n resetButton.appendChild(document.createTextNode('Reset'));\n resetButton.onclick = () => {\n StatPage.model.clearReportScripts()\n var scripts = StatPage.model.getReportScripts() || {};\n var aggregate = scripts.aggregate || [];\n window.editor.setValue(aggregate.join('\\\\n\\\\n'))\n }\n toolbar.appendChild(resetButton);\n element.appendChild(toolbar);\n\n document.getElementById('page').appendChild(element);\n }\n if ( window.monaco ) {\n var scripts = StatPage.model.getReportScripts() || {};\n var aggregate = scripts.aggregate || [];\n window.editor = monaco.editor.create(element, {\n value: aggregate.join('\\\\n\\\\n'),\n language: 'javascript',\n wordWrap: 'wordWrapColumn',\n wordWrapColumn: 40,\n wordWrapMinified: true, // Set this to false to not auto word wrap minified files\n wrappingIndent: \"indent\" // try \"same\", \"indent\" or \"none\"\n });\n } else {\n setTimeout(window.createScriptEditor, 100);\n }\n };\n setTimeout(window.createScriptEditor, 100);\n`\nconst CDN = 'https://unpkg.com/monaco-editor@0.29.1/min'\nconst initCode = `var require = { paths: { 'vs': '${CDN}/vs' } };\n window.MonacoEnvironment = {\n getWorkerUrl: function(workerId, label) {\n return \"data:text/javascript;charset=utf-8,${encodeURIComponent(`\n self.MonacoEnvironment = {\n baseUrl: '${CDN}'\n };\n importScripts('${CDN}/vs/base/worker/workerMain.js');`)}\";\n }\n };`\nconst addScript = ({ src, code }) =>\n new Promise((resolve, reject) => {\n const script = document.createElement('script')\n if (src) {\n script.onload = resolve\n script.src = src\n document.querySelector('body').appendChild(script)\n } else if (code) {\n try {\n script.appendChild(document.createTextNode(code))\n document.querySelector('body').appendChild(script)\n } catch {\n script.text = code\n document.querySelector('body').appendChild(script)\n }\n resolve()\n } else reject()\n })\n\nconst promiseSerial = funcs =>\n funcs.reduce(\n (promise, func) => promise.then(result => func().then(Array.prototype.concat.bind(result))),\n Promise.resolve([])\n )\n\nconst initialize = callback => {\n const scripts = ['vs/loader.js', 'vs/editor/editor.main.nls.js', 'vs/editor/editor.main.js']\n if ('undefined' !== typeof window && 'undefined' !== typeof window.monaco) {\n return callback()\n }\n return addScript({ code: initCode })\n .then(() => promiseSerial(scripts.map(name => () => addScript({ src: `${CDN}/${name}` }))))\n .then(addScript({ code: createEditorCode }))\n .then(callback)\n}\n\nexport default {\n initialize\n}\n","export default class ScriptsBasic {\n constructor(options = {}) {\n this.options = options\n this.schemaQuestions = options.schemaQuestions || {}\n this.completeQuestions = options.completeQuestions || {}\n this.surveySchema = this.options.getSurveySchema()\n this._initScriptsBasic()\n }\n\n _initScriptsBasic() {\n this._complete = this.completeQuestions.reduce((acc, cur) => {\n const type = cur.variant || cur.type\n\n if (!['rb', 'cb', 'mx'].includes(type)) return acc\n\n const id = (cur.position && this._getQuestionId(cur.position)) || cur.id\n\n if (['rb', 'cb'].includes(type)) {\n acc[type] = acc[type] || {}\n acc[type][id.toUpperCase()] = cur.answerVariants.map(v => v.text)\n }\n if (['mx'].includes(type)) {\n acc['rb'] = acc['rb'] || {}\n acc['rb'][1 < cur.batches.length ? `${id.toUpperCase()}SQ1-${cur.batches.length}` : `${id.toUpperCase()}SQ1`] =\n (cur.batches[0].answerVariants || cur.answerVariants).map(v => v.text)\n }\n\n return acc\n }, {})\n }\n\n _getQuestionId(position) {\n const question = this.surveySchema.questions.find(q => q.position == position)\n if (!question) return null\n const type = question.pre_type != undefined ? 'PQ' : 'Q'\n return `${type}${question.visual_position}`\n }\n\n _getMXBasicData() {\n const _keys = Object.keys(this._complete.rb || {})\n const _passed = []\n\n const _data = _keys\n .reduce((acc, cur) => {\n if (_passed.includes(cur)) return acc\n\n const _values = []\n\n _passed.push(cur)\n _values.push(cur)\n\n _keys.forEach(k => {\n if (_passed.includes(k)) return\n\n if (this._complete.rb[cur].every((v, i) => v == this._complete.rb[k][i])) {\n _passed.push(k)\n _values.push(k)\n }\n })\n\n acc.push(_values)\n\n return acc\n }, [])\n .filter(v => 1 < v.length)\n .map(v => v.join(','))\n\n return {\n data: _data.map(v => {\n return { text: v, value: v }\n })\n }\n }\n\n generateBasicData(script) {\n if ('mx' == script) {\n return this._getMXBasicData()\n }\n\n return {}\n }\n}\n","import JSZip from 'jszip'\nimport fetch from 'isomorphic-fetch'\nimport railsPostFetch from '@aytm/lib/common/rails-post-fetch'\n\nasync function fetchUploadUrl(upload_url, fileName) {\n const response = await railsPostFetch(upload_url, {\n method: 'POST',\n body: JSON.stringify({\n contentType: 'application/zip',\n fileName\n })\n })\n const data = await response.json()\n if ('OK' != data.status) throw new Error('Bad response from server')\n return data\n}\n\nexport default function GoogleUpload(upload_url = '', surveyId, fileName = '', files = []) {\n return new Promise((resolve, reject) => {\n if (!files.length) {\n resolve()\n } else {\n const zip = new JSZip()\n\n files.forEach(v =>\n 'image' == v.type ? zip.file(v.filename, v.content, { base64: true }) : zip.file(v.filename, v.content)\n )\n\n /// receive url for upload\n Promise.all([\n fetchUploadUrl(upload_url, `${surveyId}/${fileName}`),\n zip.generateAsync({\n type: 'blob'\n })\n ])\n .then(result => {\n const [data, fileBlob] = [...result]\n\n fetch(data.url, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/zip'\n },\n body: fileBlob\n })\n .then(response => {\n if (200 == response.status) {\n resolve(data)\n } else {\n reject(new Error('Bad response from server'))\n }\n })\n .catch(reject)\n })\n .catch(reject)\n }\n })\n}\n","export const convertCustomVariables = (survey = []) =>\n Object.keys(survey.customVariables || {}).reduce((acc, cur) => {\n acc[cur] = JSON.parse(JSON.stringify(survey.customVariables[cur]))\n if (/^\\w+_\\d+$/.test(cur) && acc[cur].values.every(v => [0, 1].includes(v))) {\n const [_, key, position] = cur.match(/^(\\w+)_(\\d+)$/)\n\n acc[key] ||= { type: 'x', values: [] }\n acc[key].values.push(position)\n\n acc[cur].values = [0, 1]\n acc[cur].x = true\n }\n return acc\n }, {})\n","import SchemaRules from './schema-rules'\nimport BasicFilters from './basic-filters'\nimport MathHelpers from './math'\nimport ScriptEditor from './script-editor'\nimport ScriptsBasic from './scripts-basic'\nimport CommentsHelpers from './comments'\nimport ColorsHelper from './colors'\nimport GoogleUpload from './google-upload'\nimport { convertQuotas, convertTraits } from './traits'\nimport { convertCustomVariables } from './variables'\nimport { convertValuesToTree } from '@aytm/app/stats/lib/converter'\nimport { SENTIMENTS } from '@aytm/app/stats/page/comments/lib/constants'\nimport { getTagsList } from '@aytm/app/stats/page/comments/lib/utils'\n\nimport scrollToQuestionListener from '@aytm/app/survey/editor/components/lib/scroll-to-question-rx'\n\nif ('undefined' !== typeof window) {\n window['$STATS'] || (window['$STATS'] = {})\n\n window['$STATS']['SchemaRules'] = SchemaRules\n window['$STATS']['BasicFilters'] = BasicFilters\n window['$STATS']['Math'] = MathHelpers\n window['$STATS']['ScriptEditor'] = ScriptEditor\n window['$STATS']['ScriptsBasic'] = ScriptsBasic\n window['$STATS']['Comments'] = CommentsHelpers\n window['$STATS']['Colors'] = ColorsHelper\n window['$STATS']['GoogleUpload'] = GoogleUpload\n window['$STATS']['convertQuotas'] = convertQuotas\n window['$STATS']['convertTraits'] = convertTraits\n window['$STATS']['convertCustomVariables'] = convertCustomVariables\n window['$STATS']['convertValuesToTree'] = convertValuesToTree\n\n window['$STATS']['getTagsList'] = getTagsList\n\n window['$STATS']['ScrollToQuestion'] = scrollToQuestionListener\n\n window['$STATS']['SENTIMENTS'] = SENTIMENTS\n}\n\nexport {\n SchemaRules,\n BasicFilters,\n MathHelpers as Math,\n ScriptEditor,\n ScriptsBasic,\n CommentsHelpers as Comments,\n ColorsHelper as Colors,\n GoogleUpload,\n convertQuotas,\n convertTraits,\n convertCustomVariables,\n convertValuesToTree,\n getTagsList,\n scrollToQuestionListener as ScrollToQuestion\n}\n"],"names":["abs","Math","exp","log","pow","sqrt","PI","fpmin","visibleProbability","zScore","constants","confidenceLevels","map","_","i","normaldist","to","z","t","gammaln","x","xx","y","j","cof","ser","tmp","betacf","a","b","m2","aa","del","h","m","qab","qap","qam","c","d","ibeta","bt","qbeta","p","lna","lnb","u","al","w","a1","b1","afac","min","Betinc","X","A","B","C9","A0","B0","A1","B1","M9","A2","tcdf","df","Error","S","Z","BT","betacdf","res","round","tScoreCritical","significanceLevel","tLeft","tRight","pvalLeft","pvalRight","epsilon","calcErrorForNode","amount","total","conf_level","arguments","length","undefined","errLO","errHI","max","calcNodeError","node","Array","isArray","is","Object","zScoreKeys","keys","forEach","key","hasOwn","base","_i2","_zScoreKeys","zScoreKey","err","assign","_defineProperty","String","Number","percents","respTotal","respErr","respAmount","respPercents","calcMaxdiffNodeError","_step","elements","filter","k","test","_iterator","_createForOfIteratorHelper","_loop","value","confLevel","error","n","sd","confidenceLevel","isNaN","se","sigTestGetErrorMeanOneSample","rawAmount","probAmount","raw","_unused","s","done","e","f","baseQuestionTypes","countableQuestionTypes","calcErrorsForNode","type","includes","some","calcErrors","_ref2","questions","stats","_loop2","_ref","_Object$entries","_i3","id","_slicedToArray","answer","question","find","q","position","blocks","format","percentsOnly","variant","subtype","path","getIn","entries","calcNodeStatData","match","reduce","memo","parseFloat","toFixed","calcNodeStatDataByType","findNeighborsXY","sorted_x","included_indexes","target_point_index","threshold","target_point","x_neighbors_idxs","sorted_array","target_idx","neighbors","target_included_idx","indexOf","_i","push","reverse","findNeighbors","nb_idx","calcStatData","_ref4","_loop3","_ref3","_Object$entries2","_i4","subType","calcPointsGroups","sortedByX","sort","_indexes","_p","index","point_groups","_loop4","neighbors_group","group_idxs","new_neighbors","remaining_indexes","slice","last_found_neighbors","concat","el","findGroup","idx","group","sigTest","x1","x2","n1","n2","conf","p1","p2","pooledP","pValue","pValueByZ","sigTestMeanTwoSample","mu1","mu2","sd1","sd2","PROPS","connected","gotoSubject","Subject","keyDownListener","keyUpListener","bufferTimeout","maxBufferSize","stopEvent","event","preventDefault","stopImmediatePropagation","stopPropagation","listenKeys","stopListeningKeys","listenState","positionBuffer","bufferTimer","sendPosition","clearTimeout","next","parseInt","join","altKey","ctrlKey","shiftKey","metaKey","setTimeout","document","addEventListener","removeEventListener","PUBLIC","connect","disconnect","isConnected","timeout","size","subscribe","listener","resizeObserver","ResizeObserver","onScroll","props","started","Map","required","Set","debounce","debounceTimer","stop","clear","isVisible","Element","offsetParent","style","window","getComputedStyle","display","visibility","rect","getBoundingClientRect","top","height","innerHeight","documentElement","clientHeight","bottom","tasks","windowWidth","innerWidth","clientWidth","windowHeight","element","listeners","left","right","_step2","_iterator2","delete","requestAnimationFrame","step","shift","task","hasListener","has","render","get","add","set","observe","querySelector","body","renderElements","_step3","_iterator3","_step4","_iterator4","renderAll","callback","_step5","_iterator5","_step6","_iterator6","renderAllAnimationFrame","_step7","_iterator7","_ref6","_step8","_ref5","_iterator8","renderRequired","_step9","_iterator9","_loop5","_step10","_iterator10","_loop6","resolve","Promise","r","then","removeListener","removeAllListeners","CDN","initCode","encodeURIComponent","addScript","src","code","reject","script","createElement","onload","appendChild","createTextNode","text","initialize","scripts","monaco","name","promise","func","result","prototype","bind","ScriptsBasic","options","_classCallCheck","this","schemaQuestions","completeQuestions","surveySchema","getSurveySchema","_initScriptsBasic","_this","_complete","acc","cur","_getQuestionId","toUpperCase","answerVariants","v","batches","pre_type","visual_position","_this2","_keys","rb","_passed","data","_values","every","_getMXBasicData","_regeneratorRuntime","hasOwnProperty","o","defineProperty","Symbol","iterator","asyncIterator","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","l","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","pop","prev","charAt","rval","handle","complete","finish","catch","delegateYield","_toConsumableArray","arr","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","minLen","toString","_unsupportedIterableToArray","_nonIterableSpread","len","arr2","asyncGeneratorStep","gen","_next","_throw","info","fetchUploadUrl","_x","_x2","_fetchUploadUrl","apply","fn","_callee","upload_url","fileName","response","_context","railsPostFetch","JSON","stringify","contentType","json","status","self","args","SchemaRules","BasicFilters","MathHelpers","ScriptEditor","CommentsHelpers","ColorsHelper","surveyId","files","zip","JSZip","file","filename","content","base64","all","generateAsync","fileBlob","fetch","url","headers","convertQuotas","convertTraits","survey","customVariables","parse","_cur$match2","convertValuesToTree","getTagsList","scrollToQuestionListener","SENTIMENTS"],"sourceRoot":""}