diff --git a/dist/tui-grid.comb.js b/dist/tui-grid.comb.js index 2f73f3984..80baadf43 100644 --- a/dist/tui-grid.comb.js +++ b/dist/tui-grid.comb.js @@ -1,6 +1,6 @@ /*! - * bundle created at "Fri Sep 08 2017 17:16:54 GMT+0900 (KST)" - * version: 2.4.0 + * bundle created at "Thu Sep 28 2017 10:34:09 GMT+0900 (KST)" + * version: 2.4.1 */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') @@ -87,6 +87,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview The tui.Grid class for the external API. * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -112,9 +113,9 @@ return /******/ (function(modules) { // webpackBootstrap /** * Grid public API - * @class - * @param {PropertiesHash} options - * @param {Array} [data] - Grid data for making rows. + * @class Grid + * @param {object} options + * @param {Array} [options.data] - Grid data for making rows. * @param {Object} [options.header] - Options object for header. * @param {number} [options.header.height=35] - The height of the header area. * @param {array} [options.header.complexColumns] - This options creates new parent headers of the multiple columns @@ -652,8 +653,10 @@ return /******/ (function(modules) { // webpackBootstrap _.each(rowKeys, function(rowKey) { this.modelManager.dataModel.removeRow(rowKey); }, this); + return true; } + return false; }, @@ -802,6 +805,7 @@ return /******/ (function(modules) { // webpackBootstrap this.addOn.Net = new NetAddOn(options); this.publicEventEmitter.listenToNetAddon(this.addOn.Net); } + return this; }, @@ -1011,6 +1015,7 @@ return /******/ (function(modules) { // webpackBootstrap */ findRows: function(conditions) { var rowList = this.modelManager.dataModel.getRows(); + return _.where(rowList, conditions); }, @@ -1056,7 +1061,7 @@ return /******/ (function(modules) { // webpackBootstrap * @static * @param {number} id - ID of the target grid * @returns {tui.Grid} - Grid instance - * var Grid = tui.Grid; // or reqire('tui-grid') + * var Grid = tui.Grid; // or require('tui-grid') * * Grid.getInstanceById(id); */ @@ -1127,7 +1132,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} [extOptions.cell.dummy] - Styles for dummy cells. * @param {String} [extOptions.cell.dummy.background] - background color of dummy cells. * @example - * var Grid = tui.Grid; // or reqire('tui-grid') + * var Grid = tui.Grid; // or require('tui-grid') * * Grid.applyTheme('striped', { * grid: { @@ -1150,7 +1155,7 @@ return /******/ (function(modules) { // webpackBootstrap * @static * @param {string} langCode - Language code ('en' or 'ko') * @example - * var Grid = tui.Grid; // or reqire('tui-grid') + * var Grid = tui.Grid; // or require('tui-grid') * * Grid.setLanguage('ko'); */ @@ -2729,6 +2734,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Base class for Views * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -2739,7 +2745,7 @@ return /******/ (function(modules) { // webpackBootstrap * @module base/view * @ignore */ - var View = Backbone.View.extend(/**@lends module:base/view.prototype */{ + var View = Backbone.View.extend(/** @lends module:base/view.prototype */{ initialize: function() { this._children = []; }, @@ -4743,6 +4749,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Model Manager * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(10); @@ -4802,7 +4809,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {module/domState} domState - DomState instance * @ignore */ - var ModelManager = snippet.defineClass(/**@lends module:modelManager.prototype */{ + var ModelManager = snippet.defineClass(/** @lends module:modelManager.prototype */{ init: function(options, domState, domEventBus) { options = $.extend(true, {}, defaultOptions, options); @@ -4928,6 +4935,7 @@ return /******/ (function(modules) { // webpackBootstrap var attrs = { resizable: columnOptions.resizable }; + return new CoordColumnModel(attrs, { columnModel: this.columnModel, dimensionModel: this.dimensionModel, @@ -5090,6 +5098,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview 컬럼 모델 * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(10); @@ -5141,7 +5150,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:base/model * @ignore */ - var ColumnModel = Model.extend(/**@lends module:model/data/columnModel.prototype */{ + var ColumnModel = Model.extend(/** @lends module:model/data/columnModel.prototype */{ initialize: function() { Model.prototype.initialize.apply(this, arguments); this.textType = { @@ -5194,6 +5203,7 @@ return /******/ (function(modules) { // webpackBootstrap } else { columns = this.get('dataColumns'); } + return _.findIndex(columns, {name: columnName}); }, @@ -5349,6 +5359,7 @@ return /******/ (function(modules) { // webpackBootstrap relationsMap[columnName] = columnModel.relations; } }); + return relationsMap; }, @@ -5365,6 +5376,7 @@ return /******/ (function(modules) { // webpackBootstrap ignoredColumnNames.push(columnModel.name); } }); + return ignoredColumnNames; }, @@ -5457,6 +5469,7 @@ return /******/ (function(modules) { // webpackBootstrap */ _getSelectType: function(rowHeaders) { var rowHeader = _.findWhere(rowHeaders, {name: '_button'}); + return rowHeader ? rowHeader.type : ''; }, @@ -5531,6 +5544,7 @@ return /******/ (function(modules) { // webpackBootstrap } } } + return _.uniq(searchedNames); }, @@ -5569,6 +5583,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Base class for Models * @author NHN Ent. FE Development Team */ + 'use strict'; var Backbone = __webpack_require__(9); @@ -5578,7 +5593,7 @@ return /******/ (function(modules) { // webpackBootstrap * @module base/model * @ignore */ - var Model = Backbone.Model.extend(/**@lends module:base/model.prototype*/{}); + var Model = Backbone.Model.extend(/** @lends module:base/model.prototype*/{}); module.exports = Model; @@ -5591,6 +5606,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Object that conatins constant values * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -5673,6 +5689,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Grid 의 Data Source 에 해당하는 Collection 정의 * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(10); @@ -5690,7 +5707,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - 생성자의 option 객체 * @ignore */ - var RowList = Collection.extend(/**@lends module:model/data/rowList.prototype */{ + var RowList = Collection.extend(/** @lends module:model/data/rowList.prototype */{ initialize: function(models, options) { Collection.prototype.initialize.apply(this, arguments); _.assign(this, { @@ -5734,7 +5751,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {Array} 파싱하여 가공된 데이터 */ parse: function(data) { - data = data && data.contents || data; + data = (data && data.contents) || data; + return this._formatData(data); }, @@ -5801,6 +5819,7 @@ return /******/ (function(modules) { // webpackBootstrap row._extraData = $.extend(defaultExtraData, row._extraData); row._button = row._extraData.rowState === 'CHECKED'; row.rowKey = rowKey; + return row; }, @@ -5811,6 +5830,7 @@ return /******/ (function(modules) { // webpackBootstrap */ _createRowKey: function() { this.lastRowKey += 1; + return this.lastRowKey; }, @@ -5829,12 +5849,14 @@ return /******/ (function(modules) { // webpackBootstrap function hasRowSpanData(row, columnName) { // eslint-disable-line no-shadow, require-jsdoc var extraData = row._extraData; + return !!(extraData.rowSpanData && extraData.rowSpanData[columnName]); } function setRowSpanData(row, columnName, rowSpanData) { // eslint-disable-line no-shadow, require-jsdoc var extraData = row._extraData; - extraData.rowSpanData = extraData && extraData.rowSpanData || {}; + extraData.rowSpanData = (extraData && extraData.rowSpanData) || {}; extraData.rowSpanData[columnName] = rowSpanData; + return extraData; } @@ -5846,7 +5868,7 @@ return /******/ (function(modules) { // webpackBootstrap isMainRow: true, mainRowKey: rowKey }); - //rowSpan 된 row 의 자식 rowSpanData 를 가공한다. + // rowSpan 된 row 의 자식 rowSpanData 를 가공한다. subCount = -1; for (i = index + 1; i < index + count; i += 1) { childRow = rowList[i]; @@ -5862,6 +5884,7 @@ return /******/ (function(modules) { // webpackBootstrap } }); } + return rowList; }, @@ -5873,6 +5896,7 @@ return /******/ (function(modules) { // webpackBootstrap setOriginalRowList: function(rowList) { this.originalRows = rowList ? this._formatData(rowList) : this.toJSON(); this.originalRowMap = _.indexBy(this.originalRows, 'rowKey'); + return this.originalRows; }, @@ -5883,6 +5907,7 @@ return /******/ (function(modules) { // webpackBootstrap */ getOriginalRowList: function(isClone) { isClone = _.isUndefined(isClone) ? true : isClone; + return isClone ? _.clone(this.originalRows) : this.originalRows; }, @@ -5918,6 +5943,7 @@ return /******/ (function(modules) { // webpackBootstrap rowSpanData = row && row.getRowSpanData(columnName); rowKey = rowSpanData ? rowSpanData.mainRowKey : rowKey; } + return rowKey; }, @@ -6018,6 +6044,7 @@ return /******/ (function(modules) { // webpackBootstrap } else { rows = this.toJSON(); } + return withRawData ? rows : this._removePrivateProp(rows); }, @@ -6032,7 +6059,7 @@ return /******/ (function(modules) { // webpackBootstrap syncRowSpannedData: function(row, columnName, value) { var index, rowSpanData, i; - //정렬 되지 않았을 때만 rowSpan 된 데이터들도 함께 update 한다. + // 정렬 되지 않았을 때만 rowSpan 된 데이터들도 함께 update 한다. if (this.isRowSpanEnable()) { rowSpanData = row.getRowSpanData(columnName); if (!rowSpanData.isMainRow) { @@ -6046,6 +6073,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, + /* eslint-disable complexity */ /** * Backbone 에서 sort() 실행시 내부적으로 사용되는 메소드. * @param {Row} a 비교할 앞의 모델 @@ -6075,8 +6103,10 @@ return /******/ (function(modules) { // webpackBootstrap if (!ascending) { result = -result; } + return result; }, + /* eslint-enable complexity */ /** * rowList 에서 내부에서만 사용하는 property 를 제거하고 반환한다. @@ -6098,8 +6128,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {boolean} options.keepRowSpanData - rowSpan이 mainRow를 삭제하는 경우 데이터를 유지할지 여부 */ removeRow: function(rowKey, options) { - var row = this.get(rowKey), - rowSpanData, nextRow, removedData; + var row = this.get(rowKey); + var rowSpanData, nextRow, removedData, currentIndex; if (!row) { return; @@ -6108,8 +6138,10 @@ return /******/ (function(modules) { // webpackBootstrap if (options && options.keepRowSpanData) { removedData = _.clone(row.attributes); } + + currentIndex = this.indexOf(row); rowSpanData = _.clone(row.getRowSpanData()); - nextRow = this.at(this.indexOf(row) + 1); + nextRow = this.at(currentIndex + 1); this.remove(row, { silent: true @@ -6119,7 +6151,7 @@ return /******/ (function(modules) { // webpackBootstrap if (options && options.removeOriginalData) { this.setOriginalRowList(); } - this.trigger('remove', rowKey); + this.trigger('remove', rowKey, currentIndex); }, /** @@ -6206,6 +6238,7 @@ return /******/ (function(modules) { // webpackBootstrap }; this.add(modelList, addOptions); + this._syncRowSpanDataForAppend(options.at, modelList.length, options.extendPrevRowSpan); this.trigger('add', modelList, options); @@ -6268,6 +6301,7 @@ return /******/ (function(modules) { // webpackBootstrap row = this.get(rowKey); value = row && row.get(columnName); } + return value; }, @@ -6286,8 +6320,10 @@ return /******/ (function(modules) { // webpackBootstrap row.set(columnName, value, { silent: silent }); + return true; } + return false; }, @@ -6299,6 +6335,7 @@ return /******/ (function(modules) { // webpackBootstrap */ getColumnValues: function(columnName, isJsonString) { var valueList = this.pluck(columnName); + return isJsonString ? JSON.stringify(valueList) : valueList; }, @@ -6339,6 +6376,7 @@ return /******/ (function(modules) { // webpackBootstrap */ getRowSpanData: function(rowKey, columnName) { var row = this.get(rowKey); + return row ? row.getRowSpanData(columnName) : null; }, @@ -6542,6 +6580,7 @@ return /******/ (function(modules) { // webpackBootstrap if (typeof value === 'object') { return (JSON.stringify(value) !== JSON.stringify(originalRow[columnName])); } + return value !== originalRow[columnName]; }, this); @@ -6588,13 +6627,14 @@ return /******/ (function(modules) { // webpackBootstrap } }, this); - //삭제된 행 추출 + // 삭제된 행 추출 _.each(original, function(obj, rowKey) { var item = rowKeyOnly ? obj.rowKey : _.omit(obj, ignoredColumns); if (!current[rowKey]) { result.deletedRows.push(item); } }, this); + return result; }, @@ -6770,6 +6810,7 @@ return /******/ (function(modules) { // webpackBootstrap }); } }); + return errorRows; }, @@ -6828,6 +6869,7 @@ return /******/ (function(modules) { // webpackBootstrap */ getElement: function(rowKey, columnName) { var mainRowKey = this.getMainRowKey(rowKey, columnName); + return this.domState.getElement(mainRowKey, columnName); }, @@ -6868,6 +6910,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Base class for Collections * @author NHN Ent. FE Development Team */ + 'use strict'; var Backbone = __webpack_require__(9); @@ -6877,7 +6920,7 @@ return /******/ (function(modules) { // webpackBootstrap * @module base/collection * @ignore */ - var Collection = Backbone.Collection.extend(/**@lends module:base/collection.prototype */{ + var Collection = Backbone.Collection.extend(/** @lends module:base/collection.prototype */{ /** * collection 내 model 들의 event listener 를 제거하고 메모리에서 해제한다. * @returns {object} this object @@ -6904,6 +6947,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Grid 의 Data Source 에 해당하는 Model 정의 * @author NHN Ent. FE Development Lab */ + 'use strict'; var _ = __webpack_require__(6); @@ -6935,7 +6979,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:base/model * @ignore */ - var Row = Model.extend(/**@lends module:model/data/row.prototype */{ + var Row = Model.extend(/** @lends module:model/data/row.prototype */{ initialize: function() { Model.prototype.initialize.apply(this, arguments); this.extraDataManager = new ExtraDataManager(this.get('_extraData')); @@ -6995,6 +7039,7 @@ return /******/ (function(modules) { // webpackBootstrap if (!data._extraData) { data._extraData = {}; } + return data; }, @@ -7191,6 +7236,7 @@ return /******/ (function(modules) { // webpackBootstrap return this.extraDataManager.getRowState(); }, + /* eslint-disable complexity */ /** * Returns an array of all className, related with given columnName. * @param {String} columnName - Column name @@ -7222,6 +7268,7 @@ return /******/ (function(modules) { // webpackBootstrap return this._makeUniqueStringArray(classNameList); }, + /* eslint-enable complexity */ /** * Returns a new array, which splits all comma-separated strings in the targetList and removes duplicated item. @@ -7230,6 +7277,7 @@ return /******/ (function(modules) { // webpackBootstrap */ _makeUniqueStringArray: function(targetArray) { var singleStringArray = _.uniq(targetArray.join(' ').split(' ')); + return _.without(singleStringArray, ''); }, @@ -7395,12 +7443,12 @@ return /******/ (function(modules) { // webpackBootstrap _getStringOfListItems: function(columnName, useText) { var value = this.get(columnName); var columnModel = this.columnModel.getColumnModel(columnName); - var resultListItems, editOptionList, typeExpected, valueList; + var resultListItems, editOptionList, typeExpected, valueList, hasListItems; if (snippet.isExisty(snippet.pick(columnModel, 'editOptions', 'listItems'))) { resultListItems = this.executeRelationCallbacksAll(['listItems'])[columnName]; - editOptionList = resultListItems && resultListItems.listItems ? - resultListItems.listItems : columnModel.editOptions.listItems; + hasListItems = resultListItems && resultListItems.listItems; + editOptionList = hasListItems ? resultListItems.listItems : columnModel.editOptions.listItems; typeExpected = typeof editOptionList[0].value; valueList = util.toString(value).split(','); @@ -7413,13 +7461,14 @@ return /******/ (function(modules) { // webpackBootstrap _.each(valueList, function(val, index) { var item = _.findWhere(editOptionList, {value: val}); - var str = item && (useText ? item.text : item.value) || ''; + var str = (item && (useText ? item.text : item.value)) || ''; valueList[index] = str; }, this); return valueList.join(','); } + return ''; }, @@ -7556,6 +7605,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Grid 의 Data Source 에 해당하는 Model 정의 * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -7568,7 +7618,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:base/model * @ignore */ - var ExtraDataManager = snippet.defineClass(/**@lends module:model/data/extraData.prototype */{ + var ExtraDataManager = snippet.defineClass(/** @lends module:model/data/extraData.prototype */{ init: function(data) { this.data = data || {}; }, @@ -7597,6 +7647,7 @@ return /******/ (function(modules) { // webpackBootstrap mainRowKey: rowKey }; } + return rowSpanData; }, @@ -7622,6 +7673,7 @@ return /******/ (function(modules) { // webpackBootstrap result.checked = true; default: // eslint-disable-line no-fallthrough } + return result; }, @@ -7708,6 +7760,7 @@ return /******/ (function(modules) { // webpackBootstrap arrayPush.apply(classNameList, classNameData.column[columnName]); } } + return classNameList; }, @@ -7719,8 +7772,9 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ _removeClassNameFromArray: function(classNameList, className) { - //배열 요소가 'class1 class2' 와 같이 두개 이상의 className을 포함할 수 있어, join & split 함. + // 배열 요소가 'class1 class2' 와 같이 두개 이상의 className을 포함할 수 있어, join & split 함. var singleNameList = classNameList.join(' ').split(' '); + return _.without(singleNameList, className); }, @@ -7780,6 +7834,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Event class for public event of Grid * @author NHN Ent. FE Development Lab */ + 'use strict'; var _ = __webpack_require__(6); @@ -7800,7 +7855,7 @@ return /******/ (function(modules) { // webpackBootstrap * @module event/gridEvent * @param {Object} data - Event data for handler */ - var GridEvent = snippet.defineClass(/**@lends module:event/gridEvent.prototype */{ + var GridEvent = snippet.defineClass(/** @lends module:event/gridEvent.prototype */{ init: function(nativeEvent, data) { this._stopped = false; if (nativeEvent) { @@ -7890,6 +7945,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview 유틸리티 메서드 모음 * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(10); @@ -8070,8 +8126,10 @@ return /******/ (function(modules) { // webpackBootstrap snippet.forEach(targetObj, function(item, key) { result = (item === distObj[key]); + return result; }); + return result; }; @@ -8081,10 +8139,12 @@ return /******/ (function(modules) { // webpackBootstrap return false; } else if (_.isObject(target)) { isDiff = !compareObject(target, dist) || !compareObject(dist, target); + return !isDiff; } else if (target !== dist) { return false; } + return true; }, @@ -8098,6 +8158,7 @@ return /******/ (function(modules) { // webpackBootstrap if (_.isString(target)) { return !target.length; } + return _.isUndefined(target) || _.isNull(target); }, @@ -8121,6 +8182,7 @@ return /******/ (function(modules) { // webpackBootstrap htmlString.replace(/<\/?(?:h[1-5]|[a-z]+(?::[a-z]+)?)[^>]*>/ig, '') )); } + return htmlString; }, @@ -8134,6 +8196,7 @@ return /******/ (function(modules) { // webpackBootstrap if (_.isUndefined(value) || _.isNull(value)) { return ''; } + return String(value); }, @@ -8144,6 +8207,7 @@ return /******/ (function(modules) { // webpackBootstrap */ getUniqueKey: function() { this.uniqueId += 1; + return this.uniqueId; }, @@ -8215,6 +8279,7 @@ return /******/ (function(modules) { // webpackBootstrap } else if (type === 'boolean') { return Boolean(value); } + return value; }, @@ -8244,6 +8309,7 @@ return /******/ (function(modules) { // webpackBootstrap min = max; max = temp; } + return Math.max(min, Math.min(value, max)); }, @@ -8312,6 +8378,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Utilities for clipboard data * @author NHN Ent. Fe Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -8406,8 +8473,9 @@ return /******/ (function(modules) { // webpackBootstrap return _.map(text.split(/\r?\n/), function(row) { return _.map(row.split('\t'), function(column) { column = clipboardUtil.removeDoubleQuotes(column); + return column.replace(CUSTOM_LF_REGEXP, LF) - .replace(CUSTOM_CR_REGEXP, CR); + .replace(CUSTOM_CR_REGEXP, CR); }); }); }, @@ -8433,7 +8501,7 @@ return /******/ (function(modules) { // webpackBootstrap removeDoubleQuotes: function(text) { if (text.match(CUSTOM_LF_REGEXP)) { text = text.substring(1, text.length - 1) - .replace(/""/g, '"'); + .replace(/""/g, '"'); } return text; @@ -8447,7 +8515,7 @@ return /******/ (function(modules) { // webpackBootstrap replaceNewlineToSubchar: function(text) { return text.replace(/"([^"]|"")*"/g, function(value) { return value.replace(LF, CUSTOM_LF_SUBCHAR) - .replace(CR, CUSTOM_CR_SUBCHAR); + .replace(CR, CUSTOM_CR_SUBCHAR); }); } }; @@ -8466,6 +8534,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview class name constants. * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -8607,6 +8676,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview module:model/dimension * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -8625,7 +8695,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:base/model * @ignore */ - var Dimension = Model.extend(/**@lends module:model/dimension.prototype */{ + var Dimension = Model.extend(/** @lends module:model/dimension.prototype */{ initialize: function(attrs, options) { Model.prototype.initialize.apply(this, arguments); @@ -8638,7 +8708,7 @@ return /******/ (function(modules) { // webpackBootstrap if (options.domEventBus) { this.listenTo(options.domEventBus, 'windowResize', this._onResizeWindow); this.listenTo(options.domEventBus, 'dragmove:resizeHeight', - _.debounce(_.bind(this._onDragMoveForHeight, this))); + _.debounce(_.bind(this._onDragMoveForHeight, this))); } this._resetSyncHeightHandler(); @@ -8929,7 +8999,9 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {number} */ getBodyOffsetTop: function() { - return this.get('offsetTop') + this.get('headerHeight') + var offsetTop = this.domState.getOffset().top; + + return offsetTop + this.get('headerHeight') + CELL_BORDER_WIDTH + TABLE_BORDER_WIDTH; }, @@ -8941,7 +9013,7 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ getPositionFromBodyArea: function(pageX, pageY) { - var bodyOffsetX = this.get('offsetLeft'); + var bodyOffsetX = this.domState.getOffset().left; var bodyOffsetY = this.getBodyOffsetTop(); return { @@ -8962,6 +9034,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Manage coordinates of rows * @author NHN Ent. FE Development Lab */ + 'use strict'; var _ = __webpack_require__(6); @@ -8977,7 +9050,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:base/model * @ignore */ - var CoordRow = Model.extend(/**@lends module:model/coordRow.prototype */{ + var CoordRow = Model.extend(/** @lends module:model/coordRow.prototype */{ initialize: function(attrs, options) { this.dataModel = options.dataModel; this.dimensionModel = options.dimensionModel; @@ -9099,6 +9172,7 @@ return /******/ (function(modules) { // webpackBootstrap */ getHeight: function(rowKey) { var index = this.dataModel.indexOfRowKey(rowKey); + return this.getHeightAt(index); }, @@ -9109,6 +9183,7 @@ return /******/ (function(modules) { // webpackBootstrap */ getOffset: function(rowKey) { var index = this.dataModel.indexOfRowKey(rowKey); + return this.getOffsetAt(index); }, @@ -9160,6 +9235,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Manage coordinates of rows * @author NHN Ent. FE Development Lab */ + 'use strict'; var _ = __webpack_require__(6); @@ -9180,7 +9256,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:base/model * @ignore */ - var CoordColumn = Model.extend(/**@lends module:model/coordColumn.prototype */{ + var CoordColumn = Model.extend(/** @lends module:model/coordColumn.prototype */{ initialize: function(attrs, options) { this.dimensionModel = options.dimensionModel; this.columnModel = options.columnModel; @@ -9412,6 +9488,7 @@ return /******/ (function(modules) { // webpackBootstrap columnIndexes.push(index); } }); + return this._distributeExtraWidthEqually(widths, totalExtraWidth, columnIndexes); }, @@ -9666,6 +9743,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Converts coordinates to index of rows and columns * @author NHN Ent. FE Development Lab */ + 'use strict'; var snippet = __webpack_require__(7); @@ -9683,7 +9761,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:base/model * @ignore */ - var CoordConverter = Model.extend(/**@lends module:model/coordConverter.prototype */{ + var CoordConverter = Model.extend(/** @lends module:model/coordConverter.prototype */{ initialize: function(attrs, options) { this.dataModel = options.dataModel; this.columnModel = options.columnModel; @@ -9929,6 +10007,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Focus Model * @author NHN Ent. FE Development Lab */ + 'use strict'; var _ = __webpack_require__(6); @@ -9945,7 +10024,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:base/model * @ignore */ - var Focus = Model.extend(/**@lends module:model/focus.prototype */{ + var Focus = Model.extend(/** @lends module:model/focus.prototype */{ initialize: function(attrs, options) { var editEventName = options.editingEvent + ':cell'; var domEventBus; @@ -10001,7 +10080,13 @@ return /******/ (function(modules) { // webpackBootstrap * address of the editing cell * @type {{rowKey:(String|Number), columnName:String}} */ - editingAddress: null + editingAddress: null, + + /** + * Whether focus state is active or not + * @type {Boolean} + */ + active: false }, /** @@ -10033,12 +10118,13 @@ return /******/ (function(modules) { // webpackBootstrap this.focusIn(ev.rowKey, ev.columnName); }, + /* eslint-disable complexity */ /** * Event handler for key:move event * @param {module:event/gridEvent} ev - GridEvent * @private */ - _onKeyMove: function(ev) { // eslint-disable-line complexity + _onKeyMove: function(ev) { var rowKey, columnName; switch (ev.command) { @@ -10082,6 +10168,7 @@ return /******/ (function(modules) { // webpackBootstrap this.focus(rowKey, columnName, true); }, + /* eslint-enable complexity */ /** * Event handler for key:edit event @@ -10168,6 +10255,7 @@ return /******/ (function(modules) { // webpackBootstrap return String(curRowKey) === String(rowKey) && curColumnName === columnName; }, + /* eslint-disable complexity */ /** * Focus to the cell identified by given rowKey and columnName. * @param {Number|String} rowKey - rowKey @@ -10176,6 +10264,10 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {Boolean} true if focused cell is changed */ focus: function(rowKey, columnName, isScrollable) { + if (!this.get('active')) { + this.set('active', true); + } + if (!this._isValidCell(rowKey, columnName) || util.isMetaColumn(columnName) || this.isCurrentCell(rowKey, columnName)) { @@ -10200,6 +10292,7 @@ return /******/ (function(modules) { // webpackBootstrap return true; }, + /* eslint-enable complexity */ /** * Trigger 'focusChange' event and returns the result @@ -10290,6 +10383,7 @@ return /******/ (function(modules) { // webpackBootstrap if (row && column) { result = this.focusIn(row.get('rowKey'), column.name, isScrollable); } + return result; }, @@ -10302,13 +10396,13 @@ return /******/ (function(modules) { // webpackBootstrap /** * If the grid has an element which has a focus, make sure that focusModel has a valid data, - * Otherwise call focusModel.blur(). + * Otherwise change the focus state. */ refreshState: function() { var restored; if (!this.domState.hasFocusedElement()) { - this.blur(); + this.set('active', false); } else if (!this.has()) { restored = this.restore(); if (!restored) { @@ -10318,7 +10412,7 @@ return /******/ (function(modules) { // webpackBootstrap }, /** - * 디자인 blur 처리한다. + * Apply blur state on cell * @returns {Model.Focus} This object */ blur: function() { @@ -10378,6 +10472,7 @@ return /******/ (function(modules) { // webpackBootstrap if (checkValid) { return this._isValidCell(rowKey, columnName); } + return !util.isBlank(rowKey) && !util.isBlank(columnName); }, @@ -10398,6 +10493,7 @@ return /******/ (function(modules) { // webpackBootstrap }); restored = true; } + return restored; }, @@ -10496,6 +10592,7 @@ return /******/ (function(modules) { // webpackBootstrap rowKey = row.get('rowKey'); } } + return rowKey; }, @@ -10516,6 +10613,7 @@ return /******/ (function(modules) { // webpackBootstrap index = Math.max(Math.min(columnIndex + offset, columns.length - 1), 0); columnName = columns[index] && columns[index].name; } + return columnName; }, @@ -10759,13 +10857,15 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Rendering 모델 * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); var snippet = __webpack_require__(7); var Model = __webpack_require__(13); - var RowList = __webpack_require__(29); + var Row = __webpack_require__(29); + var RowList = __webpack_require__(30); var renderStateMap = __webpack_require__(14).renderState; var CELL_BORDER_WIDTH = __webpack_require__(14).dimension.CELL_BORDER_WIDTH; @@ -10779,9 +10879,10 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - var Renderer = Model.extend(/**@lends module:model/renderer.prototype */{ + var Renderer = Model.extend(/** @lends module:model/renderer.prototype */{ initialize: function(attrs, options) { - var lside, rside, rowListOptions; + var rowListOptions; + var partialLside, partialRside; _.assign(this, { dataModel: options.dataModel, @@ -10798,14 +10899,14 @@ return /******/ (function(modules) { // webpackBootstrap focusModel: this.focusModel }; - lside = new RowList([], rowListOptions); - rside = new RowList([], rowListOptions); + partialLside = new RowList([], rowListOptions); + partialRside = new RowList([], rowListOptions); this.set({ - lside: lside, - rside: rside, - partialLside: new RowList([], rowListOptions), - partialRside: new RowList([], rowListOptions) + lside: [], + rside: [], + partialLside: partialLside, + partialRside: partialRside }); this.listenTo(this.columnModel, 'columnModelChange change', this._onColumnModelChange) @@ -10815,8 +10916,8 @@ return /******/ (function(modules) { // webpackBootstrap .listenTo(this.dataModel, 'remove', this._onRemoveDataModelChange) .listenTo(this.dataModel, 'beforeReset', this._onBeforeResetData) .listenTo(this.focusModel, 'change:editingAddress', this._onEditingAddressChange) - .listenTo(lside, 'valueChange', this._executeRelation) - .listenTo(rside, 'valueChange', this._executeRelation) + .listenTo(partialLside, 'valueChange', this._executeRelation) + .listenTo(partialRside, 'valueChange', this._executeRelation) .listenTo(this.coordRowModel, 'reset', this._onChangeRowHeights) .listenTo(this.dimensionModel, 'columnWidthChanged', this.finishEditing) .listenTo(this.dimensionModel, 'change:width', this._updateMaxScrollLeft) @@ -10846,6 +10947,8 @@ return /******/ (function(modules) { // webpackBootstrap startNumber: 1, lside: null, rside: null, + partialLside: null, + partialRside: null, showDummyRows: false, dummyRowCount: 0, @@ -10853,10 +10956,7 @@ return /******/ (function(modules) { // webpackBootstrap emptyMessage: null, // constMap.renderState - state: renderStateMap.DONE, - - partialLside: null, - partialRside: null + state: renderStateMap.DONE }, /** @@ -10889,14 +10989,15 @@ return /******/ (function(modules) { // webpackBootstrap */ _onChangeRowHeights: function() { var coordRowModel = this.coordRowModel; - var lside = this.get('lside'); - var rside = this.get('rside'); - var len = lside.length; + var lside = this.get('partialLside'); + var rside = this.get('partialRside'); var i = 0; + var len = lside.length; var height; for (; i < len; i += 1) { height = coordRowModel.getHeightAt(i); + lside.at(i).set('height', height); rside.at(i).set('height', height); } @@ -11035,6 +11136,7 @@ return /******/ (function(modules) { // webpackBootstrap */ getCollection: function(whichSide) { var attrName = this._getPartialWhichSideType(whichSide); + return this.get(attrName); }, @@ -11054,6 +11156,8 @@ return /******/ (function(modules) { // webpackBootstrap */ _onColumnModelChange: function() { this.set({scrollTop: 0}, {silent: true}); + + this._resetViewModelList(); this._setRenderingRange(true); this.refresh({ @@ -11067,10 +11171,7 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ _onDataModelChange: function() { - _.each(['lside', 'rside'], function(attrName) { - this.get(attrName).reset(); - }, this); - + this._resetViewModelList(); this._setRenderingRange(true); this.refresh({ @@ -11086,14 +11187,12 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ _onAddDataModelChange: function(modelList, options) { - var viewModelList = this.get('lside').length ? this.get('lside') : this.get('rside'); var columnNamesMap = this._getColumnNamesOfEachSide(); var at = options.at; var height, viewData, rowNum; + var viewModel; - if (at > viewModelList.length - 1) { - return; - } + this._setRenderingRange(true); // the type of modelList is array or collection modelList = _.isArray(modelList) ? modelList : modelList.models; @@ -11106,10 +11205,9 @@ return /******/ (function(modules) { // webpackBootstrap viewData = this._createViewDataFromDataModel( model, columnNamesMap[attrName], height, rowNum); - this.get(attrName).add([viewData], { - parse: true, - at: at + index - }); + viewModel = this._createRowModel(viewData, true); + + this.get(attrName).splice(at + index, 0, viewModel); }, this); }, this); @@ -11126,12 +11224,12 @@ return /******/ (function(modules) { // webpackBootstrap /** * Event handler for removing data list * @param {number|string} rowKey - rowKey of the removed row + * @param {number} removedIndex - Index of the removed row * @private */ - _onRemoveDataModelChange: function(rowKey) { + _onRemoveDataModelChange: function(rowKey, removedIndex) { _.each(['lside', 'rside'], function(attrName) { - var collection = this.get(attrName); - collection.remove(collection.get(rowKey)); + this.get(attrName).splice(removedIndex, 1); }, this); this._setRenderingRange(true); @@ -11241,10 +11339,12 @@ return /******/ (function(modules) { // webpackBootstrap var columnModels = this.columnModel.getVisibleColumns(null, true); var columnNames = _.pluck(columnModels, 'name'); - return { + var test = { lside: columnNames.slice(0, frozenCount), rside: columnNames.slice(frozenCount) }; + + return test; }, /** @@ -11277,17 +11377,13 @@ return /******/ (function(modules) { // webpackBootstrap */ _addViewModelList: function(rowDataModel, columnNamesMap, height, index) { _.each(['lside', 'rside'], function(attrName) { - var rowKey = rowDataModel.get('rowKey'); var viewData; - if (!this.get(attrName).get(rowKey)) { + if (!this.get(attrName)[index]) { viewData = this._createViewDataFromDataModel( rowDataModel, columnNamesMap[attrName], height, index + 1); - this.get(attrName).add([viewData], { - parse: true, - at: index - }); + this.get(attrName)[index] = this._createRowModel(viewData, true); } }, this); }, @@ -11304,7 +11400,7 @@ return /******/ (function(modules) { // webpackBootstrap var currentModel, rowNum, newRowNum; for (; index <= endIndex; index += 1) { - currentModel = collection.at(index); + currentModel = collection[index]; newRowNum = index + 1; if (currentModel) { @@ -11335,15 +11431,15 @@ return /******/ (function(modules) { // webpackBootstrap */ _resetPartialViewModelList: function(startIndex, endIndex) { var originalWhichSide, partialWhichSide; - var viewModelList, patialViewModelList; + var viewModelList, partialViewModelList; _.each(['L', 'R'], function(whichSide) { originalWhichSide = whichSide.toLowerCase() + 'side'; partialWhichSide = this._getPartialWhichSideType(whichSide); viewModelList = this.get(originalWhichSide); - patialViewModelList = viewModelList.slice(startIndex, endIndex + 1); + partialViewModelList = viewModelList.slice(startIndex, endIndex + 1); - this.get(partialWhichSide).reset(patialViewModelList); + this.get(partialWhichSide).reset(partialViewModelList); }, this); }, @@ -11405,16 +11501,18 @@ return /******/ (function(modules) { // webpackBootstrap _.times(dummyRowCount, function() { _.each(['lside', 'rside'], function(listName) { - this.get(listName).add({ + this.get(listName).push(this._createRowModel({ height: rowHeight, rowNum: rowNum - }); + })); }, this); + rowNum += 1; }, this); } }, + /* eslint-disable complexity */ /** * Refreshes the rendering range and the list of view models, and triggers events. * @param {object} options - options @@ -11422,7 +11520,6 @@ return /******/ (function(modules) { // webpackBootstrap * @param {boolean} [options.dataListChanged] - The boolean value whether dataModel has changed * @param {string} [options.type] - Event type (reset|add|remove) */ - /* eslint-disable complexity */ refresh: function(options) { var columnModelChanged = !!options && options.columnModelChanged; var dataListChanged = !!options && options.dataListChanged; @@ -11480,14 +11577,15 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ _getCollectionByColumnName: function(columnName) { - var lside = this.get('lside'); + var lside = this.get('partialLside'); var collection; if (lside.at(0) && lside.at(0).get(columnName)) { collection = lside; } else { - collection = this.get('rside'); + collection = this.get('partialRside'); } + return collection; }, @@ -11510,7 +11608,6 @@ return /******/ (function(modules) { // webpackBootstrap * @param {String} columnName 컬럼명 * @returns {object} cellData 셀 데이터 * @example - => { rowKey: rowKey, columnName: columnName, @@ -11554,58 +11651,47 @@ return /******/ (function(modules) { // webpackBootstrap rowModel.setCell(columnName, changes); } }, this); - } - }); - - module.exports = Renderer; - - -/***/ }), -/* 29 */ -/***/ (function(module, exports, __webpack_require__) { - - /** - * @fileoverview RowList 클래스파일 - * @author NHN Ent. FE Development Team - */ - 'use strict'; - - var _ = __webpack_require__(6); - - var Collection = __webpack_require__(16); - var Row = __webpack_require__(30); + }, - /** - * View Model rowList collection - * @module model/rowList - * @extends module:base/collection - * @param {Object} rawData - Raw data - * @param {Object} options - Options - * @ignore - */ - var RowList = Collection.extend(/**@lends module:model/rowList.prototype */{ - initialize: function(rawData, options) { - _.assign(this, { - dataModel: options.dataModel, - columnModel: options.columnModel, - focusModel: options.focusModel + /** + * Create row model + * @param {object} attrs - Attributes to create + * @param {boolean} parse - Whether calling parse or not + * @returns {object} Row model + * @private + */ + _createRowModel: function(attrs, parse) { + return new Row(attrs, { + parse: parse, + dataModel: this.dataModel, + columnModel: this.columnModel, + focusModel: this.focusModel }); }, - model: Row + /** + * Reset view models when value of columModel or dataModel is changed + * @private + */ + _resetViewModelList: function() { + _.each(['lside', 'rside'], function(attrName) { + this.set(attrName, new Array(this.dataModel.length)); + }, this); + } }); - module.exports = RowList; + module.exports = Renderer; /***/ }), -/* 30 */ +/* 29 */ /***/ (function(module, exports, __webpack_require__) { /** * @fileoverview Row Model for Rendering (View Model) * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -11622,15 +11708,15 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:base/model * @ignore */ - var Row = Model.extend(/**@lends module:model/row.prototype */{ - initialize: function(attributes) { + var Row = Model.extend(/** @lends module:model/row.prototype */{ + initialize: function(attributes, options) { var rowKey = attributes && attributes.rowKey; - var dataModel = this.collection.dataModel; + var dataModel = options.dataModel; var rowData = dataModel.get(rowKey); this.dataModel = dataModel; - this.columnModel = this.collection.columnModel; - this.focusModel = this.collection.focusModel; + this.columnModel = options.columnModel; + this.focusModel = options.focusModel; if (rowData) { this.listenTo(rowData, 'change', this._onDataModelChange); @@ -11680,7 +11766,7 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ _getColumnNameList: function() { - var columnModels = this.collection.columnModel.getVisibleColumns(null, true); + var columnModels = this.columnModel.getVisibleColumns(null, true); return _.pluck(columnModels, 'name'); }, @@ -11704,10 +11790,6 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ _setRowExtraData: function() { - if (snippet.isUndefined(this.collection)) { - return; - } - _.each(this._getColumnNameList(), function(columnName) { var cellData = this.get(columnName); var cellState; @@ -11733,8 +11815,7 @@ return /******/ (function(modules) { // webpackBootstrap * @override */ parse: function(data, options) { - var collection = options.collection; - return this._formatData(data, collection.dataModel, collection.columnModel, collection.focusModel); + return this._formatData(data, options.dataModel, options.columnModel, options.focusModel); }, /** @@ -11780,7 +11861,7 @@ return /******/ (function(modules) { // webpackBootstrap listItems: snippet.pick(column, 'editOptions', 'listItems'), className: this._getClassNameString(columnName, row, focusModel), columnModel: column, - changed: [] //changed property names + changed: [] // changed property names }; _.assign(data[columnName], this._getValueAttrs(value, row, column, isTextType)); }, this); @@ -11899,6 +11980,7 @@ return /******/ (function(modules) { // webpackBootstrap if (convertedHTML === false) { convertedHTML = null; } + return convertedHTML; }, @@ -11944,6 +12026,7 @@ return /******/ (function(modules) { // webpackBootstrap isMainRow: true }; } + return rowSpanData; }, @@ -11990,7 +12073,7 @@ return /******/ (function(modules) { // webpackBootstrap silent: this._shouldSetSilently(data, isValueChanged) }); if (isValueChanged) { - rowIndex = this.collection.dataModel.indexOfRowKey(rowKey); + rowIndex = this.dataModel.indexOfRowKey(rowKey); this.trigger('valueChange', rowIndex); } } @@ -12021,6 +12104,45 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Row; +/***/ }), +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { + + /** + * @fileoverview RowList 클래스파일 + * @author NHN Ent. FE Development Team + */ + + 'use strict'; + + var _ = __webpack_require__(6); + + var Collection = __webpack_require__(16); + var Row = __webpack_require__(29); + + /** + * View Model rowList collection + * @module model/rowList + * @extends module:base/collection + * @param {Object} rawData - Raw data + * @param {Object} options - Options + * @ignore + */ + var RowList = Collection.extend(/** @lends module:model/rowList.prototype */{ + initialize: function(rawData, options) { + _.assign(this, { + dataModel: options.dataModel, + columnModel: options.columnModel, + focusModel: options.focusModel + }); + }, + + model: Row + }); + + module.exports = RowList; + + /***/ }), /* 31 */ /***/ (function(module, exports, __webpack_require__) { @@ -12029,6 +12151,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Render model to be used for smart-rendering * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -12050,7 +12173,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:model/renderer * @ignore */ - var SmartRenderer = Renderer.extend(/**@lends module:model/renderer-smart.prototype */{ + var SmartRenderer = Renderer.extend(/** @lends module:model/renderer-smart.prototype */{ initialize: function() { Renderer.prototype.initialize.apply(this, arguments); @@ -12127,6 +12250,7 @@ return /******/ (function(modules) { // webpackBootstrap counts.push(0); // count가 음수인 경우(mainRow가 아닌 경우)에만 최소값을 구함. 없으면 0 result = _.min(counts); } + return result; }, @@ -12190,6 +12314,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Selection Model class * @author NHN Ent. FE Development Lab */ + 'use strict'; var $ = __webpack_require__(10); @@ -12209,7 +12334,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - var Selection = Model.extend(/**@lends module:model/selection.prototype */{ + var Selection = Model.extend(/** @lends module:model/selection.prototype */{ initialize: function(attr, options) { var domEventBus; @@ -12273,6 +12398,7 @@ return /******/ (function(modules) { // webpackBootstrap if (_.some(columnNames, util.isMetaColumn)) { gridEvent.stop(); + return; } @@ -12414,6 +12540,7 @@ return /******/ (function(modules) { // webpackBootstrap index.column = selectionColumnRange[1]; } } + return index; }, @@ -12827,6 +12954,7 @@ return /******/ (function(modules) { // webpackBootstrap if (columnModel.getCopyOptions(columnName).useFormattedValue) { return renderModel.getCellData(row.get('rowKey'), columnName).formattedValue; } + return row.getValueString(columnName); }).join('\t'); }); @@ -12834,6 +12962,7 @@ return /******/ (function(modules) { // webpackBootstrap if (this._isSingleCell(columnNames, rowList)) { return rowValues[0]; } + return rowValues.join('\n'); }, @@ -12938,6 +13067,7 @@ return /******/ (function(modules) { // webpackBootstrap inputRange = inputRange || this.inputRange; if (!inputRange) { this.set('range', null); + return; } @@ -12996,15 +13126,15 @@ return /******/ (function(modules) { // webpackBootstrap } }); - /** - * Occurs when selecting cells - * @event Grid#selection - * @type {module:event/gridEvent} - * @property {Object} range - Range of selection - * @property {Array} range.start - Info of start cell (ex: [rowKey, columName]) - * @property {Array} range.end - Info of end cell (ex: [rowKey, columnName]) - * @property {Grid} instance - Current grid instance - */ + /** + * Occurs when selecting cells + * @event Grid#selection + * @type {module:event/gridEvent} + * @property {Object} range - Range of selection + * @property {Array} range.start - Info of start cell (ex: [rowKey, columName]) + * @property {Array} range.end - Info of end cell (ex: [rowKey, columnName]) + * @property {Grid} instance - Current grid instance + */ this.trigger('selection', gridEvent); }, @@ -13109,7 +13239,7 @@ return /******/ (function(modules) { // webpackBootstrap startRowSpanDataMap = dataModel.at(spannedRange.row[0]).getRowSpanData(); endRowSpanDataMap = dataModel.at(spannedRange.row[1]).getRowSpanData(); - //모든 열을 순회하며 각 열마다 설정된 rowSpan 정보에 따라 인덱스를 업데이트 한다. + // 모든 열을 순회하며 각 열마다 설정된 rowSpan 정보에 따라 인덱스를 업데이트 한다. _.each(columns, function(columnModel) { param = { columnName: columnModel.name, @@ -13126,6 +13256,7 @@ return /******/ (function(modules) { // webpackBootstrap }, this); newSpannedRange.row = [Math.min.apply(null, startIndexList), Math.max.apply(null, endIndexList)]; + return newSpannedRange; } }); @@ -13141,6 +13272,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Focus 관련 데이터 처리름 담당한다. * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -13157,7 +13289,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - options * @ignore */ - var Summary = Model.extend(/**@lends module:model/summary.prototype */{ + var Summary = Model.extend(/** @lends module:model/summary.prototype */{ initialize: function(attr, options) { this.dataModel = options.dataModel; @@ -13294,6 +13426,7 @@ return /******/ (function(modules) { // webpackBootstrap } value = snippet.pick(valueMap, summaryType); + return _.isUndefined(value) ? null : value; } }); @@ -13309,6 +13442,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Clipboard Model * @author NHN Ent. FE Development Lab */ + 'use strict'; var $ = __webpack_require__(10); @@ -13323,7 +13457,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - var Clipboard = Model.extend(/**@lends module:model/clipboard.prototype*/{ + var Clipboard = Model.extend(/** @lends module:model/clipboard.prototype*/{ initialize: function(attr, options) { Model.prototype.initialize.apply(this, arguments); @@ -13469,6 +13603,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview View factory * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -13550,6 +13685,7 @@ return /******/ (function(modules) { // webpackBootstrap if (!isOptionEnabled(this.componentHolder.getOptions('pagination'))) { return null; } + return new PaginationView({ componentHolder: this.componentHolder, dimensionModel: this.modelManager.dimensionModel, @@ -13565,6 +13701,7 @@ return /******/ (function(modules) { // webpackBootstrap if (!isOptionEnabled(this.heightResizable)) { return null; } + return new HeightResizeHandleView({ dimensionModel: this.modelManager.dimensionModel, domEventBus: this.domEventBus @@ -13811,6 +13948,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview View class that conaints a top element of the DOM structure of the grid. * @author NHN Ent. FE Development Lab */ + 'use strict'; var $ = __webpack_require__(10); @@ -13828,7 +13966,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - var Container = View.extend(/**@lends module:view/container.prototype */{ + var Container = View.extend(/** @lends module:view/container.prototype */{ initialize: function(options) { View.prototype.initialize.call(this); @@ -14076,6 +14214,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Class for the content area * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(10); @@ -14103,7 +14242,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - ContentArea = View.extend(/**@lends module:view/layout/content-area.prototype */{ + ContentArea = View.extend(/** @lends module:view/layout/content-area.prototype */{ initialize: function(options) { View.prototype.initialize.call(this); @@ -14165,6 +14304,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Class for the pagination * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -14187,7 +14327,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - var Pagination = View.extend(/**@lends module:view/pagination.prototype */{ + var Pagination = View.extend(/** @lends module:view/pagination.prototype */{ initialize: function(options) { this.dimensionModel = options.dimensionModel; this.componentHolder = options.componentHolder; @@ -14206,6 +14346,7 @@ return /******/ (function(modules) { // webpackBootstrap render: function() { this._destroyChildren(); this.componentHolder.setInstance('pagination', this._createComponent()); + return this; }, @@ -14274,6 +14415,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Class for the height resize handle * @author NHN Ent. FE Development Team */ + 'use strict'; var View = __webpack_require__(8); @@ -14287,7 +14429,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - var HeightResizeHandle = View.extend(/**@lends module:view/layout/heightResizeHandle.prototype */{ + var HeightResizeHandle = View.extend(/** @lends module:view/layout/heightResizeHandle.prototype */{ initialize: function(options) { this.dimensionModel = options.dimensionModel; this.domEventBus = options.domEventBus; @@ -14350,6 +14492,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Drag event emitter * @author NHN Ent. FE Development Lab */ + 'use strict'; var $ = __webpack_require__(10); @@ -14362,7 +14505,7 @@ return /******/ (function(modules) { // webpackBootstrap * @module event/dragEventEmitter * @ignore */ - var DragEventEmitter = snippet.defineClass(/**@lends module:event/dragEventEmitter.prototype */{ + var DragEventEmitter = snippet.defineClass(/** @lends module:event/dragEventEmitter.prototype */{ init: function(options) { _.assign(this, { type: options.type, @@ -14508,6 +14651,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Layer class that represents the state of rendering phase * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -14525,7 +14669,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - var StateLayer = View.extend(/**@lends module:view/stateLayer.prototype */{ + var StateLayer = View.extend(/** @lends module:view/stateLayer.prototype */{ initialize: function(options) { this.dimensionModel = options.dimensionModel; this.renderModel = options.renderModel; @@ -14623,6 +14767,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Locale messages * @author NHN Ent. Fe Development Lab */ + 'use strict'; var util = __webpack_require__(20); @@ -14692,6 +14837,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Hidden Textarea View for handling key navigation events and emulating clipboard actions * @author NHN Ent. FE Development Lab */ + 'use strict'; var $ = __webpack_require__(10); @@ -14735,7 +14881,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - Clipboard = View.extend(/**@lends module:view/clipboard.prototype */{ + Clipboard = View.extend(/** @lends module:view/clipboard.prototype */{ initialize: function(options) { _.assign(this, { focusModel: options.focusModel, @@ -14795,6 +14941,7 @@ return /******/ (function(modules) { // webpackBootstrap if (this.isLocked) { ev.preventDefault(); + return; } @@ -14985,6 +15132,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Key event generator * @author NHN Ent. FE Development Lab */ + 'use strict'; var _ = __webpack_require__(6); @@ -15099,6 +15247,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Left Side Frame * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(10); @@ -15114,7 +15263,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:view/layout/frame * @ignore */ - var LsideFrame = Frame.extend(/**@lends module:view/layout/frame-lside.prototype */{ + var LsideFrame = Frame.extend(/** @lends module:view/layout/frame-lside.prototype */{ initialize: function() { Frame.prototype.initialize.apply(this, arguments); _.assign(this, { @@ -15171,6 +15320,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Frame Base * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -15186,7 +15336,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {String} [options.whichSide=R] R for Right side, L for Left side * @ignore */ - var Frame = View.extend(/**@lends module:view/layout/frame.prototype */{ + var Frame = View.extend(/** @lends module:view/layout/frame.prototype */{ initialize: function(options) { View.prototype.initialize.call(this); @@ -15246,6 +15396,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Right Side Frame * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(10); @@ -15263,7 +15414,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:view/layout/frame * @ignore */ - var RsideFrame = Frame.extend(/**@lends module:view/layout/frame-rside.prototype */{ + var RsideFrame = Frame.extend(/** @lends module:view/layout/frame-rside.prototype */{ initialize: function() { Frame.prototype.initialize.apply(this, arguments); @@ -15389,6 +15540,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Header View * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(10); @@ -15419,7 +15571,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {String} [options.whichSide=R] R: Right, L: Left * @ignore */ - var Header = View.extend(/**@lends module:view/layout/header.prototype */{ + var Header = View.extend(/** @lends module:view/layout/header.prototype */{ initialize: function(options) { View.prototype.initialize.call(this); @@ -15564,6 +15716,7 @@ return /******/ (function(modules) { // webpackBootstrap return _.filter(mergedColumnNames, function(mergedColumnName) { var unitColumnNames = columnModel.getUnitColumnNamesIfMerged(mergedColumnName); + return _.every(unitColumnNames, function(name) { return _.contains(columnNames, name); }); @@ -15753,6 +15906,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {boolean} sortOptions.ascending 오름차순 여부 */ _updateBtnSortState: function(sortOptions) { + var className; + if (this._$currentSortBtn) { this._$currentSortBtn.removeClass(classNameConst.BTN_SORT_DOWN + ' ' + classNameConst.BTN_SORT_UP); } @@ -15760,9 +15915,9 @@ return /******/ (function(modules) { // webpackBootstrap 'th[' + ATTR_COLUMN_NAME + '="' + sortOptions.columnName + '"] a.' + classNameConst.BTN_SORT ); - this._$currentSortBtn.addClass(sortOptions.ascending ? - classNameConst.BTN_SORT_UP : classNameConst.BTN_SORT_DOWN - ); + className = sortOptions.ascending ? classNameConst.BTN_SORT_UP : classNameConst.BTN_SORT_DOWN; + + this._$currentSortBtn.addClass(className); }, /** @@ -15802,6 +15957,7 @@ return /******/ (function(modules) { // webpackBootstrap }; }, + /* eslint-disable complexity */ /** * Header 의 body markup 을 생성한다. * @returns {string} header 의 테이블 body 영역에 들어갈 html 마크업 스트링 @@ -15868,6 +16024,7 @@ return /******/ (function(modules) { // webpackBootstrap return headerMarkupList.join(''); }, + /* eslint-enable complexity */ /** * column merge 가 설정되어 있을 때 헤더의 max row count 를 가져온다. @@ -15922,6 +16079,7 @@ return /******/ (function(modules) { // webpackBootstrap }, this); } } + return results; } }); @@ -15939,6 +16097,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview ResizeHandle for the Header * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(10); @@ -15962,7 +16121,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - var ResizeHandle = View.extend(/**@lends module:view/layout/resizeHandle.prototype */ { + var ResizeHandle = View.extend(/** @lends module:view/layout/resizeHandle.prototype */ { initialize: function(options) { _.assign(this, { columnModel: options.columnModel, @@ -16146,6 +16305,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Class for the body layout * @author NHN Ent. FE Development Lab */ + 'use strict'; var $ = __webpack_require__(10); @@ -16172,7 +16332,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {String} [options.whichSide=R] L or R (which side) * @ignore */ - var Body = View.extend(/**@lends module:view/layout/body.prototype */{ + var Body = View.extend(/** @lends module:view/layout/body.prototype */{ initialize: function(options) { View.prototype.initialize.call(this); @@ -16184,7 +16344,7 @@ return /******/ (function(modules) { // webpackBootstrap // DIV for setting rendering position of entire child-nodes of $el. $container: null, - whichSide: options && options.whichSide || frameConst.R + whichSide: (options && options.whichSide) || frameConst.R }); this.listenTo(this.dimensionModel, 'change:bodyHeight', this._onBodyHeightChange) @@ -16318,6 +16478,7 @@ return /******/ (function(modules) { // webpackBootstrap result = (endTime - startTime) <= MIN_INTERVAL_FOR_PAUSED; } } + return result; }, @@ -16409,6 +16570,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Class for the table layout in the body(data) area * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -16428,7 +16590,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {String} [options.whichSide='R'] L or R (which side) * @ignore */ - var BodyTable = View.extend(/**@lends module:view/layout/bodyTable.prototype */{ + var BodyTable = View.extend(/** @lends module:view/layout/bodyTable.prototype */{ initialize: function(options) { View.prototype.initialize.call(this); @@ -16542,6 +16704,7 @@ return /******/ (function(modules) { // webpackBootstrap // To prevent issue of appearing vertical scrollbar when dummy rows exists this._resetHeight(); this._resetOverflow(); + return this; }, @@ -16606,6 +16769,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Footer * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -16623,7 +16787,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - var Footer = View.extend(/**@lends module:view/layout/footer.prototype */{ + var Footer = View.extend(/** @lends module:view/layout/footer.prototype */{ initialize: function(options) { /** * Store template functions of each column @@ -16819,6 +16983,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview RowList View * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(10); @@ -16841,7 +17006,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {string} [options.whichSide='R'] 어느 영역에 속하는 rowList 인지 여부. 'L|R' 중 하나를 지정한다. * @ignore */ - var RowList = View.extend(/**@lends module:view/rowList.prototype */{ + var RowList = View.extend(/** @lends module:view/rowList.prototype */{ initialize: function(options) { var focusModel = options.focusModel; var renderModel = options.renderModel; @@ -16994,6 +17159,7 @@ return /******/ (function(modules) { // webpackBootstrap if (!startIndex && !endIndex) { return $(); } + return $rows.slice(startIndex, endIndex); }, @@ -17011,6 +17177,7 @@ return /******/ (function(modules) { // webpackBootstrap if (renderStartIndex > rowIndex) { return $(); } + return $rows.eq(rowIndex - renderStartIndex); }, @@ -17128,6 +17295,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Class for the selection layer * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -17144,7 +17312,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {object} options Options * @ignore */ - var SelectionLayer = View.extend(/**@lends module:view/selectionLayer.prototype */{ + var SelectionLayer = View.extend(/** @lends module:view/selectionLayer.prototype */{ initialize: function(options) { _.assign(this, { whichSide: options.whichSide || frameConst.R, @@ -17295,6 +17463,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Layer class that represents the state of rendering phase * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -17312,7 +17481,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - var EditingLayer = View.extend(/**@lends module:view/editingLayer.prototype */{ + var EditingLayer = View.extend(/** @lends module:view/editingLayer.prototype */{ initialize: function(options) { this.renderModel = options.renderModel; this.domState = options.domState; @@ -17459,6 +17628,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Layer View class which contains the 'tui-date-picker' * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -17478,7 +17648,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - DatePickerLayer = View.extend(/**@lends module:view/datePickerLayer.prototype */{ + DatePickerLayer = View.extend(/** @lends module:view/datePickerLayer.prototype */{ initialize: function(options) { this.focusModel = options.focusModel; this.textPainter = options.textPainter; @@ -17655,6 +17825,7 @@ return /******/ (function(modules) { // webpackBootstrap */ render: function() { this.$el.hide(); + return this; } }); @@ -17670,6 +17841,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Class for the layer view that represents the currently focused cell * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(10); @@ -17691,7 +17863,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - var FocusLayer = View.extend(/**@lends module:view/focusLayer.prototype */{ + var FocusLayer = View.extend(/** @lends module:view/focusLayer.prototype */{ initialize: function(options) { this.focusModel = options.focusModel; this.columnModel = options.columnModel; @@ -17711,6 +17883,7 @@ return /******/ (function(modules) { // webpackBootstrap this.listenTo(this.coordRowModel, 'reset', this._refreshCurrentLayout); this.listenTo(this.focusModel, 'blur', this._onBlur); this.listenTo(this.focusModel, 'focus', this._onFocus); + this.listenTo(this.focusModel, 'change:active', this._onChangeActiveState); }, className: classNameConst.LAYER_FOCUS, @@ -17732,11 +17905,7 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ _onBlur: function() { - if (this.focusModel.has(true)) { - this.$el.addClass(BLUR_CLASS_NAME); - } else { - this.$el.hide(); - } + this.$el.hide(); }, /** @@ -17748,16 +17917,25 @@ return /******/ (function(modules) { // webpackBootstrap _onFocus: function(rowKey, columnName) { var targetSide = this.columnModel.isLside(columnName) ? frameConst.L : frameConst.R; - if (this.focusModel.has(true)) { - this.$el.removeClass(BLUR_CLASS_NAME); - } - if (targetSide === this.whichSide) { this._refreshBorderLayout(rowKey, columnName); this.$el.show(); } }, + /** + * Event handler for 'change:active' event on module:model/focus + * @param {object} model - Focus model + * @private + */ + _onChangeActiveState: function(model) { + if (!model.changed.active) { + this.$el.addClass(BLUR_CLASS_NAME); + } else { + this.$el.removeClass(BLUR_CLASS_NAME); + } + }, + /** * Resets the position and the dimension of the layer. * @param {Number} rowKey - row key @@ -17821,6 +17999,12 @@ return /******/ (function(modules) { // webpackBootstrap /* 60 */ /***/ (function(module, exports, __webpack_require__) { + + /** + * @fileoverview Creator of domEventBus + * @author NHN Ent. FE Development Lab + */ + 'use strict'; var _ = __webpack_require__(6); @@ -17841,6 +18025,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview This class offers methods that can be used to get the current state of DOM element. * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -17855,7 +18040,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {jQuery} $el - jQuery object of the container element. * @ignore */ - var DomState = snippet.defineClass(/**@lends module:domState.prototype */{ + var DomState = snippet.defineClass(/** @lends module:domState.prototype */{ init: function($el) { this.$el = $el; }, @@ -17960,6 +18145,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Public Event Emitter * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -17974,7 +18160,7 @@ return /******/ (function(modules) { // webpackBootstrap * This object should have methods of Backbone.Events. * @ignore */ - var PublicEventEmitter = snippet.defineClass(/**@lends module:publicEventEmitter.prototype */{ + var PublicEventEmitter = snippet.defineClass(/** @lends module:publicEventEmitter.prototype */{ init: function(publicObject) { this.publicObject = publicObject; }, @@ -18068,6 +18254,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Painter Manager * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -18087,7 +18274,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - var PainterManager = snippet.defineClass(/**@lends module:painter/manager.prototype */{ + var PainterManager = snippet.defineClass(/** @lends module:painter/manager.prototype */{ init: function(options) { this.gridId = options.gridId; this.selectType = options.selectType; @@ -18229,6 +18416,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Painter class for the row(TR) views * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -18247,7 +18435,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {object} options - Options * @ignore */ - var RowPainter = snippet.defineClass(Painter, /**@lends module:painter/row.prototype */{ + var RowPainter = snippet.defineClass(Painter, /** @lends module:painter/row.prototype */{ init: function(options) { Painter.apply(this, arguments); this.painterManager = options.painterManager; @@ -18386,6 +18574,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Base class for Painters * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -18402,7 +18591,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - options * @ignore */ - var Painter = snippet.defineClass(/**@lends module:base/painter.prototype */{ + var Painter = snippet.defineClass(/** @lends module:base/painter.prototype */{ init: function(options) { this.controller = options.controller; }, @@ -18468,6 +18657,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Painter class for cell(TD) views * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -18485,7 +18675,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - options * @ignore */ - var Cell = snippet.defineClass(Painter, /**@lends module:painter/cell.prototype */{ + var Cell = snippet.defineClass(Painter, /** @lends module:painter/cell.prototype */{ init: function(options) { Painter.apply(this, arguments); @@ -18717,6 +18907,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Dummy cell painter * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -18733,7 +18924,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:base/painter * @ignore */ - var DummyCell = snippet.defineClass(Painter, /**@lends module:painter/dummyCell.prototype */{ + var DummyCell = snippet.defineClass(Painter, /** @lends module:painter/dummyCell.prototype */{ init: function() { Painter.apply(this, arguments); }, @@ -18791,6 +18982,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Painter class for the 'input[type=text]' and 'input[type=password]'. * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -18810,7 +19002,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - options * @ignore */ - var TextPainter = snippet.defineClass(InputPainter, /**@lends module:painter/input/text.prototype */{ + var TextPainter = snippet.defineClass(InputPainter, /** @lends module:painter/input/text.prototype */{ init: function(options) { InputPainter.apply(this, arguments); @@ -18914,6 +19106,7 @@ return /******/ (function(modules) { // webpackBootstrap if (cellData.whiteSpace !== 'nowrap') { return this.templateTextArea(params); } + return this.templateInput(params); }, @@ -18942,6 +19135,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Base class for the Input Painter * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(10); @@ -18959,7 +19153,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - options * @ignore */ - var InputPainter = snippet.defineClass(Painter, /**@lends module:painter/input/base.prototype */{ + var InputPainter = snippet.defineClass(Painter, /** @lends module:painter/input/base.prototype */{ init: function() { Painter.apply(this, arguments); @@ -19183,6 +19377,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Painter class for 'select' input. * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(10); @@ -19198,7 +19393,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:painter/input/base * @ignore */ - var SelectPainter = snippet.defineClass(InputPainter, /**@lends module:painter/input/select.prototype */{ + var SelectPainter = snippet.defineClass(InputPainter, /** @lends module:painter/input/select.prototype */{ init: function() { InputPainter.apply(this, arguments); @@ -19286,6 +19481,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Painter class for 'checkbox' and 'radio button'. * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(10); @@ -19302,7 +19498,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - options * @ignore */ - var ButtonPainter = snippet.defineClass(InputPainter, /**@lends module:painter/input/button.prototype */{ + var ButtonPainter = snippet.defineClass(InputPainter, /** @lends module:painter/input/button.prototype */{ init: function(options) { InputPainter.apply(this, arguments); @@ -19428,8 +19624,10 @@ return /******/ (function(modules) { // webpackBootstrap if ($nextInputs.length) { $nextInputs.first().focus(); + return true; } + return false; }, @@ -19560,6 +19758,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Main Button Painter * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(10); @@ -19580,7 +19779,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - options * @ignore */ - var InputPainter = snippet.defineClass(Painter, /**@lends module:painter/input/mainButton.prototype */{ + var InputPainter = snippet.defineClass(Painter, /** @lends module:painter/input/mainButton.prototype */{ init: function(options) { Painter.apply(this, arguments); @@ -19607,7 +19806,7 @@ return /******/ (function(modules) { // webpackBootstrap 'type="<%=type%>" name="<%=name%>" <%=checked%> <%=disabled%> />' ), - /** + /** * Event handler for 'change' DOM event. * @param {Event} event - DOM event object * @private @@ -19675,6 +19874,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Controller class to handle actions from the painters * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(10); @@ -19689,7 +19889,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - options * @ignore */ - var PainterController = snippet.defineClass(/**@lends module:painter/controller.prototype */{ + var PainterController = snippet.defineClass(/** @lends module:painter/controller.prototype */{ init: function(options) { this.focusModel = options.focusModel; this.dataModel = options.dataModel; @@ -19733,6 +19933,7 @@ return /******/ (function(modules) { // webpackBootstrap if (maxLength > 0 && value.length > maxLength) { return value.substring(0, maxLength); } + return value; }, @@ -19869,6 +20070,7 @@ return /******/ (function(modules) { // webpackBootstrap if (_.isNumber(value) || isNaN(value) || util.isBlank(value)) { return value; } + return Number(value); } @@ -19901,6 +20103,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Add-on for binding to remote data * @author NHN Ent. FE Development Lab */ + 'use strict'; var $ = __webpack_require__(10); @@ -19990,7 +20193,7 @@ return /******/ (function(modules) { // webpackBootstrap * net.request('modifyData'); * */ - var Net = View.extend(/**@lends module:addon/net.prototype */{ + var Net = View.extend(/** @lends module:addon/net.prototype */{ initialize: function(options) { var defaultOptions = { initialRequest: true, @@ -20285,12 +20488,12 @@ return /******/ (function(modules) { // webpackBootstrap this.requestedFormData = _.clone(data); this.curPage = data.page || this.curPage; - startNumber = (this.curPage - 1) * this.perPage + 1; + startNumber = ((this.curPage - 1) * this.perPage) + 1; this.renderModel.set({ startNumber: startNumber }); - //마지막 요청한 reloadData에서 사용하기 위해 data 를 저장함. + // 마지막 요청한 reloadData에서 사용하기 위해 data 를 저장함. this.lastRequestedReadData = _.clone(data); this.dataModel.fetch({ requestType: 'readData', @@ -20461,7 +20664,7 @@ return /******/ (function(modules) { // webpackBootstrap if (options.hasDataParam) { if (options.modifiedOnly) { - //{createdRows: [], updatedRows:[], deletedRows: []} 에 담는다. + // {createdRows: [], updatedRows:[], deletedRows: []} 에 담는다. dataMap = dataModel.getModifiedRows({ checkedOnly: options.checkedOnly }); @@ -20472,7 +20675,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, this); } else { - //{rows: []} 에 담는다. + // {rows: []} 에 담는다. data.rows = dataModel.getRows(options.checkedOnly); count = data.rows.length; } @@ -20606,6 +20809,7 @@ return /******/ (function(modules) { // webpackBootstrap this._unlock(); }, + /* eslint-disable complexity */ /** * ajax success 이벤트 핸들러 * @param {Function} callback Callback function @@ -20676,6 +20880,7 @@ return /******/ (function(modules) { // webpackBootstrap } } }, + /* eslint-enable complexity */ /** * ajax error 이벤트 핸들러 @@ -20731,6 +20936,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Router for Addon.Net * @author NHN Ent. FE Development Team */ + 'use strict'; var Backbone = __webpack_require__(9); @@ -20741,7 +20947,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {object} attributes - Attributes * @ignore */ - var Router = Backbone.Router.extend(/**@lends module:addon/net-router.prototype */{ + var Router = Backbone.Router.extend(/** @lends module:addon/net-router.prototype */{ initialize: function(attributes) { this.net = attributes.net; }, @@ -20762,6 +20968,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Utilities for form data, form element * @author NHN Ent. Fe Development Team */ + 'use strict'; var $ = __webpack_require__(10); @@ -20993,6 +21200,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Component holder * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(10); @@ -21007,7 +21215,7 @@ return /******/ (function(modules) { // webpackBootstrap * @module componentHolder * @ignore */ - var ComponentHolder = snippet.defineClass(/**@lends module:componentHolder.prototype */{ + var ComponentHolder = snippet.defineClass(/** @lends module:componentHolder.prototype */{ init: function(optionsMap) { this.optionsMap = $.extend(true, defaultOptionsMap, optionsMap); this.instanceMap = {}; @@ -21052,6 +21260,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview theme manager * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(10); @@ -21150,6 +21359,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview css style generator * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -21431,6 +21641,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview CSS Rule string builder * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -21463,6 +21674,7 @@ return /******/ (function(modules) { // webpackBootstrap if (value) { this._propValues.push(property + ':' + value); } + return this; }, @@ -21497,6 +21709,7 @@ return /******/ (function(modules) { // webpackBootstrap this.add('border-top-width', value) .add('border-bottom-width', value); } + return this; }, @@ -21617,6 +21830,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview default theme preset * @author NHN Ent. FE Development Team */ + 'use strict'; module.exports = { @@ -21694,6 +21908,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview default theme preset * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(10); @@ -21731,6 +21946,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview default theme preset * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(10); diff --git a/dist/tui-grid.comb.min.js b/dist/tui-grid.comb.min.js index d374ba2b9..70ff7f35a 100644 --- a/dist/tui-grid.comb.min.js +++ b/dist/tui-grid.comb.min.js @@ -1,11 +1,11 @@ /*! - * bundle created at "Fri Sep 08 2017 17:16:54 GMT+0900 (KST)" - * version: 2.4.0 + * bundle created at "Thu Sep 28 2017 10:34:09 GMT+0900 (KST)" + * version: 2.4.1 */ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("tui-code-snippet"),require("jquery"),require("tui-date-picker"),require("tui-pagination")):"function"==typeof define&&define.amd?define(["tui-code-snippet","jquery","tui-date-picker","tui-pagination"],e):"object"==typeof exports?exports.Grid=e(require("tui-code-snippet"),require("jquery"),require("tui-date-picker"),require("tui-pagination")):(t.tui=t.tui||{},t.tui.Grid=e(t.tui&&t.tui.util,t.$,t.tui&&t.tui.DatePicker,t.tui&&t.tui.Pagination))}(this,function(t,e,n,i){return function(t){function e(i){if(n[i])return n[i].exports;var o=n[i]={exports:{},id:i,loaded:!1};return t[i].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";n(1),t.exports=n(5)},function(t,e){},,,,function(t,e,n){"use strict";var i=n(6),o=n(7),s=n(8),r=n(11),a=n(35),l=n(60),u=n(61),d=n(62),h=n(63),c=n(73),g=n(74),f=n(77),m=n(20),p=n(44),_=n(78),M=n(14).themeName,v={},w=s.extend({initialize:function(t){this.id=m.getUniqueKey(),this.domState=new u(this.$el),this.domEventBus=l.create(),this.modelManager=this._createModelManager(t),this.painterManager=this._createPainterManager(),this.componentHolder=this._createComponentHolder(t.pagination),this.viewFactory=this._createViewFactory(t),this.container=this.viewFactory.createContainer(),this.publicEventEmitter=this._createPublicEventEmitter(),this.container.render(),this.refreshLayout(),_.isApplied()||_.apply(M.DEFAULT),this.addOn={},v[this.id]=this,t.data&&this.setData(t.data)},_createModelManager:function(t){var e=i.assign({},t,{gridId:this.id,publicObject:this});return i.omit(e,"el"),new r(e,this.domState,this.domEventBus)},_createPainterManager:function(){var t=new c({focusModel:this.modelManager.focusModel,dataModel:this.modelManager.dataModel,columnModel:this.modelManager.columnModel,selectionModel:this.modelManager.selectionModel});return new h({gridId:this.id,selectType:this.modelManager.columnModel.get("selectType"),fixedRowHeight:this.modelManager.dimensionModel.get("fixedRowHeight"),domEventBus:this.domEventBus,controller:t})},_createViewFactory:function(t){var e=i.pick(t,["heightResizable","footer"]),n={modelManager:this.modelManager,painterManager:this.painterManager,componentHolder:this.componentHolder,domEventBus:this.domEventBus,domState:this.domState};return new a(i.assign(n,e))},_createComponentHolder:function(t){return new f({pagination:t})},_createPublicEventEmitter:function(){var t=new d(this);return t.listenToFocusModel(this.modelManager.focusModel),t.listenToDomEventBus(this.domEventBus),t.listenToDataModel(this.modelManager.dataModel),t.listenToSelectionModel(this.modelManager.selectionModel),t},disable:function(){this.modelManager.dataModel.setDisabled(!0)},enable:function(){this.modelManager.dataModel.setDisabled(!1)},disableRow:function(t){this.modelManager.dataModel.disableRow(t)},enableRow:function(t){this.modelManager.dataModel.enableRow(t)},getValue:function(t,e,n){return this.modelManager.dataModel.getValue(t,e,n)},getColumnValues:function(t,e){return this.modelManager.dataModel.getColumnValues(t,e)},getRow:function(t,e){return this.modelManager.dataModel.getRowData(t,e)},getRowAt:function(t,e){return this.modelManager.dataModel.getRowDataAt(t,e)},getRowCount:function(){return this.modelManager.dataModel.length},getFocusedCell:function(){var t=this.modelManager.focusModel.which(),e=this.getValue(t.rowKey,t.columnName);return{rowKey:t.rowKey,columnName:t.columnName,value:e}},getElement:function(t,e){return this.modelManager.dataModel.getElement(t,e)},setValue:function(t,e,n){this.modelManager.dataModel.setValue(t,e,n)},setColumnValues:function(t,e,n){this.modelManager.dataModel.setColumnValues(t,e,n)},resetData:function(t){this.modelManager.dataModel.resetData(t)},setData:function(t,e){this.modelManager.dataModel.setData(t,!0,e)},setBodyHeight:function(t){this.modelManager.dimensionModel.set("bodyHeight",t)},focus:function(t,e,n){this.modelManager.focusModel.focusClipboard(),this.modelManager.focusModel.focus(t,e,n)},focusAt:function(t,e,n){this.modelManager.focusModel.focusAt(t,e,n)},focusIn:function(t,e,n){this.modelManager.focusModel.focusIn(t,e,n)},focusInAt:function(t,e,n){this.modelManager.focusModel.focusInAt(t,e,n)},activateFocus:function(){this.modelManager.focusModel.focusClipboard()},blur:function(){this.modelManager.focusModel.blur()},checkAll:function(){this.modelManager.dataModel.checkAll()},check:function(t){this.modelManager.dataModel.check(t)},uncheckAll:function(){this.modelManager.dataModel.uncheckAll()},uncheck:function(t){this.modelManager.dataModel.uncheck(t)},clear:function(){this.modelManager.dataModel.setData([])},removeRow:function(t,e){o.isBoolean(e)&&e&&(e={removeOriginalData:!0}),this.modelManager.dataModel.removeRow(t,e)},removeCheckedRows:function(t){var e=this.getCheckedRowKeys(),n=p.get("requestConfirm",{count:e.length,actionName:"deleteAction"});return!(!(e.length>0)||t&&!confirm(n))&&(i.each(e,function(t){this.modelManager.dataModel.removeRow(t)},this),!0)},enableCheck:function(t){this.modelManager.dataModel.enableCheck(t)},disableCheck:function(t){this.modelManager.dataModel.disableCheck(t)},getCheckedRowKeys:function(t){var e=this.modelManager.dataModel.getRows(!0),n=i.pluck(e,"rowKey");return t?JSON.stringify(n):n},getCheckedRows:function(t){var e=this.modelManager.dataModel.getRows(!0);return t?JSON.stringify(e):e},getColumns:function(){return this.modelManager.columnModel.get("dataColumns")},getModifiedRows:function(t){return this.modelManager.dataModel.getModifiedRows(t)},appendRow:function(t,e){this.modelManager.dataModel.append(t,e)},prependRow:function(t,e){this.modelManager.dataModel.prepend(t,e)},isModified:function(){return this.modelManager.dataModel.isModified()},getAddOn:function(t){return t?this.addOn[t]:this.addOn},restore:function(){this.modelManager.dataModel.restore()},setFrozenColumnCount:function(t){this.modelManager.columnModel.set("frozenCount",t)},setColumns:function(t){this.modelManager.columnModel.set("columns",t)},use:function(t,e){return"Net"===t&&(e=i.assign({domEventBus:this.domEventBus,renderModel:this.modelManager.renderModel,dataModel:this.modelManager.dataModel,pagination:this.componentHolder.getInstance("pagination")},e),this.addOn.Net=new g(e),this.publicEventEmitter.listenToNetAddon(this.addOn.Net)),this},getRows:function(){return this.modelManager.dataModel.getRows()},sort:function(t,e){this.modelManager.dataModel.sortByField(t,e)},unSort:function(){this.sort("rowKey")},getSortState:function(){return this.modelManager.dataModel.sortOptions},addCellClassName:function(t,e,n){this.modelManager.dataModel.get(t).addCellClassName(e,n)},addRowClassName:function(t,e){this.modelManager.dataModel.get(t).addClassName(e)},removeCellClassName:function(t,e,n){this.modelManager.dataModel.get(t).removeCellClassName(e,n)},removeRowClassName:function(t,e){this.modelManager.dataModel.get(t).removeClassName(e)},getRowSpanData:function(t,e){return this.modelManager.dataModel.getRowSpanData(t,e)},getIndexOfRow:function(t){return this.modelManager.dataModel.indexOfRowKey(t)},getIndexOfColumn:function(t){return this.modelManager.columnModel.indexOfColumnName(t)},getPagination:function(){return this.componentHolder.getInstance("pagination")},setWidth:function(t){this.modelManager.dimensionModel.setWidth(t)},setHeight:function(t){this.modelManager.dimensionModel.setHeight(t)},refreshLayout:function(){this.modelManager.dimensionModel.refreshLayout()},resetColumnWidths:function(){this.modelManager.coordColumnModel.resetColumnWidths()},showColumn:function(){var t=o.toArray(arguments);this.modelManager.columnModel.setHidden(t,!1)},hideColumn:function(){var t=o.toArray(arguments);this.modelManager.columnModel.setHidden(t,!0)},setFooterColumnContent:function(t,e){this.modelManager.columnModel.setFooterContent(t,e)},validate:function(){return this.modelManager.dataModel.validate()},findRows:function(t){var e=this.modelManager.dataModel.getRows();return i.where(e,t)},copyToClipboard:function(){this.modelManager.clipboardModel.setClipboardText(),window.clipboardData||document.execCommand("copy")},selection:function(t){var e=this.modelManager.selectionModel,n=t.start,i=t.end,o=e.getSelectionUnit();e.start(n[0],n[1],o),e.update(i[0],i[1],o)},destroy:function(){this.modelManager.destroy(),this.container.destroy(),this.modelManager=this.container=null}});w.getInstanceById=function(t){return v[t]},w.applyTheme=function(t,e){_.apply(t,e)},w.setLanguage=function(t){p.setLanguage(t)},t.exports=w},function(t,e,n){var i,o;(function(){function n(t){function e(e,n,i,o,s,r){for(;s>=0&&s0?0:a-1;return arguments.length<3&&(o=n[r?r[l]:l],l+=t),e(n,i,o,r,l,a)}}function s(t){return function(e,n,i){n=b(n,i);for(var o=D(e),s=t>0?0:o-1;s>=0&&s0?r=s>=0?s:Math.max(s+a,r):a=s>=0?Math.min(s+1,a):s+a+1;else if(n&&s&&a)return s=n(i,o),i[s]===o?s:-1;if(o!==o)return s=e(f.call(i,r,a),y.isNaN),s>=0?s+r:-1;for(s=t>0?r:a-1;s>=0&&s=0&&e<=T};y.each=y.forEach=function(t,e,n){e=R(e,n);var i,o;if(N(t))for(i=0,o=t.length;i=0},y.invoke=function(t,e){var n=f.call(arguments,2),i=y.isFunction(e);return y.map(t,function(t){var o=i?e:t[e];return null==o?o:o.apply(t,n)})},y.pluck=function(t,e){return y.map(t,y.property(e))},y.where=function(t,e){return y.filter(t,y.matcher(e))},y.findWhere=function(t,e){return y.find(t,y.matcher(e))},y.max=function(t,e,n){var i,o,s=-(1/0),r=-(1/0);if(null==e&&null!=t){t=N(t)?t:y.values(t);for(var a=0,l=t.length;as&&(s=i)}else e=b(e,n),y.each(t,function(t,n,i){o=e(t,n,i),(o>r||o===-(1/0)&&s===-(1/0))&&(s=t,r=o)});return s},y.min=function(t,e,n){var i,o,s=1/0,r=1/0;if(null==e&&null!=t){t=N(t)?t:y.values(t);for(var a=0,l=t.length;ai||void 0===n)return 1;if(ne?(r&&(clearTimeout(r),r=null),a=u,s=t.apply(i,o),r||(i=o=null)):r||n.trailing===!1||(r=setTimeout(l,d)),s}},y.debounce=function(t,e,n){var i,o,s,r,a,l=function(){var u=y.now()-r;u=0?i=setTimeout(l,e-u):(i=null,n||(a=t.apply(s,o),i||(s=o=null)))};return function(){s=this,o=arguments,r=y.now();var u=n&&!i;return i||(i=setTimeout(l,e)),u&&(a=t.apply(s,o),s=o=null),a}},y.wrap=function(t,e){return y.partial(e,t)},y.negate=function(t){return function(){return!t.apply(this,arguments)}},y.compose=function(){var t=arguments,e=t.length-1;return function(){for(var n=e,i=t[e].apply(this,arguments);n--;)i=t[n].call(this,i);return i}},y.after=function(t,e){return function(){if(--t<1)return e.apply(this,arguments)}},y.before=function(t,e){var n;return function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=null),n}},y.once=y.partial(y.before,2);var H=!{toString:null}.propertyIsEnumerable("toString"),I=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];y.keys=function(t){if(!y.isObject(t))return[];if(M)return M(t);var e=[];for(var n in t)y.has(t,n)&&e.push(n);return H&&a(t,e),e},y.allKeys=function(t){if(!y.isObject(t))return[];var e=[];for(var n in t)e.push(n);return H&&a(t,e),e},y.values=function(t){for(var e=y.keys(t),n=e.length,i=Array(n),o=0;o":">",'"':""","'":"'","`":"`"},F=y.invert(B),P=function(t){var e=function(e){return t[e]},n="(?:"+y.keys(t).join("|")+")",i=RegExp(n),o=RegExp(n,"g");return function(t){return t=null==t?"":""+t,i.test(t)?t.replace(o,e):t}};y.escape=P(B),y.unescape=P(F),y.result=function(t,e,n){var i=null==t?void 0:t[e];return void 0===i&&(i=n),y.isFunction(i)?i.call(t):i};var W=0;y.uniqueId=function(t){var e=++W+"";return t?t+e:e},y.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var K=/(.)^/,V={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},U=/\\|'|\r|\n|\u2028|\u2029/g,z=function(t){return"\\"+V[t]};y.template=function(t,e,n){!e&&n&&(e=n),e=y.defaults({},e,y.templateSettings);var i=RegExp([(e.escape||K).source,(e.interpolate||K).source,(e.evaluate||K).source].join("|")+"|$","g"),o=0,s="__p+='";t.replace(i,function(e,n,i,r,a){return s+=t.slice(o,a).replace(U,z),o=a+e.length,n?s+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":i?s+="'+\n((__t=("+i+"))==null?'':__t)+\n'":r&&(s+="';\n"+r+"\n__p+='"),e}),s+="';\n",e.variable||(s="with(obj||{}){\n"+s+"}\n"),s="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+s+"return __p;\n";try{var r=new Function(e.variable||"obj","_",s)}catch(t){throw t.source=s,t}var a=function(t){return r.call(this,t,y)},l=e.variable||"obj";return a.source="function("+l+"){\n"+s+"}",a},y.chain=function(t){var e=y(t);return e._chain=!0,e};var $=function(t,e){return t._chain?y(e).chain():e};y.mixin=function(t){y.each(y.functions(t),function(e){var n=y[e]=t[e];y.prototype[e]=function(){var t=[this._wrapped];return g.apply(t,arguments),$(this,n.apply(y,t))}})},y.mixin(y),y.each(["pop","push","reverse","shift","sort","splice","unshift"],function(t){var e=d[t];y.prototype[t]=function(){var n=this._wrapped;return e.apply(n,arguments),"shift"!==t&&"splice"!==t||0!==n.length||delete n[0],$(this,n)}}),y.each(["concat","join","slice"],function(t){var e=d[t];y.prototype[t]=function(){return $(this,e.apply(this._wrapped,arguments))}}),y.prototype.value=function(){return this._wrapped},y.prototype.valueOf=y.prototype.toJSON=y.prototype.value,y.prototype.toString=function(){return""+this._wrapped},i=[],o=function(){return y}.apply(e,i),!(void 0!==o&&(t.exports=o))}).call(this)},function(e,n){e.exports=t},function(t,e,n){"use strict";var i=n(6),o=n(9),s=o.View.extend({initialize:function(){this._children=[]},_addChildren:function(t){i.isArray(t)||(t=[t]),[].push.apply(this._children,i.compact(t))},_renderChildren:function(){var t=i.map(this._children,function(t){return t.render().el});return t},_triggerChildrenAppended:function(){i.each(this._children,function(t){t.trigger("appended")})},destroy:function(){this.stopListening(),this._destroyChildren(),this.remove()},_destroyChildren:function(){if(this._children)for(;this._children.length>0;)this._children.pop().destroy()}});t.exports=s},function(t,e,n){var i,o;(function(s){!function(r){var a="object"==typeof self&&self.self===self&&self||"object"==typeof s&&s.global===s&&s;i=[n(6),n(10),e],o=function(t,e,n){a.Backbone=r(a,n,t,e)}.apply(e,i),!(void 0!==o&&(t.exports=o))}(function(t,e,n,i){var o=t.Backbone,s=Array.prototype.slice;e.VERSION="1.3.3",e.$=i,e.noConflict=function(){return t.Backbone=o,this},e.emulateHTTP=!1,e.emulateJSON=!1;var r=function(t,e,i){switch(t){case 1:return function(){return n[e](this[i])};case 2:return function(t){return n[e](this[i],t)};case 3:return function(t,o){return n[e](this[i],l(t,this),o)};case 4:return function(t,o,s){return n[e](this[i],l(t,this),o,s)};default:return function(){var t=s.call(arguments);return t.unshift(this[i]),n[e].apply(n,t)}}},a=function(t,e,i){n.each(e,function(e,o){n[o]&&(t.prototype[o]=r(e,o,i))})},l=function(t,e){return n.isFunction(t)?t:n.isObject(t)&&!e._isModel(t)?u(t):n.isString(t)?function(e){return e.get(t)}:t},u=function(t){var e=n.matches(t);return function(t){return e(t.attributes)}},d=e.Events={},h=/\s+/,c=function(t,e,i,o,s){var r,a=0;if(i&&"object"==typeof i){void 0!==o&&"context"in s&&void 0===s.context&&(s.context=o);for(r=n.keys(i);athis.length&&(o=this.length),o<0&&(o+=this.length+1);var s,r,a=[],l=[],u=[],d=[],h={},c=e.add,g=e.merge,f=e.remove,m=!1,p=this.comparator&&null==o&&e.sort!==!1,_=n.isString(this.comparator)?this.comparator:null;for(r=0;r7),this._useHashChange=this._wantsHashChange&&this._hasHashChange,this._wantsPushState=!!this.options.pushState,this._hasPushState=!(!this.history||!this.history.pushState),this._usePushState=this._wantsPushState&&this._hasPushState,this.fragment=this.getFragment(),this.root=("/"+this.root+"/").replace(B,"/"),this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){var e=this.root.slice(0,-1)||"/";return this.location.replace(e+"#"+this.getPath()),!0}this._hasPushState&&this.atRoot()&&this.navigate(this.getHash(),{replace:!0})}if(!this._hasHashChange&&this._wantsHashChange&&!this._usePushState){this.iframe=document.createElement("iframe"),this.iframe.src="javascript:0",this.iframe.style.display="none",this.iframe.tabIndex=-1;var i=document.body,o=i.insertBefore(this.iframe,i.firstChild).contentWindow;o.document.open(),o.document.close(),o.location.hash="#"+this.fragment}var s=window.addEventListener||function(t,e){return attachEvent("on"+t,e)};if(this._usePushState?s("popstate",this.checkUrl,!1):this._useHashChange&&!this.iframe?s("hashchange",this.checkUrl,!1):this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,this.interval)),!this.options.silent)return this.loadUrl()},stop:function(){var t=window.removeEventListener||function(t,e){return detachEvent("on"+t,e)};this._usePushState?t("popstate",this.checkUrl,!1):this._useHashChange&&!this.iframe&&t("hashchange",this.checkUrl,!1),this.iframe&&(document.body.removeChild(this.iframe),this.iframe=null),this._checkUrlInterval&&clearInterval(this._checkUrlInterval),I.started=!1},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var e=this.getFragment();return e===this.fragment&&this.iframe&&(e=this.getHash(this.iframe.contentWindow)),e!==this.fragment&&(this.iframe&&this.navigate(e),void this.loadUrl())},loadUrl:function(t){return!!this.matchRoot()&&(t=this.fragment=this.getFragment(t),n.some(this.handlers,function(e){if(e.route.test(t))return e.callback(t),!0}))},navigate:function(t,e){if(!I.started)return!1;e&&e!==!0||(e={trigger:!!e}),t=this.getFragment(t||"");var n=this.root;""!==t&&"?"!==t.charAt(0)||(n=n.slice(0,-1)||"/");var i=n+t;if(t=this.decodeFragment(t.replace(F,"")),this.fragment!==t){if(this.fragment=t,this._usePushState)this.history[e.replace?"replaceState":"pushState"]({},document.title,i);else{if(!this._wantsHashChange)return this.location.assign(i);if(this._updateHash(this.location,t,e.replace),this.iframe&&t!==this.getHash(this.iframe.contentWindow)){var o=this.iframe.contentWindow;e.replace||(o.document.open(),o.document.close()),this._updateHash(o.location,t,e.replace)}}return e.trigger?this.loadUrl(t):void 0}},_updateHash:function(t,e,n){if(n){var i=t.href.replace(/(javascript:|#).*$/,"");t.replace(i+"#"+e)}else t.hash="#"+e}}),e.history=new I;var P=function(t,e){var i,o=this;return i=t&&n.has(t,"constructor")?t.constructor:function(){return o.apply(this,arguments)},n.extend(i,o,e),i.prototype=n.create(o.prototype,t),i.prototype.constructor=i,i.__super__=o.prototype,i};v.extend=C.extend=N.extend=x.extend=I.extend=P;var W=function(){throw new Error('A "url" property or function must be specified')},K=function(t,e){var n=e.error;e.error=function(i){n&&n.call(e.context,t,i,e),t.trigger("error",t,i,e)}};return e})}).call(e,function(){return this}())},function(t,n){t.exports=e},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(7),r=n(12),a=n(15),l=n(23),u=n(24),d=n(25),h=n(26),c=n(27),g=n(28),f=n(31),m=n(32),p=n(33),_=n(34),M=n(20),v={data:[],columns:[],keyColumnName:null,selectType:"",autoNumbering:!0,header:{height:35,complexColumns:[]},columnOptions:{minWidth:50,resizable:!0,frozenCount:0},fitToParentHeight:!1,fixedRowHeight:!1,fixedHeight:!1,showDummyRows:!1,virtualScrolling:!1,copyOptions:null,scrollX:!0,scrollY:!0,useClientSort:!0,editingEvent:"dblclick",rowHeight:"auto",bodyHeight:"auto",minRowHeight:27,minBodyHeight:130,selectionUnit:"cell"},w=s.defineClass({init:function(t,e,n){t=i.extend(!0,{},v,t),this.gridId=t.gridId,this.columnModel=this._createColumnModel(t),this.dataModel=this._createDataModel(t,e,n),this.dimensionModel=this._createDimensionModel(t,e,n),this.coordRowModel=this._createCoordRowModel(e),this.focusModel=this._createFocusModel(t,e,n),this.coordColumnModel=this._createCoordColumnModel(t.columnOptions,n),this.renderModel=this._createRenderModel(t),this.coordConverterModel=this._createCoordConverterModel(),this.selectionModel=this._createSelectionModel(t,n),this.summaryModel=this._createSummaryModel(t.footer),this.clipboardModel=this._createClipboardModel(t,n)},_createColumnModel:function(t){return new r({keyColumnName:t.keyColumnName,frozenCount:t.columnOptions.frozenCount,complexHeaderColumns:t.header.complexColumns,copyOptions:t.copyOptions,columns:t.columns,rowHeaders:t.rowHeaders})},_createDataModel:function(t,e,n){return new a([],{gridId:this.gridId,domState:e,domEventBus:n,columnModel:this.columnModel,useClientSort:t.useClientSort,publicObject:t.publicObject})},_createDimensionModel:function(t,e,n){var i,o=!isNaN(t.rowHeight),s="auto"!==t.bodyHeight,r=t.minRowHeight,a=t.minBodyHeight,u=o?Math.max(r,t.rowHeight):r,d=s?Math.max(a,t.bodyHeight):a,h={headerHeight:t.header.height,bodyHeight:d,footerHeight:t.footer?t.footer.height:0,rowHeight:u,fitToParentHeight:"fitToParent"===t.bodyHeight,scrollX:!!t.scrollX,scrollY:!!t.scrollY,minimumColumnWidth:t.columnOptions.minWidth,fixedRowHeight:o,fixedHeight:s,minRowHeight:r,minBodyHeight:a||u};return o===!1&&t.virtualScrolling&&(M.warning("If the virtualScrolling is set to true, the rowHeight must be set to number type."),h.fixedRowHeight=!0),i=new l(h,{columnModel:this.columnModel,dataModel:this.dataModel,domState:e,domEventBus:n})},_createCoordRowModel:function(t){return new u(null,{dataModel:this.dataModel,dimensionModel:this.dimensionModel,domState:t})},_createCoordColumnModel:function(t,e){var n={resizable:t.resizable};return new d(n,{columnModel:this.columnModel,dimensionModel:this.dimensionModel,domEventBus:e})},_createCoordConverterModel:function(){return new h(null,{columnModel:this.columnModel,dataModel:this.dataModel,dimensionModel:this.dimensionModel,focusModel:this.focusModel,coordRowModel:this.coordRowModel,renderModel:this.renderModel,coordColumnModel:this.coordColumnModel})},_createFocusModel:function(t,e,n){return new c(null,{columnModel:this.columnModel,dataModel:this.dataModel,coordRowModel:this.coordRowModel,domEventBus:n,domState:e,editingEvent:t.editingEvent})},_createSelectionModel:function(t,e){return new m({selectionUnit:t.selectionUnit},{columnModel:this.columnModel,dataModel:this.dataModel,dimensionModel:this.dimensionModel,coordConverterModel:this.coordConverterModel,coordRowModel:this.coordRowModel,renderModel:this.renderModel,focusModel:this.focusModel,domEventBus:e})},_createRenderModel:function(t){var e,n,i;return e={emptyMessage:t.emptyMessage,showDummyRows:t.showDummyRows},n={columnModel:this.columnModel,dataModel:this.dataModel,dimensionModel:this.dimensionModel,focusModel:this.focusModel,coordRowModel:this.coordRowModel,coordColumnModel:this.coordColumnModel},new(i=t.virtualScrolling?f:g)(e,n)},_createSummaryModel:function(t){var e=[];return t&&t.columnContent?(o.each(t.columnContent,function(t,n){o.isFunction(t.template)&&t.useAutoSummary!==!1&&e.push(n)}),new p(null,{dataModel:this.dataModel,autoColumnNames:e})):null},_createClipboardModel:function(t,e){return new _(null,{columnModel:this.columnModel,dataModel:this.dataModel,selectionModel:this.selectionModel,renderModel:this.renderModel,focusModel:this.focusModel,copyOptions:t.copyOptions,domEventBus:e})},destroy:function(){o.each(this,function(t,e){t&&s.isFunction(t._destroy)&&t._destroy(),t&&s.isFunction(t.stopListening)&&t.stopListening(),this[e]=null},this)}});t.exports=w},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(7),r=n(13),a=n(14).frame,l={rowNum:{type:"rowNum",title:"No.",name:"_number",align:"center",fixedWidth:!0,width:60,hidden:!1},checkbox:{type:"checkbox",title:'',name:"_button",align:"center",fixedWidth:!0,width:40,hidden:!1,editOptions:{type:"mainButton"}},radio:{type:"radio",title:"select",name:"_button",align:"center",fixedWidth:!0,width:40,hidden:!1,editOptions:{type:"mainButton"}}},u=r.extend({initialize:function(){r.prototype.initialize.apply(this,arguments),this.textType={normal:!0,text:!0,password:!0},this._setColumns(this.get("rowHeaders"),this.get("columns")),this.on("change",this._onChange,this)},defaults:{keyColumnName:null,frozenCount:0,rowHeaders:[],dataColumns:[],visibleColumns:[],selectType:"",columnModelMap:{},relationsMap:{},complexHeaderColumns:[],copyOptions:{useFormattedValue:!1}},at:function(t,e){var n=e?this.getVisibleColumns():this.get("dataColumns");return n[t]},indexOfColumnName:function(t,e){var n;return n=e?this.getVisibleColumns():this.get("dataColumns"),o.findIndex(n,{name:t})},isLside:function(t){var e=this.indexOfColumnName(t,!0);return e>-1&&er&&(u=1),i||(u=-u),u},_removePrivateProp:function(t){return o.map(t,function(t){return o.omit(t,r.privateProperties)})},removeRow:function(t,e){var n,i,s,r=this.get(t);r&&(e&&e.keepRowSpanData&&(s=o.clone(r.attributes)),n=o.clone(r.getRowSpanData()),i=this.at(this.indexOf(r)+1),this.remove(r,{silent:!0}),this._syncRowSpanDataForRemove(n,i,s),e&&e.removeOriginalData&&this.setOriginalRowList(),this.trigger("remove",t))},_syncRowSpanDataForRemove:function(t,e,n){t&&o.each(t,function(t,i){var o,s,r,a={};if(t.isMainRow){if(1===t.count)return;o=e,r=t.count-1,s=1,r>1&&(a.mainRowKey=o.get("rowKey"),a.isMainRow=!0),o.set(i,n?n[i]:"",{silent:!0})}else o=this.get(t.mainRowKey),r=o.getRowSpanData(i).count-1,s=-t.count;r>1?(a.count=r,o.setRowSpanData(i,a),this._updateSubRowSpanData(o,i,s,r)):o.setRowSpanData(i,null)},this)},_createDummyRow:function(){var t=this.columnModel.get("dataColumns"),e={};return o.each(t,function(t){e[t.name]=""},this),e},append:function(t,e){var n,i=this._createModelList(t);return e=o.extend({at:this.length},e),n={at:e.at,add:!0,silent:!0},this.add(i,n),this._syncRowSpanDataForAppend(e.at,i.length,e.extendPrevRowSpan),this.trigger("add",i,e),i},prepend:function(t,e){return e=e||{},e.at=0,this.append(t,e)},getRowData:function(t,e){var n=this.get(t),i=n?n.toJSON():null;return e?JSON.stringify(i):i},getRowDataAt:function(t,e){var n=this.at(t),i=n?n.toJSON():null;return e?JSON.stringify(n):i},getValue:function(t,e,n){var i,o;return n?i=this.getOriginal(t,e):(o=this.get(t),i=o&&o.get(e)),i},setValue:function(t,e,n,i){var o=this.get(t);return!!o&&(o.set(e,n,{silent:i}),!0)},getColumnValues:function(t,e){var n=this.pluck(t);return e?JSON.stringify(n):n},setColumnValues:function(t,e,n,i){var s={},r={disabled:!1,editable:!0};s[t]=e,n=!!o.isUndefined(n)||n,this.forEach(function(e){n&&(r=e.getCellState(t)),!r.disabled&&r.editable&&e.set(s,{silent:i})},this)},getRowSpanData:function(t,e){var n=this.get(t);return n?n.getRowSpanData(e):null},isModified:function(){var t=o.values(this.getModifiedRows());return o.some(t,function(t){return t.length>0})},setDisabled:function(t){this.disabled!==t&&(this.disabled=t,this.trigger("disabledChanged"))},enableRow:function(t){this.get(t).setRowState("")},disableRow:function(t){this.get(t).setRowState("DISABLED")},enableCheck:function(t){this.get(t).setRowState("")},disableCheck:function(t){this.get(t).setRowState("DISABLED_CHECK")},check:function(t,e){var n=this.get(t).getRowState().isDisabledCheck,i=this.columnModel.get("selectType");!n&&i&&("radio"===i&&this.uncheckAll(),this.setValue(t,"_button",!0,e))},uncheck:function(t,e){this.setValue(t,"_button",!1,e)},checkAll:function(){this.setColumnValues("_button",!0)},uncheckAll:function(){this.setColumnValues("_button",!1)},_createModelList:function(t){var e,n=[];return t=t||this._createDummyRow(),o.isArray(t)||(t=[t]),e=this._formatData(t),o.each(e,function(t){var e=new r(t,{collection:this, -parse:!0});n.push(e)},this),n},_syncRowSpanDataForAppend:function(t,e,n){var i=this.at(t-1);i&&o.each(i.getRowSpanData(),function(t,o){var s,r,a,l;0!==t.count&&(t.isMainRow?(s=i,r=t,a=1):(s=this.get(t.mainRowKey),r=s.getRowSpanData()[o],a=-t.count+1),(r.count>a||n)&&(r.count+=e,l=r.count,this._updateSubRowSpanData(s,o,a,l)))},this)},_updateSubRowSpanData:function(t,e,n,i){var o,s,r=this.indexOf(t),a=t.get("rowKey");for(s=n;s=0)&&(d[s]=t[o-n]);l.set(d)},getElement:function(t,e){var n=this.getMainRowKey(t,e);return this.domState.getElement(n,e)},getCheckedState:function(){var t=0,e=0;return this.forEach(function(n){var i=n.getCellState("_button");!i.disabled&&i.editable&&(t+=1,n.get("_button")&&(e+=1))}),{available:t,checked:e}}});t.exports=a},function(t,e,n){"use strict";var i=n(9),o=i.Collection.extend({clear:function(){return this.each(function(t){t.stopListening(),t=null}),this.reset([],{silent:!0}),this}});t.exports=o},function(t,e,n){"use strict";var i=n(6),o=n(9),s=n(7),r=n(13),a=n(18),l=n(19),u=n(20),d=n(21),h=n(22),c=["_button","_number","_extraData"],g="REQUIRED",f="TYPE_NUMBER",m=r.extend({initialize:function(){r.prototype.initialize.apply(this,arguments),this.extraDataManager=new a(this.get("_extraData")),this.columnModel=this.collection.columnModel,this.validateMap={},this.on("change",this._onChange,this)},idAttribute:"rowKey",set:function(t,e,n){var s,r=i.isObject(t);r&&(n=e),!this.columnModel||n&&n.silent?o.Model.prototype.set.apply(this,arguments):(r?s=t:(s={},s[t]=e),i.each(s,function(t,e){this._executeOnBeforeChange(e,t)||delete s[e]},this),o.Model.prototype.set.call(this,s,n))},parse:function(t){return t._extraData||(t._extraData={}),t},_triggerExtraDataChangeEvent:function(){this.trigger("extraDataChanged",this.get("_extraData"))},_triggerCheckboxChangeEvent:function(t){var e={rowKey:this.get("rowKey")};t?this.trigger("check",e):this.trigger("uncheck",e)},_onChange:function(){var t=i.omit(this.changed,c);i.has(this.changed,"_button")&&this._triggerCheckboxChangeEvent(this.changed._button),this.isDuplicatedPublicChanged(t)||i.each(t,function(t,e){var n=this.columnModel.getColumnModel(e);n&&(this.collection.syncRowSpannedData(this,e,t),this._executeOnAfterChange(e),this.validateCell(e,!0))},this)},_validateCellData:function(t){var e,n=this.columnModel.getColumnModel(t).validation,o="";return n&&(e=this.get(t),n.required&&u.isBlank(e)?o=g:"number"!==n.dataType||i.isNumber(e)||(o=f)),o},validateCell:function(t,e){var n;return!e&&t in this.validateMap?this.validateMap[t]:(n=this._validateCellData(t),n?this.addCellClassName(t,h.CELL_INVALID):this.removeCellClassName(t,h.CELL_INVALID),this.validateMap[t]=n,n)},_createChangeCallbackEvent:function(t,e){return new l(null,{rowKey:this.get("rowKey"),columnName:t,value:e,instance:this.collection.publicObject})},_executeOnBeforeChange:function(t,e){var n,i=this.columnModel.getColumnModel(t),o=this.get(t)!==e;return!(o&&i&&i.onBeforeChange)||(n=this._createChangeCallbackEvent(t,e),i.onBeforeChange(n),!n.isStopped())},_executeOnAfterChange:function(t){var e,n=this.columnModel.getColumnModel(t),i=this.get(t);return!n.onAfterChange||(e=this._createChangeCallbackEvent(t,i),n.onAfterChange(e),!e.isStopped())},getPrivateProperties:function(){return c},getRowState:function(){return this.extraDataManager.getRowState()},getClassNameList:function(t){var e=this.columnModel.getColumnModel(t),n=u.isMetaColumn(t),i=this.extraDataManager.getClassNameList(t),o=this.getCellState(t);return e.className&&i.push(e.className),e.ellipsis&&i.push(h.CELL_ELLIPSIS),e.validation&&e.validation.required&&i.push(h.CELL_REQUIRED),n?i.push(h.CELL_HEAD):o.editable&&i.push(h.CELL_EDITABLE),o.disabled&&i.push(h.CELL_DISABLED),this._makeUniqueStringArray(i)},_makeUniqueStringArray:function(t){var e=i.uniq(t.join(" ").split(" "));return i.without(e,"")},getCellState:function(t){var e,n,o=["_number","normal"],s=this.columnModel,r=this.collection.disabled,a=!0,l=s.getEditType(t);return n=this.executeRelationCallbacksAll(["disabled","editable"])[t],e=this.getRowState(),r||(r="_button"===t?e.disabledCheck:e.disabled,r=r||!(!n||!n.disabled)),a=!i.contains(o,l)&&!(n&&n.editable===!1),{editable:a,disabled:r}},isEditable:function(t){var e=this.getCellState(t);return!e.disabled&&e.editable},isDisabled:function(t){var e=this.getCellState(t);return e.disabled},getRowSpanData:function(t){var e=this.collection.isRowSpanEnable(),n=this.get("rowKey");return this.extraDataManager.getRowSpanData(t,n,e)},getHeight:function(){return this.extraDataManager.getHeight()},setHeight:function(t){this.extraDataManager.setHeight(t),this._triggerExtraDataChangeEvent()},setRowSpanData:function(t,e){this.extraDataManager.setRowSpanData(t,e),this._triggerExtraDataChangeEvent()},setRowState:function(t,e){this.extraDataManager.setRowState(t),e||this._triggerExtraDataChangeEvent()},addCellClassName:function(t,e){this.extraDataManager.addCellClassName(t,e),this._triggerExtraDataChangeEvent()},addClassName:function(t){this.extraDataManager.addClassName(t),this._triggerExtraDataChangeEvent()},removeCellClassName:function(t,e){this.extraDataManager.removeCellClassName(t,e),this._triggerExtraDataChangeEvent()},removeClassName:function(t){this.extraDataManager.removeClassName(t),this._triggerExtraDataChangeEvent()},_getStringOfListItems:function(t,e){var n,o,r,a,l=this.get(t),d=this.columnModel.getColumnModel(t);return s.isExisty(s.pick(d,"editOptions","listItems"))?(n=this.executeRelationCallbacksAll(["listItems"])[t],o=n&&n.listItems?n.listItems:d.editOptions.listItems,r=typeof o[0].value,a=u.toString(l).split(","),r!==typeof a[0]&&(a=i.map(a,function(t){return u.convertValueType(t,r)})),i.each(a,function(t,n){var s=i.findWhere(o,{value:t}),r=s&&(e?s.text:s.value)||"";a[n]=r},this),a.join(",")):""},_isListType:function(t){return i.contains(["select","radio","checkbox"],t)},isDuplicatedPublicChanged:function(t){return!(!this._timeoutIdForChanged||!i.isEqual(this._lastPublicChanged,t))||(clearTimeout(this._timeoutIdForChanged),this._timeoutIdForChanged=setTimeout(i.bind(function(){this._timeoutIdForChanged=null},this),10),this._lastPublicChanged=t,!1)},getValueString:function(t){var e=this.columnModel,n=e.copyVisibleTextOfEditingColumn(t),i=e.getEditType(t),o=e.getColumnModel(t),r=this.get(t);if(this._isListType(i)){if(!s.isExisty(s.pick(o,"editOptions","listItems",0,"value")))throw new Error('Check "'+t+"\"'s editOptions.listItems property out in your ColumnModel.");r=this._getStringOfListItems(t,n)}else"password"===i&&(r="");return r=u.toString(r),r=d.addDoubleQuotes(r)},executeRelationCallbacksAll:function(t){var e=this.attributes,n=this.columnModel.get("relationsMap"),o={};return i.isEmpty(t)&&(t=["listItems","disabled","editable"]),i.each(n,function(n,s){var r=e[s];i.each(n,function(n){this._executeRelationCallback(n,t,r,e,o)},this)},this),o},_executeRelationCallback:function(t,e,n,o,s){var r=this.getRowState(),a=t.targetNames;i.each(e,function(e){var l;r.disabled&&"disabled"===e||(l=t[e],"function"==typeof l&&i.each(a,function(t){s[t]=s[t]||{},s[t][e]=l(n,o)},this))},this)}},{privateProperties:c});t.exports=m},function(t,e,n){"use strict";var i=n(6),o=n(7),s=o.defineClass({init:function(t){this.data=t||{}},getRowSpanData:function(t,e,n){var i=null;return n&&(i=this.data.rowSpanData,t&&i&&(i=i[t])),!i&&t&&(i={count:0,isMainRow:!0,mainRowKey:e}),i},getRowState:function(){var t={disabledCheck:!1,disabled:!1,checked:!1};switch(this.data.rowState){case"DISABLED":t.disabled=!0;case"DISABLED_CHECK":t.disabledCheck=!0;break;case"CHECKED":t.checked=!0}return t},setRowState:function(t){this.data.rowState=t},setRowSpanData:function(t,e){var n=i.assign({},this.data.rowSpanData);t&&(e?n[t]=e:n[t]&&delete n[t],this.data.rowSpanData=n)},addCellClassName:function(t,e){var n,o;n=this.data.className||{},n.column=n.column||{},o=n.column[t]||[],i.contains(o,e)||(o.push(e),n.column[t]=o,this.data.className=n)},addClassName:function(t){var e,n;e=this.data.className||{},n=e.row||[],o.inArray(t,n)===-1&&(n.push(t),e.row=n,this.data.className=e)},getClassNameList:function(t){var e=this.data.className,n=Array.prototype.push,i=[];return e&&(e.row&&n.apply(i,e.row),t&&e.column&&e.column[t]&&n.apply(i,e.column[t])),i},_removeClassNameFromArray:function(t,e){var n=t.join(" ").split(" ");return i.without(n,e)},removeCellClassName:function(t,e){var n=this.data.className;o.pick(n,"column",t)&&(n.column[t]=this._removeClassNameFromArray(n.column[t],e),this.data.className=n)},removeClassName:function(t){var e=this.data.className;e&&e.row&&(e.row=this._removeClassNameFromArray(e.row,t),this.className=e)},setHeight:function(t){this.data.height=t},getHeight:function(){return this.data.height}});t.exports=s},function(t,e,n){"use strict";var i=n(6),o=n(7),s=n(20),r=n(14).attrName,a={ROW_HEAD:"rowHead",COLUMN_HEAD:"columnHead",DUMMY:"dummy",CELL:"cell",ETC:"etc"},l=o.defineClass({init:function(t,e){this._stopped=!1,t&&(this.nativeEvent=t),e&&this.setData(e)},setData:function(t){i.extend(this,t)},stop:function(){this._stopped=!0},isStopped:function(){return this._stopped}});l.getTargetInfo=function(t){var e,n,i=t.closest("td"),o=a.ETC;return 1===i.length?(e=i.attr(r.ROW_KEY),n=i.attr(r.COLUMN_NAME),o=e&&n?s.isMetaColumn(n)?a.ROW_HEAD:a.CELL:a.DUMMY):(i=t.closest("th"),1===i.length&&(n=i.attr(r.COLUMN_NAME),o=a.COLUMN_HEAD)),s.pruneObject({targetType:o,rowKey:s.strToNumber(e),columnName:n})},l.targetTypeConst=a,t.exports=l},function(t,e,n){"use strict";function i(t,e){var n,i,o,s="",r=0;for(e=!!e,i=t.split(/(%(?:d0|d1)%.{2})/),n=i.length;r]*\ssrc=["']?([^>"']+)["']?[^>]*>/i),t=e?e[1]:""):t=t.replace(//gi,""),t=s.trim(a.decodeHTMLEntity(t.replace(/<\/?(?:h[1-5]|[a-z]+(?::[a-z]+)?)[^>]*>/gi,"")))),t},toString:function(t){return r.isUndefined(t)||r.isNull(t)?"":String(t)},getUniqueKey:function(){return this.uniqueId+=1,this.uniqueId},toQueryString:function(t){var e=[];return r.each(t,function(t,n){r.isString(t)||r.isNumber(t)||(t=JSON.stringify(t)),t=encodeURIComponent(unescape(t)),t&&e.push(n+"="+t)}),e.join("&")},toQueryObject:function(t){var e=t.split("&"),n={};return r.each(e,function(t){var e,o,s=t.split("=");e=s[0],o=i(s[1]);try{o=JSON.parse(o)}catch(t){}r.isNull(o)||(n[e]=o)}),n},convertValueType:function(t,e){return"string"===e?String(t):"number"===e?Number(t):"boolean"===e?Boolean(t):t},toUpperCaseFirstLetter:function(t){return t.charAt(0).toUpperCase()+t.slice(1)},clamp:function(t,e,n){var i;return e>n&&(i=e,e=n,n=i),Math.max(e,Math.min(t,n))},isOptionEnabled:function(t){return r.isObject(t)||t===!0},appendStyleElement:function(t,e){var n=document.createElement("style");n.type="text/css",n.id=t,n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e)),document.getElementsByTagName("head")[0].appendChild(n)},warning:function(t){console&&console.warn&&console.warn(t)},replaceText:function(t,e){return t.replace(/\{\{(\w*)\}\}/g,function(t,n){return e.hasOwnProperty(n)?e[n]:""})}},t.exports=o},function(t,e,n){"use strict";function i(t,e,n,i){var o,s,r=n[0],a=n[1],l=i[0],u=i[1];for(s=l;s0},getAvailableTotalWidth:function(t){var e=this.get("width"),n=t+1+(this.isDivisionBorderDoubled()?1:0),i=n*a,o=e-this.getScrollYWidth()-i;return o},getBodySize:function(){var t=this.get("lsideWidth"),e=this.get("rsideWidth")-this.getScrollYWidth(),n=this.get("bodyHeight")-this.getScrollXHeight();return{height:n,rsideWidth:e,totalWidth:t+e}},getOverflowFromMousePosition:function(t,e){var n=this.getPositionFromBodyArea(t,e),i=this.getBodySize();return this._judgeOverflow(n,i)},_judgeOverflow:function(t,e){var n=t.x,i=t.y,o=0,s=0;return i<0?o=-1:i>e.height&&(o=1),n<0?s=-1:n>e.totalWidth&&(s=1),{x:s,y:o}},getScrollXHeight:function(){return this.get("scrollX")?this.get("scrollBarSize"):0},getScrollYWidth:function(){return this.get("scrollY")?this.get("scrollBarSize"):0},_calcRealBodyHeight:function(t){var e=this.get("headerHeight")+this.get("footerHeight")+r;return t-e},_getMinBodyHeight:function(){return this.get("minBodyHeight")+2*a+this.getScrollXHeight()},_getMinLeftSideWidth:function(){var t,e=this.get("minimumColumnWidth"),n=this.columnModel.getVisibleFrozenCount(!0),i=0;return n&&(t=(n+1)*a,i=t+e*n),i},getMaxLeftSideWidth:function(){var t=Math.ceil(.9*this.get("width"));return t&&(t=Math.max(t,this._getMinLeftSideWidth())),t},setWidth:function(t){t>0&&(this.set("width",t),this.trigger("setWidth",t))},setHeight:function(t){t>0&&this.set("bodyHeight",Math.max(this._calcRealBodyHeight(t),this._getMinBodyHeight()))},getHeight:function(){return this.get("bodyHeight")+this.get("headerHeight")},refreshLayout:function(){var t=this.domState,e=t.getOffset();this.set({offsetTop:e.top,offsetLeft:e.left,width:t.getWidth()}),this.get("fitToParentHeight")&&this.setHeight(t.getParentHeight())},getBodyOffsetTop:function(){return this.get("offsetTop")+this.get("headerHeight")+a+r},getPositionFromBodyArea:function(t,e){var n=this.get("offsetLeft"),i=this.getBodyOffsetTop();return{x:t-n,y:e-i}}});t.exports=l},function(t,e,n){"use strict";var i=n(6),o=n(20),s=n(13),r=n(14).dimension.CELL_BORDER_WIDTH,a=s.extend({initialize:function(t,e){this.dataModel=e.dataModel,this.dimensionModel=e.dimensionModel,this.domState=e.domState,this.rowHeights=[],this.rowOffsets=[],this.dimensionModel.get("fixedRowHeight")&&this.listenTo(this.dataModel,"add remove reset sort",this.syncWithDataModel)},syncWithDom:function(){var t,e,n,i,o;if(!this.dimensionModel.get("fixedRowHeight")){for(t=this.domState.getRowHeights(),e=this._getHeightFromData(),n=[],i=0,o=e.length;i0)for(;i>=0&&r>0;)n=Math.max(o,t[i]-r),r-=t[i]-n,t[i]=n,i-=1;else r<0&&(t[i]+=Math.abs(r));return t},_calculateColumnWidth:function(t){return t=this._fillEmptyWidth(t),t=this._applyMinimumWidth(t),t=this._adjustWidths(t)},_fillEmptyWidth:function(t){var e=this.dimensionModel.getAvailableTotalWidth(t.length),n=e-r.sum(t),o=[];return i.each(t,function(t,e){t||o.push(e)}),this._distributeExtraWidthEqually(t,n,o)},_getFrameWidth:function(t){var e=0;return t.length&&(e=r.sum(t)+(t.length+1)*d),e},_addExtraColumnWidth:function(t,e){var n=this._fixedWidthFlags,o=[];return i.each(n,function(t,e){t||o.push(e)}),this._distributeExtraWidthEqually(t,e,o)},_reduceExcessColumnWidth:function(t,e){var n=this._minWidths,o=this._fixedWidthFlags,s=[];return i.each(t,function(t,e){o[e]||s.push({index:e,width:t-n[e]})}),this._reduceExcessColumnWidthSub(i.clone(t),e,s)},_reduceExcessColumnWidthSub:function(t,e,n){var o,s=Math.round(e/n.length),r=[];return i.each(n,function(n){n.widthr.length?this._reduceExcessColumnWidthSub(t,e,r):(o=i.pluck(n,"index"),this._distributeExtraWidthEqually(t,e,o))},_distributeExtraWidthEqually:function(t,e,n){var o=n.length,s=Math.round(e/o),r=s*o-e,a=i.clone(t);return i.each(n,function(t){a[t]+=s}),n.length&&(a[i.last(n)]-=r),a},_applyMinimumWidth:function(t){var e=this._minWidths,n=i.clone(t);return i.each(n,function(t,i){var o=e[i];t0&&o>l?this._addExtraColumnWidth(t,a):e&&a<0?this._reduceExcessColumnWidth(t,a):t},_onDimensionWidthChange:function(){var t=this.get("widths");this._isModified||(t=this._adjustWidths(t,!0)),this._setColumnWidthVariables(t)},getWidths:function(t){var e=this.columnModel.getVisibleFrozenCount(!0),n=[];switch(t){case u.L:n=this.get("widths").slice(0,e);break;case u.R:n=this.get("widths").slice(e);break;default:n=this.get("widths")}return n},getFrameWidth:function(t){var e=this.columnModel.getVisibleFrozenCount(!0),n=this.getWidths(t),o=this._getFrameWidth(n);return i.isUndefined(t)&&e>0&&(o+=d),o},setColumnWidth:function(t,e){var n=this.get("widths"),i=this._minWidths[t];n[t]&&(n[t]=Math.max(e,i),this._setColumnWidthVariables(n),this._isModified=!0)},indexOf:function(t,e){var n=this.getWidths(),i=this.getFrameWidth(),s=e?0:this.columnModel.getVisibleMetaColumnCount(),r=0;return t>=i?r=n.length-1:o.forEachArray(n,function(e,n){return e+=d,r=n,t>e&&void(t-=e)}),Math.max(0,r-s)},restoreColumnWidth:function(t){var e=this.get("originalWidths")[t];this.setColumnWidth(t,e)}});t.exports=h},function(t,e,n){"use strict";var i=n(7),o=n(13),s=n(14).dimension,r=s.TABLE_BORDER_WIDTH,a=s.CELL_BORDER_WIDTH,l=o.extend({initialize:function(t,e){this.dataModel=e.dataModel,this.columnModel=e.columnModel,this.focusModel=e.focusModel,this.dimensionModel=e.dimensionModel,this.renderModel=e.renderModel,this.coordRowModel=e.coordRowModel,this.coordColumnModel=e.coordColumnModel,this.listenTo(this.focusModel,"focus",this._onFocus)},getIndexFromMousePosition:function(t,e,n){var i=this.dimensionModel.getPositionFromBodyArea(t,e),o=this._getScrolledPosition(i);return{row:this.coordRowModel.indexOf(o.y),column:this.coordColumnModel.indexOf(o.x,n)}},_getScrolledPosition:function(t){var e=this.renderModel,n=t.x>this.dimensionModel.get("lsideWidth"),i=n?e.get("scrollLeft"):0,o=e.get("scrollTop");return{x:t.x+i,y:t.y+o}},_getRowSpanCount:function(t,e){var n=this.dataModel.get(t).getRowSpanData(e);return n.isMainRow||(t=n.mainRowKey,n=this.dataModel.get(t).getRowSpanData(e)),n.count||1},_getCellVerticalPosition:function(t,e){var n,i,o,s,r=this.coordRowModel;return n=this.dataModel.indexOfRowKey(t),i=n+e-1,o=r.getOffsetAt(n),s=r.getOffsetAt(i)+r.getHeightAt(i)+a,{top:o,bottom:s}},_getCellHorizontalPosition:function(t){for(var e=this.columnModel,n=e.getVisibleMetaColumnCount(),i=this.coordColumnModel.get("widths"),o=e.getVisibleFrozenCount()+n,s=e.indexOfColumnName(t,!0)+n,r=o>s?0:o,l=0;rl+n.height,e?(s=t.leftu+n.rsideWidth-1):s=r=!1,{isUp:i,isDown:o,isLeft:s,isRight:r}},_onFocus:function(t,e,n){var o;n&&(o=this.getScrollPosition(t,e),i.isEmpty(o)||this.renderModel.set(o))},_makeScrollPosition:function(t,e,n){var i={};return t.isUp?i.scrollTop=e.top:t.isDown&&(i.scrollTop=e.bottom-n.height),t.isLeft?i.scrollLeft=e.left:t.isRight&&(i.scrollLeft=e.right-n.rsideWidth+r),i},getScrollPosition:function(t,e){var n=!this.columnModel.isLside(e),i=this.getCellPosition(t,e),o=this.dimensionModel.getBodySize(),s=this._judgeScrollDirection(i,n,o);return this._makeScrollPosition(s,i,o)}});t.exports=l},function(t,e,n){"use strict";var i=n(6),o=n(13),s=n(20),r=n(19),a=o.extend({initialize:function(t,e){var n,s=e.editingEvent+":cell";o.prototype.initialize.apply(this,arguments),i.assign(this,{dataModel:e.dataModel,columnModel:e.columnModel,coordRowModel:e.coordRowModel,domEventBus:e.domEventBus,domState:e.domState}),this.listenTo(this.dataModel,"reset",this._onResetData),this.listenTo(this.dataModel,"add",this._onAddDataModel),this.domEventBus&&(n=this.domEventBus,this.listenTo(n,s,this._onMouseClickEdit),this.listenTo(n,"mousedown:focus",this._onMouseDownFocus),this.listenTo(n,"key:move",this._onKeyMove),this.listenTo(n,"key:edit",this._onKeyEdit))},defaults:{rowKey:null,columnName:null,prevRowKey:null,prevColumnName:"",editingAddress:null},_onResetData:function(){this.blur()},_onAddDataModel:function(t,e){e.focus&&this.focusAt(e.at,0)},_onMouseClickEdit:function(t){this.focusIn(t.rowKey,t.columnName)},_onKeyMove:function(t){var e,n;switch(t.command){case"up":e=this.prevRowKey();break;case"down":e=this.nextRowKey();break;case"left":n=this.prevColumnName();break; -case"right":n=this.nextColumnName();break;case"pageUp":e=this._getPageMovedRowKey(!1);break;case"pageDown":e=this._getPageMovedRowKey(!0);break;case"firstColumn":n=this.firstColumnName();break;case"lastColumn":n=this.lastColumnName();break;case"firstCell":e=this.firstRowKey(),n=this.firstColumnName();break;case"lastCell":e=this.lastRowKey(),n=this.lastColumnName()}e=i.isUndefined(e)?this.get("rowKey"):e,n=n||this.get("columnName"),this.focus(e,n,!0)},_onKeyEdit:function(t){var e;switch(t.command){case"currentCell":e=this.which();break;case"nextCell":e=this.nextAddress();break;case"prevCell":e=this.prevAddress()}e&&this.focusIn(e.rowKey,e.columnName,!0)},_getPageMovedRowKey:function(t){var e,n=this.dataModel.indexOfRowKey(this.get("rowKey")),i=this.coordRowModel.getPageMovedIndex(n,t);return e=t?this.nextRowKey(i-n):this.prevRowKey(n-i)},_onMouseDownFocus:function(){this.focusClipboard()},_savePrevious:function(){null!==this.get("rowKey")&&this.set("prevRowKey",this.get("rowKey")),this.get("columnName")&&this.set("prevColumnName",this.get("columnName"))},isCurrentCell:function(t,e,n){var i=this.get("columnName"),o=this.get("rowKey");return n&&(o=this.dataModel.getMainRowKey(o,i)),String(o)===String(t)&&i===e},focus:function(t,e,n){return!(this._isValidCell(t,e)&&!s.isMetaColumn(e)&&!this.isCurrentCell(t,e))||!!this._triggerFocusChangeEvent(t,e)&&(this.blur(),this.set({rowKey:t,columnName:e}),this.trigger("focus",t,e,n),"radio"===this.columnModel.get("selectType")&&this.dataModel.check(t),!0)},_triggerFocusChangeEvent:function(t,e){var n=new r(null,{rowKey:t,prevRowKey:this.get("rowKey"),columnName:e,prevColumnName:this.get("columnName")});return this.trigger("focusChange",n),!n.isStopped()},focusAt:function(t,e,n){var i=this.dataModel.at(t),o=this.columnModel.at(e,!0),s=!1;return i&&o&&(s=this.focus(i.get("rowKey"),o.name,n)),s},focusIn:function(t,e,n){var i=this.focus(t,e,n);return i&&(t=this.dataModel.getMainRowKey(t,e),this.dataModel.get(t).isEditable(e)?(this.finishEditing(),this.startEditing(t,e)):this.focusClipboard()),i},focusInAt:function(t,e,n){var i=this.dataModel.at(t),o=this.columnModel.at(e,!0),s=!1;return i&&o&&(s=this.focusIn(i.get("rowKey"),o.name,n)),s},focusClipboard:function(){this.trigger("focusClipboard")},refreshState:function(){var t;this.domState.hasFocusedElement()?this.has()||(t=this.restore(),t||this.focusAt(0,0)):this.blur()},blur:function(){return this.has()?(this.has(!0)&&this._savePrevious(),this.trigger("blur",this.get("rowKey"),this.get("columnName")),this.set({rowKey:null,columnName:null}),this):this},which:function(){return{rowKey:this.get("rowKey"),columnName:this.get("columnName")}},indexOf:function(t){var e=t?this.get("prevRowKey"):this.get("rowKey"),n=t?this.get("prevColumnName"):this.get("columnName");return{row:this.dataModel.indexOfRowKey(e),column:this.columnModel.indexOfColumnName(n,!0)}},has:function(t){var e=this.get("rowKey"),n=this.get("columnName");return t?this._isValidCell(e,n):!s.isBlank(e)&&!s.isBlank(n)},restore:function(){var t=this.get("prevRowKey"),e=this.get("prevColumnName"),n=!1;return this._isValidCell(t,e)&&(this.focus(t,e),this.set({prevRowKey:null,prevColumnName:null}),n=!0),n},isEditingCell:function(t,e){var n=this.get("editingAddress");return n&&String(n.rowKey)===String(t)&&n.columnName===e},startEditing:function(t,e){if(this.get("editingAddress"))return!1;if(i.isUndefined(t)&&i.isUndefined(e))t=this.get("rowKey"),e=this.get("columnName");else if(!this.isCurrentCell(t,e,!0))return!1;return t=this.dataModel.getMainRowKey(t,e),!!this.dataModel.get(t).isEditable(e)&&(this.set("editingAddress",{rowKey:t,columnName:e}),!0)},finishEditing:function(){return!!this.get("editingAddress")&&(this.set("editingAddress",null),!0)},_isValidCell:function(t,e){var n=!s.isBlank(t)&&!!this.dataModel.get(t),i=!s.isBlank(e)&&!!this.columnModel.getColumnModel(e);return n&&i},_findRowKey:function(t){var e,n,i=this.dataModel,o=null;return this.has(!0)&&(e=Math.max(Math.min(i.indexOfRowKey(this.get("rowKey"))+t,this.dataModel.length-1),0),n=i.at(e),n&&(o=n.get("rowKey"))),o},_findColumnName:function(t){var e,n=this.columnModel,i=n.getVisibleColumns(),o=n.indexOfColumnName(this.get("columnName"),!0),s=null;return this.has(!0)&&(e=Math.max(Math.min(o+t,i.length-1),0),s=i[e]&&i[e].name),s},_getRowSpanData:function(t,e){return this.dataModel.get(t).getRowSpanData(e)},nextRowIndex:function(t){var e=this.nextRowKey(t);return this.dataModel.indexOfRowKey(e)},prevRowIndex:function(t){var e=this.prevRowKey(t);return this.dataModel.indexOfRowKey(e)},nextColumnIndex:function(){var t=this.nextColumnName();return this.columnModel.indexOfColumnName(t,!0)},prevColumnIndex:function(){var t=this.prevColumnName();return this.columnModel.indexOfColumnName(t,!0)},nextRowKey:function(t){var e,n,i=this.which(),o=i.rowKey;return t="number"==typeof t?t:1,t>1?(o=this._findRowKey(t),n=this._getRowSpanData(o,i.columnName),n.isMainRow||(o=this._findRowKey(n.count+t))):(n=this._getRowSpanData(o,i.columnName),n.isMainRow&&n.count>0?o=this._findRowKey(n.count):n.isMainRow?o=this._findRowKey(1):(e=n.count,n=this._getRowSpanData(n.mainRowKey,i.columnName),o=this._findRowKey(n.count+e))),o},prevRowKey:function(t){var e,n=this.which(),i=n.rowKey;return t="number"==typeof t?t:1,t*=-1,t<-1?(i=this._findRowKey(t),e=this._getRowSpanData(i,n.columnName),e.isMainRow||(i=this._findRowKey(e.count+t))):(e=this._getRowSpanData(i,n.columnName),i=e.isMainRow?this._findRowKey(-1):this._findRowKey(e.count-1)),i},nextColumnName:function(){return this._findColumnName(1)},prevColumnName:function(){return this._findColumnName(-1)},firstRowKey:function(){return this.dataModel.at(0).get("rowKey")},lastRowKey:function(){return this.dataModel.at(this.dataModel.length-1).get("rowKey")},firstColumnName:function(){var t=this.columnModel.getVisibleColumns();return t[0].name},lastColumnName:function(){var t=this.columnModel.getVisibleColumns(),e=t.length-1;return t[e].name},prevAddress:function(){var t,e,n=this.get("rowKey"),i=this.get("columnName"),o=i===this.firstColumnName(),s=n===this.firstRowKey();return s&&o?(t=n,e=i):o?(t=this.prevRowKey(),e=this.lastColumnName()):(t=n,e=this.prevColumnName()),{rowKey:t,columnName:e}},nextAddress:function(){var t,e,n=this.get("rowKey"),i=this.get("columnName"),o=i===this.lastColumnName(),s=n===this.lastRowKey();return s&&o?(t=n,e=i):o?(t=this.nextRowKey(),e=this.firstColumnName()):(t=n,e=this.nextColumnName()),{rowKey:t,columnName:e}}});t.exports=a},function(t,e,n){"use strict";var i=n(6),o=n(7),s=n(13),r=n(29),a=n(14).renderState,l=n(14).dimension.CELL_BORDER_WIDTH,u=1e3,d=s.extend({initialize:function(t,e){var n,o,s;i.assign(this,{dataModel:e.dataModel,columnModel:e.columnModel,focusModel:e.focusModel,dimensionModel:e.dimensionModel,coordRowModel:e.coordRowModel,coordColumnModel:e.coordColumnModel}),s={dataModel:this.dataModel,columnModel:this.columnModel,focusModel:this.focusModel},n=new r([],s),o=new r([],s),this.set({lside:n,rside:o,partialLside:new r([],s),partialRside:new r([],s)}),this.listenTo(this.columnModel,"columnModelChange change",this._onColumnModelChange).listenTo(this.dataModel,"sort reset",this._onDataModelChange).listenTo(this.dataModel,"delRange",this._onRangeDataModelChange).listenTo(this.dataModel,"add",this._onAddDataModelChange).listenTo(this.dataModel,"remove",this._onRemoveDataModelChange).listenTo(this.dataModel,"beforeReset",this._onBeforeResetData).listenTo(this.focusModel,"change:editingAddress",this._onEditingAddressChange).listenTo(n,"valueChange",this._executeRelation).listenTo(o,"valueChange",this._executeRelation).listenTo(this.coordRowModel,"reset",this._onChangeRowHeights).listenTo(this.dimensionModel,"columnWidthChanged",this.finishEditing).listenTo(this.dimensionModel,"change:width",this._updateMaxScrollLeft).listenTo(this.dimensionModel,"change:totalRowHeight change:scrollBarSize change:bodyHeight",this._updateMaxScrollTop),this.get("showDummyRows")&&(this.listenTo(this.dimensionModel,"change:bodyHeight change:totalRowHeight",this._resetDummyRowCount),this.on("change:dummyRowCount",this._resetDummyRows)),this.on("change",this._onChangeIndex,this),this._onChangeLayoutBound=i.bind(this._onChangeLayout,this),this._updateMaxScrollLeft()},defaults:{top:0,bottom:0,scrollTop:0,scrollLeft:0,maxScrollLeft:0,maxScrollTop:0,startIndex:-1,endIndex:-1,startNumber:1,lside:null,rside:null,showDummyRows:!1,dummyRowCount:0,emptyMessage:null,state:a.DONE,partialLside:null,partialRside:null},_onChangeLayout:function(){this.focusModel.finishEditing(),this.focusModel.focusClipboard()},_onChangeIndex:function(t){var e=t.changed,n=i.has(e,"startIndex"),o=i.has(e,"endIndex");(n||o)&&this.refresh()},_onChangeRowHeights:function(){for(var t,e=this.coordRowModel,n=this.get("lside"),i=this.get("rside"),o=n.length,s=0;su&&this.set("state",a.LOADING)},_onEditingAddressChange:function(t,e){var n=e,o=!0,s=this;e||(n=t.previous("editingAddress"),o=!1),this._updateCellData(n.rowKey,n.columnName,{editing:o}),this._triggerEditingStateChanged(n.rowKey,n.columnName),i.defer(function(){s._toggleChangeLayoutEventHandlers(o)})},_toggleChangeLayoutEventHandlers:function(t){var e="change:scrollTop change:scrollLeft",n="columnWidthChanged";t?(this.listenToOnce(this.dimensionModel,n,this._onChangeLayoutBound),this.once(e,this._onChangeLayoutBound)):(this.stopListening(this.dimensionModel,n,this._onChangeLayoutBound),this.off(e,this._onChangeLayoutBound))},_triggerEditingStateChanged:function(t,e){var n=this.getCellData(t,e);o.pick(n,"columnModel","editOptions","useViewMode")!==!1&&null===n.convertedHTML&&this.trigger("editingStateChanged",n)},_updateCellData:function(t,e,n){var i=this._getRowModel(t,e);i&&i.setCell(e,n)},initializeVariables:function(){this.set({top:0,scrollTop:0,scrollLeft:0,startNumber:1})},getCollection:function(t){var e=this._getPartialWhichSideType(t);return this.get(e)},_getPartialWhichSideType:function(t){return o.isString(t)?"partial"+t+"side":"partialRside"},_onColumnModelChange:function(){this.set({scrollTop:0},{silent:!0}),this._setRenderingRange(!0),this.refresh({change:!1,columnModelChanged:!0})},_onDataModelChange:function(){i.each(["lside","rside"],function(t){this.get(t).reset()},this),this._setRenderingRange(!0),this.refresh({type:"reset",dataListChanged:!0})},_onAddDataModelChange:function(t,e){var n,o,s,r=this.get("lside").length?this.get("lside"):this.get("rside"),a=this._getColumnNamesOfEachSide(),l=e.at;l>r.length-1||(t=i.isArray(t)?t:t.models,i.each(t,function(t,e){n=this.coordRowModel.getHeightAt(e),i.each(["lside","rside"],function(i){s=l+e+1,o=this._createViewDataFromDataModel(t,a[i],n,s),this.get(i).add([o],{parse:!0,at:l+e})},this)},this),this.refresh({type:"add",dataListChanged:!0}),e.focus&&this.focusModel.focusAt(e.at,0))},_onRemoveDataModelChange:function(t){i.each(["lside","rside"],function(e){var n=this.get(e);n.remove(n.get(t))},this),this._setRenderingRange(!0),this.refresh({dataListChanged:!0})},_onRangeDataModelChange:function(t,e){var n=this.columnModel;this._setRenderingRange(!0),i.each(["partialLside","partialRside"],function(o){i.each(this.get(o).models,function(o){var s=o.get("rowKey"),r=i.contains(t,s);r&&i.each(e,function(t){n.getColumnModel(t).editOptions&&this._updateCellData(s,t,{value:"",formattedValue:""})},this)},this)},this),this.refresh({type:"delRange",dataListChanged:!0})},_resetDummyRows:function(){this._clearDummyRows(),this._fillDummyRows(),this.trigger("rowListChanged")},_setRenderingRange:function(t){var e=this.dataModel.length;this.set({startIndex:e?0:-1,endIndex:e-1},{silent:t})},_createViewDataFromDataModel:function(t,e,n,o){var s={rowNum:o,height:n,rowKey:t.get("rowKey"),_extraData:t.get("_extraData")};return i.each(e,function(e){var n=t.get(e);"_number"!==e||i.isNumber(n)||(n=o),s[e]=n}),s},_getColumnNamesOfEachSide:function(){var t=this.columnModel.getVisibleFrozenCount(!0),e=this.columnModel.getVisibleColumns(null,!0),n=i.pluck(e,"name");return{lside:n.slice(0,t),rside:n.slice(t)}},_addViewModelListWithRange:function(t,e){var n,i,o,s=this._getColumnNamesOfEachSide();if(t>=0&&e>=0)for(o=t;o<=e;o+=1)n=this.dataModel.at(o),i=this.coordRowModel.getHeightAt(o),this._addViewModelList(n,s,i,o)},_addViewModelList:function(t,e,n,o){i.each(["lside","rside"],function(i){var s,r=t.get("rowKey");this.get(i).get(r)||(s=this._createViewDataFromDataModel(t,e[i],n,o+1),this.get(i).add([s],{parse:!0,at:o}))},this)},_updateRowNumber:function(t,e){for(var n,i,o,s=this.get("lside"),r=t;r<=e;r+=1)n=s.at(r),o=r+1,n&&(i=n.get("rowNum"),o=r+1,i!==o&&(n.set({rowNum:o},{silent:!0}),n.setCell("_number",{formattedValue:o,value:o})))},_resetPartialViewModelList:function(t,e){var n,o,s,r;i.each(["L","R"],function(i){n=i.toLowerCase()+"side",o=this._getPartialWhichSideType(i),s=this.get(n),r=s.slice(t,e+1),this.get(o).reset(r)},this)},_getActualRowCount:function(){return this.get("endIndex")-this.get("startIndex")+1},_clearDummyRows:function(){var t=this.get("endIndex")-this.get("startIndex")+1;i.each(["lside","rside"],function(e){for(var n=this.get(e);n.length>t;)n.pop()},this)},_resetDummyRowCount:function(){var t=this.dimensionModel,e=t.get("totalRowHeight"),n=t.get("rowHeight")+l,i=t.get("bodyHeight")-t.getScrollXHeight(),o=0;e=0&&n>=0)for(i=e;i<=n;i+=1)this._executeRelation(i);o?this.trigger("columnModelChanged"):(this.trigger("rowListChanged",s),s&&this.coordRowModel.syncWithDom()),this._refreshState()},_refreshState:function(){this.dataModel.length?this.set("state",a.DONE):this.set("state",a.EMPTY)},_getCollectionByColumnName:function(t){var e,n=this.get("lside");return e=n.at(0)&&n.at(0).get(t)?n:this.get("rside")},_getRowModel:function(t,e){var n=this._getCollectionByColumnName(e);return n.get(t)},getCellData:function(t,e){var n=this._getRowModel(t,e),i=null;return n&&(i=n.get(e)),i},_executeRelation:function(t){var e,n,o=this.dataModel.at(t),s=t-this.get("startIndex");n=o.executeRelationCallbacksAll(),i.each(n,function(t,n){e=this._getCollectionByColumnName(n).at(s),e&&e.setCell(n,t)},this)}});t.exports=d},function(t,e,n){"use strict";var i=n(6),o=n(16),s=n(30),r=o.extend({initialize:function(t,e){i.assign(this,{dataModel:e.dataModel,columnModel:e.columnModel,focusModel:e.focusModel})},model:s});t.exports=r},function(t,e,n){"use strict";var i=n(6),o=n(7),s=n(13),r=n(20),a=s.extend({initialize:function(t){var e=t&&t.rowKey,n=this.collection.dataModel,i=n.get(e);this.dataModel=n,this.columnModel=this.collection.columnModel,this.focusModel=this.collection.focusModel,i&&(this.listenTo(i,"change",this._onDataModelChange),this.listenTo(i,"restore",this._onDataModelRestore),this.listenTo(i,"extraDataChanged",this._setRowExtraData),this.listenTo(n,"disabledChanged",this._onDataModelDisabledChanged),this.rowData=i)},idAttribute:"rowKey",_onDataModelChange:function(t){i.each(t.changed,function(e,n){var i,o;this.has(n)&&(i=this.columnModel.getColumnModel(n),o=this.columnModel.isTextType(n),this.setCell(n,this._getValueAttrs(e,t,i,o)))},this)},_onDataModelRestore:function(t){var e=this.get(t);e&&this.trigger("restore",e)},_getColumnNameList:function(){var t=this.collection.columnModel.getVisibleColumns(null,!0);return i.pluck(t,"name")},_onDataModelDisabledChanged:function(){var t=this._getColumnNameList();i.each(t,function(t){this.setCell(t,{disabled:this.rowData.isDisabled(t),className:this._getClassNameString(t)})},this)},_setRowExtraData:function(){o.isUndefined(this.collection)||i.each(this._getColumnNameList(),function(t){var e,n=this.get(t);!o.isUndefined(n)&&n.isMainRow&&(e=this.rowData.getCellState(t),this.setCell(t,{disabled:e.disabled,editable:e.editable,className:this._getClassNameString(t)}))},this)},parse:function(t,e){var n=e.collection;return this._formatData(t,n.dataModel,n.columnModel,n.focusModel)},_formatData:function(t,e,n,s){var r,a,l=t.rowKey,u=t.height;return i.isUndefined(l)?t:(a=e.get(l),r=i.omit(t,"rowKey","_extraData","height","rowNum"),i.each(r,function(r,d){var h=this._getRowSpanData(d,t,e.isRowSpanEnable()),c=a.getCellState(d),g=n.isTextType(d),f=n.getColumnModel(d);t[d]={rowKey:l,height:u,columnName:d,rowSpan:h.count,isMainRow:h.isMainRow,mainRowKey:h.mainRowKey,editable:c.editable,disabled:c.disabled,editing:s.isEditingCell(l,d),whiteSpace:f.whiteSpace||"nowrap",valign:f.valign,listItems:o.pick(f,"editOptions","listItems"),className:this._getClassNameString(d,a,s),columnModel:f,changed:[]},i.assign(t[d],this._getValueAttrs(r,a,f,g))},this),t)},_getClassNameString:function(t,e,n){var i;return e||(e=this.dataModel.get(this.get("rowKey")))?(n||(n=this.focusModel),i=e.getClassNameList(t),i.join(" ")):""},_getValueAttrs:function(t,e,n,i){var s=o.pick(n,"editOptions","prefix"),r=o.pick(n,"editOptions","postfix"),a=o.pick(n,"editOptions","converter"),l=e.toJSON();return{value:this._getValueToDisplay(t,n,i),formattedValue:this._getFormattedValue(t,l,n),prefix:this._getExtraContent(s,t,l),postfix:this._getExtraContent(r,t,l),convertedHTML:this._getConvertedHTML(a,t,l)}},_getFormattedValue:function(t,e,n){var o;return o=i.isFunction(n.formatter)?n.formatter(t,e,n):t,i.isNumber(o)?o=String(o):o||(o=""),o},_getExtraContent:function(t,e,n){var s="";return i.isFunction(t)?s=t(e,n):o.isExisty(t)&&(s=t),s},_getConvertedHTML:function(t,e,n){var o=null;return i.isFunction(t)&&(o=t(e,n)),o===!1&&(o=null),o},_getValueToDisplay:function(t,e,n){var i=o.isExisty,s=e.useHtmlEntity,r=e.defaultValue;return i(t)||(t=i(r)?r:""),n&&s&&o.hasEncodableString(t)&&(t=o.encodeHTMLEntity(t)),t},_getRowSpanData:function(t,e,n){var i=o.pick(e,"_extraData","rowSpanData",t);return n&&i||(i={mainRowKey:e.rowKey,count:0,isMainRow:!0}),i},updateClassName:function(t){this.setCell(t,{className:this._getClassNameString(t)})},setCell:function(t,e){var n,o,s,a=!1,l=[];this.has(t)&&(o=this.get("rowKey"),s=i.clone(this.get(t)),i.each(e,function(t,e){r.isEqual(s[e],t)||(a="value"===e||a,s[e]=t,l.push(e))},this),l.length&&(s.changed=l,this.set(t,s,{silent:this._shouldSetSilently(s,a)}),a&&(n=this.collection.dataModel.indexOfRowKey(o),this.trigger("valueChange",n))))},_shouldSetSilently:function(t,e){var n=t.editing&&e,s=o.pick(t,"columnModel","editOptions","useViewMode")!==!1,r=i.contains(t.changed,"editing")&&t.editing;return n||s&&r}});t.exports=a},function(t,e,n){"use strict";var i=n(6),o=n(28),s=n(14).dimension,r=s.CELL_BORDER_WIDTH,a=.3,l=.1,u=o.extend({initialize:function(){o.prototype.initialize.apply(this,arguments),this.on("change:scrollTop",this._onChangeScrollTop,this),this.listenTo(this.dimensionModel,"change:bodyHeight",this._onChangeBodyHeight)},_onChangeScrollTop:function(){this._shouldRefresh(this.get("scrollTop"))&&this._setRenderingRange()},_onChangeBodyHeight:function(){this._setRenderingRange()},_setRenderingRange:function(t){var e,n,i=this.get("scrollTop"),o=this.dimensionModel,s=this.dataModel,l=this.coordRowModel,u=o.get("bodyHeight"),d=parseInt(u*a,10),h=Math.max(l.indexOf(i-d),0),c=Math.min(l.indexOf(i+u+d),s.length-1);s.isRowSpanEnable()&&(h+=this._getStartRowSpanMinCount(h),c+=this._getEndRowSpanMaxCount(c)),e=l.getOffsetAt(h),n=l.getOffsetAt(c)+l.getHeightAt(c)+r,this.set({top:e,bottom:n,startIndex:h,endIndex:c},{silent:t})},_getStartRowSpanMinCount:function(t){var e,n=this.dataModel.at(t),o=0;return n&&(e=i.pluck(n.getRowSpanData(),"count"),e.push(0),o=i.min(e)),o},_getEndRowSpanMaxCount:function(t){var e,n=this.dataModel.at(t),o=0;return n&&(e=i.pluck(n.getRowSpanData(),"count"),e.push(0),o=i.max(e)),o>0&&(o-=1),o},_shouldRefresh:function(t){var e=this.dimensionModel.get("bodyHeight"),n=t+e,i=this.dimensionModel.get("totalRowHeight"),o=this.get("top"),s=this.get("bottom"),r=parseInt(e*l,10),a=t-o0||u&&sn.row&&(s.row=t[1]),e[1]>n.column&&(s.column=e[1])),s},_isValidAddress:function(t){return!!this.dataModel.at(t.row)&&!!this.columnModel.at(t.colummn)},_scrollTo:function(t,e){var n,i,o,s,r=this.dataModel.at(t),a=this.columnModel.at(e);r&&a&&(n=r.get("rowKey"),i=a.name,s=this.coordConverterModel.getScrollPosition(n,i),s&&(o=this.getType(),o===l.COLUMN?delete s.scrollTop:o===l.ROW&&delete s.scrollLeft,this.renderModel.set(s)))},_getTypeByColumnIndex:function(t){var e=this.columnModel.getVisibleColumns(null,!0),n=e[t].name;switch(n){case"_button":return null;case"_number":return l.ROW;default:return l.CELL}},_onMouseDownBody:function(t){var e,n,i=this.coordConverterModel.getIndexFromMousePosition(t.pageX,t.pageY,!0),o=this._getTypeByColumnIndex(i.column);o&&(e=i.row,n=i.column-this.columnModel.getVisibleMetaColumnCount(),t.shiftKey?this.update(e,Math.max(n,0)):o===l.ROW?this.selectRow(e):(this.focusModel.focusAt(e,n),this.end()))},_onDragMoveBody:function(t){var e=this.coordConverterModel.getIndexFromMousePosition(t.pageX,t.pageY);this.update(e.row,e.column,this.getSelectionUnit()),this._setScrolling(t.pageX,t.pageY)},_onDragEndBody:function(){this.stopAutoScroll()},_onPasteData:function(t){this.start(t.startIdx.row,t.startIdx.column),this.update(t.endIdx.row,t.endIdx.column)},_getColumnRangeWithNames:function(t){var e=this.columnModel,n=o.map(t,function(t){return e.indexOfColumnName(t,!0)}),i=a.getMinMax(n);return[i.min,i.max]},setType:function(t){this.selectionType=l[t]||this.selectionType},getType:function(){return this.selectionType},getSelectionUnit:function(){return this.get("selectionUnit").toUpperCase()},enable:function(){this.enabled=!0},disable:function(){this.end(),this.enabled=!1},isEnabled:function(){return this.enabled},start:function(t,e,n){this.isEnabled()&&(this.setType(n),this.inputRange={row:[t,t],column:[e,e]},this._resetRangeAttribute())},update:function(t,e,n){var i;!this.enabled||n!==l.COLUMN&&t<0||n!==l.ROW&&e<0||(this.hasSelection()?this.setType(n):(i=this.focusModel.indexOf(),n===l.ROW?this.start(i.row,0,l.ROW):this.start(i.row,i.column,l.CELL)),this._updateInputRange(t,e),this._resetRangeAttribute())},_updateInputRange:function(t,e){var n=this.inputRange;this.selectionType===l.ROW?e=this.columnModel.getVisibleColumns().length-1:this.selectionType===l.COLUMN&&(t=this.dataModel.length-1),n.row[1]=t,n.column[1]=e},_extendColumnSelection:function(t,e,n){var i,o=this.minimumColumnRange,s=this.coordConverterModel.getIndexFromMousePosition(e,n),r={row:[0,this.dataModel.length-1],column:[]};t&&t.length||(t=[s.column]),this._setScrolling(e,n),o?i=a.getMinMax(t.concat(o)):(t.push(this.inputRange.column[0]),i=a.getMinMax(t)),r.column.push(i.min,i.max),this._resetRangeAttribute(r)},_setScrolling:function(t,e){var n=this.dimensionModel.getOverflowFromMousePosition(t,e);this.stopAutoScroll(),this._isAutoScrollable(n.x,n.y)&&(this.intervalIdForAutoScroll=setInterval(o.bind(this._adjustScroll,this,n.x,n.y)))},end:function(){this.inputRange=null,this.unset("range"),this.minimumColumnRange=null},stopAutoScroll:function(){o.isNull(this.intervalIdForAutoScroll)||(clearInterval(this.intervalIdForAutoScroll),this.intervalIdForAutoScroll=null)},selectRow:function(t){this.isEnabled()&&(this.focusModel.focusAt(t,0),this.start(t,0,l.ROW),this.update(t,this.columnModel.getVisibleColumns().length-1))},selectColumn:function(t){this.isEnabled()&&(this.focusModel.focusAt(0,t),this.start(0,t,l.COLUMN),this.update(this.dataModel.length-1,t))},selectAll:function(){this.isEnabled()&&(this.start(0,0,l.CELL),this.update(this.dataModel.length-1,this.columnModel.getVisibleColumns().length-1))},getStartIndex:function(){var t=this.get("range");return{row:t.row[0],column:t.column[0]}},getEndIndex:function(){var t=this.get("range");return{row:t.row[1],column:t.column[1]}},hasSelection:function(){return!!this.get("range")},_isSingleCell:function(t,e){var n=1===t.length,i=1===e.length,o=n&&!i&&e[0].getRowSpanData(t[0]).count===e.length;return n&&i||o},getValuesToString:function(){var t=this.renderModel,e=this.columnModel,n=this._getRangeRowList(),i=this._getRangeColumnNames(),s=o.map(n,function(n){return o.map(i,function(i){return e.getCopyOptions(i).useFormattedValue?t.getCellData(n.get("rowKey"),i).formattedValue:n.getValueString(i)}).join("\t")});return this._isSingleCell(i,n)?s[0]:s.join("\n")},_getRangeRowList:function(){var t=this.get("range").row;return this.dataModel.slice(t[0],t[1]+1)},_getRangeColumnNames:function(){var t=this.get("range").column,e=this.columnModel.getVisibleColumns().slice(t[0],t[1]+1);return o.pluck(e,"name")},_isAutoScrollable:function(t,e){return!(0===t&&0===e)},_adjustScroll:function(t,e){var n=this.renderModel;t&&this._adjustScrollLeft(t,n.get("scrollLeft"),n.get("maxScrollLeft")),e&&this._adjustScrollTop(e,n.get("scrollTop"),n.get("maxScrollTop"))},_adjustScrollLeft:function(t,e,n){var i=e,o=this.scrollPixelScale;t<0?i=Math.max(0,e-o):t>0&&(i=Math.min(n,e+o)),this.renderModel.set("scrollLeft",i)},_adjustScrollTop:function(t,e,n){var i=e,o=this.scrollPixelScale;t<0?i=Math.max(0,e-o):t>0&&(i=Math.min(n,e+o)),this.renderModel.set("scrollTop",i)},_resetRangeAttribute:function(t){var e,n,i,s=this.dataModel;if(t=t||this.inputRange,!t)return void this.set("range",null);if(n={row:o.sortBy(t.row),column:o.sortBy(t.column)},s.isRowSpanEnable()&&this.selectionType===l.CELL){do i=o.assign([],n.row),n=this._getRowSpannedIndex(n),e=n.row[0]!==i[0]||n.row[1]!==i[1];while(e);this._setRangeMinMax(n.row,n.column)}this.set("range",n)},_triggerSelectionEvent:function(){var t,e,n,i,o,s,a,l=this.get("range"),u=this.dataModel,d=this.columnModel;l&&(t=l.row,e=l.column,i=u.getRowDataAt(t[0]),s=d.at(e[0]),o=u.getRowDataAt(t[1]),a=d.at(e[1]),i&&o&&s&&a&&(n=new r(null,{range:{start:[i,s],end:[o,a]}}),this.trigger("selection",n)))},_setRangeMinMax:function(t,e){t&&(t[0]=Math.max(0,t[0]),t[1]=Math.min(this.dataModel.length-1,t[1])),e&&(e[0]=Math.max(0,e[0]),e[1]=Math.min(this.columnModel.getVisibleColumns().length-1,e[1]))},_concatRowSpanIndexFromStart:function(t){var e,n=t.startIndex,i=t.endIndex,o=t.columnName,s=t.startRowSpanDataMap&&t.startRowSpanDataMap[o],r=t.startIndexList,a=t.endIndexList;s&&(s.isMainRow?(e=n+s.count-1,e>i&&a.push(e)):(e=n+s.count,r.push(e)))},_concatRowSpanIndexFromEnd:function(t){var e,n,i=t.endIndex,o=t.columnName,s=t.endRowSpanDataMap&&t.endRowSpanDataMap[o],r=t.endIndexList,a=t.dataModel;s&&(s.isMainRow?(e=i+s.count-1,r.push(e)):(e=i+s.count,n=a.at(e).getRowSpanData(o),e+=n.count-1,e>i&&r.push(e)))},_getRowSpannedIndex:function(t){var e,n,s,r=this.columnModel.getVisibleColumns().slice(t.column[0],t.column[1]+1),a=this.dataModel,l=[t.row[0]],u=[t.row[1]],d=a.at(t.row[0]),h=a.at(t.row[1]),c=i.extend({},t);return d&&h?(e=a.at(t.row[0]).getRowSpanData(),n=a.at(t.row[1]).getRowSpanData(),o.each(r,function(i){s={columnName:i.name,startIndex:t.row[0],endIndex:t.row[1],endRowSpanDataMap:n,startRowSpanDataMap:e,startIndexList:l,endIndexList:u,dataModel:a},this._concatRowSpanIndexFromStart(s),this._concatRowSpanIndexFromEnd(s)},this),c.row=[Math.min.apply(null,l),Math.max.apply(null,u)],c):c}});t.exports=u},function(t,e,n){"use strict";var i=n(6),o=n(7),s=n(13),r=n(14).summaryType,a=s.extend({initialize:function(t,e){this.dataModel=e.dataModel,this.autoColumnNames=e.autoColumnNames,this.columnSummaryMap={},this.listenTo(this.dataModel,"add remove reset",this._resetSummaryMap),this.listenTo(this.dataModel,"change",this._onChangeData),this.listenTo(this.dataModel,"delRange",this._onDeleteRangeData),this._resetSummaryMap()},_calculate:function(t){var e,n,i=Number.MAX_VALUE,o=Number.MIN_VALUE,s=0,a=t.length,l={};for(e=0;en&&(i=n),o").addClass(a.BORDER_LINE).addClass(t)}var o,s=n(10),r=n(8),a=n(22),l=n(14).frame;o=r.extend({initialize:function(t){r.prototype.initialize.call(this),this.viewFactory=t.viewFactory,this.dimensionModel=t.dimensionModel,this._addFrameViews()},className:a.CONTENT_AREA,_addFrameViews:function(){var t=this.viewFactory;this._addChildren([t.createFrame(l.L),t.createFrame(l.R)])},render:function(){var t=this.dimensionModel,e=t.getScrollXHeight(),n=this._renderChildren().concat([i(a.BORDER_TOP),i(a.BORDER_LEFT),i(a.BORDER_RIGHT),i(a.BORDER_BOTTOM).css("bottom",e)]);return t.get("scrollX")||this.$el.addClass(a.NO_SCROLL_X),t.get("scrollY")||this.$el.addClass(a.NO_SCROLL_Y),this.$el.append(n),this}}),t.exports=o},function(t,e,n){"use strict";var i=n(6),o=n(40),s=n(8),r={totalItems:1,itemsPerPage:10,visiblePages:5,centerAlign:!0},a="tui-pagination",l=s.extend({initialize:function(t){this.dimensionModel=t.dimensionModel,this.componentHolder=t.componentHolder,this._stopEventPropagation(),this.on("appended",this._onAppended)},className:a,render:function(){return this._destroyChildren(),this.componentHolder.setInstance("pagination",this._createComponent()),this},_stopEventPropagation:function(){this.$el.mousedown(function(t){t.stopPropagation()})},_onAppended:function(){this.dimensionModel.set("paginationHeight",this.$el.outerHeight())},_createOptionObject:function(){var t=this.componentHolder.getOptions("pagination");return t===!0&&(t={}),i.assign({},r,t)},_createComponent:function(){var t=o;if(!t)throw new Error("Cannot find component 'tui.component.Pagination'");return new t(this.$el,this._createOptionObject())}});t.exports=l},function(t,e){t.exports=i},function(t,e,n){"use strict";var i=n(8),o=n(22),s=n(42),r=i.extend({initialize:function(t){this.dimensionModel=t.dimensionModel,this.domEventBus=t.domEventBus,this.dragEmitter=new s({type:"resizeHeight",cursor:"row-resize",domEventBus:this.domEventBus}),this.on("appended",this._onAppended)},className:o.HEIGHT_RESIZE_HANDLE,events:{mousedown:"_onMouseDown"},_onAppended:function(){this.dimensionModel.set("resizeHandleHeight",this.$el.outerHeight())},_onMouseDown:function(t){t.preventDefault(),this.dragEmitter.start(t,{mouseOffsetY:t.offsetY})},render:function(){return this.$el.html(""),this}});t.exports=r},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(7),r=n(19),a=s.defineClass({init:function(t){o.assign(this,{type:t.type,domEventBus:t.domEventBus,onDragMove:t.onDragMove,onDragEnd:t.onDragEnd,cursor:t.cursor,startData:null})},start:function(t,e){var n=new r(t,e);this.domEventBus.trigger("dragstart:"+this.type,n),n.isStopped()||this._startDrag(t.target,e)},_startDrag:function(t,e){this.startData=e,this._attachDragEvents(),this.cursor&&i("body").css("cursor",this.cursor),t.setCapture&&t.setCapture()},_endDrag:function(){this.startData=null,this._detachDragEvents(),this.cursor&&i("body").css("cursor","default"),document.releaseCapture&&document.releaseCapture()},_onMouseMove:function(t){var e=new r(t,{startData:this.startData,pageX:t.pageX,pageY:t.pageY});o.isFunction(this.onDragMove)&&this.onDragMove(e),e.isStopped()||this.domEventBus.trigger("dragmove:"+this.type,e)},_onMouseUp:function(t){var e=new r(t,{startData:this.startData});o.isFunction(this.onDragEnd)&&this.onDragEnd(e),e.isStopped()||(this.domEventBus.trigger("dragend:"+this.type,e),this._endDrag())},_onSelectStart:function(t){t.preventDefault()},_attachDragEvents:function(){i(document).on("mousemove.grid",o.bind(this._onMouseMove,this)).on("mouseup.grid",o.bind(this._onMouseUp,this)).on("selectstart.grid",o.bind(this._onSelectStart,this))},_detachDragEvents:function(){i(document).off(".grid")}});t.exports=a},function(t,e,n){"use strict";var i=n(6),o=n(8),s=n(14).renderState,r=n(22),a=n(44),l=n(14).dimension.TABLE_BORDER_WIDTH,u=o.extend({initialize:function(t){this.dimensionModel=t.dimensionModel,this.renderModel=t.renderModel,this.listenTo(this.dimensionModel,"change",this._refreshLayout),this.listenTo(this.renderModel,"change:state",this.render)},className:r.LAYER_STATE,template:i.template('

<%= text %>

<% if (isLoading) { %>
<% } %>
'),render:function(){var t=this.renderModel.get("state");return t===s.DONE?this.$el.hide():this._showLayer(t),this},_showLayer:function(t){var e=this.template({text:this._getMessage(t),isLoading:t===s.LOADING});this.$el.html(e).show(),this._refreshLayout()},_getMessage:function(t){switch(t){case s.LOADING:return a.get("onLoading");case s.EMPTY:return this.renderModel.get("emptyMessage")||a.get("noData");default:return null}},_refreshLayout:function(){var t=this.dimensionModel,e=t.get("headerHeight"),n=t.get("bodyHeight"),i=t.getScrollXHeight(),o=t.getScrollYWidth();this.$el.css({top:e-l,height:n-i-l,left:0,right:o})}});t.exports=u},function(t,e,n){"use strict";var i=n(20),o={en:{createAction:"create",updateAction:"update",deleteAction:"delete",modifyAction:"modify",requestConfirm:"Are you sure you want to {{actionName}} {{count}} data?",noDataResponse:"No data to {{actionName}}.",errorResponse:"An error occurred while requesting data.\n\nPlease try again.",noData:"No data.",onLoading:"Your request is being processed.",resizeHandleGuide:"You can change the width of the column by mouse drag, and initialize the width by double-clicking."},ko:{createAction:"입력",updateAction:"수정",deleteAction:"삭제",modifyAction:"반영",requestConfirm:"{{count}}건의 데이터를 {{actionName}}하시겠습니까?",noDataResponse:"{{actionName}}할 데이터가 없습니다.",errorResponse:"데이터 요청 중에 에러가 발생하였습니다.\n\n다시 시도하여 주시기 바랍니다.",noData:"데이터가 존재하지 않습니다.",onLoading:"요청을 처리 중입니다.",resizeHandleGuide:"마우스 드래그를 통해 컬럼의 넓이를 변경할 수 있고, 더블클릭을 통해 넓이를 초기화할 수 있습니다."}},s=o.en;t.exports={setLanguage:function(t){s=o[t]},get:function(t,e){var n=s[t];return e&&(n=i.replaceText(n,e)),n}}},function(t,e,n){"use strict";function i(t){return"key:clipboard"!==t.type}function o(t){return"key:clipboard"===t.type&&"paste"===t.command}var s,r=n(10),a=n(6),l=n(7),u=n(8),d=n(21),h=n(46),c=n(22),g=10,f=l.browser.edge,m=!!window.clipboardData;s=u.extend({initialize:function(t){a.assign(this,{focusModel:t.focusModel,clipboardModel:t.clipboardModel,domEventBus:t.domEventBus,isLocked:!1,lockTimerId:null}),this.listenTo(this.focusModel,"focusClipboard",this._onFocusClipboard),this.listenTo(this.clipboardModel,"change:text",this._onClipboardTextChange)},tagName:"div",className:c.CLIPBOARD,attributes:{contenteditable:!0},events:{keydown:"_onKeyDown",copy:"_onCopy",paste:"_onPaste",blur:"_onBlur"},render:function(){return this},_onBlur:function(){var t=this.focusModel;setTimeout(function(){t.refreshState()},0)},_onKeyDown:function(t){var e;return this.isLocked?void t.preventDefault():(e=h.generate(t),void(e&&(this._lock(),i(e)&&t.preventDefault(),o(e)||this.domEventBus.trigger(e.type,e))))},_onCopy:function(t){var e=this.clipboardModel.get("text");m||(t.originalEvent||t).clipboardData.setData("text/plain",e),t.preventDefault()},_onPaste:function(t){var e=(t.originalEvent||t).clipboardData||window.clipboardData;f||m?this._pasteInMSBrowsers(e):(t.preventDefault(),this._pasteInOtherBrowsers(e))},_onFocusClipboard:function(){try{this._hasFocus()||(this.$el.focus(),this._hasFocus()||this.$el.focus())}catch(t){}},_onClipboardTextChange:function(){var t=this.clipboardModel.get("text");m?window.clipboardData.setData("Text",t):this.$el.html(t).focus()},_pasteInOtherBrowsers:function(t){var e,n=this.clipboardModel,i=t.getData("text/html");i&&r(i).find("tbody").length>0?(this.$el.html(""+r(i).find("tbody").html()+"
"),e=this.$el.find("table")[0],i=d.convertTableToData(e),this.$el.html("")):(i=t.getData("text/plain"),i=d.convertTextToData(i)),n.pasteClipboardDataToGrid(i)},_pasteInMSBrowsers:function(t){var e,n=this,i=this.clipboardModel,o=t.getData("Text");o=d.convertTextToData(o),setTimeout(function(){n.$el.find("table").length>0&&(e=n.$el.find("table")[0],o=d.convertTableToData(e)),n.$el.html(""),i.pasteClipboardDataToGrid(o)},0)},_lock:function(){this.isLocked=!0,this.lockTimerId=setTimeout(a.bind(this._unlock,this),g)},_unlock:function(){this.isLocked=!1,this.lockTimerId=null},_hasFocus:function(){return this.$el.is(":focus")}}),s.KEYDOWN_LOCK_TIME=g,t.exports=s},function(t,e,n){"use strict";function i(t){var e=[];return(t.ctrlKey||t.metaKey)&&e.push("ctrl"),t.shiftKey&&e.push("shift"),e.push(a[t.keyCode]),e.join("-")}var o=n(6),s=n(19),r={tab:9,enter:13,ctrl:17,esc:27,left:37,up:38,right:39,down:40,a:65,c:67,v:86,space:32,pageUp:33,pageDown:34,home:36,end:35,del:46},a=o.invert(r),l={up:["move","up"],down:["move","down"],left:["move","left"],right:["move","right"],pageUp:["move","pageUp"],pageDown:["move","pageDown"],home:["move","firstColumn"],end:["move","lastColumn"],enter:["edit","currentCell"],space:["edit","currentCell"],tab:["edit","nextCell"],del:["delete"],"shift-tab":["edit","prevCell"],"shift-up":["select","up"],"shift-down":["select","down"],"shift-left":["select","left"],"shift-right":["select","right"],"shift-pageUp":["select","pageUp"],"shift-pageDown":["select","pageDown"],"shift-home":["select","firstColumn"],"shift-end":["select","lastColumn"],"ctrl-a":["select","all"],"ctrl-c":["clipboard","copy"],"ctrl-v":["clipboard","paste"],"ctrl-home":["move","firstCell"],"ctrl-end":["move","lastCell"],"ctrl-shift-home":["select","firstCell"],"ctrl-shift-end":["select","lastCell"]};t.exports={generate:function(t){var e,n=i(t),o=l[n];return o&&(e=new s(t,{type:"key:"+o[0],command:o[1]})),e}}},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(48),r=n(22),a=n(14).frame,l=s.extend({initialize:function(){s.prototype.initialize.apply(this,arguments),o.assign(this,{whichSide:a.L}),this.listenTo(this.dimensionModel,"change:lsideWidth",this._onFrameWidthChanged)},className:r.LSIDE_AREA,_onFrameWidthChanged:function(){this.$el.css({width:this.dimensionModel.get("lsideWidth")})},beforeRender:function(){this.$el.css({display:"block",width:this.dimensionModel.get("lsideWidth")})},afterRender:function(){this.dimensionModel.get("scrollX")&&this.$el.append(i("
").addClass(r.SCROLLBAR_LEFT_BOTTOM))}});t.exports=l},function(t,e,n){"use strict";var i=n(6),o=n(8),s=n(14).frame,r=o.extend({initialize:function(t){o.prototype.initialize.call(this),i.assign(this,{viewFactory:t.viewFactory,renderModel:t.renderModel,dimensionModel:t.dimensionModel,whichSide:t.whichSide||s.R}),this.listenTo(this.renderModel,"columnModelChanged",this.render)},render:function(){var t=this.viewFactory;return this.$el.empty(),this._destroyChildren(),this.beforeRender(),this._addChildren([t.createHeader(this.whichSide),t.createBody(this.whichSide),t.createFooter(this.whichSide)]),this.$el.append(this._renderChildren()),this.afterRender(),this},beforeRender:function(){},afterRender:function(){}});t.exports=r},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(48),r=n(22),a=n(14),l=a.frame,u=a.dimension.CELL_BORDER_WIDTH,d=s.extend({initialize:function(){s.prototype.initialize.apply(this,arguments),o.assign(this,{whichSide:l.R,$scrollBorder:null}),this.listenTo(this.dimensionModel,"change:lsideWidth change:rsideWidth",this._onFrameWidthChanged),this.listenTo(this.dimensionModel,"change:bodyHeight change:headerHeight",this._resetScrollBorderHeight)},className:r.RSIDE_AREA,_onFrameWidthChanged:function(){this._refreshLayout()},_refreshLayout:function(){var t=this.dimensionModel,e=t.get("rsideWidth"),n=t.get("lsideWidth");n>0&&!t.isDivisionBorderDoubled()&&(e+=u,n-=u),this.$el.css({width:e,marginLeft:n})},_resetScrollBorderHeight:function(){var t,e;this.$scrollBorder&&(t=this.dimensionModel,e=t.get("bodyHeight")-t.getScrollXHeight(),this.$scrollBorder.height(e))},beforeRender:function(){this.$el.css("display","block"),this._refreshLayout()},afterRender:function(){var t,e,n,o,s=this.dimensionModel;s.get("scrollY")&&(t=s.get("headerHeight"),e=s.get("footerHeight"),n=i("
").addClass(r.SCROLLBAR_HEAD),o=i("
").addClass(r.SCROLLBAR_BORDER),n.height(t-2),o.css("top",t+"px"),this.$el.append(n,o),s.get("scrollX")&&this.$el.append(i("
").addClass(r.SCROLLBAR_RIGHT_BOTTOM)),e&&s.get("scrollY")&&this.$el.append(i("
").addClass(r.FOOT_AREA_RIGHT).css("height",e-u)),this.$scrollBorder=o,this._resetScrollBorderHeight())}});t.exports=d},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(8),r=n(20),a=n(14),l=n(22),u=n(19),d=n(42),h=a.frame,c=10,g=a.keyCode,f=a.attrName.COLUMN_NAME,m=a.dimension.CELL_BORDER_WIDTH,p=a.dimension.TABLE_BORDER_WIDTH,_=200,M=s.extend({initialize:function(t){s.prototype.initialize.call(this),o.assign(this,{renderModel:t.renderModel,coordColumnModel:t.coordColumnModel,selectionModel:t.selectionModel,focusModel:t.focusModel,columnModel:t.columnModel,dataModel:t.dataModel,coordRowModel:t.coordRowModel,viewFactory:t.viewFactory,domEventBus:t.domEventBus,headerHeight:t.headerHeight,whichSide:t.whichSide||h.R}),this.dragEmitter=new d({type:"header",domEventBus:this.domEventBus,onDragMove:o.bind(this._onDragMove,this)}),this.listenTo(this.renderModel,"change:scrollLeft",this._onScrollLeftChange).listenTo(this.coordColumnModel,"columnWidthChanged",this._onColumnWidthChanged).listenTo(this.selectionModel,"change:range",this._refreshSelectedHeaders).listenTo(this.focusModel,"change:columnName",this._refreshSelectedHeaders).listenTo(this.dataModel,"sortChanged",this._updateBtnSortState),this.whichSide===h.L&&"checkbox"===this.columnModel.get("selectType")&&this.listenTo(this.dataModel,"change:_button disabledChanged extraDataChanged add remove reset",o.debounce(o.bind(this._syncCheckedState,this),c))},className:l.HEAD_AREA,events:{click:"_onClick","keydown input":"_onKeydown","mousedown th":"_onMouseDown"},template:o.template('<%=colGroup%><%=tBody%>
'),templateHeader:o.template('="<%=columnName%>" class="<%=className%>" height="<%=height%>" <%if(colspan > 0) {%>colspan=<%=colspan%> <%}%><%if(rowspan > 0) {%>rowspan=<%=rowspan%> <%}%>><%=title%><%=btnSort%>'),templateCol:o.template('="<%=columnName%>" style="width:<%=width%>px">'),markupBtnSort:'',_getColGroupMarkup:function(){var t=this._getColumnData(),e=t.widths,n=t.columns,i=[];return o.each(e,function(t,e){i.push(this.templateCol({attrColumnName:f,columnName:n[e].name,width:t+m}))},this),i.join("")},_getSelectedColumnNames:function(){var t=this.selectionModel.get("range").column,e=this.columnModel.getVisibleColumns(),n=e.slice(t[0],t[1]+1);return o.pluck(n,"name")},_onDragMove:function(t){var e=i(t.target);t.setData({columnName:e.closest("th").attr(f),isOnHeaderArea:i.contains(this.el,e[0])})},_getContainingMergedColumnNames:function(t){var e=this.columnModel,n=o.pluck(e.get("complexHeaderColumns"),"name");return o.filter(n,function(n){var i=e.getUnitColumnNamesIfMerged(n);return o.every(i,function(e){return o.contains(t,e)})})},_refreshSelectedHeaders:function(){var t,e,n=this.$el.find("th");this.selectionModel.hasSelection()?t=this._getSelectedColumnNames():this.focusModel.has(!0)&&(t=[this.focusModel.get("columnName")]),n.removeClass(l.CELL_SELECTED),t&&(e=this._getContainingMergedColumnNames(t),o.each(t.concat(e),function(t){n.filter("["+f+'="'+t+'"]').addClass(l.CELL_SELECTED)}))},_onKeydown:function(t){t.keyCode===g.TAB&&(t.preventDefault(),this.focusModel.focusClipboard())},_onMouseDown:function(t){var e,n=i(t.target);this._triggerPublicMousedown(t)&&(n.hasClass(l.BTN_SORT)||(e=n.closest("th").attr(f),e&&this.dragEmitter.start(t,{columnName:e})))},_triggerPublicMousedown:function(t){var e,n,o,s=new u(t,u.getTargetInfo(i(t.target)));return e=(new Date).getTime(),this.domEventBus.trigger("mousedown",s),n=(new Date).getTime(),o=n-e>_,!s.isStopped()&&!o},_getHeaderMainCheckbox:function(){return this.$el.find("th["+f+'="_button"] input')},_syncCheckedState:function(){var t,e,n=this.dataModel.getCheckedState();t=this._getHeaderMainCheckbox(),t.length&&(e=n.available?{checked:n.available===n.checked,disabled:!1}:{checked:!1,disabled:!0},t.prop(e))},_onColumnWidthChanged:function(){var t=this.coordColumnModel.getWidths(this.whichSide),e=this.$el.find("col"),n=this.coordRowModel;o.each(t,function(t,n){e.eq(n).css("width",t+m)}),this.whichSide===h.R&&o.defer(function(){n.syncWithDom()})},_onScrollLeftChange:function(t,e){this.whichSide===h.R&&(this.el.scrollLeft=e)},_onClick:function(t){var e=i(t.target),n=e.closest("th").attr(f),o=new u(t);"_button"===n&&e.is("input")?(o.setData({checked:e.prop("checked")}),this.domEventBus.trigger("click:headerCheck",o)):e.is("a."+l.BTN_SORT)&&(o.setData({columnName:n}),this.domEventBus.trigger("click:headerSort",o))},_updateBtnSortState:function(t){this._$currentSortBtn&&this._$currentSortBtn.removeClass(l.BTN_SORT_DOWN+" "+l.BTN_SORT_UP),this._$currentSortBtn=this.$el.find("th["+f+'="'+t.columnName+'"] a.'+l.BTN_SORT),this._$currentSortBtn.addClass(t.ascending?l.BTN_SORT_UP:l.BTN_SORT_DOWN)},render:function(){return this._destroyChildren(),this.$el.css({height:this.headerHeight-p}).html(this.template({colGroup:this._getColGroupMarkup(),tBody:this._getTableBodyMarkup()})),this.coordColumnModel.get("resizable")&&(this._addChildren(this.viewFactory.createHeaderResizeHandle(this.whichSide)),this.$el.append(this._renderChildren())),this},_getColumnData:function(){var t=this.coordColumnModel.getWidths(this.whichSide),e=this.columnModel.getVisibleColumns(this.whichSide,!0);return{widths:t,columns:e}},_getTableBodyMarkup:function(){var t,e,n=this._getColumnHierarchyList(),i=this._getHierarchyMaxRowCount(n),s=this.headerHeight,a=new Array(i),u=new Array(i),d=[],h=r.getRowHeight(i,s)-1,c=1;return o.each(n,function(e,r){var g=n[r].length,m=0;o.each(e,function(e,n){var o=e.name,r=[l.CELL,l.CELL_HEAD];e.validation&&e.validation.required&&r.push(l.CELL_REQRUIRED),c=g-1===n&&i-g+1>1?i-g+1:1,t=h*c,n===g-1?t=s-m-2:m+=t+1,u[n]===o?(a[n].pop(),d[n]+=1):d[n]=1,u[n]=o,a[n]=a[n]||[],a[n].push(this.templateHeader({attrColumnName:f,columnName:o,className:r.join(" "),height:t,colspan:d[n],rowspan:c,title:e.title,btnSort:e.sortable?this.markupBtnSort:""}))},this)},this),e=o.map(a,function(t){return""+t.join("")+""}),e.join("")},_getHierarchyMaxRowCount:function(t){var e=[0];return o.each(t,function(t){e.push(t.length)},this),Math.max.apply(Math,e)},_getColumnHierarchyList:function(){var t,e=this._getColumnData().columns;return t=o.map(e,function(t){return this._getColumnHierarchy(t).reverse()},this)},_getColumnHierarchy:function(t,e){var n=this.columnModel.get("complexHeaderColumns");return e=e||[],t&&(e.push(t),n&&o.each(n,function(n){i.inArray(t.name,n.childNames)!==-1&&this._getColumnHierarchy(n,e)},this)),e}});M.DELAY_SYNC_CHECK=c,t.exports=M},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(7),r=n(8),a=n(14),l=n(22),u=n(42),d=n(44),h=a.attrName,c=a.frame,g=a.dimension.CELL_BORDER_WIDTH,f=a.dimension.RESIZE_HANDLE_WIDTH,m=r.extend({initialize:function(t){o.assign(this,{columnModel:t.columnModel,coordColumnModel:t.coordColumnModel,domEventBus:t.domEventBus,headerHeight:t.headerHeight,whichSide:t.whichSide||c.R}),this.dragEmitter=new u({type:"resizeColumn",cursor:"col-resize",domEventBus:this.domEventBus,onDragMove:o.bind(this._onDragMove,this)}),this.listenTo(this.coordColumnModel,"columnWidthChanged",this._refreshHandlerPosition)},className:l.COLUMN_RESIZE_CONTAINER,events:function(){var t={};return t["mousedown ."+l.COLUMN_RESIZE_HANDLE]="_onMouseDown",t["dblclick ."+l.COLUMN_RESIZE_HANDLE]="_onDblClick",t},template:o.template("
'),_getColumnData:function(){var t=this.coordColumnModel.getWidths(this.whichSide),e=this.columnModel.getVisibleColumns(this.whichSide,!0);return{widths:t,columns:e}},_getResizeHandlerMarkup:function(){var t=this._getColumnData(),e=t.columns,n=e.length,i=o.map(e,function(t,e){return this.template({lastClass:e+1===n?l.COLUMN_RESIZE_HANDLE_LAST:"",columnIndex:e,columnName:t.name,height:this.headerHeight,title:d.get("resizeHandleGuide"),displayType:t.resizable===!1?"none":"block"})},this);return i.join("")},render:function(){var t=this.headerHeight,e=this._getResizeHandlerMarkup();return this.$el.empty().html(e).css({marginTop:-t,height:t,display:"block"}),this._refreshHandlerPosition(),this},_refreshHandlerPosition:function(){var t=this._getColumnData(),e=t.widths,n=this.$el.find("."+l.COLUMN_RESIZE_HANDLE),i=Math.floor(f/2),o=0;s.forEachArray(n,function(t,s){var r=n.eq(s);o+=e[s]+g,r.css("left",o-i)})},_onMouseDown:function(t){var e=i(t.target),n=this.coordColumnModel.getWidths(this.whichSide),o=parseInt(e.attr(h.COLUMN_INDEX),10);this.dragEmitter.start(t,{width:n[o],columnIndex:this._getHandlerColumnIndex(o),pageX:t.pageX})},_onDragMove:function(t){var e=t.startData,n=t.pageX-e.pageX;t.setData({columnIndex:e.columnIndex,width:e.width+n})},_onDblClick:function(t){var e=i(t.target),n=parseInt(e.attr(h.COLUMN_INDEX),10);this.domEventBus.trigger("dblclick:resizeColumn",{columnIndex:this._getHandlerColumnIndex(n)})},_getHandlerColumnIndex:function(t){return this.whichSide===c.R?t+this.columnModel.getVisibleFrozenCount(!0):t}});t.exports=m},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(8),r=n(42),a=n(19),l=n(14),u=n(22),d=l.frame,h=200,c=10,g=s.extend({initialize:function(t){s.prototype.initialize.call(this),o.assign(this,{dimensionModel:t.dimensionModel,renderModel:t.renderModel,viewFactory:t.viewFactory,domEventBus:t.domEventBus,$container:null,whichSide:t&&t.whichSide||d.R}),this.listenTo(this.dimensionModel,"change:bodyHeight",this._onBodyHeightChange).listenTo(this.dimensionModel,"change:totalRowHeight",this._resetContainerHeight).listenTo(this.renderModel,"change:scrollTop",this._onScrollTopChange).listenTo(this.renderModel,"change:scrollLeft",this._onScrollLeftChange),this.dragEmitter=new r({type:"body",domEventBus:this.domEventBus,onDragMove:o.bind(this._onDragMove,this)})},className:u.BODY_AREA,events:function(){var t={};return t.scroll="_onScroll",t["mousedown ."+u.BODY_CONTAINER]="_onMouseDown",t},_onBodyHeightChange:function(t,e){this.$el.css("height",e+"px")},_resetContainerHeight:function(){this.$container.css({height:this.dimensionModel.get("totalRowHeight")})},_onScroll:function(t){var e={scrollTop:t.target.scrollTop};this.whichSide===d.R&&(e.scrollLeft=t.target.scrollLeft),this.renderModel.set(e)},_onScrollLeftChange:function(t,e){this.whichSide===d.R&&(this.el.scrollLeft=e)},_onScrollTopChange:function(t,e){this.el.scrollTop=e},_onMouseDown:function(t){var e=i(t.target),n=e.is("input, teaxarea");this._triggerPublicMousedown(t)&&(this._triggerBodyMousedown(t),n&&t.shiftKey&&t.preventDefault(),n&&!t.shiftKey||this.dragEmitter.start(t,{pageX:t.pageX,pageY:t.pageY}))},_triggerPublicMousedown:function(t){var e,n,o=new a(t,a.getTargetInfo(i(t.target))),s=!0;return o.targetType===a.targetTypeConst.DUMMY?s=!1:(e=(new Date).getTime(), -this.domEventBus.trigger("mousedown",o),o.isStopped()?s=!1:(n=(new Date).getTime(),s=n-e<=h)),s},_triggerBodyMousedown:function(t){var e=new a(t,{pageX:t.pageX,pageY:t.pageY,shiftKey:t.shiftKey});this.domEventBus.trigger("mousedown:body",e)},_onDragMove:function(t){var e=t.startData,n={pageX:t.pageX,pageY:t.pageY};this._getMouseMoveDistance(e,n)").addClass(u.BODY_CONTAINER),this.$el.append(this.$container),this._addChildren([this.viewFactory.createBodyTable(t),this.viewFactory.createSelectionLayer(t),this.viewFactory.createFocusLayer(t)]),this.$container.append(this._renderChildren()),this._resetContainerHeight(),this}});t.exports=g},function(t,e,n){"use strict";var i=n(6),o=n(8),s=n(14),r=n(22),a=s.dimension.CELL_BORDER_WIDTH,l=s.attrName.COLUMN_NAME,u=o.extend({initialize:function(t){o.prototype.initialize.call(this),i.assign(this,{dimensionModel:t.dimensionModel,coordColumnModel:t.coordColumnModel,renderModel:t.renderModel,columnModel:t.columnModel,viewFactory:t.viewFactory,painterManager:t.painterManager,whichSide:t.whichSide||"R"}),this.listenTo(this.coordColumnModel,"columnWidthChanged",this._onColumnWidthChanged),this.listenTo(this.renderModel,"change:dummyRowCount",this._onChangeDummyRowCount),this.listenTo(this.dimensionModel,"change:bodyHeight",this._resetHeight),this._attachAllTableEventHandlers()},className:r.BODY_TABLE_CONTAINER,template:i.template('<%=colGroup%><%=tbody%>
'),templateCol:i.template('="<%=columnName%>" style="width:<%=width%>px">'),_onColumnWidthChanged:function(){var t=this.coordColumnModel.getWidths(this.whichSide),e=this.$el.find("col");i.each(t,function(t,n){e.eq(n).css("width",t+a)},this)},_onChangeDummyRowCount:function(){this._resetOverflow(),this._resetHeight()},_resetOverflow:function(){var t="visible";this.renderModel.get("dummyRowCount")>0&&(t="hidden"),this.$el.css("overflow",t)},_resetHeight:function(){var t=this.dimensionModel;this.renderModel.get("dummyRowCount")>0?this.$el.height(t.get("bodyHeight")-t.getScrollXHeight()):this.$el.css("height","")},resetTablePosition:function(){this.$el.css("top",this.renderModel.get("top"))},render:function(){return this._destroyChildren(),this.$el.html(this.template({colGroup:this._getColGroupMarkup(),tbody:""})),this._addChildren(this.viewFactory.createRowList({bodyTableView:this,el:this.$el.find("tbody"),whichSide:this.whichSide})),this._renderChildren(),this._resetHeight(),this._resetOverflow(),this},_attachAllTableEventHandlers:function(){var t=this.painterManager.getCellPainters();i.each(t,function(t){t.attachEventHandlers(this.$el,"")},this)},redrawTable:function(t){return this.$el[0].innerHTML=this.template({colGroup:this._getColGroupMarkup(),tbody:t}),this.$el.find("tbody")},_getColGroupMarkup:function(){var t=this.whichSide,e=this.coordColumnModel.getWidths(t),n=this.columnModel.getVisibleColumns(t,!0),o="";return i.each(n,function(t,n){o+=this.templateCol({attrColumnName:l,columnName:t.name,width:e[n]+a})},this),o}});t.exports=u},function(t,e,n){"use strict";var i=n(6),o=n(8),s=n(22),r=n(14),a=r.frame,l=r.attrName.COLUMN_NAME,u=o.extend({initialize:function(t){this.columnTemplateMap=t.columnTemplateMap||{},this.whichSide=t.whichSide,this.columnModel=t.columnModel,this.dimensionModel=t.dimensionModel,this.coordColumnModel=t.coordColumnModel,this.renderModel=t.renderModel,this.summaryModel=t.summaryModel,this.listenTo(this.renderModel,"change:scrollLeft",this._onChangeScrollLeft),this.listenTo(this.coordColumnModel,"columnWidthChanged",this._onChangeColumnWidth),this.listenTo(this.columnModel,"setFooterContent",this._setColumnContent),this.summaryModel&&this.listenTo(this.summaryModel,"change",this._onChangeSummaryValue)},className:s.FOOT_AREA,events:{scroll:"_onScrollView"},template:i.template('<%=tbody%>
'),templateHeader:i.template('="<%=columnName%>" class="<%=className%>" style="width:<%=width%>px"><%=value%>'),_onScrollView:function(t){this.whichSide===a.R&&this.renderModel.set("scrollLeft",t.target.scrollLeft)},_onChangeScrollLeft:function(t,e){this.whichSide===a.R&&(this.el.scrollLeft=e)},_onChangeColumnWidth:function(){var t=this.coordColumnModel.getWidths(this.whichSide),e=this.$el.find("th");i.each(t,function(t,n){e.eq(n).css("width",t)})},_setColumnContent:function(t,e){var n=this.$el.find("th["+l+'="'+t+'"]');n.html(e)},_onChangeSummaryValue:function(t,e){var n=this._generateValueHTML(t,e);this._setColumnContent(t,n)},_generateValueHTML:function(t,e){var n=this.columnTemplateMap[t],o="";return i.isFunction(n)&&(o=n(e)),o},_generateTbodyHTML:function(){var t=this.summaryModel,e=this.columnModel.getVisibleColumns(this.whichSide,!0),n=this.coordColumnModel.getWidths(this.whichSide);return i.reduce(e,function(e,i,o){var r,a=i.name;return t&&(r=t.getValue(i.name)),e+this.templateHeader({attrColumnName:l,columnName:a,className:s.CELL_HEAD+" "+s.CELL,width:n[o],value:this._generateValueHTML(a,r)})},"",this)},render:function(){var t=this.dimensionModel.get("footerHeight");return t&&this.$el.html(this.template({className:s.TABLE,height:t,tbody:this._generateTbodyHTML()})),this}});t.exports=u},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(7),r=n(8),a=n(14),l=n(22),u=a.attrName,d=a.frame,h=a.dimension.CELL_BORDER_WIDTH,c=r.extend({initialize:function(t){var e=t.focusModel,n=t.renderModel,i=t.selectionModel,s=t.coordRowModel,r=t.whichSide||"R";o.assign(this,{whichSide:r,bodyTableView:t.bodyTableView,focusModel:e,renderModel:n,selectionModel:i,coordRowModel:s,dataModel:t.dataModel,columnModel:t.columnModel,collection:n.getCollection(r),painterManager:t.painterManager,sortOptions:null,renderedRowKeys:null}),this.listenTo(this.collection,"change",this._onModelChange).listenTo(this.collection,"restore",this._onModelRestore).listenTo(e,"change:rowKey",this._refreshFocusedRow).listenTo(n,"rowListChanged",this.render),this.whichSide===d.L&&this.listenTo(e,"change:rowKey",this._refreshSelectedMetaColumns).listenTo(i,"change:range",this._refreshSelectedMetaColumns).listenTo(n,"rowListChanged",this._refreshSelectedMetaColumns)},_getColumns:function(){return this.columnModel.getVisibleColumns(this.whichSide,!0)},_removeOldRows:function(t){var e=o.indexOf(this.renderedRowKeys,t[0]),n=o.indexOf(this.renderedRowKeys,o.last(t)),i=this.$el.children("tr");i.slice(0,e).remove(),i.slice(n+1).remove()},_appendNewRows:function(t,e){var n=this.collection.slice(0,o.indexOf(t,e[0])),i=this.collection.slice(o.indexOf(t,o.last(e))+1);this.$el.prepend(this._getRowsHtml(n)),this.$el.append(this._getRowsHtml(i))},_resetRows:function(){var t,e=this._getRowsHtml(this.collection.models);if(c.isInnerHtmlOfTbodyReadOnly)t=this.bodyTableView.redrawTable(e),this.setElement(t,!1);else try{this.$el[0].innerHTML=e}catch(t){c.isInnerHtmlOfTbodyReadOnly=!0,this._resetRows()}},_getRowsHtml:function(t){var e=this.painterManager.getRowPainter(),n=o.pluck(this._getColumns(),"name");return o.map(t,function(t){return e.generateHtml(t,n)}).join("")},_getRowElement:function(t){return this.$el.find("tr["+u.ROW_KEY+"="+t+"]")},_refreshSelectedMetaColumns:function(){var t,e=this.$el.find("tr"),n="."+l.CELL_HEAD;t=this.selectionModel.hasSelection()?this._filterRowsByIndexRange(e,this.selectionModel.get("range").row):this._filterRowByKey(e,this.focusModel.get("rowKey")),e.find(n).removeClass(l.CELL_SELECTED),t.find(n).addClass(l.CELL_SELECTED)},_filterRowsByIndexRange:function(t,e){var n,o,s=this.renderModel,r=s.get("startIndex");return n=Math.max(e[0]-r,0),o=Math.max(e[1]-r+1,0),n||o?t.slice(n,o):i()},_filterRowByKey:function(t,e){var n=this.dataModel.indexOfRowKey(e),o=this.renderModel.get("startIndex");return o>n?i():t.eq(n-o)},_refreshFocusedRow:function(){var t=this.focusModel.get("rowKey"),e=this.focusModel.get("prevRowKey");this._setFocusedRowClass(e,!1),this._setFocusedRowClass(t,!0)},_setFocusedRowClass:function(t,e){var n=o.pluck(this._getColumns(),"name"),i={};o.each(n,function(n){var o,s=this.dataModel.getMainRowKey(t,n);i[s]||(i[s]=this._getRowElement(s)),o=i[s].find("td["+u.COLUMN_NAME+'="'+n+'"]'),o.toggleClass(l.CELL_CURRENT_ROW,e)},this)},render:function(t){var e,n=this.collection.pluck("rowKey");return this.bodyTableView.resetTablePosition(),t?this._resetRows():(e=o.intersection(n,this.renderedRowKeys),o.isEmpty(n)||o.isEmpty(e)||e.length/n.length<.7?this._resetRows():(this._removeOldRows(e),this._appendNewRows(n,e))),this.renderedRowKeys=n,this},_onModelChange:function(t){var e=t.get("rowKey"),n=this._getRowElement(e);"height"in t.changed?n.css("height",t.get("height")+h):(this.painterManager.getRowPainter().refresh(t.changed,n),this.coordRowModel.syncWithDom())},_onModelRestore:function(t){var e=this.dataModel.getElement(t.rowKey,t.columnName),n=this.columnModel.getEditType(t.columnName);this.painterManager.getCellPainter(n).refresh(t,e),this.coordRowModel.syncWithDom()}},{isInnerHtmlOfTbodyReadOnly:s.browser.msie&&s.browser.version<=9});t.exports=c},function(t,e,n){"use strict";var i=n(6),o=n(8),s=n(22),r=n(14).dimension.CELL_BORDER_WIDTH,a=n(14).frame,l=o.extend({initialize:function(t){i.assign(this,{whichSide:t.whichSide||a.R,dimensionModel:t.dimensionModel,coordRowModel:t.coordRowModel,coordColumnModel:t.coordColumnModel,columnModel:t.columnModel,selectionModel:t.selectionModel}),this._updateColumnWidths(),this.listenTo(this.coordColumnModel,"columnWidthChanged",this._onChangeColumnWidth),this.listenTo(this.selectionModel,"change:range",this.render)},className:s.LAYER_SELECTION,_updateColumnWidths:function(){this.columnWidths=this.coordColumnModel.getWidths(this.whichSide)},_onChangeColumnWidth:function(){this._updateColumnWidths(),this.render()},_getOwnSideColumnRange:function(t){var e=this.columnModel.getVisibleFrozenCount(),n=null;return this.whichSide===a.L?t[0]=e&&(n=[Math.max(t[0],e)-e,t[1]-e]),n},_getVerticalStyles:function(t){var e=this.coordRowModel,n=e.getOffsetAt(t[0]),i=e.getOffsetAt(t[1])+e.getHeightAt(t[1]);return{top:n+"px",height:i-n+"px"}},_getHorizontalStyles:function(t){var e=this.columnWidths,n=this.columnModel.getVisibleMetaColumnCount(),i=t[0],o=t[1],s=0,l=0,u=0;for(this.whichSide===a.L&&(i+=n,o+=n),o=Math.min(o,e.length-1);u<=o;u+=1)ut&&this.$el.css("left",t-e)},_adjustCellOffsetValue:function(t){var e=o.browser,n=t;return e.msie&&(9===e.version?n=t-1:e.version>9&&(n=Math.floor(t))),n},_calculateLayoutStyle:function(t,e,n){var i=this.domState.getOffset(),o=this.domState.getElement(t,e),s=o.offset(),a=o.outerHeight()+r,l=o.outerWidth()+r;return{top:this._adjustCellOffsetValue(s.top)-i.top,left:this._adjustCellOffsetValue(s.left)-i.left,height:a,minWidth:n?l:"",width:n?"":l,lineHeight:a+"px"}},_onEditingStateChanged:function(t){t.editing?this._startEditing(t):this._finishEditing()},render:function(){return i.each(this.inputPainters,function(t){t.attachEventHandlers(this.$el,"")},this),this}});t.exports=u},function(t,e,n){"use strict";var i,o=n(6),s=n(36),r=n(8),a=n(22),l="yyyy-MM-dd",u=[[new Date(1900,0,1),new Date(2999,11,31)]];i=r.extend({initialize:function(t){this.focusModel=t.focusModel,this.textPainter=t.textPainter,this.columnModel=t.columnModel,this.domState=t.domState,this.datePickerMap=this._createDatePickers(),this.$focusedInput=null,this.listenTo(this.textPainter,"focusIn",this._onFocusInTextInput),this.listenTo(t.domEventBus,"windowResize",this._closeDatePickerLayer)},className:a.LAYER_DATE_PICKER,events:{click:"_onClick"},_onClick:function(t){t.stopPropagation()},_createDatePickers:function(){var t={},e=this.columnModel.get("columnModelMap");return o.each(e,function(e){var n,i=e.name,o=e.component;o&&"datePicker"===o.name&&(n=o.options||{},t[i]=new s(this.$el,n),this._bindEventOnDatePicker(t[i]))},this),t},_bindEventOnDatePicker:function(t){var e=this;t.on("open",function(){e.textPainter.blockFocusingOut()}),t.on("close",function(){var t=e.focusModel,n=t.which(),i=n.rowKey,o=n.columnName,s=e.$focusedInput.val();e.textPainter.unblockFocusingOut(),t.isEditingCell(i,o)&&t.dataModel.setValue(i,o,s),t.finishEditing()})},_resetDatePicker:function(t,e,n){var i=this.datePickerMap[n],o=t.format||l,s=t.date||new Date,r=t.selectableRanges;i.setInput(e,{format:o,syncFromInput:!0}),r?i.setRanges(r):i.setRanges(u),""===e.val()&&(i.setDate(s),e.val(""))},_calculatePosition:function(t){var e=t.offset(),n=t.outerHeight(),i=this.domState.getOffset();return{top:e.top-i.top+n,left:e.left-i.left}},_onFocusInTextInput:function(t,e){var n,i=e.columnName,o=this.columnModel.getColumnModel(i).component,s=this.columnModel.getEditType(i);"text"===s&&o&&"datePicker"===o.name&&(n=o.options||{},this.$focusedInput=t,this.$el.css(this._calculatePosition(t)).show(),this._resetDatePicker(n,t,i),this.datePickerMap[i].open())},_closeDatePickerLayer:function(){var t=this.focusModel.which().columnName,e=this.datePickerMap[t];e&&e.isOpened()&&e.close()},render:function(){return this.$el.hide(),this}}),t.exports=i},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(8),r=n(14),a=n(22),l=r.frame,u=r.dimension.CELL_BORDER_WIDTH,d='
',h=a.LAYER_FOCUS_DEACTIVE,c=s.extend({initialize:function(t){this.focusModel=t.focusModel,this.columnModel=t.columnModel,this.coordRowModel=t.coordRowModel,this.coordColumnModel=t.coordColumnModel,this.coordConverterModel=t.coordConverterModel,this.whichSide=t.whichSide,this.borderEl={$top:i(d),$left:i(d),$right:i(d),$bottom:i(d)},this.listenTo(this.coordColumnModel,"columnWidthChanged",this._refreshCurrentLayout),this.listenTo(this.coordRowModel,"reset",this._refreshCurrentLayout),this.listenTo(this.focusModel,"blur",this._onBlur),this.listenTo(this.focusModel,"focus",this._onFocus)},className:a.LAYER_FOCUS,_refreshCurrentLayout:function(){var t=this.focusModel;"none"!==this.$el.css("display")&&this._refreshBorderLayout(t.get("rowKey"),t.get("columnName"))},_onBlur:function(){this.focusModel.has(!0)?this.$el.addClass(h):this.$el.hide()},_onFocus:function(t,e){var n=this.columnModel.isLside(e)?l.L:l.R;this.focusModel.has(!0)&&this.$el.removeClass(h),n===this.whichSide&&(this._refreshBorderLayout(t,e),this.$el.show())},_refreshBorderLayout:function(t,e){var n=this.coordConverterModel.getCellPosition(t,e),i=n.right-n.left,o=n.bottom-n.top;this.borderEl.$left.css({top:n.top,left:n.left,width:u,height:o+u}),this.borderEl.$top.css({top:0===n.top?u:n.top,left:n.left,width:i+u,height:u}),this.borderEl.$right.css({top:n.top,left:n.left+i,width:u,height:o+u}),this.borderEl.$bottom.css({top:n.top+o,left:n.left,width:i+u,height:u})},render:function(){var t=this.$el;return o.each(this.borderEl,function(e){t.append(e)}),t.hide(),this}});t.exports=c},function(t,e,n){"use strict";var i=n(6),o=n(9);t.exports={create:function(){return i.extend({},o.Events)}}},function(t,e,n){"use strict";var i=n(6),o=n(7),s=n(14).attrName,r=n(22),a=o.defineClass({init:function(t){this.$el=t},_getBodyTableRows:function(t){return this.$el.find("."+t).find("."+r.BODY_TABLE_CONTAINER).find("tr["+s.ROW_KEY+"]")},_getMaxCellHeight:function(t){var e=t.find("."+r.CELL_CONTENT).map(function(){return this.scrollHeight}).get();return i.max(e)},getElement:function(t,e){return this.$el.find("tr["+s.ROW_KEY+"="+t+"]").find("td["+s.COLUMN_NAME+'="'+e+'"]')},getRowHeights:function(){var t,e,n,i,o=this._getBodyTableRows(r.LSIDE_AREA),s=this._getBodyTableRows(r.RSIDE_AREA),a=[];for(n=0,i=o.length;n" class="<%=className%>" style="height: <%=height%>px;"><%=contents%>'),_getEditType:function(t,e){var n=o.pick(e.columnModel,"editOptions","type");return n||"normal"},_generateHtmlForDummyRow:function(t,e){var n=this.painterManager.getCellPainter("dummy"),o="";return i.each(e,function(e){o+=n.generateHtml(t,e)}),o},_generateHtmlForActualRow:function(t,e){var n="";return i.each(e,function(e){var i,o,s=t.get(e);s&&s.isMainRow&&(i=this._getEditType(e,s),o=this.painterManager.getCellPainter(i),n+=o.generateHtml(s))},this),n},generateHtml:function(t,e){var n,o=t.get("rowKey"),s=t.get("rowNum"),r=s%2?a.ROW_ODD:a.ROW_EVEN,d="";return i.isUndefined(o)?n=this._generateHtmlForDummyRow(s,e):(d=l.ROW_KEY+'="'+o+'"',n=this._generateHtmlForActualRow(t,e)),this.template({rowKeyAttr:d,height:t.get("height")+u,contents:n,className:r})},refresh:function(t,e){i.each(t,function(t,n){var i,o,s;"_extraData"!==n&&(s=e.find("td["+l.COLUMN_NAME+'="'+n+'"]'),i=this._getEditType(n,t),o=this.painterManager.getCellPainter(i),o.refresh(t,s))},this)}});t.exports=d},function(t,e,n){"use strict";var i=n(6),o=n(7),s=n(14).attrName,r=o.defineClass({init:function(t){this.controller=t.controller},events:{},selector:"",_getCellAddress:function(t){var e=t.closest("["+s.ROW_KEY+"]");return{rowKey:e.attr(s.ROW_KEY),columnName:e.attr(s.COLUMN_NAME)}},attachEventHandlers:function(t,e){i.each(this.events,function(n,o){var s=i.bind(this[n],this),r=e+" "+this.selector;t.on(o,r,s)},this)},generateHtml:function(){throw new Error("implement generateHtml() method")}});t.exports=r},function(t,e,n){"use strict";var i=n(6),o=n(7),s=n(65),r=n(20),a=n(14).attrName,l=n(22),u=o.defineClass(s,{init:function(t){s.apply(this,arguments),this.editType=t.editType,this.fixedRowHeight=t.fixedRowHeight,this.inputPainter=t.inputPainter,this.selector="td["+a.EDIT_TYPE+'="'+this.editType+'"]'},template:i.template(' style="<%=style%>"><%=contentHtml%>'),contentTemplate:i.template('
<%=content%>
'),_isEditableType:function(){return!i.contains(["normal","mainButton"],this.editType)},_getContentStyle:function(t){var e=t.columnModel.whiteSpace||"nowrap",n=[];return e&&n.push("white-space:"+e),this.fixedRowHeight&&n.push("max-height:"+t.height+"px"),n.join(";")},_getContentHtml:function(t){var e,n,o=t.columnModel.template,s=t.formattedValue,r=t.prefix,a=t.postfix;return this.inputPainter&&(s=this.inputPainter.generateHtml(t),this._shouldContentBeWrapped()&&!this._isUsingViewMode(t)&&(r=this._getSpanWrapContent(r,l.CELL_CONTENT_BEFORE),a=this._getSpanWrapContent(a,l.CELL_CONTENT_AFTER),s=this._getSpanWrapContent(s,l.CELL_CONTENT_INPUT),e=r+a+s)),e||(e=r+s+a),n="_number"===t.columnName&&i.isFunction(o)?o({content:e}):this.contentTemplate({content:e,className:l.CELL_CONTENT,style:this._getContentStyle(t)})},_isUsingViewMode:function(t){return o.pick(t,"columnModel","editOptions","useViewMode")!==!1},_shouldContentBeWrapped:function(){return i.contains(["text","password","select"],this.editType)},_getSpanWrapContent:function(t,e){return o.isFalsy(t)&&(t=""),''+t+""},_getAttributes:function(t){var e=[t.className,l.CELL],n={align:t.columnModel.align||"left"};return n.class=e.join(" "),n[a.EDIT_TYPE]=this.editType,n[a.ROW_KEY]=t.rowKey,n[a.COLUMN_NAME]=t.columnName,t.rowSpan&&(n.rowspan=t.rowSpan),n},attachEventHandlers:function(t,e){s.prototype.attachEventHandlers.call(this,t,e),this.inputPainter&&this.inputPainter.attachEventHandlers(t,e+" "+this.selector)},generateHtml:function(t){var e=r.getAttributesString(this._getAttributes(t)),n=this._getContentHtml(t),i=t.columnModel.valign,o=[];return i&&o.push("vertical-align:"+i),this.template({attributeString:e,style:o.join(";"),contentHtml:n})},refresh:function(t,e){var n=["value","editing","disabled","listItems"],o=i.contains(t.changed,"editing")&&t.editing,s=i.intersection(n,t.changed).length>0,r=this._getAttributes(t),a="mainButton"===this.editType;e.attr(r),o&&!this._isUsingViewMode(t)?this.inputPainter.focus(e):a?e.find(this.inputPainter.selector).prop({checked:t.value,disabled:t.disabled}):s&&(e.html(this._getContentHtml(t)),e.scrollLeft(0))}});t.exports=u},function(t,e,n){"use strict";var i=n(6),o=n(7),s=n(65),r=n(20),a=n(14).attrName,l=n(22),u=o.defineClass(s,{init:function(){s.apply(this,arguments)},selector:"td["+a.EDIT_TYPE+'="dummy"]',template:i.template("'),generateHtml:function(t,e){var n=[l.CELL,l.CELL_DUMMY];return r.isMetaColumn(e)&&n.push(l.CELL_HEAD),this.template({columnName:e,className:n.join(" ")})}});t.exports=u},function(t,e,n){"use strict";var i=n(6),o=n(7),s=n(69),r=n(20),a=n(22),l="."+a.CELL_CONTENT_TEXT,u="input[type=password]",d=o.defineClass(s,{init:function(t){s.apply(this,arguments),this.inputType=t.inputType,this.selector="text"===t.inputType?l:u,this._extendEvents({selectstart:"_onSelectStart"})},templateInput:i.template('/>'),templateTextArea:i.template(''),_onSelectStart:function(t){t.stopPropagation()},_convertStringToAsterisks:function(t){return Array(t.length+1).join("*")},_getDisplayValue:function(t){var e=t.formattedValue;return"password"===this.inputType&&(e=this._convertStringToAsterisks(t.value)),e},_generateInputHtml:function(t){var e=o.pick(t,"columnModel","editOptions","maxLength"),n={type:this.inputType,className:a.CELL_CONTENT_TEXT,value:t.value,name:r.getUniqueKey(),disabled:t.disabled?"disabled":"",maxLength:e};return"nowrap"!==t.whiteSpace?this.templateTextArea(n):this.templateInput(n)},focus:function(t){var e=t.find(this.selector);1!==e.length||e.is(":focus")||e.select()}});t.exports=d},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(9),r=n(7),a=n(65),l=n(14).keyName,u=r.defineClass(a,{init:function(){a.apply(this,arguments),this._finishedEditing=!1},events:{keydown:"_onKeyDown",focusin:"_onFocusIn",focusout:"_onFocusOut",change:"_onChange"},keyDownActions:{ESC:function(t){this.controller.finishEditing(t.address,!0)},ENTER:function(t){this.controller.finishEditing(t.address,!0,t.value)},TAB:function(t){this.controller.finishEditing(t.address,!0,t.value),this.controller.focusInToNextCell(t.shiftKey)}},_extendKeydownActions:function(t){this.keyDownActions=o.assign({},this.keyDownActions,t)},_extendEvents:function(t){this.events=o.assign({},this.events,t)},_executeCustomEventHandler:function(t,e){this.controller.executeCustomInputEventHandler(t,e)},_onChange:function(){},_onFocusIn:function(t){var e=i(t.target),n=this._getCellAddress(e),s=this;o.defer(function(){s._executeCustomEventHandler(t,n),s.trigger("focusIn",e,n),s.controller.startEditing(n)})},_onFocusOut:function(t){var e=i(t.target),n=this._getCellAddress(e);this._finishedEditing||(this._executeCustomEventHandler(t,n),this.trigger("focusOut",e,n),this.controller.finishEditing(n,!1,e.val()))},_onKeyDown:function(t){var e=t.keyCode||t.which,n=l[e],o=this.keyDownActions[n],s=i(t.target),r={$target:s,address:this._getCellAddress(s),shiftKey:t.shiftKey,value:s.val()};this._executeCustomEventHandler(t,r.address),o&&!t.shiftKey&&(o.call(this,r),t.preventDefault())},_getDisplayValue:function(){throw new Error("implement _getDisplayValue() method")},_generateInputHtml:function(){throw new Error("implement _generateInputHtml() method")},_isUsingViewMode:function(t){return r.pick(t,"columnModel","editOptions","useViewMode")!==!1},generateHtml:function(t){var e;return e=o.isNull(t.convertedHTML)?!this._isUsingViewMode(t)||t.editing?this._generateInputHtml(t):this._getDisplayValue(t):t.convertedHTML},focus:function(t){var e=t.find(this.selector);e.is(":focus")||e.eq(0).focus()},blockFocusingOut:function(){this._finishedEditing=!0},unblockFocusingOut:function(){this._finishedEditing=!1}});o.assign(u.prototype,s.Events),t.exports=u},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(7),r=n(69),a=n(20),l=s.defineClass(r,{init:function(){r.apply(this,arguments),this.selector="select"},template:o.template(''),optionTemplate:o.template(''),_onChange:function(t){var e=i(t.target),n=this._getCellAddress(e);this.controller.setValueIfNotUsingViewMode(n,e.val())},_getDisplayValue:function(t){var e=o.find(t.listItems,function(e){return String(e.value)===String(t.value)});return e?e.text:""},_generateInputHtml:function(t){var e=o.reduce(t.listItems,function(e,n){return e+this.optionTemplate({value:n.value,text:n.text,selected:String(t.value)===String(n.value)?"selected":""})},"",this);return this.template({name:a.getUniqueKey(),disabled:t.disabled?"disabled":"",options:e})}});t.exports=l},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(7),r=n(69),a=n(20),l=s.defineClass(r,{init:function(t){r.apply(this,arguments),this.inputType=t.inputType,this.selector="fieldset[data-type="+this.inputType+"]",this._extendEvents({mousedown:"_onMouseDown"}),this._extendKeydownActions({TAB:function(t){var e;this._focusNextInput(t.$target,t.shiftKey)||(e=this._getCheckedValueString(t.$target),this.controller.finishEditing(t.address,!0,e),this.controller.focusInToNextCell(t.shiftKey))},ENTER:function(t){var e=this._getCheckedValueString(t.$target);this.controller.finishEditing(t.address,!0,e)},LEFT_ARROW:function(t){this._focusNextInput(t.$target,!0)},RIGHT_ARROW:function(t){this._focusNextInput(t.$target)},UP_ARROW:function(){},DOWN_ARROW:function(){}})},template:o.template('
<%=content%>
'),inputTemplate:o.template(' <%=disabled%> />'),labelTemplate:o.template(''),_onChange:function(t){var e=i(t.target),n=this._getCellAddress(e),o=this._getCheckedValueString(e);this.controller.setValueIfNotUsingViewMode(n,o)},_onFocusOut:function(t){var e=i(t.target),n=this;o.defer(function(){var t,i;e.siblings("input:focus").length||(t=n._getCellAddress(e),i=n._getCheckedValueString(e),n.controller.finishEditing(t,!1,i))})},_onMouseDown:function(t){var e=i(t.target),n=e.closest("fieldset").find("input:focus").length>0;!e.is("input")&&n&&(t.stopPropagation(),t.preventDefault())},_focusNextInput:function(t,e){var n=e?"prevAll":"nextAll",i=t[n]("input");return!!i.length&&(i.first().focus(),!0)},_getCheckedValueString:function(t){var e,n=t.parent().find("input:checked"),o=[];return n.each(function(){var t=i(this),e=t.attr("data-value-type"),n=a.convertValueType(t.val(),e);o.push(n)}),e=1===o.length?o[0]:o.join(",")},_getCheckedValueSet:function(t){var e={};return o.each(String(t).split(","),function(t){e[t]=!0}),e},_getDisplayValue:function(t){var e=this._getCheckedValueSet(t.value),n=[];return o.each(t.listItems,function(t){e[t.value]&&n.push(t.text)}),n.join(",")},_generateInputHtml:function(t){var e=this._getCheckedValueSet(t.value),n=a.getUniqueKey(),i="";return o.each(t.listItems,function(o){var s=n+"_"+o.value;i+=this.inputTemplate({type:this.inputType,id:s,name:n,value:o.value,valueType:typeof o.value,checked:e[o.value]?"checked":"",disabled:t.isDisabled?"disabled":""}),o.text&&(i+=this.labelTemplate({id:s,labelText:o.text}))},this),this.template({type:this.inputType,content:i})},focus:function(t){var e=t.find("input");e.is(":focus")||e.eq(0).focus()}});t.exports=l},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(7),r=n(65),a=n(22),l=n(14).keyCode,u=a.CELL_MAIN_BUTTON,d=s.defineClass(r,{init:function(t){r.apply(this,arguments),this.selector="input."+u,this.inputType=t.inputType,this.gridId=t.gridId; -},events:{change:"_onChange",keydown:"_onKeydown"},template:o.template(' <%=disabled%> />'),_onChange:function(t){var e=i(t.target),n=this._getCellAddress(e);this.controller.setValue(n,e.is(":checked"))},_onKeydown:function(t){var e;t.keyCode===l.TAB&&(t.preventDefault(),e=this._getCellAddress(i(t.target)),this.controller.focusInToRow(e.rowKey))},generateHtml:function(t){var e=t.columnModel.template,n=null,i={type:this.inputType,name:this.gridId,className:u};return n=o.isFunction(e)?e(o.extend(i,{checked:t.value,disabled:t.disabled})):this.template(o.extend(i,{checked:t.value?"checked":"",disabled:t.disabled?"disabled":""}))}});t.exports=d},function(t,e,n){"use strict";function i(t){return r.isString(t)&&(t=t.replace(/,/g,"")),r.isNumber(t)||isNaN(t)||l.isBlank(t)?t:Number(t)}function o(t){switch(t){case"focusin":return"onFocus";case"focusout":return"onBlur";case"keydown":return"onKeyDown";default:return""}}var s=n(10),r=n(6),a=n(7),l=n(20),u=a.defineClass({init:function(t){this.focusModel=t.focusModel,this.dataModel=t.dataModel,this.columnModel=t.columnModel,this.selectionModel=t.selectionModel},startEditing:function(t,e){var n;return e&&this.focusModel.finishEditing(),n=this.focusModel.startEditing(t.rowKey,t.columnName),n&&this.selectionModel.end(),n},_checkMaxLength:function(t,e){var n=this.columnModel.getColumnModel(t),i=a.pick(n,"editOptions","maxLength");return i>0&&e.length>i?e.substring(0,i):e},finishEditing:function(t,e,n){var i,o,s=this.focusModel;return!!s.isEditingCell(t.rowKey,t.columnName)&&(this.selectionModel.enable(),r.isUndefined(n)||(i=this.dataModel.get(t.rowKey),o=i.get(t.columnName),l.isBlank(n)&&l.isBlank(o)||this.setValue(t,this._checkMaxLength(t.columnName,n))),s.finishEditing(),e?s.focusClipboard():r.defer(function(){s.refreshState()}),!0)},focusInToNextCell:function(t){var e=this.focusModel,n=t?e.prevAddress():e.nextAddress();e.focusIn(n.rowKey,n.columnName,!0)},focusInToRow:function(t){var e=this.focusModel;e.focusIn(t,e.firstColumnName(),!0)},executeCustomInputEventHandler:function(t,e){var n,i,s,a=this.columnModel.getColumnModel(e.columnName);a&&(n=t.type,i=a.editOptions||{},s=i[o(n)],r.isFunction(s)&&s.call(t.target,t,e))},setValue:function(t,e){var n=this.columnModel.getColumnModel(t.columnName);r.isString(e)&&(e=s.trim(e)),"number"===n.dataType&&(e=i(e)),"_button"===n.name?e?this.dataModel.check(t.rowKey):this.dataModel.uncheck(t.rowKey):this.dataModel.setValue(t.rowKey,t.columnName,e)},setValueIfNotUsingViewMode:function(t,e){var n=this.columnModel.getColumnModel(t.columnName);a.pick(n,"editOptions","useViewMode")||this.setValue(t,e)}});t.exports=u},function(t,e,n){"use strict";var i=n(10),o=n(9),s=n(6),r=n(8),a=n(75),l=n(20),u=n(76),d=n(44),h=n(19),c=n(14).renderState,g=200,f=r.extend({initialize:function(t){var e={initialRequest:!0,perPage:500,enableAjaxHistory:!0},n={readData:"",createData:"",updateData:"",deleteData:"",modifyData:"",downloadExcel:"",downloadExcelAll:""};t=s.assign(e,t),t.api=s.assign(n,t.api),s.assign(this,{dataModel:t.dataModel,renderModel:t.renderModel,router:null,domEventBus:t.domEventBus,pagination:t.pagination,api:t.api,enableAjaxHistory:t.enableAjaxHistory,readDataMethod:t.readDataMethod||"POST",perPage:t.perPage,curPage:1,timeoutIdForDelay:null,requestedFormData:null,isLocked:!1,lastRequestedReadData:null}),this._initializeDataModelNetwork(),this._initializeRouter(),this._initializePagination(),this.listenTo(this.dataModel,"sortChanged",this._onSortChanged),this.listenTo(this.domEventBus,"click:excel",this._onClickExcel),t.initialRequest&&(this.lastRequestedReadData||this._readDataAt(1,!1))},tagName:"form",events:{submit:"_onSubmit"},_initializePagination:function(){var t=this.pagination;t&&(t.setItemsPerPage(this.perPage),t.setTotalItems(1),t.on("beforeMove",i.proxy(this._onPageBeforeMove,this)))},_onRouterRead:function(t){var e=l.toQueryObject(t);this._requestReadData(e)},_onClickExcel:function(t){var e="all"===t.type?"excelAll":"excel";this.download(e)},_initializeDataModelNetwork:function(){this.dataModel.url=this.api.readData,this.dataModel.sync=i.proxy(this._sync,this)},_initializeRouter:function(){this.enableAjaxHistory&&(this.router=new a({net:this}),this.listenTo(this.router,"route:read",this._onRouterRead),o.History.started||o.history.start())},_onPageBeforeMove:function(t){var e=t.page;this.curPage!==e&&this._readDataAt(e,!0)},_onSubmit:function(t){t.preventDefault(),this._readDataAt(1,!1)},_setFormData:function(t){var e=s.clone(t);s.each(this.lastRequestedReadData,function(t,n){(s.isUndefined(e[n])||s.isNull(e[n]))&&t&&(e[n]="")}),u.setFormData(this.$el,e)},_sync:function(t,e,n){var r;"read"===t?(n=n||{},r=i.extend({},n),n.url||(r.url=s.result(e,"url")),this._ajax(r)):o.sync(o,t,e,n)},_lock:function(){var t=this.renderModel;this.timeoutIdForDelay=setTimeout(function(){t.set("state",c.LOADING)},g),this.isLocked=!0},_unlock:function(){null!==this.timeoutIdForDelay&&(clearTimeout(this.timeoutIdForDelay),this.timeoutIdForDelay=null),this.isLocked=!1},_getFormData:function(){return u.getFormData(this.$el)},_onReadSuccess:function(t,e){var n,i,o=this.pagination;t.setOriginalRowList(),o&&e.pagination&&(n=e.pagination.page,i=e.pagination.totalCount,o.setItemsPerPage(this.perPage),o.setTotalItems(i),o.movePageTo(n),this.curPage=n)},_onReadError:function(t,e,n){},reloadData:function(){this._requestReadData(this.lastRequestedReadData)},readData:function(t,e,n){n?(e||(e={}),e.perPage=this.perPage,this._changeSortOptions(e,this.dataModel.sortOptions)):e=s.assign({},this.lastRequestedReadData,e),e.page=t,this._requestReadData(e)},_requestReadData:function(t){var e=1;this._setFormData(t),this.isLocked||(this.renderModel.initializeVariables(),this._lock(),this.requestedFormData=s.clone(t),this.curPage=t.page||this.curPage,e=(this.curPage-1)*this.perPage+1,this.renderModel.set({startNumber:e}),this.lastRequestedReadData=s.clone(t),this.dataModel.fetch({requestType:"readData",data:t,type:this.readDataMethod,success:i.proxy(this._onReadSuccess,this),error:i.proxy(this._onReadError,this),reset:!0}),this.dataModel.setSortOptionValues(t.sortColumn,t.sortAscending)),this.router&&this.router.navigate("read/"+l.toQueryString(t),{trigger:!1})},_onSortChanged:function(t){t.requireFetch&&this._readDataAt(1,!0,t)},_changeSortOptions:function(t,e){e&&("rowKey"===e.columnName?(delete t.sortColumn,delete t.sortAscending):(t.sortColumn=e.columnName,t.sortAscending=e.ascending))},_readDataAt:function(t,e,n){var i;e=!!s.isUndefined(e)||e,i=e?this.requestedFormData:this._getFormData(),i.page=t,i.perPage=this.perPage,this._changeSortOptions(i,n),this._requestReadData(i)},request:function(t,e){var n=s.extend({url:this.api[t],type:null,hasDataParam:!0,checkedOnly:!0,modifiedOnly:!0,showConfirm:!0,updateOriginal:!1},e),i=this._getRequestParam(t,n);return i&&(n.updateOriginal&&this.dataModel.setOriginalRowList(),this._ajax(i)),!!i},download:function(t){var e,n="download"+l.toUpperCaseFirstLetter(t),o=this.requestedFormData,r=this.api[n];"excel"===t?(o.page=this.curPage,o.perPage=this.perPage):o=s.omit(o,"page","perPage"),e=i.param(o),window.location=r+"?"+e},setPerPage:function(t){this.perPage=t,this._readDataAt(1)},_getDataParam:function(t,e){var n,i=this.dataModel,o={createData:["createdRows"],updateData:["updatedRows"],deleteData:["deletedRows"],modifyData:["createdRows","updatedRows","deletedRows"]},r=o[t],a={},l=0;return e=s.defaults(e||{},{hasDataParam:!0,modifiedOnly:!0,checkedOnly:!0}),e.hasDataParam&&(e.modifiedOnly?(n=i.getModifiedRows({checkedOnly:e.checkedOnly}),s.each(n,function(t,e){s.contains(r,e)&&t.length&&(l+=t.length,a[e]=JSON.stringify(t))},this)):(a.rows=i.getRows(e.checkedOnly),l=a.rows.length)),{data:a,count:l}},_getRequestParam:function(t,e){var n={url:this.api[t],type:null,hasDataParam:!0,modifiedOnly:!0,checkedOnly:!0},o=i.extend(n,e),s=this._getDataParam(t,o),r=null;return o.showConfirm&&!this._isConfirmed(t,s.count)||(r={requestType:t,url:o.url,data:s.data,type:o.type}),r},_isConfirmed:function(t,e){var n=!1;return e>0?n=confirm(this._getConfirmMessage(t,e)):alert(this._getConfirmMessage(t,e)),n},_getConfirmMessage:function(t,e){var n=t.replace("Data","Action"),i=d.get(n),o={count:e,actionName:i},s=e>0?"requestConfirm":"noDataResponse";return d.get(s,o)},_ajax:function(t){var e,n=new h(null,t.data);this.trigger("beforeRequest",n),n.isStopped()||(t=i.extend({requestType:""},t),e={url:t.url,data:t.data||{},type:t.type||"POST",dataType:t.dataType||"json",complete:i.proxy(this._onComplete,this,t.complete,t),success:i.proxy(this._onSuccess,this,t.success,t),error:i.proxy(this._onError,this,t.error,t)},t.url&&i.ajax(e))},_onComplete:function(t,e,n){this._unlock()},_onSuccess:function(t,e,n,i,o){var r=n&&n.message,a=new h(null,{httpStatus:i,requestType:e.requestType,requestParameter:e.data,responseData:n});if(this.trigger("response",a),!a.isStopped())if(n&&n.result){if(this.trigger("successResponse",a),a.isStopped())return;s.isFunction(t)&&t(n.data||{},i,o)}else{if(this.trigger("failResponse",a),a.isStopped())return;r&&alert(r)}},_onError:function(t,e,n,i){var o=new h(null,{httpStatus:i,requestType:e.requestType,requestParameter:e.data,responseData:null});this.renderModel.set("state",c.DONE),this.trigger("response",o),o.isStopped()||(this.trigger("errorResponse",o),o.isStopped()||n.readyState>1&&alert(d.get("errorResponse")))}});t.exports=f},function(t,e,n){"use strict";var i=n(9),o=i.Router.extend({initialize:function(t){this.net=t.net},routes:{"read/:queryStr":"read"}});t.exports=o},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(7),r={setInput:{_changeToStringInArray:function(t){return o.each(t,function(e,n){t[n]=String(e)}),t},radio:function(t,e){t.checked=t.value===e},checkbox:function(t,e){o.isArray(e)?t.checked=i.inArray(t.value,this._changeToStringInArray(e))!==-1:t.checked=t.value===e},"select-one":function(t,e){var n=s.toArray(t.options);t.selectedIndex=o.findIndex(n,function(t){return t.value===e||t.text===e})},"select-multiple":function(t,e){var n=s.toArray(t.options);o.isArray(e)?(e=this._changeToStringInArray(e),o.each(n,function(t){t.selected=i.inArray(t.value,e)!==-1||i.inArray(t.text,e)!==-1})):this["select-one"].apply(this,arguments)},defaultAction:function(t,e){t.value=e}},getFormData:function(t){var e={},n=t.serializeArray(),i=s.isExisty;return o.each(n,function(t){var n=t.value||"",o=t.name;i(e[o])?e[o]=[].concat(e[o],n):e[o]=n}),e},getFormElement:function(t,e){var n;return t&&t.length&&(n=e?t.prop("elements")[String(e)]:t.prop("elements")),i(n)},setFormData:function(t,e){o.each(e,function(e,n){this.setFormElementValue(t,n,e)},this)},setFormElementValue:function(t,e,n){var i,r=this.getFormElement(t,e);r.length&&(o.isArray(n)||(n=String(n)),r=s.isHTMLTag(r)?[r]:r,r=s.toArray(r),o.each(r,function(t){i=this.setInput[t.type]?t.type:"defaultAction",this.setInput[i](t,n)},this))},setCursorToEnd:function(t){var e,n=t.value.length;if(t.focus(),t.setSelectionRange)try{t.setSelectionRange(n,n)}catch(t){}else if(t.createTextRange){e=t.createTextRange(),e.collapse(!0),e.moveEnd("character",n),e.moveStart("character",n);try{e.select()}catch(t){}}}};t.exports=r},function(t,e,n){"use strict";var i=n(10),o=n(7),s={pagination:null},r=o.defineClass({init:function(t){this.optionsMap=i.extend(!0,s,t),this.instanceMap={}},getInstance:function(t){return this.instanceMap[t]},setInstance:function(t,e){this.instanceMap[t]=e},getOptions:function(t){return this.optionsMap[t]}});t.exports=r},function(t,e,n){"use strict";function i(t){var e=[a.grid(t.grid),a.scrollbar(t.scrollbar),a.heightResizeHandle(t.heightResizeHandle),a.pagination(t.pagination),a.selection(t.selection)],n=t.cell;return n&&(e=e.concat([a.cell(n.normal),a.cellDummy(n.dummy),a.cellEditable(n.editable),a.cellHead(n.head),a.cellOddRow(n.oddRow),a.cellEvenRow(n.evenRow),a.cellRequired(n.required),a.cellDisabled(n.disabled),a.cellInvalid(n.invalid),a.cellCurrentRow(n.currentRow),a.cellSelectedHead(n.selectedHead),a.cellFocused(n.focused),a.cellFocusedInactive(n.focusedInactive)])),e.join("")}function o(t){var e=i(t);s("#"+u).remove(),r.appendStyleElement(u,e)}var s=n(10),r=n(20),a=n(79),l=n(14).themeName,u="tui-grid-theme-style",d={};d[l.DEFAULT]=n(81),d[l.STRIPED]=n(82),d[l.CLEAN]=n(83),t.exports={apply:function(t,e){var n=d[t];n||(n=d[l.DEFAULT]),n=s.extend(!0,{},n,e),o(n)},isApplied:function(){return 1===s("#"+u).length}}},function(t,e,n){"use strict";function i(t,e){return l(t).bg(e.background).text(e.text).build()}function o(t,e){return l(t).bg(e.background).border(e.border).build()}var s=n(6),r=n(80),a=n(22),l=s.bind(r.createClassRule,r);t.exports={grid:function(t){var e=l(a.CONTAINER).bg(t.background).text(t.text),n=l(a.CONTENT_AREA).border(t.border),i=l(a.TABLE).border(t.border),o=l(a.HEAD_AREA).border(t.border),s=l(a.FOOT_AREA).border(t.border),u=l(a.BORDER_LINE).bg(t.border),d=l(a.SCROLLBAR_HEAD).border(t.border),h=l(a.SCROLLBAR_BORDER).bg(t.border),c=l(a.FOOT_AREA_RIGHT).border(t.border);return r.buildAll([e,n,i,o,s,u,d,h,c])},scrollbar:function(t){var e=r.createWebkitScrollbarRules("."+a.CONTAINER,t),n=r.createIEScrollbarRule("."+a.CONTAINER,t),i=l(a.SCROLLBAR_RIGHT_BOTTOM).bg(t.background),o=l(a.SCROLLBAR_LEFT_BOTTOM).bg(t.background),s=l(a.SCROLLBAR_HEAD).bg(t.background),u=l(a.FOOT_AREA_RIGHT).bg(t.background),d=l(a.BODY_AREA).bg(t.background);return r.buildAll(e.concat([n,i,o,s,u,d]))},heightResizeHandle:function(t){return o(a.HEIGHT_RESIZE_HANDLE,t)},pagination:function(t){return o(a.PAGINATION,t)},selection:function(t){return o(a.LAYER_SELECTION,t)},cell:function(t){var e=l(a.CELL).bg(t.background).border(t.border).borderWidth(t).text(t.text);return e.build()},cellHead:function(t){var e=l(a.CELL_HEAD).bg(t.background).border(t.border).borderWidth(t).text(t.text),n=l(a.HEAD_AREA).bg(t.background),i=l(a.FOOT_AREA).bg(t.background);return r.buildAll([e,n,i])},cellEvenRow:function(t){return l(a.ROW_EVEN+">td").bg(t.background).build()},cellOddRow:function(t){return l(a.ROW_ODD+">td").bg(t.background).build()},cellSelectedHead:function(t){return r.create("."+a.CELL_HEAD+"."+a.CELL_SELECTED).bg(t.background).text(t.text).build()},cellFocused:function(t){var e=l(a.LAYER_FOCUS_BORDER).bg(t.border),n=l(a.LAYER_EDITING).border(t.border);return r.buildAll([e,n])},cellFocusedInactive:function(t){return r.create("."+a.LAYER_FOCUS_DEACTIVE+" ."+a.LAYER_FOCUS_BORDER).bg(t.border).build()},cellEditable:function(t){return i(a.CELL_EDITABLE,t)},cellRequired:function(t){return i(a.CELL_REQUIRED,t)},cellDisabled:function(t){return i(a.CELL_DISABLED,t)},cellDummy:function(t){return i(a.CELL_DUMMY,t)},cellInvalid:function(t){return i(a.CELL_INVALID,t)},cellCurrentRow:function(t){return i(a.CELL_CURRENT_ROW,t)}}},function(t,e,n){"use strict";var i=n(6),o=n(7),s=o.defineClass({init:function(t){if(!i.isString(t)||!t)throw new Error("The Selector must be a string and not be empty.");this._selector=t,this._propValues=[]},add:function(t,e){return e&&this._propValues.push(t+":"+e),this},border:function(t){return this.add("border-color",t)},borderWidth:function(t){var e,n=t.showVerticalBorder,o=t.showHorizontalBorder;return i.isBoolean(n)&&(e=n?"1px":"0",this.add("border-left-width",e).add("border-right-width",e)),i.isBoolean(o)&&(e=o?"1px":"0",this.add("border-top-width",e).add("border-bottom-width",e)),this},bg:function(t){return this.add("background-color",t)},text:function(t){return this.add("color",t)},build:function(){var t="";return this._propValues.length&&(t=this._selector+"{"+this._propValues.join(";")+"}"),t}});t.exports={create:function(t){return new s(t)},createClassRule:function(t){return this.create("."+t)},createWebkitScrollbarRules:function(t,e){return[this.create(t+" ::-webkit-scrollbar").bg(e.background),this.create(t+" ::-webkit-scrollbar-thumb").bg(e.thumb),this.create(t+" ::-webkit-scrollbar-thumb:hover").bg(e.active)]},createIEScrollbarRule:function(t,e){var n=["scrollbar-3dlight-color","scrollbar-darkshadow-color","scrollbar-track-color","scrollbar-shadow-color"],o=["scrollbar-face-color","scrollbar-highlight-color"],s=this.create(t);return i.each(n,function(t){s.add(t,e.background)}),i.each(o,function(t){s.add(t,e.thumb)}),s.add("scrollbar-arrow-color",e.active),s},buildAll:function(t){return i.map(t,function(t){return t.build()}).join("")}}},function(t,e){"use strict";t.exports={grid:{background:"#fff",border:"#ccc",text:"#444"},selection:{background:"#4daaf9",border:"#004082"},heightResizeHandle:{border:"#ccc",background:"#fff"},pagination:{border:"transparent",background:"transparent"},scrollbar:{background:"#f5f5f5",thumb:"#d9d9d9",active:"#c1c1c1"},cell:{normal:{background:"#fbfbfb",border:"#e0e0e0",showVerticalBorder:!0,showHorizontalBorder:!0},head:{background:"#eee",border:"#ccc",showVerticalBorder:!0,showHorizontalBorder:!0},selectedHead:{background:"#d8d8d8"},focused:{border:"#418ed4"},focusedInactive:{border:"#aaa"},required:{background:"#fffdeb"},editable:{background:"#fff"},disabled:{text:"#b0b0b0"},dummy:{background:"#fff"},invalid:{background:"#ff8080"},evenRow:{},oddRow:{},currentRow:{}}}},function(t,e,n){"use strict";var i=n(10),o=n(81);t.exports=i.extend(!0,{},o,{cell:{normal:{background:"#fff",border:"#e8e8e8",showVerticalBorder:!1,showHorizontalBorder:!1},oddRow:{background:"#f3f3f3"},evenRow:{background:"#fff"},head:{background:"#fff",showVerticalBorder:!1,showHorizontalBorder:!1}}})},function(t,e,n){"use strict";var i=n(10),o=n(81);t.exports=i.extend(!0,{},o,{grid:{border:"#c0c0c0"},cell:{normal:{background:"#fff",border:"#e0e0e0",showVerticalBorder:!1,showHorizontalBorder:!0},head:{background:"#fff",border:"#e0e0e0",showVerticalBorder:!1,showHorizontalBorder:!0},selectedHead:{background:"#e0e0e0"}}})}])}); \ No newline at end of file +var u=this.isNew()?"create":i.patch?"patch":"update";"patch"!==u||i.attrs||(i.attrs=o);var d=this.sync(u,this,i);return this.attributes=l,d},destroy:function(t){t=t?n.clone(t):{};var e=this,i=t.success,o=t.wait,s=function(){e.stopListening(),e.trigger("destroy",e,e.collection,t)};t.success=function(n){o&&s(),i&&i.call(t.context,e,n,t),e.isNew()||e.trigger("sync",e,n,t)};var r=!1;return this.isNew()?n.defer(t.success):(K(this,t),r=this.sync("delete",this,t)),o||s(),r},url:function(){var t=n.result(this,"urlRoot")||n.result(this.collection,"url")||W();if(this.isNew())return t;var e=this.get(this.idAttribute);return t.replace(/[^\/]$/,"$&/")+encodeURIComponent(e)},parse:function(t,e){return t},clone:function(){return new this.constructor(this.attributes)},isNew:function(){return!this.has(this.idAttribute)},isValid:function(t){return this._validate({},n.extend({},t,{validate:!0}))},_validate:function(t,e){if(!e.validate||!this.validate)return!0;t=n.extend({},this.attributes,t);var i=this.validationError=this.validate(t,e)||null;return!i||(this.trigger("invalid",this,i,n.extend(e,{validationError:i})),!1)}});var w={keys:1,values:1,pairs:1,invert:1,pick:0,omit:0,chain:1,isEmpty:1};a(v,w,"attributes");var C=e.Collection=function(t,e){e||(e={}),e.model&&(this.model=e.model),void 0!==e.comparator&&(this.comparator=e.comparator),this._reset(),this.initialize.apply(this,arguments),t&&this.reset(t,n.extend({silent:!0},e))},y={add:!0,remove:!0,merge:!0},R={add:!0,remove:!1},b=function(t,e,n){n=Math.min(Math.max(n,0),t.length);var i,o=Array(t.length-n),s=e.length;for(i=0;ithis.length&&(o=this.length),o<0&&(o+=this.length+1);var s,r,a=[],l=[],u=[],d=[],h={},c=e.add,g=e.merge,f=e.remove,m=!1,p=this.comparator&&null==o&&e.sort!==!1,_=n.isString(this.comparator)?this.comparator:null;for(r=0;r7),this._useHashChange=this._wantsHashChange&&this._hasHashChange,this._wantsPushState=!!this.options.pushState,this._hasPushState=!(!this.history||!this.history.pushState),this._usePushState=this._wantsPushState&&this._hasPushState,this.fragment=this.getFragment(),this.root=("/"+this.root+"/").replace(B,"/"),this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){var e=this.root.slice(0,-1)||"/";return this.location.replace(e+"#"+this.getPath()),!0}this._hasPushState&&this.atRoot()&&this.navigate(this.getHash(),{replace:!0})}if(!this._hasHashChange&&this._wantsHashChange&&!this._usePushState){this.iframe=document.createElement("iframe"),this.iframe.src="javascript:0",this.iframe.style.display="none",this.iframe.tabIndex=-1;var i=document.body,o=i.insertBefore(this.iframe,i.firstChild).contentWindow;o.document.open(),o.document.close(),o.location.hash="#"+this.fragment}var s=window.addEventListener||function(t,e){return attachEvent("on"+t,e)};if(this._usePushState?s("popstate",this.checkUrl,!1):this._useHashChange&&!this.iframe?s("hashchange",this.checkUrl,!1):this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,this.interval)),!this.options.silent)return this.loadUrl()},stop:function(){var t=window.removeEventListener||function(t,e){return detachEvent("on"+t,e)};this._usePushState?t("popstate",this.checkUrl,!1):this._useHashChange&&!this.iframe&&t("hashchange",this.checkUrl,!1),this.iframe&&(document.body.removeChild(this.iframe),this.iframe=null),this._checkUrlInterval&&clearInterval(this._checkUrlInterval),I.started=!1},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var e=this.getFragment();return e===this.fragment&&this.iframe&&(e=this.getHash(this.iframe.contentWindow)),e!==this.fragment&&(this.iframe&&this.navigate(e),void this.loadUrl())},loadUrl:function(t){return!!this.matchRoot()&&(t=this.fragment=this.getFragment(t),n.some(this.handlers,function(e){if(e.route.test(t))return e.callback(t),!0}))},navigate:function(t,e){if(!I.started)return!1;e&&e!==!0||(e={trigger:!!e}),t=this.getFragment(t||"");var n=this.root;""!==t&&"?"!==t.charAt(0)||(n=n.slice(0,-1)||"/");var i=n+t;if(t=this.decodeFragment(t.replace(F,"")),this.fragment!==t){if(this.fragment=t,this._usePushState)this.history[e.replace?"replaceState":"pushState"]({},document.title,i);else{if(!this._wantsHashChange)return this.location.assign(i);if(this._updateHash(this.location,t,e.replace),this.iframe&&t!==this.getHash(this.iframe.contentWindow)){var o=this.iframe.contentWindow;e.replace||(o.document.open(),o.document.close()),this._updateHash(o.location,t,e.replace)}}return e.trigger?this.loadUrl(t):void 0}},_updateHash:function(t,e,n){if(n){var i=t.href.replace(/(javascript:|#).*$/,"");t.replace(i+"#"+e)}else t.hash="#"+e}}),e.history=new I;var P=function(t,e){var i,o=this;return i=t&&n.has(t,"constructor")?t.constructor:function(){return o.apply(this,arguments)},n.extend(i,o,e),i.prototype=n.create(o.prototype,t),i.prototype.constructor=i,i.__super__=o.prototype,i};v.extend=C.extend=N.extend=x.extend=I.extend=P;var W=function(){throw new Error('A "url" property or function must be specified')},K=function(t,e){var n=e.error;e.error=function(i){n&&n.call(e.context,t,i,e),t.trigger("error",t,i,e)}};return e})}).call(e,function(){return this}())},function(t,n){t.exports=e},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(7),r=n(12),a=n(15),l=n(23),u=n(24),d=n(25),h=n(26),c=n(27),g=n(28),f=n(31),m=n(32),p=n(33),_=n(34),M=n(20),v={data:[],columns:[],keyColumnName:null,selectType:"",autoNumbering:!0,header:{height:35,complexColumns:[]},columnOptions:{minWidth:50,resizable:!0,frozenCount:0},fitToParentHeight:!1,fixedRowHeight:!1,fixedHeight:!1,showDummyRows:!1,virtualScrolling:!1,copyOptions:null,scrollX:!0,scrollY:!0,useClientSort:!0,editingEvent:"dblclick",rowHeight:"auto",bodyHeight:"auto",minRowHeight:27,minBodyHeight:130,selectionUnit:"cell"},w=s.defineClass({init:function(t,e,n){t=i.extend(!0,{},v,t),this.gridId=t.gridId,this.columnModel=this._createColumnModel(t),this.dataModel=this._createDataModel(t,e,n),this.dimensionModel=this._createDimensionModel(t,e,n),this.coordRowModel=this._createCoordRowModel(e),this.focusModel=this._createFocusModel(t,e,n),this.coordColumnModel=this._createCoordColumnModel(t.columnOptions,n),this.renderModel=this._createRenderModel(t),this.coordConverterModel=this._createCoordConverterModel(),this.selectionModel=this._createSelectionModel(t,n),this.summaryModel=this._createSummaryModel(t.footer),this.clipboardModel=this._createClipboardModel(t,n)},_createColumnModel:function(t){return new r({keyColumnName:t.keyColumnName,frozenCount:t.columnOptions.frozenCount,complexHeaderColumns:t.header.complexColumns,copyOptions:t.copyOptions,columns:t.columns,rowHeaders:t.rowHeaders})},_createDataModel:function(t,e,n){return new a([],{gridId:this.gridId,domState:e,domEventBus:n,columnModel:this.columnModel,useClientSort:t.useClientSort,publicObject:t.publicObject})},_createDimensionModel:function(t,e,n){var i,o=!isNaN(t.rowHeight),s="auto"!==t.bodyHeight,r=t.minRowHeight,a=t.minBodyHeight,u=o?Math.max(r,t.rowHeight):r,d=s?Math.max(a,t.bodyHeight):a,h={headerHeight:t.header.height,bodyHeight:d,footerHeight:t.footer?t.footer.height:0,rowHeight:u,fitToParentHeight:"fitToParent"===t.bodyHeight,scrollX:!!t.scrollX,scrollY:!!t.scrollY,minimumColumnWidth:t.columnOptions.minWidth,fixedRowHeight:o,fixedHeight:s,minRowHeight:r,minBodyHeight:a||u};return o===!1&&t.virtualScrolling&&(M.warning("If the virtualScrolling is set to true, the rowHeight must be set to number type."),h.fixedRowHeight=!0),i=new l(h,{columnModel:this.columnModel,dataModel:this.dataModel,domState:e,domEventBus:n})},_createCoordRowModel:function(t){return new u(null,{dataModel:this.dataModel,dimensionModel:this.dimensionModel,domState:t})},_createCoordColumnModel:function(t,e){var n={resizable:t.resizable};return new d(n,{columnModel:this.columnModel,dimensionModel:this.dimensionModel,domEventBus:e})},_createCoordConverterModel:function(){return new h(null,{columnModel:this.columnModel,dataModel:this.dataModel,dimensionModel:this.dimensionModel,focusModel:this.focusModel,coordRowModel:this.coordRowModel,renderModel:this.renderModel,coordColumnModel:this.coordColumnModel})},_createFocusModel:function(t,e,n){return new c(null,{columnModel:this.columnModel,dataModel:this.dataModel,coordRowModel:this.coordRowModel,domEventBus:n,domState:e,editingEvent:t.editingEvent})},_createSelectionModel:function(t,e){return new m({selectionUnit:t.selectionUnit},{columnModel:this.columnModel,dataModel:this.dataModel,dimensionModel:this.dimensionModel,coordConverterModel:this.coordConverterModel,coordRowModel:this.coordRowModel,renderModel:this.renderModel,focusModel:this.focusModel,domEventBus:e})},_createRenderModel:function(t){var e,n,i;return e={emptyMessage:t.emptyMessage,showDummyRows:t.showDummyRows},n={columnModel:this.columnModel,dataModel:this.dataModel,dimensionModel:this.dimensionModel,focusModel:this.focusModel,coordRowModel:this.coordRowModel,coordColumnModel:this.coordColumnModel},new(i=t.virtualScrolling?f:g)(e,n)},_createSummaryModel:function(t){var e=[];return t&&t.columnContent?(o.each(t.columnContent,function(t,n){o.isFunction(t.template)&&t.useAutoSummary!==!1&&e.push(n)}),new p(null,{dataModel:this.dataModel,autoColumnNames:e})):null},_createClipboardModel:function(t,e){return new _(null,{columnModel:this.columnModel,dataModel:this.dataModel,selectionModel:this.selectionModel,renderModel:this.renderModel,focusModel:this.focusModel,copyOptions:t.copyOptions,domEventBus:e})},destroy:function(){o.each(this,function(t,e){t&&s.isFunction(t._destroy)&&t._destroy(),t&&s.isFunction(t.stopListening)&&t.stopListening(),this[e]=null},this)}});t.exports=w},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(7),r=n(13),a=n(14).frame,l={rowNum:{type:"rowNum",title:"No.",name:"_number",align:"center",fixedWidth:!0,width:60,hidden:!1},checkbox:{type:"checkbox",title:'',name:"_button",align:"center",fixedWidth:!0,width:40,hidden:!1,editOptions:{type:"mainButton"}},radio:{type:"radio",title:"select",name:"_button",align:"center",fixedWidth:!0,width:40,hidden:!1,editOptions:{type:"mainButton"}}},u=r.extend({initialize:function(){r.prototype.initialize.apply(this,arguments),this.textType={normal:!0,text:!0,password:!0},this._setColumns(this.get("rowHeaders"),this.get("columns")),this.on("change",this._onChange,this)},defaults:{keyColumnName:null,frozenCount:0,rowHeaders:[],dataColumns:[],visibleColumns:[],selectType:"",columnModelMap:{},relationsMap:{},complexHeaderColumns:[],copyOptions:{useFormattedValue:!1}},at:function(t,e){var n=e?this.getVisibleColumns():this.get("dataColumns");return n[t]},indexOfColumnName:function(t,e){var n;return n=e?this.getVisibleColumns():this.get("dataColumns"),o.findIndex(n,{name:t})},isLside:function(t){var e=this.indexOfColumnName(t,!0);return e>-1&&er&&(u=1),i||(u=-u),u},_removePrivateProp:function(t){return o.map(t,function(t){return o.omit(t,r.privateProperties)})},removeRow:function(t,e){var n,i,s,r,a=this.get(t);a&&(e&&e.keepRowSpanData&&(s=o.clone(a.attributes)),r=this.indexOf(a),n=o.clone(a.getRowSpanData()),i=this.at(r+1),this.remove(a,{silent:!0}),this._syncRowSpanDataForRemove(n,i,s),e&&e.removeOriginalData&&this.setOriginalRowList(),this.trigger("remove",t,r))},_syncRowSpanDataForRemove:function(t,e,n){t&&o.each(t,function(t,i){var o,s,r,a={};if(t.isMainRow){if(1===t.count)return;o=e,r=t.count-1,s=1,r>1&&(a.mainRowKey=o.get("rowKey"),a.isMainRow=!0),o.set(i,n?n[i]:"",{silent:!0})}else o=this.get(t.mainRowKey),r=o.getRowSpanData(i).count-1,s=-t.count;r>1?(a.count=r,o.setRowSpanData(i,a),this._updateSubRowSpanData(o,i,s,r)):o.setRowSpanData(i,null)},this)},_createDummyRow:function(){var t=this.columnModel.get("dataColumns"),e={};return o.each(t,function(t){e[t.name]=""},this),e},append:function(t,e){var n,i=this._createModelList(t);return e=o.extend({at:this.length},e),n={at:e.at,add:!0,silent:!0},this.add(i,n),this._syncRowSpanDataForAppend(e.at,i.length,e.extendPrevRowSpan),this.trigger("add",i,e),i},prepend:function(t,e){return e=e||{},e.at=0,this.append(t,e)},getRowData:function(t,e){var n=this.get(t),i=n?n.toJSON():null;return e?JSON.stringify(i):i},getRowDataAt:function(t,e){var n=this.at(t),i=n?n.toJSON():null;return e?JSON.stringify(n):i},getValue:function(t,e,n){var i,o;return n?i=this.getOriginal(t,e):(o=this.get(t),i=o&&o.get(e)),i},setValue:function(t,e,n,i){var o=this.get(t);return!!o&&(o.set(e,n,{silent:i}),!0)},getColumnValues:function(t,e){var n=this.pluck(t);return e?JSON.stringify(n):n},setColumnValues:function(t,e,n,i){var s={},r={disabled:!1,editable:!0};s[t]=e,n=!!o.isUndefined(n)||n,this.forEach(function(e){n&&(r=e.getCellState(t)),!r.disabled&&r.editable&&e.set(s,{silent:i})},this)},getRowSpanData:function(t,e){var n=this.get(t);return n?n.getRowSpanData(e):null},isModified:function(){var t=o.values(this.getModifiedRows());return o.some(t,function(t){return t.length>0})},setDisabled:function(t){this.disabled!==t&&(this.disabled=t,this.trigger("disabledChanged"))},enableRow:function(t){this.get(t).setRowState("")},disableRow:function(t){this.get(t).setRowState("DISABLED")},enableCheck:function(t){this.get(t).setRowState("")},disableCheck:function(t){this.get(t).setRowState("DISABLED_CHECK")},check:function(t,e){var n=this.get(t).getRowState().isDisabledCheck,i=this.columnModel.get("selectType");!n&&i&&("radio"===i&&this.uncheckAll(),this.setValue(t,"_button",!0,e))},uncheck:function(t,e){this.setValue(t,"_button",!1,e)},checkAll:function(){this.setColumnValues("_button",!0)},uncheckAll:function(){this.setColumnValues("_button",!1)},_createModelList:function(t){var e,n=[];return t=t||this._createDummyRow(),o.isArray(t)||(t=[t]),e=this._formatData(t),o.each(e,function(t){var e=new r(t,{collection:this, +parse:!0});n.push(e)},this),n},_syncRowSpanDataForAppend:function(t,e,n){var i=this.at(t-1);i&&o.each(i.getRowSpanData(),function(t,o){var s,r,a,l;0!==t.count&&(t.isMainRow?(s=i,r=t,a=1):(s=this.get(t.mainRowKey),r=s.getRowSpanData()[o],a=-t.count+1),(r.count>a||n)&&(r.count+=e,l=r.count,this._updateSubRowSpanData(s,o,a,l)))},this)},_updateSubRowSpanData:function(t,e,n,i){var o,s,r=this.indexOf(t),a=t.get("rowKey");for(s=n;s=0)&&(d[s]=t[o-n]);l.set(d)},getElement:function(t,e){var n=this.getMainRowKey(t,e);return this.domState.getElement(n,e)},getCheckedState:function(){var t=0,e=0;return this.forEach(function(n){var i=n.getCellState("_button");!i.disabled&&i.editable&&(t+=1,n.get("_button")&&(e+=1))}),{available:t,checked:e}}});t.exports=a},function(t,e,n){"use strict";var i=n(9),o=i.Collection.extend({clear:function(){return this.each(function(t){t.stopListening(),t=null}),this.reset([],{silent:!0}),this}});t.exports=o},function(t,e,n){"use strict";var i=n(6),o=n(9),s=n(7),r=n(13),a=n(18),l=n(19),u=n(20),d=n(21),h=n(22),c=["_button","_number","_extraData"],g="REQUIRED",f="TYPE_NUMBER",m=r.extend({initialize:function(){r.prototype.initialize.apply(this,arguments),this.extraDataManager=new a(this.get("_extraData")),this.columnModel=this.collection.columnModel,this.validateMap={},this.on("change",this._onChange,this)},idAttribute:"rowKey",set:function(t,e,n){var s,r=i.isObject(t);r&&(n=e),!this.columnModel||n&&n.silent?o.Model.prototype.set.apply(this,arguments):(r?s=t:(s={},s[t]=e),i.each(s,function(t,e){this._executeOnBeforeChange(e,t)||delete s[e]},this),o.Model.prototype.set.call(this,s,n))},parse:function(t){return t._extraData||(t._extraData={}),t},_triggerExtraDataChangeEvent:function(){this.trigger("extraDataChanged",this.get("_extraData"))},_triggerCheckboxChangeEvent:function(t){var e={rowKey:this.get("rowKey")};t?this.trigger("check",e):this.trigger("uncheck",e)},_onChange:function(){var t=i.omit(this.changed,c);i.has(this.changed,"_button")&&this._triggerCheckboxChangeEvent(this.changed._button),this.isDuplicatedPublicChanged(t)||i.each(t,function(t,e){var n=this.columnModel.getColumnModel(e);n&&(this.collection.syncRowSpannedData(this,e,t),this._executeOnAfterChange(e),this.validateCell(e,!0))},this)},_validateCellData:function(t){var e,n=this.columnModel.getColumnModel(t).validation,o="";return n&&(e=this.get(t),n.required&&u.isBlank(e)?o=g:"number"!==n.dataType||i.isNumber(e)||(o=f)),o},validateCell:function(t,e){var n;return!e&&t in this.validateMap?this.validateMap[t]:(n=this._validateCellData(t),n?this.addCellClassName(t,h.CELL_INVALID):this.removeCellClassName(t,h.CELL_INVALID),this.validateMap[t]=n,n)},_createChangeCallbackEvent:function(t,e){return new l(null,{rowKey:this.get("rowKey"),columnName:t,value:e,instance:this.collection.publicObject})},_executeOnBeforeChange:function(t,e){var n,i=this.columnModel.getColumnModel(t),o=this.get(t)!==e;return!(o&&i&&i.onBeforeChange)||(n=this._createChangeCallbackEvent(t,e),i.onBeforeChange(n),!n.isStopped())},_executeOnAfterChange:function(t){var e,n=this.columnModel.getColumnModel(t),i=this.get(t);return!n.onAfterChange||(e=this._createChangeCallbackEvent(t,i),n.onAfterChange(e),!e.isStopped())},getPrivateProperties:function(){return c},getRowState:function(){return this.extraDataManager.getRowState()},getClassNameList:function(t){var e=this.columnModel.getColumnModel(t),n=u.isMetaColumn(t),i=this.extraDataManager.getClassNameList(t),o=this.getCellState(t);return e.className&&i.push(e.className),e.ellipsis&&i.push(h.CELL_ELLIPSIS),e.validation&&e.validation.required&&i.push(h.CELL_REQUIRED),n?i.push(h.CELL_HEAD):o.editable&&i.push(h.CELL_EDITABLE),o.disabled&&i.push(h.CELL_DISABLED),this._makeUniqueStringArray(i)},_makeUniqueStringArray:function(t){var e=i.uniq(t.join(" ").split(" "));return i.without(e,"")},getCellState:function(t){var e,n,o=["_number","normal"],s=this.columnModel,r=this.collection.disabled,a=!0,l=s.getEditType(t);return n=this.executeRelationCallbacksAll(["disabled","editable"])[t],e=this.getRowState(),r||(r="_button"===t?e.disabledCheck:e.disabled,r=r||!(!n||!n.disabled)),a=!i.contains(o,l)&&!(n&&n.editable===!1),{editable:a,disabled:r}},isEditable:function(t){var e=this.getCellState(t);return!e.disabled&&e.editable},isDisabled:function(t){var e=this.getCellState(t);return e.disabled},getRowSpanData:function(t){var e=this.collection.isRowSpanEnable(),n=this.get("rowKey");return this.extraDataManager.getRowSpanData(t,n,e)},getHeight:function(){return this.extraDataManager.getHeight()},setHeight:function(t){this.extraDataManager.setHeight(t),this._triggerExtraDataChangeEvent()},setRowSpanData:function(t,e){this.extraDataManager.setRowSpanData(t,e),this._triggerExtraDataChangeEvent()},setRowState:function(t,e){this.extraDataManager.setRowState(t),e||this._triggerExtraDataChangeEvent()},addCellClassName:function(t,e){this.extraDataManager.addCellClassName(t,e),this._triggerExtraDataChangeEvent()},addClassName:function(t){this.extraDataManager.addClassName(t),this._triggerExtraDataChangeEvent()},removeCellClassName:function(t,e){this.extraDataManager.removeCellClassName(t,e),this._triggerExtraDataChangeEvent()},removeClassName:function(t){this.extraDataManager.removeClassName(t),this._triggerExtraDataChangeEvent()},_getStringOfListItems:function(t,e){var n,o,r,a,l,d=this.get(t),h=this.columnModel.getColumnModel(t);return s.isExisty(s.pick(h,"editOptions","listItems"))?(n=this.executeRelationCallbacksAll(["listItems"])[t],l=n&&n.listItems,o=l?n.listItems:h.editOptions.listItems,r=typeof o[0].value,a=u.toString(d).split(","),r!==typeof a[0]&&(a=i.map(a,function(t){return u.convertValueType(t,r)})),i.each(a,function(t,n){var s=i.findWhere(o,{value:t}),r=s&&(e?s.text:s.value)||"";a[n]=r},this),a.join(",")):""},_isListType:function(t){return i.contains(["select","radio","checkbox"],t)},isDuplicatedPublicChanged:function(t){return!(!this._timeoutIdForChanged||!i.isEqual(this._lastPublicChanged,t))||(clearTimeout(this._timeoutIdForChanged),this._timeoutIdForChanged=setTimeout(i.bind(function(){this._timeoutIdForChanged=null},this),10),this._lastPublicChanged=t,!1)},getValueString:function(t){var e=this.columnModel,n=e.copyVisibleTextOfEditingColumn(t),i=e.getEditType(t),o=e.getColumnModel(t),r=this.get(t);if(this._isListType(i)){if(!s.isExisty(s.pick(o,"editOptions","listItems",0,"value")))throw new Error('Check "'+t+"\"'s editOptions.listItems property out in your ColumnModel.");r=this._getStringOfListItems(t,n)}else"password"===i&&(r="");return r=u.toString(r),r=d.addDoubleQuotes(r)},executeRelationCallbacksAll:function(t){var e=this.attributes,n=this.columnModel.get("relationsMap"),o={};return i.isEmpty(t)&&(t=["listItems","disabled","editable"]),i.each(n,function(n,s){var r=e[s];i.each(n,function(n){this._executeRelationCallback(n,t,r,e,o)},this)},this),o},_executeRelationCallback:function(t,e,n,o,s){var r=this.getRowState(),a=t.targetNames;i.each(e,function(e){var l;r.disabled&&"disabled"===e||(l=t[e],"function"==typeof l&&i.each(a,function(t){s[t]=s[t]||{},s[t][e]=l(n,o)},this))},this)}},{privateProperties:c});t.exports=m},function(t,e,n){"use strict";var i=n(6),o=n(7),s=o.defineClass({init:function(t){this.data=t||{}},getRowSpanData:function(t,e,n){var i=null;return n&&(i=this.data.rowSpanData,t&&i&&(i=i[t])),!i&&t&&(i={count:0,isMainRow:!0,mainRowKey:e}),i},getRowState:function(){var t={disabledCheck:!1,disabled:!1,checked:!1};switch(this.data.rowState){case"DISABLED":t.disabled=!0;case"DISABLED_CHECK":t.disabledCheck=!0;break;case"CHECKED":t.checked=!0}return t},setRowState:function(t){this.data.rowState=t},setRowSpanData:function(t,e){var n=i.assign({},this.data.rowSpanData);t&&(e?n[t]=e:n[t]&&delete n[t],this.data.rowSpanData=n)},addCellClassName:function(t,e){var n,o;n=this.data.className||{},n.column=n.column||{},o=n.column[t]||[],i.contains(o,e)||(o.push(e),n.column[t]=o,this.data.className=n)},addClassName:function(t){var e,n;e=this.data.className||{},n=e.row||[],o.inArray(t,n)===-1&&(n.push(t),e.row=n,this.data.className=e)},getClassNameList:function(t){var e=this.data.className,n=Array.prototype.push,i=[];return e&&(e.row&&n.apply(i,e.row),t&&e.column&&e.column[t]&&n.apply(i,e.column[t])),i},_removeClassNameFromArray:function(t,e){var n=t.join(" ").split(" ");return i.without(n,e)},removeCellClassName:function(t,e){var n=this.data.className;o.pick(n,"column",t)&&(n.column[t]=this._removeClassNameFromArray(n.column[t],e),this.data.className=n)},removeClassName:function(t){var e=this.data.className;e&&e.row&&(e.row=this._removeClassNameFromArray(e.row,t),this.className=e)},setHeight:function(t){this.data.height=t},getHeight:function(){return this.data.height}});t.exports=s},function(t,e,n){"use strict";var i=n(6),o=n(7),s=n(20),r=n(14).attrName,a={ROW_HEAD:"rowHead",COLUMN_HEAD:"columnHead",DUMMY:"dummy",CELL:"cell",ETC:"etc"},l=o.defineClass({init:function(t,e){this._stopped=!1,t&&(this.nativeEvent=t),e&&this.setData(e)},setData:function(t){i.extend(this,t)},stop:function(){this._stopped=!0},isStopped:function(){return this._stopped}});l.getTargetInfo=function(t){var e,n,i=t.closest("td"),o=a.ETC;return 1===i.length?(e=i.attr(r.ROW_KEY),n=i.attr(r.COLUMN_NAME),o=e&&n?s.isMetaColumn(n)?a.ROW_HEAD:a.CELL:a.DUMMY):(i=t.closest("th"),1===i.length&&(n=i.attr(r.COLUMN_NAME),o=a.COLUMN_HEAD)),s.pruneObject({targetType:o,rowKey:s.strToNumber(e),columnName:n})},l.targetTypeConst=a,t.exports=l},function(t,e,n){"use strict";function i(t,e){var n,i,o,s="",r=0;for(e=!!e,i=t.split(/(%(?:d0|d1)%.{2})/),n=i.length;r]*\ssrc=["']?([^>"']+)["']?[^>]*>/i),t=e?e[1]:""):t=t.replace(//gi,""),t=s.trim(a.decodeHTMLEntity(t.replace(/<\/?(?:h[1-5]|[a-z]+(?::[a-z]+)?)[^>]*>/gi,"")))),t},toString:function(t){return r.isUndefined(t)||r.isNull(t)?"":String(t)},getUniqueKey:function(){return this.uniqueId+=1,this.uniqueId},toQueryString:function(t){var e=[];return r.each(t,function(t,n){r.isString(t)||r.isNumber(t)||(t=JSON.stringify(t)),t=encodeURIComponent(unescape(t)),t&&e.push(n+"="+t)}),e.join("&")},toQueryObject:function(t){var e=t.split("&"),n={};return r.each(e,function(t){var e,o,s=t.split("=");e=s[0],o=i(s[1]);try{o=JSON.parse(o)}catch(t){}r.isNull(o)||(n[e]=o)}),n},convertValueType:function(t,e){return"string"===e?String(t):"number"===e?Number(t):"boolean"===e?Boolean(t):t},toUpperCaseFirstLetter:function(t){return t.charAt(0).toUpperCase()+t.slice(1)},clamp:function(t,e,n){var i;return e>n&&(i=e,e=n,n=i),Math.max(e,Math.min(t,n))},isOptionEnabled:function(t){return r.isObject(t)||t===!0},appendStyleElement:function(t,e){var n=document.createElement("style");n.type="text/css",n.id=t,n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e)),document.getElementsByTagName("head")[0].appendChild(n)},warning:function(t){console&&console.warn&&console.warn(t)},replaceText:function(t,e){return t.replace(/\{\{(\w*)\}\}/g,function(t,n){return e.hasOwnProperty(n)?e[n]:""})}},t.exports=o},function(t,e,n){"use strict";function i(t,e,n,i){var o,s,r=n[0],a=n[1],l=i[0],u=i[1];for(s=l;s0},getAvailableTotalWidth:function(t){var e=this.get("width"),n=t+1+(this.isDivisionBorderDoubled()?1:0),i=n*a,o=e-this.getScrollYWidth()-i;return o},getBodySize:function(){var t=this.get("lsideWidth"),e=this.get("rsideWidth")-this.getScrollYWidth(),n=this.get("bodyHeight")-this.getScrollXHeight();return{height:n,rsideWidth:e,totalWidth:t+e}},getOverflowFromMousePosition:function(t,e){var n=this.getPositionFromBodyArea(t,e),i=this.getBodySize();return this._judgeOverflow(n,i)},_judgeOverflow:function(t,e){var n=t.x,i=t.y,o=0,s=0;return i<0?o=-1:i>e.height&&(o=1),n<0?s=-1:n>e.totalWidth&&(s=1),{x:s,y:o}},getScrollXHeight:function(){return this.get("scrollX")?this.get("scrollBarSize"):0},getScrollYWidth:function(){return this.get("scrollY")?this.get("scrollBarSize"):0},_calcRealBodyHeight:function(t){var e=this.get("headerHeight")+this.get("footerHeight")+r;return t-e},_getMinBodyHeight:function(){return this.get("minBodyHeight")+2*a+this.getScrollXHeight()},_getMinLeftSideWidth:function(){var t,e=this.get("minimumColumnWidth"),n=this.columnModel.getVisibleFrozenCount(!0),i=0;return n&&(t=(n+1)*a,i=t+e*n),i},getMaxLeftSideWidth:function(){var t=Math.ceil(.9*this.get("width"));return t&&(t=Math.max(t,this._getMinLeftSideWidth())),t},setWidth:function(t){t>0&&(this.set("width",t),this.trigger("setWidth",t))},setHeight:function(t){t>0&&this.set("bodyHeight",Math.max(this._calcRealBodyHeight(t),this._getMinBodyHeight()))},getHeight:function(){return this.get("bodyHeight")+this.get("headerHeight")},refreshLayout:function(){var t=this.domState,e=t.getOffset();this.set({offsetTop:e.top,offsetLeft:e.left,width:t.getWidth()}),this.get("fitToParentHeight")&&this.setHeight(t.getParentHeight())},getBodyOffsetTop:function(){var t=this.domState.getOffset().top;return t+this.get("headerHeight")+a+r},getPositionFromBodyArea:function(t,e){var n=this.domState.getOffset().left,i=this.getBodyOffsetTop();return{x:t-n,y:e-i}}});t.exports=l},function(t,e,n){"use strict";var i=n(6),o=n(20),s=n(13),r=n(14).dimension.CELL_BORDER_WIDTH,a=s.extend({initialize:function(t,e){this.dataModel=e.dataModel,this.dimensionModel=e.dimensionModel,this.domState=e.domState,this.rowHeights=[],this.rowOffsets=[],this.dimensionModel.get("fixedRowHeight")&&this.listenTo(this.dataModel,"add remove reset sort",this.syncWithDataModel)},syncWithDom:function(){var t,e,n,i,o;if(!this.dimensionModel.get("fixedRowHeight")){for(t=this.domState.getRowHeights(),e=this._getHeightFromData(),n=[],i=0,o=e.length;i0)for(;i>=0&&r>0;)n=Math.max(o,t[i]-r),r-=t[i]-n,t[i]=n,i-=1;else r<0&&(t[i]+=Math.abs(r));return t},_calculateColumnWidth:function(t){return t=this._fillEmptyWidth(t),t=this._applyMinimumWidth(t),t=this._adjustWidths(t)},_fillEmptyWidth:function(t){var e=this.dimensionModel.getAvailableTotalWidth(t.length),n=e-r.sum(t),o=[];return i.each(t,function(t,e){t||o.push(e)}),this._distributeExtraWidthEqually(t,n,o)},_getFrameWidth:function(t){var e=0;return t.length&&(e=r.sum(t)+(t.length+1)*d),e},_addExtraColumnWidth:function(t,e){var n=this._fixedWidthFlags,o=[];return i.each(n,function(t,e){t||o.push(e)}),this._distributeExtraWidthEqually(t,e,o)},_reduceExcessColumnWidth:function(t,e){var n=this._minWidths,o=this._fixedWidthFlags,s=[];return i.each(t,function(t,e){o[e]||s.push({index:e,width:t-n[e]})}),this._reduceExcessColumnWidthSub(i.clone(t),e,s)},_reduceExcessColumnWidthSub:function(t,e,n){var o,s=Math.round(e/n.length),r=[];return i.each(n,function(n){n.widthr.length?this._reduceExcessColumnWidthSub(t,e,r):(o=i.pluck(n,"index"),this._distributeExtraWidthEqually(t,e,o))},_distributeExtraWidthEqually:function(t,e,n){var o=n.length,s=Math.round(e/o),r=s*o-e,a=i.clone(t);return i.each(n,function(t){a[t]+=s}),n.length&&(a[i.last(n)]-=r),a},_applyMinimumWidth:function(t){var e=this._minWidths,n=i.clone(t);return i.each(n,function(t,i){var o=e[i];t0&&o>l?this._addExtraColumnWidth(t,a):e&&a<0?this._reduceExcessColumnWidth(t,a):t},_onDimensionWidthChange:function(){var t=this.get("widths");this._isModified||(t=this._adjustWidths(t,!0)),this._setColumnWidthVariables(t)},getWidths:function(t){var e=this.columnModel.getVisibleFrozenCount(!0),n=[];switch(t){case u.L:n=this.get("widths").slice(0,e);break;case u.R:n=this.get("widths").slice(e);break;default:n=this.get("widths")}return n},getFrameWidth:function(t){var e=this.columnModel.getVisibleFrozenCount(!0),n=this.getWidths(t),o=this._getFrameWidth(n);return i.isUndefined(t)&&e>0&&(o+=d),o},setColumnWidth:function(t,e){var n=this.get("widths"),i=this._minWidths[t];n[t]&&(n[t]=Math.max(e,i),this._setColumnWidthVariables(n),this._isModified=!0)},indexOf:function(t,e){var n=this.getWidths(),i=this.getFrameWidth(),s=e?0:this.columnModel.getVisibleMetaColumnCount(),r=0;return t>=i?r=n.length-1:o.forEachArray(n,function(e,n){return e+=d,r=n,t>e&&void(t-=e)}),Math.max(0,r-s)},restoreColumnWidth:function(t){var e=this.get("originalWidths")[t];this.setColumnWidth(t,e)}});t.exports=h},function(t,e,n){"use strict";var i=n(7),o=n(13),s=n(14).dimension,r=s.TABLE_BORDER_WIDTH,a=s.CELL_BORDER_WIDTH,l=o.extend({initialize:function(t,e){this.dataModel=e.dataModel,this.columnModel=e.columnModel,this.focusModel=e.focusModel,this.dimensionModel=e.dimensionModel,this.renderModel=e.renderModel,this.coordRowModel=e.coordRowModel,this.coordColumnModel=e.coordColumnModel,this.listenTo(this.focusModel,"focus",this._onFocus)},getIndexFromMousePosition:function(t,e,n){var i=this.dimensionModel.getPositionFromBodyArea(t,e),o=this._getScrolledPosition(i);return{row:this.coordRowModel.indexOf(o.y),column:this.coordColumnModel.indexOf(o.x,n)}},_getScrolledPosition:function(t){var e=this.renderModel,n=t.x>this.dimensionModel.get("lsideWidth"),i=n?e.get("scrollLeft"):0,o=e.get("scrollTop");return{x:t.x+i,y:t.y+o}},_getRowSpanCount:function(t,e){var n=this.dataModel.get(t).getRowSpanData(e);return n.isMainRow||(t=n.mainRowKey,n=this.dataModel.get(t).getRowSpanData(e)),n.count||1},_getCellVerticalPosition:function(t,e){var n,i,o,s,r=this.coordRowModel;return n=this.dataModel.indexOfRowKey(t),i=n+e-1,o=r.getOffsetAt(n),s=r.getOffsetAt(i)+r.getHeightAt(i)+a,{top:o,bottom:s}},_getCellHorizontalPosition:function(t){for(var e=this.columnModel,n=e.getVisibleMetaColumnCount(),i=this.coordColumnModel.get("widths"),o=e.getVisibleFrozenCount()+n,s=e.indexOfColumnName(t,!0)+n,r=o>s?0:o,l=0;rl+n.height,e?(s=t.leftu+n.rsideWidth-1):s=r=!1,{isUp:i,isDown:o,isLeft:s,isRight:r}},_onFocus:function(t,e,n){var o;n&&(o=this.getScrollPosition(t,e),i.isEmpty(o)||this.renderModel.set(o))},_makeScrollPosition:function(t,e,n){var i={};return t.isUp?i.scrollTop=e.top:t.isDown&&(i.scrollTop=e.bottom-n.height),t.isLeft?i.scrollLeft=e.left:t.isRight&&(i.scrollLeft=e.right-n.rsideWidth+r),i},getScrollPosition:function(t,e){var n=!this.columnModel.isLside(e),i=this.getCellPosition(t,e),o=this.dimensionModel.getBodySize(),s=this._judgeScrollDirection(i,n,o);return this._makeScrollPosition(s,i,o)}});t.exports=l},function(t,e,n){"use strict";var i=n(6),o=n(13),s=n(20),r=n(19),a=o.extend({initialize:function(t,e){var n,s=e.editingEvent+":cell";o.prototype.initialize.apply(this,arguments),i.assign(this,{dataModel:e.dataModel,columnModel:e.columnModel,coordRowModel:e.coordRowModel,domEventBus:e.domEventBus,domState:e.domState}),this.listenTo(this.dataModel,"reset",this._onResetData),this.listenTo(this.dataModel,"add",this._onAddDataModel),this.domEventBus&&(n=this.domEventBus,this.listenTo(n,s,this._onMouseClickEdit),this.listenTo(n,"mousedown:focus",this._onMouseDownFocus),this.listenTo(n,"key:move",this._onKeyMove),this.listenTo(n,"key:edit",this._onKeyEdit))},defaults:{rowKey:null,columnName:null,prevRowKey:null,prevColumnName:"",editingAddress:null,active:!1},_onResetData:function(){this.blur()},_onAddDataModel:function(t,e){e.focus&&this.focusAt(e.at,0)},_onMouseClickEdit:function(t){this.focusIn(t.rowKey,t.columnName)},_onKeyMove:function(t){var e,n;switch(t.command){case"up":e=this.prevRowKey();break;case"down":e=this.nextRowKey();break; +case"left":n=this.prevColumnName();break;case"right":n=this.nextColumnName();break;case"pageUp":e=this._getPageMovedRowKey(!1);break;case"pageDown":e=this._getPageMovedRowKey(!0);break;case"firstColumn":n=this.firstColumnName();break;case"lastColumn":n=this.lastColumnName();break;case"firstCell":e=this.firstRowKey(),n=this.firstColumnName();break;case"lastCell":e=this.lastRowKey(),n=this.lastColumnName()}e=i.isUndefined(e)?this.get("rowKey"):e,n=n||this.get("columnName"),this.focus(e,n,!0)},_onKeyEdit:function(t){var e;switch(t.command){case"currentCell":e=this.which();break;case"nextCell":e=this.nextAddress();break;case"prevCell":e=this.prevAddress()}e&&this.focusIn(e.rowKey,e.columnName,!0)},_getPageMovedRowKey:function(t){var e,n=this.dataModel.indexOfRowKey(this.get("rowKey")),i=this.coordRowModel.getPageMovedIndex(n,t);return e=t?this.nextRowKey(i-n):this.prevRowKey(n-i)},_onMouseDownFocus:function(){this.focusClipboard()},_savePrevious:function(){null!==this.get("rowKey")&&this.set("prevRowKey",this.get("rowKey")),this.get("columnName")&&this.set("prevColumnName",this.get("columnName"))},isCurrentCell:function(t,e,n){var i=this.get("columnName"),o=this.get("rowKey");return n&&(o=this.dataModel.getMainRowKey(o,i)),String(o)===String(t)&&i===e},focus:function(t,e,n){return this.get("active")||this.set("active",!0),!(this._isValidCell(t,e)&&!s.isMetaColumn(e)&&!this.isCurrentCell(t,e))||!!this._triggerFocusChangeEvent(t,e)&&(this.blur(),this.set({rowKey:t,columnName:e}),this.trigger("focus",t,e,n),"radio"===this.columnModel.get("selectType")&&this.dataModel.check(t),!0)},_triggerFocusChangeEvent:function(t,e){var n=new r(null,{rowKey:t,prevRowKey:this.get("rowKey"),columnName:e,prevColumnName:this.get("columnName")});return this.trigger("focusChange",n),!n.isStopped()},focusAt:function(t,e,n){var i=this.dataModel.at(t),o=this.columnModel.at(e,!0),s=!1;return i&&o&&(s=this.focus(i.get("rowKey"),o.name,n)),s},focusIn:function(t,e,n){var i=this.focus(t,e,n);return i&&(t=this.dataModel.getMainRowKey(t,e),this.dataModel.get(t).isEditable(e)?(this.finishEditing(),this.startEditing(t,e)):this.focusClipboard()),i},focusInAt:function(t,e,n){var i=this.dataModel.at(t),o=this.columnModel.at(e,!0),s=!1;return i&&o&&(s=this.focusIn(i.get("rowKey"),o.name,n)),s},focusClipboard:function(){this.trigger("focusClipboard")},refreshState:function(){var t;this.domState.hasFocusedElement()?this.has()||(t=this.restore(),t||this.focusAt(0,0)):this.set("active",!1)},blur:function(){return this.has()?(this.has(!0)&&this._savePrevious(),this.trigger("blur",this.get("rowKey"),this.get("columnName")),this.set({rowKey:null,columnName:null}),this):this},which:function(){return{rowKey:this.get("rowKey"),columnName:this.get("columnName")}},indexOf:function(t){var e=t?this.get("prevRowKey"):this.get("rowKey"),n=t?this.get("prevColumnName"):this.get("columnName");return{row:this.dataModel.indexOfRowKey(e),column:this.columnModel.indexOfColumnName(n,!0)}},has:function(t){var e=this.get("rowKey"),n=this.get("columnName");return t?this._isValidCell(e,n):!s.isBlank(e)&&!s.isBlank(n)},restore:function(){var t=this.get("prevRowKey"),e=this.get("prevColumnName"),n=!1;return this._isValidCell(t,e)&&(this.focus(t,e),this.set({prevRowKey:null,prevColumnName:null}),n=!0),n},isEditingCell:function(t,e){var n=this.get("editingAddress");return n&&String(n.rowKey)===String(t)&&n.columnName===e},startEditing:function(t,e){if(this.get("editingAddress"))return!1;if(i.isUndefined(t)&&i.isUndefined(e))t=this.get("rowKey"),e=this.get("columnName");else if(!this.isCurrentCell(t,e,!0))return!1;return t=this.dataModel.getMainRowKey(t,e),!!this.dataModel.get(t).isEditable(e)&&(this.set("editingAddress",{rowKey:t,columnName:e}),!0)},finishEditing:function(){return!!this.get("editingAddress")&&(this.set("editingAddress",null),!0)},_isValidCell:function(t,e){var n=!s.isBlank(t)&&!!this.dataModel.get(t),i=!s.isBlank(e)&&!!this.columnModel.getColumnModel(e);return n&&i},_findRowKey:function(t){var e,n,i=this.dataModel,o=null;return this.has(!0)&&(e=Math.max(Math.min(i.indexOfRowKey(this.get("rowKey"))+t,this.dataModel.length-1),0),n=i.at(e),n&&(o=n.get("rowKey"))),o},_findColumnName:function(t){var e,n=this.columnModel,i=n.getVisibleColumns(),o=n.indexOfColumnName(this.get("columnName"),!0),s=null;return this.has(!0)&&(e=Math.max(Math.min(o+t,i.length-1),0),s=i[e]&&i[e].name),s},_getRowSpanData:function(t,e){return this.dataModel.get(t).getRowSpanData(e)},nextRowIndex:function(t){var e=this.nextRowKey(t);return this.dataModel.indexOfRowKey(e)},prevRowIndex:function(t){var e=this.prevRowKey(t);return this.dataModel.indexOfRowKey(e)},nextColumnIndex:function(){var t=this.nextColumnName();return this.columnModel.indexOfColumnName(t,!0)},prevColumnIndex:function(){var t=this.prevColumnName();return this.columnModel.indexOfColumnName(t,!0)},nextRowKey:function(t){var e,n,i=this.which(),o=i.rowKey;return t="number"==typeof t?t:1,t>1?(o=this._findRowKey(t),n=this._getRowSpanData(o,i.columnName),n.isMainRow||(o=this._findRowKey(n.count+t))):(n=this._getRowSpanData(o,i.columnName),n.isMainRow&&n.count>0?o=this._findRowKey(n.count):n.isMainRow?o=this._findRowKey(1):(e=n.count,n=this._getRowSpanData(n.mainRowKey,i.columnName),o=this._findRowKey(n.count+e))),o},prevRowKey:function(t){var e,n=this.which(),i=n.rowKey;return t="number"==typeof t?t:1,t*=-1,t<-1?(i=this._findRowKey(t),e=this._getRowSpanData(i,n.columnName),e.isMainRow||(i=this._findRowKey(e.count+t))):(e=this._getRowSpanData(i,n.columnName),i=e.isMainRow?this._findRowKey(-1):this._findRowKey(e.count-1)),i},nextColumnName:function(){return this._findColumnName(1)},prevColumnName:function(){return this._findColumnName(-1)},firstRowKey:function(){return this.dataModel.at(0).get("rowKey")},lastRowKey:function(){return this.dataModel.at(this.dataModel.length-1).get("rowKey")},firstColumnName:function(){var t=this.columnModel.getVisibleColumns();return t[0].name},lastColumnName:function(){var t=this.columnModel.getVisibleColumns(),e=t.length-1;return t[e].name},prevAddress:function(){var t,e,n=this.get("rowKey"),i=this.get("columnName"),o=i===this.firstColumnName(),s=n===this.firstRowKey();return s&&o?(t=n,e=i):o?(t=this.prevRowKey(),e=this.lastColumnName()):(t=n,e=this.prevColumnName()),{rowKey:t,columnName:e}},nextAddress:function(){var t,e,n=this.get("rowKey"),i=this.get("columnName"),o=i===this.lastColumnName(),s=n===this.lastRowKey();return s&&o?(t=n,e=i):o?(t=this.nextRowKey(),e=this.firstColumnName()):(t=n,e=this.nextColumnName()),{rowKey:t,columnName:e}}});t.exports=a},function(t,e,n){"use strict";var i=n(6),o=n(7),s=n(13),r=n(29),a=n(30),l=n(14).renderState,u=n(14).dimension.CELL_BORDER_WIDTH,d=1e3,h=s.extend({initialize:function(t,e){var n,o,s;i.assign(this,{dataModel:e.dataModel,columnModel:e.columnModel,focusModel:e.focusModel,dimensionModel:e.dimensionModel,coordRowModel:e.coordRowModel,coordColumnModel:e.coordColumnModel}),n={dataModel:this.dataModel,columnModel:this.columnModel,focusModel:this.focusModel},o=new a([],n),s=new a([],n),this.set({lside:[],rside:[],partialLside:o,partialRside:s}),this.listenTo(this.columnModel,"columnModelChange change",this._onColumnModelChange).listenTo(this.dataModel,"sort reset",this._onDataModelChange).listenTo(this.dataModel,"delRange",this._onRangeDataModelChange).listenTo(this.dataModel,"add",this._onAddDataModelChange).listenTo(this.dataModel,"remove",this._onRemoveDataModelChange).listenTo(this.dataModel,"beforeReset",this._onBeforeResetData).listenTo(this.focusModel,"change:editingAddress",this._onEditingAddressChange).listenTo(o,"valueChange",this._executeRelation).listenTo(s,"valueChange",this._executeRelation).listenTo(this.coordRowModel,"reset",this._onChangeRowHeights).listenTo(this.dimensionModel,"columnWidthChanged",this.finishEditing).listenTo(this.dimensionModel,"change:width",this._updateMaxScrollLeft).listenTo(this.dimensionModel,"change:totalRowHeight change:scrollBarSize change:bodyHeight",this._updateMaxScrollTop),this.get("showDummyRows")&&(this.listenTo(this.dimensionModel,"change:bodyHeight change:totalRowHeight",this._resetDummyRowCount),this.on("change:dummyRowCount",this._resetDummyRows)),this.on("change",this._onChangeIndex,this),this._onChangeLayoutBound=i.bind(this._onChangeLayout,this),this._updateMaxScrollLeft()},defaults:{top:0,bottom:0,scrollTop:0,scrollLeft:0,maxScrollLeft:0,maxScrollTop:0,startIndex:-1,endIndex:-1,startNumber:1,lside:null,rside:null,partialLside:null,partialRside:null,showDummyRows:!1,dummyRowCount:0,emptyMessage:null,state:l.DONE},_onChangeLayout:function(){this.focusModel.finishEditing(),this.focusModel.focusClipboard()},_onChangeIndex:function(t){var e=t.changed,n=i.has(e,"startIndex"),o=i.has(e,"endIndex");(n||o)&&this.refresh()},_onChangeRowHeights:function(){for(var t,e=this.coordRowModel,n=this.get("partialLside"),i=this.get("partialRside"),o=0,s=n.length;od&&this.set("state",l.LOADING)},_onEditingAddressChange:function(t,e){var n=e,o=!0,s=this;e||(n=t.previous("editingAddress"),o=!1),this._updateCellData(n.rowKey,n.columnName,{editing:o}),this._triggerEditingStateChanged(n.rowKey,n.columnName),i.defer(function(){s._toggleChangeLayoutEventHandlers(o)})},_toggleChangeLayoutEventHandlers:function(t){var e="change:scrollTop change:scrollLeft",n="columnWidthChanged";t?(this.listenToOnce(this.dimensionModel,n,this._onChangeLayoutBound),this.once(e,this._onChangeLayoutBound)):(this.stopListening(this.dimensionModel,n,this._onChangeLayoutBound),this.off(e,this._onChangeLayoutBound))},_triggerEditingStateChanged:function(t,e){var n=this.getCellData(t,e);o.pick(n,"columnModel","editOptions","useViewMode")!==!1&&null===n.convertedHTML&&this.trigger("editingStateChanged",n)},_updateCellData:function(t,e,n){var i=this._getRowModel(t,e);i&&i.setCell(e,n)},initializeVariables:function(){this.set({top:0,scrollTop:0,scrollLeft:0,startNumber:1})},getCollection:function(t){var e=this._getPartialWhichSideType(t);return this.get(e)},_getPartialWhichSideType:function(t){return o.isString(t)?"partial"+t+"side":"partialRside"},_onColumnModelChange:function(){this.set({scrollTop:0},{silent:!0}),this._resetViewModelList(),this._setRenderingRange(!0),this.refresh({change:!1,columnModelChanged:!0})},_onDataModelChange:function(){this._resetViewModelList(),this._setRenderingRange(!0),this.refresh({type:"reset",dataListChanged:!0})},_onAddDataModelChange:function(t,e){var n,o,s,r,a=this._getColumnNamesOfEachSide(),l=e.at;this._setRenderingRange(!0),t=i.isArray(t)?t:t.models,i.each(t,function(t,e){n=this.coordRowModel.getHeightAt(e),i.each(["lside","rside"],function(i){s=l+e+1,o=this._createViewDataFromDataModel(t,a[i],n,s),r=this._createRowModel(o,!0),this.get(i).splice(l+e,0,r)},this)},this),this.refresh({type:"add",dataListChanged:!0}),e.focus&&this.focusModel.focusAt(e.at,0)},_onRemoveDataModelChange:function(t,e){i.each(["lside","rside"],function(t){this.get(t).splice(e,1)},this),this._setRenderingRange(!0),this.refresh({dataListChanged:!0})},_onRangeDataModelChange:function(t,e){var n=this.columnModel;this._setRenderingRange(!0),i.each(["partialLside","partialRside"],function(o){i.each(this.get(o).models,function(o){var s=o.get("rowKey"),r=i.contains(t,s);r&&i.each(e,function(t){n.getColumnModel(t).editOptions&&this._updateCellData(s,t,{value:"",formattedValue:""})},this)},this)},this),this.refresh({type:"delRange",dataListChanged:!0})},_resetDummyRows:function(){this._clearDummyRows(),this._fillDummyRows(),this.trigger("rowListChanged")},_setRenderingRange:function(t){var e=this.dataModel.length;this.set({startIndex:e?0:-1,endIndex:e-1},{silent:t})},_createViewDataFromDataModel:function(t,e,n,o){var s={rowNum:o,height:n,rowKey:t.get("rowKey"),_extraData:t.get("_extraData")};return i.each(e,function(e){var n=t.get(e);"_number"!==e||i.isNumber(n)||(n=o),s[e]=n}),s},_getColumnNamesOfEachSide:function(){var t=this.columnModel.getVisibleFrozenCount(!0),e=this.columnModel.getVisibleColumns(null,!0),n=i.pluck(e,"name"),o={lside:n.slice(0,t),rside:n.slice(t)};return o},_addViewModelListWithRange:function(t,e){var n,i,o,s=this._getColumnNamesOfEachSide();if(t>=0&&e>=0)for(o=t;o<=e;o+=1)n=this.dataModel.at(o),i=this.coordRowModel.getHeightAt(o),this._addViewModelList(n,s,i,o)},_addViewModelList:function(t,e,n,o){i.each(["lside","rside"],function(i){var s;this.get(i)[o]||(s=this._createViewDataFromDataModel(t,e[i],n,o+1),this.get(i)[o]=this._createRowModel(s,!0))},this)},_updateRowNumber:function(t,e){for(var n,i,o,s=this.get("lside"),r=t;r<=e;r+=1)n=s[r],o=r+1,n&&(i=n.get("rowNum"),o=r+1,i!==o&&(n.set({rowNum:o},{silent:!0}),n.setCell("_number",{formattedValue:o,value:o})))},_resetPartialViewModelList:function(t,e){var n,o,s,r;i.each(["L","R"],function(i){n=i.toLowerCase()+"side",o=this._getPartialWhichSideType(i),s=this.get(n),r=s.slice(t,e+1),this.get(o).reset(r)},this)},_getActualRowCount:function(){return this.get("endIndex")-this.get("startIndex")+1},_clearDummyRows:function(){var t=this.get("endIndex")-this.get("startIndex")+1;i.each(["lside","rside"],function(e){for(var n=this.get(e);n.length>t;)n.pop()},this)},_resetDummyRowCount:function(){var t=this.dimensionModel,e=t.get("totalRowHeight"),n=t.get("rowHeight")+u,i=t.get("bodyHeight")-t.getScrollXHeight(),o=0;e=0&&n>=0)for(i=e;i<=n;i+=1)this._executeRelation(i);o?this.trigger("columnModelChanged"):(this.trigger("rowListChanged",s),s&&this.coordRowModel.syncWithDom()),this._refreshState()},_refreshState:function(){this.dataModel.length?this.set("state",l.DONE):this.set("state",l.EMPTY)},_getCollectionByColumnName:function(t){var e,n=this.get("partialLside");return e=n.at(0)&&n.at(0).get(t)?n:this.get("partialRside")},_getRowModel:function(t,e){var n=this._getCollectionByColumnName(e);return n.get(t)},getCellData:function(t,e){var n=this._getRowModel(t,e),i=null;return n&&(i=n.get(e)),i},_executeRelation:function(t){var e,n,o=this.dataModel.at(t),s=t-this.get("startIndex");n=o.executeRelationCallbacksAll(),i.each(n,function(t,n){e=this._getCollectionByColumnName(n).at(s),e&&e.setCell(n,t)},this)},_createRowModel:function(t,e){return new r(t,{parse:e,dataModel:this.dataModel,columnModel:this.columnModel,focusModel:this.focusModel})},_resetViewModelList:function(){i.each(["lside","rside"],function(t){this.set(t,new Array(this.dataModel.length))},this)}});t.exports=h},function(t,e,n){"use strict";var i=n(6),o=n(7),s=n(13),r=n(20),a=s.extend({initialize:function(t,e){var n=t&&t.rowKey,i=e.dataModel,o=i.get(n);this.dataModel=i,this.columnModel=e.columnModel,this.focusModel=e.focusModel,o&&(this.listenTo(o,"change",this._onDataModelChange),this.listenTo(o,"restore",this._onDataModelRestore),this.listenTo(o,"extraDataChanged",this._setRowExtraData),this.listenTo(i,"disabledChanged",this._onDataModelDisabledChanged),this.rowData=o)},idAttribute:"rowKey",_onDataModelChange:function(t){i.each(t.changed,function(e,n){var i,o;this.has(n)&&(i=this.columnModel.getColumnModel(n),o=this.columnModel.isTextType(n),this.setCell(n,this._getValueAttrs(e,t,i,o)))},this)},_onDataModelRestore:function(t){var e=this.get(t);e&&this.trigger("restore",e)},_getColumnNameList:function(){var t=this.columnModel.getVisibleColumns(null,!0);return i.pluck(t,"name")},_onDataModelDisabledChanged:function(){var t=this._getColumnNameList();i.each(t,function(t){this.setCell(t,{disabled:this.rowData.isDisabled(t),className:this._getClassNameString(t)})},this)},_setRowExtraData:function(){i.each(this._getColumnNameList(),function(t){var e,n=this.get(t);!o.isUndefined(n)&&n.isMainRow&&(e=this.rowData.getCellState(t),this.setCell(t,{disabled:e.disabled,editable:e.editable,className:this._getClassNameString(t)}))},this)},parse:function(t,e){return this._formatData(t,e.dataModel,e.columnModel,e.focusModel)},_formatData:function(t,e,n,s){var r,a,l=t.rowKey,u=t.height;return i.isUndefined(l)?t:(a=e.get(l),r=i.omit(t,"rowKey","_extraData","height","rowNum"),i.each(r,function(r,d){var h=this._getRowSpanData(d,t,e.isRowSpanEnable()),c=a.getCellState(d),g=n.isTextType(d),f=n.getColumnModel(d);t[d]={rowKey:l,height:u,columnName:d,rowSpan:h.count,isMainRow:h.isMainRow,mainRowKey:h.mainRowKey,editable:c.editable,disabled:c.disabled,editing:s.isEditingCell(l,d),whiteSpace:f.whiteSpace||"nowrap",valign:f.valign,listItems:o.pick(f,"editOptions","listItems"),className:this._getClassNameString(d,a,s),columnModel:f,changed:[]},i.assign(t[d],this._getValueAttrs(r,a,f,g))},this),t)},_getClassNameString:function(t,e,n){var i;return e||(e=this.dataModel.get(this.get("rowKey")))?(n||(n=this.focusModel),i=e.getClassNameList(t),i.join(" ")):""},_getValueAttrs:function(t,e,n,i){var s=o.pick(n,"editOptions","prefix"),r=o.pick(n,"editOptions","postfix"),a=o.pick(n,"editOptions","converter"),l=e.toJSON();return{value:this._getValueToDisplay(t,n,i),formattedValue:this._getFormattedValue(t,l,n),prefix:this._getExtraContent(s,t,l),postfix:this._getExtraContent(r,t,l),convertedHTML:this._getConvertedHTML(a,t,l)}},_getFormattedValue:function(t,e,n){var o;return o=i.isFunction(n.formatter)?n.formatter(t,e,n):t,i.isNumber(o)?o=String(o):o||(o=""),o},_getExtraContent:function(t,e,n){var s="";return i.isFunction(t)?s=t(e,n):o.isExisty(t)&&(s=t),s},_getConvertedHTML:function(t,e,n){var o=null;return i.isFunction(t)&&(o=t(e,n)),o===!1&&(o=null),o},_getValueToDisplay:function(t,e,n){var i=o.isExisty,s=e.useHtmlEntity,r=e.defaultValue;return i(t)||(t=i(r)?r:""),n&&s&&o.hasEncodableString(t)&&(t=o.encodeHTMLEntity(t)),t},_getRowSpanData:function(t,e,n){var i=o.pick(e,"_extraData","rowSpanData",t);return n&&i||(i={mainRowKey:e.rowKey,count:0,isMainRow:!0}),i},updateClassName:function(t){this.setCell(t,{className:this._getClassNameString(t)})},setCell:function(t,e){var n,o,s,a=!1,l=[];this.has(t)&&(o=this.get("rowKey"),s=i.clone(this.get(t)),i.each(e,function(t,e){r.isEqual(s[e],t)||(a="value"===e||a,s[e]=t,l.push(e))},this),l.length&&(s.changed=l,this.set(t,s,{silent:this._shouldSetSilently(s,a)}),a&&(n=this.dataModel.indexOfRowKey(o),this.trigger("valueChange",n))))},_shouldSetSilently:function(t,e){var n=t.editing&&e,s=o.pick(t,"columnModel","editOptions","useViewMode")!==!1,r=i.contains(t.changed,"editing")&&t.editing;return n||s&&r}});t.exports=a},function(t,e,n){"use strict";var i=n(6),o=n(16),s=n(29),r=o.extend({initialize:function(t,e){i.assign(this,{dataModel:e.dataModel,columnModel:e.columnModel,focusModel:e.focusModel})},model:s});t.exports=r},function(t,e,n){"use strict";var i=n(6),o=n(28),s=n(14).dimension,r=s.CELL_BORDER_WIDTH,a=.3,l=.1,u=o.extend({initialize:function(){o.prototype.initialize.apply(this,arguments),this.on("change:scrollTop",this._onChangeScrollTop,this),this.listenTo(this.dimensionModel,"change:bodyHeight",this._onChangeBodyHeight)},_onChangeScrollTop:function(){this._shouldRefresh(this.get("scrollTop"))&&this._setRenderingRange()},_onChangeBodyHeight:function(){this._setRenderingRange()},_setRenderingRange:function(t){var e,n,i=this.get("scrollTop"),o=this.dimensionModel,s=this.dataModel,l=this.coordRowModel,u=o.get("bodyHeight"),d=parseInt(u*a,10),h=Math.max(l.indexOf(i-d),0),c=Math.min(l.indexOf(i+u+d),s.length-1);s.isRowSpanEnable()&&(h+=this._getStartRowSpanMinCount(h),c+=this._getEndRowSpanMaxCount(c)),e=l.getOffsetAt(h),n=l.getOffsetAt(c)+l.getHeightAt(c)+r,this.set({top:e,bottom:n,startIndex:h,endIndex:c},{silent:t})},_getStartRowSpanMinCount:function(t){var e,n=this.dataModel.at(t),o=0;return n&&(e=i.pluck(n.getRowSpanData(),"count"),e.push(0),o=i.min(e)),o},_getEndRowSpanMaxCount:function(t){var e,n=this.dataModel.at(t),o=0;return n&&(e=i.pluck(n.getRowSpanData(),"count"),e.push(0),o=i.max(e)),o>0&&(o-=1),o},_shouldRefresh:function(t){var e=this.dimensionModel.get("bodyHeight"),n=t+e,i=this.dimensionModel.get("totalRowHeight"),o=this.get("top"),s=this.get("bottom"),r=parseInt(e*l,10),a=t-o0||u&&sn.row&&(s.row=t[1]),e[1]>n.column&&(s.column=e[1])),s},_isValidAddress:function(t){return!!this.dataModel.at(t.row)&&!!this.columnModel.at(t.colummn)},_scrollTo:function(t,e){var n,i,o,s,r=this.dataModel.at(t),a=this.columnModel.at(e);r&&a&&(n=r.get("rowKey"),i=a.name,s=this.coordConverterModel.getScrollPosition(n,i),s&&(o=this.getType(),o===l.COLUMN?delete s.scrollTop:o===l.ROW&&delete s.scrollLeft,this.renderModel.set(s)))},_getTypeByColumnIndex:function(t){var e=this.columnModel.getVisibleColumns(null,!0),n=e[t].name;switch(n){case"_button":return null;case"_number":return l.ROW;default:return l.CELL}},_onMouseDownBody:function(t){var e,n,i=this.coordConverterModel.getIndexFromMousePosition(t.pageX,t.pageY,!0),o=this._getTypeByColumnIndex(i.column);o&&(e=i.row,n=i.column-this.columnModel.getVisibleMetaColumnCount(),t.shiftKey?this.update(e,Math.max(n,0)):o===l.ROW?this.selectRow(e):(this.focusModel.focusAt(e,n),this.end()))},_onDragMoveBody:function(t){var e=this.coordConverterModel.getIndexFromMousePosition(t.pageX,t.pageY);this.update(e.row,e.column,this.getSelectionUnit()),this._setScrolling(t.pageX,t.pageY)},_onDragEndBody:function(){this.stopAutoScroll()},_onPasteData:function(t){this.start(t.startIdx.row,t.startIdx.column),this.update(t.endIdx.row,t.endIdx.column)},_getColumnRangeWithNames:function(t){var e=this.columnModel,n=o.map(t,function(t){return e.indexOfColumnName(t,!0)}),i=a.getMinMax(n);return[i.min,i.max]},setType:function(t){this.selectionType=l[t]||this.selectionType},getType:function(){return this.selectionType},getSelectionUnit:function(){return this.get("selectionUnit").toUpperCase()},enable:function(){this.enabled=!0},disable:function(){this.end(),this.enabled=!1},isEnabled:function(){return this.enabled},start:function(t,e,n){this.isEnabled()&&(this.setType(n),this.inputRange={row:[t,t],column:[e,e]},this._resetRangeAttribute())},update:function(t,e,n){var i;!this.enabled||n!==l.COLUMN&&t<0||n!==l.ROW&&e<0||(this.hasSelection()?this.setType(n):(i=this.focusModel.indexOf(),n===l.ROW?this.start(i.row,0,l.ROW):this.start(i.row,i.column,l.CELL)),this._updateInputRange(t,e),this._resetRangeAttribute())},_updateInputRange:function(t,e){var n=this.inputRange;this.selectionType===l.ROW?e=this.columnModel.getVisibleColumns().length-1:this.selectionType===l.COLUMN&&(t=this.dataModel.length-1),n.row[1]=t,n.column[1]=e},_extendColumnSelection:function(t,e,n){var i,o=this.minimumColumnRange,s=this.coordConverterModel.getIndexFromMousePosition(e,n),r={row:[0,this.dataModel.length-1],column:[]};t&&t.length||(t=[s.column]),this._setScrolling(e,n),o?i=a.getMinMax(t.concat(o)):(t.push(this.inputRange.column[0]),i=a.getMinMax(t)),r.column.push(i.min,i.max),this._resetRangeAttribute(r)},_setScrolling:function(t,e){var n=this.dimensionModel.getOverflowFromMousePosition(t,e);this.stopAutoScroll(),this._isAutoScrollable(n.x,n.y)&&(this.intervalIdForAutoScroll=setInterval(o.bind(this._adjustScroll,this,n.x,n.y)))},end:function(){this.inputRange=null,this.unset("range"),this.minimumColumnRange=null},stopAutoScroll:function(){o.isNull(this.intervalIdForAutoScroll)||(clearInterval(this.intervalIdForAutoScroll),this.intervalIdForAutoScroll=null)},selectRow:function(t){this.isEnabled()&&(this.focusModel.focusAt(t,0),this.start(t,0,l.ROW),this.update(t,this.columnModel.getVisibleColumns().length-1))},selectColumn:function(t){this.isEnabled()&&(this.focusModel.focusAt(0,t),this.start(0,t,l.COLUMN),this.update(this.dataModel.length-1,t))},selectAll:function(){this.isEnabled()&&(this.start(0,0,l.CELL),this.update(this.dataModel.length-1,this.columnModel.getVisibleColumns().length-1))},getStartIndex:function(){var t=this.get("range");return{row:t.row[0],column:t.column[0]}},getEndIndex:function(){var t=this.get("range");return{row:t.row[1],column:t.column[1]}},hasSelection:function(){return!!this.get("range")},_isSingleCell:function(t,e){var n=1===t.length,i=1===e.length,o=n&&!i&&e[0].getRowSpanData(t[0]).count===e.length;return n&&i||o},getValuesToString:function(){var t=this.renderModel,e=this.columnModel,n=this._getRangeRowList(),i=this._getRangeColumnNames(),s=o.map(n,function(n){return o.map(i,function(i){return e.getCopyOptions(i).useFormattedValue?t.getCellData(n.get("rowKey"),i).formattedValue:n.getValueString(i)}).join("\t")});return this._isSingleCell(i,n)?s[0]:s.join("\n")},_getRangeRowList:function(){var t=this.get("range").row;return this.dataModel.slice(t[0],t[1]+1)},_getRangeColumnNames:function(){var t=this.get("range").column,e=this.columnModel.getVisibleColumns().slice(t[0],t[1]+1);return o.pluck(e,"name")},_isAutoScrollable:function(t,e){return!(0===t&&0===e)},_adjustScroll:function(t,e){var n=this.renderModel;t&&this._adjustScrollLeft(t,n.get("scrollLeft"),n.get("maxScrollLeft")),e&&this._adjustScrollTop(e,n.get("scrollTop"),n.get("maxScrollTop"))},_adjustScrollLeft:function(t,e,n){var i=e,o=this.scrollPixelScale;t<0?i=Math.max(0,e-o):t>0&&(i=Math.min(n,e+o)),this.renderModel.set("scrollLeft",i)},_adjustScrollTop:function(t,e,n){var i=e,o=this.scrollPixelScale;t<0?i=Math.max(0,e-o):t>0&&(i=Math.min(n,e+o)),this.renderModel.set("scrollTop",i)},_resetRangeAttribute:function(t){var e,n,i,s=this.dataModel;if(t=t||this.inputRange,!t)return void this.set("range",null);if(n={row:o.sortBy(t.row),column:o.sortBy(t.column)},s.isRowSpanEnable()&&this.selectionType===l.CELL){do i=o.assign([],n.row),n=this._getRowSpannedIndex(n),e=n.row[0]!==i[0]||n.row[1]!==i[1];while(e);this._setRangeMinMax(n.row,n.column)}this.set("range",n)},_triggerSelectionEvent:function(){var t,e,n,i,o,s,a,l=this.get("range"),u=this.dataModel,d=this.columnModel;l&&(t=l.row,e=l.column,i=u.getRowDataAt(t[0]),s=d.at(e[0]),o=u.getRowDataAt(t[1]),a=d.at(e[1]),i&&o&&s&&a&&(n=new r(null,{range:{start:[i,s],end:[o,a]}}),this.trigger("selection",n)))},_setRangeMinMax:function(t,e){t&&(t[0]=Math.max(0,t[0]),t[1]=Math.min(this.dataModel.length-1,t[1])),e&&(e[0]=Math.max(0,e[0]),e[1]=Math.min(this.columnModel.getVisibleColumns().length-1,e[1]))},_concatRowSpanIndexFromStart:function(t){var e,n=t.startIndex,i=t.endIndex,o=t.columnName,s=t.startRowSpanDataMap&&t.startRowSpanDataMap[o],r=t.startIndexList,a=t.endIndexList;s&&(s.isMainRow?(e=n+s.count-1,e>i&&a.push(e)):(e=n+s.count,r.push(e)))},_concatRowSpanIndexFromEnd:function(t){var e,n,i=t.endIndex,o=t.columnName,s=t.endRowSpanDataMap&&t.endRowSpanDataMap[o],r=t.endIndexList,a=t.dataModel;s&&(s.isMainRow?(e=i+s.count-1,r.push(e)):(e=i+s.count,n=a.at(e).getRowSpanData(o),e+=n.count-1,e>i&&r.push(e)))},_getRowSpannedIndex:function(t){var e,n,s,r=this.columnModel.getVisibleColumns().slice(t.column[0],t.column[1]+1),a=this.dataModel,l=[t.row[0]],u=[t.row[1]],d=a.at(t.row[0]),h=a.at(t.row[1]),c=i.extend({},t);return d&&h?(e=a.at(t.row[0]).getRowSpanData(),n=a.at(t.row[1]).getRowSpanData(),o.each(r,function(i){s={columnName:i.name,startIndex:t.row[0],endIndex:t.row[1],endRowSpanDataMap:n,startRowSpanDataMap:e,startIndexList:l,endIndexList:u,dataModel:a},this._concatRowSpanIndexFromStart(s),this._concatRowSpanIndexFromEnd(s)},this),c.row=[Math.min.apply(null,l),Math.max.apply(null,u)],c):c}});t.exports=u},function(t,e,n){"use strict";var i=n(6),o=n(7),s=n(13),r=n(14).summaryType,a=s.extend({initialize:function(t,e){this.dataModel=e.dataModel,this.autoColumnNames=e.autoColumnNames,this.columnSummaryMap={},this.listenTo(this.dataModel,"add remove reset",this._resetSummaryMap),this.listenTo(this.dataModel,"change",this._onChangeData),this.listenTo(this.dataModel,"delRange",this._onDeleteRangeData),this._resetSummaryMap()},_calculate:function(t){var e,n,i=Number.MAX_VALUE,o=Number.MIN_VALUE,s=0,a=t.length,l={};for(e=0;en&&(i=n),o").addClass(a.BORDER_LINE).addClass(t)}var o,s=n(10),r=n(8),a=n(22),l=n(14).frame;o=r.extend({initialize:function(t){r.prototype.initialize.call(this),this.viewFactory=t.viewFactory,this.dimensionModel=t.dimensionModel,this._addFrameViews()},className:a.CONTENT_AREA,_addFrameViews:function(){var t=this.viewFactory;this._addChildren([t.createFrame(l.L),t.createFrame(l.R)])},render:function(){var t=this.dimensionModel,e=t.getScrollXHeight(),n=this._renderChildren().concat([i(a.BORDER_TOP),i(a.BORDER_LEFT),i(a.BORDER_RIGHT),i(a.BORDER_BOTTOM).css("bottom",e)]);return t.get("scrollX")||this.$el.addClass(a.NO_SCROLL_X),t.get("scrollY")||this.$el.addClass(a.NO_SCROLL_Y),this.$el.append(n),this}}),t.exports=o},function(t,e,n){"use strict";var i=n(6),o=n(40),s=n(8),r={totalItems:1,itemsPerPage:10,visiblePages:5,centerAlign:!0},a="tui-pagination",l=s.extend({initialize:function(t){this.dimensionModel=t.dimensionModel,this.componentHolder=t.componentHolder,this._stopEventPropagation(),this.on("appended",this._onAppended)},className:a,render:function(){return this._destroyChildren(),this.componentHolder.setInstance("pagination",this._createComponent()),this},_stopEventPropagation:function(){this.$el.mousedown(function(t){t.stopPropagation()})},_onAppended:function(){this.dimensionModel.set("paginationHeight",this.$el.outerHeight())},_createOptionObject:function(){var t=this.componentHolder.getOptions("pagination");return t===!0&&(t={}),i.assign({},r,t)},_createComponent:function(){var t=o;if(!t)throw new Error("Cannot find component 'tui.component.Pagination'");return new t(this.$el,this._createOptionObject())}});t.exports=l},function(t,e){t.exports=i},function(t,e,n){"use strict";var i=n(8),o=n(22),s=n(42),r=i.extend({initialize:function(t){this.dimensionModel=t.dimensionModel,this.domEventBus=t.domEventBus,this.dragEmitter=new s({type:"resizeHeight",cursor:"row-resize",domEventBus:this.domEventBus}),this.on("appended",this._onAppended)},className:o.HEIGHT_RESIZE_HANDLE,events:{mousedown:"_onMouseDown"},_onAppended:function(){this.dimensionModel.set("resizeHandleHeight",this.$el.outerHeight())},_onMouseDown:function(t){t.preventDefault(),this.dragEmitter.start(t,{mouseOffsetY:t.offsetY})},render:function(){return this.$el.html(""),this}});t.exports=r},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(7),r=n(19),a=s.defineClass({init:function(t){o.assign(this,{type:t.type,domEventBus:t.domEventBus,onDragMove:t.onDragMove,onDragEnd:t.onDragEnd,cursor:t.cursor,startData:null})},start:function(t,e){var n=new r(t,e);this.domEventBus.trigger("dragstart:"+this.type,n),n.isStopped()||this._startDrag(t.target,e)},_startDrag:function(t,e){this.startData=e,this._attachDragEvents(),this.cursor&&i("body").css("cursor",this.cursor),t.setCapture&&t.setCapture()},_endDrag:function(){this.startData=null,this._detachDragEvents(),this.cursor&&i("body").css("cursor","default"),document.releaseCapture&&document.releaseCapture()},_onMouseMove:function(t){var e=new r(t,{startData:this.startData,pageX:t.pageX,pageY:t.pageY});o.isFunction(this.onDragMove)&&this.onDragMove(e),e.isStopped()||this.domEventBus.trigger("dragmove:"+this.type,e)},_onMouseUp:function(t){var e=new r(t,{startData:this.startData});o.isFunction(this.onDragEnd)&&this.onDragEnd(e),e.isStopped()||(this.domEventBus.trigger("dragend:"+this.type,e),this._endDrag())},_onSelectStart:function(t){t.preventDefault()},_attachDragEvents:function(){i(document).on("mousemove.grid",o.bind(this._onMouseMove,this)).on("mouseup.grid",o.bind(this._onMouseUp,this)).on("selectstart.grid",o.bind(this._onSelectStart,this))},_detachDragEvents:function(){i(document).off(".grid")}});t.exports=a},function(t,e,n){"use strict";var i=n(6),o=n(8),s=n(14).renderState,r=n(22),a=n(44),l=n(14).dimension.TABLE_BORDER_WIDTH,u=o.extend({initialize:function(t){this.dimensionModel=t.dimensionModel,this.renderModel=t.renderModel,this.listenTo(this.dimensionModel,"change",this._refreshLayout),this.listenTo(this.renderModel,"change:state",this.render)},className:r.LAYER_STATE,template:i.template('

<%= text %>

<% if (isLoading) { %>
<% } %>
'),render:function(){var t=this.renderModel.get("state");return t===s.DONE?this.$el.hide():this._showLayer(t),this},_showLayer:function(t){var e=this.template({text:this._getMessage(t),isLoading:t===s.LOADING});this.$el.html(e).show(),this._refreshLayout()},_getMessage:function(t){switch(t){case s.LOADING:return a.get("onLoading");case s.EMPTY:return this.renderModel.get("emptyMessage")||a.get("noData");default:return null}},_refreshLayout:function(){var t=this.dimensionModel,e=t.get("headerHeight"),n=t.get("bodyHeight"),i=t.getScrollXHeight(),o=t.getScrollYWidth();this.$el.css({top:e-l,height:n-i-l,left:0,right:o})}});t.exports=u},function(t,e,n){"use strict";var i=n(20),o={en:{createAction:"create",updateAction:"update",deleteAction:"delete",modifyAction:"modify",requestConfirm:"Are you sure you want to {{actionName}} {{count}} data?",noDataResponse:"No data to {{actionName}}.",errorResponse:"An error occurred while requesting data.\n\nPlease try again.",noData:"No data.",onLoading:"Your request is being processed.",resizeHandleGuide:"You can change the width of the column by mouse drag, and initialize the width by double-clicking."},ko:{createAction:"입력",updateAction:"수정",deleteAction:"삭제",modifyAction:"반영",requestConfirm:"{{count}}건의 데이터를 {{actionName}}하시겠습니까?",noDataResponse:"{{actionName}}할 데이터가 없습니다.",errorResponse:"데이터 요청 중에 에러가 발생하였습니다.\n\n다시 시도하여 주시기 바랍니다.",noData:"데이터가 존재하지 않습니다.",onLoading:"요청을 처리 중입니다.",resizeHandleGuide:"마우스 드래그를 통해 컬럼의 넓이를 변경할 수 있고, 더블클릭을 통해 넓이를 초기화할 수 있습니다."}},s=o.en;t.exports={setLanguage:function(t){s=o[t]},get:function(t,e){var n=s[t];return e&&(n=i.replaceText(n,e)),n}}},function(t,e,n){"use strict";function i(t){return"key:clipboard"!==t.type}function o(t){return"key:clipboard"===t.type&&"paste"===t.command}var s,r=n(10),a=n(6),l=n(7),u=n(8),d=n(21),h=n(46),c=n(22),g=10,f=l.browser.edge,m=!!window.clipboardData;s=u.extend({initialize:function(t){a.assign(this,{focusModel:t.focusModel,clipboardModel:t.clipboardModel,domEventBus:t.domEventBus,isLocked:!1,lockTimerId:null}),this.listenTo(this.focusModel,"focusClipboard",this._onFocusClipboard),this.listenTo(this.clipboardModel,"change:text",this._onClipboardTextChange)},tagName:"div",className:c.CLIPBOARD,attributes:{contenteditable:!0},events:{keydown:"_onKeyDown",copy:"_onCopy",paste:"_onPaste",blur:"_onBlur"},render:function(){return this},_onBlur:function(){var t=this.focusModel;setTimeout(function(){t.refreshState()},0)},_onKeyDown:function(t){var e;return this.isLocked?void t.preventDefault():(e=h.generate(t),void(e&&(this._lock(),i(e)&&t.preventDefault(),o(e)||this.domEventBus.trigger(e.type,e))))},_onCopy:function(t){var e=this.clipboardModel.get("text");m||(t.originalEvent||t).clipboardData.setData("text/plain",e),t.preventDefault()},_onPaste:function(t){var e=(t.originalEvent||t).clipboardData||window.clipboardData;f||m?this._pasteInMSBrowsers(e):(t.preventDefault(),this._pasteInOtherBrowsers(e))},_onFocusClipboard:function(){try{this._hasFocus()||(this.$el.focus(),this._hasFocus()||this.$el.focus())}catch(t){}},_onClipboardTextChange:function(){var t=this.clipboardModel.get("text");m?window.clipboardData.setData("Text",t):this.$el.html(t).focus()},_pasteInOtherBrowsers:function(t){var e,n=this.clipboardModel,i=t.getData("text/html");i&&r(i).find("tbody").length>0?(this.$el.html(""+r(i).find("tbody").html()+"
"),e=this.$el.find("table")[0],i=d.convertTableToData(e),this.$el.html("")):(i=t.getData("text/plain"),i=d.convertTextToData(i)),n.pasteClipboardDataToGrid(i)},_pasteInMSBrowsers:function(t){var e,n=this,i=this.clipboardModel,o=t.getData("Text");o=d.convertTextToData(o),setTimeout(function(){n.$el.find("table").length>0&&(e=n.$el.find("table")[0],o=d.convertTableToData(e)),n.$el.html(""),i.pasteClipboardDataToGrid(o)},0)},_lock:function(){this.isLocked=!0,this.lockTimerId=setTimeout(a.bind(this._unlock,this),g)},_unlock:function(){this.isLocked=!1,this.lockTimerId=null},_hasFocus:function(){return this.$el.is(":focus")}}),s.KEYDOWN_LOCK_TIME=g,t.exports=s},function(t,e,n){"use strict";function i(t){var e=[];return(t.ctrlKey||t.metaKey)&&e.push("ctrl"),t.shiftKey&&e.push("shift"),e.push(a[t.keyCode]),e.join("-")}var o=n(6),s=n(19),r={tab:9,enter:13,ctrl:17,esc:27,left:37,up:38,right:39,down:40,a:65,c:67,v:86,space:32,pageUp:33,pageDown:34,home:36,end:35,del:46},a=o.invert(r),l={up:["move","up"],down:["move","down"],left:["move","left"],right:["move","right"],pageUp:["move","pageUp"],pageDown:["move","pageDown"],home:["move","firstColumn"],end:["move","lastColumn"],enter:["edit","currentCell"],space:["edit","currentCell"],tab:["edit","nextCell"],del:["delete"],"shift-tab":["edit","prevCell"],"shift-up":["select","up"],"shift-down":["select","down"],"shift-left":["select","left"],"shift-right":["select","right"],"shift-pageUp":["select","pageUp"],"shift-pageDown":["select","pageDown"],"shift-home":["select","firstColumn"],"shift-end":["select","lastColumn"],"ctrl-a":["select","all"],"ctrl-c":["clipboard","copy"],"ctrl-v":["clipboard","paste"],"ctrl-home":["move","firstCell"],"ctrl-end":["move","lastCell"],"ctrl-shift-home":["select","firstCell"],"ctrl-shift-end":["select","lastCell"]};t.exports={generate:function(t){var e,n=i(t),o=l[n];return o&&(e=new s(t,{type:"key:"+o[0],command:o[1]})),e}}},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(48),r=n(22),a=n(14).frame,l=s.extend({initialize:function(){s.prototype.initialize.apply(this,arguments),o.assign(this,{whichSide:a.L}),this.listenTo(this.dimensionModel,"change:lsideWidth",this._onFrameWidthChanged)},className:r.LSIDE_AREA,_onFrameWidthChanged:function(){this.$el.css({width:this.dimensionModel.get("lsideWidth")})},beforeRender:function(){this.$el.css({display:"block",width:this.dimensionModel.get("lsideWidth")})},afterRender:function(){this.dimensionModel.get("scrollX")&&this.$el.append(i("
").addClass(r.SCROLLBAR_LEFT_BOTTOM))}});t.exports=l},function(t,e,n){"use strict";var i=n(6),o=n(8),s=n(14).frame,r=o.extend({initialize:function(t){o.prototype.initialize.call(this),i.assign(this,{viewFactory:t.viewFactory,renderModel:t.renderModel,dimensionModel:t.dimensionModel,whichSide:t.whichSide||s.R}),this.listenTo(this.renderModel,"columnModelChanged",this.render)},render:function(){var t=this.viewFactory;return this.$el.empty(),this._destroyChildren(),this.beforeRender(),this._addChildren([t.createHeader(this.whichSide),t.createBody(this.whichSide),t.createFooter(this.whichSide)]),this.$el.append(this._renderChildren()),this.afterRender(),this},beforeRender:function(){},afterRender:function(){}});t.exports=r},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(48),r=n(22),a=n(14),l=a.frame,u=a.dimension.CELL_BORDER_WIDTH,d=s.extend({initialize:function(){s.prototype.initialize.apply(this,arguments),o.assign(this,{whichSide:l.R,$scrollBorder:null}),this.listenTo(this.dimensionModel,"change:lsideWidth change:rsideWidth",this._onFrameWidthChanged),this.listenTo(this.dimensionModel,"change:bodyHeight change:headerHeight",this._resetScrollBorderHeight)},className:r.RSIDE_AREA,_onFrameWidthChanged:function(){this._refreshLayout()},_refreshLayout:function(){var t=this.dimensionModel,e=t.get("rsideWidth"),n=t.get("lsideWidth");n>0&&!t.isDivisionBorderDoubled()&&(e+=u,n-=u),this.$el.css({width:e,marginLeft:n})},_resetScrollBorderHeight:function(){var t,e;this.$scrollBorder&&(t=this.dimensionModel,e=t.get("bodyHeight")-t.getScrollXHeight(),this.$scrollBorder.height(e))},beforeRender:function(){this.$el.css("display","block"),this._refreshLayout()},afterRender:function(){var t,e,n,o,s=this.dimensionModel;s.get("scrollY")&&(t=s.get("headerHeight"),e=s.get("footerHeight"),n=i("
").addClass(r.SCROLLBAR_HEAD),o=i("
").addClass(r.SCROLLBAR_BORDER),n.height(t-2),o.css("top",t+"px"),this.$el.append(n,o),s.get("scrollX")&&this.$el.append(i("
").addClass(r.SCROLLBAR_RIGHT_BOTTOM)),e&&s.get("scrollY")&&this.$el.append(i("
").addClass(r.FOOT_AREA_RIGHT).css("height",e-u)),this.$scrollBorder=o,this._resetScrollBorderHeight())}});t.exports=d},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(8),r=n(20),a=n(14),l=n(22),u=n(19),d=n(42),h=a.frame,c=10,g=a.keyCode,f=a.attrName.COLUMN_NAME,m=a.dimension.CELL_BORDER_WIDTH,p=a.dimension.TABLE_BORDER_WIDTH,_=200,M=s.extend({initialize:function(t){s.prototype.initialize.call(this),o.assign(this,{renderModel:t.renderModel,coordColumnModel:t.coordColumnModel,selectionModel:t.selectionModel,focusModel:t.focusModel,columnModel:t.columnModel,dataModel:t.dataModel,coordRowModel:t.coordRowModel,viewFactory:t.viewFactory,domEventBus:t.domEventBus,headerHeight:t.headerHeight,whichSide:t.whichSide||h.R}),this.dragEmitter=new d({type:"header",domEventBus:this.domEventBus,onDragMove:o.bind(this._onDragMove,this)}),this.listenTo(this.renderModel,"change:scrollLeft",this._onScrollLeftChange).listenTo(this.coordColumnModel,"columnWidthChanged",this._onColumnWidthChanged).listenTo(this.selectionModel,"change:range",this._refreshSelectedHeaders).listenTo(this.focusModel,"change:columnName",this._refreshSelectedHeaders).listenTo(this.dataModel,"sortChanged",this._updateBtnSortState),this.whichSide===h.L&&"checkbox"===this.columnModel.get("selectType")&&this.listenTo(this.dataModel,"change:_button disabledChanged extraDataChanged add remove reset",o.debounce(o.bind(this._syncCheckedState,this),c))},className:l.HEAD_AREA,events:{click:"_onClick","keydown input":"_onKeydown","mousedown th":"_onMouseDown"},template:o.template('<%=colGroup%><%=tBody%>
'),templateHeader:o.template('="<%=columnName%>" class="<%=className%>" height="<%=height%>" <%if(colspan > 0) {%>colspan=<%=colspan%> <%}%><%if(rowspan > 0) {%>rowspan=<%=rowspan%> <%}%>><%=title%><%=btnSort%>'),templateCol:o.template('="<%=columnName%>" style="width:<%=width%>px">'),markupBtnSort:'',_getColGroupMarkup:function(){var t=this._getColumnData(),e=t.widths,n=t.columns,i=[];return o.each(e,function(t,e){i.push(this.templateCol({attrColumnName:f,columnName:n[e].name,width:t+m}))},this),i.join("")},_getSelectedColumnNames:function(){var t=this.selectionModel.get("range").column,e=this.columnModel.getVisibleColumns(),n=e.slice(t[0],t[1]+1);return o.pluck(n,"name")},_onDragMove:function(t){var e=i(t.target);t.setData({columnName:e.closest("th").attr(f),isOnHeaderArea:i.contains(this.el,e[0])})},_getContainingMergedColumnNames:function(t){var e=this.columnModel,n=o.pluck(e.get("complexHeaderColumns"),"name");return o.filter(n,function(n){var i=e.getUnitColumnNamesIfMerged(n);return o.every(i,function(e){return o.contains(t,e)})})},_refreshSelectedHeaders:function(){var t,e,n=this.$el.find("th");this.selectionModel.hasSelection()?t=this._getSelectedColumnNames():this.focusModel.has(!0)&&(t=[this.focusModel.get("columnName")]),n.removeClass(l.CELL_SELECTED),t&&(e=this._getContainingMergedColumnNames(t),o.each(t.concat(e),function(t){n.filter("["+f+'="'+t+'"]').addClass(l.CELL_SELECTED)}))},_onKeydown:function(t){t.keyCode===g.TAB&&(t.preventDefault(),this.focusModel.focusClipboard())},_onMouseDown:function(t){var e,n=i(t.target);this._triggerPublicMousedown(t)&&(n.hasClass(l.BTN_SORT)||(e=n.closest("th").attr(f),e&&this.dragEmitter.start(t,{columnName:e})))},_triggerPublicMousedown:function(t){var e,n,o,s=new u(t,u.getTargetInfo(i(t.target)));return e=(new Date).getTime(),this.domEventBus.trigger("mousedown",s),n=(new Date).getTime(),o=n-e>_,!s.isStopped()&&!o},_getHeaderMainCheckbox:function(){return this.$el.find("th["+f+'="_button"] input')},_syncCheckedState:function(){var t,e,n=this.dataModel.getCheckedState();t=this._getHeaderMainCheckbox(),t.length&&(e=n.available?{checked:n.available===n.checked,disabled:!1}:{checked:!1,disabled:!0},t.prop(e))},_onColumnWidthChanged:function(){var t=this.coordColumnModel.getWidths(this.whichSide),e=this.$el.find("col"),n=this.coordRowModel;o.each(t,function(t,n){e.eq(n).css("width",t+m)}),this.whichSide===h.R&&o.defer(function(){n.syncWithDom()})},_onScrollLeftChange:function(t,e){this.whichSide===h.R&&(this.el.scrollLeft=e)},_onClick:function(t){var e=i(t.target),n=e.closest("th").attr(f),o=new u(t);"_button"===n&&e.is("input")?(o.setData({checked:e.prop("checked")}),this.domEventBus.trigger("click:headerCheck",o)):e.is("a."+l.BTN_SORT)&&(o.setData({columnName:n}),this.domEventBus.trigger("click:headerSort",o))},_updateBtnSortState:function(t){var e;this._$currentSortBtn&&this._$currentSortBtn.removeClass(l.BTN_SORT_DOWN+" "+l.BTN_SORT_UP),this._$currentSortBtn=this.$el.find("th["+f+'="'+t.columnName+'"] a.'+l.BTN_SORT),e=t.ascending?l.BTN_SORT_UP:l.BTN_SORT_DOWN,this._$currentSortBtn.addClass(e)},render:function(){return this._destroyChildren(),this.$el.css({height:this.headerHeight-p}).html(this.template({colGroup:this._getColGroupMarkup(),tBody:this._getTableBodyMarkup()})),this.coordColumnModel.get("resizable")&&(this._addChildren(this.viewFactory.createHeaderResizeHandle(this.whichSide)),this.$el.append(this._renderChildren())),this},_getColumnData:function(){var t=this.coordColumnModel.getWidths(this.whichSide),e=this.columnModel.getVisibleColumns(this.whichSide,!0);return{widths:t,columns:e}},_getTableBodyMarkup:function(){var t,e,n=this._getColumnHierarchyList(),i=this._getHierarchyMaxRowCount(n),s=this.headerHeight,a=new Array(i),u=new Array(i),d=[],h=r.getRowHeight(i,s)-1,c=1;return o.each(n,function(e,r){var g=n[r].length,m=0;o.each(e,function(e,n){var o=e.name,r=[l.CELL,l.CELL_HEAD];e.validation&&e.validation.required&&r.push(l.CELL_REQRUIRED),c=g-1===n&&i-g+1>1?i-g+1:1,t=h*c,n===g-1?t=s-m-2:m+=t+1,u[n]===o?(a[n].pop(),d[n]+=1):d[n]=1,u[n]=o,a[n]=a[n]||[],a[n].push(this.templateHeader({attrColumnName:f,columnName:o,className:r.join(" "),height:t,colspan:d[n],rowspan:c,title:e.title,btnSort:e.sortable?this.markupBtnSort:""}))},this)},this),e=o.map(a,function(t){return""+t.join("")+""}),e.join("")},_getHierarchyMaxRowCount:function(t){var e=[0];return o.each(t,function(t){e.push(t.length)},this),Math.max.apply(Math,e)},_getColumnHierarchyList:function(){var t,e=this._getColumnData().columns;return t=o.map(e,function(t){return this._getColumnHierarchy(t).reverse()},this)},_getColumnHierarchy:function(t,e){var n=this.columnModel.get("complexHeaderColumns");return e=e||[],t&&(e.push(t),n&&o.each(n,function(n){i.inArray(t.name,n.childNames)!==-1&&this._getColumnHierarchy(n,e)},this)),e}});M.DELAY_SYNC_CHECK=c,t.exports=M},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(7),r=n(8),a=n(14),l=n(22),u=n(42),d=n(44),h=a.attrName,c=a.frame,g=a.dimension.CELL_BORDER_WIDTH,f=a.dimension.RESIZE_HANDLE_WIDTH,m=r.extend({initialize:function(t){o.assign(this,{columnModel:t.columnModel,coordColumnModel:t.coordColumnModel,domEventBus:t.domEventBus,headerHeight:t.headerHeight,whichSide:t.whichSide||c.R}),this.dragEmitter=new u({type:"resizeColumn",cursor:"col-resize",domEventBus:this.domEventBus,onDragMove:o.bind(this._onDragMove,this)}),this.listenTo(this.coordColumnModel,"columnWidthChanged",this._refreshHandlerPosition)},className:l.COLUMN_RESIZE_CONTAINER,events:function(){var t={};return t["mousedown ."+l.COLUMN_RESIZE_HANDLE]="_onMouseDown",t["dblclick ."+l.COLUMN_RESIZE_HANDLE]="_onDblClick",t},template:o.template("
'),_getColumnData:function(){var t=this.coordColumnModel.getWidths(this.whichSide),e=this.columnModel.getVisibleColumns(this.whichSide,!0);return{widths:t,columns:e}},_getResizeHandlerMarkup:function(){var t=this._getColumnData(),e=t.columns,n=e.length,i=o.map(e,function(t,e){return this.template({lastClass:e+1===n?l.COLUMN_RESIZE_HANDLE_LAST:"",columnIndex:e,columnName:t.name,height:this.headerHeight,title:d.get("resizeHandleGuide"),displayType:t.resizable===!1?"none":"block"})},this);return i.join("")},render:function(){var t=this.headerHeight,e=this._getResizeHandlerMarkup();return this.$el.empty().html(e).css({marginTop:-t,height:t,display:"block"}),this._refreshHandlerPosition(),this},_refreshHandlerPosition:function(){var t=this._getColumnData(),e=t.widths,n=this.$el.find("."+l.COLUMN_RESIZE_HANDLE),i=Math.floor(f/2),o=0;s.forEachArray(n,function(t,s){var r=n.eq(s);o+=e[s]+g,r.css("left",o-i)})},_onMouseDown:function(t){var e=i(t.target),n=this.coordColumnModel.getWidths(this.whichSide),o=parseInt(e.attr(h.COLUMN_INDEX),10);this.dragEmitter.start(t,{width:n[o],columnIndex:this._getHandlerColumnIndex(o),pageX:t.pageX})},_onDragMove:function(t){var e=t.startData,n=t.pageX-e.pageX;t.setData({columnIndex:e.columnIndex,width:e.width+n})},_onDblClick:function(t){var e=i(t.target),n=parseInt(e.attr(h.COLUMN_INDEX),10);this.domEventBus.trigger("dblclick:resizeColumn",{columnIndex:this._getHandlerColumnIndex(n)})},_getHandlerColumnIndex:function(t){return this.whichSide===c.R?t+this.columnModel.getVisibleFrozenCount(!0):t}});t.exports=m},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(8),r=n(42),a=n(19),l=n(14),u=n(22),d=l.frame,h=200,c=10,g=s.extend({initialize:function(t){s.prototype.initialize.call(this),o.assign(this,{dimensionModel:t.dimensionModel,renderModel:t.renderModel,viewFactory:t.viewFactory,domEventBus:t.domEventBus,$container:null,whichSide:t&&t.whichSide||d.R}),this.listenTo(this.dimensionModel,"change:bodyHeight",this._onBodyHeightChange).listenTo(this.dimensionModel,"change:totalRowHeight",this._resetContainerHeight).listenTo(this.renderModel,"change:scrollTop",this._onScrollTopChange).listenTo(this.renderModel,"change:scrollLeft",this._onScrollLeftChange),this.dragEmitter=new r({type:"body",domEventBus:this.domEventBus,onDragMove:o.bind(this._onDragMove,this)})},className:u.BODY_AREA,events:function(){var t={};return t.scroll="_onScroll",t["mousedown ."+u.BODY_CONTAINER]="_onMouseDown",t},_onBodyHeightChange:function(t,e){this.$el.css("height",e+"px")},_resetContainerHeight:function(){this.$container.css({height:this.dimensionModel.get("totalRowHeight")})},_onScroll:function(t){var e={scrollTop:t.target.scrollTop};this.whichSide===d.R&&(e.scrollLeft=t.target.scrollLeft),this.renderModel.set(e)},_onScrollLeftChange:function(t,e){this.whichSide===d.R&&(this.el.scrollLeft=e)},_onScrollTopChange:function(t,e){this.el.scrollTop=e},_onMouseDown:function(t){var e=i(t.target),n=e.is("input, teaxarea");this._triggerPublicMousedown(t)&&(this._triggerBodyMousedown(t),n&&t.shiftKey&&t.preventDefault(), +n&&!t.shiftKey||this.dragEmitter.start(t,{pageX:t.pageX,pageY:t.pageY}))},_triggerPublicMousedown:function(t){var e,n,o=new a(t,a.getTargetInfo(i(t.target))),s=!0;return o.targetType===a.targetTypeConst.DUMMY?s=!1:(e=(new Date).getTime(),this.domEventBus.trigger("mousedown",o),o.isStopped()?s=!1:(n=(new Date).getTime(),s=n-e<=h)),s},_triggerBodyMousedown:function(t){var e=new a(t,{pageX:t.pageX,pageY:t.pageY,shiftKey:t.shiftKey});this.domEventBus.trigger("mousedown:body",e)},_onDragMove:function(t){var e=t.startData,n={pageX:t.pageX,pageY:t.pageY};this._getMouseMoveDistance(e,n)").addClass(u.BODY_CONTAINER),this.$el.append(this.$container),this._addChildren([this.viewFactory.createBodyTable(t),this.viewFactory.createSelectionLayer(t),this.viewFactory.createFocusLayer(t)]),this.$container.append(this._renderChildren()),this._resetContainerHeight(),this}});t.exports=g},function(t,e,n){"use strict";var i=n(6),o=n(8),s=n(14),r=n(22),a=s.dimension.CELL_BORDER_WIDTH,l=s.attrName.COLUMN_NAME,u=o.extend({initialize:function(t){o.prototype.initialize.call(this),i.assign(this,{dimensionModel:t.dimensionModel,coordColumnModel:t.coordColumnModel,renderModel:t.renderModel,columnModel:t.columnModel,viewFactory:t.viewFactory,painterManager:t.painterManager,whichSide:t.whichSide||"R"}),this.listenTo(this.coordColumnModel,"columnWidthChanged",this._onColumnWidthChanged),this.listenTo(this.renderModel,"change:dummyRowCount",this._onChangeDummyRowCount),this.listenTo(this.dimensionModel,"change:bodyHeight",this._resetHeight),this._attachAllTableEventHandlers()},className:r.BODY_TABLE_CONTAINER,template:i.template('<%=colGroup%><%=tbody%>
'),templateCol:i.template('="<%=columnName%>" style="width:<%=width%>px">'),_onColumnWidthChanged:function(){var t=this.coordColumnModel.getWidths(this.whichSide),e=this.$el.find("col");i.each(t,function(t,n){e.eq(n).css("width",t+a)},this)},_onChangeDummyRowCount:function(){this._resetOverflow(),this._resetHeight()},_resetOverflow:function(){var t="visible";this.renderModel.get("dummyRowCount")>0&&(t="hidden"),this.$el.css("overflow",t)},_resetHeight:function(){var t=this.dimensionModel;this.renderModel.get("dummyRowCount")>0?this.$el.height(t.get("bodyHeight")-t.getScrollXHeight()):this.$el.css("height","")},resetTablePosition:function(){this.$el.css("top",this.renderModel.get("top"))},render:function(){return this._destroyChildren(),this.$el.html(this.template({colGroup:this._getColGroupMarkup(),tbody:""})),this._addChildren(this.viewFactory.createRowList({bodyTableView:this,el:this.$el.find("tbody"),whichSide:this.whichSide})),this._renderChildren(),this._resetHeight(),this._resetOverflow(),this},_attachAllTableEventHandlers:function(){var t=this.painterManager.getCellPainters();i.each(t,function(t){t.attachEventHandlers(this.$el,"")},this)},redrawTable:function(t){return this.$el[0].innerHTML=this.template({colGroup:this._getColGroupMarkup(),tbody:t}),this.$el.find("tbody")},_getColGroupMarkup:function(){var t=this.whichSide,e=this.coordColumnModel.getWidths(t),n=this.columnModel.getVisibleColumns(t,!0),o="";return i.each(n,function(t,n){o+=this.templateCol({attrColumnName:l,columnName:t.name,width:e[n]+a})},this),o}});t.exports=u},function(t,e,n){"use strict";var i=n(6),o=n(8),s=n(22),r=n(14),a=r.frame,l=r.attrName.COLUMN_NAME,u=o.extend({initialize:function(t){this.columnTemplateMap=t.columnTemplateMap||{},this.whichSide=t.whichSide,this.columnModel=t.columnModel,this.dimensionModel=t.dimensionModel,this.coordColumnModel=t.coordColumnModel,this.renderModel=t.renderModel,this.summaryModel=t.summaryModel,this.listenTo(this.renderModel,"change:scrollLeft",this._onChangeScrollLeft),this.listenTo(this.coordColumnModel,"columnWidthChanged",this._onChangeColumnWidth),this.listenTo(this.columnModel,"setFooterContent",this._setColumnContent),this.summaryModel&&this.listenTo(this.summaryModel,"change",this._onChangeSummaryValue)},className:s.FOOT_AREA,events:{scroll:"_onScrollView"},template:i.template('<%=tbody%>
'),templateHeader:i.template('="<%=columnName%>" class="<%=className%>" style="width:<%=width%>px"><%=value%>'),_onScrollView:function(t){this.whichSide===a.R&&this.renderModel.set("scrollLeft",t.target.scrollLeft)},_onChangeScrollLeft:function(t,e){this.whichSide===a.R&&(this.el.scrollLeft=e)},_onChangeColumnWidth:function(){var t=this.coordColumnModel.getWidths(this.whichSide),e=this.$el.find("th");i.each(t,function(t,n){e.eq(n).css("width",t)})},_setColumnContent:function(t,e){var n=this.$el.find("th["+l+'="'+t+'"]');n.html(e)},_onChangeSummaryValue:function(t,e){var n=this._generateValueHTML(t,e);this._setColumnContent(t,n)},_generateValueHTML:function(t,e){var n=this.columnTemplateMap[t],o="";return i.isFunction(n)&&(o=n(e)),o},_generateTbodyHTML:function(){var t=this.summaryModel,e=this.columnModel.getVisibleColumns(this.whichSide,!0),n=this.coordColumnModel.getWidths(this.whichSide);return i.reduce(e,function(e,i,o){var r,a=i.name;return t&&(r=t.getValue(i.name)),e+this.templateHeader({attrColumnName:l,columnName:a,className:s.CELL_HEAD+" "+s.CELL,width:n[o],value:this._generateValueHTML(a,r)})},"",this)},render:function(){var t=this.dimensionModel.get("footerHeight");return t&&this.$el.html(this.template({className:s.TABLE,height:t,tbody:this._generateTbodyHTML()})),this}});t.exports=u},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(7),r=n(8),a=n(14),l=n(22),u=a.attrName,d=a.frame,h=a.dimension.CELL_BORDER_WIDTH,c=r.extend({initialize:function(t){var e=t.focusModel,n=t.renderModel,i=t.selectionModel,s=t.coordRowModel,r=t.whichSide||"R";o.assign(this,{whichSide:r,bodyTableView:t.bodyTableView,focusModel:e,renderModel:n,selectionModel:i,coordRowModel:s,dataModel:t.dataModel,columnModel:t.columnModel,collection:n.getCollection(r),painterManager:t.painterManager,sortOptions:null,renderedRowKeys:null}),this.listenTo(this.collection,"change",this._onModelChange).listenTo(this.collection,"restore",this._onModelRestore).listenTo(e,"change:rowKey",this._refreshFocusedRow).listenTo(n,"rowListChanged",this.render),this.whichSide===d.L&&this.listenTo(e,"change:rowKey",this._refreshSelectedMetaColumns).listenTo(i,"change:range",this._refreshSelectedMetaColumns).listenTo(n,"rowListChanged",this._refreshSelectedMetaColumns)},_getColumns:function(){return this.columnModel.getVisibleColumns(this.whichSide,!0)},_removeOldRows:function(t){var e=o.indexOf(this.renderedRowKeys,t[0]),n=o.indexOf(this.renderedRowKeys,o.last(t)),i=this.$el.children("tr");i.slice(0,e).remove(),i.slice(n+1).remove()},_appendNewRows:function(t,e){var n=this.collection.slice(0,o.indexOf(t,e[0])),i=this.collection.slice(o.indexOf(t,o.last(e))+1);this.$el.prepend(this._getRowsHtml(n)),this.$el.append(this._getRowsHtml(i))},_resetRows:function(){var t,e=this._getRowsHtml(this.collection.models);if(c.isInnerHtmlOfTbodyReadOnly)t=this.bodyTableView.redrawTable(e),this.setElement(t,!1);else try{this.$el[0].innerHTML=e}catch(t){c.isInnerHtmlOfTbodyReadOnly=!0,this._resetRows()}},_getRowsHtml:function(t){var e=this.painterManager.getRowPainter(),n=o.pluck(this._getColumns(),"name");return o.map(t,function(t){return e.generateHtml(t,n)}).join("")},_getRowElement:function(t){return this.$el.find("tr["+u.ROW_KEY+"="+t+"]")},_refreshSelectedMetaColumns:function(){var t,e=this.$el.find("tr"),n="."+l.CELL_HEAD;t=this.selectionModel.hasSelection()?this._filterRowsByIndexRange(e,this.selectionModel.get("range").row):this._filterRowByKey(e,this.focusModel.get("rowKey")),e.find(n).removeClass(l.CELL_SELECTED),t.find(n).addClass(l.CELL_SELECTED)},_filterRowsByIndexRange:function(t,e){var n,o,s=this.renderModel,r=s.get("startIndex");return n=Math.max(e[0]-r,0),o=Math.max(e[1]-r+1,0),n||o?t.slice(n,o):i()},_filterRowByKey:function(t,e){var n=this.dataModel.indexOfRowKey(e),o=this.renderModel.get("startIndex");return o>n?i():t.eq(n-o)},_refreshFocusedRow:function(){var t=this.focusModel.get("rowKey"),e=this.focusModel.get("prevRowKey");this._setFocusedRowClass(e,!1),this._setFocusedRowClass(t,!0)},_setFocusedRowClass:function(t,e){var n=o.pluck(this._getColumns(),"name"),i={};o.each(n,function(n){var o,s=this.dataModel.getMainRowKey(t,n);i[s]||(i[s]=this._getRowElement(s)),o=i[s].find("td["+u.COLUMN_NAME+'="'+n+'"]'),o.toggleClass(l.CELL_CURRENT_ROW,e)},this)},render:function(t){var e,n=this.collection.pluck("rowKey");return this.bodyTableView.resetTablePosition(),t?this._resetRows():(e=o.intersection(n,this.renderedRowKeys),o.isEmpty(n)||o.isEmpty(e)||e.length/n.length<.7?this._resetRows():(this._removeOldRows(e),this._appendNewRows(n,e))),this.renderedRowKeys=n,this},_onModelChange:function(t){var e=t.get("rowKey"),n=this._getRowElement(e);"height"in t.changed?n.css("height",t.get("height")+h):(this.painterManager.getRowPainter().refresh(t.changed,n),this.coordRowModel.syncWithDom())},_onModelRestore:function(t){var e=this.dataModel.getElement(t.rowKey,t.columnName),n=this.columnModel.getEditType(t.columnName);this.painterManager.getCellPainter(n).refresh(t,e),this.coordRowModel.syncWithDom()}},{isInnerHtmlOfTbodyReadOnly:s.browser.msie&&s.browser.version<=9});t.exports=c},function(t,e,n){"use strict";var i=n(6),o=n(8),s=n(22),r=n(14).dimension.CELL_BORDER_WIDTH,a=n(14).frame,l=o.extend({initialize:function(t){i.assign(this,{whichSide:t.whichSide||a.R,dimensionModel:t.dimensionModel,coordRowModel:t.coordRowModel,coordColumnModel:t.coordColumnModel,columnModel:t.columnModel,selectionModel:t.selectionModel}),this._updateColumnWidths(),this.listenTo(this.coordColumnModel,"columnWidthChanged",this._onChangeColumnWidth),this.listenTo(this.selectionModel,"change:range",this.render)},className:s.LAYER_SELECTION,_updateColumnWidths:function(){this.columnWidths=this.coordColumnModel.getWidths(this.whichSide)},_onChangeColumnWidth:function(){this._updateColumnWidths(),this.render()},_getOwnSideColumnRange:function(t){var e=this.columnModel.getVisibleFrozenCount(),n=null;return this.whichSide===a.L?t[0]=e&&(n=[Math.max(t[0],e)-e,t[1]-e]),n},_getVerticalStyles:function(t){var e=this.coordRowModel,n=e.getOffsetAt(t[0]),i=e.getOffsetAt(t[1])+e.getHeightAt(t[1]);return{top:n+"px",height:i-n+"px"}},_getHorizontalStyles:function(t){var e=this.columnWidths,n=this.columnModel.getVisibleMetaColumnCount(),i=t[0],o=t[1],s=0,l=0,u=0;for(this.whichSide===a.L&&(i+=n,o+=n),o=Math.min(o,e.length-1);u<=o;u+=1)ut&&this.$el.css("left",t-e)},_adjustCellOffsetValue:function(t){var e=o.browser,n=t;return e.msie&&(9===e.version?n=t-1:e.version>9&&(n=Math.floor(t))),n},_calculateLayoutStyle:function(t,e,n){var i=this.domState.getOffset(),o=this.domState.getElement(t,e),s=o.offset(),a=o.outerHeight()+r,l=o.outerWidth()+r;return{top:this._adjustCellOffsetValue(s.top)-i.top,left:this._adjustCellOffsetValue(s.left)-i.left,height:a,minWidth:n?l:"",width:n?"":l,lineHeight:a+"px"}},_onEditingStateChanged:function(t){t.editing?this._startEditing(t):this._finishEditing()},render:function(){return i.each(this.inputPainters,function(t){t.attachEventHandlers(this.$el,"")},this),this}});t.exports=u},function(t,e,n){"use strict";var i,o=n(6),s=n(36),r=n(8),a=n(22),l="yyyy-MM-dd",u=[[new Date(1900,0,1),new Date(2999,11,31)]];i=r.extend({initialize:function(t){this.focusModel=t.focusModel,this.textPainter=t.textPainter,this.columnModel=t.columnModel,this.domState=t.domState,this.datePickerMap=this._createDatePickers(),this.$focusedInput=null,this.listenTo(this.textPainter,"focusIn",this._onFocusInTextInput),this.listenTo(t.domEventBus,"windowResize",this._closeDatePickerLayer)},className:a.LAYER_DATE_PICKER,events:{click:"_onClick"},_onClick:function(t){t.stopPropagation()},_createDatePickers:function(){var t={},e=this.columnModel.get("columnModelMap");return o.each(e,function(e){var n,i=e.name,o=e.component;o&&"datePicker"===o.name&&(n=o.options||{},t[i]=new s(this.$el,n),this._bindEventOnDatePicker(t[i]))},this),t},_bindEventOnDatePicker:function(t){var e=this;t.on("open",function(){e.textPainter.blockFocusingOut()}),t.on("close",function(){var t=e.focusModel,n=t.which(),i=n.rowKey,o=n.columnName,s=e.$focusedInput.val();e.textPainter.unblockFocusingOut(),t.isEditingCell(i,o)&&t.dataModel.setValue(i,o,s),t.finishEditing()})},_resetDatePicker:function(t,e,n){var i=this.datePickerMap[n],o=t.format||l,s=t.date||new Date,r=t.selectableRanges;i.setInput(e,{format:o,syncFromInput:!0}),r?i.setRanges(r):i.setRanges(u),""===e.val()&&(i.setDate(s),e.val(""))},_calculatePosition:function(t){var e=t.offset(),n=t.outerHeight(),i=this.domState.getOffset();return{top:e.top-i.top+n,left:e.left-i.left}},_onFocusInTextInput:function(t,e){var n,i=e.columnName,o=this.columnModel.getColumnModel(i).component,s=this.columnModel.getEditType(i);"text"===s&&o&&"datePicker"===o.name&&(n=o.options||{},this.$focusedInput=t,this.$el.css(this._calculatePosition(t)).show(),this._resetDatePicker(n,t,i),this.datePickerMap[i].open())},_closeDatePickerLayer:function(){var t=this.focusModel.which().columnName,e=this.datePickerMap[t];e&&e.isOpened()&&e.close()},render:function(){return this.$el.hide(),this}}),t.exports=i},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(8),r=n(14),a=n(22),l=r.frame,u=r.dimension.CELL_BORDER_WIDTH,d='
',h=a.LAYER_FOCUS_DEACTIVE,c=s.extend({initialize:function(t){this.focusModel=t.focusModel,this.columnModel=t.columnModel,this.coordRowModel=t.coordRowModel,this.coordColumnModel=t.coordColumnModel,this.coordConverterModel=t.coordConverterModel,this.whichSide=t.whichSide,this.borderEl={$top:i(d),$left:i(d),$right:i(d),$bottom:i(d)},this.listenTo(this.coordColumnModel,"columnWidthChanged",this._refreshCurrentLayout),this.listenTo(this.coordRowModel,"reset",this._refreshCurrentLayout),this.listenTo(this.focusModel,"blur",this._onBlur),this.listenTo(this.focusModel,"focus",this._onFocus),this.listenTo(this.focusModel,"change:active",this._onChangeActiveState)},className:a.LAYER_FOCUS,_refreshCurrentLayout:function(){var t=this.focusModel;"none"!==this.$el.css("display")&&this._refreshBorderLayout(t.get("rowKey"),t.get("columnName"))},_onBlur:function(){this.$el.hide()},_onFocus:function(t,e){var n=this.columnModel.isLside(e)?l.L:l.R;n===this.whichSide&&(this._refreshBorderLayout(t,e),this.$el.show())},_onChangeActiveState:function(t){t.changed.active?this.$el.removeClass(h):this.$el.addClass(h)},_refreshBorderLayout:function(t,e){var n=this.coordConverterModel.getCellPosition(t,e),i=n.right-n.left,o=n.bottom-n.top;this.borderEl.$left.css({top:n.top,left:n.left,width:u,height:o+u}),this.borderEl.$top.css({top:0===n.top?u:n.top,left:n.left,width:i+u,height:u}),this.borderEl.$right.css({top:n.top,left:n.left+i,width:u,height:o+u}),this.borderEl.$bottom.css({top:n.top+o,left:n.left,width:i+u,height:u})},render:function(){var t=this.$el;return o.each(this.borderEl,function(e){t.append(e)}),t.hide(),this}});t.exports=c},function(t,e,n){"use strict";var i=n(6),o=n(9);t.exports={create:function(){return i.extend({},o.Events)}}},function(t,e,n){"use strict";var i=n(6),o=n(7),s=n(14).attrName,r=n(22),a=o.defineClass({init:function(t){this.$el=t},_getBodyTableRows:function(t){return this.$el.find("."+t).find("."+r.BODY_TABLE_CONTAINER).find("tr["+s.ROW_KEY+"]")},_getMaxCellHeight:function(t){var e=t.find("."+r.CELL_CONTENT).map(function(){return this.scrollHeight}).get();return i.max(e)},getElement:function(t,e){return this.$el.find("tr["+s.ROW_KEY+"="+t+"]").find("td["+s.COLUMN_NAME+'="'+e+'"]')},getRowHeights:function(){var t,e,n,i,o=this._getBodyTableRows(r.LSIDE_AREA),s=this._getBodyTableRows(r.RSIDE_AREA),a=[];for(n=0,i=o.length;n" class="<%=className%>" style="height: <%=height%>px;"><%=contents%>'),_getEditType:function(t,e){var n=o.pick(e.columnModel,"editOptions","type");return n||"normal"},_generateHtmlForDummyRow:function(t,e){var n=this.painterManager.getCellPainter("dummy"),o="";return i.each(e,function(e){o+=n.generateHtml(t,e)}),o},_generateHtmlForActualRow:function(t,e){var n="";return i.each(e,function(e){var i,o,s=t.get(e);s&&s.isMainRow&&(i=this._getEditType(e,s),o=this.painterManager.getCellPainter(i),n+=o.generateHtml(s))},this),n},generateHtml:function(t,e){var n,o=t.get("rowKey"),s=t.get("rowNum"),r=s%2?a.ROW_ODD:a.ROW_EVEN,d="";return i.isUndefined(o)?n=this._generateHtmlForDummyRow(s,e):(d=l.ROW_KEY+'="'+o+'"',n=this._generateHtmlForActualRow(t,e)),this.template({rowKeyAttr:d,height:t.get("height")+u,contents:n,className:r})},refresh:function(t,e){i.each(t,function(t,n){var i,o,s;"_extraData"!==n&&(s=e.find("td["+l.COLUMN_NAME+'="'+n+'"]'),i=this._getEditType(n,t),o=this.painterManager.getCellPainter(i),o.refresh(t,s))},this)}});t.exports=d},function(t,e,n){"use strict";var i=n(6),o=n(7),s=n(14).attrName,r=o.defineClass({init:function(t){this.controller=t.controller},events:{},selector:"",_getCellAddress:function(t){var e=t.closest("["+s.ROW_KEY+"]");return{rowKey:e.attr(s.ROW_KEY),columnName:e.attr(s.COLUMN_NAME)}},attachEventHandlers:function(t,e){i.each(this.events,function(n,o){var s=i.bind(this[n],this),r=e+" "+this.selector;t.on(o,r,s)},this)},generateHtml:function(){throw new Error("implement generateHtml() method")}});t.exports=r},function(t,e,n){"use strict";var i=n(6),o=n(7),s=n(65),r=n(20),a=n(14).attrName,l=n(22),u=o.defineClass(s,{init:function(t){s.apply(this,arguments),this.editType=t.editType,this.fixedRowHeight=t.fixedRowHeight,this.inputPainter=t.inputPainter,this.selector="td["+a.EDIT_TYPE+'="'+this.editType+'"]'},template:i.template(' style="<%=style%>"><%=contentHtml%>'),contentTemplate:i.template('
<%=content%>
'),_isEditableType:function(){return!i.contains(["normal","mainButton"],this.editType)},_getContentStyle:function(t){var e=t.columnModel.whiteSpace||"nowrap",n=[];return e&&n.push("white-space:"+e),this.fixedRowHeight&&n.push("max-height:"+t.height+"px"),n.join(";")},_getContentHtml:function(t){var e,n,o=t.columnModel.template,s=t.formattedValue,r=t.prefix,a=t.postfix;return this.inputPainter&&(s=this.inputPainter.generateHtml(t),this._shouldContentBeWrapped()&&!this._isUsingViewMode(t)&&(r=this._getSpanWrapContent(r,l.CELL_CONTENT_BEFORE),a=this._getSpanWrapContent(a,l.CELL_CONTENT_AFTER),s=this._getSpanWrapContent(s,l.CELL_CONTENT_INPUT),e=r+a+s)),e||(e=r+s+a),n="_number"===t.columnName&&i.isFunction(o)?o({content:e}):this.contentTemplate({content:e,className:l.CELL_CONTENT,style:this._getContentStyle(t)})},_isUsingViewMode:function(t){return o.pick(t,"columnModel","editOptions","useViewMode")!==!1},_shouldContentBeWrapped:function(){return i.contains(["text","password","select"],this.editType)},_getSpanWrapContent:function(t,e){return o.isFalsy(t)&&(t=""),''+t+""},_getAttributes:function(t){var e=[t.className,l.CELL],n={align:t.columnModel.align||"left"};return n.class=e.join(" "),n[a.EDIT_TYPE]=this.editType,n[a.ROW_KEY]=t.rowKey,n[a.COLUMN_NAME]=t.columnName,t.rowSpan&&(n.rowspan=t.rowSpan),n},attachEventHandlers:function(t,e){s.prototype.attachEventHandlers.call(this,t,e),this.inputPainter&&this.inputPainter.attachEventHandlers(t,e+" "+this.selector)},generateHtml:function(t){var e=r.getAttributesString(this._getAttributes(t)),n=this._getContentHtml(t),i=t.columnModel.valign,o=[];return i&&o.push("vertical-align:"+i),this.template({attributeString:e,style:o.join(";"),contentHtml:n})},refresh:function(t,e){var n=["value","editing","disabled","listItems"],o=i.contains(t.changed,"editing")&&t.editing,s=i.intersection(n,t.changed).length>0,r=this._getAttributes(t),a="mainButton"===this.editType;e.attr(r),o&&!this._isUsingViewMode(t)?this.inputPainter.focus(e):a?e.find(this.inputPainter.selector).prop({checked:t.value,disabled:t.disabled}):s&&(e.html(this._getContentHtml(t)),e.scrollLeft(0))}});t.exports=u},function(t,e,n){"use strict";var i=n(6),o=n(7),s=n(65),r=n(20),a=n(14).attrName,l=n(22),u=o.defineClass(s,{init:function(){s.apply(this,arguments)},selector:"td["+a.EDIT_TYPE+'="dummy"]',template:i.template("'),generateHtml:function(t,e){var n=[l.CELL,l.CELL_DUMMY];return r.isMetaColumn(e)&&n.push(l.CELL_HEAD),this.template({columnName:e,className:n.join(" ")})}});t.exports=u},function(t,e,n){"use strict";var i=n(6),o=n(7),s=n(69),r=n(20),a=n(22),l="."+a.CELL_CONTENT_TEXT,u="input[type=password]",d=o.defineClass(s,{init:function(t){s.apply(this,arguments),this.inputType=t.inputType,this.selector="text"===t.inputType?l:u,this._extendEvents({selectstart:"_onSelectStart"})},templateInput:i.template('/>'),templateTextArea:i.template(''),_onSelectStart:function(t){t.stopPropagation()},_convertStringToAsterisks:function(t){return Array(t.length+1).join("*")},_getDisplayValue:function(t){var e=t.formattedValue;return"password"===this.inputType&&(e=this._convertStringToAsterisks(t.value)),e},_generateInputHtml:function(t){var e=o.pick(t,"columnModel","editOptions","maxLength"),n={type:this.inputType,className:a.CELL_CONTENT_TEXT,value:t.value,name:r.getUniqueKey(),disabled:t.disabled?"disabled":"",maxLength:e};return"nowrap"!==t.whiteSpace?this.templateTextArea(n):this.templateInput(n)},focus:function(t){var e=t.find(this.selector);1!==e.length||e.is(":focus")||e.select()}});t.exports=d},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(9),r=n(7),a=n(65),l=n(14).keyName,u=r.defineClass(a,{init:function(){a.apply(this,arguments),this._finishedEditing=!1},events:{keydown:"_onKeyDown",focusin:"_onFocusIn",focusout:"_onFocusOut",change:"_onChange"},keyDownActions:{ESC:function(t){this.controller.finishEditing(t.address,!0)},ENTER:function(t){this.controller.finishEditing(t.address,!0,t.value)},TAB:function(t){this.controller.finishEditing(t.address,!0,t.value),this.controller.focusInToNextCell(t.shiftKey)}},_extendKeydownActions:function(t){this.keyDownActions=o.assign({},this.keyDownActions,t)},_extendEvents:function(t){this.events=o.assign({},this.events,t)},_executeCustomEventHandler:function(t,e){this.controller.executeCustomInputEventHandler(t,e)},_onChange:function(){},_onFocusIn:function(t){var e=i(t.target),n=this._getCellAddress(e),s=this;o.defer(function(){s._executeCustomEventHandler(t,n),s.trigger("focusIn",e,n),s.controller.startEditing(n)})},_onFocusOut:function(t){var e=i(t.target),n=this._getCellAddress(e);this._finishedEditing||(this._executeCustomEventHandler(t,n),this.trigger("focusOut",e,n),this.controller.finishEditing(n,!1,e.val()))},_onKeyDown:function(t){var e=t.keyCode||t.which,n=l[e],o=this.keyDownActions[n],s=i(t.target),r={$target:s,address:this._getCellAddress(s),shiftKey:t.shiftKey,value:s.val()};this._executeCustomEventHandler(t,r.address),o&&!t.shiftKey&&(o.call(this,r),t.preventDefault())},_getDisplayValue:function(){throw new Error("implement _getDisplayValue() method")},_generateInputHtml:function(){throw new Error("implement _generateInputHtml() method")},_isUsingViewMode:function(t){return r.pick(t,"columnModel","editOptions","useViewMode")!==!1},generateHtml:function(t){var e;return e=o.isNull(t.convertedHTML)?!this._isUsingViewMode(t)||t.editing?this._generateInputHtml(t):this._getDisplayValue(t):t.convertedHTML},focus:function(t){var e=t.find(this.selector);e.is(":focus")||e.eq(0).focus()},blockFocusingOut:function(){this._finishedEditing=!0},unblockFocusingOut:function(){this._finishedEditing=!1}});o.assign(u.prototype,s.Events),t.exports=u},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(7),r=n(69),a=n(20),l=s.defineClass(r,{init:function(){r.apply(this,arguments),this.selector="select"},template:o.template(''),optionTemplate:o.template(''),_onChange:function(t){var e=i(t.target),n=this._getCellAddress(e);this.controller.setValueIfNotUsingViewMode(n,e.val())},_getDisplayValue:function(t){var e=o.find(t.listItems,function(e){return String(e.value)===String(t.value)});return e?e.text:""},_generateInputHtml:function(t){var e=o.reduce(t.listItems,function(e,n){return e+this.optionTemplate({value:n.value,text:n.text,selected:String(t.value)===String(n.value)?"selected":""})},"",this);return this.template({name:a.getUniqueKey(),disabled:t.disabled?"disabled":"",options:e})}});t.exports=l},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(7),r=n(69),a=n(20),l=s.defineClass(r,{init:function(t){r.apply(this,arguments),this.inputType=t.inputType,this.selector="fieldset[data-type="+this.inputType+"]",this._extendEvents({mousedown:"_onMouseDown"}),this._extendKeydownActions({TAB:function(t){var e;this._focusNextInput(t.$target,t.shiftKey)||(e=this._getCheckedValueString(t.$target),this.controller.finishEditing(t.address,!0,e),this.controller.focusInToNextCell(t.shiftKey))},ENTER:function(t){var e=this._getCheckedValueString(t.$target);this.controller.finishEditing(t.address,!0,e)},LEFT_ARROW:function(t){this._focusNextInput(t.$target,!0)},RIGHT_ARROW:function(t){this._focusNextInput(t.$target)},UP_ARROW:function(){},DOWN_ARROW:function(){}})},template:o.template('
<%=content%>
'),inputTemplate:o.template(' <%=disabled%> />'),labelTemplate:o.template(''),_onChange:function(t){var e=i(t.target),n=this._getCellAddress(e),o=this._getCheckedValueString(e);this.controller.setValueIfNotUsingViewMode(n,o)},_onFocusOut:function(t){var e=i(t.target),n=this;o.defer(function(){var t,i;e.siblings("input:focus").length||(t=n._getCellAddress(e),i=n._getCheckedValueString(e),n.controller.finishEditing(t,!1,i))})},_onMouseDown:function(t){var e=i(t.target),n=e.closest("fieldset").find("input:focus").length>0;!e.is("input")&&n&&(t.stopPropagation(),t.preventDefault())},_focusNextInput:function(t,e){var n=e?"prevAll":"nextAll",i=t[n]("input");return!!i.length&&(i.first().focus(),!0)},_getCheckedValueString:function(t){var e,n=t.parent().find("input:checked"),o=[];return n.each(function(){var t=i(this),e=t.attr("data-value-type"),n=a.convertValueType(t.val(),e);o.push(n)}),e=1===o.length?o[0]:o.join(",")},_getCheckedValueSet:function(t){var e={};return o.each(String(t).split(","),function(t){e[t]=!0}),e},_getDisplayValue:function(t){var e=this._getCheckedValueSet(t.value),n=[];return o.each(t.listItems,function(t){e[t.value]&&n.push(t.text)}),n.join(",")},_generateInputHtml:function(t){var e=this._getCheckedValueSet(t.value),n=a.getUniqueKey(),i="";return o.each(t.listItems,function(o){var s=n+"_"+o.value;i+=this.inputTemplate({type:this.inputType,id:s,name:n,value:o.value,valueType:typeof o.value,checked:e[o.value]?"checked":"",disabled:t.isDisabled?"disabled":""}),o.text&&(i+=this.labelTemplate({id:s,labelText:o.text}))},this),this.template({type:this.inputType,content:i})},focus:function(t){ +var e=t.find("input");e.is(":focus")||e.eq(0).focus()}});t.exports=l},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(7),r=n(65),a=n(22),l=n(14).keyCode,u=a.CELL_MAIN_BUTTON,d=s.defineClass(r,{init:function(t){r.apply(this,arguments),this.selector="input."+u,this.inputType=t.inputType,this.gridId=t.gridId},events:{change:"_onChange",keydown:"_onKeydown"},template:o.template(' <%=disabled%> />'),_onChange:function(t){var e=i(t.target),n=this._getCellAddress(e);this.controller.setValue(n,e.is(":checked"))},_onKeydown:function(t){var e;t.keyCode===l.TAB&&(t.preventDefault(),e=this._getCellAddress(i(t.target)),this.controller.focusInToRow(e.rowKey))},generateHtml:function(t){var e=t.columnModel.template,n=null,i={type:this.inputType,name:this.gridId,className:u};return n=o.isFunction(e)?e(o.extend(i,{checked:t.value,disabled:t.disabled})):this.template(o.extend(i,{checked:t.value?"checked":"",disabled:t.disabled?"disabled":""}))}});t.exports=d},function(t,e,n){"use strict";function i(t){return r.isString(t)&&(t=t.replace(/,/g,"")),r.isNumber(t)||isNaN(t)||l.isBlank(t)?t:Number(t)}function o(t){switch(t){case"focusin":return"onFocus";case"focusout":return"onBlur";case"keydown":return"onKeyDown";default:return""}}var s=n(10),r=n(6),a=n(7),l=n(20),u=a.defineClass({init:function(t){this.focusModel=t.focusModel,this.dataModel=t.dataModel,this.columnModel=t.columnModel,this.selectionModel=t.selectionModel},startEditing:function(t,e){var n;return e&&this.focusModel.finishEditing(),n=this.focusModel.startEditing(t.rowKey,t.columnName),n&&this.selectionModel.end(),n},_checkMaxLength:function(t,e){var n=this.columnModel.getColumnModel(t),i=a.pick(n,"editOptions","maxLength");return i>0&&e.length>i?e.substring(0,i):e},finishEditing:function(t,e,n){var i,o,s=this.focusModel;return!!s.isEditingCell(t.rowKey,t.columnName)&&(this.selectionModel.enable(),r.isUndefined(n)||(i=this.dataModel.get(t.rowKey),o=i.get(t.columnName),l.isBlank(n)&&l.isBlank(o)||this.setValue(t,this._checkMaxLength(t.columnName,n))),s.finishEditing(),e?s.focusClipboard():r.defer(function(){s.refreshState()}),!0)},focusInToNextCell:function(t){var e=this.focusModel,n=t?e.prevAddress():e.nextAddress();e.focusIn(n.rowKey,n.columnName,!0)},focusInToRow:function(t){var e=this.focusModel;e.focusIn(t,e.firstColumnName(),!0)},executeCustomInputEventHandler:function(t,e){var n,i,s,a=this.columnModel.getColumnModel(e.columnName);a&&(n=t.type,i=a.editOptions||{},s=i[o(n)],r.isFunction(s)&&s.call(t.target,t,e))},setValue:function(t,e){var n=this.columnModel.getColumnModel(t.columnName);r.isString(e)&&(e=s.trim(e)),"number"===n.dataType&&(e=i(e)),"_button"===n.name?e?this.dataModel.check(t.rowKey):this.dataModel.uncheck(t.rowKey):this.dataModel.setValue(t.rowKey,t.columnName,e)},setValueIfNotUsingViewMode:function(t,e){var n=this.columnModel.getColumnModel(t.columnName);a.pick(n,"editOptions","useViewMode")||this.setValue(t,e)}});t.exports=u},function(t,e,n){"use strict";var i=n(10),o=n(9),s=n(6),r=n(8),a=n(75),l=n(20),u=n(76),d=n(44),h=n(19),c=n(14).renderState,g=200,f=r.extend({initialize:function(t){var e={initialRequest:!0,perPage:500,enableAjaxHistory:!0},n={readData:"",createData:"",updateData:"",deleteData:"",modifyData:"",downloadExcel:"",downloadExcelAll:""};t=s.assign(e,t),t.api=s.assign(n,t.api),s.assign(this,{dataModel:t.dataModel,renderModel:t.renderModel,router:null,domEventBus:t.domEventBus,pagination:t.pagination,api:t.api,enableAjaxHistory:t.enableAjaxHistory,readDataMethod:t.readDataMethod||"POST",perPage:t.perPage,curPage:1,timeoutIdForDelay:null,requestedFormData:null,isLocked:!1,lastRequestedReadData:null}),this._initializeDataModelNetwork(),this._initializeRouter(),this._initializePagination(),this.listenTo(this.dataModel,"sortChanged",this._onSortChanged),this.listenTo(this.domEventBus,"click:excel",this._onClickExcel),t.initialRequest&&(this.lastRequestedReadData||this._readDataAt(1,!1))},tagName:"form",events:{submit:"_onSubmit"},_initializePagination:function(){var t=this.pagination;t&&(t.setItemsPerPage(this.perPage),t.setTotalItems(1),t.on("beforeMove",i.proxy(this._onPageBeforeMove,this)))},_onRouterRead:function(t){var e=l.toQueryObject(t);this._requestReadData(e)},_onClickExcel:function(t){var e="all"===t.type?"excelAll":"excel";this.download(e)},_initializeDataModelNetwork:function(){this.dataModel.url=this.api.readData,this.dataModel.sync=i.proxy(this._sync,this)},_initializeRouter:function(){this.enableAjaxHistory&&(this.router=new a({net:this}),this.listenTo(this.router,"route:read",this._onRouterRead),o.History.started||o.history.start())},_onPageBeforeMove:function(t){var e=t.page;this.curPage!==e&&this._readDataAt(e,!0)},_onSubmit:function(t){t.preventDefault(),this._readDataAt(1,!1)},_setFormData:function(t){var e=s.clone(t);s.each(this.lastRequestedReadData,function(t,n){(s.isUndefined(e[n])||s.isNull(e[n]))&&t&&(e[n]="")}),u.setFormData(this.$el,e)},_sync:function(t,e,n){var r;"read"===t?(n=n||{},r=i.extend({},n),n.url||(r.url=s.result(e,"url")),this._ajax(r)):o.sync(o,t,e,n)},_lock:function(){var t=this.renderModel;this.timeoutIdForDelay=setTimeout(function(){t.set("state",c.LOADING)},g),this.isLocked=!0},_unlock:function(){null!==this.timeoutIdForDelay&&(clearTimeout(this.timeoutIdForDelay),this.timeoutIdForDelay=null),this.isLocked=!1},_getFormData:function(){return u.getFormData(this.$el)},_onReadSuccess:function(t,e){var n,i,o=this.pagination;t.setOriginalRowList(),o&&e.pagination&&(n=e.pagination.page,i=e.pagination.totalCount,o.setItemsPerPage(this.perPage),o.setTotalItems(i),o.movePageTo(n),this.curPage=n)},_onReadError:function(t,e,n){},reloadData:function(){this._requestReadData(this.lastRequestedReadData)},readData:function(t,e,n){n?(e||(e={}),e.perPage=this.perPage,this._changeSortOptions(e,this.dataModel.sortOptions)):e=s.assign({},this.lastRequestedReadData,e),e.page=t,this._requestReadData(e)},_requestReadData:function(t){var e=1;this._setFormData(t),this.isLocked||(this.renderModel.initializeVariables(),this._lock(),this.requestedFormData=s.clone(t),this.curPage=t.page||this.curPage,e=(this.curPage-1)*this.perPage+1,this.renderModel.set({startNumber:e}),this.lastRequestedReadData=s.clone(t),this.dataModel.fetch({requestType:"readData",data:t,type:this.readDataMethod,success:i.proxy(this._onReadSuccess,this),error:i.proxy(this._onReadError,this),reset:!0}),this.dataModel.setSortOptionValues(t.sortColumn,t.sortAscending)),this.router&&this.router.navigate("read/"+l.toQueryString(t),{trigger:!1})},_onSortChanged:function(t){t.requireFetch&&this._readDataAt(1,!0,t)},_changeSortOptions:function(t,e){e&&("rowKey"===e.columnName?(delete t.sortColumn,delete t.sortAscending):(t.sortColumn=e.columnName,t.sortAscending=e.ascending))},_readDataAt:function(t,e,n){var i;e=!!s.isUndefined(e)||e,i=e?this.requestedFormData:this._getFormData(),i.page=t,i.perPage=this.perPage,this._changeSortOptions(i,n),this._requestReadData(i)},request:function(t,e){var n=s.extend({url:this.api[t],type:null,hasDataParam:!0,checkedOnly:!0,modifiedOnly:!0,showConfirm:!0,updateOriginal:!1},e),i=this._getRequestParam(t,n);return i&&(n.updateOriginal&&this.dataModel.setOriginalRowList(),this._ajax(i)),!!i},download:function(t){var e,n="download"+l.toUpperCaseFirstLetter(t),o=this.requestedFormData,r=this.api[n];"excel"===t?(o.page=this.curPage,o.perPage=this.perPage):o=s.omit(o,"page","perPage"),e=i.param(o),window.location=r+"?"+e},setPerPage:function(t){this.perPage=t,this._readDataAt(1)},_getDataParam:function(t,e){var n,i=this.dataModel,o={createData:["createdRows"],updateData:["updatedRows"],deleteData:["deletedRows"],modifyData:["createdRows","updatedRows","deletedRows"]},r=o[t],a={},l=0;return e=s.defaults(e||{},{hasDataParam:!0,modifiedOnly:!0,checkedOnly:!0}),e.hasDataParam&&(e.modifiedOnly?(n=i.getModifiedRows({checkedOnly:e.checkedOnly}),s.each(n,function(t,e){s.contains(r,e)&&t.length&&(l+=t.length,a[e]=JSON.stringify(t))},this)):(a.rows=i.getRows(e.checkedOnly),l=a.rows.length)),{data:a,count:l}},_getRequestParam:function(t,e){var n={url:this.api[t],type:null,hasDataParam:!0,modifiedOnly:!0,checkedOnly:!0},o=i.extend(n,e),s=this._getDataParam(t,o),r=null;return o.showConfirm&&!this._isConfirmed(t,s.count)||(r={requestType:t,url:o.url,data:s.data,type:o.type}),r},_isConfirmed:function(t,e){var n=!1;return e>0?n=confirm(this._getConfirmMessage(t,e)):alert(this._getConfirmMessage(t,e)),n},_getConfirmMessage:function(t,e){var n=t.replace("Data","Action"),i=d.get(n),o={count:e,actionName:i},s=e>0?"requestConfirm":"noDataResponse";return d.get(s,o)},_ajax:function(t){var e,n=new h(null,t.data);this.trigger("beforeRequest",n),n.isStopped()||(t=i.extend({requestType:""},t),e={url:t.url,data:t.data||{},type:t.type||"POST",dataType:t.dataType||"json",complete:i.proxy(this._onComplete,this,t.complete,t),success:i.proxy(this._onSuccess,this,t.success,t),error:i.proxy(this._onError,this,t.error,t)},t.url&&i.ajax(e))},_onComplete:function(t,e,n){this._unlock()},_onSuccess:function(t,e,n,i,o){var r=n&&n.message,a=new h(null,{httpStatus:i,requestType:e.requestType,requestParameter:e.data,responseData:n});if(this.trigger("response",a),!a.isStopped())if(n&&n.result){if(this.trigger("successResponse",a),a.isStopped())return;s.isFunction(t)&&t(n.data||{},i,o)}else{if(this.trigger("failResponse",a),a.isStopped())return;r&&alert(r)}},_onError:function(t,e,n,i){var o=new h(null,{httpStatus:i,requestType:e.requestType,requestParameter:e.data,responseData:null});this.renderModel.set("state",c.DONE),this.trigger("response",o),o.isStopped()||(this.trigger("errorResponse",o),o.isStopped()||n.readyState>1&&alert(d.get("errorResponse")))}});t.exports=f},function(t,e,n){"use strict";var i=n(9),o=i.Router.extend({initialize:function(t){this.net=t.net},routes:{"read/:queryStr":"read"}});t.exports=o},function(t,e,n){"use strict";var i=n(10),o=n(6),s=n(7),r={setInput:{_changeToStringInArray:function(t){return o.each(t,function(e,n){t[n]=String(e)}),t},radio:function(t,e){t.checked=t.value===e},checkbox:function(t,e){o.isArray(e)?t.checked=i.inArray(t.value,this._changeToStringInArray(e))!==-1:t.checked=t.value===e},"select-one":function(t,e){var n=s.toArray(t.options);t.selectedIndex=o.findIndex(n,function(t){return t.value===e||t.text===e})},"select-multiple":function(t,e){var n=s.toArray(t.options);o.isArray(e)?(e=this._changeToStringInArray(e),o.each(n,function(t){t.selected=i.inArray(t.value,e)!==-1||i.inArray(t.text,e)!==-1})):this["select-one"].apply(this,arguments)},defaultAction:function(t,e){t.value=e}},getFormData:function(t){var e={},n=t.serializeArray(),i=s.isExisty;return o.each(n,function(t){var n=t.value||"",o=t.name;i(e[o])?e[o]=[].concat(e[o],n):e[o]=n}),e},getFormElement:function(t,e){var n;return t&&t.length&&(n=e?t.prop("elements")[String(e)]:t.prop("elements")),i(n)},setFormData:function(t,e){o.each(e,function(e,n){this.setFormElementValue(t,n,e)},this)},setFormElementValue:function(t,e,n){var i,r=this.getFormElement(t,e);r.length&&(o.isArray(n)||(n=String(n)),r=s.isHTMLTag(r)?[r]:r,r=s.toArray(r),o.each(r,function(t){i=this.setInput[t.type]?t.type:"defaultAction",this.setInput[i](t,n)},this))},setCursorToEnd:function(t){var e,n=t.value.length;if(t.focus(),t.setSelectionRange)try{t.setSelectionRange(n,n)}catch(t){}else if(t.createTextRange){e=t.createTextRange(),e.collapse(!0),e.moveEnd("character",n),e.moveStart("character",n);try{e.select()}catch(t){}}}};t.exports=r},function(t,e,n){"use strict";var i=n(10),o=n(7),s={pagination:null},r=o.defineClass({init:function(t){this.optionsMap=i.extend(!0,s,t),this.instanceMap={}},getInstance:function(t){return this.instanceMap[t]},setInstance:function(t,e){this.instanceMap[t]=e},getOptions:function(t){return this.optionsMap[t]}});t.exports=r},function(t,e,n){"use strict";function i(t){var e=[a.grid(t.grid),a.scrollbar(t.scrollbar),a.heightResizeHandle(t.heightResizeHandle),a.pagination(t.pagination),a.selection(t.selection)],n=t.cell;return n&&(e=e.concat([a.cell(n.normal),a.cellDummy(n.dummy),a.cellEditable(n.editable),a.cellHead(n.head),a.cellOddRow(n.oddRow),a.cellEvenRow(n.evenRow),a.cellRequired(n.required),a.cellDisabled(n.disabled),a.cellInvalid(n.invalid),a.cellCurrentRow(n.currentRow),a.cellSelectedHead(n.selectedHead),a.cellFocused(n.focused),a.cellFocusedInactive(n.focusedInactive)])),e.join("")}function o(t){var e=i(t);s("#"+u).remove(),r.appendStyleElement(u,e)}var s=n(10),r=n(20),a=n(79),l=n(14).themeName,u="tui-grid-theme-style",d={};d[l.DEFAULT]=n(81),d[l.STRIPED]=n(82),d[l.CLEAN]=n(83),t.exports={apply:function(t,e){var n=d[t];n||(n=d[l.DEFAULT]),n=s.extend(!0,{},n,e),o(n)},isApplied:function(){return 1===s("#"+u).length}}},function(t,e,n){"use strict";function i(t,e){return l(t).bg(e.background).text(e.text).build()}function o(t,e){return l(t).bg(e.background).border(e.border).build()}var s=n(6),r=n(80),a=n(22),l=s.bind(r.createClassRule,r);t.exports={grid:function(t){var e=l(a.CONTAINER).bg(t.background).text(t.text),n=l(a.CONTENT_AREA).border(t.border),i=l(a.TABLE).border(t.border),o=l(a.HEAD_AREA).border(t.border),s=l(a.FOOT_AREA).border(t.border),u=l(a.BORDER_LINE).bg(t.border),d=l(a.SCROLLBAR_HEAD).border(t.border),h=l(a.SCROLLBAR_BORDER).bg(t.border),c=l(a.FOOT_AREA_RIGHT).border(t.border);return r.buildAll([e,n,i,o,s,u,d,h,c])},scrollbar:function(t){var e=r.createWebkitScrollbarRules("."+a.CONTAINER,t),n=r.createIEScrollbarRule("."+a.CONTAINER,t),i=l(a.SCROLLBAR_RIGHT_BOTTOM).bg(t.background),o=l(a.SCROLLBAR_LEFT_BOTTOM).bg(t.background),s=l(a.SCROLLBAR_HEAD).bg(t.background),u=l(a.FOOT_AREA_RIGHT).bg(t.background),d=l(a.BODY_AREA).bg(t.background);return r.buildAll(e.concat([n,i,o,s,u,d]))},heightResizeHandle:function(t){return o(a.HEIGHT_RESIZE_HANDLE,t)},pagination:function(t){return o(a.PAGINATION,t)},selection:function(t){return o(a.LAYER_SELECTION,t)},cell:function(t){var e=l(a.CELL).bg(t.background).border(t.border).borderWidth(t).text(t.text);return e.build()},cellHead:function(t){var e=l(a.CELL_HEAD).bg(t.background).border(t.border).borderWidth(t).text(t.text),n=l(a.HEAD_AREA).bg(t.background),i=l(a.FOOT_AREA).bg(t.background);return r.buildAll([e,n,i])},cellEvenRow:function(t){return l(a.ROW_EVEN+">td").bg(t.background).build()},cellOddRow:function(t){return l(a.ROW_ODD+">td").bg(t.background).build()},cellSelectedHead:function(t){return r.create("."+a.CELL_HEAD+"."+a.CELL_SELECTED).bg(t.background).text(t.text).build()},cellFocused:function(t){var e=l(a.LAYER_FOCUS_BORDER).bg(t.border),n=l(a.LAYER_EDITING).border(t.border);return r.buildAll([e,n])},cellFocusedInactive:function(t){return r.create("."+a.LAYER_FOCUS_DEACTIVE+" ."+a.LAYER_FOCUS_BORDER).bg(t.border).build()},cellEditable:function(t){return i(a.CELL_EDITABLE,t)},cellRequired:function(t){return i(a.CELL_REQUIRED,t)},cellDisabled:function(t){return i(a.CELL_DISABLED,t)},cellDummy:function(t){return i(a.CELL_DUMMY,t)},cellInvalid:function(t){return i(a.CELL_INVALID,t)},cellCurrentRow:function(t){return i(a.CELL_CURRENT_ROW,t)}}},function(t,e,n){"use strict";var i=n(6),o=n(7),s=o.defineClass({init:function(t){if(!i.isString(t)||!t)throw new Error("The Selector must be a string and not be empty.");this._selector=t,this._propValues=[]},add:function(t,e){return e&&this._propValues.push(t+":"+e),this},border:function(t){return this.add("border-color",t)},borderWidth:function(t){var e,n=t.showVerticalBorder,o=t.showHorizontalBorder;return i.isBoolean(n)&&(e=n?"1px":"0",this.add("border-left-width",e).add("border-right-width",e)),i.isBoolean(o)&&(e=o?"1px":"0",this.add("border-top-width",e).add("border-bottom-width",e)),this},bg:function(t){return this.add("background-color",t)},text:function(t){return this.add("color",t)},build:function(){var t="";return this._propValues.length&&(t=this._selector+"{"+this._propValues.join(";")+"}"),t}});t.exports={create:function(t){return new s(t)},createClassRule:function(t){return this.create("."+t)},createWebkitScrollbarRules:function(t,e){return[this.create(t+" ::-webkit-scrollbar").bg(e.background),this.create(t+" ::-webkit-scrollbar-thumb").bg(e.thumb),this.create(t+" ::-webkit-scrollbar-thumb:hover").bg(e.active)]},createIEScrollbarRule:function(t,e){var n=["scrollbar-3dlight-color","scrollbar-darkshadow-color","scrollbar-track-color","scrollbar-shadow-color"],o=["scrollbar-face-color","scrollbar-highlight-color"],s=this.create(t);return i.each(n,function(t){s.add(t,e.background)}),i.each(o,function(t){s.add(t,e.thumb)}),s.add("scrollbar-arrow-color",e.active),s},buildAll:function(t){return i.map(t,function(t){return t.build()}).join("")}}},function(t,e){"use strict";t.exports={grid:{background:"#fff",border:"#ccc",text:"#444"},selection:{background:"#4daaf9",border:"#004082"},heightResizeHandle:{border:"#ccc",background:"#fff"},pagination:{border:"transparent",background:"transparent"},scrollbar:{background:"#f5f5f5",thumb:"#d9d9d9",active:"#c1c1c1"},cell:{normal:{background:"#fbfbfb",border:"#e0e0e0",showVerticalBorder:!0,showHorizontalBorder:!0},head:{background:"#eee",border:"#ccc",showVerticalBorder:!0,showHorizontalBorder:!0},selectedHead:{background:"#d8d8d8"},focused:{border:"#418ed4"},focusedInactive:{border:"#aaa"},required:{background:"#fffdeb"},editable:{background:"#fff"},disabled:{text:"#b0b0b0"},dummy:{background:"#fff"},invalid:{background:"#ff8080"},evenRow:{},oddRow:{},currentRow:{}}}},function(t,e,n){"use strict";var i=n(10),o=n(81);t.exports=i.extend(!0,{},o,{cell:{normal:{background:"#fff",border:"#e8e8e8",showVerticalBorder:!1,showHorizontalBorder:!1},oddRow:{background:"#f3f3f3"},evenRow:{background:"#fff"},head:{background:"#fff",showVerticalBorder:!1,showHorizontalBorder:!1}}})},function(t,e,n){"use strict";var i=n(10),o=n(81);t.exports=i.extend(!0,{},o,{grid:{border:"#c0c0c0"},cell:{normal:{background:"#fff",border:"#e0e0e0",showVerticalBorder:!1,showHorizontalBorder:!0},head:{background:"#fff",border:"#e0e0e0",showVerticalBorder:!1,showHorizontalBorder:!0},selectedHead:{background:"#e0e0e0"}}})}])}); \ No newline at end of file diff --git a/dist/tui-grid.css b/dist/tui-grid.css index 823e80de5..1d47f4454 100644 --- a/dist/tui-grid.css +++ b/dist/tui-grid.css @@ -1,6 +1,6 @@ /*! - * bundle created at "Fri Sep 08 2017 17:16:54 GMT+0900 (KST)" - * version: 2.4.0 + * bundle created at "Thu Sep 28 2017 10:34:09 GMT+0900 (KST)" + * version: 2.4.1 */ .tui-grid-container { width: 100%; diff --git a/dist/tui-grid.js b/dist/tui-grid.js index 0260e84a5..56bd65aa9 100644 --- a/dist/tui-grid.js +++ b/dist/tui-grid.js @@ -1,6 +1,6 @@ /*! - * bundle created at "Fri Sep 08 2017 17:16:54 GMT+0900 (KST)" - * version: 2.4.0 + * bundle created at "Thu Sep 28 2017 10:34:09 GMT+0900 (KST)" + * version: 2.4.1 */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') @@ -87,6 +87,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview The tui.Grid class for the external API. * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -112,9 +113,9 @@ return /******/ (function(modules) { // webpackBootstrap /** * Grid public API - * @class - * @param {PropertiesHash} options - * @param {Array} [data] - Grid data for making rows. + * @class Grid + * @param {object} options + * @param {Array} [options.data] - Grid data for making rows. * @param {Object} [options.header] - Options object for header. * @param {number} [options.header.height=35] - The height of the header area. * @param {array} [options.header.complexColumns] - This options creates new parent headers of the multiple columns @@ -652,8 +653,10 @@ return /******/ (function(modules) { // webpackBootstrap _.each(rowKeys, function(rowKey) { this.modelManager.dataModel.removeRow(rowKey); }, this); + return true; } + return false; }, @@ -802,6 +805,7 @@ return /******/ (function(modules) { // webpackBootstrap this.addOn.Net = new NetAddOn(options); this.publicEventEmitter.listenToNetAddon(this.addOn.Net); } + return this; }, @@ -1011,6 +1015,7 @@ return /******/ (function(modules) { // webpackBootstrap */ findRows: function(conditions) { var rowList = this.modelManager.dataModel.getRows(); + return _.where(rowList, conditions); }, @@ -1056,7 +1061,7 @@ return /******/ (function(modules) { // webpackBootstrap * @static * @param {number} id - ID of the target grid * @returns {tui.Grid} - Grid instance - * var Grid = tui.Grid; // or reqire('tui-grid') + * var Grid = tui.Grid; // or require('tui-grid') * * Grid.getInstanceById(id); */ @@ -1127,7 +1132,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} [extOptions.cell.dummy] - Styles for dummy cells. * @param {String} [extOptions.cell.dummy.background] - background color of dummy cells. * @example - * var Grid = tui.Grid; // or reqire('tui-grid') + * var Grid = tui.Grid; // or require('tui-grid') * * Grid.applyTheme('striped', { * grid: { @@ -1150,7 +1155,7 @@ return /******/ (function(modules) { // webpackBootstrap * @static * @param {string} langCode - Language code ('en' or 'ko') * @example - * var Grid = tui.Grid; // or reqire('tui-grid') + * var Grid = tui.Grid; // or require('tui-grid') * * Grid.setLanguage('ko'); */ @@ -1181,6 +1186,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Base class for Views * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -1191,7 +1197,7 @@ return /******/ (function(modules) { // webpackBootstrap * @module base/view * @ignore */ - var View = Backbone.View.extend(/**@lends module:base/view.prototype */{ + var View = Backbone.View.extend(/** @lends module:base/view.prototype */{ initialize: function() { this._children = []; }, @@ -1268,6 +1274,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Model Manager * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(11); @@ -1327,7 +1334,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {module/domState} domState - DomState instance * @ignore */ - var ModelManager = snippet.defineClass(/**@lends module:modelManager.prototype */{ + var ModelManager = snippet.defineClass(/** @lends module:modelManager.prototype */{ init: function(options, domState, domEventBus) { options = $.extend(true, {}, defaultOptions, options); @@ -1453,6 +1460,7 @@ return /******/ (function(modules) { // webpackBootstrap var attrs = { resizable: columnOptions.resizable }; + return new CoordColumnModel(attrs, { columnModel: this.columnModel, dimensionModel: this.dimensionModel, @@ -1621,6 +1629,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview 컬럼 모델 * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(11); @@ -1672,7 +1681,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:base/model * @ignore */ - var ColumnModel = Model.extend(/**@lends module:model/data/columnModel.prototype */{ + var ColumnModel = Model.extend(/** @lends module:model/data/columnModel.prototype */{ initialize: function() { Model.prototype.initialize.apply(this, arguments); this.textType = { @@ -1725,6 +1734,7 @@ return /******/ (function(modules) { // webpackBootstrap } else { columns = this.get('dataColumns'); } + return _.findIndex(columns, {name: columnName}); }, @@ -1880,6 +1890,7 @@ return /******/ (function(modules) { // webpackBootstrap relationsMap[columnName] = columnModel.relations; } }); + return relationsMap; }, @@ -1896,6 +1907,7 @@ return /******/ (function(modules) { // webpackBootstrap ignoredColumnNames.push(columnModel.name); } }); + return ignoredColumnNames; }, @@ -1988,6 +2000,7 @@ return /******/ (function(modules) { // webpackBootstrap */ _getSelectType: function(rowHeaders) { var rowHeader = _.findWhere(rowHeaders, {name: '_button'}); + return rowHeader ? rowHeader.type : ''; }, @@ -2062,6 +2075,7 @@ return /******/ (function(modules) { // webpackBootstrap } } } + return _.uniq(searchedNames); }, @@ -2100,6 +2114,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Base class for Models * @author NHN Ent. FE Development Team */ + 'use strict'; var Backbone = __webpack_require__(9); @@ -2109,7 +2124,7 @@ return /******/ (function(modules) { // webpackBootstrap * @module base/model * @ignore */ - var Model = Backbone.Model.extend(/**@lends module:base/model.prototype*/{}); + var Model = Backbone.Model.extend(/** @lends module:base/model.prototype*/{}); module.exports = Model; @@ -2122,6 +2137,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Object that conatins constant values * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -2204,6 +2220,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Grid 의 Data Source 에 해당하는 Collection 정의 * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(11); @@ -2221,7 +2238,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - 생성자의 option 객체 * @ignore */ - var RowList = Collection.extend(/**@lends module:model/data/rowList.prototype */{ + var RowList = Collection.extend(/** @lends module:model/data/rowList.prototype */{ initialize: function(models, options) { Collection.prototype.initialize.apply(this, arguments); _.assign(this, { @@ -2265,7 +2282,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {Array} 파싱하여 가공된 데이터 */ parse: function(data) { - data = data && data.contents || data; + data = (data && data.contents) || data; + return this._formatData(data); }, @@ -2332,6 +2350,7 @@ return /******/ (function(modules) { // webpackBootstrap row._extraData = $.extend(defaultExtraData, row._extraData); row._button = row._extraData.rowState === 'CHECKED'; row.rowKey = rowKey; + return row; }, @@ -2342,6 +2361,7 @@ return /******/ (function(modules) { // webpackBootstrap */ _createRowKey: function() { this.lastRowKey += 1; + return this.lastRowKey; }, @@ -2360,12 +2380,14 @@ return /******/ (function(modules) { // webpackBootstrap function hasRowSpanData(row, columnName) { // eslint-disable-line no-shadow, require-jsdoc var extraData = row._extraData; + return !!(extraData.rowSpanData && extraData.rowSpanData[columnName]); } function setRowSpanData(row, columnName, rowSpanData) { // eslint-disable-line no-shadow, require-jsdoc var extraData = row._extraData; - extraData.rowSpanData = extraData && extraData.rowSpanData || {}; + extraData.rowSpanData = (extraData && extraData.rowSpanData) || {}; extraData.rowSpanData[columnName] = rowSpanData; + return extraData; } @@ -2377,7 +2399,7 @@ return /******/ (function(modules) { // webpackBootstrap isMainRow: true, mainRowKey: rowKey }); - //rowSpan 된 row 의 자식 rowSpanData 를 가공한다. + // rowSpan 된 row 의 자식 rowSpanData 를 가공한다. subCount = -1; for (i = index + 1; i < index + count; i += 1) { childRow = rowList[i]; @@ -2393,6 +2415,7 @@ return /******/ (function(modules) { // webpackBootstrap } }); } + return rowList; }, @@ -2404,6 +2427,7 @@ return /******/ (function(modules) { // webpackBootstrap setOriginalRowList: function(rowList) { this.originalRows = rowList ? this._formatData(rowList) : this.toJSON(); this.originalRowMap = _.indexBy(this.originalRows, 'rowKey'); + return this.originalRows; }, @@ -2414,6 +2438,7 @@ return /******/ (function(modules) { // webpackBootstrap */ getOriginalRowList: function(isClone) { isClone = _.isUndefined(isClone) ? true : isClone; + return isClone ? _.clone(this.originalRows) : this.originalRows; }, @@ -2449,6 +2474,7 @@ return /******/ (function(modules) { // webpackBootstrap rowSpanData = row && row.getRowSpanData(columnName); rowKey = rowSpanData ? rowSpanData.mainRowKey : rowKey; } + return rowKey; }, @@ -2549,6 +2575,7 @@ return /******/ (function(modules) { // webpackBootstrap } else { rows = this.toJSON(); } + return withRawData ? rows : this._removePrivateProp(rows); }, @@ -2563,7 +2590,7 @@ return /******/ (function(modules) { // webpackBootstrap syncRowSpannedData: function(row, columnName, value) { var index, rowSpanData, i; - //정렬 되지 않았을 때만 rowSpan 된 데이터들도 함께 update 한다. + // 정렬 되지 않았을 때만 rowSpan 된 데이터들도 함께 update 한다. if (this.isRowSpanEnable()) { rowSpanData = row.getRowSpanData(columnName); if (!rowSpanData.isMainRow) { @@ -2577,6 +2604,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, + /* eslint-disable complexity */ /** * Backbone 에서 sort() 실행시 내부적으로 사용되는 메소드. * @param {Row} a 비교할 앞의 모델 @@ -2606,8 +2634,10 @@ return /******/ (function(modules) { // webpackBootstrap if (!ascending) { result = -result; } + return result; }, + /* eslint-enable complexity */ /** * rowList 에서 내부에서만 사용하는 property 를 제거하고 반환한다. @@ -2629,8 +2659,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {boolean} options.keepRowSpanData - rowSpan이 mainRow를 삭제하는 경우 데이터를 유지할지 여부 */ removeRow: function(rowKey, options) { - var row = this.get(rowKey), - rowSpanData, nextRow, removedData; + var row = this.get(rowKey); + var rowSpanData, nextRow, removedData, currentIndex; if (!row) { return; @@ -2639,8 +2669,10 @@ return /******/ (function(modules) { // webpackBootstrap if (options && options.keepRowSpanData) { removedData = _.clone(row.attributes); } + + currentIndex = this.indexOf(row); rowSpanData = _.clone(row.getRowSpanData()); - nextRow = this.at(this.indexOf(row) + 1); + nextRow = this.at(currentIndex + 1); this.remove(row, { silent: true @@ -2650,7 +2682,7 @@ return /******/ (function(modules) { // webpackBootstrap if (options && options.removeOriginalData) { this.setOriginalRowList(); } - this.trigger('remove', rowKey); + this.trigger('remove', rowKey, currentIndex); }, /** @@ -2737,6 +2769,7 @@ return /******/ (function(modules) { // webpackBootstrap }; this.add(modelList, addOptions); + this._syncRowSpanDataForAppend(options.at, modelList.length, options.extendPrevRowSpan); this.trigger('add', modelList, options); @@ -2799,6 +2832,7 @@ return /******/ (function(modules) { // webpackBootstrap row = this.get(rowKey); value = row && row.get(columnName); } + return value; }, @@ -2817,8 +2851,10 @@ return /******/ (function(modules) { // webpackBootstrap row.set(columnName, value, { silent: silent }); + return true; } + return false; }, @@ -2830,6 +2866,7 @@ return /******/ (function(modules) { // webpackBootstrap */ getColumnValues: function(columnName, isJsonString) { var valueList = this.pluck(columnName); + return isJsonString ? JSON.stringify(valueList) : valueList; }, @@ -2870,6 +2907,7 @@ return /******/ (function(modules) { // webpackBootstrap */ getRowSpanData: function(rowKey, columnName) { var row = this.get(rowKey); + return row ? row.getRowSpanData(columnName) : null; }, @@ -3073,6 +3111,7 @@ return /******/ (function(modules) { // webpackBootstrap if (typeof value === 'object') { return (JSON.stringify(value) !== JSON.stringify(originalRow[columnName])); } + return value !== originalRow[columnName]; }, this); @@ -3119,13 +3158,14 @@ return /******/ (function(modules) { // webpackBootstrap } }, this); - //삭제된 행 추출 + // 삭제된 행 추출 _.each(original, function(obj, rowKey) { var item = rowKeyOnly ? obj.rowKey : _.omit(obj, ignoredColumns); if (!current[rowKey]) { result.deletedRows.push(item); } }, this); + return result; }, @@ -3301,6 +3341,7 @@ return /******/ (function(modules) { // webpackBootstrap }); } }); + return errorRows; }, @@ -3359,6 +3400,7 @@ return /******/ (function(modules) { // webpackBootstrap */ getElement: function(rowKey, columnName) { var mainRowKey = this.getMainRowKey(rowKey, columnName); + return this.domState.getElement(mainRowKey, columnName); }, @@ -3399,6 +3441,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Base class for Collections * @author NHN Ent. FE Development Team */ + 'use strict'; var Backbone = __webpack_require__(9); @@ -3408,7 +3451,7 @@ return /******/ (function(modules) { // webpackBootstrap * @module base/collection * @ignore */ - var Collection = Backbone.Collection.extend(/**@lends module:base/collection.prototype */{ + var Collection = Backbone.Collection.extend(/** @lends module:base/collection.prototype */{ /** * collection 내 model 들의 event listener 를 제거하고 메모리에서 해제한다. * @returns {object} this object @@ -3435,6 +3478,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Grid 의 Data Source 에 해당하는 Model 정의 * @author NHN Ent. FE Development Lab */ + 'use strict'; var _ = __webpack_require__(6); @@ -3466,7 +3510,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:base/model * @ignore */ - var Row = Model.extend(/**@lends module:model/data/row.prototype */{ + var Row = Model.extend(/** @lends module:model/data/row.prototype */{ initialize: function() { Model.prototype.initialize.apply(this, arguments); this.extraDataManager = new ExtraDataManager(this.get('_extraData')); @@ -3526,6 +3570,7 @@ return /******/ (function(modules) { // webpackBootstrap if (!data._extraData) { data._extraData = {}; } + return data; }, @@ -3722,6 +3767,7 @@ return /******/ (function(modules) { // webpackBootstrap return this.extraDataManager.getRowState(); }, + /* eslint-disable complexity */ /** * Returns an array of all className, related with given columnName. * @param {String} columnName - Column name @@ -3753,6 +3799,7 @@ return /******/ (function(modules) { // webpackBootstrap return this._makeUniqueStringArray(classNameList); }, + /* eslint-enable complexity */ /** * Returns a new array, which splits all comma-separated strings in the targetList and removes duplicated item. @@ -3761,6 +3808,7 @@ return /******/ (function(modules) { // webpackBootstrap */ _makeUniqueStringArray: function(targetArray) { var singleStringArray = _.uniq(targetArray.join(' ').split(' ')); + return _.without(singleStringArray, ''); }, @@ -3926,12 +3974,12 @@ return /******/ (function(modules) { // webpackBootstrap _getStringOfListItems: function(columnName, useText) { var value = this.get(columnName); var columnModel = this.columnModel.getColumnModel(columnName); - var resultListItems, editOptionList, typeExpected, valueList; + var resultListItems, editOptionList, typeExpected, valueList, hasListItems; if (snippet.isExisty(snippet.pick(columnModel, 'editOptions', 'listItems'))) { resultListItems = this.executeRelationCallbacksAll(['listItems'])[columnName]; - editOptionList = resultListItems && resultListItems.listItems ? - resultListItems.listItems : columnModel.editOptions.listItems; + hasListItems = resultListItems && resultListItems.listItems; + editOptionList = hasListItems ? resultListItems.listItems : columnModel.editOptions.listItems; typeExpected = typeof editOptionList[0].value; valueList = util.toString(value).split(','); @@ -3944,13 +3992,14 @@ return /******/ (function(modules) { // webpackBootstrap _.each(valueList, function(val, index) { var item = _.findWhere(editOptionList, {value: val}); - var str = item && (useText ? item.text : item.value) || ''; + var str = (item && (useText ? item.text : item.value)) || ''; valueList[index] = str; }, this); return valueList.join(','); } + return ''; }, @@ -4087,6 +4136,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Grid 의 Data Source 에 해당하는 Model 정의 * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -4099,7 +4149,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:base/model * @ignore */ - var ExtraDataManager = snippet.defineClass(/**@lends module:model/data/extraData.prototype */{ + var ExtraDataManager = snippet.defineClass(/** @lends module:model/data/extraData.prototype */{ init: function(data) { this.data = data || {}; }, @@ -4128,6 +4178,7 @@ return /******/ (function(modules) { // webpackBootstrap mainRowKey: rowKey }; } + return rowSpanData; }, @@ -4153,6 +4204,7 @@ return /******/ (function(modules) { // webpackBootstrap result.checked = true; default: // eslint-disable-line no-fallthrough } + return result; }, @@ -4239,6 +4291,7 @@ return /******/ (function(modules) { // webpackBootstrap arrayPush.apply(classNameList, classNameData.column[columnName]); } } + return classNameList; }, @@ -4250,8 +4303,9 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ _removeClassNameFromArray: function(classNameList, className) { - //배열 요소가 'class1 class2' 와 같이 두개 이상의 className을 포함할 수 있어, join & split 함. + // 배열 요소가 'class1 class2' 와 같이 두개 이상의 className을 포함할 수 있어, join & split 함. var singleNameList = classNameList.join(' ').split(' '); + return _.without(singleNameList, className); }, @@ -4311,6 +4365,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Event class for public event of Grid * @author NHN Ent. FE Development Lab */ + 'use strict'; var _ = __webpack_require__(6); @@ -4331,7 +4386,7 @@ return /******/ (function(modules) { // webpackBootstrap * @module event/gridEvent * @param {Object} data - Event data for handler */ - var GridEvent = snippet.defineClass(/**@lends module:event/gridEvent.prototype */{ + var GridEvent = snippet.defineClass(/** @lends module:event/gridEvent.prototype */{ init: function(nativeEvent, data) { this._stopped = false; if (nativeEvent) { @@ -4421,6 +4476,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview 유틸리티 메서드 모음 * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(11); @@ -4601,8 +4657,10 @@ return /******/ (function(modules) { // webpackBootstrap snippet.forEach(targetObj, function(item, key) { result = (item === distObj[key]); + return result; }); + return result; }; @@ -4612,10 +4670,12 @@ return /******/ (function(modules) { // webpackBootstrap return false; } else if (_.isObject(target)) { isDiff = !compareObject(target, dist) || !compareObject(dist, target); + return !isDiff; } else if (target !== dist) { return false; } + return true; }, @@ -4629,6 +4689,7 @@ return /******/ (function(modules) { // webpackBootstrap if (_.isString(target)) { return !target.length; } + return _.isUndefined(target) || _.isNull(target); }, @@ -4652,6 +4713,7 @@ return /******/ (function(modules) { // webpackBootstrap htmlString.replace(/<\/?(?:h[1-5]|[a-z]+(?::[a-z]+)?)[^>]*>/ig, '') )); } + return htmlString; }, @@ -4665,6 +4727,7 @@ return /******/ (function(modules) { // webpackBootstrap if (_.isUndefined(value) || _.isNull(value)) { return ''; } + return String(value); }, @@ -4675,6 +4738,7 @@ return /******/ (function(modules) { // webpackBootstrap */ getUniqueKey: function() { this.uniqueId += 1; + return this.uniqueId; }, @@ -4746,6 +4810,7 @@ return /******/ (function(modules) { // webpackBootstrap } else if (type === 'boolean') { return Boolean(value); } + return value; }, @@ -4775,6 +4840,7 @@ return /******/ (function(modules) { // webpackBootstrap min = max; max = temp; } + return Math.max(min, Math.min(value, max)); }, @@ -4843,6 +4909,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Utilities for clipboard data * @author NHN Ent. Fe Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -4937,8 +5004,9 @@ return /******/ (function(modules) { // webpackBootstrap return _.map(text.split(/\r?\n/), function(row) { return _.map(row.split('\t'), function(column) { column = clipboardUtil.removeDoubleQuotes(column); + return column.replace(CUSTOM_LF_REGEXP, LF) - .replace(CUSTOM_CR_REGEXP, CR); + .replace(CUSTOM_CR_REGEXP, CR); }); }); }, @@ -4964,7 +5032,7 @@ return /******/ (function(modules) { // webpackBootstrap removeDoubleQuotes: function(text) { if (text.match(CUSTOM_LF_REGEXP)) { text = text.substring(1, text.length - 1) - .replace(/""/g, '"'); + .replace(/""/g, '"'); } return text; @@ -4978,7 +5046,7 @@ return /******/ (function(modules) { // webpackBootstrap replaceNewlineToSubchar: function(text) { return text.replace(/"([^"]|"")*"/g, function(value) { return value.replace(LF, CUSTOM_LF_SUBCHAR) - .replace(CR, CUSTOM_CR_SUBCHAR); + .replace(CR, CUSTOM_CR_SUBCHAR); }); } }; @@ -4997,6 +5065,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview class name constants. * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -5138,6 +5207,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview module:model/dimension * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -5156,7 +5226,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:base/model * @ignore */ - var Dimension = Model.extend(/**@lends module:model/dimension.prototype */{ + var Dimension = Model.extend(/** @lends module:model/dimension.prototype */{ initialize: function(attrs, options) { Model.prototype.initialize.apply(this, arguments); @@ -5169,7 +5239,7 @@ return /******/ (function(modules) { // webpackBootstrap if (options.domEventBus) { this.listenTo(options.domEventBus, 'windowResize', this._onResizeWindow); this.listenTo(options.domEventBus, 'dragmove:resizeHeight', - _.debounce(_.bind(this._onDragMoveForHeight, this))); + _.debounce(_.bind(this._onDragMoveForHeight, this))); } this._resetSyncHeightHandler(); @@ -5460,7 +5530,9 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {number} */ getBodyOffsetTop: function() { - return this.get('offsetTop') + this.get('headerHeight') + var offsetTop = this.domState.getOffset().top; + + return offsetTop + this.get('headerHeight') + CELL_BORDER_WIDTH + TABLE_BORDER_WIDTH; }, @@ -5472,7 +5544,7 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ getPositionFromBodyArea: function(pageX, pageY) { - var bodyOffsetX = this.get('offsetLeft'); + var bodyOffsetX = this.domState.getOffset().left; var bodyOffsetY = this.getBodyOffsetTop(); return { @@ -5493,6 +5565,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Manage coordinates of rows * @author NHN Ent. FE Development Lab */ + 'use strict'; var _ = __webpack_require__(6); @@ -5508,7 +5581,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:base/model * @ignore */ - var CoordRow = Model.extend(/**@lends module:model/coordRow.prototype */{ + var CoordRow = Model.extend(/** @lends module:model/coordRow.prototype */{ initialize: function(attrs, options) { this.dataModel = options.dataModel; this.dimensionModel = options.dimensionModel; @@ -5630,6 +5703,7 @@ return /******/ (function(modules) { // webpackBootstrap */ getHeight: function(rowKey) { var index = this.dataModel.indexOfRowKey(rowKey); + return this.getHeightAt(index); }, @@ -5640,6 +5714,7 @@ return /******/ (function(modules) { // webpackBootstrap */ getOffset: function(rowKey) { var index = this.dataModel.indexOfRowKey(rowKey); + return this.getOffsetAt(index); }, @@ -5691,6 +5766,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Manage coordinates of rows * @author NHN Ent. FE Development Lab */ + 'use strict'; var _ = __webpack_require__(6); @@ -5711,7 +5787,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:base/model * @ignore */ - var CoordColumn = Model.extend(/**@lends module:model/coordColumn.prototype */{ + var CoordColumn = Model.extend(/** @lends module:model/coordColumn.prototype */{ initialize: function(attrs, options) { this.dimensionModel = options.dimensionModel; this.columnModel = options.columnModel; @@ -5943,6 +6019,7 @@ return /******/ (function(modules) { // webpackBootstrap columnIndexes.push(index); } }); + return this._distributeExtraWidthEqually(widths, totalExtraWidth, columnIndexes); }, @@ -6197,6 +6274,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Converts coordinates to index of rows and columns * @author NHN Ent. FE Development Lab */ + 'use strict'; var snippet = __webpack_require__(7); @@ -6214,7 +6292,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:base/model * @ignore */ - var CoordConverter = Model.extend(/**@lends module:model/coordConverter.prototype */{ + var CoordConverter = Model.extend(/** @lends module:model/coordConverter.prototype */{ initialize: function(attrs, options) { this.dataModel = options.dataModel; this.columnModel = options.columnModel; @@ -6460,6 +6538,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Focus Model * @author NHN Ent. FE Development Lab */ + 'use strict'; var _ = __webpack_require__(6); @@ -6476,7 +6555,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:base/model * @ignore */ - var Focus = Model.extend(/**@lends module:model/focus.prototype */{ + var Focus = Model.extend(/** @lends module:model/focus.prototype */{ initialize: function(attrs, options) { var editEventName = options.editingEvent + ':cell'; var domEventBus; @@ -6532,7 +6611,13 @@ return /******/ (function(modules) { // webpackBootstrap * address of the editing cell * @type {{rowKey:(String|Number), columnName:String}} */ - editingAddress: null + editingAddress: null, + + /** + * Whether focus state is active or not + * @type {Boolean} + */ + active: false }, /** @@ -6564,12 +6649,13 @@ return /******/ (function(modules) { // webpackBootstrap this.focusIn(ev.rowKey, ev.columnName); }, + /* eslint-disable complexity */ /** * Event handler for key:move event * @param {module:event/gridEvent} ev - GridEvent * @private */ - _onKeyMove: function(ev) { // eslint-disable-line complexity + _onKeyMove: function(ev) { var rowKey, columnName; switch (ev.command) { @@ -6613,6 +6699,7 @@ return /******/ (function(modules) { // webpackBootstrap this.focus(rowKey, columnName, true); }, + /* eslint-enable complexity */ /** * Event handler for key:edit event @@ -6699,6 +6786,7 @@ return /******/ (function(modules) { // webpackBootstrap return String(curRowKey) === String(rowKey) && curColumnName === columnName; }, + /* eslint-disable complexity */ /** * Focus to the cell identified by given rowKey and columnName. * @param {Number|String} rowKey - rowKey @@ -6707,6 +6795,10 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {Boolean} true if focused cell is changed */ focus: function(rowKey, columnName, isScrollable) { + if (!this.get('active')) { + this.set('active', true); + } + if (!this._isValidCell(rowKey, columnName) || util.isMetaColumn(columnName) || this.isCurrentCell(rowKey, columnName)) { @@ -6731,6 +6823,7 @@ return /******/ (function(modules) { // webpackBootstrap return true; }, + /* eslint-enable complexity */ /** * Trigger 'focusChange' event and returns the result @@ -6821,6 +6914,7 @@ return /******/ (function(modules) { // webpackBootstrap if (row && column) { result = this.focusIn(row.get('rowKey'), column.name, isScrollable); } + return result; }, @@ -6833,13 +6927,13 @@ return /******/ (function(modules) { // webpackBootstrap /** * If the grid has an element which has a focus, make sure that focusModel has a valid data, - * Otherwise call focusModel.blur(). + * Otherwise change the focus state. */ refreshState: function() { var restored; if (!this.domState.hasFocusedElement()) { - this.blur(); + this.set('active', false); } else if (!this.has()) { restored = this.restore(); if (!restored) { @@ -6849,7 +6943,7 @@ return /******/ (function(modules) { // webpackBootstrap }, /** - * 디자인 blur 처리한다. + * Apply blur state on cell * @returns {Model.Focus} This object */ blur: function() { @@ -6909,6 +7003,7 @@ return /******/ (function(modules) { // webpackBootstrap if (checkValid) { return this._isValidCell(rowKey, columnName); } + return !util.isBlank(rowKey) && !util.isBlank(columnName); }, @@ -6929,6 +7024,7 @@ return /******/ (function(modules) { // webpackBootstrap }); restored = true; } + return restored; }, @@ -7027,6 +7123,7 @@ return /******/ (function(modules) { // webpackBootstrap rowKey = row.get('rowKey'); } } + return rowKey; }, @@ -7047,6 +7144,7 @@ return /******/ (function(modules) { // webpackBootstrap index = Math.max(Math.min(columnIndex + offset, columns.length - 1), 0); columnName = columns[index] && columns[index].name; } + return columnName; }, @@ -7290,13 +7388,15 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Rendering 모델 * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); var snippet = __webpack_require__(7); var Model = __webpack_require__(13); - var RowList = __webpack_require__(29); + var Row = __webpack_require__(29); + var RowList = __webpack_require__(30); var renderStateMap = __webpack_require__(14).renderState; var CELL_BORDER_WIDTH = __webpack_require__(14).dimension.CELL_BORDER_WIDTH; @@ -7310,9 +7410,10 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - var Renderer = Model.extend(/**@lends module:model/renderer.prototype */{ + var Renderer = Model.extend(/** @lends module:model/renderer.prototype */{ initialize: function(attrs, options) { - var lside, rside, rowListOptions; + var rowListOptions; + var partialLside, partialRside; _.assign(this, { dataModel: options.dataModel, @@ -7329,14 +7430,14 @@ return /******/ (function(modules) { // webpackBootstrap focusModel: this.focusModel }; - lside = new RowList([], rowListOptions); - rside = new RowList([], rowListOptions); + partialLside = new RowList([], rowListOptions); + partialRside = new RowList([], rowListOptions); this.set({ - lside: lside, - rside: rside, - partialLside: new RowList([], rowListOptions), - partialRside: new RowList([], rowListOptions) + lside: [], + rside: [], + partialLside: partialLside, + partialRside: partialRside }); this.listenTo(this.columnModel, 'columnModelChange change', this._onColumnModelChange) @@ -7346,8 +7447,8 @@ return /******/ (function(modules) { // webpackBootstrap .listenTo(this.dataModel, 'remove', this._onRemoveDataModelChange) .listenTo(this.dataModel, 'beforeReset', this._onBeforeResetData) .listenTo(this.focusModel, 'change:editingAddress', this._onEditingAddressChange) - .listenTo(lside, 'valueChange', this._executeRelation) - .listenTo(rside, 'valueChange', this._executeRelation) + .listenTo(partialLside, 'valueChange', this._executeRelation) + .listenTo(partialRside, 'valueChange', this._executeRelation) .listenTo(this.coordRowModel, 'reset', this._onChangeRowHeights) .listenTo(this.dimensionModel, 'columnWidthChanged', this.finishEditing) .listenTo(this.dimensionModel, 'change:width', this._updateMaxScrollLeft) @@ -7377,6 +7478,8 @@ return /******/ (function(modules) { // webpackBootstrap startNumber: 1, lside: null, rside: null, + partialLside: null, + partialRside: null, showDummyRows: false, dummyRowCount: 0, @@ -7384,10 +7487,7 @@ return /******/ (function(modules) { // webpackBootstrap emptyMessage: null, // constMap.renderState - state: renderStateMap.DONE, - - partialLside: null, - partialRside: null + state: renderStateMap.DONE }, /** @@ -7420,14 +7520,15 @@ return /******/ (function(modules) { // webpackBootstrap */ _onChangeRowHeights: function() { var coordRowModel = this.coordRowModel; - var lside = this.get('lside'); - var rside = this.get('rside'); - var len = lside.length; + var lside = this.get('partialLside'); + var rside = this.get('partialRside'); var i = 0; + var len = lside.length; var height; for (; i < len; i += 1) { height = coordRowModel.getHeightAt(i); + lside.at(i).set('height', height); rside.at(i).set('height', height); } @@ -7566,6 +7667,7 @@ return /******/ (function(modules) { // webpackBootstrap */ getCollection: function(whichSide) { var attrName = this._getPartialWhichSideType(whichSide); + return this.get(attrName); }, @@ -7585,6 +7687,8 @@ return /******/ (function(modules) { // webpackBootstrap */ _onColumnModelChange: function() { this.set({scrollTop: 0}, {silent: true}); + + this._resetViewModelList(); this._setRenderingRange(true); this.refresh({ @@ -7598,10 +7702,7 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ _onDataModelChange: function() { - _.each(['lside', 'rside'], function(attrName) { - this.get(attrName).reset(); - }, this); - + this._resetViewModelList(); this._setRenderingRange(true); this.refresh({ @@ -7617,14 +7718,12 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ _onAddDataModelChange: function(modelList, options) { - var viewModelList = this.get('lside').length ? this.get('lside') : this.get('rside'); var columnNamesMap = this._getColumnNamesOfEachSide(); var at = options.at; var height, viewData, rowNum; + var viewModel; - if (at > viewModelList.length - 1) { - return; - } + this._setRenderingRange(true); // the type of modelList is array or collection modelList = _.isArray(modelList) ? modelList : modelList.models; @@ -7637,10 +7736,9 @@ return /******/ (function(modules) { // webpackBootstrap viewData = this._createViewDataFromDataModel( model, columnNamesMap[attrName], height, rowNum); - this.get(attrName).add([viewData], { - parse: true, - at: at + index - }); + viewModel = this._createRowModel(viewData, true); + + this.get(attrName).splice(at + index, 0, viewModel); }, this); }, this); @@ -7657,12 +7755,12 @@ return /******/ (function(modules) { // webpackBootstrap /** * Event handler for removing data list * @param {number|string} rowKey - rowKey of the removed row + * @param {number} removedIndex - Index of the removed row * @private */ - _onRemoveDataModelChange: function(rowKey) { + _onRemoveDataModelChange: function(rowKey, removedIndex) { _.each(['lside', 'rside'], function(attrName) { - var collection = this.get(attrName); - collection.remove(collection.get(rowKey)); + this.get(attrName).splice(removedIndex, 1); }, this); this._setRenderingRange(true); @@ -7772,10 +7870,12 @@ return /******/ (function(modules) { // webpackBootstrap var columnModels = this.columnModel.getVisibleColumns(null, true); var columnNames = _.pluck(columnModels, 'name'); - return { + var test = { lside: columnNames.slice(0, frozenCount), rside: columnNames.slice(frozenCount) }; + + return test; }, /** @@ -7808,17 +7908,13 @@ return /******/ (function(modules) { // webpackBootstrap */ _addViewModelList: function(rowDataModel, columnNamesMap, height, index) { _.each(['lside', 'rside'], function(attrName) { - var rowKey = rowDataModel.get('rowKey'); var viewData; - if (!this.get(attrName).get(rowKey)) { + if (!this.get(attrName)[index]) { viewData = this._createViewDataFromDataModel( rowDataModel, columnNamesMap[attrName], height, index + 1); - this.get(attrName).add([viewData], { - parse: true, - at: index - }); + this.get(attrName)[index] = this._createRowModel(viewData, true); } }, this); }, @@ -7835,7 +7931,7 @@ return /******/ (function(modules) { // webpackBootstrap var currentModel, rowNum, newRowNum; for (; index <= endIndex; index += 1) { - currentModel = collection.at(index); + currentModel = collection[index]; newRowNum = index + 1; if (currentModel) { @@ -7866,15 +7962,15 @@ return /******/ (function(modules) { // webpackBootstrap */ _resetPartialViewModelList: function(startIndex, endIndex) { var originalWhichSide, partialWhichSide; - var viewModelList, patialViewModelList; + var viewModelList, partialViewModelList; _.each(['L', 'R'], function(whichSide) { originalWhichSide = whichSide.toLowerCase() + 'side'; partialWhichSide = this._getPartialWhichSideType(whichSide); viewModelList = this.get(originalWhichSide); - patialViewModelList = viewModelList.slice(startIndex, endIndex + 1); + partialViewModelList = viewModelList.slice(startIndex, endIndex + 1); - this.get(partialWhichSide).reset(patialViewModelList); + this.get(partialWhichSide).reset(partialViewModelList); }, this); }, @@ -7936,16 +8032,18 @@ return /******/ (function(modules) { // webpackBootstrap _.times(dummyRowCount, function() { _.each(['lside', 'rside'], function(listName) { - this.get(listName).add({ + this.get(listName).push(this._createRowModel({ height: rowHeight, rowNum: rowNum - }); + })); }, this); + rowNum += 1; }, this); } }, + /* eslint-disable complexity */ /** * Refreshes the rendering range and the list of view models, and triggers events. * @param {object} options - options @@ -7953,7 +8051,6 @@ return /******/ (function(modules) { // webpackBootstrap * @param {boolean} [options.dataListChanged] - The boolean value whether dataModel has changed * @param {string} [options.type] - Event type (reset|add|remove) */ - /* eslint-disable complexity */ refresh: function(options) { var columnModelChanged = !!options && options.columnModelChanged; var dataListChanged = !!options && options.dataListChanged; @@ -8011,14 +8108,15 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ _getCollectionByColumnName: function(columnName) { - var lside = this.get('lside'); + var lside = this.get('partialLside'); var collection; if (lside.at(0) && lside.at(0).get(columnName)) { collection = lside; } else { - collection = this.get('rside'); + collection = this.get('partialRside'); } + return collection; }, @@ -8041,7 +8139,6 @@ return /******/ (function(modules) { // webpackBootstrap * @param {String} columnName 컬럼명 * @returns {object} cellData 셀 데이터 * @example - => { rowKey: rowKey, columnName: columnName, @@ -8085,58 +8182,47 @@ return /******/ (function(modules) { // webpackBootstrap rowModel.setCell(columnName, changes); } }, this); - } - }); - - module.exports = Renderer; - - -/***/ }), -/* 29 */ -/***/ (function(module, exports, __webpack_require__) { - - /** - * @fileoverview RowList 클래스파일 - * @author NHN Ent. FE Development Team - */ - 'use strict'; - - var _ = __webpack_require__(6); - - var Collection = __webpack_require__(16); - var Row = __webpack_require__(30); + }, - /** - * View Model rowList collection - * @module model/rowList - * @extends module:base/collection - * @param {Object} rawData - Raw data - * @param {Object} options - Options - * @ignore - */ - var RowList = Collection.extend(/**@lends module:model/rowList.prototype */{ - initialize: function(rawData, options) { - _.assign(this, { - dataModel: options.dataModel, - columnModel: options.columnModel, - focusModel: options.focusModel + /** + * Create row model + * @param {object} attrs - Attributes to create + * @param {boolean} parse - Whether calling parse or not + * @returns {object} Row model + * @private + */ + _createRowModel: function(attrs, parse) { + return new Row(attrs, { + parse: parse, + dataModel: this.dataModel, + columnModel: this.columnModel, + focusModel: this.focusModel }); }, - model: Row + /** + * Reset view models when value of columModel or dataModel is changed + * @private + */ + _resetViewModelList: function() { + _.each(['lside', 'rside'], function(attrName) { + this.set(attrName, new Array(this.dataModel.length)); + }, this); + } }); - module.exports = RowList; + module.exports = Renderer; /***/ }), -/* 30 */ +/* 29 */ /***/ (function(module, exports, __webpack_require__) { /** * @fileoverview Row Model for Rendering (View Model) * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -8153,15 +8239,15 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:base/model * @ignore */ - var Row = Model.extend(/**@lends module:model/row.prototype */{ - initialize: function(attributes) { + var Row = Model.extend(/** @lends module:model/row.prototype */{ + initialize: function(attributes, options) { var rowKey = attributes && attributes.rowKey; - var dataModel = this.collection.dataModel; + var dataModel = options.dataModel; var rowData = dataModel.get(rowKey); this.dataModel = dataModel; - this.columnModel = this.collection.columnModel; - this.focusModel = this.collection.focusModel; + this.columnModel = options.columnModel; + this.focusModel = options.focusModel; if (rowData) { this.listenTo(rowData, 'change', this._onDataModelChange); @@ -8211,7 +8297,7 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ _getColumnNameList: function() { - var columnModels = this.collection.columnModel.getVisibleColumns(null, true); + var columnModels = this.columnModel.getVisibleColumns(null, true); return _.pluck(columnModels, 'name'); }, @@ -8235,10 +8321,6 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ _setRowExtraData: function() { - if (snippet.isUndefined(this.collection)) { - return; - } - _.each(this._getColumnNameList(), function(columnName) { var cellData = this.get(columnName); var cellState; @@ -8264,8 +8346,7 @@ return /******/ (function(modules) { // webpackBootstrap * @override */ parse: function(data, options) { - var collection = options.collection; - return this._formatData(data, collection.dataModel, collection.columnModel, collection.focusModel); + return this._formatData(data, options.dataModel, options.columnModel, options.focusModel); }, /** @@ -8311,7 +8392,7 @@ return /******/ (function(modules) { // webpackBootstrap listItems: snippet.pick(column, 'editOptions', 'listItems'), className: this._getClassNameString(columnName, row, focusModel), columnModel: column, - changed: [] //changed property names + changed: [] // changed property names }; _.assign(data[columnName], this._getValueAttrs(value, row, column, isTextType)); }, this); @@ -8430,6 +8511,7 @@ return /******/ (function(modules) { // webpackBootstrap if (convertedHTML === false) { convertedHTML = null; } + return convertedHTML; }, @@ -8475,6 +8557,7 @@ return /******/ (function(modules) { // webpackBootstrap isMainRow: true }; } + return rowSpanData; }, @@ -8521,7 +8604,7 @@ return /******/ (function(modules) { // webpackBootstrap silent: this._shouldSetSilently(data, isValueChanged) }); if (isValueChanged) { - rowIndex = this.collection.dataModel.indexOfRowKey(rowKey); + rowIndex = this.dataModel.indexOfRowKey(rowKey); this.trigger('valueChange', rowIndex); } } @@ -8552,6 +8635,45 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Row; +/***/ }), +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { + + /** + * @fileoverview RowList 클래스파일 + * @author NHN Ent. FE Development Team + */ + + 'use strict'; + + var _ = __webpack_require__(6); + + var Collection = __webpack_require__(16); + var Row = __webpack_require__(29); + + /** + * View Model rowList collection + * @module model/rowList + * @extends module:base/collection + * @param {Object} rawData - Raw data + * @param {Object} options - Options + * @ignore + */ + var RowList = Collection.extend(/** @lends module:model/rowList.prototype */{ + initialize: function(rawData, options) { + _.assign(this, { + dataModel: options.dataModel, + columnModel: options.columnModel, + focusModel: options.focusModel + }); + }, + + model: Row + }); + + module.exports = RowList; + + /***/ }), /* 31 */ /***/ (function(module, exports, __webpack_require__) { @@ -8560,6 +8682,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Render model to be used for smart-rendering * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -8581,7 +8704,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:model/renderer * @ignore */ - var SmartRenderer = Renderer.extend(/**@lends module:model/renderer-smart.prototype */{ + var SmartRenderer = Renderer.extend(/** @lends module:model/renderer-smart.prototype */{ initialize: function() { Renderer.prototype.initialize.apply(this, arguments); @@ -8658,6 +8781,7 @@ return /******/ (function(modules) { // webpackBootstrap counts.push(0); // count가 음수인 경우(mainRow가 아닌 경우)에만 최소값을 구함. 없으면 0 result = _.min(counts); } + return result; }, @@ -8721,6 +8845,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Selection Model class * @author NHN Ent. FE Development Lab */ + 'use strict'; var $ = __webpack_require__(11); @@ -8740,7 +8865,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - var Selection = Model.extend(/**@lends module:model/selection.prototype */{ + var Selection = Model.extend(/** @lends module:model/selection.prototype */{ initialize: function(attr, options) { var domEventBus; @@ -8804,6 +8929,7 @@ return /******/ (function(modules) { // webpackBootstrap if (_.some(columnNames, util.isMetaColumn)) { gridEvent.stop(); + return; } @@ -8945,6 +9071,7 @@ return /******/ (function(modules) { // webpackBootstrap index.column = selectionColumnRange[1]; } } + return index; }, @@ -9358,6 +9485,7 @@ return /******/ (function(modules) { // webpackBootstrap if (columnModel.getCopyOptions(columnName).useFormattedValue) { return renderModel.getCellData(row.get('rowKey'), columnName).formattedValue; } + return row.getValueString(columnName); }).join('\t'); }); @@ -9365,6 +9493,7 @@ return /******/ (function(modules) { // webpackBootstrap if (this._isSingleCell(columnNames, rowList)) { return rowValues[0]; } + return rowValues.join('\n'); }, @@ -9469,6 +9598,7 @@ return /******/ (function(modules) { // webpackBootstrap inputRange = inputRange || this.inputRange; if (!inputRange) { this.set('range', null); + return; } @@ -9527,15 +9657,15 @@ return /******/ (function(modules) { // webpackBootstrap } }); - /** - * Occurs when selecting cells - * @event Grid#selection - * @type {module:event/gridEvent} - * @property {Object} range - Range of selection - * @property {Array} range.start - Info of start cell (ex: [rowKey, columName]) - * @property {Array} range.end - Info of end cell (ex: [rowKey, columnName]) - * @property {Grid} instance - Current grid instance - */ + /** + * Occurs when selecting cells + * @event Grid#selection + * @type {module:event/gridEvent} + * @property {Object} range - Range of selection + * @property {Array} range.start - Info of start cell (ex: [rowKey, columName]) + * @property {Array} range.end - Info of end cell (ex: [rowKey, columnName]) + * @property {Grid} instance - Current grid instance + */ this.trigger('selection', gridEvent); }, @@ -9640,7 +9770,7 @@ return /******/ (function(modules) { // webpackBootstrap startRowSpanDataMap = dataModel.at(spannedRange.row[0]).getRowSpanData(); endRowSpanDataMap = dataModel.at(spannedRange.row[1]).getRowSpanData(); - //모든 열을 순회하며 각 열마다 설정된 rowSpan 정보에 따라 인덱스를 업데이트 한다. + // 모든 열을 순회하며 각 열마다 설정된 rowSpan 정보에 따라 인덱스를 업데이트 한다. _.each(columns, function(columnModel) { param = { columnName: columnModel.name, @@ -9657,6 +9787,7 @@ return /******/ (function(modules) { // webpackBootstrap }, this); newSpannedRange.row = [Math.min.apply(null, startIndexList), Math.max.apply(null, endIndexList)]; + return newSpannedRange; } }); @@ -9672,6 +9803,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Focus 관련 데이터 처리름 담당한다. * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -9688,7 +9820,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - options * @ignore */ - var Summary = Model.extend(/**@lends module:model/summary.prototype */{ + var Summary = Model.extend(/** @lends module:model/summary.prototype */{ initialize: function(attr, options) { this.dataModel = options.dataModel; @@ -9825,6 +9957,7 @@ return /******/ (function(modules) { // webpackBootstrap } value = snippet.pick(valueMap, summaryType); + return _.isUndefined(value) ? null : value; } }); @@ -9840,6 +9973,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Clipboard Model * @author NHN Ent. FE Development Lab */ + 'use strict'; var $ = __webpack_require__(11); @@ -9854,7 +9988,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - var Clipboard = Model.extend(/**@lends module:model/clipboard.prototype*/{ + var Clipboard = Model.extend(/** @lends module:model/clipboard.prototype*/{ initialize: function(attr, options) { Model.prototype.initialize.apply(this, arguments); @@ -10000,6 +10134,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview View factory * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -10081,6 +10216,7 @@ return /******/ (function(modules) { // webpackBootstrap if (!isOptionEnabled(this.componentHolder.getOptions('pagination'))) { return null; } + return new PaginationView({ componentHolder: this.componentHolder, dimensionModel: this.modelManager.dimensionModel, @@ -10096,6 +10232,7 @@ return /******/ (function(modules) { // webpackBootstrap if (!isOptionEnabled(this.heightResizable)) { return null; } + return new HeightResizeHandleView({ dimensionModel: this.modelManager.dimensionModel, domEventBus: this.domEventBus @@ -10342,6 +10479,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview View class that conaints a top element of the DOM structure of the grid. * @author NHN Ent. FE Development Lab */ + 'use strict'; var $ = __webpack_require__(11); @@ -10359,7 +10497,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - var Container = View.extend(/**@lends module:view/container.prototype */{ + var Container = View.extend(/** @lends module:view/container.prototype */{ initialize: function(options) { View.prototype.initialize.call(this); @@ -10607,6 +10745,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Class for the content area * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(11); @@ -10634,7 +10773,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - ContentArea = View.extend(/**@lends module:view/layout/content-area.prototype */{ + ContentArea = View.extend(/** @lends module:view/layout/content-area.prototype */{ initialize: function(options) { View.prototype.initialize.call(this); @@ -10696,6 +10835,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Class for the pagination * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -10718,7 +10858,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - var Pagination = View.extend(/**@lends module:view/pagination.prototype */{ + var Pagination = View.extend(/** @lends module:view/pagination.prototype */{ initialize: function(options) { this.dimensionModel = options.dimensionModel; this.componentHolder = options.componentHolder; @@ -10737,6 +10877,7 @@ return /******/ (function(modules) { // webpackBootstrap render: function() { this._destroyChildren(); this.componentHolder.setInstance('pagination', this._createComponent()); + return this; }, @@ -10805,6 +10946,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Class for the height resize handle * @author NHN Ent. FE Development Team */ + 'use strict'; var View = __webpack_require__(8); @@ -10818,7 +10960,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - var HeightResizeHandle = View.extend(/**@lends module:view/layout/heightResizeHandle.prototype */{ + var HeightResizeHandle = View.extend(/** @lends module:view/layout/heightResizeHandle.prototype */{ initialize: function(options) { this.dimensionModel = options.dimensionModel; this.domEventBus = options.domEventBus; @@ -10881,6 +11023,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Drag event emitter * @author NHN Ent. FE Development Lab */ + 'use strict'; var $ = __webpack_require__(11); @@ -10893,7 +11036,7 @@ return /******/ (function(modules) { // webpackBootstrap * @module event/dragEventEmitter * @ignore */ - var DragEventEmitter = snippet.defineClass(/**@lends module:event/dragEventEmitter.prototype */{ + var DragEventEmitter = snippet.defineClass(/** @lends module:event/dragEventEmitter.prototype */{ init: function(options) { _.assign(this, { type: options.type, @@ -11039,6 +11182,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Layer class that represents the state of rendering phase * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -11056,7 +11200,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - var StateLayer = View.extend(/**@lends module:view/stateLayer.prototype */{ + var StateLayer = View.extend(/** @lends module:view/stateLayer.prototype */{ initialize: function(options) { this.dimensionModel = options.dimensionModel; this.renderModel = options.renderModel; @@ -11154,6 +11298,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Locale messages * @author NHN Ent. Fe Development Lab */ + 'use strict'; var util = __webpack_require__(20); @@ -11223,6 +11368,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Hidden Textarea View for handling key navigation events and emulating clipboard actions * @author NHN Ent. FE Development Lab */ + 'use strict'; var $ = __webpack_require__(11); @@ -11266,7 +11412,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - Clipboard = View.extend(/**@lends module:view/clipboard.prototype */{ + Clipboard = View.extend(/** @lends module:view/clipboard.prototype */{ initialize: function(options) { _.assign(this, { focusModel: options.focusModel, @@ -11326,6 +11472,7 @@ return /******/ (function(modules) { // webpackBootstrap if (this.isLocked) { ev.preventDefault(); + return; } @@ -11516,6 +11663,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Key event generator * @author NHN Ent. FE Development Lab */ + 'use strict'; var _ = __webpack_require__(6); @@ -11630,6 +11778,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Left Side Frame * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(11); @@ -11645,7 +11794,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:view/layout/frame * @ignore */ - var LsideFrame = Frame.extend(/**@lends module:view/layout/frame-lside.prototype */{ + var LsideFrame = Frame.extend(/** @lends module:view/layout/frame-lside.prototype */{ initialize: function() { Frame.prototype.initialize.apply(this, arguments); _.assign(this, { @@ -11702,6 +11851,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Frame Base * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -11717,7 +11867,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {String} [options.whichSide=R] R for Right side, L for Left side * @ignore */ - var Frame = View.extend(/**@lends module:view/layout/frame.prototype */{ + var Frame = View.extend(/** @lends module:view/layout/frame.prototype */{ initialize: function(options) { View.prototype.initialize.call(this); @@ -11777,6 +11927,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Right Side Frame * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(11); @@ -11794,7 +11945,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:view/layout/frame * @ignore */ - var RsideFrame = Frame.extend(/**@lends module:view/layout/frame-rside.prototype */{ + var RsideFrame = Frame.extend(/** @lends module:view/layout/frame-rside.prototype */{ initialize: function() { Frame.prototype.initialize.apply(this, arguments); @@ -11920,6 +12071,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Header View * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(11); @@ -11950,7 +12102,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {String} [options.whichSide=R] R: Right, L: Left * @ignore */ - var Header = View.extend(/**@lends module:view/layout/header.prototype */{ + var Header = View.extend(/** @lends module:view/layout/header.prototype */{ initialize: function(options) { View.prototype.initialize.call(this); @@ -12095,6 +12247,7 @@ return /******/ (function(modules) { // webpackBootstrap return _.filter(mergedColumnNames, function(mergedColumnName) { var unitColumnNames = columnModel.getUnitColumnNamesIfMerged(mergedColumnName); + return _.every(unitColumnNames, function(name) { return _.contains(columnNames, name); }); @@ -12284,6 +12437,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {boolean} sortOptions.ascending 오름차순 여부 */ _updateBtnSortState: function(sortOptions) { + var className; + if (this._$currentSortBtn) { this._$currentSortBtn.removeClass(classNameConst.BTN_SORT_DOWN + ' ' + classNameConst.BTN_SORT_UP); } @@ -12291,9 +12446,9 @@ return /******/ (function(modules) { // webpackBootstrap 'th[' + ATTR_COLUMN_NAME + '="' + sortOptions.columnName + '"] a.' + classNameConst.BTN_SORT ); - this._$currentSortBtn.addClass(sortOptions.ascending ? - classNameConst.BTN_SORT_UP : classNameConst.BTN_SORT_DOWN - ); + className = sortOptions.ascending ? classNameConst.BTN_SORT_UP : classNameConst.BTN_SORT_DOWN; + + this._$currentSortBtn.addClass(className); }, /** @@ -12333,6 +12488,7 @@ return /******/ (function(modules) { // webpackBootstrap }; }, + /* eslint-disable complexity */ /** * Header 의 body markup 을 생성한다. * @returns {string} header 의 테이블 body 영역에 들어갈 html 마크업 스트링 @@ -12399,6 +12555,7 @@ return /******/ (function(modules) { // webpackBootstrap return headerMarkupList.join(''); }, + /* eslint-enable complexity */ /** * column merge 가 설정되어 있을 때 헤더의 max row count 를 가져온다. @@ -12453,6 +12610,7 @@ return /******/ (function(modules) { // webpackBootstrap }, this); } } + return results; } }); @@ -12470,6 +12628,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview ResizeHandle for the Header * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(11); @@ -12493,7 +12652,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - var ResizeHandle = View.extend(/**@lends module:view/layout/resizeHandle.prototype */ { + var ResizeHandle = View.extend(/** @lends module:view/layout/resizeHandle.prototype */ { initialize: function(options) { _.assign(this, { columnModel: options.columnModel, @@ -12677,6 +12836,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Class for the body layout * @author NHN Ent. FE Development Lab */ + 'use strict'; var $ = __webpack_require__(11); @@ -12703,7 +12863,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {String} [options.whichSide=R] L or R (which side) * @ignore */ - var Body = View.extend(/**@lends module:view/layout/body.prototype */{ + var Body = View.extend(/** @lends module:view/layout/body.prototype */{ initialize: function(options) { View.prototype.initialize.call(this); @@ -12715,7 +12875,7 @@ return /******/ (function(modules) { // webpackBootstrap // DIV for setting rendering position of entire child-nodes of $el. $container: null, - whichSide: options && options.whichSide || frameConst.R + whichSide: (options && options.whichSide) || frameConst.R }); this.listenTo(this.dimensionModel, 'change:bodyHeight', this._onBodyHeightChange) @@ -12849,6 +13009,7 @@ return /******/ (function(modules) { // webpackBootstrap result = (endTime - startTime) <= MIN_INTERVAL_FOR_PAUSED; } } + return result; }, @@ -12940,6 +13101,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Class for the table layout in the body(data) area * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -12959,7 +13121,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {String} [options.whichSide='R'] L or R (which side) * @ignore */ - var BodyTable = View.extend(/**@lends module:view/layout/bodyTable.prototype */{ + var BodyTable = View.extend(/** @lends module:view/layout/bodyTable.prototype */{ initialize: function(options) { View.prototype.initialize.call(this); @@ -13073,6 +13235,7 @@ return /******/ (function(modules) { // webpackBootstrap // To prevent issue of appearing vertical scrollbar when dummy rows exists this._resetHeight(); this._resetOverflow(); + return this; }, @@ -13137,6 +13300,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Footer * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -13154,7 +13318,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - var Footer = View.extend(/**@lends module:view/layout/footer.prototype */{ + var Footer = View.extend(/** @lends module:view/layout/footer.prototype */{ initialize: function(options) { /** * Store template functions of each column @@ -13350,6 +13514,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview RowList View * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(11); @@ -13372,7 +13537,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {string} [options.whichSide='R'] 어느 영역에 속하는 rowList 인지 여부. 'L|R' 중 하나를 지정한다. * @ignore */ - var RowList = View.extend(/**@lends module:view/rowList.prototype */{ + var RowList = View.extend(/** @lends module:view/rowList.prototype */{ initialize: function(options) { var focusModel = options.focusModel; var renderModel = options.renderModel; @@ -13525,6 +13690,7 @@ return /******/ (function(modules) { // webpackBootstrap if (!startIndex && !endIndex) { return $(); } + return $rows.slice(startIndex, endIndex); }, @@ -13542,6 +13708,7 @@ return /******/ (function(modules) { // webpackBootstrap if (renderStartIndex > rowIndex) { return $(); } + return $rows.eq(rowIndex - renderStartIndex); }, @@ -13659,6 +13826,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Class for the selection layer * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -13675,7 +13843,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {object} options Options * @ignore */ - var SelectionLayer = View.extend(/**@lends module:view/selectionLayer.prototype */{ + var SelectionLayer = View.extend(/** @lends module:view/selectionLayer.prototype */{ initialize: function(options) { _.assign(this, { whichSide: options.whichSide || frameConst.R, @@ -13826,6 +13994,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Layer class that represents the state of rendering phase * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -13843,7 +14012,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - var EditingLayer = View.extend(/**@lends module:view/editingLayer.prototype */{ + var EditingLayer = View.extend(/** @lends module:view/editingLayer.prototype */{ initialize: function(options) { this.renderModel = options.renderModel; this.domState = options.domState; @@ -13990,6 +14159,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Layer View class which contains the 'tui-date-picker' * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -14009,7 +14179,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - DatePickerLayer = View.extend(/**@lends module:view/datePickerLayer.prototype */{ + DatePickerLayer = View.extend(/** @lends module:view/datePickerLayer.prototype */{ initialize: function(options) { this.focusModel = options.focusModel; this.textPainter = options.textPainter; @@ -14186,6 +14356,7 @@ return /******/ (function(modules) { // webpackBootstrap */ render: function() { this.$el.hide(); + return this; } }); @@ -14201,6 +14372,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Class for the layer view that represents the currently focused cell * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(11); @@ -14222,7 +14394,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - var FocusLayer = View.extend(/**@lends module:view/focusLayer.prototype */{ + var FocusLayer = View.extend(/** @lends module:view/focusLayer.prototype */{ initialize: function(options) { this.focusModel = options.focusModel; this.columnModel = options.columnModel; @@ -14242,6 +14414,7 @@ return /******/ (function(modules) { // webpackBootstrap this.listenTo(this.coordRowModel, 'reset', this._refreshCurrentLayout); this.listenTo(this.focusModel, 'blur', this._onBlur); this.listenTo(this.focusModel, 'focus', this._onFocus); + this.listenTo(this.focusModel, 'change:active', this._onChangeActiveState); }, className: classNameConst.LAYER_FOCUS, @@ -14263,11 +14436,7 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ _onBlur: function() { - if (this.focusModel.has(true)) { - this.$el.addClass(BLUR_CLASS_NAME); - } else { - this.$el.hide(); - } + this.$el.hide(); }, /** @@ -14279,16 +14448,25 @@ return /******/ (function(modules) { // webpackBootstrap _onFocus: function(rowKey, columnName) { var targetSide = this.columnModel.isLside(columnName) ? frameConst.L : frameConst.R; - if (this.focusModel.has(true)) { - this.$el.removeClass(BLUR_CLASS_NAME); - } - if (targetSide === this.whichSide) { this._refreshBorderLayout(rowKey, columnName); this.$el.show(); } }, + /** + * Event handler for 'change:active' event on module:model/focus + * @param {object} model - Focus model + * @private + */ + _onChangeActiveState: function(model) { + if (!model.changed.active) { + this.$el.addClass(BLUR_CLASS_NAME); + } else { + this.$el.removeClass(BLUR_CLASS_NAME); + } + }, + /** * Resets the position and the dimension of the layer. * @param {Number} rowKey - row key @@ -14352,6 +14530,12 @@ return /******/ (function(modules) { // webpackBootstrap /* 60 */ /***/ (function(module, exports, __webpack_require__) { + + /** + * @fileoverview Creator of domEventBus + * @author NHN Ent. FE Development Lab + */ + 'use strict'; var _ = __webpack_require__(6); @@ -14372,6 +14556,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview This class offers methods that can be used to get the current state of DOM element. * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -14386,7 +14571,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {jQuery} $el - jQuery object of the container element. * @ignore */ - var DomState = snippet.defineClass(/**@lends module:domState.prototype */{ + var DomState = snippet.defineClass(/** @lends module:domState.prototype */{ init: function($el) { this.$el = $el; }, @@ -14491,6 +14676,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Public Event Emitter * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -14505,7 +14691,7 @@ return /******/ (function(modules) { // webpackBootstrap * This object should have methods of Backbone.Events. * @ignore */ - var PublicEventEmitter = snippet.defineClass(/**@lends module:publicEventEmitter.prototype */{ + var PublicEventEmitter = snippet.defineClass(/** @lends module:publicEventEmitter.prototype */{ init: function(publicObject) { this.publicObject = publicObject; }, @@ -14599,6 +14785,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Painter Manager * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -14618,7 +14805,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - Options * @ignore */ - var PainterManager = snippet.defineClass(/**@lends module:painter/manager.prototype */{ + var PainterManager = snippet.defineClass(/** @lends module:painter/manager.prototype */{ init: function(options) { this.gridId = options.gridId; this.selectType = options.selectType; @@ -14760,6 +14947,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Painter class for the row(TR) views * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -14778,7 +14966,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {object} options - Options * @ignore */ - var RowPainter = snippet.defineClass(Painter, /**@lends module:painter/row.prototype */{ + var RowPainter = snippet.defineClass(Painter, /** @lends module:painter/row.prototype */{ init: function(options) { Painter.apply(this, arguments); this.painterManager = options.painterManager; @@ -14917,6 +15105,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Base class for Painters * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -14933,7 +15122,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - options * @ignore */ - var Painter = snippet.defineClass(/**@lends module:base/painter.prototype */{ + var Painter = snippet.defineClass(/** @lends module:base/painter.prototype */{ init: function(options) { this.controller = options.controller; }, @@ -14999,6 +15188,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Painter class for cell(TD) views * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -15016,7 +15206,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - options * @ignore */ - var Cell = snippet.defineClass(Painter, /**@lends module:painter/cell.prototype */{ + var Cell = snippet.defineClass(Painter, /** @lends module:painter/cell.prototype */{ init: function(options) { Painter.apply(this, arguments); @@ -15248,6 +15438,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Dummy cell painter * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -15264,7 +15455,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:base/painter * @ignore */ - var DummyCell = snippet.defineClass(Painter, /**@lends module:painter/dummyCell.prototype */{ + var DummyCell = snippet.defineClass(Painter, /** @lends module:painter/dummyCell.prototype */{ init: function() { Painter.apply(this, arguments); }, @@ -15322,6 +15513,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Painter class for the 'input[type=text]' and 'input[type=password]'. * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -15341,7 +15533,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - options * @ignore */ - var TextPainter = snippet.defineClass(InputPainter, /**@lends module:painter/input/text.prototype */{ + var TextPainter = snippet.defineClass(InputPainter, /** @lends module:painter/input/text.prototype */{ init: function(options) { InputPainter.apply(this, arguments); @@ -15445,6 +15637,7 @@ return /******/ (function(modules) { // webpackBootstrap if (cellData.whiteSpace !== 'nowrap') { return this.templateTextArea(params); } + return this.templateInput(params); }, @@ -15473,6 +15666,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Base class for the Input Painter * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(11); @@ -15490,7 +15684,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - options * @ignore */ - var InputPainter = snippet.defineClass(Painter, /**@lends module:painter/input/base.prototype */{ + var InputPainter = snippet.defineClass(Painter, /** @lends module:painter/input/base.prototype */{ init: function() { Painter.apply(this, arguments); @@ -15714,6 +15908,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Painter class for 'select' input. * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(11); @@ -15729,7 +15924,7 @@ return /******/ (function(modules) { // webpackBootstrap * @extends module:painter/input/base * @ignore */ - var SelectPainter = snippet.defineClass(InputPainter, /**@lends module:painter/input/select.prototype */{ + var SelectPainter = snippet.defineClass(InputPainter, /** @lends module:painter/input/select.prototype */{ init: function() { InputPainter.apply(this, arguments); @@ -15817,6 +16012,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Painter class for 'checkbox' and 'radio button'. * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(11); @@ -15833,7 +16029,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - options * @ignore */ - var ButtonPainter = snippet.defineClass(InputPainter, /**@lends module:painter/input/button.prototype */{ + var ButtonPainter = snippet.defineClass(InputPainter, /** @lends module:painter/input/button.prototype */{ init: function(options) { InputPainter.apply(this, arguments); @@ -15959,8 +16155,10 @@ return /******/ (function(modules) { // webpackBootstrap if ($nextInputs.length) { $nextInputs.first().focus(); + return true; } + return false; }, @@ -16091,6 +16289,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Main Button Painter * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(11); @@ -16111,7 +16310,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - options * @ignore */ - var InputPainter = snippet.defineClass(Painter, /**@lends module:painter/input/mainButton.prototype */{ + var InputPainter = snippet.defineClass(Painter, /** @lends module:painter/input/mainButton.prototype */{ init: function(options) { Painter.apply(this, arguments); @@ -16138,7 +16337,7 @@ return /******/ (function(modules) { // webpackBootstrap 'type="<%=type%>" name="<%=name%>" <%=checked%> <%=disabled%> />' ), - /** + /** * Event handler for 'change' DOM event. * @param {Event} event - DOM event object * @private @@ -16206,6 +16405,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Controller class to handle actions from the painters * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(11); @@ -16220,7 +16420,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} options - options * @ignore */ - var PainterController = snippet.defineClass(/**@lends module:painter/controller.prototype */{ + var PainterController = snippet.defineClass(/** @lends module:painter/controller.prototype */{ init: function(options) { this.focusModel = options.focusModel; this.dataModel = options.dataModel; @@ -16264,6 +16464,7 @@ return /******/ (function(modules) { // webpackBootstrap if (maxLength > 0 && value.length > maxLength) { return value.substring(0, maxLength); } + return value; }, @@ -16400,6 +16601,7 @@ return /******/ (function(modules) { // webpackBootstrap if (_.isNumber(value) || isNaN(value) || util.isBlank(value)) { return value; } + return Number(value); } @@ -16432,6 +16634,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Add-on for binding to remote data * @author NHN Ent. FE Development Lab */ + 'use strict'; var $ = __webpack_require__(11); @@ -16521,7 +16724,7 @@ return /******/ (function(modules) { // webpackBootstrap * net.request('modifyData'); * */ - var Net = View.extend(/**@lends module:addon/net.prototype */{ + var Net = View.extend(/** @lends module:addon/net.prototype */{ initialize: function(options) { var defaultOptions = { initialRequest: true, @@ -16816,12 +17019,12 @@ return /******/ (function(modules) { // webpackBootstrap this.requestedFormData = _.clone(data); this.curPage = data.page || this.curPage; - startNumber = (this.curPage - 1) * this.perPage + 1; + startNumber = ((this.curPage - 1) * this.perPage) + 1; this.renderModel.set({ startNumber: startNumber }); - //마지막 요청한 reloadData에서 사용하기 위해 data 를 저장함. + // 마지막 요청한 reloadData에서 사용하기 위해 data 를 저장함. this.lastRequestedReadData = _.clone(data); this.dataModel.fetch({ requestType: 'readData', @@ -16992,7 +17195,7 @@ return /******/ (function(modules) { // webpackBootstrap if (options.hasDataParam) { if (options.modifiedOnly) { - //{createdRows: [], updatedRows:[], deletedRows: []} 에 담는다. + // {createdRows: [], updatedRows:[], deletedRows: []} 에 담는다. dataMap = dataModel.getModifiedRows({ checkedOnly: options.checkedOnly }); @@ -17003,7 +17206,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, this); } else { - //{rows: []} 에 담는다. + // {rows: []} 에 담는다. data.rows = dataModel.getRows(options.checkedOnly); count = data.rows.length; } @@ -17137,6 +17340,7 @@ return /******/ (function(modules) { // webpackBootstrap this._unlock(); }, + /* eslint-disable complexity */ /** * ajax success 이벤트 핸들러 * @param {Function} callback Callback function @@ -17207,6 +17411,7 @@ return /******/ (function(modules) { // webpackBootstrap } } }, + /* eslint-enable complexity */ /** * ajax error 이벤트 핸들러 @@ -17262,6 +17467,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Router for Addon.Net * @author NHN Ent. FE Development Team */ + 'use strict'; var Backbone = __webpack_require__(9); @@ -17272,7 +17478,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {object} attributes - Attributes * @ignore */ - var Router = Backbone.Router.extend(/**@lends module:addon/net-router.prototype */{ + var Router = Backbone.Router.extend(/** @lends module:addon/net-router.prototype */{ initialize: function(attributes) { this.net = attributes.net; }, @@ -17293,6 +17499,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Utilities for form data, form element * @author NHN Ent. Fe Development Team */ + 'use strict'; var $ = __webpack_require__(11); @@ -17524,6 +17731,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview Component holder * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(11); @@ -17538,7 +17746,7 @@ return /******/ (function(modules) { // webpackBootstrap * @module componentHolder * @ignore */ - var ComponentHolder = snippet.defineClass(/**@lends module:componentHolder.prototype */{ + var ComponentHolder = snippet.defineClass(/** @lends module:componentHolder.prototype */{ init: function(optionsMap) { this.optionsMap = $.extend(true, defaultOptionsMap, optionsMap); this.instanceMap = {}; @@ -17583,6 +17791,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview theme manager * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(11); @@ -17681,6 +17890,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview css style generator * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -17962,6 +18172,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview CSS Rule string builder * @author NHN Ent. FE Development Team */ + 'use strict'; var _ = __webpack_require__(6); @@ -17994,6 +18205,7 @@ return /******/ (function(modules) { // webpackBootstrap if (value) { this._propValues.push(property + ':' + value); } + return this; }, @@ -18028,6 +18240,7 @@ return /******/ (function(modules) { // webpackBootstrap this.add('border-top-width', value) .add('border-bottom-width', value); } + return this; }, @@ -18148,6 +18361,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview default theme preset * @author NHN Ent. FE Development Team */ + 'use strict'; module.exports = { @@ -18225,6 +18439,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview default theme preset * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(11); @@ -18262,6 +18477,7 @@ return /******/ (function(modules) { // webpackBootstrap * @fileoverview default theme preset * @author NHN Ent. FE Development Team */ + 'use strict'; var $ = __webpack_require__(11); diff --git a/dist/tui-grid.min.css b/dist/tui-grid.min.css index 7d5b681b4..5b15fcbd0 100644 --- a/dist/tui-grid.min.css +++ b/dist/tui-grid.min.css @@ -1,5 +1,5 @@ /*! - * bundle created at "Fri Sep 08 2017 17:16:54 GMT+0900 (KST)" - * version: 2.4.0 + * bundle created at "Thu Sep 28 2017 10:34:09 GMT+0900 (KST)" + * version: 2.4.1 */ .tui-grid-container{width:100%;position:relative;border-width:0;clear:both;font-size:12px;font-family:\\B3CB\C6C0,Dotum,Helvetica,Apple SD Gothic Neo,Sans-serif}.tui-grid-container ::-webkit-scrollbar{-webkit-appearance:none;width:17px;height:17px}.tui-grid-container ::-webkit-scrollbar-thumb{border:5px solid transparent;border-radius:7px;background-clip:content-box}.tui-grid-container *{box-sizing:content-box}.tui-grid-container input,.tui-grid-container p,.tui-grid-container textarea{margin:0;padding:0;font-size:12px;font-family:\\B3CB\C6C0,Dotum,Helvetica,Apple SD Gothic Neo,Sans-serif}.tui-grid-container fieldset{margin:0;padding:0;border:0;display:inline;white-space:nowrap}.tui-grid-container input[type=password],.tui-grid-container input[type=text]{outline:none;box-sizing:border-box;line-height:normal}.tui-grid-container li,.tui-grid-container ul{list-style:none;padding:0;margin:0}.tui-grid-container em,.tui-grid-container strong{font-style:normal}.tui-grid-clipboard{position:fixed;top:0;left:-9999px;width:100px;height:100px}.tui-grid-btn-text{display:inline-block;text-decoration:none}.tui-grid-btn-text span{display:inline-block;position:relative;font-size:11px;color:#333;padding-left:17px;letter-spacing:-1px;line-height:23px;white-space:nowrap;cursor:pointer;margin-left:8px;padding-right:7px}.tui-grid-btn-text em{position:absolute;left:0;top:5px;width:17px;height:12px;background:url(images/icons.gif) no-repeat}.tui-grid-btn-text em.tui-grid-btn-excel-icon{background-position:-30px -60px}.tui-grid-btn-sorting{display:inline-block;overflow:hidden;margin-left:6px;height:15px;width:8px;background:url(images/icons.gif) -20px -60px no-repeat;vertical-align:middle;cursor:pointer}.tui-grid-btn-sorting-down{background-position:0 -60px}.tui-grid-btn-sorting-up{background-position:-10px -60px}.tui-grid-icon-arrow{display:inline-block;width:0;height:0;border:4px solid #a0a0a0}.tui-grid-icon-arrow-left{border-left-width:0}.tui-grid-icon-arrow-left,.tui-grid-icon-arrow-right{border-top-color:transparent;border-bottom-color:transparent}.tui-grid-icon-arrow-right{border-right-width:0}.tui-grid-layer-state{position:absolute;border:1px solid #ccc;background:#fff;font-weight:700;text-align:center;z-index:13}.tui-grid-layer-state-content{padding-top:50px}.tui-grid-layer-state-loading{display:block;margin:10px auto 0;background:url(images/ani_loading.gif);border:0;width:150px;height:13px}.tui-grid-layer-editing{position:absolute;display:none;background:#fff;z-index:15;padding:0 10px;border-style:solid;border-width:1px;white-space:nowrap;box-sizing:border-box}.tui-grid-layer-editing textarea{position:absolute;left:0;top:0;width:100%;height:100%;padding:3px 10px;box-sizing:border-box;white-space:normal;word-break:break-all;overflow:hidden}.tui-grid-layer-focus-border{position:absolute;overflow:hidden;z-index:14}.tui-grid-layer-selection{position:absolute;display:none;top:0;width:0;height:0;border-style:solid;border-width:1px;opacity:.2;filter:alpha(opacity=20)}.tui-grid-layer-datepicker{position:absolute;z-index:100;box-sizing:border-box}.tui-grid-layer-datepicker *,.tui-grid-table{box-sizing:border-box}.tui-grid-table{border-width:1px;width:1px;border-style:solid;table-layout:fixed;border-collapse:collapse;margin:0}.tui-grid-lside-area .tui-grid-table{width:100%;border-right-width:0}.tui-grid-foot-area .tui-grid-table{border-width:0 0 1px}.tui-grid-foot-area .tui-grid-cell{border-width:0 1px}.tui-grid-cell{overflow:hidden;border-width:1px;border-style:solid;white-space:nowrap;padding:0}.tui-grid-cell .tui-grid-cell-content{padding:3px 10px;overflow:hidden;box-sizing:border-box;word-break:break-all}.tui-grid-cell img{vertical-align:middle}.tui-grid-cell-head{padding:0;text-align:center}.tui-grid-cell-ellipsis .tui-grid-cell-content{text-overflow:ellipsis}.tui-grid-cell-content .tui-grid-content-before{float:left;margin-right:2px;line-height:1.5}.tui-grid-cell-content .tui-grid-content-after{float:right;margin-left:2px;line-height:1.5}.tui-grid-cell-content .tui-grid-content-input{display:block;overflow:hidden;line-height:1.5;*margin-left:-2px;*padding-left:2px}.tui-grid-cell-content input[type=password],.tui-grid-cell-content input[type=text]{width:100%;padding:2px 0;border:1px solid #e2e3ea;border-top:1px solid #abadb3;border-bottom:1px solid #e3e9ef}.tui-grid-cell-content label+input{margin-left:10px}.tui-grid-cell-content select{box-sizing:border-box;width:100%}.tui-grid-column-resize-container{display:none;position:relative;width:0}.tui-grid-column-resize-handle{float:left;position:absolute;top:-1px;left:-99px;width:7px;height:100%;background:#000;opacity:0;filter:alpha(opacity=0);cursor:col-resize}.tui-grid-column-resize-handle-last{width:3px}.tui-grid-border-line{position:absolute;z-index:13}.tui-grid-border-line-top{top:0;left:0;right:0;height:1px}.tui-grid-border-line-left{top:0;bottom:0;left:0;width:1px}.tui-grid-border-line-right{top:0;bottom:0;right:0;width:1px}.tui-grid-border-line-bottom{bottom:0;left:0;right:17px;height:1px}.tui-grid-no-scroll-x .tui-grid-border-line-bottom,.tui-grid-no-scroll-y .tui-grid-border-line-bottom{right:0}.tui-grid-content-area{position:relative;border-style:solid;border-width:0 0 1px}.tui-grid-content-area.tui-grid-no-scroll-x{border-bottom-width:0}.tui-grid-head-area{border-style:solid;border-width:0 0 1px;position:relative;overflow:hidden}.tui-grid-head-area .tui-grid-cell-head{border-top-width:1px;border-bottom-width:1px}.tui-grid-body-area{position:relative;overflow:scroll}.tui-grid-foot-area{position:relative;border-width:1px 0 0;border-style:solid;margin-top:-18px;overflow-y:hidden;overflow-x:scroll}.tui-grid-lside-area{display:none;position:absolute;top:0;left:0;overflow:hidden;z-index:10}.tui-grid-lside-area .tui-grid-body-area{margin-right:-17px}.tui-grid-lside-area .tui-grid-body-area .tui-grid-selection-layer{left:1px}.tui-grid-rside-area{display:none;overflow:hidden}.tui-grid-rside-area .tui-grid-foot-area,.tui-grid-rside-area .tui-grid-head-area{margin-right:17px}.tui-grid-no-scroll-y .tui-grid-rside-area .tui-grid-foot-area,.tui-grid-no-scroll-y .tui-grid-rside-area .tui-grid-head-area{margin-right:0}.tui-grid-no-scroll-x .tui-grid-foot-area{margin-top:0;overflow-x:hidden}.tui-grid-no-scroll-x .tui-grid-foot-area-right{bottom:0}.tui-grid-foot-area-right{position:absolute;right:0;bottom:17px;width:17px;border-style:solid;border-width:1px 0 1px 1px}.tui-grid-body-container{position:relative;margin-top:-1px}.tui-grid-table-container{position:absolute}.tui-grid-scrollbar-head{display:block;position:absolute;top:0;right:0;width:16px;border-style:solid;border-width:1px}.tui-grid-scrollbar-left-bottom{position:absolute;bottom:0;left:0;right:0;height:17px}.tui-grid-scrollbar-right-bottom{position:absolute;bottom:0;right:0;width:17px;height:17px}.tui-grid-scrollbar-border{display:block;position:absolute;right:17px;width:1px}.tui-grid-height-resize-handle{overflow:hidden;background-color:#f5f5f5;cursor:row-resize;height:11px;border-style:solid;border-width:0 1px 1px;font-size:0;text-align:center}.tui-grid-height-resize-handle button{display:block;width:100%;cursor:row-resize;padding:0;margin:0;outline:0;border:0;background-color:#f5f5f5}.tui-grid-height-resize-handle button span{background:url(images/icons.gif) no-repeat -70px -60px;display:inline-block;width:17px;height:9px;margin-top:3px}.tui-grid-pagination{height:34px;padding-top:8px;line-height:normal;text-align:center;border-style:solid;border-color:#ccc;border-width:0 1px 1px}.tui-grid-pagination a,.tui-grid-pagination span,.tui-grid-pagination strong{display:inline-block;position:relative;padding:4px 8px;min-width:13px;color:#333;font-size:12px;font-weight:700;line-height:normal;text-decoration:none;vertical-align:middle}.tui-grid-pagination strong{padding:4px 6px;color:#ff1313;border:1px solid #d4d4d4;background:#e7e7e7}.tui-grid-pagination .tui-grid-next,.tui-grid-pagination .tui-grid-next-end,.tui-grid-pagination .tui-grid-next-end-off,.tui-grid-pagination .tui-grid-next-off,.tui-grid-pagination .tui-grid-pre,.tui-grid-pagination .tui-grid-pre-end,.tui-grid-pagination .tui-grid-pre-end-off,.tui-grid-pagination .tui-grid-pre-off{width:25px;height:24px;padding:0;border:0;background:url(images/icons.gif) no-repeat;font-size:0;line-height:999;overflow:hidden;white-space:nowrap}.tui-grid-pagination .tui-grid-next-end,.tui-grid-pagination .tui-grid-next-end-off,.tui-grid-pagination .tui-grid-pre-end,.tui-grid-pagination .tui-grid-pre-end-off{width:24px}.tui-grid-pagination .tui-grid-pre,.tui-grid-pagination .tui-grid-pre-off{margin-right:12px}.tui-grid-pagination .tui-grid-next,.tui-grid-pagination .tui-grid-next-off{margin-left:12px}.tui-grid-pagination .tui-grid-pre-end{background-position:0 0}.tui-grid-pagination .tui-grid-pre-end-off{background-position:0 -30px}.tui-grid-pagination .tui-grid-pre{background-position:-24px 0}.tui-grid-pagination .tui-grid-pre-off{background-position:-24px -30px}.tui-grid-pagination .tui-grid-next{background-position:-50px 0}.tui-grid-pagination .tui-grid-next-off{background-position:-50px -30px}.tui-grid-pagination .tui-grid-next-end{background-position:-75px 0}.tui-grid-pagination .tui-grid-next-end-off{background-position:-75px -30px}.tui-grid-calendar-btn-next-month,.tui-grid-calendar-btn-next-year,.tui-grid-calendar-btn-prev-month,.tui-grid-calendar-btn-prev-year{position:absolute;top:4px;padding:3px 6px 2px;border:1px solid transparent}.tui-grid-calendar-btn-next-month:hover,.tui-grid-calendar-btn-next-year:hover,.tui-grid-calendar-btn-prev-month:hover,.tui-grid-calendar-btn-prev-year:hover{border-color:#ccc}.tui-grid-calendar{position:absolute;width:190px;background:#fff;border:1px solid #ccc;font-size:11px;color:#444;font-family:arial}.tui-grid-calendar table{margin:0 auto;table-layout:fixed;text-align:center}.tui-grid-calendar table tr{height:20px}.tui-grid-calendar table th{width:20px}.tui-grid-calendar table th.tui-grid-calendar-sat{color:#00f}.tui-grid-calendar table th.tui-grid-calendar-sun{color:#e82828}.tui-grid-calendar table td{background:#eee;color:#ccc}.tui-grid-calendar table td.tui-grid-calendar-selectable{cursor:pointer;background:#fff;color:#444}.tui-grid-calendar table td.tui-grid-calendar-selectable.tui-grid-calendar-selected{background:#c3ebff;font-weight:700}.tui-grid-calendar table td.tui-grid-calendar-selectable.tui-grid-calendar-sat{color:#00f}.tui-grid-calendar table td.tui-grid-calendar-selectable.tui-grid-calendar-sun{color:#e82828}.tui-grid-calendar table td.tui-grid-calendar-selectable:hover{background:#c3ebff}.tui-grid-calendar-header{padding:6px 0 5px;text-align:center;border-bottom:1px solid #ddd}.tui-grid-calendar-title{font-size:14px}.tui-grid-calendar-body{padding:5px 7px}.tui-grid-calendar-btn-prev-year{left:18px}.tui-grid-calendar-btn-prev-month{left:42px}.tui-grid-calendar-btn-next-month{right:42px}.tui-grid-calendar-btn-next-year{right:20px}.tui-grid-calendar-today{text-decoration:underline}.tui-grid-calendar-next-month,.tui-grid-calendar-prev-month{opacity:.4;filter:alpha(opacity=40)}.tui-grid-calendar-footer{display:none} \ No newline at end of file diff --git a/dist/tui-grid.min.js b/dist/tui-grid.min.js index bf5b8d15e..78b1fa7f1 100644 --- a/dist/tui-grid.min.js +++ b/dist/tui-grid.min.js @@ -1,10 +1,10 @@ /*! - * bundle created at "Fri Sep 08 2017 17:16:54 GMT+0900 (KST)" - * version: 2.4.0 + * bundle created at "Thu Sep 28 2017 10:34:09 GMT+0900 (KST)" + * version: 2.4.1 */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("underscore"),require("tui-code-snippet"),require("backbone"),require("jquery"),require("tui-date-picker"),require("tui-pagination")):"function"==typeof define&&define.amd?define(["underscore","tui-code-snippet","backbone","jquery","tui-date-picker","tui-pagination"],t):"object"==typeof exports?exports.Grid=t(require("underscore"),require("tui-code-snippet"),require("backbone"),require("jquery"),require("tui-date-picker"),require("tui-pagination")):(e.tui=e.tui||{},e.tui.Grid=t(e._,e.tui&&e.tui.util,e.Backbone,e.$,e.tui&&e.tui.DatePicker,e.tui&&e.tui.Pagination))}(this,function(e,t,n,i,o,s){return function(e){function t(i){if(n[i])return n[i].exports;var o=n[i]={exports:{},id:i,loaded:!1};return e[i].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";n(1),e.exports=n(5)},function(e,t){},,,,function(e,t,n){"use strict";var i=n(6),o=n(7),s=n(8),a=n(10),r=n(35),l=n(60),d=n(61),h=n(62),u=n(63),c=n(73),g=n(74),m=n(77),f=n(20),p=n(44),M=n(78),_=n(14).themeName,C={},w=s.extend({initialize:function(e){this.id=f.getUniqueKey(),this.domState=new d(this.$el),this.domEventBus=l.create(),this.modelManager=this._createModelManager(e),this.painterManager=this._createPainterManager(),this.componentHolder=this._createComponentHolder(e.pagination),this.viewFactory=this._createViewFactory(e),this.container=this.viewFactory.createContainer(),this.publicEventEmitter=this._createPublicEventEmitter(),this.container.render(),this.refreshLayout(),M.isApplied()||M.apply(_.DEFAULT),this.addOn={},C[this.id]=this,e.data&&this.setData(e.data)},_createModelManager:function(e){var t=i.assign({},e,{gridId:this.id,publicObject:this});return i.omit(t,"el"),new a(t,this.domState,this.domEventBus)},_createPainterManager:function(){var e=new c({focusModel:this.modelManager.focusModel,dataModel:this.modelManager.dataModel,columnModel:this.modelManager.columnModel,selectionModel:this.modelManager.selectionModel});return new u({gridId:this.id,selectType:this.modelManager.columnModel.get("selectType"),fixedRowHeight:this.modelManager.dimensionModel.get("fixedRowHeight"),domEventBus:this.domEventBus,controller:e})},_createViewFactory:function(e){var t=i.pick(e,["heightResizable","footer"]),n={modelManager:this.modelManager,painterManager:this.painterManager,componentHolder:this.componentHolder,domEventBus:this.domEventBus,domState:this.domState};return new r(i.assign(n,t))},_createComponentHolder:function(e){return new m({pagination:e})},_createPublicEventEmitter:function(){var e=new h(this);return e.listenToFocusModel(this.modelManager.focusModel),e.listenToDomEventBus(this.domEventBus),e.listenToDataModel(this.modelManager.dataModel),e.listenToSelectionModel(this.modelManager.selectionModel),e},disable:function(){this.modelManager.dataModel.setDisabled(!0)},enable:function(){this.modelManager.dataModel.setDisabled(!1)},disableRow:function(e){this.modelManager.dataModel.disableRow(e)},enableRow:function(e){this.modelManager.dataModel.enableRow(e)},getValue:function(e,t,n){return this.modelManager.dataModel.getValue(e,t,n)},getColumnValues:function(e,t){return this.modelManager.dataModel.getColumnValues(e,t)},getRow:function(e,t){return this.modelManager.dataModel.getRowData(e,t)},getRowAt:function(e,t){return this.modelManager.dataModel.getRowDataAt(e,t)},getRowCount:function(){return this.modelManager.dataModel.length},getFocusedCell:function(){var e=this.modelManager.focusModel.which(),t=this.getValue(e.rowKey,e.columnName);return{rowKey:e.rowKey,columnName:e.columnName,value:t}},getElement:function(e,t){return this.modelManager.dataModel.getElement(e,t)},setValue:function(e,t,n){this.modelManager.dataModel.setValue(e,t,n)},setColumnValues:function(e,t,n){this.modelManager.dataModel.setColumnValues(e,t,n)},resetData:function(e){this.modelManager.dataModel.resetData(e)},setData:function(e,t){this.modelManager.dataModel.setData(e,!0,t)},setBodyHeight:function(e){this.modelManager.dimensionModel.set("bodyHeight",e)},focus:function(e,t,n){this.modelManager.focusModel.focusClipboard(),this.modelManager.focusModel.focus(e,t,n)},focusAt:function(e,t,n){this.modelManager.focusModel.focusAt(e,t,n)},focusIn:function(e,t,n){this.modelManager.focusModel.focusIn(e,t,n)},focusInAt:function(e,t,n){this.modelManager.focusModel.focusInAt(e,t,n)},activateFocus:function(){this.modelManager.focusModel.focusClipboard()},blur:function(){this.modelManager.focusModel.blur()},checkAll:function(){this.modelManager.dataModel.checkAll()},check:function(e){this.modelManager.dataModel.check(e)},uncheckAll:function(){this.modelManager.dataModel.uncheckAll()},uncheck:function(e){this.modelManager.dataModel.uncheck(e)},clear:function(){this.modelManager.dataModel.setData([])},removeRow:function(e,t){o.isBoolean(t)&&t&&(t={removeOriginalData:!0}),this.modelManager.dataModel.removeRow(e,t)},removeCheckedRows:function(e){var t=this.getCheckedRowKeys(),n=p.get("requestConfirm",{count:t.length,actionName:"deleteAction"});return!(!(t.length>0)||e&&!confirm(n))&&(i.each(t,function(e){this.modelManager.dataModel.removeRow(e)},this),!0)},enableCheck:function(e){this.modelManager.dataModel.enableCheck(e)},disableCheck:function(e){this.modelManager.dataModel.disableCheck(e)},getCheckedRowKeys:function(e){var t=this.modelManager.dataModel.getRows(!0),n=i.pluck(t,"rowKey");return e?JSON.stringify(n):n},getCheckedRows:function(e){var t=this.modelManager.dataModel.getRows(!0);return e?JSON.stringify(t):t},getColumns:function(){return this.modelManager.columnModel.get("dataColumns")},getModifiedRows:function(e){return this.modelManager.dataModel.getModifiedRows(e)},appendRow:function(e,t){this.modelManager.dataModel.append(e,t)},prependRow:function(e,t){this.modelManager.dataModel.prepend(e,t)},isModified:function(){return this.modelManager.dataModel.isModified()},getAddOn:function(e){return e?this.addOn[e]:this.addOn},restore:function(){this.modelManager.dataModel.restore()},setFrozenColumnCount:function(e){this.modelManager.columnModel.set("frozenCount",e)},setColumns:function(e){this.modelManager.columnModel.set("columns",e)},use:function(e,t){return"Net"===e&&(t=i.assign({domEventBus:this.domEventBus,renderModel:this.modelManager.renderModel,dataModel:this.modelManager.dataModel,pagination:this.componentHolder.getInstance("pagination")},t),this.addOn.Net=new g(t),this.publicEventEmitter.listenToNetAddon(this.addOn.Net)),this},getRows:function(){return this.modelManager.dataModel.getRows()},sort:function(e,t){this.modelManager.dataModel.sortByField(e,t)},unSort:function(){this.sort("rowKey")},getSortState:function(){return this.modelManager.dataModel.sortOptions},addCellClassName:function(e,t,n){this.modelManager.dataModel.get(e).addCellClassName(t,n)},addRowClassName:function(e,t){this.modelManager.dataModel.get(e).addClassName(t)},removeCellClassName:function(e,t,n){this.modelManager.dataModel.get(e).removeCellClassName(t,n)},removeRowClassName:function(e,t){this.modelManager.dataModel.get(e).removeClassName(t)},getRowSpanData:function(e,t){return this.modelManager.dataModel.getRowSpanData(e,t)},getIndexOfRow:function(e){return this.modelManager.dataModel.indexOfRowKey(e)},getIndexOfColumn:function(e){return this.modelManager.columnModel.indexOfColumnName(e)},getPagination:function(){return this.componentHolder.getInstance("pagination")},setWidth:function(e){this.modelManager.dimensionModel.setWidth(e)},setHeight:function(e){this.modelManager.dimensionModel.setHeight(e)},refreshLayout:function(){this.modelManager.dimensionModel.refreshLayout()},resetColumnWidths:function(){this.modelManager.coordColumnModel.resetColumnWidths()},showColumn:function(){var e=o.toArray(arguments);this.modelManager.columnModel.setHidden(e,!1)},hideColumn:function(){var e=o.toArray(arguments);this.modelManager.columnModel.setHidden(e,!0)},setFooterColumnContent:function(e,t){this.modelManager.columnModel.setFooterContent(e,t)},validate:function(){return this.modelManager.dataModel.validate()},findRows:function(e){var t=this.modelManager.dataModel.getRows();return i.where(t,e)},copyToClipboard:function(){this.modelManager.clipboardModel.setClipboardText(),window.clipboardData||document.execCommand("copy")},selection:function(e){var t=this.modelManager.selectionModel,n=e.start,i=e.end,o=t.getSelectionUnit();t.start(n[0],n[1],o),t.update(i[0],i[1],o)},destroy:function(){this.modelManager.destroy(),this.container.destroy(),this.modelManager=this.container=null}});w.getInstanceById=function(e){return C[e]},w.applyTheme=function(e,t){M.apply(e,t)},w.setLanguage=function(e){p.setLanguage(e)},e.exports=w},function(t,n){t.exports=e},function(e,n){e.exports=t},function(e,t,n){"use strict";var i=n(6),o=n(9),s=o.View.extend({initialize:function(){this._children=[]},_addChildren:function(e){i.isArray(e)||(e=[e]),[].push.apply(this._children,i.compact(e))},_renderChildren:function(){var e=i.map(this._children,function(e){return e.render().el});return e},_triggerChildrenAppended:function(){i.each(this._children,function(e){e.trigger("appended")})},destroy:function(){this.stopListening(),this._destroyChildren(),this.remove()},_destroyChildren:function(){if(this._children)for(;this._children.length>0;)this._children.pop().destroy()}});e.exports=s},function(e,t){e.exports=n},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(7),a=n(12),r=n(15),l=n(23),d=n(24),h=n(25),u=n(26),c=n(27),g=n(28),m=n(31),f=n(32),p=n(33),M=n(34),_=n(20),C={data:[],columns:[],keyColumnName:null,selectType:"",autoNumbering:!0,header:{height:35,complexColumns:[]},columnOptions:{minWidth:50,resizable:!0,frozenCount:0},fitToParentHeight:!1,fixedRowHeight:!1,fixedHeight:!1,showDummyRows:!1,virtualScrolling:!1,copyOptions:null,scrollX:!0,scrollY:!0,useClientSort:!0,editingEvent:"dblclick",rowHeight:"auto",bodyHeight:"auto",minRowHeight:27,minBodyHeight:130,selectionUnit:"cell"},w=s.defineClass({init:function(e,t,n){e=i.extend(!0,{},C,e),this.gridId=e.gridId,this.columnModel=this._createColumnModel(e),this.dataModel=this._createDataModel(e,t,n),this.dimensionModel=this._createDimensionModel(e,t,n),this.coordRowModel=this._createCoordRowModel(t),this.focusModel=this._createFocusModel(e,t,n),this.coordColumnModel=this._createCoordColumnModel(e.columnOptions,n),this.renderModel=this._createRenderModel(e),this.coordConverterModel=this._createCoordConverterModel(),this.selectionModel=this._createSelectionModel(e,n),this.summaryModel=this._createSummaryModel(e.footer),this.clipboardModel=this._createClipboardModel(e,n)},_createColumnModel:function(e){return new a({keyColumnName:e.keyColumnName,frozenCount:e.columnOptions.frozenCount,complexHeaderColumns:e.header.complexColumns,copyOptions:e.copyOptions,columns:e.columns,rowHeaders:e.rowHeaders})},_createDataModel:function(e,t,n){return new r([],{gridId:this.gridId,domState:t,domEventBus:n,columnModel:this.columnModel,useClientSort:e.useClientSort,publicObject:e.publicObject})},_createDimensionModel:function(e,t,n){var i,o=!isNaN(e.rowHeight),s="auto"!==e.bodyHeight,a=e.minRowHeight,r=e.minBodyHeight,d=o?Math.max(a,e.rowHeight):a,h=s?Math.max(r,e.bodyHeight):r,u={headerHeight:e.header.height,bodyHeight:h,footerHeight:e.footer?e.footer.height:0,rowHeight:d,fitToParentHeight:"fitToParent"===e.bodyHeight,scrollX:!!e.scrollX,scrollY:!!e.scrollY,minimumColumnWidth:e.columnOptions.minWidth,fixedRowHeight:o,fixedHeight:s,minRowHeight:a,minBodyHeight:r||d};return o===!1&&e.virtualScrolling&&(_.warning("If the virtualScrolling is set to true, the rowHeight must be set to number type."),u.fixedRowHeight=!0),i=new l(u,{columnModel:this.columnModel,dataModel:this.dataModel,domState:t,domEventBus:n})},_createCoordRowModel:function(e){return new d(null,{dataModel:this.dataModel,dimensionModel:this.dimensionModel,domState:e})},_createCoordColumnModel:function(e,t){var n={resizable:e.resizable};return new h(n,{columnModel:this.columnModel,dimensionModel:this.dimensionModel,domEventBus:t})},_createCoordConverterModel:function(){return new u(null,{columnModel:this.columnModel,dataModel:this.dataModel,dimensionModel:this.dimensionModel,focusModel:this.focusModel,coordRowModel:this.coordRowModel,renderModel:this.renderModel,coordColumnModel:this.coordColumnModel})},_createFocusModel:function(e,t,n){return new c(null,{columnModel:this.columnModel,dataModel:this.dataModel,coordRowModel:this.coordRowModel,domEventBus:n,domState:t,editingEvent:e.editingEvent})},_createSelectionModel:function(e,t){return new f({selectionUnit:e.selectionUnit},{columnModel:this.columnModel,dataModel:this.dataModel,dimensionModel:this.dimensionModel,coordConverterModel:this.coordConverterModel,coordRowModel:this.coordRowModel,renderModel:this.renderModel,focusModel:this.focusModel,domEventBus:t})},_createRenderModel:function(e){var t,n,i;return t={emptyMessage:e.emptyMessage,showDummyRows:e.showDummyRows},n={columnModel:this.columnModel,dataModel:this.dataModel,dimensionModel:this.dimensionModel,focusModel:this.focusModel,coordRowModel:this.coordRowModel,coordColumnModel:this.coordColumnModel},new(i=e.virtualScrolling?m:g)(t,n)},_createSummaryModel:function(e){var t=[];return e&&e.columnContent?(o.each(e.columnContent,function(e,n){o.isFunction(e.template)&&e.useAutoSummary!==!1&&t.push(n)}),new p(null,{dataModel:this.dataModel,autoColumnNames:t})):null},_createClipboardModel:function(e,t){return new M(null,{columnModel:this.columnModel,dataModel:this.dataModel,selectionModel:this.selectionModel,renderModel:this.renderModel,focusModel:this.focusModel,copyOptions:e.copyOptions,domEventBus:t})},destroy:function(){o.each(this,function(e,t){e&&s.isFunction(e._destroy)&&e._destroy(),e&&s.isFunction(e.stopListening)&&e.stopListening(),this[t]=null},this)}});e.exports=w},function(e,t){e.exports=i},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(7),a=n(13),r=n(14).frame,l={rowNum:{type:"rowNum",title:"No.",name:"_number",align:"center",fixedWidth:!0,width:60,hidden:!1},checkbox:{type:"checkbox",title:'',name:"_button",align:"center",fixedWidth:!0,width:40,hidden:!1,editOptions:{type:"mainButton"}},radio:{type:"radio",title:"select",name:"_button",align:"center",fixedWidth:!0,width:40,hidden:!1,editOptions:{type:"mainButton"}}},d=a.extend({initialize:function(){a.prototype.initialize.apply(this,arguments),this.textType={normal:!0,text:!0,password:!0},this._setColumns(this.get("rowHeaders"),this.get("columns")),this.on("change",this._onChange,this)},defaults:{keyColumnName:null,frozenCount:0,rowHeaders:[],dataColumns:[],visibleColumns:[],selectType:"",columnModelMap:{},relationsMap:{},complexHeaderColumns:[],copyOptions:{useFormattedValue:!1}},at:function(e,t){var n=t?this.getVisibleColumns():this.get("dataColumns");return n[e]},indexOfColumnName:function(e,t){var n;return n=t?this.getVisibleColumns():this.get("dataColumns"),o.findIndex(n,{name:e})},isLside:function(e){var t=this.indexOfColumnName(e,!0);return t>-1&&ta&&(d=1),i||(d=-d),d},_removePrivateProp:function(e){return o.map(e,function(e){return o.omit(e,a.privateProperties)})},removeRow:function(e,t){var n,i,s,a=this.get(e);a&&(t&&t.keepRowSpanData&&(s=o.clone(a.attributes)),n=o.clone(a.getRowSpanData()),i=this.at(this.indexOf(a)+1),this.remove(a,{silent:!0}),this._syncRowSpanDataForRemove(n,i,s),t&&t.removeOriginalData&&this.setOriginalRowList(),this.trigger("remove",e))},_syncRowSpanDataForRemove:function(e,t,n){e&&o.each(e,function(e,i){var o,s,a,r={};if(e.isMainRow){if(1===e.count)return;o=t,a=e.count-1,s=1,a>1&&(r.mainRowKey=o.get("rowKey"),r.isMainRow=!0),o.set(i,n?n[i]:"",{silent:!0})}else o=this.get(e.mainRowKey),a=o.getRowSpanData(i).count-1,s=-e.count;a>1?(r.count=a,o.setRowSpanData(i,r),this._updateSubRowSpanData(o,i,s,a)):o.setRowSpanData(i,null)},this)},_createDummyRow:function(){var e=this.columnModel.get("dataColumns"),t={};return o.each(e,function(e){t[e.name]=""},this),t},append:function(e,t){var n,i=this._createModelList(e);return t=o.extend({at:this.length},t),n={at:t.at,add:!0,silent:!0},this.add(i,n),this._syncRowSpanDataForAppend(t.at,i.length,t.extendPrevRowSpan),this.trigger("add",i,t),i},prepend:function(e,t){return t=t||{},t.at=0,this.append(e,t)},getRowData:function(e,t){var n=this.get(e),i=n?n.toJSON():null;return t?JSON.stringify(i):i},getRowDataAt:function(e,t){var n=this.at(e),i=n?n.toJSON():null;return t?JSON.stringify(n):i},getValue:function(e,t,n){var i,o;return n?i=this.getOriginal(e,t):(o=this.get(e),i=o&&o.get(t)),i},setValue:function(e,t,n,i){var o=this.get(e);return!!o&&(o.set(t,n,{silent:i}),!0)},getColumnValues:function(e,t){var n=this.pluck(e);return t?JSON.stringify(n):n},setColumnValues:function(e,t,n,i){var s={},a={disabled:!1,editable:!0};s[e]=t,n=!!o.isUndefined(n)||n,this.forEach(function(t){n&&(a=t.getCellState(e)),!a.disabled&&a.editable&&t.set(s,{silent:i})},this)},getRowSpanData:function(e,t){var n=this.get(e);return n?n.getRowSpanData(t):null},isModified:function(){var e=o.values(this.getModifiedRows());return o.some(e,function(e){return e.length>0})},setDisabled:function(e){this.disabled!==e&&(this.disabled=e,this.trigger("disabledChanged"))},enableRow:function(e){this.get(e).setRowState("")},disableRow:function(e){this.get(e).setRowState("DISABLED")},enableCheck:function(e){this.get(e).setRowState("")},disableCheck:function(e){this.get(e).setRowState("DISABLED_CHECK")},check:function(e,t){var n=this.get(e).getRowState().isDisabledCheck,i=this.columnModel.get("selectType");!n&&i&&("radio"===i&&this.uncheckAll(),this.setValue(e,"_button",!0,t))},uncheck:function(e,t){this.setValue(e,"_button",!1,t)},checkAll:function(){this.setColumnValues("_button",!0)},uncheckAll:function(){this.setColumnValues("_button",!1)},_createModelList:function(e){var t,n=[];return e=e||this._createDummyRow(),o.isArray(e)||(e=[e]),t=this._formatData(e),o.each(t,function(e){var t=new a(e,{collection:this,parse:!0});n.push(t)},this),n},_syncRowSpanDataForAppend:function(e,t,n){var i=this.at(e-1);i&&o.each(i.getRowSpanData(),function(e,o){var s,a,r,l;0!==e.count&&(e.isMainRow?(s=i,a=e,r=1):(s=this.get(e.mainRowKey),a=s.getRowSpanData()[o],r=-e.count+1),(a.count>r||n)&&(a.count+=t,l=a.count,this._updateSubRowSpanData(s,o,r,l)))},this)},_updateSubRowSpanData:function(e,t,n,i){var o,s,a=this.indexOf(e),r=e.get("rowKey");for(s=n;s=0)&&(h[s]=e[o-n]);l.set(h)},getElement:function(e,t){var n=this.getMainRowKey(e,t);return this.domState.getElement(n,t)},getCheckedState:function(){var e=0,t=0;return this.forEach(function(n){var i=n.getCellState("_button");!i.disabled&&i.editable&&(e+=1,n.get("_button")&&(t+=1))}),{available:e,checked:t}}});e.exports=r},function(e,t,n){"use strict";var i=n(9),o=i.Collection.extend({clear:function(){return this.each(function(e){e.stopListening(),e=null}),this.reset([],{silent:!0}),this}});e.exports=o},function(e,t,n){"use strict";var i=n(6),o=n(9),s=n(7),a=n(13),r=n(18),l=n(19),d=n(20),h=n(21),u=n(22),c=["_button","_number","_extraData"],g="REQUIRED",m="TYPE_NUMBER",f=a.extend({initialize:function(){a.prototype.initialize.apply(this,arguments),this.extraDataManager=new r(this.get("_extraData")),this.columnModel=this.collection.columnModel,this.validateMap={},this.on("change",this._onChange,this)},idAttribute:"rowKey",set:function(e,t,n){var s,a=i.isObject(e);a&&(n=t),!this.columnModel||n&&n.silent?o.Model.prototype.set.apply(this,arguments):(a?s=e:(s={},s[e]=t),i.each(s,function(e,t){this._executeOnBeforeChange(t,e)||delete s[t]},this),o.Model.prototype.set.call(this,s,n))},parse:function(e){return e._extraData||(e._extraData={}),e},_triggerExtraDataChangeEvent:function(){this.trigger("extraDataChanged",this.get("_extraData"))},_triggerCheckboxChangeEvent:function(e){var t={rowKey:this.get("rowKey")};e?this.trigger("check",t):this.trigger("uncheck",t)},_onChange:function(){var e=i.omit(this.changed,c);i.has(this.changed,"_button")&&this._triggerCheckboxChangeEvent(this.changed._button),this.isDuplicatedPublicChanged(e)||i.each(e,function(e,t){var n=this.columnModel.getColumnModel(t);n&&(this.collection.syncRowSpannedData(this,t,e),this._executeOnAfterChange(t),this.validateCell(t,!0))},this)},_validateCellData:function(e){var t,n=this.columnModel.getColumnModel(e).validation,o="";return n&&(t=this.get(e),n.required&&d.isBlank(t)?o=g:"number"!==n.dataType||i.isNumber(t)||(o=m)),o},validateCell:function(e,t){var n;return!t&&e in this.validateMap?this.validateMap[e]:(n=this._validateCellData(e),n?this.addCellClassName(e,u.CELL_INVALID):this.removeCellClassName(e,u.CELL_INVALID),this.validateMap[e]=n,n)},_createChangeCallbackEvent:function(e,t){return new l(null,{rowKey:this.get("rowKey"),columnName:e,value:t,instance:this.collection.publicObject})},_executeOnBeforeChange:function(e,t){var n,i=this.columnModel.getColumnModel(e),o=this.get(e)!==t;return!(o&&i&&i.onBeforeChange)||(n=this._createChangeCallbackEvent(e,t),i.onBeforeChange(n),!n.isStopped())},_executeOnAfterChange:function(e){var t,n=this.columnModel.getColumnModel(e),i=this.get(e);return!n.onAfterChange||(t=this._createChangeCallbackEvent(e,i),n.onAfterChange(t),!t.isStopped())},getPrivateProperties:function(){return c},getRowState:function(){return this.extraDataManager.getRowState()},getClassNameList:function(e){var t=this.columnModel.getColumnModel(e),n=d.isMetaColumn(e),i=this.extraDataManager.getClassNameList(e),o=this.getCellState(e); -return t.className&&i.push(t.className),t.ellipsis&&i.push(u.CELL_ELLIPSIS),t.validation&&t.validation.required&&i.push(u.CELL_REQUIRED),n?i.push(u.CELL_HEAD):o.editable&&i.push(u.CELL_EDITABLE),o.disabled&&i.push(u.CELL_DISABLED),this._makeUniqueStringArray(i)},_makeUniqueStringArray:function(e){var t=i.uniq(e.join(" ").split(" "));return i.without(t,"")},getCellState:function(e){var t,n,o=["_number","normal"],s=this.columnModel,a=this.collection.disabled,r=!0,l=s.getEditType(e);return n=this.executeRelationCallbacksAll(["disabled","editable"])[e],t=this.getRowState(),a||(a="_button"===e?t.disabledCheck:t.disabled,a=a||!(!n||!n.disabled)),r=!i.contains(o,l)&&!(n&&n.editable===!1),{editable:r,disabled:a}},isEditable:function(e){var t=this.getCellState(e);return!t.disabled&&t.editable},isDisabled:function(e){var t=this.getCellState(e);return t.disabled},getRowSpanData:function(e){var t=this.collection.isRowSpanEnable(),n=this.get("rowKey");return this.extraDataManager.getRowSpanData(e,n,t)},getHeight:function(){return this.extraDataManager.getHeight()},setHeight:function(e){this.extraDataManager.setHeight(e),this._triggerExtraDataChangeEvent()},setRowSpanData:function(e,t){this.extraDataManager.setRowSpanData(e,t),this._triggerExtraDataChangeEvent()},setRowState:function(e,t){this.extraDataManager.setRowState(e),t||this._triggerExtraDataChangeEvent()},addCellClassName:function(e,t){this.extraDataManager.addCellClassName(e,t),this._triggerExtraDataChangeEvent()},addClassName:function(e){this.extraDataManager.addClassName(e),this._triggerExtraDataChangeEvent()},removeCellClassName:function(e,t){this.extraDataManager.removeCellClassName(e,t),this._triggerExtraDataChangeEvent()},removeClassName:function(e){this.extraDataManager.removeClassName(e),this._triggerExtraDataChangeEvent()},_getStringOfListItems:function(e,t){var n,o,a,r,l=this.get(e),h=this.columnModel.getColumnModel(e);return s.isExisty(s.pick(h,"editOptions","listItems"))?(n=this.executeRelationCallbacksAll(["listItems"])[e],o=n&&n.listItems?n.listItems:h.editOptions.listItems,a=typeof o[0].value,r=d.toString(l).split(","),a!==typeof r[0]&&(r=i.map(r,function(e){return d.convertValueType(e,a)})),i.each(r,function(e,n){var s=i.findWhere(o,{value:e}),a=s&&(t?s.text:s.value)||"";r[n]=a},this),r.join(",")):""},_isListType:function(e){return i.contains(["select","radio","checkbox"],e)},isDuplicatedPublicChanged:function(e){return!(!this._timeoutIdForChanged||!i.isEqual(this._lastPublicChanged,e))||(clearTimeout(this._timeoutIdForChanged),this._timeoutIdForChanged=setTimeout(i.bind(function(){this._timeoutIdForChanged=null},this),10),this._lastPublicChanged=e,!1)},getValueString:function(e){var t=this.columnModel,n=t.copyVisibleTextOfEditingColumn(e),i=t.getEditType(e),o=t.getColumnModel(e),a=this.get(e);if(this._isListType(i)){if(!s.isExisty(s.pick(o,"editOptions","listItems",0,"value")))throw new Error('Check "'+e+"\"'s editOptions.listItems property out in your ColumnModel.");a=this._getStringOfListItems(e,n)}else"password"===i&&(a="");return a=d.toString(a),a=h.addDoubleQuotes(a)},executeRelationCallbacksAll:function(e){var t=this.attributes,n=this.columnModel.get("relationsMap"),o={};return i.isEmpty(e)&&(e=["listItems","disabled","editable"]),i.each(n,function(n,s){var a=t[s];i.each(n,function(n){this._executeRelationCallback(n,e,a,t,o)},this)},this),o},_executeRelationCallback:function(e,t,n,o,s){var a=this.getRowState(),r=e.targetNames;i.each(t,function(t){var l;a.disabled&&"disabled"===t||(l=e[t],"function"==typeof l&&i.each(r,function(e){s[e]=s[e]||{},s[e][t]=l(n,o)},this))},this)}},{privateProperties:c});e.exports=f},function(e,t,n){"use strict";var i=n(6),o=n(7),s=o.defineClass({init:function(e){this.data=e||{}},getRowSpanData:function(e,t,n){var i=null;return n&&(i=this.data.rowSpanData,e&&i&&(i=i[e])),!i&&e&&(i={count:0,isMainRow:!0,mainRowKey:t}),i},getRowState:function(){var e={disabledCheck:!1,disabled:!1,checked:!1};switch(this.data.rowState){case"DISABLED":e.disabled=!0;case"DISABLED_CHECK":e.disabledCheck=!0;break;case"CHECKED":e.checked=!0}return e},setRowState:function(e){this.data.rowState=e},setRowSpanData:function(e,t){var n=i.assign({},this.data.rowSpanData);e&&(t?n[e]=t:n[e]&&delete n[e],this.data.rowSpanData=n)},addCellClassName:function(e,t){var n,o;n=this.data.className||{},n.column=n.column||{},o=n.column[e]||[],i.contains(o,t)||(o.push(t),n.column[e]=o,this.data.className=n)},addClassName:function(e){var t,n;t=this.data.className||{},n=t.row||[],o.inArray(e,n)===-1&&(n.push(e),t.row=n,this.data.className=t)},getClassNameList:function(e){var t=this.data.className,n=Array.prototype.push,i=[];return t&&(t.row&&n.apply(i,t.row),e&&t.column&&t.column[e]&&n.apply(i,t.column[e])),i},_removeClassNameFromArray:function(e,t){var n=e.join(" ").split(" ");return i.without(n,t)},removeCellClassName:function(e,t){var n=this.data.className;o.pick(n,"column",e)&&(n.column[e]=this._removeClassNameFromArray(n.column[e],t),this.data.className=n)},removeClassName:function(e){var t=this.data.className;t&&t.row&&(t.row=this._removeClassNameFromArray(t.row,e),this.className=t)},setHeight:function(e){this.data.height=e},getHeight:function(){return this.data.height}});e.exports=s},function(e,t,n){"use strict";var i=n(6),o=n(7),s=n(20),a=n(14).attrName,r={ROW_HEAD:"rowHead",COLUMN_HEAD:"columnHead",DUMMY:"dummy",CELL:"cell",ETC:"etc"},l=o.defineClass({init:function(e,t){this._stopped=!1,e&&(this.nativeEvent=e),t&&this.setData(t)},setData:function(e){i.extend(this,e)},stop:function(){this._stopped=!0},isStopped:function(){return this._stopped}});l.getTargetInfo=function(e){var t,n,i=e.closest("td"),o=r.ETC;return 1===i.length?(t=i.attr(a.ROW_KEY),n=i.attr(a.COLUMN_NAME),o=t&&n?s.isMetaColumn(n)?r.ROW_HEAD:r.CELL:r.DUMMY):(i=e.closest("th"),1===i.length&&(n=i.attr(a.COLUMN_NAME),o=r.COLUMN_HEAD)),s.pruneObject({targetType:o,rowKey:s.strToNumber(t),columnName:n})},l.targetTypeConst=r,e.exports=l},function(e,t,n){"use strict";function i(e,t){var n,i,o,s="",a=0;for(t=!!t,i=e.split(/(%(?:d0|d1)%.{2})/),n=i.length;a]*\ssrc=["']?([^>"']+)["']?[^>]*>/i),e=t?t[1]:""):e=e.replace(//gi,""),e=s.trim(r.decodeHTMLEntity(e.replace(/<\/?(?:h[1-5]|[a-z]+(?::[a-z]+)?)[^>]*>/gi,"")))),e},toString:function(e){return a.isUndefined(e)||a.isNull(e)?"":String(e)},getUniqueKey:function(){return this.uniqueId+=1,this.uniqueId},toQueryString:function(e){var t=[];return a.each(e,function(e,n){a.isString(e)||a.isNumber(e)||(e=JSON.stringify(e)),e=encodeURIComponent(unescape(e)),e&&t.push(n+"="+e)}),t.join("&")},toQueryObject:function(e){var t=e.split("&"),n={};return a.each(t,function(e){var t,o,s=e.split("=");t=s[0],o=i(s[1]);try{o=JSON.parse(o)}catch(e){}a.isNull(o)||(n[t]=o)}),n},convertValueType:function(e,t){return"string"===t?String(e):"number"===t?Number(e):"boolean"===t?Boolean(e):e},toUpperCaseFirstLetter:function(e){return e.charAt(0).toUpperCase()+e.slice(1)},clamp:function(e,t,n){var i;return t>n&&(i=t,t=n,n=i),Math.max(t,Math.min(e,n))},isOptionEnabled:function(e){return a.isObject(e)||e===!0},appendStyleElement:function(e,t){var n=document.createElement("style");n.type="text/css",n.id=e,n.styleSheet?n.styleSheet.cssText=t:n.appendChild(document.createTextNode(t)),document.getElementsByTagName("head")[0].appendChild(n)},warning:function(e){console&&console.warn&&console.warn(e)},replaceText:function(e,t){return e.replace(/\{\{(\w*)\}\}/g,function(e,n){return t.hasOwnProperty(n)?t[n]:""})}},e.exports=o},function(e,t,n){"use strict";function i(e,t,n,i){var o,s,a=n[0],r=n[1],l=i[0],d=i[1];for(s=l;s0},getAvailableTotalWidth:function(e){var t=this.get("width"),n=e+1+(this.isDivisionBorderDoubled()?1:0),i=n*r,o=t-this.getScrollYWidth()-i;return o},getBodySize:function(){var e=this.get("lsideWidth"),t=this.get("rsideWidth")-this.getScrollYWidth(),n=this.get("bodyHeight")-this.getScrollXHeight();return{height:n,rsideWidth:t,totalWidth:e+t}},getOverflowFromMousePosition:function(e,t){var n=this.getPositionFromBodyArea(e,t),i=this.getBodySize();return this._judgeOverflow(n,i)},_judgeOverflow:function(e,t){var n=e.x,i=e.y,o=0,s=0;return i<0?o=-1:i>t.height&&(o=1),n<0?s=-1:n>t.totalWidth&&(s=1),{x:s,y:o}},getScrollXHeight:function(){return this.get("scrollX")?this.get("scrollBarSize"):0},getScrollYWidth:function(){return this.get("scrollY")?this.get("scrollBarSize"):0},_calcRealBodyHeight:function(e){var t=this.get("headerHeight")+this.get("footerHeight")+a;return e-t},_getMinBodyHeight:function(){return this.get("minBodyHeight")+2*r+this.getScrollXHeight()},_getMinLeftSideWidth:function(){var e,t=this.get("minimumColumnWidth"),n=this.columnModel.getVisibleFrozenCount(!0),i=0;return n&&(e=(n+1)*r,i=e+t*n),i},getMaxLeftSideWidth:function(){var e=Math.ceil(.9*this.get("width"));return e&&(e=Math.max(e,this._getMinLeftSideWidth())),e},setWidth:function(e){e>0&&(this.set("width",e),this.trigger("setWidth",e))},setHeight:function(e){e>0&&this.set("bodyHeight",Math.max(this._calcRealBodyHeight(e),this._getMinBodyHeight()))},getHeight:function(){return this.get("bodyHeight")+this.get("headerHeight")},refreshLayout:function(){var e=this.domState,t=e.getOffset();this.set({offsetTop:t.top,offsetLeft:t.left,width:e.getWidth()}),this.get("fitToParentHeight")&&this.setHeight(e.getParentHeight())},getBodyOffsetTop:function(){return this.get("offsetTop")+this.get("headerHeight")+r+a},getPositionFromBodyArea:function(e,t){var n=this.get("offsetLeft"),i=this.getBodyOffsetTop();return{x:e-n,y:t-i}}});e.exports=l},function(e,t,n){"use strict";var i=n(6),o=n(20),s=n(13),a=n(14).dimension.CELL_BORDER_WIDTH,r=s.extend({initialize:function(e,t){this.dataModel=t.dataModel,this.dimensionModel=t.dimensionModel,this.domState=t.domState,this.rowHeights=[],this.rowOffsets=[],this.dimensionModel.get("fixedRowHeight")&&this.listenTo(this.dataModel,"add remove reset sort",this.syncWithDataModel)},syncWithDom:function(){var e,t,n,i,o;if(!this.dimensionModel.get("fixedRowHeight")){for(e=this.domState.getRowHeights(),t=this._getHeightFromData(),n=[],i=0,o=t.length;i0)for(;i>=0&&a>0;)n=Math.max(o,e[i]-a),a-=e[i]-n,e[i]=n,i-=1;else a<0&&(e[i]+=Math.abs(a));return e},_calculateColumnWidth:function(e){return e=this._fillEmptyWidth(e),e=this._applyMinimumWidth(e),e=this._adjustWidths(e)},_fillEmptyWidth:function(e){var t=this.dimensionModel.getAvailableTotalWidth(e.length),n=t-a.sum(e),o=[];return i.each(e,function(e,t){e||o.push(t)}),this._distributeExtraWidthEqually(e,n,o)},_getFrameWidth:function(e){var t=0;return e.length&&(t=a.sum(e)+(e.length+1)*h),t},_addExtraColumnWidth:function(e,t){var n=this._fixedWidthFlags,o=[];return i.each(n,function(e,t){e||o.push(t)}),this._distributeExtraWidthEqually(e,t,o)},_reduceExcessColumnWidth:function(e,t){var n=this._minWidths,o=this._fixedWidthFlags,s=[];return i.each(e,function(e,t){o[t]||s.push({index:t,width:e-n[t]})}),this._reduceExcessColumnWidthSub(i.clone(e),t,s)},_reduceExcessColumnWidthSub:function(e,t,n){var o,s=Math.round(t/n.length),a=[];return i.each(n,function(n){n.widtha.length?this._reduceExcessColumnWidthSub(e,t,a):(o=i.pluck(n,"index"),this._distributeExtraWidthEqually(e,t,o))},_distributeExtraWidthEqually:function(e,t,n){var o=n.length,s=Math.round(t/o),a=s*o-t,r=i.clone(e);return i.each(n,function(e){r[e]+=s}),n.length&&(r[i.last(n)]-=a),r},_applyMinimumWidth:function(e){var t=this._minWidths,n=i.clone(e);return i.each(n,function(e,i){var o=t[i];e0&&o>l?this._addExtraColumnWidth(e,r):t&&r<0?this._reduceExcessColumnWidth(e,r):e},_onDimensionWidthChange:function(){var e=this.get("widths");this._isModified||(e=this._adjustWidths(e,!0)),this._setColumnWidthVariables(e)},getWidths:function(e){var t=this.columnModel.getVisibleFrozenCount(!0),n=[];switch(e){case d.L:n=this.get("widths").slice(0,t);break;case d.R:n=this.get("widths").slice(t);break;default:n=this.get("widths")}return n},getFrameWidth:function(e){var t=this.columnModel.getVisibleFrozenCount(!0),n=this.getWidths(e),o=this._getFrameWidth(n);return i.isUndefined(e)&&t>0&&(o+=h),o},setColumnWidth:function(e,t){var n=this.get("widths"),i=this._minWidths[e];n[e]&&(n[e]=Math.max(t,i),this._setColumnWidthVariables(n),this._isModified=!0)},indexOf:function(e,t){var n=this.getWidths(),i=this.getFrameWidth(),s=t?0:this.columnModel.getVisibleMetaColumnCount(),a=0;return e>=i?a=n.length-1:o.forEachArray(n,function(t,n){return t+=h,a=n,e>t&&void(e-=t)}),Math.max(0,a-s)},restoreColumnWidth:function(e){var t=this.get("originalWidths")[e];this.setColumnWidth(e,t)}});e.exports=u},function(e,t,n){"use strict";var i=n(7),o=n(13),s=n(14).dimension,a=s.TABLE_BORDER_WIDTH,r=s.CELL_BORDER_WIDTH,l=o.extend({initialize:function(e,t){this.dataModel=t.dataModel,this.columnModel=t.columnModel,this.focusModel=t.focusModel,this.dimensionModel=t.dimensionModel,this.renderModel=t.renderModel,this.coordRowModel=t.coordRowModel,this.coordColumnModel=t.coordColumnModel,this.listenTo(this.focusModel,"focus",this._onFocus)},getIndexFromMousePosition:function(e,t,n){var i=this.dimensionModel.getPositionFromBodyArea(e,t),o=this._getScrolledPosition(i);return{row:this.coordRowModel.indexOf(o.y),column:this.coordColumnModel.indexOf(o.x,n)}},_getScrolledPosition:function(e){var t=this.renderModel,n=e.x>this.dimensionModel.get("lsideWidth"),i=n?t.get("scrollLeft"):0,o=t.get("scrollTop");return{x:e.x+i,y:e.y+o}},_getRowSpanCount:function(e,t){var n=this.dataModel.get(e).getRowSpanData(t);return n.isMainRow||(e=n.mainRowKey,n=this.dataModel.get(e).getRowSpanData(t)),n.count||1},_getCellVerticalPosition:function(e,t){var n,i,o,s,a=this.coordRowModel;return n=this.dataModel.indexOfRowKey(e),i=n+t-1,o=a.getOffsetAt(n),s=a.getOffsetAt(i)+a.getHeightAt(i)+r,{top:o,bottom:s}},_getCellHorizontalPosition:function(e){for(var t=this.columnModel,n=t.getVisibleMetaColumnCount(),i=this.coordColumnModel.get("widths"),o=t.getVisibleFrozenCount()+n,s=t.indexOfColumnName(e,!0)+n,a=o>s?0:o,l=0;al+n.height,t?(s=e.leftd+n.rsideWidth-1):s=a=!1,{isUp:i,isDown:o,isLeft:s,isRight:a}},_onFocus:function(e,t,n){var o;n&&(o=this.getScrollPosition(e,t),i.isEmpty(o)||this.renderModel.set(o))},_makeScrollPosition:function(e,t,n){var i={};return e.isUp?i.scrollTop=t.top:e.isDown&&(i.scrollTop=t.bottom-n.height),e.isLeft?i.scrollLeft=t.left:e.isRight&&(i.scrollLeft=t.right-n.rsideWidth+a),i},getScrollPosition:function(e,t){var n=!this.columnModel.isLside(t),i=this.getCellPosition(e,t),o=this.dimensionModel.getBodySize(),s=this._judgeScrollDirection(i,n,o);return this._makeScrollPosition(s,i,o)}});e.exports=l},function(e,t,n){"use strict";var i=n(6),o=n(13),s=n(20),a=n(19),r=o.extend({initialize:function(e,t){var n,s=t.editingEvent+":cell";o.prototype.initialize.apply(this,arguments),i.assign(this,{dataModel:t.dataModel,columnModel:t.columnModel,coordRowModel:t.coordRowModel,domEventBus:t.domEventBus,domState:t.domState}),this.listenTo(this.dataModel,"reset",this._onResetData),this.listenTo(this.dataModel,"add",this._onAddDataModel),this.domEventBus&&(n=this.domEventBus,this.listenTo(n,s,this._onMouseClickEdit),this.listenTo(n,"mousedown:focus",this._onMouseDownFocus),this.listenTo(n,"key:move",this._onKeyMove),this.listenTo(n,"key:edit",this._onKeyEdit))},defaults:{rowKey:null,columnName:null,prevRowKey:null,prevColumnName:"",editingAddress:null},_onResetData:function(){this.blur()},_onAddDataModel:function(e,t){t.focus&&this.focusAt(t.at,0)},_onMouseClickEdit:function(e){this.focusIn(e.rowKey,e.columnName)},_onKeyMove:function(e){var t,n;switch(e.command){case"up":t=this.prevRowKey();break;case"down":t=this.nextRowKey();break;case"left":n=this.prevColumnName();break;case"right":n=this.nextColumnName();break;case"pageUp":t=this._getPageMovedRowKey(!1);break;case"pageDown":t=this._getPageMovedRowKey(!0);break;case"firstColumn":n=this.firstColumnName();break;case"lastColumn":n=this.lastColumnName();break;case"firstCell":t=this.firstRowKey(),n=this.firstColumnName();break;case"lastCell":t=this.lastRowKey(),n=this.lastColumnName()}t=i.isUndefined(t)?this.get("rowKey"):t,n=n||this.get("columnName"),this.focus(t,n,!0)},_onKeyEdit:function(e){var t;switch(e.command){case"currentCell":t=this.which();break;case"nextCell":t=this.nextAddress();break;case"prevCell":t=this.prevAddress()}t&&this.focusIn(t.rowKey,t.columnName,!0)},_getPageMovedRowKey:function(e){var t,n=this.dataModel.indexOfRowKey(this.get("rowKey")),i=this.coordRowModel.getPageMovedIndex(n,e);return t=e?this.nextRowKey(i-n):this.prevRowKey(n-i)},_onMouseDownFocus:function(){this.focusClipboard()},_savePrevious:function(){null!==this.get("rowKey")&&this.set("prevRowKey",this.get("rowKey")),this.get("columnName")&&this.set("prevColumnName",this.get("columnName"))},isCurrentCell:function(e,t,n){var i=this.get("columnName"),o=this.get("rowKey");return n&&(o=this.dataModel.getMainRowKey(o,i)),String(o)===String(e)&&i===t},focus:function(e,t,n){return!(this._isValidCell(e,t)&&!s.isMetaColumn(t)&&!this.isCurrentCell(e,t))||!!this._triggerFocusChangeEvent(e,t)&&(this.blur(),this.set({rowKey:e,columnName:t}),this.trigger("focus",e,t,n),"radio"===this.columnModel.get("selectType")&&this.dataModel.check(e),!0)},_triggerFocusChangeEvent:function(e,t){var n=new a(null,{rowKey:e,prevRowKey:this.get("rowKey"),columnName:t,prevColumnName:this.get("columnName")});return this.trigger("focusChange",n),!n.isStopped()},focusAt:function(e,t,n){var i=this.dataModel.at(e),o=this.columnModel.at(t,!0),s=!1;return i&&o&&(s=this.focus(i.get("rowKey"),o.name,n)),s},focusIn:function(e,t,n){var i=this.focus(e,t,n);return i&&(e=this.dataModel.getMainRowKey(e,t),this.dataModel.get(e).isEditable(t)?(this.finishEditing(),this.startEditing(e,t)):this.focusClipboard()),i},focusInAt:function(e,t,n){var i=this.dataModel.at(e),o=this.columnModel.at(t,!0),s=!1;return i&&o&&(s=this.focusIn(i.get("rowKey"),o.name,n)),s},focusClipboard:function(){this.trigger("focusClipboard")},refreshState:function(){var e;this.domState.hasFocusedElement()?this.has()||(e=this.restore(),e||this.focusAt(0,0)):this.blur()},blur:function(){return this.has()?(this.has(!0)&&this._savePrevious(),this.trigger("blur",this.get("rowKey"),this.get("columnName")),this.set({rowKey:null,columnName:null}),this):this},which:function(){return{rowKey:this.get("rowKey"),columnName:this.get("columnName")}},indexOf:function(e){var t=e?this.get("prevRowKey"):this.get("rowKey"),n=e?this.get("prevColumnName"):this.get("columnName");return{row:this.dataModel.indexOfRowKey(t),column:this.columnModel.indexOfColumnName(n,!0)}},has:function(e){var t=this.get("rowKey"),n=this.get("columnName");return e?this._isValidCell(t,n):!s.isBlank(t)&&!s.isBlank(n)},restore:function(){var e=this.get("prevRowKey"),t=this.get("prevColumnName"),n=!1;return this._isValidCell(e,t)&&(this.focus(e,t),this.set({prevRowKey:null,prevColumnName:null}),n=!0),n},isEditingCell:function(e,t){var n=this.get("editingAddress");return n&&String(n.rowKey)===String(e)&&n.columnName===t},startEditing:function(e,t){if(this.get("editingAddress"))return!1;if(i.isUndefined(e)&&i.isUndefined(t))e=this.get("rowKey"),t=this.get("columnName");else if(!this.isCurrentCell(e,t,!0))return!1;return e=this.dataModel.getMainRowKey(e,t),!!this.dataModel.get(e).isEditable(t)&&(this.set("editingAddress",{rowKey:e,columnName:t}),!0)},finishEditing:function(){return!!this.get("editingAddress")&&(this.set("editingAddress",null),!0)},_isValidCell:function(e,t){var n=!s.isBlank(e)&&!!this.dataModel.get(e),i=!s.isBlank(t)&&!!this.columnModel.getColumnModel(t);return n&&i},_findRowKey:function(e){var t,n,i=this.dataModel,o=null;return this.has(!0)&&(t=Math.max(Math.min(i.indexOfRowKey(this.get("rowKey"))+e,this.dataModel.length-1),0),n=i.at(t),n&&(o=n.get("rowKey"))),o},_findColumnName:function(e){var t,n=this.columnModel,i=n.getVisibleColumns(),o=n.indexOfColumnName(this.get("columnName"),!0),s=null;return this.has(!0)&&(t=Math.max(Math.min(o+e,i.length-1),0),s=i[t]&&i[t].name),s},_getRowSpanData:function(e,t){return this.dataModel.get(e).getRowSpanData(t)},nextRowIndex:function(e){var t=this.nextRowKey(e);return this.dataModel.indexOfRowKey(t)},prevRowIndex:function(e){var t=this.prevRowKey(e);return this.dataModel.indexOfRowKey(t)},nextColumnIndex:function(){var e=this.nextColumnName();return this.columnModel.indexOfColumnName(e,!0)},prevColumnIndex:function(){var e=this.prevColumnName();return this.columnModel.indexOfColumnName(e,!0)},nextRowKey:function(e){var t,n,i=this.which(),o=i.rowKey;return e="number"==typeof e?e:1,e>1?(o=this._findRowKey(e),n=this._getRowSpanData(o,i.columnName),n.isMainRow||(o=this._findRowKey(n.count+e))):(n=this._getRowSpanData(o,i.columnName),n.isMainRow&&n.count>0?o=this._findRowKey(n.count):n.isMainRow?o=this._findRowKey(1):(t=n.count,n=this._getRowSpanData(n.mainRowKey,i.columnName),o=this._findRowKey(n.count+t))),o},prevRowKey:function(e){var t,n=this.which(),i=n.rowKey;return e="number"==typeof e?e:1,e*=-1,e<-1?(i=this._findRowKey(e),t=this._getRowSpanData(i,n.columnName),t.isMainRow||(i=this._findRowKey(t.count+e))):(t=this._getRowSpanData(i,n.columnName),i=t.isMainRow?this._findRowKey(-1):this._findRowKey(t.count-1)),i},nextColumnName:function(){return this._findColumnName(1)},prevColumnName:function(){return this._findColumnName(-1)},firstRowKey:function(){return this.dataModel.at(0).get("rowKey")},lastRowKey:function(){return this.dataModel.at(this.dataModel.length-1).get("rowKey")},firstColumnName:function(){var e=this.columnModel.getVisibleColumns();return e[0].name},lastColumnName:function(){var e=this.columnModel.getVisibleColumns(),t=e.length-1;return e[t].name},prevAddress:function(){var e,t,n=this.get("rowKey"),i=this.get("columnName"),o=i===this.firstColumnName(),s=n===this.firstRowKey();return s&&o?(e=n,t=i):o?(e=this.prevRowKey(),t=this.lastColumnName()):(e=n,t=this.prevColumnName()),{rowKey:e,columnName:t}},nextAddress:function(){var e,t,n=this.get("rowKey"),i=this.get("columnName"),o=i===this.lastColumnName(),s=n===this.lastRowKey(); -return s&&o?(e=n,t=i):o?(e=this.nextRowKey(),t=this.firstColumnName()):(e=n,t=this.nextColumnName()),{rowKey:e,columnName:t}}});e.exports=r},function(e,t,n){"use strict";var i=n(6),o=n(7),s=n(13),a=n(29),r=n(14).renderState,l=n(14).dimension.CELL_BORDER_WIDTH,d=1e3,h=s.extend({initialize:function(e,t){var n,o,s;i.assign(this,{dataModel:t.dataModel,columnModel:t.columnModel,focusModel:t.focusModel,dimensionModel:t.dimensionModel,coordRowModel:t.coordRowModel,coordColumnModel:t.coordColumnModel}),s={dataModel:this.dataModel,columnModel:this.columnModel,focusModel:this.focusModel},n=new a([],s),o=new a([],s),this.set({lside:n,rside:o,partialLside:new a([],s),partialRside:new a([],s)}),this.listenTo(this.columnModel,"columnModelChange change",this._onColumnModelChange).listenTo(this.dataModel,"sort reset",this._onDataModelChange).listenTo(this.dataModel,"delRange",this._onRangeDataModelChange).listenTo(this.dataModel,"add",this._onAddDataModelChange).listenTo(this.dataModel,"remove",this._onRemoveDataModelChange).listenTo(this.dataModel,"beforeReset",this._onBeforeResetData).listenTo(this.focusModel,"change:editingAddress",this._onEditingAddressChange).listenTo(n,"valueChange",this._executeRelation).listenTo(o,"valueChange",this._executeRelation).listenTo(this.coordRowModel,"reset",this._onChangeRowHeights).listenTo(this.dimensionModel,"columnWidthChanged",this.finishEditing).listenTo(this.dimensionModel,"change:width",this._updateMaxScrollLeft).listenTo(this.dimensionModel,"change:totalRowHeight change:scrollBarSize change:bodyHeight",this._updateMaxScrollTop),this.get("showDummyRows")&&(this.listenTo(this.dimensionModel,"change:bodyHeight change:totalRowHeight",this._resetDummyRowCount),this.on("change:dummyRowCount",this._resetDummyRows)),this.on("change",this._onChangeIndex,this),this._onChangeLayoutBound=i.bind(this._onChangeLayout,this),this._updateMaxScrollLeft()},defaults:{top:0,bottom:0,scrollTop:0,scrollLeft:0,maxScrollLeft:0,maxScrollTop:0,startIndex:-1,endIndex:-1,startNumber:1,lside:null,rside:null,showDummyRows:!1,dummyRowCount:0,emptyMessage:null,state:r.DONE,partialLside:null,partialRside:null},_onChangeLayout:function(){this.focusModel.finishEditing(),this.focusModel.focusClipboard()},_onChangeIndex:function(e){var t=e.changed,n=i.has(t,"startIndex"),o=i.has(t,"endIndex");(n||o)&&this.refresh()},_onChangeRowHeights:function(){for(var e,t=this.coordRowModel,n=this.get("lside"),i=this.get("rside"),o=n.length,s=0;sd&&this.set("state",r.LOADING)},_onEditingAddressChange:function(e,t){var n=t,o=!0,s=this;t||(n=e.previous("editingAddress"),o=!1),this._updateCellData(n.rowKey,n.columnName,{editing:o}),this._triggerEditingStateChanged(n.rowKey,n.columnName),i.defer(function(){s._toggleChangeLayoutEventHandlers(o)})},_toggleChangeLayoutEventHandlers:function(e){var t="change:scrollTop change:scrollLeft",n="columnWidthChanged";e?(this.listenToOnce(this.dimensionModel,n,this._onChangeLayoutBound),this.once(t,this._onChangeLayoutBound)):(this.stopListening(this.dimensionModel,n,this._onChangeLayoutBound),this.off(t,this._onChangeLayoutBound))},_triggerEditingStateChanged:function(e,t){var n=this.getCellData(e,t);o.pick(n,"columnModel","editOptions","useViewMode")!==!1&&null===n.convertedHTML&&this.trigger("editingStateChanged",n)},_updateCellData:function(e,t,n){var i=this._getRowModel(e,t);i&&i.setCell(t,n)},initializeVariables:function(){this.set({top:0,scrollTop:0,scrollLeft:0,startNumber:1})},getCollection:function(e){var t=this._getPartialWhichSideType(e);return this.get(t)},_getPartialWhichSideType:function(e){return o.isString(e)?"partial"+e+"side":"partialRside"},_onColumnModelChange:function(){this.set({scrollTop:0},{silent:!0}),this._setRenderingRange(!0),this.refresh({change:!1,columnModelChanged:!0})},_onDataModelChange:function(){i.each(["lside","rside"],function(e){this.get(e).reset()},this),this._setRenderingRange(!0),this.refresh({type:"reset",dataListChanged:!0})},_onAddDataModelChange:function(e,t){var n,o,s,a=this.get("lside").length?this.get("lside"):this.get("rside"),r=this._getColumnNamesOfEachSide(),l=t.at;l>a.length-1||(e=i.isArray(e)?e:e.models,i.each(e,function(e,t){n=this.coordRowModel.getHeightAt(t),i.each(["lside","rside"],function(i){s=l+t+1,o=this._createViewDataFromDataModel(e,r[i],n,s),this.get(i).add([o],{parse:!0,at:l+t})},this)},this),this.refresh({type:"add",dataListChanged:!0}),t.focus&&this.focusModel.focusAt(t.at,0))},_onRemoveDataModelChange:function(e){i.each(["lside","rside"],function(t){var n=this.get(t);n.remove(n.get(e))},this),this._setRenderingRange(!0),this.refresh({dataListChanged:!0})},_onRangeDataModelChange:function(e,t){var n=this.columnModel;this._setRenderingRange(!0),i.each(["partialLside","partialRside"],function(o){i.each(this.get(o).models,function(o){var s=o.get("rowKey"),a=i.contains(e,s);a&&i.each(t,function(e){n.getColumnModel(e).editOptions&&this._updateCellData(s,e,{value:"",formattedValue:""})},this)},this)},this),this.refresh({type:"delRange",dataListChanged:!0})},_resetDummyRows:function(){this._clearDummyRows(),this._fillDummyRows(),this.trigger("rowListChanged")},_setRenderingRange:function(e){var t=this.dataModel.length;this.set({startIndex:t?0:-1,endIndex:t-1},{silent:e})},_createViewDataFromDataModel:function(e,t,n,o){var s={rowNum:o,height:n,rowKey:e.get("rowKey"),_extraData:e.get("_extraData")};return i.each(t,function(t){var n=e.get(t);"_number"!==t||i.isNumber(n)||(n=o),s[t]=n}),s},_getColumnNamesOfEachSide:function(){var e=this.columnModel.getVisibleFrozenCount(!0),t=this.columnModel.getVisibleColumns(null,!0),n=i.pluck(t,"name");return{lside:n.slice(0,e),rside:n.slice(e)}},_addViewModelListWithRange:function(e,t){var n,i,o,s=this._getColumnNamesOfEachSide();if(e>=0&&t>=0)for(o=e;o<=t;o+=1)n=this.dataModel.at(o),i=this.coordRowModel.getHeightAt(o),this._addViewModelList(n,s,i,o)},_addViewModelList:function(e,t,n,o){i.each(["lside","rside"],function(i){var s,a=e.get("rowKey");this.get(i).get(a)||(s=this._createViewDataFromDataModel(e,t[i],n,o+1),this.get(i).add([s],{parse:!0,at:o}))},this)},_updateRowNumber:function(e,t){for(var n,i,o,s=this.get("lside"),a=e;a<=t;a+=1)n=s.at(a),o=a+1,n&&(i=n.get("rowNum"),o=a+1,i!==o&&(n.set({rowNum:o},{silent:!0}),n.setCell("_number",{formattedValue:o,value:o})))},_resetPartialViewModelList:function(e,t){var n,o,s,a;i.each(["L","R"],function(i){n=i.toLowerCase()+"side",o=this._getPartialWhichSideType(i),s=this.get(n),a=s.slice(e,t+1),this.get(o).reset(a)},this)},_getActualRowCount:function(){return this.get("endIndex")-this.get("startIndex")+1},_clearDummyRows:function(){var e=this.get("endIndex")-this.get("startIndex")+1;i.each(["lside","rside"],function(t){for(var n=this.get(t);n.length>e;)n.pop()},this)},_resetDummyRowCount:function(){var e=this.dimensionModel,t=e.get("totalRowHeight"),n=e.get("rowHeight")+l,i=e.get("bodyHeight")-e.getScrollXHeight(),o=0;t=0&&n>=0)for(i=t;i<=n;i+=1)this._executeRelation(i);o?this.trigger("columnModelChanged"):(this.trigger("rowListChanged",s),s&&this.coordRowModel.syncWithDom()),this._refreshState()},_refreshState:function(){this.dataModel.length?this.set("state",r.DONE):this.set("state",r.EMPTY)},_getCollectionByColumnName:function(e){var t,n=this.get("lside");return t=n.at(0)&&n.at(0).get(e)?n:this.get("rside")},_getRowModel:function(e,t){var n=this._getCollectionByColumnName(t);return n.get(e)},getCellData:function(e,t){var n=this._getRowModel(e,t),i=null;return n&&(i=n.get(t)),i},_executeRelation:function(e){var t,n,o=this.dataModel.at(e),s=e-this.get("startIndex");n=o.executeRelationCallbacksAll(),i.each(n,function(e,n){t=this._getCollectionByColumnName(n).at(s),t&&t.setCell(n,e)},this)}});e.exports=h},function(e,t,n){"use strict";var i=n(6),o=n(16),s=n(30),a=o.extend({initialize:function(e,t){i.assign(this,{dataModel:t.dataModel,columnModel:t.columnModel,focusModel:t.focusModel})},model:s});e.exports=a},function(e,t,n){"use strict";var i=n(6),o=n(7),s=n(13),a=n(20),r=s.extend({initialize:function(e){var t=e&&e.rowKey,n=this.collection.dataModel,i=n.get(t);this.dataModel=n,this.columnModel=this.collection.columnModel,this.focusModel=this.collection.focusModel,i&&(this.listenTo(i,"change",this._onDataModelChange),this.listenTo(i,"restore",this._onDataModelRestore),this.listenTo(i,"extraDataChanged",this._setRowExtraData),this.listenTo(n,"disabledChanged",this._onDataModelDisabledChanged),this.rowData=i)},idAttribute:"rowKey",_onDataModelChange:function(e){i.each(e.changed,function(t,n){var i,o;this.has(n)&&(i=this.columnModel.getColumnModel(n),o=this.columnModel.isTextType(n),this.setCell(n,this._getValueAttrs(t,e,i,o)))},this)},_onDataModelRestore:function(e){var t=this.get(e);t&&this.trigger("restore",t)},_getColumnNameList:function(){var e=this.collection.columnModel.getVisibleColumns(null,!0);return i.pluck(e,"name")},_onDataModelDisabledChanged:function(){var e=this._getColumnNameList();i.each(e,function(e){this.setCell(e,{disabled:this.rowData.isDisabled(e),className:this._getClassNameString(e)})},this)},_setRowExtraData:function(){o.isUndefined(this.collection)||i.each(this._getColumnNameList(),function(e){var t,n=this.get(e);!o.isUndefined(n)&&n.isMainRow&&(t=this.rowData.getCellState(e),this.setCell(e,{disabled:t.disabled,editable:t.editable,className:this._getClassNameString(e)}))},this)},parse:function(e,t){var n=t.collection;return this._formatData(e,n.dataModel,n.columnModel,n.focusModel)},_formatData:function(e,t,n,s){var a,r,l=e.rowKey,d=e.height;return i.isUndefined(l)?e:(r=t.get(l),a=i.omit(e,"rowKey","_extraData","height","rowNum"),i.each(a,function(a,h){var u=this._getRowSpanData(h,e,t.isRowSpanEnable()),c=r.getCellState(h),g=n.isTextType(h),m=n.getColumnModel(h);e[h]={rowKey:l,height:d,columnName:h,rowSpan:u.count,isMainRow:u.isMainRow,mainRowKey:u.mainRowKey,editable:c.editable,disabled:c.disabled,editing:s.isEditingCell(l,h),whiteSpace:m.whiteSpace||"nowrap",valign:m.valign,listItems:o.pick(m,"editOptions","listItems"),className:this._getClassNameString(h,r,s),columnModel:m,changed:[]},i.assign(e[h],this._getValueAttrs(a,r,m,g))},this),e)},_getClassNameString:function(e,t,n){var i;return t||(t=this.dataModel.get(this.get("rowKey")))?(n||(n=this.focusModel),i=t.getClassNameList(e),i.join(" ")):""},_getValueAttrs:function(e,t,n,i){var s=o.pick(n,"editOptions","prefix"),a=o.pick(n,"editOptions","postfix"),r=o.pick(n,"editOptions","converter"),l=t.toJSON();return{value:this._getValueToDisplay(e,n,i),formattedValue:this._getFormattedValue(e,l,n),prefix:this._getExtraContent(s,e,l),postfix:this._getExtraContent(a,e,l),convertedHTML:this._getConvertedHTML(r,e,l)}},_getFormattedValue:function(e,t,n){var o;return o=i.isFunction(n.formatter)?n.formatter(e,t,n):e,i.isNumber(o)?o=String(o):o||(o=""),o},_getExtraContent:function(e,t,n){var s="";return i.isFunction(e)?s=e(t,n):o.isExisty(e)&&(s=e),s},_getConvertedHTML:function(e,t,n){var o=null;return i.isFunction(e)&&(o=e(t,n)),o===!1&&(o=null),o},_getValueToDisplay:function(e,t,n){var i=o.isExisty,s=t.useHtmlEntity,a=t.defaultValue;return i(e)||(e=i(a)?a:""),n&&s&&o.hasEncodableString(e)&&(e=o.encodeHTMLEntity(e)),e},_getRowSpanData:function(e,t,n){var i=o.pick(t,"_extraData","rowSpanData",e);return n&&i||(i={mainRowKey:t.rowKey,count:0,isMainRow:!0}),i},updateClassName:function(e){this.setCell(e,{className:this._getClassNameString(e)})},setCell:function(e,t){var n,o,s,r=!1,l=[];this.has(e)&&(o=this.get("rowKey"),s=i.clone(this.get(e)),i.each(t,function(e,t){a.isEqual(s[t],e)||(r="value"===t||r,s[t]=e,l.push(t))},this),l.length&&(s.changed=l,this.set(e,s,{silent:this._shouldSetSilently(s,r)}),r&&(n=this.collection.dataModel.indexOfRowKey(o),this.trigger("valueChange",n))))},_shouldSetSilently:function(e,t){var n=e.editing&&t,s=o.pick(e,"columnModel","editOptions","useViewMode")!==!1,a=i.contains(e.changed,"editing")&&e.editing;return n||s&&a}});e.exports=r},function(e,t,n){"use strict";var i=n(6),o=n(28),s=n(14).dimension,a=s.CELL_BORDER_WIDTH,r=.3,l=.1,d=o.extend({initialize:function(){o.prototype.initialize.apply(this,arguments),this.on("change:scrollTop",this._onChangeScrollTop,this),this.listenTo(this.dimensionModel,"change:bodyHeight",this._onChangeBodyHeight)},_onChangeScrollTop:function(){this._shouldRefresh(this.get("scrollTop"))&&this._setRenderingRange()},_onChangeBodyHeight:function(){this._setRenderingRange()},_setRenderingRange:function(e){var t,n,i=this.get("scrollTop"),o=this.dimensionModel,s=this.dataModel,l=this.coordRowModel,d=o.get("bodyHeight"),h=parseInt(d*r,10),u=Math.max(l.indexOf(i-h),0),c=Math.min(l.indexOf(i+d+h),s.length-1);s.isRowSpanEnable()&&(u+=this._getStartRowSpanMinCount(u),c+=this._getEndRowSpanMaxCount(c)),t=l.getOffsetAt(u),n=l.getOffsetAt(c)+l.getHeightAt(c)+a,this.set({top:t,bottom:n,startIndex:u,endIndex:c},{silent:e})},_getStartRowSpanMinCount:function(e){var t,n=this.dataModel.at(e),o=0;return n&&(t=i.pluck(n.getRowSpanData(),"count"),t.push(0),o=i.min(t)),o},_getEndRowSpanMaxCount:function(e){var t,n=this.dataModel.at(e),o=0;return n&&(t=i.pluck(n.getRowSpanData(),"count"),t.push(0),o=i.max(t)),o>0&&(o-=1),o},_shouldRefresh:function(e){var t=this.dimensionModel.get("bodyHeight"),n=e+t,i=this.dimensionModel.get("totalRowHeight"),o=this.get("top"),s=this.get("bottom"),a=parseInt(t*l,10),r=e-o0||d&&sn.row&&(s.row=e[1]),t[1]>n.column&&(s.column=t[1])),s},_isValidAddress:function(e){return!!this.dataModel.at(e.row)&&!!this.columnModel.at(e.colummn)},_scrollTo:function(e,t){var n,i,o,s,a=this.dataModel.at(e),r=this.columnModel.at(t);a&&r&&(n=a.get("rowKey"),i=r.name,s=this.coordConverterModel.getScrollPosition(n,i),s&&(o=this.getType(),o===l.COLUMN?delete s.scrollTop:o===l.ROW&&delete s.scrollLeft,this.renderModel.set(s)))},_getTypeByColumnIndex:function(e){var t=this.columnModel.getVisibleColumns(null,!0),n=t[e].name;switch(n){case"_button":return null;case"_number":return l.ROW;default:return l.CELL}},_onMouseDownBody:function(e){var t,n,i=this.coordConverterModel.getIndexFromMousePosition(e.pageX,e.pageY,!0),o=this._getTypeByColumnIndex(i.column);o&&(t=i.row,n=i.column-this.columnModel.getVisibleMetaColumnCount(),e.shiftKey?this.update(t,Math.max(n,0)):o===l.ROW?this.selectRow(t):(this.focusModel.focusAt(t,n),this.end()))},_onDragMoveBody:function(e){var t=this.coordConverterModel.getIndexFromMousePosition(e.pageX,e.pageY);this.update(t.row,t.column,this.getSelectionUnit()),this._setScrolling(e.pageX,e.pageY)},_onDragEndBody:function(){this.stopAutoScroll()},_onPasteData:function(e){this.start(e.startIdx.row,e.startIdx.column),this.update(e.endIdx.row,e.endIdx.column)},_getColumnRangeWithNames:function(e){var t=this.columnModel,n=o.map(e,function(e){return t.indexOfColumnName(e,!0)}),i=r.getMinMax(n);return[i.min,i.max]},setType:function(e){this.selectionType=l[e]||this.selectionType},getType:function(){return this.selectionType},getSelectionUnit:function(){return this.get("selectionUnit").toUpperCase()},enable:function(){this.enabled=!0},disable:function(){this.end(),this.enabled=!1},isEnabled:function(){return this.enabled},start:function(e,t,n){this.isEnabled()&&(this.setType(n),this.inputRange={row:[e,e],column:[t,t]},this._resetRangeAttribute())},update:function(e,t,n){var i;!this.enabled||n!==l.COLUMN&&e<0||n!==l.ROW&&t<0||(this.hasSelection()?this.setType(n):(i=this.focusModel.indexOf(),n===l.ROW?this.start(i.row,0,l.ROW):this.start(i.row,i.column,l.CELL)),this._updateInputRange(e,t),this._resetRangeAttribute())},_updateInputRange:function(e,t){var n=this.inputRange;this.selectionType===l.ROW?t=this.columnModel.getVisibleColumns().length-1:this.selectionType===l.COLUMN&&(e=this.dataModel.length-1),n.row[1]=e,n.column[1]=t},_extendColumnSelection:function(e,t,n){var i,o=this.minimumColumnRange,s=this.coordConverterModel.getIndexFromMousePosition(t,n),a={row:[0,this.dataModel.length-1],column:[]};e&&e.length||(e=[s.column]),this._setScrolling(t,n),o?i=r.getMinMax(e.concat(o)):(e.push(this.inputRange.column[0]),i=r.getMinMax(e)),a.column.push(i.min,i.max),this._resetRangeAttribute(a)},_setScrolling:function(e,t){var n=this.dimensionModel.getOverflowFromMousePosition(e,t);this.stopAutoScroll(),this._isAutoScrollable(n.x,n.y)&&(this.intervalIdForAutoScroll=setInterval(o.bind(this._adjustScroll,this,n.x,n.y)))},end:function(){this.inputRange=null,this.unset("range"),this.minimumColumnRange=null},stopAutoScroll:function(){o.isNull(this.intervalIdForAutoScroll)||(clearInterval(this.intervalIdForAutoScroll),this.intervalIdForAutoScroll=null)},selectRow:function(e){this.isEnabled()&&(this.focusModel.focusAt(e,0),this.start(e,0,l.ROW),this.update(e,this.columnModel.getVisibleColumns().length-1))},selectColumn:function(e){this.isEnabled()&&(this.focusModel.focusAt(0,e),this.start(0,e,l.COLUMN),this.update(this.dataModel.length-1,e))},selectAll:function(){this.isEnabled()&&(this.start(0,0,l.CELL),this.update(this.dataModel.length-1,this.columnModel.getVisibleColumns().length-1))},getStartIndex:function(){var e=this.get("range");return{row:e.row[0],column:e.column[0]}},getEndIndex:function(){var e=this.get("range");return{row:e.row[1],column:e.column[1]}},hasSelection:function(){return!!this.get("range")},_isSingleCell:function(e,t){var n=1===e.length,i=1===t.length,o=n&&!i&&t[0].getRowSpanData(e[0]).count===t.length;return n&&i||o},getValuesToString:function(){var e=this.renderModel,t=this.columnModel,n=this._getRangeRowList(),i=this._getRangeColumnNames(),s=o.map(n,function(n){return o.map(i,function(i){return t.getCopyOptions(i).useFormattedValue?e.getCellData(n.get("rowKey"),i).formattedValue:n.getValueString(i)}).join("\t")});return this._isSingleCell(i,n)?s[0]:s.join("\n")},_getRangeRowList:function(){var e=this.get("range").row;return this.dataModel.slice(e[0],e[1]+1)},_getRangeColumnNames:function(){var e=this.get("range").column,t=this.columnModel.getVisibleColumns().slice(e[0],e[1]+1);return o.pluck(t,"name")},_isAutoScrollable:function(e,t){return!(0===e&&0===t)},_adjustScroll:function(e,t){var n=this.renderModel;e&&this._adjustScrollLeft(e,n.get("scrollLeft"),n.get("maxScrollLeft")),t&&this._adjustScrollTop(t,n.get("scrollTop"),n.get("maxScrollTop"))},_adjustScrollLeft:function(e,t,n){var i=t,o=this.scrollPixelScale;e<0?i=Math.max(0,t-o):e>0&&(i=Math.min(n,t+o)),this.renderModel.set("scrollLeft",i)},_adjustScrollTop:function(e,t,n){var i=t,o=this.scrollPixelScale;e<0?i=Math.max(0,t-o):e>0&&(i=Math.min(n,t+o)),this.renderModel.set("scrollTop",i)},_resetRangeAttribute:function(e){var t,n,i,s=this.dataModel;if(e=e||this.inputRange,!e)return void this.set("range",null);if(n={row:o.sortBy(e.row),column:o.sortBy(e.column)},s.isRowSpanEnable()&&this.selectionType===l.CELL){do i=o.assign([],n.row),n=this._getRowSpannedIndex(n),t=n.row[0]!==i[0]||n.row[1]!==i[1];while(t);this._setRangeMinMax(n.row,n.column)}this.set("range",n)},_triggerSelectionEvent:function(){var e,t,n,i,o,s,r,l=this.get("range"),d=this.dataModel,h=this.columnModel;l&&(e=l.row,t=l.column,i=d.getRowDataAt(e[0]),s=h.at(t[0]),o=d.getRowDataAt(e[1]),r=h.at(t[1]),i&&o&&s&&r&&(n=new a(null,{range:{start:[i,s],end:[o,r]}}),this.trigger("selection",n)))},_setRangeMinMax:function(e,t){e&&(e[0]=Math.max(0,e[0]),e[1]=Math.min(this.dataModel.length-1,e[1])),t&&(t[0]=Math.max(0,t[0]),t[1]=Math.min(this.columnModel.getVisibleColumns().length-1,t[1]))},_concatRowSpanIndexFromStart:function(e){var t,n=e.startIndex,i=e.endIndex,o=e.columnName,s=e.startRowSpanDataMap&&e.startRowSpanDataMap[o],a=e.startIndexList,r=e.endIndexList;s&&(s.isMainRow?(t=n+s.count-1,t>i&&r.push(t)):(t=n+s.count,a.push(t)))},_concatRowSpanIndexFromEnd:function(e){var t,n,i=e.endIndex,o=e.columnName,s=e.endRowSpanDataMap&&e.endRowSpanDataMap[o],a=e.endIndexList,r=e.dataModel;s&&(s.isMainRow?(t=i+s.count-1,a.push(t)):(t=i+s.count,n=r.at(t).getRowSpanData(o),t+=n.count-1,t>i&&a.push(t)))},_getRowSpannedIndex:function(e){var t,n,s,a=this.columnModel.getVisibleColumns().slice(e.column[0],e.column[1]+1),r=this.dataModel,l=[e.row[0]],d=[e.row[1]],h=r.at(e.row[0]),u=r.at(e.row[1]),c=i.extend({},e);return h&&u?(t=r.at(e.row[0]).getRowSpanData(),n=r.at(e.row[1]).getRowSpanData(),o.each(a,function(i){s={columnName:i.name,startIndex:e.row[0],endIndex:e.row[1],endRowSpanDataMap:n,startRowSpanDataMap:t,startIndexList:l,endIndexList:d,dataModel:r},this._concatRowSpanIndexFromStart(s),this._concatRowSpanIndexFromEnd(s)},this),c.row=[Math.min.apply(null,l),Math.max.apply(null,d)],c):c}});e.exports=d},function(e,t,n){"use strict";var i=n(6),o=n(7),s=n(13),a=n(14).summaryType,r=s.extend({initialize:function(e,t){this.dataModel=t.dataModel,this.autoColumnNames=t.autoColumnNames,this.columnSummaryMap={},this.listenTo(this.dataModel,"add remove reset",this._resetSummaryMap),this.listenTo(this.dataModel,"change",this._onChangeData),this.listenTo(this.dataModel,"delRange",this._onDeleteRangeData),this._resetSummaryMap()},_calculate:function(e){var t,n,i=Number.MAX_VALUE,o=Number.MIN_VALUE,s=0,r=e.length,l={};for(t=0;tn&&(i=n),o").addClass(r.BORDER_LINE).addClass(e)}var o,s=n(11),a=n(8),r=n(22),l=n(14).frame;o=a.extend({initialize:function(e){a.prototype.initialize.call(this),this.viewFactory=e.viewFactory,this.dimensionModel=e.dimensionModel,this._addFrameViews()},className:r.CONTENT_AREA,_addFrameViews:function(){var e=this.viewFactory;this._addChildren([e.createFrame(l.L),e.createFrame(l.R)])},render:function(){var e=this.dimensionModel,t=e.getScrollXHeight(),n=this._renderChildren().concat([i(r.BORDER_TOP),i(r.BORDER_LEFT),i(r.BORDER_RIGHT),i(r.BORDER_BOTTOM).css("bottom",t)]);return e.get("scrollX")||this.$el.addClass(r.NO_SCROLL_X),e.get("scrollY")||this.$el.addClass(r.NO_SCROLL_Y),this.$el.append(n),this}}),e.exports=o},function(e,t,n){"use strict";var i=n(6),o=n(40),s=n(8),a={totalItems:1,itemsPerPage:10,visiblePages:5,centerAlign:!0},r="tui-pagination",l=s.extend({initialize:function(e){this.dimensionModel=e.dimensionModel,this.componentHolder=e.componentHolder,this._stopEventPropagation(),this.on("appended",this._onAppended)},className:r,render:function(){return this._destroyChildren(),this.componentHolder.setInstance("pagination",this._createComponent()),this},_stopEventPropagation:function(){this.$el.mousedown(function(e){e.stopPropagation()})},_onAppended:function(){this.dimensionModel.set("paginationHeight",this.$el.outerHeight())},_createOptionObject:function(){var e=this.componentHolder.getOptions("pagination");return e===!0&&(e={}),i.assign({},a,e)},_createComponent:function(){var e=o;if(!e)throw new Error("Cannot find component 'tui.component.Pagination'");return new e(this.$el,this._createOptionObject())}});e.exports=l},function(e,t){e.exports=s},function(e,t,n){"use strict";var i=n(8),o=n(22),s=n(42),a=i.extend({initialize:function(e){this.dimensionModel=e.dimensionModel,this.domEventBus=e.domEventBus,this.dragEmitter=new s({type:"resizeHeight",cursor:"row-resize",domEventBus:this.domEventBus}),this.on("appended",this._onAppended)},className:o.HEIGHT_RESIZE_HANDLE,events:{mousedown:"_onMouseDown"},_onAppended:function(){this.dimensionModel.set("resizeHandleHeight",this.$el.outerHeight())},_onMouseDown:function(e){e.preventDefault(),this.dragEmitter.start(e,{mouseOffsetY:e.offsetY})},render:function(){return this.$el.html(""),this}});e.exports=a},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(7),a=n(19),r=s.defineClass({init:function(e){o.assign(this,{type:e.type,domEventBus:e.domEventBus,onDragMove:e.onDragMove,onDragEnd:e.onDragEnd,cursor:e.cursor,startData:null})},start:function(e,t){var n=new a(e,t);this.domEventBus.trigger("dragstart:"+this.type,n),n.isStopped()||this._startDrag(e.target,t)},_startDrag:function(e,t){this.startData=t,this._attachDragEvents(),this.cursor&&i("body").css("cursor",this.cursor),e.setCapture&&e.setCapture()},_endDrag:function(){this.startData=null,this._detachDragEvents(),this.cursor&&i("body").css("cursor","default"),document.releaseCapture&&document.releaseCapture()},_onMouseMove:function(e){var t=new a(e,{startData:this.startData,pageX:e.pageX,pageY:e.pageY});o.isFunction(this.onDragMove)&&this.onDragMove(t),t.isStopped()||this.domEventBus.trigger("dragmove:"+this.type,t)},_onMouseUp:function(e){var t=new a(e,{startData:this.startData});o.isFunction(this.onDragEnd)&&this.onDragEnd(t),t.isStopped()||(this.domEventBus.trigger("dragend:"+this.type,t),this._endDrag())},_onSelectStart:function(e){e.preventDefault()},_attachDragEvents:function(){i(document).on("mousemove.grid",o.bind(this._onMouseMove,this)).on("mouseup.grid",o.bind(this._onMouseUp,this)).on("selectstart.grid",o.bind(this._onSelectStart,this))},_detachDragEvents:function(){i(document).off(".grid")}});e.exports=r},function(e,t,n){"use strict";var i=n(6),o=n(8),s=n(14).renderState,a=n(22),r=n(44),l=n(14).dimension.TABLE_BORDER_WIDTH,d=o.extend({initialize:function(e){this.dimensionModel=e.dimensionModel,this.renderModel=e.renderModel,this.listenTo(this.dimensionModel,"change",this._refreshLayout),this.listenTo(this.renderModel,"change:state",this.render)},className:a.LAYER_STATE,template:i.template('

<%= text %>

<% if (isLoading) { %>
<% } %>
'),render:function(){var e=this.renderModel.get("state");return e===s.DONE?this.$el.hide():this._showLayer(e),this},_showLayer:function(e){var t=this.template({text:this._getMessage(e),isLoading:e===s.LOADING});this.$el.html(t).show(),this._refreshLayout()},_getMessage:function(e){switch(e){case s.LOADING:return r.get("onLoading");case s.EMPTY:return this.renderModel.get("emptyMessage")||r.get("noData");default:return null}},_refreshLayout:function(){var e=this.dimensionModel,t=e.get("headerHeight"),n=e.get("bodyHeight"),i=e.getScrollXHeight(),o=e.getScrollYWidth();this.$el.css({top:t-l,height:n-i-l,left:0,right:o})}});e.exports=d},function(e,t,n){"use strict";var i=n(20),o={en:{createAction:"create",updateAction:"update",deleteAction:"delete",modifyAction:"modify",requestConfirm:"Are you sure you want to {{actionName}} {{count}} data?",noDataResponse:"No data to {{actionName}}.",errorResponse:"An error occurred while requesting data.\n\nPlease try again.",noData:"No data.",onLoading:"Your request is being processed.",resizeHandleGuide:"You can change the width of the column by mouse drag, and initialize the width by double-clicking."},ko:{createAction:"입력",updateAction:"수정",deleteAction:"삭제",modifyAction:"반영",requestConfirm:"{{count}}건의 데이터를 {{actionName}}하시겠습니까?",noDataResponse:"{{actionName}}할 데이터가 없습니다.",errorResponse:"데이터 요청 중에 에러가 발생하였습니다.\n\n다시 시도하여 주시기 바랍니다.",noData:"데이터가 존재하지 않습니다.",onLoading:"요청을 처리 중입니다.",resizeHandleGuide:"마우스 드래그를 통해 컬럼의 넓이를 변경할 수 있고, 더블클릭을 통해 넓이를 초기화할 수 있습니다."}},s=o.en;e.exports={setLanguage:function(e){s=o[e]},get:function(e,t){var n=s[e];return t&&(n=i.replaceText(n,t)),n}}},function(e,t,n){"use strict";function i(e){return"key:clipboard"!==e.type}function o(e){return"key:clipboard"===e.type&&"paste"===e.command}var s,a=n(11),r=n(6),l=n(7),d=n(8),h=n(21),u=n(46),c=n(22),g=10,m=l.browser.edge,f=!!window.clipboardData;s=d.extend({initialize:function(e){r.assign(this,{focusModel:e.focusModel,clipboardModel:e.clipboardModel,domEventBus:e.domEventBus,isLocked:!1,lockTimerId:null}),this.listenTo(this.focusModel,"focusClipboard",this._onFocusClipboard),this.listenTo(this.clipboardModel,"change:text",this._onClipboardTextChange)},tagName:"div",className:c.CLIPBOARD,attributes:{contenteditable:!0},events:{keydown:"_onKeyDown",copy:"_onCopy",paste:"_onPaste",blur:"_onBlur"},render:function(){return this},_onBlur:function(){var e=this.focusModel;setTimeout(function(){e.refreshState()},0)},_onKeyDown:function(e){var t;return this.isLocked?void e.preventDefault():(t=u.generate(e),void(t&&(this._lock(),i(t)&&e.preventDefault(),o(t)||this.domEventBus.trigger(t.type,t))))},_onCopy:function(e){var t=this.clipboardModel.get("text");f||(e.originalEvent||e).clipboardData.setData("text/plain",t),e.preventDefault()},_onPaste:function(e){var t=(e.originalEvent||e).clipboardData||window.clipboardData;m||f?this._pasteInMSBrowsers(t):(e.preventDefault(),this._pasteInOtherBrowsers(t))},_onFocusClipboard:function(){try{this._hasFocus()||(this.$el.focus(),this._hasFocus()||this.$el.focus())}catch(e){}},_onClipboardTextChange:function(){var e=this.clipboardModel.get("text");f?window.clipboardData.setData("Text",e):this.$el.html(e).focus()},_pasteInOtherBrowsers:function(e){var t,n=this.clipboardModel,i=e.getData("text/html");i&&a(i).find("tbody").length>0?(this.$el.html(""+a(i).find("tbody").html()+"
"),t=this.$el.find("table")[0],i=h.convertTableToData(t),this.$el.html("")):(i=e.getData("text/plain"),i=h.convertTextToData(i)),n.pasteClipboardDataToGrid(i)},_pasteInMSBrowsers:function(e){var t,n=this,i=this.clipboardModel,o=e.getData("Text");o=h.convertTextToData(o),setTimeout(function(){n.$el.find("table").length>0&&(t=n.$el.find("table")[0],o=h.convertTableToData(t)),n.$el.html(""),i.pasteClipboardDataToGrid(o)},0)},_lock:function(){this.isLocked=!0,this.lockTimerId=setTimeout(r.bind(this._unlock,this),g)},_unlock:function(){this.isLocked=!1,this.lockTimerId=null},_hasFocus:function(){return this.$el.is(":focus")}}),s.KEYDOWN_LOCK_TIME=g,e.exports=s},function(e,t,n){"use strict";function i(e){var t=[];return(e.ctrlKey||e.metaKey)&&t.push("ctrl"),e.shiftKey&&t.push("shift"),t.push(r[e.keyCode]),t.join("-")}var o=n(6),s=n(19),a={tab:9,enter:13,ctrl:17,esc:27,left:37,up:38,right:39,down:40,a:65,c:67,v:86,space:32,pageUp:33,pageDown:34,home:36,end:35,del:46},r=o.invert(a),l={up:["move","up"],down:["move","down"],left:["move","left"],right:["move","right"],pageUp:["move","pageUp"],pageDown:["move","pageDown"],home:["move","firstColumn"],end:["move","lastColumn"],enter:["edit","currentCell"],space:["edit","currentCell"],tab:["edit","nextCell"],del:["delete"],"shift-tab":["edit","prevCell"],"shift-up":["select","up"],"shift-down":["select","down"],"shift-left":["select","left"],"shift-right":["select","right"],"shift-pageUp":["select","pageUp"],"shift-pageDown":["select","pageDown"],"shift-home":["select","firstColumn"],"shift-end":["select","lastColumn"],"ctrl-a":["select","all"],"ctrl-c":["clipboard","copy"],"ctrl-v":["clipboard","paste"],"ctrl-home":["move","firstCell"],"ctrl-end":["move","lastCell"],"ctrl-shift-home":["select","firstCell"],"ctrl-shift-end":["select","lastCell"]};e.exports={generate:function(e){var t,n=i(e),o=l[n];return o&&(t=new s(e,{type:"key:"+o[0],command:o[1]})),t}}},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(48),a=n(22),r=n(14).frame,l=s.extend({initialize:function(){s.prototype.initialize.apply(this,arguments),o.assign(this,{whichSide:r.L}),this.listenTo(this.dimensionModel,"change:lsideWidth",this._onFrameWidthChanged)},className:a.LSIDE_AREA,_onFrameWidthChanged:function(){this.$el.css({width:this.dimensionModel.get("lsideWidth")})},beforeRender:function(){this.$el.css({display:"block",width:this.dimensionModel.get("lsideWidth")})},afterRender:function(){this.dimensionModel.get("scrollX")&&this.$el.append(i("
").addClass(a.SCROLLBAR_LEFT_BOTTOM))}});e.exports=l},function(e,t,n){"use strict";var i=n(6),o=n(8),s=n(14).frame,a=o.extend({initialize:function(e){o.prototype.initialize.call(this),i.assign(this,{viewFactory:e.viewFactory,renderModel:e.renderModel,dimensionModel:e.dimensionModel,whichSide:e.whichSide||s.R}),this.listenTo(this.renderModel,"columnModelChanged",this.render)},render:function(){var e=this.viewFactory;return this.$el.empty(),this._destroyChildren(),this.beforeRender(),this._addChildren([e.createHeader(this.whichSide),e.createBody(this.whichSide),e.createFooter(this.whichSide)]),this.$el.append(this._renderChildren()),this.afterRender(),this},beforeRender:function(){},afterRender:function(){}});e.exports=a},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(48),a=n(22),r=n(14),l=r.frame,d=r.dimension.CELL_BORDER_WIDTH,h=s.extend({initialize:function(){s.prototype.initialize.apply(this,arguments),o.assign(this,{whichSide:l.R,$scrollBorder:null}),this.listenTo(this.dimensionModel,"change:lsideWidth change:rsideWidth",this._onFrameWidthChanged),this.listenTo(this.dimensionModel,"change:bodyHeight change:headerHeight",this._resetScrollBorderHeight)},className:a.RSIDE_AREA,_onFrameWidthChanged:function(){this._refreshLayout()},_refreshLayout:function(){var e=this.dimensionModel,t=e.get("rsideWidth"),n=e.get("lsideWidth");n>0&&!e.isDivisionBorderDoubled()&&(t+=d,n-=d),this.$el.css({width:t,marginLeft:n})},_resetScrollBorderHeight:function(){var e,t;this.$scrollBorder&&(e=this.dimensionModel,t=e.get("bodyHeight")-e.getScrollXHeight(),this.$scrollBorder.height(t))},beforeRender:function(){this.$el.css("display","block"),this._refreshLayout()},afterRender:function(){var e,t,n,o,s=this.dimensionModel;s.get("scrollY")&&(e=s.get("headerHeight"),t=s.get("footerHeight"),n=i("
").addClass(a.SCROLLBAR_HEAD),o=i("
").addClass(a.SCROLLBAR_BORDER),n.height(e-2),o.css("top",e+"px"),this.$el.append(n,o),s.get("scrollX")&&this.$el.append(i("
").addClass(a.SCROLLBAR_RIGHT_BOTTOM)),t&&s.get("scrollY")&&this.$el.append(i("
").addClass(a.FOOT_AREA_RIGHT).css("height",t-d)),this.$scrollBorder=o,this._resetScrollBorderHeight())}});e.exports=h},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(8),a=n(20),r=n(14),l=n(22),d=n(19),h=n(42),u=r.frame,c=10,g=r.keyCode,m=r.attrName.COLUMN_NAME,f=r.dimension.CELL_BORDER_WIDTH,p=r.dimension.TABLE_BORDER_WIDTH,M=200,_=s.extend({initialize:function(e){s.prototype.initialize.call(this),o.assign(this,{renderModel:e.renderModel,coordColumnModel:e.coordColumnModel,selectionModel:e.selectionModel,focusModel:e.focusModel,columnModel:e.columnModel,dataModel:e.dataModel,coordRowModel:e.coordRowModel,viewFactory:e.viewFactory,domEventBus:e.domEventBus,headerHeight:e.headerHeight,whichSide:e.whichSide||u.R}),this.dragEmitter=new h({type:"header",domEventBus:this.domEventBus,onDragMove:o.bind(this._onDragMove,this)}),this.listenTo(this.renderModel,"change:scrollLeft",this._onScrollLeftChange).listenTo(this.coordColumnModel,"columnWidthChanged",this._onColumnWidthChanged).listenTo(this.selectionModel,"change:range",this._refreshSelectedHeaders).listenTo(this.focusModel,"change:columnName",this._refreshSelectedHeaders).listenTo(this.dataModel,"sortChanged",this._updateBtnSortState),this.whichSide===u.L&&"checkbox"===this.columnModel.get("selectType")&&this.listenTo(this.dataModel,"change:_button disabledChanged extraDataChanged add remove reset",o.debounce(o.bind(this._syncCheckedState,this),c))},className:l.HEAD_AREA,events:{click:"_onClick","keydown input":"_onKeydown","mousedown th":"_onMouseDown"},template:o.template('<%=colGroup%><%=tBody%>
'),templateHeader:o.template('="<%=columnName%>" class="<%=className%>" height="<%=height%>" <%if(colspan > 0) {%>colspan=<%=colspan%> <%}%><%if(rowspan > 0) {%>rowspan=<%=rowspan%> <%}%>><%=title%><%=btnSort%>'),templateCol:o.template('="<%=columnName%>" style="width:<%=width%>px">'),markupBtnSort:'',_getColGroupMarkup:function(){var e=this._getColumnData(),t=e.widths,n=e.columns,i=[];return o.each(t,function(e,t){i.push(this.templateCol({attrColumnName:m,columnName:n[t].name,width:e+f}))},this),i.join("")},_getSelectedColumnNames:function(){var e=this.selectionModel.get("range").column,t=this.columnModel.getVisibleColumns(),n=t.slice(e[0],e[1]+1);return o.pluck(n,"name")},_onDragMove:function(e){var t=i(e.target);e.setData({columnName:t.closest("th").attr(m),isOnHeaderArea:i.contains(this.el,t[0])})},_getContainingMergedColumnNames:function(e){var t=this.columnModel,n=o.pluck(t.get("complexHeaderColumns"),"name");return o.filter(n,function(n){var i=t.getUnitColumnNamesIfMerged(n);return o.every(i,function(t){return o.contains(e,t)})})},_refreshSelectedHeaders:function(){var e,t,n=this.$el.find("th");this.selectionModel.hasSelection()?e=this._getSelectedColumnNames():this.focusModel.has(!0)&&(e=[this.focusModel.get("columnName")]),n.removeClass(l.CELL_SELECTED),e&&(t=this._getContainingMergedColumnNames(e),o.each(e.concat(t),function(e){n.filter("["+m+'="'+e+'"]').addClass(l.CELL_SELECTED)}))},_onKeydown:function(e){e.keyCode===g.TAB&&(e.preventDefault(),this.focusModel.focusClipboard())},_onMouseDown:function(e){var t,n=i(e.target);this._triggerPublicMousedown(e)&&(n.hasClass(l.BTN_SORT)||(t=n.closest("th").attr(m),t&&this.dragEmitter.start(e,{columnName:t})))},_triggerPublicMousedown:function(e){var t,n,o,s=new d(e,d.getTargetInfo(i(e.target)));return t=(new Date).getTime(),this.domEventBus.trigger("mousedown",s),n=(new Date).getTime(),o=n-t>M,!s.isStopped()&&!o},_getHeaderMainCheckbox:function(){return this.$el.find("th["+m+'="_button"] input')},_syncCheckedState:function(){var e,t,n=this.dataModel.getCheckedState();e=this._getHeaderMainCheckbox(),e.length&&(t=n.available?{checked:n.available===n.checked,disabled:!1}:{checked:!1,disabled:!0},e.prop(t))},_onColumnWidthChanged:function(){var e=this.coordColumnModel.getWidths(this.whichSide),t=this.$el.find("col"),n=this.coordRowModel;o.each(e,function(e,n){t.eq(n).css("width",e+f)}),this.whichSide===u.R&&o.defer(function(){n.syncWithDom()})},_onScrollLeftChange:function(e,t){this.whichSide===u.R&&(this.el.scrollLeft=t)},_onClick:function(e){var t=i(e.target),n=t.closest("th").attr(m),o=new d(e);"_button"===n&&t.is("input")?(o.setData({checked:t.prop("checked")}),this.domEventBus.trigger("click:headerCheck",o)):t.is("a."+l.BTN_SORT)&&(o.setData({columnName:n}),this.domEventBus.trigger("click:headerSort",o))},_updateBtnSortState:function(e){this._$currentSortBtn&&this._$currentSortBtn.removeClass(l.BTN_SORT_DOWN+" "+l.BTN_SORT_UP),this._$currentSortBtn=this.$el.find("th["+m+'="'+e.columnName+'"] a.'+l.BTN_SORT),this._$currentSortBtn.addClass(e.ascending?l.BTN_SORT_UP:l.BTN_SORT_DOWN)},render:function(){return this._destroyChildren(),this.$el.css({height:this.headerHeight-p}).html(this.template({colGroup:this._getColGroupMarkup(),tBody:this._getTableBodyMarkup()})),this.coordColumnModel.get("resizable")&&(this._addChildren(this.viewFactory.createHeaderResizeHandle(this.whichSide)),this.$el.append(this._renderChildren())),this},_getColumnData:function(){var e=this.coordColumnModel.getWidths(this.whichSide),t=this.columnModel.getVisibleColumns(this.whichSide,!0);return{widths:e,columns:t}},_getTableBodyMarkup:function(){var e,t,n=this._getColumnHierarchyList(),i=this._getHierarchyMaxRowCount(n),s=this.headerHeight,r=new Array(i),d=new Array(i),h=[],u=a.getRowHeight(i,s)-1,c=1;return o.each(n,function(t,a){var g=n[a].length,f=0;o.each(t,function(t,n){var o=t.name,a=[l.CELL,l.CELL_HEAD];t.validation&&t.validation.required&&a.push(l.CELL_REQRUIRED),c=g-1===n&&i-g+1>1?i-g+1:1,e=u*c,n===g-1?e=s-f-2:f+=e+1,d[n]===o?(r[n].pop(),h[n]+=1):h[n]=1,d[n]=o,r[n]=r[n]||[],r[n].push(this.templateHeader({attrColumnName:m,columnName:o,className:a.join(" "),height:e,colspan:h[n],rowspan:c,title:t.title,btnSort:t.sortable?this.markupBtnSort:""}))},this)},this),t=o.map(r,function(e){return""+e.join("")+""}),t.join("")},_getHierarchyMaxRowCount:function(e){var t=[0];return o.each(e,function(e){t.push(e.length)},this),Math.max.apply(Math,t)},_getColumnHierarchyList:function(){var e,t=this._getColumnData().columns;return e=o.map(t,function(e){return this._getColumnHierarchy(e).reverse()},this)},_getColumnHierarchy:function(e,t){var n=this.columnModel.get("complexHeaderColumns");return t=t||[],e&&(t.push(e),n&&o.each(n,function(n){i.inArray(e.name,n.childNames)!==-1&&this._getColumnHierarchy(n,t)},this)),t}});_.DELAY_SYNC_CHECK=c,e.exports=_},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(7),a=n(8),r=n(14),l=n(22),d=n(42),h=n(44),u=r.attrName,c=r.frame,g=r.dimension.CELL_BORDER_WIDTH,m=r.dimension.RESIZE_HANDLE_WIDTH,f=a.extend({initialize:function(e){o.assign(this,{columnModel:e.columnModel,coordColumnModel:e.coordColumnModel,domEventBus:e.domEventBus,headerHeight:e.headerHeight,whichSide:e.whichSide||c.R}),this.dragEmitter=new d({type:"resizeColumn",cursor:"col-resize",domEventBus:this.domEventBus,onDragMove:o.bind(this._onDragMove,this)}),this.listenTo(this.coordColumnModel,"columnWidthChanged",this._refreshHandlerPosition)},className:l.COLUMN_RESIZE_CONTAINER,events:function(){var e={};return e["mousedown ."+l.COLUMN_RESIZE_HANDLE]="_onMouseDown",e["dblclick ."+l.COLUMN_RESIZE_HANDLE]="_onDblClick",e},template:o.template("
'),_getColumnData:function(){var e=this.coordColumnModel.getWidths(this.whichSide),t=this.columnModel.getVisibleColumns(this.whichSide,!0);return{widths:e,columns:t}},_getResizeHandlerMarkup:function(){var e=this._getColumnData(),t=e.columns,n=t.length,i=o.map(t,function(e,t){return this.template({lastClass:t+1===n?l.COLUMN_RESIZE_HANDLE_LAST:"",columnIndex:t,columnName:e.name,height:this.headerHeight,title:h.get("resizeHandleGuide"),displayType:e.resizable===!1?"none":"block"})},this);return i.join("")},render:function(){var e=this.headerHeight,t=this._getResizeHandlerMarkup();return this.$el.empty().html(t).css({marginTop:-e,height:e,display:"block"}),this._refreshHandlerPosition(),this},_refreshHandlerPosition:function(){var e=this._getColumnData(),t=e.widths,n=this.$el.find("."+l.COLUMN_RESIZE_HANDLE),i=Math.floor(m/2),o=0;s.forEachArray(n,function(e,s){var a=n.eq(s);o+=t[s]+g,a.css("left",o-i)})},_onMouseDown:function(e){var t=i(e.target),n=this.coordColumnModel.getWidths(this.whichSide),o=parseInt(t.attr(u.COLUMN_INDEX),10);this.dragEmitter.start(e,{width:n[o],columnIndex:this._getHandlerColumnIndex(o),pageX:e.pageX})},_onDragMove:function(e){var t=e.startData,n=e.pageX-t.pageX;e.setData({columnIndex:t.columnIndex,width:t.width+n})},_onDblClick:function(e){var t=i(e.target),n=parseInt(t.attr(u.COLUMN_INDEX),10);this.domEventBus.trigger("dblclick:resizeColumn",{columnIndex:this._getHandlerColumnIndex(n)})},_getHandlerColumnIndex:function(e){return this.whichSide===c.R?e+this.columnModel.getVisibleFrozenCount(!0):e}});e.exports=f},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(8),a=n(42),r=n(19),l=n(14),d=n(22),h=l.frame,u=200,c=10,g=s.extend({initialize:function(e){s.prototype.initialize.call(this),o.assign(this,{dimensionModel:e.dimensionModel,renderModel:e.renderModel,viewFactory:e.viewFactory,domEventBus:e.domEventBus,$container:null,whichSide:e&&e.whichSide||h.R}),this.listenTo(this.dimensionModel,"change:bodyHeight",this._onBodyHeightChange).listenTo(this.dimensionModel,"change:totalRowHeight",this._resetContainerHeight).listenTo(this.renderModel,"change:scrollTop",this._onScrollTopChange).listenTo(this.renderModel,"change:scrollLeft",this._onScrollLeftChange),this.dragEmitter=new a({type:"body",domEventBus:this.domEventBus,onDragMove:o.bind(this._onDragMove,this)})},className:d.BODY_AREA,events:function(){var e={};return e.scroll="_onScroll",e["mousedown ."+d.BODY_CONTAINER]="_onMouseDown",e},_onBodyHeightChange:function(e,t){this.$el.css("height",t+"px")},_resetContainerHeight:function(){this.$container.css({height:this.dimensionModel.get("totalRowHeight")})},_onScroll:function(e){var t={scrollTop:e.target.scrollTop};this.whichSide===h.R&&(t.scrollLeft=e.target.scrollLeft),this.renderModel.set(t)},_onScrollLeftChange:function(e,t){this.whichSide===h.R&&(this.el.scrollLeft=t)},_onScrollTopChange:function(e,t){this.el.scrollTop=t},_onMouseDown:function(e){var t=i(e.target),n=t.is("input, teaxarea");this._triggerPublicMousedown(e)&&(this._triggerBodyMousedown(e),n&&e.shiftKey&&e.preventDefault(),n&&!e.shiftKey||this.dragEmitter.start(e,{pageX:e.pageX,pageY:e.pageY}))},_triggerPublicMousedown:function(e){var t,n,o=new r(e,r.getTargetInfo(i(e.target))),s=!0;return o.targetType===r.targetTypeConst.DUMMY?s=!1:(t=(new Date).getTime(),this.domEventBus.trigger("mousedown",o),o.isStopped()?s=!1:(n=(new Date).getTime(),s=n-t<=u)),s},_triggerBodyMousedown:function(e){var t=new r(e,{pageX:e.pageX,pageY:e.pageY,shiftKey:e.shiftKey});this.domEventBus.trigger("mousedown:body",t)},_onDragMove:function(e){var t=e.startData,n={pageX:e.pageX,pageY:e.pageY};this._getMouseMoveDistance(t,n)").addClass(d.BODY_CONTAINER),this.$el.append(this.$container),this._addChildren([this.viewFactory.createBodyTable(e),this.viewFactory.createSelectionLayer(e),this.viewFactory.createFocusLayer(e)]),this.$container.append(this._renderChildren()),this._resetContainerHeight(),this}});e.exports=g},function(e,t,n){"use strict";var i=n(6),o=n(8),s=n(14),a=n(22),r=s.dimension.CELL_BORDER_WIDTH,l=s.attrName.COLUMN_NAME,d=o.extend({initialize:function(e){o.prototype.initialize.call(this),i.assign(this,{dimensionModel:e.dimensionModel,coordColumnModel:e.coordColumnModel,renderModel:e.renderModel,columnModel:e.columnModel,viewFactory:e.viewFactory,painterManager:e.painterManager,whichSide:e.whichSide||"R"}),this.listenTo(this.coordColumnModel,"columnWidthChanged",this._onColumnWidthChanged),this.listenTo(this.renderModel,"change:dummyRowCount",this._onChangeDummyRowCount),this.listenTo(this.dimensionModel,"change:bodyHeight",this._resetHeight),this._attachAllTableEventHandlers()},className:a.BODY_TABLE_CONTAINER,template:i.template('<%=colGroup%><%=tbody%>
'),templateCol:i.template('="<%=columnName%>" style="width:<%=width%>px">'),_onColumnWidthChanged:function(){var e=this.coordColumnModel.getWidths(this.whichSide),t=this.$el.find("col");i.each(e,function(e,n){t.eq(n).css("width",e+r)},this)},_onChangeDummyRowCount:function(){this._resetOverflow(),this._resetHeight()},_resetOverflow:function(){var e="visible";this.renderModel.get("dummyRowCount")>0&&(e="hidden"),this.$el.css("overflow",e)},_resetHeight:function(){var e=this.dimensionModel;this.renderModel.get("dummyRowCount")>0?this.$el.height(e.get("bodyHeight")-e.getScrollXHeight()):this.$el.css("height","")},resetTablePosition:function(){this.$el.css("top",this.renderModel.get("top"))},render:function(){return this._destroyChildren(),this.$el.html(this.template({colGroup:this._getColGroupMarkup(),tbody:""})),this._addChildren(this.viewFactory.createRowList({bodyTableView:this,el:this.$el.find("tbody"),whichSide:this.whichSide})),this._renderChildren(),this._resetHeight(),this._resetOverflow(),this},_attachAllTableEventHandlers:function(){var e=this.painterManager.getCellPainters();i.each(e,function(e){e.attachEventHandlers(this.$el,"")},this)},redrawTable:function(e){return this.$el[0].innerHTML=this.template({colGroup:this._getColGroupMarkup(),tbody:e}),this.$el.find("tbody")},_getColGroupMarkup:function(){var e=this.whichSide,t=this.coordColumnModel.getWidths(e),n=this.columnModel.getVisibleColumns(e,!0),o="";return i.each(n,function(e,n){o+=this.templateCol({attrColumnName:l,columnName:e.name,width:t[n]+r})},this),o}});e.exports=d},function(e,t,n){"use strict";var i=n(6),o=n(8),s=n(22),a=n(14),r=a.frame,l=a.attrName.COLUMN_NAME,d=o.extend({initialize:function(e){this.columnTemplateMap=e.columnTemplateMap||{},this.whichSide=e.whichSide,this.columnModel=e.columnModel,this.dimensionModel=e.dimensionModel,this.coordColumnModel=e.coordColumnModel,this.renderModel=e.renderModel,this.summaryModel=e.summaryModel,this.listenTo(this.renderModel,"change:scrollLeft",this._onChangeScrollLeft),this.listenTo(this.coordColumnModel,"columnWidthChanged",this._onChangeColumnWidth),this.listenTo(this.columnModel,"setFooterContent",this._setColumnContent),this.summaryModel&&this.listenTo(this.summaryModel,"change",this._onChangeSummaryValue)},className:s.FOOT_AREA,events:{scroll:"_onScrollView"},template:i.template('<%=tbody%>
'),templateHeader:i.template('="<%=columnName%>" class="<%=className%>" style="width:<%=width%>px"><%=value%>'),_onScrollView:function(e){this.whichSide===r.R&&this.renderModel.set("scrollLeft",e.target.scrollLeft)},_onChangeScrollLeft:function(e,t){this.whichSide===r.R&&(this.el.scrollLeft=t)},_onChangeColumnWidth:function(){var e=this.coordColumnModel.getWidths(this.whichSide),t=this.$el.find("th");i.each(e,function(e,n){t.eq(n).css("width",e)})},_setColumnContent:function(e,t){var n=this.$el.find("th["+l+'="'+e+'"]');n.html(t)},_onChangeSummaryValue:function(e,t){var n=this._generateValueHTML(e,t);this._setColumnContent(e,n)},_generateValueHTML:function(e,t){var n=this.columnTemplateMap[e],o="";return i.isFunction(n)&&(o=n(t)),o},_generateTbodyHTML:function(){var e=this.summaryModel,t=this.columnModel.getVisibleColumns(this.whichSide,!0),n=this.coordColumnModel.getWidths(this.whichSide);return i.reduce(t,function(t,i,o){var a,r=i.name;return e&&(a=e.getValue(i.name)),t+this.templateHeader({attrColumnName:l,columnName:r,className:s.CELL_HEAD+" "+s.CELL,width:n[o],value:this._generateValueHTML(r,a)})},"",this)},render:function(){var e=this.dimensionModel.get("footerHeight");return e&&this.$el.html(this.template({className:s.TABLE,height:e,tbody:this._generateTbodyHTML()})),this}});e.exports=d},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(7),a=n(8),r=n(14),l=n(22),d=r.attrName,h=r.frame,u=r.dimension.CELL_BORDER_WIDTH,c=a.extend({initialize:function(e){var t=e.focusModel,n=e.renderModel,i=e.selectionModel,s=e.coordRowModel,a=e.whichSide||"R";o.assign(this,{whichSide:a,bodyTableView:e.bodyTableView,focusModel:t,renderModel:n,selectionModel:i,coordRowModel:s,dataModel:e.dataModel,columnModel:e.columnModel,collection:n.getCollection(a),painterManager:e.painterManager,sortOptions:null,renderedRowKeys:null}),this.listenTo(this.collection,"change",this._onModelChange).listenTo(this.collection,"restore",this._onModelRestore).listenTo(t,"change:rowKey",this._refreshFocusedRow).listenTo(n,"rowListChanged",this.render), -this.whichSide===h.L&&this.listenTo(t,"change:rowKey",this._refreshSelectedMetaColumns).listenTo(i,"change:range",this._refreshSelectedMetaColumns).listenTo(n,"rowListChanged",this._refreshSelectedMetaColumns)},_getColumns:function(){return this.columnModel.getVisibleColumns(this.whichSide,!0)},_removeOldRows:function(e){var t=o.indexOf(this.renderedRowKeys,e[0]),n=o.indexOf(this.renderedRowKeys,o.last(e)),i=this.$el.children("tr");i.slice(0,t).remove(),i.slice(n+1).remove()},_appendNewRows:function(e,t){var n=this.collection.slice(0,o.indexOf(e,t[0])),i=this.collection.slice(o.indexOf(e,o.last(t))+1);this.$el.prepend(this._getRowsHtml(n)),this.$el.append(this._getRowsHtml(i))},_resetRows:function(){var e,t=this._getRowsHtml(this.collection.models);if(c.isInnerHtmlOfTbodyReadOnly)e=this.bodyTableView.redrawTable(t),this.setElement(e,!1);else try{this.$el[0].innerHTML=t}catch(e){c.isInnerHtmlOfTbodyReadOnly=!0,this._resetRows()}},_getRowsHtml:function(e){var t=this.painterManager.getRowPainter(),n=o.pluck(this._getColumns(),"name");return o.map(e,function(e){return t.generateHtml(e,n)}).join("")},_getRowElement:function(e){return this.$el.find("tr["+d.ROW_KEY+"="+e+"]")},_refreshSelectedMetaColumns:function(){var e,t=this.$el.find("tr"),n="."+l.CELL_HEAD;e=this.selectionModel.hasSelection()?this._filterRowsByIndexRange(t,this.selectionModel.get("range").row):this._filterRowByKey(t,this.focusModel.get("rowKey")),t.find(n).removeClass(l.CELL_SELECTED),e.find(n).addClass(l.CELL_SELECTED)},_filterRowsByIndexRange:function(e,t){var n,o,s=this.renderModel,a=s.get("startIndex");return n=Math.max(t[0]-a,0),o=Math.max(t[1]-a+1,0),n||o?e.slice(n,o):i()},_filterRowByKey:function(e,t){var n=this.dataModel.indexOfRowKey(t),o=this.renderModel.get("startIndex");return o>n?i():e.eq(n-o)},_refreshFocusedRow:function(){var e=this.focusModel.get("rowKey"),t=this.focusModel.get("prevRowKey");this._setFocusedRowClass(t,!1),this._setFocusedRowClass(e,!0)},_setFocusedRowClass:function(e,t){var n=o.pluck(this._getColumns(),"name"),i={};o.each(n,function(n){var o,s=this.dataModel.getMainRowKey(e,n);i[s]||(i[s]=this._getRowElement(s)),o=i[s].find("td["+d.COLUMN_NAME+'="'+n+'"]'),o.toggleClass(l.CELL_CURRENT_ROW,t)},this)},render:function(e){var t,n=this.collection.pluck("rowKey");return this.bodyTableView.resetTablePosition(),e?this._resetRows():(t=o.intersection(n,this.renderedRowKeys),o.isEmpty(n)||o.isEmpty(t)||t.length/n.length<.7?this._resetRows():(this._removeOldRows(t),this._appendNewRows(n,t))),this.renderedRowKeys=n,this},_onModelChange:function(e){var t=e.get("rowKey"),n=this._getRowElement(t);"height"in e.changed?n.css("height",e.get("height")+u):(this.painterManager.getRowPainter().refresh(e.changed,n),this.coordRowModel.syncWithDom())},_onModelRestore:function(e){var t=this.dataModel.getElement(e.rowKey,e.columnName),n=this.columnModel.getEditType(e.columnName);this.painterManager.getCellPainter(n).refresh(e,t),this.coordRowModel.syncWithDom()}},{isInnerHtmlOfTbodyReadOnly:s.browser.msie&&s.browser.version<=9});e.exports=c},function(e,t,n){"use strict";var i=n(6),o=n(8),s=n(22),a=n(14).dimension.CELL_BORDER_WIDTH,r=n(14).frame,l=o.extend({initialize:function(e){i.assign(this,{whichSide:e.whichSide||r.R,dimensionModel:e.dimensionModel,coordRowModel:e.coordRowModel,coordColumnModel:e.coordColumnModel,columnModel:e.columnModel,selectionModel:e.selectionModel}),this._updateColumnWidths(),this.listenTo(this.coordColumnModel,"columnWidthChanged",this._onChangeColumnWidth),this.listenTo(this.selectionModel,"change:range",this.render)},className:s.LAYER_SELECTION,_updateColumnWidths:function(){this.columnWidths=this.coordColumnModel.getWidths(this.whichSide)},_onChangeColumnWidth:function(){this._updateColumnWidths(),this.render()},_getOwnSideColumnRange:function(e){var t=this.columnModel.getVisibleFrozenCount(),n=null;return this.whichSide===r.L?e[0]=t&&(n=[Math.max(e[0],t)-t,e[1]-t]),n},_getVerticalStyles:function(e){var t=this.coordRowModel,n=t.getOffsetAt(e[0]),i=t.getOffsetAt(e[1])+t.getHeightAt(e[1]);return{top:n+"px",height:i-n+"px"}},_getHorizontalStyles:function(e){var t=this.columnWidths,n=this.columnModel.getVisibleMetaColumnCount(),i=e[0],o=e[1],s=0,l=0,d=0;for(this.whichSide===r.L&&(i+=n,o+=n),o=Math.min(o,t.length-1);d<=o;d+=1)de&&this.$el.css("left",e-t)},_adjustCellOffsetValue:function(e){var t=o.browser,n=e;return t.msie&&(9===t.version?n=e-1:t.version>9&&(n=Math.floor(e))),n},_calculateLayoutStyle:function(e,t,n){var i=this.domState.getOffset(),o=this.domState.getElement(e,t),s=o.offset(),r=o.outerHeight()+a,l=o.outerWidth()+a;return{top:this._adjustCellOffsetValue(s.top)-i.top,left:this._adjustCellOffsetValue(s.left)-i.left,height:r,minWidth:n?l:"",width:n?"":l,lineHeight:r+"px"}},_onEditingStateChanged:function(e){e.editing?this._startEditing(e):this._finishEditing()},render:function(){return i.each(this.inputPainters,function(e){e.attachEventHandlers(this.$el,"")},this),this}});e.exports=d},function(e,t,n){"use strict";var i,o=n(6),s=n(36),a=n(8),r=n(22),l="yyyy-MM-dd",d=[[new Date(1900,0,1),new Date(2999,11,31)]];i=a.extend({initialize:function(e){this.focusModel=e.focusModel,this.textPainter=e.textPainter,this.columnModel=e.columnModel,this.domState=e.domState,this.datePickerMap=this._createDatePickers(),this.$focusedInput=null,this.listenTo(this.textPainter,"focusIn",this._onFocusInTextInput),this.listenTo(e.domEventBus,"windowResize",this._closeDatePickerLayer)},className:r.LAYER_DATE_PICKER,events:{click:"_onClick"},_onClick:function(e){e.stopPropagation()},_createDatePickers:function(){var e={},t=this.columnModel.get("columnModelMap");return o.each(t,function(t){var n,i=t.name,o=t.component;o&&"datePicker"===o.name&&(n=o.options||{},e[i]=new s(this.$el,n),this._bindEventOnDatePicker(e[i]))},this),e},_bindEventOnDatePicker:function(e){var t=this;e.on("open",function(){t.textPainter.blockFocusingOut()}),e.on("close",function(){var e=t.focusModel,n=e.which(),i=n.rowKey,o=n.columnName,s=t.$focusedInput.val();t.textPainter.unblockFocusingOut(),e.isEditingCell(i,o)&&e.dataModel.setValue(i,o,s),e.finishEditing()})},_resetDatePicker:function(e,t,n){var i=this.datePickerMap[n],o=e.format||l,s=e.date||new Date,a=e.selectableRanges;i.setInput(t,{format:o,syncFromInput:!0}),a?i.setRanges(a):i.setRanges(d),""===t.val()&&(i.setDate(s),t.val(""))},_calculatePosition:function(e){var t=e.offset(),n=e.outerHeight(),i=this.domState.getOffset();return{top:t.top-i.top+n,left:t.left-i.left}},_onFocusInTextInput:function(e,t){var n,i=t.columnName,o=this.columnModel.getColumnModel(i).component,s=this.columnModel.getEditType(i);"text"===s&&o&&"datePicker"===o.name&&(n=o.options||{},this.$focusedInput=e,this.$el.css(this._calculatePosition(e)).show(),this._resetDatePicker(n,e,i),this.datePickerMap[i].open())},_closeDatePickerLayer:function(){var e=this.focusModel.which().columnName,t=this.datePickerMap[e];t&&t.isOpened()&&t.close()},render:function(){return this.$el.hide(),this}}),e.exports=i},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(8),a=n(14),r=n(22),l=a.frame,d=a.dimension.CELL_BORDER_WIDTH,h='
',u=r.LAYER_FOCUS_DEACTIVE,c=s.extend({initialize:function(e){this.focusModel=e.focusModel,this.columnModel=e.columnModel,this.coordRowModel=e.coordRowModel,this.coordColumnModel=e.coordColumnModel,this.coordConverterModel=e.coordConverterModel,this.whichSide=e.whichSide,this.borderEl={$top:i(h),$left:i(h),$right:i(h),$bottom:i(h)},this.listenTo(this.coordColumnModel,"columnWidthChanged",this._refreshCurrentLayout),this.listenTo(this.coordRowModel,"reset",this._refreshCurrentLayout),this.listenTo(this.focusModel,"blur",this._onBlur),this.listenTo(this.focusModel,"focus",this._onFocus)},className:r.LAYER_FOCUS,_refreshCurrentLayout:function(){var e=this.focusModel;"none"!==this.$el.css("display")&&this._refreshBorderLayout(e.get("rowKey"),e.get("columnName"))},_onBlur:function(){this.focusModel.has(!0)?this.$el.addClass(u):this.$el.hide()},_onFocus:function(e,t){var n=this.columnModel.isLside(t)?l.L:l.R;this.focusModel.has(!0)&&this.$el.removeClass(u),n===this.whichSide&&(this._refreshBorderLayout(e,t),this.$el.show())},_refreshBorderLayout:function(e,t){var n=this.coordConverterModel.getCellPosition(e,t),i=n.right-n.left,o=n.bottom-n.top;this.borderEl.$left.css({top:n.top,left:n.left,width:d,height:o+d}),this.borderEl.$top.css({top:0===n.top?d:n.top,left:n.left,width:i+d,height:d}),this.borderEl.$right.css({top:n.top,left:n.left+i,width:d,height:o+d}),this.borderEl.$bottom.css({top:n.top+o,left:n.left,width:i+d,height:d})},render:function(){var e=this.$el;return o.each(this.borderEl,function(t){e.append(t)}),e.hide(),this}});e.exports=c},function(e,t,n){"use strict";var i=n(6),o=n(9);e.exports={create:function(){return i.extend({},o.Events)}}},function(e,t,n){"use strict";var i=n(6),o=n(7),s=n(14).attrName,a=n(22),r=o.defineClass({init:function(e){this.$el=e},_getBodyTableRows:function(e){return this.$el.find("."+e).find("."+a.BODY_TABLE_CONTAINER).find("tr["+s.ROW_KEY+"]")},_getMaxCellHeight:function(e){var t=e.find("."+a.CELL_CONTENT).map(function(){return this.scrollHeight}).get();return i.max(t)},getElement:function(e,t){return this.$el.find("tr["+s.ROW_KEY+"="+e+"]").find("td["+s.COLUMN_NAME+'="'+t+'"]')},getRowHeights:function(){var e,t,n,i,o=this._getBodyTableRows(a.LSIDE_AREA),s=this._getBodyTableRows(a.RSIDE_AREA),r=[];for(n=0,i=o.length;n" class="<%=className%>" style="height: <%=height%>px;"><%=contents%>'),_getEditType:function(e,t){var n=o.pick(t.columnModel,"editOptions","type");return n||"normal"},_generateHtmlForDummyRow:function(e,t){var n=this.painterManager.getCellPainter("dummy"),o="";return i.each(t,function(t){o+=n.generateHtml(e,t)}),o},_generateHtmlForActualRow:function(e,t){var n="";return i.each(t,function(t){var i,o,s=e.get(t);s&&s.isMainRow&&(i=this._getEditType(t,s),o=this.painterManager.getCellPainter(i),n+=o.generateHtml(s))},this),n},generateHtml:function(e,t){var n,o=e.get("rowKey"),s=e.get("rowNum"),a=s%2?r.ROW_ODD:r.ROW_EVEN,h="";return i.isUndefined(o)?n=this._generateHtmlForDummyRow(s,t):(h=l.ROW_KEY+'="'+o+'"',n=this._generateHtmlForActualRow(e,t)),this.template({rowKeyAttr:h,height:e.get("height")+d,contents:n,className:a})},refresh:function(e,t){i.each(e,function(e,n){var i,o,s;"_extraData"!==n&&(s=t.find("td["+l.COLUMN_NAME+'="'+n+'"]'),i=this._getEditType(n,e),o=this.painterManager.getCellPainter(i),o.refresh(e,s))},this)}});e.exports=h},function(e,t,n){"use strict";var i=n(6),o=n(7),s=n(14).attrName,a=o.defineClass({init:function(e){this.controller=e.controller},events:{},selector:"",_getCellAddress:function(e){var t=e.closest("["+s.ROW_KEY+"]");return{rowKey:t.attr(s.ROW_KEY),columnName:t.attr(s.COLUMN_NAME)}},attachEventHandlers:function(e,t){i.each(this.events,function(n,o){var s=i.bind(this[n],this),a=t+" "+this.selector;e.on(o,a,s)},this)},generateHtml:function(){throw new Error("implement generateHtml() method")}});e.exports=a},function(e,t,n){"use strict";var i=n(6),o=n(7),s=n(65),a=n(20),r=n(14).attrName,l=n(22),d=o.defineClass(s,{init:function(e){s.apply(this,arguments),this.editType=e.editType,this.fixedRowHeight=e.fixedRowHeight,this.inputPainter=e.inputPainter,this.selector="td["+r.EDIT_TYPE+'="'+this.editType+'"]'},template:i.template(' style="<%=style%>"><%=contentHtml%>'),contentTemplate:i.template('
<%=content%>
'),_isEditableType:function(){return!i.contains(["normal","mainButton"],this.editType)},_getContentStyle:function(e){var t=e.columnModel.whiteSpace||"nowrap",n=[];return t&&n.push("white-space:"+t),this.fixedRowHeight&&n.push("max-height:"+e.height+"px"),n.join(";")},_getContentHtml:function(e){var t,n,o=e.columnModel.template,s=e.formattedValue,a=e.prefix,r=e.postfix;return this.inputPainter&&(s=this.inputPainter.generateHtml(e),this._shouldContentBeWrapped()&&!this._isUsingViewMode(e)&&(a=this._getSpanWrapContent(a,l.CELL_CONTENT_BEFORE),r=this._getSpanWrapContent(r,l.CELL_CONTENT_AFTER),s=this._getSpanWrapContent(s,l.CELL_CONTENT_INPUT),t=a+r+s)),t||(t=a+s+r),n="_number"===e.columnName&&i.isFunction(o)?o({content:t}):this.contentTemplate({content:t,className:l.CELL_CONTENT,style:this._getContentStyle(e)})},_isUsingViewMode:function(e){return o.pick(e,"columnModel","editOptions","useViewMode")!==!1},_shouldContentBeWrapped:function(){return i.contains(["text","password","select"],this.editType)},_getSpanWrapContent:function(e,t){return o.isFalsy(e)&&(e=""),''+e+""},_getAttributes:function(e){var t=[e.className,l.CELL],n={align:e.columnModel.align||"left"};return n.class=t.join(" "),n[r.EDIT_TYPE]=this.editType,n[r.ROW_KEY]=e.rowKey,n[r.COLUMN_NAME]=e.columnName,e.rowSpan&&(n.rowspan=e.rowSpan),n},attachEventHandlers:function(e,t){s.prototype.attachEventHandlers.call(this,e,t),this.inputPainter&&this.inputPainter.attachEventHandlers(e,t+" "+this.selector)},generateHtml:function(e){var t=a.getAttributesString(this._getAttributes(e)),n=this._getContentHtml(e),i=e.columnModel.valign,o=[];return i&&o.push("vertical-align:"+i),this.template({attributeString:t,style:o.join(";"),contentHtml:n})},refresh:function(e,t){var n=["value","editing","disabled","listItems"],o=i.contains(e.changed,"editing")&&e.editing,s=i.intersection(n,e.changed).length>0,a=this._getAttributes(e),r="mainButton"===this.editType;t.attr(a),o&&!this._isUsingViewMode(e)?this.inputPainter.focus(t):r?t.find(this.inputPainter.selector).prop({checked:e.value,disabled:e.disabled}):s&&(t.html(this._getContentHtml(e)),t.scrollLeft(0))}});e.exports=d},function(e,t,n){"use strict";var i=n(6),o=n(7),s=n(65),a=n(20),r=n(14).attrName,l=n(22),d=o.defineClass(s,{init:function(){s.apply(this,arguments)},selector:"td["+r.EDIT_TYPE+'="dummy"]',template:i.template("'),generateHtml:function(e,t){var n=[l.CELL,l.CELL_DUMMY];return a.isMetaColumn(t)&&n.push(l.CELL_HEAD),this.template({columnName:t,className:n.join(" ")})}});e.exports=d},function(e,t,n){"use strict";var i=n(6),o=n(7),s=n(69),a=n(20),r=n(22),l="."+r.CELL_CONTENT_TEXT,d="input[type=password]",h=o.defineClass(s,{init:function(e){s.apply(this,arguments),this.inputType=e.inputType,this.selector="text"===e.inputType?l:d,this._extendEvents({selectstart:"_onSelectStart"})},templateInput:i.template('/>'),templateTextArea:i.template(''),_onSelectStart:function(e){e.stopPropagation()},_convertStringToAsterisks:function(e){return Array(e.length+1).join("*")},_getDisplayValue:function(e){var t=e.formattedValue;return"password"===this.inputType&&(t=this._convertStringToAsterisks(e.value)),t},_generateInputHtml:function(e){var t=o.pick(e,"columnModel","editOptions","maxLength"),n={type:this.inputType,className:r.CELL_CONTENT_TEXT,value:e.value,name:a.getUniqueKey(),disabled:e.disabled?"disabled":"",maxLength:t};return"nowrap"!==e.whiteSpace?this.templateTextArea(n):this.templateInput(n)},focus:function(e){var t=e.find(this.selector);1!==t.length||t.is(":focus")||t.select()}});e.exports=h},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(9),a=n(7),r=n(65),l=n(14).keyName,d=a.defineClass(r,{init:function(){r.apply(this,arguments),this._finishedEditing=!1},events:{keydown:"_onKeyDown",focusin:"_onFocusIn",focusout:"_onFocusOut",change:"_onChange"},keyDownActions:{ESC:function(e){this.controller.finishEditing(e.address,!0)},ENTER:function(e){this.controller.finishEditing(e.address,!0,e.value)},TAB:function(e){this.controller.finishEditing(e.address,!0,e.value),this.controller.focusInToNextCell(e.shiftKey)}},_extendKeydownActions:function(e){this.keyDownActions=o.assign({},this.keyDownActions,e)},_extendEvents:function(e){this.events=o.assign({},this.events,e)},_executeCustomEventHandler:function(e,t){this.controller.executeCustomInputEventHandler(e,t)},_onChange:function(){},_onFocusIn:function(e){var t=i(e.target),n=this._getCellAddress(t),s=this;o.defer(function(){s._executeCustomEventHandler(e,n),s.trigger("focusIn",t,n),s.controller.startEditing(n)})},_onFocusOut:function(e){var t=i(e.target),n=this._getCellAddress(t);this._finishedEditing||(this._executeCustomEventHandler(e,n),this.trigger("focusOut",t,n),this.controller.finishEditing(n,!1,t.val()))},_onKeyDown:function(e){var t=e.keyCode||e.which,n=l[t],o=this.keyDownActions[n],s=i(e.target),a={$target:s,address:this._getCellAddress(s),shiftKey:e.shiftKey,value:s.val()};this._executeCustomEventHandler(e,a.address),o&&!e.shiftKey&&(o.call(this,a),e.preventDefault())},_getDisplayValue:function(){throw new Error("implement _getDisplayValue() method")},_generateInputHtml:function(){throw new Error("implement _generateInputHtml() method")},_isUsingViewMode:function(e){return a.pick(e,"columnModel","editOptions","useViewMode")!==!1},generateHtml:function(e){var t;return t=o.isNull(e.convertedHTML)?!this._isUsingViewMode(e)||e.editing?this._generateInputHtml(e):this._getDisplayValue(e):e.convertedHTML},focus:function(e){var t=e.find(this.selector);t.is(":focus")||t.eq(0).focus()},blockFocusingOut:function(){this._finishedEditing=!0},unblockFocusingOut:function(){this._finishedEditing=!1}});o.assign(d.prototype,s.Events),e.exports=d},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(7),a=n(69),r=n(20),l=s.defineClass(a,{init:function(){a.apply(this,arguments),this.selector="select"},template:o.template(''),optionTemplate:o.template(''),_onChange:function(e){var t=i(e.target),n=this._getCellAddress(t);this.controller.setValueIfNotUsingViewMode(n,t.val())},_getDisplayValue:function(e){var t=o.find(e.listItems,function(t){return String(t.value)===String(e.value)});return t?t.text:""},_generateInputHtml:function(e){var t=o.reduce(e.listItems,function(t,n){return t+this.optionTemplate({value:n.value,text:n.text,selected:String(e.value)===String(n.value)?"selected":""})},"",this);return this.template({name:r.getUniqueKey(),disabled:e.disabled?"disabled":"",options:t})}});e.exports=l},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(7),a=n(69),r=n(20),l=s.defineClass(a,{init:function(e){a.apply(this,arguments),this.inputType=e.inputType,this.selector="fieldset[data-type="+this.inputType+"]",this._extendEvents({mousedown:"_onMouseDown"}),this._extendKeydownActions({TAB:function(e){var t;this._focusNextInput(e.$target,e.shiftKey)||(t=this._getCheckedValueString(e.$target),this.controller.finishEditing(e.address,!0,t),this.controller.focusInToNextCell(e.shiftKey))},ENTER:function(e){var t=this._getCheckedValueString(e.$target);this.controller.finishEditing(e.address,!0,t)},LEFT_ARROW:function(e){this._focusNextInput(e.$target,!0)},RIGHT_ARROW:function(e){this._focusNextInput(e.$target)},UP_ARROW:function(){},DOWN_ARROW:function(){}})},template:o.template('
<%=content%>
'),inputTemplate:o.template(' <%=disabled%> />'),labelTemplate:o.template(''),_onChange:function(e){var t=i(e.target),n=this._getCellAddress(t),o=this._getCheckedValueString(t);this.controller.setValueIfNotUsingViewMode(n,o)},_onFocusOut:function(e){var t=i(e.target),n=this;o.defer(function(){var e,i;t.siblings("input:focus").length||(e=n._getCellAddress(t),i=n._getCheckedValueString(t),n.controller.finishEditing(e,!1,i))})},_onMouseDown:function(e){var t=i(e.target),n=t.closest("fieldset").find("input:focus").length>0;!t.is("input")&&n&&(e.stopPropagation(),e.preventDefault())},_focusNextInput:function(e,t){var n=t?"prevAll":"nextAll",i=e[n]("input");return!!i.length&&(i.first().focus(),!0)},_getCheckedValueString:function(e){var t,n=e.parent().find("input:checked"),o=[];return n.each(function(){var e=i(this),t=e.attr("data-value-type"),n=r.convertValueType(e.val(),t);o.push(n)}),t=1===o.length?o[0]:o.join(",")},_getCheckedValueSet:function(e){var t={};return o.each(String(e).split(","),function(e){t[e]=!0}),t},_getDisplayValue:function(e){var t=this._getCheckedValueSet(e.value),n=[];return o.each(e.listItems,function(e){t[e.value]&&n.push(e.text)}),n.join(",")},_generateInputHtml:function(e){var t=this._getCheckedValueSet(e.value),n=r.getUniqueKey(),i="";return o.each(e.listItems,function(o){var s=n+"_"+o.value;i+=this.inputTemplate({type:this.inputType,id:s,name:n,value:o.value,valueType:typeof o.value,checked:t[o.value]?"checked":"",disabled:e.isDisabled?"disabled":""}),o.text&&(i+=this.labelTemplate({id:s,labelText:o.text}))},this),this.template({type:this.inputType,content:i})},focus:function(e){var t=e.find("input");t.is(":focus")||t.eq(0).focus()}});e.exports=l},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(7),a=n(65),r=n(22),l=n(14).keyCode,d=r.CELL_MAIN_BUTTON,h=s.defineClass(a,{init:function(e){a.apply(this,arguments),this.selector="input."+d,this.inputType=e.inputType,this.gridId=e.gridId},events:{change:"_onChange",keydown:"_onKeydown"},template:o.template(' <%=disabled%> />'),_onChange:function(e){var t=i(e.target),n=this._getCellAddress(t);this.controller.setValue(n,t.is(":checked"))},_onKeydown:function(e){var t;e.keyCode===l.TAB&&(e.preventDefault(),t=this._getCellAddress(i(e.target)),this.controller.focusInToRow(t.rowKey))},generateHtml:function(e){var t=e.columnModel.template,n=null,i={type:this.inputType,name:this.gridId,className:d};return n=o.isFunction(t)?t(o.extend(i,{checked:e.value,disabled:e.disabled})):this.template(o.extend(i,{checked:e.value?"checked":"",disabled:e.disabled?"disabled":""}))}});e.exports=h},function(e,t,n){"use strict";function i(e){return a.isString(e)&&(e=e.replace(/,/g,"")),a.isNumber(e)||isNaN(e)||l.isBlank(e)?e:Number(e)}function o(e){switch(e){case"focusin":return"onFocus";case"focusout":return"onBlur";case"keydown":return"onKeyDown";default:return""}}var s=n(11),a=n(6),r=n(7),l=n(20),d=r.defineClass({init:function(e){this.focusModel=e.focusModel,this.dataModel=e.dataModel,this.columnModel=e.columnModel,this.selectionModel=e.selectionModel},startEditing:function(e,t){var n;return t&&this.focusModel.finishEditing(),n=this.focusModel.startEditing(e.rowKey,e.columnName),n&&this.selectionModel.end(),n},_checkMaxLength:function(e,t){var n=this.columnModel.getColumnModel(e),i=r.pick(n,"editOptions","maxLength");return i>0&&t.length>i?t.substring(0,i):t},finishEditing:function(e,t,n){var i,o,s=this.focusModel;return!!s.isEditingCell(e.rowKey,e.columnName)&&(this.selectionModel.enable(),a.isUndefined(n)||(i=this.dataModel.get(e.rowKey),o=i.get(e.columnName),l.isBlank(n)&&l.isBlank(o)||this.setValue(e,this._checkMaxLength(e.columnName,n))),s.finishEditing(),t?s.focusClipboard():a.defer(function(){s.refreshState()}),!0)},focusInToNextCell:function(e){var t=this.focusModel,n=e?t.prevAddress():t.nextAddress();t.focusIn(n.rowKey,n.columnName,!0)},focusInToRow:function(e){var t=this.focusModel;t.focusIn(e,t.firstColumnName(),!0)},executeCustomInputEventHandler:function(e,t){var n,i,s,r=this.columnModel.getColumnModel(t.columnName);r&&(n=e.type,i=r.editOptions||{},s=i[o(n)],a.isFunction(s)&&s.call(e.target,e,t))},setValue:function(e,t){var n=this.columnModel.getColumnModel(e.columnName);a.isString(t)&&(t=s.trim(t)),"number"===n.dataType&&(t=i(t)),"_button"===n.name?t?this.dataModel.check(e.rowKey):this.dataModel.uncheck(e.rowKey):this.dataModel.setValue(e.rowKey,e.columnName,t)},setValueIfNotUsingViewMode:function(e,t){var n=this.columnModel.getColumnModel(e.columnName);r.pick(n,"editOptions","useViewMode")||this.setValue(e,t)}});e.exports=d},function(e,t,n){"use strict";var i=n(11),o=n(9),s=n(6),a=n(8),r=n(75),l=n(20),d=n(76),h=n(44),u=n(19),c=n(14).renderState,g=200,m=a.extend({initialize:function(e){var t={initialRequest:!0,perPage:500,enableAjaxHistory:!0},n={readData:"",createData:"",updateData:"",deleteData:"",modifyData:"",downloadExcel:"",downloadExcelAll:""};e=s.assign(t,e),e.api=s.assign(n,e.api),s.assign(this,{dataModel:e.dataModel,renderModel:e.renderModel,router:null,domEventBus:e.domEventBus,pagination:e.pagination,api:e.api,enableAjaxHistory:e.enableAjaxHistory,readDataMethod:e.readDataMethod||"POST",perPage:e.perPage,curPage:1,timeoutIdForDelay:null,requestedFormData:null,isLocked:!1,lastRequestedReadData:null}),this._initializeDataModelNetwork(),this._initializeRouter(),this._initializePagination(),this.listenTo(this.dataModel,"sortChanged",this._onSortChanged),this.listenTo(this.domEventBus,"click:excel",this._onClickExcel),e.initialRequest&&(this.lastRequestedReadData||this._readDataAt(1,!1))},tagName:"form",events:{submit:"_onSubmit"},_initializePagination:function(){var e=this.pagination;e&&(e.setItemsPerPage(this.perPage),e.setTotalItems(1),e.on("beforeMove",i.proxy(this._onPageBeforeMove,this)))},_onRouterRead:function(e){var t=l.toQueryObject(e);this._requestReadData(t)},_onClickExcel:function(e){var t="all"===e.type?"excelAll":"excel";this.download(t)},_initializeDataModelNetwork:function(){this.dataModel.url=this.api.readData,this.dataModel.sync=i.proxy(this._sync,this)},_initializeRouter:function(){this.enableAjaxHistory&&(this.router=new r({net:this}),this.listenTo(this.router,"route:read",this._onRouterRead),o.History.started||o.history.start())},_onPageBeforeMove:function(e){var t=e.page;this.curPage!==t&&this._readDataAt(t,!0)},_onSubmit:function(e){e.preventDefault(),this._readDataAt(1,!1)},_setFormData:function(e){var t=s.clone(e);s.each(this.lastRequestedReadData,function(e,n){(s.isUndefined(t[n])||s.isNull(t[n]))&&e&&(t[n]="")}),d.setFormData(this.$el,t)},_sync:function(e,t,n){var a;"read"===e?(n=n||{},a=i.extend({},n),n.url||(a.url=s.result(t,"url")),this._ajax(a)):o.sync(o,e,t,n)},_lock:function(){var e=this.renderModel;this.timeoutIdForDelay=setTimeout(function(){e.set("state",c.LOADING)},g),this.isLocked=!0},_unlock:function(){null!==this.timeoutIdForDelay&&(clearTimeout(this.timeoutIdForDelay),this.timeoutIdForDelay=null),this.isLocked=!1},_getFormData:function(){return d.getFormData(this.$el)},_onReadSuccess:function(e,t){var n,i,o=this.pagination;e.setOriginalRowList(),o&&t.pagination&&(n=t.pagination.page,i=t.pagination.totalCount,o.setItemsPerPage(this.perPage),o.setTotalItems(i),o.movePageTo(n),this.curPage=n)},_onReadError:function(e,t,n){},reloadData:function(){this._requestReadData(this.lastRequestedReadData)},readData:function(e,t,n){n?(t||(t={}),t.perPage=this.perPage,this._changeSortOptions(t,this.dataModel.sortOptions)):t=s.assign({},this.lastRequestedReadData,t),t.page=e,this._requestReadData(t)},_requestReadData:function(e){var t=1;this._setFormData(e),this.isLocked||(this.renderModel.initializeVariables(),this._lock(),this.requestedFormData=s.clone(e),this.curPage=e.page||this.curPage,t=(this.curPage-1)*this.perPage+1,this.renderModel.set({startNumber:t}),this.lastRequestedReadData=s.clone(e),this.dataModel.fetch({requestType:"readData",data:e,type:this.readDataMethod,success:i.proxy(this._onReadSuccess,this),error:i.proxy(this._onReadError,this),reset:!0}),this.dataModel.setSortOptionValues(e.sortColumn,e.sortAscending)),this.router&&this.router.navigate("read/"+l.toQueryString(e),{trigger:!1})},_onSortChanged:function(e){e.requireFetch&&this._readDataAt(1,!0,e)},_changeSortOptions:function(e,t){t&&("rowKey"===t.columnName?(delete e.sortColumn,delete e.sortAscending):(e.sortColumn=t.columnName,e.sortAscending=t.ascending)); -},_readDataAt:function(e,t,n){var i;t=!!s.isUndefined(t)||t,i=t?this.requestedFormData:this._getFormData(),i.page=e,i.perPage=this.perPage,this._changeSortOptions(i,n),this._requestReadData(i)},request:function(e,t){var n=s.extend({url:this.api[e],type:null,hasDataParam:!0,checkedOnly:!0,modifiedOnly:!0,showConfirm:!0,updateOriginal:!1},t),i=this._getRequestParam(e,n);return i&&(n.updateOriginal&&this.dataModel.setOriginalRowList(),this._ajax(i)),!!i},download:function(e){var t,n="download"+l.toUpperCaseFirstLetter(e),o=this.requestedFormData,a=this.api[n];"excel"===e?(o.page=this.curPage,o.perPage=this.perPage):o=s.omit(o,"page","perPage"),t=i.param(o),window.location=a+"?"+t},setPerPage:function(e){this.perPage=e,this._readDataAt(1)},_getDataParam:function(e,t){var n,i=this.dataModel,o={createData:["createdRows"],updateData:["updatedRows"],deleteData:["deletedRows"],modifyData:["createdRows","updatedRows","deletedRows"]},a=o[e],r={},l=0;return t=s.defaults(t||{},{hasDataParam:!0,modifiedOnly:!0,checkedOnly:!0}),t.hasDataParam&&(t.modifiedOnly?(n=i.getModifiedRows({checkedOnly:t.checkedOnly}),s.each(n,function(e,t){s.contains(a,t)&&e.length&&(l+=e.length,r[t]=JSON.stringify(e))},this)):(r.rows=i.getRows(t.checkedOnly),l=r.rows.length)),{data:r,count:l}},_getRequestParam:function(e,t){var n={url:this.api[e],type:null,hasDataParam:!0,modifiedOnly:!0,checkedOnly:!0},o=i.extend(n,t),s=this._getDataParam(e,o),a=null;return o.showConfirm&&!this._isConfirmed(e,s.count)||(a={requestType:e,url:o.url,data:s.data,type:o.type}),a},_isConfirmed:function(e,t){var n=!1;return t>0?n=confirm(this._getConfirmMessage(e,t)):alert(this._getConfirmMessage(e,t)),n},_getConfirmMessage:function(e,t){var n=e.replace("Data","Action"),i=h.get(n),o={count:t,actionName:i},s=t>0?"requestConfirm":"noDataResponse";return h.get(s,o)},_ajax:function(e){var t,n=new u(null,e.data);this.trigger("beforeRequest",n),n.isStopped()||(e=i.extend({requestType:""},e),t={url:e.url,data:e.data||{},type:e.type||"POST",dataType:e.dataType||"json",complete:i.proxy(this._onComplete,this,e.complete,e),success:i.proxy(this._onSuccess,this,e.success,e),error:i.proxy(this._onError,this,e.error,e)},e.url&&i.ajax(t))},_onComplete:function(e,t,n){this._unlock()},_onSuccess:function(e,t,n,i,o){var a=n&&n.message,r=new u(null,{httpStatus:i,requestType:t.requestType,requestParameter:t.data,responseData:n});if(this.trigger("response",r),!r.isStopped())if(n&&n.result){if(this.trigger("successResponse",r),r.isStopped())return;s.isFunction(e)&&e(n.data||{},i,o)}else{if(this.trigger("failResponse",r),r.isStopped())return;a&&alert(a)}},_onError:function(e,t,n,i){var o=new u(null,{httpStatus:i,requestType:t.requestType,requestParameter:t.data,responseData:null});this.renderModel.set("state",c.DONE),this.trigger("response",o),o.isStopped()||(this.trigger("errorResponse",o),o.isStopped()||n.readyState>1&&alert(h.get("errorResponse")))}});e.exports=m},function(e,t,n){"use strict";var i=n(9),o=i.Router.extend({initialize:function(e){this.net=e.net},routes:{"read/:queryStr":"read"}});e.exports=o},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(7),a={setInput:{_changeToStringInArray:function(e){return o.each(e,function(t,n){e[n]=String(t)}),e},radio:function(e,t){e.checked=e.value===t},checkbox:function(e,t){o.isArray(t)?e.checked=i.inArray(e.value,this._changeToStringInArray(t))!==-1:e.checked=e.value===t},"select-one":function(e,t){var n=s.toArray(e.options);e.selectedIndex=o.findIndex(n,function(e){return e.value===t||e.text===t})},"select-multiple":function(e,t){var n=s.toArray(e.options);o.isArray(t)?(t=this._changeToStringInArray(t),o.each(n,function(e){e.selected=i.inArray(e.value,t)!==-1||i.inArray(e.text,t)!==-1})):this["select-one"].apply(this,arguments)},defaultAction:function(e,t){e.value=t}},getFormData:function(e){var t={},n=e.serializeArray(),i=s.isExisty;return o.each(n,function(e){var n=e.value||"",o=e.name;i(t[o])?t[o]=[].concat(t[o],n):t[o]=n}),t},getFormElement:function(e,t){var n;return e&&e.length&&(n=t?e.prop("elements")[String(t)]:e.prop("elements")),i(n)},setFormData:function(e,t){o.each(t,function(t,n){this.setFormElementValue(e,n,t)},this)},setFormElementValue:function(e,t,n){var i,a=this.getFormElement(e,t);a.length&&(o.isArray(n)||(n=String(n)),a=s.isHTMLTag(a)?[a]:a,a=s.toArray(a),o.each(a,function(e){i=this.setInput[e.type]?e.type:"defaultAction",this.setInput[i](e,n)},this))},setCursorToEnd:function(e){var t,n=e.value.length;if(e.focus(),e.setSelectionRange)try{e.setSelectionRange(n,n)}catch(e){}else if(e.createTextRange){t=e.createTextRange(),t.collapse(!0),t.moveEnd("character",n),t.moveStart("character",n);try{t.select()}catch(e){}}}};e.exports=a},function(e,t,n){"use strict";var i=n(11),o=n(7),s={pagination:null},a=o.defineClass({init:function(e){this.optionsMap=i.extend(!0,s,e),this.instanceMap={}},getInstance:function(e){return this.instanceMap[e]},setInstance:function(e,t){this.instanceMap[e]=t},getOptions:function(e){return this.optionsMap[e]}});e.exports=a},function(e,t,n){"use strict";function i(e){var t=[r.grid(e.grid),r.scrollbar(e.scrollbar),r.heightResizeHandle(e.heightResizeHandle),r.pagination(e.pagination),r.selection(e.selection)],n=e.cell;return n&&(t=t.concat([r.cell(n.normal),r.cellDummy(n.dummy),r.cellEditable(n.editable),r.cellHead(n.head),r.cellOddRow(n.oddRow),r.cellEvenRow(n.evenRow),r.cellRequired(n.required),r.cellDisabled(n.disabled),r.cellInvalid(n.invalid),r.cellCurrentRow(n.currentRow),r.cellSelectedHead(n.selectedHead),r.cellFocused(n.focused),r.cellFocusedInactive(n.focusedInactive)])),t.join("")}function o(e){var t=i(e);s("#"+d).remove(),a.appendStyleElement(d,t)}var s=n(11),a=n(20),r=n(79),l=n(14).themeName,d="tui-grid-theme-style",h={};h[l.DEFAULT]=n(81),h[l.STRIPED]=n(82),h[l.CLEAN]=n(83),e.exports={apply:function(e,t){var n=h[e];n||(n=h[l.DEFAULT]),n=s.extend(!0,{},n,t),o(n)},isApplied:function(){return 1===s("#"+d).length}}},function(e,t,n){"use strict";function i(e,t){return l(e).bg(t.background).text(t.text).build()}function o(e,t){return l(e).bg(t.background).border(t.border).build()}var s=n(6),a=n(80),r=n(22),l=s.bind(a.createClassRule,a);e.exports={grid:function(e){var t=l(r.CONTAINER).bg(e.background).text(e.text),n=l(r.CONTENT_AREA).border(e.border),i=l(r.TABLE).border(e.border),o=l(r.HEAD_AREA).border(e.border),s=l(r.FOOT_AREA).border(e.border),d=l(r.BORDER_LINE).bg(e.border),h=l(r.SCROLLBAR_HEAD).border(e.border),u=l(r.SCROLLBAR_BORDER).bg(e.border),c=l(r.FOOT_AREA_RIGHT).border(e.border);return a.buildAll([t,n,i,o,s,d,h,u,c])},scrollbar:function(e){var t=a.createWebkitScrollbarRules("."+r.CONTAINER,e),n=a.createIEScrollbarRule("."+r.CONTAINER,e),i=l(r.SCROLLBAR_RIGHT_BOTTOM).bg(e.background),o=l(r.SCROLLBAR_LEFT_BOTTOM).bg(e.background),s=l(r.SCROLLBAR_HEAD).bg(e.background),d=l(r.FOOT_AREA_RIGHT).bg(e.background),h=l(r.BODY_AREA).bg(e.background);return a.buildAll(t.concat([n,i,o,s,d,h]))},heightResizeHandle:function(e){return o(r.HEIGHT_RESIZE_HANDLE,e)},pagination:function(e){return o(r.PAGINATION,e)},selection:function(e){return o(r.LAYER_SELECTION,e)},cell:function(e){var t=l(r.CELL).bg(e.background).border(e.border).borderWidth(e).text(e.text);return t.build()},cellHead:function(e){var t=l(r.CELL_HEAD).bg(e.background).border(e.border).borderWidth(e).text(e.text),n=l(r.HEAD_AREA).bg(e.background),i=l(r.FOOT_AREA).bg(e.background);return a.buildAll([t,n,i])},cellEvenRow:function(e){return l(r.ROW_EVEN+">td").bg(e.background).build()},cellOddRow:function(e){return l(r.ROW_ODD+">td").bg(e.background).build()},cellSelectedHead:function(e){return a.create("."+r.CELL_HEAD+"."+r.CELL_SELECTED).bg(e.background).text(e.text).build()},cellFocused:function(e){var t=l(r.LAYER_FOCUS_BORDER).bg(e.border),n=l(r.LAYER_EDITING).border(e.border);return a.buildAll([t,n])},cellFocusedInactive:function(e){return a.create("."+r.LAYER_FOCUS_DEACTIVE+" ."+r.LAYER_FOCUS_BORDER).bg(e.border).build()},cellEditable:function(e){return i(r.CELL_EDITABLE,e)},cellRequired:function(e){return i(r.CELL_REQUIRED,e)},cellDisabled:function(e){return i(r.CELL_DISABLED,e)},cellDummy:function(e){return i(r.CELL_DUMMY,e)},cellInvalid:function(e){return i(r.CELL_INVALID,e)},cellCurrentRow:function(e){return i(r.CELL_CURRENT_ROW,e)}}},function(e,t,n){"use strict";var i=n(6),o=n(7),s=o.defineClass({init:function(e){if(!i.isString(e)||!e)throw new Error("The Selector must be a string and not be empty.");this._selector=e,this._propValues=[]},add:function(e,t){return t&&this._propValues.push(e+":"+t),this},border:function(e){return this.add("border-color",e)},borderWidth:function(e){var t,n=e.showVerticalBorder,o=e.showHorizontalBorder;return i.isBoolean(n)&&(t=n?"1px":"0",this.add("border-left-width",t).add("border-right-width",t)),i.isBoolean(o)&&(t=o?"1px":"0",this.add("border-top-width",t).add("border-bottom-width",t)),this},bg:function(e){return this.add("background-color",e)},text:function(e){return this.add("color",e)},build:function(){var e="";return this._propValues.length&&(e=this._selector+"{"+this._propValues.join(";")+"}"),e}});e.exports={create:function(e){return new s(e)},createClassRule:function(e){return this.create("."+e)},createWebkitScrollbarRules:function(e,t){return[this.create(e+" ::-webkit-scrollbar").bg(t.background),this.create(e+" ::-webkit-scrollbar-thumb").bg(t.thumb),this.create(e+" ::-webkit-scrollbar-thumb:hover").bg(t.active)]},createIEScrollbarRule:function(e,t){var n=["scrollbar-3dlight-color","scrollbar-darkshadow-color","scrollbar-track-color","scrollbar-shadow-color"],o=["scrollbar-face-color","scrollbar-highlight-color"],s=this.create(e);return i.each(n,function(e){s.add(e,t.background)}),i.each(o,function(e){s.add(e,t.thumb)}),s.add("scrollbar-arrow-color",t.active),s},buildAll:function(e){return i.map(e,function(e){return e.build()}).join("")}}},function(e,t){"use strict";e.exports={grid:{background:"#fff",border:"#ccc",text:"#444"},selection:{background:"#4daaf9",border:"#004082"},heightResizeHandle:{border:"#ccc",background:"#fff"},pagination:{border:"transparent",background:"transparent"},scrollbar:{background:"#f5f5f5",thumb:"#d9d9d9",active:"#c1c1c1"},cell:{normal:{background:"#fbfbfb",border:"#e0e0e0",showVerticalBorder:!0,showHorizontalBorder:!0},head:{background:"#eee",border:"#ccc",showVerticalBorder:!0,showHorizontalBorder:!0},selectedHead:{background:"#d8d8d8"},focused:{border:"#418ed4"},focusedInactive:{border:"#aaa"},required:{background:"#fffdeb"},editable:{background:"#fff"},disabled:{text:"#b0b0b0"},dummy:{background:"#fff"},invalid:{background:"#ff8080"},evenRow:{},oddRow:{},currentRow:{}}}},function(e,t,n){"use strict";var i=n(11),o=n(81);e.exports=i.extend(!0,{},o,{cell:{normal:{background:"#fff",border:"#e8e8e8",showVerticalBorder:!1,showHorizontalBorder:!1},oddRow:{background:"#f3f3f3"},evenRow:{background:"#fff"},head:{background:"#fff",showVerticalBorder:!1,showHorizontalBorder:!1}}})},function(e,t,n){"use strict";var i=n(11),o=n(81);e.exports=i.extend(!0,{},o,{grid:{border:"#c0c0c0"},cell:{normal:{background:"#fff",border:"#e0e0e0",showVerticalBorder:!1,showHorizontalBorder:!0},head:{background:"#fff",border:"#e0e0e0",showVerticalBorder:!1,showHorizontalBorder:!0},selectedHead:{background:"#e0e0e0"}}})}])}); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("underscore"),require("tui-code-snippet"),require("backbone"),require("jquery"),require("tui-date-picker"),require("tui-pagination")):"function"==typeof define&&define.amd?define(["underscore","tui-code-snippet","backbone","jquery","tui-date-picker","tui-pagination"],t):"object"==typeof exports?exports.Grid=t(require("underscore"),require("tui-code-snippet"),require("backbone"),require("jquery"),require("tui-date-picker"),require("tui-pagination")):(e.tui=e.tui||{},e.tui.Grid=t(e._,e.tui&&e.tui.util,e.Backbone,e.$,e.tui&&e.tui.DatePicker,e.tui&&e.tui.Pagination))}(this,function(e,t,n,i,o,s){return function(e){function t(i){if(n[i])return n[i].exports;var o=n[i]={exports:{},id:i,loaded:!1};return e[i].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";n(1),e.exports=n(5)},function(e,t){},,,,function(e,t,n){"use strict";var i=n(6),o=n(7),s=n(8),a=n(10),r=n(35),l=n(60),d=n(61),h=n(62),u=n(63),c=n(73),g=n(74),m=n(77),f=n(20),p=n(44),M=n(78),_=n(14).themeName,C={},w=s.extend({initialize:function(e){this.id=f.getUniqueKey(),this.domState=new d(this.$el),this.domEventBus=l.create(),this.modelManager=this._createModelManager(e),this.painterManager=this._createPainterManager(),this.componentHolder=this._createComponentHolder(e.pagination),this.viewFactory=this._createViewFactory(e),this.container=this.viewFactory.createContainer(),this.publicEventEmitter=this._createPublicEventEmitter(),this.container.render(),this.refreshLayout(),M.isApplied()||M.apply(_.DEFAULT),this.addOn={},C[this.id]=this,e.data&&this.setData(e.data)},_createModelManager:function(e){var t=i.assign({},e,{gridId:this.id,publicObject:this});return i.omit(t,"el"),new a(t,this.domState,this.domEventBus)},_createPainterManager:function(){var e=new c({focusModel:this.modelManager.focusModel,dataModel:this.modelManager.dataModel,columnModel:this.modelManager.columnModel,selectionModel:this.modelManager.selectionModel});return new u({gridId:this.id,selectType:this.modelManager.columnModel.get("selectType"),fixedRowHeight:this.modelManager.dimensionModel.get("fixedRowHeight"),domEventBus:this.domEventBus,controller:e})},_createViewFactory:function(e){var t=i.pick(e,["heightResizable","footer"]),n={modelManager:this.modelManager,painterManager:this.painterManager,componentHolder:this.componentHolder,domEventBus:this.domEventBus,domState:this.domState};return new r(i.assign(n,t))},_createComponentHolder:function(e){return new m({pagination:e})},_createPublicEventEmitter:function(){var e=new h(this);return e.listenToFocusModel(this.modelManager.focusModel),e.listenToDomEventBus(this.domEventBus),e.listenToDataModel(this.modelManager.dataModel),e.listenToSelectionModel(this.modelManager.selectionModel),e},disable:function(){this.modelManager.dataModel.setDisabled(!0)},enable:function(){this.modelManager.dataModel.setDisabled(!1)},disableRow:function(e){this.modelManager.dataModel.disableRow(e)},enableRow:function(e){this.modelManager.dataModel.enableRow(e)},getValue:function(e,t,n){return this.modelManager.dataModel.getValue(e,t,n)},getColumnValues:function(e,t){return this.modelManager.dataModel.getColumnValues(e,t)},getRow:function(e,t){return this.modelManager.dataModel.getRowData(e,t)},getRowAt:function(e,t){return this.modelManager.dataModel.getRowDataAt(e,t)},getRowCount:function(){return this.modelManager.dataModel.length},getFocusedCell:function(){var e=this.modelManager.focusModel.which(),t=this.getValue(e.rowKey,e.columnName);return{rowKey:e.rowKey,columnName:e.columnName,value:t}},getElement:function(e,t){return this.modelManager.dataModel.getElement(e,t)},setValue:function(e,t,n){this.modelManager.dataModel.setValue(e,t,n)},setColumnValues:function(e,t,n){this.modelManager.dataModel.setColumnValues(e,t,n)},resetData:function(e){this.modelManager.dataModel.resetData(e)},setData:function(e,t){this.modelManager.dataModel.setData(e,!0,t)},setBodyHeight:function(e){this.modelManager.dimensionModel.set("bodyHeight",e)},focus:function(e,t,n){this.modelManager.focusModel.focusClipboard(),this.modelManager.focusModel.focus(e,t,n)},focusAt:function(e,t,n){this.modelManager.focusModel.focusAt(e,t,n)},focusIn:function(e,t,n){this.modelManager.focusModel.focusIn(e,t,n)},focusInAt:function(e,t,n){this.modelManager.focusModel.focusInAt(e,t,n)},activateFocus:function(){this.modelManager.focusModel.focusClipboard()},blur:function(){this.modelManager.focusModel.blur()},checkAll:function(){this.modelManager.dataModel.checkAll()},check:function(e){this.modelManager.dataModel.check(e)},uncheckAll:function(){this.modelManager.dataModel.uncheckAll()},uncheck:function(e){this.modelManager.dataModel.uncheck(e)},clear:function(){this.modelManager.dataModel.setData([])},removeRow:function(e,t){o.isBoolean(t)&&t&&(t={removeOriginalData:!0}),this.modelManager.dataModel.removeRow(e,t)},removeCheckedRows:function(e){var t=this.getCheckedRowKeys(),n=p.get("requestConfirm",{count:t.length,actionName:"deleteAction"});return!(!(t.length>0)||e&&!confirm(n))&&(i.each(t,function(e){this.modelManager.dataModel.removeRow(e)},this),!0)},enableCheck:function(e){this.modelManager.dataModel.enableCheck(e)},disableCheck:function(e){this.modelManager.dataModel.disableCheck(e)},getCheckedRowKeys:function(e){var t=this.modelManager.dataModel.getRows(!0),n=i.pluck(t,"rowKey");return e?JSON.stringify(n):n},getCheckedRows:function(e){var t=this.modelManager.dataModel.getRows(!0);return e?JSON.stringify(t):t},getColumns:function(){return this.modelManager.columnModel.get("dataColumns")},getModifiedRows:function(e){return this.modelManager.dataModel.getModifiedRows(e)},appendRow:function(e,t){this.modelManager.dataModel.append(e,t)},prependRow:function(e,t){this.modelManager.dataModel.prepend(e,t)},isModified:function(){return this.modelManager.dataModel.isModified()},getAddOn:function(e){return e?this.addOn[e]:this.addOn},restore:function(){this.modelManager.dataModel.restore()},setFrozenColumnCount:function(e){this.modelManager.columnModel.set("frozenCount",e)},setColumns:function(e){this.modelManager.columnModel.set("columns",e)},use:function(e,t){return"Net"===e&&(t=i.assign({domEventBus:this.domEventBus,renderModel:this.modelManager.renderModel,dataModel:this.modelManager.dataModel,pagination:this.componentHolder.getInstance("pagination")},t),this.addOn.Net=new g(t),this.publicEventEmitter.listenToNetAddon(this.addOn.Net)),this},getRows:function(){return this.modelManager.dataModel.getRows()},sort:function(e,t){this.modelManager.dataModel.sortByField(e,t)},unSort:function(){this.sort("rowKey")},getSortState:function(){return this.modelManager.dataModel.sortOptions},addCellClassName:function(e,t,n){this.modelManager.dataModel.get(e).addCellClassName(t,n)},addRowClassName:function(e,t){this.modelManager.dataModel.get(e).addClassName(t)},removeCellClassName:function(e,t,n){this.modelManager.dataModel.get(e).removeCellClassName(t,n)},removeRowClassName:function(e,t){this.modelManager.dataModel.get(e).removeClassName(t)},getRowSpanData:function(e,t){return this.modelManager.dataModel.getRowSpanData(e,t)},getIndexOfRow:function(e){return this.modelManager.dataModel.indexOfRowKey(e)},getIndexOfColumn:function(e){return this.modelManager.columnModel.indexOfColumnName(e)},getPagination:function(){return this.componentHolder.getInstance("pagination")},setWidth:function(e){this.modelManager.dimensionModel.setWidth(e)},setHeight:function(e){this.modelManager.dimensionModel.setHeight(e)},refreshLayout:function(){this.modelManager.dimensionModel.refreshLayout()},resetColumnWidths:function(){this.modelManager.coordColumnModel.resetColumnWidths()},showColumn:function(){var e=o.toArray(arguments);this.modelManager.columnModel.setHidden(e,!1)},hideColumn:function(){var e=o.toArray(arguments);this.modelManager.columnModel.setHidden(e,!0)},setFooterColumnContent:function(e,t){this.modelManager.columnModel.setFooterContent(e,t)},validate:function(){return this.modelManager.dataModel.validate()},findRows:function(e){var t=this.modelManager.dataModel.getRows();return i.where(t,e)},copyToClipboard:function(){this.modelManager.clipboardModel.setClipboardText(),window.clipboardData||document.execCommand("copy")},selection:function(e){var t=this.modelManager.selectionModel,n=e.start,i=e.end,o=t.getSelectionUnit();t.start(n[0],n[1],o),t.update(i[0],i[1],o)},destroy:function(){this.modelManager.destroy(),this.container.destroy(),this.modelManager=this.container=null}});w.getInstanceById=function(e){return C[e]},w.applyTheme=function(e,t){M.apply(e,t)},w.setLanguage=function(e){p.setLanguage(e)},e.exports=w},function(t,n){t.exports=e},function(e,n){e.exports=t},function(e,t,n){"use strict";var i=n(6),o=n(9),s=o.View.extend({initialize:function(){this._children=[]},_addChildren:function(e){i.isArray(e)||(e=[e]),[].push.apply(this._children,i.compact(e))},_renderChildren:function(){var e=i.map(this._children,function(e){return e.render().el});return e},_triggerChildrenAppended:function(){i.each(this._children,function(e){e.trigger("appended")})},destroy:function(){this.stopListening(),this._destroyChildren(),this.remove()},_destroyChildren:function(){if(this._children)for(;this._children.length>0;)this._children.pop().destroy()}});e.exports=s},function(e,t){e.exports=n},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(7),a=n(12),r=n(15),l=n(23),d=n(24),h=n(25),u=n(26),c=n(27),g=n(28),m=n(31),f=n(32),p=n(33),M=n(34),_=n(20),C={data:[],columns:[],keyColumnName:null,selectType:"",autoNumbering:!0,header:{height:35,complexColumns:[]},columnOptions:{minWidth:50,resizable:!0,frozenCount:0},fitToParentHeight:!1,fixedRowHeight:!1,fixedHeight:!1,showDummyRows:!1,virtualScrolling:!1,copyOptions:null,scrollX:!0,scrollY:!0,useClientSort:!0,editingEvent:"dblclick",rowHeight:"auto",bodyHeight:"auto",minRowHeight:27,minBodyHeight:130,selectionUnit:"cell"},w=s.defineClass({init:function(e,t,n){e=i.extend(!0,{},C,e),this.gridId=e.gridId,this.columnModel=this._createColumnModel(e),this.dataModel=this._createDataModel(e,t,n),this.dimensionModel=this._createDimensionModel(e,t,n),this.coordRowModel=this._createCoordRowModel(t),this.focusModel=this._createFocusModel(e,t,n),this.coordColumnModel=this._createCoordColumnModel(e.columnOptions,n),this.renderModel=this._createRenderModel(e),this.coordConverterModel=this._createCoordConverterModel(),this.selectionModel=this._createSelectionModel(e,n),this.summaryModel=this._createSummaryModel(e.footer),this.clipboardModel=this._createClipboardModel(e,n)},_createColumnModel:function(e){return new a({keyColumnName:e.keyColumnName,frozenCount:e.columnOptions.frozenCount,complexHeaderColumns:e.header.complexColumns,copyOptions:e.copyOptions,columns:e.columns,rowHeaders:e.rowHeaders})},_createDataModel:function(e,t,n){return new r([],{gridId:this.gridId,domState:t,domEventBus:n,columnModel:this.columnModel,useClientSort:e.useClientSort,publicObject:e.publicObject})},_createDimensionModel:function(e,t,n){var i,o=!isNaN(e.rowHeight),s="auto"!==e.bodyHeight,a=e.minRowHeight,r=e.minBodyHeight,d=o?Math.max(a,e.rowHeight):a,h=s?Math.max(r,e.bodyHeight):r,u={headerHeight:e.header.height,bodyHeight:h,footerHeight:e.footer?e.footer.height:0,rowHeight:d,fitToParentHeight:"fitToParent"===e.bodyHeight,scrollX:!!e.scrollX,scrollY:!!e.scrollY,minimumColumnWidth:e.columnOptions.minWidth,fixedRowHeight:o,fixedHeight:s,minRowHeight:a,minBodyHeight:r||d};return o===!1&&e.virtualScrolling&&(_.warning("If the virtualScrolling is set to true, the rowHeight must be set to number type."),u.fixedRowHeight=!0),i=new l(u,{columnModel:this.columnModel,dataModel:this.dataModel,domState:t,domEventBus:n})},_createCoordRowModel:function(e){return new d(null,{dataModel:this.dataModel,dimensionModel:this.dimensionModel,domState:e})},_createCoordColumnModel:function(e,t){var n={resizable:e.resizable};return new h(n,{columnModel:this.columnModel,dimensionModel:this.dimensionModel,domEventBus:t})},_createCoordConverterModel:function(){return new u(null,{columnModel:this.columnModel,dataModel:this.dataModel,dimensionModel:this.dimensionModel,focusModel:this.focusModel,coordRowModel:this.coordRowModel,renderModel:this.renderModel,coordColumnModel:this.coordColumnModel})},_createFocusModel:function(e,t,n){return new c(null,{columnModel:this.columnModel,dataModel:this.dataModel,coordRowModel:this.coordRowModel,domEventBus:n,domState:t,editingEvent:e.editingEvent})},_createSelectionModel:function(e,t){return new f({selectionUnit:e.selectionUnit},{columnModel:this.columnModel,dataModel:this.dataModel,dimensionModel:this.dimensionModel,coordConverterModel:this.coordConverterModel,coordRowModel:this.coordRowModel,renderModel:this.renderModel,focusModel:this.focusModel,domEventBus:t})},_createRenderModel:function(e){var t,n,i;return t={emptyMessage:e.emptyMessage,showDummyRows:e.showDummyRows},n={columnModel:this.columnModel,dataModel:this.dataModel,dimensionModel:this.dimensionModel,focusModel:this.focusModel,coordRowModel:this.coordRowModel,coordColumnModel:this.coordColumnModel},new(i=e.virtualScrolling?m:g)(t,n)},_createSummaryModel:function(e){var t=[];return e&&e.columnContent?(o.each(e.columnContent,function(e,n){o.isFunction(e.template)&&e.useAutoSummary!==!1&&t.push(n)}),new p(null,{dataModel:this.dataModel,autoColumnNames:t})):null},_createClipboardModel:function(e,t){return new M(null,{columnModel:this.columnModel,dataModel:this.dataModel,selectionModel:this.selectionModel,renderModel:this.renderModel,focusModel:this.focusModel,copyOptions:e.copyOptions,domEventBus:t})},destroy:function(){o.each(this,function(e,t){e&&s.isFunction(e._destroy)&&e._destroy(),e&&s.isFunction(e.stopListening)&&e.stopListening(),this[t]=null},this)}});e.exports=w},function(e,t){e.exports=i},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(7),a=n(13),r=n(14).frame,l={rowNum:{type:"rowNum",title:"No.",name:"_number",align:"center",fixedWidth:!0,width:60,hidden:!1},checkbox:{type:"checkbox",title:'',name:"_button",align:"center",fixedWidth:!0,width:40,hidden:!1,editOptions:{type:"mainButton"}},radio:{type:"radio",title:"select",name:"_button",align:"center",fixedWidth:!0,width:40,hidden:!1,editOptions:{type:"mainButton"}}},d=a.extend({initialize:function(){a.prototype.initialize.apply(this,arguments),this.textType={normal:!0,text:!0,password:!0},this._setColumns(this.get("rowHeaders"),this.get("columns")),this.on("change",this._onChange,this)},defaults:{keyColumnName:null,frozenCount:0,rowHeaders:[],dataColumns:[],visibleColumns:[],selectType:"",columnModelMap:{},relationsMap:{},complexHeaderColumns:[],copyOptions:{useFormattedValue:!1}},at:function(e,t){var n=t?this.getVisibleColumns():this.get("dataColumns");return n[e]},indexOfColumnName:function(e,t){var n;return n=t?this.getVisibleColumns():this.get("dataColumns"),o.findIndex(n,{name:e})},isLside:function(e){var t=this.indexOfColumnName(e,!0);return t>-1&&ta&&(d=1),i||(d=-d),d},_removePrivateProp:function(e){return o.map(e,function(e){return o.omit(e,a.privateProperties)})},removeRow:function(e,t){var n,i,s,a,r=this.get(e);r&&(t&&t.keepRowSpanData&&(s=o.clone(r.attributes)),a=this.indexOf(r),n=o.clone(r.getRowSpanData()),i=this.at(a+1),this.remove(r,{silent:!0}),this._syncRowSpanDataForRemove(n,i,s),t&&t.removeOriginalData&&this.setOriginalRowList(),this.trigger("remove",e,a))},_syncRowSpanDataForRemove:function(e,t,n){e&&o.each(e,function(e,i){var o,s,a,r={};if(e.isMainRow){if(1===e.count)return;o=t,a=e.count-1,s=1,a>1&&(r.mainRowKey=o.get("rowKey"),r.isMainRow=!0),o.set(i,n?n[i]:"",{silent:!0})}else o=this.get(e.mainRowKey),a=o.getRowSpanData(i).count-1,s=-e.count;a>1?(r.count=a,o.setRowSpanData(i,r),this._updateSubRowSpanData(o,i,s,a)):o.setRowSpanData(i,null)},this)},_createDummyRow:function(){var e=this.columnModel.get("dataColumns"),t={};return o.each(e,function(e){t[e.name]=""},this),t},append:function(e,t){var n,i=this._createModelList(e);return t=o.extend({at:this.length},t),n={at:t.at,add:!0,silent:!0},this.add(i,n),this._syncRowSpanDataForAppend(t.at,i.length,t.extendPrevRowSpan),this.trigger("add",i,t),i},prepend:function(e,t){return t=t||{},t.at=0,this.append(e,t)},getRowData:function(e,t){var n=this.get(e),i=n?n.toJSON():null;return t?JSON.stringify(i):i},getRowDataAt:function(e,t){var n=this.at(e),i=n?n.toJSON():null;return t?JSON.stringify(n):i},getValue:function(e,t,n){var i,o;return n?i=this.getOriginal(e,t):(o=this.get(e),i=o&&o.get(t)),i},setValue:function(e,t,n,i){var o=this.get(e);return!!o&&(o.set(t,n,{silent:i}),!0)},getColumnValues:function(e,t){var n=this.pluck(e);return t?JSON.stringify(n):n},setColumnValues:function(e,t,n,i){var s={},a={disabled:!1,editable:!0};s[e]=t,n=!!o.isUndefined(n)||n,this.forEach(function(t){n&&(a=t.getCellState(e)),!a.disabled&&a.editable&&t.set(s,{silent:i})},this)},getRowSpanData:function(e,t){var n=this.get(e);return n?n.getRowSpanData(t):null},isModified:function(){var e=o.values(this.getModifiedRows());return o.some(e,function(e){return e.length>0})},setDisabled:function(e){this.disabled!==e&&(this.disabled=e,this.trigger("disabledChanged"))},enableRow:function(e){this.get(e).setRowState("")},disableRow:function(e){this.get(e).setRowState("DISABLED")},enableCheck:function(e){this.get(e).setRowState("")},disableCheck:function(e){this.get(e).setRowState("DISABLED_CHECK")},check:function(e,t){var n=this.get(e).getRowState().isDisabledCheck,i=this.columnModel.get("selectType");!n&&i&&("radio"===i&&this.uncheckAll(),this.setValue(e,"_button",!0,t))},uncheck:function(e,t){this.setValue(e,"_button",!1,t)},checkAll:function(){this.setColumnValues("_button",!0)},uncheckAll:function(){this.setColumnValues("_button",!1)},_createModelList:function(e){var t,n=[];return e=e||this._createDummyRow(),o.isArray(e)||(e=[e]),t=this._formatData(e),o.each(t,function(e){var t=new a(e,{collection:this,parse:!0});n.push(t)},this),n},_syncRowSpanDataForAppend:function(e,t,n){var i=this.at(e-1);i&&o.each(i.getRowSpanData(),function(e,o){var s,a,r,l;0!==e.count&&(e.isMainRow?(s=i,a=e,r=1):(s=this.get(e.mainRowKey),a=s.getRowSpanData()[o],r=-e.count+1),(a.count>r||n)&&(a.count+=t,l=a.count,this._updateSubRowSpanData(s,o,r,l)))},this)},_updateSubRowSpanData:function(e,t,n,i){var o,s,a=this.indexOf(e),r=e.get("rowKey");for(s=n;s=0)&&(h[s]=e[o-n]);l.set(h)},getElement:function(e,t){var n=this.getMainRowKey(e,t);return this.domState.getElement(n,t)},getCheckedState:function(){var e=0,t=0;return this.forEach(function(n){var i=n.getCellState("_button");!i.disabled&&i.editable&&(e+=1,n.get("_button")&&(t+=1))}),{available:e,checked:t}}});e.exports=r},function(e,t,n){"use strict";var i=n(9),o=i.Collection.extend({clear:function(){return this.each(function(e){e.stopListening(),e=null}),this.reset([],{silent:!0}),this}});e.exports=o},function(e,t,n){"use strict";var i=n(6),o=n(9),s=n(7),a=n(13),r=n(18),l=n(19),d=n(20),h=n(21),u=n(22),c=["_button","_number","_extraData"],g="REQUIRED",m="TYPE_NUMBER",f=a.extend({initialize:function(){a.prototype.initialize.apply(this,arguments),this.extraDataManager=new r(this.get("_extraData")),this.columnModel=this.collection.columnModel,this.validateMap={},this.on("change",this._onChange,this)},idAttribute:"rowKey",set:function(e,t,n){var s,a=i.isObject(e);a&&(n=t),!this.columnModel||n&&n.silent?o.Model.prototype.set.apply(this,arguments):(a?s=e:(s={},s[e]=t),i.each(s,function(e,t){this._executeOnBeforeChange(t,e)||delete s[t]},this),o.Model.prototype.set.call(this,s,n))},parse:function(e){return e._extraData||(e._extraData={}),e},_triggerExtraDataChangeEvent:function(){this.trigger("extraDataChanged",this.get("_extraData"))},_triggerCheckboxChangeEvent:function(e){var t={rowKey:this.get("rowKey")};e?this.trigger("check",t):this.trigger("uncheck",t)},_onChange:function(){var e=i.omit(this.changed,c);i.has(this.changed,"_button")&&this._triggerCheckboxChangeEvent(this.changed._button),this.isDuplicatedPublicChanged(e)||i.each(e,function(e,t){var n=this.columnModel.getColumnModel(t);n&&(this.collection.syncRowSpannedData(this,t,e),this._executeOnAfterChange(t),this.validateCell(t,!0))},this)},_validateCellData:function(e){var t,n=this.columnModel.getColumnModel(e).validation,o="";return n&&(t=this.get(e),n.required&&d.isBlank(t)?o=g:"number"!==n.dataType||i.isNumber(t)||(o=m)),o},validateCell:function(e,t){var n;return!t&&e in this.validateMap?this.validateMap[e]:(n=this._validateCellData(e),n?this.addCellClassName(e,u.CELL_INVALID):this.removeCellClassName(e,u.CELL_INVALID),this.validateMap[e]=n,n)},_createChangeCallbackEvent:function(e,t){return new l(null,{rowKey:this.get("rowKey"),columnName:e,value:t,instance:this.collection.publicObject})},_executeOnBeforeChange:function(e,t){var n,i=this.columnModel.getColumnModel(e),o=this.get(e)!==t;return!(o&&i&&i.onBeforeChange)||(n=this._createChangeCallbackEvent(e,t),i.onBeforeChange(n),!n.isStopped())},_executeOnAfterChange:function(e){var t,n=this.columnModel.getColumnModel(e),i=this.get(e);return!n.onAfterChange||(t=this._createChangeCallbackEvent(e,i),n.onAfterChange(t),!t.isStopped())},getPrivateProperties:function(){return c},getRowState:function(){return this.extraDataManager.getRowState()},getClassNameList:function(e){var t=this.columnModel.getColumnModel(e),n=d.isMetaColumn(e),i=this.extraDataManager.getClassNameList(e),o=this.getCellState(e); +return t.className&&i.push(t.className),t.ellipsis&&i.push(u.CELL_ELLIPSIS),t.validation&&t.validation.required&&i.push(u.CELL_REQUIRED),n?i.push(u.CELL_HEAD):o.editable&&i.push(u.CELL_EDITABLE),o.disabled&&i.push(u.CELL_DISABLED),this._makeUniqueStringArray(i)},_makeUniqueStringArray:function(e){var t=i.uniq(e.join(" ").split(" "));return i.without(t,"")},getCellState:function(e){var t,n,o=["_number","normal"],s=this.columnModel,a=this.collection.disabled,r=!0,l=s.getEditType(e);return n=this.executeRelationCallbacksAll(["disabled","editable"])[e],t=this.getRowState(),a||(a="_button"===e?t.disabledCheck:t.disabled,a=a||!(!n||!n.disabled)),r=!i.contains(o,l)&&!(n&&n.editable===!1),{editable:r,disabled:a}},isEditable:function(e){var t=this.getCellState(e);return!t.disabled&&t.editable},isDisabled:function(e){var t=this.getCellState(e);return t.disabled},getRowSpanData:function(e){var t=this.collection.isRowSpanEnable(),n=this.get("rowKey");return this.extraDataManager.getRowSpanData(e,n,t)},getHeight:function(){return this.extraDataManager.getHeight()},setHeight:function(e){this.extraDataManager.setHeight(e),this._triggerExtraDataChangeEvent()},setRowSpanData:function(e,t){this.extraDataManager.setRowSpanData(e,t),this._triggerExtraDataChangeEvent()},setRowState:function(e,t){this.extraDataManager.setRowState(e),t||this._triggerExtraDataChangeEvent()},addCellClassName:function(e,t){this.extraDataManager.addCellClassName(e,t),this._triggerExtraDataChangeEvent()},addClassName:function(e){this.extraDataManager.addClassName(e),this._triggerExtraDataChangeEvent()},removeCellClassName:function(e,t){this.extraDataManager.removeCellClassName(e,t),this._triggerExtraDataChangeEvent()},removeClassName:function(e){this.extraDataManager.removeClassName(e),this._triggerExtraDataChangeEvent()},_getStringOfListItems:function(e,t){var n,o,a,r,l,h=this.get(e),u=this.columnModel.getColumnModel(e);return s.isExisty(s.pick(u,"editOptions","listItems"))?(n=this.executeRelationCallbacksAll(["listItems"])[e],l=n&&n.listItems,o=l?n.listItems:u.editOptions.listItems,a=typeof o[0].value,r=d.toString(h).split(","),a!==typeof r[0]&&(r=i.map(r,function(e){return d.convertValueType(e,a)})),i.each(r,function(e,n){var s=i.findWhere(o,{value:e}),a=s&&(t?s.text:s.value)||"";r[n]=a},this),r.join(",")):""},_isListType:function(e){return i.contains(["select","radio","checkbox"],e)},isDuplicatedPublicChanged:function(e){return!(!this._timeoutIdForChanged||!i.isEqual(this._lastPublicChanged,e))||(clearTimeout(this._timeoutIdForChanged),this._timeoutIdForChanged=setTimeout(i.bind(function(){this._timeoutIdForChanged=null},this),10),this._lastPublicChanged=e,!1)},getValueString:function(e){var t=this.columnModel,n=t.copyVisibleTextOfEditingColumn(e),i=t.getEditType(e),o=t.getColumnModel(e),a=this.get(e);if(this._isListType(i)){if(!s.isExisty(s.pick(o,"editOptions","listItems",0,"value")))throw new Error('Check "'+e+"\"'s editOptions.listItems property out in your ColumnModel.");a=this._getStringOfListItems(e,n)}else"password"===i&&(a="");return a=d.toString(a),a=h.addDoubleQuotes(a)},executeRelationCallbacksAll:function(e){var t=this.attributes,n=this.columnModel.get("relationsMap"),o={};return i.isEmpty(e)&&(e=["listItems","disabled","editable"]),i.each(n,function(n,s){var a=t[s];i.each(n,function(n){this._executeRelationCallback(n,e,a,t,o)},this)},this),o},_executeRelationCallback:function(e,t,n,o,s){var a=this.getRowState(),r=e.targetNames;i.each(t,function(t){var l;a.disabled&&"disabled"===t||(l=e[t],"function"==typeof l&&i.each(r,function(e){s[e]=s[e]||{},s[e][t]=l(n,o)},this))},this)}},{privateProperties:c});e.exports=f},function(e,t,n){"use strict";var i=n(6),o=n(7),s=o.defineClass({init:function(e){this.data=e||{}},getRowSpanData:function(e,t,n){var i=null;return n&&(i=this.data.rowSpanData,e&&i&&(i=i[e])),!i&&e&&(i={count:0,isMainRow:!0,mainRowKey:t}),i},getRowState:function(){var e={disabledCheck:!1,disabled:!1,checked:!1};switch(this.data.rowState){case"DISABLED":e.disabled=!0;case"DISABLED_CHECK":e.disabledCheck=!0;break;case"CHECKED":e.checked=!0}return e},setRowState:function(e){this.data.rowState=e},setRowSpanData:function(e,t){var n=i.assign({},this.data.rowSpanData);e&&(t?n[e]=t:n[e]&&delete n[e],this.data.rowSpanData=n)},addCellClassName:function(e,t){var n,o;n=this.data.className||{},n.column=n.column||{},o=n.column[e]||[],i.contains(o,t)||(o.push(t),n.column[e]=o,this.data.className=n)},addClassName:function(e){var t,n;t=this.data.className||{},n=t.row||[],o.inArray(e,n)===-1&&(n.push(e),t.row=n,this.data.className=t)},getClassNameList:function(e){var t=this.data.className,n=Array.prototype.push,i=[];return t&&(t.row&&n.apply(i,t.row),e&&t.column&&t.column[e]&&n.apply(i,t.column[e])),i},_removeClassNameFromArray:function(e,t){var n=e.join(" ").split(" ");return i.without(n,t)},removeCellClassName:function(e,t){var n=this.data.className;o.pick(n,"column",e)&&(n.column[e]=this._removeClassNameFromArray(n.column[e],t),this.data.className=n)},removeClassName:function(e){var t=this.data.className;t&&t.row&&(t.row=this._removeClassNameFromArray(t.row,e),this.className=t)},setHeight:function(e){this.data.height=e},getHeight:function(){return this.data.height}});e.exports=s},function(e,t,n){"use strict";var i=n(6),o=n(7),s=n(20),a=n(14).attrName,r={ROW_HEAD:"rowHead",COLUMN_HEAD:"columnHead",DUMMY:"dummy",CELL:"cell",ETC:"etc"},l=o.defineClass({init:function(e,t){this._stopped=!1,e&&(this.nativeEvent=e),t&&this.setData(t)},setData:function(e){i.extend(this,e)},stop:function(){this._stopped=!0},isStopped:function(){return this._stopped}});l.getTargetInfo=function(e){var t,n,i=e.closest("td"),o=r.ETC;return 1===i.length?(t=i.attr(a.ROW_KEY),n=i.attr(a.COLUMN_NAME),o=t&&n?s.isMetaColumn(n)?r.ROW_HEAD:r.CELL:r.DUMMY):(i=e.closest("th"),1===i.length&&(n=i.attr(a.COLUMN_NAME),o=r.COLUMN_HEAD)),s.pruneObject({targetType:o,rowKey:s.strToNumber(t),columnName:n})},l.targetTypeConst=r,e.exports=l},function(e,t,n){"use strict";function i(e,t){var n,i,o,s="",a=0;for(t=!!t,i=e.split(/(%(?:d0|d1)%.{2})/),n=i.length;a]*\ssrc=["']?([^>"']+)["']?[^>]*>/i),e=t?t[1]:""):e=e.replace(//gi,""),e=s.trim(r.decodeHTMLEntity(e.replace(/<\/?(?:h[1-5]|[a-z]+(?::[a-z]+)?)[^>]*>/gi,"")))),e},toString:function(e){return a.isUndefined(e)||a.isNull(e)?"":String(e)},getUniqueKey:function(){return this.uniqueId+=1,this.uniqueId},toQueryString:function(e){var t=[];return a.each(e,function(e,n){a.isString(e)||a.isNumber(e)||(e=JSON.stringify(e)),e=encodeURIComponent(unescape(e)),e&&t.push(n+"="+e)}),t.join("&")},toQueryObject:function(e){var t=e.split("&"),n={};return a.each(t,function(e){var t,o,s=e.split("=");t=s[0],o=i(s[1]);try{o=JSON.parse(o)}catch(e){}a.isNull(o)||(n[t]=o)}),n},convertValueType:function(e,t){return"string"===t?String(e):"number"===t?Number(e):"boolean"===t?Boolean(e):e},toUpperCaseFirstLetter:function(e){return e.charAt(0).toUpperCase()+e.slice(1)},clamp:function(e,t,n){var i;return t>n&&(i=t,t=n,n=i),Math.max(t,Math.min(e,n))},isOptionEnabled:function(e){return a.isObject(e)||e===!0},appendStyleElement:function(e,t){var n=document.createElement("style");n.type="text/css",n.id=e,n.styleSheet?n.styleSheet.cssText=t:n.appendChild(document.createTextNode(t)),document.getElementsByTagName("head")[0].appendChild(n)},warning:function(e){console&&console.warn&&console.warn(e)},replaceText:function(e,t){return e.replace(/\{\{(\w*)\}\}/g,function(e,n){return t.hasOwnProperty(n)?t[n]:""})}},e.exports=o},function(e,t,n){"use strict";function i(e,t,n,i){var o,s,a=n[0],r=n[1],l=i[0],d=i[1];for(s=l;s0},getAvailableTotalWidth:function(e){var t=this.get("width"),n=e+1+(this.isDivisionBorderDoubled()?1:0),i=n*r,o=t-this.getScrollYWidth()-i;return o},getBodySize:function(){var e=this.get("lsideWidth"),t=this.get("rsideWidth")-this.getScrollYWidth(),n=this.get("bodyHeight")-this.getScrollXHeight();return{height:n,rsideWidth:t,totalWidth:e+t}},getOverflowFromMousePosition:function(e,t){var n=this.getPositionFromBodyArea(e,t),i=this.getBodySize();return this._judgeOverflow(n,i)},_judgeOverflow:function(e,t){var n=e.x,i=e.y,o=0,s=0;return i<0?o=-1:i>t.height&&(o=1),n<0?s=-1:n>t.totalWidth&&(s=1),{x:s,y:o}},getScrollXHeight:function(){return this.get("scrollX")?this.get("scrollBarSize"):0},getScrollYWidth:function(){return this.get("scrollY")?this.get("scrollBarSize"):0},_calcRealBodyHeight:function(e){var t=this.get("headerHeight")+this.get("footerHeight")+a;return e-t},_getMinBodyHeight:function(){return this.get("minBodyHeight")+2*r+this.getScrollXHeight()},_getMinLeftSideWidth:function(){var e,t=this.get("minimumColumnWidth"),n=this.columnModel.getVisibleFrozenCount(!0),i=0;return n&&(e=(n+1)*r,i=e+t*n),i},getMaxLeftSideWidth:function(){var e=Math.ceil(.9*this.get("width"));return e&&(e=Math.max(e,this._getMinLeftSideWidth())),e},setWidth:function(e){e>0&&(this.set("width",e),this.trigger("setWidth",e))},setHeight:function(e){e>0&&this.set("bodyHeight",Math.max(this._calcRealBodyHeight(e),this._getMinBodyHeight()))},getHeight:function(){return this.get("bodyHeight")+this.get("headerHeight")},refreshLayout:function(){var e=this.domState,t=e.getOffset();this.set({offsetTop:t.top,offsetLeft:t.left,width:e.getWidth()}),this.get("fitToParentHeight")&&this.setHeight(e.getParentHeight())},getBodyOffsetTop:function(){var e=this.domState.getOffset().top;return e+this.get("headerHeight")+r+a},getPositionFromBodyArea:function(e,t){var n=this.domState.getOffset().left,i=this.getBodyOffsetTop();return{x:e-n,y:t-i}}});e.exports=l},function(e,t,n){"use strict";var i=n(6),o=n(20),s=n(13),a=n(14).dimension.CELL_BORDER_WIDTH,r=s.extend({initialize:function(e,t){this.dataModel=t.dataModel,this.dimensionModel=t.dimensionModel,this.domState=t.domState,this.rowHeights=[],this.rowOffsets=[],this.dimensionModel.get("fixedRowHeight")&&this.listenTo(this.dataModel,"add remove reset sort",this.syncWithDataModel)},syncWithDom:function(){var e,t,n,i,o;if(!this.dimensionModel.get("fixedRowHeight")){for(e=this.domState.getRowHeights(),t=this._getHeightFromData(),n=[],i=0,o=t.length;i0)for(;i>=0&&a>0;)n=Math.max(o,e[i]-a),a-=e[i]-n,e[i]=n,i-=1;else a<0&&(e[i]+=Math.abs(a));return e},_calculateColumnWidth:function(e){return e=this._fillEmptyWidth(e),e=this._applyMinimumWidth(e),e=this._adjustWidths(e)},_fillEmptyWidth:function(e){var t=this.dimensionModel.getAvailableTotalWidth(e.length),n=t-a.sum(e),o=[];return i.each(e,function(e,t){e||o.push(t)}),this._distributeExtraWidthEqually(e,n,o)},_getFrameWidth:function(e){var t=0;return e.length&&(t=a.sum(e)+(e.length+1)*h),t},_addExtraColumnWidth:function(e,t){var n=this._fixedWidthFlags,o=[];return i.each(n,function(e,t){e||o.push(t)}),this._distributeExtraWidthEqually(e,t,o)},_reduceExcessColumnWidth:function(e,t){var n=this._minWidths,o=this._fixedWidthFlags,s=[];return i.each(e,function(e,t){o[t]||s.push({index:t,width:e-n[t]})}),this._reduceExcessColumnWidthSub(i.clone(e),t,s)},_reduceExcessColumnWidthSub:function(e,t,n){var o,s=Math.round(t/n.length),a=[];return i.each(n,function(n){n.widtha.length?this._reduceExcessColumnWidthSub(e,t,a):(o=i.pluck(n,"index"),this._distributeExtraWidthEqually(e,t,o))},_distributeExtraWidthEqually:function(e,t,n){var o=n.length,s=Math.round(t/o),a=s*o-t,r=i.clone(e);return i.each(n,function(e){r[e]+=s}),n.length&&(r[i.last(n)]-=a),r},_applyMinimumWidth:function(e){var t=this._minWidths,n=i.clone(e);return i.each(n,function(e,i){var o=t[i];e0&&o>l?this._addExtraColumnWidth(e,r):t&&r<0?this._reduceExcessColumnWidth(e,r):e},_onDimensionWidthChange:function(){var e=this.get("widths");this._isModified||(e=this._adjustWidths(e,!0)),this._setColumnWidthVariables(e)},getWidths:function(e){var t=this.columnModel.getVisibleFrozenCount(!0),n=[];switch(e){case d.L:n=this.get("widths").slice(0,t);break;case d.R:n=this.get("widths").slice(t);break;default:n=this.get("widths")}return n},getFrameWidth:function(e){var t=this.columnModel.getVisibleFrozenCount(!0),n=this.getWidths(e),o=this._getFrameWidth(n);return i.isUndefined(e)&&t>0&&(o+=h),o},setColumnWidth:function(e,t){var n=this.get("widths"),i=this._minWidths[e];n[e]&&(n[e]=Math.max(t,i),this._setColumnWidthVariables(n),this._isModified=!0)},indexOf:function(e,t){var n=this.getWidths(),i=this.getFrameWidth(),s=t?0:this.columnModel.getVisibleMetaColumnCount(),a=0;return e>=i?a=n.length-1:o.forEachArray(n,function(t,n){return t+=h,a=n,e>t&&void(e-=t)}),Math.max(0,a-s)},restoreColumnWidth:function(e){var t=this.get("originalWidths")[e];this.setColumnWidth(e,t)}});e.exports=u},function(e,t,n){"use strict";var i=n(7),o=n(13),s=n(14).dimension,a=s.TABLE_BORDER_WIDTH,r=s.CELL_BORDER_WIDTH,l=o.extend({initialize:function(e,t){this.dataModel=t.dataModel,this.columnModel=t.columnModel,this.focusModel=t.focusModel,this.dimensionModel=t.dimensionModel,this.renderModel=t.renderModel,this.coordRowModel=t.coordRowModel,this.coordColumnModel=t.coordColumnModel,this.listenTo(this.focusModel,"focus",this._onFocus)},getIndexFromMousePosition:function(e,t,n){var i=this.dimensionModel.getPositionFromBodyArea(e,t),o=this._getScrolledPosition(i);return{row:this.coordRowModel.indexOf(o.y),column:this.coordColumnModel.indexOf(o.x,n)}},_getScrolledPosition:function(e){var t=this.renderModel,n=e.x>this.dimensionModel.get("lsideWidth"),i=n?t.get("scrollLeft"):0,o=t.get("scrollTop");return{x:e.x+i,y:e.y+o}},_getRowSpanCount:function(e,t){var n=this.dataModel.get(e).getRowSpanData(t);return n.isMainRow||(e=n.mainRowKey,n=this.dataModel.get(e).getRowSpanData(t)),n.count||1},_getCellVerticalPosition:function(e,t){var n,i,o,s,a=this.coordRowModel;return n=this.dataModel.indexOfRowKey(e),i=n+t-1,o=a.getOffsetAt(n),s=a.getOffsetAt(i)+a.getHeightAt(i)+r,{top:o,bottom:s}},_getCellHorizontalPosition:function(e){for(var t=this.columnModel,n=t.getVisibleMetaColumnCount(),i=this.coordColumnModel.get("widths"),o=t.getVisibleFrozenCount()+n,s=t.indexOfColumnName(e,!0)+n,a=o>s?0:o,l=0;al+n.height,t?(s=e.leftd+n.rsideWidth-1):s=a=!1,{isUp:i,isDown:o,isLeft:s,isRight:a}},_onFocus:function(e,t,n){var o;n&&(o=this.getScrollPosition(e,t),i.isEmpty(o)||this.renderModel.set(o))},_makeScrollPosition:function(e,t,n){var i={};return e.isUp?i.scrollTop=t.top:e.isDown&&(i.scrollTop=t.bottom-n.height),e.isLeft?i.scrollLeft=t.left:e.isRight&&(i.scrollLeft=t.right-n.rsideWidth+a),i},getScrollPosition:function(e,t){var n=!this.columnModel.isLside(t),i=this.getCellPosition(e,t),o=this.dimensionModel.getBodySize(),s=this._judgeScrollDirection(i,n,o);return this._makeScrollPosition(s,i,o)}});e.exports=l},function(e,t,n){"use strict";var i=n(6),o=n(13),s=n(20),a=n(19),r=o.extend({initialize:function(e,t){var n,s=t.editingEvent+":cell";o.prototype.initialize.apply(this,arguments),i.assign(this,{dataModel:t.dataModel,columnModel:t.columnModel,coordRowModel:t.coordRowModel,domEventBus:t.domEventBus,domState:t.domState}),this.listenTo(this.dataModel,"reset",this._onResetData),this.listenTo(this.dataModel,"add",this._onAddDataModel),this.domEventBus&&(n=this.domEventBus,this.listenTo(n,s,this._onMouseClickEdit),this.listenTo(n,"mousedown:focus",this._onMouseDownFocus),this.listenTo(n,"key:move",this._onKeyMove),this.listenTo(n,"key:edit",this._onKeyEdit))},defaults:{rowKey:null,columnName:null,prevRowKey:null,prevColumnName:"",editingAddress:null,active:!1},_onResetData:function(){this.blur()},_onAddDataModel:function(e,t){t.focus&&this.focusAt(t.at,0)},_onMouseClickEdit:function(e){this.focusIn(e.rowKey,e.columnName)},_onKeyMove:function(e){var t,n;switch(e.command){case"up":t=this.prevRowKey();break;case"down":t=this.nextRowKey();break;case"left":n=this.prevColumnName();break;case"right":n=this.nextColumnName();break;case"pageUp":t=this._getPageMovedRowKey(!1);break;case"pageDown":t=this._getPageMovedRowKey(!0);break;case"firstColumn":n=this.firstColumnName();break;case"lastColumn":n=this.lastColumnName();break;case"firstCell":t=this.firstRowKey(),n=this.firstColumnName();break;case"lastCell":t=this.lastRowKey(),n=this.lastColumnName()}t=i.isUndefined(t)?this.get("rowKey"):t,n=n||this.get("columnName"),this.focus(t,n,!0)},_onKeyEdit:function(e){var t;switch(e.command){case"currentCell":t=this.which();break;case"nextCell":t=this.nextAddress();break;case"prevCell":t=this.prevAddress()}t&&this.focusIn(t.rowKey,t.columnName,!0)},_getPageMovedRowKey:function(e){var t,n=this.dataModel.indexOfRowKey(this.get("rowKey")),i=this.coordRowModel.getPageMovedIndex(n,e);return t=e?this.nextRowKey(i-n):this.prevRowKey(n-i)},_onMouseDownFocus:function(){this.focusClipboard()},_savePrevious:function(){null!==this.get("rowKey")&&this.set("prevRowKey",this.get("rowKey")),this.get("columnName")&&this.set("prevColumnName",this.get("columnName"))},isCurrentCell:function(e,t,n){var i=this.get("columnName"),o=this.get("rowKey");return n&&(o=this.dataModel.getMainRowKey(o,i)),String(o)===String(e)&&i===t},focus:function(e,t,n){return this.get("active")||this.set("active",!0),!(this._isValidCell(e,t)&&!s.isMetaColumn(t)&&!this.isCurrentCell(e,t))||!!this._triggerFocusChangeEvent(e,t)&&(this.blur(),this.set({rowKey:e,columnName:t}),this.trigger("focus",e,t,n),"radio"===this.columnModel.get("selectType")&&this.dataModel.check(e),!0)},_triggerFocusChangeEvent:function(e,t){var n=new a(null,{rowKey:e,prevRowKey:this.get("rowKey"),columnName:t,prevColumnName:this.get("columnName")});return this.trigger("focusChange",n),!n.isStopped()},focusAt:function(e,t,n){var i=this.dataModel.at(e),o=this.columnModel.at(t,!0),s=!1;return i&&o&&(s=this.focus(i.get("rowKey"),o.name,n)),s},focusIn:function(e,t,n){var i=this.focus(e,t,n);return i&&(e=this.dataModel.getMainRowKey(e,t),this.dataModel.get(e).isEditable(t)?(this.finishEditing(),this.startEditing(e,t)):this.focusClipboard()),i},focusInAt:function(e,t,n){var i=this.dataModel.at(e),o=this.columnModel.at(t,!0),s=!1;return i&&o&&(s=this.focusIn(i.get("rowKey"),o.name,n)),s},focusClipboard:function(){this.trigger("focusClipboard")},refreshState:function(){var e;this.domState.hasFocusedElement()?this.has()||(e=this.restore(),e||this.focusAt(0,0)):this.set("active",!1)},blur:function(){return this.has()?(this.has(!0)&&this._savePrevious(),this.trigger("blur",this.get("rowKey"),this.get("columnName")),this.set({rowKey:null,columnName:null}),this):this},which:function(){return{rowKey:this.get("rowKey"),columnName:this.get("columnName")}},indexOf:function(e){var t=e?this.get("prevRowKey"):this.get("rowKey"),n=e?this.get("prevColumnName"):this.get("columnName");return{row:this.dataModel.indexOfRowKey(t),column:this.columnModel.indexOfColumnName(n,!0)}},has:function(e){var t=this.get("rowKey"),n=this.get("columnName");return e?this._isValidCell(t,n):!s.isBlank(t)&&!s.isBlank(n)},restore:function(){var e=this.get("prevRowKey"),t=this.get("prevColumnName"),n=!1;return this._isValidCell(e,t)&&(this.focus(e,t),this.set({prevRowKey:null,prevColumnName:null}),n=!0),n},isEditingCell:function(e,t){var n=this.get("editingAddress");return n&&String(n.rowKey)===String(e)&&n.columnName===t},startEditing:function(e,t){if(this.get("editingAddress"))return!1;if(i.isUndefined(e)&&i.isUndefined(t))e=this.get("rowKey"),t=this.get("columnName");else if(!this.isCurrentCell(e,t,!0))return!1;return e=this.dataModel.getMainRowKey(e,t),!!this.dataModel.get(e).isEditable(t)&&(this.set("editingAddress",{rowKey:e,columnName:t}),!0)},finishEditing:function(){return!!this.get("editingAddress")&&(this.set("editingAddress",null),!0)},_isValidCell:function(e,t){var n=!s.isBlank(e)&&!!this.dataModel.get(e),i=!s.isBlank(t)&&!!this.columnModel.getColumnModel(t);return n&&i},_findRowKey:function(e){var t,n,i=this.dataModel,o=null;return this.has(!0)&&(t=Math.max(Math.min(i.indexOfRowKey(this.get("rowKey"))+e,this.dataModel.length-1),0),n=i.at(t),n&&(o=n.get("rowKey"))),o},_findColumnName:function(e){var t,n=this.columnModel,i=n.getVisibleColumns(),o=n.indexOfColumnName(this.get("columnName"),!0),s=null;return this.has(!0)&&(t=Math.max(Math.min(o+e,i.length-1),0),s=i[t]&&i[t].name),s},_getRowSpanData:function(e,t){return this.dataModel.get(e).getRowSpanData(t)},nextRowIndex:function(e){var t=this.nextRowKey(e);return this.dataModel.indexOfRowKey(t)},prevRowIndex:function(e){var t=this.prevRowKey(e);return this.dataModel.indexOfRowKey(t)},nextColumnIndex:function(){var e=this.nextColumnName();return this.columnModel.indexOfColumnName(e,!0)},prevColumnIndex:function(){var e=this.prevColumnName();return this.columnModel.indexOfColumnName(e,!0)},nextRowKey:function(e){var t,n,i=this.which(),o=i.rowKey;return e="number"==typeof e?e:1,e>1?(o=this._findRowKey(e),n=this._getRowSpanData(o,i.columnName),n.isMainRow||(o=this._findRowKey(n.count+e))):(n=this._getRowSpanData(o,i.columnName),n.isMainRow&&n.count>0?o=this._findRowKey(n.count):n.isMainRow?o=this._findRowKey(1):(t=n.count,n=this._getRowSpanData(n.mainRowKey,i.columnName),o=this._findRowKey(n.count+t))),o},prevRowKey:function(e){var t,n=this.which(),i=n.rowKey;return e="number"==typeof e?e:1,e*=-1,e<-1?(i=this._findRowKey(e),t=this._getRowSpanData(i,n.columnName),t.isMainRow||(i=this._findRowKey(t.count+e))):(t=this._getRowSpanData(i,n.columnName),i=t.isMainRow?this._findRowKey(-1):this._findRowKey(t.count-1)),i},nextColumnName:function(){return this._findColumnName(1)},prevColumnName:function(){return this._findColumnName(-1)},firstRowKey:function(){return this.dataModel.at(0).get("rowKey")},lastRowKey:function(){return this.dataModel.at(this.dataModel.length-1).get("rowKey")},firstColumnName:function(){var e=this.columnModel.getVisibleColumns();return e[0].name},lastColumnName:function(){var e=this.columnModel.getVisibleColumns(),t=e.length-1;return e[t].name},prevAddress:function(){var e,t,n=this.get("rowKey"),i=this.get("columnName"),o=i===this.firstColumnName(),s=n===this.firstRowKey();return s&&o?(e=n,t=i):o?(e=this.prevRowKey(),t=this.lastColumnName()):(e=n,t=this.prevColumnName()), +{rowKey:e,columnName:t}},nextAddress:function(){var e,t,n=this.get("rowKey"),i=this.get("columnName"),o=i===this.lastColumnName(),s=n===this.lastRowKey();return s&&o?(e=n,t=i):o?(e=this.nextRowKey(),t=this.firstColumnName()):(e=n,t=this.nextColumnName()),{rowKey:e,columnName:t}}});e.exports=r},function(e,t,n){"use strict";var i=n(6),o=n(7),s=n(13),a=n(29),r=n(30),l=n(14).renderState,d=n(14).dimension.CELL_BORDER_WIDTH,h=1e3,u=s.extend({initialize:function(e,t){var n,o,s;i.assign(this,{dataModel:t.dataModel,columnModel:t.columnModel,focusModel:t.focusModel,dimensionModel:t.dimensionModel,coordRowModel:t.coordRowModel,coordColumnModel:t.coordColumnModel}),n={dataModel:this.dataModel,columnModel:this.columnModel,focusModel:this.focusModel},o=new r([],n),s=new r([],n),this.set({lside:[],rside:[],partialLside:o,partialRside:s}),this.listenTo(this.columnModel,"columnModelChange change",this._onColumnModelChange).listenTo(this.dataModel,"sort reset",this._onDataModelChange).listenTo(this.dataModel,"delRange",this._onRangeDataModelChange).listenTo(this.dataModel,"add",this._onAddDataModelChange).listenTo(this.dataModel,"remove",this._onRemoveDataModelChange).listenTo(this.dataModel,"beforeReset",this._onBeforeResetData).listenTo(this.focusModel,"change:editingAddress",this._onEditingAddressChange).listenTo(o,"valueChange",this._executeRelation).listenTo(s,"valueChange",this._executeRelation).listenTo(this.coordRowModel,"reset",this._onChangeRowHeights).listenTo(this.dimensionModel,"columnWidthChanged",this.finishEditing).listenTo(this.dimensionModel,"change:width",this._updateMaxScrollLeft).listenTo(this.dimensionModel,"change:totalRowHeight change:scrollBarSize change:bodyHeight",this._updateMaxScrollTop),this.get("showDummyRows")&&(this.listenTo(this.dimensionModel,"change:bodyHeight change:totalRowHeight",this._resetDummyRowCount),this.on("change:dummyRowCount",this._resetDummyRows)),this.on("change",this._onChangeIndex,this),this._onChangeLayoutBound=i.bind(this._onChangeLayout,this),this._updateMaxScrollLeft()},defaults:{top:0,bottom:0,scrollTop:0,scrollLeft:0,maxScrollLeft:0,maxScrollTop:0,startIndex:-1,endIndex:-1,startNumber:1,lside:null,rside:null,partialLside:null,partialRside:null,showDummyRows:!1,dummyRowCount:0,emptyMessage:null,state:l.DONE},_onChangeLayout:function(){this.focusModel.finishEditing(),this.focusModel.focusClipboard()},_onChangeIndex:function(e){var t=e.changed,n=i.has(t,"startIndex"),o=i.has(t,"endIndex");(n||o)&&this.refresh()},_onChangeRowHeights:function(){for(var e,t=this.coordRowModel,n=this.get("partialLside"),i=this.get("partialRside"),o=0,s=n.length;oh&&this.set("state",l.LOADING)},_onEditingAddressChange:function(e,t){var n=t,o=!0,s=this;t||(n=e.previous("editingAddress"),o=!1),this._updateCellData(n.rowKey,n.columnName,{editing:o}),this._triggerEditingStateChanged(n.rowKey,n.columnName),i.defer(function(){s._toggleChangeLayoutEventHandlers(o)})},_toggleChangeLayoutEventHandlers:function(e){var t="change:scrollTop change:scrollLeft",n="columnWidthChanged";e?(this.listenToOnce(this.dimensionModel,n,this._onChangeLayoutBound),this.once(t,this._onChangeLayoutBound)):(this.stopListening(this.dimensionModel,n,this._onChangeLayoutBound),this.off(t,this._onChangeLayoutBound))},_triggerEditingStateChanged:function(e,t){var n=this.getCellData(e,t);o.pick(n,"columnModel","editOptions","useViewMode")!==!1&&null===n.convertedHTML&&this.trigger("editingStateChanged",n)},_updateCellData:function(e,t,n){var i=this._getRowModel(e,t);i&&i.setCell(t,n)},initializeVariables:function(){this.set({top:0,scrollTop:0,scrollLeft:0,startNumber:1})},getCollection:function(e){var t=this._getPartialWhichSideType(e);return this.get(t)},_getPartialWhichSideType:function(e){return o.isString(e)?"partial"+e+"side":"partialRside"},_onColumnModelChange:function(){this.set({scrollTop:0},{silent:!0}),this._resetViewModelList(),this._setRenderingRange(!0),this.refresh({change:!1,columnModelChanged:!0})},_onDataModelChange:function(){this._resetViewModelList(),this._setRenderingRange(!0),this.refresh({type:"reset",dataListChanged:!0})},_onAddDataModelChange:function(e,t){var n,o,s,a,r=this._getColumnNamesOfEachSide(),l=t.at;this._setRenderingRange(!0),e=i.isArray(e)?e:e.models,i.each(e,function(e,t){n=this.coordRowModel.getHeightAt(t),i.each(["lside","rside"],function(i){s=l+t+1,o=this._createViewDataFromDataModel(e,r[i],n,s),a=this._createRowModel(o,!0),this.get(i).splice(l+t,0,a)},this)},this),this.refresh({type:"add",dataListChanged:!0}),t.focus&&this.focusModel.focusAt(t.at,0)},_onRemoveDataModelChange:function(e,t){i.each(["lside","rside"],function(e){this.get(e).splice(t,1)},this),this._setRenderingRange(!0),this.refresh({dataListChanged:!0})},_onRangeDataModelChange:function(e,t){var n=this.columnModel;this._setRenderingRange(!0),i.each(["partialLside","partialRside"],function(o){i.each(this.get(o).models,function(o){var s=o.get("rowKey"),a=i.contains(e,s);a&&i.each(t,function(e){n.getColumnModel(e).editOptions&&this._updateCellData(s,e,{value:"",formattedValue:""})},this)},this)},this),this.refresh({type:"delRange",dataListChanged:!0})},_resetDummyRows:function(){this._clearDummyRows(),this._fillDummyRows(),this.trigger("rowListChanged")},_setRenderingRange:function(e){var t=this.dataModel.length;this.set({startIndex:t?0:-1,endIndex:t-1},{silent:e})},_createViewDataFromDataModel:function(e,t,n,o){var s={rowNum:o,height:n,rowKey:e.get("rowKey"),_extraData:e.get("_extraData")};return i.each(t,function(t){var n=e.get(t);"_number"!==t||i.isNumber(n)||(n=o),s[t]=n}),s},_getColumnNamesOfEachSide:function(){var e=this.columnModel.getVisibleFrozenCount(!0),t=this.columnModel.getVisibleColumns(null,!0),n=i.pluck(t,"name"),o={lside:n.slice(0,e),rside:n.slice(e)};return o},_addViewModelListWithRange:function(e,t){var n,i,o,s=this._getColumnNamesOfEachSide();if(e>=0&&t>=0)for(o=e;o<=t;o+=1)n=this.dataModel.at(o),i=this.coordRowModel.getHeightAt(o),this._addViewModelList(n,s,i,o)},_addViewModelList:function(e,t,n,o){i.each(["lside","rside"],function(i){var s;this.get(i)[o]||(s=this._createViewDataFromDataModel(e,t[i],n,o+1),this.get(i)[o]=this._createRowModel(s,!0))},this)},_updateRowNumber:function(e,t){for(var n,i,o,s=this.get("lside"),a=e;a<=t;a+=1)n=s[a],o=a+1,n&&(i=n.get("rowNum"),o=a+1,i!==o&&(n.set({rowNum:o},{silent:!0}),n.setCell("_number",{formattedValue:o,value:o})))},_resetPartialViewModelList:function(e,t){var n,o,s,a;i.each(["L","R"],function(i){n=i.toLowerCase()+"side",o=this._getPartialWhichSideType(i),s=this.get(n),a=s.slice(e,t+1),this.get(o).reset(a)},this)},_getActualRowCount:function(){return this.get("endIndex")-this.get("startIndex")+1},_clearDummyRows:function(){var e=this.get("endIndex")-this.get("startIndex")+1;i.each(["lside","rside"],function(t){for(var n=this.get(t);n.length>e;)n.pop()},this)},_resetDummyRowCount:function(){var e=this.dimensionModel,t=e.get("totalRowHeight"),n=e.get("rowHeight")+d,i=e.get("bodyHeight")-e.getScrollXHeight(),o=0;t=0&&n>=0)for(i=t;i<=n;i+=1)this._executeRelation(i);o?this.trigger("columnModelChanged"):(this.trigger("rowListChanged",s),s&&this.coordRowModel.syncWithDom()),this._refreshState()},_refreshState:function(){this.dataModel.length?this.set("state",l.DONE):this.set("state",l.EMPTY)},_getCollectionByColumnName:function(e){var t,n=this.get("partialLside");return t=n.at(0)&&n.at(0).get(e)?n:this.get("partialRside")},_getRowModel:function(e,t){var n=this._getCollectionByColumnName(t);return n.get(e)},getCellData:function(e,t){var n=this._getRowModel(e,t),i=null;return n&&(i=n.get(t)),i},_executeRelation:function(e){var t,n,o=this.dataModel.at(e),s=e-this.get("startIndex");n=o.executeRelationCallbacksAll(),i.each(n,function(e,n){t=this._getCollectionByColumnName(n).at(s),t&&t.setCell(n,e)},this)},_createRowModel:function(e,t){return new a(e,{parse:t,dataModel:this.dataModel,columnModel:this.columnModel,focusModel:this.focusModel})},_resetViewModelList:function(){i.each(["lside","rside"],function(e){this.set(e,new Array(this.dataModel.length))},this)}});e.exports=u},function(e,t,n){"use strict";var i=n(6),o=n(7),s=n(13),a=n(20),r=s.extend({initialize:function(e,t){var n=e&&e.rowKey,i=t.dataModel,o=i.get(n);this.dataModel=i,this.columnModel=t.columnModel,this.focusModel=t.focusModel,o&&(this.listenTo(o,"change",this._onDataModelChange),this.listenTo(o,"restore",this._onDataModelRestore),this.listenTo(o,"extraDataChanged",this._setRowExtraData),this.listenTo(i,"disabledChanged",this._onDataModelDisabledChanged),this.rowData=o)},idAttribute:"rowKey",_onDataModelChange:function(e){i.each(e.changed,function(t,n){var i,o;this.has(n)&&(i=this.columnModel.getColumnModel(n),o=this.columnModel.isTextType(n),this.setCell(n,this._getValueAttrs(t,e,i,o)))},this)},_onDataModelRestore:function(e){var t=this.get(e);t&&this.trigger("restore",t)},_getColumnNameList:function(){var e=this.columnModel.getVisibleColumns(null,!0);return i.pluck(e,"name")},_onDataModelDisabledChanged:function(){var e=this._getColumnNameList();i.each(e,function(e){this.setCell(e,{disabled:this.rowData.isDisabled(e),className:this._getClassNameString(e)})},this)},_setRowExtraData:function(){i.each(this._getColumnNameList(),function(e){var t,n=this.get(e);!o.isUndefined(n)&&n.isMainRow&&(t=this.rowData.getCellState(e),this.setCell(e,{disabled:t.disabled,editable:t.editable,className:this._getClassNameString(e)}))},this)},parse:function(e,t){return this._formatData(e,t.dataModel,t.columnModel,t.focusModel)},_formatData:function(e,t,n,s){var a,r,l=e.rowKey,d=e.height;return i.isUndefined(l)?e:(r=t.get(l),a=i.omit(e,"rowKey","_extraData","height","rowNum"),i.each(a,function(a,h){var u=this._getRowSpanData(h,e,t.isRowSpanEnable()),c=r.getCellState(h),g=n.isTextType(h),m=n.getColumnModel(h);e[h]={rowKey:l,height:d,columnName:h,rowSpan:u.count,isMainRow:u.isMainRow,mainRowKey:u.mainRowKey,editable:c.editable,disabled:c.disabled,editing:s.isEditingCell(l,h),whiteSpace:m.whiteSpace||"nowrap",valign:m.valign,listItems:o.pick(m,"editOptions","listItems"),className:this._getClassNameString(h,r,s),columnModel:m,changed:[]},i.assign(e[h],this._getValueAttrs(a,r,m,g))},this),e)},_getClassNameString:function(e,t,n){var i;return t||(t=this.dataModel.get(this.get("rowKey")))?(n||(n=this.focusModel),i=t.getClassNameList(e),i.join(" ")):""},_getValueAttrs:function(e,t,n,i){var s=o.pick(n,"editOptions","prefix"),a=o.pick(n,"editOptions","postfix"),r=o.pick(n,"editOptions","converter"),l=t.toJSON();return{value:this._getValueToDisplay(e,n,i),formattedValue:this._getFormattedValue(e,l,n),prefix:this._getExtraContent(s,e,l),postfix:this._getExtraContent(a,e,l),convertedHTML:this._getConvertedHTML(r,e,l)}},_getFormattedValue:function(e,t,n){var o;return o=i.isFunction(n.formatter)?n.formatter(e,t,n):e,i.isNumber(o)?o=String(o):o||(o=""),o},_getExtraContent:function(e,t,n){var s="";return i.isFunction(e)?s=e(t,n):o.isExisty(e)&&(s=e),s},_getConvertedHTML:function(e,t,n){var o=null;return i.isFunction(e)&&(o=e(t,n)),o===!1&&(o=null),o},_getValueToDisplay:function(e,t,n){var i=o.isExisty,s=t.useHtmlEntity,a=t.defaultValue;return i(e)||(e=i(a)?a:""),n&&s&&o.hasEncodableString(e)&&(e=o.encodeHTMLEntity(e)),e},_getRowSpanData:function(e,t,n){var i=o.pick(t,"_extraData","rowSpanData",e);return n&&i||(i={mainRowKey:t.rowKey,count:0,isMainRow:!0}),i},updateClassName:function(e){this.setCell(e,{className:this._getClassNameString(e)})},setCell:function(e,t){var n,o,s,r=!1,l=[];this.has(e)&&(o=this.get("rowKey"),s=i.clone(this.get(e)),i.each(t,function(e,t){a.isEqual(s[t],e)||(r="value"===t||r,s[t]=e,l.push(t))},this),l.length&&(s.changed=l,this.set(e,s,{silent:this._shouldSetSilently(s,r)}),r&&(n=this.dataModel.indexOfRowKey(o),this.trigger("valueChange",n))))},_shouldSetSilently:function(e,t){var n=e.editing&&t,s=o.pick(e,"columnModel","editOptions","useViewMode")!==!1,a=i.contains(e.changed,"editing")&&e.editing;return n||s&&a}});e.exports=r},function(e,t,n){"use strict";var i=n(6),o=n(16),s=n(29),a=o.extend({initialize:function(e,t){i.assign(this,{dataModel:t.dataModel,columnModel:t.columnModel,focusModel:t.focusModel})},model:s});e.exports=a},function(e,t,n){"use strict";var i=n(6),o=n(28),s=n(14).dimension,a=s.CELL_BORDER_WIDTH,r=.3,l=.1,d=o.extend({initialize:function(){o.prototype.initialize.apply(this,arguments),this.on("change:scrollTop",this._onChangeScrollTop,this),this.listenTo(this.dimensionModel,"change:bodyHeight",this._onChangeBodyHeight)},_onChangeScrollTop:function(){this._shouldRefresh(this.get("scrollTop"))&&this._setRenderingRange()},_onChangeBodyHeight:function(){this._setRenderingRange()},_setRenderingRange:function(e){var t,n,i=this.get("scrollTop"),o=this.dimensionModel,s=this.dataModel,l=this.coordRowModel,d=o.get("bodyHeight"),h=parseInt(d*r,10),u=Math.max(l.indexOf(i-h),0),c=Math.min(l.indexOf(i+d+h),s.length-1);s.isRowSpanEnable()&&(u+=this._getStartRowSpanMinCount(u),c+=this._getEndRowSpanMaxCount(c)),t=l.getOffsetAt(u),n=l.getOffsetAt(c)+l.getHeightAt(c)+a,this.set({top:t,bottom:n,startIndex:u,endIndex:c},{silent:e})},_getStartRowSpanMinCount:function(e){var t,n=this.dataModel.at(e),o=0;return n&&(t=i.pluck(n.getRowSpanData(),"count"),t.push(0),o=i.min(t)),o},_getEndRowSpanMaxCount:function(e){var t,n=this.dataModel.at(e),o=0;return n&&(t=i.pluck(n.getRowSpanData(),"count"),t.push(0),o=i.max(t)),o>0&&(o-=1),o},_shouldRefresh:function(e){var t=this.dimensionModel.get("bodyHeight"),n=e+t,i=this.dimensionModel.get("totalRowHeight"),o=this.get("top"),s=this.get("bottom"),a=parseInt(t*l,10),r=e-o0||d&&sn.row&&(s.row=e[1]),t[1]>n.column&&(s.column=t[1])),s},_isValidAddress:function(e){return!!this.dataModel.at(e.row)&&!!this.columnModel.at(e.colummn)},_scrollTo:function(e,t){var n,i,o,s,a=this.dataModel.at(e),r=this.columnModel.at(t);a&&r&&(n=a.get("rowKey"),i=r.name,s=this.coordConverterModel.getScrollPosition(n,i),s&&(o=this.getType(),o===l.COLUMN?delete s.scrollTop:o===l.ROW&&delete s.scrollLeft,this.renderModel.set(s)))},_getTypeByColumnIndex:function(e){var t=this.columnModel.getVisibleColumns(null,!0),n=t[e].name;switch(n){case"_button":return null;case"_number":return l.ROW;default:return l.CELL}},_onMouseDownBody:function(e){var t,n,i=this.coordConverterModel.getIndexFromMousePosition(e.pageX,e.pageY,!0),o=this._getTypeByColumnIndex(i.column);o&&(t=i.row,n=i.column-this.columnModel.getVisibleMetaColumnCount(),e.shiftKey?this.update(t,Math.max(n,0)):o===l.ROW?this.selectRow(t):(this.focusModel.focusAt(t,n),this.end()))},_onDragMoveBody:function(e){var t=this.coordConverterModel.getIndexFromMousePosition(e.pageX,e.pageY);this.update(t.row,t.column,this.getSelectionUnit()),this._setScrolling(e.pageX,e.pageY)},_onDragEndBody:function(){this.stopAutoScroll()},_onPasteData:function(e){this.start(e.startIdx.row,e.startIdx.column),this.update(e.endIdx.row,e.endIdx.column)},_getColumnRangeWithNames:function(e){var t=this.columnModel,n=o.map(e,function(e){return t.indexOfColumnName(e,!0)}),i=r.getMinMax(n);return[i.min,i.max]},setType:function(e){this.selectionType=l[e]||this.selectionType},getType:function(){return this.selectionType},getSelectionUnit:function(){return this.get("selectionUnit").toUpperCase()},enable:function(){this.enabled=!0},disable:function(){this.end(),this.enabled=!1},isEnabled:function(){return this.enabled},start:function(e,t,n){this.isEnabled()&&(this.setType(n),this.inputRange={row:[e,e],column:[t,t]},this._resetRangeAttribute())},update:function(e,t,n){var i;!this.enabled||n!==l.COLUMN&&e<0||n!==l.ROW&&t<0||(this.hasSelection()?this.setType(n):(i=this.focusModel.indexOf(),n===l.ROW?this.start(i.row,0,l.ROW):this.start(i.row,i.column,l.CELL)),this._updateInputRange(e,t),this._resetRangeAttribute())},_updateInputRange:function(e,t){var n=this.inputRange;this.selectionType===l.ROW?t=this.columnModel.getVisibleColumns().length-1:this.selectionType===l.COLUMN&&(e=this.dataModel.length-1),n.row[1]=e,n.column[1]=t},_extendColumnSelection:function(e,t,n){var i,o=this.minimumColumnRange,s=this.coordConverterModel.getIndexFromMousePosition(t,n),a={row:[0,this.dataModel.length-1],column:[]};e&&e.length||(e=[s.column]),this._setScrolling(t,n),o?i=r.getMinMax(e.concat(o)):(e.push(this.inputRange.column[0]),i=r.getMinMax(e)),a.column.push(i.min,i.max),this._resetRangeAttribute(a)},_setScrolling:function(e,t){var n=this.dimensionModel.getOverflowFromMousePosition(e,t);this.stopAutoScroll(),this._isAutoScrollable(n.x,n.y)&&(this.intervalIdForAutoScroll=setInterval(o.bind(this._adjustScroll,this,n.x,n.y)))},end:function(){this.inputRange=null,this.unset("range"),this.minimumColumnRange=null},stopAutoScroll:function(){o.isNull(this.intervalIdForAutoScroll)||(clearInterval(this.intervalIdForAutoScroll),this.intervalIdForAutoScroll=null)},selectRow:function(e){this.isEnabled()&&(this.focusModel.focusAt(e,0),this.start(e,0,l.ROW),this.update(e,this.columnModel.getVisibleColumns().length-1))},selectColumn:function(e){this.isEnabled()&&(this.focusModel.focusAt(0,e),this.start(0,e,l.COLUMN),this.update(this.dataModel.length-1,e))},selectAll:function(){this.isEnabled()&&(this.start(0,0,l.CELL),this.update(this.dataModel.length-1,this.columnModel.getVisibleColumns().length-1))},getStartIndex:function(){var e=this.get("range");return{row:e.row[0],column:e.column[0]}},getEndIndex:function(){var e=this.get("range");return{row:e.row[1],column:e.column[1]}},hasSelection:function(){return!!this.get("range")},_isSingleCell:function(e,t){var n=1===e.length,i=1===t.length,o=n&&!i&&t[0].getRowSpanData(e[0]).count===t.length;return n&&i||o},getValuesToString:function(){var e=this.renderModel,t=this.columnModel,n=this._getRangeRowList(),i=this._getRangeColumnNames(),s=o.map(n,function(n){return o.map(i,function(i){return t.getCopyOptions(i).useFormattedValue?e.getCellData(n.get("rowKey"),i).formattedValue:n.getValueString(i)}).join("\t")});return this._isSingleCell(i,n)?s[0]:s.join("\n")},_getRangeRowList:function(){var e=this.get("range").row;return this.dataModel.slice(e[0],e[1]+1)},_getRangeColumnNames:function(){var e=this.get("range").column,t=this.columnModel.getVisibleColumns().slice(e[0],e[1]+1);return o.pluck(t,"name")},_isAutoScrollable:function(e,t){return!(0===e&&0===t)},_adjustScroll:function(e,t){var n=this.renderModel;e&&this._adjustScrollLeft(e,n.get("scrollLeft"),n.get("maxScrollLeft")),t&&this._adjustScrollTop(t,n.get("scrollTop"),n.get("maxScrollTop"))},_adjustScrollLeft:function(e,t,n){var i=t,o=this.scrollPixelScale;e<0?i=Math.max(0,t-o):e>0&&(i=Math.min(n,t+o)),this.renderModel.set("scrollLeft",i)},_adjustScrollTop:function(e,t,n){var i=t,o=this.scrollPixelScale;e<0?i=Math.max(0,t-o):e>0&&(i=Math.min(n,t+o)),this.renderModel.set("scrollTop",i)},_resetRangeAttribute:function(e){var t,n,i,s=this.dataModel;if(e=e||this.inputRange,!e)return void this.set("range",null);if(n={row:o.sortBy(e.row),column:o.sortBy(e.column)},s.isRowSpanEnable()&&this.selectionType===l.CELL){do i=o.assign([],n.row),n=this._getRowSpannedIndex(n),t=n.row[0]!==i[0]||n.row[1]!==i[1];while(t);this._setRangeMinMax(n.row,n.column)}this.set("range",n)},_triggerSelectionEvent:function(){var e,t,n,i,o,s,r,l=this.get("range"),d=this.dataModel,h=this.columnModel;l&&(e=l.row,t=l.column,i=d.getRowDataAt(e[0]),s=h.at(t[0]),o=d.getRowDataAt(e[1]),r=h.at(t[1]),i&&o&&s&&r&&(n=new a(null,{range:{start:[i,s],end:[o,r]}}),this.trigger("selection",n)))},_setRangeMinMax:function(e,t){e&&(e[0]=Math.max(0,e[0]),e[1]=Math.min(this.dataModel.length-1,e[1])),t&&(t[0]=Math.max(0,t[0]),t[1]=Math.min(this.columnModel.getVisibleColumns().length-1,t[1]))},_concatRowSpanIndexFromStart:function(e){var t,n=e.startIndex,i=e.endIndex,o=e.columnName,s=e.startRowSpanDataMap&&e.startRowSpanDataMap[o],a=e.startIndexList,r=e.endIndexList;s&&(s.isMainRow?(t=n+s.count-1,t>i&&r.push(t)):(t=n+s.count,a.push(t)))},_concatRowSpanIndexFromEnd:function(e){var t,n,i=e.endIndex,o=e.columnName,s=e.endRowSpanDataMap&&e.endRowSpanDataMap[o],a=e.endIndexList,r=e.dataModel;s&&(s.isMainRow?(t=i+s.count-1,a.push(t)):(t=i+s.count,n=r.at(t).getRowSpanData(o),t+=n.count-1,t>i&&a.push(t)))},_getRowSpannedIndex:function(e){var t,n,s,a=this.columnModel.getVisibleColumns().slice(e.column[0],e.column[1]+1),r=this.dataModel,l=[e.row[0]],d=[e.row[1]],h=r.at(e.row[0]),u=r.at(e.row[1]),c=i.extend({},e);return h&&u?(t=r.at(e.row[0]).getRowSpanData(),n=r.at(e.row[1]).getRowSpanData(),o.each(a,function(i){s={columnName:i.name,startIndex:e.row[0],endIndex:e.row[1],endRowSpanDataMap:n,startRowSpanDataMap:t,startIndexList:l,endIndexList:d,dataModel:r},this._concatRowSpanIndexFromStart(s),this._concatRowSpanIndexFromEnd(s)},this),c.row=[Math.min.apply(null,l),Math.max.apply(null,d)],c):c}});e.exports=d},function(e,t,n){"use strict";var i=n(6),o=n(7),s=n(13),a=n(14).summaryType,r=s.extend({initialize:function(e,t){this.dataModel=t.dataModel,this.autoColumnNames=t.autoColumnNames,this.columnSummaryMap={},this.listenTo(this.dataModel,"add remove reset",this._resetSummaryMap),this.listenTo(this.dataModel,"change",this._onChangeData),this.listenTo(this.dataModel,"delRange",this._onDeleteRangeData),this._resetSummaryMap()},_calculate:function(e){var t,n,i=Number.MAX_VALUE,o=Number.MIN_VALUE,s=0,r=e.length,l={};for(t=0;tn&&(i=n),o").addClass(r.BORDER_LINE).addClass(e)}var o,s=n(11),a=n(8),r=n(22),l=n(14).frame;o=a.extend({initialize:function(e){a.prototype.initialize.call(this),this.viewFactory=e.viewFactory,this.dimensionModel=e.dimensionModel,this._addFrameViews()},className:r.CONTENT_AREA,_addFrameViews:function(){var e=this.viewFactory;this._addChildren([e.createFrame(l.L),e.createFrame(l.R)])},render:function(){var e=this.dimensionModel,t=e.getScrollXHeight(),n=this._renderChildren().concat([i(r.BORDER_TOP),i(r.BORDER_LEFT),i(r.BORDER_RIGHT),i(r.BORDER_BOTTOM).css("bottom",t)]);return e.get("scrollX")||this.$el.addClass(r.NO_SCROLL_X),e.get("scrollY")||this.$el.addClass(r.NO_SCROLL_Y),this.$el.append(n),this}}),e.exports=o},function(e,t,n){"use strict";var i=n(6),o=n(40),s=n(8),a={totalItems:1,itemsPerPage:10,visiblePages:5,centerAlign:!0},r="tui-pagination",l=s.extend({initialize:function(e){this.dimensionModel=e.dimensionModel,this.componentHolder=e.componentHolder,this._stopEventPropagation(),this.on("appended",this._onAppended)},className:r,render:function(){return this._destroyChildren(),this.componentHolder.setInstance("pagination",this._createComponent()),this},_stopEventPropagation:function(){this.$el.mousedown(function(e){e.stopPropagation()})},_onAppended:function(){this.dimensionModel.set("paginationHeight",this.$el.outerHeight())},_createOptionObject:function(){var e=this.componentHolder.getOptions("pagination");return e===!0&&(e={}),i.assign({},a,e)},_createComponent:function(){var e=o;if(!e)throw new Error("Cannot find component 'tui.component.Pagination'");return new e(this.$el,this._createOptionObject())}});e.exports=l},function(e,t){e.exports=s},function(e,t,n){"use strict";var i=n(8),o=n(22),s=n(42),a=i.extend({initialize:function(e){this.dimensionModel=e.dimensionModel,this.domEventBus=e.domEventBus,this.dragEmitter=new s({type:"resizeHeight",cursor:"row-resize",domEventBus:this.domEventBus}),this.on("appended",this._onAppended)},className:o.HEIGHT_RESIZE_HANDLE,events:{mousedown:"_onMouseDown"},_onAppended:function(){this.dimensionModel.set("resizeHandleHeight",this.$el.outerHeight())},_onMouseDown:function(e){e.preventDefault(),this.dragEmitter.start(e,{mouseOffsetY:e.offsetY})},render:function(){return this.$el.html(""),this}});e.exports=a},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(7),a=n(19),r=s.defineClass({init:function(e){o.assign(this,{type:e.type,domEventBus:e.domEventBus,onDragMove:e.onDragMove,onDragEnd:e.onDragEnd,cursor:e.cursor,startData:null})},start:function(e,t){var n=new a(e,t);this.domEventBus.trigger("dragstart:"+this.type,n),n.isStopped()||this._startDrag(e.target,t)},_startDrag:function(e,t){this.startData=t,this._attachDragEvents(),this.cursor&&i("body").css("cursor",this.cursor),e.setCapture&&e.setCapture()},_endDrag:function(){this.startData=null,this._detachDragEvents(),this.cursor&&i("body").css("cursor","default"),document.releaseCapture&&document.releaseCapture()},_onMouseMove:function(e){var t=new a(e,{startData:this.startData,pageX:e.pageX,pageY:e.pageY});o.isFunction(this.onDragMove)&&this.onDragMove(t),t.isStopped()||this.domEventBus.trigger("dragmove:"+this.type,t)},_onMouseUp:function(e){var t=new a(e,{startData:this.startData});o.isFunction(this.onDragEnd)&&this.onDragEnd(t),t.isStopped()||(this.domEventBus.trigger("dragend:"+this.type,t),this._endDrag())},_onSelectStart:function(e){e.preventDefault()},_attachDragEvents:function(){i(document).on("mousemove.grid",o.bind(this._onMouseMove,this)).on("mouseup.grid",o.bind(this._onMouseUp,this)).on("selectstart.grid",o.bind(this._onSelectStart,this))},_detachDragEvents:function(){i(document).off(".grid")}});e.exports=r},function(e,t,n){"use strict";var i=n(6),o=n(8),s=n(14).renderState,a=n(22),r=n(44),l=n(14).dimension.TABLE_BORDER_WIDTH,d=o.extend({initialize:function(e){this.dimensionModel=e.dimensionModel,this.renderModel=e.renderModel,this.listenTo(this.dimensionModel,"change",this._refreshLayout),this.listenTo(this.renderModel,"change:state",this.render)},className:a.LAYER_STATE,template:i.template('

<%= text %>

<% if (isLoading) { %>
<% } %>
'),render:function(){var e=this.renderModel.get("state");return e===s.DONE?this.$el.hide():this._showLayer(e),this},_showLayer:function(e){var t=this.template({text:this._getMessage(e),isLoading:e===s.LOADING});this.$el.html(t).show(),this._refreshLayout()},_getMessage:function(e){switch(e){case s.LOADING:return r.get("onLoading");case s.EMPTY:return this.renderModel.get("emptyMessage")||r.get("noData");default:return null}},_refreshLayout:function(){var e=this.dimensionModel,t=e.get("headerHeight"),n=e.get("bodyHeight"),i=e.getScrollXHeight(),o=e.getScrollYWidth();this.$el.css({top:t-l,height:n-i-l,left:0,right:o})}});e.exports=d},function(e,t,n){"use strict";var i=n(20),o={en:{createAction:"create",updateAction:"update",deleteAction:"delete",modifyAction:"modify",requestConfirm:"Are you sure you want to {{actionName}} {{count}} data?",noDataResponse:"No data to {{actionName}}.",errorResponse:"An error occurred while requesting data.\n\nPlease try again.",noData:"No data.",onLoading:"Your request is being processed.",resizeHandleGuide:"You can change the width of the column by mouse drag, and initialize the width by double-clicking."},ko:{createAction:"입력",updateAction:"수정",deleteAction:"삭제",modifyAction:"반영",requestConfirm:"{{count}}건의 데이터를 {{actionName}}하시겠습니까?",noDataResponse:"{{actionName}}할 데이터가 없습니다.",errorResponse:"데이터 요청 중에 에러가 발생하였습니다.\n\n다시 시도하여 주시기 바랍니다.",noData:"데이터가 존재하지 않습니다.",onLoading:"요청을 처리 중입니다.",resizeHandleGuide:"마우스 드래그를 통해 컬럼의 넓이를 변경할 수 있고, 더블클릭을 통해 넓이를 초기화할 수 있습니다."}},s=o.en;e.exports={setLanguage:function(e){s=o[e]},get:function(e,t){var n=s[e];return t&&(n=i.replaceText(n,t)),n}}},function(e,t,n){"use strict";function i(e){return"key:clipboard"!==e.type}function o(e){return"key:clipboard"===e.type&&"paste"===e.command}var s,a=n(11),r=n(6),l=n(7),d=n(8),h=n(21),u=n(46),c=n(22),g=10,m=l.browser.edge,f=!!window.clipboardData;s=d.extend({initialize:function(e){r.assign(this,{focusModel:e.focusModel,clipboardModel:e.clipboardModel,domEventBus:e.domEventBus,isLocked:!1,lockTimerId:null}),this.listenTo(this.focusModel,"focusClipboard",this._onFocusClipboard),this.listenTo(this.clipboardModel,"change:text",this._onClipboardTextChange)},tagName:"div",className:c.CLIPBOARD,attributes:{contenteditable:!0},events:{keydown:"_onKeyDown",copy:"_onCopy",paste:"_onPaste",blur:"_onBlur"},render:function(){return this},_onBlur:function(){var e=this.focusModel;setTimeout(function(){e.refreshState()},0)},_onKeyDown:function(e){var t;return this.isLocked?void e.preventDefault():(t=u.generate(e),void(t&&(this._lock(),i(t)&&e.preventDefault(),o(t)||this.domEventBus.trigger(t.type,t))))},_onCopy:function(e){var t=this.clipboardModel.get("text");f||(e.originalEvent||e).clipboardData.setData("text/plain",t),e.preventDefault()},_onPaste:function(e){var t=(e.originalEvent||e).clipboardData||window.clipboardData;m||f?this._pasteInMSBrowsers(t):(e.preventDefault(),this._pasteInOtherBrowsers(t))},_onFocusClipboard:function(){try{this._hasFocus()||(this.$el.focus(),this._hasFocus()||this.$el.focus())}catch(e){}},_onClipboardTextChange:function(){var e=this.clipboardModel.get("text");f?window.clipboardData.setData("Text",e):this.$el.html(e).focus()},_pasteInOtherBrowsers:function(e){var t,n=this.clipboardModel,i=e.getData("text/html");i&&a(i).find("tbody").length>0?(this.$el.html(""+a(i).find("tbody").html()+"
"),t=this.$el.find("table")[0],i=h.convertTableToData(t),this.$el.html("")):(i=e.getData("text/plain"),i=h.convertTextToData(i)),n.pasteClipboardDataToGrid(i)},_pasteInMSBrowsers:function(e){var t,n=this,i=this.clipboardModel,o=e.getData("Text");o=h.convertTextToData(o),setTimeout(function(){n.$el.find("table").length>0&&(t=n.$el.find("table")[0],o=h.convertTableToData(t)),n.$el.html(""),i.pasteClipboardDataToGrid(o)},0)},_lock:function(){this.isLocked=!0,this.lockTimerId=setTimeout(r.bind(this._unlock,this),g)},_unlock:function(){this.isLocked=!1,this.lockTimerId=null},_hasFocus:function(){return this.$el.is(":focus")}}),s.KEYDOWN_LOCK_TIME=g,e.exports=s},function(e,t,n){"use strict";function i(e){var t=[];return(e.ctrlKey||e.metaKey)&&t.push("ctrl"),e.shiftKey&&t.push("shift"),t.push(r[e.keyCode]),t.join("-")}var o=n(6),s=n(19),a={tab:9,enter:13,ctrl:17,esc:27,left:37,up:38,right:39,down:40,a:65,c:67,v:86,space:32,pageUp:33,pageDown:34,home:36,end:35,del:46},r=o.invert(a),l={up:["move","up"],down:["move","down"],left:["move","left"],right:["move","right"],pageUp:["move","pageUp"],pageDown:["move","pageDown"],home:["move","firstColumn"],end:["move","lastColumn"],enter:["edit","currentCell"],space:["edit","currentCell"],tab:["edit","nextCell"],del:["delete"],"shift-tab":["edit","prevCell"],"shift-up":["select","up"],"shift-down":["select","down"],"shift-left":["select","left"],"shift-right":["select","right"],"shift-pageUp":["select","pageUp"],"shift-pageDown":["select","pageDown"],"shift-home":["select","firstColumn"],"shift-end":["select","lastColumn"],"ctrl-a":["select","all"],"ctrl-c":["clipboard","copy"],"ctrl-v":["clipboard","paste"],"ctrl-home":["move","firstCell"],"ctrl-end":["move","lastCell"],"ctrl-shift-home":["select","firstCell"],"ctrl-shift-end":["select","lastCell"]};e.exports={generate:function(e){var t,n=i(e),o=l[n];return o&&(t=new s(e,{type:"key:"+o[0],command:o[1]})),t}}},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(48),a=n(22),r=n(14).frame,l=s.extend({initialize:function(){s.prototype.initialize.apply(this,arguments),o.assign(this,{whichSide:r.L}),this.listenTo(this.dimensionModel,"change:lsideWidth",this._onFrameWidthChanged)},className:a.LSIDE_AREA,_onFrameWidthChanged:function(){this.$el.css({width:this.dimensionModel.get("lsideWidth")})},beforeRender:function(){this.$el.css({display:"block",width:this.dimensionModel.get("lsideWidth")})},afterRender:function(){this.dimensionModel.get("scrollX")&&this.$el.append(i("
").addClass(a.SCROLLBAR_LEFT_BOTTOM))}});e.exports=l},function(e,t,n){"use strict";var i=n(6),o=n(8),s=n(14).frame,a=o.extend({initialize:function(e){o.prototype.initialize.call(this),i.assign(this,{viewFactory:e.viewFactory,renderModel:e.renderModel,dimensionModel:e.dimensionModel,whichSide:e.whichSide||s.R}),this.listenTo(this.renderModel,"columnModelChanged",this.render)},render:function(){var e=this.viewFactory;return this.$el.empty(),this._destroyChildren(),this.beforeRender(),this._addChildren([e.createHeader(this.whichSide),e.createBody(this.whichSide),e.createFooter(this.whichSide)]),this.$el.append(this._renderChildren()),this.afterRender(),this},beforeRender:function(){},afterRender:function(){}});e.exports=a},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(48),a=n(22),r=n(14),l=r.frame,d=r.dimension.CELL_BORDER_WIDTH,h=s.extend({initialize:function(){s.prototype.initialize.apply(this,arguments),o.assign(this,{whichSide:l.R,$scrollBorder:null}),this.listenTo(this.dimensionModel,"change:lsideWidth change:rsideWidth",this._onFrameWidthChanged),this.listenTo(this.dimensionModel,"change:bodyHeight change:headerHeight",this._resetScrollBorderHeight)},className:a.RSIDE_AREA,_onFrameWidthChanged:function(){this._refreshLayout()},_refreshLayout:function(){var e=this.dimensionModel,t=e.get("rsideWidth"),n=e.get("lsideWidth");n>0&&!e.isDivisionBorderDoubled()&&(t+=d,n-=d),this.$el.css({width:t,marginLeft:n})},_resetScrollBorderHeight:function(){var e,t;this.$scrollBorder&&(e=this.dimensionModel,t=e.get("bodyHeight")-e.getScrollXHeight(),this.$scrollBorder.height(t))},beforeRender:function(){this.$el.css("display","block"),this._refreshLayout()},afterRender:function(){var e,t,n,o,s=this.dimensionModel;s.get("scrollY")&&(e=s.get("headerHeight"),t=s.get("footerHeight"),n=i("
").addClass(a.SCROLLBAR_HEAD),o=i("
").addClass(a.SCROLLBAR_BORDER),n.height(e-2),o.css("top",e+"px"),this.$el.append(n,o),s.get("scrollX")&&this.$el.append(i("
").addClass(a.SCROLLBAR_RIGHT_BOTTOM)),t&&s.get("scrollY")&&this.$el.append(i("
").addClass(a.FOOT_AREA_RIGHT).css("height",t-d)),this.$scrollBorder=o,this._resetScrollBorderHeight())}});e.exports=h},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(8),a=n(20),r=n(14),l=n(22),d=n(19),h=n(42),u=r.frame,c=10,g=r.keyCode,m=r.attrName.COLUMN_NAME,f=r.dimension.CELL_BORDER_WIDTH,p=r.dimension.TABLE_BORDER_WIDTH,M=200,_=s.extend({initialize:function(e){s.prototype.initialize.call(this),o.assign(this,{renderModel:e.renderModel,coordColumnModel:e.coordColumnModel,selectionModel:e.selectionModel,focusModel:e.focusModel,columnModel:e.columnModel,dataModel:e.dataModel,coordRowModel:e.coordRowModel,viewFactory:e.viewFactory,domEventBus:e.domEventBus,headerHeight:e.headerHeight,whichSide:e.whichSide||u.R}),this.dragEmitter=new h({type:"header",domEventBus:this.domEventBus,onDragMove:o.bind(this._onDragMove,this)}),this.listenTo(this.renderModel,"change:scrollLeft",this._onScrollLeftChange).listenTo(this.coordColumnModel,"columnWidthChanged",this._onColumnWidthChanged).listenTo(this.selectionModel,"change:range",this._refreshSelectedHeaders).listenTo(this.focusModel,"change:columnName",this._refreshSelectedHeaders).listenTo(this.dataModel,"sortChanged",this._updateBtnSortState),this.whichSide===u.L&&"checkbox"===this.columnModel.get("selectType")&&this.listenTo(this.dataModel,"change:_button disabledChanged extraDataChanged add remove reset",o.debounce(o.bind(this._syncCheckedState,this),c))},className:l.HEAD_AREA,events:{click:"_onClick","keydown input":"_onKeydown","mousedown th":"_onMouseDown"},template:o.template('<%=colGroup%><%=tBody%>
'),templateHeader:o.template('="<%=columnName%>" class="<%=className%>" height="<%=height%>" <%if(colspan > 0) {%>colspan=<%=colspan%> <%}%><%if(rowspan > 0) {%>rowspan=<%=rowspan%> <%}%>><%=title%><%=btnSort%>'),templateCol:o.template('="<%=columnName%>" style="width:<%=width%>px">'),markupBtnSort:'',_getColGroupMarkup:function(){var e=this._getColumnData(),t=e.widths,n=e.columns,i=[];return o.each(t,function(e,t){i.push(this.templateCol({attrColumnName:m,columnName:n[t].name,width:e+f}))},this),i.join("")},_getSelectedColumnNames:function(){var e=this.selectionModel.get("range").column,t=this.columnModel.getVisibleColumns(),n=t.slice(e[0],e[1]+1);return o.pluck(n,"name")},_onDragMove:function(e){var t=i(e.target);e.setData({columnName:t.closest("th").attr(m),isOnHeaderArea:i.contains(this.el,t[0])})},_getContainingMergedColumnNames:function(e){var t=this.columnModel,n=o.pluck(t.get("complexHeaderColumns"),"name");return o.filter(n,function(n){var i=t.getUnitColumnNamesIfMerged(n);return o.every(i,function(t){return o.contains(e,t)})})},_refreshSelectedHeaders:function(){var e,t,n=this.$el.find("th");this.selectionModel.hasSelection()?e=this._getSelectedColumnNames():this.focusModel.has(!0)&&(e=[this.focusModel.get("columnName")]),n.removeClass(l.CELL_SELECTED),e&&(t=this._getContainingMergedColumnNames(e),o.each(e.concat(t),function(e){n.filter("["+m+'="'+e+'"]').addClass(l.CELL_SELECTED)}))},_onKeydown:function(e){e.keyCode===g.TAB&&(e.preventDefault(),this.focusModel.focusClipboard())},_onMouseDown:function(e){var t,n=i(e.target);this._triggerPublicMousedown(e)&&(n.hasClass(l.BTN_SORT)||(t=n.closest("th").attr(m),t&&this.dragEmitter.start(e,{columnName:t})))},_triggerPublicMousedown:function(e){var t,n,o,s=new d(e,d.getTargetInfo(i(e.target)));return t=(new Date).getTime(),this.domEventBus.trigger("mousedown",s),n=(new Date).getTime(),o=n-t>M,!s.isStopped()&&!o},_getHeaderMainCheckbox:function(){return this.$el.find("th["+m+'="_button"] input')},_syncCheckedState:function(){var e,t,n=this.dataModel.getCheckedState();e=this._getHeaderMainCheckbox(),e.length&&(t=n.available?{checked:n.available===n.checked,disabled:!1}:{checked:!1,disabled:!0},e.prop(t))},_onColumnWidthChanged:function(){var e=this.coordColumnModel.getWidths(this.whichSide),t=this.$el.find("col"),n=this.coordRowModel;o.each(e,function(e,n){t.eq(n).css("width",e+f)}),this.whichSide===u.R&&o.defer(function(){n.syncWithDom()})},_onScrollLeftChange:function(e,t){this.whichSide===u.R&&(this.el.scrollLeft=t)},_onClick:function(e){var t=i(e.target),n=t.closest("th").attr(m),o=new d(e);"_button"===n&&t.is("input")?(o.setData({checked:t.prop("checked")}),this.domEventBus.trigger("click:headerCheck",o)):t.is("a."+l.BTN_SORT)&&(o.setData({columnName:n}),this.domEventBus.trigger("click:headerSort",o))},_updateBtnSortState:function(e){var t;this._$currentSortBtn&&this._$currentSortBtn.removeClass(l.BTN_SORT_DOWN+" "+l.BTN_SORT_UP),this._$currentSortBtn=this.$el.find("th["+m+'="'+e.columnName+'"] a.'+l.BTN_SORT),t=e.ascending?l.BTN_SORT_UP:l.BTN_SORT_DOWN,this._$currentSortBtn.addClass(t)},render:function(){return this._destroyChildren(),this.$el.css({height:this.headerHeight-p}).html(this.template({colGroup:this._getColGroupMarkup(),tBody:this._getTableBodyMarkup()})),this.coordColumnModel.get("resizable")&&(this._addChildren(this.viewFactory.createHeaderResizeHandle(this.whichSide)),this.$el.append(this._renderChildren())),this},_getColumnData:function(){var e=this.coordColumnModel.getWidths(this.whichSide),t=this.columnModel.getVisibleColumns(this.whichSide,!0);return{widths:e,columns:t}},_getTableBodyMarkup:function(){var e,t,n=this._getColumnHierarchyList(),i=this._getHierarchyMaxRowCount(n),s=this.headerHeight,r=new Array(i),d=new Array(i),h=[],u=a.getRowHeight(i,s)-1,c=1;return o.each(n,function(t,a){var g=n[a].length,f=0;o.each(t,function(t,n){var o=t.name,a=[l.CELL,l.CELL_HEAD];t.validation&&t.validation.required&&a.push(l.CELL_REQRUIRED),c=g-1===n&&i-g+1>1?i-g+1:1,e=u*c,n===g-1?e=s-f-2:f+=e+1,d[n]===o?(r[n].pop(),h[n]+=1):h[n]=1,d[n]=o,r[n]=r[n]||[],r[n].push(this.templateHeader({attrColumnName:m,columnName:o,className:a.join(" "),height:e,colspan:h[n],rowspan:c,title:t.title,btnSort:t.sortable?this.markupBtnSort:""}))},this)},this),t=o.map(r,function(e){return""+e.join("")+""}),t.join("")},_getHierarchyMaxRowCount:function(e){var t=[0];return o.each(e,function(e){t.push(e.length)},this),Math.max.apply(Math,t)},_getColumnHierarchyList:function(){var e,t=this._getColumnData().columns;return e=o.map(t,function(e){return this._getColumnHierarchy(e).reverse()},this)},_getColumnHierarchy:function(e,t){var n=this.columnModel.get("complexHeaderColumns");return t=t||[],e&&(t.push(e),n&&o.each(n,function(n){i.inArray(e.name,n.childNames)!==-1&&this._getColumnHierarchy(n,t)},this)),t}});_.DELAY_SYNC_CHECK=c,e.exports=_},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(7),a=n(8),r=n(14),l=n(22),d=n(42),h=n(44),u=r.attrName,c=r.frame,g=r.dimension.CELL_BORDER_WIDTH,m=r.dimension.RESIZE_HANDLE_WIDTH,f=a.extend({initialize:function(e){o.assign(this,{columnModel:e.columnModel,coordColumnModel:e.coordColumnModel,domEventBus:e.domEventBus,headerHeight:e.headerHeight,whichSide:e.whichSide||c.R}),this.dragEmitter=new d({type:"resizeColumn",cursor:"col-resize",domEventBus:this.domEventBus,onDragMove:o.bind(this._onDragMove,this)}),this.listenTo(this.coordColumnModel,"columnWidthChanged",this._refreshHandlerPosition)},className:l.COLUMN_RESIZE_CONTAINER,events:function(){var e={};return e["mousedown ."+l.COLUMN_RESIZE_HANDLE]="_onMouseDown",e["dblclick ."+l.COLUMN_RESIZE_HANDLE]="_onDblClick",e},template:o.template("
'),_getColumnData:function(){var e=this.coordColumnModel.getWidths(this.whichSide),t=this.columnModel.getVisibleColumns(this.whichSide,!0);return{widths:e,columns:t}},_getResizeHandlerMarkup:function(){var e=this._getColumnData(),t=e.columns,n=t.length,i=o.map(t,function(e,t){return this.template({lastClass:t+1===n?l.COLUMN_RESIZE_HANDLE_LAST:"",columnIndex:t,columnName:e.name,height:this.headerHeight,title:h.get("resizeHandleGuide"),displayType:e.resizable===!1?"none":"block"})},this);return i.join("")},render:function(){var e=this.headerHeight,t=this._getResizeHandlerMarkup();return this.$el.empty().html(t).css({marginTop:-e,height:e,display:"block"}),this._refreshHandlerPosition(),this},_refreshHandlerPosition:function(){var e=this._getColumnData(),t=e.widths,n=this.$el.find("."+l.COLUMN_RESIZE_HANDLE),i=Math.floor(m/2),o=0;s.forEachArray(n,function(e,s){var a=n.eq(s);o+=t[s]+g,a.css("left",o-i)})},_onMouseDown:function(e){var t=i(e.target),n=this.coordColumnModel.getWidths(this.whichSide),o=parseInt(t.attr(u.COLUMN_INDEX),10);this.dragEmitter.start(e,{width:n[o],columnIndex:this._getHandlerColumnIndex(o),pageX:e.pageX})},_onDragMove:function(e){var t=e.startData,n=e.pageX-t.pageX;e.setData({columnIndex:t.columnIndex,width:t.width+n})},_onDblClick:function(e){var t=i(e.target),n=parseInt(t.attr(u.COLUMN_INDEX),10);this.domEventBus.trigger("dblclick:resizeColumn",{columnIndex:this._getHandlerColumnIndex(n)})},_getHandlerColumnIndex:function(e){return this.whichSide===c.R?e+this.columnModel.getVisibleFrozenCount(!0):e}});e.exports=f},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(8),a=n(42),r=n(19),l=n(14),d=n(22),h=l.frame,u=200,c=10,g=s.extend({initialize:function(e){s.prototype.initialize.call(this),o.assign(this,{dimensionModel:e.dimensionModel,renderModel:e.renderModel,viewFactory:e.viewFactory,domEventBus:e.domEventBus,$container:null,whichSide:e&&e.whichSide||h.R}),this.listenTo(this.dimensionModel,"change:bodyHeight",this._onBodyHeightChange).listenTo(this.dimensionModel,"change:totalRowHeight",this._resetContainerHeight).listenTo(this.renderModel,"change:scrollTop",this._onScrollTopChange).listenTo(this.renderModel,"change:scrollLeft",this._onScrollLeftChange),this.dragEmitter=new a({type:"body",domEventBus:this.domEventBus,onDragMove:o.bind(this._onDragMove,this)})},className:d.BODY_AREA,events:function(){var e={};return e.scroll="_onScroll",e["mousedown ."+d.BODY_CONTAINER]="_onMouseDown",e},_onBodyHeightChange:function(e,t){this.$el.css("height",t+"px")},_resetContainerHeight:function(){this.$container.css({height:this.dimensionModel.get("totalRowHeight")})},_onScroll:function(e){var t={scrollTop:e.target.scrollTop};this.whichSide===h.R&&(t.scrollLeft=e.target.scrollLeft),this.renderModel.set(t)},_onScrollLeftChange:function(e,t){this.whichSide===h.R&&(this.el.scrollLeft=t)},_onScrollTopChange:function(e,t){this.el.scrollTop=t},_onMouseDown:function(e){var t=i(e.target),n=t.is("input, teaxarea");this._triggerPublicMousedown(e)&&(this._triggerBodyMousedown(e),n&&e.shiftKey&&e.preventDefault(),n&&!e.shiftKey||this.dragEmitter.start(e,{pageX:e.pageX,pageY:e.pageY}))},_triggerPublicMousedown:function(e){var t,n,o=new r(e,r.getTargetInfo(i(e.target))),s=!0;return o.targetType===r.targetTypeConst.DUMMY?s=!1:(t=(new Date).getTime(),this.domEventBus.trigger("mousedown",o),o.isStopped()?s=!1:(n=(new Date).getTime(),s=n-t<=u)),s},_triggerBodyMousedown:function(e){var t=new r(e,{pageX:e.pageX,pageY:e.pageY,shiftKey:e.shiftKey});this.domEventBus.trigger("mousedown:body",t)},_onDragMove:function(e){var t=e.startData,n={pageX:e.pageX,pageY:e.pageY};this._getMouseMoveDistance(t,n)").addClass(d.BODY_CONTAINER),this.$el.append(this.$container),this._addChildren([this.viewFactory.createBodyTable(e),this.viewFactory.createSelectionLayer(e),this.viewFactory.createFocusLayer(e)]),this.$container.append(this._renderChildren()),this._resetContainerHeight(),this}});e.exports=g},function(e,t,n){"use strict";var i=n(6),o=n(8),s=n(14),a=n(22),r=s.dimension.CELL_BORDER_WIDTH,l=s.attrName.COLUMN_NAME,d=o.extend({initialize:function(e){o.prototype.initialize.call(this),i.assign(this,{dimensionModel:e.dimensionModel,coordColumnModel:e.coordColumnModel,renderModel:e.renderModel,columnModel:e.columnModel,viewFactory:e.viewFactory,painterManager:e.painterManager,whichSide:e.whichSide||"R"}),this.listenTo(this.coordColumnModel,"columnWidthChanged",this._onColumnWidthChanged),this.listenTo(this.renderModel,"change:dummyRowCount",this._onChangeDummyRowCount),this.listenTo(this.dimensionModel,"change:bodyHeight",this._resetHeight),this._attachAllTableEventHandlers()},className:a.BODY_TABLE_CONTAINER,template:i.template('<%=colGroup%><%=tbody%>
'),templateCol:i.template('="<%=columnName%>" style="width:<%=width%>px">'),_onColumnWidthChanged:function(){var e=this.coordColumnModel.getWidths(this.whichSide),t=this.$el.find("col");i.each(e,function(e,n){t.eq(n).css("width",e+r)},this)},_onChangeDummyRowCount:function(){this._resetOverflow(),this._resetHeight()},_resetOverflow:function(){var e="visible";this.renderModel.get("dummyRowCount")>0&&(e="hidden"),this.$el.css("overflow",e)},_resetHeight:function(){var e=this.dimensionModel;this.renderModel.get("dummyRowCount")>0?this.$el.height(e.get("bodyHeight")-e.getScrollXHeight()):this.$el.css("height","")},resetTablePosition:function(){this.$el.css("top",this.renderModel.get("top"))},render:function(){return this._destroyChildren(),this.$el.html(this.template({colGroup:this._getColGroupMarkup(),tbody:""})),this._addChildren(this.viewFactory.createRowList({bodyTableView:this,el:this.$el.find("tbody"),whichSide:this.whichSide})),this._renderChildren(),this._resetHeight(),this._resetOverflow(),this},_attachAllTableEventHandlers:function(){var e=this.painterManager.getCellPainters();i.each(e,function(e){e.attachEventHandlers(this.$el,"")},this)},redrawTable:function(e){return this.$el[0].innerHTML=this.template({colGroup:this._getColGroupMarkup(),tbody:e}),this.$el.find("tbody")},_getColGroupMarkup:function(){var e=this.whichSide,t=this.coordColumnModel.getWidths(e),n=this.columnModel.getVisibleColumns(e,!0),o="";return i.each(n,function(e,n){o+=this.templateCol({attrColumnName:l,columnName:e.name,width:t[n]+r})},this),o}});e.exports=d},function(e,t,n){"use strict";var i=n(6),o=n(8),s=n(22),a=n(14),r=a.frame,l=a.attrName.COLUMN_NAME,d=o.extend({initialize:function(e){this.columnTemplateMap=e.columnTemplateMap||{},this.whichSide=e.whichSide,this.columnModel=e.columnModel,this.dimensionModel=e.dimensionModel,this.coordColumnModel=e.coordColumnModel,this.renderModel=e.renderModel,this.summaryModel=e.summaryModel,this.listenTo(this.renderModel,"change:scrollLeft",this._onChangeScrollLeft),this.listenTo(this.coordColumnModel,"columnWidthChanged",this._onChangeColumnWidth),this.listenTo(this.columnModel,"setFooterContent",this._setColumnContent),this.summaryModel&&this.listenTo(this.summaryModel,"change",this._onChangeSummaryValue)},className:s.FOOT_AREA,events:{scroll:"_onScrollView"},template:i.template('<%=tbody%>
'),templateHeader:i.template('="<%=columnName%>" class="<%=className%>" style="width:<%=width%>px"><%=value%>'),_onScrollView:function(e){this.whichSide===r.R&&this.renderModel.set("scrollLeft",e.target.scrollLeft)},_onChangeScrollLeft:function(e,t){this.whichSide===r.R&&(this.el.scrollLeft=t)},_onChangeColumnWidth:function(){var e=this.coordColumnModel.getWidths(this.whichSide),t=this.$el.find("th");i.each(e,function(e,n){t.eq(n).css("width",e)})},_setColumnContent:function(e,t){var n=this.$el.find("th["+l+'="'+e+'"]');n.html(t)},_onChangeSummaryValue:function(e,t){var n=this._generateValueHTML(e,t);this._setColumnContent(e,n)},_generateValueHTML:function(e,t){var n=this.columnTemplateMap[e],o="";return i.isFunction(n)&&(o=n(t)),o},_generateTbodyHTML:function(){var e=this.summaryModel,t=this.columnModel.getVisibleColumns(this.whichSide,!0),n=this.coordColumnModel.getWidths(this.whichSide);return i.reduce(t,function(t,i,o){var a,r=i.name;return e&&(a=e.getValue(i.name)),t+this.templateHeader({attrColumnName:l,columnName:r,className:s.CELL_HEAD+" "+s.CELL,width:n[o],value:this._generateValueHTML(r,a)})},"",this)},render:function(){var e=this.dimensionModel.get("footerHeight");return e&&this.$el.html(this.template({className:s.TABLE,height:e,tbody:this._generateTbodyHTML()})),this}});e.exports=d},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(7),a=n(8),r=n(14),l=n(22),d=r.attrName,h=r.frame,u=r.dimension.CELL_BORDER_WIDTH,c=a.extend({initialize:function(e){var t=e.focusModel,n=e.renderModel,i=e.selectionModel,s=e.coordRowModel,a=e.whichSide||"R";o.assign(this,{ +whichSide:a,bodyTableView:e.bodyTableView,focusModel:t,renderModel:n,selectionModel:i,coordRowModel:s,dataModel:e.dataModel,columnModel:e.columnModel,collection:n.getCollection(a),painterManager:e.painterManager,sortOptions:null,renderedRowKeys:null}),this.listenTo(this.collection,"change",this._onModelChange).listenTo(this.collection,"restore",this._onModelRestore).listenTo(t,"change:rowKey",this._refreshFocusedRow).listenTo(n,"rowListChanged",this.render),this.whichSide===h.L&&this.listenTo(t,"change:rowKey",this._refreshSelectedMetaColumns).listenTo(i,"change:range",this._refreshSelectedMetaColumns).listenTo(n,"rowListChanged",this._refreshSelectedMetaColumns)},_getColumns:function(){return this.columnModel.getVisibleColumns(this.whichSide,!0)},_removeOldRows:function(e){var t=o.indexOf(this.renderedRowKeys,e[0]),n=o.indexOf(this.renderedRowKeys,o.last(e)),i=this.$el.children("tr");i.slice(0,t).remove(),i.slice(n+1).remove()},_appendNewRows:function(e,t){var n=this.collection.slice(0,o.indexOf(e,t[0])),i=this.collection.slice(o.indexOf(e,o.last(t))+1);this.$el.prepend(this._getRowsHtml(n)),this.$el.append(this._getRowsHtml(i))},_resetRows:function(){var e,t=this._getRowsHtml(this.collection.models);if(c.isInnerHtmlOfTbodyReadOnly)e=this.bodyTableView.redrawTable(t),this.setElement(e,!1);else try{this.$el[0].innerHTML=t}catch(e){c.isInnerHtmlOfTbodyReadOnly=!0,this._resetRows()}},_getRowsHtml:function(e){var t=this.painterManager.getRowPainter(),n=o.pluck(this._getColumns(),"name");return o.map(e,function(e){return t.generateHtml(e,n)}).join("")},_getRowElement:function(e){return this.$el.find("tr["+d.ROW_KEY+"="+e+"]")},_refreshSelectedMetaColumns:function(){var e,t=this.$el.find("tr"),n="."+l.CELL_HEAD;e=this.selectionModel.hasSelection()?this._filterRowsByIndexRange(t,this.selectionModel.get("range").row):this._filterRowByKey(t,this.focusModel.get("rowKey")),t.find(n).removeClass(l.CELL_SELECTED),e.find(n).addClass(l.CELL_SELECTED)},_filterRowsByIndexRange:function(e,t){var n,o,s=this.renderModel,a=s.get("startIndex");return n=Math.max(t[0]-a,0),o=Math.max(t[1]-a+1,0),n||o?e.slice(n,o):i()},_filterRowByKey:function(e,t){var n=this.dataModel.indexOfRowKey(t),o=this.renderModel.get("startIndex");return o>n?i():e.eq(n-o)},_refreshFocusedRow:function(){var e=this.focusModel.get("rowKey"),t=this.focusModel.get("prevRowKey");this._setFocusedRowClass(t,!1),this._setFocusedRowClass(e,!0)},_setFocusedRowClass:function(e,t){var n=o.pluck(this._getColumns(),"name"),i={};o.each(n,function(n){var o,s=this.dataModel.getMainRowKey(e,n);i[s]||(i[s]=this._getRowElement(s)),o=i[s].find("td["+d.COLUMN_NAME+'="'+n+'"]'),o.toggleClass(l.CELL_CURRENT_ROW,t)},this)},render:function(e){var t,n=this.collection.pluck("rowKey");return this.bodyTableView.resetTablePosition(),e?this._resetRows():(t=o.intersection(n,this.renderedRowKeys),o.isEmpty(n)||o.isEmpty(t)||t.length/n.length<.7?this._resetRows():(this._removeOldRows(t),this._appendNewRows(n,t))),this.renderedRowKeys=n,this},_onModelChange:function(e){var t=e.get("rowKey"),n=this._getRowElement(t);"height"in e.changed?n.css("height",e.get("height")+u):(this.painterManager.getRowPainter().refresh(e.changed,n),this.coordRowModel.syncWithDom())},_onModelRestore:function(e){var t=this.dataModel.getElement(e.rowKey,e.columnName),n=this.columnModel.getEditType(e.columnName);this.painterManager.getCellPainter(n).refresh(e,t),this.coordRowModel.syncWithDom()}},{isInnerHtmlOfTbodyReadOnly:s.browser.msie&&s.browser.version<=9});e.exports=c},function(e,t,n){"use strict";var i=n(6),o=n(8),s=n(22),a=n(14).dimension.CELL_BORDER_WIDTH,r=n(14).frame,l=o.extend({initialize:function(e){i.assign(this,{whichSide:e.whichSide||r.R,dimensionModel:e.dimensionModel,coordRowModel:e.coordRowModel,coordColumnModel:e.coordColumnModel,columnModel:e.columnModel,selectionModel:e.selectionModel}),this._updateColumnWidths(),this.listenTo(this.coordColumnModel,"columnWidthChanged",this._onChangeColumnWidth),this.listenTo(this.selectionModel,"change:range",this.render)},className:s.LAYER_SELECTION,_updateColumnWidths:function(){this.columnWidths=this.coordColumnModel.getWidths(this.whichSide)},_onChangeColumnWidth:function(){this._updateColumnWidths(),this.render()},_getOwnSideColumnRange:function(e){var t=this.columnModel.getVisibleFrozenCount(),n=null;return this.whichSide===r.L?e[0]=t&&(n=[Math.max(e[0],t)-t,e[1]-t]),n},_getVerticalStyles:function(e){var t=this.coordRowModel,n=t.getOffsetAt(e[0]),i=t.getOffsetAt(e[1])+t.getHeightAt(e[1]);return{top:n+"px",height:i-n+"px"}},_getHorizontalStyles:function(e){var t=this.columnWidths,n=this.columnModel.getVisibleMetaColumnCount(),i=e[0],o=e[1],s=0,l=0,d=0;for(this.whichSide===r.L&&(i+=n,o+=n),o=Math.min(o,t.length-1);d<=o;d+=1)de&&this.$el.css("left",e-t)},_adjustCellOffsetValue:function(e){var t=o.browser,n=e;return t.msie&&(9===t.version?n=e-1:t.version>9&&(n=Math.floor(e))),n},_calculateLayoutStyle:function(e,t,n){var i=this.domState.getOffset(),o=this.domState.getElement(e,t),s=o.offset(),r=o.outerHeight()+a,l=o.outerWidth()+a;return{top:this._adjustCellOffsetValue(s.top)-i.top,left:this._adjustCellOffsetValue(s.left)-i.left,height:r,minWidth:n?l:"",width:n?"":l,lineHeight:r+"px"}},_onEditingStateChanged:function(e){e.editing?this._startEditing(e):this._finishEditing()},render:function(){return i.each(this.inputPainters,function(e){e.attachEventHandlers(this.$el,"")},this),this}});e.exports=d},function(e,t,n){"use strict";var i,o=n(6),s=n(36),a=n(8),r=n(22),l="yyyy-MM-dd",d=[[new Date(1900,0,1),new Date(2999,11,31)]];i=a.extend({initialize:function(e){this.focusModel=e.focusModel,this.textPainter=e.textPainter,this.columnModel=e.columnModel,this.domState=e.domState,this.datePickerMap=this._createDatePickers(),this.$focusedInput=null,this.listenTo(this.textPainter,"focusIn",this._onFocusInTextInput),this.listenTo(e.domEventBus,"windowResize",this._closeDatePickerLayer)},className:r.LAYER_DATE_PICKER,events:{click:"_onClick"},_onClick:function(e){e.stopPropagation()},_createDatePickers:function(){var e={},t=this.columnModel.get("columnModelMap");return o.each(t,function(t){var n,i=t.name,o=t.component;o&&"datePicker"===o.name&&(n=o.options||{},e[i]=new s(this.$el,n),this._bindEventOnDatePicker(e[i]))},this),e},_bindEventOnDatePicker:function(e){var t=this;e.on("open",function(){t.textPainter.blockFocusingOut()}),e.on("close",function(){var e=t.focusModel,n=e.which(),i=n.rowKey,o=n.columnName,s=t.$focusedInput.val();t.textPainter.unblockFocusingOut(),e.isEditingCell(i,o)&&e.dataModel.setValue(i,o,s),e.finishEditing()})},_resetDatePicker:function(e,t,n){var i=this.datePickerMap[n],o=e.format||l,s=e.date||new Date,a=e.selectableRanges;i.setInput(t,{format:o,syncFromInput:!0}),a?i.setRanges(a):i.setRanges(d),""===t.val()&&(i.setDate(s),t.val(""))},_calculatePosition:function(e){var t=e.offset(),n=e.outerHeight(),i=this.domState.getOffset();return{top:t.top-i.top+n,left:t.left-i.left}},_onFocusInTextInput:function(e,t){var n,i=t.columnName,o=this.columnModel.getColumnModel(i).component,s=this.columnModel.getEditType(i);"text"===s&&o&&"datePicker"===o.name&&(n=o.options||{},this.$focusedInput=e,this.$el.css(this._calculatePosition(e)).show(),this._resetDatePicker(n,e,i),this.datePickerMap[i].open())},_closeDatePickerLayer:function(){var e=this.focusModel.which().columnName,t=this.datePickerMap[e];t&&t.isOpened()&&t.close()},render:function(){return this.$el.hide(),this}}),e.exports=i},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(8),a=n(14),r=n(22),l=a.frame,d=a.dimension.CELL_BORDER_WIDTH,h='
',u=r.LAYER_FOCUS_DEACTIVE,c=s.extend({initialize:function(e){this.focusModel=e.focusModel,this.columnModel=e.columnModel,this.coordRowModel=e.coordRowModel,this.coordColumnModel=e.coordColumnModel,this.coordConverterModel=e.coordConverterModel,this.whichSide=e.whichSide,this.borderEl={$top:i(h),$left:i(h),$right:i(h),$bottom:i(h)},this.listenTo(this.coordColumnModel,"columnWidthChanged",this._refreshCurrentLayout),this.listenTo(this.coordRowModel,"reset",this._refreshCurrentLayout),this.listenTo(this.focusModel,"blur",this._onBlur),this.listenTo(this.focusModel,"focus",this._onFocus),this.listenTo(this.focusModel,"change:active",this._onChangeActiveState)},className:r.LAYER_FOCUS,_refreshCurrentLayout:function(){var e=this.focusModel;"none"!==this.$el.css("display")&&this._refreshBorderLayout(e.get("rowKey"),e.get("columnName"))},_onBlur:function(){this.$el.hide()},_onFocus:function(e,t){var n=this.columnModel.isLside(t)?l.L:l.R;n===this.whichSide&&(this._refreshBorderLayout(e,t),this.$el.show())},_onChangeActiveState:function(e){e.changed.active?this.$el.removeClass(u):this.$el.addClass(u)},_refreshBorderLayout:function(e,t){var n=this.coordConverterModel.getCellPosition(e,t),i=n.right-n.left,o=n.bottom-n.top;this.borderEl.$left.css({top:n.top,left:n.left,width:d,height:o+d}),this.borderEl.$top.css({top:0===n.top?d:n.top,left:n.left,width:i+d,height:d}),this.borderEl.$right.css({top:n.top,left:n.left+i,width:d,height:o+d}),this.borderEl.$bottom.css({top:n.top+o,left:n.left,width:i+d,height:d})},render:function(){var e=this.$el;return o.each(this.borderEl,function(t){e.append(t)}),e.hide(),this}});e.exports=c},function(e,t,n){"use strict";var i=n(6),o=n(9);e.exports={create:function(){return i.extend({},o.Events)}}},function(e,t,n){"use strict";var i=n(6),o=n(7),s=n(14).attrName,a=n(22),r=o.defineClass({init:function(e){this.$el=e},_getBodyTableRows:function(e){return this.$el.find("."+e).find("."+a.BODY_TABLE_CONTAINER).find("tr["+s.ROW_KEY+"]")},_getMaxCellHeight:function(e){var t=e.find("."+a.CELL_CONTENT).map(function(){return this.scrollHeight}).get();return i.max(t)},getElement:function(e,t){return this.$el.find("tr["+s.ROW_KEY+"="+e+"]").find("td["+s.COLUMN_NAME+'="'+t+'"]')},getRowHeights:function(){var e,t,n,i,o=this._getBodyTableRows(a.LSIDE_AREA),s=this._getBodyTableRows(a.RSIDE_AREA),r=[];for(n=0,i=o.length;n" class="<%=className%>" style="height: <%=height%>px;"><%=contents%>'),_getEditType:function(e,t){var n=o.pick(t.columnModel,"editOptions","type");return n||"normal"},_generateHtmlForDummyRow:function(e,t){var n=this.painterManager.getCellPainter("dummy"),o="";return i.each(t,function(t){o+=n.generateHtml(e,t)}),o},_generateHtmlForActualRow:function(e,t){var n="";return i.each(t,function(t){var i,o,s=e.get(t);s&&s.isMainRow&&(i=this._getEditType(t,s),o=this.painterManager.getCellPainter(i),n+=o.generateHtml(s))},this),n},generateHtml:function(e,t){var n,o=e.get("rowKey"),s=e.get("rowNum"),a=s%2?r.ROW_ODD:r.ROW_EVEN,h="";return i.isUndefined(o)?n=this._generateHtmlForDummyRow(s,t):(h=l.ROW_KEY+'="'+o+'"',n=this._generateHtmlForActualRow(e,t)),this.template({rowKeyAttr:h,height:e.get("height")+d,contents:n,className:a})},refresh:function(e,t){i.each(e,function(e,n){var i,o,s;"_extraData"!==n&&(s=t.find("td["+l.COLUMN_NAME+'="'+n+'"]'),i=this._getEditType(n,e),o=this.painterManager.getCellPainter(i),o.refresh(e,s))},this)}});e.exports=h},function(e,t,n){"use strict";var i=n(6),o=n(7),s=n(14).attrName,a=o.defineClass({init:function(e){this.controller=e.controller},events:{},selector:"",_getCellAddress:function(e){var t=e.closest("["+s.ROW_KEY+"]");return{rowKey:t.attr(s.ROW_KEY),columnName:t.attr(s.COLUMN_NAME)}},attachEventHandlers:function(e,t){i.each(this.events,function(n,o){var s=i.bind(this[n],this),a=t+" "+this.selector;e.on(o,a,s)},this)},generateHtml:function(){throw new Error("implement generateHtml() method")}});e.exports=a},function(e,t,n){"use strict";var i=n(6),o=n(7),s=n(65),a=n(20),r=n(14).attrName,l=n(22),d=o.defineClass(s,{init:function(e){s.apply(this,arguments),this.editType=e.editType,this.fixedRowHeight=e.fixedRowHeight,this.inputPainter=e.inputPainter,this.selector="td["+r.EDIT_TYPE+'="'+this.editType+'"]'},template:i.template(' style="<%=style%>"><%=contentHtml%>'),contentTemplate:i.template('
<%=content%>
'),_isEditableType:function(){return!i.contains(["normal","mainButton"],this.editType)},_getContentStyle:function(e){var t=e.columnModel.whiteSpace||"nowrap",n=[];return t&&n.push("white-space:"+t),this.fixedRowHeight&&n.push("max-height:"+e.height+"px"),n.join(";")},_getContentHtml:function(e){var t,n,o=e.columnModel.template,s=e.formattedValue,a=e.prefix,r=e.postfix;return this.inputPainter&&(s=this.inputPainter.generateHtml(e),this._shouldContentBeWrapped()&&!this._isUsingViewMode(e)&&(a=this._getSpanWrapContent(a,l.CELL_CONTENT_BEFORE),r=this._getSpanWrapContent(r,l.CELL_CONTENT_AFTER),s=this._getSpanWrapContent(s,l.CELL_CONTENT_INPUT),t=a+r+s)),t||(t=a+s+r),n="_number"===e.columnName&&i.isFunction(o)?o({content:t}):this.contentTemplate({content:t,className:l.CELL_CONTENT,style:this._getContentStyle(e)})},_isUsingViewMode:function(e){return o.pick(e,"columnModel","editOptions","useViewMode")!==!1},_shouldContentBeWrapped:function(){return i.contains(["text","password","select"],this.editType)},_getSpanWrapContent:function(e,t){return o.isFalsy(e)&&(e=""),''+e+""},_getAttributes:function(e){var t=[e.className,l.CELL],n={align:e.columnModel.align||"left"};return n.class=t.join(" "),n[r.EDIT_TYPE]=this.editType,n[r.ROW_KEY]=e.rowKey,n[r.COLUMN_NAME]=e.columnName,e.rowSpan&&(n.rowspan=e.rowSpan),n},attachEventHandlers:function(e,t){s.prototype.attachEventHandlers.call(this,e,t),this.inputPainter&&this.inputPainter.attachEventHandlers(e,t+" "+this.selector)},generateHtml:function(e){var t=a.getAttributesString(this._getAttributes(e)),n=this._getContentHtml(e),i=e.columnModel.valign,o=[];return i&&o.push("vertical-align:"+i),this.template({attributeString:t,style:o.join(";"),contentHtml:n})},refresh:function(e,t){var n=["value","editing","disabled","listItems"],o=i.contains(e.changed,"editing")&&e.editing,s=i.intersection(n,e.changed).length>0,a=this._getAttributes(e),r="mainButton"===this.editType;t.attr(a),o&&!this._isUsingViewMode(e)?this.inputPainter.focus(t):r?t.find(this.inputPainter.selector).prop({checked:e.value,disabled:e.disabled}):s&&(t.html(this._getContentHtml(e)),t.scrollLeft(0))}});e.exports=d},function(e,t,n){"use strict";var i=n(6),o=n(7),s=n(65),a=n(20),r=n(14).attrName,l=n(22),d=o.defineClass(s,{init:function(){s.apply(this,arguments)},selector:"td["+r.EDIT_TYPE+'="dummy"]',template:i.template("'),generateHtml:function(e,t){var n=[l.CELL,l.CELL_DUMMY];return a.isMetaColumn(t)&&n.push(l.CELL_HEAD),this.template({columnName:t,className:n.join(" ")})}});e.exports=d},function(e,t,n){"use strict";var i=n(6),o=n(7),s=n(69),a=n(20),r=n(22),l="."+r.CELL_CONTENT_TEXT,d="input[type=password]",h=o.defineClass(s,{init:function(e){s.apply(this,arguments),this.inputType=e.inputType,this.selector="text"===e.inputType?l:d,this._extendEvents({selectstart:"_onSelectStart"})},templateInput:i.template('/>'),templateTextArea:i.template(''),_onSelectStart:function(e){e.stopPropagation()},_convertStringToAsterisks:function(e){return Array(e.length+1).join("*")},_getDisplayValue:function(e){var t=e.formattedValue;return"password"===this.inputType&&(t=this._convertStringToAsterisks(e.value)),t},_generateInputHtml:function(e){var t=o.pick(e,"columnModel","editOptions","maxLength"),n={type:this.inputType,className:r.CELL_CONTENT_TEXT,value:e.value,name:a.getUniqueKey(),disabled:e.disabled?"disabled":"",maxLength:t};return"nowrap"!==e.whiteSpace?this.templateTextArea(n):this.templateInput(n)},focus:function(e){var t=e.find(this.selector);1!==t.length||t.is(":focus")||t.select()}});e.exports=h},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(9),a=n(7),r=n(65),l=n(14).keyName,d=a.defineClass(r,{init:function(){r.apply(this,arguments),this._finishedEditing=!1},events:{keydown:"_onKeyDown",focusin:"_onFocusIn",focusout:"_onFocusOut",change:"_onChange"},keyDownActions:{ESC:function(e){this.controller.finishEditing(e.address,!0)},ENTER:function(e){this.controller.finishEditing(e.address,!0,e.value)},TAB:function(e){this.controller.finishEditing(e.address,!0,e.value),this.controller.focusInToNextCell(e.shiftKey)}},_extendKeydownActions:function(e){this.keyDownActions=o.assign({},this.keyDownActions,e)},_extendEvents:function(e){this.events=o.assign({},this.events,e)},_executeCustomEventHandler:function(e,t){this.controller.executeCustomInputEventHandler(e,t)},_onChange:function(){},_onFocusIn:function(e){var t=i(e.target),n=this._getCellAddress(t),s=this;o.defer(function(){s._executeCustomEventHandler(e,n),s.trigger("focusIn",t,n),s.controller.startEditing(n)})},_onFocusOut:function(e){var t=i(e.target),n=this._getCellAddress(t);this._finishedEditing||(this._executeCustomEventHandler(e,n),this.trigger("focusOut",t,n),this.controller.finishEditing(n,!1,t.val()))},_onKeyDown:function(e){var t=e.keyCode||e.which,n=l[t],o=this.keyDownActions[n],s=i(e.target),a={$target:s,address:this._getCellAddress(s),shiftKey:e.shiftKey,value:s.val()};this._executeCustomEventHandler(e,a.address),o&&!e.shiftKey&&(o.call(this,a),e.preventDefault())},_getDisplayValue:function(){throw new Error("implement _getDisplayValue() method")},_generateInputHtml:function(){throw new Error("implement _generateInputHtml() method")},_isUsingViewMode:function(e){return a.pick(e,"columnModel","editOptions","useViewMode")!==!1},generateHtml:function(e){var t;return t=o.isNull(e.convertedHTML)?!this._isUsingViewMode(e)||e.editing?this._generateInputHtml(e):this._getDisplayValue(e):e.convertedHTML},focus:function(e){var t=e.find(this.selector);t.is(":focus")||t.eq(0).focus()},blockFocusingOut:function(){this._finishedEditing=!0},unblockFocusingOut:function(){this._finishedEditing=!1}});o.assign(d.prototype,s.Events),e.exports=d},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(7),a=n(69),r=n(20),l=s.defineClass(a,{init:function(){a.apply(this,arguments),this.selector="select"},template:o.template(''),optionTemplate:o.template(''),_onChange:function(e){var t=i(e.target),n=this._getCellAddress(t);this.controller.setValueIfNotUsingViewMode(n,t.val())},_getDisplayValue:function(e){var t=o.find(e.listItems,function(t){return String(t.value)===String(e.value)});return t?t.text:""},_generateInputHtml:function(e){var t=o.reduce(e.listItems,function(t,n){return t+this.optionTemplate({value:n.value,text:n.text,selected:String(e.value)===String(n.value)?"selected":""})},"",this);return this.template({name:r.getUniqueKey(),disabled:e.disabled?"disabled":"",options:t})}});e.exports=l},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(7),a=n(69),r=n(20),l=s.defineClass(a,{init:function(e){a.apply(this,arguments),this.inputType=e.inputType,this.selector="fieldset[data-type="+this.inputType+"]",this._extendEvents({mousedown:"_onMouseDown"}),this._extendKeydownActions({TAB:function(e){var t;this._focusNextInput(e.$target,e.shiftKey)||(t=this._getCheckedValueString(e.$target),this.controller.finishEditing(e.address,!0,t),this.controller.focusInToNextCell(e.shiftKey))},ENTER:function(e){var t=this._getCheckedValueString(e.$target);this.controller.finishEditing(e.address,!0,t)},LEFT_ARROW:function(e){this._focusNextInput(e.$target,!0)},RIGHT_ARROW:function(e){this._focusNextInput(e.$target)},UP_ARROW:function(){},DOWN_ARROW:function(){}})},template:o.template('
<%=content%>
'),inputTemplate:o.template(' <%=disabled%> />'),labelTemplate:o.template(''),_onChange:function(e){var t=i(e.target),n=this._getCellAddress(t),o=this._getCheckedValueString(t);this.controller.setValueIfNotUsingViewMode(n,o)},_onFocusOut:function(e){var t=i(e.target),n=this;o.defer(function(){var e,i;t.siblings("input:focus").length||(e=n._getCellAddress(t),i=n._getCheckedValueString(t),n.controller.finishEditing(e,!1,i))})},_onMouseDown:function(e){var t=i(e.target),n=t.closest("fieldset").find("input:focus").length>0;!t.is("input")&&n&&(e.stopPropagation(),e.preventDefault())},_focusNextInput:function(e,t){var n=t?"prevAll":"nextAll",i=e[n]("input");return!!i.length&&(i.first().focus(),!0)},_getCheckedValueString:function(e){var t,n=e.parent().find("input:checked"),o=[];return n.each(function(){var e=i(this),t=e.attr("data-value-type"),n=r.convertValueType(e.val(),t);o.push(n)}),t=1===o.length?o[0]:o.join(",")},_getCheckedValueSet:function(e){var t={};return o.each(String(e).split(","),function(e){t[e]=!0}),t},_getDisplayValue:function(e){var t=this._getCheckedValueSet(e.value),n=[];return o.each(e.listItems,function(e){t[e.value]&&n.push(e.text)}),n.join(",")},_generateInputHtml:function(e){var t=this._getCheckedValueSet(e.value),n=r.getUniqueKey(),i="";return o.each(e.listItems,function(o){var s=n+"_"+o.value;i+=this.inputTemplate({type:this.inputType,id:s,name:n,value:o.value,valueType:typeof o.value,checked:t[o.value]?"checked":"",disabled:e.isDisabled?"disabled":""}),o.text&&(i+=this.labelTemplate({id:s,labelText:o.text}))},this),this.template({type:this.inputType,content:i})},focus:function(e){var t=e.find("input");t.is(":focus")||t.eq(0).focus()}});e.exports=l},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(7),a=n(65),r=n(22),l=n(14).keyCode,d=r.CELL_MAIN_BUTTON,h=s.defineClass(a,{init:function(e){a.apply(this,arguments),this.selector="input."+d,this.inputType=e.inputType,this.gridId=e.gridId},events:{change:"_onChange",keydown:"_onKeydown"},template:o.template(' <%=disabled%> />'),_onChange:function(e){var t=i(e.target),n=this._getCellAddress(t);this.controller.setValue(n,t.is(":checked"))},_onKeydown:function(e){var t;e.keyCode===l.TAB&&(e.preventDefault(),t=this._getCellAddress(i(e.target)),this.controller.focusInToRow(t.rowKey))},generateHtml:function(e){var t=e.columnModel.template,n=null,i={type:this.inputType,name:this.gridId,className:d};return n=o.isFunction(t)?t(o.extend(i,{checked:e.value,disabled:e.disabled})):this.template(o.extend(i,{checked:e.value?"checked":"",disabled:e.disabled?"disabled":""}))}});e.exports=h},function(e,t,n){"use strict";function i(e){return a.isString(e)&&(e=e.replace(/,/g,"")),a.isNumber(e)||isNaN(e)||l.isBlank(e)?e:Number(e)}function o(e){switch(e){case"focusin":return"onFocus";case"focusout":return"onBlur";case"keydown":return"onKeyDown";default:return""}}var s=n(11),a=n(6),r=n(7),l=n(20),d=r.defineClass({init:function(e){this.focusModel=e.focusModel,this.dataModel=e.dataModel,this.columnModel=e.columnModel,this.selectionModel=e.selectionModel},startEditing:function(e,t){var n;return t&&this.focusModel.finishEditing(),n=this.focusModel.startEditing(e.rowKey,e.columnName),n&&this.selectionModel.end(),n},_checkMaxLength:function(e,t){var n=this.columnModel.getColumnModel(e),i=r.pick(n,"editOptions","maxLength");return i>0&&t.length>i?t.substring(0,i):t},finishEditing:function(e,t,n){var i,o,s=this.focusModel;return!!s.isEditingCell(e.rowKey,e.columnName)&&(this.selectionModel.enable(),a.isUndefined(n)||(i=this.dataModel.get(e.rowKey),o=i.get(e.columnName),l.isBlank(n)&&l.isBlank(o)||this.setValue(e,this._checkMaxLength(e.columnName,n))),s.finishEditing(),t?s.focusClipboard():a.defer(function(){s.refreshState()}),!0)},focusInToNextCell:function(e){var t=this.focusModel,n=e?t.prevAddress():t.nextAddress();t.focusIn(n.rowKey,n.columnName,!0)},focusInToRow:function(e){var t=this.focusModel;t.focusIn(e,t.firstColumnName(),!0)},executeCustomInputEventHandler:function(e,t){var n,i,s,r=this.columnModel.getColumnModel(t.columnName);r&&(n=e.type,i=r.editOptions||{},s=i[o(n)],a.isFunction(s)&&s.call(e.target,e,t))},setValue:function(e,t){var n=this.columnModel.getColumnModel(e.columnName);a.isString(t)&&(t=s.trim(t)),"number"===n.dataType&&(t=i(t)),"_button"===n.name?t?this.dataModel.check(e.rowKey):this.dataModel.uncheck(e.rowKey):this.dataModel.setValue(e.rowKey,e.columnName,t)},setValueIfNotUsingViewMode:function(e,t){var n=this.columnModel.getColumnModel(e.columnName);r.pick(n,"editOptions","useViewMode")||this.setValue(e,t)}});e.exports=d},function(e,t,n){"use strict";var i=n(11),o=n(9),s=n(6),a=n(8),r=n(75),l=n(20),d=n(76),h=n(44),u=n(19),c=n(14).renderState,g=200,m=a.extend({initialize:function(e){var t={initialRequest:!0,perPage:500,enableAjaxHistory:!0},n={readData:"",createData:"",updateData:"",deleteData:"",modifyData:"",downloadExcel:"",downloadExcelAll:""};e=s.assign(t,e),e.api=s.assign(n,e.api),s.assign(this,{dataModel:e.dataModel,renderModel:e.renderModel,router:null,domEventBus:e.domEventBus,pagination:e.pagination,api:e.api,enableAjaxHistory:e.enableAjaxHistory,readDataMethod:e.readDataMethod||"POST",perPage:e.perPage,curPage:1,timeoutIdForDelay:null,requestedFormData:null,isLocked:!1,lastRequestedReadData:null}),this._initializeDataModelNetwork(),this._initializeRouter(),this._initializePagination(),this.listenTo(this.dataModel,"sortChanged",this._onSortChanged),this.listenTo(this.domEventBus,"click:excel",this._onClickExcel),e.initialRequest&&(this.lastRequestedReadData||this._readDataAt(1,!1))},tagName:"form",events:{submit:"_onSubmit"},_initializePagination:function(){var e=this.pagination;e&&(e.setItemsPerPage(this.perPage),e.setTotalItems(1),e.on("beforeMove",i.proxy(this._onPageBeforeMove,this)))},_onRouterRead:function(e){var t=l.toQueryObject(e);this._requestReadData(t)},_onClickExcel:function(e){var t="all"===e.type?"excelAll":"excel";this.download(t)},_initializeDataModelNetwork:function(){this.dataModel.url=this.api.readData,this.dataModel.sync=i.proxy(this._sync,this)},_initializeRouter:function(){this.enableAjaxHistory&&(this.router=new r({net:this}),this.listenTo(this.router,"route:read",this._onRouterRead),o.History.started||o.history.start())},_onPageBeforeMove:function(e){var t=e.page;this.curPage!==t&&this._readDataAt(t,!0)},_onSubmit:function(e){e.preventDefault(),this._readDataAt(1,!1)},_setFormData:function(e){var t=s.clone(e);s.each(this.lastRequestedReadData,function(e,n){(s.isUndefined(t[n])||s.isNull(t[n]))&&e&&(t[n]="")}),d.setFormData(this.$el,t)},_sync:function(e,t,n){var a;"read"===e?(n=n||{},a=i.extend({},n),n.url||(a.url=s.result(t,"url")),this._ajax(a)):o.sync(o,e,t,n)},_lock:function(){var e=this.renderModel;this.timeoutIdForDelay=setTimeout(function(){e.set("state",c.LOADING)},g),this.isLocked=!0},_unlock:function(){null!==this.timeoutIdForDelay&&(clearTimeout(this.timeoutIdForDelay),this.timeoutIdForDelay=null),this.isLocked=!1},_getFormData:function(){return d.getFormData(this.$el)},_onReadSuccess:function(e,t){var n,i,o=this.pagination;e.setOriginalRowList(),o&&t.pagination&&(n=t.pagination.page,i=t.pagination.totalCount,o.setItemsPerPage(this.perPage),o.setTotalItems(i),o.movePageTo(n),this.curPage=n)},_onReadError:function(e,t,n){},reloadData:function(){this._requestReadData(this.lastRequestedReadData)},readData:function(e,t,n){n?(t||(t={}),t.perPage=this.perPage,this._changeSortOptions(t,this.dataModel.sortOptions)):t=s.assign({},this.lastRequestedReadData,t),t.page=e,this._requestReadData(t)},_requestReadData:function(e){var t=1;this._setFormData(e),this.isLocked||(this.renderModel.initializeVariables(),this._lock(),this.requestedFormData=s.clone(e),this.curPage=e.page||this.curPage,t=(this.curPage-1)*this.perPage+1,this.renderModel.set({startNumber:t}),this.lastRequestedReadData=s.clone(e), +this.dataModel.fetch({requestType:"readData",data:e,type:this.readDataMethod,success:i.proxy(this._onReadSuccess,this),error:i.proxy(this._onReadError,this),reset:!0}),this.dataModel.setSortOptionValues(e.sortColumn,e.sortAscending)),this.router&&this.router.navigate("read/"+l.toQueryString(e),{trigger:!1})},_onSortChanged:function(e){e.requireFetch&&this._readDataAt(1,!0,e)},_changeSortOptions:function(e,t){t&&("rowKey"===t.columnName?(delete e.sortColumn,delete e.sortAscending):(e.sortColumn=t.columnName,e.sortAscending=t.ascending))},_readDataAt:function(e,t,n){var i;t=!!s.isUndefined(t)||t,i=t?this.requestedFormData:this._getFormData(),i.page=e,i.perPage=this.perPage,this._changeSortOptions(i,n),this._requestReadData(i)},request:function(e,t){var n=s.extend({url:this.api[e],type:null,hasDataParam:!0,checkedOnly:!0,modifiedOnly:!0,showConfirm:!0,updateOriginal:!1},t),i=this._getRequestParam(e,n);return i&&(n.updateOriginal&&this.dataModel.setOriginalRowList(),this._ajax(i)),!!i},download:function(e){var t,n="download"+l.toUpperCaseFirstLetter(e),o=this.requestedFormData,a=this.api[n];"excel"===e?(o.page=this.curPage,o.perPage=this.perPage):o=s.omit(o,"page","perPage"),t=i.param(o),window.location=a+"?"+t},setPerPage:function(e){this.perPage=e,this._readDataAt(1)},_getDataParam:function(e,t){var n,i=this.dataModel,o={createData:["createdRows"],updateData:["updatedRows"],deleteData:["deletedRows"],modifyData:["createdRows","updatedRows","deletedRows"]},a=o[e],r={},l=0;return t=s.defaults(t||{},{hasDataParam:!0,modifiedOnly:!0,checkedOnly:!0}),t.hasDataParam&&(t.modifiedOnly?(n=i.getModifiedRows({checkedOnly:t.checkedOnly}),s.each(n,function(e,t){s.contains(a,t)&&e.length&&(l+=e.length,r[t]=JSON.stringify(e))},this)):(r.rows=i.getRows(t.checkedOnly),l=r.rows.length)),{data:r,count:l}},_getRequestParam:function(e,t){var n={url:this.api[e],type:null,hasDataParam:!0,modifiedOnly:!0,checkedOnly:!0},o=i.extend(n,t),s=this._getDataParam(e,o),a=null;return o.showConfirm&&!this._isConfirmed(e,s.count)||(a={requestType:e,url:o.url,data:s.data,type:o.type}),a},_isConfirmed:function(e,t){var n=!1;return t>0?n=confirm(this._getConfirmMessage(e,t)):alert(this._getConfirmMessage(e,t)),n},_getConfirmMessage:function(e,t){var n=e.replace("Data","Action"),i=h.get(n),o={count:t,actionName:i},s=t>0?"requestConfirm":"noDataResponse";return h.get(s,o)},_ajax:function(e){var t,n=new u(null,e.data);this.trigger("beforeRequest",n),n.isStopped()||(e=i.extend({requestType:""},e),t={url:e.url,data:e.data||{},type:e.type||"POST",dataType:e.dataType||"json",complete:i.proxy(this._onComplete,this,e.complete,e),success:i.proxy(this._onSuccess,this,e.success,e),error:i.proxy(this._onError,this,e.error,e)},e.url&&i.ajax(t))},_onComplete:function(e,t,n){this._unlock()},_onSuccess:function(e,t,n,i,o){var a=n&&n.message,r=new u(null,{httpStatus:i,requestType:t.requestType,requestParameter:t.data,responseData:n});if(this.trigger("response",r),!r.isStopped())if(n&&n.result){if(this.trigger("successResponse",r),r.isStopped())return;s.isFunction(e)&&e(n.data||{},i,o)}else{if(this.trigger("failResponse",r),r.isStopped())return;a&&alert(a)}},_onError:function(e,t,n,i){var o=new u(null,{httpStatus:i,requestType:t.requestType,requestParameter:t.data,responseData:null});this.renderModel.set("state",c.DONE),this.trigger("response",o),o.isStopped()||(this.trigger("errorResponse",o),o.isStopped()||n.readyState>1&&alert(h.get("errorResponse")))}});e.exports=m},function(e,t,n){"use strict";var i=n(9),o=i.Router.extend({initialize:function(e){this.net=e.net},routes:{"read/:queryStr":"read"}});e.exports=o},function(e,t,n){"use strict";var i=n(11),o=n(6),s=n(7),a={setInput:{_changeToStringInArray:function(e){return o.each(e,function(t,n){e[n]=String(t)}),e},radio:function(e,t){e.checked=e.value===t},checkbox:function(e,t){o.isArray(t)?e.checked=i.inArray(e.value,this._changeToStringInArray(t))!==-1:e.checked=e.value===t},"select-one":function(e,t){var n=s.toArray(e.options);e.selectedIndex=o.findIndex(n,function(e){return e.value===t||e.text===t})},"select-multiple":function(e,t){var n=s.toArray(e.options);o.isArray(t)?(t=this._changeToStringInArray(t),o.each(n,function(e){e.selected=i.inArray(e.value,t)!==-1||i.inArray(e.text,t)!==-1})):this["select-one"].apply(this,arguments)},defaultAction:function(e,t){e.value=t}},getFormData:function(e){var t={},n=e.serializeArray(),i=s.isExisty;return o.each(n,function(e){var n=e.value||"",o=e.name;i(t[o])?t[o]=[].concat(t[o],n):t[o]=n}),t},getFormElement:function(e,t){var n;return e&&e.length&&(n=t?e.prop("elements")[String(t)]:e.prop("elements")),i(n)},setFormData:function(e,t){o.each(t,function(t,n){this.setFormElementValue(e,n,t)},this)},setFormElementValue:function(e,t,n){var i,a=this.getFormElement(e,t);a.length&&(o.isArray(n)||(n=String(n)),a=s.isHTMLTag(a)?[a]:a,a=s.toArray(a),o.each(a,function(e){i=this.setInput[e.type]?e.type:"defaultAction",this.setInput[i](e,n)},this))},setCursorToEnd:function(e){var t,n=e.value.length;if(e.focus(),e.setSelectionRange)try{e.setSelectionRange(n,n)}catch(e){}else if(e.createTextRange){t=e.createTextRange(),t.collapse(!0),t.moveEnd("character",n),t.moveStart("character",n);try{t.select()}catch(e){}}}};e.exports=a},function(e,t,n){"use strict";var i=n(11),o=n(7),s={pagination:null},a=o.defineClass({init:function(e){this.optionsMap=i.extend(!0,s,e),this.instanceMap={}},getInstance:function(e){return this.instanceMap[e]},setInstance:function(e,t){this.instanceMap[e]=t},getOptions:function(e){return this.optionsMap[e]}});e.exports=a},function(e,t,n){"use strict";function i(e){var t=[r.grid(e.grid),r.scrollbar(e.scrollbar),r.heightResizeHandle(e.heightResizeHandle),r.pagination(e.pagination),r.selection(e.selection)],n=e.cell;return n&&(t=t.concat([r.cell(n.normal),r.cellDummy(n.dummy),r.cellEditable(n.editable),r.cellHead(n.head),r.cellOddRow(n.oddRow),r.cellEvenRow(n.evenRow),r.cellRequired(n.required),r.cellDisabled(n.disabled),r.cellInvalid(n.invalid),r.cellCurrentRow(n.currentRow),r.cellSelectedHead(n.selectedHead),r.cellFocused(n.focused),r.cellFocusedInactive(n.focusedInactive)])),t.join("")}function o(e){var t=i(e);s("#"+d).remove(),a.appendStyleElement(d,t)}var s=n(11),a=n(20),r=n(79),l=n(14).themeName,d="tui-grid-theme-style",h={};h[l.DEFAULT]=n(81),h[l.STRIPED]=n(82),h[l.CLEAN]=n(83),e.exports={apply:function(e,t){var n=h[e];n||(n=h[l.DEFAULT]),n=s.extend(!0,{},n,t),o(n)},isApplied:function(){return 1===s("#"+d).length}}},function(e,t,n){"use strict";function i(e,t){return l(e).bg(t.background).text(t.text).build()}function o(e,t){return l(e).bg(t.background).border(t.border).build()}var s=n(6),a=n(80),r=n(22),l=s.bind(a.createClassRule,a);e.exports={grid:function(e){var t=l(r.CONTAINER).bg(e.background).text(e.text),n=l(r.CONTENT_AREA).border(e.border),i=l(r.TABLE).border(e.border),o=l(r.HEAD_AREA).border(e.border),s=l(r.FOOT_AREA).border(e.border),d=l(r.BORDER_LINE).bg(e.border),h=l(r.SCROLLBAR_HEAD).border(e.border),u=l(r.SCROLLBAR_BORDER).bg(e.border),c=l(r.FOOT_AREA_RIGHT).border(e.border);return a.buildAll([t,n,i,o,s,d,h,u,c])},scrollbar:function(e){var t=a.createWebkitScrollbarRules("."+r.CONTAINER,e),n=a.createIEScrollbarRule("."+r.CONTAINER,e),i=l(r.SCROLLBAR_RIGHT_BOTTOM).bg(e.background),o=l(r.SCROLLBAR_LEFT_BOTTOM).bg(e.background),s=l(r.SCROLLBAR_HEAD).bg(e.background),d=l(r.FOOT_AREA_RIGHT).bg(e.background),h=l(r.BODY_AREA).bg(e.background);return a.buildAll(t.concat([n,i,o,s,d,h]))},heightResizeHandle:function(e){return o(r.HEIGHT_RESIZE_HANDLE,e)},pagination:function(e){return o(r.PAGINATION,e)},selection:function(e){return o(r.LAYER_SELECTION,e)},cell:function(e){var t=l(r.CELL).bg(e.background).border(e.border).borderWidth(e).text(e.text);return t.build()},cellHead:function(e){var t=l(r.CELL_HEAD).bg(e.background).border(e.border).borderWidth(e).text(e.text),n=l(r.HEAD_AREA).bg(e.background),i=l(r.FOOT_AREA).bg(e.background);return a.buildAll([t,n,i])},cellEvenRow:function(e){return l(r.ROW_EVEN+">td").bg(e.background).build()},cellOddRow:function(e){return l(r.ROW_ODD+">td").bg(e.background).build()},cellSelectedHead:function(e){return a.create("."+r.CELL_HEAD+"."+r.CELL_SELECTED).bg(e.background).text(e.text).build()},cellFocused:function(e){var t=l(r.LAYER_FOCUS_BORDER).bg(e.border),n=l(r.LAYER_EDITING).border(e.border);return a.buildAll([t,n])},cellFocusedInactive:function(e){return a.create("."+r.LAYER_FOCUS_DEACTIVE+" ."+r.LAYER_FOCUS_BORDER).bg(e.border).build()},cellEditable:function(e){return i(r.CELL_EDITABLE,e)},cellRequired:function(e){return i(r.CELL_REQUIRED,e)},cellDisabled:function(e){return i(r.CELL_DISABLED,e)},cellDummy:function(e){return i(r.CELL_DUMMY,e)},cellInvalid:function(e){return i(r.CELL_INVALID,e)},cellCurrentRow:function(e){return i(r.CELL_CURRENT_ROW,e)}}},function(e,t,n){"use strict";var i=n(6),o=n(7),s=o.defineClass({init:function(e){if(!i.isString(e)||!e)throw new Error("The Selector must be a string and not be empty.");this._selector=e,this._propValues=[]},add:function(e,t){return t&&this._propValues.push(e+":"+t),this},border:function(e){return this.add("border-color",e)},borderWidth:function(e){var t,n=e.showVerticalBorder,o=e.showHorizontalBorder;return i.isBoolean(n)&&(t=n?"1px":"0",this.add("border-left-width",t).add("border-right-width",t)),i.isBoolean(o)&&(t=o?"1px":"0",this.add("border-top-width",t).add("border-bottom-width",t)),this},bg:function(e){return this.add("background-color",e)},text:function(e){return this.add("color",e)},build:function(){var e="";return this._propValues.length&&(e=this._selector+"{"+this._propValues.join(";")+"}"),e}});e.exports={create:function(e){return new s(e)},createClassRule:function(e){return this.create("."+e)},createWebkitScrollbarRules:function(e,t){return[this.create(e+" ::-webkit-scrollbar").bg(t.background),this.create(e+" ::-webkit-scrollbar-thumb").bg(t.thumb),this.create(e+" ::-webkit-scrollbar-thumb:hover").bg(t.active)]},createIEScrollbarRule:function(e,t){var n=["scrollbar-3dlight-color","scrollbar-darkshadow-color","scrollbar-track-color","scrollbar-shadow-color"],o=["scrollbar-face-color","scrollbar-highlight-color"],s=this.create(e);return i.each(n,function(e){s.add(e,t.background)}),i.each(o,function(e){s.add(e,t.thumb)}),s.add("scrollbar-arrow-color",t.active),s},buildAll:function(e){return i.map(e,function(e){return e.build()}).join("")}}},function(e,t){"use strict";e.exports={grid:{background:"#fff",border:"#ccc",text:"#444"},selection:{background:"#4daaf9",border:"#004082"},heightResizeHandle:{border:"#ccc",background:"#fff"},pagination:{border:"transparent",background:"transparent"},scrollbar:{background:"#f5f5f5",thumb:"#d9d9d9",active:"#c1c1c1"},cell:{normal:{background:"#fbfbfb",border:"#e0e0e0",showVerticalBorder:!0,showHorizontalBorder:!0},head:{background:"#eee",border:"#ccc",showVerticalBorder:!0,showHorizontalBorder:!0},selectedHead:{background:"#d8d8d8"},focused:{border:"#418ed4"},focusedInactive:{border:"#aaa"},required:{background:"#fffdeb"},editable:{background:"#fff"},disabled:{text:"#b0b0b0"},dummy:{background:"#fff"},invalid:{background:"#ff8080"},evenRow:{},oddRow:{},currentRow:{}}}},function(e,t,n){"use strict";var i=n(11),o=n(81);e.exports=i.extend(!0,{},o,{cell:{normal:{background:"#fff",border:"#e8e8e8",showVerticalBorder:!1,showHorizontalBorder:!1},oddRow:{background:"#f3f3f3"},evenRow:{background:"#fff"},head:{background:"#fff",showVerticalBorder:!1,showHorizontalBorder:!1}}})},function(e,t,n){"use strict";var i=n(11),o=n(81);e.exports=i.extend(!0,{},o,{grid:{border:"#c0c0c0"},cell:{normal:{background:"#fff",border:"#e0e0e0",showVerticalBorder:!1,showHorizontalBorder:!0},head:{background:"#fff",border:"#e0e0e0",showVerticalBorder:!1,showHorizontalBorder:!0},selectedHead:{background:"#e0e0e0"}}})}])}); \ No newline at end of file