UNPKG

handsontable

Version:

Handsontable is a JavaScript Data Grid available for React, Angular and Vue.

57 lines (53 loc) 1.87 kB
"use strict"; exports.__esModule = true; exports.getCheckboxElement = getCheckboxElement; exports.getValuesIntersection = getValuesIntersection; exports.includesValue = includesValue; exports.parseStringifiedValue = parseStringifiedValue; var _array = require("../../../helpers/array"); var _object = require("../../../helpers/object"); var _string = require("../../../helpers/string"); /** * Retrieves checkbox element from the item element. * * @param {HTMLLIElement} itemElement Parent element. * @returns {HTMLInputElement|null} */ function getCheckboxElement(itemElement) { return itemElement.querySelector('input[type="checkbox"]'); } /** * Parses a stringified value and returns a JavaScript value when possible. * * @param {string} value Value originating from the textarea or dataset. * @returns {*} */ function parseStringifiedValue(value) { return (0, _string.isJSON)(value) ? JSON.parse(value) : value; } /** * Returns an array containing only values present in both provided arrays. * * @param {Array} valuesArray Values currently selected in the editor. * @param {Array} source Array of available source items. * @returns {Array} */ function getValuesIntersection(valuesArray, source) { return (0, _array.getIntersectionOfArrays)(valuesArray, source, (a, b) => JSON.stringify(a) === JSON.stringify(b)); } /** * Checks if an array contains a value using JSON.stringify for comparison. * * @param {Array} array Array of values. * @param {string|object} element Value to check. * @returns {boolean} */ function includesValue(array, element) { if ((0, _object.isKeyValueObject)(element)) { return Array.isArray(array) && array.some(value => { return (0, _object.isKeyValueObject)(value) ? (0, _object.isObjectEqual)(value, element) : value === element; }); } else { return array.includes(element); } }