{"version":3,"sources":["AX6UIGrid_util.js"],"names":["_jqmin","require","_AX6Util","_AX6Info","divideTableByFrozenColumnIndex","_table","_frozenColumnIndex","tempTable_l","rows","tempTable_r","r","rl","length","row","cols","c","cl","col","_jqmin2","default","extend","colStartIndex","colIndex","colEndIndex","colspan","push","leftCol","rightCol","leftData","rightData","getTableByStartEndColumnIndex","_startColumnIndex","_endColumnIndex","tempTable","getMousePosition","mouseObj","e","originalEvent","changedTouches","clientX","pageX","clientY","pageY","ENM","mousedown","_AX6Info2","supportTouch","mousemove","mouseup","columns","_AX6Util2","deepCopy","_columns","cfg","this","config","maekRows","depth","parentField","i","l","field","hidden","table","rowspan","rowIndex","width","columnMinWidth","concat","makeBodyRowTable","selfMakeRow","__columns","makeBodyRowMap","map","forEach","makeFootSumTable","_footSumColumns","footSumRow","addC","colGroup","align","label","columnAttr","key","formatter","makeBodyGroupingTable","_bodyGroupingColumns","findPanelByColumnIndex","_dindex","_colIndex","_rowIndex","_containerPanelName","_isScrollPanel","_panels","frozenColumnIndex","xvar","frozenRowIndex","join","panelName","containerPanelName","isScrollPanel","getRealPathForDataItem","_dataPath","path","_path","split","n","makeHeaderTable"],"mappings":"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","file":"AX6UIGrid_util.js","sourcesContent":["import jQuery from \"jqmin\";\nimport U from \"../AX6Util\";\nimport info from \"../AX6Info\";\n\n/**\n * @method ax5grid.util.divideTableByFrozenColumnIndex\n * @param _table\n * @param _frozenColumnIndex\n * @returns {{leftHeaderData: {rows: Array}, headerData: {rows: Array}}}\n */\nconst divideTableByFrozenColumnIndex = function (_table, _frozenColumnIndex) {\n\n  let tempTable_l = {rows: []},\n    tempTable_r = {rows: []};\n\n  for (let r = 0, rl = _table.rows.length; r < rl; r++) {\n    let row = _table.rows[r];\n\n    tempTable_l.rows[r] = {cols: []};\n    tempTable_r.rows[r] = {cols: []};\n\n    for (let c = 0, cl = row.cols.length; c < cl; c++) {\n      let col = jQuery.extend({}, row.cols[c]),\n        colStartIndex = col.colIndex,\n        colEndIndex = col.colIndex + col.colspan;\n\n      if (colStartIndex < _frozenColumnIndex) {\n        if (colEndIndex <= _frozenColumnIndex) {\n          // 좌측편에 변형없이 추가\n          tempTable_l.rows[r].cols.push(col);\n        } else {\n          let leftCol = jQuery.extend({}, col),\n            rightCol = jQuery.extend({}, leftCol);\n\n          leftCol.colspan = _frozenColumnIndex - leftCol.colIndex;\n          rightCol.colIndex = _frozenColumnIndex;\n          rightCol.colspan = col.colspan - leftCol.colspan;\n\n          tempTable_l.rows[r].cols.push(leftCol);\n          if (rightCol.colspan) {\n            tempTable_r.rows[r].cols.push(rightCol);\n          }\n        }\n      }\n      else {\n        // 오른편\n        tempTable_r.rows[r].cols.push(col);\n      }\n\n      col = null;\n      colStartIndex = null;\n      colEndIndex = null;\n    }\n\n    row = null;\n  }\n\n  return {\n    leftData: tempTable_l,\n    rightData: tempTable_r\n  }\n};\n\nconst getTableByStartEndColumnIndex = function (_table, _startColumnIndex, _endColumnIndex) {\n\n  let tempTable = {rows: []};\n  for (let r = 0, rl = _table.rows.length; r < rl; r++) {\n    let row = _table.rows[r];\n\n    tempTable.rows[r] = {cols: []};\n    for (let c = 0, cl = row.cols.length; c < cl; c++) {\n      let col = jQuery.extend({}, row.cols[c]),\n        colStartIndex = col.colIndex, colEndIndex = col.colIndex + col.colspan;\n\n      if (_startColumnIndex <= colStartIndex || colEndIndex <= _endColumnIndex) {\n        if (_startColumnIndex <= colStartIndex && colEndIndex <= _endColumnIndex) {\n          // 변형없이 추가\n          tempTable.rows[r].cols.push(col);\n        }\n        else if (_startColumnIndex > colStartIndex && colEndIndex > _startColumnIndex) {\n          // 앞에서 걸친경우\n          col.colspan = colEndIndex - _startColumnIndex;\n          tempTable.rows[r].cols.push(col);\n        }\n        else if (colEndIndex > _endColumnIndex && colStartIndex <= _endColumnIndex) {\n          tempTable.rows[r].cols.push(col);\n        }\n      }\n    }\n  }\n\n  return tempTable;\n};\n\nconst getMousePosition = function (e) {\n  let mouseObj,\n    originalEvent = (e.originalEvent) ? e.originalEvent : e;\n\n  mouseObj = ('changedTouches' in originalEvent && originalEvent.changedTouches) ? originalEvent.changedTouches[0] : originalEvent;\n  // clientX, Y 쓰면 스크롤에서 문제 발생\n  return {\n    clientX: mouseObj.pageX,\n    clientY: mouseObj.pageY\n  }\n};\n\nconst ENM = {\n  \"mousedown\": (info.supportTouch) ? \"touchstart\" : \"mousedown\",\n  \"mousemove\": (info.supportTouch) ? \"touchmove\" : \"mousemove\",\n  \"mouseup\": (info.supportTouch) ? \"touchend\" : \"mouseup\"\n};\n\nconst makeHeaderTable = function (_columns) {\n  let columns = U.deepCopy(_columns),\n    cfg = this.config,\n    table = {\n      rows: []\n    },\n    colIndex = 0,\n    maekRows = function (_columns, depth, parentField) {\n      var row = {cols: []};\n      var i = 0, l = _columns.length;\n\n      for (; i < l; i++) {\n        var field = _columns[i];\n        var colspan = 1;\n\n        if (!field.hidden) {\n          field.colspan = 1;\n          field.rowspan = 1;\n\n          field.rowIndex = depth;\n          field.colIndex = (function () {\n            if (!parentField) {\n              return colIndex++;\n            } else {\n              colIndex = parentField.colIndex + i + 1;\n              return parentField.colIndex + i;\n            }\n          })();\n\n          row.cols.push(field);\n\n          if ('columns' in field) {\n            colspan = maekRows(field.columns, depth + 1, field);\n          } else {\n            field.width = ('width' in field) ? field.width : cfg.columnMinWidth;\n          }\n          field.colspan = colspan;\n        } else {\n\n\n        }\n      }\n\n      if (row.cols.length > 0) {\n        if (!table.rows[depth]) {\n          table.rows[depth] = {cols: []};\n        }\n        table.rows[depth].cols = table.rows[depth].cols.concat(row.cols);\n        return (row.cols.length - 1) + colspan;\n      } else {\n        return colspan;\n      }\n\n    };\n\n  maekRows(columns, 0);\n\n  // set rowspan\n  for (let r = 0, rl = table.rows.length; r < rl; r++) {\n    for (let c = 0, cl = table.rows[r].cols.length; c < cl; c++) {\n      if (!('columns' in table.rows[r].cols[c])) {\n        table.rows[r].cols[c].rowspan = rl - r;\n      }\n    }\n  }\n\n  return table;\n};\n\nconst makeBodyRowTable = function (_columns) {\n  let columns = U.deepCopy(_columns),\n    table = {\n      rows: []\n    },\n    colIndex = 0,\n    maekRows = function (_columns, depth, parentField) {\n      let row = {cols: []},\n        i = 0,\n        l = _columns.length,\n        colspan = 1;\n\n      let selfMakeRow = function (__columns) {\n        let i = 0, l = __columns.length;\n        for (; i < l; i++) {\n          let field = __columns[i],\n            colspan = 1;\n\n          if (!field.hidden) {\n\n            if ('key' in field) {\n              field.colspan = 1;\n              field.rowspan = 1;\n\n              field.rowIndex = depth;\n              field.colIndex = (function () {\n                if (!parentField) {\n                  return colIndex++;\n                } else {\n                  colIndex = parentField.colIndex + i + 1;\n                  return parentField.colIndex + i;\n                }\n              })();\n\n              row.cols.push(field);\n              if ('columns' in field) {\n                colspan = maekRows(field.columns, depth + 1, field);\n              }\n              field.colspan = colspan;\n            }\n            else {\n              if ('columns' in field) {\n                selfMakeRow(field.columns, depth);\n              }\n            }\n          }\n          else {\n\n          }\n        }\n      };\n\n      for (; i < l; i++) {\n        let field = _columns[i];\n        colspan = 1;\n\n        if (!field.hidden) {\n\n          if ('key' in field) {\n            field.colspan = 1;\n            field.rowspan = 1;\n\n            field.rowIndex = depth;\n            field.colIndex = (function () {\n              if (!parentField) {\n                return colIndex++;\n              } else {\n                colIndex = parentField.colIndex + i + 1;\n                return parentField.colIndex + i;\n              }\n            })();\n\n            row.cols.push(field);\n            if ('columns' in field) {\n              colspan = maekRows(field.columns, depth + 1, field);\n            }\n            field.colspan = colspan;\n          }\n          else {\n            if ('columns' in field) {\n              selfMakeRow(field.columns, depth);\n            }\n          }\n        }\n        else {\n\n        }\n\n        field = null;\n      }\n\n      if (row.cols.length > 0) {\n        if (!table.rows[depth]) {\n          table.rows[depth] = {cols: []};\n        }\n        table.rows[depth].cols = table.rows[depth].cols.concat(row.cols);\n        return (row.cols.length - 1) + colspan;\n      }\n      else {\n        return colspan;\n      }\n    };\n\n  maekRows(columns, 0);\n\n  (function (table) {\n    // set rowspan\n    for (let r = 0, rl = table.rows.length; r < rl; r++) {\n      let row = table.rows[r];\n      for (let c = 0, cl = row.cols.length; c < cl; c++) {\n        let col = row.cols[c];\n        if (!('columns' in col)) {\n          col.rowspan = rl - r;\n        }\n        col = null;\n      }\n      row = null;\n    }\n  })(table);\n\n  return table;\n};\n\nconst makeBodyRowMap = function (_table) {\n  let map = {};\n  _table.rows.forEach(function (row) {\n    row.cols.forEach(function (col) {\n      map[col.rowIndex + \"_\" + col.colIndex] = jQuery.extend({}, col);\n    });\n  });\n  return map;\n};\n\nlet makeFootSumTable = function (_footSumColumns) {\n  let table = {\n    rows: []\n  };\n\n  for (let r = 0, rl = _footSumColumns.length; r < rl; r++) {\n    let footSumRow = _footSumColumns[r],\n      addC = 0;\n\n    table.rows[r] = {cols: []};\n\n    for (let c = 0, cl = footSumRow.length; c < cl; c++) {\n      if (addC > this.colGroup.length) break;\n      let colspan = footSumRow[c].colspan || 1;\n      if (footSumRow[c].label || footSumRow[c].key) {\n        table.rows[r].cols.push({\n          colspan: colspan,\n          rowspan: 1,\n          colIndex: addC,\n          columnAttr: \"sum\",\n          align: footSumRow[c].align,\n          label: footSumRow[c].label,\n          key: footSumRow[c].key,\n          collector: footSumRow[c].collector,\n          formatter: footSumRow[c].formatter\n        });\n      } else {\n        table.rows[r].cols.push({\n          colIndex: addC,\n          colspan: colspan,\n          rowspan: 1,\n          label: \"&nbsp;\",\n        });\n      }\n      addC += colspan;\n      colspan = null;\n    }\n\n    if (addC < this.colGroup.length) {\n      for (let c = addC; c < this.colGroup.length; c++) {\n        table.rows[r].cols.push({\n          colIndex: (c),\n          colspan: 1,\n          rowspan: 1,\n          label: \"&nbsp;\",\n        });\n      }\n    }\n    footSumRow = null;\n    addC = null;\n  }\n\n  return table;\n};\n\nconst makeBodyGroupingTable = function (_bodyGroupingColumns) {\n  let table = {\n      rows: []\n    },\n    r = 0,\n    addC = 0;\n\n  table.rows[r] = {cols: []};\n  for (let c = 0, cl = _bodyGroupingColumns.length; c < cl; c++) {\n    if (addC > this.columns.length) break;\n    let colspan = _bodyGroupingColumns[c].colspan || 1;\n    if (_bodyGroupingColumns[c].label || _bodyGroupingColumns[c].key) {\n      table.rows[r].cols.push({\n        colspan: colspan,\n        rowspan: 1,\n        rowIndex: 0,\n        colIndex: addC,\n        columnAttr: \"default\",\n        align: _bodyGroupingColumns[c].align,\n        label: _bodyGroupingColumns[c].label,\n        key: _bodyGroupingColumns[c].key,\n        collector: _bodyGroupingColumns[c].collector,\n        formatter: _bodyGroupingColumns[c].formatter\n      });\n    } else {\n      table.rows[r].cols.push({\n        rowIndex: 0,\n        colIndex: addC,\n        colspan: colspan,\n        rowspan: 1,\n        label: \"&nbsp;\"\n      });\n    }\n    addC += colspan;\n  }\n\n  if (addC < this.colGroup.length) {\n    for (var c = addC; c < this.colGroup.length; c++) {\n      table.rows[r].cols.push({\n        rowIndex: 0,\n        colIndex: (c),\n        colspan: 1,\n        rowspan: 1,\n        label: \"&nbsp;\",\n      });\n    }\n  }\n\n  return table;\n};\n\nconst findPanelByColumnIndex = function (_dindex, _colIndex, _rowIndex) {\n  let _containerPanelName,\n    _isScrollPanel = false,\n    _panels = [];\n\n  if (this.xvar.frozenRowIndex > _dindex) _panels.push(\"top\");\n  if (this.xvar.frozenColumnIndex > _colIndex) _panels.push(\"left\");\n  _panels.push(\"body\");\n\n  if (this.xvar.frozenColumnIndex <= _colIndex || this.xvar.frozenRowIndex <= _dindex) {\n    _containerPanelName = _panels.join(\"-\");\n    _panels.push(\"scroll\");\n    _isScrollPanel = true;\n  }\n\n  return {\n    panelName: _panels.join(\"-\"),\n    containerPanelName: _containerPanelName,\n    isScrollPanel: _isScrollPanel\n  }\n};\n\nconst getRealPathForDataItem = function (_dataPath) {\n  let path = [],\n    _path = [].concat(_dataPath.split(/[\\.\\[\\]]/g));\n\n  _path.forEach(function (n) {\n    if (n !== \"\") path.push(\"[\\\"\" + n.replace(/['\\\"]/g, \"\") + \"\\\"]\");\n  });\n  _path = null;\n  return path.join(\"\");\n};\n\nexport default {\n  divideTableByFrozenColumnIndex: divideTableByFrozenColumnIndex,\n  getTableByStartEndColumnIndex: getTableByStartEndColumnIndex,\n  getMousePosition: getMousePosition,\n  ENM: ENM,\n  makeHeaderTable: makeHeaderTable,\n  makeBodyRowTable: makeBodyRowTable,\n  makeBodyRowMap: makeBodyRowMap,\n  makeFootSumTable: makeFootSumTable,\n  makeBodyGroupingTable: makeBodyGroupingTable,\n  findPanelByColumnIndex: findPanelByColumnIndex,\n  getRealPathForDataItem: getRealPathForDataItem\n};"]}