SPRINT-12: fixed space before field values, fixed anchors on view record screen

This commit is contained in:
Tim Chamberlain
2022-10-07 15:26:47 -05:00
parent 60d440db09
commit 0e6c20d6d6
6 changed files with 196 additions and 102 deletions

206
package-lock.json generated
View File

@ -36,6 +36,7 @@
"@types/node": "16.11.21", "@types/node": "16.11.21",
"@types/react": "17.0.38", "@types/react": "17.0.38",
"@types/react-dom": "17.0.11", "@types/react-dom": "17.0.11",
"@types/react-router-hash-link": "2.4.5",
"chart.js": "3.4.1", "chart.js": "3.4.1",
"chroma-js": "2.4.2", "chroma-js": "2.4.2",
"datejs": "1.0.0-rc3", "datejs": "1.0.0-rc3",
@ -57,6 +58,7 @@
"react-quill": "1.3.5", "react-quill": "1.3.5",
"react-router": "6.3.0", "react-router": "6.3.0",
"react-router-dom": "6.2.1", "react-router-dom": "6.2.1",
"react-router-hash-link": "2.4.3",
"react-scripts": "5.0.0", "react-scripts": "5.0.0",
"react-table": "7.7.0", "react-table": "7.7.0",
"stylis": "4.0.13", "stylis": "4.0.13",
@ -3687,19 +3689,19 @@
} }
}, },
"node_modules/@react-jvectormap/jquery-mousewheel": { "node_modules/@react-jvectormap/jquery-mousewheel": {
"version": "1.0.1", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/@react-jvectormap/jquery-mousewheel/-/jquery-mousewheel-1.0.1.tgz", "resolved": "https://registry.npmjs.org/@react-jvectormap/jquery-mousewheel/-/jquery-mousewheel-1.0.2.tgz",
"integrity": "sha512-z6TDQO72EoCCNbOjwB2byj9eaOgv2WntHURoOWym+PHJAIBoD/PmFZwi3h73Z4fGaM7yXiveRHr1suWYMvO9rA==", "integrity": "sha512-AmRnBdJfBjDUHreEDDs9qaSo3Q/6oC74m321VuzxkDX6ideVks2n2ouGiMcXq41GdJQoCUzSjfF8KyocL6M+SA==",
"dependencies": { "dependencies": {
"jquery": "^3.6.0" "jquery": "^3.6.0"
} }
}, },
"node_modules/@react-jvectormap/lib": { "node_modules/@react-jvectormap/lib": {
"version": "1.0.2", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/@react-jvectormap/lib/-/lib-1.0.2.tgz", "resolved": "https://registry.npmjs.org/@react-jvectormap/lib/-/lib-1.0.3.tgz",
"integrity": "sha512-RtAVHZWrRCmnuPDTH9BrF12n3GZAt+o2W1H6wGQV1L9vAkQAR/O9b1DiFFcP9b1+TyyImm0cWPucixLr5JXxXw==", "integrity": "sha512-EdPYen5GGrny7Mxc8IYvXtSdjTr3EfWjGCXuy6+0Yz9wZDmCfLFfjmuEOZirhe00BJOzi2LpnYMSp0WaJ2BH7Q==",
"dependencies": { "dependencies": {
"@react-jvectormap/jquery-mousewheel": "^1.0.1" "@react-jvectormap/jquery-mousewheel": "^1.0.2"
} }
}, },
"node_modules/@react-jvectormap/unitedstates": { "node_modules/@react-jvectormap/unitedstates": {
@ -4309,6 +4311,11 @@
"@types/node": "*" "@types/node": "*"
} }
}, },
"node_modules/@types/history": {
"version": "4.7.11",
"resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz",
"integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA=="
},
"node_modules/@types/hoist-non-react-statics": { "node_modules/@types/hoist-non-react-statics": {
"version": "3.3.1", "version": "3.3.1",
"resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz",
@ -4480,6 +4487,35 @@
"redux": "^4.0.0" "redux": "^4.0.0"
} }
}, },
"node_modules/@types/react-router": {
"version": "5.1.19",
"resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.19.tgz",
"integrity": "sha512-Fv/5kb2STAEMT3wHzdKQK2z8xKq38EDIGVrutYLmQVVLe+4orDFquU52hQrULnEHinMKv9FSA6lf9+uNT1ITtA==",
"dependencies": {
"@types/history": "^4.7.11",
"@types/react": "*"
}
},
"node_modules/@types/react-router-dom": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz",
"integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==",
"dependencies": {
"@types/history": "^4.7.11",
"@types/react": "*",
"@types/react-router": "*"
}
},
"node_modules/@types/react-router-hash-link": {
"version": "2.4.5",
"resolved": "https://registry.npmjs.org/@types/react-router-hash-link/-/react-router-hash-link-2.4.5.tgz",
"integrity": "sha512-YsiD8xCWtRBebzPqG6kXjDQCI35LCN9MhV/MbgYF8y0trOp7VSUNmSj8HdIGyH99WCfSOLZB2pIwUMN/IwIDQg==",
"dependencies": {
"@types/history": "^4.7.11",
"@types/react": "*",
"@types/react-router-dom": "*"
}
},
"node_modules/@types/react-table": { "node_modules/@types/react-table": {
"version": "7.7.9", "version": "7.7.9",
"resolved": "https://registry.npmjs.org/@types/react-table/-/react-table-7.7.9.tgz", "resolved": "https://registry.npmjs.org/@types/react-table/-/react-table-7.7.9.tgz",
@ -6180,9 +6216,9 @@
} }
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001414", "version": "1.0.30001418",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001418.tgz",
"integrity": "sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==", "integrity": "sha512-oIs7+JL3K9JRQ3jPZjlH6qyYDp+nBTCais7hjh0s+fuBwufc7uZ7hPYMXrDOJhV360KGMTcczMRObk0/iMqZRg==",
"funding": [ "funding": [
{ {
"type": "opencollective", "type": "opencollective",
@ -7816,9 +7852,9 @@
} }
}, },
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.4.270", "version": "1.4.275",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.270.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.275.tgz",
"integrity": "sha512-KNhIzgLiJmDDC444dj9vEOpZEgsV96ult9Iff98Vanumn+ShJHd5se8aX6KeVxdc0YQeqdrezBZv89rleDbvSg==" "integrity": "sha512-aJeQQ+Hl9Jyyzv4chBqYJwmVRY46N5i2BEX5Cuyk/5gFCUZ5F3i7Hnba6snZftWla7Gglwc5pIgcd+E7cW+rPg=="
}, },
"node_modules/emittery": { "node_modules/emittery": {
"version": "0.8.1", "version": "0.8.1",
@ -7913,9 +7949,9 @@
} }
}, },
"node_modules/es-abstract": { "node_modules/es-abstract": {
"version": "1.20.3", "version": "1.20.4",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.3.tgz", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz",
"integrity": "sha512-AyrnaKVpMzljIdwjzrj+LxGmj8ik2LckwXacHqrJJ/jxz6dDDBcZ7I7nlHM0FvEW8MfbWJwOd+yT2XzYW49Frw==", "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==",
"dependencies": { "dependencies": {
"call-bind": "^1.0.2", "call-bind": "^1.0.2",
"es-to-primitive": "^1.2.1", "es-to-primitive": "^1.2.1",
@ -7927,7 +7963,7 @@
"has-property-descriptors": "^1.0.0", "has-property-descriptors": "^1.0.0",
"has-symbols": "^1.0.3", "has-symbols": "^1.0.3",
"internal-slot": "^1.0.3", "internal-slot": "^1.0.3",
"is-callable": "^1.2.6", "is-callable": "^1.2.7",
"is-negative-zero": "^2.0.2", "is-negative-zero": "^2.0.2",
"is-regex": "^1.1.4", "is-regex": "^1.1.4",
"is-shared-array-buffer": "^1.0.2", "is-shared-array-buffer": "^1.0.2",
@ -10797,9 +10833,9 @@
} }
}, },
"node_modules/istanbul-lib-instrument": { "node_modules/istanbul-lib-instrument": {
"version": "5.2.0", "version": "5.2.1",
"resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
"integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
"dependencies": { "dependencies": {
"@babel/core": "^7.12.3", "@babel/core": "^7.12.3",
"@babel/parser": "^7.14.7", "@babel/parser": "^7.14.7",
@ -15497,6 +15533,18 @@
"react": ">=16.8" "react": ">=16.8"
} }
}, },
"node_modules/react-router-hash-link": {
"version": "2.4.3",
"resolved": "https://registry.npmjs.org/react-router-hash-link/-/react-router-hash-link-2.4.3.tgz",
"integrity": "sha512-NU7GWc265m92xh/aYD79Vr1W+zAIXDWp3L2YZOYP4rCqPnJ6LI6vh3+rKgkidtYijozHclaEQTAHaAaMWPVI4A==",
"dependencies": {
"prop-types": "^15.7.2"
},
"peerDependencies": {
"react": ">=15",
"react-router-dom": ">=4"
}
},
"node_modules/react-scripts": { "node_modules/react-scripts": {
"version": "5.0.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.0.tgz", "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.0.tgz",
@ -16234,9 +16282,9 @@
} }
}, },
"node_modules/semver": { "node_modules/semver": {
"version": "7.3.7", "version": "7.3.8",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
"integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
"dependencies": { "dependencies": {
"lru-cache": "^6.0.0" "lru-cache": "^6.0.0"
}, },
@ -17191,9 +17239,9 @@
} }
}, },
"node_modules/terser": { "node_modules/terser": {
"version": "5.15.0", "version": "5.15.1",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.15.0.tgz", "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz",
"integrity": "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==", "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==",
"dependencies": { "dependencies": {
"@jridgewell/source-map": "^0.3.2", "@jridgewell/source-map": "^0.3.2",
"acorn": "^8.5.0", "acorn": "^8.5.0",
@ -17628,9 +17676,9 @@
} }
}, },
"node_modules/update-browserslist-db": { "node_modules/update-browserslist-db": {
"version": "1.0.9", "version": "1.0.10",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
"integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
"funding": [ "funding": [
{ {
"type": "opencollective", "type": "opencollective",
@ -21045,19 +21093,19 @@
} }
}, },
"@react-jvectormap/jquery-mousewheel": { "@react-jvectormap/jquery-mousewheel": {
"version": "1.0.1", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/@react-jvectormap/jquery-mousewheel/-/jquery-mousewheel-1.0.1.tgz", "resolved": "https://registry.npmjs.org/@react-jvectormap/jquery-mousewheel/-/jquery-mousewheel-1.0.2.tgz",
"integrity": "sha512-z6TDQO72EoCCNbOjwB2byj9eaOgv2WntHURoOWym+PHJAIBoD/PmFZwi3h73Z4fGaM7yXiveRHr1suWYMvO9rA==", "integrity": "sha512-AmRnBdJfBjDUHreEDDs9qaSo3Q/6oC74m321VuzxkDX6ideVks2n2ouGiMcXq41GdJQoCUzSjfF8KyocL6M+SA==",
"requires": { "requires": {
"jquery": "^3.6.0" "jquery": "^3.6.0"
} }
}, },
"@react-jvectormap/lib": { "@react-jvectormap/lib": {
"version": "1.0.2", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/@react-jvectormap/lib/-/lib-1.0.2.tgz", "resolved": "https://registry.npmjs.org/@react-jvectormap/lib/-/lib-1.0.3.tgz",
"integrity": "sha512-RtAVHZWrRCmnuPDTH9BrF12n3GZAt+o2W1H6wGQV1L9vAkQAR/O9b1DiFFcP9b1+TyyImm0cWPucixLr5JXxXw==", "integrity": "sha512-EdPYen5GGrny7Mxc8IYvXtSdjTr3EfWjGCXuy6+0Yz9wZDmCfLFfjmuEOZirhe00BJOzi2LpnYMSp0WaJ2BH7Q==",
"requires": { "requires": {
"@react-jvectormap/jquery-mousewheel": "^1.0.1" "@react-jvectormap/jquery-mousewheel": "^1.0.2"
} }
}, },
"@react-jvectormap/unitedstates": { "@react-jvectormap/unitedstates": {
@ -21505,6 +21553,11 @@
"@types/node": "*" "@types/node": "*"
} }
}, },
"@types/history": {
"version": "4.7.11",
"resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz",
"integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA=="
},
"@types/hoist-non-react-statics": { "@types/hoist-non-react-statics": {
"version": "3.3.1", "version": "3.3.1",
"resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz",
@ -21676,6 +21729,35 @@
"redux": "^4.0.0" "redux": "^4.0.0"
} }
}, },
"@types/react-router": {
"version": "5.1.19",
"resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.19.tgz",
"integrity": "sha512-Fv/5kb2STAEMT3wHzdKQK2z8xKq38EDIGVrutYLmQVVLe+4orDFquU52hQrULnEHinMKv9FSA6lf9+uNT1ITtA==",
"requires": {
"@types/history": "^4.7.11",
"@types/react": "*"
}
},
"@types/react-router-dom": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz",
"integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==",
"requires": {
"@types/history": "^4.7.11",
"@types/react": "*",
"@types/react-router": "*"
}
},
"@types/react-router-hash-link": {
"version": "2.4.5",
"resolved": "https://registry.npmjs.org/@types/react-router-hash-link/-/react-router-hash-link-2.4.5.tgz",
"integrity": "sha512-YsiD8xCWtRBebzPqG6kXjDQCI35LCN9MhV/MbgYF8y0trOp7VSUNmSj8HdIGyH99WCfSOLZB2pIwUMN/IwIDQg==",
"requires": {
"@types/history": "^4.7.11",
"@types/react": "*",
"@types/react-router-dom": "*"
}
},
"@types/react-table": { "@types/react-table": {
"version": "7.7.9", "version": "7.7.9",
"resolved": "https://registry.npmjs.org/@types/react-table/-/react-table-7.7.9.tgz", "resolved": "https://registry.npmjs.org/@types/react-table/-/react-table-7.7.9.tgz",
@ -22911,9 +22993,9 @@
} }
}, },
"caniuse-lite": { "caniuse-lite": {
"version": "1.0.30001414", "version": "1.0.30001418",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001418.tgz",
"integrity": "sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==" "integrity": "sha512-oIs7+JL3K9JRQ3jPZjlH6qyYDp+nBTCais7hjh0s+fuBwufc7uZ7hPYMXrDOJhV360KGMTcczMRObk0/iMqZRg=="
}, },
"case-sensitive-paths-webpack-plugin": { "case-sensitive-paths-webpack-plugin": {
"version": "2.4.0", "version": "2.4.0",
@ -24117,9 +24199,9 @@
} }
}, },
"electron-to-chromium": { "electron-to-chromium": {
"version": "1.4.270", "version": "1.4.275",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.270.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.275.tgz",
"integrity": "sha512-KNhIzgLiJmDDC444dj9vEOpZEgsV96ult9Iff98Vanumn+ShJHd5se8aX6KeVxdc0YQeqdrezBZv89rleDbvSg==" "integrity": "sha512-aJeQQ+Hl9Jyyzv4chBqYJwmVRY46N5i2BEX5Cuyk/5gFCUZ5F3i7Hnba6snZftWla7Gglwc5pIgcd+E7cW+rPg=="
}, },
"emittery": { "emittery": {
"version": "0.8.1", "version": "0.8.1",
@ -24190,9 +24272,9 @@
} }
}, },
"es-abstract": { "es-abstract": {
"version": "1.20.3", "version": "1.20.4",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.3.tgz", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz",
"integrity": "sha512-AyrnaKVpMzljIdwjzrj+LxGmj8ik2LckwXacHqrJJ/jxz6dDDBcZ7I7nlHM0FvEW8MfbWJwOd+yT2XzYW49Frw==", "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==",
"requires": { "requires": {
"call-bind": "^1.0.2", "call-bind": "^1.0.2",
"es-to-primitive": "^1.2.1", "es-to-primitive": "^1.2.1",
@ -24204,7 +24286,7 @@
"has-property-descriptors": "^1.0.0", "has-property-descriptors": "^1.0.0",
"has-symbols": "^1.0.3", "has-symbols": "^1.0.3",
"internal-slot": "^1.0.3", "internal-slot": "^1.0.3",
"is-callable": "^1.2.6", "is-callable": "^1.2.7",
"is-negative-zero": "^2.0.2", "is-negative-zero": "^2.0.2",
"is-regex": "^1.1.4", "is-regex": "^1.1.4",
"is-shared-array-buffer": "^1.0.2", "is-shared-array-buffer": "^1.0.2",
@ -26240,9 +26322,9 @@
"integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==" "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw=="
}, },
"istanbul-lib-instrument": { "istanbul-lib-instrument": {
"version": "5.2.0", "version": "5.2.1",
"resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
"integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
"requires": { "requires": {
"@babel/core": "^7.12.3", "@babel/core": "^7.12.3",
"@babel/parser": "^7.14.7", "@babel/parser": "^7.14.7",
@ -29559,6 +29641,14 @@
} }
} }
}, },
"react-router-hash-link": {
"version": "2.4.3",
"resolved": "https://registry.npmjs.org/react-router-hash-link/-/react-router-hash-link-2.4.3.tgz",
"integrity": "sha512-NU7GWc265m92xh/aYD79Vr1W+zAIXDWp3L2YZOYP4rCqPnJ6LI6vh3+rKgkidtYijozHclaEQTAHaAaMWPVI4A==",
"requires": {
"prop-types": "^15.7.2"
}
},
"react-scripts": { "react-scripts": {
"version": "5.0.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.0.tgz", "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.0.tgz",
@ -30092,9 +30182,9 @@
} }
}, },
"semver": { "semver": {
"version": "7.3.7", "version": "7.3.8",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
"integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
"requires": { "requires": {
"lru-cache": "^6.0.0" "lru-cache": "^6.0.0"
} }
@ -30837,9 +30927,9 @@
} }
}, },
"terser": { "terser": {
"version": "5.15.0", "version": "5.15.1",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.15.0.tgz", "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz",
"integrity": "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==", "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==",
"requires": { "requires": {
"@jridgewell/source-map": "^0.3.2", "@jridgewell/source-map": "^0.3.2",
"acorn": "^8.5.0", "acorn": "^8.5.0",
@ -31164,9 +31254,9 @@
"integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg=="
}, },
"update-browserslist-db": { "update-browserslist-db": {
"version": "1.0.9", "version": "1.0.10",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
"integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
"requires": { "requires": {
"escalade": "^3.1.1", "escalade": "^3.1.1",
"picocolors": "^1.0.0" "picocolors": "^1.0.0"

View File

@ -32,6 +32,7 @@
"@types/node": "16.11.21", "@types/node": "16.11.21",
"@types/react": "17.0.38", "@types/react": "17.0.38",
"@types/react-dom": "17.0.11", "@types/react-dom": "17.0.11",
"@types/react-router-hash-link": "2.4.5",
"chart.js": "3.4.1", "chart.js": "3.4.1",
"chroma-js": "2.4.2", "chroma-js": "2.4.2",
"datejs": "1.0.0-rc3", "datejs": "1.0.0-rc3",
@ -53,6 +54,7 @@
"react-quill": "1.3.5", "react-quill": "1.3.5",
"react-router": "6.3.0", "react-router": "6.3.0",
"react-router-dom": "6.2.1", "react-router-dom": "6.2.1",
"react-router-hash-link": "2.4.3",
"react-scripts": "5.0.0", "react-scripts": "5.0.0",
"react-table": "7.7.0", "react-table": "7.7.0",
"stylis": "4.0.13", "stylis": "4.0.13",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

View File

@ -91,7 +91,7 @@ function DashboardWidgets({widgetMetaDataList, entityPrimaryKey}: Props): JSX.El
useEffect(() => useEffect(() =>
{ {
setWidgetData([] as any[]); setWidgetData([] as any[]);
}, [location]); }, [location.pathname]);
const handleDropdownOnChange = (value: string, index: number) => const handleDropdownOnChange = (value: string, index: number) =>
{ {
@ -110,7 +110,7 @@ function DashboardWidgets({widgetMetaDataList, entityPrimaryKey}: Props): JSX.El
<Grid container spacing={3} pb={4}> <Grid container spacing={3} pb={4}>
{ {
widgetMetaDataList.map((widgetMetaData, i) => ( widgetMetaDataList.map((widgetMetaData, i) => (
<Grid key={`${i}`} item lg={widgetMetaData.gridColumns ? widgetMetaData.gridColumns : 12} xs={12} sx={{display: "flex", alignItems: "stretch"}}> <Grid id={widgetMetaData.name} key={`${i}`} item lg={widgetMetaData.gridColumns ? widgetMetaData.gridColumns : 12} xs={12} sx={{display: "flex", alignItems: "stretch", scrollMarginTop: "100px"}}>
{ {
widgetMetaData.type === "table" && ( widgetMetaData.type === "table" && (
<MDBox sx={{alignItems: "stretch", flexGrow: 1, display: "flex", marginTop: "0px", paddingTop: "0px"}}> <MDBox sx={{alignItems: "stretch", flexGrow: 1, display: "flex", marginTop: "0px", paddingTop: "0px"}}>

View File

@ -26,6 +26,7 @@ import Card from "@mui/material/Card";
import Icon from "@mui/material/Icon"; import Icon from "@mui/material/Icon";
import {Theme} from "@mui/material/styles"; import {Theme} from "@mui/material/styles";
import React from "react"; import React from "react";
import {HashLink} from "react-router-hash-link";
import MDBox from "qqq/components/Temporary/MDBox"; import MDBox from "qqq/components/Temporary/MDBox";
import MDTypography from "qqq/components/Temporary/MDTypography"; import MDTypography from "qqq/components/Temporary/MDTypography";
@ -69,35 +70,38 @@ function QRecordSidebar({tableSections, widgetMetaDataList, light}: Props): JSX.
{ {
sidebarEntries ? sidebarEntries.map((entry: SidebarEntry, key: number) => ( sidebarEntries ? sidebarEntries.map((entry: SidebarEntry, key: number) => (
<MDBox key={`section-${entry.name}`} component="li" pt={key === 0 ? 0 : 1}> <HashLink key={`section-link-${entry.name}`} to={`#${entry.name}`}>
<MDTypography <MDBox key={`section-${entry.name}`} component="li" pt={key === 0 ? 0 : 1}>
component="a" <MDTypography
href={`#${entry.name}`} variant="button"
variant="button" fontWeight="regular"
fontWeight="regular" sx={({
sx={({ borders: {borderRadius}, functions: {pxToRem}, palette: {light}, transitions,
borders: {borderRadius}, functions: {pxToRem}, palette: {light}, transitions, }: Theme) => ({
}: Theme) => ({ display: "flex",
display: "flex", alignItems: "center",
alignItems: "center", borderRadius: borderRadius.md,
borderRadius: borderRadius.md, padding: `${pxToRem(10)} ${pxToRem(16)}`,
padding: `${pxToRem(10)} ${pxToRem(16)}`, transition: transitions.create("background-color", {
transition: transitions.create("background-color", { easing: transitions.easing.easeInOut,
easing: transitions.easing.easeInOut, duration: transitions.duration.shorter,
duration: transitions.duration.shorter, }),
}),
"&:hover": { "&:hover": {
backgroundColor: light.main, backgroundColor: light.main,
}, },
})} })}
> >
<MDBox mr={1.5} lineHeight={1} color="black"> <MDBox mr={1.5} lineHeight={1} color="black">
<Icon fontSize="small">{entry.iconName}</Icon> <Icon fontSize="small">{entry.iconName}</Icon>
</MDBox> </MDBox>
{entry.label} <MDBox mr={1.5} lineHeight={1} color="black">
</MDTypography> {entry.label}
</MDBox> </MDBox>
</MDTypography>
</MDBox>
</HashLink>
)) : null )) : null
} }
</MDBox> </MDBox>

View File

@ -63,7 +63,7 @@ interface Props
{ {
id: string; id: string;
table?: QTableMetaData; table?: QTableMetaData;
launchProcess?: QProcessMetaData launchProcess?: QProcessMetaData;
} }
ViewContents.defaultProps = { ViewContents.defaultProps = {
@ -95,7 +95,7 @@ function ViewContents({id, table, launchProcess}: Props): JSX.Element
const [notFoundMessage, setNotFoundMessage] = useState(null); const [notFoundMessage, setNotFoundMessage] = useState(null);
const [searchParams] = useSearchParams(); const [searchParams] = useSearchParams();
const {setPageHeader} = useContext(QContext); const {setPageHeader} = useContext(QContext);
const [activeModalProcess, setActiveModalProcess] = useState(null as QProcessMetaData) const [activeModalProcess, setActiveModalProcess] = useState(null as QProcessMetaData);
const [, forceUpdate] = useReducer((x) => x + 1, 0); const [, forceUpdate] = useReducer((x) => x + 1, 0);
const [launchingProcess, setLaunchingProcess] = useState(launchProcess); const [launchingProcess, setLaunchingProcess] = useState(launchProcess);
@ -128,11 +128,11 @@ function ViewContents({id, table, launchProcess}: Props): JSX.Element
// the path for a process looks like: .../table/id/process // // the path for a process looks like: .../table/id/process //
// so if our tableName is in the -3 index, try to open process // // so if our tableName is in the -3 index, try to open process //
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
if(pathParts[pathParts.length - 3] === tableName) if (pathParts[pathParts.length - 3] === tableName)
{ {
const processName = pathParts[pathParts.length - 1]; const processName = pathParts[pathParts.length - 1];
const processList = allTableProcesses.filter(p => p.name.endsWith(processName)); const processList = allTableProcesses.filter(p => p.name.endsWith(processName));
if(processList.length > 0) if (processList.length > 0)
{ {
setActiveModalProcess(processList[0]); setActiveModalProcess(processList[0]);
return; return;
@ -143,7 +143,7 @@ function ViewContents({id, table, launchProcess}: Props): JSX.Element
} }
} }
} }
catch(e) catch (e)
{ {
console.log(e); console.log(e);
} }
@ -154,7 +154,7 @@ function ViewContents({id, table, launchProcess}: Props): JSX.Element
reload(); reload();
setActiveModalProcess(null); setActiveModalProcess(null);
}, [location]); }, [location.pathname]);
if (!asyncLoadInited) if (!asyncLoadInited)
{ {
@ -177,7 +177,7 @@ function ViewContents({id, table, launchProcess}: Props): JSX.Element
setTableProcesses(processesForTable); setTableProcesses(processesForTable);
setAllTableProcesses(QProcessUtils.getProcessesForTable(metaData, tableName, true)); // these include hidden ones (e.g., to find the bulks) setAllTableProcesses(QProcessUtils.getProcessesForTable(metaData, tableName, true)); // these include hidden ones (e.g., to find the bulks)
if(launchingProcess) if (launchingProcess)
{ {
setLaunchingProcess(null); setLaunchingProcess(null);
setActiveModalProcess(launchingProcess); setActiveModalProcess(launchingProcess);
@ -237,12 +237,10 @@ function ViewContents({id, table, launchProcess}: Props): JSX.Element
{ {
section.fieldNames.map((fieldName: string) => ( section.fieldNames.map((fieldName: string) => (
<MDBox key={fieldName} flexDirection="row" pr={2}> <MDBox key={fieldName} flexDirection="row" pr={2}>
<MDTypography variant="button" fontWeight="bold"> <MDTypography variant="button" fontWeight="bold" pr={1}>
{tableMetaData.fields.get(fieldName).label} {tableMetaData.fields.get(fieldName).label}:
: &nbsp;
</MDTypography> </MDTypography>
<MDTypography variant="button" fontWeight="regular" color="text"> <MDTypography variant="button" fontWeight="regular" color="text">
&nbsp;
{QValueUtils.getDisplayValue(tableMetaData.fields.get(fieldName), record)} {QValueUtils.getDisplayValue(tableMetaData.fields.get(fieldName), record)}
</MDTypography> </MDTypography>
</MDBox> </MDBox>
@ -343,7 +341,7 @@ function ViewContents({id, table, launchProcess}: Props): JSX.Element
const closeModalProcess = (event: object, reason: string) => const closeModalProcess = (event: object, reason: string) =>
{ {
if(reason === "backdropClick") if (reason === "backdropClick")
{ {
return; return;
} }
@ -354,7 +352,7 @@ function ViewContents({id, table, launchProcess}: Props): JSX.Element
const newPath = location.pathname.split("/"); const newPath = location.pathname.split("/");
newPath.pop(); newPath.pop();
navigate(newPath.join("/")); navigate(newPath.join("/"));
} };
return ( return (
notFoundMessage notFoundMessage
@ -411,7 +409,7 @@ function ViewContents({id, table, launchProcess}: Props): JSX.Element
iconName, label, name, fieldNames, tier, iconName, label, name, fieldNames, tier,
}: any) => ( }: any) => (
<MDBox mb={3} key={name}> <MDBox mb={3} key={name}>
<Card key={name} id={name} sx={{overflow: "visible"}}> <Card key={name} id={name} sx={{overflow: "visible", scrollMarginTop: "100px"}}>
<MDTypography variant="h5" p={3} pb={1}> <MDTypography variant="h5" p={3} pb={1}>
{label} {label}
</MDTypography> </MDTypography>