@cimo/jsmvcfw 1.1.8 → 1.1.10
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/README.md +2 -2
- package/dist/eslint.customRule.d.ts +20 -0
- package/dist/eslint.customRule.js +37 -0
- package/dist/eslint.customRule.js.map +1 -0
- package/dist/src/JsMvcFw.d.ts +13 -0
- package/dist/src/JsMvcFw.js +275 -0
- package/dist/src/JsMvcFw.js.map +1 -0
- package/dist/src/JsMvcFwDom.d.ts +3 -0
- package/dist/src/JsMvcFwDom.js +149 -0
- package/dist/src/JsMvcFwDom.js.map +1 -0
- package/dist/src/JsMvcFwEmitter.d.ts +6 -0
- package/dist/src/JsMvcFwEmitter.js +39 -0
- package/dist/src/JsMvcFwEmitter.js.map +1 -0
- package/dist/src/JsMvcFwForm.d.ts +1 -0
- package/dist/src/JsMvcFwForm.js +6 -0
- package/dist/src/JsMvcFwForm.js.map +1 -0
- package/dist/src/JsMvcFwInterface.d.ts +38 -0
- package/dist/{JsMvcFwInterface.js.map → src/JsMvcFwInterface.js.map} +1 -1
- package/dist/src/JsMvcFwJsx.d.ts +2 -0
- package/dist/src/JsMvcFwJsx.js +78 -0
- package/dist/src/JsMvcFwJsx.js.map +1 -0
- package/dist/src/JsMvcFwRouter.d.ts +3 -0
- package/dist/src/JsMvcFwRouter.js +107 -0
- package/dist/src/JsMvcFwRouter.js.map +1 -0
- package/dist/src/JsMvcFwStorage.d.ts +1 -0
- package/dist/src/JsMvcFwStorage.js +6 -0
- package/dist/src/JsMvcFwStorage.js.map +1 -0
- package/dist/src/Main.d.ts +8 -0
- package/dist/{Main.js → src/Main.js} +6 -2
- package/dist/src/Main.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/tsconfig.tsc.tsbuildinfo +1 -0
- package/package.json +9 -7
- package/dist/JsMvcFw.d.ts +0 -16
- package/dist/JsMvcFw.js +0 -117
- package/dist/JsMvcFw.js.map +0 -1
- package/dist/JsMvcFwDom.d.ts +0 -2
- package/dist/JsMvcFwDom.js +0 -30
- package/dist/JsMvcFwDom.js.map +0 -1
- package/dist/JsMvcFwInterface.d.ts +0 -18
- package/dist/JsMvcFwRouter.d.ts +0 -3
- package/dist/JsMvcFwRouter.js +0 -126
- package/dist/JsMvcFwRouter.js.map +0 -1
- package/dist/Main.d.ts +0 -4
- package/dist/Main.js.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
- /package/dist/{JsMvcFwInterface.js → src/JsMvcFwInterface.js} +0 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jsxFactory = void 0;
|
|
4
|
+
const stackErrorDetail = () => {
|
|
5
|
+
const stack = new Error().stack;
|
|
6
|
+
if (!stack) {
|
|
7
|
+
return "unknown";
|
|
8
|
+
}
|
|
9
|
+
const stackSplit = stack.split("\n");
|
|
10
|
+
const callerLine = stackSplit[2].trim() || "unknown";
|
|
11
|
+
return callerLine.charAt(0).toUpperCase() + callerLine.slice(1).toLowerCase();
|
|
12
|
+
};
|
|
13
|
+
const checkDynamicElement = (childrenListValue) => {
|
|
14
|
+
let isDynamic = false;
|
|
15
|
+
for (let a = 0; a < childrenListValue.length; a++) {
|
|
16
|
+
if (Array.isArray(childrenListValue[a])) {
|
|
17
|
+
isDynamic = true;
|
|
18
|
+
break;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
if (isDynamic) {
|
|
22
|
+
const tagObject = {};
|
|
23
|
+
for (let a = 0; a < childrenListValue.length; a++) {
|
|
24
|
+
const childEntry = childrenListValue[a];
|
|
25
|
+
const isFromArray = Array.isArray(childEntry);
|
|
26
|
+
const childrenList = isFromArray ? childEntry : [childEntry];
|
|
27
|
+
for (const children of childrenList) {
|
|
28
|
+
const node = typeof children === "number" ? String(children) : children;
|
|
29
|
+
if (typeof node === "object" && "tag" in node) {
|
|
30
|
+
if (!tagObject[node.tag]) {
|
|
31
|
+
tagObject[node.tag] = [];
|
|
32
|
+
}
|
|
33
|
+
tagObject[node.tag].push({ node, isFromArray });
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const errorDetail = stackErrorDetail();
|
|
38
|
+
for (const tag in tagObject) {
|
|
39
|
+
const group = tagObject[tag];
|
|
40
|
+
const keyMissingList = group.filter(({ node }) => node.key === undefined);
|
|
41
|
+
const isAllFromArray = group.every(({ isFromArray }) => isFromArray);
|
|
42
|
+
if (group.length > 1 && keyMissingList.length > 0 && isAllFromArray) {
|
|
43
|
+
throw new Error(`@cimo/jsmvcfw - JsMvcFwJsx.ts - checkDynamicElement() => ${errorDetail}, multiple <${tag}> elements missing key tag!`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
const jsxFactory = (tag, propertyObjectValue = {}, ...childrenListValue) => {
|
|
49
|
+
const childrenList = [];
|
|
50
|
+
for (let a = 0; a < childrenListValue.length; a++) {
|
|
51
|
+
const child = childrenListValue[a];
|
|
52
|
+
if (child == null) {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (Array.isArray(child)) {
|
|
56
|
+
for (let b = 0; b < child.length; b++) {
|
|
57
|
+
const childNested = child[b];
|
|
58
|
+
if (childNested == null) {
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
childrenList.push(typeof childNested === "number" ? String(childNested) : childNested);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
childrenList.push(typeof child === "number" ? String(child) : child);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
checkDynamicElement(childrenListValue);
|
|
69
|
+
const { key, ...propertyObject } = propertyObjectValue || {};
|
|
70
|
+
return {
|
|
71
|
+
tag,
|
|
72
|
+
propertyObject,
|
|
73
|
+
childrenList,
|
|
74
|
+
key: key !== undefined ? String(key) : undefined
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
exports.jsxFactory = jsxFactory;
|
|
78
|
+
//# sourceMappingURL=JsMvcFwJsx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsMvcFwJsx.js","sourceRoot":"","sources":["../../src/JsMvcFwJsx.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.navigateTo = exports.routerInit = void 0;
|
|
4
|
+
const JsMvcFw_1 = require("./JsMvcFw");
|
|
5
|
+
let routerList = [];
|
|
6
|
+
let controller;
|
|
7
|
+
const historyPush = (nextUrl, soft, title = "", parameterObjectValue) => {
|
|
8
|
+
let url = nextUrl;
|
|
9
|
+
if (nextUrl.charAt(0) === "/") {
|
|
10
|
+
url = nextUrl.slice(1);
|
|
11
|
+
}
|
|
12
|
+
const [path, queryString] = url.split("?");
|
|
13
|
+
const queryStringCleanedList = [];
|
|
14
|
+
if (queryString) {
|
|
15
|
+
const queryStringList = queryString.split("&");
|
|
16
|
+
for (let a = 0; a < queryStringList.length; a++) {
|
|
17
|
+
const param = queryStringList[a];
|
|
18
|
+
const [key, value] = param.split("=");
|
|
19
|
+
const keyCleaned = encodeURIComponent(decodeURIComponent(key.replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'")));
|
|
20
|
+
if (value) {
|
|
21
|
+
const valueCleaned = encodeURIComponent(decodeURIComponent(value.replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'")));
|
|
22
|
+
queryStringCleanedList.push(`${keyCleaned}=${valueCleaned}`);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
queryStringCleanedList.push(keyCleaned);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const pathCleaned = path.replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
30
|
+
const urlCleaned = pathCleaned + (queryStringCleanedList.length > 0 ? "?" + queryStringCleanedList.join("&") : "");
|
|
31
|
+
window.history.pushState({
|
|
32
|
+
previousUrl: window.location.pathname,
|
|
33
|
+
parameterObject: parameterObjectValue
|
|
34
|
+
}, title, urlCleaned);
|
|
35
|
+
if (!soft) {
|
|
36
|
+
window.location.href = urlCleaned;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
const populatePage = (isHistoryPushEnabled, nextUrl, isSoft, parameterObject, parameterSearch) => {
|
|
40
|
+
let isNotFound = true;
|
|
41
|
+
const urlRoot = (0, JsMvcFw_1.getUrlRoot)();
|
|
42
|
+
const elementRoot = (0, JsMvcFw_1.getElementRoot)();
|
|
43
|
+
if (!elementRoot) {
|
|
44
|
+
throw new Error("@cimo/jsmvcfw - JsMvcFwRouter.ts - populatePage() => Element root not found!");
|
|
45
|
+
}
|
|
46
|
+
for (const route of routerList) {
|
|
47
|
+
if (route.path === nextUrl) {
|
|
48
|
+
if (urlRoot && isHistoryPushEnabled) {
|
|
49
|
+
historyPush(`${urlRoot.replace(/\/+$/, "")}${nextUrl}`, isSoft, route.title, parameterObject);
|
|
50
|
+
if (parameterSearch) {
|
|
51
|
+
window.location.search = parameterSearch;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (!isHistoryPushEnabled || isSoft) {
|
|
55
|
+
document.title = route.title;
|
|
56
|
+
controller = route.controller();
|
|
57
|
+
(0, JsMvcFw_1.renderTemplate)(controller, undefined, () => {
|
|
58
|
+
controller.event();
|
|
59
|
+
(0, JsMvcFw_1.renderAfter)(controller).then(() => {
|
|
60
|
+
controller.rendered();
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
isNotFound = false;
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (isNotFound) {
|
|
69
|
+
if (isHistoryPushEnabled) {
|
|
70
|
+
historyPush("/404", isSoft, "404", parameterObject);
|
|
71
|
+
}
|
|
72
|
+
if (!isHistoryPushEnabled || isSoft) {
|
|
73
|
+
document.title = "404";
|
|
74
|
+
elementRoot.innerHTML = "Route not found!";
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
const routerInit = (routerListValue) => {
|
|
79
|
+
routerList = routerListValue;
|
|
80
|
+
window.onload = (event) => {
|
|
81
|
+
if (event) {
|
|
82
|
+
populatePage(false, window.location.pathname, false);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
window.onpopstate = (event) => {
|
|
86
|
+
if (event) {
|
|
87
|
+
populatePage(false, window.location.pathname, false);
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
window.onbeforeunload = () => {
|
|
91
|
+
if (controller) {
|
|
92
|
+
const controllerList = (0, JsMvcFw_1.getControllerList)();
|
|
93
|
+
for (let a = controllerList.length - 1; a >= 0; a--) {
|
|
94
|
+
for (const children of controllerList[a].childrenList) {
|
|
95
|
+
children.destroy();
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
controller.destroy();
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
exports.routerInit = routerInit;
|
|
103
|
+
const navigateTo = (nextUrl, isSoft = false, parameterObject, parameterSearch) => {
|
|
104
|
+
populatePage(true, nextUrl, isSoft, parameterObject, parameterSearch);
|
|
105
|
+
};
|
|
106
|
+
exports.navigateTo = navigateTo;
|
|
107
|
+
//# sourceMappingURL=JsMvcFwRouter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsMvcFwRouter.js","sourceRoot":"","sources":["../../src/JsMvcFwRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const storageHook: () => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsMvcFwStorage.js","sourceRoot":"","sources":["../../src/JsMvcFwStorage.ts"],"names":[],"mappings":";;;AAAO,MAAM,WAAW,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAAvB,QAAA,WAAW,eAAY"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from "./JsMvcFw";
|
|
2
|
+
export * from "./JsMvcFwDom";
|
|
3
|
+
export * from "./JsMvcFwEmitter";
|
|
4
|
+
export * from "./JsMvcFwForm";
|
|
5
|
+
export * from "./JsMvcFwInterface";
|
|
6
|
+
export * from "./JsMvcFwJsx";
|
|
7
|
+
export * from "./JsMvcFwRouter";
|
|
8
|
+
export * from "./JsMvcFwStorage";
|
|
@@ -14,8 +14,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./JsMvcFwInterface"), exports);
|
|
18
17
|
__exportStar(require("./JsMvcFw"), exports);
|
|
19
|
-
__exportStar(require("./JsMvcFwRouter"), exports);
|
|
20
18
|
__exportStar(require("./JsMvcFwDom"), exports);
|
|
19
|
+
__exportStar(require("./JsMvcFwEmitter"), exports);
|
|
20
|
+
__exportStar(require("./JsMvcFwForm"), exports);
|
|
21
|
+
__exportStar(require("./JsMvcFwInterface"), exports);
|
|
22
|
+
__exportStar(require("./JsMvcFwJsx"), exports);
|
|
23
|
+
__exportStar(require("./JsMvcFwRouter"), exports);
|
|
24
|
+
__exportStar(require("./JsMvcFwStorage"), exports);
|
|
21
25
|
//# sourceMappingURL=Main.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Main.js","sourceRoot":"","sources":["../../src/Main.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,+CAA6B;AAC7B,mDAAiC;AACjC,gDAA8B;AAC9B,qDAAmC;AACnC,+CAA6B;AAC7B,kDAAgC;AAChC,mDAAiC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["../eslint.customRule.ts","../global.d.ts","../src/JsMvcFw.ts","../src/JsMvcFwDom.ts","../src/JsMvcFwEmitter.ts","../src/JsMvcFwForm.ts","../src/JsMvcFwInterface.ts","../src/JsMvcFwJsx.ts","../src/JsMvcFwRouter.ts","../src/JsMvcFwStorage.ts","../src/Main.ts"],"version":"5.7.2"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["../eslint.customRule.ts","../global.d.ts"],"version":"5.7.2"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cimo/jsmvcfw",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.10",
|
|
4
4
|
"description": "Javascript mvc framework. Light, fast and secure.",
|
|
5
5
|
"author": "cimo",
|
|
6
6
|
"license": "MIT",
|
|
@@ -10,16 +10,18 @@
|
|
|
10
10
|
},
|
|
11
11
|
"scripts": {
|
|
12
12
|
"remove_dist": "node -e \"const fs = require('fs'); try{ fs.rmdirSync('./dist/', { recursive: true }) } catch{}; process.exit(0);\"",
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
13
|
+
"remove_build": "node -e \"const fs = require('fs'); try{ fs.rmdirSync('./build/', { recursive: true }) } catch{}; process.exit(0);\"",
|
|
14
|
+
"check": "eslint --no-cache --config eslint.config.js",
|
|
15
|
+
"build_tsc": "npm run remove_dist && tsc --build tsconfig.tsc.json && npm run check",
|
|
16
|
+
"build_library": "npm run remove_build && tsc --build tsconfig.json && npm pack && mkdir -p ./build/ && mv *.tgz ./build/",
|
|
17
|
+
"build": "npm audit && npm run build_tsc && npm run build_library"
|
|
16
18
|
},
|
|
17
19
|
"dependencies": {},
|
|
18
20
|
"devDependencies": {
|
|
19
21
|
"typescript": "5.7.2",
|
|
20
|
-
"eslint": "9.
|
|
21
|
-
"@typescript-eslint/parser": "8.
|
|
22
|
-
"@typescript-eslint/eslint-plugin": "8.
|
|
22
|
+
"eslint": "9.31.0",
|
|
23
|
+
"@typescript-eslint/parser": "8.24.1",
|
|
24
|
+
"@typescript-eslint/eslint-plugin": "8.24.1",
|
|
23
25
|
"eslint-plugin-prettier": "5.2.1",
|
|
24
26
|
"globals": "15.13.0",
|
|
25
27
|
"prettier": "3.4.2",
|
package/dist/JsMvcFw.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { IvariableState } from "./JsMvcFwInterface";
|
|
2
|
-
export declare let urlRoot: string;
|
|
3
|
-
export declare let systemLabel: string;
|
|
4
|
-
export declare const mainInit: (isDebugValue?: boolean, urlRootValue?: string, labelValue?: string) => void;
|
|
5
|
-
export declare const variableState: <T>(name: string, value: T) => IvariableState<T>;
|
|
6
|
-
export declare const writeLog: (tag: string, value: string | Record<string, unknown> | Error) => void;
|
|
7
|
-
export declare const checkEnv: (key: string, value: string | undefined) => string;
|
|
8
|
-
export declare const writeCookie: <T>(tag: string, value: T, expire?: string, httpOnly?: string, path?: string) => void;
|
|
9
|
-
export declare const readCookie: <T>(tag: string) => T | undefined;
|
|
10
|
-
export declare const removeCookie: (tag: string) => void;
|
|
11
|
-
export declare const writeStorage: <T>(tag: string, value: T) => void;
|
|
12
|
-
export declare const readStorage: <T>(tag: string) => T | undefined;
|
|
13
|
-
export declare const removeStorage: (tag: string) => void;
|
|
14
|
-
export declare const isJson: (value: string) => boolean;
|
|
15
|
-
export declare const isBase64: (value: string) => boolean;
|
|
16
|
-
export declare const escapeRegExp: (value: string) => string;
|
package/dist/JsMvcFw.js
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.escapeRegExp = exports.isBase64 = exports.isJson = exports.removeStorage = exports.readStorage = exports.writeStorage = exports.removeCookie = exports.readCookie = exports.writeCookie = exports.checkEnv = exports.writeLog = exports.variableState = exports.mainInit = exports.systemLabel = exports.urlRoot = void 0;
|
|
4
|
-
let isDebug = false;
|
|
5
|
-
const variableStateEventList = new Set();
|
|
6
|
-
exports.urlRoot = "";
|
|
7
|
-
exports.systemLabel = "";
|
|
8
|
-
const mainInit = (isDebugValue = false, urlRootValue = "/", labelValue = "") => {
|
|
9
|
-
isDebug = isDebugValue;
|
|
10
|
-
exports.urlRoot = urlRootValue;
|
|
11
|
-
exports.systemLabel = labelValue;
|
|
12
|
-
(0, exports.writeLog)("@cimo/jsmvcfw => JsMvcFw.ts => mainInit()", { isDebug, urlRoot: exports.urlRoot, labelValue });
|
|
13
|
-
};
|
|
14
|
-
exports.mainInit = mainInit;
|
|
15
|
-
const variableState = (name, value) => {
|
|
16
|
-
if (variableStateEventList.has(name)) {
|
|
17
|
-
throw new Error(`JsMvcFw.ts - variableState: Event "${name}" already exists!`);
|
|
18
|
-
}
|
|
19
|
-
let currentValue = value;
|
|
20
|
-
const eventPrivate = new Event(name);
|
|
21
|
-
variableStateEventList.add(name);
|
|
22
|
-
return {
|
|
23
|
-
set state(newValue) {
|
|
24
|
-
currentValue = newValue;
|
|
25
|
-
(0, exports.writeLog)("@cimo/jsmvcfw => JsMvcFw.ts => variableState => set()", { name, currentValue });
|
|
26
|
-
document.dispatchEvent(eventPrivate);
|
|
27
|
-
},
|
|
28
|
-
get state() {
|
|
29
|
-
return currentValue;
|
|
30
|
-
},
|
|
31
|
-
listener: (callback) => {
|
|
32
|
-
document.addEventListener(name, () => {
|
|
33
|
-
(0, exports.writeLog)("@cimo/jsmvcfw => JsMvcFw.ts => variableState => listener()", { name, currentValue });
|
|
34
|
-
if (callback) {
|
|
35
|
-
callback(currentValue);
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
};
|
|
41
|
-
exports.variableState = variableState;
|
|
42
|
-
const writeLog = (tag, value) => {
|
|
43
|
-
if (isDebug) {
|
|
44
|
-
console.log(`${tag} `, value);
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
exports.writeLog = writeLog;
|
|
48
|
-
const checkEnv = (key, value) => {
|
|
49
|
-
if (typeof process !== "undefined" && value === undefined) {
|
|
50
|
-
(0, exports.writeLog)("@cimo/jsmvcfw => JsMvcFw.ts => checkEnv()", `${key} is not defined!`);
|
|
51
|
-
}
|
|
52
|
-
return value ? value : "";
|
|
53
|
-
};
|
|
54
|
-
exports.checkEnv = checkEnv;
|
|
55
|
-
const writeCookie = (tag, value, expire = "", httpOnly = "", path = "/") => {
|
|
56
|
-
const encodedData = window.btoa(encodeURIComponent(JSON.stringify(value)));
|
|
57
|
-
document.cookie = `${exports.systemLabel}_${tag}=${encodedData};expires=${expire};${httpOnly};path=${path};Secure`;
|
|
58
|
-
};
|
|
59
|
-
exports.writeCookie = writeCookie;
|
|
60
|
-
const readCookie = (tag) => {
|
|
61
|
-
let result;
|
|
62
|
-
const name = (0, exports.escapeRegExp)(`${exports.systemLabel}_${tag}`);
|
|
63
|
-
const resultMatch = document.cookie.match(new RegExp(`${name}=([^;]+)`));
|
|
64
|
-
if (resultMatch) {
|
|
65
|
-
let cookie = resultMatch[1];
|
|
66
|
-
if ((0, exports.isBase64)(cookie.replaceAll('"', ""))) {
|
|
67
|
-
cookie = window.atob(cookie.replaceAll('"', ""));
|
|
68
|
-
}
|
|
69
|
-
const decodeUriCookie = decodeURIComponent(cookie);
|
|
70
|
-
if ((0, exports.isJson)(decodeUriCookie)) {
|
|
71
|
-
result = JSON.parse(decodeUriCookie);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
result = decodeUriCookie;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
return result;
|
|
78
|
-
};
|
|
79
|
-
exports.readCookie = readCookie;
|
|
80
|
-
const removeCookie = (tag) => {
|
|
81
|
-
document.cookie = `${exports.systemLabel}_${tag}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`;
|
|
82
|
-
};
|
|
83
|
-
exports.removeCookie = removeCookie;
|
|
84
|
-
const writeStorage = (tag, value) => {
|
|
85
|
-
const encodedData = window.btoa(encodeURIComponent(JSON.stringify(value)));
|
|
86
|
-
localStorage.setItem(`${exports.systemLabel}_${tag}`, encodedData);
|
|
87
|
-
};
|
|
88
|
-
exports.writeStorage = writeStorage;
|
|
89
|
-
const readStorage = (tag) => {
|
|
90
|
-
let result;
|
|
91
|
-
const storage = localStorage.getItem(`${exports.systemLabel}_${tag}`);
|
|
92
|
-
if (storage) {
|
|
93
|
-
result = JSON.parse(decodeURIComponent(window.atob(storage)));
|
|
94
|
-
}
|
|
95
|
-
return result;
|
|
96
|
-
};
|
|
97
|
-
exports.readStorage = readStorage;
|
|
98
|
-
const removeStorage = (tag) => {
|
|
99
|
-
localStorage.removeItem(`${exports.systemLabel}_${tag}`);
|
|
100
|
-
};
|
|
101
|
-
exports.removeStorage = removeStorage;
|
|
102
|
-
const isJson = (value) => {
|
|
103
|
-
return /^[\],:{}\s]*$/.test(value
|
|
104
|
-
.replace(/\\["\\/bfnrtu]/g, "@")
|
|
105
|
-
.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+-]?\d+)?/g, "]")
|
|
106
|
-
.replace(/(?:^|:|,)(?:\s*\[)+/g, ""));
|
|
107
|
-
};
|
|
108
|
-
exports.isJson = isJson;
|
|
109
|
-
const isBase64 = (value) => {
|
|
110
|
-
return /^[A-Za-z0-9+/]*={0,2}$/.test(value) && value.length % 4 === 0;
|
|
111
|
-
};
|
|
112
|
-
exports.isBase64 = isBase64;
|
|
113
|
-
const escapeRegExp = (value) => {
|
|
114
|
-
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
115
|
-
};
|
|
116
|
-
exports.escapeRegExp = escapeRegExp;
|
|
117
|
-
//# sourceMappingURL=JsMvcFw.js.map
|
package/dist/JsMvcFw.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"JsMvcFw.js","sourceRoot":"","sources":["../src/JsMvcFw.ts"],"names":[],"mappings":"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"}
|
package/dist/JsMvcFwDom.d.ts
DELETED
package/dist/JsMvcFwDom.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.updateDataBind = void 0;
|
|
4
|
-
const JsMvcFw_1 = require("./JsMvcFw");
|
|
5
|
-
const updateDataBind = (template, variableList, name) => {
|
|
6
|
-
const elementDataBind = document.querySelector(`[data-bind="${name}"]`);
|
|
7
|
-
const elementDataSectionBind = document.querySelector(`[data-section-bind="${name}"]`);
|
|
8
|
-
if (elementDataBind) {
|
|
9
|
-
const attributeDataBind = elementDataBind.getAttribute("data-bind");
|
|
10
|
-
if (attributeDataBind) {
|
|
11
|
-
elementDataBind.textContent = variableList[attributeDataBind].state;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
else if (!elementDataBind && !elementDataSectionBind) {
|
|
15
|
-
(0, JsMvcFw_1.writeLog)("@cimo/jsmvcfw => JsMvcFwDom.ts => updateDataBind()", `data-bind="${name}" don't exists in the DOM!`);
|
|
16
|
-
}
|
|
17
|
-
if (elementDataSectionBind) {
|
|
18
|
-
const attributeDataBind = elementDataSectionBind.getAttribute("data-section-bind");
|
|
19
|
-
if (attributeDataBind) {
|
|
20
|
-
const regex = new RegExp(`<([a-zA-Z][a-zA-Z0-9]*)\\s[^>]*?data-section-bind="${attributeDataBind}"[^>]*>([\\s\\S]*?)<\\/\\1>`, "g");
|
|
21
|
-
const match = template.match(regex);
|
|
22
|
-
elementDataSectionBind.innerHTML = match ? match[0] : "";
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
(0, JsMvcFw_1.writeLog)("@cimo/jsmvcfw => JsMvcFwDom.ts => updateDataBind()", `data-section-bind="${name}" don't exists in the DOM!`);
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
exports.updateDataBind = updateDataBind;
|
|
30
|
-
//# sourceMappingURL=JsMvcFwDom.js.map
|
package/dist/JsMvcFwDom.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"JsMvcFwDom.js","sourceRoot":"","sources":["../src/JsMvcFwDom.ts"],"names":[],"mappings":";;;AACA,uCAAqC;AAE9B,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,YAAqD,EAAE,IAAY,EAAQ,EAAE;IAC1H,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAc,eAAe,IAAI,IAAI,CAAC,CAAC;IACrF,MAAM,sBAAsB,GAAG,QAAQ,CAAC,aAAa,CAAc,uBAAuB,IAAI,IAAI,CAAC,CAAC;IAEpG,IAAI,eAAe,EAAE,CAAC;QAClB,MAAM,iBAAiB,GAAG,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAEpE,IAAI,iBAAiB,EAAE,CAAC;YACpB,eAAe,CAAC,WAAW,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC,KAAe,CAAC;QAClF,CAAC;IACL,CAAC;SAAM,IAAI,CAAC,eAAe,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACrD,IAAA,kBAAQ,EAAC,oDAAoD,EAAE,cAAc,IAAI,4BAA4B,CAAC,CAAC;IACnH,CAAC;IAED,IAAI,sBAAsB,EAAE,CAAC;QACzB,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;QAEnF,IAAI,iBAAiB,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,sDAAsD,iBAAiB,6BAA6B,EAAE,GAAG,CAAC,CAAC;YAEpI,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAEpC,sBAAsB,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,IAAA,kBAAQ,EAAC,oDAAoD,EAAE,sBAAsB,IAAI,4BAA4B,CAAC,CAAC;IAC3H,CAAC;AACL,CAAC,CAAC;AA3BW,QAAA,cAAc,kBA2BzB"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export interface IvariableState<T> {
|
|
2
|
-
state: T;
|
|
3
|
-
listener: (callback: (value: T) => void) => void;
|
|
4
|
-
}
|
|
5
|
-
export interface Irouter {
|
|
6
|
-
title: string;
|
|
7
|
-
path: string;
|
|
8
|
-
controller(): Icontroller;
|
|
9
|
-
}
|
|
10
|
-
export interface Icontroller<T = Record<string, IvariableState<unknown>>> {
|
|
11
|
-
variable: () => T;
|
|
12
|
-
view: (variableList: T) => string;
|
|
13
|
-
event: (variableList: T) => void;
|
|
14
|
-
destroy: (variableList: T) => void;
|
|
15
|
-
}
|
|
16
|
-
export interface Iview {
|
|
17
|
-
template: string;
|
|
18
|
-
}
|
package/dist/JsMvcFwRouter.d.ts
DELETED
package/dist/JsMvcFwRouter.js
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.navigateTo = exports.routerInit = void 0;
|
|
4
|
-
const JsMvcFw_1 = require("./JsMvcFw");
|
|
5
|
-
const JsMvcFwDom_1 = require("./JsMvcFwDom");
|
|
6
|
-
let elementRoot = null;
|
|
7
|
-
let routerList = [];
|
|
8
|
-
let controller;
|
|
9
|
-
let variableMethod = null;
|
|
10
|
-
const routerInit = (routerListValue) => {
|
|
11
|
-
elementRoot = document.querySelector("#jsmvcfw_app");
|
|
12
|
-
routerList = routerListValue;
|
|
13
|
-
window.onload = (event) => {
|
|
14
|
-
(0, JsMvcFw_1.writeLog)("@cimo/jsmvcfw => JsMvcFwRouter.ts => onload()", window.location.pathname);
|
|
15
|
-
if (event) {
|
|
16
|
-
populatePage(false, window.location.pathname, false);
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
window.onpopstate = (event) => {
|
|
20
|
-
(0, JsMvcFw_1.writeLog)("@cimo/jsmvcfw => JsMvcFwRouter.ts => onpopstate()", window.location.pathname);
|
|
21
|
-
if (event) {
|
|
22
|
-
populatePage(false, window.location.pathname, false);
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
window.onbeforeunload = (event) => {
|
|
26
|
-
(0, JsMvcFw_1.writeLog)("@cimo/jsmvcfw => JsMvcFwRouter.ts => onbeforeunload()", { event });
|
|
27
|
-
if (event && controller && Object.keys(controller).length > 0 && variableMethod) {
|
|
28
|
-
controller.destroy(variableMethod);
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
};
|
|
32
|
-
exports.routerInit = routerInit;
|
|
33
|
-
const navigateTo = (nextUrl, soft = false, parameterList, parameterSearch) => {
|
|
34
|
-
(0, JsMvcFw_1.writeLog)("@cimo/jsmvcfw => JsMvcFwRouter.ts => navigateTo()", { nextUrl, parameterList, parameterSearch });
|
|
35
|
-
populatePage(true, nextUrl, soft, parameterList, parameterSearch);
|
|
36
|
-
};
|
|
37
|
-
exports.navigateTo = navigateTo;
|
|
38
|
-
const populatePage = (isHistoryPushEnabled, nextUrl, soft, parameterList, parameterSearch) => {
|
|
39
|
-
let isNotFound = false;
|
|
40
|
-
if (elementRoot) {
|
|
41
|
-
for (const [, value] of routerList.entries()) {
|
|
42
|
-
if (value.path === nextUrl) {
|
|
43
|
-
controller = value.controller();
|
|
44
|
-
if (Object.keys(controller).length > 0) {
|
|
45
|
-
variableMethod = controller.variable();
|
|
46
|
-
}
|
|
47
|
-
if (JsMvcFw_1.urlRoot && isHistoryPushEnabled) {
|
|
48
|
-
const urlRootReplace = JsMvcFw_1.urlRoot.replace(/\/+$/, "");
|
|
49
|
-
routerHistoryPush(`${urlRootReplace}${nextUrl}`, soft, value.title, parameterList);
|
|
50
|
-
if (parameterSearch) {
|
|
51
|
-
window.location.search = parameterSearch;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
if (!isHistoryPushEnabled || soft) {
|
|
55
|
-
document.title = value.title;
|
|
56
|
-
if (controller && Object.keys(controller).length > 0 && variableMethod) {
|
|
57
|
-
for (const name of Object.keys(variableMethod)) {
|
|
58
|
-
document.addEventListener(name, () => {
|
|
59
|
-
if (controller && Object.keys(controller).length > 0 && variableMethod) {
|
|
60
|
-
(0, JsMvcFwDom_1.updateDataBind)(controller.view(variableMethod), variableMethod, name);
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
elementRoot.innerHTML = controller.view(variableMethod);
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
elementRoot.innerHTML = "";
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
if (controller && Object.keys(controller).length > 0 && variableMethod) {
|
|
71
|
-
controller.event(variableMethod);
|
|
72
|
-
}
|
|
73
|
-
isNotFound = false;
|
|
74
|
-
break;
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
isNotFound = true;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
if (isNotFound) {
|
|
81
|
-
if (isHistoryPushEnabled) {
|
|
82
|
-
routerHistoryPush("/404", soft, "404", parameterList);
|
|
83
|
-
}
|
|
84
|
-
if (!isHistoryPushEnabled || soft) {
|
|
85
|
-
document.title = "404";
|
|
86
|
-
elementRoot.innerHTML = "Route not found!";
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
throw new Error("@cimo/jsmvcfw => JsMvcFwRouter.ts => #jsmvcfw_app not found!");
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
const routerHistoryPush = (nextUrl, soft, title = "", parameterListValue) => {
|
|
95
|
-
let url = nextUrl;
|
|
96
|
-
if (nextUrl.charAt(0) === "/") {
|
|
97
|
-
url = nextUrl.slice(1);
|
|
98
|
-
}
|
|
99
|
-
if (url === "") {
|
|
100
|
-
url = "/";
|
|
101
|
-
}
|
|
102
|
-
const [path, queryString] = url.split("?");
|
|
103
|
-
const queryStringCleanedList = [];
|
|
104
|
-
if (queryString) {
|
|
105
|
-
const params = queryString.split("&");
|
|
106
|
-
params.forEach((param) => {
|
|
107
|
-
const [key, value] = param.split("=");
|
|
108
|
-
if (value) {
|
|
109
|
-
const cleanedValue = encodeURIComponent(decodeURIComponent(value));
|
|
110
|
-
queryStringCleanedList.push(`${key}=${cleanedValue}`);
|
|
111
|
-
}
|
|
112
|
-
else {
|
|
113
|
-
queryStringCleanedList.push(key);
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
const urlCleaned = path + (queryStringCleanedList.length > 0 ? "?" + queryStringCleanedList.join("&") : "");
|
|
118
|
-
window.history.pushState({
|
|
119
|
-
prevUrl: window.location.pathname,
|
|
120
|
-
parameterList: parameterListValue
|
|
121
|
-
}, title, urlCleaned);
|
|
122
|
-
if (!soft) {
|
|
123
|
-
window.location.href = urlCleaned;
|
|
124
|
-
}
|
|
125
|
-
};
|
|
126
|
-
//# sourceMappingURL=JsMvcFwRouter.js.map
|