@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 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 = window.URL.createObjectURL(new Blob([data]));
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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amimpact/willy-utils",
3
- "version": "1.8.0",
3
+ "version": "1.8.2",
4
4
  "description": "Javascript utils",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",