From a88ba358a65a9882f1f0f39c7647401ce2a55054 Mon Sep 17 00:00:00 2001
From: Valentin Dide
Date: Fri, 14 Aug 2020 22:17:34 +0300
Subject: [PATCH] Multiple
Fixed:
- dependecies
- issue resizing columns and moving at differnt rate due to the fixed layout sizing
---
dist/js/bundle/resizable-table-columns.js | 51 ++-
dist/js/bundle/resizable-table-columns.js.map | 2 +-
dist/js/bundle/resizable-table-columns.min.js | 2 +-
dist/js/es6/resizable-constants.d.ts | 2 +-
dist/js/es6/resizable-constants.js | 2 +-
dist/js/es6/resizable-constants.js.map | 2 +-
dist/js/es6/resizable-event-data.d.ts | 2 +
dist/js/es6/resizable-event-data.js | 2 +
dist/js/es6/resizable-event-data.js.map | 2 +-
dist/js/es6/resizable-options.d.ts | 2 +-
dist/js/es6/resizable-options.js | 4 +-
dist/js/es6/resizable-options.js.map | 2 +-
dist/js/es6/resizable-table-columns.d.ts | 6 +-
dist/js/es6/resizable-table-columns.js | 47 ++-
dist/js/es6/resizable-table-columns.js.map | 2 +-
dist/js/es6/utilities-dom.d.ts | 2 +-
dist/js/es6/utilities-dom.js | 4 +-
dist/js/es6/utilities-dom.js.map | 2 +-
dist/js/es6/utilities.d.ts | 2 +-
dist/js/es6/utilities.js | 2 +-
dist/js/es6/utilities.js.map | 2 +-
dist/js/index.es2015.d.ts | 16 +-
dist/samples/bootstrap.html | 2 +-
dist/samples/dev.html | 342 ++++++++++++++++++
dist/samples/index.html | 2 +-
package-lock.json | 317 +++++++++-------
package.json | 22 +-
sources/ts/resizable-constants.ts | 2 +-
sources/ts/resizable-event-data.ts | 2 +
sources/ts/resizable-options.ts | 4 +-
sources/ts/resizable-table-columns.ts | 55 ++-
sources/ts/utilities-dom.ts | 4 +-
sources/ts/utilities.ts | 2 +-
tests/resizable-options.ts | 32 +-
tests/resizable-table-columns.constructor.ts | 10 +-
tests/resizable-table-columns.dispose.ts | 6 +-
tests/resizable-table-columns.ts | 24 +-
37 files changed, 725 insertions(+), 261 deletions(-)
create mode 100644 dist/samples/dev.html
diff --git a/dist/js/bundle/resizable-table-columns.js b/dist/js/bundle/resizable-table-columns.js
index 99aa174..b594150 100644
--- a/dist/js/bundle/resizable-table-columns.js
+++ b/dist/js/bundle/resizable-table-columns.js
@@ -1,8 +1,8 @@
(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global = global || self, global.validide_resizableTableColumns = factory());
-}(this, (function () { 'use strict';
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.validide_resizableTableColumns = {}));
+}(this, (function (exports) { 'use strict';
var Utilities = /** @class */ (function () {
function Utilities() {
@@ -303,6 +303,8 @@
this.pointer = new PointerData();
this.originalWidths = new WidthsData();
this.newWidths = new WidthsData();
+ this.columnRatio = 0;
+ this.tableRatio = 0;
this.column = column;
this.dragHandler = dragHandler;
}
@@ -659,16 +661,22 @@
var isDoubleClick = (millisecondsNow - this.lastPointerDown) < this.options.doubleClickDelay;
var column = resizableHeaders[gripIndex];
var columnWidth = ResizableTableColumns.getWidth(column);
+ var computedColumnWidth = ResizableTableColumns.getComputedWidth(column);
var tableWidth = ResizableTableColumns.getWidth(this.table);
+ var computedTableWidth = ResizableTableColumns.getComputedWidth(this.table);
+ var widths = {
+ column: columnWidth,
+ table: tableWidth
+ };
var eventData = new ResizableEventData(column, dragHandler);
eventData.pointer = {
x: UtilitiesDOM.getPointerX(event),
isDoubleClick: isDoubleClick
};
- eventData.originalWidths = {
- column: columnWidth,
- table: tableWidth
- };
+ eventData.originalWidths = widths;
+ eventData.newWidths = widths;
+ eventData.columnRatio = columnWidth / computedColumnWidth;
+ eventData.tableRatio = tableWidth / computedTableWidth;
this.detachHandlers(); //make sure we do not have extra handlers
this.attachHandlers();
UtilitiesDOM.addClass(this.table, ResizableConstants.classes.tableResizing);
@@ -682,7 +690,9 @@
column: column,
columnWidth: columnWidth,
table: this.table,
- tableWidth: tableWidth
+ tableWidth: tableWidth,
+ columnRatio: this.eventData.columnRatio,
+ tableRatio: this.eventData.tableRatio
}
});
this.table.dispatchEvent(eventToDispatch);
@@ -695,8 +705,10 @@
if (difference === 0) {
return;
}
- var tableWidth = this.eventData.originalWidths.table + difference;
- var columnWidth = this.constrainWidth(this.eventData.column, this.eventData.originalWidths.column + difference);
+ this.eventData.columnRatio = this.eventData.newWidths.column / ResizableTableColumns.getComputedWidth(this.eventData.column);
+ this.eventData.tableRatio = this.eventData.newWidths.table / ResizableTableColumns.getComputedWidth(this.table);
+ var tableWidth = (this.eventData.originalWidths.table + difference) * this.eventData.tableRatio;
+ var columnWidth = this.constrainWidth(this.eventData.column, (this.eventData.originalWidths.column + difference) * this.eventData.columnRatio);
ResizableTableColumns.setWidth(this.table, tableWidth);
ResizableTableColumns.setWidth(this.eventData.column, columnWidth);
this.eventData.newWidths = {
@@ -708,7 +720,9 @@
column: this.eventData.column,
columnWidth: columnWidth,
table: this.table,
- tableWidth: tableWidth
+ tableWidth: tableWidth,
+ columnRatio: this.eventData.columnRatio,
+ tableRatio: this.eventData.tableRatio
}
});
this.table.dispatchEvent(eventToDispatch);
@@ -797,14 +811,16 @@
ResizableTableColumns.setWidth(this.eventData.column, columnWidth);
this.eventData.newWidths = {
column: columnWidth,
- table: tableWidth
+ table: tableWidth,
};
var eventToDispatch = new CustomEvent(ResizableConstants.events.eventResize, {
detail: {
column: this.eventData.column,
columnWidth: columnWidth,
table: this.table,
- tableWidth: tableWidth
+ tableWidth: tableWidth,
+ columnRatio: this.eventData.columnRatio,
+ tableRatio: this.eventData.tableRatio
}
});
this.table.dispatchEvent(eventToDispatch);
@@ -915,6 +931,9 @@
ResizableTableColumns.getWidth = function (el) {
if (el.style.width === '')
return UtilitiesDOM.getWidth(el);
+ return ResizableTableColumns.getComputedWidth(el);
+ };
+ ResizableTableColumns.getComputedWidth = function (el) {
return Utilities.parseStyleDimension(el.style.width, false);
};
ResizableTableColumns.setWidth = function (element, width) {
@@ -930,7 +949,9 @@
return ResizableTableColumns;
}());
- return ResizableTableColumns;
+ exports.ResizableTableColumns = ResizableTableColumns;
+
+ Object.defineProperty(exports, '__esModule', { value: true });
})));
//# sourceMappingURL=resizable-table-columns.js.map
diff --git a/dist/js/bundle/resizable-table-columns.js.map b/dist/js/bundle/resizable-table-columns.js.map
index 60868e5..17c6540 100644
--- a/dist/js/bundle/resizable-table-columns.js.map
+++ b/dist/js/bundle/resizable-table-columns.js.map
@@ -1 +1 @@
-{"version":3,"file":"resizable-table-columns.js","sources":["../es6/utilities.js","../es6/utilities-dom.js","../es6/resizable-options.js","../es6/resizable-event-data.js","../es6/resizable-constants.js","../es6/resizable-table-columns.js"],"sourcesContent":["var Utilities = /** @class */ (function () {\r\n function Utilities() {\r\n }\r\n Utilities.escapeRegExp = function (str) {\r\n return str.replace(Utilities.regexEscapeRegex, \"\\\\$&\");\r\n };\r\n Utilities.kebabCaseToCamelCase = function (str) {\r\n return str.replace(Utilities.kebabCaseRegex, function (m) { return m[1].toUpperCase(); });\r\n };\r\n Utilities.parseStringToType = function (str) {\r\n if (str.length == 0 || Utilities.onlyWhiteSpace.test(str))\r\n return str;\r\n if (Utilities.trueRegex.test(str))\r\n return true;\r\n if (Utilities.falseRegex.test(str))\r\n return false;\r\n if (Utilities.notEmptyOrWhiteSpace.test(str)) {\r\n var temp = +str;\r\n if (!isNaN(temp))\r\n return temp;\r\n }\r\n return str;\r\n };\r\n Utilities.parseStyleDimension = function (dimension, returnOriginal) {\r\n if (typeof dimension === 'string') {\r\n if (dimension.length) {\r\n var toParse = dimension\r\n .replace('px', '')\r\n .replace(',', '.');\r\n var parsed = parseFloat(toParse);\r\n if (!isNaN(parsed)) {\r\n return parsed;\r\n }\r\n }\r\n }\r\n else if (typeof dimension === 'number') {\r\n return dimension;\r\n }\r\n if (returnOriginal) {\r\n return dimension;\r\n }\r\n else {\r\n return 0;\r\n }\r\n };\r\n Utilities.regexEscapeRegex = /[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g;\r\n Utilities.kebabCaseRegex = /(\\-\\w)/g;\r\n Utilities.trueRegex = /^true$/i;\r\n Utilities.falseRegex = /^false$/i;\r\n Utilities.onlyWhiteSpace = /^\\s$/;\r\n Utilities.notEmptyOrWhiteSpace = /\\S/;\r\n return Utilities;\r\n}());\r\nexport default Utilities;\r\n//# sourceMappingURL=utilities.js.map","import Utilities from './utilities';\r\nvar UtilitiesDOM = /** @class */ (function () {\r\n function UtilitiesDOM() {\r\n }\r\n UtilitiesDOM.addClass = function (el, className) {\r\n if (el.classList)\r\n el.classList.add(className);\r\n else if (!UtilitiesDOM.hasClass(el, className))\r\n el.className += \" \" + className;\r\n };\r\n UtilitiesDOM.removeClass = function (el, className) {\r\n if (el.classList)\r\n el.classList.remove(className);\r\n else if (UtilitiesDOM.hasClass(el, className)) {\r\n var reg = new RegExp('(\\\\s|^)' + Utilities.escapeRegExp(className) + '(\\\\s|$)');\r\n el.className = el.className.replace(reg, ' ');\r\n }\r\n };\r\n UtilitiesDOM.hasClass = function (el, className) {\r\n if (el.classList)\r\n return el.classList.contains(className);\r\n else\r\n return !!el.className.match(new RegExp('(\\\\s|^)' + Utilities.escapeRegExp(className) + '(\\\\s|$)'));\r\n };\r\n UtilitiesDOM.getDataAttributesValues = function (el) {\r\n if (!el)\r\n return null;\r\n var returnValue = {};\r\n if (el.dataset) {\r\n for (var prop in el.dataset) {\r\n if (el.dataset.hasOwnProperty(prop)) {\r\n returnValue[prop] = Utilities.parseStringToType(el.dataset[prop] || '');\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < el.attributes.length; i++) {\r\n if (!/^data\\-/.test(el.attributes[i].name))\r\n continue;\r\n var name_1 = Utilities.kebabCaseToCamelCase(el.attributes[i].name.replace('data-', ''));\r\n returnValue[name_1] = Utilities.parseStringToType(el.attributes[i].value);\r\n }\r\n }\r\n return returnValue;\r\n };\r\n UtilitiesDOM.getMinCssWidth = function (el) {\r\n var _a;\r\n var computedStyle = (_a = el.ownerDocument.defaultView) === null || _a === void 0 ? void 0 : _a.getComputedStyle(el).minWidth;\r\n var minWidth = Utilities.parseStyleDimension(computedStyle, true);\r\n if (typeof minWidth === 'number' && !isNaN(minWidth))\r\n return minWidth;\r\n return null;\r\n };\r\n UtilitiesDOM.getMaxCssWidth = function (el) {\r\n var _a;\r\n var computedStyle = (_a = el.ownerDocument.defaultView) === null || _a === void 0 ? void 0 : _a.getComputedStyle(el).maxWidth;\r\n var maxWidth = Utilities.parseStyleDimension(computedStyle, true);\r\n if (typeof maxWidth === 'number' && !isNaN(maxWidth))\r\n return maxWidth;\r\n return null;\r\n };\r\n UtilitiesDOM.getOuterWidth = function (el, includeMargin) {\r\n var _a;\r\n if (includeMargin === void 0) { includeMargin = false; }\r\n //TODO: Browser test this\r\n var width = el.offsetWidth;\r\n if (!includeMargin)\r\n return width;\r\n var computedStyles = (_a = el.ownerDocument.defaultView) === null || _a === void 0 ? void 0 : _a.getComputedStyle(el);\r\n var marginTop = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.marginTop, false);\r\n var marginBottom = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.marginBottom, false);\r\n return width + marginTop + marginBottom;\r\n };\r\n UtilitiesDOM.getInnerWidth = function (el) {\r\n var _a;\r\n //TODO: Browser test this\r\n var width = UtilitiesDOM.getOuterWidth(el);\r\n var computedStyles = (_a = el.ownerDocument.defaultView) === null || _a === void 0 ? void 0 : _a.getComputedStyle(el);\r\n var borderLeft = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.borderLeft, false);\r\n var borderRight = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.borderRight, false);\r\n return width - borderLeft - borderRight;\r\n };\r\n UtilitiesDOM.getWidth = function (el) {\r\n var _a;\r\n //TODO: Browser test this\r\n var width = UtilitiesDOM.getOuterWidth(el);\r\n var computedStyles = (_a = el.ownerDocument.defaultView) === null || _a === void 0 ? void 0 : _a.getComputedStyle(el);\r\n var isBorderBox = (computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.boxSizing) === 'border-box';\r\n if (isBorderBox)\r\n return width;\r\n var paddingLeft = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.paddingLeft, false);\r\n var paddingRight = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.paddingRight, false);\r\n var borderLeft = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.borderLeft, false);\r\n var borderRight = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.borderRight, false);\r\n return width - paddingLeft - paddingRight - borderLeft - borderRight;\r\n };\r\n UtilitiesDOM.getOuterHeight = function (el, includeMargin) {\r\n var _a;\r\n if (includeMargin === void 0) { includeMargin = false; }\r\n //TODO: Browser test this\r\n var height = el.offsetHeight;\r\n if (!includeMargin)\r\n return height;\r\n var computedStyles = (_a = el.ownerDocument.defaultView) === null || _a === void 0 ? void 0 : _a.getComputedStyle(el);\r\n var marginTop = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.marginTop, false);\r\n var marginBottom = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.marginBottom, false);\r\n return height + marginTop + marginBottom;\r\n };\r\n UtilitiesDOM.getInnerHeight = function (el) {\r\n var _a;\r\n //TODO: Browser test this\r\n var height = UtilitiesDOM.getOuterHeight(el);\r\n var computedStyles = (_a = el.ownerDocument.defaultView) === null || _a === void 0 ? void 0 : _a.getComputedStyle(el);\r\n var borderTop = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.borderTop, false);\r\n var borderBottom = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.borderBottom, false);\r\n return height - borderTop - borderBottom;\r\n };\r\n UtilitiesDOM.getHeight = function (el) {\r\n var _a;\r\n //TODO: Browser test this\r\n var height = UtilitiesDOM.getOuterHeight(el);\r\n var computedStyles = (_a = el.ownerDocument.defaultView) === null || _a === void 0 ? void 0 : _a.getComputedStyle(el);\r\n var paddingTop = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.paddingTop, false);\r\n var paddingBottom = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.paddingBottom, false);\r\n var borderTop = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.borderTop, false);\r\n var borderBottom = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.borderBottom, false);\r\n return height - paddingTop - paddingBottom - borderTop - borderBottom;\r\n };\r\n UtilitiesDOM.getOffset = function (el) {\r\n if (!el)\r\n return { top: 0, left: 0 };\r\n var rect = el.getBoundingClientRect();\r\n return {\r\n top: rect.top + el.ownerDocument.body.scrollTop,\r\n left: rect.left + el.ownerDocument.body.scrollLeft\r\n };\r\n };\r\n UtilitiesDOM.matches = function (el, selector) {\r\n var matchesFn = undefined;\r\n // find vendor prefix\r\n var matchNames = ['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'];\r\n for (var index = 0; index < matchNames.length; index++) {\r\n if (typeof el.ownerDocument.body[matchNames[index]] === 'function') {\r\n matchesFn = matchNames[index];\r\n break;\r\n }\r\n }\r\n return matchesFn ? el[matchesFn](selector) : false;\r\n };\r\n UtilitiesDOM.closest = function (el, selector) {\r\n if (!el)\r\n return null;\r\n if (typeof el.closest === 'function')\r\n return el.closest(selector);\r\n var element = el;\r\n while (element && element.nodeType === 1) {\r\n if (UtilitiesDOM.matches(element, selector)) {\r\n return element;\r\n }\r\n element = element.parentNode;\r\n }\r\n return null;\r\n };\r\n UtilitiesDOM.getPointerX = function (event) {\r\n //TODO: Browser test this\r\n if (event.type.indexOf('touch') === 0) {\r\n var tEvent = event;\r\n if (tEvent.touches && tEvent.touches.length) {\r\n return tEvent.touches[0].pageX;\r\n }\r\n if (tEvent.changedTouches && tEvent.changedTouches.length) {\r\n return tEvent.changedTouches[0].pageX;\r\n }\r\n }\r\n return event.pageX;\r\n };\r\n UtilitiesDOM.getTextWidth = function (contentElement, measurementElement) {\r\n var _a, _b;\r\n //TODO: Browser test this\r\n if (!contentElement || !measurementElement)\r\n return 0;\r\n var text = ((_a = contentElement.textContent) === null || _a === void 0 ? void 0 : _a.trim().replace(/\\s/g, ' ')) + ' '; //add extra space to ensure we are not elipsing anything\r\n var styles = (_b = contentElement.ownerDocument.defaultView) === null || _b === void 0 ? void 0 : _b.getComputedStyle(contentElement);\r\n ['fontFamily', 'fontSize', 'fontWeight', 'padding', 'border', 'boxSizing']\r\n .forEach(function (prop) {\r\n measurementElement.style[prop] = styles[prop];\r\n });\r\n measurementElement.innerHTML = text;\r\n return UtilitiesDOM.getOuterWidth(measurementElement, true);\r\n };\r\n return UtilitiesDOM;\r\n}());\r\nexport default UtilitiesDOM;\r\n//# sourceMappingURL=utilities-dom.js.map","import UtilitiesDOM from './utilities-dom';\r\nvar ResizableOptions = /** @class */ (function () {\r\n function ResizableOptions(options, element) {\r\n if (options === void 0) { options = null; }\r\n if (element === void 0) { element = null; }\r\n this.resizeFromBody = true;\r\n this.minWidth = 40;\r\n this.maxWidth = null;\r\n this.obeyCssMinWidth = false;\r\n this.obeyCssMaxWidth = false;\r\n this.doubleClickDelay = 500;\r\n this.store = null;\r\n this.overrideValues(options);\r\n this.overrideValuesFromElement(element);\r\n }\r\n ResizableOptions.prototype.overrideValues = function (options) {\r\n if (options === void 0) { options = null; }\r\n if (!options)\r\n return;\r\n for (var prop in options) {\r\n if (this.hasOwnProperty(prop)) {\r\n this[prop] = options[prop];\r\n }\r\n }\r\n };\r\n ResizableOptions.prototype.overrideValuesFromElement = function (element) {\r\n if (element === void 0) { element = null; }\r\n if (!element)\r\n return;\r\n var elementOptions = UtilitiesDOM.getDataAttributesValues(element);\r\n this.overrideValues(elementOptions);\r\n };\r\n return ResizableOptions;\r\n}());\r\nexport default ResizableOptions;\r\n//# sourceMappingURL=resizable-options.js.map","var WidthsData = /** @class */ (function () {\r\n function WidthsData() {\r\n this.column = 0;\r\n this.table = 0;\r\n }\r\n return WidthsData;\r\n}());\r\nexport { WidthsData };\r\nvar PointerData = /** @class */ (function () {\r\n function PointerData() {\r\n this.x = null;\r\n this.isDoubleClick = false;\r\n }\r\n return PointerData;\r\n}());\r\nexport { PointerData };\r\nvar ResizableEventData = /** @class */ (function () {\r\n function ResizableEventData(column, dragHandler) {\r\n this.pointer = new PointerData();\r\n this.originalWidths = new WidthsData();\r\n this.newWidths = new WidthsData();\r\n this.column = column;\r\n this.dragHandler = dragHandler;\r\n }\r\n return ResizableEventData;\r\n}());\r\nexport { ResizableEventData };\r\n//# sourceMappingURL=resizable-event-data.js.map","var ResizableConstants = /** @class */ (function () {\r\n function ResizableConstants() {\r\n }\r\n ResizableConstants.dataPropertyname = 'validide_rtc_data_object';\r\n ResizableConstants.classes = {\r\n table: 'rtc-table',\r\n wrapper: 'rtc-wrapper',\r\n handleContainer: 'rtc-handle-container',\r\n handle: 'rtc-handle',\r\n tableResizing: 'rtc-table-resizing',\r\n columnResizing: 'rtc-column-resizing',\r\n };\r\n ResizableConstants.attibutes = {\r\n dataResizable: 'data-rtc-resizable',\r\n dataResizableTable: 'data-rtc-resizable-table'\r\n };\r\n ResizableConstants.data = {\r\n resizable: 'rtcResizable',\r\n resizableTable: 'rtcResizableTable'\r\n };\r\n ResizableConstants.events = {\r\n pointerDown: ['mousedown', 'touchstart'],\r\n pointerMove: ['mousemove', 'touchmove'],\r\n pointerUp: ['mouseup', 'touchend'],\r\n windowResize: ['resize'],\r\n eventResizeStart: 'eventResizeStart.rtc',\r\n eventResize: 'eventResize.rtc',\r\n eventResizeStop: 'eventResizeStop.rtc'\r\n };\r\n return ResizableConstants;\r\n}());\r\nexport default ResizableConstants;\r\n//# sourceMappingURL=resizable-constants.js.map","import ResizableOptions from './resizable-options';\r\nimport Utilities from './utilities';\r\nimport UtilitiesDOM from './utilities-dom';\r\nimport { ResizableEventData } from './resizable-event-data';\r\nimport ResizableConstants from './resizable-constants';\r\nvar ResizableTableColumns = /** @class */ (function () {\r\n function ResizableTableColumns(table, options) {\r\n if (typeof table !== 'object' || table === null || table.toString() !== '[object HTMLTableElement]')\r\n throw 'Invalid argument: \"table\".\\nResizableTableColumns requires that the table element is a not null HTMLTableElement object!';\r\n if (typeof table[ResizableConstants.dataPropertyname] !== 'undefined')\r\n throw \"Existing \\\"\" + ResizableConstants.dataPropertyname + \"\\\" property.\\nTable elemet already has a '\" + ResizableConstants.dataPropertyname + \"' attached object!\";\r\n this.id = ResizableTableColumns.getInstanceId();\r\n this.table = table;\r\n this.options = new ResizableOptions(options, table);\r\n this.wrapper = null;\r\n this.ownerDocument = table.ownerDocument;\r\n this.tableHeaders = [];\r\n this.dragHandlesContainer = null;\r\n this.originalWidths = {};\r\n this.eventData = null;\r\n this.lastPointerDown = 0;\r\n this.init();\r\n this.table[ResizableConstants.dataPropertyname] = this;\r\n }\r\n ResizableTableColumns.prototype.init = function () {\r\n this.validateMarkup();\r\n this.createHandlerReferences();\r\n this.wrapTable();\r\n this.asignTableHeaders();\r\n this.storeOriginalWidths();\r\n this.setHeaderWidths();\r\n this.createDragHandles();\r\n this.restoreColumnWidths();\r\n this.checkTableWidth();\r\n this.syncHandleWidths();\r\n this.registerWindowResizeHandler();\r\n };\r\n ResizableTableColumns.prototype.dispose = function () {\r\n this.destroyDragHandles();\r\n this.restoreOriginalWidths();\r\n this.unwrapTable();\r\n this.onPointerDownRef = null;\r\n this.onPointerMoveRef = null;\r\n this.onPointerUpRef = null;\r\n this.table[ResizableConstants.dataPropertyname] = void (0);\r\n };\r\n ResizableTableColumns.prototype.validateMarkup = function () {\r\n var theadCount = 0;\r\n var tbodyCount = 0;\r\n var thead = null;\r\n for (var index = 0; index < this.table.childNodes.length; index++) {\r\n var element = this.table.childNodes[index];\r\n if (element.nodeName === 'THEAD') {\r\n theadCount++;\r\n thead = element;\r\n }\r\n else if (element.nodeName === 'TBODY') {\r\n tbodyCount++;\r\n }\r\n }\r\n if (thead === null || theadCount !== 1)\r\n throw \"Markup validation: thead count.\\nResizableTableColumns requires that the table element has one(1) table head element. Current count: \" + theadCount;\r\n if (tbodyCount !== 1)\r\n throw \"Markup validation: tbody count.\\nResizableTableColumns requires that the table element has one(1) table body element. Current count: \" + tbodyCount;\r\n var theadRowCount = 0;\r\n var firstRow = null;\r\n for (var index = 0; index < thead.childNodes.length; index++) {\r\n var element = thead.childNodes[index];\r\n if (element.nodeName === 'TR') {\r\n theadRowCount++;\r\n if (firstRow === null) {\r\n firstRow = element;\r\n }\r\n }\r\n }\r\n if (firstRow === null || theadRowCount < 1)\r\n throw \"Markup validation: thead row count.\\nResizableTableColumns requires that the table head element has at least one(1) table row element. Current count: \" + theadRowCount;\r\n var headerCellsCount = 0;\r\n var invalidHeaderCellsCount = 0;\r\n for (var index = 0; index < firstRow.childNodes.length; index++) {\r\n var element = firstRow.childNodes[index];\r\n if (element.nodeName === 'TH') {\r\n headerCellsCount++;\r\n }\r\n else if (element.nodeName === 'TD') {\r\n invalidHeaderCellsCount++;\r\n }\r\n }\r\n if (headerCellsCount < 1)\r\n throw \"Markup validation: thead first row cells count.\\nResizableTableColumns requires that the table head's first row element has at least one(1) table header cell element. Current count: \" + headerCellsCount;\r\n if (invalidHeaderCellsCount !== 0)\r\n throw \"Markup validation: thead first row invalid.\\nResizableTableColumns requires that the table head's first row element has no(0) table cell(TD) elements. Current count: \" + invalidHeaderCellsCount;\r\n };\r\n ResizableTableColumns.prototype.wrapTable = function () {\r\n if (this.wrapper)\r\n return;\r\n this.wrapper = this.ownerDocument.createElement('div');\r\n var tableOriginalParent = this.table.parentNode;\r\n tableOriginalParent.insertBefore(this.wrapper, this.table);\r\n tableOriginalParent.removeChild(this.table);\r\n this.wrapper.appendChild(this.table);\r\n UtilitiesDOM.addClass(this.wrapper, ResizableConstants.classes.wrapper);\r\n UtilitiesDOM.addClass(this.table, ResizableConstants.classes.table);\r\n };\r\n ResizableTableColumns.prototype.unwrapTable = function () {\r\n UtilitiesDOM.removeClass(this.table, ResizableConstants.classes.table);\r\n if (!this.wrapper)\r\n return;\r\n var tableOriginalParent = this.wrapper.parentNode;\r\n tableOriginalParent.insertBefore(this.table, this.wrapper);\r\n tableOriginalParent.removeChild(this.wrapper);\r\n this.wrapper = null;\r\n };\r\n ResizableTableColumns.prototype.asignTableHeaders = function () {\r\n var tableHeader;\r\n var firstTableRow;\r\n for (var index = 0; index < this.table.childNodes.length; index++) {\r\n var element = this.table.childNodes[index];\r\n if (element.nodeName === 'THEAD') {\r\n tableHeader = element;\r\n break;\r\n }\r\n }\r\n if (!tableHeader)\r\n return;\r\n for (var index = 0; index < tableHeader.childNodes.length; index++) {\r\n var element = tableHeader.childNodes[index];\r\n if (element.nodeName === 'TR') {\r\n firstTableRow = element;\r\n break;\r\n }\r\n }\r\n if (!firstTableRow)\r\n return;\r\n for (var index = 0; index < firstTableRow.childNodes.length; index++) {\r\n var element = firstTableRow.childNodes[index];\r\n if (element.nodeName === 'TH') {\r\n this.tableHeaders.push(element);\r\n }\r\n }\r\n };\r\n ResizableTableColumns.prototype.storeOriginalWidths = function () {\r\n var _this = this;\r\n this.tableHeaders\r\n .forEach(function (el, idx) {\r\n _this.originalWidths[\"___.\" + idx] = el.style.width;\r\n });\r\n this.originalWidths[\"___.table\"] = this.table.style.width;\r\n };\r\n ResizableTableColumns.prototype.restoreOriginalWidths = function () {\r\n var _this = this;\r\n this.tableHeaders\r\n .forEach(function (el, idx) {\r\n el.style.width = _this.originalWidths[\"___.\" + idx];\r\n });\r\n this.table.style.width = this.originalWidths[\"___.table\"];\r\n };\r\n ResizableTableColumns.prototype.setHeaderWidths = function () {\r\n var _this = this;\r\n this.tableHeaders\r\n .forEach(function (el, idx) {\r\n var width = UtilitiesDOM.getWidth(el);\r\n var constrainedWidth = _this.constrainWidth(el, width);\r\n ResizableTableColumns.setWidth(el, constrainedWidth);\r\n });\r\n };\r\n ResizableTableColumns.prototype.constrainWidth = function (el, width) {\r\n var result = width;\r\n var minWidth = this.options.obeyCssMinWidth\r\n ? UtilitiesDOM.getMinCssWidth(el)\r\n : -Infinity;\r\n result = Math.max(result, minWidth || 0, this.options.minWidth || -Infinity);\r\n var maxWidth = this.options.obeyCssMaxWidth\r\n ? UtilitiesDOM.getMaxCssWidth(el)\r\n : +Infinity;\r\n result = Math.min(result, maxWidth || 0, this.options.maxWidth || +Infinity);\r\n return result;\r\n };\r\n ResizableTableColumns.prototype.createDragHandles = function () {\r\n var _this = this;\r\n var _a;\r\n if (this.dragHandlesContainer != null)\r\n throw 'Drag handlers allready created. Call if you wish to recreate them';\r\n this.dragHandlesContainer = this.ownerDocument.createElement('div');\r\n (_a = this.wrapper) === null || _a === void 0 ? void 0 : _a.insertBefore(this.dragHandlesContainer, this.table);\r\n UtilitiesDOM.addClass(this.dragHandlesContainer, ResizableConstants.classes.handleContainer);\r\n this.getResizableHeaders()\r\n .forEach(function (el, idx) {\r\n var _a;\r\n var handler = _this.ownerDocument.createElement('div');\r\n UtilitiesDOM.addClass(handler, ResizableConstants.classes.handle);\r\n (_a = _this.dragHandlesContainer) === null || _a === void 0 ? void 0 : _a.appendChild(handler);\r\n });\r\n ResizableConstants.events.pointerDown\r\n .forEach(function (evt, evtIdx) {\r\n var _a;\r\n (_a = _this.dragHandlesContainer) === null || _a === void 0 ? void 0 : _a.addEventListener(evt, _this.onPointerDownRef, false);\r\n });\r\n };\r\n ResizableTableColumns.prototype.destroyDragHandles = function () {\r\n var _this = this;\r\n var _a, _b;\r\n if (this.dragHandlesContainer !== null) {\r\n ResizableConstants.events.pointerDown\r\n .forEach(function (evt, evtIdx) {\r\n var _a;\r\n (_a = _this.dragHandlesContainer) === null || _a === void 0 ? void 0 : _a.removeEventListener(evt, _this.onPointerDownRef, false);\r\n });\r\n (_b = (_a = this.dragHandlesContainer) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.removeChild(this.dragHandlesContainer);\r\n }\r\n };\r\n ResizableTableColumns.prototype.getDragHandlers = function () {\r\n var nodes = this.dragHandlesContainer == null\r\n ? null\r\n : this.dragHandlesContainer.querySelectorAll(\".\" + ResizableConstants.classes.handle);\r\n return nodes\r\n ? Array.prototype.slice.call(nodes).filter(function (el) { return el.nodeName === 'DIV'; })\r\n : new Array();\r\n };\r\n ResizableTableColumns.prototype.restoreColumnWidths = function () {\r\n if (!this.options.store)\r\n return;\r\n var tableId = ResizableTableColumns.generateTableId(this.table);\r\n if (tableId.length === 0)\r\n return;\r\n var data = this.options.store.get(tableId);\r\n if (!data)\r\n return;\r\n this.getResizableHeaders()\r\n .forEach(function (el, idx) {\r\n var width = data.columns[ResizableTableColumns.generateColumnId(el)];\r\n if (typeof width !== 'undefined') {\r\n ResizableTableColumns.setWidth(el, width);\r\n }\r\n });\r\n if (typeof data.table !== 'undefined') {\r\n ResizableTableColumns.setWidth(this.table, data.table);\r\n }\r\n };\r\n ResizableTableColumns.prototype.checkTableWidth = function () {\r\n var wrappperWidth = UtilitiesDOM.getWidth(this.wrapper);\r\n //might bee needed to exclude margins/borders/paddings\r\n var tableWidth = UtilitiesDOM.getOuterWidth(this.table, true);\r\n var difference = wrappperWidth - tableWidth;\r\n if (difference > 0) {\r\n var totalWidth_1 = 0;\r\n var resizableWidth_1 = 0;\r\n var addedWidth = 0;\r\n var widths_1 = [];\r\n this.tableHeaders\r\n .forEach(function (el, idx) {\r\n //might bee needed to include margins/borders/paddings\r\n var width = ResizableTableColumns.getWidth(el);\r\n widths_1.push(width);\r\n totalWidth_1 += width;\r\n if (el.hasAttribute(ResizableConstants.attibutes.dataResizable)) {\r\n resizableWidth_1 += width;\r\n }\r\n });\r\n ResizableTableColumns.setWidth(this.table, wrappperWidth);\r\n for (var index = 0; index < this.tableHeaders.length; index++) {\r\n var el = this.tableHeaders[index];\r\n var currentWidth = widths_1.shift();\r\n if (el.hasAttribute(ResizableConstants.attibutes.dataResizable)) {\r\n var newWidth = currentWidth + ((currentWidth / resizableWidth_1) * difference);\r\n var leftToAdd = totalWidth_1 + difference - addedWidth;\r\n newWidth = Math.min(newWidth, leftToAdd);\r\n newWidth = Math.max(newWidth, 0); // Do not add a negative width\r\n var constrainedWidth = this.constrainWidth(el, newWidth);\r\n ResizableTableColumns.setWidth(el, constrainedWidth);\r\n addedWidth += newWidth;\r\n }\r\n else {\r\n addedWidth += currentWidth;\r\n }\r\n if (addedWidth >= totalWidth_1)\r\n break;\r\n }\r\n }\r\n };\r\n ResizableTableColumns.prototype.syncHandleWidths = function () {\r\n var _this = this;\r\n var tableWidth = UtilitiesDOM.getWidth(this.table);\r\n ResizableTableColumns.setWidth(this.dragHandlesContainer, tableWidth);\r\n this.dragHandlesContainer.style.minWidth = tableWidth + \"px\";\r\n var headers = this.getResizableHeaders();\r\n this.getDragHandlers()\r\n .forEach(function (el, idx) {\r\n var height = UtilitiesDOM.getInnerHeight((_this.options.resizeFromBody ? _this.table : _this.table.tHead));\r\n if (idx < headers.length) {\r\n var th = headers[idx];\r\n var left = UtilitiesDOM.getOuterWidth(th);\r\n left += UtilitiesDOM.getOffset(th).left;\r\n left -= UtilitiesDOM.getOffset(_this.dragHandlesContainer).left;\r\n el.style.left = left + \"px\";\r\n el.style.height = height + \"px\";\r\n }\r\n });\r\n };\r\n ResizableTableColumns.prototype.getResizableHeaders = function () {\r\n return this.tableHeaders\r\n .filter(function (el, idx) {\r\n return el.hasAttribute(ResizableConstants.attibutes.dataResizable);\r\n });\r\n };\r\n ResizableTableColumns.prototype.handlePointerDown = function (event) {\r\n this.handlePointerUp();\r\n var target = event ? event.target : null;\r\n if (target == null)\r\n return;\r\n if (target.nodeName !== 'DIV' || !UtilitiesDOM.hasClass(target, ResizableConstants.classes.handle))\r\n return;\r\n if (typeof event.button === 'number' && event.button !== 0)\r\n return; // this is not a left click\r\n var dragHandler = target;\r\n var gripIndex = this.getDragHandlers().indexOf(dragHandler);\r\n var resizableHeaders = this.getResizableHeaders();\r\n if (gripIndex >= resizableHeaders.length)\r\n return;\r\n var millisecondsNow = (new Date()).getTime();\r\n var isDoubleClick = (millisecondsNow - this.lastPointerDown) < this.options.doubleClickDelay;\r\n var column = resizableHeaders[gripIndex];\r\n var columnWidth = ResizableTableColumns.getWidth(column);\r\n var tableWidth = ResizableTableColumns.getWidth(this.table);\r\n var eventData = new ResizableEventData(column, dragHandler);\r\n eventData.pointer = {\r\n x: UtilitiesDOM.getPointerX(event),\r\n isDoubleClick: isDoubleClick\r\n };\r\n eventData.originalWidths = {\r\n column: columnWidth,\r\n table: tableWidth\r\n };\r\n this.detachHandlers(); //make sure we do not have extra handlers\r\n this.attachHandlers();\r\n UtilitiesDOM.addClass(this.table, ResizableConstants.classes.tableResizing);\r\n UtilitiesDOM.addClass(this.wrapper, ResizableConstants.classes.tableResizing);\r\n UtilitiesDOM.addClass(dragHandler, ResizableConstants.classes.columnResizing);\r\n UtilitiesDOM.addClass(column, ResizableConstants.classes.columnResizing);\r\n this.lastPointerDown = millisecondsNow;\r\n this.eventData = eventData;\r\n var eventToDispatch = new CustomEvent(ResizableConstants.events.eventResizeStart, {\r\n detail: {\r\n column: column,\r\n columnWidth: columnWidth,\r\n table: this.table,\r\n tableWidth: tableWidth\r\n }\r\n });\r\n this.table.dispatchEvent(eventToDispatch);\r\n event.preventDefault();\r\n };\r\n ResizableTableColumns.prototype.handlePointerMove = function (event) {\r\n if (!this.eventData || !event)\r\n return;\r\n var difference = (UtilitiesDOM.getPointerX(event) || 0) - (this.eventData.pointer.x || 0);\r\n if (difference === 0) {\r\n return;\r\n }\r\n var tableWidth = this.eventData.originalWidths.table + difference;\r\n var columnWidth = this.constrainWidth(this.eventData.column, this.eventData.originalWidths.column + difference);\r\n ResizableTableColumns.setWidth(this.table, tableWidth);\r\n ResizableTableColumns.setWidth(this.eventData.column, columnWidth);\r\n this.eventData.newWidths = {\r\n column: columnWidth,\r\n table: tableWidth\r\n };\r\n var eventToDispatch = new CustomEvent(ResizableConstants.events.eventResize, {\r\n detail: {\r\n column: this.eventData.column,\r\n columnWidth: columnWidth,\r\n table: this.table,\r\n tableWidth: tableWidth\r\n }\r\n });\r\n this.table.dispatchEvent(eventToDispatch);\r\n };\r\n ResizableTableColumns.prototype.handlePointerUp = function () {\r\n this.detachHandlers();\r\n if (!this.eventData)\r\n return;\r\n if (this.eventData.pointer.isDoubleClick) {\r\n this.handleDoubleClick();\r\n }\r\n UtilitiesDOM.removeClass(this.table, ResizableConstants.classes.tableResizing);\r\n UtilitiesDOM.removeClass(this.wrapper, ResizableConstants.classes.tableResizing);\r\n UtilitiesDOM.removeClass(this.eventData.dragHandler, ResizableConstants.classes.columnResizing);\r\n UtilitiesDOM.removeClass(this.eventData.column, ResizableConstants.classes.columnResizing);\r\n this.checkTableWidth();\r\n this.syncHandleWidths();\r\n this.refreshWrapperStyle();\r\n this.saveColumnWidths();\r\n var widths = this.eventData.newWidths || this.eventData.originalWidths;\r\n var eventToDispatch = new CustomEvent(ResizableConstants.events.eventResizeStop, {\r\n detail: {\r\n column: this.eventData.column,\r\n columnWidth: widths.column,\r\n table: this.table,\r\n tableWidth: widths.table\r\n }\r\n });\r\n this.table.dispatchEvent(eventToDispatch);\r\n this.eventData = null;\r\n };\r\n ResizableTableColumns.prototype.handleDoubleClick = function () {\r\n if (!this.eventData || !this.eventData.column)\r\n return;\r\n var column = this.eventData.column;\r\n var colIndex = this.tableHeaders.indexOf(column);\r\n var maxWidth = 0;\r\n var indecesToSkip = [];\r\n this.tableHeaders\r\n .forEach(function (el, idx) {\r\n if (!el.hasAttribute(ResizableConstants.attibutes.dataResizable)) {\r\n indecesToSkip.push(idx);\r\n }\r\n });\r\n var span = this.ownerDocument.createElement('span');\r\n span.style.position = 'absolute';\r\n span.style.left = '-99999px';\r\n span.style.top = '-99999px';\r\n span.style.visibility = 'hidden';\r\n this.ownerDocument.body.appendChild(span);\r\n var rows = this.table.querySelectorAll('tr');\r\n for (var rowIndex = 0; rowIndex < rows.length; rowIndex++) {\r\n var element = rows[rowIndex];\r\n var cells = element.querySelectorAll('td, th');\r\n var currentIndex = 0;\r\n for (var cellIndex = 0; cellIndex < cells.length; cellIndex++) {\r\n var cell = cells[cellIndex];\r\n var colSpan = 1;\r\n if (cell.hasAttribute('colspan')) {\r\n var colSpanString = cell.getAttribute('colspan') || '1';\r\n var parsed = parseInt(colSpanString);\r\n if (!isNaN(parsed)) {\r\n colSpan = parsed;\r\n }\r\n else {\r\n colSpan = 1;\r\n }\r\n }\r\n if (indecesToSkip.indexOf(cellIndex) === -1\r\n && colSpan === 1\r\n && currentIndex === colIndex) {\r\n maxWidth = Math.max(maxWidth, UtilitiesDOM.getTextWidth(cell, span));\r\n break;\r\n }\r\n currentIndex += colSpan;\r\n }\r\n }\r\n this.ownerDocument.body.removeChild(span);\r\n var difference = maxWidth - UtilitiesDOM.getWidth(column);\r\n if (difference === 0) {\r\n return;\r\n }\r\n var tableWidth = this.eventData.originalWidths.table + difference;\r\n var columnWidth = this.constrainWidth(this.eventData.column, this.eventData.originalWidths.column + difference);\r\n ResizableTableColumns.setWidth(this.table, tableWidth);\r\n ResizableTableColumns.setWidth(this.eventData.column, columnWidth);\r\n this.eventData.newWidths = {\r\n column: columnWidth,\r\n table: tableWidth\r\n };\r\n var eventToDispatch = new CustomEvent(ResizableConstants.events.eventResize, {\r\n detail: {\r\n column: this.eventData.column,\r\n columnWidth: columnWidth,\r\n table: this.table,\r\n tableWidth: tableWidth\r\n }\r\n });\r\n this.table.dispatchEvent(eventToDispatch);\r\n };\r\n ResizableTableColumns.prototype.attachHandlers = function () {\r\n var _this = this;\r\n ResizableConstants.events.pointerMove\r\n .forEach(function (evt, evtIdx) {\r\n _this.ownerDocument.addEventListener(evt, _this.onPointerMoveRef, false);\r\n });\r\n ResizableConstants.events.pointerUp\r\n .forEach(function (evt, evtIdx) {\r\n _this.ownerDocument.addEventListener(evt, _this.onPointerUpRef, false);\r\n });\r\n };\r\n ResizableTableColumns.prototype.detachHandlers = function () {\r\n var _this = this;\r\n ResizableConstants.events.pointerMove\r\n .forEach(function (evt, evtIdx) {\r\n _this.ownerDocument.removeEventListener(evt, _this.onPointerMoveRef, false);\r\n });\r\n ResizableConstants.events.pointerUp\r\n .forEach(function (evt, evtIdx) {\r\n _this.ownerDocument.removeEventListener(evt, _this.onPointerUpRef, false);\r\n });\r\n };\r\n ResizableTableColumns.prototype.refreshWrapperStyle = function () {\r\n if (this.wrapper == null)\r\n return;\r\n var original = this.wrapper.style.overflowX;\r\n this.wrapper.style.overflowX = 'hidden';\r\n this.wrapper.style.overflowX = original;\r\n };\r\n ResizableTableColumns.prototype.saveColumnWidths = function () {\r\n if (!this.options.store)\r\n return;\r\n var tableId = ResizableTableColumns.generateTableId(this.table);\r\n if (tableId.length === 0)\r\n return;\r\n var data = {\r\n table: ResizableTableColumns.getWidth(this.table),\r\n columns: {}\r\n };\r\n this.getResizableHeaders()\r\n .forEach(function (el, idx) {\r\n data.columns[ResizableTableColumns.generateColumnId(el)] = ResizableTableColumns.getWidth(el);\r\n });\r\n this.options.store.set(tableId, data);\r\n };\r\n ResizableTableColumns.prototype.createHandlerReferences = function () {\r\n var _this = this;\r\n if (!this.onPointerDownRef) {\r\n this.onPointerDownRef = function (evt) {\r\n _this.handlePointerDown(evt);\r\n };\r\n }\r\n if (!this.onPointerMoveRef) {\r\n this.onPointerMoveRef = function (evt) {\r\n _this.handlePointerMove(evt);\r\n };\r\n }\r\n if (!this.onPointerUpRef) {\r\n this.onPointerUpRef = function (evt) {\r\n _this.handlePointerUp();\r\n };\r\n }\r\n };\r\n ResizableTableColumns.prototype.registerWindowResizeHandler = function () {\r\n var win = this.ownerDocument.defaultView;\r\n if (ResizableTableColumns.windowResizeHandlerRegistered)\r\n return;\r\n ResizableTableColumns.windowResizeHandlerRegistered = true;\r\n ResizableConstants.events.windowResize\r\n .forEach(function (evt, idx) {\r\n win === null || win === void 0 ? void 0 : win.addEventListener(evt, ResizableTableColumns.onWindowResize, false);\r\n });\r\n };\r\n ResizableTableColumns.prototype.handleWindowResize = function () {\r\n this.checkTableWidth();\r\n this.syncHandleWidths();\r\n };\r\n ResizableTableColumns.onWindowResize = function (event) {\r\n var target = event ? event.target : null;\r\n if (target == null)\r\n return;\r\n var tables = target.document.querySelectorAll(\".\" + ResizableConstants.classes.table);\r\n for (var index = 0; index < tables.length; index++) {\r\n var table = tables[index];\r\n if (typeof table[ResizableConstants.dataPropertyname] !== 'object')\r\n continue;\r\n table[ResizableConstants.dataPropertyname].handleWindowResize();\r\n }\r\n };\r\n ResizableTableColumns.generateColumnId = function (el) {\r\n var columnId = (el.getAttribute(ResizableConstants.attibutes.dataResizable) || '')\r\n .trim()\r\n .replace(/\\./g, '_');\r\n return columnId;\r\n };\r\n ResizableTableColumns.generateTableId = function (table) {\r\n var tableId = (table.getAttribute(ResizableConstants.attibutes.dataResizableTable) || '')\r\n .trim()\r\n .replace(/\\./g, '_');\r\n return tableId.length\r\n ? \"rtc/\" + tableId\r\n : tableId;\r\n };\r\n ResizableTableColumns.getWidth = function (el) {\r\n if (el.style.width === '')\r\n return UtilitiesDOM.getWidth(el);\r\n return Utilities.parseStyleDimension(el.style.width, false);\r\n };\r\n ResizableTableColumns.setWidth = function (element, width) {\r\n var strWidth = width.toFixed(2);\r\n strWidth = width > 0 ? strWidth : '0';\r\n element.style.width = strWidth + \"px\";\r\n };\r\n ResizableTableColumns.getInstanceId = function () {\r\n return ResizableTableColumns.instancesCount++;\r\n };\r\n ResizableTableColumns.instancesCount = 0;\r\n ResizableTableColumns.windowResizeHandlerRegistered = false;\r\n return ResizableTableColumns;\r\n}());\r\nexport default ResizableTableColumns;\r\n//# sourceMappingURL=resizable-table-columns.js.map"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"resizable-table-columns.js","sources":["../es6/utilities.js","../es6/utilities-dom.js","../es6/resizable-options.js","../es6/resizable-event-data.js","../es6/resizable-constants.js","../es6/resizable-table-columns.js"],"sourcesContent":["var Utilities = /** @class */ (function () {\r\n function Utilities() {\r\n }\r\n Utilities.escapeRegExp = function (str) {\r\n return str.replace(Utilities.regexEscapeRegex, \"\\\\$&\");\r\n };\r\n Utilities.kebabCaseToCamelCase = function (str) {\r\n return str.replace(Utilities.kebabCaseRegex, function (m) { return m[1].toUpperCase(); });\r\n };\r\n Utilities.parseStringToType = function (str) {\r\n if (str.length == 0 || Utilities.onlyWhiteSpace.test(str))\r\n return str;\r\n if (Utilities.trueRegex.test(str))\r\n return true;\r\n if (Utilities.falseRegex.test(str))\r\n return false;\r\n if (Utilities.notEmptyOrWhiteSpace.test(str)) {\r\n var temp = +str;\r\n if (!isNaN(temp))\r\n return temp;\r\n }\r\n return str;\r\n };\r\n Utilities.parseStyleDimension = function (dimension, returnOriginal) {\r\n if (typeof dimension === 'string') {\r\n if (dimension.length) {\r\n var toParse = dimension\r\n .replace('px', '')\r\n .replace(',', '.');\r\n var parsed = parseFloat(toParse);\r\n if (!isNaN(parsed)) {\r\n return parsed;\r\n }\r\n }\r\n }\r\n else if (typeof dimension === 'number') {\r\n return dimension;\r\n }\r\n if (returnOriginal) {\r\n return dimension;\r\n }\r\n else {\r\n return 0;\r\n }\r\n };\r\n Utilities.regexEscapeRegex = /[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g;\r\n Utilities.kebabCaseRegex = /(\\-\\w)/g;\r\n Utilities.trueRegex = /^true$/i;\r\n Utilities.falseRegex = /^false$/i;\r\n Utilities.onlyWhiteSpace = /^\\s$/;\r\n Utilities.notEmptyOrWhiteSpace = /\\S/;\r\n return Utilities;\r\n}());\r\nexport { Utilities };\r\n//# sourceMappingURL=utilities.js.map","import { Utilities } from './utilities';\r\nvar UtilitiesDOM = /** @class */ (function () {\r\n function UtilitiesDOM() {\r\n }\r\n UtilitiesDOM.addClass = function (el, className) {\r\n if (el.classList)\r\n el.classList.add(className);\r\n else if (!UtilitiesDOM.hasClass(el, className))\r\n el.className += \" \" + className;\r\n };\r\n UtilitiesDOM.removeClass = function (el, className) {\r\n if (el.classList)\r\n el.classList.remove(className);\r\n else if (UtilitiesDOM.hasClass(el, className)) {\r\n var reg = new RegExp('(\\\\s|^)' + Utilities.escapeRegExp(className) + '(\\\\s|$)');\r\n el.className = el.className.replace(reg, ' ');\r\n }\r\n };\r\n UtilitiesDOM.hasClass = function (el, className) {\r\n if (el.classList)\r\n return el.classList.contains(className);\r\n else\r\n return !!el.className.match(new RegExp('(\\\\s|^)' + Utilities.escapeRegExp(className) + '(\\\\s|$)'));\r\n };\r\n UtilitiesDOM.getDataAttributesValues = function (el) {\r\n if (!el)\r\n return null;\r\n var returnValue = {};\r\n if (el.dataset) {\r\n for (var prop in el.dataset) {\r\n if (el.dataset.hasOwnProperty(prop)) {\r\n returnValue[prop] = Utilities.parseStringToType(el.dataset[prop] || '');\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < el.attributes.length; i++) {\r\n if (!/^data\\-/.test(el.attributes[i].name))\r\n continue;\r\n var name_1 = Utilities.kebabCaseToCamelCase(el.attributes[i].name.replace('data-', ''));\r\n returnValue[name_1] = Utilities.parseStringToType(el.attributes[i].value);\r\n }\r\n }\r\n return returnValue;\r\n };\r\n UtilitiesDOM.getMinCssWidth = function (el) {\r\n var _a;\r\n var computedStyle = (_a = el.ownerDocument.defaultView) === null || _a === void 0 ? void 0 : _a.getComputedStyle(el).minWidth;\r\n var minWidth = Utilities.parseStyleDimension(computedStyle, true);\r\n if (typeof minWidth === 'number' && !isNaN(minWidth))\r\n return minWidth;\r\n return null;\r\n };\r\n UtilitiesDOM.getMaxCssWidth = function (el) {\r\n var _a;\r\n var computedStyle = (_a = el.ownerDocument.defaultView) === null || _a === void 0 ? void 0 : _a.getComputedStyle(el).maxWidth;\r\n var maxWidth = Utilities.parseStyleDimension(computedStyle, true);\r\n if (typeof maxWidth === 'number' && !isNaN(maxWidth))\r\n return maxWidth;\r\n return null;\r\n };\r\n UtilitiesDOM.getOuterWidth = function (el, includeMargin) {\r\n var _a;\r\n if (includeMargin === void 0) { includeMargin = false; }\r\n //TODO: Browser test this\r\n var width = el.offsetWidth;\r\n if (!includeMargin)\r\n return width;\r\n var computedStyles = (_a = el.ownerDocument.defaultView) === null || _a === void 0 ? void 0 : _a.getComputedStyle(el);\r\n var marginTop = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.marginTop, false);\r\n var marginBottom = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.marginBottom, false);\r\n return width + marginTop + marginBottom;\r\n };\r\n UtilitiesDOM.getInnerWidth = function (el) {\r\n var _a;\r\n //TODO: Browser test this\r\n var width = UtilitiesDOM.getOuterWidth(el);\r\n var computedStyles = (_a = el.ownerDocument.defaultView) === null || _a === void 0 ? void 0 : _a.getComputedStyle(el);\r\n var borderLeft = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.borderLeft, false);\r\n var borderRight = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.borderRight, false);\r\n return width - borderLeft - borderRight;\r\n };\r\n UtilitiesDOM.getWidth = function (el) {\r\n var _a;\r\n //TODO: Browser test this\r\n var width = UtilitiesDOM.getOuterWidth(el);\r\n var computedStyles = (_a = el.ownerDocument.defaultView) === null || _a === void 0 ? void 0 : _a.getComputedStyle(el);\r\n var isBorderBox = (computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.boxSizing) === 'border-box';\r\n if (isBorderBox)\r\n return width;\r\n var paddingLeft = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.paddingLeft, false);\r\n var paddingRight = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.paddingRight, false);\r\n var borderLeft = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.borderLeft, false);\r\n var borderRight = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.borderRight, false);\r\n return width - paddingLeft - paddingRight - borderLeft - borderRight;\r\n };\r\n UtilitiesDOM.getOuterHeight = function (el, includeMargin) {\r\n var _a;\r\n if (includeMargin === void 0) { includeMargin = false; }\r\n //TODO: Browser test this\r\n var height = el.offsetHeight;\r\n if (!includeMargin)\r\n return height;\r\n var computedStyles = (_a = el.ownerDocument.defaultView) === null || _a === void 0 ? void 0 : _a.getComputedStyle(el);\r\n var marginTop = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.marginTop, false);\r\n var marginBottom = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.marginBottom, false);\r\n return height + marginTop + marginBottom;\r\n };\r\n UtilitiesDOM.getInnerHeight = function (el) {\r\n var _a;\r\n //TODO: Browser test this\r\n var height = UtilitiesDOM.getOuterHeight(el);\r\n var computedStyles = (_a = el.ownerDocument.defaultView) === null || _a === void 0 ? void 0 : _a.getComputedStyle(el);\r\n var borderTop = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.borderTop, false);\r\n var borderBottom = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.borderBottom, false);\r\n return height - borderTop - borderBottom;\r\n };\r\n UtilitiesDOM.getHeight = function (el) {\r\n var _a;\r\n //TODO: Browser test this\r\n var height = UtilitiesDOM.getOuterHeight(el);\r\n var computedStyles = (_a = el.ownerDocument.defaultView) === null || _a === void 0 ? void 0 : _a.getComputedStyle(el);\r\n var paddingTop = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.paddingTop, false);\r\n var paddingBottom = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.paddingBottom, false);\r\n var borderTop = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.borderTop, false);\r\n var borderBottom = Utilities.parseStyleDimension(computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.borderBottom, false);\r\n return height - paddingTop - paddingBottom - borderTop - borderBottom;\r\n };\r\n UtilitiesDOM.getOffset = function (el) {\r\n if (!el)\r\n return { top: 0, left: 0 };\r\n var rect = el.getBoundingClientRect();\r\n return {\r\n top: rect.top + el.ownerDocument.body.scrollTop,\r\n left: rect.left + el.ownerDocument.body.scrollLeft\r\n };\r\n };\r\n UtilitiesDOM.matches = function (el, selector) {\r\n var matchesFn = undefined;\r\n // find vendor prefix\r\n var matchNames = ['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'];\r\n for (var index = 0; index < matchNames.length; index++) {\r\n if (typeof el.ownerDocument.body[matchNames[index]] === 'function') {\r\n matchesFn = matchNames[index];\r\n break;\r\n }\r\n }\r\n return matchesFn ? el[matchesFn](selector) : false;\r\n };\r\n UtilitiesDOM.closest = function (el, selector) {\r\n if (!el)\r\n return null;\r\n if (typeof el.closest === 'function')\r\n return el.closest(selector);\r\n var element = el;\r\n while (element && element.nodeType === 1) {\r\n if (UtilitiesDOM.matches(element, selector)) {\r\n return element;\r\n }\r\n element = element.parentNode;\r\n }\r\n return null;\r\n };\r\n UtilitiesDOM.getPointerX = function (event) {\r\n //TODO: Browser test this\r\n if (event.type.indexOf('touch') === 0) {\r\n var tEvent = event;\r\n if (tEvent.touches && tEvent.touches.length) {\r\n return tEvent.touches[0].pageX;\r\n }\r\n if (tEvent.changedTouches && tEvent.changedTouches.length) {\r\n return tEvent.changedTouches[0].pageX;\r\n }\r\n }\r\n return event.pageX;\r\n };\r\n UtilitiesDOM.getTextWidth = function (contentElement, measurementElement) {\r\n var _a, _b;\r\n //TODO: Browser test this\r\n if (!contentElement || !measurementElement)\r\n return 0;\r\n var text = ((_a = contentElement.textContent) === null || _a === void 0 ? void 0 : _a.trim().replace(/\\s/g, ' ')) + ' '; //add extra space to ensure we are not elipsing anything\r\n var styles = (_b = contentElement.ownerDocument.defaultView) === null || _b === void 0 ? void 0 : _b.getComputedStyle(contentElement);\r\n ['fontFamily', 'fontSize', 'fontWeight', 'padding', 'border', 'boxSizing']\r\n .forEach(function (prop) {\r\n measurementElement.style[prop] = styles[prop];\r\n });\r\n measurementElement.innerHTML = text;\r\n return UtilitiesDOM.getOuterWidth(measurementElement, true);\r\n };\r\n return UtilitiesDOM;\r\n}());\r\nexport { UtilitiesDOM };\r\n//# sourceMappingURL=utilities-dom.js.map","import { UtilitiesDOM } from \"./utilities-dom\";\r\nvar ResizableOptions = /** @class */ (function () {\r\n function ResizableOptions(options, element) {\r\n if (options === void 0) { options = null; }\r\n if (element === void 0) { element = null; }\r\n this.resizeFromBody = true;\r\n this.minWidth = 40;\r\n this.maxWidth = null;\r\n this.obeyCssMinWidth = false;\r\n this.obeyCssMaxWidth = false;\r\n this.doubleClickDelay = 500;\r\n this.store = null;\r\n this.overrideValues(options);\r\n this.overrideValuesFromElement(element);\r\n }\r\n ResizableOptions.prototype.overrideValues = function (options) {\r\n if (options === void 0) { options = null; }\r\n if (!options)\r\n return;\r\n for (var prop in options) {\r\n if (this.hasOwnProperty(prop)) {\r\n this[prop] = options[prop];\r\n }\r\n }\r\n };\r\n ResizableOptions.prototype.overrideValuesFromElement = function (element) {\r\n if (element === void 0) { element = null; }\r\n if (!element)\r\n return;\r\n var elementOptions = UtilitiesDOM.getDataAttributesValues(element);\r\n this.overrideValues(elementOptions);\r\n };\r\n return ResizableOptions;\r\n}());\r\nexport { ResizableOptions };\r\n//# sourceMappingURL=resizable-options.js.map","var WidthsData = /** @class */ (function () {\r\n function WidthsData() {\r\n this.column = 0;\r\n this.table = 0;\r\n }\r\n return WidthsData;\r\n}());\r\nexport { WidthsData };\r\nvar PointerData = /** @class */ (function () {\r\n function PointerData() {\r\n this.x = null;\r\n this.isDoubleClick = false;\r\n }\r\n return PointerData;\r\n}());\r\nexport { PointerData };\r\nvar ResizableEventData = /** @class */ (function () {\r\n function ResizableEventData(column, dragHandler) {\r\n this.pointer = new PointerData();\r\n this.originalWidths = new WidthsData();\r\n this.newWidths = new WidthsData();\r\n this.columnRatio = 0;\r\n this.tableRatio = 0;\r\n this.column = column;\r\n this.dragHandler = dragHandler;\r\n }\r\n return ResizableEventData;\r\n}());\r\nexport { ResizableEventData };\r\n//# sourceMappingURL=resizable-event-data.js.map","var ResizableConstants = /** @class */ (function () {\r\n function ResizableConstants() {\r\n }\r\n ResizableConstants.dataPropertyname = 'validide_rtc_data_object';\r\n ResizableConstants.classes = {\r\n table: 'rtc-table',\r\n wrapper: 'rtc-wrapper',\r\n handleContainer: 'rtc-handle-container',\r\n handle: 'rtc-handle',\r\n tableResizing: 'rtc-table-resizing',\r\n columnResizing: 'rtc-column-resizing',\r\n };\r\n ResizableConstants.attibutes = {\r\n dataResizable: 'data-rtc-resizable',\r\n dataResizableTable: 'data-rtc-resizable-table'\r\n };\r\n ResizableConstants.data = {\r\n resizable: 'rtcResizable',\r\n resizableTable: 'rtcResizableTable'\r\n };\r\n ResizableConstants.events = {\r\n pointerDown: ['mousedown', 'touchstart'],\r\n pointerMove: ['mousemove', 'touchmove'],\r\n pointerUp: ['mouseup', 'touchend'],\r\n windowResize: ['resize'],\r\n eventResizeStart: 'eventResizeStart.rtc',\r\n eventResize: 'eventResize.rtc',\r\n eventResizeStop: 'eventResizeStop.rtc'\r\n };\r\n return ResizableConstants;\r\n}());\r\nexport { ResizableConstants };\r\n//# sourceMappingURL=resizable-constants.js.map","import { ResizableOptions } from './resizable-options';\r\nimport { Utilities } from './utilities';\r\nimport { UtilitiesDOM } from './utilities-dom';\r\nimport { ResizableEventData } from './resizable-event-data';\r\nimport { ResizableConstants } from './resizable-constants';\r\nvar ResizableTableColumns = /** @class */ (function () {\r\n function ResizableTableColumns(table, options) {\r\n if (typeof table !== 'object' || table === null || table.toString() !== '[object HTMLTableElement]')\r\n throw 'Invalid argument: \"table\".\\nResizableTableColumns requires that the table element is a not null HTMLTableElement object!';\r\n if (typeof table[ResizableConstants.dataPropertyname] !== 'undefined')\r\n throw \"Existing \\\"\" + ResizableConstants.dataPropertyname + \"\\\" property.\\nTable elemet already has a '\" + ResizableConstants.dataPropertyname + \"' attached object!\";\r\n this.id = ResizableTableColumns.getInstanceId();\r\n this.table = table;\r\n this.options = new ResizableOptions(options, table);\r\n this.wrapper = null;\r\n this.ownerDocument = table.ownerDocument;\r\n this.tableHeaders = [];\r\n this.dragHandlesContainer = null;\r\n this.originalWidths = {};\r\n this.eventData = null;\r\n this.lastPointerDown = 0;\r\n this.init();\r\n this.table[ResizableConstants.dataPropertyname] = this;\r\n }\r\n ResizableTableColumns.prototype.init = function () {\r\n this.validateMarkup();\r\n this.createHandlerReferences();\r\n this.wrapTable();\r\n this.asignTableHeaders();\r\n this.storeOriginalWidths();\r\n this.setHeaderWidths();\r\n this.createDragHandles();\r\n this.restoreColumnWidths();\r\n this.checkTableWidth();\r\n this.syncHandleWidths();\r\n this.registerWindowResizeHandler();\r\n };\r\n ResizableTableColumns.prototype.dispose = function () {\r\n this.destroyDragHandles();\r\n this.restoreOriginalWidths();\r\n this.unwrapTable();\r\n this.onPointerDownRef = null;\r\n this.onPointerMoveRef = null;\r\n this.onPointerUpRef = null;\r\n this.table[ResizableConstants.dataPropertyname] = void (0);\r\n };\r\n ResizableTableColumns.prototype.validateMarkup = function () {\r\n var theadCount = 0;\r\n var tbodyCount = 0;\r\n var thead = null;\r\n for (var index = 0; index < this.table.childNodes.length; index++) {\r\n var element = this.table.childNodes[index];\r\n if (element.nodeName === 'THEAD') {\r\n theadCount++;\r\n thead = element;\r\n }\r\n else if (element.nodeName === 'TBODY') {\r\n tbodyCount++;\r\n }\r\n }\r\n if (thead === null || theadCount !== 1)\r\n throw \"Markup validation: thead count.\\nResizableTableColumns requires that the table element has one(1) table head element. Current count: \" + theadCount;\r\n if (tbodyCount !== 1)\r\n throw \"Markup validation: tbody count.\\nResizableTableColumns requires that the table element has one(1) table body element. Current count: \" + tbodyCount;\r\n var theadRowCount = 0;\r\n var firstRow = null;\r\n for (var index = 0; index < thead.childNodes.length; index++) {\r\n var element = thead.childNodes[index];\r\n if (element.nodeName === 'TR') {\r\n theadRowCount++;\r\n if (firstRow === null) {\r\n firstRow = element;\r\n }\r\n }\r\n }\r\n if (firstRow === null || theadRowCount < 1)\r\n throw \"Markup validation: thead row count.\\nResizableTableColumns requires that the table head element has at least one(1) table row element. Current count: \" + theadRowCount;\r\n var headerCellsCount = 0;\r\n var invalidHeaderCellsCount = 0;\r\n for (var index = 0; index < firstRow.childNodes.length; index++) {\r\n var element = firstRow.childNodes[index];\r\n if (element.nodeName === 'TH') {\r\n headerCellsCount++;\r\n }\r\n else if (element.nodeName === 'TD') {\r\n invalidHeaderCellsCount++;\r\n }\r\n }\r\n if (headerCellsCount < 1)\r\n throw \"Markup validation: thead first row cells count.\\nResizableTableColumns requires that the table head's first row element has at least one(1) table header cell element. Current count: \" + headerCellsCount;\r\n if (invalidHeaderCellsCount !== 0)\r\n throw \"Markup validation: thead first row invalid.\\nResizableTableColumns requires that the table head's first row element has no(0) table cell(TD) elements. Current count: \" + invalidHeaderCellsCount;\r\n };\r\n ResizableTableColumns.prototype.wrapTable = function () {\r\n if (this.wrapper)\r\n return;\r\n this.wrapper = this.ownerDocument.createElement('div');\r\n var tableOriginalParent = this.table.parentNode;\r\n tableOriginalParent.insertBefore(this.wrapper, this.table);\r\n tableOriginalParent.removeChild(this.table);\r\n this.wrapper.appendChild(this.table);\r\n UtilitiesDOM.addClass(this.wrapper, ResizableConstants.classes.wrapper);\r\n UtilitiesDOM.addClass(this.table, ResizableConstants.classes.table);\r\n };\r\n ResizableTableColumns.prototype.unwrapTable = function () {\r\n UtilitiesDOM.removeClass(this.table, ResizableConstants.classes.table);\r\n if (!this.wrapper)\r\n return;\r\n var tableOriginalParent = this.wrapper.parentNode;\r\n tableOriginalParent.insertBefore(this.table, this.wrapper);\r\n tableOriginalParent.removeChild(this.wrapper);\r\n this.wrapper = null;\r\n };\r\n ResizableTableColumns.prototype.asignTableHeaders = function () {\r\n var tableHeader;\r\n var firstTableRow;\r\n for (var index = 0; index < this.table.childNodes.length; index++) {\r\n var element = this.table.childNodes[index];\r\n if (element.nodeName === 'THEAD') {\r\n tableHeader = element;\r\n break;\r\n }\r\n }\r\n if (!tableHeader)\r\n return;\r\n for (var index = 0; index < tableHeader.childNodes.length; index++) {\r\n var element = tableHeader.childNodes[index];\r\n if (element.nodeName === 'TR') {\r\n firstTableRow = element;\r\n break;\r\n }\r\n }\r\n if (!firstTableRow)\r\n return;\r\n for (var index = 0; index < firstTableRow.childNodes.length; index++) {\r\n var element = firstTableRow.childNodes[index];\r\n if (element.nodeName === 'TH') {\r\n this.tableHeaders.push(element);\r\n }\r\n }\r\n };\r\n ResizableTableColumns.prototype.storeOriginalWidths = function () {\r\n var _this = this;\r\n this.tableHeaders\r\n .forEach(function (el, idx) {\r\n _this.originalWidths[\"___.\" + idx] = el.style.width;\r\n });\r\n this.originalWidths[\"___.table\"] = this.table.style.width;\r\n };\r\n ResizableTableColumns.prototype.restoreOriginalWidths = function () {\r\n var _this = this;\r\n this.tableHeaders\r\n .forEach(function (el, idx) {\r\n el.style.width = _this.originalWidths[\"___.\" + idx];\r\n });\r\n this.table.style.width = this.originalWidths[\"___.table\"];\r\n };\r\n ResizableTableColumns.prototype.setHeaderWidths = function () {\r\n var _this = this;\r\n this.tableHeaders\r\n .forEach(function (el, idx) {\r\n var width = UtilitiesDOM.getWidth(el);\r\n var constrainedWidth = _this.constrainWidth(el, width);\r\n ResizableTableColumns.setWidth(el, constrainedWidth);\r\n });\r\n };\r\n ResizableTableColumns.prototype.constrainWidth = function (el, width) {\r\n var result = width;\r\n var minWidth = this.options.obeyCssMinWidth\r\n ? UtilitiesDOM.getMinCssWidth(el)\r\n : -Infinity;\r\n result = Math.max(result, minWidth || 0, this.options.minWidth || -Infinity);\r\n var maxWidth = this.options.obeyCssMaxWidth\r\n ? UtilitiesDOM.getMaxCssWidth(el)\r\n : +Infinity;\r\n result = Math.min(result, maxWidth || 0, this.options.maxWidth || +Infinity);\r\n return result;\r\n };\r\n ResizableTableColumns.prototype.createDragHandles = function () {\r\n var _this = this;\r\n var _a;\r\n if (this.dragHandlesContainer != null)\r\n throw 'Drag handlers allready created. Call if you wish to recreate them';\r\n this.dragHandlesContainer = this.ownerDocument.createElement('div');\r\n (_a = this.wrapper) === null || _a === void 0 ? void 0 : _a.insertBefore(this.dragHandlesContainer, this.table);\r\n UtilitiesDOM.addClass(this.dragHandlesContainer, ResizableConstants.classes.handleContainer);\r\n this.getResizableHeaders()\r\n .forEach(function (el, idx) {\r\n var _a;\r\n var handler = _this.ownerDocument.createElement('div');\r\n UtilitiesDOM.addClass(handler, ResizableConstants.classes.handle);\r\n (_a = _this.dragHandlesContainer) === null || _a === void 0 ? void 0 : _a.appendChild(handler);\r\n });\r\n ResizableConstants.events.pointerDown\r\n .forEach(function (evt, evtIdx) {\r\n var _a;\r\n (_a = _this.dragHandlesContainer) === null || _a === void 0 ? void 0 : _a.addEventListener(evt, _this.onPointerDownRef, false);\r\n });\r\n };\r\n ResizableTableColumns.prototype.destroyDragHandles = function () {\r\n var _this = this;\r\n var _a, _b;\r\n if (this.dragHandlesContainer !== null) {\r\n ResizableConstants.events.pointerDown\r\n .forEach(function (evt, evtIdx) {\r\n var _a;\r\n (_a = _this.dragHandlesContainer) === null || _a === void 0 ? void 0 : _a.removeEventListener(evt, _this.onPointerDownRef, false);\r\n });\r\n (_b = (_a = this.dragHandlesContainer) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.removeChild(this.dragHandlesContainer);\r\n }\r\n };\r\n ResizableTableColumns.prototype.getDragHandlers = function () {\r\n var nodes = this.dragHandlesContainer == null\r\n ? null\r\n : this.dragHandlesContainer.querySelectorAll(\".\" + ResizableConstants.classes.handle);\r\n return nodes\r\n ? Array.prototype.slice.call(nodes).filter(function (el) { return el.nodeName === 'DIV'; })\r\n : new Array();\r\n };\r\n ResizableTableColumns.prototype.restoreColumnWidths = function () {\r\n if (!this.options.store)\r\n return;\r\n var tableId = ResizableTableColumns.generateTableId(this.table);\r\n if (tableId.length === 0)\r\n return;\r\n var data = this.options.store.get(tableId);\r\n if (!data)\r\n return;\r\n this.getResizableHeaders()\r\n .forEach(function (el, idx) {\r\n var width = data.columns[ResizableTableColumns.generateColumnId(el)];\r\n if (typeof width !== 'undefined') {\r\n ResizableTableColumns.setWidth(el, width);\r\n }\r\n });\r\n if (typeof data.table !== 'undefined') {\r\n ResizableTableColumns.setWidth(this.table, data.table);\r\n }\r\n };\r\n ResizableTableColumns.prototype.checkTableWidth = function () {\r\n var wrappperWidth = UtilitiesDOM.getWidth(this.wrapper);\r\n //might bee needed to exclude margins/borders/paddings\r\n var tableWidth = UtilitiesDOM.getOuterWidth(this.table, true);\r\n var difference = wrappperWidth - tableWidth;\r\n if (difference > 0) {\r\n var totalWidth_1 = 0;\r\n var resizableWidth_1 = 0;\r\n var addedWidth = 0;\r\n var widths_1 = [];\r\n this.tableHeaders\r\n .forEach(function (el, idx) {\r\n //might bee needed to include margins/borders/paddings\r\n var width = ResizableTableColumns.getWidth(el);\r\n widths_1.push(width);\r\n totalWidth_1 += width;\r\n if (el.hasAttribute(ResizableConstants.attibutes.dataResizable)) {\r\n resizableWidth_1 += width;\r\n }\r\n });\r\n ResizableTableColumns.setWidth(this.table, wrappperWidth);\r\n for (var index = 0; index < this.tableHeaders.length; index++) {\r\n var el = this.tableHeaders[index];\r\n var currentWidth = widths_1.shift();\r\n if (el.hasAttribute(ResizableConstants.attibutes.dataResizable)) {\r\n var newWidth = currentWidth + ((currentWidth / resizableWidth_1) * difference);\r\n var leftToAdd = totalWidth_1 + difference - addedWidth;\r\n newWidth = Math.min(newWidth, leftToAdd);\r\n newWidth = Math.max(newWidth, 0); // Do not add a negative width\r\n var constrainedWidth = this.constrainWidth(el, newWidth);\r\n ResizableTableColumns.setWidth(el, constrainedWidth);\r\n addedWidth += newWidth;\r\n }\r\n else {\r\n addedWidth += currentWidth;\r\n }\r\n if (addedWidth >= totalWidth_1)\r\n break;\r\n }\r\n }\r\n };\r\n ResizableTableColumns.prototype.syncHandleWidths = function () {\r\n var _this = this;\r\n var tableWidth = UtilitiesDOM.getWidth(this.table);\r\n ResizableTableColumns.setWidth(this.dragHandlesContainer, tableWidth);\r\n this.dragHandlesContainer.style.minWidth = tableWidth + \"px\";\r\n var headers = this.getResizableHeaders();\r\n this.getDragHandlers()\r\n .forEach(function (el, idx) {\r\n var height = UtilitiesDOM.getInnerHeight((_this.options.resizeFromBody ? _this.table : _this.table.tHead));\r\n if (idx < headers.length) {\r\n var th = headers[idx];\r\n var left = UtilitiesDOM.getOuterWidth(th);\r\n left += UtilitiesDOM.getOffset(th).left;\r\n left -= UtilitiesDOM.getOffset(_this.dragHandlesContainer).left;\r\n el.style.left = left + \"px\";\r\n el.style.height = height + \"px\";\r\n }\r\n });\r\n };\r\n ResizableTableColumns.prototype.getResizableHeaders = function () {\r\n return this.tableHeaders\r\n .filter(function (el, idx) {\r\n return el.hasAttribute(ResizableConstants.attibutes.dataResizable);\r\n });\r\n };\r\n ResizableTableColumns.prototype.handlePointerDown = function (event) {\r\n this.handlePointerUp();\r\n var target = event ? event.target : null;\r\n if (target == null)\r\n return;\r\n if (target.nodeName !== 'DIV' || !UtilitiesDOM.hasClass(target, ResizableConstants.classes.handle))\r\n return;\r\n if (typeof event.button === 'number' && event.button !== 0)\r\n return; // this is not a left click\r\n var dragHandler = target;\r\n var gripIndex = this.getDragHandlers().indexOf(dragHandler);\r\n var resizableHeaders = this.getResizableHeaders();\r\n if (gripIndex >= resizableHeaders.length)\r\n return;\r\n var millisecondsNow = (new Date()).getTime();\r\n var isDoubleClick = (millisecondsNow - this.lastPointerDown) < this.options.doubleClickDelay;\r\n var column = resizableHeaders[gripIndex];\r\n var columnWidth = ResizableTableColumns.getWidth(column);\r\n var computedColumnWidth = ResizableTableColumns.getComputedWidth(column);\r\n var tableWidth = ResizableTableColumns.getWidth(this.table);\r\n var computedTableWidth = ResizableTableColumns.getComputedWidth(this.table);\r\n var widths = {\r\n column: columnWidth,\r\n table: tableWidth\r\n };\r\n var eventData = new ResizableEventData(column, dragHandler);\r\n eventData.pointer = {\r\n x: UtilitiesDOM.getPointerX(event),\r\n isDoubleClick: isDoubleClick\r\n };\r\n eventData.originalWidths = widths;\r\n eventData.newWidths = widths;\r\n eventData.columnRatio = columnWidth / computedColumnWidth;\r\n eventData.tableRatio = tableWidth / computedTableWidth;\r\n this.detachHandlers(); //make sure we do not have extra handlers\r\n this.attachHandlers();\r\n UtilitiesDOM.addClass(this.table, ResizableConstants.classes.tableResizing);\r\n UtilitiesDOM.addClass(this.wrapper, ResizableConstants.classes.tableResizing);\r\n UtilitiesDOM.addClass(dragHandler, ResizableConstants.classes.columnResizing);\r\n UtilitiesDOM.addClass(column, ResizableConstants.classes.columnResizing);\r\n this.lastPointerDown = millisecondsNow;\r\n this.eventData = eventData;\r\n var eventToDispatch = new CustomEvent(ResizableConstants.events.eventResizeStart, {\r\n detail: {\r\n column: column,\r\n columnWidth: columnWidth,\r\n table: this.table,\r\n tableWidth: tableWidth,\r\n columnRatio: this.eventData.columnRatio,\r\n tableRatio: this.eventData.tableRatio\r\n }\r\n });\r\n this.table.dispatchEvent(eventToDispatch);\r\n event.preventDefault();\r\n };\r\n ResizableTableColumns.prototype.handlePointerMove = function (event) {\r\n if (!this.eventData || !event)\r\n return;\r\n var difference = (UtilitiesDOM.getPointerX(event) || 0) - (this.eventData.pointer.x || 0);\r\n if (difference === 0) {\r\n return;\r\n }\r\n this.eventData.columnRatio = this.eventData.newWidths.column / ResizableTableColumns.getComputedWidth(this.eventData.column);\r\n this.eventData.tableRatio = this.eventData.newWidths.table / ResizableTableColumns.getComputedWidth(this.table);\r\n var tableWidth = (this.eventData.originalWidths.table + difference) * this.eventData.tableRatio;\r\n var columnWidth = this.constrainWidth(this.eventData.column, (this.eventData.originalWidths.column + difference) * this.eventData.columnRatio);\r\n ResizableTableColumns.setWidth(this.table, tableWidth);\r\n ResizableTableColumns.setWidth(this.eventData.column, columnWidth);\r\n this.eventData.newWidths = {\r\n column: columnWidth,\r\n table: tableWidth\r\n };\r\n var eventToDispatch = new CustomEvent(ResizableConstants.events.eventResize, {\r\n detail: {\r\n column: this.eventData.column,\r\n columnWidth: columnWidth,\r\n table: this.table,\r\n tableWidth: tableWidth,\r\n columnRatio: this.eventData.columnRatio,\r\n tableRatio: this.eventData.tableRatio\r\n }\r\n });\r\n this.table.dispatchEvent(eventToDispatch);\r\n };\r\n ResizableTableColumns.prototype.handlePointerUp = function () {\r\n this.detachHandlers();\r\n if (!this.eventData)\r\n return;\r\n if (this.eventData.pointer.isDoubleClick) {\r\n this.handleDoubleClick();\r\n }\r\n UtilitiesDOM.removeClass(this.table, ResizableConstants.classes.tableResizing);\r\n UtilitiesDOM.removeClass(this.wrapper, ResizableConstants.classes.tableResizing);\r\n UtilitiesDOM.removeClass(this.eventData.dragHandler, ResizableConstants.classes.columnResizing);\r\n UtilitiesDOM.removeClass(this.eventData.column, ResizableConstants.classes.columnResizing);\r\n this.checkTableWidth();\r\n this.syncHandleWidths();\r\n this.refreshWrapperStyle();\r\n this.saveColumnWidths();\r\n var widths = this.eventData.newWidths || this.eventData.originalWidths;\r\n var eventToDispatch = new CustomEvent(ResizableConstants.events.eventResizeStop, {\r\n detail: {\r\n column: this.eventData.column,\r\n columnWidth: widths.column,\r\n table: this.table,\r\n tableWidth: widths.table\r\n }\r\n });\r\n this.table.dispatchEvent(eventToDispatch);\r\n this.eventData = null;\r\n };\r\n ResizableTableColumns.prototype.handleDoubleClick = function () {\r\n if (!this.eventData || !this.eventData.column)\r\n return;\r\n var column = this.eventData.column;\r\n var colIndex = this.tableHeaders.indexOf(column);\r\n var maxWidth = 0;\r\n var indecesToSkip = [];\r\n this.tableHeaders\r\n .forEach(function (el, idx) {\r\n if (!el.hasAttribute(ResizableConstants.attibutes.dataResizable)) {\r\n indecesToSkip.push(idx);\r\n }\r\n });\r\n var span = this.ownerDocument.createElement('span');\r\n span.style.position = 'absolute';\r\n span.style.left = '-99999px';\r\n span.style.top = '-99999px';\r\n span.style.visibility = 'hidden';\r\n this.ownerDocument.body.appendChild(span);\r\n var rows = this.table.querySelectorAll('tr');\r\n for (var rowIndex = 0; rowIndex < rows.length; rowIndex++) {\r\n var element = rows[rowIndex];\r\n var cells = element.querySelectorAll('td, th');\r\n var currentIndex = 0;\r\n for (var cellIndex = 0; cellIndex < cells.length; cellIndex++) {\r\n var cell = cells[cellIndex];\r\n var colSpan = 1;\r\n if (cell.hasAttribute('colspan')) {\r\n var colSpanString = cell.getAttribute('colspan') || '1';\r\n var parsed = parseInt(colSpanString);\r\n if (!isNaN(parsed)) {\r\n colSpan = parsed;\r\n }\r\n else {\r\n colSpan = 1;\r\n }\r\n }\r\n if (indecesToSkip.indexOf(cellIndex) === -1\r\n && colSpan === 1\r\n && currentIndex === colIndex) {\r\n maxWidth = Math.max(maxWidth, UtilitiesDOM.getTextWidth(cell, span));\r\n break;\r\n }\r\n currentIndex += colSpan;\r\n }\r\n }\r\n this.ownerDocument.body.removeChild(span);\r\n var difference = maxWidth - UtilitiesDOM.getWidth(column);\r\n if (difference === 0) {\r\n return;\r\n }\r\n var tableWidth = this.eventData.originalWidths.table + difference;\r\n var columnWidth = this.constrainWidth(this.eventData.column, this.eventData.originalWidths.column + difference);\r\n ResizableTableColumns.setWidth(this.table, tableWidth);\r\n ResizableTableColumns.setWidth(this.eventData.column, columnWidth);\r\n this.eventData.newWidths = {\r\n column: columnWidth,\r\n table: tableWidth,\r\n };\r\n var eventToDispatch = new CustomEvent(ResizableConstants.events.eventResize, {\r\n detail: {\r\n column: this.eventData.column,\r\n columnWidth: columnWidth,\r\n table: this.table,\r\n tableWidth: tableWidth,\r\n columnRatio: this.eventData.columnRatio,\r\n tableRatio: this.eventData.tableRatio\r\n }\r\n });\r\n this.table.dispatchEvent(eventToDispatch);\r\n };\r\n ResizableTableColumns.prototype.attachHandlers = function () {\r\n var _this = this;\r\n ResizableConstants.events.pointerMove\r\n .forEach(function (evt, evtIdx) {\r\n _this.ownerDocument.addEventListener(evt, _this.onPointerMoveRef, false);\r\n });\r\n ResizableConstants.events.pointerUp\r\n .forEach(function (evt, evtIdx) {\r\n _this.ownerDocument.addEventListener(evt, _this.onPointerUpRef, false);\r\n });\r\n };\r\n ResizableTableColumns.prototype.detachHandlers = function () {\r\n var _this = this;\r\n ResizableConstants.events.pointerMove\r\n .forEach(function (evt, evtIdx) {\r\n _this.ownerDocument.removeEventListener(evt, _this.onPointerMoveRef, false);\r\n });\r\n ResizableConstants.events.pointerUp\r\n .forEach(function (evt, evtIdx) {\r\n _this.ownerDocument.removeEventListener(evt, _this.onPointerUpRef, false);\r\n });\r\n };\r\n ResizableTableColumns.prototype.refreshWrapperStyle = function () {\r\n if (this.wrapper == null)\r\n return;\r\n var original = this.wrapper.style.overflowX;\r\n this.wrapper.style.overflowX = 'hidden';\r\n this.wrapper.style.overflowX = original;\r\n };\r\n ResizableTableColumns.prototype.saveColumnWidths = function () {\r\n if (!this.options.store)\r\n return;\r\n var tableId = ResizableTableColumns.generateTableId(this.table);\r\n if (tableId.length === 0)\r\n return;\r\n var data = {\r\n table: ResizableTableColumns.getWidth(this.table),\r\n columns: {}\r\n };\r\n this.getResizableHeaders()\r\n .forEach(function (el, idx) {\r\n data.columns[ResizableTableColumns.generateColumnId(el)] = ResizableTableColumns.getWidth(el);\r\n });\r\n this.options.store.set(tableId, data);\r\n };\r\n ResizableTableColumns.prototype.createHandlerReferences = function () {\r\n var _this = this;\r\n if (!this.onPointerDownRef) {\r\n this.onPointerDownRef = function (evt) {\r\n _this.handlePointerDown(evt);\r\n };\r\n }\r\n if (!this.onPointerMoveRef) {\r\n this.onPointerMoveRef = function (evt) {\r\n _this.handlePointerMove(evt);\r\n };\r\n }\r\n if (!this.onPointerUpRef) {\r\n this.onPointerUpRef = function (evt) {\r\n _this.handlePointerUp();\r\n };\r\n }\r\n };\r\n ResizableTableColumns.prototype.registerWindowResizeHandler = function () {\r\n var win = this.ownerDocument.defaultView;\r\n if (ResizableTableColumns.windowResizeHandlerRegistered)\r\n return;\r\n ResizableTableColumns.windowResizeHandlerRegistered = true;\r\n ResizableConstants.events.windowResize\r\n .forEach(function (evt, idx) {\r\n win === null || win === void 0 ? void 0 : win.addEventListener(evt, ResizableTableColumns.onWindowResize, false);\r\n });\r\n };\r\n ResizableTableColumns.prototype.handleWindowResize = function () {\r\n this.checkTableWidth();\r\n this.syncHandleWidths();\r\n };\r\n ResizableTableColumns.onWindowResize = function (event) {\r\n var target = event ? event.target : null;\r\n if (target == null)\r\n return;\r\n var tables = target.document.querySelectorAll(\".\" + ResizableConstants.classes.table);\r\n for (var index = 0; index < tables.length; index++) {\r\n var table = tables[index];\r\n if (typeof table[ResizableConstants.dataPropertyname] !== 'object')\r\n continue;\r\n table[ResizableConstants.dataPropertyname].handleWindowResize();\r\n }\r\n };\r\n ResizableTableColumns.generateColumnId = function (el) {\r\n var columnId = (el.getAttribute(ResizableConstants.attibutes.dataResizable) || '')\r\n .trim()\r\n .replace(/\\./g, '_');\r\n return columnId;\r\n };\r\n ResizableTableColumns.generateTableId = function (table) {\r\n var tableId = (table.getAttribute(ResizableConstants.attibutes.dataResizableTable) || '')\r\n .trim()\r\n .replace(/\\./g, '_');\r\n return tableId.length\r\n ? \"rtc/\" + tableId\r\n : tableId;\r\n };\r\n ResizableTableColumns.getWidth = function (el) {\r\n if (el.style.width === '')\r\n return UtilitiesDOM.getWidth(el);\r\n return ResizableTableColumns.getComputedWidth(el);\r\n };\r\n ResizableTableColumns.getComputedWidth = function (el) {\r\n return Utilities.parseStyleDimension(el.style.width, false);\r\n };\r\n ResizableTableColumns.setWidth = function (element, width) {\r\n var strWidth = width.toFixed(2);\r\n strWidth = width > 0 ? strWidth : '0';\r\n element.style.width = strWidth + \"px\";\r\n };\r\n ResizableTableColumns.getInstanceId = function () {\r\n return ResizableTableColumns.instancesCount++;\r\n };\r\n ResizableTableColumns.instancesCount = 0;\r\n ResizableTableColumns.windowResizeHandlerRegistered = false;\r\n return ResizableTableColumns;\r\n}());\r\nexport { ResizableTableColumns };\r\n//# sourceMappingURL=resizable-table-columns.js.map"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/js/bundle/resizable-table-columns.min.js b/dist/js/bundle/resizable-table-columns.min.js
index 095426e..81e33a8 100644
--- a/dist/js/bundle/resizable-table-columns.min.js
+++ b/dist/js/bundle/resizable-table-columns.min.js
@@ -1 +1 @@
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).validide_resizableTableColumns=t()}(this,function(){"use strict";var s=(n.escapeRegExp=function(e){return e.replace(n.regexEscapeRegex,"\\$&")},n.kebabCaseToCamelCase=function(e){return e.replace(n.kebabCaseRegex,function(e){return e[1].toUpperCase()})},n.parseStringToType=function(e){if(0==e.length||n.onlyWhiteSpace.test(e))return e;if(n.trueRegex.test(e))return!0;if(n.falseRegex.test(e))return!1;if(n.notEmptyOrWhiteSpace.test(e)){var t=+e;if(!isNaN(t))return t}return e},n.parseStyleDimension=function(e,t){if("string"==typeof e){if(e.length){var n=e.replace("px","").replace(",","."),i=parseFloat(n);if(!isNaN(i))return i}}else if("number"==typeof e)return e;return t?e:0},n.regexEscapeRegex=/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,n.kebabCaseRegex=/(\-\w)/g,n.trueRegex=/^true$/i,n.falseRegex=/^false$/i,n.onlyWhiteSpace=/^\s$/,n.notEmptyOrWhiteSpace=/\S/,n);function n(){}var g=(r.addClass=function(e,t){e.classList?e.classList.add(t):r.hasClass(e,t)||(e.className+=" "+t)},r.removeClass=function(e,t){var n;e.classList?e.classList.remove(t):r.hasClass(e,t)&&(n=new RegExp("(\\s|^)"+s.escapeRegExp(t)+"(\\s|$)"),e.className=e.className.replace(n," "))},r.hasClass=function(e,t){return e.classList?e.classList.contains(t):!!e.className.match(new RegExp("(\\s|^)"+s.escapeRegExp(t)+"(\\s|$)"))},r.getDataAttributesValues=function(e){if(!e)return null;var t={};if(e.dataset)for(var n in e.dataset)e.dataset.hasOwnProperty(n)&&(t[n]=s.parseStringToType(e.dataset[n]||""));else for(var i=0;i if you wish to recreate them";this.dragHandlesContainer=this.ownerDocument.createElement("div"),null!==(e=this.wrapper)&&void 0!==e&&e.insertBefore(this.dragHandlesContainer,this.table),g.addClass(this.dragHandlesContainer,y.classes.handleContainer),this.getResizableHeaders().forEach(function(e,t){var n,i=a.ownerDocument.createElement("div");g.addClass(i,y.classes.handle),null!==(n=a.dragHandlesContainer)&&void 0!==n&&n.appendChild(i)}),y.events.pointerDown.forEach(function(e,t){var n;null!==(n=a.dragHandlesContainer)&&void 0!==n&&n.addEventListener(e,a.onPointerDownRef,!1)})},w.prototype.destroyDragHandles=function(){var e,t,i=this;null!==this.dragHandlesContainer&&(y.events.pointerDown.forEach(function(e,t){var n;null!==(n=i.dragHandlesContainer)&&void 0!==n&&n.removeEventListener(e,i.onPointerDownRef,!1)}),null!==(t=null===(e=this.dragHandlesContainer)||void 0===e?void 0:e.parentElement)&&void 0!==t&&t.removeChild(this.dragHandlesContainer))},w.prototype.getDragHandlers=function(){var e=null==this.dragHandlesContainer?null:this.dragHandlesContainer.querySelectorAll("."+y.classes.handle);return e?Array.prototype.slice.call(e).filter(function(e){return"DIV"===e.nodeName}):new Array},w.prototype.restoreColumnWidths=function(){var e,i;this.options.store&&(0===(e=w.generateTableId(this.table)).length||(i=this.options.store.get(e))&&(this.getResizableHeaders().forEach(function(e,t){var n=i.columns[w.generateColumnId(e)];void 0!==n&&w.setWidth(e,n)}),void 0!==i.table&&w.setWidth(this.table,i.table)))},w.prototype.checkTableWidth=function(){var e=g.getWidth(this.wrapper),t=e-g.getOuterWidth(this.table,!0);if(0=(i=this.getResizableHeaders()).length||(s=(a=(new Date).getTime())-this.lastPointerDown if you wish to recreate them";this.dragHandlesContainer=this.ownerDocument.createElement("div"),null!==(e=this.wrapper)&&void 0!==e&&e.insertBefore(this.dragHandlesContainer,this.table),g.addClass(this.dragHandlesContainer,y.classes.handleContainer),this.getResizableHeaders().forEach(function(e,t){var n,i=a.ownerDocument.createElement("div");g.addClass(i,y.classes.handle),null!==(n=a.dragHandlesContainer)&&void 0!==n&&n.appendChild(i)}),y.events.pointerDown.forEach(function(e,t){var n;null!==(n=a.dragHandlesContainer)&&void 0!==n&&n.addEventListener(e,a.onPointerDownRef,!1)})},w.prototype.destroyDragHandles=function(){var e,t,i=this;null!==this.dragHandlesContainer&&(y.events.pointerDown.forEach(function(e,t){var n;null!==(n=i.dragHandlesContainer)&&void 0!==n&&n.removeEventListener(e,i.onPointerDownRef,!1)}),null!==(t=null===(e=this.dragHandlesContainer)||void 0===e?void 0:e.parentElement)&&void 0!==t&&t.removeChild(this.dragHandlesContainer))},w.prototype.getDragHandlers=function(){var e=null==this.dragHandlesContainer?null:this.dragHandlesContainer.querySelectorAll("."+y.classes.handle);return e?Array.prototype.slice.call(e).filter(function(e){return"DIV"===e.nodeName}):new Array},w.prototype.restoreColumnWidths=function(){var e,i;this.options.store&&(0===(e=w.generateTableId(this.table)).length||(i=this.options.store.get(e))&&(this.getResizableHeaders().forEach(function(e,t){var n=i.columns[w.generateColumnId(e)];void 0!==n&&w.setWidth(e,n)}),void 0!==i.table&&w.setWidth(this.table,i.table)))},w.prototype.checkTableWidth=function(){var e=g.getWidth(this.wrapper),t=e-g.getOuterWidth(this.table,!0);if(0=(i=this.getResizableHeaders()).length||(s=(a=(new Date).getTime())-this.lastPointerDown {
[name: string]: T;
}
-export default class Utilities {
+export declare class Utilities {
static regexEscapeRegex: RegExp;
static kebabCaseRegex: RegExp;
static trueRegex: RegExp;
diff --git a/dist/js/es6/utilities.js b/dist/js/es6/utilities.js
index 745196b..9a8205e 100644
--- a/dist/js/es6/utilities.js
+++ b/dist/js/es6/utilities.js
@@ -51,5 +51,5 @@ var Utilities = /** @class */ (function () {
Utilities.notEmptyOrWhiteSpace = /\S/;
return Utilities;
}());
-export default Utilities;
+export { Utilities };
//# sourceMappingURL=utilities.js.map
\ No newline at end of file
diff --git a/dist/js/es6/utilities.js.map b/dist/js/es6/utilities.js.map
index 2951904..df5645b 100644
--- a/dist/js/es6/utilities.js.map
+++ b/dist/js/es6/utilities.js.map
@@ -1 +1 @@
-{"version":3,"file":"utilities.js","sourceRoot":"","sources":["../../../sources/ts/utilities.ts"],"names":[],"mappings":"AAIA;IAAA;IAyDA,CAAC;IAhDQ,sBAAY,GAAnB,UAAoB,GAAW;QAC7B,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAEM,8BAAoB,GAA3B,UAA4B,GAAW;QACrC,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,CAAC;IAEM,2BAAiB,GAAxB,UAAyB,GAAW;QAClC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;YACvD,OAAO,GAAG,CAAC;QAEb,IAAI,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;YAC/B,OAAO,IAAI,CAAC;QAEd,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;YAChC,OAAO,KAAK,CAAC;QAEf,IAAI,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC5C,IAAM,IAAI,GAAG,CAAC,GAAG,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACd,OAAO,IAAI,CAAC;SACf;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEM,6BAAmB,GAA1B,UAA2B,SAAsC,EAAE,cAAuB;QACxF,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YACjC,IAAI,SAAS,CAAC,MAAM,EAAE;gBACpB,IAAM,OAAO,GAAG,SAAS;qBACtB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;qBACjB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACrB,IAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;gBACnC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;oBAClB,OAAO,MAAM,CAAC;iBACf;aACF;SACF;aACI,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YACtC,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,cAAc,EAAE;YAClB,OAAO,SAAS,CAAC;SAClB;aAAM;YACL,OAAO,CAAC,CAAC;SACV;IACH,CAAC;IAvDM,0BAAgB,GAAW,qCAAqC,CAAC;IACjE,wBAAc,GAAW,SAAS,CAAC;IACnC,mBAAS,GAAW,SAAS,CAAC;IAC9B,oBAAU,GAAW,UAAU,CAAC;IAChC,wBAAc,GAAW,MAAM,CAAC;IAChC,8BAAoB,GAAW,IAAI,CAAC;IAmD7C,gBAAC;CAAA,AAzDD,IAyDC;eAzDoB,SAAS"}
\ No newline at end of file
+{"version":3,"file":"utilities.js","sourceRoot":"","sources":["../../../sources/ts/utilities.ts"],"names":[],"mappings":"AAIA;IAAA;IAyDA,CAAC;IAhDQ,sBAAY,GAAnB,UAAoB,GAAW;QAC7B,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAEM,8BAAoB,GAA3B,UAA4B,GAAW;QACrC,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,CAAC;IAEM,2BAAiB,GAAxB,UAAyB,GAAW;QAClC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;YACvD,OAAO,GAAG,CAAC;QAEb,IAAI,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;YAC/B,OAAO,IAAI,CAAC;QAEd,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;YAChC,OAAO,KAAK,CAAC;QAEf,IAAI,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC5C,IAAM,IAAI,GAAG,CAAC,GAAG,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACd,OAAO,IAAI,CAAC;SACf;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEM,6BAAmB,GAA1B,UAA2B,SAAsC,EAAE,cAAuB;QACxF,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YACjC,IAAI,SAAS,CAAC,MAAM,EAAE;gBACpB,IAAM,OAAO,GAAG,SAAS;qBACtB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;qBACjB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACrB,IAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;gBACnC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;oBAClB,OAAO,MAAM,CAAC;iBACf;aACF;SACF;aACI,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YACtC,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,cAAc,EAAE;YAClB,OAAO,SAAS,CAAC;SAClB;aAAM;YACL,OAAO,CAAC,CAAC;SACV;IACH,CAAC;IAvDM,0BAAgB,GAAW,qCAAqC,CAAC;IACjE,wBAAc,GAAW,SAAS,CAAC;IACnC,mBAAS,GAAW,SAAS,CAAC;IAC9B,oBAAU,GAAW,UAAU,CAAC;IAChC,wBAAc,GAAW,MAAM,CAAC;IAChC,8BAAoB,GAAW,IAAI,CAAC;IAmD7C,gBAAC;CAAA,AAzDD,IAyDC;SAzDY,SAAS"}
\ No newline at end of file
diff --git a/dist/js/index.es2015.d.ts b/dist/js/index.es2015.d.ts
index 6515d81..55ea4b4 100644
--- a/dist/js/index.es2015.d.ts
+++ b/dist/js/index.es2015.d.ts
@@ -24,7 +24,7 @@ declare module "resizable-constants" {
eventResize: string;
eventResizeStop: string;
}
- export default class ResizableConstants {
+ export class ResizableConstants {
static dataPropertyname: string;
static classes: IClassesConstants;
static attibutes: IAttributesConstants;
@@ -47,6 +47,8 @@ declare module "resizable-event-data" {
pointer: PointerData;
originalWidths: WidthsData;
newWidths: WidthsData;
+ columnRatio: number;
+ tableRatio: number;
constructor(column: HTMLTableCellElement, dragHandler: HTMLDivElement);
}
}
@@ -54,7 +56,7 @@ declare module "utilities" {
export interface IIndexedCollection {
[name: string]: T;
}
- export default class Utilities {
+ export class Utilities {
static regexEscapeRegex: RegExp;
static kebabCaseRegex: RegExp;
static trueRegex: RegExp;
@@ -68,7 +70,7 @@ declare module "utilities" {
}
}
declare module "utilities-dom" {
- export default class UtilitiesDOM {
+ export class UtilitiesDOM {
static addClass(el: HTMLElement, className: string): void;
static removeClass(el: HTMLElement, className: string): void;
static hasClass(el: HTMLElement, className: string): boolean;
@@ -92,7 +94,7 @@ declare module "utilities-dom" {
}
}
declare module "resizable-options" {
- export default class ResizableOptions {
+ export class ResizableOptions {
resizeFromBody: boolean;
minWidth: null | number;
maxWidth: null | number;
@@ -106,9 +108,9 @@ declare module "resizable-options" {
}
}
declare module "resizable-table-columns" {
- import ResizableOptions from "resizable-options";
+ import { ResizableOptions } from "resizable-options";
import { ResizableEventData } from "resizable-event-data";
- class ResizableTableColumns {
+ export class ResizableTableColumns {
static instancesCount: number;
static windowResizeHandlerRegistered: boolean;
table: HTMLTableElement;
@@ -159,8 +161,8 @@ declare module "resizable-table-columns" {
static generateColumnId(el: HTMLElement): string;
static generateTableId(table: HTMLTableElement): string;
static getWidth(el: HTMLElement): number;
+ static getComputedWidth(el: HTMLElement): number;
static setWidth(element: HTMLElement, width: number): void;
static getInstanceId(): number;
}
- export default ResizableTableColumns;
}
diff --git a/dist/samples/bootstrap.html b/dist/samples/bootstrap.html
index cc000ac..05704f8 100644
--- a/dist/samples/bootstrap.html
+++ b/dist/samples/bootstrap.html
@@ -329,7 +329,7 @@ Complex header example
new ResizableTableColumns(els[index], options);
}
- })(window, window.validide_resizableTableColumns, void (0));
+ })(window, window.validide_resizableTableColumns.ResizableTableColumns, void (0));
+
+
+ Resizable Table Columns
+
+ Simple example
+
+
+
+ No. |
+ Name |
+ Counrty |
+ Region |
+ City |
+ Street |
+ Post Code |
+ Last updated |
+ UUID |
+
+
+
+
+ 1 |
+ Eugenia |
+ Serbia |
+ MN |
+ Minneapolis |
+ Ap #207-8285 Nibh Rd. |
+ 41754 |
+ 2017-11-15T16:52:00-08:00 |
+ E212DAC2-220E-9589-D96A-3B58242E9817 |
+
+
+ 2 |
+ Linda |
+ Korea, South |
+ KA |
+ Timkur |
+ 6490 Ut Rd. |
+ 5426 |
+ 2017-02-14T22:58:55-08:00 |
+ 5DD78B29-5B58-F2D9-3D36-8FB80C3121A7 |
+
+
+ 3 |
+ Leonard |
+ British Indian Ocean Territory |
+ PB |
+ Sousa |
+ 971-4168 Sit St. |
+ 4901 |
+ 2018-05-21T06:02:19-07:00 |
+ 43416183-B9A7-9E24-3FBD-42093FB3B9F4 |
+
+
+ 4 |
+ Lionel |
+ Nigeria |
+ Västra Götalands län |
+ Lidköping |
+ P.O. Box 168, 2045 Quis, Ave |
+ 11401 |
+ 2018-04-26T19:07:30-07:00 |
+ 16A49C04-4CD6-DAB7-B6F6-9F441487D0CD |
+
+
+ 5 |
+ Dillon |
+ Fiji |
+ Lower Austria |
+ Schwechat |
+ 308-7449 Fermentum Av. |
+ C1W 2W0 |
+ 2017-08-30T22:53:40-07:00 |
+ 650F3DCA-D979-6629-0CB1-643E1D289239 |
+
+
+ 6 |
+ Macy |
+ Haiti |
+ QC |
+ Montebello |
+ Ap #738-1107 Varius Ave |
+ 40664 |
+ 2018-07-03T03:12:45-07:00 |
+ 7A4609A1-E4D6-3327-7329-4ACB8950F9A2 |
+
+
+ 7 |
+ Kyle |
+ Lebanon |
+ HB |
+ Bremen |
+ 283-2898 Nec, Av. |
+ 381870 |
+ 2018-07-15T17:01:24-07:00 |
+ 03D5BF83-F1EA-05E1-2B76-37A1996A4007 |
+
+
+ 8 |
+ Dylan |
+ Liechtenstein |
+ ON |
+ Gloucester |
+ 203-4972 Quis, St. |
+ 47947 |
+ 2017-07-24T02:04:07-07:00 |
+ 64FF2C19-E62B-FCB0-91C0-E6493EDBEB72 |
+
+
+ 9 |
+ Oprah |
+ Spain |
+ Heredia |
+ Heredia |
+ P.O. Box 668, 6923 Dolor. St. |
+ 3539 |
+ 2018-05-17T20:59:41-07:00 |
+ D08BC557-A7BB-CE2D-652D-CCE2DBC79DA1 |
+
+
+ 10 |
+ Alexander |
+ Fiji |
+ Istanbul |
+ Istanbul |
+ P.O. Box 879, 3462 Diam. St. |
+ JS5Z 4UZ |
+ 2016-10-03T23:00:32-07:00 |
+ F854BE7E-C117-7B9A-F3D5-9EAD294315D0 |
+
+
+
+
+
+
+ Complex header example
+
+
+
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+
+
+ |
+ Address 1 |
+ Address 2 |
+ Last updated |
+
+
+ No. |
+ Name |
+ Counrty |
+ Region |
+ City |
+ Street |
+ Post Code |
+ Last updated |
+ UUID |
+
+
+
+
+ 1 |
+ Eugenia |
+ Serbia |
+ MN |
+ Minneapolis |
+ Ap #207-8285 Nibh Rd. |
+ 41754 |
+ 2017-11-15T16:52:00-08:00 |
+ E212DAC2-220E-9589-D96A-3B58242E9817 |
+
+
+ 2 |
+ Linda |
+ Korea, South |
+ KA |
+ Timkur |
+ 6490 Ut Rd. |
+ 5426 |
+ 2017-02-14T22:58:55-08:00 |
+ 5DD78B29-5B58-F2D9-3D36-8FB80C3121A7 |
+
+
+ 3 |
+ Leonard |
+ British Indian Ocean Territory |
+ PB |
+ Sousa |
+ 971-4168 Sit St. |
+ 4901 |
+ 2018-05-21T06:02:19-07:00 |
+ 43416183-B9A7-9E24-3FBD-42093FB3B9F4 |
+
+
+ 4 |
+ Lionel |
+ Nigeria |
+ Västra Götalands län |
+ Lidköping |
+ P.O. Box 168, 2045 Quis, Ave |
+ 11401 |
+ 2018-04-26T19:07:30-07:00 |
+ 16A49C04-4CD6-DAB7-B6F6-9F441487D0CD |
+
+
+ 5 |
+ Dillon |
+ Fiji |
+ Lower Austria |
+ Schwechat |
+ 308-7449 Fermentum Av. |
+ C1W 2W0 |
+ 2017-08-30T22:53:40-07:00 |
+ 650F3DCA-D979-6629-0CB1-643E1D289239 |
+
+
+ 6 |
+ Macy |
+ Haiti |
+ QC |
+ Montebello |
+ Ap #738-1107 Varius Ave |
+ 40664 |
+ 2018-07-03T03:12:45-07:00 |
+ 7A4609A1-E4D6-3327-7329-4ACB8950F9A2 |
+
+
+ 7 |
+ Kyle |
+ Lebanon |
+ HB |
+ Bremen |
+ 283-2898 Nec, Av. |
+ 381870 |
+ 2018-07-15T17:01:24-07:00 |
+ 03D5BF83-F1EA-05E1-2B76-37A1996A4007 |
+
+
+ 8 |
+ Dylan |
+ Liechtenstein |
+ ON |
+ Gloucester |
+ 203-4972 Quis, St. |
+ 47947 |
+ 2017-07-24T02:04:07-07:00 |
+ 64FF2C19-E62B-FCB0-91C0-E6493EDBEB72 |
+
+
+ 9 |
+ Oprah |
+ Spain |
+ Heredia |
+ Heredia |
+ P.O. Box 668, 6923 Dolor. St. |
+ 3539 |
+ 2018-05-17T20:59:41-07:00 |
+ D08BC557-A7BB-CE2D-652D-CCE2DBC79DA1 |
+
+
+ 10 |
+ Alexander |
+ Fiji |
+ Istanbul |
+ Istanbul |
+ P.O. Box 879, 3462 Diam. St. |
+ JS5Z 4UZ |
+ 2016-10-03T23:00:32-07:00 |
+ F854BE7E-C117-7B9A-F3D5-9EAD294315D0 |
+
+
+
+
+
+
+
+
+
+
diff --git a/dist/samples/dev.html b/dist/samples/dev.html
new file mode 100644
index 0000000..beea1c2
--- /dev/null
+++ b/dist/samples/dev.html
@@ -0,0 +1,342 @@
+
+
+
+