@amimpact/willy-utils 1.8.0 → 1.8.2
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/index.d.ts +2 -2
- package/dist/index.js +4 -1
- package/dist/misc.d.ts +20 -0
- package/dist/misc.js +65 -2
- package/package.json +1 -1
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, capitalize, checkForScrollbars, convertHexToRGBA, downloadFile, getNestedSet, getUrlsFromString, isPlainObject, observeResize, wrap } from './misc';
|
|
4
|
+
import { bytesToSize, capitalize, checkForScrollbars, convertHexToRGBA, downloadFile, getNestedSet, getUrlsFromString, isHoverableDevice, isPlainObject, isTouchDevice, isValidUrl, observeResize, wrap } from './misc';
|
|
5
5
|
import { $, $$, getParents } from './selectors';
|
|
6
6
|
import { isCraftActionUrl, isInternalLink, isExternalUrl, isAsset } from './url';
|
|
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, };
|
|
7
|
+
export { $, $$, bytesToSize, capitalize, checkForScrollbars, convertHexToRGBA, createCookie, downloadFile, eraseCookie, formatCraftDate, convertObjectToFormData, formatDateFromNow, formatNewDate, formatUTCDate, getNestedSet, getParents, getUrlsFromString, isAsset, isCraftActionUrl, isExternalUrl, isHoverableDevice, isInternalLink, isPlainObject, isTouchDevice, isValidUrl, 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.capitalize = exports.bytesToSize = exports.$$ = exports.$ = void 0;
|
|
3
|
+
exports.wrap = exports.readCookie = exports.parseISODuration = exports.observeResize = exports.isValidUrl = exports.isTouchDevice = exports.isPlainObject = exports.isInternalLink = exports.isHoverableDevice = 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; } });
|
|
@@ -21,7 +21,10 @@ Object.defineProperty(exports, "convertHexToRGBA", { enumerable: true, get: func
|
|
|
21
21
|
Object.defineProperty(exports, "downloadFile", { enumerable: true, get: function () { return misc_1.downloadFile; } });
|
|
22
22
|
Object.defineProperty(exports, "getNestedSet", { enumerable: true, get: function () { return misc_1.getNestedSet; } });
|
|
23
23
|
Object.defineProperty(exports, "getUrlsFromString", { enumerable: true, get: function () { return misc_1.getUrlsFromString; } });
|
|
24
|
+
Object.defineProperty(exports, "isHoverableDevice", { enumerable: true, get: function () { return misc_1.isHoverableDevice; } });
|
|
24
25
|
Object.defineProperty(exports, "isPlainObject", { enumerable: true, get: function () { return misc_1.isPlainObject; } });
|
|
26
|
+
Object.defineProperty(exports, "isTouchDevice", { enumerable: true, get: function () { return misc_1.isTouchDevice; } });
|
|
27
|
+
Object.defineProperty(exports, "isValidUrl", { enumerable: true, get: function () { return misc_1.isValidUrl; } });
|
|
25
28
|
Object.defineProperty(exports, "observeResize", { enumerable: true, get: function () { return misc_1.observeResize; } });
|
|
26
29
|
Object.defineProperty(exports, "wrap", { enumerable: true, get: function () { return misc_1.wrap; } });
|
|
27
30
|
var selectors_1 = require("./selectors");
|
package/dist/misc.d.ts
CHANGED
|
@@ -49,6 +49,12 @@ export declare const getNestedSet: (entries: any[] | undefined, level: number |
|
|
|
49
49
|
* @param {string} content - html
|
|
50
50
|
*/
|
|
51
51
|
export declare const getUrlsFromString: (content: string) => RegExpMatchArray | null;
|
|
52
|
+
/**
|
|
53
|
+
* Bepalen of jouw device hover ondersteunt
|
|
54
|
+
*
|
|
55
|
+
* @returns {boolean}
|
|
56
|
+
*/
|
|
57
|
+
export declare const isHoverableDevice: () => boolean;
|
|
52
58
|
/**
|
|
53
59
|
* Bekijken of een waarde een object is
|
|
54
60
|
* https://github.com/reduxjs/redux/blob/master/src/utils/isPlainObject.ts
|
|
@@ -57,6 +63,20 @@ export declare const getUrlsFromString: (content: string) => RegExpMatchArray |
|
|
|
57
63
|
* @returns {boolean}
|
|
58
64
|
*/
|
|
59
65
|
export declare const isPlainObject: (value: any) => boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Bepalen of je gebruikt maakt van een touchscreen
|
|
68
|
+
* https://gist.github.com/esedic/39a16a7521d42ae205203e3d40dc19f5
|
|
69
|
+
*
|
|
70
|
+
* @returns {boolean}
|
|
71
|
+
*/
|
|
72
|
+
export declare const isTouchDevice: () => boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Bekijken of een waarde url is
|
|
75
|
+
*
|
|
76
|
+
* @param {any} urlString - Waarde welke je wilt checken of het een url is
|
|
77
|
+
* @returns {boolean}
|
|
78
|
+
*/
|
|
79
|
+
export declare const isValidUrl: (urlString: any) => boolean;
|
|
60
80
|
/**
|
|
61
81
|
* Resize observer; checkt of een HTML element zijn dimensies veranderen
|
|
62
82
|
* en zodra dat gebeurt wordt de callback functie gecalled.
|
package/dist/misc.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
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.capitalize = exports.bytesToSize = void 0;
|
|
3
|
+
exports.wrap = exports.observeResize = exports.isValidUrl = exports.isTouchDevice = exports.isPlainObject = exports.isHoverableDevice = 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
|
|
@@ -81,7 +81,13 @@ var downloadFile = function (data, fileName) {
|
|
|
81
81
|
window.navigator.msSaveOrOpenBlob(new Blob([data]), fileName);
|
|
82
82
|
}
|
|
83
83
|
else {
|
|
84
|
-
var fileURL =
|
|
84
|
+
var fileURL = void 0;
|
|
85
|
+
if ((0, exports.isValidUrl)(data)) {
|
|
86
|
+
fileURL = data;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
fileURL = window.URL.createObjectURL(new Blob([data]));
|
|
90
|
+
}
|
|
85
91
|
var fileLink = document.createElement('a');
|
|
86
92
|
fileLink.href = fileURL;
|
|
87
93
|
fileLink.setAttribute('download', fileName);
|
|
@@ -125,6 +131,15 @@ var getUrlsFromString = function (content) {
|
|
|
125
131
|
return m || null;
|
|
126
132
|
};
|
|
127
133
|
exports.getUrlsFromString = getUrlsFromString;
|
|
134
|
+
/**
|
|
135
|
+
* Bepalen of jouw device hover ondersteunt
|
|
136
|
+
*
|
|
137
|
+
* @returns {boolean}
|
|
138
|
+
*/
|
|
139
|
+
var isHoverableDevice = function () {
|
|
140
|
+
return window.matchMedia('(hover: hover) and (pointer: fine)').matches;
|
|
141
|
+
};
|
|
142
|
+
exports.isHoverableDevice = isHoverableDevice;
|
|
128
143
|
/**
|
|
129
144
|
* Bekijken of een waarde een object is
|
|
130
145
|
* https://github.com/reduxjs/redux/blob/master/src/utils/isPlainObject.ts
|
|
@@ -143,6 +158,54 @@ var isPlainObject = function (value) {
|
|
|
143
158
|
return Object.getPrototypeOf(value) === proto;
|
|
144
159
|
};
|
|
145
160
|
exports.isPlainObject = isPlainObject;
|
|
161
|
+
/**
|
|
162
|
+
* Bepalen of je gebruikt maakt van een touchscreen
|
|
163
|
+
* https://gist.github.com/esedic/39a16a7521d42ae205203e3d40dc19f5
|
|
164
|
+
*
|
|
165
|
+
* @returns {boolean}
|
|
166
|
+
*/
|
|
167
|
+
var isTouchDevice = function () {
|
|
168
|
+
var result = false;
|
|
169
|
+
if (window.PointerEvent && 'maxTouchPoints' in navigator) {
|
|
170
|
+
// if Pointer Events are supported, just check maxTouchPoints
|
|
171
|
+
if (navigator.maxTouchPoints > 0) {
|
|
172
|
+
result = true;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
// no Pointer Events...
|
|
177
|
+
if (window.matchMedia &&
|
|
178
|
+
window.matchMedia('(any-pointer:coarse)').matches) {
|
|
179
|
+
// check for any-pointer:coarse which mostly means touchscreen
|
|
180
|
+
result = true;
|
|
181
|
+
}
|
|
182
|
+
else if (window.TouchEvent || 'ontouchstart' in window) {
|
|
183
|
+
// last resort - check for exposed touch events API / event handler
|
|
184
|
+
result = true;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return result;
|
|
188
|
+
};
|
|
189
|
+
exports.isTouchDevice = isTouchDevice;
|
|
190
|
+
/**
|
|
191
|
+
* Bekijken of een waarde url is
|
|
192
|
+
*
|
|
193
|
+
* @param {any} urlString - Waarde welke je wilt checken of het een url is
|
|
194
|
+
* @returns {boolean}
|
|
195
|
+
*/
|
|
196
|
+
var isValidUrl = function (urlString) {
|
|
197
|
+
if (typeof urlString !== 'string') {
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
var urlPattern = new RegExp('^(https?:\\/\\/)?' + // validate protocol
|
|
201
|
+
'((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + // validate domain name
|
|
202
|
+
'((\\d{1,3}\\.){3}\\d{1,3}))' + // validate OR ip (v4) address
|
|
203
|
+
'(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + // validate port and path
|
|
204
|
+
'(\\?[;&a-z\\d%_.~+=-]*)?' + // validate query string
|
|
205
|
+
'(\\#[-a-z\\d_]*)?$', 'i'); // validate fragment locator
|
|
206
|
+
return !!urlPattern.test(urlString);
|
|
207
|
+
};
|
|
208
|
+
exports.isValidUrl = isValidUrl;
|
|
146
209
|
/**
|
|
147
210
|
* Resize observer; checkt of een HTML element zijn dimensies veranderen
|
|
148
211
|
* en zodra dat gebeurt wordt de callback functie gecalled.
|