Some checks failed
continuous-integration/drone/push Build is failing
- Complete GGZ Ecademy Nuxt.js user portal - Learning products browser and management - Member management interface - User authentication and roles - Multi-language support (NL/EN) - Vuex store for state management - Component-based architecture
93 lines
2.4 KiB
JavaScript
93 lines
2.4 KiB
JavaScript
import isEqual from 'lodash.isequal';
|
|
|
|
const toggleFullScreen = () => {
|
|
let doc = window.document;
|
|
let docEl = doc.documentElement;
|
|
|
|
let requestFullScreen = docEl.requestFullscreen || docEl.mozRequestFullScreen || docEl.webkitRequestFullScreen || docEl.msRequestFullscreen;
|
|
let cancelFullScreen = doc.exitFullscreen || doc.mozCancelFullScreen || doc.webkitExitFullscreen || doc.msExitFullscreen;
|
|
|
|
if (!doc.fullscreenElement && !doc.mozFullScreenElement && !doc.webkitFullscreenElement && !doc.msFullscreenElement) {
|
|
requestFullScreen.call(docEl);
|
|
}
|
|
else {
|
|
cancelFullScreen.call(doc);
|
|
}
|
|
};
|
|
|
|
const arraysMatch = (arr1, arr2) => {
|
|
|
|
// Check if the arrays are the same length
|
|
if (arr1.length !== arr2.length) return false;
|
|
|
|
// Make local copy
|
|
const arrayTmp1 = [...arr1];
|
|
const arrayTmp2 = [...arr2];
|
|
|
|
// Sort arrays
|
|
arrayTmp1.sort();
|
|
arrayTmp2.sort();
|
|
|
|
// Check if all items exist and are in the same order
|
|
for (var i = 0; i < arrayTmp1.length; i++) {
|
|
if (arrayTmp1[i] !== arrayTmp2[i]) return false;
|
|
}
|
|
|
|
// Otherwise, return true
|
|
return true;
|
|
};
|
|
|
|
const arraysMatchNoSorting = (arr1, arr2) => {
|
|
|
|
// Check if the arrays are the same length
|
|
if (arr1.length !== arr2.length) return false;
|
|
|
|
// Check if all items exist and are in the same order
|
|
for (var i = 0; i < arr1.length; i++) {
|
|
if (arr1[i] !== arr2[i]) return false;
|
|
}
|
|
|
|
// Otherwise, return true
|
|
return true;
|
|
};
|
|
|
|
const areEqualInputs = (input1, input2, propertiesToExclude = []) => {
|
|
|
|
const tmpInput1 = Object.assign({}, input1);
|
|
const tmpInput2 = Object.assign({}, input2);
|
|
|
|
if (propertiesToExclude.length) {
|
|
propertiesToExclude.forEach(p => {
|
|
delete tmpInput1[p]
|
|
delete tmpInput2[p]
|
|
})
|
|
}
|
|
|
|
return isEqual(tmpInput1, tmpInput2);
|
|
}
|
|
|
|
const arrayOfObjsSortByKey = (array, key) => {
|
|
|
|
function compare(a, b) {
|
|
if (a[key] < b[key]) return -1
|
|
if (a[key] > b[key]) return 1
|
|
return 0
|
|
}
|
|
|
|
return array.sort(compare)
|
|
}
|
|
|
|
const findCommonValuesInArray = (arr1, arr2) => arr1.some(item => arr2.includes(item))
|
|
const findItemsWithExactValuesInArray = (arr1, arr2) => arr1.every(item => arr2.includes(item))
|
|
const isNotEmptyObj = (obj) => Object.keys(obj).length > 0
|
|
|
|
export default {
|
|
toggleFullScreen,
|
|
arraysMatch,
|
|
arraysMatchNoSorting,
|
|
arrayOfObjsSortByKey,
|
|
findCommonValuesInArray,
|
|
findItemsWithExactValuesInArray,
|
|
isNotEmptyObj,
|
|
areEqualInputs
|
|
}; |