@uxf/core 4.5.0 → 10.0.0-beta.8
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/Validators/FormValidator.d.ts +7 -7
- package/Validators/FormValidator.js +24 -31
- package/Validators/FormValidator.test.js +8 -9
- package/Validators/Validator.js +6 -7
- package/Validators/Validator.test.js +3 -4
- package/constants/classes.js +0 -1
- package/cookie/index.js +30 -59
- package/hooks/_useSimulatedButton.js +6 -8
- package/hooks/useAnchorProps.js +53 -69
- package/hooks/useBodyScrollLock.js +8 -10
- package/hooks/useButtonProps.js +36 -68
- package/hooks/useClickableProps.js +33 -67
- package/hooks/useFocusReturn.js +10 -13
- package/hooks/useFocusTrap.d.ts +2 -1
- package/hooks/useFocusTrap.js +36 -39
- package/hooks/useInputFocus.js +7 -24
- package/hooks/useIsMounted.js +3 -20
- package/hooks/useIsomorphicLayoutEffect.js +2 -3
- package/hooks/useKey.d.ts +2 -2
- package/hooks/useKey.js +12 -16
- package/hooks/useLatest.d.ts +1 -0
- package/hooks/useLatest.js +2 -3
- package/hooks/useMinWindowWidth.js +9 -27
- package/hooks/useMouseDragToScroll.js +13 -41
- package/hooks/useOnMount.js +2 -3
- package/hooks/useOnUnmount.js +4 -5
- package/hooks/useOnUpdate.js +3 -4
- package/hooks/usePagination.js +4 -5
- package/hooks/usePrevious.d.ts +1 -0
- package/hooks/usePrevious.js +3 -4
- package/hooks/useRafState.js +7 -24
- package/hooks/useTabs.js +20 -38
- package/hooks/useWindowScroll.js +9 -28
- package/hooks/useWindowSize.js +9 -28
- package/index.js +5 -2
- package/next/index.d.ts +2 -2
- package/next/index.js +2 -5
- package/package.json +5 -13
- package/utils/buildArray.d.ts +5 -1
- package/utils/buildArray.js +4 -5
- package/utils/buildArray.test.js +2 -3
- package/utils/camelCaseToDash.js +0 -1
- package/utils/camelCaseToDash.test.js +2 -3
- package/utils/composeRefs.js +11 -18
- package/utils/copy-to-clipboard.js +12 -68
- package/utils/cx.d.ts +2 -2
- package/utils/cx.js +8 -13
- package/utils/file.js +4 -5
- package/utils/forwardRef.d.ts +1 -1
- package/utils/forwardRef.js +3 -4
- package/utils/image.d.ts +3 -3
- package/utils/image.js +37 -38
- package/utils/isBrowser.js +0 -1
- package/utils/isServer.js +1 -2
- package/utils/pagination.d.ts +2 -2
- package/utils/pagination.js +39 -50
- package/utils/pagination.test.js +5 -44
- package/utils/resizer.d.ts +2 -2
- package/utils/resizer.js +19 -28
- package/utils/slugify.js +4 -5
- package/utils/slugify.test.js +2 -3
- package/utils/trimTrailingZeros.js +0 -1
package/utils/pagination.test.js
CHANGED
|
@@ -1,34 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __values = (this && this.__values) || function(o) {
|
|
3
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
4
|
-
if (m) return m.call(o);
|
|
5
|
-
if (o && typeof o.length === "number") return {
|
|
6
|
-
next: function () {
|
|
7
|
-
if (o && i >= o.length) o = void 0;
|
|
8
|
-
return { value: o && o[i++], done: !o };
|
|
9
|
-
}
|
|
10
|
-
};
|
|
11
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
12
|
-
};
|
|
13
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
14
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
15
|
-
if (!m) return o;
|
|
16
|
-
var i = m.call(o), r, ar = [], e;
|
|
17
|
-
try {
|
|
18
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
19
|
-
}
|
|
20
|
-
catch (error) { e = { error: error }; }
|
|
21
|
-
finally {
|
|
22
|
-
try {
|
|
23
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
24
|
-
}
|
|
25
|
-
finally { if (e) throw e.error; }
|
|
26
|
-
}
|
|
27
|
-
return ar;
|
|
28
|
-
};
|
|
29
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
-
|
|
31
|
-
|
|
3
|
+
const pagination_1 = require("./pagination");
|
|
4
|
+
const DATA = [
|
|
32
5
|
[{ page: 1, count: 10 }, "previous 1 2 3 4 5 end-ellipsis 10 next"],
|
|
33
6
|
[{ page: 2, count: 10 }, "previous 1 2 3 4 5 end-ellipsis 10 next"],
|
|
34
7
|
[{ page: 3, count: 10 }, "previous 1 2 3 4 5 end-ellipsis 10 next"],
|
|
@@ -40,20 +13,8 @@ var DATA = [
|
|
|
40
13
|
[{ page: 9, count: 10 }, "previous 1 start-ellipsis 6 7 8 9 10 next"],
|
|
41
14
|
[{ page: 10, count: 10 }, "previous 1 start-ellipsis 6 7 8 9 10 next"],
|
|
42
15
|
];
|
|
43
|
-
test("Pagination",
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
for (var DATA_1 = __values(DATA), DATA_1_1 = DATA_1.next(); !DATA_1_1.done; DATA_1_1 = DATA_1.next()) {
|
|
47
|
-
var _b = __read(DATA_1_1.value, 2), config = _b[0], expected = _b[1];
|
|
48
|
-
expect((0, pagination_1.paginationGenerate)(config).join(" ")).toBe(expected);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
52
|
-
finally {
|
|
53
|
-
try {
|
|
54
|
-
if (DATA_1_1 && !DATA_1_1.done && (_a = DATA_1.return)) _a.call(DATA_1);
|
|
55
|
-
}
|
|
56
|
-
finally { if (e_1) throw e_1.error; }
|
|
16
|
+
test("Pagination", () => {
|
|
17
|
+
for (const [config, expected] of DATA) {
|
|
18
|
+
expect((0, pagination_1.paginationGenerate)(config).join(" ")).toBe(expected);
|
|
57
19
|
}
|
|
58
20
|
});
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3BhZ2luYXRpb24udGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUFvRTtBQUVwRSxJQUFNLElBQUksR0FBc0M7SUFDNUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLHlDQUF5QyxDQUFDO0lBQ25FLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSx5Q0FBeUMsQ0FBQztJQUNuRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUseUNBQXlDLENBQUM7SUFDbkUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLHlDQUF5QyxDQUFDO0lBQ25FLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxzREFBc0QsQ0FBQztJQUNoRixDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsc0RBQXNELENBQUM7SUFDaEYsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLDJDQUEyQyxDQUFDO0lBQ3JFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSwyQ0FBMkMsQ0FBQztJQUNyRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsMkNBQTJDLENBQUM7SUFDckUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLDJDQUEyQyxDQUFDO0NBQ3pFLENBQUM7QUFFRixJQUFJLENBQUMsWUFBWSxFQUFFOzs7UUFDZixLQUFpQyxJQUFBLFNBQUEsU0FBQSxJQUFJLENBQUEsMEJBQUEsNENBQUU7WUFBNUIsSUFBQSxLQUFBLHlCQUFrQixFQUFqQixNQUFNLFFBQUEsRUFBRSxRQUFRLFFBQUE7WUFDeEIsTUFBTSxDQUFDLElBQUEsK0JBQWtCLEVBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQy9EOzs7Ozs7Ozs7QUFDTCxDQUFDLENBQUMsQ0FBQyJ9
|
package/utils/resizer.d.ts
CHANGED
|
@@ -5,13 +5,13 @@ export interface ImageResponse {
|
|
|
5
5
|
width?: number;
|
|
6
6
|
height?: number;
|
|
7
7
|
}
|
|
8
|
-
export
|
|
8
|
+
export type StaticImageData = {
|
|
9
9
|
src: string;
|
|
10
10
|
height: number;
|
|
11
11
|
width: number;
|
|
12
12
|
blurDataURL?: string;
|
|
13
13
|
};
|
|
14
|
-
export
|
|
14
|
+
export type ImageSource = ImageResponse | StaticImageData | string;
|
|
15
15
|
declare const fitMapper: {
|
|
16
16
|
cover: string;
|
|
17
17
|
fill: string;
|
package/utils/resizer.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.resizerGetDefaultConfig = exports.resizerImageUrl = void 0;
|
|
4
|
-
|
|
4
|
+
const fitMapper = {
|
|
5
5
|
cover: "cv",
|
|
6
6
|
fill: "f",
|
|
7
7
|
contain: "cn",
|
|
8
8
|
inside: "in",
|
|
9
9
|
outside: "out",
|
|
10
10
|
};
|
|
11
|
-
|
|
11
|
+
const positionMapper = {
|
|
12
12
|
attention: "a",
|
|
13
13
|
bottom: "b",
|
|
14
14
|
centre: "c",
|
|
@@ -22,24 +22,20 @@ var positionMapper = {
|
|
|
22
22
|
"right-top": "rt",
|
|
23
23
|
top: "t",
|
|
24
24
|
};
|
|
25
|
-
|
|
25
|
+
const backgroundMapper = {
|
|
26
26
|
transparent: "t",
|
|
27
27
|
};
|
|
28
|
-
|
|
28
|
+
const trimMapper = {
|
|
29
29
|
"not-trim": "nt",
|
|
30
30
|
};
|
|
31
|
-
|
|
31
|
+
const resizerStaticImageUrl = (src, width = "auto", height = "auto", props = {}, version = 1) => {
|
|
32
32
|
var _a;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
var dotIndex = filepath.lastIndexOf(".");
|
|
40
|
-
var filename = filepath.slice(0, dotIndex);
|
|
41
|
-
var extension = filepath.slice(dotIndex + 1);
|
|
42
|
-
var directory = [
|
|
33
|
+
const { fit = "cover", position = "center", toFormat = undefined, trim = "not-trim", background = "FFF" } = props;
|
|
34
|
+
const filepath = typeof src === "string" ? src : src.src;
|
|
35
|
+
const dotIndex = filepath.lastIndexOf(".");
|
|
36
|
+
const filename = filepath.slice(0, dotIndex);
|
|
37
|
+
const extension = filepath.slice(dotIndex + 1);
|
|
38
|
+
const directory = [
|
|
43
39
|
width === "auto" ? "x" : width,
|
|
44
40
|
height === "auto" ? "x" : height,
|
|
45
41
|
fitMapper[fit],
|
|
@@ -48,22 +44,18 @@ var resizerStaticImageUrl = function (src, width, height, props, version) {
|
|
|
48
44
|
trim === "not-trim" ? trimMapper[trim] : trim,
|
|
49
45
|
(_a = props.quality) !== null && _a !== void 0 ? _a : "x",
|
|
50
46
|
].join("_");
|
|
51
|
-
return
|
|
47
|
+
return `/generated/static/${directory}/${version}${filename}.${extension}.${toFormat !== null && toFormat !== void 0 ? toFormat : extension}`;
|
|
52
48
|
};
|
|
53
|
-
|
|
49
|
+
const resizerImageUrl = (source, width = "auto", height = "auto", props = {}, version = 1) => {
|
|
54
50
|
var _a, _b;
|
|
55
|
-
if (width === void 0) { width = "auto"; }
|
|
56
|
-
if (height === void 0) { height = "auto"; }
|
|
57
|
-
if (props === void 0) { props = {}; }
|
|
58
|
-
if (version === void 0) { version = 1; }
|
|
59
51
|
if (source === null || source === undefined) {
|
|
60
52
|
return undefined;
|
|
61
53
|
}
|
|
62
54
|
if (typeof source === "string" || "src" in source) {
|
|
63
55
|
return resizerStaticImageUrl(source, width, height, props, version);
|
|
64
56
|
}
|
|
65
|
-
|
|
66
|
-
|
|
57
|
+
const { fit = "cover", position = "center", toFormat = (_a = props.toFormat) !== null && _a !== void 0 ? _a : source.extension, trim = "not-trim", background = "FFF", } = props;
|
|
58
|
+
const filename = [
|
|
67
59
|
source.uuid,
|
|
68
60
|
width === "auto" ? "x" : width,
|
|
69
61
|
height === "auto" ? "x" : height,
|
|
@@ -72,22 +64,21 @@ var resizerImageUrl = function (source, width, height, props, version) {
|
|
|
72
64
|
background === "transparent" ? backgroundMapper[background] : background,
|
|
73
65
|
trim === "not-trim" ? trimMapper[trim] : trim,
|
|
74
66
|
(_b = props.quality) !== null && _b !== void 0 ? _b : "x",
|
|
75
|
-
|
|
67
|
+
`${source.extension}.${toFormat}`,
|
|
76
68
|
].join("_");
|
|
77
|
-
return
|
|
69
|
+
return `/generated/${source.namespace}/${source.uuid.charAt(0)}/${source.uuid.charAt(1)}/${filename}`;
|
|
78
70
|
};
|
|
79
71
|
exports.resizerImageUrl = resizerImageUrl;
|
|
80
72
|
function resizerGetDefaultConfig(generatedFilesUrl, staticFilesUrl) {
|
|
81
73
|
return [
|
|
82
74
|
{
|
|
83
75
|
route: "/generated/static/:width(\\d+|x)_:height(\\d+|x)_:fit([a-z]+)_:position([a-z]+)_:background([a-z]+)_:trim([a-z]+)_:quality(\\d+|x)/:version/:filename(*).:extension.:toFormat",
|
|
84
|
-
source:
|
|
76
|
+
source: `${generatedFilesUrl}/:filename+.:extension`,
|
|
85
77
|
},
|
|
86
78
|
{
|
|
87
79
|
route: "/generated/:namespace/:p1/:p2/:filename([a-f0-9\\-]+)_:width(\\d+|x)_:height(\\d+|x)_:fit([a-z]+)_:position([a-z]+)_:background([a-z]+)_:trim([a-z]+)_:quality(\\d+|x)_:extension.:toFormat",
|
|
88
|
-
source:
|
|
80
|
+
source: `${staticFilesUrl}/upload/:namespace/:p1/:p2/:filename.:extension`,
|
|
89
81
|
},
|
|
90
82
|
];
|
|
91
83
|
}
|
|
92
84
|
exports.resizerGetDefaultConfig = resizerGetDefaultConfig;
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9yZXNpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWlCQSxJQUFNLFNBQVMsR0FBRztJQUNkLEtBQUssRUFBRSxJQUFJO0lBQ1gsSUFBSSxFQUFFLEdBQUc7SUFDVCxPQUFPLEVBQUUsSUFBSTtJQUNiLE1BQU0sRUFBRSxJQUFJO0lBQ1osT0FBTyxFQUFFLEtBQUs7Q0FDakIsQ0FBQztBQUVGLElBQU0sY0FBYyxHQUFHO0lBQ25CLFNBQVMsRUFBRSxHQUFHO0lBQ2QsTUFBTSxFQUFFLEdBQUc7SUFDWCxNQUFNLEVBQUUsR0FBRztJQUNYLE1BQU0sRUFBRSxHQUFHO0lBQ1gsT0FBTyxFQUFFLEdBQUc7SUFDWixJQUFJLEVBQUUsR0FBRztJQUNULGFBQWEsRUFBRSxJQUFJO0lBQ25CLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLEtBQUssRUFBRSxHQUFHO0lBQ1YsY0FBYyxFQUFFLElBQUk7SUFDcEIsV0FBVyxFQUFFLElBQUk7SUFDakIsR0FBRyxFQUFFLEdBQUc7Q0FDWCxDQUFDO0FBRUYsSUFBTSxnQkFBZ0IsR0FBRztJQUNyQixXQUFXLEVBQUUsR0FBRztDQUNuQixDQUFDO0FBRUYsSUFBTSxVQUFVLEdBQUc7SUFDZixVQUFVLEVBQUUsSUFBSTtDQUNuQixDQUFDO0FBV0YsSUFBTSxxQkFBcUIsR0FBRyxVQUMxQixHQUE2QixFQUM3QixLQUErQixFQUMvQixNQUFnQyxFQUNoQyxLQUE2QixFQUM3QixPQUFXOztJQUhYLHNCQUFBLEVBQUEsY0FBK0I7SUFDL0IsdUJBQUEsRUFBQSxlQUFnQztJQUNoQyxzQkFBQSxFQUFBLFVBQTZCO0lBQzdCLHdCQUFBLEVBQUEsV0FBVztJQUVILElBQUEsS0FBb0csS0FBSyxJQUE1RixFQUFiLEdBQUcsbUJBQUcsT0FBTyxLQUFBLEVBQUUsS0FBcUYsS0FBSyxTQUF2RSxFQUFuQixRQUFRLG1CQUFHLFFBQVEsS0FBQSxFQUFFLEtBQWdFLEtBQUssU0FBakQsRUFBcEIsUUFBUSxtQkFBRyxTQUFTLEtBQUEsRUFBRSxLQUEwQyxLQUFLLEtBQTlCLEVBQWpCLElBQUksbUJBQUcsVUFBVSxLQUFBLEVBQUUsS0FBdUIsS0FBSyxXQUFWLEVBQWxCLFVBQVUsbUJBQUcsS0FBSyxLQUFBLENBQVc7SUFFbEgsSUFBTSxRQUFRLEdBQUcsT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7SUFDekQsSUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQyxJQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM3QyxJQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUUvQyxJQUFNLFNBQVMsR0FBRztRQUNkLEtBQUssS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSztRQUM5QixNQUFNLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU07UUFDaEMsU0FBUyxDQUFDLEdBQUcsQ0FBQztRQUNkLGNBQWMsQ0FBQyxRQUFRLENBQUM7UUFDeEIsVUFBVSxLQUFLLGFBQWEsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVU7UUFDeEUsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQzdDLE1BQUEsS0FBSyxDQUFDLE9BQU8sbUNBQUksR0FBRztLQUN2QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVaLE9BQU8sNEJBQXFCLFNBQVMsY0FBSSxPQUFPLFNBQUcsUUFBUSxjQUFJLFNBQVMsY0FBSSxRQUFRLGFBQVIsUUFBUSxjQUFSLFFBQVEsR0FBSSxTQUFTLENBQUUsQ0FBQztBQUN4RyxDQUFDLENBQUM7QUFFSyxJQUFNLGVBQWUsR0FBRyxVQUMzQixNQUFzQyxFQUN0QyxLQUErQixFQUMvQixNQUFnQyxFQUNoQyxLQUE2QixFQUM3QixPQUFXOztJQUhYLHNCQUFBLEVBQUEsY0FBK0I7SUFDL0IsdUJBQUEsRUFBQSxlQUFnQztJQUNoQyxzQkFBQSxFQUFBLFVBQTZCO0lBQzdCLHdCQUFBLEVBQUEsV0FBVztJQUVYLElBQUksTUFBTSxLQUFLLElBQUksSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO1FBQ3pDLE9BQU8sU0FBUyxDQUFDO0tBQ3BCO0lBRUQsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksS0FBSyxJQUFJLE1BQU0sRUFBRTtRQUMvQyxPQUFPLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztLQUN2RTtJQUdHLElBQUEsS0FLQSxLQUFLLElBTFEsRUFBYixHQUFHLG1CQUFHLE9BQU8sS0FBQSxFQUNiLEtBSUEsS0FBSyxTQUpjLEVBQW5CLFFBQVEsbUJBQUcsUUFBUSxLQUFBLEVBQ25CLEtBR0EsS0FBSyxTQUh3QyxFQUE3QyxRQUFRLG1CQUFHLE1BQUEsS0FBSyxDQUFDLFFBQVEsbUNBQUksTUFBTSxDQUFDLFNBQVMsS0FBQSxFQUM3QyxLQUVBLEtBQUssS0FGWSxFQUFqQixJQUFJLG1CQUFHLFVBQVUsS0FBQSxFQUNqQixLQUNBLEtBQUssV0FEYSxFQUFsQixVQUFVLG1CQUFHLEtBQUssS0FBQSxDQUNaO0lBRVYsSUFBTSxRQUFRLEdBQUc7UUFDYixNQUFNLENBQUMsSUFBSTtRQUNYLEtBQUssS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSztRQUM5QixNQUFNLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU07UUFDaEMsU0FBUyxDQUFDLEdBQUcsQ0FBQztRQUNkLGNBQWMsQ0FBQyxRQUFRLENBQUM7UUFDeEIsVUFBVSxLQUFLLGFBQWEsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVU7UUFDeEUsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQzdDLE1BQUEsS0FBSyxDQUFDLE9BQU8sbUNBQUksR0FBRztRQUNwQixVQUFHLE1BQU0sQ0FBQyxTQUFTLGNBQUksUUFBUSxDQUFFO0tBQ3BDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRVosT0FBTyxxQkFBYyxNQUFNLENBQUMsU0FBUyxjQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxjQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxjQUFJLFFBQVEsQ0FBRSxDQUFDO0FBQzFHLENBQUMsQ0FBQztBQXBDVyxRQUFBLGVBQWUsbUJBb0MxQjtBQUVGLFNBQWdCLHVCQUF1QixDQUFDLGlCQUF5QixFQUFFLGNBQXNCO0lBQ3JGLE9BQU87UUFDSDtZQUNJLEtBQUssRUFBRSwrS0FBK0s7WUFDdEwsTUFBTSxFQUFFLFVBQUcsaUJBQWlCLDJCQUF3QjtTQUN2RDtRQUNEO1lBQ0ksS0FBSyxFQUFFLDZMQUE2TDtZQUNwTSxNQUFNLEVBQUUsVUFBRyxjQUFjLG9EQUFpRDtTQUM3RTtLQUNKLENBQUM7QUFDTixDQUFDO0FBWEQsMERBV0MifQ==
|
package/utils/slugify.js
CHANGED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.slugify = void 0;
|
|
4
4
|
function slugify(content) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
const a = "àáäâãåăæąçćčđďèéěėëêęǵḧìíïîįłḿǹńňñòóöôœøṕŕřßśšșťțùúüûǘůűūųẃẍÿýźžż·/_,:;";
|
|
6
|
+
const b = "aaaaaaaaacccddeeeeeeeghiiiiilmnnnnooooooprrssssttuuuuuuuuuwxyyzzz------";
|
|
7
|
+
const p = new RegExp(a.split("").join("|"), "g");
|
|
8
8
|
return content
|
|
9
9
|
.toString()
|
|
10
10
|
.toLowerCase()
|
|
11
11
|
.replace(/\s+/g, "-") // Replace spaces with -
|
|
12
|
-
.replace(p,
|
|
12
|
+
.replace(p, (c) => b.charAt(a.indexOf(c))) // Replace special characters
|
|
13
13
|
.replace(/&/g, "-and-") // Replace & with 'and'
|
|
14
14
|
.replace(/[^\w-]+/g, "") // Remove all non-word characters
|
|
15
15
|
.replace(/--+/g, "-") // Replace multiple - with single -
|
|
@@ -17,4 +17,3 @@ function slugify(content) {
|
|
|
17
17
|
.replace(/-+$/, ""); // Trim - from end of text
|
|
18
18
|
}
|
|
19
19
|
exports.slugify = slugify;
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2x1Z2lmeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9zbHVnaWZ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQWdCLE9BQU8sQ0FBQyxPQUFlO0lBQ25DLElBQU0sQ0FBQyxHQUFHLHlFQUF5RSxDQUFDO0lBQ3BGLElBQU0sQ0FBQyxHQUFHLHlFQUF5RSxDQUFDO0lBQ3BGLElBQU0sQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRWpELE9BQU8sT0FBTztTQUNULFFBQVEsRUFBRTtTQUNWLFdBQVcsRUFBRTtTQUNiLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsd0JBQXdCO1NBQzdDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBdEIsQ0FBc0IsQ0FBQyxDQUFDLDZCQUE2QjtTQUNyRSxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLHVCQUF1QjtTQUM5QyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGlDQUFpQztTQUN6RCxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLG1DQUFtQztTQUN4RCxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLDRCQUE0QjtTQUMvQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsMEJBQTBCO0FBQ3ZELENBQUM7QUFmRCwwQkFlQyJ9
|
package/utils/slugify.test.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
test("slugify",
|
|
3
|
+
const slugify_1 = require("./slugify");
|
|
4
|
+
test("slugify", () => {
|
|
5
5
|
expect((0, slugify_1.slugify)("Nějaký název")).toBe("nejaky-nazev");
|
|
6
6
|
expect((0, slugify_1.slugify)("8 hrozných")).toBe("8-hroznych");
|
|
7
7
|
expect((0, slugify_1.slugify)("Osm hrozných")).toBe("osm-hroznych");
|
|
8
8
|
});
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2x1Z2lmeS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3NsdWdpZnkudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFDQUFvQztBQUVwQyxJQUFJLENBQUMsU0FBUyxFQUFFO0lBQ2QsTUFBTSxDQUFDLElBQUEsaUJBQU8sRUFBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNyRCxNQUFNLENBQUMsSUFBQSxpQkFBTyxFQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELE1BQU0sQ0FBQyxJQUFBLGlCQUFPLEVBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDdkQsQ0FBQyxDQUFDLENBQUMifQ==
|
|
@@ -5,4 +5,3 @@ function trimTrailingZeros(value) {
|
|
|
5
5
|
return value.replace(/\.?0+$/, "");
|
|
6
6
|
}
|
|
7
7
|
exports.trimTrailingZeros = trimTrailingZeros;
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpbVRyYWlsaW5nWmVyb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdHJpbVRyYWlsaW5nWmVyb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBZ0IsaUJBQWlCLENBQUMsS0FBYTtJQUMzQyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFGRCw4Q0FFQyJ9
|