This commit is contained in:
Tamilselvan 2026-03-03 11:28:09 +05:30
parent 13940b3344
commit 1a20a512e4
17 changed files with 350 additions and 370 deletions

53
package-lock.json generated
View File

@ -547,6 +547,7 @@
"version": "16.14.0", "version": "16.14.0",
"resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz",
"integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==",
"peer": true,
"dependencies": { "dependencies": {
"loose-envify": "^1.1.0", "loose-envify": "^1.1.0",
"object-assign": "^4.1.1", "object-assign": "^4.1.1",
@ -595,6 +596,7 @@
"version": "7.28.6", "version": "7.28.6",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.6.tgz", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.6.tgz",
"integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==", "integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==",
"peer": true,
"dependencies": { "dependencies": {
"@babel/code-frame": "^7.28.6", "@babel/code-frame": "^7.28.6",
"@babel/generator": "^7.28.6", "@babel/generator": "^7.28.6",
@ -645,7 +647,6 @@
"resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz",
"integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@babel/types": "^7.27.3" "@babel/types": "^7.27.3"
}, },
@ -780,7 +781,6 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz",
"integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.28.6" "@babel/helper-plugin-utils": "^7.28.6"
}, },
@ -796,7 +796,6 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz",
"integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@babel/helper-plugin-utils": "^7.27.1" "@babel/helper-plugin-utils": "^7.27.1"
}, },
@ -812,7 +811,6 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.28.6.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.28.6.tgz",
"integrity": "sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==", "integrity": "sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-annotate-as-pure": "^7.27.3",
"@babel/helper-module-imports": "^7.28.6", "@babel/helper-module-imports": "^7.28.6",
@ -832,7 +830,6 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz",
"integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@babel/plugin-transform-react-jsx": "^7.27.1" "@babel/plugin-transform-react-jsx": "^7.27.1"
}, },
@ -878,7 +875,6 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz",
"integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@babel/helper-annotate-as-pure": "^7.27.1", "@babel/helper-annotate-as-pure": "^7.27.1",
"@babel/helper-plugin-utils": "^7.27.1" "@babel/helper-plugin-utils": "^7.27.1"
@ -994,6 +990,7 @@
"resolved": "https://registry.npmjs.org/@capacitor/core/-/core-8.1.0.tgz", "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-8.1.0.tgz",
"integrity": "sha512-UfMBMWc1v7J+14AhH03QmeNwV3HZx3qnOWhpwnHfzALEwAwlV/itQOQqcasMQYhOHWL0tiymc5ByaLTn7KKQxw==", "integrity": "sha512-UfMBMWc1v7J+14AhH03QmeNwV3HZx3qnOWhpwnHfzALEwAwlV/itQOQqcasMQYhOHWL0tiymc5ByaLTn7KKQxw==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"tslib": "^2.1.0" "tslib": "^2.1.0"
} }
@ -1013,6 +1010,7 @@
"version": "6.3.1", "version": "6.3.1",
"resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.1.tgz", "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.1.tgz",
"integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==", "integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==",
"peer": true,
"dependencies": { "dependencies": {
"@dnd-kit/accessibility": "^3.1.1", "@dnd-kit/accessibility": "^3.1.1",
"@dnd-kit/utilities": "^3.2.2", "@dnd-kit/utilities": "^3.2.2",
@ -1143,6 +1141,7 @@
"version": "11.14.0", "version": "11.14.0",
"resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz",
"integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==",
"peer": true,
"dependencies": { "dependencies": {
"@babel/runtime": "^7.18.3", "@babel/runtime": "^7.18.3",
"@emotion/babel-plugin": "^11.13.5", "@emotion/babel-plugin": "^11.13.5",
@ -1188,6 +1187,7 @@
"version": "11.14.1", "version": "11.14.1",
"resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.1.tgz", "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.1.tgz",
"integrity": "sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==", "integrity": "sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==",
"peer": true,
"dependencies": { "dependencies": {
"@babel/runtime": "^7.18.3", "@babel/runtime": "^7.18.3",
"@emotion/babel-plugin": "^11.13.5", "@emotion/babel-plugin": "^11.13.5",
@ -2009,6 +2009,7 @@
"resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.4.tgz", "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.4.tgz",
"integrity": "sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ==", "integrity": "sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ==",
"deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.", "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.",
"peer": true,
"dependencies": { "dependencies": {
"@babel/runtime": "^7.4.4", "@babel/runtime": "^7.4.4",
"@material-ui/styles": "^4.11.5", "@material-ui/styles": "^4.11.5",
@ -2045,6 +2046,7 @@
"version": "4.11.3", "version": "4.11.3",
"resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.11.3.tgz", "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.11.3.tgz",
"integrity": "sha512-IKHlyx6LDh8n19vzwH5RtHIOHl9Tu90aAAxcbWME6kp4dmvODM3UvOHJeMIDzUbd4muuJKHmlNoBN+mDY4XkBA==", "integrity": "sha512-IKHlyx6LDh8n19vzwH5RtHIOHl9Tu90aAAxcbWME6kp4dmvODM3UvOHJeMIDzUbd4muuJKHmlNoBN+mDY4XkBA==",
"peer": true,
"dependencies": { "dependencies": {
"@babel/runtime": "^7.4.4" "@babel/runtime": "^7.4.4"
}, },
@ -3015,6 +3017,7 @@
"version": "16.14.0", "version": "16.14.0",
"resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz",
"integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==",
"peer": true,
"dependencies": { "dependencies": {
"loose-envify": "^1.1.0", "loose-envify": "^1.1.0",
"object-assign": "^4.1.1", "object-assign": "^4.1.1",
@ -3084,6 +3087,7 @@
"version": "5.90.20", "version": "5.90.20",
"resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.90.20.tgz", "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.90.20.tgz",
"integrity": "sha512-vXBxa+qeyveVO7OA0jX1z+DeyCA4JKnThKv411jd5SORpBKgkcVnYKCiBgECvADvniBX7tobwBmg01qq9JmMJw==", "integrity": "sha512-vXBxa+qeyveVO7OA0jX1z+DeyCA4JKnThKv411jd5SORpBKgkcVnYKCiBgECvADvniBX7tobwBmg01qq9JmMJw==",
"peer": true,
"dependencies": { "dependencies": {
"@tanstack/query-core": "5.90.20" "@tanstack/query-core": "5.90.20"
}, },
@ -3352,6 +3356,7 @@
"version": "18.3.27", "version": "18.3.27",
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.27.tgz", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.27.tgz",
"integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==", "integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==",
"peer": true,
"dependencies": { "dependencies": {
"@types/prop-types": "*", "@types/prop-types": "*",
"csstype": "^3.2.2" "csstype": "^3.2.2"
@ -3362,6 +3367,7 @@
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz",
"integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==",
"devOptional": true, "devOptional": true,
"peer": true,
"peerDependencies": { "peerDependencies": {
"@types/react": "^18.0.0" "@types/react": "^18.0.0"
} }
@ -3498,6 +3504,7 @@
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true, "dev": true,
"peer": true,
"bin": { "bin": {
"acorn": "bin/acorn" "acorn": "bin/acorn"
}, },
@ -3527,7 +3534,6 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
"integrity": "sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==", "integrity": "sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"co": "^4.6.0", "co": "^4.6.0",
"fast-deep-equal": "^1.0.0", "fast-deep-equal": "^1.0.0",
@ -3578,8 +3584,7 @@
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
"integrity": "sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==", "integrity": "sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==",
"license": "MIT", "license": "MIT"
"peer": true
}, },
"node_modules/align-text": { "node_modules/align-text": {
"version": "0.1.4", "version": "0.1.4",
@ -3672,6 +3677,7 @@
"version": "5.29.3", "version": "5.29.3",
"resolved": "https://registry.npmjs.org/antd/-/antd-5.29.3.tgz", "resolved": "https://registry.npmjs.org/antd/-/antd-5.29.3.tgz",
"integrity": "sha512-3DdbGCa9tWAJGcCJ6rzR8EJFsv2CtyEbkVabZE14pfgUHfCicWCj0/QzQVLDYg8CPfQk9BH7fHCoTXHTy7MP/A==", "integrity": "sha512-3DdbGCa9tWAJGcCJ6rzR8EJFsv2CtyEbkVabZE14pfgUHfCicWCj0/QzQVLDYg8CPfQk9BH7fHCoTXHTy7MP/A==",
"peer": true,
"dependencies": { "dependencies": {
"@ant-design/colors": "^7.2.1", "@ant-design/colors": "^7.2.1",
"@ant-design/cssinjs": "^1.23.0", "@ant-design/cssinjs": "^1.23.0",
@ -4049,6 +4055,7 @@
"version": "1.13.3", "version": "1.13.3",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.13.3.tgz", "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.3.tgz",
"integrity": "sha512-ERT8kdX7DZjtUm7IitEyV7InTHAF42iJuMArIiDIV5YtPanJkgw4hw5Dyg9fh0mihdWNn1GKaeIWErfe56UQ1g==", "integrity": "sha512-ERT8kdX7DZjtUm7IitEyV7InTHAF42iJuMArIiDIV5YtPanJkgw4hw5Dyg9fh0mihdWNn1GKaeIWErfe56UQ1g==",
"peer": true,
"dependencies": { "dependencies": {
"follow-redirects": "^1.15.6", "follow-redirects": "^1.15.6",
"form-data": "^4.0.4", "form-data": "^4.0.4",
@ -4337,6 +4344,7 @@
"url": "https://github.com/sponsors/ai" "url": "https://github.com/sponsors/ai"
} }
], ],
"peer": true,
"dependencies": { "dependencies": {
"baseline-browser-mapping": "^2.9.0", "baseline-browser-mapping": "^2.9.0",
"caniuse-lite": "^1.0.30001759", "caniuse-lite": "^1.0.30001759",
@ -4717,7 +4725,6 @@
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
"integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
"license": "MIT", "license": "MIT",
"peer": true,
"engines": { "engines": {
"iojs": ">= 1.0.0", "iojs": ">= 1.0.0",
"node": ">= 0.12.0" "node": ">= 0.12.0"
@ -5241,6 +5248,7 @@
"version": "4.1.0", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz",
"integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==",
"peer": true,
"funding": { "funding": {
"type": "github", "type": "github",
"url": "https://github.com/sponsors/kossnocorp" "url": "https://github.com/sponsors/kossnocorp"
@ -5249,7 +5257,8 @@
"node_modules/dayjs": { "node_modules/dayjs": {
"version": "1.11.19", "version": "1.11.19",
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz",
"integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==" "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==",
"peer": true
}, },
"node_modules/debounce-fn": { "node_modules/debounce-fn": {
"version": "6.0.0", "version": "6.0.0",
@ -5892,6 +5901,7 @@
"integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
"deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1", "@eslint-community/regexpp": "^4.6.1",
@ -7190,7 +7200,8 @@
"node_modules/highcharts": { "node_modules/highcharts": {
"version": "11.4.8", "version": "11.4.8",
"resolved": "https://registry.npmjs.org/highcharts/-/highcharts-11.4.8.tgz", "resolved": "https://registry.npmjs.org/highcharts/-/highcharts-11.4.8.tgz",
"integrity": "sha512-5Tke9LuzZszC4osaFisxLIcw7xgNGz4Sy3Jc9pRMV+ydm6sYqsPYdU8ELOgpzGNrbrRNDRBtveoR5xS3SzneEA==" "integrity": "sha512-5Tke9LuzZszC4osaFisxLIcw7xgNGz4Sy3Jc9pRMV+ydm6sYqsPYdU8ELOgpzGNrbrRNDRBtveoR5xS3SzneEA==",
"peer": true
}, },
"node_modules/highcharts-react-official": { "node_modules/highcharts-react-official": {
"version": "3.2.3", "version": "3.2.3",
@ -8015,6 +8026,7 @@
"resolved": "https://registry.npmjs.org/javascript-obfuscator/-/javascript-obfuscator-4.2.2.tgz", "resolved": "https://registry.npmjs.org/javascript-obfuscator/-/javascript-obfuscator-4.2.2.tgz",
"integrity": "sha512-+7oXAUnFCA6vS0omIGHcWpSr67dUBIF7FKGYSXyzxShSLqM6LBgdugWKFl0XrYtGWyJMGfQR5F4LL85iCefkRA==", "integrity": "sha512-+7oXAUnFCA6vS0omIGHcWpSr67dUBIF7FKGYSXyzxShSLqM6LBgdugWKFl0XrYtGWyJMGfQR5F4LL85iCefkRA==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"@javascript-obfuscator/escodegen": "2.3.1", "@javascript-obfuscator/escodegen": "2.3.1",
"@javascript-obfuscator/estraverse": "5.4.0", "@javascript-obfuscator/estraverse": "5.4.0",
@ -8315,8 +8327,7 @@
"version": "0.3.1", "version": "0.3.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
"integrity": "sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==", "integrity": "sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==",
"license": "MIT", "license": "MIT"
"peer": true
}, },
"node_modules/json-schema-typed": { "node_modules/json-schema-typed": {
"version": "8.0.2", "version": "8.0.2",
@ -8996,6 +9007,7 @@
"version": "2.30.1", "version": "2.30.1",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
"integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
"peer": true,
"engines": { "engines": {
"node": "*" "node": "*"
} }
@ -9710,6 +9722,7 @@
"version": "15.8.1", "version": "15.8.1",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
"peer": true,
"dependencies": { "dependencies": {
"loose-envify": "^1.4.0", "loose-envify": "^1.4.0",
"object-assign": "^4.1.1", "object-assign": "^4.1.1",
@ -10482,6 +10495,7 @@
"version": "18.3.1", "version": "18.3.1",
"resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
"integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
"peer": true,
"dependencies": { "dependencies": {
"loose-envify": "^1.1.0" "loose-envify": "^1.1.0"
}, },
@ -10642,6 +10656,7 @@
"version": "18.3.1", "version": "18.3.1",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
"integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
"peer": true,
"dependencies": { "dependencies": {
"loose-envify": "^1.1.0", "loose-envify": "^1.1.0",
"scheduler": "^0.23.2" "scheduler": "^0.23.2"
@ -10711,7 +10726,8 @@
"node_modules/react-is": { "node_modules/react-is": {
"version": "16.13.1", "version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"peer": true
}, },
"node_modules/react-qr-code": { "node_modules/react-qr-code": {
"version": "2.0.18", "version": "2.0.18",
@ -10729,6 +10745,7 @@
"version": "8.1.3", "version": "8.1.3",
"resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.1.3.tgz", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.1.3.tgz",
"integrity": "sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw==", "integrity": "sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw==",
"peer": true,
"dependencies": { "dependencies": {
"@babel/runtime": "^7.12.1", "@babel/runtime": "^7.12.1",
"@types/hoist-non-react-statics": "^3.3.1", "@types/hoist-non-react-statics": "^3.3.1",
@ -11009,6 +11026,7 @@
"version": "4.2.1", "version": "4.2.1",
"resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz",
"integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==",
"peer": true,
"dependencies": { "dependencies": {
"@babel/runtime": "^7.9.2" "@babel/runtime": "^7.9.2"
} }
@ -11025,7 +11043,8 @@
"version": "0.2.2", "version": "0.2.2",
"resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz",
"integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==",
"dev": true "dev": true,
"peer": true
}, },
"node_modules/reflect.getprototypeof": { "node_modules/reflect.getprototypeof": {
"version": "1.0.10", "version": "1.0.10",
@ -11389,6 +11408,7 @@
"resolved": "https://registry.npmjs.org/sass/-/sass-1.97.3.tgz", "resolved": "https://registry.npmjs.org/sass/-/sass-1.97.3.tgz",
"integrity": "sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==", "integrity": "sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"chokidar": "^4.0.0", "chokidar": "^4.0.0",
"immutable": "^5.0.2", "immutable": "^5.0.2",
@ -12829,6 +12849,7 @@
"resolved": "https://registry.npmjs.org/vite/-/vite-4.5.14.tgz", "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.14.tgz",
"integrity": "sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g==", "integrity": "sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"esbuild": "^0.18.10", "esbuild": "^0.18.10",
"postcss": "^8.4.27", "postcss": "^8.4.27",

View File

@ -1313,21 +1313,18 @@ const InvoiceTemplate = ({
{/* Identifiers */} {/* Identifiers */}
{identifiers.map((id, i) => ( {identifiers.map((id, i) => (
<div key={i} style={{ display: 'flex', flexDirection: 'column', gap: '2px' }}> (id?.SerialNumber || id?.IMEI1 || id?.IMEI2) && (
{/* Serial + IMEIs in one line */} <div key={i} style={{ display: 'flex', gap: '3px' }}>
{(id?.SerialNumber || id?.IMEI1 || id?.IMEI2) && (
<div style={{ display: 'flex', gap: '3px' }}>
{id?.SerialNumber && <div>{id.SerialNumber}</div>} {id?.SerialNumber && <div>{id.SerialNumber}</div>}
{(id?.IMEI1 || id?.IMEI2) && ( {(id?.IMEI1 || id?.IMEI2) && (
<div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(", ")}</div> <div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(", ")}</div>
)} )}
</div> </div>
)} )
{/* Description on new line */}
{id?.Description && <div>{id.Description}</div>}
</div>
))} ))}
{/* Description from first identifier */}
{identifiers[0]?.Description && <div>{identifiers[0].Description}</div>}
</> </>
); );
})()} })()}
@ -3016,24 +3013,40 @@ const InvoiceTemplate = ({
{item?.BrandName && <div>{item.BrandName}</div>} {item?.BrandName && <div>{item.BrandName}</div>}
{/* Identifiers */} {/* Identifiers */}
{item?.ProductIdentifierDtls?.map((id, index) => ( {(() => {
<div key={index} style={{ display: 'flex', flexDirection: 'column', gap: '2px' }}> const firstDescription = item?.ProductIdentifierDtls?.find(
d => d?.Description
)?.Description;
{/* Serial + IMEIs in one row */} return (
{(id?.SerialNumber || id?.IMEI1 || id?.IMEI2) && ( <>
<div style={{ display: 'flex', gap: '4px' }}> {/* Serial + IMEI */}
{item?.ProductIdentifierDtls?.map((id, index) => (
<div
key={index}
style={{ display: 'flex', gap: '4px', marginBottom: '2px' }}
>
{id?.SerialNumber && <div>{id.SerialNumber}</div>} {id?.SerialNumber && <div>{id.SerialNumber}</div>}
{(id?.IMEI1 || id?.IMEI2) && ( {(id?.IMEI1 || id?.IMEI2) && (
<div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(", ")}</div> <div>
)} {[id.IMEI1, id.IMEI2].filter(Boolean).join(", ")}
</div> </div>
)} )}
{/* Description on new line */}
{id?.Description && <div>{id.Description}</div>}
</div> </div>
))} ))}
{/* Description Outside */}
{firstDescription && (
<div style={{ marginTop: '4px' }}>
{firstDescription}
</div>
)}
</>
);
})()}
</td> </td>
)} )}
{GlobaldummyData {GlobaldummyData

View File

@ -1792,25 +1792,20 @@ const PrintA4Style11 = ({
{/* Identifiers */} {/* Identifiers */}
{item?.ProductIdentifierDtls?.map((id, index) => ( {item?.ProductIdentifierDtls?.map((id, index) => (
<div key={index}> (id?.SerialNumber || id?.IMEI1 || id?.IMEI2) && (
<div key={index} style={{ display: 'flex', gap: '3px' }}>
{/* Serial Number */}
{id?.SerialNumber && <div>{id.SerialNumber}</div>} {id?.SerialNumber && <div>{id.SerialNumber}</div>}
{/* IMEI */}
{(id?.IMEI1 || id?.IMEI2) && ( {(id?.IMEI1 || id?.IMEI2) && (
<div> <div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(",")}</div>
{[id.IMEI1, id.IMEI2].filter(Boolean).join(",")}
</div>
)} )}
{/* Description */}
{(id?.SerialNumber || id?.IMEI1 || id?.IMEI2) && id?.Description && (
<div>{id.Description}</div>
)}
</div> </div>
)
))} ))}
{/* Description from first identifier */}
{item?.ProductIdentifierDtls?.[0]?.Description && (
<div>{item.ProductIdentifierDtls[0].Description}</div>
)}
</td> </td>
) )
)} )}

View File

@ -1711,26 +1711,20 @@ const PrintA5Style11 = ({
{item?.BrandName && <div>{item.BrandName}</div>} {item?.BrandName && <div>{item.BrandName}</div>}
{item?.ProductIdentifierDtls?.map((id, index) => ( {item?.ProductIdentifierDtls?.map((id, index) => (
<div key={index}> (id?.SerialNumber || id?.IMEI1 || id?.IMEI2) && (
<div key={index} style={{ display: 'flex', gap: '3px' }}>
{/* Serial Number */}
{id?.SerialNumber && <div>{id.SerialNumber}</div>} {id?.SerialNumber && <div>{id.SerialNumber}</div>}
{/* IMEI */}
{(id?.IMEI1 || id?.IMEI2) && ( {(id?.IMEI1 || id?.IMEI2) && (
<div> <div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(",")}</div>
{[id.IMEI1, id.IMEI2].filter(Boolean).join(",")}
</div>
)} )}
{/* Description */}
{(id?.SerialNumber || id?.IMEI1 || id?.IMEI2) &&
id?.Description && (
<div>{id.Description}</div>
)}
</div> </div>
)
))} ))}
{/* Description from first identifier */}
{item?.ProductIdentifierDtls?.[0]?.Description && (
<div>{item.ProductIdentifierDtls[0].Description}</div>
)}
</td> </td>
) )
)} )}

View File

@ -836,21 +836,26 @@ const TaxInvoice = ({
)} )}
<div> <div>
{item?.ProductIdentifierDtls?.map((id, i) => ( {item?.ProductIdentifierDtls?.map((id, i) => (
<div key={i}> <div key={i} style={{ display: "flex", gap: "5px", flexWrap: "wrap" }}>
<div style={{ display: "flex", gap: "5px", flexWrap: "wrap" }}>
{id?.SerialNumber && <span>{id.SerialNumber}</span>} {id?.SerialNumber && <span>{id.SerialNumber}</span>}
{(id?.IMEI1 || id?.IMEI2) && ( {(id?.IMEI1 || id?.IMEI2) && (
<span>{[id.IMEI1, id.IMEI2].filter(Boolean).join(",")}</span> <span>
)} {[id.IMEI1, id.IMEI2].filter(Boolean).join(",")}
</div> </span>
{id?.Description && (
<div style={{ marginTop: "3px", wordBreak: "break-word" }}>
{id.Description}
</div>
)} )}
</div> </div>
))} ))}
{/* Description outside */}
{item?.ProductIdentifierDtls
?.find(d => d?.Description)
?.Description && (
<div style={{ marginTop: "3px", wordBreak: "break-word" }}>
{item?.ProductIdentifierDtls
?.find(d => d?.Description)
?.Description}
</div>
)}
</div> </div>
</div> </div>

View File

@ -829,15 +829,16 @@ const PrintStyle1 = ({
); );
}) })
: ''} : ''}
{item?.ProductIdentifierDtls?.length > 0 {item?.ProductIdentifierDtls?.length > 0 &&
? item?.ProductIdentifierDtls.filter( item?.ProductIdentifierDtls.find(
(items) => (items) =>
items.SerialNumber || items.IMEI1 || items.IMEI2 items.SerialNumber || items.IMEI1 || items.IMEI2
)?.map((a, i) => ( )?.Description && (
<div key={i}>{a.Description}</div> <div>{item.ProductIdentifierDtls.find(
)) (items) =>
items.SerialNumber || items.IMEI1 || items.IMEI2
: ''} ).Description}</div>
)}
</div> </div>
</td> </td>
@ -4044,14 +4045,16 @@ const PrintStyle1 = ({
); );
}) })
: ''} : ''}
{item?.ProductIdentifierDtls?.length > 0 {item?.ProductIdentifierDtls?.length > 0 &&
? item?.ProductIdentifierDtls.filter( item?.ProductIdentifierDtls.find(
(items) => (items) =>
items.SerialNumber || items.IMEI1 || items.IMEI2 items.SerialNumber || items.IMEI1 || items.IMEI2
)?.map((a, i) => ( )?.Description && (
<div key={i}>{a.Description} </div> <div>{item.ProductIdentifierDtls.find(
)) (items) =>
: ''} items.SerialNumber || items.IMEI1 || items.IMEI2
).Description}</div>
)}
</div> </div>
</td> </td>
)} )}

