UNPKG

@sanity/desk-tool

Version:

Tool for managing all sorts of content in a structured manner

55 lines (54 loc) 1.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isDocumentWithType = isDocumentWithType; exports.isExpanded = isExpanded; exports.maybeSelectAll = maybeSelectAll; exports.select = select; exports.selectElement = selectElement; exports.toggleExpanded = toggleExpanded; var _hashlru = _interopRequireDefault(require("hashlru")); var _isRecord = require("../../../utils/isRecord"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var lru = (0, _hashlru.default)(1000); function isExpanded(keyPath, value) { var cached = lru.get(keyPath); if (cached === undefined) { lru.set(keyPath, Array.isArray(value) || (0, _isRecord.isRecord)(value)); return isExpanded(keyPath, value); } return cached; } function toggleExpanded(event) { var path = event.path; var current = lru.get(path); if (current === undefined) { // something is wrong return; } lru.set(path, !current); } function selectElement(element) { var sel = window.getSelection(); if (sel) { var range = document.createRange(); sel.removeAllRanges(); range.selectNodeContents(element); sel.addRange(range); } } function select(event) { selectElement(event.currentTarget); } function maybeSelectAll(event) { var selectAll = event.keyCode === 65 && (event.metaKey || event.ctrlKey); if (!selectAll) { return; } event.preventDefault(); selectElement(event.currentTarget); } function isDocumentWithType(value) { return typeof (value === null || value === void 0 ? void 0 : value._type) === 'string'; }