├── .nojekyll
├── docs
└── .nojekyll
├── example-react-app
├── src
│ ├── addons.ts
│ ├── app
│ │ ├── CenteredLoader.module.css
│ │ ├── common
│ │ │ ├── Centered.module.css
│ │ │ └── Centered.tsx
│ │ ├── custom-app-layouts
│ │ │ └── CustomAppLayouts.module.css
│ │ ├── car-cards-with-details
│ │ │ └── CarCardsWithDetails.module.css
│ │ ├── CenteredLoader.tsx
│ │ ├── custom-data-display-components
│ │ │ └── CustomDataDisplayComponents.module.css
│ │ ├── login
│ │ │ └── Login.module.css
│ │ ├── blank-screen
│ │ │ └── TestBlankScreen.tsx
│ │ ├── AppErrorBoundary.tsx
│ │ └── home
│ │ │ └── HomePage.tsx
│ ├── react-app-env.d.ts
│ ├── themes
│ │ ├── antd-themes
│ │ │ └── light.less
│ │ └── themes.config.json
│ ├── styles.d.ts
│ ├── index.css
│ ├── jmix
│ │ ├── entities
│ │ │ ├── scr_Order_1.ts
│ │ │ ├── scr_CarDto.ts
│ │ │ ├── ScrUserInfo.ts
│ │ │ ├── scr_TrickyIdTestEntity.ts
│ │ │ ├── scr_Product.ts
│ │ │ ├── scr_Customer.ts
│ │ │ ├── scr_OrderLine.ts
│ │ │ └── scr_Order.ts
│ │ └── enums
│ │ │ └── enums.ts
│ ├── config.ts
│ └── hotkeyConfigs.ts
├── tsconfig.prod.json
├── .editorconfig
├── images.d.ts
├── public
│ ├── favicon.ico
│ └── manifest.json
├── tsconfig.test.json
├── .env.development.local
├── .env.production.local
├── .gitignore
└── README.md
├── packages
├── jmix-front-generator
│ ├── src
│ │ ├── test
│ │ │ ├── generator.test.ts
│ │ │ ├── fixtures
│ │ │ │ ├── templates
│ │ │ │ │ ├── EntityManagementEditor.tsx
│ │ │ │ │ └── i18nMappings.ts
│ │ │ │ ├── react-client
│ │ │ │ │ ├── .env.development.local
│ │ │ │ │ ├── .env.production.local
│ │ │ │ │ └── src
│ │ │ │ │ │ └── app
│ │ │ │ │ │ └── component
│ │ │ │ │ │ └── BlankComponent.tsx
│ │ │ │ ├── view-properties--association-o2o.json
│ │ │ │ ├── graphql
│ │ │ │ │ ├── stringIdEntity.js
│ │ │ │ │ └── carEntity.js
│ │ │ │ ├── answers
│ │ │ │ │ ├── string-id-management-table.js
│ │ │ │ │ ├── int-id-management-table.json
│ │ │ │ │ └── string-id-management-table-no-id-name.json
│ │ │ │ └── query-model-car.json
│ │ │ └── common
│ │ │ │ └── test-utils.ts
│ │ ├── generators
│ │ │ ├── react-typescript
│ │ │ │ ├── app
│ │ │ │ │ ├── template
│ │ │ │ │ │ ├── src
│ │ │ │ │ │ │ ├── addons.ts
│ │ │ │ │ │ │ ├── routing.ts
│ │ │ │ │ │ │ ├── react-app-env.d.ts
│ │ │ │ │ │ │ ├── themes
│ │ │ │ │ │ │ │ └── antd-themes
│ │ │ │ │ │ │ │ │ └── light.less
│ │ │ │ │ │ │ ├── app
│ │ │ │ │ │ │ │ ├── CenteredLoader.module.css
│ │ │ │ │ │ │ │ ├── common
│ │ │ │ │ │ │ │ │ ├── Centered.module.css
│ │ │ │ │ │ │ │ │ └── Centered.tsx
│ │ │ │ │ │ │ │ ├── CenteredLoader.tsx
│ │ │ │ │ │ │ │ ├── login
│ │ │ │ │ │ │ │ │ └── Login.module.css
│ │ │ │ │ │ │ │ ├── AppErrorBoundary.tsx
│ │ │ │ │ │ │ │ └── home
│ │ │ │ │ │ │ │ │ └── HomePage.tsx
│ │ │ │ │ │ │ ├── styles.d.ts
│ │ │ │ │ │ │ ├── index.css
│ │ │ │ │ │ │ ├── dev
│ │ │ │ │ │ │ │ └── previews.tsx
│ │ │ │ │ │ │ ├── config.ts
│ │ │ │ │ │ │ └── hotkeyConfigs.ts
│ │ │ │ │ │ ├── tsconfig.prod.json
│ │ │ │ │ │ ├── .editorconfig
│ │ │ │ │ │ ├── _editorconfig
│ │ │ │ │ │ ├── images.d.ts
│ │ │ │ │ │ ├── tsconfig.test.json
│ │ │ │ │ │ ├── public
│ │ │ │ │ │ │ ├── favicon.ico
│ │ │ │ │ │ │ └── manifest.json
│ │ │ │ │ │ ├── _gitignore
│ │ │ │ │ │ ├── .env.development.local
│ │ │ │ │ │ ├── .env.production.local
│ │ │ │ │ │ └── README.md
│ │ │ │ │ └── options.ts
│ │ │ │ ├── info.json
│ │ │ │ ├── entity-cards
│ │ │ │ │ └── options.ts
│ │ │ │ ├── common
│ │ │ │ │ ├── base-entity-screen-generator
│ │ │ │ │ │ ├── template-model.ts
│ │ │ │ │ │ └── params.ts
│ │ │ │ │ └── questions.ts
│ │ │ │ ├── structure
│ │ │ │ │ ├── options.ts
│ │ │ │ │ └── structure.svg
│ │ │ │ ├── blank-screen
│ │ │ │ │ ├── options.ts
│ │ │ │ │ ├── blank.svg
│ │ │ │ │ ├── template
│ │ │ │ │ │ └── Component.tsx
│ │ │ │ │ └── answers.ts
│ │ │ │ ├── entity-calendar
│ │ │ │ │ └── options.ts
│ │ │ │ ├── entity-cards-grid
│ │ │ │ │ └── options.ts
│ │ │ │ ├── entity-form-wizard
│ │ │ │ │ ├── options.ts
│ │ │ │ │ └── entity-form-wizard.svg
│ │ │ │ ├── entity-cards-with-details
│ │ │ │ │ └── template
│ │ │ │ │ │ └── CardsWithDetails.module.css
│ │ │ │ ├── entity-browser
│ │ │ │ │ └── entity-browser.svg
│ │ │ │ ├── entity-multi-selection-table
│ │ │ │ │ └── entity-multi-selection-table.svg
│ │ │ │ ├── entity-table-with-filters
│ │ │ │ │ └── entity-multi-selection-table.svg
│ │ │ │ ├── generator-customization
│ │ │ │ │ └── generator-customization.svg
│ │ │ │ ├── entity-editor
│ │ │ │ │ └── entity-editor.svg
│ │ │ │ └── remove-addon
│ │ │ │ │ └── write.ts
│ │ │ ├── sdk
│ │ │ │ ├── info.json
│ │ │ │ ├── all
│ │ │ │ │ └── write.ts
│ │ │ │ └── model
│ │ │ │ │ └── write.ts
│ │ │ └── react-native
│ │ │ │ ├── info.json
│ │ │ │ └── app
│ │ │ │ └── template
│ │ │ │ ├── assets
│ │ │ │ ├── icon.png
│ │ │ │ └── splash.png
│ │ │ │ ├── babel.config.js
│ │ │ │ ├── .gitignore
│ │ │ │ ├── .env
│ │ │ │ ├── styles
│ │ │ │ └── palette.ts
│ │ │ │ ├── rest
│ │ │ │ ├── errorCodes.ts
│ │ │ │ └── rest.ts
│ │ │ │ ├── util
│ │ │ │ └── base64.ts
│ │ │ │ ├── tsconfig.json
│ │ │ │ ├── components
│ │ │ │ └── Example.tsx
│ │ │ │ └── App.tsx
│ │ ├── building-blocks
│ │ │ ├── stages
│ │ │ │ ├── writing
│ │ │ │ │ └── pieces
│ │ │ │ │ │ └── entity-management
│ │ │ │ │ │ └── entity-management.ts
│ │ │ │ ├── answers
│ │ │ │ │ └── pieces
│ │ │ │ │ │ └── EmptyAnswers.ts
│ │ │ │ ├── template-model
│ │ │ │ │ └── pieces
│ │ │ │ │ │ └── EmptyTemplateModel.ts
│ │ │ │ └── options
│ │ │ │ │ ├── pieces
│ │ │ │ │ ├── dir-shift.ts
│ │ │ │ │ └── component.ts
│ │ │ │ │ └── defaultGetOptions.ts
│ │ │ ├── includes
│ │ │ │ └── FieldImports.ejs
│ │ │ ├── util
│ │ │ │ ├── attribute-types.ts
│ │ │ │ ├── dollars-to-underscores.test.ts
│ │ │ │ ├── to-fat-snake-case.ts
│ │ │ │ └── dollars-to-underscores.ts
│ │ │ └── YeomanGenerator.ts
│ │ └── common
│ │ │ ├── cli
│ │ │ └── cli.ts
│ │ │ └── constants.ts
│ ├── .npmignore
│ ├── .editorconfig
│ ├── test
│ │ ├── mocha.opts
│ │ └── integration
│ │ │ ├── expect
│ │ │ ├── enums
│ │ │ │ └── enums.ts
│ │ │ └── entities
│ │ │ │ └── ScrUserInfo.ts
│ │ │ └── fixtures
│ │ │ ├── sdk
│ │ │ └── tsconfig.json
│ │ │ └── projectModel-empty.json
│ ├── .gitignore
│ ├── scripts
│ │ └── copy-templates.js
│ ├── tsconfig.declarations.json
│ ├── custom_types
│ │ └── inquirer.d.ts
│ ├── bin
│ │ └── gen-jmix-front.js
│ ├── README.md
│ ├── .nycrc.yaml
│ └── tsconfig_strict.json
├── jmix-addon-data-tools
│ ├── .gitignore
│ └── src
│ │ ├── entity-inspector
│ │ ├── screens
│ │ │ ├── Screens.less
│ │ │ └── index.ts
│ │ ├── entity-data-editor
│ │ │ ├── EntityDataEditor.less
│ │ │ ├── fields
│ │ │ │ ├── index.ts
│ │ │ │ └── Fields.less
│ │ │ ├── index.ts
│ │ │ ├── association-2o
│ │ │ │ ├── index.ts
│ │ │ │ └── Association2O.less
│ │ │ └── composition-field
│ │ │ │ ├── index.ts
│ │ │ │ ├── composition-o2m
│ │ │ │ └── index.ts
│ │ │ │ └── composition-o2o
│ │ │ │ └── index.ts
│ │ ├── breadcrumbs
│ │ │ ├── index.ts
│ │ │ └── Breadcrumbs.less
│ │ ├── entity-select
│ │ │ ├── index.ts
│ │ │ └── EntitySelect.less
│ │ ├── entity-data-viewer
│ │ │ └── index.ts
│ │ └── entity-inspector-main
│ │ │ └── index.ts
│ │ └── custom.d.ts
├── jmix-react-web
│ ├── .eslintignore
│ ├── .gitignore
│ ├── .eslintrc.json
│ ├── .editorconfig
│ └── src
│ │ ├── ui
│ │ ├── entity-property
│ │ │ └── EntityPropery.module.less
│ │ ├── MultilineText.tsx
│ │ ├── Label.tsx
│ │ ├── single-content-area
│ │ │ └── SingleContentArea.tsx
│ │ └── Menu
│ │ │ └── MenuPermContainer.tsx
│ │ ├── util
│ │ ├── useNoop.ts
│ │ ├── files.ts
│ │ ├── regex.ts
│ │ └── copyToClipboard.ts
│ │ ├── custom.d.ts
│ │ ├── test
│ │ └── styleMock.ts
│ │ ├── hotkeys
│ │ └── hotkeyConfig.ts
│ │ ├── crud
│ │ ├── editor
│ │ │ └── EntityEditorProps.ts
│ │ └── list
│ │ │ ├── EntityListProps.ts
│ │ │ ├── ui-callbacks
│ │ │ ├── useSelectionChangeCallback.ts
│ │ │ ├── useFilterChangeCallback.ts
│ │ │ └── useSortOrderChangeCallback.ts
│ │ │ └── util
│ │ │ ├── getEntityInstanceById.ts
│ │ │ └── getSubmitBtnCaption.ts
│ │ ├── screen-registration
│ │ └── registry.ts
│ │ └── common
│ │ └── JmixServerValidationErrors.ts
├── jmix-rest
│ ├── examples
│ │ └── node
│ │ │ ├── README.md
│ │ │ ├── package.json
│ │ │ └── index.js
│ ├── .editorconfig
│ ├── .snyk
│ ├── .gitignore
│ ├── jest.config.js
│ ├── test
│ │ └── listeners.spec.js
│ ├── src
│ │ ├── error.ts
│ │ └── filter.ts
│ └── tsconfig.json
├── jmix-react-antd
│ ├── src
│ │ ├── test
│ │ │ ├── polyfills.js
│ │ │ └── styleMock.ts
│ │ ├── ui
│ │ │ ├── EntityHierarchyTree
│ │ │ │ └── index.ts
│ │ │ ├── form
│ │ │ │ ├── controls
│ │ │ │ │ ├── RichTextArea.less
│ │ │ │ │ ├── SourceCodeField.module.less
│ │ │ │ │ ├── Button.tsx
│ │ │ │ │ └── base
│ │ │ │ │ │ └── JmixFormFieldProps.ts
│ │ │ │ ├── CharInput.module.less
│ │ │ │ ├── InputNumber.module.less
│ │ │ │ ├── validation
│ │ │ │ │ └── passthroughRule.ts
│ │ │ │ ├── CompositionFields.module.less
│ │ │ │ └── CharInput.tsx
│ │ │ ├── menu
│ │ │ │ ├── addons-menu
│ │ │ │ │ └── index.ts
│ │ │ │ ├── vertical-menu
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── VerticalMenu.tsx
│ │ │ │ ├── horizontal-menu
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── HorizontalMenu.tsx
│ │ │ │ ├── menu-item
│ │ │ │ │ └── index.ts
│ │ │ │ ├── sub-menu-item
│ │ │ │ │ └── index.ts
│ │ │ │ └── index.ts
│ │ │ ├── modals
│ │ │ │ └── index.ts
│ │ │ ├── Spinner.module.less
│ │ │ ├── notifications
│ │ │ │ └── index.ts
│ │ │ ├── Grid
│ │ │ │ ├── index.ts
│ │ │ │ ├── Col
│ │ │ │ │ └── Col.tsx
│ │ │ │ └── Row
│ │ │ │ │ └── Row.tsx
│ │ │ ├── retry-dialog
│ │ │ │ └── RetryDialog.module.less
│ │ │ ├── layouts
│ │ │ │ ├── index.ts
│ │ │ │ ├── AppLayout.tsx
│ │ │ │ ├── Footer.tsx
│ │ │ │ ├── Header.tsx
│ │ │ │ ├── Sidebar.tsx
│ │ │ │ └── Content.tsx
│ │ │ ├── progress-bar
│ │ │ │ └── ProgressBar.tsx
│ │ │ ├── Spinner.tsx
│ │ │ ├── ImagePreview.module.less
│ │ │ ├── Card
│ │ │ │ └── Card.tsx
│ │ │ ├── hotkeys
│ │ │ │ └── HotkeyInfoModalButton.module.less
│ │ │ ├── MasterDetail
│ │ │ │ └── useChangeConfirm.ts
│ │ │ ├── DatePicker.tsx
│ │ │ ├── tooltip
│ │ │ │ └── Tooltip.tsx
│ │ │ ├── table
│ │ │ │ └── DataTableIntervalEditor.module.less
│ │ │ ├── MultiSelectionTable
│ │ │ │ └── MultiSelectionTableStore.ts
│ │ │ └── TimePicker.tsx
│ │ ├── custom.d.ts
│ │ ├── crud
│ │ │ └── editor
│ │ │ │ ├── form
│ │ │ │ ├── useCreateAntdResetForm.ts
│ │ │ │ └── createUseAntdForm.ts
│ │ │ │ ├── validation
│ │ │ │ └── createUseAntdFormValidation.ts
│ │ │ │ └── ui-callbacks
│ │ │ │ └── useSubmitFailedCallback.ts
│ │ └── util
│ │ │ ├── history.test.ts
│ │ │ └── history.ts
│ ├── .eslintrc.json
│ ├── .gitignore
│ ├── .editorconfig
│ ├── babel.config.js
│ └── .eslintignore
├── jmix-react-core
│ ├── src
│ │ ├── test
│ │ │ └── polyfills.js
│ │ ├── conditional-rendering
│ │ │ └── index.ts
│ │ ├── timer
│ │ │ └── index.ts
│ │ ├── util
│ │ │ ├── uncapitalize-first.ts
│ │ │ ├── misc.ts
│ │ │ ├── isNull.ts
│ │ │ ├── base64.test.ts
│ │ │ ├── file.ts
│ │ │ ├── graphql.test.ts
│ │ │ ├── temp-id.ts
│ │ │ ├── devMode.ts
│ │ │ ├── dollars-to-underscores.test.ts
│ │ │ ├── base64.ts
│ │ │ ├── dollars-to-underscores.ts
│ │ │ ├── errorHandling.ts
│ │ │ └── data.ts
│ │ ├── crud
│ │ │ ├── sort.ts
│ │ │ └── JmixConstraintViolation.ts
│ │ ├── common
│ │ │ └── ReactComponent.ts
│ │ ├── data
│ │ │ ├── aliases.ts
│ │ │ └── PropertyType.ts
│ │ ├── app
│ │ │ ├── MenuConfig.ts
│ │ │ └── JmixServerError.ts
│ │ └── test-doubles
│ │ │ └── WebStorageStub.ts
│ ├── .eslintrc.json
│ ├── .gitignore
│ ├── .editorconfig
│ ├── babel.config.js
│ ├── .eslintignore
│ ├── .snyk
│ └── README.md
├── jmix-server-mock
│ ├── .editorconfig
│ ├── .gitignore
│ ├── tsconfig.json
│ └── .eslintrc.json
└── jmix-addon-charts
│ ├── .gitignore
│ └── src
│ ├── custom-typings
│ └── react-pivottable.ts
│ └── component
│ ├── default-chart-options.ts
│ ├── ChordChart.tsx
│ ├── RadarChart.tsx
│ ├── HeatMapChart.tsx
│ ├── NetworkChart.tsx
│ ├── TreeMapChart.tsx
│ ├── ChoroplethChart.tsx
│ ├── BarChart.tsx
│ ├── ClusteredBarChart.tsx
│ └── CirclePackingChart.tsx
├── docs-src
├── doc-component-repo
│ ├── modules
│ │ ├── typescript-sdk
│ │ │ ├── pages
│ │ │ │ ├── enums.adoc
│ │ │ │ └── entities.adoc
│ │ │ └── nav.adoc
│ │ ├── jmix-rest-js
│ │ │ ├── nav.adoc
│ │ │ └── pages
│ │ │ │ └── index.adoc
│ │ ├── generator
│ │ │ ├── nav.adoc
│ │ │ ├── partials
│ │ │ │ └── feat-available-in-studio.adoc
│ │ │ └── images
│ │ │ │ ├── browser-cards.png
│ │ │ │ ├── browser-list.png
│ │ │ │ ├── studio-integration.png
│ │ │ │ └── interactive-projects.png
│ │ ├── getting-started
│ │ │ └── nav.adoc
│ │ ├── client-react
│ │ │ ├── images
│ │ │ │ ├── home-screen.png
│ │ │ │ ├── login-screen.png
│ │ │ │ ├── data-table-demo.gif
│ │ │ │ ├── pet-clinic-editor.png
│ │ │ │ ├── pet-clinic-browser.png
│ │ │ │ ├── studio-create-front-module.gif
│ │ │ │ └── studio-adding-frontend-component.gif
│ │ │ └── pages
│ │ │ │ ├── config.adoc
│ │ │ │ ├── supported-browsers.adoc
│ │ │ │ ├── sync-project-model.adoc
│ │ │ │ └── build.adoc
│ │ ├── client-react-native
│ │ │ ├── images
│ │ │ │ └── RNDemo.gif
│ │ │ ├── nav.adoc
│ │ │ └── pages
│ │ │ │ ├── learning-path.adoc
│ │ │ │ └── technologies.adoc
│ │ ├── overview
│ │ │ └── partials
│ │ │ │ └── getting-started-note.adoc
│ │ ├── jmix-react-ui
│ │ │ ├── images
│ │ │ │ └── FileUploadAndImagePreviewDemo.gif
│ │ │ ├── pages
│ │ │ │ ├── image-preview.adoc
│ │ │ │ └── index.adoc
│ │ │ └── nav.adoc
│ │ ├── libs
│ │ │ └── nav.adoc
│ │ └── jmix-react-core
│ │ │ ├── pages
│ │ │ └── index.adoc
│ │ │ └── nav.adoc
│ └── antora.yml
├── api-reference
│ ├── jmix-rest
│ │ └── assets
│ │ │ └── images
│ │ │ ├── icons.png
│ │ │ ├── icons@2x.png
│ │ │ ├── widgets.png
│ │ │ └── widgets@2x.png
│ ├── jmix-react-ui
│ │ └── assets
│ │ │ └── images
│ │ │ ├── icons.png
│ │ │ ├── widgets.png
│ │ │ ├── icons@2x.png
│ │ │ └── widgets@2x.png
│ ├── jmix-react-core
│ │ └── assets
│ │ │ └── images
│ │ │ ├── icons.png
│ │ │ ├── icons@2x.png
│ │ │ ├── widgets.png
│ │ │ └── widgets@2x.png
│ └── react-ide-toolbox
│ │ └── assets
│ │ └── images
│ │ ├── icons.png
│ │ ├── icons@2x.png
│ │ ├── widgets.png
│ │ └── widgets@2x.png
├── supplemental-ui
│ ├── css
│ │ └── overrides.css
│ └── partials
│ │ ├── head-meta.hbs
│ │ └── head-styles.hbs
└── redirect-page-template.html
├── docs-src-cn
├── doc-component-repo
│ ├── modules
│ │ ├── typescript-sdk
│ │ │ ├── pages
│ │ │ │ ├── entities.adoc
│ │ │ │ └── enums.adoc
│ │ │ └── nav.adoc
│ │ ├── cuba-rest-js
│ │ │ ├── nav.adoc
│ │ │ └── pages
│ │ │ │ └── index.adoc
│ │ ├── generator
│ │ │ ├── nav.adoc
│ │ │ ├── partials
│ │ │ │ └── feat-available-in-studio.adoc
│ │ │ └── images
│ │ │ │ ├── browser-list.png
│ │ │ │ ├── browser-cards.png
│ │ │ │ ├── interactive-projects.png
│ │ │ │ └── studio-integration.png
│ │ ├── overview
│ │ │ └── partials
│ │ │ │ └── getting-started-note.adoc
│ │ ├── getting-started
│ │ │ ├── nav.adoc
│ │ │ └── pages
│ │ │ │ ├── learning-path.adoc
│ │ │ │ └── index.adoc
│ │ ├── client-react
│ │ │ ├── pages
│ │ │ │ ├── sync-project-model.adoc
│ │ │ │ ├── supported-browsers.adoc
│ │ │ │ ├── build.adoc
│ │ │ │ └── config.adoc
│ │ │ ├── images
│ │ │ │ ├── home-screen.png
│ │ │ │ ├── login-screen.png
│ │ │ │ ├── data-table-demo.gif
│ │ │ │ ├── pet-clinic-editor.png
│ │ │ │ ├── pet-clinic-browser.png
│ │ │ │ ├── studio-create-front-module.gif
│ │ │ │ └── studio-adding-frontend-component.gif
│ │ │ └── nav.adoc
│ │ ├── client-react-native
│ │ │ ├── images
│ │ │ │ └── RNDemo.gif
│ │ │ ├── nav.adoc
│ │ │ └── pages
│ │ │ │ ├── learning-path.adoc
│ │ │ │ └── technologies.adoc
│ │ ├── cuba-react-ui
│ │ │ ├── images
│ │ │ │ └── FileUploadAndImagePreviewDemo.gif
│ │ │ ├── pages
│ │ │ │ ├── index.adoc
│ │ │ │ ├── image-preview.adoc
│ │ │ │ ├── nested-entity-field.adoc
│ │ │ │ └── entity-property.adoc
│ │ │ └── nav.adoc
│ │ ├── libs
│ │ │ └── nav.adoc
│ │ └── cuba-react-core
│ │ │ └── pages
│ │ │ └── index.adoc
│ └── antora.yml
├── api-reference
│ ├── cuba-rest-js
│ │ └── assets
│ │ │ └── images
│ │ │ ├── icons.png
│ │ │ ├── icons@2x.png
│ │ │ ├── widgets.png
│ │ │ └── widgets@2x.png
│ ├── cuba-react-core
│ │ └── assets
│ │ │ └── images
│ │ │ ├── icons.png
│ │ │ ├── widgets.png
│ │ │ ├── icons@2x.png
│ │ │ └── widgets@2x.png
│ └── cuba-react-ui
│ │ └── assets
│ │ └── images
│ │ ├── icons.png
│ │ ├── widgets.png
│ │ ├── icons@2x.png
│ │ └── widgets@2x.png
├── supplemental-ui
│ └── partials
│ │ └── head-styles.hbs
└── redirect-page-template.html
├── test-pup
├── jmix_logo.png
├── babel.config.js
├── jest.config.js
├── package.json
├── example-react-app
│ └── data-table
│ │ └── data-table-custom-filter
│ │ └── data-table-no-filters.test.js
└── common
│ ├── custom-form-controls.js
│ └── paging.js
├── lerna.json
├── scripts
├── jmix
│ ├── start-jmix-app.js
│ ├── update-jmix-app.js
│ └── bootstrap-jmix-app.js
├── model
│ └── graphql
│ │ ├── intIdEntity.js
│ │ ├── associationM2M.js
│ │ ├── associationM2O.js
│ │ ├── associationO2M.js
│ │ ├── associationO2O.js
│ │ ├── trickyIdEntity.js
│ │ ├── deeplyNestedTestEntity.js
│ │ ├── boringStringIdEntity.js
│ │ ├── deeplyNestedO2MTestEntity.js
│ │ ├── formWizardCompositionO2O.js
│ │ ├── datatypesTestEntity3.js
│ │ ├── weirdStringIdEntity.js
│ │ ├── datatypesTestEntity2.js
│ │ ├── compositionO2M.js
│ │ ├── compositionO2O.js
│ │ ├── favoriteCarsCards.js
│ │ ├── formWizardTestEntity.js
│ │ ├── intIdentityIdEntity.js
│ │ ├── stringIdEntity.js
│ │ └── carEntity.js
├── pack-given-client-libs.js
├── update-react-native-client-libs.js
├── generator-customization
│ ├── generators
│ │ └── src
│ │ │ └── custom-screen
│ │ │ ├── options.ts
│ │ │ ├── blank.svg
│ │ │ ├── template-model.ts
│ │ │ └── template
│ │ │ └── Component.tsx
│ └── templates
│ │ ├── README.md
│ │ └── blank-screen
│ │ └── Component.tsx
├── update-given-client-libs.js
├── screens
│ ├── int-id-editor.js
│ ├── tricky-id-editor.js
│ ├── int-identity-id-editor.js
│ ├── form-wizard-editor.js
│ ├── string-id-cards.js
│ ├── string-id-editor.js
│ ├── deeply-nested-editor.js
│ ├── form-wizard-browser.js
│ ├── int-id-browser-list.js
│ ├── deeply-nested-o2m-editor.js
│ ├── form-wizard-composition-o2o.js
│ ├── int-id-browser-cards.js
│ ├── int-id-browser-table.js
│ ├── weird-string-id-editor.js
│ ├── int-identity-id-cards.js
│ ├── boring-string-id-editor.js
│ ├── car-cards-with-details.js
│ ├── tricky-id-browser-table.js
│ ├── car-table-with-filters.js
│ ├── int-identity-id-browser-cards.js
│ ├── int-identity-id-browser-list.js
│ ├── int-identity-id-browser-table.js
│ ├── deeply-nested-o2m-browser-table.js
│ ├── string-id-browser-cards.js
│ ├── string-id-browser-list.js
│ ├── string-id-browser-table.js
│ ├── datatypes-calendar.js
│ ├── weird-string-id-browser-list.js
│ ├── weird-string-id-browser-cards.js
│ ├── weird-string-id-browser-table.js
│ └── boring-string-id-browser-table.js
├── custom-screens
│ ├── CustomAppLayouts.module.css
│ └── CustomDataDisplayComponents.module.css
├── generate-react-native-client-scr.js
├── pack-react-native-client-libs.js
├── update-react-client-libs.js
├── run-gradle.js
├── pack-react-client-libs.js
└── ci-bootstrap-backend.js
├── .snyk
├── .gitattributes
├── .gitignore
├── README.md
└── commitlint.config.js
/.nojekyll:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/.nojekyll:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/example-react-app/src/addons.ts:
--------------------------------------------------------------------------------
1 | export {};
2 |
--------------------------------------------------------------------------------
/packages/jmix-front-generator/src/test/generator.test.ts:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs-src/doc-component-repo/modules/typescript-sdk/pages/enums.adoc:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs-src-cn/doc-component-repo/modules/typescript-sdk/pages/entities.adoc:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs-src-cn/doc-component-repo/modules/typescript-sdk/pages/enums.adoc:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs-src/doc-component-repo/modules/typescript-sdk/pages/entities.adoc:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/example-react-app/tsconfig.prod.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json"
3 | }
--------------------------------------------------------------------------------
/packages/jmix-front-generator/.npmignore:
--------------------------------------------------------------------------------
1 | /*
2 | !package.json
3 | !bin
4 | !lib
--------------------------------------------------------------------------------
/packages/jmix-addon-data-tools/.gitignore:
--------------------------------------------------------------------------------
1 | dist
2 | /metadata
3 | node_modules
4 |
--------------------------------------------------------------------------------
/packages/jmix-react-web/.eslintignore:
--------------------------------------------------------------------------------
1 | dist
2 | rollup.config.js
3 | jest.config.js
--------------------------------------------------------------------------------
/docs-src-cn/doc-component-repo/modules/cuba-rest-js/nav.adoc:
--------------------------------------------------------------------------------
1 | * xref:index.adoc[REST API]
--------------------------------------------------------------------------------
/docs-src/doc-component-repo/modules/jmix-rest-js/nav.adoc:
--------------------------------------------------------------------------------
1 | * xref:index.adoc[REST API]
--------------------------------------------------------------------------------
/example-react-app/src/app/CenteredLoader.module.css:
--------------------------------------------------------------------------------
1 | .icon {
2 | font-size: 24px;
3 | }
--------------------------------------------------------------------------------
/example-react-app/src/react-app-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/example-react-app/src/themes/antd-themes/light.less:
--------------------------------------------------------------------------------
1 | @import 'antd/dist/antd.less';
2 |
--------------------------------------------------------------------------------
/packages/jmix-front-generator/src/test/fixtures/templates/EntityManagementEditor.tsx:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs-src/doc-component-repo/modules/typescript-sdk/nav.adoc:
--------------------------------------------------------------------------------
1 | * xref:index.adoc[TypeScript SDK]
--------------------------------------------------------------------------------
/packages/jmix-rest/examples/node/README.md:
--------------------------------------------------------------------------------
1 | ```bash
2 | npm install
3 | node index.js
4 | ```
--------------------------------------------------------------------------------
/docs-src-cn/doc-component-repo/modules/typescript-sdk/nav.adoc:
--------------------------------------------------------------------------------
1 | * xref:index.adoc[TypeScript SDK]
--------------------------------------------------------------------------------
/packages/jmix-react-antd/src/test/polyfills.js:
--------------------------------------------------------------------------------
1 | Object.fromEntries = require('object.fromentries');
--------------------------------------------------------------------------------
/packages/jmix-react-antd/src/ui/EntityHierarchyTree/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./EntityHierachyTree";
--------------------------------------------------------------------------------
/packages/jmix-react-core/src/test/polyfills.js:
--------------------------------------------------------------------------------
1 | Object.fromEntries = require('object.fromentries');
--------------------------------------------------------------------------------
/example-react-app/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_style = space
5 | indent_size = 2
--------------------------------------------------------------------------------
/packages/jmix-front-generator/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*.{js,ts,tsx,ejs}]
4 | indent_size = 2
--------------------------------------------------------------------------------
/packages/jmix-front-generator/src/generators/react-typescript/app/template/src/addons.ts:
--------------------------------------------------------------------------------
1 | export {}
2 |
--------------------------------------------------------------------------------
/packages/jmix-react-antd/src/ui/form/controls/RichTextArea.less:
--------------------------------------------------------------------------------
1 | .ql-editor {
2 | height: 200px;
3 | }
--------------------------------------------------------------------------------
/test-pup/jmix_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/test-pup/jmix_logo.png
--------------------------------------------------------------------------------
/packages/jmix-react-core/src/conditional-rendering/index.ts:
--------------------------------------------------------------------------------
1 | import {IF} from './IF';
2 | export {IF};
3 |
--------------------------------------------------------------------------------
/packages/jmix-server-mock/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_style = space
5 | indent_size = 2
--------------------------------------------------------------------------------
/example-react-app/images.d.ts:
--------------------------------------------------------------------------------
1 | declare module "*.svg";
2 | declare module "*.png";
3 | declare module "*.jpg";
4 |
--------------------------------------------------------------------------------
/packages/jmix-front-generator/src/building-blocks/stages/writing/pieces/entity-management/entity-management.ts:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/jmix-react-antd/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../eslint-config-jmix-react/.eslintrc.json"
3 | }
--------------------------------------------------------------------------------
/packages/jmix-react-antd/src/ui/form/CharInput.module.less:
--------------------------------------------------------------------------------
1 | .charInputField {
2 | max-width: 55px;
3 | }
4 |
--------------------------------------------------------------------------------
/packages/jmix-react-antd/src/ui/form/InputNumber.module.less:
--------------------------------------------------------------------------------
1 | .inputNumberField {
2 | width: 100%;
3 | }
4 |
--------------------------------------------------------------------------------
/packages/jmix-react-core/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../eslint-config-jmix-react/.eslintrc.json"
3 | }
--------------------------------------------------------------------------------
/packages/jmix-react-web/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | node_modules
3 | dist
4 | dist-transpiled
5 | *.tgz
6 | coverage
7 |
--------------------------------------------------------------------------------
/lerna.json:
--------------------------------------------------------------------------------
1 | {
2 | "packages": [
3 | "packages/*", "test-pup"
4 | ],
5 | "version": "independent"
6 | }
7 |
--------------------------------------------------------------------------------
/packages/jmix-addon-charts/.gitignore:
--------------------------------------------------------------------------------
1 | dist
2 | /metadata
3 | node_modules
4 | haulmont-jmix-addon-charts-*.tgz
5 |
--------------------------------------------------------------------------------
/packages/jmix-front-generator/test/mocha.opts:
--------------------------------------------------------------------------------
1 | --require ts-node/register
2 | src/test/**/*.test.ts
3 | --timeout 0
4 |
--------------------------------------------------------------------------------
/packages/jmix-react-antd/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | node_modules
3 | dist
4 | dist-transpiled
5 | *.tgz
6 | coverage
7 |
--------------------------------------------------------------------------------
/packages/jmix-react-core/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | node_modules
3 | dist
4 | dist-transpiled
5 | *.tgz
6 | coverage
7 |
--------------------------------------------------------------------------------
/packages/jmix-react-web/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../eslint-config-jmix-react/.eslintrc.json"
3 | }
4 |
--------------------------------------------------------------------------------
/packages/jmix-server-mock/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | node_modules
3 | dist
4 | dist-transpiled
5 | *.tgz
6 | coverage
7 |
--------------------------------------------------------------------------------
/scripts/jmix/start-jmix-app.js:
--------------------------------------------------------------------------------
1 | const startJmixApp = require("./_start-jmix-app");
2 |
3 | startJmixApp(false);
4 |
--------------------------------------------------------------------------------
/packages/jmix-addon-data-tools/src/entity-inspector/screens/Screens.less:
--------------------------------------------------------------------------------
1 | .screen-disabled {
2 | display: none;
3 | }
4 |
--------------------------------------------------------------------------------
/packages/jmix-front-generator/src/building-blocks/stages/answers/pieces/EmptyAnswers.ts:
--------------------------------------------------------------------------------
1 | export interface EmptyAnswers {}
--------------------------------------------------------------------------------
/packages/jmix-front-generator/src/generators/react-typescript/app/template/src/routing.ts:
--------------------------------------------------------------------------------
1 | import './app/home/HomePage';
2 |
--------------------------------------------------------------------------------
/packages/jmix-react-core/src/timer/index.ts:
--------------------------------------------------------------------------------
1 | import {useTimer} from "./timer";
2 |
3 | export {
4 | useTimer
5 | }
6 |
--------------------------------------------------------------------------------
/test-pup/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: [
3 | '@babel/plugin-proposal-class-properties'
4 | ]
5 | }
--------------------------------------------------------------------------------
/packages/jmix-front-generator/src/generators/sdk/info.json:
--------------------------------------------------------------------------------
1 | {
2 | "clientBaseTech": "Typescript",
3 | "bower": false
4 | }
--------------------------------------------------------------------------------
/packages/jmix-react-antd/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_size = 2
6 | indent_style = space
--------------------------------------------------------------------------------
/packages/jmix-react-antd/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: ['@babel/preset-env', '@babel/preset-react'],
3 | };
--------------------------------------------------------------------------------
/packages/jmix-react-antd/src/ui/menu/addons-menu/index.ts:
--------------------------------------------------------------------------------
1 | import {AddonsMenu} from "./AddonsMenu";
2 | export {AddonsMenu};
3 |
--------------------------------------------------------------------------------
/packages/jmix-react-antd/src/ui/modals/index.ts:
--------------------------------------------------------------------------------
1 | import { Modals, modals } from "./Modals";
2 | export { Modals, modals };
3 |
--------------------------------------------------------------------------------
/packages/jmix-react-core/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_size = 2
6 | indent_style = space
--------------------------------------------------------------------------------
/packages/jmix-react-core/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: ['@babel/preset-env', '@babel/preset-react'],
3 | };
--------------------------------------------------------------------------------
/packages/jmix-react-web/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_size = 2
6 | indent_style = space
--------------------------------------------------------------------------------
/packages/jmix-react-web/src/ui/entity-property/EntityPropery.module.less:
--------------------------------------------------------------------------------
1 | .propertyContainer {
2 | display: flex;
3 | }
4 |
--------------------------------------------------------------------------------
/packages/jmix-rest/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | end_of_line = lf
5 | indent_style = space
6 | indent_size = 2
7 |
--------------------------------------------------------------------------------
/example-react-app/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/example-react-app/public/favicon.ico
--------------------------------------------------------------------------------
/packages/jmix-addon-data-tools/src/entity-inspector/screens/index.ts:
--------------------------------------------------------------------------------
1 | import {Screens} from "./Screens";
2 | export {Screens};
3 |
--------------------------------------------------------------------------------
/packages/jmix-front-generator/src/generators/react-typescript/info.json:
--------------------------------------------------------------------------------
1 | {
2 | "clientBaseTech": "React",
3 | "bower": false
4 | }
--------------------------------------------------------------------------------
/packages/jmix-react-antd/src/ui/form/controls/SourceCodeField.module.less:
--------------------------------------------------------------------------------
1 | .sourceCodeField {
2 | border: 1px solid #d9d9d9;
3 | }
--------------------------------------------------------------------------------
/test-pup/jest.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | verbose: true,
3 | preset: "jest-puppeteer",
4 | testTimeout: 10000
5 | };
6 |
--------------------------------------------------------------------------------
/packages/jmix-front-generator/src/building-blocks/stages/template-model/pieces/EmptyTemplateModel.ts:
--------------------------------------------------------------------------------
1 | export interface EmptyTemplateModel {}
--------------------------------------------------------------------------------
/packages/jmix-front-generator/src/generators/react-typescript/app/template/tsconfig.prod.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json"
3 | }
--------------------------------------------------------------------------------
/.snyk:
--------------------------------------------------------------------------------
1 | # Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.
2 | version: v1.13.5
3 | ignore: {}
4 | patch: {}
5 |
--------------------------------------------------------------------------------
/docs-src-cn/doc-component-repo/modules/generator/nav.adoc:
--------------------------------------------------------------------------------
1 | * xref:index.adoc[Frontend Generator 参考]
2 | ** xref:commands-reference.adoc[命令参考]
--------------------------------------------------------------------------------
/example-react-app/tsconfig.test.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "module": "commonjs"
5 | }
6 | }
--------------------------------------------------------------------------------
/packages/jmix-addon-data-tools/src/entity-inspector/entity-data-editor/EntityDataEditor.less:
--------------------------------------------------------------------------------
1 | .form-item {
2 | text-align: center;
3 | }
4 |
--------------------------------------------------------------------------------
/packages/jmix-front-generator/src/generators/react-native/info.json:
--------------------------------------------------------------------------------
1 | {
2 | "clientBaseTech": "React Native",
3 | "bower": false
4 | }
5 |
--------------------------------------------------------------------------------
/packages/jmix-front-generator/src/generators/react-typescript/app/template/src/react-app-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/packages/jmix-front-generator/src/generators/react-typescript/app/template/src/themes/antd-themes/light.less:
--------------------------------------------------------------------------------
1 | @import 'antd/dist/antd.less';
2 |
--------------------------------------------------------------------------------
/packages/jmix-react-antd/src/ui/menu/vertical-menu/index.ts:
--------------------------------------------------------------------------------
1 | import {VerticalMenu} from "./VerticalMenu";
2 | export default VerticalMenu;
3 |
--------------------------------------------------------------------------------
/packages/jmix-react-web/src/util/useNoop.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * A hook that does nothing.
3 | */
4 | export function useNoop() {
5 | // Noop
6 | }
--------------------------------------------------------------------------------
/packages/jmix-addon-data-tools/src/entity-inspector/breadcrumbs/index.ts:
--------------------------------------------------------------------------------
1 | import {Breadcrumbs} from "./Breadcrumbs";
2 | export {Breadcrumbs};
3 |
--------------------------------------------------------------------------------
/packages/jmix-addon-data-tools/src/entity-inspector/entity-data-editor/fields/index.ts:
--------------------------------------------------------------------------------
1 | import {Fields} from "./Fields";
2 | export {Fields};
3 |
--------------------------------------------------------------------------------
/packages/jmix-addon-data-tools/src/entity-inspector/entity-select/index.ts:
--------------------------------------------------------------------------------
1 | import {EntitySelect} from "./EntitySelect";
2 | export {EntitySelect};
--------------------------------------------------------------------------------
/packages/jmix-front-generator/src/building-blocks/stages/options/pieces/dir-shift.ts:
--------------------------------------------------------------------------------
1 | export interface DirShiftOption {
2 | dirShift: string;
3 | }
--------------------------------------------------------------------------------
/packages/jmix-front-generator/src/generators/react-typescript/app/template/src/app/CenteredLoader.module.css:
--------------------------------------------------------------------------------
1 | .icon {
2 | font-size: 24px;
3 | }
--------------------------------------------------------------------------------
/packages/jmix-react-core/.eslintignore:
--------------------------------------------------------------------------------
1 | dist-transpiled
2 | dist
3 | rollup.config.js
4 | babel.config.js
5 | jest.config.js
6 | src/test/polyfills.js
--------------------------------------------------------------------------------
/packages/jmix-react-core/src/util/uncapitalize-first.ts:
--------------------------------------------------------------------------------
1 | export const unCapitalizeFirst = (part: string) => part[0].toLowerCase() + part.slice(1);
--------------------------------------------------------------------------------
/docs-src-cn/doc-component-repo/modules/overview/partials/getting-started-note.adoc:
--------------------------------------------------------------------------------
1 | NOTE: 如果您还没有阅读 xref:getting-started:index.adoc[开始使用] 部分,我们建议您先阅读那部分内容。
--------------------------------------------------------------------------------
/example-react-app/src/styles.d.ts:
--------------------------------------------------------------------------------
1 | declare module "*.module.css" {
2 | const classes: { [key: string]: string };
3 | export default classes;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/jmix-react-antd/src/ui/menu/horizontal-menu/index.ts:
--------------------------------------------------------------------------------
1 | import {HorizontalMenu} from "./HorizontalMenu";
2 | export default HorizontalMenu;
3 |
--------------------------------------------------------------------------------
/packages/jmix-react-web/src/custom.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.less' {
2 | const classes: { [key: string]: string };
3 | export default classes;
4 | }
5 |
--------------------------------------------------------------------------------
/docs-src-cn/doc-component-repo/modules/generator/partials/feat-available-in-studio.adoc:
--------------------------------------------------------------------------------
1 | TIP: 该功能也能在 Studio 中使用,参阅 {manual_studio_frontendUi}[Studio 使用手册]。
2 |
--------------------------------------------------------------------------------
/packages/jmix-front-generator/src/generators/react-typescript/app/template/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_style = space
5 | indent_size = 2
--------------------------------------------------------------------------------
/packages/jmix-front-generator/src/generators/react-typescript/app/template/_editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_style = space
5 | indent_size = 2
--------------------------------------------------------------------------------
/packages/jmix-react-antd/src/custom.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.less' {
2 | const classes: { [key: string]: string };
3 | export default classes;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/jmix-react-antd/src/test/styleMock.ts:
--------------------------------------------------------------------------------
1 | const styleMock = new Proxy({}, {
2 | get: (_target, key) => key,
3 | });
4 | export default styleMock;
5 |
--------------------------------------------------------------------------------
/packages/jmix-react-web/src/test/styleMock.ts:
--------------------------------------------------------------------------------
1 | const styleMock = new Proxy({}, {
2 | get: (_target, key) => key,
3 | });
4 | export default styleMock;
5 |
--------------------------------------------------------------------------------
/packages/jmix-rest/.snyk:
--------------------------------------------------------------------------------
1 | # Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.
2 | version: v1.13.5
3 | ignore: {}
4 | patch: {}
5 |
--------------------------------------------------------------------------------
/docs-src/doc-component-repo/modules/generator/nav.adoc:
--------------------------------------------------------------------------------
1 | * xref:index.adoc[Frontend Generator Reference]
2 | ** xref:commands-reference.adoc[Commands Description]
--------------------------------------------------------------------------------
/docs-src/doc-component-repo/modules/getting-started/nav.adoc:
--------------------------------------------------------------------------------
1 | * xref:learning-path.adoc[Getting Started]
2 | ** xref:migration-cuba-to-jmix.adoc[Migration from CUBA]
3 |
--------------------------------------------------------------------------------
/packages/jmix-addon-data-tools/src/entity-inspector/entity-data-editor/index.ts:
--------------------------------------------------------------------------------
1 | import {EntityDataEditor} from "./EntityDataEditor";
2 | export {EntityDataEditor};
3 |
--------------------------------------------------------------------------------
/packages/jmix-addon-data-tools/src/entity-inspector/entity-data-viewer/index.ts:
--------------------------------------------------------------------------------
1 | import {EntityDataViewer} from "./EntityDataViewer";
2 | export {EntityDataViewer};
3 |
--------------------------------------------------------------------------------
/packages/jmix-front-generator/src/generators/react-typescript/app/template/images.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.svg'
2 | declare module '*.png'
3 | declare module '*.jpg'
4 |
--------------------------------------------------------------------------------
/packages/jmix-react-antd/.eslintignore:
--------------------------------------------------------------------------------
1 | dist
2 | babel.config.js
3 | rollup.config.js
4 | jest.config.js
5 | src/test/polyfills.js
6 | resolve-node-imports-in-less.js
--------------------------------------------------------------------------------
/packages/jmix-react-antd/src/ui/Spinner.module.less:
--------------------------------------------------------------------------------
1 | .spinner {
2 | position: absolute;
3 | left: 50%;
4 | top: 50%;
5 | transform: translate(-50%, -50%);
6 | }
--------------------------------------------------------------------------------
/packages/jmix-react-antd/src/ui/notifications/index.ts:
--------------------------------------------------------------------------------
1 | import {notifications, NotificationType} from "./Notifications"
2 | export {notifications, NotificationType};
3 |
--------------------------------------------------------------------------------
/packages/jmix-react-core/.snyk:
--------------------------------------------------------------------------------
1 | # Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.
2 | version: v1.13.5
3 | ignore: {}
4 | patch: {}
5 |
--------------------------------------------------------------------------------
/packages/jmix-react-core/src/util/misc.ts:
--------------------------------------------------------------------------------
1 | export function sleep(ms = 0) {
2 | return new Promise((resolve) => {
3 | setTimeout(resolve, ms);
4 | });
5 | }
6 |
--------------------------------------------------------------------------------
/docs-src/api-reference/jmix-rest/assets/images/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/api-reference/jmix-rest/assets/images/icons.png
--------------------------------------------------------------------------------
/docs-src/supplemental-ui/css/overrides.css:
--------------------------------------------------------------------------------
1 | /* This file contains CSS rules that override the rules defined by Antora Default UI */
2 | .doc {
3 | hyphens: none;
4 | }
--------------------------------------------------------------------------------
/packages/jmix-addon-data-tools/src/entity-inspector/entity-data-editor/association-2o/index.ts:
--------------------------------------------------------------------------------
1 | import {Association2O} from "./Association2O";
2 | export {Association2O};
3 |
--------------------------------------------------------------------------------
/packages/jmix-react-antd/src/ui/menu/menu-item/index.ts:
--------------------------------------------------------------------------------
1 | import {MenuItem, Props} from "./MenuItem";
2 | export {Props as MenuItemProps};
3 | export default MenuItem;
4 |
--------------------------------------------------------------------------------
/packages/jmix-react-core/src/util/isNull.ts:
--------------------------------------------------------------------------------
1 | export function isNull(value: any) {
2 | return value === null || typeof value === 'undefined' || value === '';
3 | }
4 |
--------------------------------------------------------------------------------
/scripts/model/graphql/intIdEntity.js:
--------------------------------------------------------------------------------
1 | const intIdEntityQuery = `
2 | {
3 | id
4 | _instanceName
5 | description
6 | }
7 | `;
8 |
9 | module.exports = intIdEntityQuery;
--------------------------------------------------------------------------------
/scripts/pack-given-client-libs.js:
--------------------------------------------------------------------------------
1 | const packClientLibs = require('./pack-client-libs');
2 |
3 | const libs = process.argv.slice(2);
4 |
5 | packClientLibs(libs, libs);
6 |
--------------------------------------------------------------------------------
/docs-src-cn/doc-component-repo/modules/getting-started/nav.adoc:
--------------------------------------------------------------------------------
1 | * xref:index.adoc[开始使用]
2 | ** xref:cli-specific-instructions.adoc[CLI 特性介绍]
3 | ** xref:learning-path.adoc[选择学习路径]
--------------------------------------------------------------------------------
/docs-src/api-reference/jmix-react-ui/assets/images/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/api-reference/jmix-react-ui/assets/images/icons.png
--------------------------------------------------------------------------------
/docs-src/api-reference/jmix-rest/assets/images/icons@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/api-reference/jmix-rest/assets/images/icons@2x.png
--------------------------------------------------------------------------------
/docs-src/api-reference/jmix-rest/assets/images/widgets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/api-reference/jmix-rest/assets/images/widgets.png
--------------------------------------------------------------------------------
/scripts/model/graphql/associationM2M.js:
--------------------------------------------------------------------------------
1 | const associationM2MQuery = `
2 | {
3 | id
4 | _instanceName
5 | name
6 | }
7 | `;
8 |
9 | module.exports = associationM2MQuery;
--------------------------------------------------------------------------------
/scripts/model/graphql/associationM2O.js:
--------------------------------------------------------------------------------
1 | const associationM2OQuery = `
2 | {
3 | id
4 | _instanceName
5 | name
6 | }
7 | `;
8 |
9 | module.exports = associationM2OQuery;
--------------------------------------------------------------------------------
/scripts/model/graphql/associationO2M.js:
--------------------------------------------------------------------------------
1 | const associationO2MQuery = `
2 | {
3 | id
4 | _instanceName
5 | name
6 | }
7 | `;
8 |
9 | module.exports = associationO2MQuery;
--------------------------------------------------------------------------------
/scripts/model/graphql/associationO2O.js:
--------------------------------------------------------------------------------
1 | const associationO2Oquery = `
2 | {
3 | id
4 | _instanceName
5 | name
6 | }
7 | `;
8 |
9 | module.exports = associationO2Oquery;
--------------------------------------------------------------------------------
/docs-src-cn/api-reference/cuba-rest-js/assets/images/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src-cn/api-reference/cuba-rest-js/assets/images/icons.png
--------------------------------------------------------------------------------
/docs-src/api-reference/jmix-react-core/assets/images/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/api-reference/jmix-react-core/assets/images/icons.png
--------------------------------------------------------------------------------
/docs-src/api-reference/jmix-react-ui/assets/images/widgets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/api-reference/jmix-react-ui/assets/images/widgets.png
--------------------------------------------------------------------------------
/docs-src/api-reference/jmix-rest/assets/images/widgets@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/api-reference/jmix-rest/assets/images/widgets@2x.png
--------------------------------------------------------------------------------
/docs-src/doc-component-repo/modules/generator/partials/feat-available-in-studio.adoc:
--------------------------------------------------------------------------------
1 | TIP: This feature is also available in Jmix Studio.
2 | // TODO: Add link to Studio manual
3 |
--------------------------------------------------------------------------------
/example-react-app/src/index.css:
--------------------------------------------------------------------------------
1 | html, body, #root {
2 | height: 100%;
3 | }
4 |
5 | body {
6 | margin: 0;
7 | padding: 0;
8 | font-family: sans-serif;
9 | }
10 |
--------------------------------------------------------------------------------
/packages/jmix-addon-charts/src/custom-typings/react-pivottable.ts:
--------------------------------------------------------------------------------
1 | declare module 'react-pivottable/PivotTableUI' {
2 | const PivotTableUI: any;
3 | export = PivotTableUI;
4 | }
--------------------------------------------------------------------------------
/packages/jmix-addon-data-tools/src/entity-inspector/entity-inspector-main/index.ts:
--------------------------------------------------------------------------------
1 | import {EntityInspectorMain} from "./EntityInscpectorMain";
2 | export {EntityInspectorMain};
3 |
--------------------------------------------------------------------------------
/scripts/model/graphql/trickyIdEntity.js:
--------------------------------------------------------------------------------
1 | const trickyIdEntityQuery = `
2 | {
3 | id
4 | _instanceName
5 | otherAttr
6 | }
7 | `;
8 |
9 | module.exports = trickyIdEntityQuery;
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Exclude docs folder from GitHub language statistics
2 | docs/** linguist-documentation
3 | docs-src/** linguist-documentation
4 | docs-src-cn/** linguist-documentation
5 |
--------------------------------------------------------------------------------
/docs-src-cn/api-reference/cuba-react-core/assets/images/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src-cn/api-reference/cuba-react-core/assets/images/icons.png
--------------------------------------------------------------------------------
/docs-src-cn/api-reference/cuba-react-ui/assets/images/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src-cn/api-reference/cuba-react-ui/assets/images/icons.png
--------------------------------------------------------------------------------
/docs-src-cn/api-reference/cuba-react-ui/assets/images/widgets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src-cn/api-reference/cuba-react-ui/assets/images/widgets.png
--------------------------------------------------------------------------------
/docs-src-cn/api-reference/cuba-rest-js/assets/images/icons@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src-cn/api-reference/cuba-rest-js/assets/images/icons@2x.png
--------------------------------------------------------------------------------
/docs-src-cn/api-reference/cuba-rest-js/assets/images/widgets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src-cn/api-reference/cuba-rest-js/assets/images/widgets.png
--------------------------------------------------------------------------------
/docs-src/api-reference/jmix-react-core/assets/images/icons@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/api-reference/jmix-react-core/assets/images/icons@2x.png
--------------------------------------------------------------------------------
/docs-src/api-reference/jmix-react-core/assets/images/widgets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/api-reference/jmix-react-core/assets/images/widgets.png
--------------------------------------------------------------------------------
/docs-src/api-reference/jmix-react-ui/assets/images/icons@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/api-reference/jmix-react-ui/assets/images/icons@2x.png
--------------------------------------------------------------------------------
/docs-src/api-reference/jmix-react-ui/assets/images/widgets@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/api-reference/jmix-react-ui/assets/images/widgets@2x.png
--------------------------------------------------------------------------------
/docs-src/api-reference/react-ide-toolbox/assets/images/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/api-reference/react-ide-toolbox/assets/images/icons.png
--------------------------------------------------------------------------------
/packages/jmix-addon-data-tools/src/entity-inspector/entity-data-editor/composition-field/index.ts:
--------------------------------------------------------------------------------
1 | import {CompositionField} from "./CompositionField";
2 | export {CompositionField};
3 |
--------------------------------------------------------------------------------
/packages/jmix-front-generator/.gitignore:
--------------------------------------------------------------------------------
1 | .tmp
2 | .idea
3 | test/integration/generated
4 | src/test/generated
5 | lib
6 | node_modules
7 | coverage
8 | .nyc_output
9 | *.tgz
10 |
--------------------------------------------------------------------------------
/packages/jmix-react-antd/src/ui/Grid/index.ts:
--------------------------------------------------------------------------------
1 | import { Col, ColProps } from './Col/Col';
2 | import { Row, RowProps } from './Row/Row';
3 |
4 | export { Col, ColProps, Row, RowProps };
--------------------------------------------------------------------------------
/packages/jmix-react-antd/src/ui/menu/sub-menu-item/index.ts:
--------------------------------------------------------------------------------
1 | import {SubMenuItem, Props} from "./SubMenuItem";
2 | export {Props as SubMenuItemProps};
3 | export default SubMenuItem;
4 |
--------------------------------------------------------------------------------
/packages/jmix-react-antd/src/ui/retry-dialog/RetryDialog.module.less:
--------------------------------------------------------------------------------
1 | @import 'antd/es/style/themes/default';
2 |
3 | .retryBtn {
4 | display: block;
5 | margin-top: @margin-sm;
6 | }
--------------------------------------------------------------------------------
/packages/jmix-rest/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | .local-storage
3 | node_modules
4 | npm-debug.log
5 | .nyc_output
6 | coverage
7 | .gradle
8 | *.tgz
9 | dist-browser
10 | dist-node
11 |
--------------------------------------------------------------------------------
/docs-src-cn/api-reference/cuba-react-core/assets/images/widgets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src-cn/api-reference/cuba-react-core/assets/images/widgets.png
--------------------------------------------------------------------------------
/docs-src-cn/api-reference/cuba-react-ui/assets/images/icons@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src-cn/api-reference/cuba-react-ui/assets/images/icons@2x.png
--------------------------------------------------------------------------------
/docs-src-cn/api-reference/cuba-rest-js/assets/images/widgets@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src-cn/api-reference/cuba-rest-js/assets/images/widgets@2x.png
--------------------------------------------------------------------------------
/docs-src/api-reference/jmix-react-core/assets/images/widgets@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/api-reference/jmix-react-core/assets/images/widgets@2x.png
--------------------------------------------------------------------------------
/docs-src/api-reference/react-ide-toolbox/assets/images/icons@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/api-reference/react-ide-toolbox/assets/images/icons@2x.png
--------------------------------------------------------------------------------
/docs-src/api-reference/react-ide-toolbox/assets/images/widgets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/api-reference/react-ide-toolbox/assets/images/widgets.png
--------------------------------------------------------------------------------
/example-react-app/src/app/common/Centered.module.css:
--------------------------------------------------------------------------------
1 | .centered {
2 | width: 100vw;
3 | height: 100vh;
4 | display: flex;
5 | align-items: center;
6 | justify-content: center;
7 | }
--------------------------------------------------------------------------------
/docs-src-cn/api-reference/cuba-react-core/assets/images/icons@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src-cn/api-reference/cuba-react-core/assets/images/icons@2x.png
--------------------------------------------------------------------------------
/docs-src-cn/api-reference/cuba-react-core/assets/images/widgets@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src-cn/api-reference/cuba-react-core/assets/images/widgets@2x.png
--------------------------------------------------------------------------------
/docs-src-cn/api-reference/cuba-react-ui/assets/images/widgets@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src-cn/api-reference/cuba-react-ui/assets/images/widgets@2x.png
--------------------------------------------------------------------------------
/docs-src/api-reference/react-ide-toolbox/assets/images/widgets@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/api-reference/react-ide-toolbox/assets/images/widgets@2x.png
--------------------------------------------------------------------------------
/docs-src/doc-component-repo/modules/generator/images/browser-cards.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/doc-component-repo/modules/generator/images/browser-cards.png
--------------------------------------------------------------------------------
/docs-src/doc-component-repo/modules/generator/images/browser-list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/doc-component-repo/modules/generator/images/browser-list.png
--------------------------------------------------------------------------------
/packages/jmix-addon-data-tools/src/entity-inspector/entity-data-editor/composition-field/composition-o2m/index.ts:
--------------------------------------------------------------------------------
1 | import {CompositionO2M} from "./CompositionO2M";
2 | export {CompositionO2M};
3 |
--------------------------------------------------------------------------------
/packages/jmix-addon-data-tools/src/entity-inspector/entity-data-editor/composition-field/composition-o2o/index.ts:
--------------------------------------------------------------------------------
1 | import {CompositionO2O} from "./CompositionO2O";
2 | export {CompositionO2O};
3 |
--------------------------------------------------------------------------------
/scripts/model/graphql/deeplyNestedTestEntity.js:
--------------------------------------------------------------------------------
1 | const deeplyNestedTestEntityQuery = `
2 | {
3 | id
4 | _instanceName
5 | name
6 | }
7 | `;
8 |
9 | module.exports = deeplyNestedTestEntityQuery;
--------------------------------------------------------------------------------
/docs-src-cn/doc-component-repo/modules/client-react/pages/sync-project-model.adoc:
--------------------------------------------------------------------------------
1 | = 项目模型同步
2 |
3 | 如需同步后端改动的模型,可以通过下面命令重新生成项目模型:
4 |
5 | [source,bash]
6 | ----
7 | $ npm run `update-model`
8 | ----
9 |
--------------------------------------------------------------------------------
/docs-src-cn/doc-component-repo/modules/generator/images/browser-list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src-cn/doc-component-repo/modules/generator/images/browser-list.png
--------------------------------------------------------------------------------
/docs-src/doc-component-repo/modules/client-react/images/home-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/doc-component-repo/modules/client-react/images/home-screen.png
--------------------------------------------------------------------------------
/docs-src/doc-component-repo/modules/client-react/images/login-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/doc-component-repo/modules/client-react/images/login-screen.png
--------------------------------------------------------------------------------
/packages/jmix-front-generator/src/generators/react-typescript/app/template/tsconfig.test.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "module": "commonjs"
5 | }
6 | }
--------------------------------------------------------------------------------
/packages/jmix-react-antd/src/ui/layouts/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./AppLayout";
2 | export * from "./Header";
3 | export * from "./Sidebar";
4 | export * from "./Footer";
5 | export * from "./Content";
6 |
--------------------------------------------------------------------------------
/packages/jmix-react-core/src/crud/sort.ts:
--------------------------------------------------------------------------------
1 | export type JmixSortOrder = {[key: string]: 'ASC' | 'DESC' | JmixSortOrder};
2 |
3 | export type SortOrderChangeCallback = (sortOrder?: JmixSortOrder) => void
--------------------------------------------------------------------------------
/scripts/model/graphql/boringStringIdEntity.js:
--------------------------------------------------------------------------------
1 | const boringStringIdEntityQuery = `
2 | {
3 | id
4 | _instanceName
5 | description
6 | }
7 | `;
8 |
9 | module.exports = boringStringIdEntityQuery;
--------------------------------------------------------------------------------
/scripts/update-react-native-client-libs.js:
--------------------------------------------------------------------------------
1 | const updateClientLibs = require('./update-client-libs');
2 |
3 | updateClientLibs(
4 | 'react-native-client-scr',
5 | ['rest', 'react-core']
6 | );
--------------------------------------------------------------------------------
/docs-src-cn/doc-component-repo/modules/client-react/images/home-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src-cn/doc-component-repo/modules/client-react/images/home-screen.png
--------------------------------------------------------------------------------
/docs-src-cn/doc-component-repo/modules/client-react/images/login-screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src-cn/doc-component-repo/modules/client-react/images/login-screen.png
--------------------------------------------------------------------------------
/docs-src-cn/doc-component-repo/modules/generator/images/browser-cards.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src-cn/doc-component-repo/modules/generator/images/browser-cards.png
--------------------------------------------------------------------------------
/docs-src/doc-component-repo/modules/client-react-native/images/RNDemo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/doc-component-repo/modules/client-react-native/images/RNDemo.gif
--------------------------------------------------------------------------------
/docs-src/doc-component-repo/modules/client-react/images/data-table-demo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/doc-component-repo/modules/client-react/images/data-table-demo.gif
--------------------------------------------------------------------------------
/docs-src/doc-component-repo/modules/generator/images/studio-integration.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/doc-component-repo/modules/generator/images/studio-integration.png
--------------------------------------------------------------------------------
/packages/jmix-react-core/src/crud/JmixConstraintViolation.ts:
--------------------------------------------------------------------------------
1 | export interface JmixConstraintViolation {
2 | invalidValue: any;
3 | message: string;
4 | messageTemplate: string;
5 | path: string;
6 | }
--------------------------------------------------------------------------------
/scripts/model/graphql/deeplyNestedO2MTestEntity.js:
--------------------------------------------------------------------------------
1 | const deeplyNestedO2MTestEntityQuery = `
2 | {
3 | id
4 | _instanceName
5 | name
6 | }
7 | `;
8 |
9 | module.exports = deeplyNestedO2MTestEntityQuery;
--------------------------------------------------------------------------------
/scripts/model/graphql/formWizardCompositionO2O.js:
--------------------------------------------------------------------------------
1 | const formWizardCompositionO2OQuery = `
2 | {
3 | id
4 | _instanceName
5 | name
6 | }
7 | `;
8 |
9 | module.exports = formWizardCompositionO2OQuery;
--------------------------------------------------------------------------------
/docs-src-cn/doc-component-repo/modules/client-react-native/images/RNDemo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src-cn/doc-component-repo/modules/client-react-native/images/RNDemo.gif
--------------------------------------------------------------------------------
/docs-src/doc-component-repo/modules/client-react/images/pet-clinic-editor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/doc-component-repo/modules/client-react/images/pet-clinic-editor.png
--------------------------------------------------------------------------------
/docs-src/doc-component-repo/modules/generator/images/interactive-projects.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/doc-component-repo/modules/generator/images/interactive-projects.png
--------------------------------------------------------------------------------
/docs-src/doc-component-repo/modules/overview/partials/getting-started-note.adoc:
--------------------------------------------------------------------------------
1 | NOTE: If you haven't read our introductory xref:getting-started:index.adoc[Getting Started] section, we encourage you to do so now.
--------------------------------------------------------------------------------
/packages/jmix-front-generator/src/generators/react-typescript/app/template/src/styles.d.ts:
--------------------------------------------------------------------------------
1 | declare module "*.module.css" {
2 | const classes: { [key: string]: string };
3 | export default classes;
4 | }
5 |
--------------------------------------------------------------------------------
/docs-src-cn/doc-component-repo/modules/client-react/images/data-table-demo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src-cn/doc-component-repo/modules/client-react/images/data-table-demo.gif
--------------------------------------------------------------------------------
/docs-src-cn/doc-component-repo/modules/client-react/images/pet-clinic-editor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src-cn/doc-component-repo/modules/client-react/images/pet-clinic-editor.png
--------------------------------------------------------------------------------
/docs-src-cn/doc-component-repo/modules/generator/images/interactive-projects.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src-cn/doc-component-repo/modules/generator/images/interactive-projects.png
--------------------------------------------------------------------------------
/docs-src-cn/doc-component-repo/modules/generator/images/studio-integration.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src-cn/doc-component-repo/modules/generator/images/studio-integration.png
--------------------------------------------------------------------------------
/docs-src/doc-component-repo/modules/client-react/images/pet-clinic-browser.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/doc-component-repo/modules/client-react/images/pet-clinic-browser.png
--------------------------------------------------------------------------------
/scripts/model/graphql/datatypesTestEntity3.js:
--------------------------------------------------------------------------------
1 | const query = `
2 | {
3 | id
4 | _instanceName
5 | name
6 | }
7 | `;
8 |
9 | module.exports = {
10 | listQuery: query,
11 | editQuery: query,
12 | };
--------------------------------------------------------------------------------
/docs-src-cn/doc-component-repo/modules/client-react-native/nav.adoc:
--------------------------------------------------------------------------------
1 | * React Native Client
2 | ** xref:starter-guide.adoc[开始使用 React Native Client]
3 | ** xref:technologies.adoc[技术概览]
4 | ** xref:learning-path.adoc[然后怎么办?]
--------------------------------------------------------------------------------
/docs-src-cn/doc-component-repo/modules/client-react/images/pet-clinic-browser.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src-cn/doc-component-repo/modules/client-react/images/pet-clinic-browser.png
--------------------------------------------------------------------------------
/docs-src-cn/doc-component-repo/modules/client-react/pages/supported-browsers.adoc:
--------------------------------------------------------------------------------
1 | = 支持的浏览器
2 |
3 | 该客户端支持所有现代浏览器。如果要支持 IE 9/10/11,需要 https://facebook.github.io/create-react-app/docs/supported-browsers-features[额外配置]。
4 |
--------------------------------------------------------------------------------
/packages/jmix-react-web/src/hotkeys/hotkeyConfig.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * @param description is unique
3 | */
4 | export interface HotkeyConfig {
5 | hotkey: string;
6 | description: string;
7 | categoryName: string;
8 | }
9 |
--------------------------------------------------------------------------------
/scripts/model/graphql/weirdStringIdEntity.js:
--------------------------------------------------------------------------------
1 | const weirdStringIdEntityQuery = `
2 | {
3 | id
4 | _instanceName
5 | identifier
6 | description
7 | }
8 | `;
9 |
10 | module.exports = weirdStringIdEntityQuery;
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .vscode
2 | .idea
3 | .vscode
4 | .npmrc
5 | node_modules
6 | example-react-app/generator-customization/generators/build
7 | react-native-client-scr/**
8 | docs-build*/**
9 | _testgen/**
10 | scr-jmix/
11 |
--------------------------------------------------------------------------------
/example-react-app/.env.development.local:
--------------------------------------------------------------------------------
1 | REACT_APP_JMIX_REST_URL=/rest/
2 | REACT_APP_REST_CLIENT_ID=client
3 | REACT_APP_REST_CLIENT_SECRET=secret
4 | REACT_APP_GRAPHQL_URI=/graphql
5 | REACT_APP_ENABLE_UI_PERMISSIONS=false
6 |
--------------------------------------------------------------------------------
/packages/jmix-front-generator/src/generators/react-typescript/entity-cards/options.ts:
--------------------------------------------------------------------------------
1 | import {ComponentOptions} from "../../../building-blocks/stages/options/pieces/component";
2 |
3 | export type Options = ComponentOptions;
--------------------------------------------------------------------------------
/packages/jmix-react-antd/src/ui/layouts/AppLayout.tsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import {Layout, LayoutProps} from "antd";
3 |
4 | export const AppLayout = (props: LayoutProps) => {
5 | return ;
6 | }
--------------------------------------------------------------------------------
/packages/jmix-react-antd/src/ui/layouts/Footer.tsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import {Layout, LayoutProps} from "antd";
3 |
4 | export const Footer = (props: LayoutProps) => {
5 | return
6 | }
--------------------------------------------------------------------------------
/packages/jmix-react-antd/src/ui/layouts/Header.tsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import {Layout, LayoutProps} from "antd";
3 |
4 | export const Header = (props: LayoutProps) => {
5 | return
6 | }
--------------------------------------------------------------------------------
/packages/jmix-react-antd/src/ui/layouts/Sidebar.tsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import {Layout, LayoutProps} from "antd";
3 |
4 | export const Sidebar = (props: LayoutProps) => {
5 | return
6 | }
--------------------------------------------------------------------------------
/docs-src/doc-component-repo/modules/client-react/images/studio-create-front-module.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/docs-src/doc-component-repo/modules/client-react/images/studio-create-front-module.gif
--------------------------------------------------------------------------------
/packages/jmix-front-generator/src/generators/react-native/app/template/assets/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Haulmont/jmix-frontend/HEAD/packages/jmix-front-generator/src/generators/react-native/app/template/assets/icon.png
--------------------------------------------------------------------------------
/packages/jmix-react-antd/src/ui/form/validation/passthroughRule.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * An Ant Design `