View File

@ -724,14 +724,16 @@ const PrintStyle10 = ({
&nbsp; &nbsp;
<div style={{ display: 'flex', flexDirection: 'column', gap: '3px' }}> <div style={{ display: 'flex', flexDirection: 'column', gap: '3px' }}>
{item?.ProductIdentifierDtls?.map((id, i) => ( {item?.ProductIdentifierDtls?.map((id, i) => (
<div key={i} style={{ display: 'flex', flexDirection: 'column', gap: '2px' }}> <div key={i}>
{id.SerialNumber && <div>{id.SerialNumber}</div>} {id.SerialNumber && <div>{id.SerialNumber}</div>}
{(id.IMEI1 || id.IMEI2) && ( {(id.IMEI1 || id.IMEI2) && (
<div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(', ')}</div> <div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(', ')}</div>
)} )}
{id.Description && <div>{id.Description}</div>}
</div> </div>
))} ))}
{item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div> </div>
</div> </div>
) : ( ) : (
@ -744,14 +746,16 @@ const PrintStyle10 = ({
{/* Product identifiers */} {/* Product identifiers */}
{item?.ProductIdentifierDtls?.map((id, i) => ( {item?.ProductIdentifierDtls?.map((id, i) => (
<div key={i} style={{ display: 'flex', flexDirection: 'column', gap: '2px' }}> <div key={i}>
{id.SerialNumber && <div>{id.SerialNumber}</div>} {id.SerialNumber && <div>{id.SerialNumber}</div>}
{(id.IMEI1 || id.IMEI2) && ( {(id.IMEI1 || id.IMEI2) && (
<div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(', ')}</div> <div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(', ')}</div>
)} )}
{id.Description && <div>{id.Description}</div>}
</div> </div>
))} ))}
{item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div> </div>
)} )}
</td> </td>
@ -3286,12 +3290,14 @@ const PrintStyle10 = ({
{/* Product Identifiers */} {/* Product Identifiers */}
{item?.ProductIdentifierDtls?.map((id, i) => ( {item?.ProductIdentifierDtls?.map((id, i) => (
<div key={i} style={{ display: 'flex', flexDirection: 'column', gap: '2px' }}> <div key={i}>
{id.SerialNumber && <div>{id.SerialNumber}</div>} {id.SerialNumber && <div>{id.SerialNumber}</div>}
{(id.IMEI1 || id.IMEI2) && <div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(', ')}</div>} {(id.IMEI1 || id.IMEI2) && <div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(', ')}</div>}
{id.Description && <div>{id.Description}</div>}
</div> </div>
))} ))}
{item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div> </div>
) : ( ) : (
<div> <div>
@ -3328,14 +3334,16 @@ const PrintStyle10 = ({
: ''} */} : ''} */}
<div style={{ display: 'flex', flexDirection: 'column', gap: "3px" }}> <div style={{ display: 'flex', flexDirection: 'column', gap: "3px" }}>
{item?.ProductIdentifierDtls?.map((id, i) => ( {item?.ProductIdentifierDtls?.map((id, i) => (
<div key={i} style={{ display: 'flex', flexDirection: 'column', gap: "2px" }}> <div key={i}>
{id.SerialNumber && <div>{id.SerialNumber}</div>} {id.SerialNumber && <div>{id.SerialNumber}</div>}
{(id.IMEI1 || id.IMEI2) && ( {(id.IMEI1 || id.IMEI2) && (
<div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(', ')}</div> <div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(', ')}</div>
)} )}
{id.Description && <div>{id.Description}</div>}
</div> </div>
))} ))}
{item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div> </div>
</div> </div>
)} )}

