{"version":3,"sources":["webpack:///./node_modules/@progress/kendo-ui/js/pivotgrid/common.js"],"names":["module","exports","modules","installedModules","__webpack_require__","moduleId","id","loaded","call","m","c","p","0","3","Error","20","1626","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","f","define","apply","undefined","window","kendo","pivotgrid","common","filterFunctionFormats","contains","doesnotcontain","endswith","eq","neq","startswith","operators","in","serializeFilters","filters","cube","command","current","idx","length","serializeExpression","expression","value","String","field","operator","formatString","str","values","_i","arguments","forEach","index","replace","RegExp","serializeMembers","members","measures","sort","memberName","parsed","parseDescriptors","expanded","rootNames","getRootNames","root","crossJoinCommands","names","push","crossJoinCommand","expandMemberDescriptor","name","mapNames","join","concat","measureNames","measure","result","member","hierarchyName","baseHierarchyPath","some","n","indexOf","found","child","name_1","j","l","expand","rootLength","slice","name_2","rootName","tmp","crossJoin","sortDescriptor","sortDescriptorForMember","dir","length_1","parts","split","pop","shift","createRequestBody","options","_a","columnAxes","_b","rowAxes","_c","measureAxes","_d","_e","filter","measuresRowAxis","measuresAxis","connection","catalog","__assign","Object","assign","t","s","i","prototype","hasOwnProperty","this","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","Promise","reject","fulfilled","step","next","e","rejected","done","then","__generator","body","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","TypeError","__spreadArrays","il","r","Array","k","a","jl","parseResponse","response","xmlDoc","DOMParser","parseFromString","axes","from","querySelectorAll","cells","map","cell","fmtValue","getPropertyValue","ordinal","parseInt","getAttribute","columns","tuples","rows","data","axis","translateAxis","indexedData","fill","counter","rowTuple","colTuple","columnTuple","node","querySelector","textContent","tuple","memberElements","lNum","hasChildren","caption","children","hierarchy","levelName","levelNum","parentName","discoverCommands","schemaCatalogs","schemaCubes","schemaDimensions","schemaHierarchies","schemaKPIs","schemaLevels","schemaMeasures","schemaMembers","createDiscoverBody","properties","serializeOptions","restrictions","Catalog","parentTagName","capitalize","key","toUpperCase","parseCubes","row","description","type","parseCatalogs","parseMeasures","uniqueName","aggregator","groupName","displayFolder","defaultFormat","parseKPIs","goal","status","trend","statusGraphic","trendGraphic","parseDimensions","defaultHierarchy","parseHierarchies","dimensionUniqueName","origin","defaultMember","parseLevels","orderingProperty","hierarchyUniqueName","parseMembers","levelUniqueName","childrenCardinality","discoverParser","fetchData","fetchOptions","init","stringResponse","headers","method","fetch","url","text","fetchDiscover","createDataState","state","createAxisDescriptors","expandTree","descriptors","keys","JSON","parse","setSort","setFilter","getMaxNesting","set","Set","add","size","getMaxExpansion","generateNormalizedPath","parent","normalizedPath","Boolean","generatePath","path","toMatrix","rowIndex","colIndex","maxDepth","maxBreadth","matrix","leafs","branchDepth","branchBreadth","depth","breadth","matrixResult","leafsResult","findIndex","level","inject","total","shiftedRow","splice","collOffset","newMatrix","newLeafs","childBreadth","withTotal","alt","childIndex","childHierarchy","toTree","_loop_1","tupleIndex","copy","_loop_2","memberIndex","parent_1","parentKey","find","lastIndexOf","intruderIndex","Math","max","toData","hash","membersNames","columnsIndexes","Map","rowsIndexes","colMembers","rowMembers","item","get","rotateMatrix","rowSpan","colSpan","toColumns","toRows","obj","stringify","kpiMeasure","kpi","buildKPIMeasures","addKPI","compareAxisWithField","b","compareAxes","HEADERS_ACTION","findPath","matchFn","matched","match","h","headersReducer","action","toggle","existing","payload","collapse","existing_1","filtered_1","tree","newState","PIVOT_CONFIGURATOR_ACTION","configuratorReducer","newRows","newColumns","newMeasures","newSort","newFilter","newDragitem","newDropZone","newDropDirection","newDropTarget","toggleSelection","isArray","payload_1","removeMeasureAxis","addMeasureAxis","every","removeMeasureAxes","addMeasureAxes","removeColumnAxis","removeRowAxis","addColumnAxis","addRowAxis","addColumnAxes","removeColumnAxes","addRowAxes","removeRowAxes","remove","setDragItem","setDropZone","setDropTarget","setDropDirection","drop","dragItem","dropZone","currentColumn","currentRow","currentMeasure","insertAtIndex","dropTarget","dropDirection","offset","addFilter","changeFilter","removeFilter","defineProperty"],"mappings":"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","file":"js/chunk-vendors~f15819eb.0e9083db.js","sourcesContent":["module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(1626);\n\tmodule.exports = __webpack_require__(1626);\n\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports) {\n\n\tmodule.exports = function() { throw new Error(\"define cannot be used indirect\"); };\r\n\n\n/***/ }),\n\n/***/ 20:\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"../kendo.core\");\n\n/***/ }),\n\n/***/ 1626:\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(f, define){\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [\n\t __webpack_require__(20)\n\t ], __WEBPACK_AMD_DEFINE_FACTORY__ = (f), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t})(function(){\n\n\t(function () {\n\n\twindow.kendo.pivotgrid = window.kendo.pivotgrid || {};\n\twindow.kendo.pivotgrid.common = (function (exports) {\n\t \n\n\t var filterFunctionFormats = {\n\t contains: \", InStr({0}.CurrentMember.MEMBER_CAPTION,\\\"{1}\\\") > 0\",\n\t doesnotcontain: \", InStr({0}.CurrentMember.MEMBER_CAPTION,\\\"{1}\\\")\",\n\t endswith: \", Right({0}.CurrentMember.MEMBER_CAPTION,Len(\\\"{1}\\\"))=\\\"{1}\\\"\",\n\t eq: \", {0}.CurrentMember.MEMBER_CAPTION = \\\"{1}\\\"\",\n\t neq: \", {0}.CurrentMember.MEMBER_CAPTION = \\\"{1}\\\"\",\n\t startswith: \", Left({0}.CurrentMember.MEMBER_CAPTION,Len(\\\"{1}\\\"))=\\\"{1}\\\"\"\n\t };\n\t var operators = {\n\t doesnotcontain: 'doesnotcontain',\n\t in: 'in',\n\t neq: \"neq\"\n\t };\n\t /**\n\t * @hidden\n\t */\n\t function serializeFilters(filters, cube) {\n\t var command = \"\";\n\t var current = \"\";\n\t for (var idx = filters.length - 1; idx >= 0; idx--) {\n\t current = \"SELECT (\";\n\t current += serializeExpression(filters[idx]);\n\t current += \") ON 0\";\n\t if (idx === filters.length - 1) {\n\t current += \" FROM [\" + cube + \"]\";\n\t command = current;\n\t }\n\t else {\n\t command = current + \" FROM ( \" + command + \" )\";\n\t }\n\t }\n\t return command;\n\t }\n\t function serializeExpression(expression) {\n\t var command = '';\n\t var value = String(expression.value);\n\t var field = expression.field;\n\t var operator = expression.operator;\n\t if (operator === operators.in) {\n\t command += \"{\";\n\t command += value;\n\t command += \"}\";\n\t }\n\t else {\n\t command += operator === operators.neq || operator === operators.doesnotcontain ? '-' : '';\n\t command += \"Filter(\";\n\t command += field + \".MEMBERS\";\n\t command += formatString(filterFunctionFormats[operator], field, value);\n\t command += \")\";\n\t }\n\t return command;\n\t }\n\t function formatString(str) {\n\t var values = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t values[_i - 1] = arguments[_i];\n\t }\n\t values.forEach(function (value, index) {\n\t str = str.replace(new RegExp(\"\\\\{\" + index + \"\\\\}\", 'g'), value);\n\t });\n\t return str;\n\t }\n\n\t /**\n\t * @hidden\n\t */\n\t function serializeMembers(members, measures, sort) {\n\t var command = \"\";\n\t members = members || [];\n\t var parsed = parseDescriptors(members);\n\t var expanded = parsed.expanded;\n\t var rootNames = getRootNames(parsed.root);\n\t var crossJoinCommands = [];\n\t var length = expanded.length;\n\t var idx = 0;\n\t var memberName;\n\t var names = [];\n\t if (rootNames.length > 1 || measures.length > 1) {\n\t crossJoinCommands.push(crossJoinCommand(rootNames, measures));\n\t for (; idx < length; idx++) {\n\t memberName = expandMemberDescriptor(expanded[idx].name, sort);\n\t names = mapNames(memberName, rootNames);\n\t crossJoinCommands.push(crossJoinCommand(names, measures));\n\t }\n\t command += crossJoinCommands.join(\",\");\n\t }\n\t else {\n\t for (; idx < length; idx++) {\n\t memberName = expandMemberDescriptor(expanded[idx].name, sort);\n\t names.push(memberName[0]);\n\t }\n\t command += rootNames.concat(names).join(\",\");\n\t }\n\t return command;\n\t }\n\t /**\n\t * @hidden\n\t */\n\t function measureNames(measures) {\n\t var length = measures.length;\n\t var result = [];\n\t var measure;\n\t for (var idx = 0; idx < length; idx++) {\n\t measure = measures[idx];\n\t result.push(measure.name !== undefined ? measure.name : measure);\n\t }\n\t return result;\n\t }\n\t function getRootNames(members) {\n\t var root = [];\n\t members.forEach(function (member) {\n\t var name = member.name[0];\n\t var hierarchyName = baseHierarchyPath(name);\n\t if (!root.some(function (n) { return n.indexOf(hierarchyName) === 0; })) {\n\t root.push(name);\n\t }\n\t });\n\t return root;\n\t }\n\t function parseDescriptors(members) {\n\t var expanded = [];\n\t var child = [];\n\t var root = [];\n\t var idx = 0;\n\t var found;\n\t for (; idx < members.length; idx++) {\n\t var member = members[idx];\n\t var name_1 = member.name;\n\t found = false;\n\t if (name_1.length > 1) {\n\t child.push(member);\n\t }\n\t else {\n\t var hierarchyName = baseHierarchyPath(name_1[0]);\n\t for (var j = 0, l = root.length; j < l; j++) {\n\t if (root[j].name[0].indexOf(hierarchyName) === 0) {\n\t found = true;\n\t break;\n\t }\n\t }\n\t if (!found) {\n\t root.push(member);\n\t }\n\t if (member.expand) {\n\t expanded.push(member);\n\t }\n\t }\n\t }\n\t expanded = expanded.concat(child);\n\t return {\n\t expanded: expanded,\n\t root: root\n\t };\n\t }\n\t function mapNames(names, rootNames) {\n\t var rootLength = rootNames.length;\n\t rootNames = rootNames.slice(0);\n\t for (var idx = 0; idx < names.length; idx++) {\n\t var name_2 = names[idx];\n\t for (var j = 0; j < rootLength; j++) {\n\t var rootName = baseHierarchyPath(rootNames[j]);\n\t if (name_2.indexOf(rootName) !== -1) {\n\t rootNames[j] = name_2;\n\t break;\n\t }\n\t }\n\t }\n\t return rootNames;\n\t }\n\t function crossJoinCommand(members, measures) {\n\t var tmp = members.slice(0);\n\t if (measures.length > 1) {\n\t tmp.push(\"{\" + measureNames(measures).join(\",\") + \"}\");\n\t }\n\t return crossJoin(tmp);\n\t }\n\t function expandMemberDescriptor(names, sort) {\n\t var idx = names.length - 1;\n\t var name = names[idx];\n\t var sortDescriptor = sortDescriptorForMember(sort, name);\n\t if (sortDescriptor && sortDescriptor.dir) {\n\t name = \"ORDER(\" + name + \".Children,\" + sortDescriptor.field + \".CurrentMember.MEMBER_CAPTION,\" + sortDescriptor.dir + \")\";\n\t }\n\t else {\n\t name += \".Children\";\n\t }\n\t names[idx] = name;\n\t return names;\n\t }\n\t function sortDescriptorForMember(sort, member) {\n\t for (var idx = 0, length_1 = sort.length; idx < length_1; idx++) {\n\t if (member.indexOf(sort[idx].field) === 0) {\n\t return sort[idx];\n\t }\n\t }\n\t return null;\n\t }\n\t function baseHierarchyPath(memberName) {\n\t var parts = memberName.split(\".\");\n\t if (parts.length > 2) {\n\t return parts[0] + \".\" + parts[1];\n\t }\n\t return memberName;\n\t }\n\t function crossJoin(names) {\n\t var result = \"CROSSJOIN({\";\n\t var name;\n\t if (names.length > 2) {\n\t name = names.pop();\n\t result += crossJoin(names);\n\t }\n\t else {\n\t result += names.shift();\n\t name = names.pop();\n\t }\n\t result += \"},{\";\n\t result += name;\n\t result += \"})\";\n\t return result;\n\t }\n\n\t /**\n\t * @hidden\n\t */\n\t function createRequestBody(options) {\n\t var command = '';\n\t var _a = options.columnAxes, columnAxes = _a === void 0 ? [] : _a, _b = options.rowAxes, rowAxes = _b === void 0 ? [] : _b;\n\t var _c = options.measureAxes, measureAxes = _c === void 0 ? [] : _c, _d = options.sort, sort = _d === void 0 ? [] : _d, _e = options.filter, filter = _e === void 0 ? [] : _e;\n\t var measuresRowAxis = options.measuresAxis === \"rows\";\n\t command += \"SELECT NON EMPTY {\";\n\t if (!columnAxes.length && rowAxes.length && (!measureAxes.length || (measureAxes.length && measuresRowAxis))) {\n\t columnAxes = rowAxes;\n\t rowAxes = [];\n\t measuresRowAxis = false;\n\t }\n\t if (!columnAxes.length && !rowAxes.length) {\n\t measuresRowAxis = false;\n\t }\n\t if (columnAxes.length) {\n\t command += serializeMembers(columnAxes, !measuresRowAxis ? measureAxes : [], sort);\n\t }\n\t else if (measureAxes.length && !measuresRowAxis) {\n\t command += measureNames(measureAxes).join(\",\");\n\t }\n\t command += \"} DIMENSION PROPERTIES CHILDREN_CARDINALITY, PARENT_UNIQUE_NAME ON COLUMNS\";\n\t if (rowAxes.length || (measuresRowAxis && measureAxes.length > 1)) {\n\t command += \", NON EMPTY {\";\n\t if (rowAxes.length) {\n\t command += serializeMembers(rowAxes, measuresRowAxis ? measureAxes : [], sort);\n\t }\n\t else {\n\t command += measureNames(measureAxes).join(\",\");\n\t }\n\t command += \"} DIMENSION PROPERTIES CHILDREN_CARDINALITY, PARENT_UNIQUE_NAME ON ROWS\";\n\t }\n\t if (filter.length) {\n\t command += \" FROM \";\n\t command += \"(\";\n\t command += serializeFilters(filter, options.connection.cube);\n\t command += \")\";\n\t }\n\t else {\n\t command += \" FROM [\" + options.connection.cube + \"]\";\n\t }\n\t if (measureAxes.length === 1 && columnAxes.length) {\n\t command += \" WHERE (\" + measureNames(measureAxes).join(\",\") + \")\";\n\t }\n\t command += '' + options.connection.catalog + 'Multidimensional';\n\t return command.replace(/&/g, \"&\");\n\t }\n\n\t /*! *****************************************************************************\n\t Copyright (c) Microsoft Corporation.\n\n\t Permission to use, copy, modify, and/or distribute this software for any\n\t purpose with or without fee is hereby granted.\n\n\t THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n\t REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n\t AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n\t INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n\t LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n\t OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n\t PERFORMANCE OF THIS SOFTWARE.\n\t ***************************************************************************** */\n\n\t var __assign = function() {\n\t __assign = Object.assign || function __assign(t) {\n\t for (var s, i = 1, n = arguments.length; i < n; i++) {\n\t s = arguments[i];\n\t for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n\t }\n\t return t;\n\t };\n\t return __assign.apply(this, arguments);\n\t };\n\n\t function __awaiter(thisArg, _arguments, P, generator) {\n\t function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n\t return new (P || (P = Promise))(function (resolve, reject) {\n\t function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n\t function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n\t function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n\t step((generator = generator.apply(thisArg, _arguments || [])).next());\n\t });\n\t }\n\n\t function __generator(thisArg, body) {\n\t var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n\t return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n\t function verb(n) { return function (v) { return step([n, v]); }; }\n\t function step(op) {\n\t if (f) throw new TypeError(\"Generator is already executing.\");\n\t while (_) try {\n\t if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n\t if (y = 0, t) op = [op[0] & 2, t.value];\n\t switch (op[0]) {\n\t case 0: case 1: t = op; break;\n\t case 4: _.label++; return { value: op[1], done: false };\n\t case 5: _.label++; y = op[1]; op = [0]; continue;\n\t case 7: op = _.ops.pop(); _.trys.pop(); continue;\n\t default:\n\t if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n\t if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n\t if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n\t if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n\t if (t[2]) _.ops.pop();\n\t _.trys.pop(); continue;\n\t }\n\t op = body.call(thisArg, _);\n\t } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n\t if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n\t }\n\t }\n\n\t /** @deprecated */\n\t function __spreadArrays() {\n\t for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n\t for (var r = Array(s), k = 0, i = 0; i < il; i++)\n\t for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n\t r[k] = a[j];\n\t return r;\n\t }\n\n\t /**\n\t * @hidden\n\t */\n\t function parseResponse(response) {\n\t var xmlDoc = new DOMParser().parseFromString(response, \"text/xml\");\n\t var axes = Array.from(xmlDoc.querySelectorAll(\"Axis\"));\n\t var cells = Array.from(xmlDoc.querySelectorAll(\"CellData > Cell\"))\n\t .map(function (cell) { return ({\n\t fmtValue: getPropertyValue(cell, \"FmtValue\"),\n\t ordinal: parseInt(cell.getAttribute(\"CellOrdinal\"), 10),\n\t value: getPropertyValue(cell, \"Value\")\n\t }); });\n\t var columns = { tuples: [] };\n\t var rows = { tuples: [] };\n\t var data = [];\n\t axes.forEach(function (axis) {\n\t if (axis.getAttribute('name') !== \"SlicerAxis\") {\n\t var tuples = columns.tuples.length === 0 ? columns.tuples : rows.tuples;\n\t Array.prototype.push.apply(tuples, translateAxis(axis));\n\t }\n\t });\n\t var indexedData = new Array(rows.tuples.length * columns.tuples.length).fill(null);\n\t cells.forEach(function (c) { indexedData[c.ordinal] = c; });\n\t var counter = 0;\n\t rows.tuples.forEach(function (rowTuple) {\n\t columns.tuples.forEach(function (colTuple) {\n\t data.push({\n\t columnTuple: colTuple,\n\t data: indexedData[counter],\n\t rowTuple: rowTuple\n\t });\n\t counter++;\n\t });\n\t });\n\t return { columns: columns, data: data, rows: rows };\n\t }\n\t /**\n\t * @hidden\n\t */\n\t function getPropertyValue(member, name) {\n\t var node = member.querySelector(name);\n\t return node ? node.textContent : \"\";\n\t }\n\t function translateAxis(axis) {\n\t var tuples = Array.from(axis.querySelectorAll(\"Tuple\"));\n\t return tuples.map(function (tuple) {\n\t var memberElements = Array.from(tuple.querySelectorAll(\"Member\"));\n\t var members = memberElements.map(function (member) {\n\t var lNum = parseInt(getPropertyValue(member, \"LNum\") || \"0\", 10);\n\t var hasChildren = parseInt(getPropertyValue(member, \"CHILDREN_CARDINALITY\") || \"0\", 10) > 0;\n\t return {\n\t caption: getPropertyValue(member, \"Caption\"),\n\t children: [],\n\t hasChildren: hasChildren,\n\t hierarchy: member.getAttribute('Hierarchy'),\n\t levelName: getPropertyValue(member, \"LName\"),\n\t levelNum: lNum,\n\t name: getPropertyValue(member, \"UName\"),\n\t parentName: getPropertyValue(member, \"PARENT_UNIQUE_NAME\")\n\t };\n\t });\n\t return { members: members };\n\t });\n\t }\n\n\t /**\n\t * @hidden\n\t */\n\t var discoverCommands = {\n\t schemaCatalogs: \"DBSCHEMA_CATALOGS\",\n\t schemaCubes: \"MDSCHEMA_CUBES\",\n\t schemaDimensions: \"MDSCHEMA_DIMENSIONS\",\n\t schemaHierarchies: \"MDSCHEMA_HIERARCHIES\",\n\t schemaKPIs: \"MDSCHEMA_KPIS\",\n\t schemaLevels: \"MDSCHEMA_LEVELS\",\n\t schemaMeasures: \"MDSCHEMA_MEASURES\",\n\t schemaMembers: \"MDSCHEMA_MEMBERS\"\n\t };\n\t /**\n\t * @hidden\n\t */\n\t function createDiscoverBody(options) {\n\t var properties = {};\n\t var command = '';\n\t command += \"\" + (discoverCommands[options.command] || options.command) + \"\";\n\t command += \"\" + serializeOptions(\"RestrictionList\", options.restrictions, true) + \"\";\n\t if (options.connection && options.connection.catalog) {\n\t properties.Catalog = options.connection.catalog;\n\t }\n\t command += \"\" + serializeOptions(\"PropertyList\", properties, false) + \"\";\n\t command += '';\n\t return command;\n\t }\n\t function serializeOptions(parentTagName, options, capitalize) {\n\t var result = \"\";\n\t if (options) {\n\t result += \"<\" + parentTagName + \">\";\n\t var value = void 0;\n\t for (var key in options) {\n\t if (options[key]) {\n\t value = options[key];\n\t if (capitalize) {\n\t key = key.replace(/([A-Z]+(?=$|[A-Z][a-z])|[A-Z]?[a-z]+)/g, \"$1_\").toUpperCase().replace(/_$/, \"\");\n\t }\n\t result += \"<\" + key + \">\" + value + \"\" + key + \">\";\n\t }\n\t }\n\t result += \"\" + parentTagName + \">\";\n\t }\n\t else {\n\t result += \"<\" + parentTagName + \"/>\";\n\t }\n\t return result;\n\t }\n\n\t /**\n\t * @hidden\n\t */\n\t function parseCubes(response) {\n\t var xmlDoc = new DOMParser().parseFromString(response, \"text/xml\");\n\t var rows = Array.from(xmlDoc.querySelectorAll(\"DiscoverResponse > return > root > row\"))\n\t .map(function (row) { return ({\n\t name: getPropertyValue(row, \"CUBE_NAME\"),\n\t caption: getPropertyValue(row, \"CUBE_CAPTION\"),\n\t description: getPropertyValue(row, \"DESCRIPTION\"),\n\t type: getPropertyValue(row, \"CUBE_TYPE\")\n\t }); });\n\t return rows;\n\t }\n\t /**\n\t * @hidden\n\t */\n\t function parseCatalogs(response) {\n\t var xmlDoc = new DOMParser().parseFromString(response, \"text/xml\");\n\t var rows = Array.from(xmlDoc.querySelectorAll(\"DiscoverResponse > return > root > row\"))\n\t .map(function (row) { return ({\n\t name: getPropertyValue(row, \"CATALOG_NAME\"),\n\t description: getPropertyValue(row, \"DESCRIPTION\")\n\t }); });\n\t return rows;\n\t }\n\t /**\n\t * @hidden\n\t */\n\t function parseMeasures(response) {\n\t var xmlDoc = new DOMParser().parseFromString(response, \"text/xml\");\n\t var rows = Array.from(xmlDoc.querySelectorAll(\"DiscoverResponse > return > root > row\"))\n\t .map(function (row) { return ({\n\t name: getPropertyValue(row, \"MEASURE_NAME\"),\n\t caption: getPropertyValue(row, \"MEASURE_CAPTION\"),\n\t uniqueName: getPropertyValue(row, \"MEASURE_UNIQUE_NAME\"),\n\t description: getPropertyValue(row, \"DESCRIPTION\"),\n\t aggregator: getPropertyValue(row, \"MEASURE_AGGREGATOR\"),\n\t groupName: getPropertyValue(row, \"MEASUREGROUP_NAME\"),\n\t displayFolder: getPropertyValue(row, \"MEASURE_DISPLAY_FOLDER\"),\n\t defaultFormat: getPropertyValue(row, \"DEFAULT_FORMAT_STRING\")\n\t }); });\n\t return rows;\n\t }\n\t /**\n\t * @hidden\n\t */\n\t function parseKPIs(response) {\n\t var xmlDoc = new DOMParser().parseFromString(response, \"text/xml\");\n\t var rows = Array.from(xmlDoc.querySelectorAll(\"DiscoverResponse > return > root > row\"))\n\t .map(function (row) { return ({\n\t name: getPropertyValue(row, \"KPI_NAME\"),\n\t uniqueName: getPropertyValue(row, \"KPI_NAME\"),\n\t caption: getPropertyValue(row, \"KPI_CAPTION\"),\n\t value: getPropertyValue(row, \"KPI_VALUE\"),\n\t goal: getPropertyValue(row, \"KPI_GOAL\"),\n\t status: getPropertyValue(row, \"KPI_STATUS\"),\n\t trend: getPropertyValue(row, \"KPI_TREND\"),\n\t statusGraphic: getPropertyValue(row, \"KPI_STATUS_GRAPHIC\"),\n\t trendGraphic: getPropertyValue(row, \"KPI_TREND_GRAPHIC\"),\n\t description: getPropertyValue(row, \"KPI_DESCRIPTION\"),\n\t groupName: getPropertyValue(row, \"MEASUREGROUP_NAME\"),\n\t type: \"kpi\"\n\t }); });\n\t return rows;\n\t }\n\t /**\n\t * @hidden\n\t */\n\t function parseDimensions(response) {\n\t var xmlDoc = new DOMParser().parseFromString(response, \"text/xml\");\n\t var rows = Array.from(xmlDoc.querySelectorAll(\"DiscoverResponse > return > root > row\"))\n\t .map(function (row) { return ({\n\t caption: getPropertyValue(row, \"DIMENSION_CAPTION\"),\n\t defaultHierarchy: getPropertyValue(row, \"DEFAULT_HIERARCHY\"),\n\t description: getPropertyValue(row, \"DESCRIPTION\"),\n\t name: getPropertyValue(row, \"DIMENSION_NAME\"),\n\t type: parseInt(getPropertyValue(row, \"DIMENSION_TYPE\"), 10),\n\t uniqueName: getPropertyValue(row, \"DIMENSION_UNIQUE_NAME\")\n\t }); });\n\t return rows;\n\t }\n\t /**\n\t * @hidden\n\t */\n\t function parseHierarchies(response) {\n\t var xmlDoc = new DOMParser().parseFromString(response, \"text/xml\");\n\t var rows = Array.from(xmlDoc.querySelectorAll(\"DiscoverResponse > return > root > row\"))\n\t .map(function (row) { return ({\n\t name: getPropertyValue(row, \"HIERARCHY_NAME\"),\n\t caption: getPropertyValue(row, \"HIERARCHY_CAPTION\"),\n\t description: getPropertyValue(row, \"DESCRIPTION\"),\n\t uniqueName: getPropertyValue(row, \"HIERARCHY_UNIQUE_NAME\"),\n\t dimensionUniqueName: getPropertyValue(row, \"DIMENSION_UNIQUE_NAME\"),\n\t displayFolder: getPropertyValue(row, \"HIERARCHY_DISPLAY_FOLDER\"),\n\t origin: getPropertyValue(row, \"HIERARCHY_ORIGIN\"),\n\t defaultMember: getPropertyValue(row, \"DEFAULT_MEMBER\")\n\t }); });\n\t return rows;\n\t }\n\t /**\n\t * @hidden\n\t */\n\t function parseLevels(response) {\n\t var xmlDoc = new DOMParser().parseFromString(response, \"text/xml\");\n\t var rows = Array.from(xmlDoc.querySelectorAll(\"DiscoverResponse > return > root > row\"))\n\t .map(function (row) { return ({\n\t name: getPropertyValue(row, \"LEVEL_NAME\"),\n\t caption: getPropertyValue(row, \"LEVEL_CAPTION\"),\n\t description: getPropertyValue(row, \"DESCRIPTION\"),\n\t uniqueName: getPropertyValue(row, \"LEVEL_UNIQUE_NAME\"),\n\t dimensionUniqueName: getPropertyValue(row, \"DIMENSION_UNIQUE_NAME\"),\n\t displayFolder: getPropertyValue(row, \"LEVEL_DISPLAY_FOLDER\"),\n\t orderingProperty: getPropertyValue(row, \"LEVEL_ORDERING_PROPERTY\"),\n\t origin: getPropertyValue(row, \"LEVEL_ORIGIN\"),\n\t hierarchyUniqueName: getPropertyValue(row, \"HIERARCHY_UNIQUE_NAME\")\n\t }); });\n\t return rows;\n\t }\n\t /**\n\t * @hidden\n\t */\n\t function parseMembers(response) {\n\t var xmlDoc = new DOMParser().parseFromString(response, \"text/xml\");\n\t var rows = Array.from(xmlDoc.querySelectorAll(\"DiscoverResponse > return > root > row\"))\n\t .map(function (row) { return ({\n\t name: getPropertyValue(row, \"MEMBER_NAME\"),\n\t caption: getPropertyValue(row, \"MEMBER_CAPTION\"),\n\t uniqueName: getPropertyValue(row, \"MEMBER_UNIQUE_NAME\"),\n\t dimensionUniqueName: getPropertyValue(row, \"DIMENSION_UNIQUE_NAME\"),\n\t hierarchyUniqueName: getPropertyValue(row, \"HIERARCHY_UNIQUE_NAME\"),\n\t levelUniqueName: getPropertyValue(row, \"LEVEL_UNIQUE_NAME\"),\n\t childrenCardinality: getPropertyValue(row, \"CHILDREN_CARDINALITY\")\n\t }); });\n\t return rows;\n\t }\n\n\t var discoverParser = {\n\t schemaCatalogs: parseCatalogs,\n\t schemaCubes: parseCubes,\n\t schemaDimensions: parseDimensions,\n\t schemaHierarchies: parseHierarchies,\n\t schemaKPIs: parseKPIs,\n\t schemaLevels: parseLevels,\n\t schemaMeasures: parseMeasures,\n\t schemaMembers: parseMembers\n\t };\n\t /**\n\t * Fetches the data.\n\t *\n\t * @param options RequestOptions\n\t * @returns Promise\n\t *\n\t * @example\n\t * const options: RequestOptions = { ... };\n\t *\n\t * fetchData(options).then(createDataState).then((dataState: DataState) => {\n\t * // Update the UI\n\t * });\n\t */\n\t /**\n\t * @hidden\n\t */\n\t var fetchData = function (fetchOptions, options) { return __awaiter(void 0, void 0, void 0, function () {\n\t var init, response, stringResponse;\n\t return __generator(this, function (_a) {\n\t switch (_a.label) {\n\t case 0:\n\t init = __assign({ body: createRequestBody(options), headers: { 'Content-Type': 'text/xml' }, method: 'POST' }, fetchOptions.init);\n\t return [4 /*yield*/, fetch(fetchOptions.url, init)];\n\t case 1:\n\t response = _a.sent();\n\t return [4 /*yield*/, response.text()];\n\t case 2:\n\t stringResponse = _a.sent();\n\t return [2 /*return*/, parseResponse(stringResponse)];\n\t }\n\t });\n\t }); };\n\t /**\n\t * @hidden\n\t */\n\t var fetchDiscover = function (fetchOptions, options) { return __awaiter(void 0, void 0, void 0, function () {\n\t var init, response, stringResponse;\n\t return __generator(this, function (_a) {\n\t switch (_a.label) {\n\t case 0:\n\t init = __assign({ body: createDiscoverBody(options), headers: { 'Content-Type': 'text/xml' }, method: 'POST' }, fetchOptions.init);\n\t return [4 /*yield*/, fetch(fetchOptions.url, init)];\n\t case 1:\n\t response = _a.sent();\n\t return [4 /*yield*/, response.text()];\n\t case 2:\n\t stringResponse = _a.sent();\n\t return [2 /*return*/, discoverParser[options.command](stringResponse)];\n\t }\n\t });\n\t }); };\n\n\t /**\n\t * Creates the state object. See `fetchData`.\n\t *\n\t * @param response - ResponseData\n\t * @returns DataState\n\t */\n\t /**\n\t * @hidden\n\t */\n\t var createDataState = function (response) {\n\t var state = {\n\t columns: response.columns.tuples,\n\t data: response.data,\n\t rows: response.rows.tuples\n\t };\n\t return state;\n\t };\n\n\t /**\n\t * Creates a collection of AxisDescriptor base on the expandTree.\n\t * @param expandTree - { [key: string]: boolean }\n\t * @returns AxisDescriptor[]\n\t *\n\t * @example\n\t * See `setRowExpand` or `setColumnExpand` functions.\n\t */\n\t /**\n\t * @hidden\n\t */\n\t function createAxisDescriptors(expandTree) {\n\t var descriptors = [];\n\t for (var _i = 0, _a = Object.keys(expandTree); _i < _a.length; _i++) {\n\t var key = _a[_i];\n\t descriptors.push({ name: JSON.parse(key), expand: expandTree[key] });\n\t }\n\t return descriptors;\n\t }\n\n\t /**\n\t * Sets sort descriptors to request options.\n\t *\n\t * @param options - RequestOptions\n\t * @param sort - SortDescriptor[]\n\t *\n\t * @example\n\t * const options: RequestOptions = { ... };\n\t * const sort: SortDescriptor[] = [{ ... }, { ... }];\n\t * setSort(options, sort);\n\t * // skip the sort parameter to clear current filter - setSort(options);\n\t *\n\t * fetchData(options).then(createDataState).then((dataState: DataState) => {\n\t * // Update the UI\n\t * });\n\t */\n\t /**\n\t * @hidden\n\t */\n\t var setSort = function (options, sort) {\n\t if (sort === void 0) { sort = []; }\n\t options.sort = sort;\n\t };\n\n\t /**\n\t * Sets filter descriptors to request options.\n\t *\n\t * @param options - RequestOptions\n\t * @param filter - FilterDescriptor[]\n\t *\n\t * @example\n\t * const options: RequestOptions = { ... };\n\t * const filter: FilterDescriptor[] = [{ ... }, { ... }];\n\t * setFilter(options, filter);\n\t * // skip the filter parameter to clear current filter - setFilter(options);\n\t *\n\t * fetchData(options).then(createDataState).then((dataState: DataState) => {\n\t * // Update the UI\n\t * });\n\t */\n\t /**\n\t * @hidden\n\t */\n\t var setFilter = function (options, filter) {\n\t if (filter === void 0) { filter = []; }\n\t options.filter = filter;\n\t };\n\n\t // A typical tree depth count won't work for the Pivot,\n\t // as each branch can have lower number of nodes than the total number of levels\n\t /**\n\t * @hidden\n\t */\n\t var getMaxNesting = function (node, set) {\n\t if (set === void 0) { set = new Set(); }\n\t (node.children || []).forEach(function (child) {\n\t set.add(child.levelName);\n\t getMaxNesting(child, set);\n\t });\n\t return set.size;\n\t };\n\t /**\n\t * @hidden\n\t */\n\t var getMaxExpansion = function (node) {\n\t var expanded = 0;\n\t (node.children || []).forEach(function (child) {\n\t expanded += (getMaxExpansion(child) || 1);\n\t });\n\t return expanded;\n\t };\n\t /**\n\t * @hidden\n\t */\n\t var generateNormalizedPath = function (node, parent) {\n\t return (parent && (parent.hierarchy === node.hierarchy)\n\t ? __spreadArrays((parent.normalizedPath || []).slice(0, -1), [node.name || null]) : __spreadArrays(((parent && parent.normalizedPath) ? parent.normalizedPath : []), [node.name])).filter(Boolean);\n\t };\n\t /**\n\t * @hidden\n\t */\n\t var generatePath = function (node, parent) {\n\t return (parent && (parent.hierarchy === node.hierarchy)\n\t ? __spreadArrays((parent.path || []).slice(0, -1), [((node.levelNum === 0 ? node.hierarchy : node.name) || null)]) : __spreadArrays(((parent && parent.path) ? parent.path : []), [node.levelNum === 0 ? node.hierarchy : node.name])).filter(Boolean);\n\t };\n\t /**\n\t * @hidden\n\t */\n\t var toMatrix = function (node, rowIndex, colIndex, maxDepth, maxBreadth, matrix, leafs, parent) {\n\t if (rowIndex === void 0) { rowIndex = -1; }\n\t if (colIndex === void 0) { colIndex = 0; }\n\t if (maxDepth === void 0) { maxDepth = undefined; }\n\t if (maxBreadth === void 0) { maxBreadth = undefined; }\n\t if (matrix === void 0) { matrix = undefined; }\n\t if (leafs === void 0) { leafs = undefined; }\n\t if (parent === void 0) { parent = undefined; }\n\t var branchDepth = getMaxNesting(node);\n\t var branchBreadth = getMaxExpansion(node);\n\t var depth = maxDepth || branchDepth;\n\t var breadth = maxBreadth || branchBreadth;\n\t var matrixResult = matrix ? matrix.slice() : [];\n\t var leafsResult = leafs ? leafs.slice() : new Array(breadth);\n\t var index = matrixResult.findIndex(function (l) { return l && l.name === node.levelName && l.level === node.levelNum; });\n\t var level = matrixResult[index];\n\t var row = {\n\t name: node.levelName,\n\t level: node.levelNum,\n\t index: rowIndex,\n\t cells: new Array(breadth).fill(null)\n\t };\n\t var inject = rowIndex !== -1 && colIndex !== -1;\n\t var cell = {\n\t caption: node.caption,\n\t name: node.name,\n\t levelName: node.levelName,\n\t levelNum: node.levelNum,\n\t hasChildren: node.hasChildren,\n\t parentName: node.parentName,\n\t hierarchy: node.hierarchy,\n\t total: (node.total !== undefined ? node.total : false) || (parent && parent.children.length <= 1 && parent.total),\n\t parent: parent,\n\t rowIndex: rowIndex,\n\t colIndex: colIndex,\n\t depth: 1,\n\t breadth: 1,\n\t path: node.path || [],\n\t normalizedPath: node.normalizedPath || [],\n\t children: node.children.filter(function (c) { return c.hierarchy === node.hierarchy; })\n\t };\n\t if (inject) {\n\t if (level) {\n\t level.cells[colIndex] = cell;\n\t if (level.index >= rowIndex) {\n\t rowIndex = level.index;\n\t }\n\t }\n\t else {\n\t if (matrixResult[rowIndex] && matrixResult[rowIndex].cells.length) {\n\t for (var idx = rowIndex; idx < matrixResult.length; idx++) {\n\t var shiftedRow = matrixResult[idx];\n\t shiftedRow.index++;\n\t }\n\t matrixResult.splice(rowIndex, 0, row);\n\t matrixResult[rowIndex].cells[colIndex] = cell;\n\t }\n\t else {\n\t matrixResult[rowIndex] = row;\n\t matrixResult[rowIndex].cells[colIndex] = cell;\n\t }\n\t }\n\t }\n\t var collOffset = 0;\n\t if (node.children && node.children.length) {\n\t node.children.forEach(function (child) {\n\t var _a = toMatrix(child, rowIndex + 1, colIndex + collOffset, depth, breadth, matrixResult, leafsResult, cell), newMatrix = _a[0], newLeafs = _a[1], childBreadth = _a[3];\n\t collOffset += (childBreadth || 1);\n\t matrixResult = newMatrix.slice();\n\t leafsResult = newLeafs.slice();\n\t });\n\t }\n\t else if (node.normalizedPath) {\n\t leafsResult[colIndex] = { total: cell.total, path: node.normalizedPath };\n\t }\n\t cell.depth = branchDepth;\n\t cell.breadth = branchBreadth;\n\t return [\n\t matrixResult,\n\t leafsResult,\n\t branchDepth,\n\t branchBreadth\n\t ];\n\t };\n\t var withTotal = function (root, parent, index) {\n\t if (parent === void 0) { parent = null; }\n\t if (index === void 0) { index = 0; }\n\t var hierarchy;\n\t var alt = __assign(__assign({}, root), { total: true, hasChildren: false, children: [] });\n\t for (var childIndex = 0; childIndex < root.children.length; childIndex++) {\n\t var child = withTotal(root.children[childIndex], root, childIndex);\n\t hierarchy = hierarchy || child.hierarchy;\n\t if (child.hierarchy !== hierarchy\n\t && parent\n\t && !parent.children.some(function (c) { return c.total && c.name === alt.name; })\n\t && !root.total) {\n\t alt.children.push(child);\n\t root.children.splice(childIndex, 1);\n\t childIndex--;\n\t }\n\t }\n\t if (root.children.filter(function (c) { return !c.total; }).length >= 1\n\t && parent\n\t && !parent.children.some(function (c) { return c.total && c.name === alt.name; })\n\t && !root.total) {\n\t var childHierarchy = root.children[0].hierarchy;\n\t if (root.hierarchy === childHierarchy) {\n\t parent.children.splice(index + 1, 0, alt);\n\t }\n\t }\n\t return root;\n\t };\n\t /**\n\t * @hidden\n\t */\n\t var toTree = function (tuples) {\n\t var root = { children: [] };\n\t var map = {};\n\t var _loop_1 = function (tupleIndex) {\n\t var tuple = copy(tuples[tupleIndex]);\n\t var key = \"\";\n\t var _loop_2 = function (memberIndex) {\n\t var member = tuple.members[memberIndex];\n\t var parent_1;\n\t if (root.children && root.children.length === 0) {\n\t parent_1 = root;\n\t }\n\t else if (map[key] && !map[key + member.name] && member.levelNum === 0) {\n\t parent_1 = map[key];\n\t }\n\t else if (map[key + member.parentName] && member.levelNum > 0 && !map[key + member.parentName + member.name]) {\n\t parent_1 = map[key + member.parentName];\n\t }\n\t else if (!map[key + member.parentName] && member.levelNum > 0 && !map[key + member.parentName + member.name]) {\n\t var parentKey = Object.keys(map)\n\t .find(function (e) { return e.indexOf(member.hierarchy) === 0\n\t && e.lastIndexOf(key + member.parentName) + (key + member.parentName).length === e.length; });\n\t if (parentKey) {\n\t parent_1 = map[parentKey];\n\t }\n\t }\n\t if (parent_1) {\n\t member.path = generatePath(member, parent_1);\n\t member.normalizedPath = generateNormalizedPath(member, parent_1);\n\t var intruderIndex = parent_1.children.findIndex(function (c) { return c.hierarchy !== parent_1.hierarchy; });\n\t if (intruderIndex !== -1) {\n\t parent_1.children.splice(Math.max(intruderIndex, 0), 0, member);\n\t }\n\t else {\n\t parent_1.children.push(member);\n\t }\n\t }\n\t key += member.parentName += member.name;\n\t if (!map[key]) {\n\t map[key] = member;\n\t }\n\t };\n\t for (var memberIndex = 0; memberIndex < tuple.members.length; memberIndex++) {\n\t _loop_2(memberIndex);\n\t }\n\t };\n\t for (var tupleIndex = 0; tupleIndex < tuples.length; tupleIndex++) {\n\t _loop_1(tupleIndex);\n\t }\n\t return copy(withTotal(root));\n\t };\n\t /**\n\t * @hidden\n\t */\n\t var toData = function (data, columns, rows, breadth, depth) {\n\t var result = Array.from(new Array(depth), function () { return ({ cells: Array.from(new Array(breadth), function () { return null; }) }); });\n\t var hash = function (names) { return names.join('|'); };\n\t var membersNames = function (tuple) { return tuple.members.map(function (m) { return m.name; }); };\n\t var columnsIndexes = new Map();\n\t var rowsIndexes = new Map();\n\t columns.forEach(function (colMembers, idx) { columnsIndexes.set(hash(colMembers.path), idx); });\n\t rows.forEach(function (rowMembers, idx) { rowsIndexes.set(hash(rowMembers.path), idx); });\n\t data.forEach(function (item) {\n\t var colIndex = columnsIndexes.get(hash(membersNames(item.columnTuple)));\n\t var rowIndex = rowsIndexes.get(hash(membersNames(item.rowTuple)));\n\t if (colIndex !== undefined && rowIndex !== undefined) {\n\t if (!result[rowIndex].cells[colIndex]) {\n\t result[rowIndex].row = rows[rowIndex].path;\n\t result[rowIndex].cells[colIndex] = item;\n\t }\n\t }\n\t });\n\t return result;\n\t };\n\t var rotateMatrix = function (matrix, leafs, depth, breadth) {\n\t var result = new Array(breadth);\n\t for (var colIndex = 0; colIndex < breadth; colIndex++) {\n\t for (var rowIndex = 0; rowIndex < depth; rowIndex++) {\n\t if (matrix[rowIndex] && matrix[rowIndex].cells[colIndex]) {\n\t var cell = matrix[rowIndex].cells[colIndex];\n\t if (!result[colIndex]) {\n\t result[colIndex] = {\n\t cells: new Array(depth).fill(null)\n\t };\n\t }\n\t result[colIndex].cells[rowIndex] = __assign(__assign({}, cell), { rowSpan: cell.colSpan, colSpan: cell.rowSpan });\n\t }\n\t }\n\t }\n\t return [result, leafs, breadth, depth];\n\t };\n\t /**\n\t * @hidden\n\t */\n\t var toColumns = function (root) {\n\t var _a = toMatrix(root), matrix = _a[0], leafs = _a[1], depth = _a[2], breadth = _a[3];\n\t for (var colIndex = 0; colIndex < breadth; colIndex++) {\n\t var cell = null;\n\t for (var rowIndex = 0; rowIndex < depth; rowIndex++) {\n\t if (matrix[rowIndex]) {\n\t var next = matrix[rowIndex].cells[colIndex];\n\t if (!next && cell) {\n\t cell.rowSpan = (cell.rowSpan || 1) + 1;\n\t }\n\t if (cell) {\n\t cell.colSpan = cell.breadth || 1;\n\t }\n\t if (next) {\n\t cell = next;\n\t }\n\t }\n\t }\n\t }\n\t return [matrix, leafs, depth, breadth];\n\t };\n\t /**\n\t * @hidden\n\t */\n\t var toRows = function (root) {\n\t var _a = toMatrix(root), matrix = _a[0], leafs = _a[1], depth = _a[2], breadth = _a[3];\n\t for (var colIndex = 0; colIndex < breadth; colIndex++) {\n\t var cell = null;\n\t for (var rowIndex = 0; rowIndex < depth; rowIndex++) {\n\t if (matrix[rowIndex]) {\n\t var next = matrix[rowIndex].cells[colIndex];\n\t if (!next && cell) {\n\t cell.rowSpan = (cell.rowSpan || 1) + 1;\n\t }\n\t if (cell) {\n\t cell.colSpan = cell.breadth;\n\t }\n\t if (next) {\n\t cell = next;\n\t }\n\t }\n\t }\n\t }\n\t return rotateMatrix(matrix, leafs, depth, breadth);\n\t };\n\t /**\n\t * @hidden\n\t */\n\t function copy(obj) {\n\t return JSON.parse(JSON.stringify(obj));\n\t }\n\t var kpiMeasure = function (name, measure, type) {\n\t return {\n\t hierarchyUniqueName: name,\n\t uniqueName: measure,\n\t caption: measure,\n\t measure: measure,\n\t name: measure,\n\t type: type,\n\t kpi: true\n\t };\n\t };\n\t /**\n\t * @hidden\n\t */\n\t function buildKPIMeasures(node) {\n\t var name = node.name;\n\t return [\n\t kpiMeasure(name, node.value, \"value\"),\n\t kpiMeasure(name, node.goal, \"goal\"),\n\t kpiMeasure(name, node.status, \"status\"),\n\t kpiMeasure(name, node.trend, \"trend\")\n\t ];\n\t }\n\t /**\n\t * @hidden\n\t */\n\t var addKPI = function (data) {\n\t var found;\n\t var idx = 0;\n\t for (; idx < data.length; idx++) {\n\t if (data[idx].type === 2) {\n\t found = true;\n\t break;\n\t }\n\t }\n\t if (found) {\n\t data.splice(idx + 1, 0, {\n\t caption: \"KPIs\",\n\t defaultHierarchy: \"[KPIs]\",\n\t name: \"KPIs\",\n\t uniqueName: \"[KPIs]\"\n\t });\n\t }\n\t };\n\t /**\n\t * @hidden\n\t */\n\t var compareAxisWithField = function (a, b) { return String(a.name) === String([(b.defaultHierarchy\n\t ? b.defaultHierarchy\n\t : b.uniqueName)]); };\n\t /**\n\t * @hidden\n\t */\n\t var compareAxes = function (a, b) { return String(a.name) === String(b.name); };\n\n\t /**\n\t * @hidden\n\t */\n\t exports.HEADERS_ACTION = void 0;\n\t (function (HEADERS_ACTION) {\n\t HEADERS_ACTION[\"toggle\"] = \"HEADERS_ACTION_TOGGLE\";\n\t HEADERS_ACTION[\"expand\"] = \"HEADERS_ACTION_EXPAND\";\n\t HEADERS_ACTION[\"collapse\"] = \"HEADERS_ACTION_COLLAPSE\";\n\t })(exports.HEADERS_ACTION || (exports.HEADERS_ACTION = {}));\n\t var findPath = function (node, matchFn, matched) {\n\t var result = new Set();\n\t node.children.forEach(function (child) {\n\t var match = matchFn(child);\n\t if (matched) {\n\t result.add(String(child.path));\n\t }\n\t findPath(child, matchFn, (matched || match)).map(function (h) {\n\t result.add(h);\n\t });\n\t });\n\t return Array.from(result.values());\n\t };\n\t /**\n\t * @hidden\n\t */\n\t var headersReducer = function (state, action) {\n\t switch (action.type) {\n\t case exports.HEADERS_ACTION.toggle: {\n\t var existing = state.find((function (s) { return String(s.name) === String(action.payload); }));\n\t return headersReducer(state, __assign(__assign({}, action), { type: existing && (existing.expand)\n\t ? exports.HEADERS_ACTION.collapse\n\t : exports.HEADERS_ACTION.expand }));\n\t }\n\t case exports.HEADERS_ACTION.expand: {\n\t var existing_1 = state.find((function (s) { return String(s.name) === String(action.payload); }));\n\t if (existing_1 && existing_1.expand === true) {\n\t return state;\n\t }\n\t else if (existing_1 && (existing_1.expand === false || existing_1.expand === undefined)) {\n\t return state.map(function (s) { return s === existing_1 ? (__assign(__assign({}, existing_1), { expand: true })) : s; });\n\t }\n\t else {\n\t return __spreadArrays(state, [{ name: action.payload, expand: true }]);\n\t }\n\t }\n\t case exports.HEADERS_ACTION.collapse: {\n\t var filtered_1 = findPath(action.tree, function (node) { return !node.total && String(node.path) === String(action.payload); });\n\t var newState = __spreadArrays(state).filter(function (h) { return !filtered_1.some(function (f) { return f === String(h.name); }); })\n\t .map(function (h) { return (__assign(__assign({}, h), { expand: Boolean(h.expand) })); })\n\t .map(function (h) { return (String(h.name) === String(action.payload))\n\t ? action.payload.length > 1 ? undefined : { name: action.payload, expand: false }\n\t : h; })\n\t .filter(Boolean);\n\t return newState;\n\t }\n\t default: {\n\t return state;\n\t }\n\t }\n\t };\n\n\t /**\n\t * @hidden\n\t */\n\t exports.PIVOT_CONFIGURATOR_ACTION = void 0;\n\t (function (PIVOT_CONFIGURATOR_ACTION) {\n\t // Selection\n\t PIVOT_CONFIGURATOR_ACTION[\"toggleSelection\"] = \"PIVOT_CONFIGURATOR_ACTION_TOGGLE_SELECTION\";\n\t PIVOT_CONFIGURATOR_ACTION[\"addColumnAxis\"] = \"PIVOT_CONFIGURATOR_ACTION_ADD_COLUMN_AXIS\";\n\t PIVOT_CONFIGURATOR_ACTION[\"addColumnAxes\"] = \"PIVOT_CONFIGURATOR_ACTION_ADD_COLUMN_AXES\";\n\t PIVOT_CONFIGURATOR_ACTION[\"removeColumnAxis\"] = \"PIVOT_CONFIGURATOR_ACTION_REMOVE_COLUMN_AXIS\";\n\t PIVOT_CONFIGURATOR_ACTION[\"removeColumnAxes\"] = \"PIVOT_CONFIGURATOR_ACTION_REMOVE_COLUMN_AXES\";\n\t PIVOT_CONFIGURATOR_ACTION[\"addRowAxis\"] = \"PIVOT_CONFIGURATOR_ACTION_ADD_ROW_AXIS\";\n\t PIVOT_CONFIGURATOR_ACTION[\"addRowAxes\"] = \"PIVOT_CONFIGURATOR_ACTION_ADD_ROW_AXES\";\n\t PIVOT_CONFIGURATOR_ACTION[\"removeRowAxis\"] = \"PIVOT_CONFIGURATOR_ACTION_REMOVE_ROW_AXIS\";\n\t PIVOT_CONFIGURATOR_ACTION[\"removeRowAxes\"] = \"PIVOT_CONFIGURATOR_ACTION_REMOVE_ROW_AXES\";\n\t PIVOT_CONFIGURATOR_ACTION[\"addMeasureAxis\"] = \"PIVOT_CONFIGURATOR_ACTION_ADD_MEASURE_AXIS\";\n\t PIVOT_CONFIGURATOR_ACTION[\"addMeasureAxes\"] = \"PIVOT_CONFIGURATOR_ACTION_ADD_MEASURE_AXES\";\n\t PIVOT_CONFIGURATOR_ACTION[\"removeMeasureAxis\"] = \"PIVOT_CONFIGURATOR_ACTION_REMOVE_MEASURE_AXIS\";\n\t PIVOT_CONFIGURATOR_ACTION[\"removeMeasureAxes\"] = \"PIVOT_CONFIGURATOR_ACTION_REMOVE_MEASURE_AXES\";\n\t // Removal\n\t PIVOT_CONFIGURATOR_ACTION[\"remove\"] = \"PIVOT_CONFIGURATOR_ACTION_REMOVE\";\n\t // Sort\n\t PIVOT_CONFIGURATOR_ACTION[\"setSort\"] = \"PIVOT_CONFIGURATOR_ACTION_SET_SORT\";\n\t // Filter\n\t PIVOT_CONFIGURATOR_ACTION[\"setFilter\"] = \"PIVOT_CONFIGURATOR_ACTION_SET_FILTER\";\n\t PIVOT_CONFIGURATOR_ACTION[\"addFilter\"] = \"PIVOT_CONFIGURATOR_ACTION_ADD_FILTER\";\n\t PIVOT_CONFIGURATOR_ACTION[\"changeFilter\"] = \"PIVOT_CONFIGURATOR_ACTION_CHANGE_FILTER\";\n\t PIVOT_CONFIGURATOR_ACTION[\"removeFilter\"] = \"PIVOT_CONFIGURATOR_ACTION_REMOVE_FILTER\";\n\t // Drag\n\t PIVOT_CONFIGURATOR_ACTION[\"setDragItem\"] = \"PIVOT_CONFIGURATOR_ACTION_SET_DRAGITEM\";\n\t PIVOT_CONFIGURATOR_ACTION[\"drop\"] = \"PIVOT_CONFIGURATOR_ACTION_DROP\";\n\t PIVOT_CONFIGURATOR_ACTION[\"setDropZone\"] = \"PIVOT_CONFIGURATOR_ACTION_SET_DROP_ZONE\";\n\t PIVOT_CONFIGURATOR_ACTION[\"setDropTarget\"] = \"PIVOT_CONFIGURATOR_ACTION_SET_DROP_TARGET\";\n\t PIVOT_CONFIGURATOR_ACTION[\"setDropDirection\"] = \"PIVOT_CONFIGURATOR_ACTION_SET_DROP_DIRECTION\";\n\t })(exports.PIVOT_CONFIGURATOR_ACTION || (exports.PIVOT_CONFIGURATOR_ACTION = {}));\n\t /**\n\t * @hidden\n\t */\n\t var configuratorReducer = function (state, action) {\n\t var newRows;\n\t var newColumns;\n\t var newMeasures;\n\t var newSort;\n\t var newFilter;\n\t var newDragitem;\n\t var newDropZone;\n\t var newDropDirection;\n\t var newDropTarget;\n\t switch (action.type) {\n\t case exports.PIVOT_CONFIGURATOR_ACTION.toggleSelection: {\n\t if (Array.isArray(action.payload)) ;\n\t else {\n\t var payload_1 = action.payload;\n\t if (payload_1.type === 2 || 'aggregator' in payload_1) {\n\t if (state.measureAxes.some(function (s) { return compareAxisWithField(s, payload_1); })) {\n\t return configuratorReducer(state, __assign(__assign({}, action), { type: exports.PIVOT_CONFIGURATOR_ACTION.removeMeasureAxis }));\n\t }\n\t else {\n\t return configuratorReducer(state, __assign(__assign({}, action), { type: exports.PIVOT_CONFIGURATOR_ACTION.addMeasureAxis }));\n\t }\n\t }\n\t else if (payload_1.type === 'kpi') {\n\t var measures = buildKPIMeasures(payload_1);\n\t if (measures.every(function (m) { return state.measureAxes.some(function (s) { return compareAxisWithField(s, m); }); })) {\n\t return configuratorReducer(state, __assign(__assign({}, action), { type: exports.PIVOT_CONFIGURATOR_ACTION.removeMeasureAxes, payload: measures }));\n\t }\n\t else {\n\t return configuratorReducer(state, __assign(__assign({}, action), { type: exports.PIVOT_CONFIGURATOR_ACTION.addMeasureAxes, payload: measures.filter(function (m) { return !state.measureAxes.some(function (s) { return compareAxisWithField(s, m); }); }) }));\n\t }\n\t }\n\t else if (action.payload.kpi) {\n\t if (state.measureAxes.some(function (s) { return compareAxisWithField(s, payload_1); })) {\n\t return configuratorReducer(state, __assign(__assign({}, action), { type: exports.PIVOT_CONFIGURATOR_ACTION.removeMeasureAxis }));\n\t }\n\t else {\n\t return configuratorReducer(state, __assign(__assign({}, action), { type: exports.PIVOT_CONFIGURATOR_ACTION.addMeasureAxis }));\n\t }\n\t }\n\t else {\n\t if (state.columnAxes.some(function (s) { return compareAxisWithField(s, payload_1); })) {\n\t return configuratorReducer(state, __assign(__assign({}, action), { type: exports.PIVOT_CONFIGURATOR_ACTION.removeColumnAxis }));\n\t }\n\t else if (state.rowAxes.some(function (s) { return compareAxisWithField(s, payload_1); })) {\n\t return configuratorReducer(state, __assign(__assign({}, action), { type: exports.PIVOT_CONFIGURATOR_ACTION.removeRowAxis }));\n\t }\n\t else if ((state.columnAxes && state.columnAxes.length) && (!state.rowAxes || !state.rowAxes.length)) {\n\t return configuratorReducer(state, __assign(__assign({}, action), { type: exports.PIVOT_CONFIGURATOR_ACTION.addRowAxis }));\n\t }\n\t else {\n\t return configuratorReducer(state, __assign(__assign({}, action), { type: exports.PIVOT_CONFIGURATOR_ACTION.addColumnAxis }));\n\t }\n\t }\n\t }\n\t break;\n\t }\n\t case exports.PIVOT_CONFIGURATOR_ACTION.addColumnAxis: {\n\t newColumns = __spreadArrays((state.columnAxes || []), [\n\t { name: [action.payload.defaultHierarchy || action.payload.uniqueName] }\n\t ]);\n\t break;\n\t }\n\t case exports.PIVOT_CONFIGURATOR_ACTION.addColumnAxes: {\n\t // TODO;\n\t break;\n\t }\n\t case exports.PIVOT_CONFIGURATOR_ACTION.removeColumnAxis: {\n\t newColumns = __spreadArrays((state.columnAxes || []).filter(function (s) { return !compareAxisWithField(s, action.payload); }));\n\t break;\n\t }\n\t case exports.PIVOT_CONFIGURATOR_ACTION.removeColumnAxes: {\n\t // TODO;\n\t break;\n\t }\n\t case exports.PIVOT_CONFIGURATOR_ACTION.addRowAxis: {\n\t newRows = __spreadArrays((state.rowAxes || []), [\n\t { name: [action.payload.defaultHierarchy || action.payload.uniqueName] }\n\t ]);\n\t break;\n\t }\n\t case exports.PIVOT_CONFIGURATOR_ACTION.addRowAxes: {\n\t // TODO;\n\t break;\n\t }\n\t case exports.PIVOT_CONFIGURATOR_ACTION.removeRowAxis: {\n\t newRows = __spreadArrays((state.rowAxes || []).filter(function (s) { return !compareAxisWithField(s, action.payload); }));\n\t break;\n\t }\n\t case exports.PIVOT_CONFIGURATOR_ACTION.removeRowAxes: {\n\t // TODO;\n\t break;\n\t }\n\t case exports.PIVOT_CONFIGURATOR_ACTION.addMeasureAxis: {\n\t newMeasures = __spreadArrays((state.measureAxes || []), [\n\t { name: [action.payload.defaultHierarchy || action.payload.uniqueName] }\n\t ]);\n\t break;\n\t }\n\t case exports.PIVOT_CONFIGURATOR_ACTION.removeMeasureAxis: {\n\t newMeasures = __spreadArrays((state.measureAxes || []).filter(function (s) { return !compareAxisWithField(s, action.payload); }));\n\t break;\n\t }\n\t case exports.PIVOT_CONFIGURATOR_ACTION.addMeasureAxes: {\n\t newMeasures = __spreadArrays((state.measureAxes || []), (action.payload || []).map(function (p) { return ({ name: [p.defaultHierarchy || p.uniqueName] }); }));\n\t break;\n\t }\n\t case exports.PIVOT_CONFIGURATOR_ACTION.removeMeasureAxes: {\n\t newMeasures = __spreadArrays((state.measureAxes || []).filter(function (s) { return !action.payload.some(function (p) { return compareAxisWithField(s, p); }); }));\n\t break;\n\t }\n\t case exports.PIVOT_CONFIGURATOR_ACTION.remove: {\n\t if (state.columnAxes.some(function (s) { return compareAxes(s, action.payload); })) {\n\t newColumns = __spreadArrays(state.columnAxes.filter(function (s) { return !compareAxes(s, action.payload); }));\n\t }\n\t if (state.rowAxes.some(function (s) { return compareAxes(s, action.payload); })) {\n\t newRows = __spreadArrays(state.rowAxes.filter(function (s) { return !compareAxes(s, action.payload); }));\n\t }\n\t if (state.measureAxes.some(function (s) { return compareAxes(s, action.payload); })) {\n\t newMeasures = __spreadArrays(state.measureAxes.filter(function (s) { return !compareAxes(s, action.payload); }));\n\t }\n\t break;\n\t }\n\t case exports.PIVOT_CONFIGURATOR_ACTION.setDragItem:\n\t newDragitem = action.payload;\n\t break;\n\t case exports.PIVOT_CONFIGURATOR_ACTION.setDropZone:\n\t newDropZone = action.payload;\n\t break;\n\t case exports.PIVOT_CONFIGURATOR_ACTION.setDropTarget:\n\t newDropTarget = action.payload;\n\t break;\n\t case exports.PIVOT_CONFIGURATOR_ACTION.setDropDirection:\n\t newDropDirection = action.payload;\n\t break;\n\t case exports.PIVOT_CONFIGURATOR_ACTION.drop:\n\t if (state.dragItem && state.dropZone) {\n\t var currentColumn = state.columnAxes.find(function (s) { return compareAxes(s, action.payload); });\n\t var currentRow = state.rowAxes.find(function (s) { return compareAxes(s, action.payload); });\n\t var currentMeasure = state.measureAxes.find(function (s) { return compareAxes(s, action.payload); });\n\t var current = void 0;\n\t if (currentColumn) {\n\t current = currentColumn;\n\t newColumns = __spreadArrays(state.columnAxes.filter(function (s) { return !compareAxes(s, action.payload); }));\n\t }\n\t if (currentRow) {\n\t current = currentRow;\n\t newRows = __spreadArrays(state.rowAxes.filter(function (s) { return !compareAxes(s, action.payload); }));\n\t }\n\t if (currentMeasure) {\n\t current = currentMeasure;\n\t newMeasures = __spreadArrays(state.measureAxes.filter(function (s) { return !compareAxes(s, action.payload); }));\n\t }\n\t switch (state.dropZone) {\n\t case 'columnAxes': {\n\t newColumns = newColumns || state.columnAxes.slice();\n\t var insertAtIndex = -1;\n\t if (state.dropTarget && state.dropDirection) {\n\t var offset = state.dropDirection\n\t ? state.dropDirection === 'before'\n\t ? 0\n\t : 1\n\t : 0;\n\t insertAtIndex = newColumns.findIndex(function (c) { return compareAxes(c, state.dropTarget); }) + offset;\n\t }\n\t if (insertAtIndex >= 0) {\n\t newColumns.splice(insertAtIndex, 0, current);\n\t }\n\t else {\n\t newColumns.push(current);\n\t }\n\t break;\n\t }\n\t case 'rowAxes': {\n\t newRows = newRows || state.rowAxes.slice();\n\t var insertAtIndex = -1;\n\t if (state.dropTarget && state.dropDirection) {\n\t var offset = state.dropDirection\n\t ? state.dropDirection === 'before'\n\t ? 0\n\t : 1\n\t : 0;\n\t insertAtIndex = newRows.findIndex(function (c) { return compareAxes(c, state.dropTarget); }) + offset;\n\t }\n\t if (insertAtIndex >= 0) {\n\t newRows.splice(insertAtIndex, 0, current);\n\t }\n\t else {\n\t newRows.push(current);\n\t }\n\t break;\n\t }\n\t case 'measureAxes': {\n\t newMeasures = newMeasures || state.measureAxes.slice();\n\t var insertAtIndex = -1;\n\t if (state.dropTarget && state.dropDirection) {\n\t var offset = state.dropDirection\n\t ? state.dropDirection === 'before'\n\t ? 0\n\t : 1\n\t : 0;\n\t insertAtIndex = newMeasures.findIndex(function (c) { return compareAxes(c, state.dropTarget); }) + offset;\n\t }\n\t if (insertAtIndex >= 0) {\n\t newMeasures.splice(insertAtIndex, 0, current);\n\t }\n\t else {\n\t newMeasures.push(current);\n\t }\n\t break;\n\t }\n\t }\n\t }\n\t newDragitem = null;\n\t newDropZone = null;\n\t newDropTarget = null;\n\t break;\n\t case exports.PIVOT_CONFIGURATOR_ACTION.setSort:\n\t newSort = action.payload;\n\t break;\n\t case exports.PIVOT_CONFIGURATOR_ACTION.setFilter:\n\t if (Array.isArray(action.payload)) {\n\t newFilter = action.payload;\n\t }\n\t else {\n\t newFilter = [action.payload];\n\t }\n\t break;\n\t case exports.PIVOT_CONFIGURATOR_ACTION.addFilter:\n\t newFilter = (state.filter || []).slice();\n\t if (Array.isArray(action.payload)) {\n\t newFilter.push.apply(newFilter, action.payload);\n\t }\n\t else {\n\t newFilter.push(action.payload);\n\t }\n\t break;\n\t case exports.PIVOT_CONFIGURATOR_ACTION.changeFilter:\n\t newFilter = (Array.isArray(action.payload)\n\t ? (state.filter || []).map(function (f) { return action.payload.some(function (a) { return a.field === f.field; })\n\t ? action.payload.find(function (a) { return a.field === f.field; })\n\t : f; })\n\t : (state.filter || []).map(function (f) { return f.field === action.payload.field\n\t ? action.payload\n\t : f; }));\n\t break;\n\t case exports.PIVOT_CONFIGURATOR_ACTION.removeFilter:\n\t newFilter = (state.filter || []).slice();\n\t if (Array.isArray(action.payload)) {\n\t newFilter = newFilter.filter(function (f) { return !action.payload.some(function (p) { return p.field === f.field &&\n\t p.operator === f.operator; }); });\n\t }\n\t else {\n\t newFilter = newFilter.filter(function (f) { return !(f.field === action.payload.field\n\t && f.operator === action.payload.operator); });\n\t }\n\t break;\n\t }\n\t return {\n\t dragItem: newDragitem,\n\t dropTarget: newDropTarget,\n\t dropDirection: newDropDirection,\n\t dropZone: newDropZone,\n\t columnAxes: newColumns,\n\t rowAxes: newRows,\n\t measureAxes: newMeasures,\n\t filter: newFilter,\n\t sort: newSort\n\t };\n\t };\n\n\t exports.addKPI = addKPI;\n\t exports.buildKPIMeasures = buildKPIMeasures;\n\t exports.compareAxes = compareAxes;\n\t exports.configuratorReducer = configuratorReducer;\n\t exports.createAxisDescriptors = createAxisDescriptors;\n\t exports.createDataState = createDataState;\n\t exports.createDiscoverBody = createDiscoverBody;\n\t exports.createRequestBody = createRequestBody;\n\t exports.discoverCommands = discoverCommands;\n\t exports.fetchData = fetchData;\n\t exports.fetchDiscover = fetchDiscover;\n\t exports.headersReducer = headersReducer;\n\t exports.parseResponse = parseResponse;\n\t exports.setFilter = setFilter;\n\t exports.setSort = setSort;\n\t exports.toColumns = toColumns;\n\t exports.toData = toData;\n\t exports.toRows = toRows;\n\t exports.toTree = toTree;\n\n\t Object.defineProperty(exports, '__esModule', { value: true });\n\n\t return exports;\n\n\t})({});\n\n\t})();\n\n\t}, __webpack_require__(3));\n\n/***/ })\n\n/******/ });"],"sourceRoot":""}