ranihorev Github contribution chart
ranihorev Github Stats
ranihorev Most Used Languages

Activity

14 Oct 2022

Ranihorev

cms

Pushed On 14 Oct 2022 at 11:13:40

Ranihorev

Update Post “jamaica-blue”

Pushed On 14 Oct 2022 at 05:04:23
Create Branch

Ranihorev

Description not entered by the user.

On 14 Oct 2022 at 05:02:19
Create Branch

Ranihorev

Description not entered by the user.

On 14 Oct 2022 at 04:59:16

Ranihorev

Description not entered by the user.

On 14 Oct 2022 at 03:19:28
Issue Comment

Ranihorev

Incompatibility when using with existing components (Error: 'default' is not exported by...)

I tried running our component library (using Storybook) with this, and got quite far! start-storybook is working perfectly fine, but when trying build-storybook I'm not getting a successful build.

This is probably related to our setup / our components (a private Github repo, unfortunately), as the example (as per README) is working completely fine for me.

The error in question is the following:

info @storybook/react v6.3.0-alpha.14
info
info => Cleaning outputDir: /home/julrich/Projects/Frontend/code/project/dist
info => Copying static files: ./legacy-instance => ./
info => Loading presets
info => Compiling manager..
vite v2.2.1 building for production...
transforming (1312) ../../@storybook/addon-essentials/node_modules/@storybook/components/dist/esm/controls/react-editable-json-tree/components/JsonArray.jsConflicting namespaces: node_modules/@storybook/client-api/dist/esm/index.js re-exports 'combineParameters' from both node_modules/@storybook/client-api/dist/esm/index.js and node_modules/@storybook/client-api/dist/esm/parameters.js (will be ignored)
transforming (1941) ../../lodash/_baseFindIndex.jsConflicting namespaces: node_modules/@storybook/addon-essentials/node_modules/@storybook/components/dist/esm/index.js re-exports 'components' from both node_modules/@storybook/addon-essentials/node_modules/@storybook/components/dist/esm/index.js and node_modules/@storybook/addon-essentials/node_modules/@storybook/components/dist/esm/typography/DocumentFormatting.js (will be ignored)
transforming (1987) ../../../packages/components/blog/lib/news-list/news-list.cssUse of eval is strongly discouraged, as it poses security risks and may cause issues with minification
Use of eval is strongly discouraged, as it poses security risks and may cause issues with minification
Use of eval is strongly discouraged, as it poses security risks and may cause issues with minification
Error when using sourcemap for reporting an error: Can't resolve original location of error.
✓ 1989 modules transformed.
'default' is not exported by /home/julrich/Projects/Frontend/code/project/node_modules/core-js-pure/features/object/get-own-property-symbols.js?commonjs-proxy, imported by node_modules/@babel/runtime-corejs3/core-js/object/get-own-property-symbols.js
file: /home/julrich/Projects/Frontend/code/project/node_modules/@babel/runtime-corejs3/core-js/object/get-own-property-symbols.js:2:7
1: import 'core-js-pure/features/object/get-own-property-symbols?commonjs-require';
2: import require$$0 from 'core-js-pure/features/object/get-own-property-symbols?commonjs-proxy';
          ^
3:
4: var getOwnPropertySymbols = require$$0;
ERR! Error: 'default' is not exported by /home/julrich/Projects/Frontend/code/project/node_modules/core-js-pure/features/object/get-own-property-symbols.js?commonjs-proxy, imported by node_modules/@babel/runtime-corejs3/core-js/object/get-own-property-symbols.js
ERR!     at error (/home/julrich/Projects/Frontend/code/project/node_modules/rollup/dist/shared/rollup.js:5305:30)
ERR!     at Module.error (/home/julrich/Projects/Frontend/code/project/node_modules/rollup/dist/shared/rollup.js:9750:16)
ERR!     at Module.traceVariable (/home/julrich/Projects/Frontend/code/project/node_modules/rollup/dist/shared/rollup.js:10138:29)
ERR!     at ModuleScope.findVariable (/home/julrich/Projects/Frontend/code/project/node_modules/rollup/dist/shared/rollup.js:8899:39)
ERR!     at Identifier.bind (/home/julrich/Projects/Frontend/code/project/node_modules/rollup/dist/shared/rollup.js:4035:40) 

Not sure what might cause this. Already tried debugging it with VSCode, and looking at the generated source. If these are features we're utilizing in our components, I'd be happy to get rid of them / replace them. Just no real idea on where to start hunting!

Forked On 11 Oct 2022 at 08:03:23

Ranihorev

I was trying to see if I can pass that error if I mock it. It's not doing anything :)

On Thu, Apr 14, 2022 at 17:28 Ian VanSchooten @.***> wrote:

What does mockCoreJsPure do? It seems like you can't mock it, if a library you're using actively depends on imports from it.

— Reply to this email directly, view it on GitHub https://github.com/storybookjs/builder-vite/issues/12#issuecomment-1099740148, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEC2ORJ2Y7PMH2EFMFJKDVDVFCZ25ANCNFSM43ROKG4A . You are receiving this because you were mentioned.Message ID: @.***>

Commented On 11 Oct 2022 at 08:03:23

Ranihorev

fix(utils): omit computedDefault of empty objects

Reasons for making this change

Fixes #2150 and #2708. See this playground

If there are no defaults, computedDefault will still create an empty object here. As a result, ajv assumes that the field should exist and is failing the validation if it has any required fields.

Forked On 10 Oct 2022 at 12:48:27

Ranihorev