View File

@ -693,25 +693,19 @@ const PrintStyle11 = ({
{item?.ProductIdentifierDtls?.map((detail, index) => { {item?.ProductIdentifierDtls?.map((detail, index) => {
const serial = detail.SerialNumber?.trim(); const serial = detail.SerialNumber?.trim();
const imeis = [detail.IMEI1, detail.IMEI2].filter(Boolean).join(', '); const imeis = [detail.IMEI1, detail.IMEI2].filter(Boolean).join(', ');
const description = detail.Description?.trim();
// Skip if nothing exists if (!serial && !imeis) return null;
if (!serial && !imeis && !description) return null;
return ( return (
<div key={index} style={{ display: 'flex', flexDirection: 'column', gap: '2px' }}> <div key={index} style={{ display: 'flex', gap: '3px' }}>
{/* Serial + IMEI in one line */}
{(serial || imeis) && (
<div style={{ display: 'flex', gap: '3px' }}>
{serial && <div>{serial}</div>} {serial && <div>{serial}</div>}
{imei && <div>{imeis}</div>} {imeis && <div>{imeis}</div>}
</div>
)}
{/* Description on new line */}
{description && <div>{description}</div>}
</div> </div>
); );
})} })}
{item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div> </div>
</div> </div>
) : ( ) : (
@ -731,22 +725,20 @@ const PrintStyle11 = ({
{item?.ProductIdentifierDtls?.map((detail, index) => { {item?.ProductIdentifierDtls?.map((detail, index) => {
const serial = detail.SerialNumber; const serial = detail.SerialNumber;
const imeis = [detail.IMEI1, detail.IMEI2].filter(Boolean).join(','); const imeis = [detail.IMEI1, detail.IMEI2].filter(Boolean).join(',');
const description = detail.Description;
// Only render if at least one value exists if (!serial && !imeis) return null;
if (!serial && !imeis && !description) return null;
return ( return (
<div key={index} style={{ display: 'flex', flexDirection: 'column', gap: '2px' }}> <div key={index} style={{ display: 'flex', gap: '3px' }}>
<div style={{ display: 'flex', gap: '3px' }}>
{serial && <div>{serial}</div>} {serial && <div>{serial}</div>}
{imeis && <div>{imeis}</div>} {imeis && <div>{imeis}</div>}
</div> </div>
{description && <div>{description}</div>}
</div>
); );
})} })}
</div> </div>
{item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div> </div>
)} )}
@ -3284,25 +3276,19 @@ const PrintStyle11 = ({
{item?.ProductIdentifierDtls?.map((detail, idx) => { {item?.ProductIdentifierDtls?.map((detail, idx) => {
const serial = detail.SerialNumber?.trim(); const serial = detail.SerialNumber?.trim();
const imeis = [detail.IMEI1, detail.IMEI2].filter(Boolean).join(', '); const imeis = [detail.IMEI1, detail.IMEI2].filter(Boolean).join(', ');
const description = detail.Description?.trim();
// Skip if nothing exists if (!serial && !imeis) return null;
if (!serial && !imeis && !description) return null;
return ( return (
<div key={idx} style={{ display: 'flex', flexDirection: 'column', gap: '2px' }}> <div key={idx} style={{ display: 'flex', gap: '3px' }}>
{/* Serial + IMEIs on one line */}
{(serial || imeis) && (
<div style={{ display: 'flex', gap: '3px' }}>
{serial && <div>{serial}</div>} {serial && <div>{serial}</div>}
{imeis && <div>{imeis}</div>} {imeis && <div>{imeis}</div>}
</div> </div>
)}
{/* Description on new line */}
{description && <div>{description}</div>}
</div>
); );
})} })}
{item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div> </div>
) : ( ) : (
<div> <div>
@ -3351,25 +3337,19 @@ const PrintStyle11 = ({
{item?.ProductIdentifierDtls?.map((detail, index) => { {item?.ProductIdentifierDtls?.map((detail, index) => {
const serial = detail.SerialNumber?.trim(); const serial = detail.SerialNumber?.trim();
const imeis = [detail.IMEI1, detail.IMEI2].filter(Boolean).join(', '); const imeis = [detail.IMEI1, detail.IMEI2].filter(Boolean).join(', ');
const description = detail.Description?.trim();
// Skip if nothing exists if (!serial && !imeis) return null;
if (!serial && !imeis && !description) return null;
return ( return (
<div key={index} style={{ display: 'flex', flexDirection: 'column', gap: '2px' }}> <div key={index} style={{ display: 'flex', gap: '3px' }}>
{/* Serial + IMEIs on one line */}
{(serial || imeis) && (
<div style={{ display: 'flex', gap: '3px' }}>
{serial && <div>{serial}</div>} {serial && <div>{serial}</div>}
{imeis && <div>{imeis}</div>} {imeis && <div>{imeis}</div>}
</div> </div>
)}
{/* Description on new line */}
{description && <div>{description}</div>}
</div>
); );
})} })}
{item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div> </div>
</div> </div>
)} )}

View File

@ -843,26 +843,19 @@ const Printstyle12 = ({
{item?.ProductIdentifierDtls?.map((detail, index) => { {item?.ProductIdentifierDtls?.map((detail, index) => {
const serial = detail.SerialNumber?.trim(); const serial = detail.SerialNumber?.trim();
const imeis = [detail.IMEI1, detail.IMEI2].filter(Boolean).join(', '); const imeis = [detail.IMEI1, detail.IMEI2].filter(Boolean).join(', ');
const description = detail.Description?.trim();
// Skip if all are empty if (!serial && !imeis) return null;
if (!serial && !imeis && !description) return null;
return ( return (
<div key={index} style={{ display: 'flex', flexDirection: 'column', gap: '2px' }}> <div key={index} style={{ display: 'flex', gap: '3px' }}>
{/* Serial + IMEIs on the same row */}
{(serial || imeis) && (
<div style={{ display: 'flex', gap: '3px' }}>
{serial && <div>{serial}</div>} {serial && <div>{serial}</div>}
{imeis && <div>{imeis}</div>} {imeis && <div>{imeis}</div>}
</div> </div>
)}
{/* Description on new line */}
{description && <div>{description}</div>}
</div>
); );
})} })}
{item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div> </div>
</div> </div>
) : ( ) : (
@ -3540,26 +3533,19 @@ const Printstyle12 = ({
{item?.ProductIdentifierDtls?.map((detail, index) => { {item?.ProductIdentifierDtls?.map((detail, index) => {
const serial = detail.SerialNumber?.trim(); const serial = detail.SerialNumber?.trim();
const imeis = [detail.IMEI1, detail.IMEI2].filter(Boolean).join(', '); const imeis = [detail.IMEI1, detail.IMEI2].filter(Boolean).join(', ');
const description = detail.Description?.trim();
// Skip empty entries if (!serial && !imeis) return null;
if (!serial && !imeis && !description) return null;
return ( return (
<div key={index} style={{ display: 'flex', flexDirection: 'column', gap: '2px' }}> <div key={index} style={{ display: 'flex', gap: '3px' }}>
{/* Serial + IMEIs in one row */}
{(serial || imeis) && (
<div style={{ display: 'flex', gap: '3px' }}>
{serial && <div>{serial}</div>} {serial && <div>{serial}</div>}
{imeis && <div>{imeis}</div>} {imeis && <div>{imeis}</div>}
</div> </div>
)}
{/* Description on new line */}
{description && <div>{description}</div>}
</div>
); );
})} })}
{item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div> </div>
</div> </div>
)} )}

View File

@ -765,15 +765,16 @@ const Printstyle2 = ({
); );
}) })
: ''} : ''}
{item?.ProductIdentifierDtls?.length > 0 {item?.ProductIdentifierDtls?.length > 0 &&
? item?.ProductIdentifierDtls.filter( item?.ProductIdentifierDtls.find(
(items) => (items) =>
items.SerialNumber || items.IMEI1 || items.IMEI2 items.SerialNumber || items.IMEI1 || items.IMEI2
)?.map((a, i) => ( )?.Description && (
<div key={i}>{a.Description}</div> <div>{item.ProductIdentifierDtls.find(
)) (items) =>
items.SerialNumber || items.IMEI1 || items.IMEI2
: ''} ).Description}</div>
)}
</div> </div>
</div> </div>
@ -3357,15 +3358,16 @@ const Printstyle2 = ({
); );
}) })
: ''} : ''}
{item?.ProductIdentifierDtls?.length > 0 {item?.ProductIdentifierDtls?.length > 0 &&
? item?.ProductIdentifierDtls.filter( item?.ProductIdentifierDtls.find(
(items) => (items) =>
items.SerialNumber || items.IMEI1 || items.IMEI2 items.SerialNumber || items.IMEI1 || items.IMEI2
)?.map((a, i) => ( )?.Description && (
<div key={i}>{a.Description}</div> <div>{item.ProductIdentifierDtls.find(
)) (items) =>
items.SerialNumber || items.IMEI1 || items.IMEI2
: ''} ).Description}</div>
)}
</div> </div>
</div> </div>
</td> </td>

