UNPKG

luna-data-grid

Version:

Grid for displaying datasets

173 lines (172 loc) 6.15 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.mediaDurationFormat = exports.hasSelection = exports.loadImage = exports.resetCanvasSize = exports.getPlatform = exports.pxToNum = exports.executeAfterTransition = exports.hasVerticalScrollbar = exports.measuredScrollbarWidth = exports.eventPage = exports.eventClient = exports.hasTouchSupport = exports.classPrefix = exports.exportCjs = void 0; var map_1 = __importDefault(require("licia/map")); var trim_1 = __importDefault(require("licia/trim")); var root_1 = __importDefault(require("licia/root")); var html_1 = __importDefault(require("licia/html")); var isNum_1 = __importDefault(require("licia/isNum")); var contain_1 = __importDefault(require("licia/contain")); var toNum_1 = __importDefault(require("licia/toNum")); var detectOs_1 = __importDefault(require("licia/detectOs")); var loadImg_1 = __importDefault(require("licia/loadImg")); var isHidden_1 = __importDefault(require("licia/isHidden")); var durationFormat_1 = __importDefault(require("licia/durationFormat")); function exportCjs(module, clazz) { try { module.exports = clazz; module.exports.default = clazz; } catch (e) { } } exports.exportCjs = exportCjs; function classPrefix(name) { var prefix = "luna-".concat(name, "-"); function processClass(str) { return (0, map_1.default)((0, trim_1.default)(str).split(/\s+/), function (singleClass) { if ((0, contain_1.default)(singleClass, prefix)) { return singleClass; } return singleClass.replace(/[\w-]+/, function (match) { return "".concat(prefix).concat(match); }); }).join(' '); } return function (str) { if (/<[^>]*>/g.test(str)) { try { var tree = html_1.default.parse(str); traverseTree(tree, function (node) { if (node.attrs && node.attrs.class) { node.attrs.class = processClass(node.attrs.class); } }); return html_1.default.stringify(tree); } catch (e) { return processClass(str); } } return processClass(str); }; } exports.classPrefix = classPrefix; function traverseTree(tree, handler) { for (var i = 0, len = tree.length; i < len; i++) { var node = tree[i]; handler(node); if (node.content) { traverseTree(node.content, handler); } } } exports.hasTouchSupport = 'ontouchstart' in root_1.default; function eventClient(type, e) { var name = type === 'x' ? 'clientX' : 'clientY'; if (e[name]) { return e[name]; } if (e.changedTouches) { return e.changedTouches[0][name]; } return 0; } exports.eventClient = eventClient; function eventPage(type, e) { var name = type === 'x' ? 'pageX' : 'pageY'; if (e[name]) { return e[name]; } if (e.changedTouches) { return e.changedTouches[0][name]; } return 0; } exports.eventPage = eventPage; var scrollbarWidth; function measuredScrollbarWidth() { if ((0, isNum_1.default)(scrollbarWidth)) { return scrollbarWidth; } if (!document) { return 16; } var scrollDiv = document.createElement('div'); var innerDiv = document.createElement('div'); scrollDiv.setAttribute('style', 'display: block; width: 100px; height: 100px; overflow: scroll;'); innerDiv.setAttribute('style', 'height: 200px'); scrollDiv.appendChild(innerDiv); var container = document.body || document.documentElement; container.appendChild(scrollDiv); scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth; container.removeChild(scrollDiv); return scrollbarWidth; } exports.measuredScrollbarWidth = measuredScrollbarWidth; function hasVerticalScrollbar(el) { return el.scrollHeight > el.offsetHeight; } exports.hasVerticalScrollbar = hasVerticalScrollbar; function executeAfterTransition(el, callback) { if ((0, isHidden_1.default)(el)) { return callback(); } var handler = function (e) { var target = e.target; if (target !== el) { return; } el.removeEventListener('transitionend', handler); callback(); }; el.addEventListener('transitionend', handler); } exports.executeAfterTransition = executeAfterTransition; function pxToNum(str) { return (0, toNum_1.default)(str.replace('px', '')); } exports.pxToNum = pxToNum; function getPlatform() { var os = (0, detectOs_1.default)(); if (os === 'os x') { return 'mac'; } return os; } exports.getPlatform = getPlatform; function resetCanvasSize(canvas) { canvas.width = Math.round(canvas.offsetWidth * window.devicePixelRatio); canvas.height = Math.round(canvas.offsetHeight * window.devicePixelRatio); } exports.resetCanvasSize = resetCanvasSize; function loadImage(url) { return new Promise(function (resolve, reject) { (0, loadImg_1.default)(url, function (err, img) { if (err) { return reject(err); } resolve(img); }); }); } exports.loadImage = loadImage; function hasSelection(node) { var selection = window.getSelection(); if (!selection || selection.type !== 'Range' || selection.toString() === '') { return false; } var anchorNode = selection.anchorNode, focusNode = selection.focusNode; return (selection.containsNode(node, true) || (anchorNode && node.contains(anchorNode)) || (focusNode && node.contains(focusNode))); } exports.hasSelection = hasSelection; function mediaDurationFormat(seconds) { if (seconds > 3600) { return (0, durationFormat_1.default)(Math.round(seconds * 1000), 'hh:mm:ss'); } return (0, durationFormat_1.default)(Math.round(seconds * 1000), 'mm:ss'); } exports.mediaDurationFormat = mediaDurationFormat;