@amimpact/willy-utils 1.8.3 → 1.8.5

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
@@ -3,5 +3,5 @@ import { formatCraftDate, formatDateFromNow, formatNewDate, formatUTCDate, parse
3
3
  import { convertObjectToFormData } from './form';
4
4
  import { bytesToSize, capitalize, checkForScrollbars, convertHexToRGBA, downloadFile, getNestedSet, getUrlsFromString, isHoverableDevice, isPlainObject, isTouchDevice, isValidUrl, observeResize, wrap } from './misc';
5
5
  import { $, $$, getParents } from './selectors';
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, isValidUrl, observeResize, parseISODuration, readCookie, wrap, };
6
+ import { isCraftActionUrl, isInternalLink, isExternalUrl, isAsset, slugify } 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, isValidUrl, observeResize, parseISODuration, readCookie, slugify, 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.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;
3
+ exports.wrap = exports.slugify = 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; } });
@@ -36,3 +36,4 @@ Object.defineProperty(exports, "isCraftActionUrl", { enumerable: true, get: func
36
36
  Object.defineProperty(exports, "isInternalLink", { enumerable: true, get: function () { return url_1.isInternalLink; } });
37
37
  Object.defineProperty(exports, "isExternalUrl", { enumerable: true, get: function () { return url_1.isExternalUrl; } });
38
38
  Object.defineProperty(exports, "isAsset", { enumerable: true, get: function () { return url_1.isAsset; } });
39
+ Object.defineProperty(exports, "slugify", { enumerable: true, get: function () { return url_1.slugify; } });
package/dist/url.d.ts CHANGED
@@ -14,12 +14,11 @@ export declare const isExternalUrl: (url: string) => boolean;
14
14
  * Bepalen of het om een craft action url gaat
15
15
  */
16
16
  export declare const isCraftActionUrl: (url: string) => boolean;
17
- /**
18
- * Checken of het om een tel of mailto link gaat
19
- * (kan niet met bovenstaande omdat je bij tel of mailto bijvoorbeeld geen target blank wilt gebruiken)
20
- */
21
- export declare const isPhoneOrEmailLink: (url: string) => boolean;
22
17
  /**
23
18
  * Checken of url een bestand is, om deze ook in een nieuw venster te openen
24
19
  */
25
20
  export declare const isAsset: (url: string) => boolean;
21
+ /**
22
+ * Maak een slug van een string
23
+ */
24
+ export declare const slugify: (str: string) => string;
package/dist/url.js CHANGED
@@ -9,7 +9,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
9
9
  return to.concat(ar || Array.prototype.slice.call(from));
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.isAsset = exports.isPhoneOrEmailLink = exports.isCraftActionUrl = exports.isExternalUrl = exports.isInternalLink = void 0;
12
+ exports.slugify = exports.isAsset = exports.isCraftActionUrl = exports.isExternalUrl = exports.isInternalLink = void 0;
13
13
  /**
14
14
  * Bepalen of een link een intern is, zodat bij Vue apps bijv een router-link gemaakt kan worden
15
15
  * https://dennisreimann.de/articles/delegating-html-links-to-vue-router.html
@@ -35,7 +35,7 @@ var isInternalLink = function (url, ev) {
35
35
  return false;
36
36
  }
37
37
  }
38
- return !(0, exports.isExternalUrl)(url) && !(0, exports.isPhoneOrEmailLink)(url) && !(0, exports.isAsset)(url);
38
+ return (!(0, exports.isExternalUrl)(url) && !isDifferentProtocolLink(url) && !(0, exports.isAsset)(url));
39
39
  };
40
40
  exports.isInternalLink = isInternalLink;
41
41
  /**
@@ -66,16 +66,16 @@ var isCraftActionUrl = function (url) {
66
66
  };
67
67
  exports.isCraftActionUrl = isCraftActionUrl;
68
68
  /**
69
- * Checken of het om een tel of mailto link gaat
69
+ * Checken of het om een ander protocol gaat bijv. tel of mailto
70
70
  * (kan niet met bovenstaande omdat je bij tel of mailto bijvoorbeeld geen target blank wilt gebruiken)
71
71
  */
72
- var isPhoneOrEmailLink = function (url) {
72
+ var isDifferentProtocolLink = function (url) {
73
73
  if (!url) {
74
74
  return false;
75
75
  }
76
- return url.startsWith('mailto:') || url.startsWith('tel:');
76
+ var DEFAULT_PROTOCOLS = ['mailto', 'tel', 'rdp'];
77
+ return DEFAULT_PROTOCOLS.findIndex(function (p) { return url.startsWith("".concat(p, ":")); }) > -1;
77
78
  };
78
- exports.isPhoneOrEmailLink = isPhoneOrEmailLink;
79
79
  /**
80
80
  * Checken of url een bestand is, om deze ook in een nieuw venster te openen
81
81
  */
@@ -120,3 +120,15 @@ var isAsset = function (url) {
120
120
  return false;
121
121
  };
122
122
  exports.isAsset = isAsset;
123
+ /**
124
+ * Maak een slug van een string
125
+ */
126
+ var slugify = function (str) {
127
+ return str
128
+ .toLowerCase()
129
+ .trim()
130
+ .replace(/[^\w\s-]/g, '')
131
+ .replace(/[\s_-]+/g, '-')
132
+ .replace(/^-+|-+$/g, '');
133
+ };
134
+ exports.slugify = slugify;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amimpact/willy-utils",
3
- "version": "1.8.3",
3
+ "version": "1.8.5",
4
4
  "description": "Javascript utils",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",