@amimpact/willy-utils 1.6.1-beta.1 → 1.7.1-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cookie.d.ts +1 -1
- package/dist/cookie.js +10 -7
- package/dist/date.js +19 -14
- package/dist/form.js +6 -5
- package/dist/includes/tinyduration.js +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -1
- package/dist/misc.d.ts +11 -0
- package/dist/misc.js +32 -15
- package/dist/selectors.js +6 -3
- package/dist/url.js +21 -14
- package/package.json +4 -4
package/dist/cookie.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Create Cookie
|
|
3
3
|
* source: http://www.quirksmode.org/js/cookies.html
|
|
4
4
|
*/
|
|
5
|
-
export declare const createCookie: (name: string, value: string | boolean, days?: number
|
|
5
|
+
export declare const createCookie: (name: string, value: string | boolean, days?: number) => void;
|
|
6
6
|
/**
|
|
7
7
|
* Read Cookie
|
|
8
8
|
* source: http://www.quirksmode.org/js/cookies.html
|
package/dist/cookie.js
CHANGED
|
@@ -5,21 +5,22 @@ exports.eraseCookie = exports.readCookie = exports.createCookie = void 0;
|
|
|
5
5
|
* Create Cookie
|
|
6
6
|
* source: http://www.quirksmode.org/js/cookies.html
|
|
7
7
|
*/
|
|
8
|
-
|
|
8
|
+
var createCookie = function (name, value, days) {
|
|
9
9
|
var expires = '';
|
|
10
10
|
if (days) {
|
|
11
11
|
var date = new Date();
|
|
12
12
|
date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
|
|
13
|
-
expires = "; expires="
|
|
13
|
+
expires = "; expires=".concat(date.toUTCString());
|
|
14
14
|
}
|
|
15
|
-
document.cookie = name
|
|
15
|
+
document.cookie = "".concat(name, "=").concat(value).concat(expires, "; path=/");
|
|
16
16
|
};
|
|
17
|
+
exports.createCookie = createCookie;
|
|
17
18
|
/**
|
|
18
19
|
* Read Cookie
|
|
19
20
|
* source: http://www.quirksmode.org/js/cookies.html
|
|
20
21
|
*/
|
|
21
|
-
|
|
22
|
-
var nameEQ = name
|
|
22
|
+
var readCookie = function (name) {
|
|
23
|
+
var nameEQ = "".concat(name, "=");
|
|
23
24
|
var ca = document.cookie.split(';');
|
|
24
25
|
for (var i = 0; i < ca.length; i++) {
|
|
25
26
|
var c = ca[i];
|
|
@@ -32,10 +33,12 @@ exports.readCookie = function (name) {
|
|
|
32
33
|
}
|
|
33
34
|
return null;
|
|
34
35
|
};
|
|
36
|
+
exports.readCookie = readCookie;
|
|
35
37
|
/**
|
|
36
38
|
* Erase Cookie
|
|
37
39
|
* source: http://www.quirksmode.org/js/cookies.html
|
|
38
40
|
*/
|
|
39
|
-
|
|
40
|
-
exports.createCookie(name, '', -1);
|
|
41
|
+
var eraseCookie = function (name) {
|
|
42
|
+
(0, exports.createCookie)(name, '', -1);
|
|
41
43
|
};
|
|
44
|
+
exports.eraseCookie = eraseCookie;
|
package/dist/date.js
CHANGED
|
@@ -24,7 +24,7 @@ var availableLocales = {
|
|
|
24
24
|
* @param {CraftDate} dateObject
|
|
25
25
|
* @param {FormatCraftDateOptions} options
|
|
26
26
|
*/
|
|
27
|
-
|
|
27
|
+
var formatCraftDate = function (dateObject, options) {
|
|
28
28
|
var dateFormat = options && options.systemFormat ? 'yyyy-MM-dd' : 'dd-MM-yyyy';
|
|
29
29
|
var localeString = 'nl';
|
|
30
30
|
if (options && options.showTime) {
|
|
@@ -48,15 +48,16 @@ exports.formatCraftDate = function (dateObject, options) {
|
|
|
48
48
|
*/
|
|
49
49
|
var dateToFormat = dateObject.date.replace(/-/g, '/').split('.')[0];
|
|
50
50
|
// De spatie tussen datum en tijd vervangen door 'T', anders snapt IE het niet
|
|
51
|
-
return format_1.default(new Date(dateToFormat), dateFormat, {
|
|
51
|
+
return (0, format_1.default)(new Date(dateToFormat), dateFormat, {
|
|
52
52
|
locale: availableLocales[localeString],
|
|
53
53
|
});
|
|
54
54
|
};
|
|
55
|
+
exports.formatCraftDate = formatCraftDate;
|
|
55
56
|
/**
|
|
56
57
|
* Datum formatteren naar "x minuten etc. geleden"
|
|
57
58
|
* @param {date, timezone, timezone_type} dateObject
|
|
58
59
|
*/
|
|
59
|
-
|
|
60
|
+
var formatDateFromNow = function (dateObject, options) {
|
|
60
61
|
var defaultOptions = {
|
|
61
62
|
addSuffix: true,
|
|
62
63
|
includeSeconds: true,
|
|
@@ -73,13 +74,13 @@ exports.formatDateFromNow = function (dateObject, options) {
|
|
|
73
74
|
if (!dateObject || !dateObject.date) {
|
|
74
75
|
return '';
|
|
75
76
|
}
|
|
76
|
-
var parsed = date_fns_tz_1.zonedTimeToUtc(dateObject.date, dateObject.timezone);
|
|
77
|
+
var parsed = (0, date_fns_tz_1.zonedTimeToUtc)(dateObject.date, dateObject.timezone);
|
|
77
78
|
/**
|
|
78
79
|
* Datum tonen voor ouder dan x tijd
|
|
79
80
|
*/
|
|
80
81
|
if (opts.showDateForOld &&
|
|
81
|
-
isBefore_1.default(parsed, subDays_1.default(new Date(), opts.numberOfDaysShowDateForOld))) {
|
|
82
|
-
return format_1.default(new Date(dateObject.date.replace(' ', 'T')), opts.showDateForOldFormat, {
|
|
82
|
+
(0, isBefore_1.default)(parsed, (0, subDays_1.default)(new Date(), opts.numberOfDaysShowDateForOld))) {
|
|
83
|
+
return (0, format_1.default)(new Date(dateObject.date.replace(' ', 'T')), opts.showDateForOldFormat, {
|
|
83
84
|
locale: availableLocales[opts.locale],
|
|
84
85
|
});
|
|
85
86
|
}
|
|
@@ -94,18 +95,19 @@ exports.formatDateFromNow = function (dateObject, options) {
|
|
|
94
95
|
* Daarom moet date-fns wel de posttime getransformeerd hebben tot de lokale timezone
|
|
95
96
|
*/
|
|
96
97
|
if (opts.strict) {
|
|
97
|
-
return formatDistanceStrict_1.default(parsed, new Date(), formatDistanceOptions);
|
|
98
|
+
return (0, formatDistanceStrict_1.default)(parsed, new Date(), formatDistanceOptions);
|
|
98
99
|
}
|
|
99
100
|
else {
|
|
100
|
-
return formatDistance_1.default(parsed, new Date(), formatDistanceOptions);
|
|
101
|
+
return (0, formatDistance_1.default)(parsed, new Date(), formatDistanceOptions);
|
|
101
102
|
}
|
|
102
103
|
}
|
|
103
104
|
};
|
|
105
|
+
exports.formatDateFromNow = formatDateFromNow;
|
|
104
106
|
/**
|
|
105
107
|
* New date maken op basis van timezone
|
|
106
108
|
* @param {date, timezone, timezone_type} dateObject
|
|
107
109
|
*/
|
|
108
|
-
|
|
110
|
+
var formatNewDate = function (dateObject) {
|
|
109
111
|
if (!dateObject || !dateObject.date) {
|
|
110
112
|
return '';
|
|
111
113
|
}
|
|
@@ -115,23 +117,25 @@ exports.formatNewDate = function (dateObject) {
|
|
|
115
117
|
* Safari begrijpt het wel als alle - vervangen worden door /, en het laatste gedeelte achter de punt weg is
|
|
116
118
|
*/
|
|
117
119
|
// const dateString = dateObject.date.replace(/-/g, '/').split('.')[0];
|
|
118
|
-
var parsed = date_fns_tz_1.zonedTimeToUtc(dateObject.date, dateObject.timezone);
|
|
120
|
+
var parsed = (0, date_fns_tz_1.zonedTimeToUtc)(dateObject.date, dateObject.timezone);
|
|
119
121
|
return new Date(parsed);
|
|
120
122
|
};
|
|
123
|
+
exports.formatNewDate = formatNewDate;
|
|
121
124
|
/**
|
|
122
125
|
* Convert datum
|
|
123
126
|
* @param {Date} date
|
|
124
127
|
*/
|
|
125
|
-
|
|
128
|
+
var formatUTCDate = function (date) {
|
|
126
129
|
var d = new Date(date);
|
|
127
130
|
return new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds()));
|
|
128
131
|
};
|
|
132
|
+
exports.formatUTCDate = formatUTCDate;
|
|
129
133
|
/**
|
|
130
134
|
* ISO duration naar object ombuigen. Bijv P4W
|
|
131
135
|
* @param {string} duration
|
|
132
136
|
* @param {parseISODurationOptions} options
|
|
133
137
|
*/
|
|
134
|
-
|
|
138
|
+
var parseISODuration = function (duration, options) {
|
|
135
139
|
var defaultOptions = {
|
|
136
140
|
humanReadable: false,
|
|
137
141
|
};
|
|
@@ -139,11 +143,12 @@ exports.parseISODuration = function (duration, options) {
|
|
|
139
143
|
if (options) {
|
|
140
144
|
opts = Object.assign({}, defaultOptions, options);
|
|
141
145
|
}
|
|
142
|
-
var durationObject = tinyduration_1.parse(duration);
|
|
146
|
+
var durationObject = (0, tinyduration_1.parse)(duration);
|
|
143
147
|
if (opts.humanReadable) {
|
|
144
|
-
return formatDuration_1.default(durationObject, {
|
|
148
|
+
return (0, formatDuration_1.default)(durationObject, {
|
|
145
149
|
locale: locale_1.nl,
|
|
146
150
|
});
|
|
147
151
|
}
|
|
148
152
|
return durationObject;
|
|
149
153
|
};
|
|
154
|
+
exports.parseISODuration = parseISODuration;
|
package/dist/form.js
CHANGED
|
@@ -20,7 +20,7 @@ exports.convertObjectToFormData = void 0;
|
|
|
20
20
|
* @param {FormData} form
|
|
21
21
|
* @param {String} namespace
|
|
22
22
|
*/
|
|
23
|
-
|
|
23
|
+
var convertObjectToFormData = function (data, form, namespace) {
|
|
24
24
|
if (data === void 0) { data = {}; }
|
|
25
25
|
if (form === void 0) { form = null; }
|
|
26
26
|
if (namespace === void 0) { namespace = ''; }
|
|
@@ -34,7 +34,7 @@ exports.convertObjectToFormData = function (data, form, namespace) {
|
|
|
34
34
|
return "continue";
|
|
35
35
|
}
|
|
36
36
|
var formKey = namespace
|
|
37
|
-
? namespace
|
|
37
|
+
? "".concat(namespace, "[").concat(propertyName, "]")
|
|
38
38
|
: propertyName;
|
|
39
39
|
// Date
|
|
40
40
|
if (model[propertyName] instanceof Date)
|
|
@@ -46,13 +46,13 @@ exports.convertObjectToFormData = function (data, form, namespace) {
|
|
|
46
46
|
}
|
|
47
47
|
else if (model[propertyName] instanceof Array) {
|
|
48
48
|
model[propertyName].forEach(function (element, index) {
|
|
49
|
-
var tempFormKey = formKey
|
|
49
|
+
var tempFormKey = "".concat(formKey, "[").concat(index, "]");
|
|
50
50
|
if (element instanceof File) {
|
|
51
51
|
formData.append(tempFormKey, element);
|
|
52
52
|
}
|
|
53
53
|
else {
|
|
54
54
|
if (typeof element === 'object') {
|
|
55
|
-
exports.convertObjectToFormData(element, formData, tempFormKey);
|
|
55
|
+
(0, exports.convertObjectToFormData)(element, formData, tempFormKey);
|
|
56
56
|
}
|
|
57
57
|
else {
|
|
58
58
|
formData.append(tempFormKey, element.toString());
|
|
@@ -63,7 +63,7 @@ exports.convertObjectToFormData = function (data, form, namespace) {
|
|
|
63
63
|
}
|
|
64
64
|
else if (typeof model[propertyName] === 'object' &&
|
|
65
65
|
!(model[propertyName] instanceof File)) {
|
|
66
|
-
exports.convertObjectToFormData(model[propertyName], formData, formKey);
|
|
66
|
+
(0, exports.convertObjectToFormData)(model[propertyName], formData, formKey);
|
|
67
67
|
}
|
|
68
68
|
else {
|
|
69
69
|
formData.append(formKey, model[propertyName].toString());
|
|
@@ -80,3 +80,4 @@ exports.convertObjectToFormData = function (data, form, namespace) {
|
|
|
80
80
|
// }
|
|
81
81
|
return formData;
|
|
82
82
|
};
|
|
83
|
+
exports.convertObjectToFormData = convertObjectToFormData;
|
|
@@ -14,7 +14,7 @@ var units = [
|
|
|
14
14
|
// NOTE: IE11 kan niet overweg met groups in een regex
|
|
15
15
|
// const r = (name: string, unit: string): string =>
|
|
16
16
|
// `((?<${name}>-?\\d*[\\.,]?\\d+)${unit})?`;
|
|
17
|
-
var r = function (name, unit) { return "((\\d*[\\.,]?\\d+)"
|
|
17
|
+
var r = function (name, unit) { return "((\\d*[\\.,]?\\d+)".concat(unit, ")?"); };
|
|
18
18
|
var durationRegex = new RegExp([
|
|
19
19
|
'P',
|
|
20
20
|
r('years', 'Y'),
|
|
@@ -25,7 +25,7 @@ var durationRegex = new RegExp([
|
|
|
25
25
|
r('hours', 'H'),
|
|
26
26
|
r('minutes', 'M'),
|
|
27
27
|
r('seconds', 'S'),
|
|
28
|
-
')?',
|
|
28
|
+
')?', // end optional time
|
|
29
29
|
].join(''));
|
|
30
30
|
function parseNum(s) {
|
|
31
31
|
if (s === '' || s === undefined || s === null) {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createCookie, readCookie, eraseCookie } from './cookie';
|
|
2
2
|
import { formatCraftDate, formatDateFromNow, formatNewDate, formatUTCDate, parseISODuration } from './date';
|
|
3
3
|
import { convertObjectToFormData } from './form';
|
|
4
|
-
import { bytesToSize, checkForScrollbars, convertHexToRGBA, downloadFile, getNestedSet, getUrlsFromString, isPlainObject, observeResize, wrap } from './misc';
|
|
4
|
+
import { bytesToSize, capitalize, checkForScrollbars, convertHexToRGBA, downloadFile, getNestedSet, getUrlsFromString, isPlainObject, observeResize, wrap } from './misc';
|
|
5
5
|
import { $, $$, getParents } from './selectors';
|
|
6
6
|
import { isCraftActionUrl, isInternalLink, isExternalUrl, isAsset } from './url';
|
|
7
|
-
export { $, $$, bytesToSize, checkForScrollbars, convertHexToRGBA, createCookie, downloadFile, eraseCookie, formatCraftDate, convertObjectToFormData, formatDateFromNow, formatNewDate, formatUTCDate, getNestedSet, getParents, getUrlsFromString, isAsset, isCraftActionUrl, isExternalUrl, isInternalLink, isPlainObject, observeResize, parseISODuration, readCookie, wrap, };
|
|
7
|
+
export { $, $$, bytesToSize, capitalize, checkForScrollbars, convertHexToRGBA, createCookie, downloadFile, eraseCookie, formatCraftDate, convertObjectToFormData, formatDateFromNow, formatNewDate, formatUTCDate, getNestedSet, getParents, getUrlsFromString, isAsset, isCraftActionUrl, isExternalUrl, isInternalLink, isPlainObject, observeResize, parseISODuration, readCookie, wrap, };
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.wrap = exports.readCookie = exports.parseISODuration = exports.observeResize = exports.isPlainObject = exports.isInternalLink = exports.isExternalUrl = exports.isCraftActionUrl = exports.isAsset = exports.getUrlsFromString = exports.getParents = exports.getNestedSet = exports.formatUTCDate = exports.formatNewDate = exports.formatDateFromNow = exports.convertObjectToFormData = exports.formatCraftDate = exports.eraseCookie = exports.downloadFile = exports.createCookie = exports.convertHexToRGBA = exports.checkForScrollbars = exports.bytesToSize = exports.$$ = exports.$ = void 0;
|
|
3
|
+
exports.wrap = exports.readCookie = exports.parseISODuration = exports.observeResize = exports.isPlainObject = exports.isInternalLink = exports.isExternalUrl = exports.isCraftActionUrl = exports.isAsset = exports.getUrlsFromString = exports.getParents = exports.getNestedSet = exports.formatUTCDate = exports.formatNewDate = exports.formatDateFromNow = exports.convertObjectToFormData = exports.formatCraftDate = exports.eraseCookie = exports.downloadFile = exports.createCookie = exports.convertHexToRGBA = exports.checkForScrollbars = exports.capitalize = exports.bytesToSize = exports.$$ = exports.$ = void 0;
|
|
4
4
|
var cookie_1 = require("./cookie");
|
|
5
5
|
Object.defineProperty(exports, "createCookie", { enumerable: true, get: function () { return cookie_1.createCookie; } });
|
|
6
6
|
Object.defineProperty(exports, "readCookie", { enumerable: true, get: function () { return cookie_1.readCookie; } });
|
|
@@ -15,6 +15,7 @@ var form_1 = require("./form");
|
|
|
15
15
|
Object.defineProperty(exports, "convertObjectToFormData", { enumerable: true, get: function () { return form_1.convertObjectToFormData; } });
|
|
16
16
|
var misc_1 = require("./misc");
|
|
17
17
|
Object.defineProperty(exports, "bytesToSize", { enumerable: true, get: function () { return misc_1.bytesToSize; } });
|
|
18
|
+
Object.defineProperty(exports, "capitalize", { enumerable: true, get: function () { return misc_1.capitalize; } });
|
|
18
19
|
Object.defineProperty(exports, "checkForScrollbars", { enumerable: true, get: function () { return misc_1.checkForScrollbars; } });
|
|
19
20
|
Object.defineProperty(exports, "convertHexToRGBA", { enumerable: true, get: function () { return misc_1.convertHexToRGBA; } });
|
|
20
21
|
Object.defineProperty(exports, "downloadFile", { enumerable: true, get: function () { return misc_1.downloadFile; } });
|
package/dist/misc.d.ts
CHANGED
|
@@ -1,8 +1,19 @@
|
|
|
1
|
+
declare global {
|
|
2
|
+
interface Navigator {
|
|
3
|
+
msSaveBlob?: (blob: any, defaultName?: string) => boolean;
|
|
4
|
+
msSaveOrOpenBlob: (blob: any, defaultName?: string) => boolean;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
1
7
|
/**
|
|
2
8
|
* Toon mooier bestandsformaat
|
|
3
9
|
* @param {string | number} bytes
|
|
4
10
|
*/
|
|
5
11
|
export declare const bytesToSize: (bytes: number) => string;
|
|
12
|
+
/**
|
|
13
|
+
* Eerste letter van een string een hoofdletter maken
|
|
14
|
+
* @param {string} str
|
|
15
|
+
*/
|
|
16
|
+
export declare const capitalize: (str: string) => string;
|
|
6
17
|
/**
|
|
7
18
|
* Check of een HTML element horizontale of verticale scrollbars heeft
|
|
8
19
|
* als dat zo is, dan wordt een class op het element gezet.
|
package/dist/misc.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.wrap = exports.observeResize = exports.isPlainObject = exports.getUrlsFromString = exports.getNestedSet = exports.downloadFile = exports.convertHexToRGBA = exports.checkForScrollbars = exports.bytesToSize = void 0;
|
|
3
|
+
exports.wrap = exports.observeResize = exports.isPlainObject = exports.getUrlsFromString = exports.getNestedSet = exports.downloadFile = exports.convertHexToRGBA = exports.checkForScrollbars = exports.capitalize = exports.bytesToSize = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Toon mooier bestandsformaat
|
|
6
6
|
* @param {string | number} bytes
|
|
7
7
|
*/
|
|
8
|
-
|
|
8
|
+
var bytesToSize = function (bytes) {
|
|
9
9
|
if (typeof bytes === 'string') {
|
|
10
10
|
bytes = parseInt(bytes);
|
|
11
11
|
}
|
|
@@ -15,6 +15,15 @@ exports.bytesToSize = function (bytes) {
|
|
|
15
15
|
var i = Math.floor(Math.log(bytes) / Math.log(1024));
|
|
16
16
|
return Math.round(bytes / Math.pow(1024, i)) + ' ' + sizes[i];
|
|
17
17
|
};
|
|
18
|
+
exports.bytesToSize = bytesToSize;
|
|
19
|
+
/**
|
|
20
|
+
* Eerste letter van een string een hoofdletter maken
|
|
21
|
+
* @param {string} str
|
|
22
|
+
*/
|
|
23
|
+
var capitalize = function (str) {
|
|
24
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
25
|
+
};
|
|
26
|
+
exports.capitalize = capitalize;
|
|
18
27
|
/**
|
|
19
28
|
* Check of een HTML element horizontale of verticale scrollbars heeft
|
|
20
29
|
* als dat zo is, dan wordt een class op het element gezet.
|
|
@@ -22,7 +31,7 @@ exports.bytesToSize = function (bytes) {
|
|
|
22
31
|
* @param {HTMLElement} el
|
|
23
32
|
* @param {String} dir // vertical of horizontal
|
|
24
33
|
*/
|
|
25
|
-
|
|
34
|
+
var checkForScrollbars = function (el, dir) {
|
|
26
35
|
if (dir === void 0) { dir = 'vertical'; }
|
|
27
36
|
var direction = dir === 'vertical' ? 'scrollTop' : 'scrollLeft';
|
|
28
37
|
var hasScrollbar = !!el[direction];
|
|
@@ -32,23 +41,24 @@ exports.checkForScrollbars = function (el, dir) {
|
|
|
32
41
|
el[direction] = 0;
|
|
33
42
|
}
|
|
34
43
|
if (hasScrollbar) {
|
|
35
|
-
el.classList.add("has-"
|
|
44
|
+
el.classList.add("has-".concat(dir, "-scrollbar"));
|
|
36
45
|
}
|
|
37
46
|
else {
|
|
38
|
-
el.classList.remove("has-"
|
|
47
|
+
el.classList.remove("has-".concat(dir, "-scrollbar"));
|
|
39
48
|
}
|
|
40
49
|
};
|
|
50
|
+
exports.checkForScrollbars = checkForScrollbars;
|
|
41
51
|
/**
|
|
42
52
|
* Hex kleurcode converten naar rgba
|
|
43
53
|
*
|
|
44
54
|
* @param {string} hexCode
|
|
45
55
|
* @param {number} opacity
|
|
46
56
|
*/
|
|
47
|
-
|
|
57
|
+
var convertHexToRGBA = function (hexCode, opacity) {
|
|
48
58
|
if (opacity === void 0) { opacity = 1; }
|
|
49
59
|
var hex = hexCode.replace('#', '');
|
|
50
60
|
if (hex.length === 3) {
|
|
51
|
-
hex = ""
|
|
61
|
+
hex = "".concat(hex[0]).concat(hex[0]).concat(hex[1]).concat(hex[1]).concat(hex[2]).concat(hex[2]);
|
|
52
62
|
}
|
|
53
63
|
var r = parseInt(hex.substring(0, 2), 16);
|
|
54
64
|
var g = parseInt(hex.substring(2, 4), 16);
|
|
@@ -57,15 +67,16 @@ exports.convertHexToRGBA = function (hexCode, opacity) {
|
|
|
57
67
|
if (opacity > 1 && opacity <= 100) {
|
|
58
68
|
opacity = opacity / 100;
|
|
59
69
|
}
|
|
60
|
-
return "rgba("
|
|
70
|
+
return "rgba(".concat(r, ",").concat(g, ",").concat(b, ",").concat(opacity, ")");
|
|
61
71
|
};
|
|
72
|
+
exports.convertHexToRGBA = convertHexToRGBA;
|
|
62
73
|
/**
|
|
63
74
|
* Downloaden van een bestand
|
|
64
75
|
*
|
|
65
76
|
* @param {any} data
|
|
66
77
|
* @param {string} fileName
|
|
67
78
|
*/
|
|
68
|
-
|
|
79
|
+
var downloadFile = function (data, fileName) {
|
|
69
80
|
if (typeof window.navigator.msSaveBlob !== 'undefined') {
|
|
70
81
|
window.navigator.msSaveOrOpenBlob(new Blob([data]), fileName);
|
|
71
82
|
}
|
|
@@ -78,6 +89,7 @@ exports.downloadFile = function (data, fileName) {
|
|
|
78
89
|
fileLink.click();
|
|
79
90
|
}
|
|
80
91
|
};
|
|
92
|
+
exports.downloadFile = downloadFile;
|
|
81
93
|
/**
|
|
82
94
|
* Flat structure array ombouwen naar een array met children
|
|
83
95
|
* @param {array} entries
|
|
@@ -85,7 +97,7 @@ exports.downloadFile = function (data, fileName) {
|
|
|
85
97
|
* @param {number | string} left
|
|
86
98
|
* @param {number | string} right
|
|
87
99
|
*/
|
|
88
|
-
|
|
100
|
+
var getNestedSet = function (entries, level, left, right) {
|
|
89
101
|
if (entries === void 0) { entries = []; }
|
|
90
102
|
if (level === void 0) { level = 1; }
|
|
91
103
|
return entries
|
|
@@ -98,19 +110,21 @@ exports.getNestedSet = function (entries, level, left, right) {
|
|
|
98
110
|
})
|
|
99
111
|
.map(function (item) {
|
|
100
112
|
var returnItem = item;
|
|
101
|
-
returnItem['children'] = exports.getNestedSet(entries, parseFloat(item.level) + 1, parseFloat(item.lft), parseFloat(item.rgt));
|
|
113
|
+
returnItem['children'] = (0, exports.getNestedSet)(entries, parseFloat(item.level) + 1, parseFloat(item.lft), parseFloat(item.rgt));
|
|
102
114
|
return returnItem;
|
|
103
115
|
});
|
|
104
116
|
};
|
|
117
|
+
exports.getNestedSet = getNestedSet;
|
|
105
118
|
/**
|
|
106
119
|
* Urls uit een string halen
|
|
107
120
|
* @param {string} content - html
|
|
108
121
|
*/
|
|
109
|
-
|
|
122
|
+
var getUrlsFromString = function (content) {
|
|
110
123
|
var regex = /(https?|ftp|file):\/\/([-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)/gi;
|
|
111
124
|
var m = content.match(regex);
|
|
112
125
|
return m || null;
|
|
113
126
|
};
|
|
127
|
+
exports.getUrlsFromString = getUrlsFromString;
|
|
114
128
|
/**
|
|
115
129
|
* Bekijken of een waarde een object is
|
|
116
130
|
* https://github.com/reduxjs/redux/blob/master/src/utils/isPlainObject.ts
|
|
@@ -118,7 +132,7 @@ exports.getUrlsFromString = function (content) {
|
|
|
118
132
|
* @param {any} value - Waarde welke je wilt checken of het een object is
|
|
119
133
|
* @returns {boolean}
|
|
120
134
|
*/
|
|
121
|
-
|
|
135
|
+
var isPlainObject = function (value) {
|
|
122
136
|
if (typeof value !== 'object' || value === null) {
|
|
123
137
|
return false;
|
|
124
138
|
}
|
|
@@ -128,6 +142,7 @@ exports.isPlainObject = function (value) {
|
|
|
128
142
|
}
|
|
129
143
|
return Object.getPrototypeOf(value) === proto;
|
|
130
144
|
};
|
|
145
|
+
exports.isPlainObject = isPlainObject;
|
|
131
146
|
/**
|
|
132
147
|
* Resize observer; checkt of een HTML element zijn dimensies veranderen
|
|
133
148
|
* en zodra dat gebeurt wordt de callback functie gecalled.
|
|
@@ -135,21 +150,23 @@ exports.isPlainObject = function (value) {
|
|
|
135
150
|
* @param {HTMLElement} el
|
|
136
151
|
* @param {Function} callback
|
|
137
152
|
*/
|
|
138
|
-
|
|
153
|
+
var observeResize = function (element, callback) {
|
|
139
154
|
var resizeObserver = new ResizeObserver(function () {
|
|
140
155
|
callback(element);
|
|
141
156
|
});
|
|
142
157
|
resizeObserver.observe(element);
|
|
143
158
|
};
|
|
159
|
+
exports.observeResize = observeResize;
|
|
144
160
|
/**
|
|
145
161
|
* Wrap een element in een nieuw element
|
|
146
162
|
*
|
|
147
163
|
* @param {HTMLElement} el
|
|
148
164
|
* @param {HTMLElement} wrapper
|
|
149
165
|
*/
|
|
150
|
-
|
|
166
|
+
var wrap = function (el, wrapper) {
|
|
151
167
|
if (el.parentNode) {
|
|
152
168
|
el.parentNode.insertBefore(wrapper, el);
|
|
153
169
|
wrapper.appendChild(el);
|
|
154
170
|
}
|
|
155
171
|
};
|
|
172
|
+
exports.wrap = wrap;
|
package/dist/selectors.js
CHANGED
|
@@ -8,10 +8,11 @@ exports.getParents = exports.$$ = exports.$ = void 0;
|
|
|
8
8
|
* @param {*} [containerElement=document] - Element waarin hij moet selecteren
|
|
9
9
|
* @returns {(HTMLElement|null)}
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
var $ = function (selector, containerElement) {
|
|
12
12
|
if (containerElement === void 0) { containerElement = document; }
|
|
13
13
|
return containerElement.querySelector(selector);
|
|
14
14
|
};
|
|
15
|
+
exports.$ = $;
|
|
15
16
|
/**
|
|
16
17
|
* Selecteer alle items
|
|
17
18
|
*
|
|
@@ -19,10 +20,11 @@ exports.$ = function (selector, containerElement) {
|
|
|
19
20
|
* @param {*} [containerElement=document] - Element waarin hij moet selecteren
|
|
20
21
|
* @returns {HTMLElement[]}
|
|
21
22
|
*/
|
|
22
|
-
|
|
23
|
+
var $$ = function (selector, containerElement) {
|
|
23
24
|
if (containerElement === void 0) { containerElement = document; }
|
|
24
25
|
return Array.prototype.slice.apply(containerElement.querySelectorAll(selector));
|
|
25
26
|
};
|
|
27
|
+
exports.$$ = $$;
|
|
26
28
|
/**
|
|
27
29
|
* Haal parents van een element op
|
|
28
30
|
*
|
|
@@ -30,7 +32,7 @@ exports.$$ = function (selector, containerElement) {
|
|
|
30
32
|
* @param {string} [parentSelector] - Een selector waar hij aan moet voldoen.
|
|
31
33
|
* Als deze niet wordt meegegeven dan geeft hij alle parents terug
|
|
32
34
|
*/
|
|
33
|
-
|
|
35
|
+
var getParents = function (el, parentSelector) {
|
|
34
36
|
if (parentSelector === void 0) { parentSelector = ''; }
|
|
35
37
|
var parents = [];
|
|
36
38
|
var p = el.parentElement;
|
|
@@ -46,3 +48,4 @@ exports.getParents = function (el, parentSelector) {
|
|
|
46
48
|
}
|
|
47
49
|
return parents;
|
|
48
50
|
};
|
|
51
|
+
exports.getParents = getParents;
|
package/dist/url.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
3
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4
|
+
if (ar || !(i in from)) {
|
|
5
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
6
|
+
ar[i] = from[i];
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
8
10
|
};
|
|
9
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
12
|
exports.isAsset = exports.isPhoneOrEmailLink = exports.isCraftActionUrl = exports.isExternalUrl = exports.isInternalLink = void 0;
|
|
@@ -15,7 +17,7 @@ exports.isAsset = exports.isPhoneOrEmailLink = exports.isCraftActionUrl = export
|
|
|
15
17
|
* @param {string} url
|
|
16
18
|
* @param {PointerEvent} ev
|
|
17
19
|
*/
|
|
18
|
-
|
|
20
|
+
var isInternalLink = function (url, ev) {
|
|
19
21
|
if (ev) {
|
|
20
22
|
// some sanity checks taken from vue-router:
|
|
21
23
|
// https://github.com/vuejs/vue-router/blob/dev/src/components/link.js#L106
|
|
@@ -33,12 +35,13 @@ exports.isInternalLink = function (url, ev) {
|
|
|
33
35
|
return false;
|
|
34
36
|
}
|
|
35
37
|
}
|
|
36
|
-
return !exports.isExternalUrl(url) && !exports.isPhoneOrEmailLink(url) && !exports.isAsset(url);
|
|
38
|
+
return !(0, exports.isExternalUrl)(url) && !(0, exports.isPhoneOrEmailLink)(url) && !(0, exports.isAsset)(url);
|
|
37
39
|
};
|
|
40
|
+
exports.isInternalLink = isInternalLink;
|
|
38
41
|
/**
|
|
39
42
|
* Bepalen of het om een externe url gaat
|
|
40
43
|
*/
|
|
41
|
-
|
|
44
|
+
var isExternalUrl = function (url) {
|
|
42
45
|
if (!url) {
|
|
43
46
|
return false;
|
|
44
47
|
}
|
|
@@ -46,34 +49,37 @@ exports.isExternalUrl = function (url) {
|
|
|
46
49
|
* Plugin urls zijn actions en dit kunnen redirects zijn
|
|
47
50
|
* Deze actions urls dus altijd in een externe tab openen
|
|
48
51
|
*/
|
|
49
|
-
if (url.startsWith(window.location.origin
|
|
52
|
+
if (url.startsWith("".concat(window.location.origin, "/actions/"))) {
|
|
50
53
|
return true;
|
|
51
54
|
}
|
|
52
55
|
return url.startsWith('http') && !url.startsWith(window.location.origin);
|
|
53
56
|
};
|
|
57
|
+
exports.isExternalUrl = isExternalUrl;
|
|
54
58
|
/**
|
|
55
59
|
* Bepalen of het om een craft action url gaat
|
|
56
60
|
*/
|
|
57
|
-
|
|
61
|
+
var isCraftActionUrl = function (url) {
|
|
58
62
|
if (!url) {
|
|
59
63
|
return false;
|
|
60
64
|
}
|
|
61
65
|
return url.indexOf('/index.php/actions/') !== -1;
|
|
62
66
|
};
|
|
67
|
+
exports.isCraftActionUrl = isCraftActionUrl;
|
|
63
68
|
/**
|
|
64
69
|
* Checken of het om een tel of mailto link gaat
|
|
65
70
|
* (kan niet met bovenstaande omdat je bij tel of mailto bijvoorbeeld geen target blank wilt gebruiken)
|
|
66
71
|
*/
|
|
67
|
-
|
|
72
|
+
var isPhoneOrEmailLink = function (url) {
|
|
68
73
|
if (!url) {
|
|
69
74
|
return false;
|
|
70
75
|
}
|
|
71
76
|
return url.startsWith('mailto:') || url.startsWith('tel:');
|
|
72
77
|
};
|
|
78
|
+
exports.isPhoneOrEmailLink = isPhoneOrEmailLink;
|
|
73
79
|
/**
|
|
74
80
|
* Checken of url een bestand is, om deze ook in een nieuw venster te openen
|
|
75
81
|
*/
|
|
76
|
-
|
|
82
|
+
var isAsset = function (url) {
|
|
77
83
|
var _a;
|
|
78
84
|
if (!url) {
|
|
79
85
|
return false;
|
|
@@ -101,7 +107,7 @@ exports.isAsset = function (url) {
|
|
|
101
107
|
'xlsx',
|
|
102
108
|
];
|
|
103
109
|
var CONFIG_EXTENSIONS = ((_a = FW === null || FW === void 0 ? void 0 : FW.config) === null || _a === void 0 ? void 0 : _a.allowedFileExtensions) || [];
|
|
104
|
-
var extensions =
|
|
110
|
+
var extensions = __spreadArray(__spreadArray([], DEFAULT_EXTENSIONS, true), CONFIG_EXTENSIONS, true);
|
|
105
111
|
var slug = url.split('/').pop();
|
|
106
112
|
var slugParts = slug ? slug.split('.') : [];
|
|
107
113
|
if (slugParts.length < 2) {
|
|
@@ -113,3 +119,4 @@ exports.isAsset = function (url) {
|
|
|
113
119
|
}
|
|
114
120
|
return false;
|
|
115
121
|
};
|
|
122
|
+
exports.isAsset = isAsset;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amimpact/willy-utils",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.1-beta.0",
|
|
4
4
|
"description": "Javascript utils",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -30,10 +30,10 @@
|
|
|
30
30
|
"@types/resize-observer-browser": "^0.1.7",
|
|
31
31
|
"browserify": "17.0.0",
|
|
32
32
|
"onchange": "7.1.0",
|
|
33
|
-
"typescript": "4.
|
|
33
|
+
"typescript": "4.7.3"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"date-fns": "2.
|
|
37
|
-
"date-fns-tz": "1.
|
|
36
|
+
"date-fns": "2.28.0",
|
|
37
|
+
"date-fns-tz": "1.3.4"
|
|
38
38
|
}
|
|
39
39
|
}
|