View File

@ -327,15 +327,16 @@ const PrintStyle3 = ({ index, totalQuantityFilter, Date1, CashierName, totalQuan
); );
}) })
: ''} : ''}
{item?.ProductIdentifierDtls?.length > 0 {item?.ProductIdentifierDtls?.length > 0 &&
? item?.ProductIdentifierDtls.filter( item?.ProductIdentifierDtls.find(
(items) => (items) =>
items.SerialNumber || items.IMEI1 || items.IMEI2 items.SerialNumber || items.IMEI1 || items.IMEI2
)?.map((a, i) => ( )?.Description && (
<div key={i}>{a.Description} </div> <div>{item.ProductIdentifierDtls.find(
)) (items) =>
items.SerialNumber || items.IMEI1 || items.IMEI2
: ''} ).Description}</div>
)}
</div> </div>
</div> </div>
</div>} </div>}
@ -1286,15 +1287,16 @@ const PrintStyle3 = ({ index, totalQuantityFilter, Date1, CashierName, totalQuan
); );
}) })
: ''} : ''}
{item?.ProductIdentifierDtls?.length > 0 {item?.ProductIdentifierDtls?.length > 0 &&
? item?.ProductIdentifierDtls.filter( item?.ProductIdentifierDtls.find(
(items) => (items) =>
items.SerialNumber || items.IMEI1 || items.IMEI2 items.SerialNumber || items.IMEI1 || items.IMEI2
)?.map((a, i) => ( )?.Description && (
<span key={i}>{a.Description}</span> <span>{item.ProductIdentifierDtls.find(
)) (items) =>
items.SerialNumber || items.IMEI1 || items.IMEI2
: ''} ).Description}</span>
)}
</div> </div>
</div> </div>
</div>} </div>}

