@@ -18,7 +18,24 @@ | |||||
"@mui/material-nextjs": "^5.15.0", | "@mui/material-nextjs": "^5.15.0", | ||||
"@mui/x-data-grid": "^6.18.7", | "@mui/x-data-grid": "^6.18.7", | ||||
"@mui/x-date-pickers": "^6.18.7", | "@mui/x-date-pickers": "^6.18.7", | ||||
"@tiptap/react": "^2.12.0", | |||||
"@tiptap/core": "^2.14.0", | |||||
"@tiptap/extension-color": "^2.14.0", | |||||
"@tiptap/extension-document": "^2.14.0", | |||||
"@tiptap/extension-gapcursor": "^2.14.0", | |||||
"@tiptap/extension-highlight": "^2.14.0", | |||||
"@tiptap/extension-list-item": "^2.14.0", | |||||
"@tiptap/extension-paragraph": "^2.14.0", | |||||
"@tiptap/extension-table": "^2.14.0", | |||||
"@tiptap/extension-table-cell": "^2.14.0", | |||||
"@tiptap/extension-table-header": "^2.14.0", | |||||
"@tiptap/extension-table-row": "^2.14.0", | |||||
"@tiptap/extension-text": "^2.14.0", | |||||
"@tiptap/extension-text-align": "^2.14.0", | |||||
"@tiptap/extension-text-style": "^2.14.0", | |||||
"@tiptap/extension-underline": "^2.14.0", | |||||
"@tiptap/pm": "^2.14.0", | |||||
"@tiptap/react": "^2.14.0", | |||||
"@tiptap/starter-kit": "^2.14.0", | |||||
"@unly/universal-language-detector": "^2.0.3", | "@unly/universal-language-detector": "^2.0.3", | ||||
"apexcharts": "^3.45.2", | "apexcharts": "^3.45.2", | ||||
"axios": "^1.9.0", | "axios": "^1.9.0", | ||||
@@ -27,6 +44,7 @@ | |||||
"i18next": "^23.7.11", | "i18next": "^23.7.11", | ||||
"i18next-resources-to-backend": "^1.2.0", | "i18next-resources-to-backend": "^1.2.0", | ||||
"lodash": "^4.17.21", | "lodash": "^4.17.21", | ||||
"mui-color-input": "^7.0.0", | |||||
"next": "14.0.4", | "next": "14.0.4", | ||||
"next-auth": "^4.24.5", | "next-auth": "^4.24.5", | ||||
"next-pwa": "^5.6.0", | "next-pwa": "^5.6.0", | ||||
@@ -1729,6 +1747,15 @@ | |||||
"node": ">=6.9.0" | "node": ">=6.9.0" | ||||
} | } | ||||
}, | }, | ||||
"node_modules/@ctrl/tinycolor": { | |||||
"version": "4.1.0", | |||||
"resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-4.1.0.tgz", | |||||
"integrity": "sha512-WyOx8cJQ+FQus4Mm4uPIZA64gbk3Wxh0so5Lcii0aJifqwoVOlfFtorjLE0Hen4OYyHZMXDWqMmaQemBhgxFRQ==", | |||||
"license": "MIT", | |||||
"engines": { | |||||
"node": ">=14" | |||||
} | |||||
}, | |||||
"node_modules/@emotion/babel-plugin": { | "node_modules/@emotion/babel-plugin": { | ||||
"version": "11.11.0", | "version": "11.11.0", | ||||
"resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", | "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", | ||||
@@ -2862,6 +2889,12 @@ | |||||
"url": "https://opencollective.com/popperjs" | "url": "https://opencollective.com/popperjs" | ||||
} | } | ||||
}, | }, | ||||
"node_modules/@remirror/core-constants": { | |||||
"version": "3.0.0", | |||||
"resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-3.0.0.tgz", | |||||
"integrity": "sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==", | |||||
"license": "MIT" | |||||
}, | |||||
"node_modules/@rollup/plugin-babel": { | "node_modules/@rollup/plugin-babel": { | ||||
"version": "5.3.1", | "version": "5.3.1", | ||||
"resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", | "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", | ||||
@@ -2972,10 +3005,50 @@ | |||||
"tslib": "^2.4.0" | "tslib": "^2.4.0" | ||||
} | } | ||||
}, | }, | ||||
"node_modules/@tiptap/core": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.22.3.tgz", | |||||
"integrity": "sha512-czyBPXZG/ZFyObZEF1kyusGf58Ai3X8TnaxlUUn3gqLLWPy0idXZg85NETCidzi/gAxWxL9j6Pcy+zwS4pbZYQ==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/pm": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-blockquote": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.22.3.tgz", | |||||
"integrity": "sha512-HvTXvqeGaANg0owk0Xxkgyc4lJMO5CZES2Lc3JJp8u5kV+HZIwd78eJ7fbKBMtkpKb4zOk4xQsHQ/TuhghJaeA==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-bold": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.22.3.tgz", | |||||
"integrity": "sha512-J3GxKwijD42eqCwU1SS7PK5aSgnp0wgQDetLz9izAD0RQBrKj5WZA13GnPoTTlzLU4qwjcPRV+6mvF+llH6b6A==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-bubble-menu": { | "node_modules/@tiptap/extension-bubble-menu": { | ||||
"version": "2.13.0", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.13.0.tgz", | |||||
"integrity": "sha512-y2PRg7YT8Km1e4+xEvXcKTPfEu/i44eKNjbsKojgs70kuONdhFmhWIXCeGEVAwPH8ZPH+JPam5kcW2vsihoayg==", | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.22.3.tgz", | |||||
"integrity": "sha512-8iQLNrRf3iBPKqI3dQnfvMxMfgp6y9TAbO803LihvzbIGqBaX264ES7fHtoyFIIeVjy2xFruVsTZCZofWTupGg==", | |||||
"license": "MIT", | |||||
"dependencies": { | "dependencies": { | ||||
"tippy.js": "^6.3.7" | "tippy.js": "^6.3.7" | ||||
}, | }, | ||||
@@ -2988,10 +3061,92 @@ | |||||
"@tiptap/pm": "^2.7.0" | "@tiptap/pm": "^2.7.0" | ||||
} | } | ||||
}, | }, | ||||
"node_modules/@tiptap/extension-bullet-list": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.22.3.tgz", | |||||
"integrity": "sha512-SYvLIxqmuV0kTj4/3ZFlnZ1fr9Y233qX00BKuIpGnczeFsWQmzBJo8vGm3d1IlKPCQN+jTRtDdDE1aSum8Kv2w==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-code": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.22.3.tgz", | |||||
"integrity": "sha512-s+W6jHezq+n9cC40xZ3hZF6cGGSl+fBELik1b2x8+cb0WoIlqmcdWin1dgeMNrWlRZUw1aD2DNwy/PdXI5vn2g==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-code-block": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.22.3.tgz", | |||||
"integrity": "sha512-twPCBpb/ygNixlSBAXgvfo+t56Ucpb8lvPDiZn+cH8OjmmO0ayBoSfSrjKWgaEWGPcXBrFAfsBRbYHyoHj7pXg==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0", | |||||
"@tiptap/pm": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-color": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-color/-/extension-color-2.22.3.tgz", | |||||
"integrity": "sha512-4GewNUnDE16cte85kG0qhMGS1NQUQ1HRObVRGP47RlrSc/6x++DOfkqYbSJ0btyfWHGBahC3QQfyQ3eCdryUxg==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0", | |||||
"@tiptap/extension-text-style": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-document": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.22.3.tgz", | |||||
"integrity": "sha512-7MnILbhRZRyROlMUgyntzRZ/EZlqNB8fO761RNjJxR2WMb49R4yc04fz7/+f/QH/hwxoS13bKfsNUDAsDxA5Aw==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-dropcursor": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.22.3.tgz", | |||||
"integrity": "sha512-yQxSfTWjdUQS+bh6KiNLR9KIMsn1SElzycQe4XE+0eoaetapGtKqxfwkTbbQdNgQOU5wQG1KOda221mnPvkpAA==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0", | |||||
"@tiptap/pm": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-floating-menu": { | "node_modules/@tiptap/extension-floating-menu": { | ||||
"version": "2.13.0", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.13.0.tgz", | |||||
"integrity": "sha512-gF14Nu61QUWWJDxOxzB679uK0W/rWcU7FTn1ll2zGt3NW2P2HheLo6qL1U5Wwxo3YwXloM8KLofdWi6vMN5RQQ==", | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.22.3.tgz", | |||||
"integrity": "sha512-GeJRRdulxpwsshxzBkpOf/xJkLD2fa+49o+3FqRCmrm7AioC8oUcZZmzuzjLj5a3ZNGKPuJ9xxDkYWUjH4tE1g==", | |||||
"license": "MIT", | |||||
"dependencies": { | "dependencies": { | ||||
"tippy.js": "^6.3.7" | "tippy.js": "^6.3.7" | ||||
}, | }, | ||||
@@ -3004,13 +3159,295 @@ | |||||
"@tiptap/pm": "^2.7.0" | "@tiptap/pm": "^2.7.0" | ||||
} | } | ||||
}, | }, | ||||
"node_modules/@tiptap/extension-gapcursor": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.22.3.tgz", | |||||
"integrity": "sha512-6Q8TLL4PVGcZLn27eQazCC+be8LP8uzuz5Z5e4TpIeswPAju49cerQOdEGNFKkuYv/FelWIhXNtkWFMf4eSmyw==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0", | |||||
"@tiptap/pm": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-hard-break": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.22.3.tgz", | |||||
"integrity": "sha512-tbEji/V4Za3UhxYwB36amYhyonwe5j66iYTNRWzgjNixjrcGDbWk6cfaF9jMAgPgIDBmmtQLJY+moKskwgpnZg==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-heading": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.22.3.tgz", | |||||
"integrity": "sha512-+MexJD+kXtNwMDbNTFa7jCFipx1DqAdT+n9GgInqebAN9bK+CWjC+SskzZNRqeMrQ0Er7QTsi6YC09M+74sevA==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-highlight": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-highlight/-/extension-highlight-2.22.3.tgz", | |||||
"integrity": "sha512-cdPSeQ3QcThhJdzkjK9a1871uPQjwmOf0WzTGW33lJyJDQHypWIRNUus56c3pGA7BgV9P59QW7Fm8rDnM8XkbA==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-history": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.22.3.tgz", | |||||
"integrity": "sha512-F9sC45zPw7vbjKrwSKuSLZ0ODyc/X3bGPeCa6HYLEHKfgqsdt2v2fQLvxjpmlwO2ZMrnkBkg76KDxHfVyrZ2zQ==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0", | |||||
"@tiptap/pm": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-horizontal-rule": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.22.3.tgz", | |||||
"integrity": "sha512-3GvY798p9pCXUBbCebIdSmi1q80l7VZz/B6NN4uUMQ9iwxWopd8yaZ0O7xx2hM2UBzPEtY3M4FAhhpYUTXNFgQ==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0", | |||||
"@tiptap/pm": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-italic": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.22.3.tgz", | |||||
"integrity": "sha512-W/rQDo7qFL7MfwfaYEcdtbk862fOmBv30qIEwVdqElBye7BFJYKtRuWBzNbG2BwKanjwMbVc/tBXF5W1sqfT7Q==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-list-item": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.22.3.tgz", | |||||
"integrity": "sha512-B7Fze+eM1sYbGOZtDDAwAivnj1ow2wN5RqaQPC1la3wdTK4Wgp7bdzGjvUbrN6gp3zMFCEWlqP2toc/mRAHCtA==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-ordered-list": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.22.3.tgz", | |||||
"integrity": "sha512-pHGkuZhV/uAAHI9vzk/lpAkbdpMT4wUR1FI17/GE3zNrogfzx0VopCQrXq4+sQVsLUW4I6Cj6VeBjm9wB6qlIw==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-paragraph": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.22.3.tgz", | |||||
"integrity": "sha512-TYvgS7CweNFo/xVxsKWSt0wnm46Y8OtsfDSjnLbSC4Pj4ZNa6PU3zpvDTW+UxYakr+8zIPvI2WgLBkyTHq6oQA==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-strike": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.22.3.tgz", | |||||
"integrity": "sha512-I+s2Csw2cTHae2vFJiojnHK+NnQjDr6441mSlAd+e7kEly1kjZ4g7J+JMj02ajNQhr/ob8/hb5r6EdIyv2xtoA==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-table": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-2.22.3.tgz", | |||||
"integrity": "sha512-lYTuDo/3lJsC6g85b5OCfrKi8yID82PnZlngZo4quVHusE/YuXOwXYD4qt3xEOoqdgFoPQl0b7Ck9C5Qyb8AUg==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0", | |||||
"@tiptap/pm": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-table-cell": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-table-cell/-/extension-table-cell-2.22.3.tgz", | |||||
"integrity": "sha512-Yj6/bd4QpKoQpNTi/eNnWpT+VMfTBB7SfCPjlMvTK1MFVr60fmbUjJHrjt2WAfTW2JmkQlLsP8UXjR+Bda+uTA==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-table-header": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-table-header/-/extension-table-header-2.22.3.tgz", | |||||
"integrity": "sha512-bLq/lufV95fp9gXMjOKMuuhpAa2+t0vi8dz4Zxwnrr1dsvkk4TyiKWRyuI3OV+TCNzZ3hZqOlEStS+Ie6lB/Lg==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-table-row": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-table-row/-/extension-table-row-2.22.3.tgz", | |||||
"integrity": "sha512-PQbrDIyGOHrsN3RmB+J75UJ10lGW7I4PqY+E2HUtx5HvFOEVPlBbcFELMfjy7dOPbKiM+v6KUSbybXW8h745mg==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-text": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.22.3.tgz", | |||||
"integrity": "sha512-07cymWkPTfq6nuum88Yf90YYArbowed8nNiu0Tw3jCvwpzf9J9TDaovT+LAKuSKtrOsnNpFB/9IqUwFxZepOGw==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-text-align": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-text-align/-/extension-text-align-2.22.3.tgz", | |||||
"integrity": "sha512-UZ8803BOrHLHSNFfooqgkm2AQsaK/7eE1deQGSazxft89KksAv1kZkEKFypOE8yw85Bg2NHH2Lp6n4tyz2n6/g==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-text-style": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-text-style/-/extension-text-style-2.22.3.tgz", | |||||
"integrity": "sha512-M3FLOUPcO8fR+rM97mR2gQ54KFkdlAUQtEPKQpO1f312gtcVdBNxgq0WgqTnBY7thWLyqQSKiAsL6y88+JddSA==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/extension-underline": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-2.22.3.tgz", | |||||
"integrity": "sha512-floLjh1UbQ2pKgdwfw7qCAJ5VojvH1uqj7xW2RCv79aWYUuJCPD6UBpaBOt/jv7gXDJJ9EeV3m2Hga49CXBrEQ==", | |||||
"license": "MIT", | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
}, | |||||
"peerDependencies": { | |||||
"@tiptap/core": "^2.7.0" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/pm": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.22.3.tgz", | |||||
"integrity": "sha512-uWPeIScnpQVCYdTnL140XgcvbT1qH288CstMJ6S0Y11lC5PclPK9CxfAipsqgWWrIK7yatxKUVCg6TzfG9zpmA==", | |||||
"license": "MIT", | |||||
"dependencies": { | |||||
"prosemirror-changeset": "^2.3.0", | |||||
"prosemirror-collab": "^1.3.1", | |||||
"prosemirror-commands": "^1.6.2", | |||||
"prosemirror-dropcursor": "^1.8.1", | |||||
"prosemirror-gapcursor": "^1.3.2", | |||||
"prosemirror-history": "^1.4.1", | |||||
"prosemirror-inputrules": "^1.4.0", | |||||
"prosemirror-keymap": "^1.2.2", | |||||
"prosemirror-markdown": "^1.13.1", | |||||
"prosemirror-menu": "^1.2.4", | |||||
"prosemirror-model": "^1.23.0", | |||||
"prosemirror-schema-basic": "^1.2.3", | |||||
"prosemirror-schema-list": "^1.4.1", | |||||
"prosemirror-state": "^1.4.3", | |||||
"prosemirror-tables": "^1.6.4", | |||||
"prosemirror-trailing-node": "^3.0.0", | |||||
"prosemirror-transform": "^1.10.2", | |||||
"prosemirror-view": "^1.37.0" | |||||
}, | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
} | |||||
}, | |||||
"node_modules/@tiptap/react": { | "node_modules/@tiptap/react": { | ||||
"version": "2.13.0", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/react/-/react-2.13.0.tgz", | |||||
"integrity": "sha512-HxA9M2PdzOszIvv5NG2MNcp7bk+bGUB+sJsUcT7X5fDRSoSn94aBKQ677BONHCV6YHHSY3wLxOtuiNXnO3kkDQ==", | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/react/-/react-2.22.3.tgz", | |||||
"integrity": "sha512-Te6e6/carhUAavcJgxC03rffLAZz1or4cjnRDFNF8G4vPOqkNgQd368N47wTMjwh5mQTdMUUI3ToZIpc45Q7Tw==", | |||||
"license": "MIT", | |||||
"dependencies": { | "dependencies": { | ||||
"@tiptap/extension-bubble-menu": "^2.13.0", | |||||
"@tiptap/extension-floating-menu": "^2.13.0", | |||||
"@tiptap/extension-bubble-menu": "^2.22.3", | |||||
"@tiptap/extension-floating-menu": "^2.22.3", | |||||
"@types/use-sync-external-store": "^0.0.6", | "@types/use-sync-external-store": "^0.0.6", | ||||
"fast-deep-equal": "^3", | "fast-deep-equal": "^3", | ||||
"use-sync-external-store": "^1" | "use-sync-external-store": "^1" | ||||
@@ -3026,6 +3463,39 @@ | |||||
"react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" | "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" | ||||
} | } | ||||
}, | }, | ||||
"node_modules/@tiptap/starter-kit": { | |||||
"version": "2.22.3", | |||||
"resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.22.3.tgz", | |||||
"integrity": "sha512-GkvheaR2ORnHJ9g9R6xIT38w2uppGja/iAIrXLZ9vY1QuR+0cya/ZZ5vKU6r9C2PeyBs3aKYxRD1/j3HDhuGXw==", | |||||
"license": "MIT", | |||||
"dependencies": { | |||||
"@tiptap/core": "^2.22.3", | |||||
"@tiptap/extension-blockquote": "^2.22.3", | |||||
"@tiptap/extension-bold": "^2.22.3", | |||||
"@tiptap/extension-bullet-list": "^2.22.3", | |||||
"@tiptap/extension-code": "^2.22.3", | |||||
"@tiptap/extension-code-block": "^2.22.3", | |||||
"@tiptap/extension-document": "^2.22.3", | |||||
"@tiptap/extension-dropcursor": "^2.22.3", | |||||
"@tiptap/extension-gapcursor": "^2.22.3", | |||||
"@tiptap/extension-hard-break": "^2.22.3", | |||||
"@tiptap/extension-heading": "^2.22.3", | |||||
"@tiptap/extension-history": "^2.22.3", | |||||
"@tiptap/extension-horizontal-rule": "^2.22.3", | |||||
"@tiptap/extension-italic": "^2.22.3", | |||||
"@tiptap/extension-list-item": "^2.22.3", | |||||
"@tiptap/extension-ordered-list": "^2.22.3", | |||||
"@tiptap/extension-paragraph": "^2.22.3", | |||||
"@tiptap/extension-strike": "^2.22.3", | |||||
"@tiptap/extension-text": "^2.22.3", | |||||
"@tiptap/extension-text-style": "^2.22.3", | |||||
"@tiptap/pm": "^2.22.3" | |||||
}, | |||||
"funding": { | |||||
"type": "github", | |||||
"url": "https://github.com/sponsors/ueberdosis" | |||||
} | |||||
}, | |||||
"node_modules/@types/glob": { | "node_modules/@types/glob": { | ||||
"version": "7.2.0", | "version": "7.2.0", | ||||
"resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", | "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", | ||||
@@ -3055,12 +3525,34 @@ | |||||
"integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", | "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", | ||||
"dev": true | "dev": true | ||||
}, | }, | ||||
"node_modules/@types/linkify-it": { | |||||
"version": "5.0.0", | |||||
"resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", | |||||
"integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", | |||||
"license": "MIT" | |||||
}, | |||||
"node_modules/@types/lodash": { | "node_modules/@types/lodash": { | ||||
"version": "4.14.202", | "version": "4.14.202", | ||||
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz", | "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz", | ||||
"integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==", | "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==", | ||||
"dev": true | "dev": true | ||||
}, | }, | ||||
"node_modules/@types/markdown-it": { | |||||
"version": "14.1.2", | |||||
"resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", | |||||
"integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", | |||||
"license": "MIT", | |||||
"dependencies": { | |||||
"@types/linkify-it": "^5", | |||||
"@types/mdurl": "^2" | |||||
} | |||||
}, | |||||
"node_modules/@types/mdurl": { | |||||
"version": "2.0.0", | |||||
"resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", | |||||
"integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", | |||||
"license": "MIT" | |||||
}, | |||||
"node_modules/@types/minimatch": { | "node_modules/@types/minimatch": { | ||||
"version": "5.1.2", | "version": "5.1.2", | ||||
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", | "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", | ||||
@@ -3514,8 +4006,7 @@ | |||||
"node_modules/argparse": { | "node_modules/argparse": { | ||||
"version": "2.0.1", | "version": "2.0.1", | ||||
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", | ||||
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", | |||||
"dev": true | |||||
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" | |||||
}, | }, | ||||
"node_modules/aria-query": { | "node_modules/aria-query": { | ||||
"version": "5.3.0", | "version": "5.3.0", | ||||
@@ -4259,6 +4750,12 @@ | |||||
"node": ">=10" | "node": ">=10" | ||||
} | } | ||||
}, | }, | ||||
"node_modules/crelt": { | |||||
"version": "1.0.6", | |||||
"resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", | |||||
"integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", | |||||
"license": "MIT" | |||||
}, | |||||
"node_modules/cross-spawn": { | "node_modules/cross-spawn": { | ||||
"version": "7.0.3", | "version": "7.0.3", | ||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", | ||||
@@ -4585,6 +5082,18 @@ | |||||
"node": ">=10.13.0" | "node": ">=10.13.0" | ||||
} | } | ||||
}, | }, | ||||
"node_modules/entities": { | |||||
"version": "4.5.0", | |||||
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", | |||||
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", | |||||
"license": "BSD-2-Clause", | |||||
"engines": { | |||||
"node": ">=0.12" | |||||
}, | |||||
"funding": { | |||||
"url": "https://github.com/fb55/entities?sponsor=1" | |||||
} | |||||
}, | |||||
"node_modules/error-ex": { | "node_modules/error-ex": { | ||||
"version": "1.3.2", | "version": "1.3.2", | ||||
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", | ||||
@@ -6828,6 +7337,15 @@ | |||||
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", | ||||
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" | ||||
}, | }, | ||||
"node_modules/linkify-it": { | |||||
"version": "5.0.0", | |||||
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", | |||||
"integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", | |||||
"license": "MIT", | |||||
"dependencies": { | |||||
"uc.micro": "^2.0.0" | |||||
} | |||||
}, | |||||
"node_modules/loader-utils": { | "node_modules/loader-utils": { | ||||
"version": "2.0.4", | "version": "2.0.4", | ||||
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", | ||||
@@ -6950,6 +7468,23 @@ | |||||
"semver": "bin/semver.js" | "semver": "bin/semver.js" | ||||
} | } | ||||
}, | }, | ||||
"node_modules/markdown-it": { | |||||
"version": "14.1.0", | |||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", | |||||
"integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", | |||||
"license": "MIT", | |||||
"dependencies": { | |||||
"argparse": "^2.0.1", | |||||
"entities": "^4.4.0", | |||||
"linkify-it": "^5.0.0", | |||||
"mdurl": "^2.0.0", | |||||
"punycode.js": "^2.3.1", | |||||
"uc.micro": "^2.1.0" | |||||
}, | |||||
"bin": { | |||||
"markdown-it": "bin/markdown-it.mjs" | |||||
} | |||||
}, | |||||
"node_modules/math-intrinsics": { | "node_modules/math-intrinsics": { | ||||
"version": "1.1.0", | "version": "1.1.0", | ||||
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", | "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", | ||||
@@ -6958,6 +7493,12 @@ | |||||
"node": ">= 0.4" | "node": ">= 0.4" | ||||
} | } | ||||
}, | }, | ||||
"node_modules/mdurl": { | |||||
"version": "2.0.0", | |||||
"resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", | |||||
"integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", | |||||
"license": "MIT" | |||||
}, | |||||
"node_modules/memoize-one": { | "node_modules/memoize-one": { | ||||
"version": "6.0.0", | "version": "6.0.0", | ||||
"resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", | "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", | ||||
@@ -7045,6 +7586,28 @@ | |||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" | ||||
}, | }, | ||||
"node_modules/mui-color-input": { | |||||
"version": "7.0.0", | |||||
"resolved": "https://registry.npmjs.org/mui-color-input/-/mui-color-input-7.0.0.tgz", | |||||
"integrity": "sha512-b9pHCCoRjD9CDTaw2b5S+UbBhJjAsB1NzdEqjF/9NzRFD0lD8zrlMxMwvI/NqsHkNxj2PteIFh/mzo2gBqnG9g==", | |||||
"license": "MIT", | |||||
"dependencies": { | |||||
"@ctrl/tinycolor": "^4.1.0" | |||||
}, | |||||
"peerDependencies": { | |||||
"@emotion/react": "^11.13.0", | |||||
"@emotion/styled": "^11.13.0", | |||||
"@mui/material": "^7.0.0", | |||||
"@types/react": "^18.0.0 || ^19.0.0", | |||||
"react": "^18.0.0 || ^19.0.0", | |||||
"react-dom": "^18.0.0 || ^19.0.0" | |||||
}, | |||||
"peerDependenciesMeta": { | |||||
"@types/react": { | |||||
"optional": true | |||||
} | |||||
} | |||||
}, | |||||
"node_modules/mz": { | "node_modules/mz": { | ||||
"version": "2.7.0", | "version": "2.7.0", | ||||
"resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", | "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", | ||||
@@ -7396,6 +7959,12 @@ | |||||
"node": ">= 0.8.0" | "node": ">= 0.8.0" | ||||
} | } | ||||
}, | }, | ||||
"node_modules/orderedmap": { | |||||
"version": "2.1.1", | |||||
"resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-2.1.1.tgz", | |||||
"integrity": "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==", | |||||
"license": "MIT" | |||||
}, | |||||
"node_modules/p-limit": { | "node_modules/p-limit": { | ||||
"version": "3.1.0", | "version": "3.1.0", | ||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", | ||||
@@ -7900,6 +8469,201 @@ | |||||
"react-is": "^16.13.1" | "react-is": "^16.13.1" | ||||
} | } | ||||
}, | }, | ||||
"node_modules/prosemirror-changeset": { | |||||
"version": "2.3.1", | |||||
"resolved": "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.3.1.tgz", | |||||
"integrity": "sha512-j0kORIBm8ayJNl3zQvD1TTPHJX3g042et6y/KQhZhnPrruO8exkTgG8X+NRpj7kIyMMEx74Xb3DyMIBtO0IKkQ==", | |||||
"license": "MIT", | |||||
"dependencies": { | |||||
"prosemirror-transform": "^1.0.0" | |||||
} | |||||
}, | |||||
"node_modules/prosemirror-collab": { | |||||
"version": "1.3.1", | |||||
"resolved": "https://registry.npmjs.org/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz", | |||||
"integrity": "sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==", | |||||
"license": "MIT", | |||||
"dependencies": { | |||||
"prosemirror-state": "^1.0.0" | |||||
} | |||||
}, | |||||
"node_modules/prosemirror-commands": { | |||||
"version": "1.7.1", | |||||
"resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.7.1.tgz", | |||||
"integrity": "sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==", | |||||
"license": "MIT", | |||||
"dependencies": { | |||||
"prosemirror-model": "^1.0.0", | |||||
"prosemirror-state": "^1.0.0", | |||||
"prosemirror-transform": "^1.10.2" | |||||
} | |||||
}, | |||||
"node_modules/prosemirror-dropcursor": { | |||||
"version": "1.8.2", | |||||
"resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.2.tgz", | |||||
"integrity": "sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==", | |||||
"license": "MIT", | |||||
"dependencies": { | |||||
"prosemirror-state": "^1.0.0", | |||||
"prosemirror-transform": "^1.1.0", | |||||
"prosemirror-view": "^1.1.0" | |||||
} | |||||
}, | |||||
"node_modules/prosemirror-gapcursor": { | |||||
"version": "1.3.2", | |||||
"resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.3.2.tgz", | |||||
"integrity": "sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==", | |||||
"license": "MIT", | |||||
"dependencies": { | |||||
"prosemirror-keymap": "^1.0.0", | |||||
"prosemirror-model": "^1.0.0", | |||||
"prosemirror-state": "^1.0.0", | |||||
"prosemirror-view": "^1.0.0" | |||||
} | |||||
}, | |||||
"node_modules/prosemirror-history": { | |||||
"version": "1.4.1", | |||||
"resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.4.1.tgz", | |||||
"integrity": "sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==", | |||||
"license": "MIT", | |||||
"dependencies": { | |||||
"prosemirror-state": "^1.2.2", | |||||
"prosemirror-transform": "^1.0.0", | |||||
"prosemirror-view": "^1.31.0", | |||||
"rope-sequence": "^1.3.0" | |||||
} | |||||
}, | |||||
"node_modules/prosemirror-inputrules": { | |||||
"version": "1.5.0", | |||||
"resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.5.0.tgz", | |||||
"integrity": "sha512-K0xJRCmt+uSw7xesnHmcn72yBGTbY45vm8gXI4LZXbx2Z0jwh5aF9xrGQgrVPu0WbyFVFF3E/o9VhJYz6SQWnA==", | |||||
"license": "MIT", | |||||
"dependencies": { | |||||
"prosemirror-state": "^1.0.0", | |||||
"prosemirror-transform": "^1.0.0" | |||||
} | |||||
}, | |||||
"node_modules/prosemirror-keymap": { | |||||
"version": "1.2.3", | |||||
"resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.3.tgz", | |||||
"integrity": "sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==", | |||||
"license": "MIT", | |||||
"dependencies": { | |||||
"prosemirror-state": "^1.0.0", | |||||
"w3c-keyname": "^2.2.0" | |||||
} | |||||
}, | |||||
"node_modules/prosemirror-markdown": { | |||||
"version": "1.13.2", | |||||
"resolved": "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.13.2.tgz", | |||||
"integrity": "sha512-FPD9rHPdA9fqzNmIIDhhnYQ6WgNoSWX9StUZ8LEKapaXU9i6XgykaHKhp6XMyXlOWetmaFgGDS/nu/w9/vUc5g==", | |||||
"license": "MIT", | |||||
"dependencies": { | |||||
"@types/markdown-it": "^14.0.0", | |||||
"markdown-it": "^14.0.0", | |||||
"prosemirror-model": "^1.25.0" | |||||
} | |||||
}, | |||||
"node_modules/prosemirror-menu": { | |||||
"version": "1.2.5", | |||||
"resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.5.tgz", | |||||
"integrity": "sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==", | |||||
"license": "MIT", | |||||
"dependencies": { | |||||
"crelt": "^1.0.0", | |||||
"prosemirror-commands": "^1.0.0", | |||||
"prosemirror-history": "^1.0.0", | |||||
"prosemirror-state": "^1.0.0" | |||||
} | |||||
}, | |||||
"node_modules/prosemirror-model": { | |||||
"version": "1.25.1", | |||||
"resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.25.1.tgz", | |||||
"integrity": "sha512-AUvbm7qqmpZa5d9fPKMvH1Q5bqYQvAZWOGRvxsB6iFLyycvC9MwNemNVjHVrWgjaoxAfY8XVg7DbvQ/qxvI9Eg==", | |||||
"license": "MIT", | |||||
"dependencies": { | |||||
"orderedmap": "^2.0.0" | |||||
} | |||||
}, | |||||
"node_modules/prosemirror-schema-basic": { | |||||
"version": "1.2.4", | |||||
"resolved": "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.4.tgz", | |||||
"integrity": "sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==", | |||||
"license": "MIT", | |||||
"dependencies": { | |||||
"prosemirror-model": "^1.25.0" | |||||
} | |||||
}, | |||||
"node_modules/prosemirror-schema-list": { | |||||
"version": "1.5.1", | |||||
"resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.5.1.tgz", | |||||
"integrity": "sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==", | |||||
"license": "MIT", | |||||
"dependencies": { | |||||
"prosemirror-model": "^1.0.0", | |||||
"prosemirror-state": "^1.0.0", | |||||
"prosemirror-transform": "^1.7.3" | |||||
} | |||||
}, | |||||
"node_modules/prosemirror-state": { | |||||
"version": "1.4.3", | |||||
"resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.3.tgz", | |||||
"integrity": "sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==", | |||||
"license": "MIT", | |||||
"dependencies": { | |||||
"prosemirror-model": "^1.0.0", | |||||
"prosemirror-transform": "^1.0.0", | |||||
"prosemirror-view": "^1.27.0" | |||||
} | |||||
}, | |||||
"node_modules/prosemirror-tables": { | |||||
"version": "1.7.1", | |||||
"resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.7.1.tgz", | |||||
"integrity": "sha512-eRQ97Bf+i9Eby99QbyAiyov43iOKgWa7QCGly+lrDt7efZ1v8NWolhXiB43hSDGIXT1UXgbs4KJN3a06FGpr1Q==", | |||||
"license": "MIT", | |||||
"dependencies": { | |||||
"prosemirror-keymap": "^1.2.2", | |||||
"prosemirror-model": "^1.25.0", | |||||
"prosemirror-state": "^1.4.3", | |||||
"prosemirror-transform": "^1.10.3", | |||||
"prosemirror-view": "^1.39.1" | |||||
} | |||||
}, | |||||
"node_modules/prosemirror-trailing-node": { | |||||
"version": "3.0.0", | |||||
"resolved": "https://registry.npmjs.org/prosemirror-trailing-node/-/prosemirror-trailing-node-3.0.0.tgz", | |||||
"integrity": "sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==", | |||||
"license": "MIT", | |||||
"dependencies": { | |||||
"@remirror/core-constants": "3.0.0", | |||||
"escape-string-regexp": "^4.0.0" | |||||
}, | |||||
"peerDependencies": { | |||||
"prosemirror-model": "^1.22.1", | |||||
"prosemirror-state": "^1.4.2", | |||||
"prosemirror-view": "^1.33.8" | |||||
} | |||||
}, | |||||
"node_modules/prosemirror-transform": { | |||||
"version": "1.10.4", | |||||
"resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.10.4.tgz", | |||||
"integrity": "sha512-pwDy22nAnGqNR1feOQKHxoFkkUtepoFAd3r2hbEDsnf4wp57kKA36hXsB3njA9FtONBEwSDnDeCiJe+ItD+ykw==", | |||||
"license": "MIT", | |||||
"dependencies": { | |||||
"prosemirror-model": "^1.21.0" | |||||
} | |||||
}, | |||||
"node_modules/prosemirror-view": { | |||||
"version": "1.40.0", | |||||
"resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.40.0.tgz", | |||||
"integrity": "sha512-2G3svX0Cr1sJjkD/DYWSe3cfV5VPVTBOxI9XQEGWJDFEpsZb/gh4MV29ctv+OJx2RFX4BLt09i+6zaGM/ldkCw==", | |||||
"license": "MIT", | |||||
"dependencies": { | |||||
"prosemirror-model": "^1.20.0", | |||||
"prosemirror-state": "^1.0.0", | |||||
"prosemirror-transform": "^1.1.0" | |||||
} | |||||
}, | |||||
"node_modules/proxy-from-env": { | "node_modules/proxy-from-env": { | ||||
"version": "1.1.0", | "version": "1.1.0", | ||||
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", | ||||
@@ -7913,6 +8677,15 @@ | |||||
"node": ">=6" | "node": ">=6" | ||||
} | } | ||||
}, | }, | ||||
"node_modules/punycode.js": { | |||||
"version": "2.3.1", | |||||
"resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", | |||||
"integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", | |||||
"license": "MIT", | |||||
"engines": { | |||||
"node": ">=6" | |||||
} | |||||
}, | |||||
"node_modules/qrcode.react": { | "node_modules/qrcode.react": { | ||||
"version": "4.2.0", | "version": "4.2.0", | ||||
"resolved": "https://registry.npmjs.org/qrcode.react/-/qrcode.react-4.2.0.tgz", | "resolved": "https://registry.npmjs.org/qrcode.react/-/qrcode.react-4.2.0.tgz", | ||||
@@ -8431,6 +9204,12 @@ | |||||
"node": ">=8" | "node": ">=8" | ||||
} | } | ||||
}, | }, | ||||
"node_modules/rope-sequence": { | |||||
"version": "1.3.4", | |||||
"resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz", | |||||
"integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==", | |||||
"license": "MIT" | |||||
}, | |||||
"node_modules/run-parallel": { | "node_modules/run-parallel": { | ||||
"version": "1.2.0", | "version": "1.2.0", | ||||
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", | ||||
@@ -9425,6 +10204,7 @@ | |||||
"version": "6.3.7", | "version": "6.3.7", | ||||
"resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz", | "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz", | ||||
"integrity": "sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==", | "integrity": "sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==", | ||||
"license": "MIT", | |||||
"dependencies": { | "dependencies": { | ||||
"@popperjs/core": "^2.9.0" | "@popperjs/core": "^2.9.0" | ||||
} | } | ||||
@@ -9605,6 +10385,12 @@ | |||||
"node": ">=14.17" | "node": ">=14.17" | ||||
} | } | ||||
}, | }, | ||||
"node_modules/uc.micro": { | |||||
"version": "2.1.0", | |||||
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", | |||||
"integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", | |||||
"license": "MIT" | |||||
}, | |||||
"node_modules/unbox-primitive": { | "node_modules/unbox-primitive": { | ||||
"version": "1.0.2", | "version": "1.0.2", | ||||
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", | "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", | ||||
@@ -9768,6 +10554,12 @@ | |||||
"node": ">=0.10.0" | "node": ">=0.10.0" | ||||
} | } | ||||
}, | }, | ||||
"node_modules/w3c-keyname": { | |||||
"version": "2.2.8", | |||||
"resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", | |||||
"integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", | |||||
"license": "MIT" | |||||
}, | |||||
"node_modules/warning": { | "node_modules/warning": { | ||||
"version": "4.0.3", | "version": "4.0.3", | ||||
"resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", | "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", | ||||
@@ -5,6 +5,7 @@ import { getServerI18n } from "@/i18n"; | |||||
import DashboardPage from "@/components/DashboardPage"; | import DashboardPage from "@/components/DashboardPage"; | ||||
import { SearchParams } from "@/app/utils/fetchUtil"; | import { SearchParams } from "@/app/utils/fetchUtil"; | ||||
export const metadata: Metadata = { | export const metadata: Metadata = { | ||||
title: "Dashboard", | title: "Dashboard", | ||||
}; | }; | ||||
@@ -1,6 +1,9 @@ | |||||
import DoSearch from "@/components/DoSearch"; | |||||
import { getServerI18n } from "@/i18n" | |||||
// import DoSearch from "@/components/DoSearch"; | |||||
// import { getServerI18n } from "@/i18n" | |||||
import DoSearch from "../../../components/DoSearch"; | |||||
import { getServerI18n } from "../../../i18n" | |||||
import { Stack, Typography } from "@mui/material"; | import { Stack, Typography } from "@mui/material"; | ||||
import { I18nProvider } from "@/i18n"; | |||||
import { Metadata } from "next"; | import { Metadata } from "next"; | ||||
import { Suspense } from "react"; | import { Suspense } from "react"; | ||||
@@ -20,9 +23,12 @@ const DeliveryOrder: React.FC = async () => { | |||||
rowGap={2} | rowGap={2} | ||||
> | > | ||||
</Stack> | </Stack> | ||||
<Suspense fallback={<DoSearch.Loading />}> | |||||
<DoSearch /> | |||||
</Suspense> | |||||
<I18nProvider namespaces={["do", "common"]}> | |||||
<Suspense fallback={<DoSearch.Loading />}> | |||||
<DoSearch /> | |||||
</Suspense> | |||||
</I18nProvider> | |||||
</> | </> | ||||
) | ) | ||||
} | } | ||||
@@ -1,6 +1,10 @@ | |||||
import { preloadInventory } from "@/app/api/inventory"; | |||||
import InventorySearch from "@/components/InventorySearch"; | |||||
import { I18nProvider, getServerI18n } from "@/i18n"; | |||||
// import { preloadInventory } from "@/app/api/inventory"; | |||||
// import InventorySearch from "@/components/InventorySearch"; | |||||
// import { I18nProvider, getServerI18n } from "@/i18n"; | |||||
import { preloadInventory } from "../../../app/api/inventory"; | |||||
import InventorySearch from "../../../components/InventorySearch"; | |||||
import { I18nProvider, getServerI18n } from "../../../i18n"; | |||||
import { Stack, Typography } from "@mui/material"; | import { Stack, Typography } from "@mui/material"; | ||||
import { Metadata } from "next"; | import { Metadata } from "next"; | ||||
import { Suspense } from "react"; | import { Suspense } from "react"; | ||||
@@ -1,3 +1,4 @@ | |||||
import AppBar from "@/components/AppBar"; | import AppBar from "@/components/AppBar"; | ||||
import { AuthOptions, getServerSession } from "next-auth"; | import { AuthOptions, getServerSession } from "next-auth"; | ||||
import { authOptions, SessionWithTokens } from "@/config/authConfig"; | import { authOptions, SessionWithTokens } from "@/config/authConfig"; | ||||
@@ -14,6 +15,7 @@ import SessionProviderWrapper from "@/components/SessionProviderWrapper/SessionP | |||||
import QrCodeScannerProvider from "@/components/QrCodeScannerProvider/QrCodeScannerProvider"; | import QrCodeScannerProvider from "@/components/QrCodeScannerProvider/QrCodeScannerProvider"; | ||||
import { I18nProvider } from "@/i18n"; | import { I18nProvider } from "@/i18n"; | ||||
export default async function MainLayout({ | export default async function MainLayout({ | ||||
children, | children, | ||||
}: { | }: { | ||||
@@ -1,4 +1,3 @@ | |||||
import { SearchParams } from "@/app/utils/fetchUtil"; | import { SearchParams } from "@/app/utils/fetchUtil"; | ||||
import { getServerI18n } from "@/i18n"; | import { getServerI18n } from "@/i18n"; | ||||
import Add from "@mui/icons-material/Add"; | import Add from "@mui/icons-material/Add"; | ||||
@@ -1,6 +1,7 @@ | |||||
import { PreloadPickOrder } from "@/app/api/pickOrder"; | import { PreloadPickOrder } from "@/app/api/pickOrder"; | ||||
import PickOrderSearch from "@/components/PickOrderSearch"; | import PickOrderSearch from "@/components/PickOrderSearch"; | ||||
import { getServerI18n } from "@/i18n"; | import { getServerI18n } from "@/i18n"; | ||||
import { I18nProvider } from "@/i18n"; | |||||
import { Stack, Typography } from "@mui/material"; | import { Stack, Typography } from "@mui/material"; | ||||
import { Metadata } from "next"; | import { Metadata } from "next"; | ||||
import { Suspense } from "react"; | import { Suspense } from "react"; | ||||
@@ -26,9 +27,11 @@ const PickOrder: React.FC = async () => { | |||||
{t("Pick Order")} | {t("Pick Order")} | ||||
</Typography> | </Typography> | ||||
</Stack> | </Stack> | ||||
<Suspense fallback={<PickOrderSearch.Loading />}> | |||||
<PickOrderSearch /> | |||||
</Suspense> | |||||
<I18nProvider namespaces={["pickOrder", "common"]}> | |||||
<Suspense fallback={<PickOrderSearch.Loading />}> | |||||
<PickOrderSearch /> | |||||
</Suspense> | |||||
</I18nProvider> | |||||
</> | </> | ||||
) | ) | ||||
} | } | ||||
@@ -3,6 +3,9 @@ import { TypeEnum } from "@/app/utils/typeEnum"; | |||||
import CreateProductMaterial from "@/components/CreateItem"; | import CreateProductMaterial from "@/components/CreateItem"; | ||||
import PoDetail from "@/components/PoDetail"; | import PoDetail from "@/components/PoDetail"; | ||||
import { I18nProvider, getServerI18n } from "@/i18n"; | import { I18nProvider, getServerI18n } from "@/i18n"; | ||||
import { Typography } from "@mui/material"; | import { Typography } from "@mui/material"; | ||||
import isString from "lodash/isString"; | import isString from "lodash/isString"; | ||||
import { notFound } from "next/navigation"; | import { notFound } from "next/navigation"; | ||||
@@ -1,7 +1,12 @@ | |||||
import { preloadClaims } from "@/app/api/claims"; | |||||
import ClaimSearch from "@/components/ClaimSearch"; | |||||
import PoSearch from "@/components/PoSearch"; | |||||
import { getServerI18n, I18nProvider } from "@/i18n"; | |||||
//import { preloadClaims } from "@/app/api/claims"; | |||||
// import ClaimSearch from "@/components/ClaimSearch"; | |||||
// import PoSearch from "@/components/PoSearch"; | |||||
// import { getServerI18n, I18nProvider } from "@/i18n"; | |||||
import { preloadClaims } from "../../../app/api/claims"; | |||||
import ClaimSearch from "../../../components/ClaimSearch"; | |||||
import PoSearch from "../../../components/PoSearch"; | |||||
import { getServerI18n, I18nProvider } from "../../../i18n"; | |||||
import Add from "@mui/icons-material/Add"; | import Add from "@mui/icons-material/Add"; | ||||
import Button from "@mui/material/Button"; | import Button from "@mui/material/Button"; | ||||
import Stack from "@mui/material/Stack"; | import Stack from "@mui/material/Stack"; | ||||
@@ -1,7 +1,13 @@ | |||||
import { preloadClaims } from "@/app/api/claims"; | |||||
import ClaimSearch from "@/components/ClaimSearch"; | |||||
import ProductionProcess from "@/components/ProductionProcess"; | |||||
import { getServerI18n } from "@/i18n"; | |||||
// import { preloadClaims } from "@/app/api/claims"; | |||||
// import ClaimSearch from "@/components/ClaimSearch"; | |||||
// import ProductionProcess from "@/components/ProductionProcess"; | |||||
//import { getServerI18n } from "@/i18n"; | |||||
import { preloadClaims } from "../../../app/api/claims"; | |||||
import ClaimSearch from "../../../components/ClaimSearch"; | |||||
import ProductionProcess from "../../../components/ProductionProcess"; | |||||
import { getServerI18n } from "../../../i18n"; | |||||
import Add from "@mui/icons-material/Add"; | import Add from "@mui/icons-material/Add"; | ||||
import Button from "@mui/material/Button"; | import Button from "@mui/material/Button"; | ||||
import Stack from "@mui/material/Stack"; | import Stack from "@mui/material/Stack"; | ||||
@@ -1,5 +1,8 @@ | |||||
import CreateProject from "@/components/CreateProject"; | |||||
import { I18nProvider, getServerI18n } from "@/i18n"; | |||||
// import CreateProject from "@/components/CreateProject"; | |||||
// import { I18nProvider, getServerI18n } from "@/i18n"; | |||||
import CreateProject from "../../../../components/CreateProject"; | |||||
import { I18nProvider, getServerI18n } from "../../../../i18n"; | |||||
import Typography from "@mui/material/Typography"; | import Typography from "@mui/material/Typography"; | ||||
import { Metadata } from "next"; | import { Metadata } from "next"; | ||||
@@ -1,6 +1,11 @@ | |||||
import { preloadProjects } from "@/app/api/projects"; | |||||
import ProjectSearch from "@/components/ProjectSearch"; | |||||
import { getServerI18n } from "@/i18n"; | |||||
// import { preloadProjects } from "@/app/api/projects"; | |||||
// import ProjectSearch from "@/components/ProjectSearch"; | |||||
// import { getServerI18n } from "@/i18n"; | |||||
import { preloadProjects } from "../../../app/api/projects"; | |||||
import ProjectSearch from "../../../components/ProjectSearch"; | |||||
import { getServerI18n } from "../../../i18n"; | |||||
import Add from "@mui/icons-material/Add"; | import Add from "@mui/icons-material/Add"; | ||||
import Button from "@mui/material/Button"; | import Button from "@mui/material/Button"; | ||||
import Stack from "@mui/material/Stack"; | import Stack from "@mui/material/Stack"; | ||||
@@ -1,12 +1,17 @@ | |||||
import { Metadata } from "next"; | import { Metadata } from "next"; | ||||
import { getServerI18n, I18nProvider } from "@/i18n"; | |||||
// import { getServerI18n, I18nProvider } from "@/i18n"; | |||||
import { getServerI18n, I18nProvider } from "../../../../../i18n"; | |||||
import Typography from "@mui/material/Typography"; | import Typography from "@mui/material/Typography"; | ||||
import { fetchQcItemDetails, preloadQcItem } from "@/app/api/settings/qcItem"; | |||||
import QcItemSave from "@/components/QcItemSave"; | |||||
// import { fetchQcItemDetails, preloadQcItem } from "@/app/api/settings/qcItem"; | |||||
// import QcItemSave from "@/components/QcItemSave"; | |||||
import { fetchQcItemDetails, preloadQcItem } from "../../../../../app/api/settings/qcItem"; | |||||
import QcItemSave from "../../../../../components/QcItemSave"; | |||||
import { isArray } from "lodash"; | import { isArray } from "lodash"; | ||||
import { notFound } from "next/navigation"; | import { notFound } from "next/navigation"; | ||||
import { ServerFetchError } from "@/app/utils/fetchUtil"; | |||||
import DetailScheduleDetail from "@/components/DetailScheduleDetail"; | |||||
// import { ServerFetchError } from "@/app/utils/fetchUtil"; | |||||
// import DetailScheduleDetail from "@/components/DetailScheduleDetail"; | |||||
import { ServerFetchError } from "../../../../../app/utils/fetchUtil"; | |||||
import DetailScheduleDetail from "../../../../../components/DetailScheduleDetail"; | |||||
export const metadata: Metadata = { | export const metadata: Metadata = { | ||||
title: "Qc Item", | title: "Qc Item", | ||||
@@ -38,7 +43,7 @@ const DetailScheduling: React.FC<Props> = async ({ searchParams }) => { | |||||
<Typography variant="h4" marginInlineEnd={2}> | <Typography variant="h4" marginInlineEnd={2}> | ||||
{t("FG Production Schedule")} | {t("FG Production Schedule")} | ||||
</Typography> | </Typography> | ||||
<I18nProvider namespaces={["schedule"]}> | |||||
<I18nProvider namespaces={["schedule", "common", "project"]}> | |||||
<DetailScheduleDetail id={id}/> | <DetailScheduleDetail id={id}/> | ||||
</I18nProvider> | </I18nProvider> | ||||
</>; | </>; | ||||
@@ -1,6 +1,11 @@ | |||||
import { TypeEnum } from "@/app/utils/typeEnum"; | |||||
import DetailSchedule from "@/components/DetailSchedule"; | |||||
import { getServerI18n } from "@/i18n"; | |||||
// import { TypeEnum } from "@/app/utils/typeEnum"; | |||||
// import DetailSchedule from "@/components/DetailSchedule"; | |||||
// import { getServerI18n } from "@/i18n"; | |||||
import { TypeEnum } from "../../../../app/utils/typeEnum"; | |||||
import DetailSchedule from "../../../../components/DetailSchedule"; | |||||
import { getServerI18n } from "../../../../i18n"; | |||||
import { I18nProvider } from "@/i18n"; | |||||
import Stack from "@mui/material/Stack"; | import Stack from "@mui/material/Stack"; | ||||
import Typography from "@mui/material/Typography"; | import Typography from "@mui/material/Typography"; | ||||
import { Metadata } from "next"; | import { Metadata } from "next"; | ||||
@@ -12,7 +17,7 @@ export const metadata: Metadata = { | |||||
const DetailScheduling: React.FC = async () => { | const DetailScheduling: React.FC = async () => { | ||||
const project = TypeEnum.PRODUCT | const project = TypeEnum.PRODUCT | ||||
const { t } = await getServerI18n(project); | |||||
const { t } = await getServerI18n("detailScheduling"); | |||||
// preloadClaims(); | // preloadClaims(); | ||||
return ( | return ( | ||||
@@ -27,9 +32,11 @@ const DetailScheduling: React.FC = async () => { | |||||
{t("Detail Scheduling")} | {t("Detail Scheduling")} | ||||
</Typography> | </Typography> | ||||
</Stack> | </Stack> | ||||
<Suspense fallback={<DetailSchedule.Loading />}> | |||||
<DetailSchedule /> | |||||
</Suspense> | |||||
<I18nProvider namespaces={["detailScheduling", "items", "common","schedule"]}> | |||||
<Suspense fallback={<DetailSchedule.Loading />}> | |||||
<DetailSchedule /> | |||||
</Suspense> | |||||
</I18nProvider> | |||||
</> | </> | ||||
); | ); | ||||
}; | }; | ||||
@@ -39,7 +39,7 @@ const roughSchedulingDetail: React.FC = async () => { | |||||
{t("Create product")} | {t("Create product")} | ||||
</Button> */} | </Button> */} | ||||
</Stack> | </Stack> | ||||
<I18nProvider namespaces={["schedule"]}> | |||||
<I18nProvider namespaces={["schedule","project","common"]}> | |||||
<Suspense fallback={<RoughScheduleDetailView.Loading />}> | <Suspense fallback={<RoughScheduleDetailView.Loading />}> | ||||
<RoughScheduleDetailView /> | <RoughScheduleDetailView /> | ||||
</Suspense> | </Suspense> | ||||
@@ -1,6 +1,9 @@ | |||||
import { TypeEnum } from "@/app/utils/typeEnum"; | |||||
import RoughSchedule from "@/components/RoughSchedule"; | |||||
import { getServerI18n, I18nProvider } from "@/i18n"; | |||||
// import { TypeEnum } from "@/app/utils/typeEnum"; | |||||
// import RoughSchedule from "@/components/RoughSchedule"; | |||||
// import { getServerI18n, I18nProvider } from "@/i18n"; | |||||
import { TypeEnum } from "../../../../app/utils/typeEnum"; | |||||
import RoughSchedule from "../../../../components/RoughSchedule"; | |||||
import { getServerI18n, I18nProvider } from "../../../../i18n"; | |||||
import Add from "@mui/icons-material/Add"; | import Add from "@mui/icons-material/Add"; | ||||
import Button from "@mui/material/Button"; | import Button from "@mui/material/Button"; | ||||
import Stack from "@mui/material/Stack"; | import Stack from "@mui/material/Stack"; | ||||
@@ -29,6 +32,7 @@ const roughScheduling: React.FC = async () => { | |||||
<Typography variant="h4" marginInlineEnd={2}> | <Typography variant="h4" marginInlineEnd={2}> | ||||
{t("Demand Forecast")} | {t("Demand Forecast")} | ||||
</Typography> | </Typography> | ||||
{/* <Button | {/* <Button | ||||
variant="contained" | variant="contained" | ||||
startIcon={<Add />} | startIcon={<Add />} | ||||
@@ -38,7 +42,7 @@ const roughScheduling: React.FC = async () => { | |||||
{t("Create product")} | {t("Create product")} | ||||
</Button> */} | </Button> */} | ||||
</Stack> | </Stack> | ||||
<I18nProvider namespaces={["schedule"]}> | |||||
<I18nProvider namespaces={["schedule", "common","items","project"]}> | |||||
<Suspense fallback={<RoughSchedule.Loading />}> | <Suspense fallback={<RoughSchedule.Loading />}> | ||||
<RoughSchedule /> | <RoughSchedule /> | ||||
</Suspense> | </Suspense> | ||||
@@ -1,11 +1,16 @@ | |||||
import { Edit } from "@mui/icons-material"; | import { Edit } from "@mui/icons-material"; | ||||
import { Metadata } from "next"; | import { Metadata } from "next"; | ||||
import { I18nProvider, getServerI18n } from "@/i18n"; | |||||
import EditUser from "@/components/EditUser"; | |||||
// import { I18nProvider, getServerI18n } from "@/i18n"; | |||||
// import EditUser from "@/components/EditUser"; | |||||
import { I18nProvider, getServerI18n } from "../../../../../i18n"; | |||||
import EditUser from "../../../../../components/EditUser"; | |||||
import { Typography } from "@mui/material"; | import { Typography } from "@mui/material"; | ||||
import { Suspense } from "react"; | import { Suspense } from "react"; | ||||
import { preloadUser } from "@/app/api/user"; | |||||
import { searchParamsProps } from "@/app/utils/fetchUtil"; | |||||
// import { preloadUser } from "@/app/api/user"; | |||||
// import { searchParamsProps } from "@/app/utils/fetchUtil"; | |||||
import { preloadUser } from "../../../../../app/api/user"; | |||||
import { searchParamsProps } from "../../../../../app/utils/fetchUtil"; | |||||
const User: React.FC<searchParamsProps> = async ({ searchParams }) => { | const User: React.FC<searchParamsProps> = async ({ searchParams }) => { | ||||
const { t } = await getServerI18n("user"); | const { t } = await getServerI18n("user"); | ||||
@@ -1,5 +1,7 @@ | |||||
import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
import { BASE_API_URL } from "@/config/api"; | |||||
// import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
// import { BASE_API_URL } from "@/config/api"; | |||||
import { serverFetchJson } from "../../utils/fetchUtil"; | |||||
import { BASE_API_URL } from "../../../config/api"; | |||||
import { cache } from "react"; | import { cache } from "react"; | ||||
export interface DoResult { | export interface DoResult { | ||||
@@ -1,7 +1,10 @@ | |||||
"use server"; | "use server"; | ||||
import { serverFetchJson, serverFetchWithNoContent } from "@/app/utils/fetchUtil"; | |||||
import { BASE_API_URL } from "@/config/api"; | |||||
// import { serverFetchJson, serverFetchWithNoContent } from "@/app/utils/fetchUtil"; | |||||
// import { BASE_API_URL } from "@/config/api"; | |||||
import { serverFetchJson, serverFetchWithNoContent } from "../../utils/fetchUtil"; | |||||
import { BASE_API_URL } from "../../../config/api"; | |||||
import { MailSetting, MailTemplate } from "."; | import { MailSetting, MailTemplate } from "."; | ||||
export interface MailSave { | export interface MailSave { | ||||
@@ -1,5 +1,8 @@ | |||||
import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
import { BASE_API_URL } from "@/config/api"; | |||||
// import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
// import { BASE_API_URL } from "@/config/api"; | |||||
import { serverFetchJson } from "../../utils/fetchUtil"; | |||||
import { BASE_API_URL } from "../../../config/api"; | |||||
import { cache } from "react"; | import { cache } from "react"; | ||||
import "server-only"; | import "server-only"; | ||||
@@ -1,7 +1,9 @@ | |||||
"use server"; | "use server"; | ||||
import { serverFetchBlob } from "@/app/utils/fetchUtil"; | |||||
import { BASE_API_URL } from "@/config/api"; | |||||
// import { serverFetchBlob } from "@/app/utils/fetchUtil"; | |||||
// import { BASE_API_URL } from "@/config/api"; | |||||
import { serverFetchBlob } from "../../utils/fetchUtil"; | |||||
import { BASE_API_URL } from "../../../config/api"; | |||||
export interface FileResponse { | export interface FileResponse { | ||||
@@ -1,6 +1,8 @@ | |||||
import "server-only"; | import "server-only"; | ||||
import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
import { BASE_API_URL } from "@/config/api"; | |||||
// import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
// import { BASE_API_URL } from "@/config/api"; | |||||
import { serverFetchJson } from "../../utils/fetchUtil"; | |||||
import { BASE_API_URL } from "../../../config/api"; | |||||
import { cache } from "react"; | import { cache } from "react"; | ||||
interface PickOrderItemInfo { | interface PickOrderItemInfo { | ||||
@@ -1,10 +1,12 @@ | |||||
"use server"; | "use server"; | ||||
import { BASE_API_URL } from "@/config/api"; | |||||
// import { BASE_API_URL } from "@/config/api"; | |||||
import { BASE_API_URL } from "../../../config/api"; | |||||
// import { ServerFetchError, serverFetchJson, serverFetchWithNoContent } from "@/app/utils/fetchUtil"; | // import { ServerFetchError, serverFetchJson, serverFetchWithNoContent } from "@/app/utils/fetchUtil"; | ||||
import { revalidateTag } from "next/cache"; | import { revalidateTag } from "next/cache"; | ||||
import { cache } from "react"; | import { cache } from "react"; | ||||
import { PoResult, StockInLine } from "."; | import { PoResult, StockInLine } from "."; | ||||
import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
//import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
import { serverFetchJson } from "../../utils/fetchUtil"; | |||||
import { QcItemResult } from "../settings/qcItem"; | import { QcItemResult } from "../settings/qcItem"; | ||||
import { RecordsRes } from "../utils"; | import { RecordsRes } from "../utils"; | ||||
// import { BASE_API_URL } from "@/config/api"; | // import { BASE_API_URL } from "@/config/api"; | ||||
@@ -1,7 +1,9 @@ | |||||
import { cache } from "react"; | import { cache } from "react"; | ||||
import "server-only"; | import "server-only"; | ||||
import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
import { BASE_API_URL } from "@/config/api"; | |||||
// import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
// import { BASE_API_URL } from "@/config/api"; | |||||
import { serverFetchJson } from "../../utils/fetchUtil"; | |||||
import { BASE_API_URL } from "../../../config/api"; | |||||
import { Uom } from "../settings/uom"; | import { Uom } from "../settings/uom"; | ||||
import { RecordsRes } from "../utils"; | import { RecordsRes } from "../utils"; | ||||
@@ -1,7 +1,9 @@ | |||||
"use server"; | "use server"; | ||||
import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
import { BASE_API_URL } from "@/config/api"; | |||||
// import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
// import { BASE_API_URL } from "@/config/api"; | |||||
import { serverFetchJson } from "../../utils/fetchUtil"; | |||||
import { BASE_API_URL } from "../../../config/api"; | |||||
import { Task, TaskGroup } from "../tasks"; | import { Task, TaskGroup } from "../tasks"; | ||||
export interface CreateProjectInputs { | export interface CreateProjectInputs { | ||||
@@ -1,8 +1,10 @@ | |||||
"use server"; | "use server"; | ||||
import { BASE_API_URL } from "@/config/api"; | |||||
//import { BASE_API_URL } from "@/config/api"; | |||||
import { BASE_API_URL } from "../../../config/api"; | |||||
import { revalidateTag } from "next/cache"; | import { revalidateTag } from "next/cache"; | ||||
import { cache } from "react"; | import { cache } from "react"; | ||||
import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
//import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
import { serverFetchJson } from "../../utils/fetchUtil"; | |||||
import { QcItemWithChecks } from "."; | import { QcItemWithChecks } from "."; | ||||
export interface QcResult { | export interface QcResult { | ||||
@@ -1,7 +1,9 @@ | |||||
import { cache } from "react"; | import { cache } from "react"; | ||||
import "server-only"; | import "server-only"; | ||||
import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
import { BASE_API_URL } from "@/config/api"; | |||||
// import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
// import { BASE_API_URL } from "@/config/api"; | |||||
import { serverFetchJson } from "../../utils/fetchUtil"; | |||||
import { BASE_API_URL } from "../../../config/api"; | |||||
export interface QcItemWithChecks { | export interface QcItemWithChecks { | ||||
id: number; | id: number; | ||||
@@ -1,7 +1,9 @@ | |||||
import { cache } from "react"; | import { cache } from "react"; | ||||
import "server-only"; | import "server-only"; | ||||
import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
import { BASE_API_URL } from "@/config/api"; | |||||
// import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
// import { BASE_API_URL } from "@/config/api"; | |||||
import { serverFetchJson } from "../../utils/fetchUtil"; | |||||
import { BASE_API_URL } from "../../../config/api"; | |||||
export interface QrCodeInfo { | export interface QrCodeInfo { | ||||
stockInLineId?: number; | stockInLineId?: number; | ||||
@@ -1,7 +1,10 @@ | |||||
import { cache } from "react"; | import { cache } from "react"; | ||||
import "server-only"; | import "server-only"; | ||||
import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
import { BASE_API_URL } from "@/config/api"; | |||||
// import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
// import { BASE_API_URL } from "@/config/api"; | |||||
import { serverFetchJson } from "../../../utils/fetchUtil"; | |||||
import { BASE_API_URL } from "../../../../config/api"; | |||||
// import { TypeInputs, UomInputs, WeightUnitInputs } from "./actions"; | // import { TypeInputs, UomInputs, WeightUnitInputs } from "./actions"; | ||||
export type ItemQc = { | export type ItemQc = { | ||||
@@ -1,7 +1,9 @@ | |||||
"use server"; | "use server"; | ||||
import { serverFetchWithNoContent } from '@/app/utils/fetchUtil'; | |||||
import { BASE_API_URL } from "@/config/api"; | |||||
// import { serverFetchWithNoContent } from '@/app/utils/fetchUtil'; | |||||
// import { BASE_API_URL } from "@/config/api"; | |||||
import { serverFetchWithNoContent } from "../../../utils/fetchUtil"; | |||||
import { BASE_API_URL } from "../../../../config/api"; | |||||
export interface M18ImportPoForm { | export interface M18ImportPoForm { | ||||
modifiedDateFrom: string, | modifiedDateFrom: string, | ||||
@@ -1,7 +1,9 @@ | |||||
"use server"; | "use server"; | ||||
import { ServerFetchError, serverFetchJson, serverFetchWithNoContent } from "@/app/utils/fetchUtil"; | |||||
// import { ServerFetchError, serverFetchJson, serverFetchWithNoContent } from "@/app/utils/fetchUtil"; | |||||
import { serverFetchJson } from "../../../utils/fetchUtil"; | |||||
import { revalidateTag } from "next/cache"; | import { revalidateTag } from "next/cache"; | ||||
import { BASE_API_URL } from "@/config/api"; | |||||
//import { BASE_API_URL } from "@/config/api"; | |||||
import { BASE_API_URL } from "../../../../config/api"; | |||||
import { CreateItemResponse } from "../../utils"; | import { CreateItemResponse } from "../../utils"; | ||||
import { ItemQc } from "../item"; | import { ItemQc } from "../item"; | ||||
@@ -1,9 +1,13 @@ | |||||
"use server" | "use server" | ||||
import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
import { BASE_API_URL } from "@/config/api"; | |||||
// import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
// import { BASE_API_URL } from "@/config/api"; | |||||
import { serverFetchJson } from "../../../utils/fetchUtil"; | |||||
import { BASE_API_URL } from "../../../../config/api"; | |||||
import { revalidatePath, revalidateTag } from "next/cache"; | import { revalidatePath, revalidateTag } from "next/cache"; | ||||
import { QcItemResult } from '@/app/api/settings/qcItem'; | |||||
//import { QcItemResult } from '@/app/api/settings/qcItem'; | |||||
import { QcItemResult } from '../../../api/settings/qcItem'; | |||||
export interface SaveQcItemInputs { | export interface SaveQcItemInputs { | ||||
id?: number; | id?: number; | ||||
@@ -1,5 +1,8 @@ | |||||
import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
import { BASE_API_URL } from "@/config/api"; | |||||
// import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
// import { BASE_API_URL } from "@/config/api"; | |||||
import { serverFetchJson } from "../../../utils/fetchUtil"; | |||||
import { BASE_API_URL } from "../../../../config/api"; | |||||
import { cache } from "react"; | import { cache } from "react"; | ||||
import "server-only"; | import "server-only"; | ||||
import { SaveQcItemInputs } from "./actions"; | import { SaveQcItemInputs } from "./actions"; | ||||
@@ -1,7 +1,9 @@ | |||||
import { cache } from "react"; | import { cache } from "react"; | ||||
import "server-only"; | import "server-only"; | ||||
import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
import { BASE_API_URL } from "@/config/api"; | |||||
// import { serverFetchJson } from "@/app/utils/fetchUtil"; | |||||
// import { BASE_API_URL } from "@/config/api"; | |||||
import { serverFetchJson } from "../../../utils/fetchUtil"; | |||||
import { BASE_API_URL } from "../../../../config/api"; | |||||
export interface Uom { | export interface Uom { | ||||
id: number | id: number | ||||
@@ -1,7 +1,9 @@ | |||||
"use server"; | "use server"; | ||||
import { serverFetchJson, serverFetchWithNoContent } from "@/app/utils/fetchUtil"; | |||||
import { BASE_API_URL } from "@/config/api"; | |||||
// import { serverFetchJson, serverFetchWithNoContent } from "@/app/utils/fetchUtil"; | |||||
// import { BASE_API_URL } from "@/config/api"; | |||||
import { serverFetchJson, serverFetchWithNoContent } from "../../utils/fetchUtil"; | |||||
import { BASE_API_URL } from "../../../config/api"; | |||||
import { revalidateTag } from "next/cache"; | import { revalidateTag } from "next/cache"; | ||||
import { UserDetail, UserResult } from "."; | import { UserDetail, UserResult } from "."; | ||||
import { cache } from "react"; | import { cache } from "react"; | ||||
@@ -1,6 +1,8 @@ | |||||
import type { Metadata } from "next"; | import type { Metadata } from "next"; | ||||
import { detectLanguage } from "@/i18n"; | |||||
import ThemeRegistry from "@/theme/ThemeRegistry"; | |||||
// import { detectLanguage } from "@/i18n"; | |||||
// import ThemeRegistry from "@/theme/ThemeRegistry"; | |||||
import { detectLanguage } from "../i18n"; | |||||
import ThemeRegistry from "../theme/ThemeRegistry"; | |||||
export const metadata: Metadata = { | export const metadata: Metadata = { | ||||
title: "FPSMS", | title: "FPSMS", | ||||
@@ -260,7 +260,7 @@ const ClaimInputGrid: React.FC<ClaimInputGridProps> = ({ ...props }) => { | |||||
{ | { | ||||
field: "actions", | field: "actions", | ||||
type: "actions", | type: "actions", | ||||
headerName: "Actions", | |||||
headerName: t("Actions"), | |||||
width: 100, | width: 100, | ||||
cellClassName: "actions", | cellClassName: "actions", | ||||
getActions: ({ id }) => { | getActions: ({ id }) => { | ||||
@@ -43,7 +43,7 @@ const CreateItem: React.FC<Props> = ({ | |||||
console.log(params.get("id")) | console.log(params.get("id")) | ||||
const [serverError, setServerError] = useState(""); | const [serverError, setServerError] = useState(""); | ||||
const [tabIndex, setTabIndex] = useState(0); | const [tabIndex, setTabIndex] = useState(0); | ||||
const { t } = useTranslation(); | |||||
const { t } = useTranslation("items"); | |||||
const router = useRouter(); | const router = useRouter(); | ||||
const title = "Product / Material" | const title = "Product / Material" | ||||
const [mode, redirPath] = useMemo(() => { | const [mode, redirPath] = useMemo(() => { | ||||
@@ -33,7 +33,7 @@ const QcDetails: React.FC<Props> = ({ apiRef }) => { | |||||
const { | const { | ||||
t, | t, | ||||
i18n: { language }, | i18n: { language }, | ||||
} = useTranslation(); | |||||
} = useTranslation("items"); | |||||
const { | const { | ||||
register, | register, | ||||
@@ -51,32 +51,32 @@ const QcDetails: React.FC<Props> = ({ apiRef }) => { | |||||
const qcColumns = useMemo<GridColDef[]>( | const qcColumns = useMemo<GridColDef[]>( | ||||
() => [ | () => [ | ||||
{ | { | ||||
field: "name", | |||||
headerName: "name", | |||||
field:"name", | |||||
headerName: t("name"), | |||||
flex: 1, | flex: 1, | ||||
// editable: true, | // editable: true, | ||||
}, | }, | ||||
{ | { | ||||
field: "code", | field: "code", | ||||
headerName: "code", | |||||
headerName: t("code"), | |||||
flex: 1, | flex: 1, | ||||
// editable: true, | // editable: true, | ||||
}, | }, | ||||
{ | { | ||||
field: "description", | field: "description", | ||||
headerName: "Description", | |||||
headerName: t("description"), | |||||
flex: 1, | flex: 1, | ||||
// editable: true, | // editable: true, | ||||
}, | }, | ||||
{ | { | ||||
field: "instruction", | field: "instruction", | ||||
headerName: "Instruction", | |||||
headerName: t("instruction"), | |||||
flex: 1, | flex: 1, | ||||
editable: true, | editable: true, | ||||
}, | }, | ||||
{ | { | ||||
field: "lowerLimit", | field: "lowerLimit", | ||||
headerName: "lowerLimit", | |||||
headerName: t("lowerLimit"), | |||||
flex: 1, | flex: 1, | ||||
editable: true, | editable: true, | ||||
type: "number", | type: "number", | ||||
@@ -99,7 +99,7 @@ const QcDetails: React.FC<Props> = ({ apiRef }) => { | |||||
}, | }, | ||||
{ | { | ||||
field: "upperLimit", | field: "upperLimit", | ||||
headerName: "upperLimit", | |||||
headerName: t("upperLimit"), | |||||
flex: 1, | flex: 1, | ||||
editable: true, | editable: true, | ||||
type: "number", | type: "number", | ||||
@@ -32,7 +32,8 @@ type SearchParamNames = keyof SearchQuery; | |||||
const DSOverview: React.FC<Props> = ({ records }) => { | const DSOverview: React.FC<Props> = ({ records }) => { | ||||
const [filteredItems, setFilteredItems] = useState<RecordStructure[]>(records ?? []); | const [filteredItems, setFilteredItems] = useState<RecordStructure[]>(records ?? []); | ||||
const { t } = useTranslation("items"); | |||||
const { t } = useTranslation("detailScheduling"); | |||||
const router = useRouter(); | const router = useRouter(); | ||||
const [filterObj, setFilterObj] = useState({}); | const [filterObj, setFilterObj] = useState({}); | ||||
const [tempSelectedValue, setTempSelectedValue] = useState({}); | const [tempSelectedValue, setTempSelectedValue] = useState({}); | ||||
@@ -91,7 +92,7 @@ const DSOverview: React.FC<Props> = ({ records }) => { | |||||
}, | }, | ||||
{ | { | ||||
name: "scheduledPeriod", | name: "scheduledPeriod", | ||||
label: "Demand Forecast Period", | |||||
label: t("Demand Forecast Period"), | |||||
}, | }, | ||||
{ | { | ||||
name: "scheduledAt", | name: "scheduledAt", | ||||
@@ -319,7 +319,7 @@ const ViewByBomDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
() => [ | () => [ | ||||
{ | { | ||||
field: "code", | field: "code", | ||||
label: "code", | |||||
label: t("code"), | |||||
type: 'read-only', | type: 'read-only', | ||||
// editable: true, | // editable: true, | ||||
}, | }, | ||||
@@ -330,7 +330,7 @@ const ViewByBomDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
}, | }, | ||||
{ | { | ||||
field: "type", | field: "type", | ||||
label: "type", | |||||
label: t("type"), | |||||
type: 'read-only', | type: 'read-only', | ||||
// editable: true, | // editable: true, | ||||
}, | }, | ||||
@@ -468,23 +468,23 @@ const ViewByBomDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
() => [ | () => [ | ||||
{ | { | ||||
field: "code", | field: "code", | ||||
label: "code", | |||||
label: t("code"), | |||||
type: 'read-only', | type: 'read-only', | ||||
// editable: true, | // editable: true, | ||||
}, | }, | ||||
{ | { | ||||
field: "name", | field: "name", | ||||
label: "name", | |||||
label: t("name"), | |||||
type: 'read-only', | type: 'read-only', | ||||
}, | }, | ||||
{ | { | ||||
field: "type", | field: "type", | ||||
label: "type", | |||||
label: t("type"), | |||||
type: 'read-only', | type: 'read-only', | ||||
}, | }, | ||||
{ | { | ||||
field: "inStockQty", | field: "inStockQty", | ||||
label: "Available Qty", | |||||
label: t("Available Qty"), | |||||
type: 'read-only', | type: 'read-only', | ||||
// editable: true, | // editable: true, | ||||
style: { | style: { | ||||
@@ -499,7 +499,7 @@ const ViewByBomDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
}, | }, | ||||
{ | { | ||||
field: "purchaseQty", | field: "purchaseQty", | ||||
label: "Demand Qty", | |||||
label: t("Demand Qty"), | |||||
type: 'read-only', | type: 'read-only', | ||||
style: { | style: { | ||||
textAlign: "right", | textAlign: "right", | ||||
@@ -45,7 +45,7 @@ const ViewByFGDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
const { | const { | ||||
t, | t, | ||||
i18n: { language }, | i18n: { language }, | ||||
} = useTranslation(); | |||||
} = useTranslation("schedule"); | |||||
const { | const { | ||||
formState: { errors, defaultValues, touchedFields }, | formState: { errors, defaultValues, touchedFields }, | ||||
@@ -475,24 +475,24 @@ const ViewByFGDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
() => [ | () => [ | ||||
{ | { | ||||
field: "jobNo", | field: "jobNo", | ||||
label: "Job No.", | |||||
label: t("Job No."), | |||||
type: 'read-only', | type: 'read-only', | ||||
// editable: true, | // editable: true, | ||||
}, | }, | ||||
{ | { | ||||
field: "code", | field: "code", | ||||
label: "code", | |||||
label: t("code"), | |||||
type: 'read-only', | type: 'read-only', | ||||
// editable: true, | // editable: true, | ||||
}, | }, | ||||
{ | { | ||||
field: "name", | field: "name", | ||||
label: "name", | |||||
label: t("name"), | |||||
type: 'read-only', | type: 'read-only', | ||||
}, | }, | ||||
{ | { | ||||
field: "type", | field: "type", | ||||
label: "type", | |||||
label: t("type"), | |||||
type: 'read-only', | type: 'read-only', | ||||
// editable: true, | // editable: true, | ||||
}, | }, | ||||
@@ -513,7 +513,7 @@ const ViewByFGDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
// }, | // }, | ||||
{ | { | ||||
field: "productionQty", | field: "productionQty", | ||||
label: "Demand Qty", | |||||
label: t("Demand Qty"), | |||||
type: 'input', | type: 'input', | ||||
style: { | style: { | ||||
textAlign: "right", | textAlign: "right", | ||||
@@ -527,7 +527,7 @@ const ViewByFGDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
}, | }, | ||||
{ | { | ||||
field: "estimatedProductionTime", | field: "estimatedProductionTime", | ||||
label: "Estimated Production Time", | |||||
label: t("Estimated Production Time"), | |||||
type: "read-only", | type: "read-only", | ||||
style: { | style: { | ||||
textAlign: "right", | textAlign: "right", | ||||
@@ -535,7 +535,7 @@ const ViewByFGDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
}, | }, | ||||
{ | { | ||||
field: "priority", | field: "priority", | ||||
label: "Production Priority", | |||||
label: t("Production Priority"), | |||||
type: 'read-only', | type: 'read-only', | ||||
style: { | style: { | ||||
textAlign: "right", | textAlign: "right", | ||||
@@ -550,24 +550,24 @@ const ViewByFGDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
() => [ | () => [ | ||||
{ | { | ||||
field: "code", | field: "code", | ||||
label: "code", | |||||
label: t("code"), | |||||
type: 'read-only', | type: 'read-only', | ||||
// editable: true, | // editable: true, | ||||
}, | }, | ||||
{ | { | ||||
field: "name", | field: "name", | ||||
label: "name", | |||||
label: t("name"), | |||||
type: 'read-only', | type: 'read-only', | ||||
}, | }, | ||||
{ | { | ||||
field: "type", | field: "type", | ||||
label: "type", | |||||
label: t("type"), | |||||
type: 'read-only', | type: 'read-only', | ||||
// editable: true, | // editable: true, | ||||
}, | }, | ||||
{ | { | ||||
field: "lastMonthAvgStock", | field: "lastMonthAvgStock", | ||||
label: "Last Month Average Stock", | |||||
label: t("Last Month Average Stock"), | |||||
type: 'read-only', | type: 'read-only', | ||||
style: { | style: { | ||||
textAlign: "right", | textAlign: "right", | ||||
@@ -582,7 +582,7 @@ const ViewByFGDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
}, | }, | ||||
{ | { | ||||
field: "safetyStock", | field: "safetyStock", | ||||
label: "Safety Stock", | |||||
label: t("Safety Stock"), | |||||
type: 'read-only', | type: 'read-only', | ||||
style: { | style: { | ||||
textAlign: "right", | textAlign: "right", | ||||
@@ -597,7 +597,7 @@ const ViewByFGDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
}, | }, | ||||
{ | { | ||||
field: "inStockQty", | field: "inStockQty", | ||||
label: "Available Qty", | |||||
label: t("Available Qty"), | |||||
type: 'read-only', | type: 'read-only', | ||||
style: { | style: { | ||||
textAlign: "right", | textAlign: "right", | ||||
@@ -612,7 +612,7 @@ const ViewByFGDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
}, | }, | ||||
{ | { | ||||
field: "productionQty", | field: "productionQty", | ||||
label: "Demand Qty (7 Days)", | |||||
label: t("Demand Qty (7 Days)"), | |||||
type: 'read-only', | type: 'read-only', | ||||
style: { | style: { | ||||
textAlign: "right", | textAlign: "right", | ||||
@@ -150,7 +150,7 @@ const DoSearch: React.FC<Props> = ({ dos }) => { | |||||
// }, | // }, | ||||
{ | { | ||||
field: "code", | field: "code", | ||||
headerName: "code", | |||||
headerName: t("code"), | |||||
flex: 1, | flex: 1, | ||||
}, | }, | ||||
{ | { | ||||
@@ -16,7 +16,7 @@ import { useTranslation } from "react-i18next"; | |||||
const UserDetail: React.FC = () => { | const UserDetail: React.FC = () => { | ||||
const { t } = useTranslation(); | |||||
const { t } = useTranslation("user"); | |||||
const { | const { | ||||
register, | register, | ||||
formState: { errors }, | formState: { errors }, | ||||
@@ -16,7 +16,7 @@ interface Props { | |||||
const M18ImportPo: React.FC<Props> = ({ | const M18ImportPo: React.FC<Props> = ({ | ||||
}) => { | }) => { | ||||
const { t } = useTranslation() | |||||
const { t } = useTranslation("settings") | |||||
const [isLoading, setIsLoading] = useState(false) | const [isLoading, setIsLoading] = useState(false) | ||||
const { | const { | ||||
control, | control, | ||||
@@ -36,7 +36,7 @@ const NavigationContent: React.FC = () => { | |||||
const navigationItems: NavigationItem[] = [ | const navigationItems: NavigationItem[] = [ | ||||
{ | { | ||||
icon: <Dashboard />, | icon: <Dashboard />, | ||||
label: "Dashboard", | |||||
label: ("Dashboard"), | |||||
path: "/dashboard", | path: "/dashboard", | ||||
}, | }, | ||||
{ | { | ||||
@@ -10,7 +10,7 @@ import { arrayToDateString, arrayToDayjs, dateStringToDayjs } from "@/app/utils/ | |||||
import dayjs from "dayjs"; | import dayjs from "dayjs"; | ||||
import { Button, Grid, Stack, Tab, Tabs, TabsProps } from "@mui/material"; | import { Button, Grid, Stack, Tab, Tabs, TabsProps } from "@mui/material"; | ||||
import PickOrders from "./PickOrders"; | import PickOrders from "./PickOrders"; | ||||
import { getServerI18n } from "@/i18n"; | |||||
interface Props { | interface Props { | ||||
pickOrders: PickOrderResult[]; | pickOrders: PickOrderResult[]; | ||||
} | } | ||||
@@ -25,7 +25,7 @@ type SearchParamNames = keyof SearchQuery; | |||||
const PickOrderSearch: React.FC<Props> = ({ | const PickOrderSearch: React.FC<Props> = ({ | ||||
pickOrders, | pickOrders, | ||||
}) => { | }) => { | ||||
const { t } = useTranslation("pickOrders"); | |||||
const { t } = useTranslation("pickOrder"); | |||||
const [filteredPickOrders, setFilteredPickOrders] = useState(pickOrders) | const [filteredPickOrders, setFilteredPickOrders] = useState(pickOrders) | ||||
@@ -89,7 +89,7 @@ const RSOverview: React.FC<Props> = ({ records }) => { | |||||
}, | }, | ||||
{ | { | ||||
name: "scheduledPeriod", | name: "scheduledPeriod", | ||||
label: "Demand Forecast Period", | |||||
label: t("Demand Forecast Period"), | |||||
}, | }, | ||||
{ | { | ||||
name: "scheduledAt", | name: "scheduledAt", | ||||
@@ -173,8 +173,8 @@ const RoughScheduleDetailView: React.FC<Props> = ({ | |||||
<Tabs value={tabIndex} onChange={handleTabChange} variant="scrollable"> | <Tabs value={tabIndex} onChange={handleTabChange} variant="scrollable"> | ||||
<Tab label={t("View By FG") + (tabIndex === 0 ? " (Selected)" : "")} iconPosition="end"/> | |||||
<Tab label={t("View By Material") + (tabIndex === 1 ? " (Selected)" : "")} iconPosition="end" /> | |||||
<Tab label={t("View By FG") + (tabIndex === 0 ? t(" (Selected)") : "")} iconPosition="end"/> | |||||
<Tab label={t("View By Material") + (tabIndex === 1 ? t(" (Selected)") : "")} iconPosition="end" /> | |||||
</Tabs> | </Tabs> | ||||
{serverError && ( | {serverError && ( | ||||
<Typography variant="body2" color="error" alignSelf="flex-end"> | <Typography variant="body2" color="error" alignSelf="flex-end"> | ||||
@@ -57,11 +57,8 @@ export type FGOverallRecord = { | |||||
} | } | ||||
const ViewByBomDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | const ViewByBomDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | ||||
const { | |||||
t, | |||||
i18n: { language }, | |||||
} = useTranslation("schedule"); | |||||
const {t,i18n: { language },} = useTranslation("schedule"); | |||||
console.log("lang:", i18n.language, "t(code):", t("code")); | |||||
const { | const { | ||||
formState: { errors, defaultValues, touchedFields }, | formState: { errors, defaultValues, touchedFields }, | ||||
} = useFormContext<CreateItemInputs>(); | } = useFormContext<CreateItemInputs>(); | ||||
@@ -319,7 +316,7 @@ const ViewByBomDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
() => [ | () => [ | ||||
{ | { | ||||
field: "code", | field: "code", | ||||
label: "code", | |||||
label: t("code"), | |||||
type: 'read-only', | type: 'read-only', | ||||
// editable: true, | // editable: true, | ||||
}, | }, | ||||
@@ -330,7 +327,7 @@ const ViewByBomDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
}, | }, | ||||
{ | { | ||||
field: "type", | field: "type", | ||||
label: "type", | |||||
label: t("type"), | |||||
type: 'read-only', | type: 'read-only', | ||||
// editable: true, | // editable: true, | ||||
}, | }, | ||||
@@ -461,30 +458,30 @@ const ViewByBomDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
} | } | ||||
}, | }, | ||||
], | ], | ||||
[] | |||||
[t] | |||||
); | ); | ||||
const columns = useMemo<Column<any>[]>( | const columns = useMemo<Column<any>[]>( | ||||
() => [ | () => [ | ||||
{ | { | ||||
field: "code", | field: "code", | ||||
label: "code", | |||||
label: t("code"), | |||||
type: 'read-only', | type: 'read-only', | ||||
// editable: true, | // editable: true, | ||||
}, | }, | ||||
{ | { | ||||
field: "name", | field: "name", | ||||
label: "name", | |||||
label: t("name"), | |||||
type: 'read-only', | type: 'read-only', | ||||
}, | }, | ||||
{ | { | ||||
field: "type", | field: "type", | ||||
label: "type", | |||||
label: t("type"), | |||||
type: 'read-only', | type: 'read-only', | ||||
}, | }, | ||||
{ | { | ||||
field: "inStockQty", | field: "inStockQty", | ||||
label: "Available Qty", | |||||
label: t("Available Qty"), | |||||
type: 'read-only', | type: 'read-only', | ||||
// editable: true, | // editable: true, | ||||
style: { | style: { | ||||
@@ -499,7 +496,7 @@ const ViewByBomDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
}, | }, | ||||
{ | { | ||||
field: "purchaseQty", | field: "purchaseQty", | ||||
label: "Demand Qty", | |||||
label: t("Demand Qty"), | |||||
type: 'read-only', | type: 'read-only', | ||||
style: { | style: { | ||||
textAlign: "right", | textAlign: "right", | ||||
@@ -512,7 +509,7 @@ const ViewByBomDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
} | } | ||||
}, | }, | ||||
], | ], | ||||
[] | |||||
[t] | |||||
); | ); | ||||
return ( | return ( | ||||
@@ -45,7 +45,7 @@ const ViewByFGDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
const { | const { | ||||
t, | t, | ||||
i18n: { language }, | i18n: { language }, | ||||
} = useTranslation(); | |||||
} = useTranslation("schedule"); | |||||
const { | const { | ||||
formState: { errors, defaultValues, touchedFields }, | formState: { errors, defaultValues, touchedFields }, | ||||
@@ -447,24 +447,24 @@ const ViewByFGDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
() => [ | () => [ | ||||
{ | { | ||||
field: "code", | field: "code", | ||||
label: "code", | |||||
label: t("code"), | |||||
type: 'read-only', | type: 'read-only', | ||||
// editable: true, | // editable: true, | ||||
}, | }, | ||||
{ | { | ||||
field: "name", | field: "name", | ||||
label: "name", | |||||
label: t("name"), | |||||
type: 'read-only', | type: 'read-only', | ||||
}, | }, | ||||
{ | { | ||||
field: "type", | field: "type", | ||||
label: "type", | |||||
label: t("type"), | |||||
type: 'read-only', | type: 'read-only', | ||||
// editable: true, | // editable: true, | ||||
}, | }, | ||||
{ | { | ||||
field: "inStockQty", | field: "inStockQty", | ||||
label: "Available Qty", | |||||
label: t("Available Qty"), | |||||
type: 'read-only', | type: 'read-only', | ||||
style: { | style: { | ||||
textAlign: "right", | textAlign: "right", | ||||
@@ -479,7 +479,7 @@ const ViewByFGDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
}, | }, | ||||
{ | { | ||||
field: "productionQty", | field: "productionQty", | ||||
label: "Demand Qty", | |||||
label: t("Demand Qty"), | |||||
type: 'input', | type: 'input', | ||||
style: { | style: { | ||||
textAlign: "right", | textAlign: "right", | ||||
@@ -499,24 +499,24 @@ const ViewByFGDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
() => [ | () => [ | ||||
{ | { | ||||
field: "code", | field: "code", | ||||
label: "code", | |||||
label: t("code"), | |||||
type: 'read-only', | type: 'read-only', | ||||
// editable: true, | // editable: true, | ||||
}, | }, | ||||
{ | { | ||||
field: "name", | field: "name", | ||||
label: "name", | |||||
label: t("name"), | |||||
type: 'read-only', | type: 'read-only', | ||||
}, | }, | ||||
{ | { | ||||
field: "type", | field: "type", | ||||
label: "type", | |||||
label: t("type"), | |||||
type: 'read-only', | type: 'read-only', | ||||
// editable: true, | // editable: true, | ||||
}, | }, | ||||
{ | { | ||||
field: "lastMonthAvgStock", | field: "lastMonthAvgStock", | ||||
label: "Last Month Average Stock", | |||||
label: t("Last Month Average Stock"), | |||||
type: 'read-only', | type: 'read-only', | ||||
style: { | style: { | ||||
textAlign: "right", | textAlign: "right", | ||||
@@ -531,7 +531,7 @@ const ViewByFGDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
}, | }, | ||||
{ | { | ||||
field: "safetyStock", | field: "safetyStock", | ||||
label: "Safety Stock", | |||||
label: t("Safety Stock"), | |||||
type: 'read-only', | type: 'read-only', | ||||
style: { | style: { | ||||
textAlign: "right", | textAlign: "right", | ||||
@@ -546,7 +546,7 @@ const ViewByFGDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
}, | }, | ||||
{ | { | ||||
field: "inStockQty", | field: "inStockQty", | ||||
label: "Available Qty", | |||||
label: t("Available Qty"), | |||||
type: 'read-only', | type: 'read-only', | ||||
style: { | style: { | ||||
textAlign: "right", | textAlign: "right", | ||||
@@ -561,7 +561,7 @@ const ViewByFGDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
}, | }, | ||||
{ | { | ||||
field: "productionQty", | field: "productionQty", | ||||
label: "Demand Qty (7 Days)", | |||||
label: t("Demand Qty (7 Days)"), | |||||
type: 'read-only', | type: 'read-only', | ||||
style: { | style: { | ||||
textAlign: "right", | textAlign: "right", | ||||
@@ -23,7 +23,7 @@ type SearchParamNames = keyof SearchQuery; | |||||
const RSSOverview: React.FC<Props> = ({ items }) => { | const RSSOverview: React.FC<Props> = ({ items }) => { | ||||
const [filteredItems, setFilteredItems] = useState<ItemsResult[]>(items ?? []); | const [filteredItems, setFilteredItems] = useState<ItemsResult[]>(items ?? []); | ||||
const { t } = useTranslation("items"); | |||||
const { t } = useTranslation(); | |||||
const router = useRouter(); | const router = useRouter(); | ||||
const [filterObj, setFilterObj] = useState({}); | const [filterObj, setFilterObj] = useState({}); | ||||
const [tempSelectedValue, setTempSelectedValue] = useState({}); | const [tempSelectedValue, setTempSelectedValue] = useState({}); | ||||
@@ -51,13 +51,13 @@ const RSSOverview: React.FC<Props> = ({ items }) => { | |||||
}; | }; | ||||
const dayOptions = [ | const dayOptions = [ | ||||
{label: "Mon", value: 1}, | |||||
{label: "Tue", value: 2}, | |||||
{label: "Wed", value: 3}, | |||||
{label: "Thu", value: 4}, | |||||
{label: "Fri", value: 5}, | |||||
{label: "Sat", value: 6}, | |||||
{label: "Sun", value: 7}, | |||||
{label: t("Mon"), value: 1}, | |||||
{label: t("Tue"), value: 2}, | |||||
{label: t("Wed"), value: 3}, | |||||
{label: t("Thu"), value: 4}, | |||||
{label: t("Fri"), value: 5}, | |||||
{label: t("Sat"), value: 6}, | |||||
{label: t("Sun"), value: 7}, | |||||
]; | ]; | ||||
const searchCriteria: Criterion<SearchParamNames>[] = useMemo( | const searchCriteria: Criterion<SearchParamNames>[] = useMemo( | ||||
@@ -22,7 +22,7 @@ import KeyboardArrowDownIcon from "@mui/icons-material/KeyboardArrowDown"; | |||||
import KeyboardArrowUpIcon from "@mui/icons-material/KeyboardArrowUp"; | import KeyboardArrowUpIcon from "@mui/icons-material/KeyboardArrowUp"; | ||||
import { decimalFormatter, integerFormatter } from "@/app/utils/formatUtil"; | import { decimalFormatter, integerFormatter } from "@/app/utils/formatUtil"; | ||||
import PlayCircleOutlineIcon from '@mui/icons-material/PlayCircleOutline'; | import PlayCircleOutlineIcon from '@mui/icons-material/PlayCircleOutline'; | ||||
import { useTranslation } from "react-i18next"; | |||||
export interface ResultWithId { | export interface ResultWithId { | ||||
id: string | number; | id: string | number; | ||||
} | } | ||||
@@ -71,6 +71,7 @@ function EditableSearchResults<T extends ResultWithId>({ | |||||
const [rowsPerPage, setRowsPerPage] = useState(10); | const [rowsPerPage, setRowsPerPage] = useState(10); | ||||
const [editingRowId, setEditingRowId] = useState<number | null>(null); | const [editingRowId, setEditingRowId] = useState<number | null>(null); | ||||
const [editedItems, setEditedItems] = useState<T[]>(items); | const [editedItems, setEditedItems] = useState<T[]>(items); | ||||
const { t } = useTranslation("project"); | |||||
console.log(items) | console.log(items) | ||||
useEffect(() => { | useEffect(() => { | ||||
setEditedItems(items) | setEditedItems(items) | ||||
@@ -272,8 +273,8 @@ function EditableSearchResults<T extends ResultWithId>({ | |||||
<Table stickyHeader> | <Table stickyHeader> | ||||
<TableHead> | <TableHead> | ||||
<TableRow> | <TableRow> | ||||
<TableCell>Release</TableCell> | |||||
{(isEditable || hasCollapse) && <TableCell>Actions</TableCell>} {/* Action Column Header */} | |||||
<TableCell>{t("Release")}</TableCell> | |||||
{(isEditable || hasCollapse) && <TableCell>{t("Actions")}</TableCell>} {/* Action Column Header */} | |||||
{columns.map((column, idx) => ( | {columns.map((column, idx) => ( | ||||
<TableCell style={column.style} key={`${column.field.toString()}${idx}`}> | <TableCell style={column.style} key={`${column.field.toString()}${idx}`}> | ||||
{column.label} | {column.label} | ||||
@@ -0,0 +1,6 @@ | |||||
{ | |||||
"FG & Material Demand Forecast Detail": "FG & Material Demand Forecast Detail", | |||||
"Release": "Release", | |||||
"Actions": "Actions" | |||||
} |
@@ -5,9 +5,51 @@ | |||||
"Reset": "重置", | "Reset": "重置", | ||||
"Search": "搜尋", | "Search": "搜尋", | ||||
"Code": "編號", | "Code": "編號", | ||||
"code": "編號", | |||||
"Name": "名稱", | "Name": "名稱", | ||||
"Type": "類型", | "Type": "類型", | ||||
"Add some entries!": "添加條目", | "Add some entries!": "添加條目", | ||||
"Add Record": "新增", | "Add Record": "新增", | ||||
"Clean Record": "重置" | |||||
} | |||||
"Clean Record": "重置", | |||||
"Dashboard": "儀表板", | |||||
"Raw Material": "原材料", | |||||
"Delivery": "交貨單", | |||||
"Scheduling": "排程", | |||||
"Settings": "設定", | |||||
"User": "用戶", | |||||
"User Group": "用戶群組", | |||||
"Items": "物料", | |||||
"Demand Forecast Setting": "需求預測設定", | |||||
"Equipment Type": "設備類型", | |||||
"Equipment": "設備", | |||||
"Warehouse": "倉庫", | |||||
"Supplier": "供應商", | |||||
"Purchase Order":"採購單", | |||||
"Demand Forecast":"需求預測", | |||||
"Purchase Order":"採購單", | |||||
"Pick Order":"挑選貨單", | |||||
"Deliver Order":"交貨單", | |||||
"Project":"專案", | |||||
"Product":"產品", | |||||
"Material":"材料", | |||||
"FG":"成品", | |||||
"FG & Material Demand Forecast Detail":"成品及材料需求預測詳情", | |||||
"View item In-out And inventory Ledger":"查看物料出入庫及庫存日誌", | |||||
"Delivery Order":"交貨單", | |||||
"Detail Scheduling":"詳細排程", | |||||
"Customer":"客戶", | |||||
"QC Check Item":"QC檢查項目", | |||||
"QC Category":"QC分類", | |||||
"QC Check Template":"QC檢查模板", | |||||
"Mail":"郵件", | |||||
"Import Testing":"匯入測試", | |||||
"Overview": "總覽", | |||||
"Projects": "專案", | |||||
"Create Project": "新增專案", | |||||
"Task Template": "任務範本", | |||||
"Create Task Template": "新增任務範本", | |||||
"Qc Item": "QC 項目", | |||||
"FG Production Schedule": "FG 生產排程", | |||||
"Inventory": "庫存", | |||||
"scheduling":"排程" | |||||
} |
@@ -0,0 +1,20 @@ | |||||
{ | |||||
"Detail Scheduling": "詳細排程", | |||||
"Search Criteria": "搜尋條件", | |||||
"Search": "搜尋", | |||||
"Reset": "重置", | |||||
"Search by Project Code or Project Name or Client Name or Project Category or Project Type or Project Status or Project Start Date or Project End Date": "搜尋專案編號、專案名稱、客戶名稱、專案類別、專案類型、專案狀態、專案開始日期、專案結束日期", | |||||
"Project Code": "專案編號", | |||||
"Project Name": "專案名稱", | |||||
"Client Name": "客戶名稱", | |||||
"Project Category": "專案類別", | |||||
"Project Type": "專案類型", | |||||
"Project Status": "專案狀態", | |||||
"Demand Forecast Period": "需求預測期", | |||||
"Scheduled At": "預定時間", | |||||
"Product Count(s)": "產品數量", | |||||
"Product Count": "產品數量", | |||||
"Schedule Period": "排程期間", | |||||
"Product": "產品", | |||||
"Details": "詳情" | |||||
} |
@@ -0,0 +1,15 @@ | |||||
{ | |||||
"Delivery Order": "交貨單", | |||||
"Shop Name": "店鋪名稱", | |||||
"Delivery Order No.": "交貨單編號", | |||||
"Delivery Order Date": "交貨單日期", | |||||
"Delivery Order Status": "交貨單狀態", | |||||
"Order Date": "訂單日期", | |||||
"Estimated Arrival": "預計到貨日期", | |||||
"Status": "狀態", | |||||
"Order Date From": "訂單日期從", | |||||
"Order Date To": "訂單日期到", | |||||
"Code": "編號", | |||||
"code": "編號", | |||||
"Create": "新增" | |||||
} |
@@ -0,0 +1,35 @@ | |||||
{"Demand Forecast Period": "需求預測期", | |||||
"Scheduled At": "預定時間", | |||||
"Product Count(s)": "產品數量", | |||||
"Product Count": "產品數量", | |||||
"Schedule Period": "排程期間", | |||||
"Product": "產品", | |||||
"Details": "詳情", | |||||
"Product Details": "產品詳情", | |||||
"Edit Product / Material": "編輯產品 / 材料", | |||||
"Product / Material": "產品 / 材料", | |||||
"Product / Material Details": "產品 / 材料詳情", | |||||
"Qc items": "QC 項目", | |||||
"Name": "名稱", | |||||
"name": "名稱", | |||||
"description": "描述", | |||||
"Type": "類型", | |||||
"shelfLife": "保存期限", | |||||
"remarks": "備註", | |||||
"countryOfOrigin": "原產地", | |||||
"maxQty": "最大數量", | |||||
"Code": "編號", | |||||
"code": "編號", | |||||
"instruction": "說明", | |||||
"lowerLimit": "下限", | |||||
"upperLimit": "上限", | |||||
"no rows": "沒有資料", | |||||
"Save": "儲存", | |||||
"Confirm": "確認", | |||||
"Cancel": "取消", | |||||
"Finished Goods Name": "成品名稱", | |||||
"Reset": "重置", | |||||
"Search": "搜尋", | |||||
"Release": "發佈", | |||||
"Actions": "動作" | |||||
} |
@@ -0,0 +1,111 @@ | |||||
{ | |||||
"Purchase Order": "採購訂單", | |||||
"Code": "編號", | |||||
"OrderDate": "下單日期", | |||||
"Details": "詳情", | |||||
"Supplier": "供應商", | |||||
"Status": "狀態", | |||||
"Escalated": "已上報", | |||||
"NotEscalated": "無上報", | |||||
"Do you want to start?": "確定開始嗎?", | |||||
"Start": "開始", | |||||
"Start Success": "開始成功", | |||||
"Start Fail": "開始失敗", | |||||
"Start PO": "開始採購訂單", | |||||
"Do you want to complete?": "確定完成嗎?", | |||||
"Complete": "完成", | |||||
"Complete Success": "完成成功", | |||||
"Complete Fail": "完成失敗", | |||||
"Complete PO": "完成採購訂單", | |||||
"General": "一般", | |||||
"Bind Storage": "綁定倉位", | |||||
"itemNo": "項目編號", | |||||
"itemName": "項目名稱", | |||||
"qty": "數量", | |||||
"uom": "計量單位", | |||||
"total weight": "總重量", | |||||
"weight unit": "重量單位", | |||||
"price": "價格", | |||||
"processed": "已入倉", | |||||
"expiryDate": "到期日", | |||||
"acceptedQty": "接受數量", | |||||
"weight": "重量", | |||||
"status": "狀態", | |||||
"start": "開始", | |||||
"qc": "質量控制", | |||||
"escalation": "上報", | |||||
"stock in": "入庫", | |||||
"putaway": "上架", | |||||
"delete": "刪除", | |||||
"qty cannot be greater than remaining qty": "數量不能大於剩餘數量", | |||||
"Record pol": "記錄採購訂單", | |||||
"Add some entries!": "添加條目!", | |||||
"draft": "草稿", | |||||
"pending": "待處理", | |||||
"determine1": "上報1", | |||||
"determine2": "上報2", | |||||
"determine3": "上報3", | |||||
"receiving": "收貨中", | |||||
"received": "已收貨", | |||||
"completed": "已完成", | |||||
"rejected": "已拒絕", | |||||
"acceptedQty must not greater than": "接受數量不得大於", | |||||
"minimal value is 1": "最小值為1", | |||||
"value must be a number": "值必須是數字", | |||||
"qc Check": "質量控制檢查", | |||||
"Please select QC": "請選擇質量控制", | |||||
"failQty": "失敗數量", | |||||
"select qc": "選擇質量控制", | |||||
"enter a failQty": "請輸入失敗數量", | |||||
"qty too big": "數量過大", | |||||
"sampleRate": "抽樣率", | |||||
"sampleWeight": "樣本重量", | |||||
"totalWeight": "總重量", | |||||
"Escalation": "上報", | |||||
"to be processed": "待處理", | |||||
"Stock In Detail": "入庫詳情", | |||||
"productLotNo": "產品批號", | |||||
"receiptDate": "收貨日期", | |||||
"acceptedWeight": "接受重量", | |||||
"productionDate": "生產日期", | |||||
"reportQty": "上報數量", | |||||
"Default Warehouse": "預設倉庫", | |||||
"Select warehouse": "選擇倉庫", | |||||
"Putaway Detail": "上架詳情", | |||||
"LotNo": "批號", | |||||
"Po Code": "採購訂單編號", | |||||
"No Warehouse": "沒有倉庫", | |||||
"Please scan warehouse qr code.": "請掃描倉庫 QR 碼。", | |||||
"Reject": "拒絕", | |||||
"submit": "提交", | |||||
"print": "列印", | |||||
"bind": "綁定", | |||||
"Pick Order": "挑選貨單", | |||||
"Type": "類型", | |||||
"Reset": "重置", | |||||
"Search": "搜尋", | |||||
"Pick Orders": "挑選貨單", | |||||
"Consolidated Pick Orders": "合併挑選貨單", | |||||
"Pick Order No.": "挑選貨單編號", | |||||
"Pick Order Date": "挑選貨單日期", | |||||
"Pick Order Status": "挑選貨單狀態", | |||||
"Pick Order Type": "挑選貨單類型", | |||||
"Consolidated Code": "合併編號", | |||||
"type": "類型", | |||||
"Items": "項目", | |||||
"Target Date": "目標日期", | |||||
"Released By": "發佈者", | |||||
"Target Date From": "目標日期從", | |||||
"Target Date To": "目標日期到", | |||||
"Consolidate": "合併" | |||||
} |
@@ -0,0 +1,8 @@ | |||||
{ | |||||
"code": "編號", | |||||
"FG & Material Demand Forecast Detail": "FG 及材料需求預測詳情", | |||||
"Release": "發佈", | |||||
"Actions": "動作", | |||||
"Product": "產品", | |||||
"Details": "詳情" | |||||
} |
@@ -1 +0,0 @@ | |||||
{} |
@@ -87,4 +87,6 @@ | |||||
"submit": "提交", | "submit": "提交", | ||||
"print": "列印", | "print": "列印", | ||||
"bind": "綁定" | "bind": "綁定" | ||||
} | } |
@@ -1,10 +1,78 @@ | |||||
{ | |||||
"Total Demand Qty": "Total Demand Qty", | |||||
"Demand Qty (Day1)": "Demand Qty (Day1)", | |||||
"Demand Qty (Day2)": "Demand Qty (Day2)", | |||||
"Demand Qty (Day3)": "Demand Qty (Day3)", | |||||
"Demand Qty (Day4)": "Demand Qty (Day4)", | |||||
"Demand Qty (Day5)": "Demand Qty (Day5)", | |||||
"Demand Qty (Day6)": "Demand Qty (Day6)", | |||||
"Demand Qty (Day7)": "Demand Qty (Day7)" | |||||
} | |||||
{ "Demand Forecast": "需求預測", | |||||
"Total Demand Qty": "總需求量", | |||||
"Demand Qty (Day1)": "需求數量(第 1 天)", | |||||
"Demand Qty (Day2)": "需求數量(第 2 天)", | |||||
"Demand Qty (Day3)": "需求數量(第 3 天)", | |||||
"Demand Qty (Day4)": "需求數量(第 4 天)", | |||||
"Demand Qty (Day5)": "需求數量(第 5 天)", | |||||
"Demand Qty (Day6)": "需求數量(第 6 天)", | |||||
"Demand Qty (Day7)": "需求數量(第 7 天)", | |||||
"Demand Forecast Detail": "需求預測詳情", | |||||
"Details": "詳情", | |||||
"Schedule": "排程", | |||||
"Schedule Period": "排程期間", | |||||
"Schedule Detail": "排程詳情", | |||||
"Schedule At": "排程時間", | |||||
"Search": "搜尋", | |||||
"Reset": "重置", | |||||
"name": "名稱", | |||||
"type": "類型", | |||||
"code": "編號", | |||||
"Product Count": "產品數量", | |||||
"Scheduled At": "排程時間", | |||||
"Demand Forecast Period": "需求預測期間", | |||||
"FG & Material Demand Forecast Detail": "FG 及材料需求預測詳情", | |||||
"FG & Material Demand Forecast": "FG 及材料需求預測", | |||||
"Total Estimated Demand Qty": "總預估需求量", | |||||
"View By FG": "依 FG 分類", | |||||
"View By Material": "依材料分類", | |||||
" (Selected)": " (已選擇)", | |||||
"Total FG Item": "總 FG 項目", | |||||
"Release": "發佈", | |||||
"Actions": "動作", | |||||
"FG Demand List (7 Days)": "FG 需求列表(7 天)", | |||||
"FG Demand Date": "FG 需求日期", | |||||
"FG Demand Qty": "FG 需求數量", | |||||
"Material Demand Date": "材料需求日期", | |||||
"Material Demand List": "材料需求列表", | |||||
"Available Qty": "可用數量", | |||||
"Demand Qty": "需求數量", | |||||
"Confirm": "確認", | |||||
"Cancel": "取消", | |||||
"Edit": "編輯", | |||||
"Delete": "刪除", | |||||
"Save": "儲存", | |||||
"Close": "關閉", | |||||
"Add": "新增", | |||||
"Selected": "已選擇", | |||||
"Unselected": "未選擇", | |||||
"status": "狀態", | |||||
"Material Demand List (7 Days)": "材料需求列表(7 天)", | |||||
"Mon": "週一", | |||||
"Tue": "週二", | |||||
"Wed": "週三", | |||||
"Thu": "週四", | |||||
"Fri": "週五", | |||||
"Sat": "週六", | |||||
"Sun": "週日", | |||||
"Last Month Average Stock": "上個月平均庫存", | |||||
"Safety Stock": "安全庫存", | |||||
"Demand Qty (7 Days)": "需求數量(7 天)", | |||||
"Estimated Production Time": "預估生產時間", | |||||
"Production Priority": "生產優先順序", | |||||
"View BoM": "查看 BoM", | |||||
"Date": "日期", | |||||
"Detail Scheduling": "詳細排程", | |||||
"FG Production Schedule": "FG 生產排程", | |||||
"Production Date": "生產日期", | |||||
"Total Job Order": "總工單數量", | |||||
"Total Production Qty": "總生產數量", | |||||
"Job No.": "工單編號", | |||||
"Job Name": "工單名稱", | |||||
"Job Type": "工單類型", | |||||
"Job Status": "工單狀態", | |||||
"Job Priority": "工單優先順序", | |||||
"Job Date": "工單日期", | |||||
"Job Qty": "工單數量" | |||||
} |
@@ -0,0 +1,14 @@ | |||||
{ | |||||
"Demand Forecast Setting": "需求預測設定", | |||||
"QC Check Template": "QC 檢查模板", | |||||
"QC Check Template Details": "QC 檢查模板詳情", | |||||
"QC Check Template Name": "QC 檢查模板名稱", | |||||
"QC Check Template Description": "QC 檢查模板描述", | |||||
"QC Check Template Status": "QC 檢查模板狀態", | |||||
"QC Check Template Created At": "QC 檢查模板建立時間", | |||||
"QC Check Template Updated At": "QC 檢查模板更新時間", | |||||
"Ready to import": "準備匯入", | |||||
"Import Po": "匯入PO", | |||||
"Import Master Data": "匯入主資料" | |||||
} |
@@ -0,0 +1,4 @@ | |||||
{ | |||||
"Release": "發佈", | |||||
"Actions": "動作" | |||||
} |
@@ -5,6 +5,7 @@ | |||||
"Authority Pool": "權限池", | "Authority Pool": "權限池", | ||||
"Allocated Authority": "已分配權限", | "Allocated Authority": "已分配權限", | ||||
"username": "用戶名稱", | "username": "用戶名稱", | ||||
"Username": "用戶名稱", | |||||
"password": "密碼", | "password": "密碼", | ||||
"Confirm Password": "確認密碼", | "Confirm Password": "確認密碼", | ||||
"Reset": "重置", | "Reset": "重置", | ||||
@@ -14,5 +15,12 @@ | |||||
"User ID": "用戶ID", | "User ID": "用戶ID", | ||||
"User Name": "用戶名稱", | "User Name": "用戶名稱", | ||||
"User Group": "用戶群組", | "User Group": "用戶群組", | ||||
"Authority": "權限" | |||||
"Authority": "權限", | |||||
"Edit": "編輯", | |||||
"Delete": "刪除", | |||||
"Add": "新增", | |||||
"authority": "權限", | |||||
"description": "描述", | |||||
"Search by Authority or description or position.": "搜尋權限、描述或職位。", | |||||
"Remove": "移除" | |||||
} | } |
@@ -1,5 +1,6 @@ | |||||
import { NextRequestWithAuth, withAuth } from "next-auth/middleware"; | import { NextRequestWithAuth, withAuth } from "next-auth/middleware"; | ||||
import { authOptions } from "@/config/authConfig"; | |||||
// import { authOptions } from "@/config/authConfig"; | |||||
import { authOptions } from "./config/authConfig"; | |||||
import { NextFetchEvent, NextResponse } from "next/server"; | import { NextFetchEvent, NextResponse } from "next/server"; | ||||
import { PRIVATE_ROUTES } from "./routes"; | import { PRIVATE_ROUTES } from "./routes"; | ||||