I found a bug in my PR :( oneOf properties with default values are being discarded. For example:

{
          type: "array",
          items: {
            properties: {
              foo: {
                type: "object",
                properties: {
                  name: {
                    type: "string",
                  },
                },
                dependencies: {
                  name: {
                    oneOf: [
                      {
                        properties: {
                          name: {
                            enum: ["first"],
                          },
                          grade: {
                            type: "string",
                            default: "A",
                          },
                        },
                      },
                      {
                        properties: {
                          name: {
                            enum: ["second"],
                          },
                          grade: {
                            type: "string",
                            default: "B",
                          },
                        },
                      },
                    ],
                  },
                },
              },
            },
          },
        } 

I'll look for a solution, but if anyone has an idea, please let me know :)

Commented On 10 Oct 2022 at 12:48:27

Ranihorev

fix(utils): omit computedDefault of empty objects

Pushed On 08 Oct 2022 at 11:20:06

Ranihorev

fix(utils): omit computedDefault of empty objects

Reasons for making this change

Fixes #2150 and #2708. See this playground

If there are no defaults, computedDefault will still create an empty object here. As a result, ajv assumes that the field should exist and is failing the validation if it has any required fields.

Forked On 07 Oct 2022 at 06:09:46

Ranihorev

I started without computing it twice. It works great in the UI, but it breaks a lot of tests in utils as they all assume (incorrectly IMO) that those nested default objects will be generated. My plan is to fix them by manually setting includeUndefinedValues to true

Commented On 07 Oct 2022 at 06:09:46

Ranihorev

Docs: Clarify registry object structure and that it's passed down to custom widgets (#2886)

Pushed On 07 Oct 2022 at 06:06:58

Ranihorev

fix: allow UISchemaSubmitButtonOptions properties to be undefined (#2876)

Co-authored-by: Heath C 51679588+heath-freenome@users.noreply.github.com

Pushed On 07 Oct 2022 at 06:06:58

Ranihorev

Create FUNDING.yml (#2866)

Co-authored-by: Heath C 51679588+heath-freenome@users.noreply.github.com

Pushed On 07 Oct 2022 at 06:06:58

Ranihorev

docs: fix schema dependencies link (#2885)

  • docs: fix schema dependencies link

  • Update internals.md

Pushed On 07 Oct 2022 at 06:06:58

Ranihorev

chore(deps): bump core-js-pure from 3.21.1 to 3.23.3 (#2902)

Bumps core-js-pure from 3.21.1 to 3.23.3.


updated-dependencies:

  • dependency-name: core-js-pure dependency-type: direct:production update-type: version-update:semver-minor ...

Signed-off-by: dependabot[bot] support@github.com

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Pushed On 07 Oct 2022 at 06:06:58

Ranihorev

chore(deps): bump minimist from 1.2.5 to 1.2.6 in /packages/fluent-ui

Bumps minimist from 1.2.5 to 1.2.6.


updated-dependencies:

  • dependency-name: minimist dependency-type: indirect ...

Signed-off-by: dependabot[bot] support@github.com

Pushed On 07 Oct 2022 at 06:06:58

Ranihorev

Update CHANGELOG.md with generated patch notes for 4.2.1 (#2930)

Pushed On 07 Oct 2022 at 06:06:58

Ranihorev

Move webpack-cli install to root package.json (#2934)

Pushed On 07 Oct 2022 at 06:06:58

Ranihorev

Reduce stale bot threshold to 1.75 years (#2957)

  • Let's squeeze out some more old issues

Pushed On 07 Oct 2022 at 06:06:58

Ranihorev

Emit and publish transpiled code (fix #2966) (#2988)

Pushed On 07 Oct 2022 at 06:06:58

Ranihorev

v4.2.3 (#3000)

Pushed On 07 Oct 2022 at 06:06:58

Ranihorev

Merge the long-lived RJSF v5 branch to master (#3055)

  • Packages/utils (#2863)

  • Implemented the utils package

  • Refactored the packages/core/src/utils.js file into separate typescript files in the new packages/utils/src
    • More changes
    • Added all of the non-validation-based utilities and many of the tests
    • removed schema related files temporarily
    • Added missing tests to get test coverage up to 100% for all but getWidget()
  • Also did some cleanup in the src files, moving types into types.ts, and exporting all the types
    • Fixed getWidget tests
    • Update README.md
    • update the target to for typescript in
    • revert package-lock.json for antd, core and playground
    • fix build issues
    • Added the rjsf-v5 branch to the ci.yml
  • Added a new RJSFSchema as a redefine of JSONSchema7 to make changing schemas everywhere else easier
  • Updated all the utils and tests to change JSONSchema7 to RJSFSchema
  • Fixed test breaks by casting e to Error
    • changed tabs to spaces in package.json, fixed bug in deepEquals
    • Add tsdx to package.json to enable running npm run test inside of the packages/utils directory
    • Bumped @types/jest to match the version in use by tsdx
  • Fixed the utcToLocal() test by mocking the getDate() and getHours() functions to be UTC + 2 hours to avoid server vs local timezone issues
    • Began adding documentation to the utility functions
  • Reordered the logic in asNumber to avoid converting to number until we have to
  • Updated findSchemaDefinition() to handle the case where a $ref in a schema also contains additional props
  • Updated getSubmitButtonOptions() to export its DEFAULT_OPTIONS for testing purposes
  • Updated getUiOptions() to no longer support ui:widget objects as it has been deprecated for years
  • Made some other test fixes
    • Finished adding documentation to all of the remaining utils methods
    • Minor documentation changes, and allow findSchemaDefinition() to support undefined ref name
    • Responded to self-review comments
  • Packages/utils/schema (#2877)

  • Implemented the utils package

  • Refactored the packages/core/src/utils.js file into separate typescript files in the new packages/utils/src
    • More changes
    • Added all of the non-validation-based utilities and many of the tests
    • removed schema related files temporarily
    • revert package-lock.json for antd, core and playground
    • The schema utilities that require validation
    • More changes
    • completed conversion to Typescript with some changes that were needed
    • Updated various files to make some parameters optional, to add generics typing where missed
  • Created an index.ts in the schema subdirectory that exports all of the schema related functions
  • Updated types.ts to add the new SchemaUtilsType interface
  • Implemented a createSchemaUtils() function that returns a SchemaUtilsType interface given a ValidatorType and a rootSchema
    • Implemented createSchemaUtils
  • Began testing the schema-based utils
    • More fixes and adding missing generics
    • Converted all the schema based tests over still missing 100% coverage
    • Completed 100% unit testing
    • Added documentation for most of the files and cleaned up some optionality on some arguments
    • Completed all of the documentation of the schema-based utils
    • Changed the _NAME constants to _KEY
    • Added missing generics on a few types
    • Added ERRORS_KEY constant for use in validation
    • Fixed types based on implementation of validator
    • Added missing generic to the ValidationData type for ErrorSchema
    • Fixed tests for the missing generic type
    • Incorporated #2876 by making props for UISchemaSubmitButtonOptions optional
    • Added generic <T> to the return value of toIdSchema() and toPathSchema()
  • Refactored schema to support running schema tests from other packages (#2899)

  • Refactored schema to support runnings from other packages

  • Fixed the import of types in mergeSchemas.ts
  • Renamed all of the xxx.test.ts to xxxTest.ts and wrapped them in an outer xxxTest() function that takes a TestValidatorType
  • Added a types.ts file in the schema directory to provide the TestValidatorType and TestValidatorParams interfaces
  • Added an index.ts file in the schema directory to export all of the xxxTest functions
  • Updated getTestValidator() to import the types from the schema/types
  • Added a test/schema.test.ts to create a TestValidator and run all of the xxxTest() functions from schema
    • Fixed the tests based on using the real validator
    • Removed the use of xxx.hasOwnProperty('y') in favor 'y' in xxx to eliminate lint warnings
  • Fixed bug in stubExistingAdditionalProperties() related to the additionalProperties: true case, adding new test to verify fix
    • Removed console.log statement
    • Moved stubExistingAdditionalProperties() into the retrieveSchema.ts file to eliminate a circular dependency
    • Did the same for the stubExistingAdditionalPropertiesTest() function
  • Updated the index.ts files to remove the stubExistingAdditionalProperties[Test]() functions
  • Updated SchemaUtilsType and createSchemaUtils to remove the stubExistingAdditionalProperties() function
  • Validator ajv6 (#2891)

  • Added new package for validator-ajv6

  • Refactored packages/core/src/validate.js into this new package
    • Switched to the new @rjsf/utils library and types
    • Finished types conversion to @rjsf/utils
  • Began adding tests
    • Completed conversion for validator class-based tests. Just need to get to 100% 1
    • Finished 100% test coverage and documentation of the AJV6Validator
    • Completed the documentation of the remaining methods and types for the library
    • Responded to self-review feedback and also fixed tests to hopefully get it to pass
    • Fixed the build (this time hopefully)
    • Switched to just passing stack instead of the whole empty object
    • Added hacky run of tests from within the utils directory
    • Fixed a few little things
    • Fixed bug in custom validation, including adding a test to detect it
    • Removed schema utils test for stubExistingAdditionalPropertiesTest() as it no longer exists
    • Fixed self-review feedback and the import in the test/createAjvInstance.test.ts
  • Also bumped all the packages that made sense
  • Update utils based on core refactor and update package.jsons (#2903)

  • Update utils based on core refactor and update package.jsons

  • Updated the main package.json to bump typescript
  • Updated the utils package.json to bump everything but react
  • Updated SchemaUtilsType to add the getValidator() and doesSchemaUtilsDiffer() functions
    • Updated createSchemaUtils() to implement the new functions and the tests to validate them
  • Also updated other types to deal with issues found during core refactor
    • Changed FormValidation to ErrorSchema as needed
    • Updated the Registry type to remove definitions as it is never used and added the xxxTemplate props
    • Updated many interfaces to make previously required props to be optional
    • Switched to using the React.ComponentType which incorporates the FunctionComponent and ClassComponent both
  • Fixed a bug in getDefaultFormState() by making the array defaults use effectively the same logic as it did in core but refactored to a function for type safety
    • Updated the tests to add one that verifies the bug is fixed
    • rollback typescript to previous version due to fluent-ui issue
    • Fixed bug in getSchemaType() related to incorrectly defaulting to string when no type exists
    • Made uiSchema optional in canExpand(), getSubmitButtonOptions() and getUiOptions()
  • Updated the required-ness of a smattering of props in interfaces
    • Made all callbacks be required again
    • Made label required again
    • More updates to make uiSchema optional
    • Added new processSelectValue() utility, refactored from core's SelectWidget, with full tests
  • Also updated the UIOptionsType to add optional title and description props, typed to string to eliminate the need to type cast them
    • Added documentation for the [key: string] prop
    • Responded to reviewer feedback
  • Updated semantic-ui theme to use new @rjsf/utils and @rjsf/validator (#2920)

  • Updated @rjsf/core to use the new utils and validator-ajv6 libraries

  • Removed the index.d.ts file since all the types are now exported in @rjsf/utils
  • Updated package*.json to make changes consistent with pulling utils and validator-ajv6 libraries
    • Removed core-js-pure, json-schema-merge-allof, jsonpointer and react-is from dependencies in favor of @rjsf/utils
    • Moved ajv and @types/json-schema into the devDependencies
    • Added @rjsf/validator-ajv6, @types/lodash and tsdx
    • Also, removed all mentions of index.d.ts
  • Converted ErrorList to typescript, pulling types from @rjsf/utils
  • Converted Form to typescript
    • Built FormProps and FormState props which are exported
    • Pulled in all the types from @rjsf/utils functions
    • Removed the additionalMetaSchemas and customFormats props in favor of the new, required validator: ValidatorType prop
    • Updated getStateFromProps() to create a SchemaUtilsType object and put it into both the state and the registry as schemaUtils
    • Switched to using the schemaUtils.getValidator() to access the validateFormData() and toErrorList() calls
    • Switched to using schemaUtils to access getDefaultFormState(), toIdSchema(), toPathSchema() and retrieveSchema()
  • Updated ArrayField to use the @rjsf/utils functions
    • Also, switched to the includes function from lodash
    • Pull the schemaUtils from the registry and used it for getDefaultFormState(), isMultiSelect(), isFilesArray(), retrieveSchema() and toIdSchema()
    • Switched from xxx.hadOwnProperty('y') to 'y' in xxx to remove an eslint warning
  • Updated BooleanField, NumberField, CheckboxWidget, DateTimeWidget, FileWidget, RangeWidget, SelectWidget and UpDownWidget to pull utility functions from @rjsf/utils
  • Updated MultiSchemaField to use the @rjsf/utils functions
    • Pulled the schemaUtils from the registry and used it for getDefaultFormState() and getMatchingOption()
    • Switched from xxx.hadOwnProperty('y') to 'y' in xxx to remove an eslint warning
  • Updated ObjectField to use the @rjsf/utils functions
    • Pulled the schemaUtils from the registry and used it for retrieveSchema()
    • Switched from xxx.hadOwnProperty('y') to 'y' in xxx to remove an eslint warning
  • Updated SchemaField to use the @rjsf/utils functions
    • Pulled the schemaUtils from the registry and used it for getDisplayLabel(), isSelect(), retrieveSchema() and toIdSchema()
    • Switched from xxx.hadOwnProperty('y') to 'y' in xxx to remove an eslint warning
  • Updated StringField to use the @rjsf/utils functions
    • Pulled the schemaUtils from the registry and used it for isSelect()
  • Updated AltDateWidget to use the @rjsf/utils functions
    • Removed prevState from componentDidUpdate() because it is not used, removing lint error
  • Updated TextWidget to add bool as a type for the value to avoid a React error that failed tests
  • Converted SubmitButton to typescript, pulling types from @rjsf/utils and exporting it's props type
  • Converted getDefaultRegistry() to typescript, pulling types from @rjsf/utils
    • Changed the export to be default
    • Temporarily needing to cast fields and widgets to the proper type until they are converted
  • Converted withTheme() to typescript, pulling types from @rjsf/utils and the typescript Form
  • Converted the src/index.js file to Typescript, exporting both the Form and its types along with withTheme(), getDefaultRegistry()
  • Updated the types.js file to remove definitions and add in schemaUtils ffor the registry type.
  • Deleted the src/utils.js, src/validate.js files since they have been replaced with @rjsf/utils/ and @rjsf/validator-ajv6
    • Removed the utils_test.js file entirely and only kept the Form integration part of the validate_test.js
  • Updated the tests as follows to make things work with @rjsf/utils and @rjsf/validator-ajv6
    • Updated test_utils.js to import the default validator from @rjsf/validator-ajv6 and add it to the props for createFormComponent()
    • Updated the Form_test.js to import the default validator and the customizeValidator() function and passed validator into props for <Form>...</Form>
      • Updated the checking of onChangeProp to add schemaValidationErrors, schemaValidationErrorSchema and schemaUtils to the calledWith() check
      • Updated the checking of onError to add schemaValidationErrors, schemaValidationErrorSchema to the match
      • Deleted any tests that dealt with the now removed deprecated features
      • Replaced tests the used the customFormats or additionalMetaSchemas props with a customized validator with those values set on it
        • In one place, removed a piece of a test that was reverting the old props since they don't exist anymore
    • Updated the SchemaField_test.js file to check the registry in the received props to have schemaUtils instead of definitions
      • Fixed the import of getDefaultRegistry()
      • Also removed the test related to empty definitions since that isn't in the registry anymore
    • Updated the StringField_test.js to import the utility functions from @rjsf/utils
    • Updated the uiSchema_test.js file to deal with the removal of deprecated ui:widget: {component, options} feature in @rjsf/utils
      • Switched from warn to error for spying
      • Removed the deprecated ui:widget configurations in the tests, moving the options into the ui:options block instead`
      • Verified the proper error (instead of warning) is returned
    • Temporarily restore index.d.ts until next PR when it gets removed
    • Export WithThemeProps from core
    • Converted AddButton to Typescript
  • Switched SubmitButton to use WidgetProps
  • Removed schemaUtils as a param for getDefaultRegistry()
  • Set generic defaults on WithThemeProps
  • Fixed cast of SubmitButton in Form
    • Updated the type for withTheme()
    • Refactored processValue out of SelectWidget and used the new processSelectValue() method in utils
    • Fixed a few more things found while finishing up the themes conversion
  • Updated antd theme to use new @rjsf/utils and @rjsf/validator

  • Updated package*.json to add @rjsf/utils and @rjsf/validator to dev and peer dependencies
    • Also, Removed a bunch of packages that were never used since the conversion to tsdx
    • Finally, bumped most of the dev dependencies that made sense to the latest version, except for those that cause breaking tests
  • Removed the webpack.config.*.js files since they are no longer needed since the conversion to tsdx
  • Updated all uses of non-schema utilities methods to @rjsf/utils and switched to using registry.schemaUtils.XXX() for those schema-based utilities
  • Updated the import of getDefaultRegistry() to be directly from @rjsf/core
  • Modified SelectWidget to use the new processSelectValue() function from @rjsf/utils
  • Updated the tests to import the validator from @rjsf/validator to pass to the Form
    • Also updated the snapshots via the test:update script to deal with the little differences from the conversion
  • Updated bootstrap-4 theme to use new @rjsf/utils and @rjsf/validator
  • Updated package*.json to add @rjsf/utils to dev and peer dependencies and @rjsf/validator-ajv6 to dev dependencies
    • Also, Removed a bunch of packages that were never used since the conversion to tsdx
    • Finally, bumped most of the dev dependencies that made sense to the latest version, except for those that cause breaking tests
  • Updated all uses of non-schema utilities methods to @rjsf/utils and switched to using registry.schemaUtils.XXX() for those schema-based utilities
  • Updated the import of getDefaultRegistry() to be directly from @rjsf/core
  • Updated components that used the uiSchema['ui:xxx'] notation to get the uiOptions using getUiOptions(uiSchema) then doing uiOptions.xxx instead
  • Updated the use of React.FC with React.ComponentType in AddButton and SubmitButton
  • Updated ArrayFieldTitleProps and ArrayFieldDescriptionProps to make title, required and description optional in the ArrayFieldTemplate.tsx file
    • Also fixed the indentation of components
  • Updated WrapIfAdditionalProps to pick props from FieldTemplateProps joining it with children to fix type issues
  • Updated Form to use React.ComponentType
  • Modified SelectWidget to use the new processSelectValue() function from @rjsf/utils
  • Updated the tests to change to using RJSFSchema rather than JSON7Schema and import the validator from @rjsf/validator to pass to the Form
    • Also updated the snapshots via the test:update script to deal with the little differences from the conversion
  • Updated chakra-ui theme to use new @rjsf/utils and @rjsf/validator
  • Updated package*.json to add @rjsf/utils to dev and peer dependencies and @rjsf/validator-ajv6 to dev dependencies
    • Also, Removed a bunch of packages that were never used since the conversion to tsdx
    • Finally, bumped most of the dev dependencies that made sense to the latest version, except for those that cause breaking tests
  • Updated all uses of non-schema utilities methods to @rjsf/utils and switched to using registry.schemaUtils.XXX() for those schema-based utilities
  • Updated the import of getDefaultRegistry() to be directly from @rjsf/core
  • Updated components that used the uiSchema['ui:xxx'] notation to get the uiOptions using getUiOptions(uiSchema) then doing uiOptions.xxx instead
  • Updated the use of React.FC with React.ComponentType in AddButton and SubmitButton
  • Updated AltDateWidget to extend the AltDateStateType object from the DateObject
  • Updated ArrayFieldTitleProps and ArrayFieldDescriptionProps to make title, required and description optional in the ArrayFieldTemplate.tsx file
    • Also fixed the indentation of components
  • Updated WrapIfAdditionalProps to pick props from FieldTemplateProps joining it with children to fix type issues
  • Updated Form to use React.ComponentType
  • Modified SelectWidget to use the new processSelectValue() function from @rjsf/utils
  • Updated utils.js to remove the custom ThemeProps in favor of the new WithThemeProps from @rjsf/core
  • Updated the tests to change to using RJSFSchema rather than JSON7Schema and import the validator from @rjsf/validator to pass to the Form
    • Also updated the snapshots via the test:update script to deal with the little differences from the conversion
  • Updated fluent-ui theme to use new @rjsf/utils and @rjsf/validator
  • Updated package*.json to add @rjsf/utils to dev and peer dependencies and @rjsf/validator-ajv6 to dev dependencies
    • Also, Removed a bunch of packages that were never used since the conversion to tsdx
    • Finally, bumped most of the dev dependencies that made sense to the latest version, except for those that cause breaking tests
  • Updated all uses of non-schema utilities methods to @rjsf/utils and switched to using registry.schemaUtils.XXX() for those schema-based utilities
  • Updated the import of getDefaultRegistry() to be directly from @rjsf/core
  • Updated ArrayFieldTitleProps and ArrayFieldDescriptionProps to make title, required and description optional in the ArrayFieldTemplate.tsx file
    • Also fixed the indentation of components
  • Updated WrapIfAdditionalProps to pick props from FieldTemplateProps joining it with children to fix type issues
  • Updated FuiForm to use React.ComponentType
  • Modified SelectWidget to use the new processSelectValue() function from @rjsf/utils
  • Updated the tests to change to using RJSFSchema rather than JSON7Schema and import the validator from @rjsf/validator to pass to the Form
    • Also updated the snapshots via the test:update script to deal with the little differences from the conversion
  • Updated material-ui theme to use new @rjsf/utils and @rjsf/validator
  • Updated package*.json to add @rjsf/utils to dev and peer dependencies and @rjsf/validator-ajv6 to dev dependencies
    • Also, Removed a bunch of packages that were never used since the conversion to tsdx
    • Finally, bumped most of the dev dependencies that made sense to the latest version, except for those that cause breaking tests
  • Updated all uses of non-schema utilities methods to @rjsf/utils and switched to using registry.schemaUtils.XXX() for those schema-based utilities
  • Updated the import of getDefaultRegistry() to be directly from @rjsf/core
  • Updated components that used the uiSchema['ui:xxx'] notation to get the uiOptions using getUiOptions(uiSchema) then doing uiOptions.xxx instead
  • Updated the use of React.FC with React.ComponentType in AddButton and SubmitButton
  • Updated ArrayFieldTitleProps and ArrayFieldDescriptionProps to make title, required and description optional in the ArrayFieldTemplate.tsx file
    • Also fixed the indentation of components
  • Updated WrapIfAdditionalProps to pick props from FieldTemplateProps joining it with children to fix type issues
  • Updated MuiForm and MuiForm5 to use React.ComponentType
  • Modified SelectWidget to use the new processSelectValue() function from @rjsf/utils
  • Updated the tests to change to using RJSFSchema rather than JSON7Schema and import the validator from @rjsf/validator to pass to the Form
    • Also updated the snapshots via the test:update script to deal with the little differences from the conversion
  • Updated semantic-ui theme to use new @rjsf/utils and @rjsf/validator
  • Bumped the main package.json to use the latest version of Typescript
  • Updated .eslintrc with what was needed to support the latest eslint version
  • Updated package*.json to add @rjsf/utils to dev and peer dependencies and @rjsf/validator-ajv6 to dev dependencies
    • Also, Removed a bunch of packages that were never used since the conversion to tsdx
    • Finally, bumped most of the dev dependencies that made sense to the latest version, except for those that cause breaking tests
  • Updated all uses of non-schema utilities methods to @rjsf/utils and switched to using registry.schemaUtils.XXX() for those schema-based utilities
  • Updated the import of getDefaultRegistry() to be directly from @rjsf/core
  • Modified SelectWidget to use the new processSelectValue() function from @rjsf/utils
  • Updated the tests to import the validator from @rjsf/validator to pass to the Form
    • Also updated the snapshots via the test:update script to deal with the little differences from the conversion
    • Fixed material-ui build to no longer generate the v4 and v5 versions since the theme will soon be separated into two packages
    • Update material-ui package-lock.json to match package.json
  • Added ajvOptionsOverrides to support user-provided AJV options overriding (#2929)

  • Updated CustomValidatorOptionsType to add ajvOptionsOverrides
  • Updated the createAjvInstance() function to spread any ajvOptionsOverrides on top of the AJV_CONFIG
  • Updated AJV6Validator constructor to pass ajvOptionsOverrides to createAjvInstance()
  • Updated tests to add test-case for the $data flag mentioned in #1668
  • Optimized and updated imports in core package.json (#2931)

  • Optimized and updated imports in core package.json

  • Updated tsdx build to also run umd, eliminating the need for the one-off webpack version build
  • Deleted the test-old and build-umd scripts
  • Added @rjsf/utils to peerDependencies
  • Removed all of the webpack and cross-env related packages no longer needed for the one-off build
  • Also removed express, gh-pages, estraverse* and husky
  • Updated a bunch of the peerDependencies package versions to the latest
  • Deleted the now unnecessary webpack.config.dist.js
    • Removed prettier from package.json as it differs from the version used in the main package.json
  • Ran cs-format to fix all of the prettier errors reported by cs-check
    • Bumped prettier to pickup latest typescript support
    • Switched from jsxBracketSameLine: true to bracketSameLine: false
  • Ran cs-format over playground as well
  • Added support for node 16, formatting and linting (validator-ajv6) (#2932)

  • Added support for node 16 and linting

  • Regenerated the package-lock.json file with node-16
  • Added the cs-check, cs-format and lint scripts along with lint-staged to the package.json file
    • Ran cs-format on the validator-ajv6 source to fix build
    • Switched the no-unused-vars rule to @typescript-eslint/no-unused-vars in .eslintrc
  • Added support for node 16, formatting and linting (utils) (#2933)

  • Added support for node 16, formatting and linting

  • Regenerated the package-lock.json file with node-16
  • Added the cs-check, cs-format and lint scripts along with lint-staged to the package.json file
  • Ran cs-format over the src and test directories to fix the build
    • Switched the no-unused-vars rule to @typescript-eslint/no-unused-vars in .eslintrc
  • Added support for node 16, formatting and linting (bootstrap-4) (#2936)

  • Added support for node 16, formatting and linting

  • Regenerated the package-lock.json file with node-16
    • Also added packages to support linting
  • Added the cs-check, cs-format and lint scripts along with lint-staged to the package.json file
  • Ran eslint --fix and cs-format over the src and test directories to fix the build
  • Added a slight adaptation of the .eslintrc file from core to this package
    • Fixed build
  • Added support for node 16, formatting and linting (fluent-ui) (#2938)

  • Added support for node 16, formatting and linting

  • Regenerated the package-lock.json file with node-16
    • Also added packages to support linting
  • Added the cs-check, cs-format and lint scripts along with lint-staged to the package.json file
  • Ran eslint --fix and cs-format over the src and test directories to fix the build
  • Added a slight adaptation of the .eslintrc file from core to this package
    • Fix build, hopefully
  • Added support for node 16, formatting and linting (semantic-ui) (#2939)

  • Regenerated the package-lock.json file with node-16
  • Added the cs-check, cs-format and lint scripts along with lint-staged to the package.json file
  • Ran cs-format over the src and test directories to fix the build
  • Added support for node 16, formatting and linting (#2937)
  • Regenerated the package-lock.json file with node-16
    • Also added packages to support linting
    • Explicity added the latest prettier because it in implicitly picking up the wrong one
  • Added the cs-check, cs-format and lint scripts along with lint-staged to the package.json file
  • Ran eslint --fix and cs-format over the src and test directories to fix the build
  • Added a slight adaptation of the .eslintrc file from core to this package
  • Added .npmrc to enable legacy-peer-deps to allow things to work with node 16
  • Deleted .prettierrc since the override is no longer needed
  • Added support for node 16, formatting and linting (antd) (#2935)

  • Added support for node 16, formatting and linting

  • Regenerated the package-lock.json file with node-16
  • Added the cs-check, cs-format and lint scripts along with lint-staged to the package.json file
    • Added @babel/eslint-parser and removed babel-parser
  • Ran cs-format over the src and test directories to fix the build
  • Updated .eslintrc to switch to using the @babel/eslint-parser with the necessary parserOptions
    • Fix package.json formatting
  • Updated the playground to allow a validator selection (#2941)

  • Updated the playground to allow a validator selection

  • Defaults to the ajv6 validator
  • Updated package*.json to add @rjsf/utils and @rjsf/validator-ajv6
    • Also removed a bunch of unnecessary packages
    • Bumped a bunch of other packages to the latest minor and patch version
    • Bumped a few select packages to the latest major version
  • Updated .eslintrc to switch from babel-eslint to @babel/eslint-parser
  • Updated the index.js file to add a validators object containing the AJV6 validator choice, passing it into Playground
  • Updated the app.js file to get shouldRender() from @rjsf/utils instead of copying it from core
    • Also extracted validators from the props for Playground, storing validator in the state, initially set to AJV6
    • Added a ValidatorSelector component that is used to update the selected validator in state
    • Rendered a ValidagtorSelector just before the CopyLink component
    • Passed validators[validator] as the validator prop on FormComponent
    • Ran cs-format to fix formatting issues and fix the build
  • Split out material-ui v5 theme as @rjsf/mui (#2948)

  • Split out material-ui v5 theme as @rjsf/mui

  • Copied the material-ui directory and removed the @material-ui dependencies
  • Deleted the MuiComponentContext, MuiForm5, Theme5 and ThemeCommon directories (moving the contents of ThemeCommon/index.js directly into Theme)
  • Deleted the MaterialUIContext and MaterialUIContextProps files and everything in Theme.tsx that related to them
  • Replaced all fetching of the Material UI components from the useMuiComponent() hook with actual imports from @mui/material and @mui/icons-material
  • Regenerated the package-lock.json file with node-16
  • Added the cs-check, cs-format and lint scripts along with lint-staged to the package.json file
  • Copied the .eslintrc file from core
    • This involved adding @typescript-eslint, eslint and eslint-plugin-*
  • Ran eslint --fix and cs-format over the src and test directories to fix the build
    • Fix build by fixing a few little things
    • Fixed playground imports to read from new repo
  • Made @rjsf/material-ui only be for Material UI 4 (#2949)

  • Deleted the MuiComponentContext, MuiForm5, Theme5 and ThemeCommon directories (moving the contents of ThemeCommon/index.js directly into Theme)
  • Deleted the MaterialUIContext and MaterialUIContextProps files and everything in Theme.tsx that related to them
  • Replaced all fetching of the Material UI components from the useMuiComponent() hook with actual imports from @material-ui/core and @material-ui/icons
  • Deleted the tests/mui-5 directory and fixed up the tests to work with the simple Form
  • Regenerated the package-lock.json file with node-16
  • Added the cs-check, cs-format and lint scripts along with lint-staged to the package.json file
  • Copied the .eslintrc file from core
    • This involved adding @typescript-eslint, eslint and eslint-plugin-*
  • Ran eslint --fix and cs-format over the src and test directories to fix the build
  • Get node 16 build working, centralize lint configs and switch to dts-cli (#2951)

  • Get node 16 build working and centralize lint configs

  • Added .eslintrc-javascript for the common configs needed for antd, playground and semantic-ui
  • Added .eslintrc-typescript for the common configs needed for the rest of the packages
  • Updated .github/workflows/ci.yml to add node 16 and to build the playground using it instead of 14
  • Updated .gitignore to add the few items from the .gitignore files in sub-packages
    • Removed the .gitignore in the sub-packages, along with the two .editorconfig files
  • Updated all of the .eslintrc files in the packages to extend the appropriate .eslintrc-*script file
    • Left the plugins array definitions in each .eslintrc file
      • Avoids an issue where eslint found the base and sub-package implementation of the plugins and complained when they were in the base
  • Updated the main package*.json to add the packages needed for linting so that they can be removed in the sub-packages
  • Updated each sub-package package*.json files to remove all but the eslint package (leaving it locally so that it can be run in the subdirectory)
    • Also bumped any out-of-date packages related to babel or eslint
    • Replaced tsdx with its most current forked cousin dts-cli
    • This removed the need for the .npmrc file in chakra-ui
    • Re-ran npm run cs-format due to prettier upgrades provided by dts-cli
  • Also fixed some typescript issues in fluent-ui related to object spreading by casting options.props as object
    • Fixed tests due to change to dts-cli
    • Added jest-environment-jsdom and ts-jest that matches the jest version dts-cli uses in the main package.json
    • Updated package.jsons to remove incompatible jest related packages
    • Updated and/or moved jest.config.js files to add testEnvironment and testEnvironmentOptions for jsdom
    • Updated chakra-ui and mui to add missing libraries for emotion and jest
    • Redid the mui snapshots after changes
    • Rollback semantic-ui so that it still uses tsdx due to test failures using dts-cli
    • Bumped eslint to 8.20
  • Bumped the dependencies for semantic-ui (#2972)

  • Fixed react 16.14 adding >=17 in peer dependencies
    • Didn't bump to react 17 officially to avoid peer dependencies issues with semantic-ui which is stuck on 16
  • Bumped nanoid to the latest minor version
  • Bump dependencies for both material-ui themes (#2971)
  • In material-ui, fixed react 16.14 in peer dependencies
  • In mui, bumped @mui/material to the latest
  • Removed react-dom and @types/react from the peer dependencies
  • Bumped eslint to latest release
  • Removed the types for jest as it was unnecessary
  • Bumped fluent-ui dependencies (#2970)
  • Bumped to latest minor version for fluent-ui
  • Bumped react to 17, fixing react 16.14 in peer dependencies
  • Removed unnecessary types for jest
  • Updated SelectWidget to properly use the right defaultSelectedKey[s] prop based on multiple flag
  • Updated test snapshots due to dependency bumps
  • Bumping dependencies for utils (#2969)
  • Bumped react to 17, fixing react 16.14 in peer dependencies
  • Removed react-dom because it wasn't needed
  • Bumping dependencies for core (#2968)
  • Bumped nanoid to latest
  • Bumped react to 17, fixing react 16.14 in peer dependencies
  • Bumped the dependencies for bootstrap-4 (#2967)
  • Can't bump to bootstrap-2, so bumped to latest 1.x version
  • Bumped react to 17, fixing react 16.14 in peer dependencies
  • Bumped react-icons to latest
  • Updated test snapshots due to changes from bumps
  • Bumped some of the dependencies for chakra-ui (#2965)
  • Can't upgrade to chakra-ui 2.0 because it requires react 18
  • Locked peerDependencies for react to ^16.14.0 or >=17
  • Bumped minor versions of react-select, chakra-react-select and framer-motion
  • Updated test snapshot as a result
  • Upgraded to latest antd code (#2963)

  • Upgraded to latest antd code

  • Added an additional test for the custom DatePicker
  • Fixed the tests for checkboxes in array that broke with upgrade by implementing a required ref
  • Updated all the test snapshots due to upgrade changes
    • Fix build by running cs-format
    • Bumped react to 17, fixing react 16.14 in peer dependencies
  • Switched playground to webpack 5 and other small fixes (#2958)

  • Switched playground to webpack 5 and other small fixes

  • Updated .github/workflows/release.yml to use node 16
  • Updated the main package.json to remove webpack and webpack-cli as they are only needed by playground
  • Updated all of the package.json files for the themes to fix the build script to change --format cjs,es,umd to --format cjs,esm,umd
    • This is because dts-cli changed es to esm
    • Also updated material-ui to add that missing flag to build
  • Updated .babelrc to get it working with webpack 5
  • Updated package.json for playground to update (or remove) webpack and all of its plugins and utilities
    • Explicitly added ajv8 since webpack-dev-server uses it and the validator-ajv6 has an earlier version
  • Updated the webpack.config.*.js files to support webpack 5
  • Updated the index.js for playground to organize the themes in alphabetical order (after default)
    • Bumped antd libraries to latest
    • Updated theme libraries to match the ones in the updated theme package.json files
  • Update package-locks (#2973)

  • After merging all the package.json cleanups, some of the package-lock.json files were a bit out of date, updating them
  • Updated documentation for the v5 release (#2974)

  • Updated documentation for the v5 release

  • Updated /latest/ with /stable for all .md files, mirroring changes made on master
  • Changed all uses of <Form schema={schema} /> in existing documentation to add the required validator from @rjsf/validator-ajv6
  • Updated the validation.md docs to cover v5 changes and additions
  • Added a new utility-function.md to document the @rjsf/utils function, constants and types
  • Deleted the customizing-material-ui.md file since we split apart the two theme versions
  • Added the version 5 migration document
  • Updated @rjsf/utils to add or improve documentation
    • Also refactored out the TemplateTypes interfaces to help support future work related to expanding templates
    • Added a utility type, MakeUIType and refactored out UIOptionsBaseType in order to dry out the UiOptionsType and UiSchema types
  • Updated Form in @rjsf/core to move the IChangeEvent type from utils extending it from FormState
    • The props validate was renamed to customValidate
    • Also, updated FormProps to extend the new TemplatesType interface
  • Updated withTheme to add the missing generics onto Form
    • Added placeholders for core's missing documentation on the Typescript files
    • Completed the documentation of all the Typescript based files in core
  • Responded to reviewer feedback
  • Added a few more constants in @rjsf/utils, using them as appropriate in utils and core
  • Fix the docs for formElement in Form (#2983)
  • Added an explanation for why the any type is specified
  • fix: core SubmitButton button option props

  • chore: remove duplicate settings from semantic-ui package.json

  • fix: missing error class on semantic-ui fields

  • Consolidate templates into a single location in registry (#2981)

  • Consolidate templates into a single location in registry

  • Updated .eslint-typescript to turn off two warnings that were noisy
  • Updated the @rjsf/utils types as follows to support a consolidated templates object:
    • Updated the Registry type to no longer extend TemplateTypes, but instead have it as a new templates property.
    • Updated the TemplateTypes type to consolidate more templates as follows:
      • Made all but ArrayFieldTemplate required
      • Refactored ErrorList from the FormProps as ErrorListTemplate
      • Added TitleFieldTemplate and DescriptionFieldTemplate
    • Updated TitleFieldProps to registry since all templates require a back-pointer to the registry
      • Also added uiSchema to support capabilities in use by several themes
    • Updated DescriptionFieldProps to add registry since all templates require a back-pointer to the registry
    • Updated the ArrayFieldTemplateProps and ObjectFieldTemplateProps to remove TitleField and DescriptionField since they can now be obtained from the templates
    • Also, updated UiSchema to add Partial<> around TemplateTypes, since we want the ui: versions to all be optional
  • Updated @rjsf/core to add templates to Form and makeTheme props
    • Removed the ErrorList, ArrayFieldTemplate, ObjectFieldTemplate and FieldTemplate from the props
      • Also modified Form to pull ErrorListTemplate from the templates prop
    • Created a new templates directory, moving in TitleField and DescriptionField from the fields directory
      • Created a templates/FieldTemplate directory, refactoring out the FieldTemplate, Label and WrapIfAdditional components from the SchemaField.js file
        • Converted these components to Typescript
        • Inlined the code from LabelInput directly into WrapIfAdditional
        • Updated SchemaField.js to pull FieldTemplate from registry.templates
      • Moved the ErrorList.tsx file into this directory
      • Refactored ObjectFieldTemplate component from the ObjectField.js file
        • Converted this to Typescript
        • Updated ObjectField.js to pull DescriptionFieldTemplate, ObjectFieldTemplate and TitleFieldTemplate from registry.templates, passing in registry
    • Updated ArrayField.ts to pull DescriptionFieldTemplate and TitleFieldTemplate from registry.templates, passing in registry
    • Updated BooleanField to no longer pass DescriptionField to the Widget
    • Updated CheckboxWidget to pull DescriptionFieldTemplate from registry.templates, passing in registry
    • Updated getDefaultRegistry() to import the new templates directory index.ts instead of all the separate templates, exporting it on the default registry
    • Fixed up all the tests to deal with this consolidation
  • Updated @rjsf/antd to consolidate templates as follows:
    • Moved ErrorList.js into the templates/ErrorList directory as index.js
    • Moved DescriptionField and TitleField into the templates directory
      • Removed the now, unnecessary commented out FieldProps from DescriptionField and TitleField
      • Also extracted formContext out of registry in TitleField
    • Updated the base index.js file to export templates by combining default templates with the files from the templates directories
  • Updated @rjsf/bootstrap-4 to consolidate templates as follows:
    • Updated DescriptionField and TitleField to use the DescriptionFieldProps and TitleFieldProps from @rjsf/utils instead of Partial<FieldProps>
    • Updated ArrayFieldTemplate.tsx and ObjectFieldTemplate.tsx to pull DescriptionFieldTemplate and TitleFieldTemplate from registry.templates
      • Also, pass registry (and uiSchema) to the DescriptionFieldTemplate and TitleFieldTemplate
    • Renamed Fields/Fields.ts to Templates/Templates.ts
      • Also added ArrayFieldTemplate, ErrorList (as ErrorListTemplate), FieldTemplate and ObjectFieldTemplate to the Templates
    • Updated Theme to export templates from the Templates directory
    • Updated tests to deal with the consolidation
  • Updated @rjsf/chakra-ui to consolidate templates as follows:
    • Updated DescriptionField and TitleField to use the DescriptionFieldProps and TitleFieldProps from @rjsf/utils instead of Partial<FieldProps>
    • Updated ArrayFieldTemplate.tsx and ObjectFieldTemplate.tsx to pull DescriptionFieldTemplate and TitleFieldTemplate from registry.templates
      • Also, pass registry to the DescriptionFieldTemplate and TitleFieldTemplate
    • Renamed Fields/Fields.ts to Templates/Templates.ts
      • Also added ArrayFieldTemplate, ErrorList (as ErrorListTemplate), FieldTemplate and ObjectFieldTemplate to the Templates
    • Updated Theme to export templates from the Templates directory
    • Updated the base index.ts file to export the Templates directory in place of the Fields and individual templates, as well as fixed the Form export
  • Updated @rjsf/fluent-ui to consolidate templates as follows:
    • Updated DescriptionField and TitleField to use the DescriptionFieldProps and TitleFieldProps from @rjsf/utils instead of Partial<FieldProps>
    • Updated ArrayFieldTemplate.tsx and ObjectFieldTemplate.tsx to pull DescriptionFieldTemplate and TitleFieldTemplate from registry.templates
      • Also, pass registry to the DescriptionFieldTemplate and TitleFieldTemplate
    • Renamed Fields/Fields.ts to Templates/Templates.ts
      • Also added ArrayFieldTemplate, ErrorList (as ErrorListTemplate), FieldTemplate and ObjectFieldTemplate to the Templates
    • Updated Theme to export templates from the Templates directory
    • Updated the base index.ts file to export the Templates directory in place of the Fields and individual templates, as well as fixed the Form export
  • Updated @rsjf/material-ui and @rjsf/mui to considate templates as follows:
    • Updated DescriptionField and TitleField to use the DescriptionFieldProps and TitleFieldProps from @rjsf/utils instead of Partial<FieldProps>
    • Updated ArrayFieldTemplate.tsx and ObjectFieldTemplate.tsx to pull DescriptionFieldTemplate and TitleFieldTemplate from registry.templates
      • Also, pass registry to the DescriptionFieldTemplate and TitleFieldTemplate
    • Renamed Fields/Fields.ts to Templates/Templates.ts
      • Also added ArrayFieldTemplate, ErrorList (as ErrorListTemplate), FieldTemplate and ObjectFieldTemplate to the Templates
    • Updated Theme to export templates from the Templates directory
    • Updated the base index.ts file to export the Templates directory in place of the Fields and individual templates, as well as fixed the Form export
    • Fixed the tests as well
  • Updated the @rjsf/semantic-ui to consolidate templates as follows:
    • Updated ArrayFieldTemplate.tsx and ObjectFieldTemplate.tsx to pull DescriptionFieldTemplate and TitleFieldTemplate from registry.templates
      • Also, pass registry (and uiSchema) to the DescriptionFieldTemplate and TitleFieldTemplate
    • Renamed Fields/Fields.ts to Templates/Templates.ts
      • Also added ArrayFieldTemplate, ErrorList (as ErrorListTemplate), FieldTemplate and ObjectFieldTemplate to the Templates
    • Updated FieldTemplate to get the DescriptionFieldTemplate from registry.templates
    • Updated Theme to export templates from the Templates directory
    • Updated TitleField to get the ui:options from the uiSchema instead of having them passed directly
    • Updated the base index.ts file to export the Templates directory in place of the Fields and individual templates, as well as fixed the Form export
    • Changed the name of DescriptionField and TitleField to append Template onto it only in association with the templates
    • Also, made them both render id for all the themes
  • Updated tests and snapshots accordingly
    • Added documentation for the new typescript files in core
    • Responded to self and other reviewer feedback
    • Fixed bad commit in core imported by rebase
  • Prepare utils and tests for upcoming BaseInputTemplate work (#2986)

  • Prepare utils and tests for upcoming BaseInputTemplate work

  • Added the BaseInputTemplate type into the TemplatesType
  • Refactored code from BaseInput in @rjsf/core as getInputProps()
    • Added 100% unit tests
  • Consolidated all the various tests in different themes into all of the other themes
  • Updated the snapshots for all the new tests in all themes
    • Fixed up test for material-ui themes by adding missing ref's required by the components
  • Also, for material-ui 4, add mock of findDOMNode() so that tests are all successful
    • Updated all the snapshot due to the new and fixed tests in all the themes
    • Fix chakra-ui's WrapIfAdditional, CheckboxesWidget and RadioWidget to generate stable label ids
  • Updated snapshots accordingly
    • Updated RadioWidget in semantic UI to generate a stable names
  • Implement BaseInputTemplate in core (#2987)

  • Implement BaseInputTemplate in core

  • Updated TemplateType to make BaseInputTemplate required now
  • Refactored the TextWidget.js file into BaseInputTemplate.tsx, adding support for number transforms
  • Refactored (and converted to Typescript) the following widgets to use the BaseInputTemplate for their implementations
    • ColorWidget, DateTimeWidget, DateWidget, EmailWidget, PasswordWidget, RangeWidget, TextWidget, URLWidget and UpDownWidget
  • Updated all of the tests to use BaseInputWidget in templates instead of BaseInput in widgets
  • Updated bootstrap-4, material-ui and mui themes to add TextWidget as the BaseInputTemplate temporarily to fix tests
    • Updated semantic-ui test snapshot due to changes in core
  • Remove Node 12, use Node 16 as default engine, add Node 18 to build (#2996)

  • Deprecate Node 12, use Node 16 as default engine

  • Add engine to validator-ajv6

  • Implement BaseInputTemplate in bootstrap-4 (#2990)

  • Refactored TextWidget as BaseInputTemplate, using the getInputProps() to implement core feature
  • Deleted the following widgets because they are now just duplicate code to what is implemented with the template in core
    • ColorWidget, DateTimeWidget, DateWidget, EmailWidget, PasswordWidget, URLWidget, UpDownWidget
    • Updated the widgets overrides in Widgets.js to remove the deleted class references
  • Updated WrapIfAdditional to add missing htmlFor
  • Updated FileWidget and RangeWidget to use the BaseInputTemplate
  • Updated the test snapshots to match the subtle little changes caused by the getInputProps() feature and increased use of the BaseInputTemplate
    • Also deleted some tests and snapshots that were for now deleted widgets
  • Implement BaseInputTemplate in chakra-ui (#2991)
  • Refactored TextWidget as BaseInputTemplate, using the getInputProps() to implement core feature
  • Deleted the following widgets because they are now just duplicate code to what is implemented with the template in core
    • ColorWidget, DateTimeWidget, DateWidget, EmailWidget, PasswordWidget, URLWidget
    • Updated the widgets overrides in Widgets.tsx to remove the deleted class references
  • Updated the test snapshots to match the subtle little changes caused by the getInputProps() feature and increased use of the BaseInputTemplate
  • Implement BaseInputTemplate in fluent-ui (#2992)
  • Refactored TextWidget as BaseInputTemplate, using the getInputProps() to implement core feature
  • Deleted the following widgets because they are now just duplicate code to what is implemented with the template in core
    • AltDateTimeWidget, AltDateWidget, EmailWidget, PasswordWidget, URLWidget
    • Updated the widgets overrides in Widgets.tsx to remove the deleted class references
  • Updated TextareaWidget to use the BaseInputTemplate
  • Updated the test snapshots to match the subtle little changes caused by the getInputProps() feature and increased use of the BaseInputTemplate
  • Implement BaseInputTemplate in material-ui (#2993)
  • Refactored TextWidget as BaseInputTemplate, using the getInputProps() to implement core feature
  • Deleted the following widgets because they are now just duplicate code to what is implemented with the template in core
    • ColorWidget, EmailWidget, PasswordWidget, URLWidget, UpDownWidget
    • Updated the widgets overrides in Widgets.tsx to remove the deleted class references
  • Updated CheckboxesWidget, RadioWidget to add missing id associated with the htmlFor
  • Updated DateTimeWidget DateWidget and TextareaWidget to use the BaseInputTemplate
  • Updated the test snapshots to match the subtle little changes caused by the getInputProps() feature and increased use of the BaseInputTemplate
    • Also deleted some tests and snapshots that were for now deleted widgets
  • Implement BaseInputTemplate in mui (#2994)
  • Refactored TextWidget as BaseInputTemplate, using the getInputProps() to implement core feature
  • Deleted the following widgets because they are now just duplicate code to what is implemented with the template in core
    • ColorWidget, EmailWidget, PasswordWidget, URLWidget, UpDownWidget
    • Updated the widgets overrides in Widgets.tsx to remove the deleted class references
  • Updated CheckboxesWidget, RadioWidget to add missing id associated with the htmlFor
  • Updated DateTimeWidget DateWidget and TextareaWidget to use the BaseInputTemplate
  • Updated the test snapshots to match the subtle little changes caused by the getInputProps() feature and increased use of the BaseInputTemplate
    • Also deleted some tests and snapshots that were for now deleted widgets
  • Implement BaseInputTemplate in semantic-ui (#2995)
  • Refactored TextWidget as BaseInputTemplate, using the getInputProps() to implement core feature
    • Yes, git thinks it was the EmailWidget but it was actually TextWidget
  • Deleted the following widgets because they are now just duplicate code to what is implemented with the template in core
    • DateTimeWidget, DateWidget, EmailWidget, PasswordWidget, URLWidget, UpDownWidget
    • Updated the widgets overrides in Widgets.tsx to remove the deleted class references
  • Updated RadioWidget to improve the name of the Radio buttons
  • Updated the test snapshots to match the subtle little changes caused by the getInputProps() feature and increased use of the BaseInputTemplate
    • Also deleted some tests and snapshots that were for now deleted widgets
  • Implement BaseInputTemplate in antd (#2989)
  • Refactored TextWidget as BaseInputTemplate, using the getInputProps() to implement core feature
  • Deleted the following widgets because they are now just duplicate code to what is implemented with the template in core
    • ColorWidget, EmailWidget, URLWidget, UpDownWidget
    • Updated the widgets overrides in index.js to remove the deleted class references
  • Updated the test snapshots to match the subtle little changes caused by the getInputProps() feature and increased use of the BaseInputTemplate
  • Add precommit script to all packages missing it (#3004)
  • Copied the precommit: lint-staged from core into all of the packages missing it
  • Also updated to husky v8 and lint-staged to v13
  • Remove unnecessary lodash uses (#2997)

  • Remove unnecessary lodash dependencies

  • revert some changes

  • readd newline

  • Refactored the ArrayFieldTemplate into 4 templates (#3001)

  • Refactored the ArrayFieldTemplate into 4 templates

  • Updated the types in @rjsf/utils to make ArrayFieldTemplate required as well as adding the following 3 new templates:
    • ArrayFieldDescriptionTemplate, ArrayFieldItemTemplate and ArrayFieldTitleTemplate
    • Also added to new types ArrayFieldDescriptionProps and ArrayFieldTitleProps
  • Updated the core theme to support the updated ArrayFeildTemplates as follows:
    • Refactored the ArrayFieldDescription and ArrayFieldTitle from ArrayField.js as ArrayFieldDescriptionTemplate and ArrayFieldTitleTemplate
      • These new Typescript classes were added into the Templates directory
      • These two new templates were essentially the same across all themes, but made a template just in case and so they can be used in all themes
    • Refactored the DefaultArrayItem component from ArrayField.js as ArrayFieldItemTemplate as a new Typescript file in the Templates directory
    • Refactored the DefaultNormalArrayFieldTemplate from ArrayField.js as ArrayFieldTemplate as a new Typescript file in the Templates directory
      • Turns out the DefaultFixedArrayFieldTemplate was essentially the same as the other template (and was never customized in any of the themes)
      • As a result, this template was deemed unnecessary
  • Updated the antd theme to support the updated ArrayFieldTemplates as follows:
    • Renamed the ArrayFieldTemplateItem component as ArrayFieldItemTemplate in its own directory
    • Renamed the NormalArrayFieldTemplate as ArrayFieldTemplate (ignore git)
      • Switched to using the ArrayFieldDescriptionTemplate, ArrayFieldItemTemplate and ArrayFieldTitleTemplate from the templates directory
    • Deleted the main ArrayFieldTemplate/index.js and FixedArrayFieldTemplate.js files from the directory
    • Updated the Templates.tsx file to add the ArrayFieldItemTemplate into the templates object
  • Updated the bootstrap-4 theme to support the updated ArrayFieldTemplatess as follows:
    • Refactored the DefaultArrayItem component from ArrayFieldTemplate as ArrayFieldItemTemplate in its own directory
    • Updated ArrayFieldTemplate by deleting all the unnecessary code, turning the DefaultNormalArrayFieldTemplate into the ArrayFieldTemplate
      • Used the ArrayFieldDescriptionTemplate, ArrayFieldItemTemplate and ArrayFieldTitleTemplate from registry.templates
    • Updated the Templates.tsx file to add the ArrayFieldItemTemplate into the templates object
    • Deleted the test and snapshot for ArrayFieldTemplates since it was already covered elsewhere
    • Updated the registry mock to pull templates from the getDefaultRegistry(), overriding with the theme Templates
  • Updated the chakra-ui theme to support the updated ArrayFieldTemplatess as follows:
    • Refactored the DefaultArrayItem component from ArrayFieldTemplate as ArrayFieldItemTemplate in its own directory
    • Updated ArrayFieldTemplate by deleting all the unnecessary code, turning the DefaultNormalArrayFieldTemplate into the ArrayFieldTemplate
      • Used the ArrayFieldDescriptionTemplate, ArrayFieldItemTemplate and ArrayFieldTitleTemplate from registry.templates
    • Updated the Templates.tsx file to add the ArrayFieldItemTemplate into the templates object
  • Updated the chakra-ui theme to support the updated ArrayFieldTemplatess as follows:
    • Refactored the DefaultArrayItem component from ArrayFieldTemplate as ArrayFieldItemTemplate in its own directory
    • Updated ArrayFieldTemplate by deleting all the unnecessary code, turning the DefaultNormalArrayFieldTemplate into the ArrayFieldTemplate
      • Used the ArrayFieldDescriptionTemplate, ArrayFieldItemTemplate and ArrayFieldTitleTemplate from registry.templates
    • Updated the Templates.tsx file to add the ArrayFieldItemTemplate into the templates object
    • Updated the snapshot for the array templates to pick up the little changes from the refactor
  • Updated the material-ui and mui themes to support the updated ArrayFieldTemplatess as follows:
    • Refactored the DefaultArrayItem component from ArrayFieldTemplate as ArrayFieldItemTemplate in its own directory
    • Updated ArrayFieldTemplate by deleting all the unnecessary code, turning the DefaultNormalArrayFieldTemplate into the ArrayFieldTemplate
      • Used the ArrayFieldDescriptionTemplate, ArrayFieldItemTemplate and ArrayFieldTitleTemplate from registry.templates
    • Updated the Templates.tsx file to add the ArrayFieldItemTemplate into the templates object
    • Deleted the UpDownWidget tests and snapshots because they are duplicated in the Form tests
  • Updated the semantic-ui theme to support the updated ArrayFieldTemplatess as follows:
    • Refactored the DefaultArrayItem component from ArrayFieldTemplate as ArrayFieldItemTemplate in its own directory
    • Updated ArrayFieldTemplate by deleting all the unnecessary code, turning the DefaultNormalArrayFieldTemplate into the ArrayFieldTemplate
      • Used the ArrayFieldDescriptionTemplate, ArrayFieldItemTemplate and ArrayFieldTitleTemplate from registry.templates
    • Updated the Templates.tsx file to add the ArrayFieldItemTemplate into the templates object
    • Responded to reviewer feedback
  • add nx to monorepo (#2998)

  • add nx to monorepo

  • fixed lockfile issue

  • remove nx cloud access token

Co-authored-by: Heath C 51679588+heath-freenome@users.noreply.github.com

Co-authored-by: Heath C 51679588+heath-freenome@users.noreply.github.com

  • Migrate core widget folder to typescript (#3006)

  • Migrate core widget folder to typescript

  • Adressed PR feedback

  • Addressed additional PR comments

  • Addressed additional PR comments

  • fix : semantic-ui error class on fields (#3009)

  • Converted core fields to Typescript (#3007)

  • Converted the fields to Typescript

  • Updated the @rjsf/utils types and functions based on necessary changes needed for the conversion as follows:
    • In types.ts some improvements and new types were discovered as follows:
      • Modified the RJSFSchema to add the non-standard enumNames property onto the JSONSchema7 to support the Fields
      • Added a new EnumOptionsType required for some of the fields
      • Added a new UnsupportedFieldProps type for the new UnsupportedFieldTemplate on TemplatesType
      • Removed the fields property on FieldTemplateProps since that data can be easily obtained from the registry
      • Added the rawErrors property to ArrayFieldTemplateProps since it was needed ArrayField
      • Added the missing T generic on a few uses of IdSchema properties on a few types
      • Updated the WidgetProps type to combine the options property with an additional, optional enumOptions property as needed by widgets
      • Updated the UIOptionsBaseType to have it combined with the TemplatesType making it require the T and F generics as well as adding the following new properties:
        • classNames was added as a breaking change (it used to simply be classNames in UiSchema but now it will be ui:classNames or ui:options: { classNames }
          • This makes classNames consistent with all the other ui options
        • orderable and removable were added to support the ArrayField
        • widget was added to support many of the Fields
      • Updated UIOptionsType to also take the T and F generics
      • Updated SchemaUtilsType.retrieveSchema() to make the formData parameter optional, like it already is on the wrapped function
    • Updated the getUiOptions() function to add the T and F generics to the return value type
    • Updated getWidget() to make the widget property optional, updating the tests accordingly
    • Updated isCustomWidget() to make uiSchema default to an empty object if missing, updating the tests accordingly
    • Updated optionsList to remove the enumNames hack and to return the new EnumOptionsType[] | undefined type
  • Updated FieldTemplate for antd to remove the commented out fields variable since it was removed from the FieldTemplateProps
  • Refactored ArrayField.js to ArrayField.tsx converting things to typescript
    • Made the FieldProps use the T[] generic based on the ArrayField's T generic since formData should always be an array
    • There were many places where type safety checks were required along with custom casts to deal with T vs T[] issues
    • Exported ArrayField cast as a Field to allow it to be used properly in the index.ts
  • Refactored BooleanField.js to BooleanField.tsx converting things to typescript
  • Refactored MultiSchemaField.js to MultiSchemaField.tsx converting things to typescript
  • Refactored NullField.js to NullField.tsx converting things to typescript
  • Refactored NumberField.js to NumberField.tsx converting things to typescript as well as making it a stateless functional component with useState() instead of a class
  • Refactored ObjectField.js to ObjectField.tsx converting things to typescript
  • Refactored SchemaField.js to SchemaField.tsx converting things to typescript
    • Updated the code to deal with the classNames now coming from ui: options, including updating tests accordingly adding a new one for the new case inside of ui:options
  • Refactored StringField.js to StringField.tsx converting things to typescript
  • Refactored fields/index.js to fields/index.ts adding the proper type for the returned object
  • Updated ArrayFieldTemplate to add the missing T and F generics required for getUiOptions()
  • Updated ObjectFieldTemplate to add the T and F generics ont…

Pushed On 07 Oct 2022 at 06:06:58

Ranihorev

v5.0.0-beta.0 (#3057)

  • v5.0.0-beta.0

    • Fixed peer dependencies to be ^5.0.0
    • updated workflow to remove rjsf-v5 and node 12
    • Temporarily removed the @rjsf/utils peer dependencies to allow release to complete
    • Reverted peer dependencies for @rjsf/core back to 4.2.0

Pushed On 07 Oct 2022 at 06:06:58

Ranihorev

v5.0.0-beta.1 (#3063)

Pushed On 07 Oct 2022 at 06:06:58

Ranihorev

chore(deps): bump mkdocs from 1.3.0 to 1.3.1

Bumps mkdocs from 1.3.0 to 1.3.1.


updated-dependencies:

  • dependency-name: mkdocs dependency-type: direct:production update-type: version-update:semver-patch ...

Signed-off-by: dependabot[bot] support@github.com

Pushed On 07 Oct 2022 at 06:06:58

Ranihorev

chore(deps): bump actions/upload-artifact from 2 to 3

Bumps actions/upload-artifact from 2 to 3.


updated-dependencies:

  • dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ...

Signed-off-by: dependabot[bot] support@github.com

Pushed On 07 Oct 2022 at 06:06:58

Ranihorev

chore(deps): bump actions/download-artifact from 2 to 3

Bumps actions/download-artifact from 2 to 3.


updated-dependencies:

  • dependency-name: actions/download-artifact dependency-type: direct:production update-type: version-update:semver-major ...

Signed-off-by: dependabot[bot] support@github.com

Pushed On 07 Oct 2022 at 06:06:58

Ranihorev

chore(deps): bump actions/setup-python from 3 to 4

Bumps actions/setup-python from 3 to 4.


updated-dependencies:

  • dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ...

Signed-off-by: dependabot[bot] support@github.com

Pushed On 07 Oct 2022 at 06:06:58

Ranihorev

Add @rjsf/utils as a peerDependency (#3064)

  • Updated CHANGELOG.md for this PR
  • Added "@rjsf/utils": "5.x" as a peer dependency for all packages in the monorepo except for itself
  • Bumped the peer dependency for @rjsf/core to 5.x as well
  • Cleaned up a few unnecessary imports in the main package.json
  • Fixed release.yml to switch --no-verify-access to --verify-access=true because the flags were reversed in version 5.2.0 to require it to be explicitly turned on:
lerna WARN verify-access --verify-access=false and --no-verify-access are no longer needed, because the legacy preemptive access verification is now disabled by default. Requests will fail with appropriate errors when not authorized correctly. 

Pushed On 07 Oct 2022 at 06:06:58

Ranihorev

chore(deps): bump crazy-max/ghaction-github-pages from 2.6.0 to 3.0.0

Bumps crazy-max/ghaction-github-pages from 2.6.0 to 3.0.0.


updated-dependencies:

  • dependency-name: crazy-max/ghaction-github-pages dependency-type: direct:production update-type: version-update:semver-major ...

Signed-off-by: dependabot[bot] support@github.com

Pushed On 07 Oct 2022 at 06:06:58

Ranihorev

fix: Prevent the Playground from crashing on a form error. (#3164)

Co-authored-by: Heath C 51679588+heath-freenome@users.noreply.github.com

Pushed On 07 Oct 2022 at 06:03:22

Ranihorev

chore(deps-dev): bump cross-env from 2.0.1 to 7.0.3

Bumps cross-env from 2.0.1 to 7.0.3.


updated-dependencies:

  • dependency-name: cross-env dependency-type: direct:development update-type: version-update:semver-major ...

Signed-off-by: dependabot[bot] support@github.com

Pushed On 07 Oct 2022 at 06:03:22

Ranihorev

fix(@rjsf/chakra-ui) add support for chakra-react-select v4 (#3172)

  • @rjsf/chakra-ui: support chakra-react-select v4; In particular move from to and add to peerDependencies

  • Correct rjsf version

  • Add chakra-react-select to pre-requisites in chakra-ui README

Co-authored-by: dorofel lisa.dorofeeva@lightsource.ca

Pushed On 07 Oct 2022 at 06:03:22

Ranihorev

fix: #2768 by returning id on the Form.onChange handler (#3173)

  • In @rjsf/utils, updated the FieldProps type for onChange to add an optional id: string parameter, making onChange for FieldTemplateProps use FieldProps definition
  • In @rjsf/core, updated the library to support returning an optional second parameter, id: string, to the onChange() prop on Form as follows:
    • Updated the Form.onChange() callback handler passed to all fields to take an optional third parameter, id: string, passing it out to the onChange() prop call
    • Updated ArrayField to make the callback returned from the onChangeForIndex() method take the additional id parameter and pass it along to the props.onChange() handler
    • Updated MultiSchemaField to make the onOptionChange() method pass along the this.getFieldId() value to the props.onChange() handler
      • Refactored the id logic for the select widget used in the MultiSchemaField into the getFieldId() method
    • Updated ObjectField to make the callback returned from the onPropertyChange() method take the additional id parameter and pass it along to the props.onChange() handler
    • Updated SchemaField to add a new handleFieldComponentChange() callback that ensures that an id is passed up the onChange callback chain
      • Updated the render of the FieldComponent to pass the handleFieldComponentChange() as the onChange handler
    • Updated all of the tests to check for the id in those situations when it is passed back
  • In @rjsf/playground, updated the onFormDataChange handler to log the id of the changed field if it is provided
  • Updated the form-props.md documentation to describe the new id parameter that may be returned
  • Updated the CHANGELOG.md accordingly

Pushed On 07 Oct 2022 at 06:03:22

Ranihorev

fix(utils): omit computedDefault of empty objects

Pushed On 07 Oct 2022 at 06:03:22

Ranihorev

fix(utils): omit computedDefault of empty objects

Reasons for making this change

Fixes #2150 and #2708. See this playground

If there are no defaults, computedDefault will still create an empty object here. As a result, ajv assumes that the field should exist and is failing the validation if it has any required fields.

Forked On 05 Oct 2022 at 01:57:06

Ranihorev

I can but I'm still not sure how we want to treat custom validations in this case. What is the expected behavior?

@ranihorev Here is what I propose... In both of the validators, let's try moving

 const newFormData = getDefaultFormState<T>(
      this,
      schema,
      formData,
      rootSchema,
      true
    ) as T; 

to right before the customValidate(...) using the formData in the this.ajv.validate() call.

I've sanity checked the tests with that change and it seems to work. Then make your change in the utils so that it continues to respect the includeUndefinedValues flag.

@heath-freenome to make sure we're on the same page: you are suggesting to run this.ajv.validate(schema, formData); on formData instead of newFormData and only use the newFormData for the custom validation? Am I right?

I wonder if we should call getDefaultFormState twice - once with includeUndefinedValues = false for the regular validation and once with true for the custom validation

Commented On 05 Oct 2022 at 01:57:06

Ranihorev

fix(utils): omit computedDefault of empty objects

Reasons for making this change

Fixes #2150 and #2708. See this playground

If there are no defaults, computedDefault will still create an empty object here. As a result, ajv assumes that the field should exist and is failing the validation if it has any required fields.

Forked On 05 Oct 2022 at 01:34:07

Ranihorev

@heath-freenome I started porting the change but I'm seeing unrelated TS errors when running the tests here

 src/components/fields/SchemaField.tsx:148:49 - error TS2554: Expected 1-2 arguments, but got 3.

    148       return onChange(formData, newErrorSchema, theId);
                                                        ~~~~~ 

Do we ignore TS errors somewhere?

Commented On 05 Oct 2022 at 01:34:07

Ranihorev

deploy command

Pushed On 04 Oct 2022 at 01:07:46

Ranihorev

icons

Pushed On 04 Oct 2022 at 05:31:56

Ranihorev

cleaning

Pushed On 03 Oct 2022 at 04:22:50

Ranihorev

fix: Allow FieldErrorTemplate to support ReactElement errors (#3124)

  • Updated @rjsf/utils to change the error prop from string to Array<string | ReactElement> allowing it to support a mix of string and react component
  • Updated @rjsf/bootstrap-4 to remove the explicit string typing of error so that both types can be supported
  • Updated @rjsf/core to remove the explicit string typing of error so that both types can be supported, using index as the key now
  • Updated @rjsf/semantic-ui to switch from the content prop to using the children prop on List.Item for the error
  • Updated the Custom Templates documentation to add the missing asterisks on the new FieldErrorTemplate and FieldHelpTemplate
  • Updated the CHANGELOG.md accordingly

Pushed On 01 Oct 2022 at 04:15:33

Ranihorev

fix: Add programmatic form validation support (#3122)

  • fix: Add programmatic form validation support
  • Updated the Form to add a new validateForm() function by refactoring that portion of the code out of the onSubmit() callback
  • Updated the playground to add a new Prog. Validate button to programmatically validate a form
    • Moved the Share button onto the next line and changed Programmatically Submit button to Prog. Submit
    • Added an alert when the form is submitted
  • Updated the validation.md documentation with this new capability
  • Updated the CHANGELOG.md file accordingly
    • Update the release document generation to use the main branch

Pushed On 01 Oct 2022 at 04:15:33

Ranihorev

fix: improved chakra-ui docs to fix #2863 (#3125)

  • Updated chakra-ui/uiSchema.md to make it clear that the special chakra section of ui:options are on a per-field basis
  • Updated CHANGELOG.md accordingly`

Pushed On 01 Oct 2022 at 04:15:33

Ranihorev

fix: add formElement upgrade instructions (#3128)

  • Updated the 5.x upgrade guide to document the change from a simple variable to a RefObject

Pushed On 01 Oct 2022 at 04:15:33

Ranihorev

fix: Updated CHANGELOG.md for last PR that was missing it (#3129)

  • fixed the documentation, but forgot to update the CHANGELOG

Pushed On 01 Oct 2022 at 04:15:33

Ranihorev

chore(playground): replace webpack with vite (#3115)

  • update exports and filetypes

  • update index file

  • add vite config and build scripts

  • switched to @monaco-editor/react as it works better with vite

  • Netlify config + cleanup

  • changelog

  • cleanup

  • fix material ui themes

  • changelog

  • new build-serial command for netlify

  • replace old setImmediate with setTimeout

  • docs

Pushed On 01 Oct 2022 at 04:15:33

Ranihorev

fix: playground now builds to dist, made upload work properly (#3134)

  • Updated ci.yml to change packages/playground/build to packages/playground/dist

Pushed On 01 Oct 2022 at 04:15:33

Ranihorev

fix: Rename WithThemeProps back to version 4.x ThemeProps (#3133)

  • Renamed the WithThemeProps type back to the name it had in version 4.x, ThemeProps
    • This avoids an unnecessary breaking-change
  • Updated all Typescript based themes to use this renamed type
  • Updated the CHANGELOG.md accordingly

Pushed On 01 Oct 2022 at 04:15:33

Ranihorev

fix: #3130 by adding uiSchema to IconButtonProps (#3135)

  • In @rjsf/utils, updated the IconButtonProps type to add uiSchema which required adding the T and F generics to it and the associated ButtonTemplates in TemplatesType
    • Also added uiSchema to the ArrayFieldTemplateItemType
  • In @rjsf/core, updated the IconButton-based components to pass uiSchema
    • Updated ArrayField to pass uiSchema to the ArrayFieldTemplateItemType creating in renderArrayFieldItem()
    • Updated IconButton to strip out the uiSchema before passing props to the button
    • Updated FieldTemplate to pass uiSchema to WrapIfAdditional
    • Updated ArrayFieldItemTemplate and WrapIfAdditional to take uiSchema and pass it to the icon buttons
    • Updated ArrayFieldTemplate and ObjectFieldTemplate to pass uiSchema to the icon buttons
  • In the antd, bootstrap-4, chakra-ui, material-ui, mui and semantic-ui themes, updated the IconButton-based components to pass uiSchema
    • Updated IconButton and AddButton to strip out the uiSchema before passing props to the button
    • Updated FieldTemplate to pass uiSchema to WrapIfAdditional
    • Updated ArrayFieldItemTemplate and WrapIfAdditional to take uiSchema and pass it to the icon buttons
    • Updated ArrayFieldTemplate and ObjectFieldTemplate to pass uiSchema to the icon buttons
  • In the fluent-ui theme, updated the IconButton-based components to pass uiSchema
    • Updated IconButton and AddButton to strip out the uiSchema before passing props to the button
    • Updated ArrayFieldItemTemplate to take uiSchema and pass it to the icon buttons
    • Updated ArrayFieldTemplate and ObjectFieldTemplate to pass uiSchema to the icon buttons
  • Updated the custom-templates.md to add the uiSchema as a prop for IconButtons and ArrayFieldItemTemplate
  • Updated the CHANGELOG.md accordingly

Pushed On 01 Oct 2022 at 04:15:33

Ranihorev

Fix 404 on playground assets in GitHub Pages (#3137)

Pushed On 01 Oct 2022 at 04:15:33

Ranihorev

Fix vite builds for production (#3138)

  • Also restored port and open behavior on dev mode

Pushed On 01 Oct 2022 at 04:15:33

Ranihorev

fix: #3131 ArrayField fallback to SchemaField (#3136)

  • fix: #3131 ArrayField fallback to SchemaField
  • Updated ArrayField to fallback to SchemaField when ArraySchemaField was not defined in fields
    • Updated the test to show that the SchemaField fallback is working
  • Updated the fields/index.ts to remove the definition of ArraySchemaField and replace it with a comment
  • Updated the custom-widgets-fields.md file to clarify the ArraySchemaField docs based on this improvement
  • Updated the CHANGELOG.md accordingly
    • Responded to reviewer feedback

Pushed On 01 Oct 2022 at 04:15:33

Ranihorev

Release 5.0.0 beta.9 (#3139)

  • Release 5.0.0-beta.9
  • Update two lock files that were updated by npm install
  • v5.0.0-beta.9

Pushed On 01 Oct 2022 at 04:15:33

Ranihorev

Add WrapIfAdditionalTemplate (#3140)

  • Add WrapIfAdditionalTemplate

  • Update docs/advanced-customization/custom-templates.md

  • Changes from code review

  • Docs changes
  • Consistent file paths
  • Access button templates exclusively through registry
  • getTemplate tests
  • Apply suggestions from code review

Co-authored-by: Heath C 51679588+heath-freenome@users.noreply.github.com

Pushed On 01 Oct 2022 at 04:15:33

Ranihorev

docs: fix playground sample links (#3141)

Co-authored-by: Heath C 51679588+heath-freenome@users.noreply.github.com

Pushed On 01 Oct 2022 at 04:15:33

Ranihorev

make Semantic-UI's AddButton not show an empty label (#3142)

  • fix: make AddButton not show an empty label

  • Update semantic-ui test snapshots (#2590)

Co-authored-by: Heath C 51679588+heath-freenome@users.noreply.github.com

Pushed On 01 Oct 2022 at 04:15:33

Ranihorev

fix: Improve support for remix by adding name on all input elements (#3145)

  • fix: Improve support for remix by adding name on all input elements
  • Added the name prop to the any widget that was missing it to support remix
    • For Radio and Checkbox groups, made the name={id} for all elements since they are logically part of the same input even though the ids have different values since they need to be unique on the page
    • For bootstrap-4, simplified the CheckboxWidgets code to eliminate a ternary in favor of a simple inline={inline} property since all the rest of the props were the same
    • For fluent-ui, some components were missing id and others did not support name
    • For semantic-ui, some components had unnecessary key props, and name was set to name which may not be unique, so switched them to id
  • Ran npm run test:update to update the snapshots with the new names
  • Updated the CHANGELOG.md file accordingly, moving a comment from beta.9 to beta.10
    • Fixed RadioWidget in antd and bootstrap-4 to have unique ids for Radio elements
  • Reverted removal of key from semantic-ui
    • Made the pattern for the ids/keys of CheckboxesWidgets and RadioWidgets across all themes use the same pattern
  • Also removed unnecessary casting and added protection against non-arrays
  • Updated the snapshots accordingly
    • Fix CheckboxWidget to remove bad duplicate forms and added a label and value to the tests and snapshot
    • Updated the CHANGELOG.md some more, fixing bad formatting breaking builds
    • Made the fluent-ui RadioWidget respect global disabled/readonly

Pushed On 01 Oct 2022 at 04:15:33

Ranihorev

fix: convert antd to typescript (#3147)

  • fix: convert antd to typescript
  • Updated .eslintrc to use the typescript version
  • Updated jest.config.js to incorporate the jest block refactored from package.json
  • Update package.json to switch from js to ts?(x), adding necessary type imports and typings block
  • Refactored all of the .js file to Typescript
    • Any files that used the withConfigConsumer() HOC needed to define a custom type that included prefixCls: string
    • Had to do some extraProps spreading hacks for those component types that accepted props, but didn't have them defined properly on the type
    • Added an index.ts for the templates and widgets directories, simpifying the main index.ts
  • Converted the tests, renaming the snapshots accordingly, updating those templates that differed by just some whitespace rendering
  • Updated the CHANGELOG.md file accordingly
    • Responded to reviewer feedback to remove hints about method parameters now that we have types

Pushed On 01 Oct 2022 at 04:15:33

Ranihorev

chore: convert semantic-ui to typescript (#3150)

  • chore: convert semantic-ui to typescript
  • Updated .eslintrc to use the typescript version
  • Update package.json to switch from js to ts?(x), adding necessary type imports and typings block
  • Refactored all of the .js file to Typescript
    • Reworked a few components to deal with unavailable props in types
  • Converted the tests, renaming the snapshots accordingly, updating those templates that differed by just some whitespace rendering
    • Fixed build

Pushed On 01 Oct 2022 at 04:15:33

Ranihorev

fix: Undo another breaking change on Form (#3153)

  • Updated the validate() method on Form to make schemaUtils an optional third paramteter rather than a required first parameter
    • This makes the signature backwards compatible with what was provided in previous versions.
  • Updated the CHANGELOG.md accordingly

Pushed On 01 Oct 2022 at 04:15:33

Ranihorev

fix: playground now builds to dist, made upload work properly

Reasons for making this change

Fixed playground deploy broken by #3115

  • Updated ci.yml to change packages/playground/build to packages/playground/dist

Checklist

  • [ ] I'm updating documentation
  • [ ] I'm adding or updating code
    • [ ] I've added and/or updated tests. I've run npm run test:update to update snapshots, if needed.
    • [ ] I've updated docs if needed
    • [ ] I've updated the changelog with a description of the PR
  • [ ] I'm adding a new feature
    • [ ] I've updated the playground with an example use of the feature

Forked On 22 Sep 2022 at 05:15:27

Ranihorev

@heath-freenome I'm assuming that you mean before your fix in this PR, right? Let me know if I can help

Commented On 22 Sep 2022 at 05:15:27

Ranihorev

fix: playground now builds to dist, made upload work properly

Reasons for making this change

Fixed playground deploy broken by #3115

  • Updated ci.yml to change packages/playground/build to packages/playground/dist

Checklist

  • [ ] I'm updating documentation
  • [ ] I'm adding or updating code
    • [ ] I've added and/or updated tests. I've run npm run test:update to update snapshots, if needed.
    • [ ] I've updated docs if needed
    • [ ] I've updated the changelog with a description of the PR
  • [ ] I'm adding a new feature
    • [ ] I've updated the playground with an example use of the feature

Forked On 22 Sep 2022 at 04:49:57

Ranihorev

@heath-freenome I can also update vite to use build as the dist folder like the rest of the packages: https://vitejs.dev/config/build-options.html#build-outdir

Let me know if you want me to do that

Commented On 22 Sep 2022 at 04:49:57

Ranihorev

fix: playground now builds to dist, made upload work properly

Reasons for making this change

Fixed playground deploy broken by #3115

  • Updated ci.yml to change packages/playground/build to packages/playground/dist

Checklist

  • [ ] I'm updating documentation
  • [ ] I'm adding or updating code
    • [ ] I've added and/or updated tests. I've run npm run test:update to update snapshots, if needed.
    • [ ] I've updated docs if needed
    • [ ] I've updated the changelog with a description of the PR
  • [ ] I'm adding a new feature
    • [ ] I've updated the playground with an example use of the feature

Merged On 22 Sep 2022 at 04:47:44

Ranihorev

Thanks for fixing this!

Commented On 22 Sep 2022 at 04:47:44

Ranihorev

chore(playground): replace webpack with vite

Reasons for making this change

This is the first step in improving the DX of this monorepo to allow hot module replacement and fast iterations. Webpack is slow and complicated to configure, vite is pretty much the opposite.

TODO

  • [x] Update docs
  • [x] Update changelog
  • [x] Test
  • [x] Handle production scenario - Netlify badge, output directory, etc
  • [x] Consider updating all files to TS - Separate PR

Forked On 21 Sep 2022 at 08:37:29

Ranihorev

Done, lmk what you think
On 21 Sep 2022 at 08:37:29

Ranihorev

chore(playground): replace webpack with vite

Reasons for making this change

This is the first step in improving the DX of this monorepo to allow hot module replacement and fast iterations. Webpack is slow and complicated to configure, vite is pretty much the opposite.

TODO

  • [x] Update docs
  • [x] Update changelog
  • [x] Test
  • [x] Handle production scenario - Netlify badge, output directory, etc
  • [x] Consider updating all files to TS - Separate PR

Merged On 21 Sep 2022 at 08:37:30

Ranihorev

Commented On 21 Sep 2022 at 08:37:30

Ranihorev

docs

Pushed On 21 Sep 2022 at 08:37:28

Ranihorev

fix: add formElement upgrade instructions (#3128)

  • Updated the 5.x upgrade guide to document the change from a simple variable to a RefObject

Pushed On 21 Sep 2022 at 08:36:43

Ranihorev

fix: Updated CHANGELOG.md for last PR that was missing it (#3129)

  • fixed the documentation, but forgot to update the CHANGELOG

Pushed On 21 Sep 2022 at 08:36:43

Ranihorev

update exports and filetypes

Pushed On 21 Sep 2022 at 08:36:43

Ranihorev

update index file

Pushed On 21 Sep 2022 at 08:36:43

Ranihorev

add vite config and build scripts

Pushed On 21 Sep 2022 at 08:36:43

Ranihorev

switched to @monaco-editor/react as it works better with vite

Pushed On 21 Sep 2022 at 08:36:43

Ranihorev

Netlify config + cleanup

Pushed On 21 Sep 2022 at 08:36:43

Ranihorev

changelog

Pushed On 21 Sep 2022 at 08:36:43

Ranihorev

cleanup

Pushed On 21 Sep 2022 at 08:36:43

Ranihorev

fix material ui themes

Pushed On 21 Sep 2022 at 08:36:43

Ranihorev

changelog

Pushed On 21 Sep 2022 at 08:36:43

Ranihorev

new build-serial command for netlify

Pushed On 21 Sep 2022 at 08:36:43

Ranihorev

replace old setImmediate with setTimeout

Pushed On 21 Sep 2022 at 08:36:43

Ranihorev

docs

Pushed On 21 Sep 2022 at 08:36:43

Ranihorev

chore(playground): replace webpack with vite

Reasons for making this change

This is the first step in improving the DX of this monorepo to allow hot module replacement and fast iterations. Webpack is slow and complicated to configure, vite is pretty much the opposite.

TODO

  • [x] Update docs
  • [x] Update changelog
  • [x] Test
  • [x] Handle production scenario - Netlify badge, output directory, etc
  • [x] Consider updating all files to TS - Separate PR

Forked On 20 Sep 2022 at 07:18:16

Ranihorev

@nickgros it's working now. Thanks for pointing this out :)

Commented On 20 Sep 2022 at 07:18:16

Ranihorev

replace old setImmediate with setTimeout

Pushed On 20 Sep 2022 at 07:17:54

Ranihorev

chore(playground): replace webpack with vite

Reasons for making this change

This is the first step in improving the DX of this monorepo to allow hot module replacement and fast iterations. Webpack is slow and complicated to configure, vite is pretty much the opposite.

TODO

  • [x] Update docs
  • [x] Update changelog
  • [x] Test
  • [x] Handle production scenario - Netlify badge, output directory, etc
  • [x] Consider updating all files to TS - Separate PR

Forked On 20 Sep 2022 at 07:15:57

Ranihorev

@nickgros good point :) Looks like we're using setImmediate which is not supported by most browsers and there is no polyfill when using vite. https://developer.mozilla.org/en-US/docs/Web/API/Window/setImmediate

Let me see if there is a simple fix for it

Commented On 20 Sep 2022 at 07:15:57

Ranihorev

chore(playground): replace webpack with vite

Reasons for making this change

This is the first step in improving the DX of this monorepo to allow hot module replacement and fast iterations. Webpack is slow and complicated to configure, vite is pretty much the opposite.

TODO

  • [x] Update docs
  • [x] Update changelog
  • [x] Test
  • [x] Handle production scenario - Netlify badge, output directory, etc
  • [x] Consider updating all files to TS - Separate PR

Forked On 20 Sep 2022 at 06:13:37

Ranihorev

@ranihorev can you update your playground so I can see the fix?

The playground is working now.

Commented On 20 Sep 2022 at 06:13:37

Ranihorev

new build-serial command for netlify

Pushed On 20 Sep 2022 at 06:12:18