View File

@ -784,12 +784,10 @@ const Printstyle4 = ({
<div key={`imei-${i}`}>{iVal}</div> <div key={`imei-${i}`}>{iVal}</div>
))} ))}
{/* Description - Always New Line */} {/* Description from first identifier */}
{descriptions[0] && (
<div>{descriptions[0]}</div>
{descriptions.map((d, i) => ( )}
<div key={`desc-${i}`}>{d}</div>
))}
</td> </td>
) )
} }
@ -3357,14 +3355,12 @@ const Printstyle4 = ({
</div> </div>
))} ))}
{/* ✅ Description ALWAYS NEW LINE */} {/* Description from first identifier */}
{item?.ProductIdentifierDtls {item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
?.filter(d => d.Description) <div>
?.map((d, i) => ( {item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}
<div key={`desc-${i}`}>
{d.Description}
</div> </div>
))} )}
</td> </td>
)} )}
{GlobaldummyData {GlobaldummyData
@ -3403,14 +3399,12 @@ const Printstyle4 = ({
</div> </div>
))} ))}
{/* ✅ Description NEW LINE */} {/* Description from first identifier */}
{item?.ProductIdentifierDtls {item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
?.filter(d => d.Description) <div>
?.map((d, i) => ( {item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}
<div key={`desc-${i}`}>
{d.Description}
</div> </div>
))} )}
</div> </div>
) : ( ) : (
@ -3709,16 +3703,15 @@ const Printstyle4 = ({
.join('') .join('')
: '') : '')
+ +
(item?.ProductIdentifierDtls (item?.ProductIdentifierDtls?.length > 0 &&
?.length > 0 item?.ProductIdentifierDtls.find(
? item?.ProductIdentifierDtls.filter(
(item1) => (item1) =>
item1.IMEI1 || item1.IMEI2 || item1.SerialNumber item1.IMEI1 || item1.IMEI2 || item1.SerialNumber
) )?.Description
.map((item2) => { ? ` ${item.ProductIdentifierDtls.find(
return ` ${item2?.Description}`; (item1) =>
}) item1.IMEI1 || item1.IMEI2 || item1.SerialNumber
.join('') ).Description}`
: '') : '')
).trim()} ).trim()}
</td> </td>

