UNPKG

@true-directive/grid

Version:

Angular Data Grid from Yopsilon.

55 lines 7.59 kB
export class DOMUtils { static focusAndOpenKeyboard(el, timeout) { if (el) { // Align temp input element approximately where the input element is // so the cursor doesn't jump around var __tempEl__ = document.createElement('input'); __tempEl__.style.position = 'absolute'; __tempEl__.style.top = (el.offsetTop + 7) + 'px'; __tempEl__.style.left = el.offsetLeft + 'px'; __tempEl__.style.height = '0'; __tempEl__.style.opacity = '0'; // Put this temp element as a child of the page <body> and focus on it document.body.appendChild(__tempEl__); __tempEl__.focus(); // The keyboard is open. Now do a delayed focus on the target element setTimeout(function () { el.focus(); el.click(); // Remove the temp element document.body.removeChild(__tempEl__); }, timeout); } } static downloadCSV(filename, text) { var element = document.createElement('a'); element.setAttribute('href', 'data:text/csv;charset=utf-8,%EF%BB%BF' + encodeURIComponent(text)); element.setAttribute('download', filename); element.style.display = 'none'; document.body.appendChild(element); element.click(); document.body.removeChild(element); } static copyToClipboard(text) { var ta = document.createElement("textarea"); ta.value = text; ta.style.position = 'fixed'; ta.style.opacity = '0.0'; ta.style.width = '20px'; ta.style.height = '20px'; ta.style.top = '-40px'; ta.style.left = '-40px'; document.body.appendChild(ta); ta.focus(); ta.select(); try { var successful = document.execCommand('copy'); return successful; } catch (err) { return false; } document.body.removeChild(ta); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLXV0aWxzLmNsYXNzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRydWUtZGlyZWN0aXZlL2dyaWQvIiwic291cmNlcyI6WyJzcmMvY29tbW9uL2RvbS11dGlscy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sUUFBUTtJQUNaLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxFQUFPLEVBQUUsT0FBZTtRQUN6RCxJQUFJLEVBQUUsRUFBRTtZQUNOLG9FQUFvRTtZQUNwRSxvQ0FBb0M7WUFDcEMsSUFBSSxVQUFVLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRCxVQUFVLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7WUFDdkMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNqRCxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUM3QyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7WUFDOUIsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO1lBQy9CLHNFQUFzRTtZQUN0RSxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN0QyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkIscUVBQXFFO1lBQ3JFLFVBQVUsQ0FBQztnQkFDVCxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1gsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNYLDBCQUEwQjtnQkFDMUIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDeEMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFnQixFQUFFLElBQVk7UUFDdEQsSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSx1Q0FBdUMsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2pHLE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUMvQixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDaEIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBWTtRQUN4QyxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFDLE9BQU8sQ0FBQztRQUMxQixFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDekIsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1FBQ3hCLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUN6QixFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUM7UUFDdkIsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLElBQUk7WUFDRixJQUFJLFVBQVUsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlDLE9BQU8sVUFBVSxDQUFDO1NBQ25CO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIERPTVV0aWxzIHtcclxuICBwdWJsaWMgc3RhdGljIGZvY3VzQW5kT3BlbktleWJvYXJkKGVsOiBhbnksIHRpbWVvdXQ6IG51bWJlcikge1xyXG4gICAgaWYgKGVsKSB7XHJcbiAgICAgIC8vIEFsaWduIHRlbXAgaW5wdXQgZWxlbWVudCBhcHByb3hpbWF0ZWx5IHdoZXJlIHRoZSBpbnB1dCBlbGVtZW50IGlzXHJcbiAgICAgIC8vIHNvIHRoZSBjdXJzb3IgZG9lc24ndCBqdW1wIGFyb3VuZFxyXG4gICAgICB2YXIgX190ZW1wRWxfXyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XHJcbiAgICAgIF9fdGVtcEVsX18uc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xyXG4gICAgICBfX3RlbXBFbF9fLnN0eWxlLnRvcCA9IChlbC5vZmZzZXRUb3AgKyA3KSArICdweCc7XHJcbiAgICAgIF9fdGVtcEVsX18uc3R5bGUubGVmdCA9IGVsLm9mZnNldExlZnQgKyAncHgnO1xyXG4gICAgICBfX3RlbXBFbF9fLnN0eWxlLmhlaWdodCA9ICcwJztcclxuICAgICAgX190ZW1wRWxfXy5zdHlsZS5vcGFjaXR5ID0gJzAnO1xyXG4gICAgICAvLyBQdXQgdGhpcyB0ZW1wIGVsZW1lbnQgYXMgYSBjaGlsZCBvZiB0aGUgcGFnZSA8Ym9keT4gYW5kIGZvY3VzIG9uIGl0XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoX190ZW1wRWxfXyk7XHJcbiAgICAgIF9fdGVtcEVsX18uZm9jdXMoKTtcclxuICAgICAgLy8gVGhlIGtleWJvYXJkIGlzIG9wZW4uIE5vdyBkbyBhIGRlbGF5ZWQgZm9jdXMgb24gdGhlIHRhcmdldCBlbGVtZW50XHJcbiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgZWwuZm9jdXMoKTtcclxuICAgICAgICBlbC5jbGljaygpO1xyXG4gICAgICAgIC8vIFJlbW92ZSB0aGUgdGVtcCBlbGVtZW50XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChfX3RlbXBFbF9fKTtcclxuICAgICAgfSwgdGltZW91dCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGRvd25sb2FkQ1NWKGZpbGVuYW1lOiBzdHJpbmcsIHRleHQ6IHN0cmluZykge1xyXG4gICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaHJlZicsICdkYXRhOnRleHQvY3N2O2NoYXJzZXQ9dXRmLTgsJUVGJUJCJUJGJyArIGVuY29kZVVSSUNvbXBvbmVudCh0ZXh0KSk7XHJcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBmaWxlbmFtZSk7XHJcbiAgICBlbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xyXG4gICAgZWxlbWVudC5jbGljaygpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY29weVRvQ2xpcGJvYXJkKHRleHQ6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgdmFyIHRhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRleHRhcmVhXCIpO1xyXG4gICAgdGEudmFsdWUgPSB0ZXh0O1xyXG4gICAgdGEuc3R5bGUucG9zaXRpb249J2ZpeGVkJztcclxuICAgIHRhLnN0eWxlLm9wYWNpdHkgPSAnMC4wJztcclxuICAgIHRhLnN0eWxlLndpZHRoID0gJzIwcHgnO1xyXG4gICAgdGEuc3R5bGUuaGVpZ2h0ID0gJzIwcHgnO1xyXG4gICAgdGEuc3R5bGUudG9wID0gJy00MHB4JztcclxuICAgIHRhLnN0eWxlLmxlZnQgPSAnLTQwcHgnO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0YSk7XHJcbiAgICB0YS5mb2N1cygpO1xyXG4gICAgdGEuc2VsZWN0KCk7XHJcbiAgICB0cnkge1xyXG4gICAgICB2YXIgc3VjY2Vzc2Z1bCA9IGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XHJcbiAgICAgIHJldHVybiBzdWNjZXNzZnVsO1xyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGEpO1xyXG4gIH1cclxufVxyXG4iXX0=