- 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
This commit is contained in:
93
util/index.js
Normal file
93
util/index.js
Normal file
@@ -0,0 +1,93 @@
|
||||
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
|
||||
};
|
||||
Reference in New Issue
Block a user