View File

@ -729,23 +729,26 @@ const PrintStyle5 = ({
</div> </div>
))} ))}
{/* 🔢 Identifiers (Serial / IMEI / Description) */} {/* 🔢 Identifiers (Serial / IMEI) */}
{identifiers.map((d, i) => { {identifiers.map((d, i) => {
const serial = d.SerialNumber; const serial = d.SerialNumber;
const imei = [d.IMEI1, d.IMEI2].filter(Boolean).join(", "); const imei = [d.IMEI1, d.IMEI2].filter(Boolean).join(", ");
const description = d.Description;
if (!serial && !imei && !description) return null; if (!serial && !imei) return null;
return ( return (
<div key={i}> <div key={i}>
{serial && <div>{serial}</div>} {serial && <div>{serial}</div>}
{imei && <div>{imei}</div>} {imei && <div>{imei}</div>}
{description && <div>{description}</div>}
</div> </div>
); );
})} })}
{/* 📝 Description from first identifier */}
{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
{/* 🔢 Quantity */} {/* 🔢 Quantity */}
<div> <div>
{GlobaldummyData {GlobaldummyData
@ -777,23 +780,26 @@ const PrintStyle5 = ({
<div>{item.BrandName}</div> <div>{item.BrandName}</div>
)} )}
{/* 🔢 Identifiers (Serial / IMEI / Description) */} {/* 🔢 Identifiers (Serial / IMEI) */}
{identifiers.map((d, i) => { {identifiers.map((d, i) => {
const serial = d.SerialNumber; const serial = d.SerialNumber;
const imei = [d.IMEI1, d.IMEI2].filter(Boolean).join(", "); const imei = [d.IMEI1, d.IMEI2].filter(Boolean).join(", ");
const description = d.Description;
if (!serial && !imei && !description) return null; if (!serial && !imei) return null;
return ( return (
<div key={i}> <div key={i}>
{serial && <div>{serial}</div>} {serial && <div>{serial}</div>}
{imei && <div>{imei}</div>} {imei && <div>{imei}</div>}
{description && <div>{description}</div>}
</div> </div>
); );
})} })}
{/* 📝 Description from first identifier */}
{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
{/* 🔢 Quantity */} {/* 🔢 Quantity */}
<div> <div>
- -
@ -3043,13 +3049,12 @@ const PrintStyle5 = ({
{/* 🏷 Brand */} {/* 🏷 Brand */}
{item?.BrandName && <div>{item.BrandName}</div>} {item?.BrandName && <div>{item.BrandName}</div>}
{/* 🔢 Serial / IMEI / Description */} {/* 🔢 Serial / IMEI */}
{identifiers.map((d, i) => { {identifiers.map((d, i) => {
const values = [ const values = [
d.SerialNumber, d.SerialNumber,
d.IMEI1, d.IMEI1,
d.IMEI2, d.IMEI2
d.Description
].filter(Boolean); ].filter(Boolean);
if (values.length === 0) return null; if (values.length === 0) return null;
@ -3061,6 +3066,11 @@ const PrintStyle5 = ({
); );
})} })}
{/* 📝 Description from first identifier */}
{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
{/* 🧪 Debug / Extra Text */} {/* 🧪 Debug / Extra Text */}
<div>ssd3</div> <div>ssd3</div>
@ -3094,13 +3104,12 @@ const PrintStyle5 = ({
{/* 🏷 Brand */} {/* 🏷 Brand */}
{item?.BrandName && <div>{item.BrandName}</div>} {item?.BrandName && <div>{item.BrandName}</div>}
{/* 🔢 Serial / IMEI / Description */} {/* 🔢 Serial / IMEI */}
{identifiers.map((d, i) => { {identifiers.map((d, i) => {
const values = [ const values = [
d.SerialNumber, d.SerialNumber,
d.IMEI1, d.IMEI1,
d.IMEI2, d.IMEI2
d.Description
].filter(Boolean); ].filter(Boolean);
if (values.length === 0) return null; if (values.length === 0) return null;
@ -3112,6 +3121,11 @@ const PrintStyle5 = ({
); );
})} })}
{/* 📝 Description from first identifier */}
{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
{/* 🧪 Debug / Extra Text */} {/* 🧪 Debug / Extra Text */}
<div>ssd4</div> <div>ssd4</div>

View File

@ -816,14 +816,12 @@ const Printstyle6 = ({
</div> </div>
))} ))}
{/* 📝 Description (Always New Line) */} {/* 📝 Description from first identifier */}
{(item?.ProductIdentifierDtls ?? []) {(item?.ProductIdentifierDtls ?? []).find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
.filter(d => d.SerialNumber || d.IMEI1 || d.IMEI2 || d.Description) <div>
.map((d, i) => ( {(item?.ProductIdentifierDtls ?? []).find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}
<div key={`description-${i}`}>
{d.Description}
</div> </div>
))} )}
{/* 🔢 Quantity */} {/* 🔢 Quantity */}
<div> <div>
@ -1184,11 +1182,12 @@ const Printstyle6 = ({
{[d.IMEI1, d.IMEI2].filter(Boolean).join(", ")} {[d.IMEI1, d.IMEI2].filter(Boolean).join(", ")}
</div> </div>
))} ))}
{(item?.ProductIdentifierDtls ?? []) {/* 📝 Description from first identifier */}
.filter(d => d.IMEI1 || d.IMEI2 || d.SerialNumber) {(item?.ProductIdentifierDtls ?? []).find(d => d.IMEI1 || d.IMEI2 || d.SerialNumber)?.Description && (
.map((d, i) => ( <div>
<div key={`description-${i}`}>{d.Description}</div> {(item?.ProductIdentifierDtls ?? []).find(d => d.IMEI1 || d.IMEI2 || d.SerialNumber).Description}
))} </div>
)}
{/* 🔢 Quantity */} {/* 🔢 Quantity */}
<div> <div>
@ -3905,15 +3904,11 @@ const Printstyle6 = ({
</div> </div>
))} ))}
{/* 📝 Description (only if Serial or IMEI exists) */} {/* 📝 Description from first identifier */}
{identifiers {identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
.filter(d => d.SerialNumber || d.IMEI1 || d.IMEI2 || d.Description) <div>
.map((d, i) => {identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}
d.Description ? (
<div key={`description-${i}`}>
{d.Description}
</div> </div>
) : null
)} )}
{/* 🔢 Quantity */} {/* 🔢 Quantity */}

