@cimo/jsmvcfw 1.1.7 → 1.1.9

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.
Files changed (46) hide show
  1. package/dist/eslint.customRule.d.ts +20 -0
  2. package/dist/eslint.customRule.js +37 -0
  3. package/dist/eslint.customRule.js.map +1 -0
  4. package/dist/src/JsMvcFw.d.ts +13 -0
  5. package/dist/src/JsMvcFw.js +275 -0
  6. package/dist/src/JsMvcFw.js.map +1 -0
  7. package/dist/src/JsMvcFwDom.d.ts +3 -0
  8. package/dist/src/JsMvcFwDom.js +149 -0
  9. package/dist/src/JsMvcFwDom.js.map +1 -0
  10. package/dist/src/JsMvcFwEmitter.d.ts +6 -0
  11. package/dist/src/JsMvcFwEmitter.js +39 -0
  12. package/dist/src/JsMvcFwEmitter.js.map +1 -0
  13. package/dist/src/JsMvcFwForm.d.ts +1 -0
  14. package/dist/src/JsMvcFwForm.js +6 -0
  15. package/dist/src/JsMvcFwForm.js.map +1 -0
  16. package/dist/src/JsMvcFwInterface.d.ts +38 -0
  17. package/dist/{JsMvcFwInterface.js.map → src/JsMvcFwInterface.js.map} +1 -1
  18. package/dist/src/JsMvcFwJsx.d.ts +3 -0
  19. package/dist/src/JsMvcFwJsx.js +77 -0
  20. package/dist/src/JsMvcFwJsx.js.map +1 -0
  21. package/dist/src/JsMvcFwRouter.d.ts +3 -0
  22. package/dist/src/JsMvcFwRouter.js +107 -0
  23. package/dist/src/JsMvcFwRouter.js.map +1 -0
  24. package/dist/src/JsMvcFwStorage.d.ts +1 -0
  25. package/dist/src/JsMvcFwStorage.js +6 -0
  26. package/dist/src/JsMvcFwStorage.js.map +1 -0
  27. package/dist/src/Main.d.ts +8 -0
  28. package/dist/{Main.js → src/Main.js} +6 -2
  29. package/dist/src/Main.js.map +1 -0
  30. package/dist/tsconfig.tsbuildinfo +1 -0
  31. package/dist/tsconfig.tsc.tsbuildinfo +1 -0
  32. package/package.json +9 -7
  33. package/dist/JsMvcFw.d.ts +0 -16
  34. package/dist/JsMvcFw.js +0 -117
  35. package/dist/JsMvcFw.js.map +0 -1
  36. package/dist/JsMvcFwDom.d.ts +0 -2
  37. package/dist/JsMvcFwDom.js +0 -30
  38. package/dist/JsMvcFwDom.js.map +0 -1
  39. package/dist/JsMvcFwInterface.d.ts +0 -18
  40. package/dist/JsMvcFwRouter.d.ts +0 -3
  41. package/dist/JsMvcFwRouter.js +0 -126
  42. package/dist/JsMvcFwRouter.js.map +0 -1
  43. package/dist/Main.d.ts +0 -4
  44. package/dist/Main.js.map +0 -1
  45. package/dist/tsconfig.build.tsbuildinfo +0 -1
  46. /package/dist/{JsMvcFwInterface.js → src/JsMvcFwInterface.js} +0 -0
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const stackErrorDetail = () => {
4
+ const stack = new Error().stack;
5
+ if (!stack) {
6
+ return "unknown";
7
+ }
8
+ const stackSplit = stack.split("\n");
9
+ const callerLine = stackSplit[2].trim() ?? "unknown";
10
+ return callerLine.charAt(0).toUpperCase() + callerLine.slice(1).toLowerCase();
11
+ };
12
+ const checkDynamicElement = (childrenListValue) => {
13
+ let isDynamic = false;
14
+ for (let a = 0; a < childrenListValue.length; a++) {
15
+ if (Array.isArray(childrenListValue[a])) {
16
+ isDynamic = true;
17
+ break;
18
+ }
19
+ }
20
+ if (isDynamic) {
21
+ const tagObject = {};
22
+ for (let a = 0; a < childrenListValue.length; a++) {
23
+ const childEntry = childrenListValue[a];
24
+ const isFromArray = Array.isArray(childEntry);
25
+ const childrenList = isFromArray ? childEntry : [childEntry];
26
+ for (const children of childrenList) {
27
+ const node = typeof children === "number" ? String(children) : children;
28
+ if (typeof node === "object" && "tag" in node) {
29
+ if (!tagObject[node.tag]) {
30
+ tagObject[node.tag] = [];
31
+ }
32
+ tagObject[node.tag].push({ node, isFromArray });
33
+ }
34
+ }
35
+ }
36
+ const errorDetail = stackErrorDetail();
37
+ for (const tag in tagObject) {
38
+ const group = tagObject[tag];
39
+ const keyMissingList = group.filter(({ node }) => node.key === undefined);
40
+ const isAllFromArray = group.every(({ isFromArray }) => isFromArray);
41
+ if (group.length > 1 && keyMissingList.length > 0 && isAllFromArray) {
42
+ throw new Error(`JsMvcFwJsx.ts => ${errorDetail}, multiple <${tag}> elements missing key tag.`);
43
+ }
44
+ }
45
+ }
46
+ };
47
+ const jsxFactory = (tag, propertyObjectValue = {}, ...childrenListValue) => {
48
+ const childrenList = [];
49
+ for (let a = 0; a < childrenListValue.length; a++) {
50
+ const child = childrenListValue[a];
51
+ if (child == null) {
52
+ continue;
53
+ }
54
+ if (Array.isArray(child)) {
55
+ for (let b = 0; b < child.length; b++) {
56
+ const childNested = child[b];
57
+ if (childNested == null) {
58
+ continue;
59
+ }
60
+ childrenList.push(typeof childNested === "number" ? String(childNested) : childNested);
61
+ }
62
+ }
63
+ else {
64
+ childrenList.push(typeof child === "number" ? String(child) : child);
65
+ }
66
+ }
67
+ checkDynamicElement(childrenListValue);
68
+ const { key, ...propertyObject } = propertyObjectValue ?? {};
69
+ return {
70
+ tag,
71
+ propertyObject,
72
+ childrenList,
73
+ key: key !== undefined ? String(key) : undefined
74
+ };
75
+ };
76
+ exports.default = jsxFactory;
77
+ //# 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,3 @@
1
+ import { Irouter } from "./JsMvcFwInterface";
2
+ export declare const routerInit: (routerListValue: Irouter[]) => void;
3
+ export declare const navigateTo: (nextUrl: string, isSoft?: boolean, parameterObject?: Record<string, unknown>, parameterSearch?: string) => void;
@@ -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, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;")));
20
+ if (value) {
21
+ const valueCleaned = encodeURIComponent(decodeURIComponent(value.replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;")));
22
+ queryStringCleanedList.push(`${keyCleaned}=${valueCleaned}`);
23
+ }
24
+ else {
25
+ queryStringCleanedList.push(keyCleaned);
26
+ }
27
+ }
28
+ }
29
+ const pathCleaned = path.replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
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("JsMvcFwRouter.ts => 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,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.storageHook = void 0;
4
+ const storageHook = () => { };
5
+ exports.storageHook = storageHook;
6
+ //# sourceMappingURL=JsMvcFwStorage.js.map
@@ -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.7",
3
+ "version": "1.1.9",
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
- "check": "eslint --no-cache --config eslint.config.js --fix",
14
- "build": "npm run remove_dist && npm run check && tsc --build tsconfig.build.json && npm audit",
15
- "pack": "npm run build && npm pack"
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.17.0",
21
- "@typescript-eslint/parser": "8.18.1",
22
- "@typescript-eslint/eslint-plugin": "8.18.1",
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"JsMvcFw.js","sourceRoot":"","sources":["../src/JsMvcFw.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import { IvariableState } from "./JsMvcFwInterface";
2
- export declare const updateDataBind: (template: string, variableList: Record<string, IvariableState<unknown>>, name: string) => void;
@@ -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
@@ -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
- }
@@ -1,3 +0,0 @@
1
- import { Irouter } from "./JsMvcFwInterface";
2
- export declare const routerInit: (routerListValue: Irouter[]) => void;
3
- export declare const navigateTo: (nextUrl: string, soft?: boolean, parameterList?: Record<string, unknown>, parameterSearch?: string) => void;
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"file":"JsMvcFwRouter.js","sourceRoot":"","sources":["../src/JsMvcFwRouter.ts"],"names":[],"mappings":"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"}