- 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:
56
util/Name.js
Normal file
56
util/Name.js
Normal file
@@ -0,0 +1,56 @@
|
||||
export default class Name {
|
||||
constructor(
|
||||
salutation,
|
||||
nameFirst,
|
||||
nameMiddle,
|
||||
nameLast,
|
||||
initials,
|
||||
) {
|
||||
this.salutation = this._sanitizeNamePart(salutation);
|
||||
this.nameFirst = this._sanitizeNamePart(nameFirst);
|
||||
this.nameMiddle = this._sanitizeNamePart(nameMiddle);
|
||||
this.nameLast = this._sanitizeNamePart(nameLast);
|
||||
this.initials = this._formatInitials(this._sanitizeNamePart(initials));
|
||||
}
|
||||
|
||||
static fromContactPersonItem(item) {
|
||||
return new this(
|
||||
item.salutation,
|
||||
item.firstname,
|
||||
item.middlename,
|
||||
item.lastname,
|
||||
item.initials,
|
||||
);
|
||||
}
|
||||
|
||||
_sanitizeNamePart(value) {
|
||||
if (this._isNamePartValid(value)) {
|
||||
return value.trim();
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
_isNamePartValid(value) {
|
||||
return typeof value === 'string' && value.length;
|
||||
}
|
||||
|
||||
_formatInitials(initials) {
|
||||
return initials.replace(/[^a-zA-Z]/g, '')
|
||||
.toUpperCase()
|
||||
.split('')
|
||||
.map(x => `${x}.`)
|
||||
.join('');
|
||||
}
|
||||
|
||||
get nameFull() {
|
||||
const nameParts = [
|
||||
this.salutation,
|
||||
this.initials || this.nameFirst,
|
||||
this.nameMiddle,
|
||||
this.nameLast,
|
||||
];
|
||||
|
||||
return nameParts.filter(x => x).join(' ');
|
||||
}
|
||||
};
|
||||
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