View File

@ -718,13 +718,11 @@ const PrintStyle7 = ({
))} ))}
{(item?.ProductIdentifierDtls ?? []) {(item?.ProductIdentifierDtls ?? [])
.filter(items => items.SerialNumber || items.IMEI1 || items.IMEI2) .find(items => items.SerialNumber || items.IMEI1 || items.IMEI2)?.Description && (
.map((a, i) => <div>
a.Description ? ( {(item?.ProductIdentifierDtls ?? [])
<div key={`desc-${i}`}> .find(items => items.SerialNumber || items.IMEI1 || items.IMEI2).Description}
{a.Description}
</div> </div>
) : null
)} )}
</div> </div>
</td> </td>
@ -955,6 +953,8 @@ const PrintStyle7 = ({
const hasSerial = data.SerialNumber; const hasSerial = data.SerialNumber;
const hasIMEI = data.IMEI1 || data.IMEI2; const hasIMEI = data.IMEI1 || data.IMEI2;
if (!hasSerial && !hasIMEI) return null;
return ( return (
<div key={i}> <div key={i}>
{hasSerial && <div>{data.SerialNumber}</div>} {hasSerial && <div>{data.SerialNumber}</div>}
@ -966,13 +966,16 @@ const PrintStyle7 = ({
.join(",")} .join(",")}
</div> </div>
)} )}
{(hasSerial || hasIMEI) && data.Description && (
<div>{data.Description}</div>
)}
</div> </div>
); );
})} })}
{/* 📝 Description from first identifier */}
{(item?.ProductIdentifierDtls ?? []).find(data => data.SerialNumber || data.IMEI1 || data.IMEI2)?.Description && (
<div>
{(item?.ProductIdentifierDtls ?? []).find(data => data.SerialNumber || data.IMEI1 || data.IMEI2).Description}
</div>
)}
</div> </div>
</td> </td>
) )
@ -3170,15 +3173,15 @@ const PrintStyle7 = ({
</div> </div>
))} ))}
{(item?.ProductIdentifierDtls ?? []).filter( {(item?.ProductIdentifierDtls ?? []).find(
items => items.SerialNumber || items.IMEI1 || items.IMEI2 items => items.SerialNumber || items.IMEI1 || items.IMEI2
).map((a, i) => ( )?.Description && (
a.Description && ( <div>
<div key={`desc-${i}`}> {(item?.ProductIdentifierDtls ?? []).find(
{a.Description} items => items.SerialNumber || items.IMEI1 || items.IMEI2
).Description}
</div> </div>
) )}
))}
</div> </div>
</td> </td>
)} )}
@ -3401,12 +3404,10 @@ const PrintStyle7 = ({
</div> </div>
))} ))}
{(item?.ProductIdentifierDtls ?? []) {(item?.ProductIdentifierDtls ?? []).find(items => items.SerialNumber || items.IMEI1 || items.IMEI2)?.Description && (
.filter(items => items.SerialNumber || items.IMEI1 || items.IMEI2) <div>
.map((a, i) => {(item?.ProductIdentifierDtls ?? []).find(items => items.SerialNumber || items.IMEI1 || items.IMEI2).Description}
a.Description ? ( </div>
<div key={`desc-${i}`}>{a.Description}</div>
) : null
)} )}
</div> </div>
</div> </div>

