@amimpact/willy-utils 1.8.1 → 1.8.3

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/form.js CHANGED
@@ -45,20 +45,25 @@ var convertObjectToFormData = function (data, form, namespace) {
45
45
  // Array
46
46
  }
47
47
  else if (model[propertyName] instanceof Array) {
48
- model[propertyName].forEach(function (element, index) {
49
- var tempFormKey = "".concat(formKey, "[").concat(index, "]");
50
- if (element instanceof File) {
51
- formData.append(tempFormKey, element);
52
- }
53
- else {
54
- if (typeof element === 'object') {
55
- (0, exports.convertObjectToFormData)(element, formData, tempFormKey);
48
+ if (model[propertyName].length === 0) {
49
+ formData.append(formKey, '');
50
+ }
51
+ else {
52
+ model[propertyName].forEach(function (element, index) {
53
+ var tempFormKey = "".concat(formKey, "[").concat(index, "]");
54
+ if (element instanceof File) {
55
+ formData.append(tempFormKey, element);
56
56
  }
57
57
  else {
58
- formData.append(tempFormKey, element.toString());
58
+ if (typeof element === 'object') {
59
+ (0, exports.convertObjectToFormData)(element, formData, tempFormKey);
60
+ }
61
+ else {
62
+ formData.append(tempFormKey, element.toString());
63
+ }
59
64
  }
60
- }
61
- });
65
+ });
66
+ }
62
67
  // Object en geen File
63
68
  }
64
69
  else if (typeof model[propertyName] === 'object' &&
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, isHoverableDevice, isPlainObject, isTouchDevice, 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, isHoverableDevice, isInternalLink, isPlainObject, isTouchDevice, 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.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;
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; } });
@@ -24,6 +24,7 @@ Object.defineProperty(exports, "getUrlsFromString", { enumerable: true, get: fun
24
24
  Object.defineProperty(exports, "isHoverableDevice", { enumerable: true, get: function () { return misc_1.isHoverableDevice; } });
25
25
  Object.defineProperty(exports, "isPlainObject", { enumerable: true, get: function () { return misc_1.isPlainObject; } });
26
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; } });
27
28
  Object.defineProperty(exports, "observeResize", { enumerable: true, get: function () { return misc_1.observeResize; } });
28
29
  Object.defineProperty(exports, "wrap", { enumerable: true, get: function () { return misc_1.wrap; } });
29
30
  var selectors_1 = require("./selectors");
package/dist/misc.d.ts CHANGED
@@ -70,6 +70,13 @@ export declare const isPlainObject: (value: any) => boolean;
70
70
  * @returns {boolean}
71
71
  */
72
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;
73
80
  /**
74
81
  * Resize observer; checkt of een HTML element zijn dimensies veranderen
75
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.isTouchDevice = exports.isPlainObject = exports.isHoverableDevice = 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);
@@ -181,6 +187,25 @@ var isTouchDevice = function () {
181
187
  return result;
182
188
  };
183
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;
184
209
  /**
185
210
  * Resize observer; checkt of een HTML element zijn dimensies veranderen
186
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.1",
3
+ "version": "1.8.3",
4
4
  "description": "Javascript utils",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",