* Numeric range field added (#799) Added a custom field to handle numeric ranges. The field checks for the first key in the properties of the schema and will add min and max to it when the values are put in. * autofix lint stuff * updates to simplify the code, fix a few ux issues, and make more inline with current conventions w/ burnettk * removed subkey from numeric range and added validation to ensure max is greater than min w/ burnettk * added some comments to clarify how to use numeric range w/ burnettk * added some documentation for the numeric range field w/ burnettk --------- Co-authored-by: Kayvon-Martinez <142514475+Kayvon-Martinez@users.noreply.github.com> Co-authored-by: burnettk <burnettk@users.noreply.github.com> Co-authored-by: jasquat <jasquat@users.noreply.github.com>
This commit is contained in:
parent
d5ea87017f
commit
5cceb52756
|
@ -226,3 +226,52 @@ To incorporate the markdown widget into your rjsf form, follow these steps:
|
||||||
"ui:widget": "markdown"
|
"ui:widget": "markdown"
|
||||||
```
|
```
|
||||||
![rsjf markdown](images/rsjf_markdown.png)
|
![rsjf markdown](images/rsjf_markdown.png)
|
||||||
|
|
||||||
|
### Numeric Range Field
|
||||||
|
|
||||||
|
#### Overview
|
||||||
|
|
||||||
|
The `NumericRangeField` component is a new feature in the `spiffworkflow-frontend` that allows users to input numeric ranges. This component is designed to work with JSON schemas and provides two text inputs for users to enter minimum and maximum values for a given numeric range.
|
||||||
|
|
||||||
|
#### JSON Schema Example
|
||||||
|
|
||||||
|
Below is an example JSON schema that includes the numeric range field:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"title": "Example Schema",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"numericRange": {
|
||||||
|
"type": "object",
|
||||||
|
"title": "Numeric Range",
|
||||||
|
"properties": {
|
||||||
|
"min": {
|
||||||
|
"type": "number",
|
||||||
|
"title": "Minimum Value"
|
||||||
|
},
|
||||||
|
"max": {
|
||||||
|
"type": "number",
|
||||||
|
"title": "Maximum Value"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
This schema defines a numeric range object with `min` and `max` properties, both of which are required.
|
||||||
|
|
||||||
|
#### Ui Schema Example
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"numericRange": {
|
||||||
|
"ui:field": "numeric-range"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Validation
|
||||||
|
|
||||||
|
This will automatically validate that the max value cannot be less than the min value.
|
||||||
|
|
|
@ -2030,11 +2030,11 @@
|
||||||
"integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="
|
"integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="
|
||||||
},
|
},
|
||||||
"node_modules/@babel/runtime": {
|
"node_modules/@babel/runtime": {
|
||||||
"version": "7.21.0",
|
"version": "7.23.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.5.tgz",
|
||||||
"integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==",
|
"integrity": "sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"regenerator-runtime": "^0.13.11"
|
"regenerator-runtime": "^0.14.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6.9.0"
|
"node": ">=6.9.0"
|
||||||
|
@ -2052,6 +2052,11 @@
|
||||||
"node": ">=6.9.0"
|
"node": ">=6.9.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@babel/runtime/node_modules/regenerator-runtime": {
|
||||||
|
"version": "0.14.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz",
|
||||||
|
"integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA=="
|
||||||
|
},
|
||||||
"node_modules/@babel/template": {
|
"node_modules/@babel/template": {
|
||||||
"version": "7.22.15",
|
"version": "7.22.15",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
|
||||||
|
@ -2197,35 +2202,35 @@
|
||||||
"integrity": "sha512-umeLoy8erTiFCG92Z29kJ8VH6fHfFE+75HwQH/WwIRqa2AvNYrkSCNpXtTGwW/EjnyvGA6VcfqirZhibuuHMaA=="
|
"integrity": "sha512-umeLoy8erTiFCG92Z29kJ8VH6fHfFE+75HwQH/WwIRqa2AvNYrkSCNpXtTGwW/EjnyvGA6VcfqirZhibuuHMaA=="
|
||||||
},
|
},
|
||||||
"node_modules/@carbon/colors": {
|
"node_modules/@carbon/colors": {
|
||||||
"version": "11.17.1",
|
"version": "11.20.0",
|
||||||
"resolved": "https://registry.npmjs.org/@carbon/colors/-/colors-11.17.1.tgz",
|
"resolved": "https://registry.npmjs.org/@carbon/colors/-/colors-11.20.0.tgz",
|
||||||
"integrity": "sha512-Q2VlMaZcl3U9Qc1RQbhuf4M4SVuJIeE+NIIDExPCRFaWeuN/5EIUYxEkPgDqvkLU91QTu6lH8TqxFPZORlRvDA=="
|
"integrity": "sha512-aWxYQ1G3TJWd9qmAqs/Tm6G0bcOAw32Ii8VraxIwhYSXFpteHczidMj12EduFBGFyK4JhYKb4ZuUfSKNNWKQ1w=="
|
||||||
},
|
},
|
||||||
"node_modules/@carbon/feature-flags": {
|
"node_modules/@carbon/feature-flags": {
|
||||||
"version": "0.15.0",
|
"version": "0.16.0",
|
||||||
"resolved": "https://registry.npmjs.org/@carbon/feature-flags/-/feature-flags-0.15.0.tgz",
|
"resolved": "https://registry.npmjs.org/@carbon/feature-flags/-/feature-flags-0.16.0.tgz",
|
||||||
"integrity": "sha512-pUuJ+iQ+jkrfP4+nFgsBqM3qNsgKY59y0dZX1y2amjROFOo6fn5s/L1ZqAXkLWvmtssOiR1VWbYg1zk4IMTv+g=="
|
"integrity": "sha512-hCrfVZ6oVnPjjupelbvQX4D0i6GlZuKVverAf0LkOydXHrPjSyuEmg+czsylyCBg4r/hxtSTu91Tq6aqz/DsHg=="
|
||||||
},
|
},
|
||||||
"node_modules/@carbon/grid": {
|
"node_modules/@carbon/grid": {
|
||||||
"version": "11.16.1",
|
"version": "11.21.0",
|
||||||
"resolved": "https://registry.npmjs.org/@carbon/grid/-/grid-11.16.1.tgz",
|
"resolved": "https://registry.npmjs.org/@carbon/grid/-/grid-11.21.0.tgz",
|
||||||
"integrity": "sha512-xrnySc/9jRebcVyATn6ArO9kQsgUcUDwrUrWPH5yt4AU7lDvzfpsxbO5NehRekURxPJjplr0DOhPAwC4qbuaaw==",
|
"integrity": "sha512-Zzhos2we+HqM0obdQgma+OvLoM9dNGq07YcLxFxrc/vEOn/D01sner6dyMMqS2y8036zIaoqVMGArSzPfoxrLA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@carbon/layout": "^11.16.1"
|
"@carbon/layout": "^11.20.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@carbon/icon-helpers": {
|
"node_modules/@carbon/icon-helpers": {
|
||||||
"version": "10.42.1",
|
"version": "10.45.0",
|
||||||
"resolved": "https://registry.npmjs.org/@carbon/icon-helpers/-/icon-helpers-10.42.1.tgz",
|
"resolved": "https://registry.npmjs.org/@carbon/icon-helpers/-/icon-helpers-10.45.0.tgz",
|
||||||
"integrity": "sha512-LsXHvoi/RAxYQz1GC7Ae7WOwJE4HKOXYmSOWuDEtSEW94Adz/1w968pje/7Gfr7nsJ/GcP6lNcQoSpYq9iDSpQ=="
|
"integrity": "sha512-HP92JjZoccDXwucstEJ9Cx8jq2HHJM/U/vPmgfeXYIaegIGfu2zQkL+MDn/fSzIKvQ+ckK/GCrm89K/S8fbtBA=="
|
||||||
},
|
},
|
||||||
"node_modules/@carbon/icons-react": {
|
"node_modules/@carbon/icons-react": {
|
||||||
"version": "11.22.1",
|
"version": "11.31.0",
|
||||||
"resolved": "https://registry.npmjs.org/@carbon/icons-react/-/icons-react-11.22.1.tgz",
|
"resolved": "https://registry.npmjs.org/@carbon/icons-react/-/icons-react-11.31.0.tgz",
|
||||||
"integrity": "sha512-yBbx6pAzo78V/6Z004KXNoC1w6kW/ttm/FF02s9LnOwTDYcOP7tn97YlgO+hyeMsk4Xld5GrjJ5lZI/ss8qaug==",
|
"integrity": "sha512-hGrxoH7Kt94WDVB/lNExUKzgNLcvvt2bH8Lxb894rgwNKbvxPgoJb7tncMJFz+tZwnDPwKvRdMX8kDFukA+rww==",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@carbon/icon-helpers": "^10.42.1",
|
"@carbon/icon-helpers": "^10.45.0",
|
||||||
"@carbon/telemetry": "0.1.0",
|
"@carbon/telemetry": "0.1.0",
|
||||||
"prop-types": "^15.7.2"
|
"prop-types": "^15.7.2"
|
||||||
},
|
},
|
||||||
|
@ -2234,30 +2239,30 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@carbon/layout": {
|
"node_modules/@carbon/layout": {
|
||||||
"version": "11.16.1",
|
"version": "11.20.0",
|
||||||
"resolved": "https://registry.npmjs.org/@carbon/layout/-/layout-11.16.1.tgz",
|
"resolved": "https://registry.npmjs.org/@carbon/layout/-/layout-11.20.0.tgz",
|
||||||
"integrity": "sha512-uUJmNrB7GKJzR/ZEzVxqGNb7US8UB1jL0X3lia3pnyqQ8Rcxq3y1RNmj/bfuI6LWC9GA0lLrsKRdKOpdLyqJMQ=="
|
"integrity": "sha512-G9eJE3xb/J98Id9VvTA/b4v+2i/c+IiHAhxNPc0PPpPN6C/r6U4gJsG4yPgQnbuIU42cP9L8OvCrQr0mbrCMlA=="
|
||||||
},
|
},
|
||||||
"node_modules/@carbon/motion": {
|
"node_modules/@carbon/motion": {
|
||||||
"version": "11.13.1",
|
"version": "11.16.0",
|
||||||
"resolved": "https://registry.npmjs.org/@carbon/motion/-/motion-11.13.1.tgz",
|
"resolved": "https://registry.npmjs.org/@carbon/motion/-/motion-11.16.0.tgz",
|
||||||
"integrity": "sha512-ohpfl9qVCEZzvr6cqDDEskqeTS797FSCLqADwZufbLjOBcUlRr2mq1rftTJcizLdNXutODvmFt0LJOGDOENHZg=="
|
"integrity": "sha512-gr2oijosvrbV8I8dT+s+KTAzHswQ7GE1ffgKxMWWkdg4b91hlJ0qJe1BlG7ZnaHCRpeHKS12QQgnS/dy4yx92Q=="
|
||||||
},
|
},
|
||||||
"node_modules/@carbon/react": {
|
"node_modules/@carbon/react": {
|
||||||
"version": "1.33.2",
|
"version": "1.44.0",
|
||||||
"resolved": "https://registry.npmjs.org/@carbon/react/-/react-1.33.2.tgz",
|
"resolved": "https://registry.npmjs.org/@carbon/react/-/react-1.44.0.tgz",
|
||||||
"integrity": "sha512-WHJ+zv32gEerpXgPXmsdyDCOXWHTQu4Yff8VA96CNjEw7kVwDlvWVpbxm6GDnj1xdxB1bTZyXGPy//mxcj6psw==",
|
"integrity": "sha512-tAnIDpB6kGCfQTl/Wx1k1K6KYxZeGutxAlBL2hrFkoUoknV81bHSeSbX2M9DQ52/aCFGW2HA3ECFdKGPnJuwNg==",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.18.3",
|
"@babel/runtime": "^7.18.3",
|
||||||
"@carbon/feature-flags": "^0.15.0",
|
"@carbon/feature-flags": "^0.16.0",
|
||||||
"@carbon/icons-react": "^11.22.1",
|
"@carbon/icons-react": "^11.31.0",
|
||||||
"@carbon/layout": "^11.16.1",
|
"@carbon/layout": "^11.20.0",
|
||||||
"@carbon/styles": "^1.33.1",
|
"@carbon/styles": "^1.44.0",
|
||||||
"@carbon/telemetry": "0.1.0",
|
"@carbon/telemetry": "0.1.0",
|
||||||
"classnames": "2.3.2",
|
"classnames": "2.3.2",
|
||||||
"copy-to-clipboard": "^3.3.1",
|
"copy-to-clipboard": "^3.3.1",
|
||||||
"downshift": "5.2.1",
|
"downshift": "8.2.3",
|
||||||
"flatpickr": "4.6.9",
|
"flatpickr": "4.6.9",
|
||||||
"invariant": "^2.2.3",
|
"invariant": "^2.2.3",
|
||||||
"lodash.debounce": "^4.0.8",
|
"lodash.debounce": "^4.0.8",
|
||||||
|
@ -2278,17 +2283,17 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@carbon/styles": {
|
"node_modules/@carbon/styles": {
|
||||||
"version": "1.33.1",
|
"version": "1.44.0",
|
||||||
"resolved": "https://registry.npmjs.org/@carbon/styles/-/styles-1.33.1.tgz",
|
"resolved": "https://registry.npmjs.org/@carbon/styles/-/styles-1.44.0.tgz",
|
||||||
"integrity": "sha512-KnccrmaFTVLVvtvietjGD1UcelMur5JHpVAcWt1Qsk+XsgLgJ3tPU4Rf13sTz9wo0B7fP7AGlpVstWV/W+6r9Q==",
|
"integrity": "sha512-5geQru8tuQvZwo2x4oUQ6F6zYhrxAb/dLYjNCKrs6bM1Hf1Ha2mAiu4y/NXt9T0WcCQJs4CX8XEEOEn6iAyJww==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@carbon/colors": "^11.17.1",
|
"@carbon/colors": "^11.20.0",
|
||||||
"@carbon/feature-flags": "^0.15.0",
|
"@carbon/feature-flags": "^0.16.0",
|
||||||
"@carbon/grid": "^11.16.1",
|
"@carbon/grid": "^11.21.0",
|
||||||
"@carbon/layout": "^11.16.1",
|
"@carbon/layout": "^11.20.0",
|
||||||
"@carbon/motion": "^11.13.1",
|
"@carbon/motion": "^11.16.0",
|
||||||
"@carbon/themes": "^11.21.1",
|
"@carbon/themes": "^11.28.0",
|
||||||
"@carbon/type": "^11.20.1",
|
"@carbon/type": "^11.25.0",
|
||||||
"@ibm/plex": "6.0.0-next.6"
|
"@ibm/plex": "6.0.0-next.6"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
|
@ -2309,23 +2314,23 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@carbon/themes": {
|
"node_modules/@carbon/themes": {
|
||||||
"version": "11.21.1",
|
"version": "11.28.0",
|
||||||
"resolved": "https://registry.npmjs.org/@carbon/themes/-/themes-11.21.1.tgz",
|
"resolved": "https://registry.npmjs.org/@carbon/themes/-/themes-11.28.0.tgz",
|
||||||
"integrity": "sha512-WMcx+RSXTSGxuqSG+6WHCCTeZ8mSaDWDOJsdp6p+bandc6OsvmrqbJDDgjE6YRucDThQYspLxRQF8i8/5mJ0sg==",
|
"integrity": "sha512-LvUFGXjsJ6csTrSjSOhkmvKHA0wcJOGchPaBrnWZB5J0UVCW+66P7lLuQBkTab7qgwRp4VgOSOkGdPPFQuchWQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@carbon/colors": "^11.17.1",
|
"@carbon/colors": "^11.20.0",
|
||||||
"@carbon/layout": "^11.16.1",
|
"@carbon/layout": "^11.20.0",
|
||||||
"@carbon/type": "^11.20.1",
|
"@carbon/type": "^11.25.0",
|
||||||
"color": "^4.0.0"
|
"color": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@carbon/type": {
|
"node_modules/@carbon/type": {
|
||||||
"version": "11.20.1",
|
"version": "11.25.0",
|
||||||
"resolved": "https://registry.npmjs.org/@carbon/type/-/type-11.20.1.tgz",
|
"resolved": "https://registry.npmjs.org/@carbon/type/-/type-11.25.0.tgz",
|
||||||
"integrity": "sha512-CZSDN//3M7DhiMEzwNjDXpJ3Iqcaetu/hiFghxSACOuz88jni36Qj/qOg0ELZNrsswGk5GwnJx/IN1u40TAieA==",
|
"integrity": "sha512-p3i5B0uANc2GwPBnbxRVg/KFMWkPV+5I52pkFCs87Bgx6T8r4jB0Y5iPPwsVn2aI5wOnDfiULwSC4JS0LCIgxA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@carbon/grid": "^11.16.1",
|
"@carbon/grid": "^11.21.0",
|
||||||
"@carbon/layout": "^11.16.1"
|
"@carbon/layout": "^11.20.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@casl/ability": {
|
"node_modules/@casl/ability": {
|
||||||
|
@ -9665,9 +9670,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/compute-scroll-into-view": {
|
"node_modules/compute-scroll-into-view": {
|
||||||
"version": "1.0.20",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz",
|
"resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz",
|
||||||
"integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg=="
|
"integrity": "sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg=="
|
||||||
},
|
},
|
||||||
"node_modules/concat-map": {
|
"node_modules/concat-map": {
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
|
@ -12329,24 +12334,20 @@
|
||||||
"integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA=="
|
"integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA=="
|
||||||
},
|
},
|
||||||
"node_modules/downshift": {
|
"node_modules/downshift": {
|
||||||
"version": "5.2.1",
|
"version": "8.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/downshift/-/downshift-5.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/downshift/-/downshift-8.2.3.tgz",
|
||||||
"integrity": "sha512-uHX2OLbWthLR8QbR8NCI8OmjvvJxq8+PrA95KblFd9JyB1zVZh1HnszzsWMMCnMuH6IvsUtVfF5HY7XfijJ2dw==",
|
"integrity": "sha512-1HkvqaMTZpk24aqnXaRDnT+N5JCbpFpW+dCogB11+x+FCtfkFX0MbAO4vr/JdXi1VYQF174KjNUveBXqaXTPtg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.9.1",
|
"@babel/runtime": "^7.22.15",
|
||||||
"compute-scroll-into-view": "^1.0.13",
|
"compute-scroll-into-view": "^3.0.3",
|
||||||
"prop-types": "^15.7.2",
|
"prop-types": "^15.8.1",
|
||||||
"react-is": "^16.13.1"
|
"react-is": "^18.2.0",
|
||||||
|
"tslib": "^2.6.2"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"react": ">=0.14.9"
|
"react": ">=16.12.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/downshift/node_modules/react-is": {
|
|
||||||
"version": "16.13.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
|
|
||||||
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
|
|
||||||
},
|
|
||||||
"node_modules/duplexer": {
|
"node_modules/duplexer": {
|
||||||
"version": "0.1.2",
|
"version": "0.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
|
||||||
|
@ -29875,9 +29876,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/tslib": {
|
"node_modules/tslib": {
|
||||||
"version": "2.5.0",
|
"version": "2.6.2",
|
||||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
|
||||||
"integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
|
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
|
||||||
},
|
},
|
||||||
"node_modules/tsutils": {
|
"node_modules/tsutils": {
|
||||||
"version": "3.21.0",
|
"version": "3.21.0",
|
||||||
|
@ -33490,11 +33491,18 @@
|
||||||
"integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="
|
"integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="
|
||||||
},
|
},
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.21.0",
|
"version": "7.23.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.5.tgz",
|
||||||
"integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==",
|
"integrity": "sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.11"
|
"regenerator-runtime": "^0.14.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"regenerator-runtime": {
|
||||||
|
"version": "0.14.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz",
|
||||||
|
"integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA=="
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@babel/runtime-corejs2": {
|
"@babel/runtime-corejs2": {
|
||||||
|
@ -33642,62 +33650,62 @@
|
||||||
"integrity": "sha512-umeLoy8erTiFCG92Z29kJ8VH6fHfFE+75HwQH/WwIRqa2AvNYrkSCNpXtTGwW/EjnyvGA6VcfqirZhibuuHMaA=="
|
"integrity": "sha512-umeLoy8erTiFCG92Z29kJ8VH6fHfFE+75HwQH/WwIRqa2AvNYrkSCNpXtTGwW/EjnyvGA6VcfqirZhibuuHMaA=="
|
||||||
},
|
},
|
||||||
"@carbon/colors": {
|
"@carbon/colors": {
|
||||||
"version": "11.17.1",
|
"version": "11.20.0",
|
||||||
"resolved": "https://registry.npmjs.org/@carbon/colors/-/colors-11.17.1.tgz",
|
"resolved": "https://registry.npmjs.org/@carbon/colors/-/colors-11.20.0.tgz",
|
||||||
"integrity": "sha512-Q2VlMaZcl3U9Qc1RQbhuf4M4SVuJIeE+NIIDExPCRFaWeuN/5EIUYxEkPgDqvkLU91QTu6lH8TqxFPZORlRvDA=="
|
"integrity": "sha512-aWxYQ1G3TJWd9qmAqs/Tm6G0bcOAw32Ii8VraxIwhYSXFpteHczidMj12EduFBGFyK4JhYKb4ZuUfSKNNWKQ1w=="
|
||||||
},
|
},
|
||||||
"@carbon/feature-flags": {
|
"@carbon/feature-flags": {
|
||||||
"version": "0.15.0",
|
"version": "0.16.0",
|
||||||
"resolved": "https://registry.npmjs.org/@carbon/feature-flags/-/feature-flags-0.15.0.tgz",
|
"resolved": "https://registry.npmjs.org/@carbon/feature-flags/-/feature-flags-0.16.0.tgz",
|
||||||
"integrity": "sha512-pUuJ+iQ+jkrfP4+nFgsBqM3qNsgKY59y0dZX1y2amjROFOo6fn5s/L1ZqAXkLWvmtssOiR1VWbYg1zk4IMTv+g=="
|
"integrity": "sha512-hCrfVZ6oVnPjjupelbvQX4D0i6GlZuKVverAf0LkOydXHrPjSyuEmg+czsylyCBg4r/hxtSTu91Tq6aqz/DsHg=="
|
||||||
},
|
},
|
||||||
"@carbon/grid": {
|
"@carbon/grid": {
|
||||||
"version": "11.16.1",
|
"version": "11.21.0",
|
||||||
"resolved": "https://registry.npmjs.org/@carbon/grid/-/grid-11.16.1.tgz",
|
"resolved": "https://registry.npmjs.org/@carbon/grid/-/grid-11.21.0.tgz",
|
||||||
"integrity": "sha512-xrnySc/9jRebcVyATn6ArO9kQsgUcUDwrUrWPH5yt4AU7lDvzfpsxbO5NehRekURxPJjplr0DOhPAwC4qbuaaw==",
|
"integrity": "sha512-Zzhos2we+HqM0obdQgma+OvLoM9dNGq07YcLxFxrc/vEOn/D01sner6dyMMqS2y8036zIaoqVMGArSzPfoxrLA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@carbon/layout": "^11.16.1"
|
"@carbon/layout": "^11.20.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@carbon/icon-helpers": {
|
"@carbon/icon-helpers": {
|
||||||
"version": "10.42.1",
|
"version": "10.45.0",
|
||||||
"resolved": "https://registry.npmjs.org/@carbon/icon-helpers/-/icon-helpers-10.42.1.tgz",
|
"resolved": "https://registry.npmjs.org/@carbon/icon-helpers/-/icon-helpers-10.45.0.tgz",
|
||||||
"integrity": "sha512-LsXHvoi/RAxYQz1GC7Ae7WOwJE4HKOXYmSOWuDEtSEW94Adz/1w968pje/7Gfr7nsJ/GcP6lNcQoSpYq9iDSpQ=="
|
"integrity": "sha512-HP92JjZoccDXwucstEJ9Cx8jq2HHJM/U/vPmgfeXYIaegIGfu2zQkL+MDn/fSzIKvQ+ckK/GCrm89K/S8fbtBA=="
|
||||||
},
|
},
|
||||||
"@carbon/icons-react": {
|
"@carbon/icons-react": {
|
||||||
"version": "11.22.1",
|
"version": "11.31.0",
|
||||||
"resolved": "https://registry.npmjs.org/@carbon/icons-react/-/icons-react-11.22.1.tgz",
|
"resolved": "https://registry.npmjs.org/@carbon/icons-react/-/icons-react-11.31.0.tgz",
|
||||||
"integrity": "sha512-yBbx6pAzo78V/6Z004KXNoC1w6kW/ttm/FF02s9LnOwTDYcOP7tn97YlgO+hyeMsk4Xld5GrjJ5lZI/ss8qaug==",
|
"integrity": "sha512-hGrxoH7Kt94WDVB/lNExUKzgNLcvvt2bH8Lxb894rgwNKbvxPgoJb7tncMJFz+tZwnDPwKvRdMX8kDFukA+rww==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@carbon/icon-helpers": "^10.42.1",
|
"@carbon/icon-helpers": "^10.45.0",
|
||||||
"@carbon/telemetry": "0.1.0",
|
"@carbon/telemetry": "0.1.0",
|
||||||
"prop-types": "^15.7.2"
|
"prop-types": "^15.7.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@carbon/layout": {
|
"@carbon/layout": {
|
||||||
"version": "11.16.1",
|
"version": "11.20.0",
|
||||||
"resolved": "https://registry.npmjs.org/@carbon/layout/-/layout-11.16.1.tgz",
|
"resolved": "https://registry.npmjs.org/@carbon/layout/-/layout-11.20.0.tgz",
|
||||||
"integrity": "sha512-uUJmNrB7GKJzR/ZEzVxqGNb7US8UB1jL0X3lia3pnyqQ8Rcxq3y1RNmj/bfuI6LWC9GA0lLrsKRdKOpdLyqJMQ=="
|
"integrity": "sha512-G9eJE3xb/J98Id9VvTA/b4v+2i/c+IiHAhxNPc0PPpPN6C/r6U4gJsG4yPgQnbuIU42cP9L8OvCrQr0mbrCMlA=="
|
||||||
},
|
},
|
||||||
"@carbon/motion": {
|
"@carbon/motion": {
|
||||||
"version": "11.13.1",
|
"version": "11.16.0",
|
||||||
"resolved": "https://registry.npmjs.org/@carbon/motion/-/motion-11.13.1.tgz",
|
"resolved": "https://registry.npmjs.org/@carbon/motion/-/motion-11.16.0.tgz",
|
||||||
"integrity": "sha512-ohpfl9qVCEZzvr6cqDDEskqeTS797FSCLqADwZufbLjOBcUlRr2mq1rftTJcizLdNXutODvmFt0LJOGDOENHZg=="
|
"integrity": "sha512-gr2oijosvrbV8I8dT+s+KTAzHswQ7GE1ffgKxMWWkdg4b91hlJ0qJe1BlG7ZnaHCRpeHKS12QQgnS/dy4yx92Q=="
|
||||||
},
|
},
|
||||||
"@carbon/react": {
|
"@carbon/react": {
|
||||||
"version": "1.33.2",
|
"version": "1.44.0",
|
||||||
"resolved": "https://registry.npmjs.org/@carbon/react/-/react-1.33.2.tgz",
|
"resolved": "https://registry.npmjs.org/@carbon/react/-/react-1.44.0.tgz",
|
||||||
"integrity": "sha512-WHJ+zv32gEerpXgPXmsdyDCOXWHTQu4Yff8VA96CNjEw7kVwDlvWVpbxm6GDnj1xdxB1bTZyXGPy//mxcj6psw==",
|
"integrity": "sha512-tAnIDpB6kGCfQTl/Wx1k1K6KYxZeGutxAlBL2hrFkoUoknV81bHSeSbX2M9DQ52/aCFGW2HA3ECFdKGPnJuwNg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/runtime": "^7.18.3",
|
"@babel/runtime": "^7.18.3",
|
||||||
"@carbon/feature-flags": "^0.15.0",
|
"@carbon/feature-flags": "^0.16.0",
|
||||||
"@carbon/icons-react": "^11.22.1",
|
"@carbon/icons-react": "^11.31.0",
|
||||||
"@carbon/layout": "^11.16.1",
|
"@carbon/layout": "^11.20.0",
|
||||||
"@carbon/styles": "^1.33.1",
|
"@carbon/styles": "^1.44.0",
|
||||||
"@carbon/telemetry": "0.1.0",
|
"@carbon/telemetry": "0.1.0",
|
||||||
"classnames": "2.3.2",
|
"classnames": "2.3.2",
|
||||||
"copy-to-clipboard": "^3.3.1",
|
"copy-to-clipboard": "^3.3.1",
|
||||||
"downshift": "5.2.1",
|
"downshift": "8.2.3",
|
||||||
"flatpickr": "4.6.9",
|
"flatpickr": "4.6.9",
|
||||||
"invariant": "^2.2.3",
|
"invariant": "^2.2.3",
|
||||||
"lodash.debounce": "^4.0.8",
|
"lodash.debounce": "^4.0.8",
|
||||||
|
@ -33713,17 +33721,17 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@carbon/styles": {
|
"@carbon/styles": {
|
||||||
"version": "1.33.1",
|
"version": "1.44.0",
|
||||||
"resolved": "https://registry.npmjs.org/@carbon/styles/-/styles-1.33.1.tgz",
|
"resolved": "https://registry.npmjs.org/@carbon/styles/-/styles-1.44.0.tgz",
|
||||||
"integrity": "sha512-KnccrmaFTVLVvtvietjGD1UcelMur5JHpVAcWt1Qsk+XsgLgJ3tPU4Rf13sTz9wo0B7fP7AGlpVstWV/W+6r9Q==",
|
"integrity": "sha512-5geQru8tuQvZwo2x4oUQ6F6zYhrxAb/dLYjNCKrs6bM1Hf1Ha2mAiu4y/NXt9T0WcCQJs4CX8XEEOEn6iAyJww==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@carbon/colors": "^11.17.1",
|
"@carbon/colors": "^11.20.0",
|
||||||
"@carbon/feature-flags": "^0.15.0",
|
"@carbon/feature-flags": "^0.16.0",
|
||||||
"@carbon/grid": "^11.16.1",
|
"@carbon/grid": "^11.21.0",
|
||||||
"@carbon/layout": "^11.16.1",
|
"@carbon/layout": "^11.20.0",
|
||||||
"@carbon/motion": "^11.13.1",
|
"@carbon/motion": "^11.16.0",
|
||||||
"@carbon/themes": "^11.21.1",
|
"@carbon/themes": "^11.28.0",
|
||||||
"@carbon/type": "^11.20.1",
|
"@carbon/type": "^11.25.0",
|
||||||
"@ibm/plex": "6.0.0-next.6"
|
"@ibm/plex": "6.0.0-next.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -33733,23 +33741,23 @@
|
||||||
"integrity": "sha512-kNWt0bkgPwGW0i5h7HFuljbKRXPvIhsKbB+1tEURAYLXoJg9iJLF1eGvWN5iVoFCS2zje4GR3OGOsvvKVe7Hlg=="
|
"integrity": "sha512-kNWt0bkgPwGW0i5h7HFuljbKRXPvIhsKbB+1tEURAYLXoJg9iJLF1eGvWN5iVoFCS2zje4GR3OGOsvvKVe7Hlg=="
|
||||||
},
|
},
|
||||||
"@carbon/themes": {
|
"@carbon/themes": {
|
||||||
"version": "11.21.1",
|
"version": "11.28.0",
|
||||||
"resolved": "https://registry.npmjs.org/@carbon/themes/-/themes-11.21.1.tgz",
|
"resolved": "https://registry.npmjs.org/@carbon/themes/-/themes-11.28.0.tgz",
|
||||||
"integrity": "sha512-WMcx+RSXTSGxuqSG+6WHCCTeZ8mSaDWDOJsdp6p+bandc6OsvmrqbJDDgjE6YRucDThQYspLxRQF8i8/5mJ0sg==",
|
"integrity": "sha512-LvUFGXjsJ6csTrSjSOhkmvKHA0wcJOGchPaBrnWZB5J0UVCW+66P7lLuQBkTab7qgwRp4VgOSOkGdPPFQuchWQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@carbon/colors": "^11.17.1",
|
"@carbon/colors": "^11.20.0",
|
||||||
"@carbon/layout": "^11.16.1",
|
"@carbon/layout": "^11.20.0",
|
||||||
"@carbon/type": "^11.20.1",
|
"@carbon/type": "^11.25.0",
|
||||||
"color": "^4.0.0"
|
"color": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@carbon/type": {
|
"@carbon/type": {
|
||||||
"version": "11.20.1",
|
"version": "11.25.0",
|
||||||
"resolved": "https://registry.npmjs.org/@carbon/type/-/type-11.20.1.tgz",
|
"resolved": "https://registry.npmjs.org/@carbon/type/-/type-11.25.0.tgz",
|
||||||
"integrity": "sha512-CZSDN//3M7DhiMEzwNjDXpJ3Iqcaetu/hiFghxSACOuz88jni36Qj/qOg0ELZNrsswGk5GwnJx/IN1u40TAieA==",
|
"integrity": "sha512-p3i5B0uANc2GwPBnbxRVg/KFMWkPV+5I52pkFCs87Bgx6T8r4jB0Y5iPPwsVn2aI5wOnDfiULwSC4JS0LCIgxA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@carbon/grid": "^11.16.1",
|
"@carbon/grid": "^11.21.0",
|
||||||
"@carbon/layout": "^11.16.1"
|
"@carbon/layout": "^11.20.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@casl/ability": {
|
"@casl/ability": {
|
||||||
|
@ -39204,9 +39212,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"compute-scroll-into-view": {
|
"compute-scroll-into-view": {
|
||||||
"version": "1.0.20",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz",
|
"resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz",
|
||||||
"integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg=="
|
"integrity": "sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg=="
|
||||||
},
|
},
|
||||||
"concat-map": {
|
"concat-map": {
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
|
@ -41358,21 +41366,15 @@
|
||||||
"integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA=="
|
"integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA=="
|
||||||
},
|
},
|
||||||
"downshift": {
|
"downshift": {
|
||||||
"version": "5.2.1",
|
"version": "8.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/downshift/-/downshift-5.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/downshift/-/downshift-8.2.3.tgz",
|
||||||
"integrity": "sha512-uHX2OLbWthLR8QbR8NCI8OmjvvJxq8+PrA95KblFd9JyB1zVZh1HnszzsWMMCnMuH6IvsUtVfF5HY7XfijJ2dw==",
|
"integrity": "sha512-1HkvqaMTZpk24aqnXaRDnT+N5JCbpFpW+dCogB11+x+FCtfkFX0MbAO4vr/JdXi1VYQF174KjNUveBXqaXTPtg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/runtime": "^7.9.1",
|
"@babel/runtime": "^7.22.15",
|
||||||
"compute-scroll-into-view": "^1.0.13",
|
"compute-scroll-into-view": "^3.0.3",
|
||||||
"prop-types": "^15.7.2",
|
"prop-types": "^15.8.1",
|
||||||
"react-is": "^16.13.1"
|
"react-is": "^18.2.0",
|
||||||
},
|
"tslib": "^2.6.2"
|
||||||
"dependencies": {
|
|
||||||
"react-is": {
|
|
||||||
"version": "16.13.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
|
|
||||||
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"duplexer": {
|
"duplexer": {
|
||||||
|
@ -54388,9 +54390,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tslib": {
|
"tslib": {
|
||||||
"version": "2.5.0",
|
"version": "2.6.2",
|
||||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
|
||||||
"integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
|
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
|
||||||
},
|
},
|
||||||
"tsutils": {
|
"tsutils": {
|
||||||
"version": "3.21.0",
|
"version": "3.21.0",
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
import validator from '@rjsf/validator-ajv8';
|
import validator from '@rjsf/validator-ajv8';
|
||||||
import { ReactNode } from 'react';
|
import { ReactNode } from 'react';
|
||||||
|
import { RegistryFieldsType } from '@rjsf/utils';
|
||||||
import { Form } from '../rjsf/carbon_theme';
|
import { Form } from '../rjsf/carbon_theme';
|
||||||
import { DATE_RANGE_DELIMITER } from '../config';
|
import { DATE_RANGE_DELIMITER } from '../config';
|
||||||
import DateRangePickerWidget from '../rjsf/custom_widgets/DateRangePicker/DateRangePickerWidget';
|
import DateRangePickerWidget from '../rjsf/custom_widgets/DateRangePicker/DateRangePickerWidget';
|
||||||
import TypeaheadWidget from '../rjsf/custom_widgets/TypeaheadWidget/TypeaheadWidget';
|
import TypeaheadWidget from '../rjsf/custom_widgets/TypeaheadWidget/TypeaheadWidget';
|
||||||
import MarkDownFieldWidget from '../rjsf/custom_widgets/MarkDownFieldWidget/MarkDownFieldWidget';
|
import MarkDownFieldWidget from '../rjsf/custom_widgets/MarkDownFieldWidget/MarkDownFieldWidget';
|
||||||
|
import NumericRangeField from '../rjsf/custom_widgets/NumericRangeField/NumericRangeField';
|
||||||
|
|
||||||
type OwnProps = {
|
type OwnProps = {
|
||||||
id: string;
|
id: string;
|
||||||
|
@ -30,12 +32,18 @@ export default function CustomForm({
|
||||||
children,
|
children,
|
||||||
noValidate = false,
|
noValidate = false,
|
||||||
}: OwnProps) {
|
}: OwnProps) {
|
||||||
|
// set in uiSchema using the "ui:widget" key for a property
|
||||||
const rjsfWidgets = {
|
const rjsfWidgets = {
|
||||||
'date-range': DateRangePickerWidget,
|
'date-range': DateRangePickerWidget,
|
||||||
markdown: MarkDownFieldWidget,
|
markdown: MarkDownFieldWidget,
|
||||||
typeahead: TypeaheadWidget,
|
typeahead: TypeaheadWidget,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// set in uiSchema using the "ui:field" key for a property
|
||||||
|
const fields: RegistryFieldsType = {
|
||||||
|
'numeric-range': NumericRangeField,
|
||||||
|
};
|
||||||
|
|
||||||
const formatDateString = (dateString?: string) => {
|
const formatDateString = (dateString?: string) => {
|
||||||
let dateObject = new Date();
|
let dateObject = new Date();
|
||||||
if (dateString) {
|
if (dateString) {
|
||||||
|
@ -176,6 +184,20 @@ export default function CustomForm({
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const checkNumericRange = (
|
||||||
|
formDataToCheck: any,
|
||||||
|
propertyKey: string,
|
||||||
|
errors: any,
|
||||||
|
_jsonSchema: any,
|
||||||
|
_uiSchemaPassedIn?: any
|
||||||
|
) => {
|
||||||
|
if (formDataToCheck[propertyKey].min > formDataToCheck[propertyKey].max) {
|
||||||
|
errors[propertyKey].addError(
|
||||||
|
`must have min less than max on numeric range`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const checkFieldsWithCustomValidations = (
|
const checkFieldsWithCustomValidations = (
|
||||||
jsonSchema: any,
|
jsonSchema: any,
|
||||||
formDataToCheck: any,
|
formDataToCheck: any,
|
||||||
|
@ -223,6 +245,20 @@ export default function CustomForm({
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
currentUiSchema &&
|
||||||
|
'ui:field' in currentUiSchema &&
|
||||||
|
currentUiSchema['ui:field'] === 'numeric-range'
|
||||||
|
) {
|
||||||
|
checkNumericRange(
|
||||||
|
formDataToCheck,
|
||||||
|
propertyKey,
|
||||||
|
errors,
|
||||||
|
jsonSchemaToUse,
|
||||||
|
currentUiSchema
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// recurse through all nested properties as well
|
// recurse through all nested properties as well
|
||||||
let formDataToSend = formDataToCheck[propertyKey];
|
let formDataToSend = formDataToCheck[propertyKey];
|
||||||
if (formDataToSend) {
|
if (formDataToSend) {
|
||||||
|
@ -264,6 +300,7 @@ export default function CustomForm({
|
||||||
validator={validator}
|
validator={validator}
|
||||||
customValidate={customValidate}
|
customValidate={customValidate}
|
||||||
noValidate={noValidate}
|
noValidate={noValidate}
|
||||||
|
fields={fields}
|
||||||
omitExtraData
|
omitExtraData
|
||||||
>
|
>
|
||||||
{children}
|
{children}
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/* site is mainly using white theme. */
|
/* site is mainly using white theme. */
|
||||||
/* header is mainly using g100 */
|
/* header is mainly using g100 */
|
||||||
/* mockup wanted white, not grey, text */
|
/* mockup wanted white, not grey, text */
|
||||||
.cds--header, a.cds--header__menu-item {
|
.cds--header,
|
||||||
|
a.cds--header__menu-item {
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,7 +37,7 @@
|
||||||
|
|
||||||
/* make this a little less prominent so the actual human beings completing tasks stand out */
|
/* make this a little less prominent so the actual human beings completing tasks stand out */
|
||||||
.system-user-log-entry {
|
.system-user-log-entry {
|
||||||
color: #B0B0B0;
|
color: #b0b0b0;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,7 +46,7 @@ h1 {
|
||||||
font-size: 28px;
|
font-size: 28px;
|
||||||
line-height: 36px;
|
line-height: 36px;
|
||||||
color: #161616;
|
color: #161616;
|
||||||
margin-bottom: 1rem
|
margin-bottom: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
h2 {
|
h2 {
|
||||||
|
@ -69,7 +70,7 @@ h3 {
|
||||||
|
|
||||||
.cds--btn.button-white-background {
|
.cds--btn.button-white-background {
|
||||||
color: #393939;
|
color: #393939;
|
||||||
background: #FFFFFF;
|
background: #ffffff;
|
||||||
background-blend-mode: multiply;
|
background-blend-mode: multiply;
|
||||||
border: 1px solid #393939;
|
border: 1px solid #393939;
|
||||||
}
|
}
|
||||||
|
@ -158,7 +159,7 @@ h3 {
|
||||||
}
|
}
|
||||||
|
|
||||||
.cds--header__global .cds--btn--primary {
|
.cds--header__global .cds--btn--primary {
|
||||||
background-color: #161616
|
background-color: #161616;
|
||||||
}
|
}
|
||||||
.cds--btn--primary {
|
.cds--btn--primary {
|
||||||
background-color: #393939;
|
background-color: #393939;
|
||||||
|
@ -184,20 +185,20 @@ code {
|
||||||
|
|
||||||
.active-task-highlight:not(.djs-connection) .djs-visual > :nth-child(1) {
|
.active-task-highlight:not(.djs-connection) .djs-visual > :nth-child(1) {
|
||||||
fill: yellow !important;
|
fill: yellow !important;
|
||||||
opacity: .6;
|
opacity: 0.6;
|
||||||
}
|
}
|
||||||
|
|
||||||
.completed-task-highlight:not(.djs-connection) .djs-visual > :nth-child(1) {
|
.completed-task-highlight:not(.djs-connection) .djs-visual > :nth-child(1) {
|
||||||
fill: grey !important;
|
fill: grey !important;
|
||||||
opacity: .4;
|
opacity: 0.4;
|
||||||
}
|
}
|
||||||
.cancelled-task-highlight:not(.djs-connection) .djs-visual > :nth-child(1) {
|
.cancelled-task-highlight:not(.djs-connection) .djs-visual > :nth-child(1) {
|
||||||
fill: blue !important;
|
fill: blue !important;
|
||||||
opacity: .2;
|
opacity: 0.2;
|
||||||
}
|
}
|
||||||
.errored-task-highlight:not(.djs-connection) .djs-visual > :nth-child(1) {
|
.errored-task-highlight:not(.djs-connection) .djs-visual > :nth-child(1) {
|
||||||
fill: red !important;
|
fill: red !important;
|
||||||
opacity: .2;
|
opacity: 0.2;
|
||||||
}
|
}
|
||||||
|
|
||||||
.accordion-item-label {
|
.accordion-item-label {
|
||||||
|
@ -299,7 +300,9 @@ dl dd {
|
||||||
content: none;
|
content: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
#user-profile-toggletip .cds--popover--tab-tip.cds--popover--open .cds--popover--tab-tip__button{
|
#user-profile-toggletip
|
||||||
|
.cds--popover--tab-tip.cds--popover--open
|
||||||
|
.cds--popover--tab-tip__button {
|
||||||
background-color: #161616;
|
background-color: #161616;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -332,11 +335,11 @@ dl dd {
|
||||||
}
|
}
|
||||||
|
|
||||||
.with-half-rem-bottom-margin {
|
.with-half-rem-bottom-margin {
|
||||||
margin-bottom: .5rem;
|
margin-bottom: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.with-half-rem-top-margin {
|
.with-half-rem-top-margin {
|
||||||
margin-top: .5rem;
|
margin-top: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.diagram-viewer-canvas {
|
.diagram-viewer-canvas {
|
||||||
|
@ -358,7 +361,6 @@ dl dd {
|
||||||
margin-top: 1rem;
|
margin-top: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Markdown Tables */
|
/* Markdown Tables */
|
||||||
.markdown table {
|
.markdown table {
|
||||||
color: #333;
|
color: #333;
|
||||||
|
@ -369,16 +371,16 @@ dl dd {
|
||||||
.markdown table thead th,
|
.markdown table thead th,
|
||||||
.markdown table tfoot th {
|
.markdown table tfoot th {
|
||||||
color: #777;
|
color: #777;
|
||||||
background: rgba(0,0,0,.1);
|
background: rgba(0, 0, 0, 0.1);
|
||||||
}
|
}
|
||||||
.markdown table th,
|
.markdown table th,
|
||||||
.markdown table td {
|
.markdown table td {
|
||||||
padding: .5rem;
|
padding: 0.5rem;
|
||||||
border: 1px solid lightgrey;
|
border: 1px solid lightgrey;
|
||||||
}
|
}
|
||||||
/* Zebra Table Style */
|
/* Zebra Table Style */
|
||||||
.markdown tbody tr:nth-of-type(odd) {
|
.markdown tbody tr:nth-of-type(odd) {
|
||||||
background: rgba(0,0,0,.05);
|
background: rgba(0, 0, 0, 0.05);
|
||||||
}
|
}
|
||||||
|
|
||||||
.form-instructions {
|
.form-instructions {
|
||||||
|
@ -398,7 +400,7 @@ in on this with the react-jsonschema-form repo. This is just a patch fix to allo
|
||||||
margin: 12px 24px 12px 0px;
|
margin: 12px 24px 12px 0px;
|
||||||
width: 320px;
|
width: 320px;
|
||||||
height: 264px;
|
height: 264px;
|
||||||
background: #F4F4F4;
|
background: #f4f4f4;
|
||||||
order: 1;
|
order: 1;
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
|
@ -484,7 +486,8 @@ td.actions-cell {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
th.table-header-right-align .cds--data-table, th.table-header-right-align .cds--table-header-label{
|
th.table-header-right-align .cds--data-table,
|
||||||
|
th.table-header-right-align .cds--table-header-label {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -720,7 +723,7 @@ hr {
|
||||||
border-top: 1px solid;
|
border-top: 1px solid;
|
||||||
color: inherit;
|
color: inherit;
|
||||||
margin: 1rem 0;
|
margin: 1rem 0;
|
||||||
opacity: .25;
|
opacity: 0.25;
|
||||||
}
|
}
|
||||||
|
|
||||||
.primary-file-text-suffix {
|
.primary-file-text-suffix {
|
||||||
|
@ -734,7 +737,7 @@ hr {
|
||||||
|
|
||||||
.task-data-details-header {
|
.task-data-details-header {
|
||||||
margin-top: 1.5rem;
|
margin-top: 1.5rem;
|
||||||
margin-bottom: .5rem;
|
margin-bottom: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.explanatory-message {
|
.explanatory-message {
|
||||||
|
@ -780,7 +783,16 @@ fieldset fieldset fieldset legend.header {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
p, li, h1, h2, h3, h4, h5, h6, blockquote, hr {
|
p,
|
||||||
|
li,
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6,
|
||||||
|
blockquote,
|
||||||
|
hr {
|
||||||
max-width: 640px;
|
max-width: 640px;
|
||||||
}
|
}
|
||||||
li.cds--accordion__item {
|
li.cds--accordion__item {
|
||||||
|
@ -796,17 +808,20 @@ div.markdown-collapsed {
|
||||||
max-height: 200px;
|
max-height: 200px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
--mask: linear-gradient(to bottom,
|
--mask: linear-gradient(
|
||||||
rgba(0,0,0, 1) 0, rgba(0,0,0, 1) 40%,
|
to bottom,
|
||||||
rgba(0,0,0, 0) 95%, rgba(0,0,0, 0) 0
|
rgba(0, 0, 0, 1) 0,
|
||||||
) 100% 50% / 100% 100% repeat-x;
|
rgba(0, 0, 0, 1) 40%,
|
||||||
|
rgba(0, 0, 0, 0) 95%,
|
||||||
|
rgba(0, 0, 0, 0) 0
|
||||||
|
)
|
||||||
|
100% 50% / 100% 100% repeat-x;
|
||||||
|
|
||||||
font: 2em/1.6em Arial;
|
font: 2em/1.6em Arial;
|
||||||
-webkit-mask: var(--mask);
|
-webkit-mask: var(--mask);
|
||||||
mask: var(--mask);
|
mask: var(--mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.cds--data-table-content {
|
.cds--data-table-content {
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
}
|
}
|
||||||
|
@ -843,18 +858,18 @@ div.onboarding {
|
||||||
|
|
||||||
/* makde the completed user form modal more readable */
|
/* makde the completed user form modal more readable */
|
||||||
.completed-task-modal .cds--modal-container {
|
.completed-task-modal .cds--modal-container {
|
||||||
background-color: #ffffff
|
background-color: #ffffff;
|
||||||
}
|
}
|
||||||
.completed-task-modal .cds--text-input:disabled,
|
.completed-task-modal .cds--text-input:disabled,
|
||||||
.completed-task-modal .cds--text-area:disabled,
|
.completed-task-modal .cds--text-area:disabled,
|
||||||
.completed-task-modal .cds--date-picker__input:disabled,
|
.completed-task-modal .cds--date-picker__input:disabled,
|
||||||
.completed-task-modal .cds--select-input:disabled,
|
.completed-task-modal .cds--select-input:disabled,
|
||||||
.completed-task-modal .cds--select-input:hover:disabled {
|
.completed-task-modal .cds--select-input:hover:disabled {
|
||||||
--cds-text-disabled: rgba(22, 22, 22, .5);
|
--cds-text-disabled: rgba(22, 22, 22, 0.5);
|
||||||
background-color: var(--cds-field)
|
background-color: var(--cds-field);
|
||||||
}
|
}
|
||||||
.completed-task-modal .cds--form__helper-text--disabled {
|
.completed-task-modal .cds--form__helper-text--disabled {
|
||||||
--cds-text-disabled: rgba(22, 22, 22, .5);
|
--cds-text-disabled: rgba(22, 22, 22, 0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
.process-model-file-table {
|
.process-model-file-table {
|
||||||
|
|
|
@ -72,3 +72,35 @@
|
||||||
.rjsf .array-item .rjsf-field {
|
.rjsf .array-item .rjsf-field {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.rjsf .markdown-field-desc-text .field-description {
|
||||||
|
font-size: .8rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rjsf .numeric--range-field-wrapper input {
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rjsf .numeric--range-field-inputs {
|
||||||
|
margin: 0.33rem 0 0 0;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rjsf .numeric--range-field-help-text {
|
||||||
|
font-size: var(--cds-helper-text-01-font-size, 0.75rem);
|
||||||
|
line-height: var(--cds-helper-text-01-line-height, 1.33333);
|
||||||
|
letter-spacing: var(--cds-helper-text-01-letter-spacing, 0.32px);
|
||||||
|
z-index: 0;
|
||||||
|
color: var(--cds-text-secondary, #525252);
|
||||||
|
inline-size: 100%;
|
||||||
|
margin-block-start: 0.25rem;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rjsf .error-message {
|
||||||
|
color: var(--cds-text-error);
|
||||||
|
font-size: var(--cds-helper-text-01-font-size, 0.75rem);
|
||||||
|
line-height: var(--cds-helper-text-01-line-height, 1.33333);
|
||||||
|
letter-spacing: var(--cds-helper-text-01-letter-spacing, 0.32px);
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,155 @@
|
||||||
|
import {
|
||||||
|
descriptionId,
|
||||||
|
FieldProps,
|
||||||
|
getTemplate,
|
||||||
|
getUiOptions,
|
||||||
|
} from '@rjsf/utils';
|
||||||
|
import { TextInput } from '@carbon/react';
|
||||||
|
import { getCommonAttributes } from '../../helpers';
|
||||||
|
|
||||||
|
// Example jsonSchema - NOTE: the "min" and "max" properties are special names and must be used:
|
||||||
|
// compensation":{
|
||||||
|
// "title": "Compensation (yearly), USD",
|
||||||
|
// "type": "object",
|
||||||
|
// "properties": {
|
||||||
|
// "min": {
|
||||||
|
// "type": "number"
|
||||||
|
// },
|
||||||
|
// "max": {
|
||||||
|
// "type": "number"
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// Example uiSchema:
|
||||||
|
// "compensation": {
|
||||||
|
// "ui:field": "numeric-range",
|
||||||
|
// }
|
||||||
|
|
||||||
|
// eslint-disable-next-line sonarjs/cognitive-complexity
|
||||||
|
export default function NumericRangeField({
|
||||||
|
id,
|
||||||
|
schema,
|
||||||
|
uiSchema,
|
||||||
|
idSchema,
|
||||||
|
disabled,
|
||||||
|
readonly,
|
||||||
|
onChange,
|
||||||
|
autofocus,
|
||||||
|
label,
|
||||||
|
rawErrors = [],
|
||||||
|
formData,
|
||||||
|
registry,
|
||||||
|
}: FieldProps) {
|
||||||
|
const commonAttributes = getCommonAttributes(
|
||||||
|
label,
|
||||||
|
schema,
|
||||||
|
uiSchema,
|
||||||
|
rawErrors
|
||||||
|
);
|
||||||
|
|
||||||
|
const description = schema?.description || uiSchema?.['ui:description'];
|
||||||
|
|
||||||
|
const uiOptions = getUiOptions(uiSchema || {});
|
||||||
|
const DescriptionFieldTemplate = getTemplate(
|
||||||
|
'DescriptionFieldTemplate',
|
||||||
|
registry,
|
||||||
|
uiOptions
|
||||||
|
);
|
||||||
|
|
||||||
|
const formatNumberString = (numberString: string): string => {
|
||||||
|
if (numberString) {
|
||||||
|
return numberString.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
||||||
|
}
|
||||||
|
return '0';
|
||||||
|
};
|
||||||
|
|
||||||
|
const parseNumberString = (numberString: string) =>
|
||||||
|
Number(numberString.replace(/,/g, ''));
|
||||||
|
|
||||||
|
// create two number inputs for min and max compensation
|
||||||
|
const min = formData?.min || 0;
|
||||||
|
const max = formData?.max || 0;
|
||||||
|
|
||||||
|
// the text input eventually breaks when the number gets too big.
|
||||||
|
// we are not sure what the cut off really is but seems unlikely
|
||||||
|
// people will need to go this high.
|
||||||
|
const maxNumber = 999_999_999_999;
|
||||||
|
|
||||||
|
const onChangeLocal = (nameToChange: any, event: any) => {
|
||||||
|
event.preventDefault();
|
||||||
|
const numberValue = parseNumberString(event.target.value);
|
||||||
|
if (numberValue > maxNumber) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!disabled && !readonly) {
|
||||||
|
if (nameToChange === 'min' && numberValue > max) {
|
||||||
|
onChange({
|
||||||
|
...(formData || {}),
|
||||||
|
min: numberValue,
|
||||||
|
max: numberValue,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
onChange({
|
||||||
|
...(formData || {}),
|
||||||
|
...{ max, min },
|
||||||
|
[nameToChange]: numberValue,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="numeric--range-field-wrapper">
|
||||||
|
<div className="numeric--range-field-label">
|
||||||
|
<h5>{commonAttributes.label}</h5>
|
||||||
|
{description && (
|
||||||
|
<div className="markdown-field-desc-text">
|
||||||
|
<DescriptionFieldTemplate
|
||||||
|
id={descriptionId(idSchema)}
|
||||||
|
description={description}
|
||||||
|
schema={schema}
|
||||||
|
uiSchema={uiSchema}
|
||||||
|
registry={registry}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
<div className="numeric--range-field-inputs">
|
||||||
|
<TextInput
|
||||||
|
id={`${id}-min`}
|
||||||
|
labelText={`Minimum ${schema.title || ''}`}
|
||||||
|
disabled={disabled}
|
||||||
|
readonly={readonly}
|
||||||
|
value={formatNumberString(min)}
|
||||||
|
onChange={(values: any) => {
|
||||||
|
onChangeLocal('min', values);
|
||||||
|
}}
|
||||||
|
invalid={commonAttributes.invalid}
|
||||||
|
defaultValue="0"
|
||||||
|
autofocus={autofocus}
|
||||||
|
/>
|
||||||
|
<TextInput
|
||||||
|
id={`${id}-max`}
|
||||||
|
labelText={`Maximum ${schema.title || ''}`}
|
||||||
|
disabled={disabled}
|
||||||
|
readonly={readonly}
|
||||||
|
value={formatNumberString(max)}
|
||||||
|
onChange={(values: any) => onChangeLocal('max', values)}
|
||||||
|
defaultValue="0"
|
||||||
|
invalid={commonAttributes.invalid}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
{commonAttributes.errorMessageForField && (
|
||||||
|
<div className="error-message">
|
||||||
|
{commonAttributes.errorMessageForField}
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
{commonAttributes.helperText && (
|
||||||
|
<p className="numeric--range-field-help-text">
|
||||||
|
{commonAttributes.helperText}
|
||||||
|
</p>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
Loading…
Reference in New Issue