View File

@ -806,17 +806,11 @@ const Printstyle8 = ({
</div> </div>
); );
}) })
: ''}
{item?.ProductIdentifierDtls?.length > 0
? item?.ProductIdentifierDtls.filter(
(items) =>
items.SerialNumber || items.IMEI1 || id.IMEI2
)?.map((a, i) => (
<span key={i}>{a.Description}</span>
))
: ''} : ''}
</div> </div>
{item?.ProductIdentifierDtls?.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{item.ProductIdentifierDtls.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</td> </td>
)} )}
{GlobaldummyData {GlobaldummyData
@ -1154,17 +1148,10 @@ const Printstyle8 = ({
{[id.IMEI1, id.IMEI2].filter(Boolean).join(",")} {[id.IMEI1, id.IMEI2].filter(Boolean).join(",")}
</div> </div>
))} ))}
{(item?.ProductIdentifierDtls ?? [])
.filter(items => items.SerialNumber || items.IMEI1 || items.IMEI2)
.map((a, i) =>
a.Description ? (
<div key={`desc-${i}`}>
{a.Description}
</div> </div>
) : null {(item?.ProductIdentifierDtls ?? []).find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{(item?.ProductIdentifierDtls ?? []).find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)} )}
</div>
</td> </td>
)} )}
{GlobaldummyData {GlobaldummyData
@ -3780,28 +3767,17 @@ const Printstyle8 = ({
{/* 🔢 Identifiers */} {/* 🔢 Identifiers */}
<div style={{ display: "flex", flexDirection: "column", gap: "3px" }}> <div style={{ display: "flex", flexDirection: "column", gap: "3px" }}>
{(item?.ProductIdentifierDtls ?? []).map((data, i) => { {(item?.ProductIdentifierDtls ?? []).map((data, i) => (
const hasSerial = data.SerialNumber;
const hasIMEI = data.IMEI1 || data.IMEI2;
return (
<div key={i}> <div key={i}>
{hasSerial && <div>{data.SerialNumber}</div>} {data.SerialNumber && <div>{data.SerialNumber}</div>}
{(data.IMEI1 || data.IMEI2) && (
{hasIMEI && ( <div>{[data.IMEI1, data.IMEI2].filter(Boolean).join(",")}</div>
<div>
{[data.IMEI1, data.IMEI2]
.filter(Boolean)
.join(",")}
</div>
)}
{(hasSerial || hasIMEI) && data.Description && (
<div>{data.Description}</div>
)} )}
</div> </div>
); ))}
})} {(item?.ProductIdentifierDtls ?? []).find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{(item?.ProductIdentifierDtls ?? []).find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div> </div>
</td> </td>
) )

View File

@ -741,11 +741,11 @@ const PrintStyle9 = ({
{(id.IMEI1 || id.IMEI2) && ( {(id.IMEI1 || id.IMEI2) && (
<div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(",")}</div> <div>{[id.IMEI1, id.IMEI2].filter(Boolean).join(",")}</div>
)} )}
{(id.SerialNumber || id.IMEI1 || id.IMEI2) && id.Description && (
<div>{id.Description}</div>
)}
</div> </div>
))} ))}
{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div> </div>
</div> </div>
) : ( ) : (
@ -774,13 +774,11 @@ const PrintStyle9 = ({
{[id.IMEI1, id.IMEI2].filter(Boolean).join(",")} {[id.IMEI1, id.IMEI2].filter(Boolean).join(",")}
</div> </div>
)} )}
{(id.SerialNumber || id.IMEI1 || id.IMEI2) &&
id.Description && (
<div>{id.Description}</div>
)}
</div> </div>
))} ))}
{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
<div>{identifiers.find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
)}
</div> </div>
); );
})()} })()}
@ -3432,14 +3430,8 @@ const PrintStyle9 = ({
</div> </div>
))} ))}
{(item?.ProductIdentifierDtls ?? []) {(item?.ProductIdentifierDtls ?? []).find(d => d.SerialNumber || d.IMEI1 || d.IMEI2)?.Description && (
.filter(items => items.SerialNumber || items.IMEI1 || items.IMEI2) <div>{(item?.ProductIdentifierDtls ?? []).find(d => d.SerialNumber || d.IMEI1 || d.IMEI2).Description}</div>
.map((a, i) =>
a.Description ? (
<div key={`desc-${i}`}>
{a.Description}
</div>
) : null
)} )}
</div> </div>
</td> </td>